@north-light/crouter 0.3.318 → 0.3.320
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 +6 -4
- package/runtime.lock.json +5 -5
- package/scripts/pack-minify.mjs +108 -0
- 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,86 +1 @@
|
|
|
1
|
-
|
|
2
|
-
function ansiColor(text, color) {
|
|
3
|
-
switch (color) {
|
|
4
|
-
case 'gray': return `${GRAY}${text}${RESET}`;
|
|
5
|
-
case 'cyan': return `${CYAN}${text}${RESET}`;
|
|
6
|
-
case 'red': return `${RED}${text}${RESET}`;
|
|
7
|
-
case 'yellow': return `${YELLOW}${text}${RESET}`;
|
|
8
|
-
default: return text;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
export const KIND_ICON = { notify: '✉', decision: '◆', context: '✎', error: '⚠', review: '▤', display: '✉', rich: '▣', interactive: '◆' };
|
|
12
|
-
export const KIND_COLOR = { notify: 'gray', decision: 'cyan', context: 'cyan', error: 'red', review: 'yellow', display: 'gray', rich: 'cyan', interactive: 'cyan' };
|
|
13
|
-
export function formatTimeAgo(iso) {
|
|
14
|
-
const minutes = Math.floor((Date.now() - new Date(iso).getTime()) / 60000);
|
|
15
|
-
if (minutes >= 60)
|
|
16
|
-
return `${Math.floor(minutes / 60)}h ago`;
|
|
17
|
-
if (minutes > 0)
|
|
18
|
-
return `${minutes}m ago`;
|
|
19
|
-
return 'just now';
|
|
20
|
-
}
|
|
21
|
-
/** Pure inbox rows; selection and terminal ownership belong to InboxController. */
|
|
22
|
-
export function buildInboxLines(items, width, selectedIndex, height = Number.MAX_SAFE_INTEGER) {
|
|
23
|
-
if (items.length === 0)
|
|
24
|
-
return [` ${DIM}${ITALIC}No pending interactions${RESET}`];
|
|
25
|
-
const contentWidth = width - 4;
|
|
26
|
-
const itemLines = items.map((item, index) => buildItemLines(item, index, selectedIndex, contentWidth));
|
|
27
|
-
const window = visibleWindow(itemLines, selectedIndex, Math.max(1, height - 2));
|
|
28
|
-
const lines = [` ${BOLD}${items.length} pending${RESET}`, ''];
|
|
29
|
-
if (window.start > 0)
|
|
30
|
-
lines.push(` ${DIM}↑ ${window.start} above${RESET}`);
|
|
31
|
-
for (let index = window.start; index < window.end; index++)
|
|
32
|
-
lines.push(...itemLines[index]);
|
|
33
|
-
if (window.end < items.length)
|
|
34
|
-
lines.push(` ${DIM}↓ ${items.length - window.end} below${RESET}`);
|
|
35
|
-
return lines;
|
|
36
|
-
}
|
|
37
|
-
function buildItemLines(item, index, selectedIndex, contentWidth) {
|
|
38
|
-
const kind = item.kind === 'page'
|
|
39
|
-
? item.awaitsResponse === false ? 'display' : 'rich'
|
|
40
|
-
: item.kind;
|
|
41
|
-
const icon = KIND_ICON[kind] ?? '·';
|
|
42
|
-
// The inbox is a title-first triage surface. Origin details remain available
|
|
43
|
-
// after opening a ticket, rather than consuming the list's scarce row width.
|
|
44
|
-
const age = formatTimeAgo(item.kind === 'page' ? item.emittedAt : item.blockedSince);
|
|
45
|
-
const cursor = index === selectedIndex ? `${CYAN}▸${RESET} ` : ' ';
|
|
46
|
-
const titleWidth = Math.max(1, contentWidth - age.length - 6);
|
|
47
|
-
const row = `${cursor}${ansiColor(icon, KIND_COLOR[kind] ?? 'cyan')} ${BOLD}${truncateRow(item.title || `(${item.id.slice(0, 8)})`, titleWidth)}${RESET} ${DIM}${age}${RESET}`;
|
|
48
|
-
const subtitle = item.claim ? `claimed by ${item.claim.owner} · ${item.subtitle}` : item.subtitle;
|
|
49
|
-
const lines = [row, ` ${DIM}${truncateRow(subtitle, contentWidth - 6)}${RESET}`];
|
|
50
|
-
const recommended = recommendedLabel(item);
|
|
51
|
-
if (recommended !== undefined)
|
|
52
|
-
lines.push(` ${DIM}Recommended: ${truncateRow(recommended, Math.max(1, contentWidth - 19))}${RESET}`);
|
|
53
|
-
return lines;
|
|
54
|
-
}
|
|
55
|
-
/** What the agent suggests, for a row that says so without opening the page. */
|
|
56
|
-
export function recommendedLabel(item) {
|
|
57
|
-
if (item.kind !== 'page' || item.recommendedOptions.length === 0)
|
|
58
|
-
return undefined;
|
|
59
|
-
return item.recommendedOptions.map((option) => option.label).join(' · ');
|
|
60
|
-
}
|
|
61
|
-
/** Select a contiguous row window that always contains the selected ticket. */
|
|
62
|
-
function visibleWindow(rows, selectedIndex, capacity) {
|
|
63
|
-
let start = Math.max(0, Math.min(selectedIndex, rows.length - 1));
|
|
64
|
-
let end = start + 1;
|
|
65
|
-
let preferBelow = true;
|
|
66
|
-
while (true) {
|
|
67
|
-
const below = end < rows.length ? { start, end: end + 1 } : undefined;
|
|
68
|
-
const above = start > 0 ? { start: start - 1, end } : undefined;
|
|
69
|
-
const preferred = preferBelow ? [below, above] : [above, below];
|
|
70
|
-
const next = preferred.find((candidate) => candidate !== undefined && windowHeight(rows, candidate.start, candidate.end) <= capacity);
|
|
71
|
-
if (next === undefined)
|
|
72
|
-
break;
|
|
73
|
-
start = next.start;
|
|
74
|
-
end = next.end;
|
|
75
|
-
preferBelow = !preferBelow;
|
|
76
|
-
}
|
|
77
|
-
return { start, end };
|
|
78
|
-
}
|
|
79
|
-
function windowHeight(rows, start, end) {
|
|
80
|
-
let height = start > 0 ? 1 : 0;
|
|
81
|
-
for (let index = start; index < end; index++)
|
|
82
|
-
height += rows[index].length;
|
|
83
|
-
if (end < rows.length)
|
|
84
|
-
height++;
|
|
85
|
-
return height;
|
|
86
|
-
}
|
|
1
|
+
var y=Object.defineProperty;var l=(n,e)=>y(n,"name",{value:e,configurable:!0});import{RESET as o,BOLD as w,DIM as $,ITALIC as m,CYAN as b,RED as x,GRAY as L,YELLOW as M,truncateRow as h}from"./tui/ansi.js";function I(n,e){switch(e){case"gray":return`${L}${n}${o}`;case"cyan":return`${b}${n}${o}`;case"red":return`${x}${n}${o}`;case"yellow":return`${M}${n}${o}`;default:return n}}l(I,"ansiColor");const R={notify:"\u2709",decision:"\u25C6",context:"\u270E",error:"\u26A0",review:"\u25A4",display:"\u2709",rich:"\u25A3",interactive:"\u25C6"},k={notify:"gray",decision:"cyan",context:"cyan",error:"red",review:"yellow",display:"gray",rich:"cyan",interactive:"cyan"};function v(n){const e=Math.floor((Date.now()-new Date(n).getTime())/6e4);return e>=60?`${Math.floor(e/60)}h ago`:e>0?`${e}m ago`:"just now"}l(v,"formatTimeAgo");function T(n,e,c,t=Number.MAX_SAFE_INTEGER){if(n.length===0)return[` ${$}${m}No pending interactions${o}`];const r=e-4,s=n.map((d,u)=>A(d,u,c,r)),i=E(s,c,Math.max(1,t-2)),a=[` ${w}${n.length} pending${o}`,""];i.start>0&&a.push(` ${$}\u2191 ${i.start} above${o}`);for(let d=i.start;d<i.end;d++)a.push(...s[d]);return i.end<n.length&&a.push(` ${$}\u2193 ${n.length-i.end} below${o}`),a}l(T,"buildInboxLines");function A(n,e,c,t){const r=n.kind==="page"?n.awaitsResponse===!1?"display":"rich":n.kind,s=R[r]??"\xB7",i=v(n.kind==="page"?n.emittedAt:n.blockedSince),a=e===c?`${b}\u25B8${o} `:" ",d=Math.max(1,t-i.length-6),u=`${a}${I(s,k[r]??"cyan")} ${w}${h(n.title||`(${n.id.slice(0,8)})`,d)}${o} ${$}${i}${o}`,f=n.claim?`claimed by ${n.claim.owner} \xB7 ${n.subtitle}`:n.subtitle,p=[u,` ${$}${h(f,t-6)}${o}`],g=D(n);return g!==void 0&&p.push(` ${$}Recommended: ${h(g,Math.max(1,t-19))}${o}`),p}l(A,"buildItemLines");function D(n){if(!(n.kind!=="page"||n.recommendedOptions.length===0))return n.recommendedOptions.map(e=>e.label).join(" \xB7 ")}l(D,"recommendedLabel");function E(n,e,c){let t=Math.max(0,Math.min(e,n.length-1)),r=t+1,s=!0;for(;;){const i=r<n.length?{start:t,end:r+1}:void 0,a=t>0?{start:t-1,end:r}:void 0,u=(s?[i,a]:[a,i]).find(f=>f!==void 0&&N(n,f.start,f.end)<=c);if(u===void 0)break;t=u.start,r=u.end,s=!s}return{start:t,end:r}}l(E,"visibleWindow");function N(n,e,c){let t=e>0?1:0;for(let r=e;r<c;r++)t+=n[r].length;return c<n.length&&t++,t}l(N,"windowHeight");export{k as KIND_COLOR,R as KIND_ICON,T as buildInboxLines,v as formatTimeAgo,D as recommendedLabel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,290 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// canvas.db. This file is the seam that makes that possible — its transitive
|
|
6
|
-
// RUNTIME import graph reaches ZERO canvas state-store code (`core/canvas/db.ts`
|
|
7
|
-
// `openDb` / `core/canvas/canvas.ts` accessors). It gets there three ways:
|
|
8
|
-
// 1. `CrtrClient` (`src/api`) is dependency-light by construction (spec §3.1).
|
|
9
|
-
// 2. `ensureDaemon` is imported from the lean `daemon/manage.ts`, which — after
|
|
10
|
-
// the B-0 pidfile/boot-id extractions — is fs/process-only (no crtrd.ts,
|
|
11
|
-
// no `openDb`).
|
|
12
|
-
// 3. `CanvasSource`/`NodeRow`/`NodeMeta` are TYPE-ONLY imports (erased at
|
|
13
|
-
// emit), so naming them pulls no runtime canvas code.
|
|
14
|
-
// The `--canvas` remote branch reuses `RemoteCanvasSource`, itself verified
|
|
15
|
-
// openDb-free (its only runtime import is the HTTP `createRemoteExec`; its
|
|
16
|
-
// `CanvasSource`/`types` imports are type-only) — plan Q-3.
|
|
17
|
-
import { closeSync, fstatSync, openSync, readSync } from 'node:fs';
|
|
18
|
-
import { join } from 'node:path';
|
|
19
|
-
import { CrtrClient, ApiError } from '../api/index.js';
|
|
20
|
-
import { apiErrorToCliError } from '../core/io.js';
|
|
21
|
-
import { autostartDisabled, ensureDaemon } from '../daemon/manage.js';
|
|
22
|
-
import { DAEMON_STARTUP_WINDOW_MS } from '../daemon/startup-policy.js';
|
|
23
|
-
import { readState } from '../core/config.js';
|
|
24
|
-
import { resolveRemoteCanvasTarget } from '../core/remote-canvas-target.js';
|
|
25
|
-
import { RemoteCanvasSource } from '../core/canvas/remote-canvas-source.js';
|
|
26
|
-
import { crtrHome } from '../core/canvas/paths.js';
|
|
27
|
-
/** The API projects exactly the fault a node row carries; `api/` simply cannot
|
|
28
|
-
* express the branded `operation_id` (it imports Node built-ins only), so the
|
|
29
|
-
* wire value is asserted back to the row's fault type here rather than
|
|
30
|
-
* reshaped. `broker↔crtrd` is deliberately absent from the wire link union: a
|
|
31
|
-
* stored fault can never carry it. */
|
|
32
|
-
function withRowFault(dto) {
|
|
33
|
-
return { ...dto, fault: (dto.fault ?? null) };
|
|
34
|
-
}
|
|
35
|
-
// Error translation
|
|
36
|
-
/** Rethrow an `ApiError` as the clean structured CLI error agents parse
|
|
37
|
-
* (`core/io` `handle`) — instead of the generic "internal bug" stderr path a
|
|
38
|
-
* raw non-`CrtrError` throw would take. The mapping itself lives in ONE place
|
|
39
|
-
* (`apiErrorToCliError`, `core/io.ts`); this is the explicit-catch helper a
|
|
40
|
-
* leaf uses when it wants to attach a call-site `next` hint. Non-`ApiError`
|
|
41
|
-
* throws propagate unchanged (a genuine bug still reads as `internal`). Typed
|
|
42
|
-
* `never` so callers can use it as the tail of a `catch` without confusing
|
|
43
|
-
* definite assignment. */
|
|
44
|
-
export function rethrowAsCliError(err, next) {
|
|
45
|
-
if (err instanceof ApiError)
|
|
46
|
-
throw apiErrorToCliError(err, next);
|
|
47
|
-
throw err;
|
|
48
|
-
}
|
|
49
|
-
/** Fetch a node, mapping ONLY a 404 to `null` (the "not found" contract every
|
|
50
|
-
* existence-check leaf wants) and surfacing every other failure as the clean
|
|
51
|
-
* network-class CLI error via `rethrowAsCliError`. This replaces the old
|
|
52
|
-
* `.catch(() => null)` idiom that, post-B-1 (`getNode` is now an HTTP round-trip),
|
|
53
|
-
* masked a broken/slow/restarting daemon as a false "node not found". Same
|
|
54
|
-
* 404-only→null mapping as `ApiCanvasSource.orNull`, but returning the raw DTO
|
|
55
|
-
* and rethrowing non-404s as CLI errors rather than swallowing them. */
|
|
56
|
-
export async function getNodeOrNull(nodeId) {
|
|
57
|
-
try {
|
|
58
|
-
return await cliClient().getNode(nodeId);
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
if (err instanceof ApiError && err.status === 404)
|
|
62
|
-
return null;
|
|
63
|
-
rethrowAsCliError(err);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// cliClient — the one place the CLI constructs a daemon client
|
|
67
|
-
/** Bounded tail of crtrd.log surfaced on a cold-start `/healthz` timeout.
|
|
68
|
-
* Large enough to catch a real startup failure/stack trace,
|
|
69
|
-
* small enough that a runaway daemon log can never leak unbounded into a CLI
|
|
70
|
-
* error message. */
|
|
71
|
-
export const COLD_START_DIAGNOSTIC_TAIL_BYTES = 4_096;
|
|
72
|
-
const COLD_START_DIAGNOSTIC_TAIL_LINES = 20;
|
|
73
|
-
/** Read a bounded tail of crtrd's event log to enrich a `daemon_unavailable`
|
|
74
|
-
* cold-start timeout, so the actual startup failure is not discarded behind a
|
|
75
|
-
* bare message. Bounds the I/O itself — opens the file and reads only the
|
|
76
|
-
* final `COLD_START_DIAGNOSTIC_TAIL_BYTES` bytes via `fstatSync`+`readSync`,
|
|
77
|
-
* never `readFileSync`-ing the whole append-only log — then decodes/filters
|
|
78
|
-
* that bounded slice. Best-effort and synchronous per the `coldStartDiagnostic`
|
|
79
|
-
* contract — a missing/unreadable/empty log yields `undefined` so the base
|
|
80
|
-
* message is used unchanged. */
|
|
81
|
-
export function readColdStartDiagnostic() {
|
|
82
|
-
let fd;
|
|
83
|
-
try {
|
|
84
|
-
fd = openSync(join(crtrHome(), 'crtrd.log'), 'r');
|
|
85
|
-
const { size } = fstatSync(fd);
|
|
86
|
-
const start = Math.max(0, size - COLD_START_DIAGNOSTIC_TAIL_BYTES);
|
|
87
|
-
const length = size - start;
|
|
88
|
-
if (length <= 0)
|
|
89
|
-
return undefined;
|
|
90
|
-
const buffer = Buffer.alloc(length);
|
|
91
|
-
readSync(fd, buffer, 0, length, start);
|
|
92
|
-
const lines = buffer.toString('utf8').split('\n').filter((line) => line.trim() !== '');
|
|
93
|
-
const tail = lines.slice(-COLD_START_DIAGNOSTIC_TAIL_LINES).join('\n').trim();
|
|
94
|
-
return tail === '' ? undefined : `crtrd.log (tail):\n${tail}`;
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
return undefined;
|
|
98
|
-
}
|
|
99
|
-
finally {
|
|
100
|
-
if (fd !== undefined) {
|
|
101
|
-
try {
|
|
102
|
-
closeSync(fd);
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
// best-effort close; the read already happened (or failed) above.
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
/** The local-socket `CrtrClient` every CLI verb uses. Autostart is on by
|
|
111
|
-
* default: on a cold socket the injected `onColdSocket` hook fires
|
|
112
|
-
* `ensureDaemon()` (spawns crtrd detached via the branded host), then the
|
|
113
|
-
* client polls `/healthz` to a bounded deadline and retries once (the poll
|
|
114
|
-
* lives inside `CrtrClient`, A-2). If crtrd never becomes reachable, the
|
|
115
|
-
* client surfaces the final observed transport failure. This is the ONLY CLI
|
|
116
|
-
* reference to `ensureDaemon`.
|
|
117
|
-
*
|
|
118
|
-
* `onColdSocket` is fire-and-forget — `ensureDaemon()` spawns crtrd and
|
|
119
|
-
* returns immediately, so the client's OWN `/healthz` poll is the only
|
|
120
|
-
* deadline the initiating CLI invocation actually waits on. It must never be
|
|
121
|
-
* narrower than the window `spawnDaemon`'s `verifyDaemonStartup` allows.
|
|
122
|
-
* Both callers use the shared startup policy so a valid on-disk migration
|
|
123
|
-
* cannot outlast the initiating CLI command. */
|
|
124
|
-
export function cliClient(opts) {
|
|
125
|
-
if (autostartDisabled()) {
|
|
126
|
-
return CrtrClient.forLocalSocket({ autostart: false, ...(opts?.timeoutMs !== undefined ? { timeoutMs: opts.timeoutMs } : {}) });
|
|
127
|
-
}
|
|
128
|
-
return CrtrClient.forLocalSocket({
|
|
129
|
-
...(opts?.timeoutMs !== undefined ? { timeoutMs: opts.timeoutMs } : {}),
|
|
130
|
-
onColdSocket: async () => {
|
|
131
|
-
// The client's bounded /healthz poll owns the readiness wait and failure.
|
|
132
|
-
ensureDaemon();
|
|
133
|
-
},
|
|
134
|
-
// On a cold-start timeout, enrich the bare `daemon_unavailable` with the
|
|
135
|
-
// tail of crtrd's event log instead of discarding it.
|
|
136
|
-
coldStartDiagnostic: readColdStartDiagnostic,
|
|
137
|
-
coldStartPollWindowMs: DAEMON_STARTUP_WINDOW_MS,
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
// ApiCanvasSource — a read CanvasSource backed entirely by the crtrd API
|
|
141
|
-
// NodeSummaryDTO now carries every NodeRow field and NodeDetailDTO extends it,
|
|
142
|
-
// so the viewer adapter returns the daemon's typed projections directly. It
|
|
143
|
-
// performs no lossy legacy reconstruction or invented local-presence values.
|
|
144
|
-
// Index the short-lived lean roster once so repeated topology lookups stay O(1).
|
|
145
|
-
// listNodes/getRow still use full DTO endpoints for fields the roster omits.
|
|
146
|
-
const ROSTER_CACHE_TTL_MS = 2000;
|
|
147
|
-
export class ApiCanvasSource {
|
|
148
|
-
client;
|
|
149
|
-
rosterCache = null;
|
|
150
|
-
rosterInFlight = null;
|
|
151
|
-
constructor(client = cliClient()) {
|
|
152
|
-
this.client = client;
|
|
153
|
-
}
|
|
154
|
-
async roster() {
|
|
155
|
-
const now = Date.now();
|
|
156
|
-
if (this.rosterCache !== null && now - this.rosterCache.at < ROSTER_CACHE_TTL_MS) {
|
|
157
|
-
return this.rosterCache.index;
|
|
158
|
-
}
|
|
159
|
-
if (this.rosterInFlight !== null)
|
|
160
|
-
return this.rosterInFlight;
|
|
161
|
-
this.rosterInFlight = this.client
|
|
162
|
-
.canvasRoster()
|
|
163
|
-
.then((roster) => {
|
|
164
|
-
const index = { subscriptions: new Map(), subscribers: new Map() };
|
|
165
|
-
for (const edge of roster.edges) {
|
|
166
|
-
const subscription = { node_id: edge.to_id, active: edge.active, created: edge.created };
|
|
167
|
-
const subscriber = { node_id: edge.from_id, active: edge.active, created: edge.created };
|
|
168
|
-
const subscriptions = index.subscriptions.get(edge.from_id);
|
|
169
|
-
if (subscriptions === undefined)
|
|
170
|
-
index.subscriptions.set(edge.from_id, [subscription]);
|
|
171
|
-
else
|
|
172
|
-
subscriptions.push(subscription);
|
|
173
|
-
const subscribers = index.subscribers.get(edge.to_id);
|
|
174
|
-
if (subscribers === undefined)
|
|
175
|
-
index.subscribers.set(edge.to_id, [subscriber]);
|
|
176
|
-
else
|
|
177
|
-
subscribers.push(subscriber);
|
|
178
|
-
}
|
|
179
|
-
this.rosterCache = { at: Date.now(), index };
|
|
180
|
-
return index;
|
|
181
|
-
})
|
|
182
|
-
.finally(() => {
|
|
183
|
-
this.rosterInFlight = null;
|
|
184
|
-
});
|
|
185
|
-
return this.rosterInFlight;
|
|
186
|
-
}
|
|
187
|
-
/** Map a 404 from the API to the interface's `null` "not found" contract;
|
|
188
|
-
* re-throw everything else. */
|
|
189
|
-
async orNull(fn) {
|
|
190
|
-
try {
|
|
191
|
-
return await fn();
|
|
192
|
-
}
|
|
193
|
-
catch (err) {
|
|
194
|
-
if (err instanceof ApiError && err.status === 404)
|
|
195
|
-
return null;
|
|
196
|
-
throw err;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
async getNode(nodeId) {
|
|
200
|
-
const detail = await this.orNull(() => this.client.getNode(nodeId));
|
|
201
|
-
return detail === null ? null : withRowFault(detail);
|
|
202
|
-
}
|
|
203
|
-
async getRow(nodeId) {
|
|
204
|
-
const detail = await this.orNull(() => this.client.getNode(nodeId));
|
|
205
|
-
return detail === null ? null : withRowFault(detail);
|
|
206
|
-
}
|
|
207
|
-
async listNodes(filter) {
|
|
208
|
-
const status = filter?.status;
|
|
209
|
-
let rows;
|
|
210
|
-
if (Array.isArray(status)) {
|
|
211
|
-
// The list query takes a single status; fetch all + filter client-side to
|
|
212
|
-
// honor a multi-status filter without N round-trips.
|
|
213
|
-
const wanted = new Set(status);
|
|
214
|
-
const all = await this.client.listNodes();
|
|
215
|
-
rows = all.filter((r) => wanted.has(r.status));
|
|
216
|
-
}
|
|
217
|
-
else if (status !== undefined) {
|
|
218
|
-
rows = await this.client.listNodes({ status });
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
rows = await this.client.listNodes();
|
|
222
|
-
}
|
|
223
|
-
return rows.map((row) => withRowFault(row));
|
|
224
|
-
}
|
|
225
|
-
async subscriptionsOf(subscriber) {
|
|
226
|
-
return this.roster().then((index) => index.subscriptions.get(subscriber) ?? []);
|
|
227
|
-
}
|
|
228
|
-
async subscribersOf(publisher) {
|
|
229
|
-
return this.roster().then((index) => index.subscribers.get(publisher) ?? []);
|
|
230
|
-
}
|
|
231
|
-
/** BFS over the active `subscribes_to` edges from `root` (its transitive view),
|
|
232
|
-
* excluding `root` itself — the same traversal shape as
|
|
233
|
-
* `RemoteCanvasSource.view`, expressed over the API's edge lists. */
|
|
234
|
-
async view(root) {
|
|
235
|
-
const seen = new Set([root]);
|
|
236
|
-
const out = [];
|
|
237
|
-
const queue = (await this.subscriptionsOf(root)).map((s) => s.node_id);
|
|
238
|
-
while (queue.length > 0) {
|
|
239
|
-
const id = queue.shift();
|
|
240
|
-
if (seen.has(id))
|
|
241
|
-
continue;
|
|
242
|
-
seen.add(id);
|
|
243
|
-
out.push(id);
|
|
244
|
-
for (const s of await this.subscriptionsOf(id)) {
|
|
245
|
-
if (!seen.has(s.node_id))
|
|
246
|
-
queue.push(s.node_id);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
return out;
|
|
250
|
-
}
|
|
251
|
-
/** Per-NODE open-ticket counts across `root`'s view. The renderer badges each
|
|
252
|
-
* node with the tickets it raised (the human bridge's parent), so this must
|
|
253
|
-
* be per-node. Request only this view's ids: using the
|
|
254
|
-
* enriched full-canvas snapshot for a five-second viewer poll blocked crtrd
|
|
255
|
-
* behind metadata and telemetry reads for every historical node. */
|
|
256
|
-
async ticketCountsForNodes(nodeIds) {
|
|
257
|
-
return (await this.client.attentionCounts([...nodeIds])).counts;
|
|
258
|
-
}
|
|
259
|
-
async ticketCountsForView(root) {
|
|
260
|
-
return this.ticketCountsForNodes([root, ...await this.view(root)]);
|
|
261
|
-
}
|
|
262
|
-
/** True when `nodeId` has at least one active (`active` edge flag, not just a
|
|
263
|
-
* live subscriber) subscription to a node that is currently live
|
|
264
|
-
* (`active`/`idle` status). `subscriptionsOf`'s roster-backed edges carry the
|
|
265
|
-
* real per-edge `active` flag, so this filter is exact, not an over-report. */
|
|
266
|
-
async hasActiveLiveSubscription(nodeId) {
|
|
267
|
-
const subs = (await this.subscriptionsOf(nodeId)).filter((s) => s.active);
|
|
268
|
-
for (const s of subs) {
|
|
269
|
-
const row = await this.getRow(s.node_id);
|
|
270
|
-
if (row && (row.status === 'active' || row.status === 'idle'))
|
|
271
|
-
return true;
|
|
272
|
-
}
|
|
273
|
-
return false;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
// cliCanvasSource — the source selector (mirrors resolveCanvasSource)
|
|
277
|
-
/** The active read source for a CLI command. Mirrors `resolveCanvasSource`'s
|
|
278
|
-
* selection WITHOUT importing `core/canvas/source.ts` (which pulls
|
|
279
|
-
* `LocalCanvasSource` → `openDb`, failing the Stage-C import checker): an
|
|
280
|
-
* explicit `--canvas <name>` wins, else the durable `crtr canvas use` selection
|
|
281
|
-
* (`ScopeState.activeCanvas`), else the API-backed local source. The remote
|
|
282
|
-
* branch reuses the verified-openDb-free `RemoteCanvasSource` (plan Q-3). */
|
|
283
|
-
export function cliCanvasSource(opts) {
|
|
284
|
-
const scope = opts?.scope ?? 'user';
|
|
285
|
-
const name = opts?.canvasName ?? readState(scope).activeCanvas ?? null;
|
|
286
|
-
if (!name)
|
|
287
|
-
return new ApiCanvasSource();
|
|
288
|
-
const { previewEndpoint, relayToken } = resolveRemoteCanvasTarget(name, scope);
|
|
289
|
-
return new RemoteCanvasSource(previewEndpoint, relayToken);
|
|
290
|
-
}
|
|
1
|
+
var p=Object.defineProperty;var c=(r,t)=>p(r,"name",{value:t,configurable:!0});import{closeSync as m,fstatSync as w,openSync as b,readSync as S}from"node:fs";import{join as g}from"node:path";import{CrtrClient as d,ApiError as u}from"../api/index.js";import{apiErrorToCliError as C}from"../core/io.js";import{autostartDisabled as _,ensureDaemon as y}from"../daemon/manage.js";import{DAEMON_STARTUP_WINDOW_MS as N}from"../daemon/startup-policy.js";import{readState as v}from"../core/config.js";import{resolveRemoteCanvasTarget as T}from"../core/remote-canvas-target.js";import{RemoteCanvasSource as A}from"../core/canvas/remote-canvas-source.js";import{crtrHome as I}from"../core/canvas/paths.js";function l(r){return{...r,fault:r.fault??null}}c(l,"withRowFault");function M(r,t){throw r instanceof u?C(r,t):r}c(M,"rethrowAsCliError");async function U(r){try{return await h().getNode(r)}catch(t){if(t instanceof u&&t.status===404)return null;M(t)}}c(U,"getNodeOrNull");const O=4096,D=20;function R(){let r;try{r=b(g(I(),"crtrd.log"),"r");const{size:t}=w(r),e=Math.max(0,t-O),n=t-e;if(n<=0)return;const s=Buffer.alloc(n);S(r,s,0,n,e);const o=s.toString("utf8").split(`
|
|
2
|
+
`).filter(a=>a.trim()!=="").slice(-D).join(`
|
|
3
|
+
`).trim();return o===""?void 0:`crtrd.log (tail):
|
|
4
|
+
${o}`}catch{return}finally{if(r!==void 0)try{m(r)}catch{}}}c(R,"readColdStartDiagnostic");function h(r){return _()?d.forLocalSocket({autostart:!1,...r?.timeoutMs!==void 0?{timeoutMs:r.timeoutMs}:{}}):d.forLocalSocket({...r?.timeoutMs!==void 0?{timeoutMs:r.timeoutMs}:{},onColdSocket:c(async()=>{y()},"onColdSocket"),coldStartDiagnostic:R,coldStartPollWindowMs:N})}c(h,"cliClient");const x=2e3;class E{static{c(this,"ApiCanvasSource")}client;rosterCache=null;rosterInFlight=null;constructor(t=h()){this.client=t}async roster(){const t=Date.now();return this.rosterCache!==null&&t-this.rosterCache.at<x?this.rosterCache.index:this.rosterInFlight!==null?this.rosterInFlight:(this.rosterInFlight=this.client.canvasRoster().then(e=>{const n={subscriptions:new Map,subscribers:new Map};for(const s of e.edges){const i={node_id:s.to_id,active:s.active,created:s.created},o={node_id:s.from_id,active:s.active,created:s.created},a=n.subscriptions.get(s.from_id);a===void 0?n.subscriptions.set(s.from_id,[i]):a.push(i);const f=n.subscribers.get(s.to_id);f===void 0?n.subscribers.set(s.to_id,[o]):f.push(o)}return this.rosterCache={at:Date.now(),index:n},n}).finally(()=>{this.rosterInFlight=null}),this.rosterInFlight)}async orNull(t){try{return await t()}catch(e){if(e instanceof u&&e.status===404)return null;throw e}}async getNode(t){const e=await this.orNull(()=>this.client.getNode(t));return e===null?null:l(e)}async getRow(t){const e=await this.orNull(()=>this.client.getNode(t));return e===null?null:l(e)}async listNodes(t){const e=t?.status;let n;if(Array.isArray(e)){const s=new Set(e);n=(await this.client.listNodes()).filter(o=>s.has(o.status))}else e!==void 0?n=await this.client.listNodes({status:e}):n=await this.client.listNodes();return n.map(s=>l(s))}async subscriptionsOf(t){return this.roster().then(e=>e.subscriptions.get(t)??[])}async subscribersOf(t){return this.roster().then(e=>e.subscribers.get(t)??[])}async view(t){const e=new Set([t]),n=[],s=(await this.subscriptionsOf(t)).map(i=>i.node_id);for(;s.length>0;){const i=s.shift();if(!e.has(i)){e.add(i),n.push(i);for(const o of await this.subscriptionsOf(i))e.has(o.node_id)||s.push(o.node_id)}}return n}async ticketCountsForNodes(t){return(await this.client.attentionCounts([...t])).counts}async ticketCountsForView(t){return this.ticketCountsForNodes([t,...await this.view(t)])}async hasActiveLiveSubscription(t){const e=(await this.subscriptionsOf(t)).filter(n=>n.active);for(const n of e){const s=await this.getRow(n.node_id);if(s&&(s.status==="active"||s.status==="idle"))return!0}return!1}}function V(r){const t=r?.scope??"user",e=r?.canvasName??v(t).activeCanvas??null;if(!e)return new E;const{previewEndpoint:n,relayToken:s}=T(e,t);return new A(n,s)}c(V,"cliCanvasSource");export{E as ApiCanvasSource,O as COLD_START_DIAGNOSTIC_TAIL_BYTES,V as cliCanvasSource,h as cliClient,U as getNodeOrNull,R as readColdStartDiagnostic,M as rethrowAsCliError};
|
|
@@ -1,215 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// A pending "ticket" is any humanloop interaction awaiting the user: a page or
|
|
4
|
-
// an anchored review. Each lives in its human bridge node
|
|
5
|
-
// directory and is attributed through that bridge's parent relation. This
|
|
6
|
-
// subtree surfaces a direct node projection; cwd is display metadata only.
|
|
7
|
-
//
|
|
8
|
-
// Exported as a branch; `crtr canvas` (canvas.ts) mounts it.
|
|
9
|
-
import { defineBranch, defineLeaf } from '../core/command.js';
|
|
10
|
-
import { InputError } from '../core/io.js';
|
|
11
|
-
import { cliClient, cliCanvasSource } from './api-client.js';
|
|
12
|
-
/** The nodes represented in the sub-DAG rooted at `viewId` (root + view). */
|
|
13
|
-
async function viewNodeSet(source, viewId) {
|
|
14
|
-
return new Set([viewId, ...(await source.view(viewId))]);
|
|
15
|
-
}
|
|
16
|
-
// attention count
|
|
17
|
-
const attentionCount = defineLeaf({
|
|
18
|
-
name: 'count',
|
|
19
|
-
description: 'total pending human-ticket count (machine-parseable stdout.count)',
|
|
20
|
-
whenToUse: 'a lightweight summary when you just need the number, not which cwds are blocked — scope it to a node or a sub-DAG, or default to canvas-wide. Use `list` when you need to act on where to go answer.',
|
|
21
|
-
help: {
|
|
22
|
-
name: 'canvas attention count',
|
|
23
|
-
// stdout.count is parsed directly by the nav chrome — keep the contract.
|
|
24
|
-
summary: 'return the number of pending human tickets (asks, reviews, notifications); stdout.count is machine-parseable',
|
|
25
|
-
params: [
|
|
26
|
-
{
|
|
27
|
-
kind: 'flag',
|
|
28
|
-
name: 'node',
|
|
29
|
-
type: 'string',
|
|
30
|
-
required: false,
|
|
31
|
-
constraint: 'Count tickets asked by this node. Mutually exclusive with --view.',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
kind: 'flag',
|
|
35
|
-
name: 'view',
|
|
36
|
-
type: 'string',
|
|
37
|
-
required: false,
|
|
38
|
-
constraint: 'Sum tickets for all nodes in the sub-DAG rooted at this id. Mutually exclusive with --node.',
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
output: [
|
|
42
|
-
{ name: 'count', type: 'integer', required: true, constraint: 'Total pending human tickets in the requested scope.' },
|
|
43
|
-
],
|
|
44
|
-
outputKind: 'object',
|
|
45
|
-
effects: ['Read-only: scans humanloop interaction dirs.'],
|
|
46
|
-
},
|
|
47
|
-
run: async (input) => {
|
|
48
|
-
const nodeId = input['node'];
|
|
49
|
-
const viewId = input['view'];
|
|
50
|
-
if (nodeId !== undefined && viewId !== undefined) {
|
|
51
|
-
throw new InputError({
|
|
52
|
-
error: 'ambiguous_scope',
|
|
53
|
-
message: '--node and --view are mutually exclusive',
|
|
54
|
-
next: 'Use one of --node <id>, --view <id>, or neither (canvas-wide).',
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
if (nodeId !== undefined) {
|
|
58
|
-
const source = cliCanvasSource();
|
|
59
|
-
const node = await source.getNode(nodeId);
|
|
60
|
-
if (node === null) {
|
|
61
|
-
throw new InputError({
|
|
62
|
-
error: 'not_found',
|
|
63
|
-
message: `no node: ${nodeId}`,
|
|
64
|
-
next: 'List nodes with `crtr node inspect list`.',
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
const counts = await cliClient().attentionCounts([nodeId]);
|
|
68
|
-
return { count: counts.counts[nodeId] ?? 0 };
|
|
69
|
-
}
|
|
70
|
-
const items = (await cliClient().attention()).items;
|
|
71
|
-
if (viewId !== undefined) {
|
|
72
|
-
const source = cliCanvasSource();
|
|
73
|
-
if ((await source.getNode(viewId)) === null) {
|
|
74
|
-
throw new InputError({
|
|
75
|
-
error: 'not_found',
|
|
76
|
-
message: `no node: ${viewId}`,
|
|
77
|
-
next: 'List nodes with `crtr node inspect list`.',
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
const ids = await viewNodeSet(source, viewId);
|
|
81
|
-
const total = items.filter((it) => ids.has(it.node_id)).reduce((s, e) => s + e.count, 0);
|
|
82
|
-
return { count: total };
|
|
83
|
-
}
|
|
84
|
-
// Canvas-wide — sum every asking-node entry.
|
|
85
|
-
return { count: items.reduce((s, e) => s + e.count, 0) };
|
|
86
|
-
},
|
|
87
|
-
});
|
|
88
|
-
// attention list
|
|
89
|
-
const attentionList = defineLeaf({
|
|
90
|
-
name: 'list',
|
|
91
|
-
description: 'itemised list of cwds with pending human tickets',
|
|
92
|
-
whenToUse: 'finding which agents are blocked waiting on the user — an itemised list of the cwds with pending tickets (asks, reviews, notifications), oldest first, so you know where to go answer. Scope it to a sub-DAG or list canvas-wide. Use `canvas attention count` instead when you just need the number.',
|
|
93
|
-
help: {
|
|
94
|
-
name: 'canvas attention list',
|
|
95
|
-
summary: 'list nodes that asked pending human tickets',
|
|
96
|
-
params: [
|
|
97
|
-
{
|
|
98
|
-
kind: 'flag',
|
|
99
|
-
name: 'view',
|
|
100
|
-
type: 'string',
|
|
101
|
-
required: false,
|
|
102
|
-
constraint: 'Scope the list to the sub-DAG rooted at this node id. Omit for canvas-wide.',
|
|
103
|
-
},
|
|
104
|
-
],
|
|
105
|
-
output: [
|
|
106
|
-
{
|
|
107
|
-
name: 'items',
|
|
108
|
-
type: 'object[]',
|
|
109
|
-
required: true,
|
|
110
|
-
constraint: 'Each: {node_id, name, cwd, count}. One entry per asking node with count > 0.',
|
|
111
|
-
},
|
|
112
|
-
{ name: 'total', type: 'integer', required: true, constraint: 'Sum of counts across all entries.' },
|
|
113
|
-
],
|
|
114
|
-
outputKind: 'object',
|
|
115
|
-
effects: ['Read-only: scans humanloop interaction dirs.'],
|
|
116
|
-
},
|
|
117
|
-
run: async (input) => {
|
|
118
|
-
const viewId = input['view'];
|
|
119
|
-
let items = (await cliClient().attention()).items;
|
|
120
|
-
if (viewId !== undefined) {
|
|
121
|
-
const source = cliCanvasSource();
|
|
122
|
-
if ((await source.getNode(viewId)) === null) {
|
|
123
|
-
throw new InputError({
|
|
124
|
-
error: 'not_found',
|
|
125
|
-
message: `no node: ${viewId}`,
|
|
126
|
-
next: 'List nodes with `crtr node inspect list`.',
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
const ids = await viewNodeSet(source, viewId);
|
|
130
|
-
items = items.filter((it) => ids.has(it.node_id));
|
|
131
|
-
}
|
|
132
|
-
const total = items.reduce((s, e) => s + e.count, 0);
|
|
133
|
-
return { items, total };
|
|
134
|
-
},
|
|
135
|
-
});
|
|
136
|
-
// attention map
|
|
137
|
-
const attentionMap = defineLeaf({
|
|
138
|
-
name: 'map',
|
|
139
|
-
description: 'per-node ticket counts for a visible set, batched in one pass',
|
|
140
|
-
whenToUse: 'labelling every node in a UI with its pending-ticket count in one batched pass — the form nav chrome polls (one process, one JSON blob) instead of N count shell-outs',
|
|
141
|
-
tier: 'hidden',
|
|
142
|
-
help: {
|
|
143
|
-
name: 'canvas attention map',
|
|
144
|
-
summary: 'per-node pending human-ticket counts for a visible set of nodes in ONE pass — the batched form the nav chrome polls (one process, one JSON blob) instead of N count shell-outs',
|
|
145
|
-
params: [
|
|
146
|
-
{
|
|
147
|
-
kind: 'flag',
|
|
148
|
-
name: 'view',
|
|
149
|
-
type: 'string',
|
|
150
|
-
required: false,
|
|
151
|
-
constraint: 'Include this node and its whole sub-DAG (root + reports recursively). Union with --nodes. At least one of --view/--nodes is required.',
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
kind: 'flag',
|
|
155
|
-
name: 'nodes',
|
|
156
|
-
type: 'string',
|
|
157
|
-
required: false,
|
|
158
|
-
constraint: 'Comma-separated explicit node ids to include (e.g. ancestry + peers). Union with --view.',
|
|
159
|
-
},
|
|
160
|
-
],
|
|
161
|
-
output: [
|
|
162
|
-
{
|
|
163
|
-
name: 'counts',
|
|
164
|
-
type: 'object',
|
|
165
|
-
required: true,
|
|
166
|
-
constraint: 'Map of node_id → pending human-ticket count. Every requested id is present (0 when none).',
|
|
167
|
-
},
|
|
168
|
-
],
|
|
169
|
-
outputKind: 'object',
|
|
170
|
-
effects: ['Read-only: scans the registered humanloop node root once.'],
|
|
171
|
-
},
|
|
172
|
-
run: async (input) => {
|
|
173
|
-
const viewId = input['view'];
|
|
174
|
-
const nodesRaw = input['nodes'];
|
|
175
|
-
if (viewId === undefined && (nodesRaw === undefined || nodesRaw.trim() === '')) {
|
|
176
|
-
throw new InputError({
|
|
177
|
-
error: 'missing_scope',
|
|
178
|
-
message: 'at least one of --view <id> or --nodes <a,b,c> is required',
|
|
179
|
-
next: 'Pass --view <root> to cover a sub-DAG, --nodes <a,b,c> for an explicit set, or both.',
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
const source = cliCanvasSource();
|
|
183
|
-
const ids = new Set();
|
|
184
|
-
if (viewId !== undefined) {
|
|
185
|
-
if ((await source.getNode(viewId)) === null) {
|
|
186
|
-
throw new InputError({
|
|
187
|
-
error: 'not_found',
|
|
188
|
-
message: `no node: ${viewId}`,
|
|
189
|
-
next: 'List nodes with `crtr node inspect list`.',
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
ids.add(viewId);
|
|
193
|
-
for (const id of await source.view(viewId))
|
|
194
|
-
ids.add(id);
|
|
195
|
-
}
|
|
196
|
-
if (nodesRaw !== undefined) {
|
|
197
|
-
for (const id of nodesRaw.split(',').map((s) => s.trim()).filter((s) => s !== ''))
|
|
198
|
-
ids.add(id);
|
|
199
|
-
}
|
|
200
|
-
const counts = await cliClient().attentionCounts([...ids]);
|
|
201
|
-
return { counts: counts.counts };
|
|
202
|
-
},
|
|
203
|
-
});
|
|
204
|
-
// Export — mounted under `crtr canvas`
|
|
205
|
-
export const attentionBranch = defineBranch({
|
|
206
|
-
name: 'attention',
|
|
207
|
-
description: 'count/list pending human tickets across the graph',
|
|
208
|
-
whenToUse: 'checking whether any agent on the canvas is blocked waiting on the user, and where: count the pending tickets (asks, reviews, notifications) or list the cwds that have them. Scope it to a node or a sub-DAG, or go canvas-wide. Use `canvas dashboard` instead for the graph SHAPE, or `node inspect list` for a plain node roster',
|
|
209
|
-
help: {
|
|
210
|
-
name: 'canvas attention',
|
|
211
|
-
summary: 'aggregate pending human tickets across the canvas',
|
|
212
|
-
model: '`count` returns a single integer (stdout.count is machine-parseable) and accepts --node or --view; `list` returns itemised asking-node entries and accepts --view only. Both default to canvas-wide. A ticket is any humanloop interaction awaiting the user: an ask, a review, or a notification.',
|
|
213
|
-
},
|
|
214
|
-
children: [attentionCount, attentionList, attentionMap],
|
|
215
|
-
});
|
|
1
|
+
var p=Object.defineProperty;var c=(o,e)=>p(o,"name",{value:e,configurable:!0});import{defineBranch as f,defineLeaf as h}from"../core/command.js";import{InputError as d}from"../core/io.js";import{cliClient as u,cliCanvasSource as l}from"./api-client.js";async function w(o,e){return new Set([e,...await o.view(e)])}c(w,"viewNodeSet");const g=h({name:"count",description:"total pending human-ticket count (machine-parseable stdout.count)",whenToUse:"a lightweight summary when you just need the number, not which cwds are blocked \u2014 scope it to a node or a sub-DAG, or default to canvas-wide. Use `list` when you need to act on where to go answer.",help:{name:"canvas attention count",summary:"return the number of pending human tickets (asks, reviews, notifications); stdout.count is machine-parseable",params:[{kind:"flag",name:"node",type:"string",required:!1,constraint:"Count tickets asked by this node. Mutually exclusive with --view."},{kind:"flag",name:"view",type:"string",required:!1,constraint:"Sum tickets for all nodes in the sub-DAG rooted at this id. Mutually exclusive with --node."}],output:[{name:"count",type:"integer",required:!0,constraint:"Total pending human tickets in the requested scope."}],outputKind:"object",effects:["Read-only: scans humanloop interaction dirs."]},run:c(async o=>{const e=o.node,t=o.view;if(e!==void 0&&t!==void 0)throw new d({error:"ambiguous_scope",message:"--node and --view are mutually exclusive",next:"Use one of --node <id>, --view <id>, or neither (canvas-wide)."});if(e!==void 0){if(await l().getNode(e)===null)throw new d({error:"not_found",message:`no node: ${e}`,next:"List nodes with `crtr node inspect list`."});return{count:(await u().attentionCounts([e])).counts[e]??0}}const s=(await u().attention()).items;if(t!==void 0){const n=l();if(await n.getNode(t)===null)throw new d({error:"not_found",message:`no node: ${t}`,next:"List nodes with `crtr node inspect list`."});const i=await w(n,t);return{count:s.filter(r=>i.has(r.node_id)).reduce((r,m)=>r+m.count,0)}}return{count:s.reduce((n,i)=>n+i.count,0)}},"run")}),v=h({name:"list",description:"itemised list of cwds with pending human tickets",whenToUse:"finding which agents are blocked waiting on the user \u2014 an itemised list of the cwds with pending tickets (asks, reviews, notifications), oldest first, so you know where to go answer. Scope it to a sub-DAG or list canvas-wide. Use `canvas attention count` instead when you just need the number.",help:{name:"canvas attention list",summary:"list nodes that asked pending human tickets",params:[{kind:"flag",name:"view",type:"string",required:!1,constraint:"Scope the list to the sub-DAG rooted at this node id. Omit for canvas-wide."}],output:[{name:"items",type:"object[]",required:!0,constraint:"Each: {node_id, name, cwd, count}. One entry per asking node with count > 0."},{name:"total",type:"integer",required:!0,constraint:"Sum of counts across all entries."}],outputKind:"object",effects:["Read-only: scans humanloop interaction dirs."]},run:c(async o=>{const e=o.view;let t=(await u().attention()).items;if(e!==void 0){const n=l();if(await n.getNode(e)===null)throw new d({error:"not_found",message:`no node: ${e}`,next:"List nodes with `crtr node inspect list`."});const i=await w(n,e);t=t.filter(a=>i.has(a.node_id))}const s=t.reduce((n,i)=>n+i.count,0);return{items:t,total:s}},"run")}),b=h({name:"map",description:"per-node ticket counts for a visible set, batched in one pass",whenToUse:"labelling every node in a UI with its pending-ticket count in one batched pass \u2014 the form nav chrome polls (one process, one JSON blob) instead of N count shell-outs",tier:"hidden",help:{name:"canvas attention map",summary:"per-node pending human-ticket counts for a visible set of nodes in ONE pass \u2014 the batched form the nav chrome polls (one process, one JSON blob) instead of N count shell-outs",params:[{kind:"flag",name:"view",type:"string",required:!1,constraint:"Include this node and its whole sub-DAG (root + reports recursively). Union with --nodes. At least one of --view/--nodes is required."},{kind:"flag",name:"nodes",type:"string",required:!1,constraint:"Comma-separated explicit node ids to include (e.g. ancestry + peers). Union with --view."}],output:[{name:"counts",type:"object",required:!0,constraint:"Map of node_id \u2192 pending human-ticket count. Every requested id is present (0 when none)."}],outputKind:"object",effects:["Read-only: scans the registered humanloop node root once."]},run:c(async o=>{const e=o.view,t=o.nodes;if(e===void 0&&(t===void 0||t.trim()===""))throw new d({error:"missing_scope",message:"at least one of --view <id> or --nodes <a,b,c> is required",next:"Pass --view <root> to cover a sub-DAG, --nodes <a,b,c> for an explicit set, or both."});const s=l(),n=new Set;if(e!==void 0){if(await s.getNode(e)===null)throw new d({error:"not_found",message:`no node: ${e}`,next:"List nodes with `crtr node inspect list`."});n.add(e);for(const a of await s.view(e))n.add(a)}if(t!==void 0)for(const a of t.split(",").map(r=>r.trim()).filter(r=>r!==""))n.add(a);return{counts:(await u().attentionCounts([...n])).counts}},"run")}),S=f({name:"attention",description:"count/list pending human tickets across the graph",whenToUse:"checking whether any agent on the canvas is blocked waiting on the user, and where: count the pending tickets (asks, reviews, notifications) or list the cwds that have them. Scope it to a node or a sub-DAG, or go canvas-wide. Use `canvas dashboard` instead for the graph SHAPE, or `node inspect list` for a plain node roster",help:{name:"canvas attention",summary:"aggregate pending human tickets across the canvas",model:"`count` returns a single integer (stdout.count is machine-parseable) and accepts --node or --view; `list` returns itemised asking-node entries and accepts --view only. Both default to canvas-wide. A ticket is any humanloop interaction awaiting the user: an ask, a review, or a notification."},children:[g,v,b]});export{S as attentionBranch};
|