@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,331 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// canvas/ is the pure data-access layer (nodes + edges). This is where the
|
|
4
|
-
// design's *rules* live: how a node comes into being, the env contract its pi
|
|
5
|
-
// process inherits, and the spawn-time wiring of the subscription spine.
|
|
6
|
-
//
|
|
7
|
-
// Two ways a node is born:
|
|
8
|
-
// • root — a user-opened entry point (bare `crtr`).
|
|
9
|
-
// No parent; resident by default (it's a conversation you live in).
|
|
10
|
-
// • child — spawned by another node. Terminal until it must persist. On
|
|
11
|
-
// spawn the PARENT auto-subscribes (active) to the child, so it
|
|
12
|
-
// learns when the work finishes — this seeds the subscription
|
|
13
|
-
// graph to mirror the spawn structure. A `spawned_by` audit edge
|
|
14
|
-
// is also recorded.
|
|
15
|
-
import { envHomeOverride, envRuntimeHomeOverride } from '../../shared/env.js';
|
|
16
|
-
import { randomBytes } from 'node:crypto';
|
|
17
|
-
import { mkdirSync } from 'node:fs';
|
|
18
|
-
import { createNode, getNode, getRow, subscribe, recordSpawn, subscribersOf, contextDir, } from '../canvas/index.js';
|
|
19
|
-
import { memoryDir } from './memory.js';
|
|
20
|
-
import { resolveInstallId } from '../canvas/install-id.js';
|
|
21
|
-
import { canvasDbPath } from '../canvas/paths.js';
|
|
22
|
-
import { usage } from '../errors.js';
|
|
23
|
-
import { assertProfileAvailableForBirth } from '../profiles/deletion-reservation.js';
|
|
24
|
-
import { admitNodeCreate } from '../command-hooks/lifecycle-create.js';
|
|
25
|
-
import { fanDoctrineWake } from './close.js';
|
|
26
|
-
import { BIRTH_ANNOUNCEMENT_MARKER, birthAnnouncementBody } from '../../shared/birth-announcement.js';
|
|
27
|
-
// crtrd sets this once at boot (setInstallId) and it wins unconditionally —
|
|
28
|
-
// a daemon process only ever serves one canvas home for its whole lifetime,
|
|
29
|
-
// so no keying is needed there. Every OTHER in-process caller (tests,
|
|
30
|
-
// in-process tooling — spawnNode is called directly by many existing test
|
|
31
|
-
// files, several of which switch CRTR_HOME + closeDb() between cases) has no
|
|
32
|
-
// such guarantee, so its lazy cache is keyed by canvas-db path — the same
|
|
33
|
-
// identity openDb() itself keys its handle cache by (db.ts's `handles` map) —
|
|
34
|
-
// so a CRTR_HOME switch can never leak one canvas's install id onto another's
|
|
35
|
-
// nodes.
|
|
36
|
-
let daemonInstallId;
|
|
37
|
-
const lazyInstallIdByHome = new Map();
|
|
38
|
-
/** Explicitly set the resolved install id. crtrd calls this once at boot,
|
|
39
|
-
* immediately after `resolveInstallId()` — see crtrd.ts — so a provisioning
|
|
40
|
-
* mismatch fails the daemon loudly at STARTUP rather than lazily on first
|
|
41
|
-
* spawn. Exported for the daemon only; every other caller gets it lazily via
|
|
42
|
-
* `installId()` below. */
|
|
43
|
-
export function setInstallId(id) {
|
|
44
|
-
daemonInstallId = id;
|
|
45
|
-
}
|
|
46
|
-
/** Lazily resolve and cache the canvas-install id, keyed by the currently
|
|
47
|
-
* active canvas home so a process that switches `CRTR_HOME` (tests, in-
|
|
48
|
-
* process tooling) never keeps stamping a stale home's install id onto a
|
|
49
|
-
* different home's nodes. crtrd's boot-set value (`setInstallId`) always
|
|
50
|
-
* wins when present — a daemon never switches homes mid-process. */
|
|
51
|
-
function installId() {
|
|
52
|
-
if (daemonInstallId !== undefined)
|
|
53
|
-
return daemonInstallId;
|
|
54
|
-
const home = canvasDbPath();
|
|
55
|
-
const cached = lazyInstallIdByHome.get(home);
|
|
56
|
-
if (cached !== undefined)
|
|
57
|
-
return cached;
|
|
58
|
-
const resolved = resolveInstallId();
|
|
59
|
-
lazyInstallIdByHome.set(home, resolved);
|
|
60
|
-
return resolved;
|
|
61
|
-
}
|
|
62
|
-
/** Raw time-sortable + random id shape — used for non-node opaque ids such as
|
|
63
|
-
* focus ids (`f-…`) that are NOT canvas node identities and keep their
|
|
64
|
-
* historical 2-segment shape (unstamped by the canvas-install id). */
|
|
65
|
-
export function newJobId() {
|
|
66
|
-
return `${Date.now().toString(36)}-${randomBytes(4).toString('hex')}`;
|
|
67
|
-
}
|
|
68
|
-
/** Generate a NODE id: `<install>-<time36>-<rand4hex>` (3 segments) — the
|
|
69
|
-
* canvas-install id stamped onto the historical job-id shape, so every
|
|
70
|
-
* minted node id is a globally-unique NAME that also names the canvas that
|
|
71
|
-
* minted it (see the unified-chat/addressing design's "ID scheme"). crtrd is
|
|
72
|
-
* the sole node minter. */
|
|
73
|
-
export function newNodeId() {
|
|
74
|
-
return `${installId()}-${newJobId()}`;
|
|
75
|
-
}
|
|
76
|
-
// The node id itself is an OPAQUE, caller-meaningless NAME (see the unified
|
|
77
|
-
// chat/addressing design's "ID scheme") — never parsed for structure. This is
|
|
78
|
-
// therefore a single non-structural, charset-safety predicate: lowercase
|
|
79
|
-
// [a-z0-9-] only (so 'remote42' — zero hyphens — is exactly as valid as any
|
|
80
|
-
// stamped 3-segment id) and a length cap. 128 is chosen to exactly match
|
|
81
|
-
// paths.ts's `isSafeNodeId` filesystem-path-segment boundary (the sole other
|
|
82
|
-
// place a node id's raw byte length is safety-checked) rather than picking an
|
|
83
|
-
// independent number that could drift out of sync with it. Every id that
|
|
84
|
-
// passes here is automatically also a safe fs path segment, a safe
|
|
85
|
-
// `crtr/<id>` git branch suffix, and never contains '.', '..', '/', '\\', or a
|
|
86
|
-
// null byte (the charset alone rules all of those out) — no sink needs a
|
|
87
|
-
// leading/trailing/double-hyphen restriction on top, so none is imposed.
|
|
88
|
-
const NODE_ID_MAX_LEN = 128;
|
|
89
|
-
const NODE_ID_FORMAT = /^[a-z0-9-]+$/;
|
|
90
|
-
/** Thrown when a caller-specified `--node-id` (or its API twin `node_id`)
|
|
91
|
-
* already names a live node. Distinguishable from every other spawn failure
|
|
92
|
-
* so a caller can treat it as "attach instead of create" per the unified
|
|
93
|
-
* chat/addressing design's ensure semantics — never overwrite, never
|
|
94
|
-
* double-spawn. Mapped to HTTP 409 in `src/daemon/api/map.ts`. */
|
|
95
|
-
export class NodeIdConflictError extends Error {
|
|
96
|
-
nodeId;
|
|
97
|
-
constructor(nodeId) {
|
|
98
|
-
super(`node already exists: ${nodeId}`);
|
|
99
|
-
this.nodeId = nodeId;
|
|
100
|
-
this.name = 'NodeIdConflictError';
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/** Format-validate a CALLER-SUPPLIED node id operand. Throws a usage error on
|
|
104
|
-
* a bad shape; never touches the canvas. Shared by the early best-effort
|
|
105
|
-
* preflight (`preflightNodeId`, run before any worktree is allocated) and the
|
|
106
|
-
* authoritative check immediately before node creation (`validatedExplicitNodeId`
|
|
107
|
-
* below) so the two can never disagree about what shape is valid. */
|
|
108
|
-
function validateNodeIdFormat(nodeId) {
|
|
109
|
-
if (nodeId.length === 0 || nodeId.length > NODE_ID_MAX_LEN) {
|
|
110
|
-
throw usage(`invalid --node-id '${nodeId}': must be 1-${NODE_ID_MAX_LEN} characters`, {
|
|
111
|
-
next: `Pass an id-safe string (lowercase letters, digits, hyphens) of at most ${NODE_ID_MAX_LEN} characters.`,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
if (!NODE_ID_FORMAT.test(nodeId)) {
|
|
115
|
-
throw usage(`invalid --node-id '${nodeId}': must contain only lowercase letters, digits, and hyphens (e.g. 'remote42', 'my-node-1')`, { next: 'Use only lowercase letters, digits, and hyphens.' });
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/** Best-effort preflight for a caller-supplied `--node-id`, run BEFORE any
|
|
119
|
-
* worktree is allocated for it (`spawnChild` in spawn.ts) — so a malformed or
|
|
120
|
-
* already-taken id fails before there is anything to leak/clean up. Format
|
|
121
|
-
* validation here is authoritative (an id that fails it can never become
|
|
122
|
-
* valid); the duplicate check is advisory only — a concurrent create can
|
|
123
|
-
* still win the race between this check and the synchronous check-then-
|
|
124
|
-
* create below, which remains the SOLE authoritative decider. */
|
|
125
|
-
export function preflightNodeId(nodeId) {
|
|
126
|
-
validateNodeIdFormat(nodeId);
|
|
127
|
-
if (getNode(nodeId) !== null)
|
|
128
|
-
throw new NodeIdConflictError(nodeId);
|
|
129
|
-
}
|
|
130
|
-
/** Validate + duplicate-check a CALLER-SUPPLIED node id operand before it
|
|
131
|
-
* reaches the canvas. Internally-minted ids (newNodeId()-derived) already
|
|
132
|
-
* satisfy the format unconditionally and are never a duplicate (they embed a
|
|
133
|
-
* fresh timestamp+random suffix), so this is only ever exercised by an
|
|
134
|
-
* explicit `opts.nodeId` from a real caller (`--node-id` / API `node_id`).
|
|
135
|
-
* It runs inside the create critical section immediately before `createNode`,
|
|
136
|
-
* so concurrent explicit-id births resolve to one winner and one
|
|
137
|
-
* `NodeIdConflictError`. */
|
|
138
|
-
function validatedExplicitNodeId(nodeId) {
|
|
139
|
-
validateNodeIdFormat(nodeId);
|
|
140
|
-
if (getNode(nodeId) !== null)
|
|
141
|
-
throw new NodeIdConflictError(nodeId);
|
|
142
|
-
return nodeId;
|
|
143
|
-
}
|
|
144
|
-
/** The root of a node's spine: walk the `parent` column up to `parent == null`.
|
|
145
|
-
* Cycle-guarded (parents must not cycle, but never loop forever). Lives in the
|
|
146
|
-
* node layer (not placement) so the env-builder and placement both reach it
|
|
147
|
-
* without an import cycle — `CRTR_SUBTREE` is emitted as `rootOfSpine(nodeId)`
|
|
148
|
-
* at every launch site. */
|
|
149
|
-
export function rootOfSpine(nodeId) {
|
|
150
|
-
let cur = nodeId;
|
|
151
|
-
const seen = new Set();
|
|
152
|
-
for (;;) {
|
|
153
|
-
if (seen.has(cur))
|
|
154
|
-
return cur;
|
|
155
|
-
seen.add(cur);
|
|
156
|
-
const row = getRow(cur);
|
|
157
|
-
if (row === null || row.parent == null)
|
|
158
|
-
return cur;
|
|
159
|
-
cur = row.parent;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/** Read the current node's identity from the environment. A spawned pi process
|
|
163
|
-
* runs with CRTR_NODE_ID set; its own `crtr` invocations spawn children under
|
|
164
|
-
* it by reading CRTR_NODE_ID as the parent. */
|
|
165
|
-
export function currentNodeContext() {
|
|
166
|
-
const env = process.env;
|
|
167
|
-
return {
|
|
168
|
-
nodeId: env['CRTR_NODE_ID'] ?? null,
|
|
169
|
-
kind: env['CRTR_KIND'] ?? null,
|
|
170
|
-
mode: env['CRTR_MODE'] ?? null,
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
/** The env injected into a node's pi process. Self-gating extensions read
|
|
174
|
-
* CRTR_KIND/CRTR_MODE to flip behavior on polymorph without a respawn; the
|
|
175
|
-
* feed/inbox machinery reads CRTR_NODE_ID. */
|
|
176
|
-
export function nodeEnv(meta) {
|
|
177
|
-
const env = {
|
|
178
|
-
CRTR_NODE_ID: meta.node_id,
|
|
179
|
-
CRTR_KIND: meta.kind,
|
|
180
|
-
CRTR_MODE: meta.mode,
|
|
181
|
-
CRTR_LIFECYCLE: meta.lifecycle,
|
|
182
|
-
CRTR_NODE_CWD: meta.cwd,
|
|
183
|
-
// The node's own context dir (canvas home), as an ABSOLUTE path. The engine
|
|
184
|
-
// runs with cwd = CRTR_NODE_CWD (the project), so a relative `context/`
|
|
185
|
-
// resolves into the REPO, not here — agents must address artifacts via this.
|
|
186
|
-
CRTR_CONTEXT_DIR: contextDir(meta.node_id),
|
|
187
|
-
CRTR_CYCLES: (meta.cycles ?? 0).toString(),
|
|
188
|
-
// The runtime→resolver seam: memory-resolver.ts/scope.ts/config.ts read
|
|
189
|
-
// this process-wide env var to pull in the node's profile memory store and
|
|
190
|
-
// multi-project pointer set. '' (never omitted) only for historical
|
|
191
|
-
// null-profile rows, matching every other CRTR_* scalar here.
|
|
192
|
-
CRTR_PROFILE_ID: meta.profile_id ?? '',
|
|
193
|
-
// The Claude subscription adapter re-injects pi's docs block as a hidden
|
|
194
|
-
// message whenever a turn's prompt mentions pi. canvas-prompt-scrub already
|
|
195
|
-
// removes that block from the system prompt, so re-injection would only put
|
|
196
|
-
// the adapter's own fallback copy back into the conversation. Never inject.
|
|
197
|
-
PI_CLAUDE_OAUTH_REINJECT_SCOPE: 'never',
|
|
198
|
-
};
|
|
199
|
-
if (meta.parent)
|
|
200
|
-
env['CRTR_PARENT_NODE_ID'] = meta.parent;
|
|
201
|
-
// Propagate an explicit canvas home so children share the same canvas.
|
|
202
|
-
const home = envHomeOverride();
|
|
203
|
-
if (home !== undefined && home !== '')
|
|
204
|
-
env['CRTR_HOME'] = home;
|
|
205
|
-
// Propagate an explicit runtime home so broker-side `crtr` invocations use
|
|
206
|
-
// the same installed generation despite an isolated HOME.
|
|
207
|
-
const runtimeHome = envRuntimeHomeOverride();
|
|
208
|
-
if (runtimeHome !== undefined && runtimeHome !== '')
|
|
209
|
-
env['CRTR_RUNTIME_HOME'] = runtimeHome;
|
|
210
|
-
// Propagate the subtree-root node id. The broker uses it to group a subtree;
|
|
211
|
-
// each launch site also emits the authoritative rootOfSpine(nodeId) over this
|
|
212
|
-
// passthrough.
|
|
213
|
-
const subtree = process.env['CRTR_SUBTREE'];
|
|
214
|
-
if (subtree !== undefined && subtree !== '')
|
|
215
|
-
env['CRTR_SUBTREE'] = subtree;
|
|
216
|
-
// Merge any launch-spec env last (it may override / extend).
|
|
217
|
-
return { ...env, ...(meta.launch?.env ?? {}) };
|
|
218
|
-
}
|
|
219
|
-
/** Create a node on the canvas and wire its spawn-time edges.
|
|
220
|
-
*
|
|
221
|
-
* For a child (parent given): the parent auto-subscribes ACTIVE to the child
|
|
222
|
-
* (so it's woken when the child finishes), and a spawned_by audit edge is
|
|
223
|
-
* recorded. For a root (no parent): no edges, resident by default. */
|
|
224
|
-
export async function spawnNode(opts) {
|
|
225
|
-
const nodeId = opts.nodeId !== undefined ? (validateNodeIdFormat(opts.nodeId), opts.nodeId) : newNodeId();
|
|
226
|
-
const parent = opts.parent ?? null;
|
|
227
|
-
const isRoot = parent === null;
|
|
228
|
-
// Provenance is independent of the spine: a root has no parent but still
|
|
229
|
-
// records who spawned it. A child's spawner is its parent unless overridden.
|
|
230
|
-
const spawnedBy = opts.spawnedBy ?? parent;
|
|
231
|
-
const creator = opts.creator ?? null;
|
|
232
|
-
const mode = opts.mode ?? 'base';
|
|
233
|
-
// A user-opened root is resident (a conversation you live in); a spawned node
|
|
234
|
-
// is terminal until it must persist (promotion handles that later).
|
|
235
|
-
const lifecycle = opts.lifecycle ?? (isRoot ? 'resident' : 'terminal');
|
|
236
|
-
const meta = {
|
|
237
|
-
node_id: nodeId,
|
|
238
|
-
name: opts.name ?? opts.kind,
|
|
239
|
-
description: opts.description,
|
|
240
|
-
cycles: 0,
|
|
241
|
-
created: new Date().toISOString(),
|
|
242
|
-
cwd: opts.cwd,
|
|
243
|
-
// Broker is the only host: every node runs on the headless broker; a tmux
|
|
244
|
-
// pane is only an attach viewer.
|
|
245
|
-
host_kind: 'broker',
|
|
246
|
-
profile_id: opts.profile_id ?? null,
|
|
247
|
-
kind: opts.kind,
|
|
248
|
-
mode,
|
|
249
|
-
lifecycle,
|
|
250
|
-
// Birth snapshots already represent this persona, so no transition is pending.
|
|
251
|
-
persona_ack: { kind: opts.kind, mode, lifecycle },
|
|
252
|
-
status: 'active',
|
|
253
|
-
parent,
|
|
254
|
-
spawned_by: spawnedBy,
|
|
255
|
-
creator,
|
|
256
|
-
fork_from: opts.forkFrom,
|
|
257
|
-
fork_source_file: opts.forkSourceFile,
|
|
258
|
-
review_binding: opts.reviewBinding,
|
|
259
|
-
model_override: opts.modelOverride ?? null,
|
|
260
|
-
passive_default: opts.passiveDefault ?? false,
|
|
261
|
-
...(opts.managedWorktree !== undefined ? { managed_worktree: opts.managedWorktree } : {}),
|
|
262
|
-
intent: null,
|
|
263
|
-
deadline_at: opts.deadlineAt ?? null,
|
|
264
|
-
pi_session_id: null,
|
|
265
|
-
pi_session_file: null,
|
|
266
|
-
launch: opts.launch,
|
|
267
|
-
};
|
|
268
|
-
// Validate BEFORE minting: a bad parent must leave no half-born orphan row or
|
|
269
|
-
// dirs behind, so the parent's existence is checked before createNode
|
|
270
|
-
// scaffolds anything on disk or in the db.
|
|
271
|
-
if (parent !== null && getNode(parent) === null) {
|
|
272
|
-
throw new Error(`cannot spawn under unknown parent node: ${parent}`);
|
|
273
|
-
}
|
|
274
|
-
if (creator !== null && getNode(creator) === null) {
|
|
275
|
-
throw new Error(`cannot spawn from unknown creator node: ${creator}`);
|
|
276
|
-
}
|
|
277
|
-
assertProfileAvailableForBirth(meta.profile_id ?? null);
|
|
278
|
-
const releaseCreateGate = await admitNodeCreate({
|
|
279
|
-
kind: meta.kind,
|
|
280
|
-
mode: meta.mode,
|
|
281
|
-
cwd: meta.cwd,
|
|
282
|
-
profile: meta.profile_id ?? null,
|
|
283
|
-
root: isRoot,
|
|
284
|
-
parentId: parent,
|
|
285
|
-
requestingNodeId: creator,
|
|
286
|
-
lifecycle,
|
|
287
|
-
replaces: opts.replaces ?? null,
|
|
288
|
-
});
|
|
289
|
-
try {
|
|
290
|
-
if (opts.nodeId !== undefined)
|
|
291
|
-
validatedExplicitNodeId(opts.nodeId);
|
|
292
|
-
await opts.beforeCreate?.();
|
|
293
|
-
createNode(meta, opts.outcomeDelivery === undefined ? undefined : { outcomeDelivery: opts.outcomeDelivery });
|
|
294
|
-
}
|
|
295
|
-
finally {
|
|
296
|
-
releaseCreateGate();
|
|
297
|
-
}
|
|
298
|
-
// Create the node-local memory directory so substrate docs can be written
|
|
299
|
-
// directly into it without a separate mkdir. Skip for ephemeral human-bridge
|
|
300
|
-
// rows (kind 'human') — they are not agent nodes.
|
|
301
|
-
if (meta.kind !== 'human') {
|
|
302
|
-
mkdirSync(memoryDir(meta.node_id), { recursive: true });
|
|
303
|
-
}
|
|
304
|
-
if (parent !== null && opts.subscribe !== false) {
|
|
305
|
-
// The load-bearing seed: parent subscribes (active) to child so it learns
|
|
306
|
-
// when the work finishes. This mirrors spawn structure into the spine.
|
|
307
|
-
// A root (parent=null) gets NO subscription — nobody is woken by it.
|
|
308
|
-
subscribe(parent, meta.node_id, true);
|
|
309
|
-
}
|
|
310
|
-
if (parent !== null && creator !== parent) {
|
|
311
|
-
try {
|
|
312
|
-
fanDoctrineWake(meta.node_id, subscribersOf(meta.node_id), `Child created — ${meta.name} (${meta.node_id}, ${meta.kind})`, {
|
|
313
|
-
birth_announcement: BIRTH_ANNOUNCEMENT_MARKER,
|
|
314
|
-
body: birthAnnouncementBody({
|
|
315
|
-
name: meta.name,
|
|
316
|
-
nodeId: meta.node_id,
|
|
317
|
-
kind: meta.kind,
|
|
318
|
-
creator: creator === null ? 'an external process' : getNode(creator).name,
|
|
319
|
-
}),
|
|
320
|
-
}, 'deferred');
|
|
321
|
-
}
|
|
322
|
-
catch {
|
|
323
|
-
/* a failed birth announcement never prevents the child from existing */
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
// Audit-only provenance edge — recorded for a root too (from its spawner).
|
|
327
|
-
if (spawnedBy !== null && spawnedBy !== undefined && getNode(spawnedBy) !== null) {
|
|
328
|
-
recordSpawn(meta.node_id, spawnedBy);
|
|
329
|
-
}
|
|
330
|
-
return meta;
|
|
331
|
-
}
|
|
1
|
+
var h=Object.defineProperty;var i=(e,n)=>h(e,"name",{value:n,configurable:!0});import{envHomeOverride as I,envRuntimeHomeOverride as C}from"../../shared/env.js";import{randomBytes as p}from"node:crypto";import{mkdirSync as v}from"node:fs";import{createNode as y,getNode as a,getRow as D,subscribe as N,recordSpawn as k,subscribersOf as T,contextDir as g}from"../canvas/index.js";import{memoryDir as O}from"./memory.js";import{resolveInstallId as b}from"../canvas/install-id.js";import{canvasDbPath as x}from"../canvas/paths.js";import{usage as m}from"../errors.js";import{assertProfileAvailableForBirth as $}from"../profiles/deletion-reservation.js";import{admitNodeCreate as S}from"../command-hooks/lifecycle-create.js";import{fanDoctrineWake as A}from"./close.js";import{BIRTH_ANNOUNCEMENT_MARKER as B,birthAnnouncementBody as M}from"../../shared/birth-announcement.js";let u;const R=new Map;function ne(e){u=e}i(ne,"setInstallId");function H(){if(u!==void 0)return u;const e=x(),n=R.get(e);if(n!==void 0)return n;const r=b();return R.set(e,r),r}i(H,"installId");function F(){return`${Date.now().toString(36)}-${p(4).toString("hex")}`}i(F,"newJobId");function P(){return`${H()}-${F()}`}i(P,"newNodeId");const s=128,U=/^[a-z0-9-]+$/;class w extends Error{static{i(this,"NodeIdConflictError")}nodeId;constructor(n){super(`node already exists: ${n}`),this.nodeId=n,this.name="NodeIdConflictError"}}function f(e){if(e.length===0||e.length>s)throw m(`invalid --node-id '${e}': must be 1-${s} characters`,{next:`Pass an id-safe string (lowercase letters, digits, hyphens) of at most ${s} characters.`});if(!U.test(e))throw m(`invalid --node-id '${e}': must contain only lowercase letters, digits, and hyphens (e.g. 'remote42', 'my-node-1')`,{next:"Use only lowercase letters, digits, and hyphens."})}i(f,"validateNodeIdFormat");function re(e){if(f(e),a(e)!==null)throw new w(e)}i(re,"preflightNodeId");function L(e){if(f(e),a(e)!==null)throw new w(e);return e}i(L,"validatedExplicitNodeId");function oe(e){let n=e;const r=new Set;for(;;){if(r.has(n))return n;r.add(n);const t=D(n);if(t===null||t.parent==null)return n;n=t.parent}}i(oe,"rootOfSpine");function ie(){const e=process.env;return{nodeId:e.CRTR_NODE_ID??null,kind:e.CRTR_KIND??null,mode:e.CRTR_MODE??null}}i(ie,"currentNodeContext");function te(e){const n={CRTR_NODE_ID:e.node_id,CRTR_KIND:e.kind,CRTR_MODE:e.mode,CRTR_LIFECYCLE:e.lifecycle,CRTR_NODE_CWD:e.cwd,CRTR_CONTEXT_DIR:g(e.node_id),CRTR_CYCLES:(e.cycles??0).toString(),CRTR_PROFILE_ID:e.profile_id??"",PI_CLAUDE_OAUTH_REINJECT_SCOPE:"never"};e.parent&&(n.CRTR_PARENT_NODE_ID=e.parent);const r=I();r!==void 0&&r!==""&&(n.CRTR_HOME=r);const t=C();t!==void 0&&t!==""&&(n.CRTR_RUNTIME_HOME=t);const d=process.env.CRTR_SUBTREE;return d!==void 0&&d!==""&&(n.CRTR_SUBTREE=d),{...n,...e.launch?.env??{}}}i(te,"nodeEnv");async function de(e){const n=e.nodeId!==void 0?(f(e.nodeId),e.nodeId):P(),r=e.parent??null,t=r===null,d=e.spawnedBy??r,l=e.creator??null,_=e.mode??"base",c=e.lifecycle??(t?"resident":"terminal"),o={node_id:n,name:e.name??e.kind,description:e.description,cycles:0,created:new Date().toISOString(),cwd:e.cwd,host_kind:"broker",profile_id:e.profile_id??null,kind:e.kind,mode:_,lifecycle:c,persona_ack:{kind:e.kind,mode:_,lifecycle:c},status:"active",parent:r,spawned_by:d,creator:l,fork_from:e.forkFrom,fork_source_file:e.forkSourceFile,review_binding:e.reviewBinding,model_override:e.modelOverride??null,passive_default:e.passiveDefault??!1,...e.managedWorktree!==void 0?{managed_worktree:e.managedWorktree}:{},intent:null,deadline_at:e.deadlineAt??null,pi_session_id:null,pi_session_file:null,launch:e.launch};if(r!==null&&a(r)===null)throw new Error(`cannot spawn under unknown parent node: ${r}`);if(l!==null&&a(l)===null)throw new Error(`cannot spawn from unknown creator node: ${l}`);$(o.profile_id??null);const E=await S({kind:o.kind,mode:o.mode,cwd:o.cwd,profile:o.profile_id??null,root:t,parentId:r,requestingNodeId:l,lifecycle:c,replaces:e.replaces??null});try{e.nodeId!==void 0&&L(e.nodeId),await e.beforeCreate?.(),y(o,e.outcomeDelivery===void 0?void 0:{outcomeDelivery:e.outcomeDelivery})}finally{E()}if(o.kind!=="human"&&v(O(o.node_id),{recursive:!0}),r!==null&&e.subscribe!==!1&&N(r,o.node_id,!0),r!==null&&l!==r)try{A(o.node_id,T(o.node_id),`Child created \u2014 ${o.name} (${o.node_id}, ${o.kind})`,{birth_announcement:B,body:M({name:o.name,nodeId:o.node_id,kind:o.kind,creator:l===null?"an external process":a(l).name})},"deferred")}catch{}return d!=null&&a(d)!==null&&k(o.node_id,d),o}i(de,"spawnNode");export{w as NodeIdConflictError,ie as currentNodeContext,F as newJobId,P as newNodeId,te as nodeEnv,re as preflightNodeId,oe as rootOfSpine,ne as setInstallId,de as spawnNode};
|
|
@@ -1,97 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
3
|
-
import { contextDir, reportsDir } from '../canvas/paths.js';
|
|
4
|
-
import { outputResultPath } from './structured-output.js';
|
|
5
|
-
const MAX_DOCUMENT_BYTES = 256 * 1024;
|
|
6
|
-
function structuredResult(nodeId) {
|
|
7
|
-
const path = outputResultPath(nodeId);
|
|
8
|
-
try {
|
|
9
|
-
return existsSync(path) ? JSON.parse(readFileSync(path, 'utf8')) : undefined;
|
|
10
|
-
}
|
|
11
|
-
catch {
|
|
12
|
-
return undefined;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function parseDetail(detailJson) {
|
|
16
|
-
if (detailJson === null)
|
|
17
|
-
return null;
|
|
18
|
-
try {
|
|
19
|
-
return JSON.parse(detailJson);
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/** Preserve valid Unicode while bounding a display-only field by UTF-8 bytes. */
|
|
26
|
-
function truncateDescription(value) {
|
|
27
|
-
const maxBytes = 1024;
|
|
28
|
-
if (Buffer.byteLength(value, 'utf8') <= maxBytes)
|
|
29
|
-
return value;
|
|
30
|
-
const ellipsis = '…';
|
|
31
|
-
let bytes = Buffer.byteLength(ellipsis, 'utf8');
|
|
32
|
-
let result = '';
|
|
33
|
-
for (const character of value) {
|
|
34
|
-
const next = Buffer.byteLength(character, 'utf8');
|
|
35
|
-
if (bytes + next > maxBytes)
|
|
36
|
-
break;
|
|
37
|
-
bytes += next;
|
|
38
|
-
result += character;
|
|
39
|
-
}
|
|
40
|
-
return `${result}${ellipsis}`;
|
|
41
|
-
}
|
|
42
|
-
/** Compose a document at outcome time; delivery only replaces `delivery.attempt`. */
|
|
43
|
-
export function composeNodeOutcomeDocument(args) {
|
|
44
|
-
const { node, outcome, action } = args;
|
|
45
|
-
const detail = parseDetail(outcome.detailJson);
|
|
46
|
-
const finalReport = args.finalReport ?? node.final_report ?? '';
|
|
47
|
-
const name = truncateDescription(node.name);
|
|
48
|
-
const description = node.description === undefined ? undefined : truncateDescription(node.description);
|
|
49
|
-
const result = outcome.kind === 'result'
|
|
50
|
-
? args.structuredResult === undefined ? structuredResult(node.node_id) : args.structuredResult
|
|
51
|
-
: undefined;
|
|
52
|
-
const document = {
|
|
53
|
-
schema: 'crtr.node-outcome/v1',
|
|
54
|
-
outcomeId: `${node.node_id}:${outcome.revision}`,
|
|
55
|
-
nodeId: node.node_id,
|
|
56
|
-
revision: outcome.revision,
|
|
57
|
-
kind: outcome.kind,
|
|
58
|
-
reason: outcome.reason,
|
|
59
|
-
settledAt: outcome.at,
|
|
60
|
-
node: {
|
|
61
|
-
name,
|
|
62
|
-
...(description === undefined ? {} : { description }),
|
|
63
|
-
kind: node.kind,
|
|
64
|
-
mode: node.mode,
|
|
65
|
-
lifecycle: node.lifecycle,
|
|
66
|
-
status: node.status,
|
|
67
|
-
terminalReason: node.terminal_reason ?? null,
|
|
68
|
-
cwd: node.cwd,
|
|
69
|
-
createdAt: node.created,
|
|
70
|
-
parent: node.parent ?? null,
|
|
71
|
-
spawnedBy: node.spawned_by ?? null,
|
|
72
|
-
},
|
|
73
|
-
...(outcome.kind === 'result' ? {
|
|
74
|
-
result: {
|
|
75
|
-
finalReport: { basename: finalReport, path: `${reportsDir(node.node_id)}/${finalReport}` },
|
|
76
|
-
...(result === undefined ? {} : { structuredResult: result }),
|
|
77
|
-
},
|
|
78
|
-
} : {
|
|
79
|
-
failure: {
|
|
80
|
-
message: detail?.message ?? null,
|
|
81
|
-
faultKind: detail?.fault_kind ?? null,
|
|
82
|
-
errorClass: detail?.error_class ?? null,
|
|
83
|
-
respawnFailures: detail?.respawn_failures ?? null,
|
|
84
|
-
deadline: detail?.deadline === undefined ? null : { deadlineAt: detail.deadline.deadline_at, elapsedMs: detail.deadline.elapsed_ms },
|
|
85
|
-
declined: detail?.declined ?? null,
|
|
86
|
-
},
|
|
87
|
-
}),
|
|
88
|
-
action,
|
|
89
|
-
delivery: { attempt: 0 },
|
|
90
|
-
};
|
|
91
|
-
if (Buffer.byteLength(JSON.stringify(document), 'utf8') > MAX_DOCUMENT_BYTES && document.result?.structuredResult !== undefined) {
|
|
92
|
-
delete document.result.structuredResult;
|
|
93
|
-
document.result.structuredResultOmitted = true;
|
|
94
|
-
document.result.structuredResultPath = `${contextDir(node.node_id)}/result.json`;
|
|
95
|
-
}
|
|
96
|
-
return document;
|
|
97
|
-
}
|
|
1
|
+
var f=Object.defineProperty;var s=(t,e)=>f(t,"name",{value:e,configurable:!0});import{existsSync as p,readFileSync as m}from"node:fs";import{contextDir as y,reportsDir as _}from"../canvas/paths.js";import{outputResultPath as R}from"./structured-output.js";const h=256*1024;function B(t){const e=R(t);try{return p(e)?JSON.parse(m(e,"utf8")):void 0}catch{return}}s(B,"structuredResult");function b(t){if(t===null)return null;try{return JSON.parse(t)}catch{return null}}s(b,"parseDetail");function c(t){if(Buffer.byteLength(t,"utf8")<=1024)return t;const n="\u2026";let i=Buffer.byteLength(n,"utf8"),r="";for(const d of t){const l=Buffer.byteLength(d,"utf8");if(i+l>1024)break;i+=l,r+=d}return`${r}${n}`}s(c,"truncateDescription");function D(t){const{node:e,outcome:n,action:i}=t,r=b(n.detailJson),d=t.finalReport??e.final_report??"",l=c(e.name),o=e.description===void 0?void 0:c(e.description),a=n.kind==="result"?t.structuredResult===void 0?B(e.node_id):t.structuredResult:void 0,u={schema:"crtr.node-outcome/v1",outcomeId:`${e.node_id}:${n.revision}`,nodeId:e.node_id,revision:n.revision,kind:n.kind,reason:n.reason,settledAt:n.at,node:{name:l,...o===void 0?{}:{description:o},kind:e.kind,mode:e.mode,lifecycle:e.lifecycle,status:e.status,terminalReason:e.terminal_reason??null,cwd:e.cwd,createdAt:e.created,parent:e.parent??null,spawnedBy:e.spawned_by??null},...n.kind==="result"?{result:{finalReport:{basename:d,path:`${_(e.node_id)}/${d}`},...a===void 0?{}:{structuredResult:a}}}:{failure:{message:r?.message??null,faultKind:r?.fault_kind??null,errorClass:r?.error_class??null,respawnFailures:r?.respawn_failures??null,deadline:r?.deadline===void 0?null:{deadlineAt:r.deadline.deadline_at,elapsedMs:r.deadline.elapsed_ms},declined:r?.declined??null}},action:i,delivery:{attempt:0}};return Buffer.byteLength(JSON.stringify(u),"utf8")>h&&u.result?.structuredResult!==void 0&&(delete u.result.structuredResult,u.result.structuredResultOmitted=!0,u.result.structuredResultPath=`${y(e.node_id)}/result.json`),u}s(D,"composeNodeOutcomeDocument");export{D as composeNodeOutcomeDocument};
|
|
@@ -1,99 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// `pi-crtr-extensions`, which surfaces `~/.claude` commands/skills/plugins as
|
|
6
|
-
// slash commands) by storing its path in settings.json RELATIVE to the settings
|
|
7
|
-
// dir. Moving the crouter repo silently invalidates that relative path — and pi
|
|
8
|
-
// DISCARDS a missing package with no error, so the extension just never loads
|
|
9
|
-
// and its whole feature (here: every Claude command/marketplace command) simply
|
|
10
|
-
// vanishes with no diagnostic. This turns that silent failure into a loud,
|
|
11
|
-
// actionable warning. The fix it points at is `crtr sys setup`, which re-resolves
|
|
12
|
-
// package paths to the repo's current location.
|
|
13
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
14
|
-
import { homedir } from 'node:os';
|
|
15
|
-
import { join, resolve } from 'node:path';
|
|
16
|
-
import { isRendererReady } from '../termrender/termrender.js';
|
|
17
|
-
import { expandTilde } from '../fs-utils.js';
|
|
18
|
-
/** A non-fatal, action-oriented diagnostic for an unprovisioned managed
|
|
19
|
-
* renderer — the one remaining out-of-tree dependency. Deliberately calls
|
|
20
|
-
* `isRendererReady()`, NOT `ensureRenderer()`: this runs on the front-door boot
|
|
21
|
-
* path and at crtrd startup, where a `uv pip install` (up to 180s) must never
|
|
22
|
-
* happen. Readiness is a handful of fs stats, no subprocess. */
|
|
23
|
-
export function rendererWarning() {
|
|
24
|
-
if (isRendererReady())
|
|
25
|
-
return null;
|
|
26
|
-
return 'crtr: the pinned termrender renderer is not provisioned — pages, reviews, and inline diagrams render as plaintext.\n' +
|
|
27
|
-
' Fix: run `crtr sys setup` (requires `uv`: curl -LsSf https://astral.sh/uv/install.sh | sh).';
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* The pi agent config dir (`~/.pi/agent`, or `$PI_CODING_AGENT_DIR`) — a local
|
|
31
|
-
* reimplementation of pi's `getAgentDir()`. Reimplemented (not imported) ON
|
|
32
|
-
* PURPOSE: `getAgentDir` lives in `@earendil-works/pi-coding-agent`, and
|
|
33
|
-
* importing that package pulls in the ENTIRE ~360ms pi engine module graph. The
|
|
34
|
-
* front door calls this on every bare-`crtr` boot BEFORE spawning the broker, so
|
|
35
|
-
* a static/dynamic pi import here adds ~316ms of serialized dead-time in the
|
|
36
|
-
* foreground before the broker (which loads pi itself) even starts. This mirrors
|
|
37
|
-
* pi's contract exactly: `$PI_CODING_AGENT_DIR` (tilde-expanded) else
|
|
38
|
-
* `~/.pi/agent`. Same precedent as `bearings.ts` (keep the pi engine out of the
|
|
39
|
-
* hot/foreground path). If pi ever rebrands its configDir/env, update here.
|
|
40
|
-
*/
|
|
41
|
-
export function piAgentDir(homeDir = homedir()) {
|
|
42
|
-
const envDir = process.env['PI_CODING_AGENT_DIR'];
|
|
43
|
-
if (envDir !== undefined && envDir !== '')
|
|
44
|
-
return expandTilde(envDir, homeDir);
|
|
45
|
-
return join(homeDir, '.pi', 'agent');
|
|
46
|
-
}
|
|
47
|
-
/** A `packages[]` entry is a LOCAL PATH (not an npm ref) — the only kind that
|
|
48
|
-
* can go stale on a repo move. `npm:...` and bare registry names resolve
|
|
49
|
-
* through node/npm, not the filesystem, so they are out of scope here. */
|
|
50
|
-
function isLocalPathSource(source) {
|
|
51
|
-
if (source.startsWith('npm:'))
|
|
52
|
-
return false;
|
|
53
|
-
return source.startsWith('.') || source.startsWith('/') || source.startsWith('~');
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Return every local-path package in `<agentDir>/settings.json` whose resolved
|
|
57
|
-
* path is missing. Empty when settings is absent/unreadable or all paths exist.
|
|
58
|
-
* Mirrors pi's own resolution: `resolve(agentDir, expandTilde(source))`.
|
|
59
|
-
*/
|
|
60
|
-
export function findMissingPackagePaths(agentDir, homeDir = homedir()) {
|
|
61
|
-
let raw;
|
|
62
|
-
try {
|
|
63
|
-
raw = readFileSync(join(agentDir, 'settings.json'), 'utf8');
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
return [];
|
|
67
|
-
}
|
|
68
|
-
let packages;
|
|
69
|
-
try {
|
|
70
|
-
packages = JSON.parse(raw).packages;
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
return [];
|
|
74
|
-
}
|
|
75
|
-
if (!Array.isArray(packages))
|
|
76
|
-
return [];
|
|
77
|
-
const missing = [];
|
|
78
|
-
for (const entry of packages) {
|
|
79
|
-
if (typeof entry !== 'string' || !isLocalPathSource(entry))
|
|
80
|
-
continue;
|
|
81
|
-
const resolved = resolve(agentDir, expandTilde(entry, homeDir));
|
|
82
|
-
if (!existsSync(resolved))
|
|
83
|
-
missing.push({ source: entry, resolved });
|
|
84
|
-
}
|
|
85
|
-
return missing;
|
|
86
|
-
}
|
|
87
|
-
/** A human-readable, actionable warning for a set of missing packages, or
|
|
88
|
-
* `null` when nothing is missing. Names `crtr sys setup` as the fix. */
|
|
89
|
-
export function missingPackageWarning(agentDir, homeDir = homedir()) {
|
|
90
|
-
const missing = findMissingPackagePaths(agentDir, homeDir);
|
|
91
|
-
if (missing.length === 0)
|
|
92
|
-
return null;
|
|
93
|
-
const lines = missing.map((m) => ` • ${m.source}\n → ${m.resolved} (missing)`);
|
|
94
|
-
return (`crtr: ${missing.length} configured pi package path${missing.length === 1 ? '' : 's'} ` +
|
|
95
|
-
`no longer exist${missing.length === 1 ? 's' : ''} — pi silently skips these, so their ` +
|
|
96
|
-
`slash commands (e.g. ~/.claude commands & marketplace plugins) will not load.\n` +
|
|
97
|
-
lines.join('\n') +
|
|
98
|
-
`\n Fix: re-run \`crtr sys setup\` (re-resolves package paths to this repo's current location).`);
|
|
99
|
-
}
|
|
1
|
+
var u=Object.defineProperty;var t=(r,e)=>u(r,"name",{value:e,configurable:!0});import{existsSync as f,readFileSync as g}from"node:fs";import{homedir as a}from"node:os";import{join as p,resolve as d}from"node:path";import{isRendererReady as h}from"../termrender/termrender.js";import{expandTilde as l}from"../fs-utils.js";function $(){return h()?null:"crtr: the pinned termrender renderer is not provisioned \u2014 pages, reviews, and inline diagrams render as plaintext.\n Fix: run `crtr sys setup` (requires `uv`: curl -LsSf https://astral.sh/uv/install.sh | sh)."}t($,"rendererWarning");function A(r=a()){const e=process.env.PI_CODING_AGENT_DIR;return e!==void 0&&e!==""?l(e,r):p(r,".pi","agent")}t(A,"piAgentDir");function m(r){return r.startsWith("npm:")?!1:r.startsWith(".")||r.startsWith("/")||r.startsWith("~")}t(m,"isLocalPathSource");function y(r,e=a()){let n;try{n=g(p(r,"settings.json"),"utf8")}catch{return[]}let s;try{s=JSON.parse(n).packages}catch{return[]}if(!Array.isArray(s))return[];const i=[];for(const o of s){if(typeof o!="string"||!m(o))continue;const c=d(r,l(o,e));f(c)||i.push({source:o,resolved:c})}return i}t(y,"findMissingPackagePaths");function j(r,e=a()){const n=y(r,e);if(n.length===0)return null;const s=n.map(i=>` \u2022 ${i.source}
|
|
2
|
+
\u2192 ${i.resolved} (missing)`);return`crtr: ${n.length} configured pi package path${n.length===1?"":"s"} no longer exist${n.length===1?"s":""} \u2014 pi silently skips these, so their slash commands (e.g. ~/.claude commands & marketplace plugins) will not load.
|
|
3
|
+
`+s.join(`
|
|
4
|
+
`)+"\n Fix: re-run `crtr sys setup` (re-resolves package paths to this repo's current location)."}t(j,"missingPackageWarning");export{y as findMissingPackagePaths,j as missingPackageWarning,A as piAgentDir,$ as rendererWarning};
|
|
@@ -1,55 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// canvas-context-intro acknowledges the drift after both snapshots persist.
|
|
4
|
-
import { getNode, updateNode } from '../canvas/index.js';
|
|
5
|
-
import { readRoadmap, roadmapPath } from './roadmap.js';
|
|
6
|
-
import { orchestratorContextNote } from './bearings.js';
|
|
7
|
-
// Base → orchestrator guidance
|
|
8
|
-
/** Fresh-context framing for a base → orchestrator change. */
|
|
9
|
-
function orchestrationGuidance(nodeId, kind) {
|
|
10
|
-
const roadmap = readRoadmap(nodeId) ?? '(no roadmap yet)';
|
|
11
|
-
const rmPath = roadmapPath(nodeId);
|
|
12
|
-
const parts = [
|
|
13
|
-
`You are now a ${kind.toUpperCase()} ORCHESTRATOR. Your scarce resource is your own context window.`,
|
|
14
|
-
'Your job is to manage context and delegate — not to do the goal yourself.',
|
|
15
|
-
];
|
|
16
|
-
parts.push('', `Your roadmap scaffold (\`${rmPath}\`) — author it now: state the goal, exit criteria, and the phase skeleton, using your orchestration protocol. Current contents:`, '', roadmap, '', orchestratorContextNote(nodeId), '', 'Your three long-term memory scopes (user-global, project, node-local) already surface in your bearings at boot. What promotion changes is USE, not access: you now persist across refresh cycles, so node-local carries what THIS goal needs between your refreshes, and durable facts you commit to user-global or project outlive this node. Use `crtr memory write` to save a document; `crtr memory list` to browse; `crtr memory find` to search (see "Your long-term memory" above for the full substrate flow).', '', 'Then delegate each phase with `crtr node new --kind <kind>`. When your context fills, run `crtr node yield` to refresh against this roadmap.');
|
|
17
|
-
return parts.join('\n');
|
|
18
|
-
}
|
|
19
|
-
// Orchestrator → base guidance
|
|
20
|
-
/** orchestrator → base (demote): hands-on again, finish in-window. */
|
|
21
|
-
function baseModeGuidance() {
|
|
22
|
-
return ('You are HANDS-ON again — base mode. Do the work yourself in THIS window and finish it here; ' +
|
|
23
|
-
'stop delegating by default. You no longer drive a roadmap, so `crtr node yield` is not your exit. ' +
|
|
24
|
-
'Spawn a child only for a cleanly separable unit, never as your first move.');
|
|
25
|
-
}
|
|
26
|
-
/** Build only the non-document framing for a fresh-context transition. */
|
|
27
|
-
export function transitionGuidance(nodeId, from, to) {
|
|
28
|
-
if (from.mode === to.mode)
|
|
29
|
-
return '';
|
|
30
|
-
if (to.mode === 'base')
|
|
31
|
-
return baseModeGuidance();
|
|
32
|
-
const node = getNode(nodeId);
|
|
33
|
-
return orchestrationGuidance(nodeId, node?.kind ?? 'general');
|
|
34
|
-
}
|
|
35
|
-
// Detector + ack commit.
|
|
36
|
-
/** Compare the live persona with the last acknowledged context delivery.
|
|
37
|
-
* `guidance` contains only fresh-context framing; current snapshots supply its
|
|
38
|
-
* documents. An absent or pre-kind acknowledgment cannot fabricate drift. */
|
|
39
|
-
export function personaDrift(nodeId) {
|
|
40
|
-
const meta = getNode(nodeId);
|
|
41
|
-
if (meta === null)
|
|
42
|
-
return null;
|
|
43
|
-
const to = { kind: meta.kind, mode: meta.mode, lifecycle: meta.lifecycle };
|
|
44
|
-
const ack = meta.persona_ack;
|
|
45
|
-
const from = ack === undefined
|
|
46
|
-
? to
|
|
47
|
-
: { kind: ack.kind ?? meta.kind, mode: ack.mode, lifecycle: ack.lifecycle };
|
|
48
|
-
if (from.kind === to.kind && from.mode === to.mode && from.lifecycle === to.lifecycle)
|
|
49
|
-
return null;
|
|
50
|
-
return { from, to, guidance: transitionGuidance(nodeId, from, to) };
|
|
51
|
-
}
|
|
52
|
-
/** Commit the persona state whose context delivery is complete. */
|
|
53
|
-
export function commitPersonaAck(nodeId, to) {
|
|
54
|
-
updateNode(nodeId, { persona_ack: to });
|
|
55
|
-
}
|
|
1
|
+
var s=Object.defineProperty;var a=(o,e)=>s(o,"name",{value:e,configurable:!0});import{getNode as i,updateNode as c}from"../canvas/index.js";import{readRoadmap as l,roadmapPath as d}from"./roadmap.js";import{orchestratorContextNote as u}from"./bearings.js";function m(o,e){const r=l(o)??"(no roadmap yet)",t=d(o),n=[`You are now a ${e.toUpperCase()} ORCHESTRATOR. Your scarce resource is your own context window.`,"Your job is to manage context and delegate \u2014 not to do the goal yourself."];return n.push("",`Your roadmap scaffold (\`${t}\`) \u2014 author it now: state the goal, exit criteria, and the phase skeleton, using your orchestration protocol. Current contents:`,"",r,"",u(o),"",'Your three long-term memory scopes (user-global, project, node-local) already surface in your bearings at boot. What promotion changes is USE, not access: you now persist across refresh cycles, so node-local carries what THIS goal needs between your refreshes, and durable facts you commit to user-global or project outlive this node. Use `crtr memory write` to save a document; `crtr memory list` to browse; `crtr memory find` to search (see "Your long-term memory" above for the full substrate flow).',"","Then delegate each phase with `crtr node new --kind <kind>`. When your context fills, run `crtr node yield` to refresh against this roadmap."),n.join(`
|
|
2
|
+
`)}a(m,"orchestrationGuidance");function f(){return"You are HANDS-ON again \u2014 base mode. Do the work yourself in THIS window and finish it here; stop delegating by default. You no longer drive a roadmap, so `crtr node yield` is not your exit. Spawn a child only for a cleanly separable unit, never as your first move."}a(f,"baseModeGuidance");function p(o,e,r){if(e.mode===r.mode)return"";if(r.mode==="base")return f();const t=i(o);return m(o,t?.kind??"general")}a(p,"transitionGuidance");function k(o){const e=i(o);if(e===null)return null;const r={kind:e.kind,mode:e.mode,lifecycle:e.lifecycle},t=e.persona_ack,n=t===void 0?r:{kind:t.kind??e.kind,mode:t.mode,lifecycle:t.lifecycle};return n.kind===r.kind&&n.mode===r.mode&&n.lifecycle===r.lifecycle?null:{from:n,to:r,guidance:p(o,n,r)}}a(k,"personaDrift");function b(o,e){c(o,{persona_ack:e})}a(b,"commitPersonaAck");export{b as commitPersonaAck,k as personaDrift,p as transitionGuidance};
|