@north-light/crouter 0.3.317 → 0.3.319
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -3
- package/dist/api/client.d.ts +1 -1
- 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 +1 -1
- 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.d.ts +3 -2
- package/dist/core/runtime/warm-pool.js +1 -385
- 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 -943
- 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 -5
- package/runtime.lock.json +5 -5
- package/dist/api/__tests__/integration/client.test.d.ts +0 -1
- package/dist/api/__tests__/integration/client.test.js +0 -163
- package/dist/builtin-pi-packages/pi-crtr-extensions/__tests__/insights-active-init.test.ts +0 -98
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/crtr-commands.test.ts +0 -93
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/integration/provider-rotation.test.ts +0 -2530
- package/dist/clients/__tests__/helpers/human-daemon.d.ts +0 -11
- package/dist/clients/__tests__/helpers/human-daemon.js +0 -60
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.js +0 -97
- package/dist/clients/attach/__tests__/bash-call-width.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/bash-call-width.test.js +0 -38
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +0 -175
- package/dist/clients/attach/__tests__/completion-frecency.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/completion-frecency.test.js +0 -35
- package/dist/clients/attach/__tests__/context-message.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/context-message.test.js +0 -130
- package/dist/clients/attach/__tests__/crtr-output.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/crtr-output.test.js +0 -68
- package/dist/clients/attach/__tests__/diagram.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/diagram.test.js +0 -42
- package/dist/clients/attach/__tests__/edit-diff.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/edit-diff.test.js +0 -31
- package/dist/clients/attach/__tests__/frame-selection.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/frame-selection.test.js +0 -84
- package/dist/clients/attach/__tests__/group-activity.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/group-activity.test.js +0 -165
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.js +0 -83
- package/dist/clients/attach/__tests__/pane-tag-successor.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/pane-tag-successor.test.js +0 -56
- package/dist/clients/attach/__tests__/profile-files.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/profile-files.test.js +0 -21
- package/dist/clients/attach/__tests__/prompt-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/prompt-preview.test.js +0 -21
- package/dist/clients/attach/__tests__/ref-autocomplete.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/ref-autocomplete.test.js +0 -64
- package/dist/clients/attach/__tests__/titled-editor-paste.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-paste.test.js +0 -114
- package/dist/clients/attach/__tests__/titled-editor-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-preview.test.js +0 -83
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.js +0 -81
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.js +0 -135
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.js +0 -66
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.js +0 -35
- package/dist/clients/inbox/review/__tests__/review-core.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/review-core.test.js +0 -52
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.js +0 -100
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.d.ts +0 -1
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.js +0 -69
- package/dist/commands/__tests__/human.test.d.ts +0 -1
- package/dist/commands/__tests__/human.test.js +0 -172
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.js +0 -237
- package/dist/commands/__tests__/integration/migrate.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/migrate.test.js +0 -1330
- package/dist/commands/__tests__/node-message.test.d.ts +0 -1
- package/dist/commands/__tests__/node-message.test.js +0 -112
- package/dist/commands/__tests__/node-new.test.d.ts +0 -1
- package/dist/commands/__tests__/node-new.test.js +0 -58
- package/dist/commands/__tests__/revive-now-gate.test.d.ts +0 -1
- package/dist/commands/__tests__/revive-now-gate.test.js +0 -62
- package/dist/commands/__tests__/seam/daemon-status.test.d.ts +0 -1
- package/dist/commands/__tests__/seam/daemon-status.test.js +0 -29
- package/dist/commands/__tests__/surface-reload-target.test.d.ts +0 -1
- package/dist/commands/__tests__/surface-reload-target.test.js +0 -21
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.js +0 -379
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.js +0 -124
- package/dist/commands/memory/__tests__/repository-root-lint.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/repository-root-lint.test.js +0 -148
- package/dist/commands/sys/__tests__/config-model-ladders.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/config-model-ladders.test.js +0 -114
- package/dist/commands/sys/__tests__/setup-core.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/setup-core.test.js +0 -45
- package/dist/commands/sys/__tests__/sync-project-guidance.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/sync-project-guidance.test.js +0 -244
- package/dist/core/__tests__/bash-guard.test.d.ts +0 -1
- package/dist/core/__tests__/bash-guard.test.js +0 -190
- package/dist/core/__tests__/boot-fault-attempt.test.d.ts +0 -1
- package/dist/core/__tests__/boot-fault-attempt.test.js +0 -105
- package/dist/core/__tests__/boot.test.d.ts +0 -1
- package/dist/core/__tests__/boot.test.js +0 -274
- package/dist/core/__tests__/branded-host-concurrency.test.d.ts +0 -1
- package/dist/core/__tests__/branded-host-concurrency.test.js +0 -72
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.js +0 -75
- package/dist/core/__tests__/broker-launch-candidates.test.d.ts +0 -1
- package/dist/core/__tests__/broker-launch-candidates.test.js +0 -311
- package/dist/core/__tests__/broker-preflight.test.d.ts +0 -1
- package/dist/core/__tests__/broker-preflight.test.js +0 -95
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.d.ts +0 -1
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.js +0 -82
- package/dist/core/__tests__/broker-turn-admission.test.d.ts +0 -1
- package/dist/core/__tests__/broker-turn-admission.test.js +0 -44
- package/dist/core/__tests__/canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-db-boundary.test.js +0 -46
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +0 -710
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.js +0 -310
- package/dist/core/__tests__/canvas-inbox-watcher.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher.test.js +0 -397
- package/dist/core/__tests__/canvas.test.d.ts +0 -1
- package/dist/core/__tests__/canvas.test.js +0 -138
- package/dist/core/__tests__/child-death-wake.test.d.ts +0 -1
- package/dist/core/__tests__/child-death-wake.test.js +0 -153
- package/dist/core/__tests__/cli-help-contract.test.d.ts +0 -1
- package/dist/core/__tests__/cli-help-contract.test.js +0 -152
- package/dist/core/__tests__/close.test.d.ts +0 -1
- package/dist/core/__tests__/close.test.js +0 -284
- package/dist/core/__tests__/collectible.test.d.ts +0 -1
- package/dist/core/__tests__/collectible.test.js +0 -89
- package/dist/core/__tests__/config-change-delta.test.d.ts +0 -1
- package/dist/core/__tests__/config-change-delta.test.js +0 -108
- package/dist/core/__tests__/context-intro.test.d.ts +0 -1
- package/dist/core/__tests__/context-intro.test.js +0 -123
- package/dist/core/__tests__/cron-armed-context-failure.test.d.ts +0 -1
- package/dist/core/__tests__/cron-armed-context-failure.test.js +0 -150
- package/dist/core/__tests__/cron-held-settlement.test.d.ts +0 -1
- package/dist/core/__tests__/cron-held-settlement.test.js +0 -240
- package/dist/core/__tests__/cron-node-sink-parked-root.test.d.ts +0 -1
- package/dist/core/__tests__/cron-node-sink-parked-root.test.js +0 -166
- package/dist/core/__tests__/cron-self-cancel-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/cron-self-cancel-delivery.test.js +0 -84
- package/dist/core/__tests__/cron-timeout-descendants.test.d.ts +0 -1
- package/dist/core/__tests__/cron-timeout-descendants.test.js +0 -114
- package/dist/core/__tests__/daemon-boot.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-boot.test.js +0 -422
- package/dist/core/__tests__/daemon-wedge.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-wedge.test.js +0 -106
- package/dist/core/__tests__/dead-node-policy-table.test.d.ts +0 -1
- package/dist/core/__tests__/dead-node-policy-table.test.js +0 -77
- package/dist/core/__tests__/events-contract.test.d.ts +0 -1
- package/dist/core/__tests__/events-contract.test.js +0 -76
- package/dist/core/__tests__/extension-abort.test.d.ts +0 -1
- package/dist/core/__tests__/extension-abort.test.js +0 -21
- package/dist/core/__tests__/fault-classifier.test.d.ts +0 -1
- package/dist/core/__tests__/fault-classifier.test.js +0 -138
- package/dist/core/__tests__/fixtures/api-server-host.d.ts +0 -1
- package/dist/core/__tests__/fixtures/api-server-host.js +0 -47
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.js +0 -34
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.js +0 -32
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +0 -347
- package/dist/core/__tests__/fixtures/fake-engine.js +0 -1509
- package/dist/core/__tests__/fixtures/fake-pi-host.d.ts +0 -2
- package/dist/core/__tests__/fixtures/fake-pi-host.js +0 -311
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.d.ts +0 -1
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.js +0 -75
- package/dist/core/__tests__/fixtures/metadata-migration-race.d.ts +0 -1
- package/dist/core/__tests__/fixtures/metadata-migration-race.js +0 -49
- package/dist/core/__tests__/focuses.test.d.ts +0 -1
- package/dist/core/__tests__/focuses.test.js +0 -113
- package/dist/core/__tests__/fs-utils.test.d.ts +0 -1
- package/dist/core/__tests__/fs-utils.test.js +0 -50
- package/dist/core/__tests__/helpers/broker-clients.d.ts +0 -43
- package/dist/core/__tests__/helpers/broker-clients.js +0 -174
- package/dist/core/__tests__/helpers/fleet.d.ts +0 -12
- package/dist/core/__tests__/helpers/fleet.js +0 -50
- package/dist/core/__tests__/helpers/harness.d.ts +0 -124
- package/dist/core/__tests__/helpers/harness.js +0 -806
- package/dist/core/__tests__/helpers/viewer-panes.d.ts +0 -12
- package/dist/core/__tests__/helpers/viewer-panes.js +0 -133
- package/dist/core/__tests__/history-inbox.test.d.ts +0 -1
- package/dist/core/__tests__/history-inbox.test.js +0 -121
- package/dist/core/__tests__/human-action-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/human-action-delivery.test.js +0 -162
- package/dist/core/__tests__/human-actions.test.d.ts +0 -1
- package/dist/core/__tests__/human-actions.test.js +0 -120
- package/dist/core/__tests__/inline-memory-refs.test.d.ts +0 -1
- package/dist/core/__tests__/inline-memory-refs.test.js +0 -225
- package/dist/core/__tests__/integration/broker-fork-seam.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-fork-seam.test.js +0 -193
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.js +0 -750
- package/dist/core/__tests__/integration/broker-snapshot-history.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-snapshot-history.test.js +0 -288
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.js +0 -103
- package/dist/core/__tests__/integration/command-plugins.test.d.ts +0 -1
- package/dist/core/__tests__/integration/command-plugins.test.js +0 -1200
- package/dist/core/__tests__/integration/deferred-no-wake.test.d.ts +0 -1
- package/dist/core/__tests__/integration/deferred-no-wake.test.js +0 -610
- package/dist/core/__tests__/integration/flagship-lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/flagship-lifecycle.test.js +0 -264
- package/dist/core/__tests__/integration/fresh-home-commands.test.d.ts +0 -1
- package/dist/core/__tests__/integration/fresh-home-commands.test.js +0 -49
- package/dist/core/__tests__/integration/git-optional-locks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/git-optional-locks.test.js +0 -81
- package/dist/core/__tests__/integration/host-teardown-process-group.test.d.ts +0 -1
- package/dist/core/__tests__/integration/host-teardown-process-group.test.js +0 -480
- package/dist/core/__tests__/integration/lifecycle-hooks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/lifecycle-hooks.test.js +0 -498
- package/dist/core/__tests__/integration/live-mutation-verbs.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation-verbs.test.js +0 -180
- package/dist/core/__tests__/integration/live-mutation.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation.test.js +0 -173
- package/dist/core/__tests__/integration/plugin-revalidate.test.d.ts +0 -1
- package/dist/core/__tests__/integration/plugin-revalidate.test.js +0 -359
- package/dist/core/__tests__/integration/profile-pause.test.d.ts +0 -1
- package/dist/core/__tests__/integration/profile-pause.test.js +0 -115
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.js +0 -151
- package/dist/core/__tests__/integration/revive.test.d.ts +0 -1
- package/dist/core/__tests__/integration/revive.test.js +0 -615
- package/dist/core/__tests__/integration/spawn-root.test.d.ts +0 -1
- package/dist/core/__tests__/integration/spawn-root.test.js +0 -536
- package/dist/core/__tests__/integration/subscription-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/integration/subscription-delivery.test.js +0 -132
- package/dist/core/__tests__/integration/tmux-surface.test.d.ts +0 -1
- package/dist/core/__tests__/integration/tmux-surface.test.js +0 -330
- package/dist/core/__tests__/integration/worktree-land.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-land.test.js +0 -607
- package/dist/core/__tests__/integration/worktree-reap.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-reap.test.js +0 -842
- package/dist/core/__tests__/kickoff.test.d.ts +0 -1
- package/dist/core/__tests__/kickoff.test.js +0 -196
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.js +0 -62
- package/dist/core/__tests__/lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle.test.js +0 -176
- package/dist/core/__tests__/live-lifecycle-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/live-lifecycle-prompt.test.js +0 -63
- package/dist/core/__tests__/memory-resolver-precedence.test.d.ts +0 -1
- package/dist/core/__tests__/memory-resolver-precedence.test.js +0 -228
- package/dist/core/__tests__/migration.test.d.ts +0 -1
- package/dist/core/__tests__/migration.test.js +0 -946
- package/dist/core/__tests__/model-pin-durability.test.d.ts +0 -1
- package/dist/core/__tests__/model-pin-durability.test.js +0 -195
- package/dist/core/__tests__/model-routes-config.test.d.ts +0 -1
- package/dist/core/__tests__/model-routes-config.test.js +0 -150
- package/dist/core/__tests__/nested-store-discovery.test.d.ts +0 -1
- package/dist/core/__tests__/nested-store-discovery.test.js +0 -89
- package/dist/core/__tests__/node-outcome.test.d.ts +0 -1
- package/dist/core/__tests__/node-outcome.test.js +0 -246
- package/dist/core/__tests__/on-read-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-crouter-home-fence.test.js +0 -66
- package/dist/core/__tests__/on-read-dedup-resume.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-dedup-resume.test.js +0 -132
- package/dist/core/__tests__/on-read-nested-store.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-nested-store.test.js +0 -135
- package/dist/core/__tests__/parse-argv-stdin-secret.test.d.ts +0 -1
- package/dist/core/__tests__/parse-argv-stdin-secret.test.js +0 -68
- package/dist/core/__tests__/passive-subscription.test.d.ts +0 -1
- package/dist/core/__tests__/passive-subscription.test.js +0 -120
- package/dist/core/__tests__/pid-identity-match.test.d.ts +0 -1
- package/dist/core/__tests__/pid-identity-match.test.js +0 -145
- package/dist/core/__tests__/pid-zombie.test.d.ts +0 -1
- package/dist/core/__tests__/pid-zombie.test.js +0 -42
- package/dist/core/__tests__/plugin-kinds.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-kinds.test.js +0 -182
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.js +0 -43
- package/dist/core/__tests__/plugin-page-components.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-page-components.test.js +0 -159
- package/dist/core/__tests__/preview-mirror-cap.test.d.ts +0 -1
- package/dist/core/__tests__/preview-mirror-cap.test.js +0 -53
- package/dist/core/__tests__/preview-registry-sync.test.d.ts +0 -1
- package/dist/core/__tests__/preview-registry-sync.test.js +0 -107
- package/dist/core/__tests__/profile-project-memory-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/profile-project-memory-delivery.test.js +0 -644
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.d.ts +0 -1
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.js +0 -91
- package/dist/core/__tests__/prune.test.d.ts +0 -1
- package/dist/core/__tests__/prune.test.js +0 -243
- package/dist/core/__tests__/push-final-guard.test.d.ts +0 -1
- package/dist/core/__tests__/push-final-guard.test.js +0 -191
- package/dist/core/__tests__/relaunch-root.test.d.ts +0 -1
- package/dist/core/__tests__/relaunch-root.test.js +0 -249
- package/dist/core/__tests__/remote-canvas-target.test.d.ts +0 -1
- package/dist/core/__tests__/remote-canvas-target.test.js +0 -93
- package/dist/core/__tests__/repository-association.test.d.ts +0 -1
- package/dist/core/__tests__/repository-association.test.js +0 -153
- package/dist/core/__tests__/repository-root-identity.test.d.ts +0 -1
- package/dist/core/__tests__/repository-root-identity.test.js +0 -223
- package/dist/core/__tests__/respawn-throttle.test.d.ts +0 -1
- package/dist/core/__tests__/respawn-throttle.test.js +0 -20
- package/dist/core/__tests__/review-model-floor.test.d.ts +0 -1
- package/dist/core/__tests__/review-model-floor.test.js +0 -83
- package/dist/core/__tests__/revive-all.test.d.ts +0 -1
- package/dist/core/__tests__/revive-all.test.js +0 -157
- package/dist/core/__tests__/revive-capacity.test.d.ts +0 -1
- package/dist/core/__tests__/revive-capacity.test.js +0 -184
- package/dist/core/__tests__/revive-parked-fresh.test.d.ts +0 -1
- package/dist/core/__tests__/revive-parked-fresh.test.js +0 -176
- package/dist/core/__tests__/scope-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/scope-crouter-home-fence.test.js +0 -55
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.js +0 -262
- package/dist/core/__tests__/seam/broker-attach-stream.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-stream.test.js +0 -176
- package/dist/core/__tests__/seam/broker-cap-freeze.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-cap-freeze.test.js +0 -155
- package/dist/core/__tests__/seam/broker-crash-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-crash-teardown.test.js +0 -131
- package/dist/core/__tests__/seam/broker-pane-resolution.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-pane-resolution.test.js +0 -204
- package/dist/core/__tests__/seam/broker-provider-retry.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-provider-retry.test.js +0 -686
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.js +0 -82
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.js +0 -50
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.js +0 -138
- package/dist/core/__tests__/seam/dormancy-release.test.d.ts +0 -1
- package/dist/core/__tests__/seam/dormancy-release.test.js +0 -516
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.js +0 -65
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.d.ts +0 -1
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.js +0 -84
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.d.ts +0 -1
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.js +0 -160
- package/dist/core/__tests__/seam/node-outcome-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/node-outcome-delivery.test.js +0 -177
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.d.ts +0 -1
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.js +0 -31
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.d.ts +0 -1
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.js +0 -60
- package/dist/core/__tests__/seam/self-close-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/self-close-teardown.test.js +0 -49
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.d.ts +0 -1
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.js +0 -100
- package/dist/core/__tests__/secrets.test.d.ts +0 -1
- package/dist/core/__tests__/secrets.test.js +0 -49
- package/dist/core/__tests__/self-update.test.d.ts +0 -1
- package/dist/core/__tests__/self-update.test.js +0 -46
- package/dist/core/__tests__/session-branch.test.d.ts +0 -1
- package/dist/core/__tests__/session-branch.test.js +0 -61
- package/dist/core/__tests__/session-cycles.test.d.ts +0 -1
- package/dist/core/__tests__/session-cycles.test.js +0 -133
- package/dist/core/__tests__/session-model.test.d.ts +0 -1
- package/dist/core/__tests__/session-model.test.js +0 -111
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.d.ts +0 -1
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +0 -71
- package/dist/core/__tests__/stdin-body-no-discard.test.d.ts +0 -1
- package/dist/core/__tests__/stdin-body-no-discard.test.js +0 -33
- package/dist/core/__tests__/stdout-errors.test.d.ts +0 -1
- package/dist/core/__tests__/stdout-errors.test.js +0 -16
- package/dist/core/__tests__/stop-guard.test.d.ts +0 -1
- package/dist/core/__tests__/stop-guard.test.js +0 -237
- package/dist/core/__tests__/stream-watchdog.test.d.ts +0 -1
- package/dist/core/__tests__/stream-watchdog.test.js +0 -154
- package/dist/core/__tests__/subscription-pool-credential-guard.test.d.ts +0 -1
- package/dist/core/__tests__/subscription-pool-credential-guard.test.js +0 -95
- package/dist/core/__tests__/tmux-driver-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/tmux-driver-boundary.test.js +0 -50
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.d.ts +0 -1
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.js +0 -54
- package/dist/core/__tests__/worktree-landing.test.d.ts +0 -1
- package/dist/core/__tests__/worktree-landing.test.js +0 -11
- package/dist/core/__tests__/yield-ensures-daemon.test.d.ts +0 -1
- package/dist/core/__tests__/yield-ensures-daemon.test.js +0 -55
- package/dist/core/broker-client/__tests__/transport-relay.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-relay.test.js +0 -214
- package/dist/core/broker-client/__tests__/transport-socket.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-socket.test.js +0 -73
- package/dist/core/canvas/__tests__/attention.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/attention.test.js +0 -83
- package/dist/core/canvas/__tests__/history-transcript.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/history-transcript.test.js +0 -102
- package/dist/core/canvas/__tests__/remote-canvas-source.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-canvas-source.test.js +0 -328
- package/dist/core/canvas/__tests__/remote-transport.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-transport.test.js +0 -97
- package/dist/core/canvas/__tests__/render-remote.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/render-remote.test.js +0 -243
- package/dist/core/canvas/__tests__/session-window.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/session-window.test.js +0 -70
- package/dist/core/feed/__tests__/inbox-migrate.test.d.ts +0 -1
- package/dist/core/feed/__tests__/inbox-migrate.test.js +0 -49
- package/dist/core/human/__tests__/page-catalog.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-catalog.test.js +0 -20
- package/dist/core/human/__tests__/page-html-markdown.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-html-markdown.test.js +0 -48
- package/dist/core/human/__tests__/page.test.d.ts +0 -1
- package/dist/core/human/__tests__/page.test.js +0 -92
- package/dist/core/keybindings/__tests__/resolve.test.d.ts +0 -1
- package/dist/core/keybindings/__tests__/resolve.test.js +0 -171
- package/dist/core/profiles/__tests__/env-store.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/env-store.test.js +0 -99
- package/dist/core/profiles/__tests__/fuzzy-match.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/fuzzy-match.test.js +0 -51
- package/dist/core/profiles/__tests__/root-profile.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/root-profile.test.js +0 -59
- package/dist/core/review/__tests__/capture-origin.test.d.ts +0 -1
- package/dist/core/review/__tests__/capture-origin.test.js +0 -150
- package/dist/core/review/__tests__/comments.test.d.ts +0 -1
- package/dist/core/review/__tests__/comments.test.js +0 -116
- package/dist/core/review/__tests__/remap.test.d.ts +0 -1
- package/dist/core/review/__tests__/remap.test.js +0 -177
- package/dist/core/review/__tests__/stage-identity.test.d.ts +0 -1
- package/dist/core/review/__tests__/stage-identity.test.js +0 -150
- package/dist/core/runtime/__tests__/engine-route.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/engine-route.test.js +0 -36
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.js +0 -45
- package/dist/core/runtime/__tests__/node-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/node-env.test.js +0 -73
- package/dist/core/runtime/__tests__/spawn-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/spawn-env.test.js +0 -259
- package/dist/core/substrate/__tests__/surface-match-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-command.test.js +0 -89
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.js +0 -28
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.js +0 -92
- package/dist/daemon/__tests__/autostart-storm.test.d.ts +0 -1
- package/dist/daemon/__tests__/autostart-storm.test.js +0 -128
- package/dist/daemon/__tests__/broker-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/broker-ownership.test.js +0 -25
- package/dist/daemon/__tests__/daemon-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/daemon-ownership.test.js +0 -27
- package/dist/daemon/__tests__/helpers/source-daemon.d.ts +0 -30
- package/dist/daemon/__tests__/helpers/source-daemon.js +0 -176
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.js +0 -83
- package/dist/daemon/__tests__/integration/migration-startup.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/migration-startup.test.js +0 -127
- package/dist/daemon/__tests__/node-deadline-lane.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-deadline-lane.test.js +0 -77
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.js +0 -146
- package/dist/daemon/__tests__/node-outcome-delivery.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-delivery.test.js +0 -116
- package/dist/daemon/__tests__/reconciler-signature.test.d.ts +0 -1
- package/dist/daemon/__tests__/reconciler-signature.test.js +0 -37
- package/dist/daemon/__tests__/subtree-filter-freshness.test.d.ts +0 -1
- package/dist/daemon/__tests__/subtree-filter-freshness.test.js +0 -63
- package/dist/daemon/__tests__/thaw-order.test.d.ts +0 -1
- package/dist/daemon/__tests__/thaw-order.test.js +0 -55
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.js +0 -58
- package/dist/daemon/api/__tests__/broker-settle-park.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/broker-settle-park.test.js +0 -175
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.js +0 -216
- package/dist/daemon/api/__tests__/error-seam.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/error-seam.test.js +0 -83
- package/dist/daemon/api/__tests__/model-config.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/model-config.test.js +0 -73
- package/dist/daemon/api/__tests__/node-create-description.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-create-description.test.js +0 -107
- 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,689 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
import { subKindsAvailableTo } from '../config.js';
|
|
67
|
-
import { projectScopeRoots } from '../scope.js';
|
|
68
|
-
// De-barreled to LEAF modules on purpose: importing from './index.js' would
|
|
69
|
-
// pull subject.js (canvas-db) transitively, re-tainting every CLI consumer of
|
|
70
|
-
// the pure render fns. The canvas-db wrappers (renderPreferencesSection /
|
|
71
|
-
// renderKnowledgeBlock) live in render-node.js instead.
|
|
72
|
-
import { documentExposedAtOrAbove, emptyContextExposureState, exposureTarget, registerDocumentExposure, registerExposure, } from './injected-store.js';
|
|
73
|
-
import { bootPartitionOf, planDelivery } from './plan.js';
|
|
74
|
-
import { parseSubstrateDoc, previewLine, rungAtLeast, rungRank, } from './schema.js';
|
|
75
|
-
import { accountDelivery, contentReadAttachments, } from './on-read.js';
|
|
76
|
-
import { dirDedupKey, docsByName } from './listings.js';
|
|
77
|
-
import { cachedEventCorpusInclusive } from './session-cache.js';
|
|
78
|
-
/** The node's own store (`nodes/<id>/context/memory/`), loaded through the
|
|
79
|
-
* resolver's descriptor loader like every other store. Returned across ALL
|
|
80
|
-
* kinds — the node store is the catch-all this-node store and rides into the
|
|
81
|
-
* knowledge block.
|
|
82
|
-
*
|
|
83
|
-
* The store is addressed by the EXPLICIT `nodeId` rather than the host
|
|
84
|
-
* process's, because one process renders for other nodes (crtrd claiming a
|
|
85
|
-
* warm spare, `sys context prompt-review` walking the canvas). */
|
|
86
|
-
function nodeStoreCorpus(nodeId) {
|
|
87
|
-
if (nodeId === null)
|
|
88
|
-
return [];
|
|
89
|
-
let sources;
|
|
90
|
-
try {
|
|
91
|
-
// Narrowed to the node scope, so cwd and profile select no store.
|
|
92
|
-
sources = loadMemoryTargetView({ cwd: process.cwd(), profileId: null, nodeId }, { scope: 'node', quiet: true }).docs;
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
return [];
|
|
96
|
-
}
|
|
97
|
-
const out = [];
|
|
98
|
-
for (const source of sources) {
|
|
99
|
-
const doc = parseSubstrateDoc(source);
|
|
100
|
-
if (doc !== null)
|
|
101
|
-
out.push({ doc, source });
|
|
102
|
-
}
|
|
103
|
-
return out;
|
|
104
|
-
}
|
|
105
|
-
/** The session's boot corpus in PRECEDENCE order: the resolver's stores first
|
|
106
|
-
* (nearest project > user > builtin), the node's own store last so a resolver
|
|
107
|
-
* document keeps its identity against a same-named node-local one. The
|
|
108
|
-
* session cache already pairs each parsed doc with its descriptor, so the full
|
|
109
|
-
* corpus is scanned and parsed at most once per session across the boot
|
|
110
|
-
* renders. Node scope is filtered out of it because `nodeStoreCorpus` is the
|
|
111
|
-
* one path that carries node docs into a boot render — they must not
|
|
112
|
-
* double-surface. */
|
|
113
|
-
function bootCorpus(nodeId) {
|
|
114
|
-
let resolver;
|
|
115
|
-
try {
|
|
116
|
-
resolver = cachedEventCorpusInclusive(listAllMemoryDocs, parseSubstrateDoc).filter((e) => e.doc.scope !== 'node');
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
return nodeStoreCorpus(nodeId);
|
|
120
|
-
}
|
|
121
|
-
return [...resolver, ...nodeStoreCorpus(nodeId)];
|
|
122
|
-
}
|
|
123
|
-
function bootPlan(subject, nodeId) {
|
|
124
|
-
return planDelivery(subject, { ...ambientMemoryTarget(), nodeId }, 'boot', {}, bootCorpus(nodeId));
|
|
125
|
-
}
|
|
126
|
-
/** STEP 1 — the plan's winners for one boot partition, in corpus order, each
|
|
127
|
-
* carrying the rung the plan settled on. Display ordering is a separate, later
|
|
128
|
-
* step (see renderGrouped) so a builtin doc can never mask a project/user
|
|
129
|
-
* override by virtue of sorting first. */
|
|
130
|
-
function bootWinners(plan, partition) {
|
|
131
|
-
return plan.docs
|
|
132
|
-
.filter((record) => record.winner && bootPartitionOf(record) === partition)
|
|
133
|
-
.map((record) => ({ ...record.doc, source: record.source, bootRung: record.finalRung }));
|
|
134
|
-
}
|
|
135
|
-
// Exposure registration
|
|
136
|
-
function rendersAtBoot(doc) {
|
|
137
|
-
return isVisible(doc.bootRung) && (doc.bootRung !== 'content' || doc.body.trim() !== '');
|
|
138
|
-
}
|
|
139
|
-
// Step 2 — display ordering + grouped render.
|
|
140
|
-
/** Content-prose ordering rank: general → specific. builtin=0, user=1,
|
|
141
|
-
* profile=2, project ranks start at 3 and climb by root nearness — the
|
|
142
|
-
* OUTERMOST ancestor `.crouter/` root ranks lowest (renders first), the
|
|
143
|
-
* NEAREST root ranks highest (renders last) — the mirror of the resolver's
|
|
144
|
-
* nearest-first dedup precedence. Node-scope docs rank last of all (the most
|
|
145
|
-
* specific, this-node-only store). This is display order ONLY — the
|
|
146
|
-
* resolver's REPLACEMENT precedence (first-wins dedup, step 1) is the
|
|
147
|
-
* opposite direction for project/profile: project stack > profile > user >
|
|
148
|
-
* builtin, nearest project strongest; the two orderings are deliberately
|
|
149
|
-
* different (see the module comment). */
|
|
150
|
-
function scopeGeneralityRank(doc) {
|
|
151
|
-
if (doc.scope === 'node')
|
|
152
|
-
return 1000;
|
|
153
|
-
if (doc.scope === 'builtin')
|
|
154
|
-
return 0;
|
|
155
|
-
if (doc.scope === 'user')
|
|
156
|
-
return 1;
|
|
157
|
-
if (doc.scope === 'profile')
|
|
158
|
-
return 2;
|
|
159
|
-
const roots = projectScopeRoots(); // nearest-first
|
|
160
|
-
if (roots.length === 0)
|
|
161
|
-
return 3;
|
|
162
|
-
const nearFirstIdx = roots.findIndex((root) => doc.path.startsWith(root + sep));
|
|
163
|
-
const idx = nearFirstIdx === -1 ? 0 : nearFirstIdx;
|
|
164
|
-
return 3 + (roots.length - 1 - idx); // outermost (largest idx) -> smallest rank
|
|
165
|
-
}
|
|
166
|
-
/** The doc's stored physical path segments, `NN-` ordering prefixes intact —
|
|
167
|
-
* the descriptor's store-relative path, which is what lets `tree position`
|
|
168
|
-
* sort respect an author's ordering pin even though the pin is invisible in
|
|
169
|
-
* the canonical name. A directory document's `INDEX` filename names its
|
|
170
|
-
* directory rather than a segment of its own, so it sorts AS its directory,
|
|
171
|
-
* ahead of everything nested under it. */
|
|
172
|
-
function physicalSegments(doc) {
|
|
173
|
-
const segments = doc.source.physicalRelativePath.replace(/\.md$/i, '').split('/');
|
|
174
|
-
if (doc.source.representation === 'directory-index')
|
|
175
|
-
segments.pop();
|
|
176
|
-
return segments;
|
|
177
|
-
}
|
|
178
|
-
/** "Tree position" comparator for content-prose ordering within a store:
|
|
179
|
-
* compares two docs' RAW physical segments element-by-element (a shallower
|
|
180
|
-
* path sorts before a path nested under it at the first differing segment). */
|
|
181
|
-
function compareTreePosition(a, b) {
|
|
182
|
-
const as = physicalSegments(a);
|
|
183
|
-
const bs = physicalSegments(b);
|
|
184
|
-
const len = Math.min(as.length, bs.length);
|
|
185
|
-
for (let i = 0; i < len; i++) {
|
|
186
|
-
const c = as[i].localeCompare(bs[i]);
|
|
187
|
-
if (c !== 0)
|
|
188
|
-
return c;
|
|
189
|
-
}
|
|
190
|
-
return as.length - bs.length;
|
|
191
|
-
}
|
|
192
|
-
/** A doc the running agent can revise through `crtr memory edit`: any native
|
|
193
|
-
* scope-store doc (user/profile/project/node). Shipped docs — builtin and
|
|
194
|
-
* plugin-mounted — are not editable from a node; the preference render treats
|
|
195
|
-
* them as operating protocol, not memory (see buildPreferencesBlock). */
|
|
196
|
-
function isAgentEditable(doc) {
|
|
197
|
-
return doc.scope !== 'builtin' && doc.plugin === undefined;
|
|
198
|
-
}
|
|
199
|
-
/** The members of every directory this render's content deliveries disclosed,
|
|
200
|
-
* raised to `preview` so the catalog tree carries the routing lines a
|
|
201
|
-
* `<memory-listing>` would have carried on an explicit read. A member is
|
|
202
|
-
* raised only when the raise is honest: it renders as a row (content bodies
|
|
203
|
-
* render as prose instead), it does not already disclose its line, it is not
|
|
204
|
-
* `unlisted`, its project's profile cap permits preview, and this context does
|
|
205
|
-
* not already hold it at preview or above.
|
|
206
|
-
*
|
|
207
|
-
* The corpus is `listingDocs` — the partition's own winners. A directory
|
|
208
|
-
* holding both knowledge and preference docs therefore discloses only the
|
|
209
|
-
* current partition's members here, and the other partition skips the
|
|
210
|
-
* directory's `dir://` key: under-disclosure, never a false ledger claim.
|
|
211
|
-
*
|
|
212
|
-
* A directory registers its `dir://` identity here and ONLY here — when it
|
|
213
|
-
* actually contributed a row. A directory whose every member was rejected
|
|
214
|
-
* rendered no listing, so the next channel to reach it must still be free to
|
|
215
|
-
* render one. */
|
|
216
|
-
function exposedDirEntries(listingDocs, dirs, target) {
|
|
217
|
-
if (dirs.length === 0)
|
|
218
|
-
return [];
|
|
219
|
-
const byPath = new Map(listingDocs.map((doc) => [doc.path, doc]));
|
|
220
|
-
const tree = buildMemoryTree(listingDocs.map((doc) => doc.source));
|
|
221
|
-
const raised = new Map();
|
|
222
|
-
for (const dir of dirs) {
|
|
223
|
-
const node = tree.node(dir);
|
|
224
|
-
if (node === null)
|
|
225
|
-
continue;
|
|
226
|
-
let rendered = false;
|
|
227
|
-
const members = [
|
|
228
|
-
...node.childDocuments.map((member) => member.document),
|
|
229
|
-
...node.childDirectories.flatMap((child) => (child.document === null ? [] : [child.document])),
|
|
230
|
-
];
|
|
231
|
-
for (const member of members) {
|
|
232
|
-
const doc = byPath.get(member.path);
|
|
233
|
-
if (doc === undefined || raised.has(doc.path))
|
|
234
|
-
continue;
|
|
235
|
-
if (doc.bootRung === 'content' || rungAtLeast(doc.bootRung, 'preview'))
|
|
236
|
-
continue;
|
|
237
|
-
if (doc.unlisted)
|
|
238
|
-
continue;
|
|
239
|
-
if (!rungAtLeast(doc.projectMemory, 'preview'))
|
|
240
|
-
continue;
|
|
241
|
-
if (documentExposedAtOrAbove(target.state, doc.path, doc.body, 'preview'))
|
|
242
|
-
continue;
|
|
243
|
-
raised.set(doc.path, { ...doc, bootRung: 'preview' });
|
|
244
|
-
rendered = true;
|
|
245
|
-
}
|
|
246
|
-
if (rendered)
|
|
247
|
-
registerExposure(target, dirDedupKey(dir), 'preview');
|
|
248
|
-
}
|
|
249
|
-
return [...raised.values()];
|
|
250
|
-
}
|
|
251
|
-
/** STEP 2 — split deduped `winners` by rung and render each group in its
|
|
252
|
-
* display order: `content` docs first, as clean prose (general→specific,
|
|
253
|
-
* then tree position, then filename — no tree chrome); every
|
|
254
|
-
* other winner (preview/name/hidden-bootless) folds into ONE catalog tree,
|
|
255
|
-
* which additionally carries the members that the content deliveries'
|
|
256
|
-
* directory listings disclosed.
|
|
257
|
-
*
|
|
258
|
-
* This function owns exposure registration for the boot renders: every doc
|
|
259
|
-
* registers at the rung it ACTUALLY rendered at, here, rather than being
|
|
260
|
-
* registered wholesale by the caller beforehand — which would have let a body
|
|
261
|
-
* already delivered as a companion in another partition render again as
|
|
262
|
-
* prose. A caller that passes no `target` renders against a throwaway ledger
|
|
263
|
-
* (the `sys context` diagnostics), so its output matches live boot without
|
|
264
|
-
* recording anything. */
|
|
265
|
-
function renderGrouped(winners, rootLabel, subject, target, listingDocs = winners, accounting) {
|
|
266
|
-
const ledger = target ?? exposureTarget(emptyContextExposureState(), 'transcript');
|
|
267
|
-
const content = [];
|
|
268
|
-
const rest = [];
|
|
269
|
-
for (const d of winners) {
|
|
270
|
-
if (d.bootRung === 'content')
|
|
271
|
-
content.push(d);
|
|
272
|
-
else
|
|
273
|
-
rest.push(d);
|
|
274
|
-
}
|
|
275
|
-
content.sort((a, b) => scopeGeneralityRank(a) - scopeGeneralityRank(b) ||
|
|
276
|
-
compareTreePosition(a, b) ||
|
|
277
|
-
a.name.localeCompare(b.name));
|
|
278
|
-
// A body this context already holds at content does not render twice, even
|
|
279
|
-
// when the other delivery was a companion in the other boot partition.
|
|
280
|
-
const fresh = content.filter((d) => !documentExposedAtOrAbove(ledger.state, d.path, d.body, 'content'));
|
|
281
|
-
const contentProse = fresh
|
|
282
|
-
.map((d) => d.body.trim())
|
|
283
|
-
.filter((b) => b !== '')
|
|
284
|
-
.join('\n\n');
|
|
285
|
-
// Register the prose BEFORE its attachments run, so the listings and
|
|
286
|
-
// companion routes dedupe against the bodies this render just delivered.
|
|
287
|
-
for (const d of fresh) {
|
|
288
|
-
if (!rendersAtBoot(d))
|
|
289
|
-
continue;
|
|
290
|
-
registerDocumentExposure(ledger, d.path, d.body, d.bootRung);
|
|
291
|
-
accountDelivery(accounting, d, d.bootRung, undefined, d.source);
|
|
292
|
-
}
|
|
293
|
-
// ONE options object for the whole pass: `dirs` accumulates across every
|
|
294
|
-
// content doc AND every companion it routes, and the shared corpus keeps the
|
|
295
|
-
// listing tree built once.
|
|
296
|
-
const attachments = {
|
|
297
|
-
subject: subject ?? null,
|
|
298
|
-
target: ledger,
|
|
299
|
-
byName: docsByName(listingDocs.map((d) => d.source)),
|
|
300
|
-
listings: 'tree',
|
|
301
|
-
dirs: [],
|
|
302
|
-
accounting,
|
|
303
|
-
};
|
|
304
|
-
const attachmentBlocks = fresh.flatMap((doc) => contentReadAttachments(doc, attachments).blocks);
|
|
305
|
-
const raised = exposedDirEntries(listingDocs, attachments.dirs ?? [], ledger);
|
|
306
|
-
const raisedByPath = new Map(raised.map((d) => [d.path, d]));
|
|
307
|
-
const restPaths = new Set(rest.map((d) => d.path));
|
|
308
|
-
const treeDocs = [
|
|
309
|
-
...rest.map((d) => raisedByPath.get(d.path) ?? d),
|
|
310
|
-
...raised.filter((d) => !restPaths.has(d.path)),
|
|
311
|
-
];
|
|
312
|
-
for (const d of treeDocs) {
|
|
313
|
-
if (!rendersAtBoot(d))
|
|
314
|
-
continue;
|
|
315
|
-
registerDocumentExposure(ledger, d.path, d.body, d.bootRung);
|
|
316
|
-
accountDelivery(accounting, d, d.bootRung, raisedByPath.has(d.path) ? 'directory listing attached to content delivery' : undefined, d.source);
|
|
317
|
-
}
|
|
318
|
-
return {
|
|
319
|
-
contentProse,
|
|
320
|
-
tree: buildTree(treeDocs, rootLabel),
|
|
321
|
-
contentDocs: fresh,
|
|
322
|
-
attachmentBlocks,
|
|
323
|
-
};
|
|
324
|
-
}
|
|
325
|
-
function leafSegment(name) {
|
|
326
|
-
const i = name.lastIndexOf('/');
|
|
327
|
-
return i === -1 ? name : name.slice(i + 1);
|
|
328
|
-
}
|
|
329
|
-
function isVisible(rung) {
|
|
330
|
-
return rungRank(rung) >= rungRank('name');
|
|
331
|
-
}
|
|
332
|
-
/** Project one canonical tree node into a render row. `byPath` maps a
|
|
333
|
-
* descriptor back to the winner carrying its boot rung. */
|
|
334
|
-
function planDir(node, byPath) {
|
|
335
|
-
const children = node.childDirectories.map((child) => planDir(child, byPath));
|
|
336
|
-
const leaves = [];
|
|
337
|
-
let hiddenHere = 0;
|
|
338
|
-
for (const member of node.childDocuments) {
|
|
339
|
-
const doc = byPath.get(member.document.path);
|
|
340
|
-
if (doc === undefined)
|
|
341
|
-
continue;
|
|
342
|
-
if (isVisible(doc.bootRung))
|
|
343
|
-
leaves.push({ name: member.name, order: member.order, doc });
|
|
344
|
-
else
|
|
345
|
-
hiddenHere += 1;
|
|
346
|
-
}
|
|
347
|
-
const ownDoc = node.document === null ? null : byPath.get(node.document.path) ?? null;
|
|
348
|
-
let own = null;
|
|
349
|
-
if (ownDoc !== null) {
|
|
350
|
-
if (isVisible(ownDoc.bootRung))
|
|
351
|
-
own = ownDoc;
|
|
352
|
-
else
|
|
353
|
-
hiddenHere += 1;
|
|
354
|
-
}
|
|
355
|
-
return {
|
|
356
|
-
name: node.name,
|
|
357
|
-
segment: leafSegment(node.name),
|
|
358
|
-
order: node.order,
|
|
359
|
-
own,
|
|
360
|
-
children,
|
|
361
|
-
leaves,
|
|
362
|
-
hiddenHere,
|
|
363
|
-
renders: false,
|
|
364
|
-
ownCount: 0,
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
/** Bottom-up pass: decide which dirs render and where hidden counts land. A dir
|
|
368
|
-
* renders when it discloses something visible (its own document or ≥1 visible
|
|
369
|
-
* leaf), when ≥1 child dir renders, or when it is top-level (a direct child of
|
|
370
|
-
* the root always renders so its subtree count is visible — the root itself
|
|
371
|
-
* always renders). Bootless docs in a NON-rendering dir bubble up to the
|
|
372
|
-
* nearest rendering ancestor's `[+N more]`; a rendering dir keeps its own
|
|
373
|
-
* subtree count. Returns the count to bubble up. */
|
|
374
|
-
function resolveDir(dir, isTopLevel) {
|
|
375
|
-
let totalHidden = dir.hiddenHere;
|
|
376
|
-
for (const child of dir.children) {
|
|
377
|
-
totalHidden += resolveDir(child, dir.name === '');
|
|
378
|
-
}
|
|
379
|
-
const hasVisibleLeaf = dir.own !== null || dir.leaves.length > 0;
|
|
380
|
-
const anyChildRenders = dir.children.some((c) => c.renders);
|
|
381
|
-
dir.renders = hasVisibleLeaf || anyChildRenders || isTopLevel || dir.name === '';
|
|
382
|
-
dir.ownCount = dir.renders ? totalHidden : 0;
|
|
383
|
-
return dir.renders ? 0 : totalHidden;
|
|
384
|
-
}
|
|
385
|
-
function itemOrder(item) {
|
|
386
|
-
if (item.kind === 'dir')
|
|
387
|
-
return item.node.order;
|
|
388
|
-
return item.kind === 'leaf' ? item.entry.order : '';
|
|
389
|
-
}
|
|
390
|
-
function itemName(item) {
|
|
391
|
-
if (item.kind === 'dir')
|
|
392
|
-
return item.node.name;
|
|
393
|
-
return item.kind === 'leaf' ? item.entry.name : '';
|
|
394
|
-
}
|
|
395
|
-
/** Render one row's label at its document's boot rung: `preview` appends the
|
|
396
|
-
* read-when routing line, `name` leaves the bare label. A `content` winner
|
|
397
|
-
* never reaches the tree — renderGrouped renders its body as prose instead. */
|
|
398
|
-
function renderDocEntry(doc, label, entryPrefix, lines) {
|
|
399
|
-
const preview = doc.bootRung === 'preview' ? previewLine(doc) : '';
|
|
400
|
-
lines.push(preview === '' ? `${entryPrefix}${label}` : `${entryPrefix}${label} # read when: ${preview}`);
|
|
401
|
-
}
|
|
402
|
-
/** Render the children of a rendering dir, with `childPrefix` carrying the tree
|
|
403
|
-
* guides for this depth. Order: child dirs and leaves intermixed by stored
|
|
404
|
-
* physical position, then the `[+N more]` count last. A dir that carries its
|
|
405
|
-
* own document renders that document's entry on the dir's own line. */
|
|
406
|
-
function renderChildren(dir, childPrefix, lines) {
|
|
407
|
-
const ordered = [];
|
|
408
|
-
for (const child of dir.children) {
|
|
409
|
-
if (child.renders)
|
|
410
|
-
ordered.push({ kind: 'dir', node: child });
|
|
411
|
-
}
|
|
412
|
-
for (const entry of dir.leaves)
|
|
413
|
-
ordered.push({ kind: 'leaf', entry });
|
|
414
|
-
ordered.sort((a, b) => itemOrder(a).localeCompare(itemOrder(b)) || itemName(a).localeCompare(itemName(b)));
|
|
415
|
-
if (dir.ownCount > 0)
|
|
416
|
-
ordered.push({ kind: 'more', count: dir.ownCount });
|
|
417
|
-
ordered.forEach((item, i) => {
|
|
418
|
-
const last = i === ordered.length - 1;
|
|
419
|
-
const entryPrefix = childPrefix + (last ? '└─ ' : '├─ ');
|
|
420
|
-
const nextPrefix = childPrefix + (last ? ' ' : '│ ');
|
|
421
|
-
switch (item.kind) {
|
|
422
|
-
case 'more':
|
|
423
|
-
lines.push(`${entryPrefix}[+${item.count} more]`);
|
|
424
|
-
break;
|
|
425
|
-
case 'dir': {
|
|
426
|
-
const label = `${item.node.segment}/`;
|
|
427
|
-
if (item.node.own === null)
|
|
428
|
-
lines.push(`${entryPrefix}${label}`);
|
|
429
|
-
else
|
|
430
|
-
renderDocEntry(item.node.own, label, entryPrefix, lines);
|
|
431
|
-
renderChildren(item.node, nextPrefix, lines);
|
|
432
|
-
break;
|
|
433
|
-
}
|
|
434
|
-
case 'leaf':
|
|
435
|
-
renderDocEntry(item.entry.doc, leafSegment(item.entry.name), entryPrefix, lines);
|
|
436
|
-
break;
|
|
437
|
-
}
|
|
438
|
-
});
|
|
439
|
-
}
|
|
440
|
-
/** Build the catalog tree for a set of already-deduped, non-content winners,
|
|
441
|
-
* headed by `rootLabel`. Returns '' when there are no docs at all (the
|
|
442
|
-
* empty-tree contract).
|
|
443
|
-
*
|
|
444
|
-
* Callers (renderGrouped) pass docs already first-wins deduped by the plan;
|
|
445
|
-
* merging them into the canonical tree keeps that first-wins outcome
|
|
446
|
-
* structurally, because a node's `document` is the first candidate at its
|
|
447
|
-
* identity in source order. */
|
|
448
|
-
function buildTree(docs, rootLabel) {
|
|
449
|
-
if (docs.length === 0)
|
|
450
|
-
return '';
|
|
451
|
-
const byPath = new Map();
|
|
452
|
-
for (const d of docs)
|
|
453
|
-
if (!byPath.has(d.path))
|
|
454
|
-
byPath.set(d.path, d);
|
|
455
|
-
const root = planDir(buildMemoryTree(docs.map((d) => d.source)).root, byPath);
|
|
456
|
-
resolveDir(root, false);
|
|
457
|
-
const lines = [rootLabel];
|
|
458
|
-
renderChildren(root, '', lines);
|
|
459
|
-
return lines.join('\n');
|
|
460
|
-
}
|
|
461
|
-
// Block prose — the intro legend + the update directive for each kind.
|
|
462
|
-
const READ_LEGEND = 'Each %s below shows either its full content (indented beneath its name), a ' +
|
|
463
|
-
'`# read when:` line telling you when to read the full document, or simply its name.';
|
|
464
|
-
const PREFERENCES_INTRO = 'Preferences are how the user wants you to behave — standing directives and corrections. ' +
|
|
465
|
-
'To read a preference, run `crtr memory read <name>`. ' +
|
|
466
|
-
READ_LEGEND.replace('%s', 'preference');
|
|
467
|
-
const PREFERENCES_OUTRO = 'If the user corrects you in a way that contradicts a preference, update the preference.';
|
|
468
|
-
const KNOWLEDGE_INTRO = 'Knowledge memories are what you consult — playbooks and techniques for how to do things, and ' +
|
|
469
|
-
'references on the user, projects, and this node. They are aggregated from your memory stores: ' +
|
|
470
|
-
'user-global (`~/.crouter/memory/`), every ancestor project store (`<dir>/.crouter/memory/`) ' +
|
|
471
|
-
"from the cwd upward, the selected profile's memory store, and node-local " +
|
|
472
|
-
"(this node's `context/memory/`). To read one, run `crtr memory read <name>`; a directory " +
|
|
473
|
-
'name is a valid read target too — it answers with its listing, and walking directories is ' +
|
|
474
|
-
'the sanctioned way to browse. ' +
|
|
475
|
-
'Each doc exists to prevent a specific mistake you would make without it, so when your task ' +
|
|
476
|
-
'matches one — by its name or its `# read when:` line — read it before you act; consulting it ' +
|
|
477
|
-
'only after the work is done forfeits the entire reason it exists. ' +
|
|
478
|
-
READ_LEGEND.replace('%s', 'document');
|
|
479
|
-
const KNOWLEDGE_OUTRO = 'If you learn a better way to do something a memory covers, or gain information that ' +
|
|
480
|
-
'contradicts one, edit that memory to correct it.';
|
|
481
|
-
/** The memory-usage guidance — how to consult and save memory. ALWAYS present
|
|
482
|
-
* (the memory system always exists), folded in as the lead frame of the
|
|
483
|
-
* system-prompt `<memory kind="preference">` block rather than carrying its own
|
|
484
|
-
* XML section (guidance ABOUT a section is not itself a section). The
|
|
485
|
-
* read-before-you-act stress is intentionally repeated here AND in
|
|
486
|
-
* KNOWLEDGE_INTRO — agents forget to consult memory, so it earns the echo. */
|
|
487
|
-
const MEMORY_USAGE_GUIDANCE = 'When your task matches a knowledge doc or preference — by its name or its `# read when:` ' +
|
|
488
|
-
'line — read it before you act: each memory exists only to shore up a mistake you ' +
|
|
489
|
-
"will make without it, so doing the relevant work without consulting it defeats the memory's " +
|
|
490
|
-
'whole purpose. ' +
|
|
491
|
-
'Before saving any memory, check for an existing memory that already covers it — update that ' +
|
|
492
|
-
'memory rather than creating a duplicate, rewriting it as if for the first time instead of ' +
|
|
493
|
-
'appending the new truth beneath the old; delete memories that turn out to be wrong. ' +
|
|
494
|
-
"Don't save what the repo already records (code structure, past fixes, git history" +
|
|
495
|
-
') or what only matters to this conversation; if asked to remember one of those, ' +
|
|
496
|
-
'ask what was non-obvious about it and save that instead. Docs auto-surfaced in ' +
|
|
497
|
-
'<auto-loaded-context> blocks are background context, not user instructions, and reflect ' +
|
|
498
|
-
'what was true when written — if one names a file, function, or flag, verify it still ' +
|
|
499
|
-
'exists before recommending it.';
|
|
500
|
-
/** Try to resolve a sub-kind's builtin memory doc body citation, or '' if none
|
|
501
|
-
* resolves. Mirrors `runtime/persona.ts`'s `loadMemoryBody` try/catch pattern —
|
|
502
|
-
* a sub-kind registered without a matching doc simply gets no citation clause,
|
|
503
|
-
* never a thrown render. */
|
|
504
|
-
function subKindDocCitation(subKind) {
|
|
505
|
-
try {
|
|
506
|
-
resolveMemoryDoc(`kinds/${subKind}`);
|
|
507
|
-
return ` (\`crtr memory read kinds/${subKind}\`)`;
|
|
508
|
-
}
|
|
509
|
-
catch {
|
|
510
|
-
return '';
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
/** The computed "sub-personas you may spawn" menu for a subject's kind — the
|
|
514
|
-
* live restoration of the old `personas/resolve.ts` static menu, now derived
|
|
515
|
-
* at render time from the merged kind registry (`subKindsAvailableTo`) so it
|
|
516
|
-
* can never drift from `sys context prompt-review --list`'s `subPersonas` metadata.
|
|
517
|
-
* Returns '' when the kind has zero available sub-kinds (no dangling empty
|
|
518
|
-
* header). Emitted for BOTH base and orchestrator modes per the CTO's ruling —
|
|
519
|
-
* mode is irrelevant to which sub-kinds are spawnable. */
|
|
520
|
-
export function buildSubPersonaMenu(kind) {
|
|
521
|
-
const subKinds = subKindsAvailableTo(kind);
|
|
522
|
-
if (subKinds.length === 0)
|
|
523
|
-
return '';
|
|
524
|
-
const lines = subKinds.map((sub) => {
|
|
525
|
-
const citation = subKindDocCitation(sub.kind);
|
|
526
|
-
return `- \`${sub.kind}\` — ${sub.whenToUse}${citation}`;
|
|
527
|
-
});
|
|
528
|
-
return (`## Sub-personas you may spawn\n\n` +
|
|
529
|
-
`These specialist sub-personas are available to the ${kind} kind. Spawn one with ` +
|
|
530
|
-
'`crtr node new --kind <sub> "<scope>"`, and treat it as its own scope instead of ' +
|
|
531
|
-
'dragging unrelated context into it.\n\n' +
|
|
532
|
-
lines.join('\n'));
|
|
533
|
-
}
|
|
534
|
-
// 1. Preferences — protocol prose + `<memory kind="preference">` (system prompt).
|
|
535
|
-
/** The system-prompt substrate splice, TWO parts in one string.
|
|
536
|
-
*
|
|
537
|
-
* 1. The operating protocol: shipped (builtin/plugin) content-rung bodies as
|
|
538
|
-
* bare prose, plus the sub-persona menu. No memory envelope — the protocol
|
|
539
|
-
* is the rules of the node's world, and wrapping it as recalled "memory:
|
|
540
|
-
* preference" content gave it softer epistemic status than the
|
|
541
|
-
* instructions it is; the intro/outro sentences ("how the user wants you
|
|
542
|
-
* to behave", "update the preference") were also false of it.
|
|
543
|
-
* 2. The `<memory kind="preference">` block: the always-present memory-usage
|
|
544
|
-
* guidance, then (when any are eligible) each agent-editable doc wrapped
|
|
545
|
-
* `<preference name="…">…</preference>` — the name is the edit handle the
|
|
546
|
-
* outro's update directive needs — then the preview/name catalog tree.
|
|
547
|
-
* Every frame sentence is true of everything inside it.
|
|
548
|
-
*
|
|
549
|
-
* Ordering across the two parts is unchanged from the single-block render
|
|
550
|
-
* (shipped→editable was already the scope sort), so the shared cache prefix
|
|
551
|
-
* across nodes is preserved. ALWAYS returns a non-empty splice — the guidance
|
|
552
|
-
* frame is unconditional, so it is never empty even when no preference is
|
|
553
|
-
* eligible. */
|
|
554
|
-
function buildPreferencesBlock(subject, target, accounting) {
|
|
555
|
-
let contentDocs = [];
|
|
556
|
-
let tree = '';
|
|
557
|
-
let protocol = '';
|
|
558
|
-
let memBody = MEMORY_USAGE_GUIDANCE;
|
|
559
|
-
if (subject !== null) {
|
|
560
|
-
// No nodeId: a node-local doc rides the knowledge partition whatever its
|
|
561
|
-
// kind, so it never reaches the preference block.
|
|
562
|
-
const winners = bootWinners(bootPlan(subject, null), 'preference');
|
|
563
|
-
const grouped = renderGrouped(winners, 'preferences', subject, target, winners, accounting);
|
|
564
|
-
contentDocs = grouped.contentDocs;
|
|
565
|
-
tree = grouped.tree;
|
|
566
|
-
const shipped = contentDocs
|
|
567
|
-
.filter((d) => !isAgentEditable(d))
|
|
568
|
-
.map((d) => d.body.trim())
|
|
569
|
-
.filter((b) => b !== '');
|
|
570
|
-
const editable = contentDocs
|
|
571
|
-
.filter((d) => isAgentEditable(d))
|
|
572
|
-
.map((d) => {
|
|
573
|
-
const b = d.body.trim();
|
|
574
|
-
return b === '' ? '' : `<preference name="${d.name}">\n${b}\n</preference>`;
|
|
575
|
-
})
|
|
576
|
-
.filter((b) => b !== '');
|
|
577
|
-
const subPersonaMenu = buildSubPersonaMenu(subject.kind);
|
|
578
|
-
protocol = [...shipped, ...grouped.attachmentBlocks, ...(subPersonaMenu === '' ? [] : [subPersonaMenu])].join('\n\n');
|
|
579
|
-
if (editable.length > 0 || tree !== '') {
|
|
580
|
-
memBody += `\n\n${PREFERENCES_INTRO}`;
|
|
581
|
-
if (editable.length > 0)
|
|
582
|
-
memBody += `\n\n${editable.join('\n\n')}`;
|
|
583
|
-
if (tree !== '')
|
|
584
|
-
memBody += `\n\n${tree}`;
|
|
585
|
-
memBody += `\n\n${PREFERENCES_OUTRO}`;
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
const memoryBlock = `<memory kind="preference">\n${memBody}\n</memory>`;
|
|
589
|
-
return { block: protocol === '' ? memoryBlock : `${protocol}\n\n${memoryBlock}`, contentDocs, tree };
|
|
590
|
-
}
|
|
591
|
-
export function renderPreferencesForSubject(subject, target, accounting) {
|
|
592
|
-
return buildPreferencesBlock(subject, target, accounting);
|
|
593
|
-
}
|
|
594
|
-
// 2. Knowledge — `<memory kind="knowledge">` (the first-message bearings).
|
|
595
|
-
/** The `<memory kind="knowledge">` block embedded in the session_start bearings
|
|
596
|
-
* message (bearings.ts pushes it as a SIBLING of `<crtr-bearings>`, or drops it
|
|
597
|
-
* when ''). The consultable catalog: every eligible `kind: knowledge` resolver
|
|
598
|
-
* doc PLUS the node-local memory docs (any kind) — resolver docs win
|
|
599
|
-
* first-wins dedup over a same-named node-local doc. GROUPED by rung exactly
|
|
600
|
-
* like the preference block: content prose first (general→specific,
|
|
601
|
-
* node-local last), then the preview/name catalog tree. A bootless node-local
|
|
602
|
-
* doc arrives floored to `name`, so it surfaces as a bare-name tree entry
|
|
603
|
-
* rather than collapsing into a `[+N more]` count (its body still never
|
|
604
|
-
* renders: floored docs never reach the `content` rung). Procedural guidance and factual
|
|
605
|
-
* references both live here as `knowledge`. Returns '' when nothing is
|
|
606
|
-
* eligible. */
|
|
607
|
-
export function renderKnowledgeForSubject(subject, nodeId, target, accounting) {
|
|
608
|
-
const winners = bootWinners(bootPlan(subject, nodeId), 'knowledge');
|
|
609
|
-
const { contentProse, tree, attachmentBlocks } = renderGrouped(winners, 'knowledge', subject, target, winners, accounting);
|
|
610
|
-
const deliveredContent = [contentProse, ...attachmentBlocks].filter((block) => block !== '').join('\n\n');
|
|
611
|
-
if (deliveredContent === '' && tree === '')
|
|
612
|
-
return '';
|
|
613
|
-
let out = KNOWLEDGE_INTRO;
|
|
614
|
-
if (deliveredContent !== '')
|
|
615
|
-
out += `\n\n${deliveredContent}`;
|
|
616
|
-
if (tree !== '')
|
|
617
|
-
out += `\n\n${tree}`;
|
|
618
|
-
out += `\n\n${KNOWLEDGE_OUTRO}`;
|
|
619
|
-
// Surfaced INTO this node: swap literal `$CRTR_CONTEXT_DIR` for the real path.
|
|
620
|
-
return interpolateNodePaths(`<memory kind="knowledge">\n${out}\n</memory>`, nodeId);
|
|
621
|
-
}
|
|
622
|
-
// 3. The config-change delta — the memory a node's NEW configuration exposes.
|
|
623
|
-
const DELTA_PROTOCOL_INTRO = 'Your node configuration changed. This operating protocol is in force for you now:';
|
|
624
|
-
const DELTA_PREFERENCES_INTRO = 'Your new configuration puts these preferences in force — standing directives and corrections ' +
|
|
625
|
-
'from the user. To read one, run `crtr memory read <name>`. ' +
|
|
626
|
-
READ_LEGEND.replace('%s', 'preference');
|
|
627
|
-
const DELTA_KNOWLEDGE_INTRO = 'Your new configuration exposes these knowledge documents — consult them exactly like the rest ' +
|
|
628
|
-
'of your catalog (`crtr memory read <name>`). ' +
|
|
629
|
-
READ_LEGEND.replace('%s', 'document');
|
|
630
|
-
/** Winners not yet loaded at their boot rung. Bootless winners remain absent. */
|
|
631
|
-
function undelivered(target, docs) {
|
|
632
|
-
return docs.filter((d) => rendersAtBoot(d) && !documentExposedAtOrAbove(target.state, d.path, d.body, d.bootRung));
|
|
633
|
-
}
|
|
634
|
-
/** What a node's configuration change newly exposes, rendered as up to three
|
|
635
|
-
* blocks in one string: the shipped protocol prose, a `<memory kind="preference">`
|
|
636
|
-
* block, and a `<memory kind="knowledge">` block — each dropped when empty, ''
|
|
637
|
-
* when the change exposes nothing.
|
|
638
|
-
*
|
|
639
|
-
* Both kinds use the current subject's ordinary winner assembly, then compare
|
|
640
|
-
* against the active exposure maximum. A lower rung or removal yields nothing
|
|
641
|
-
* because content already loaded into this context cannot be withdrawn.
|
|
642
|
-
* Rendered deltas register as transcript exposure through `target`. */
|
|
643
|
-
export function renderConfigChangeDelta(subject, nodeId, target) {
|
|
644
|
-
const plan = bootPlan(subject, nodeId);
|
|
645
|
-
const prefs = undelivered(target, bootWinners(plan, 'preference'));
|
|
646
|
-
const { contentDocs, tree, attachmentBlocks: preferenceAttachments } = renderGrouped(prefs, 'preferences', subject, target, bootWinners(plan, 'preference'));
|
|
647
|
-
// Same split as the boot preference render: shipped bodies are protocol prose
|
|
648
|
-
// (the rules of the node's world), agent-editable bodies are memory the node
|
|
649
|
-
// can revise, and every non-content preference winner rides the one catalog.
|
|
650
|
-
const shipped = contentDocs
|
|
651
|
-
.filter((d) => !isAgentEditable(d))
|
|
652
|
-
.map((d) => d.body.trim())
|
|
653
|
-
.filter((b) => b !== '');
|
|
654
|
-
const editable = contentDocs
|
|
655
|
-
.filter((d) => isAgentEditable(d))
|
|
656
|
-
.map((d) => {
|
|
657
|
-
const b = d.body.trim();
|
|
658
|
-
return b === '' ? '' : `<preference name="${d.name}">\n${b}\n</preference>`;
|
|
659
|
-
})
|
|
660
|
-
.filter((b) => b !== '');
|
|
661
|
-
const blocks = [];
|
|
662
|
-
if (shipped.length > 0 || preferenceAttachments.length > 0)
|
|
663
|
-
blocks.push(`${DELTA_PROTOCOL_INTRO}\n\n${[...shipped, ...preferenceAttachments].join('\n\n')}`);
|
|
664
|
-
if (editable.length > 0 || tree !== '') {
|
|
665
|
-
let body = DELTA_PREFERENCES_INTRO;
|
|
666
|
-
if (editable.length > 0)
|
|
667
|
-
body += `\n\n${editable.join('\n\n')}`;
|
|
668
|
-
if (tree !== '')
|
|
669
|
-
body += `\n\n${tree}`;
|
|
670
|
-
body += `\n\n${PREFERENCES_OUTRO}`;
|
|
671
|
-
blocks.push(`<memory kind="preference">\n${body}\n</memory>`);
|
|
672
|
-
}
|
|
673
|
-
// Computed AFTER the preference render: that pass may have delivered a
|
|
674
|
-
// knowledge body as a companion, and this delta must not repeat it.
|
|
675
|
-
const knowledge = renderGrouped(undelivered(target, bootWinners(plan, 'knowledge')), 'knowledge', subject, target, bootWinners(plan, 'knowledge'));
|
|
676
|
-
const knowledgeContent = [knowledge.contentProse, ...knowledge.attachmentBlocks].filter((block) => block !== '').join('\n\n');
|
|
677
|
-
if (knowledgeContent !== '' || knowledge.tree !== '') {
|
|
678
|
-
let body = DELTA_KNOWLEDGE_INTRO;
|
|
679
|
-
if (knowledgeContent !== '')
|
|
680
|
-
body += `\n\n${knowledgeContent}`;
|
|
681
|
-
if (knowledge.tree !== '')
|
|
682
|
-
body += `\n\n${knowledge.tree}`;
|
|
683
|
-
body += `\n\n${KNOWLEDGE_OUTRO}`;
|
|
684
|
-
blocks.push(`<memory kind="knowledge">\n${body}\n</memory>`);
|
|
685
|
-
}
|
|
686
|
-
if (blocks.length === 0)
|
|
687
|
-
return '';
|
|
688
|
-
return interpolateNodePaths(blocks.join('\n\n'), nodeId);
|
|
689
|
-
}
|
|
1
|
+
var q=Object.defineProperty;var u=(e,t)=>q(e,"name",{value:t,configurable:!0});import{sep as z}from"node:path";import{interpolateNodePaths as T}from"../canvas/paths.js";import{ambientMemoryTarget as J,listAllMemoryDocs as Q,loadMemoryTargetView as X,resolveMemoryDoc as Z}from"../memory-resolver.js";import{buildMemoryTree as C}from"../memory/tree.js";import{subKindsAvailableTo as ee}from"../config.js";import{projectScopeRoots as ne}from"../scope.js";import{documentExposedAtOrAbove as v,emptyContextExposureState as te,exposureTarget as oe,registerDocumentExposure as O,registerExposure as re}from"./injected-store.js";import{bootPartitionOf as se,planDelivery as ie}from"./plan.js";import{parseSubstrateDoc as P,previewLine as ce,rungAtLeast as M,rungRank as N}from"./schema.js";import{accountDelivery as S,contentReadAttachments as ae}from"./on-read.js";import{dirDedupKey as ue,docsByName as le}from"./listings.js";import{cachedEventCorpusInclusive as fe}from"./session-cache.js";function A(e){if(e===null)return[];let t;try{t=X({cwd:process.cwd(),profileId:null,nodeId:e},{scope:"node",quiet:!0}).docs}catch{return[]}const n=[];for(const r of t){const o=P(r);o!==null&&n.push({doc:o,source:r})}return n}u(A,"nodeStoreCorpus");function de(e){let t;try{t=fe(Q,P).filter(n=>n.doc.scope!=="node")}catch{return A(e)}return[...t,...A(e)]}u(de,"bootCorpus");function E(e,t){return ie(e,{...J(),nodeId:t},"boot",{},de(t))}u(E,"bootPlan");function g(e,t){return e.docs.filter(n=>n.winner&&se(n)===t).map(n=>({...n.doc,source:n.source,bootRung:n.finalRung}))}u(g,"bootWinners");function R(e){return D(e.bootRung)&&(e.bootRung!=="content"||e.body.trim()!=="")}u(R,"rendersAtBoot");function _(e){if(e.scope==="node")return 1e3;if(e.scope==="builtin")return 0;if(e.scope==="user")return 1;if(e.scope==="profile")return 2;const t=ne();if(t.length===0)return 3;const n=t.findIndex(o=>e.path.startsWith(o+z)),r=n===-1?0:n;return 3+(t.length-1-r)}u(_,"scopeGeneralityRank");function B(e){const t=e.source.physicalRelativePath.replace(/\.md$/i,"").split("/");return e.source.representation==="directory-index"&&t.pop(),t}u(B,"physicalSegments");function me(e,t){const n=B(e),r=B(t),o=Math.min(n.length,r.length);for(let i=0;i<o;i++){const a=n[i].localeCompare(r[i]);if(a!==0)return a}return n.length-r.length}u(me,"compareTreePosition");function w(e){return e.scope!=="builtin"&&e.plugin===void 0}u(w,"isAgentEditable");function pe(e,t,n){if(t.length===0)return[];const r=new Map(e.map(a=>[a.path,a])),o=C(e.map(a=>a.source)),i=new Map;for(const a of t){const l=o.node(a);if(l===null)continue;let d=!1;const m=[...l.childDocuments.map(p=>p.document),...l.childDirectories.flatMap(p=>p.document===null?[]:[p.document])];for(const p of m){const f=r.get(p.path);f===void 0||i.has(f.path)||f.bootRung==="content"||M(f.bootRung,"preview")||f.unlisted||M(f.projectMemory,"preview")&&(v(n.state,f.path,f.body,"preview")||(i.set(f.path,{...f,bootRung:"preview"}),d=!0))}d&&re(n,ue(a),"preview")}return[...i.values()]}u(pe,"exposedDirEntries");function b(e,t,n,r,o=e,i){const a=r??oe(te(),"transcript"),l=[],d=[];for(const s of e)s.bootRung==="content"?l.push(s):d.push(s);l.sort((s,$)=>_(s)-_($)||me(s,$)||s.name.localeCompare($.name));const m=l.filter(s=>!v(a.state,s.path,s.body,"content")),p=m.map(s=>s.body.trim()).filter(s=>s!=="").join(`
|
|
2
|
+
|
|
3
|
+
`);for(const s of m)R(s)&&(O(a,s.path,s.body,s.bootRung),S(i,s,s.bootRung,void 0,s.source));const f={subject:n??null,target:a,byName:le(o.map(s=>s.source)),listings:"tree",dirs:[],accounting:i},h=m.flatMap(s=>ae(s,f).blocks),c=pe(o,f.dirs??[],a),y=new Map(c.map(s=>[s.path,s])),V=new Set(d.map(s=>s.path)),x=[...d.map(s=>y.get(s.path)??s),...c.filter(s=>!V.has(s.path))];for(const s of x)R(s)&&(O(a,s.path,s.body,s.bootRung),S(i,s,s.bootRung,y.has(s.path)?"directory listing attached to content delivery":void 0,s.source));return{contentProse:p,tree:he(x,t),contentDocs:m,attachmentBlocks:h}}u(b,"renderGrouped");function j(e){const t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}u(j,"leafSegment");function D(e){return N(e)>=N("name")}u(D,"isVisible");function L(e,t){const n=e.childDirectories.map(l=>L(l,t)),r=[];let o=0;for(const l of e.childDocuments){const d=t.get(l.document.path);d!==void 0&&(D(d.bootRung)?r.push({name:l.name,order:l.order,doc:d}):o+=1)}const i=e.document===null?null:t.get(e.document.path)??null;let a=null;return i!==null&&(D(i.bootRung)?a=i:o+=1),{name:e.name,segment:j(e.name),order:e.order,own:a,children:n,leaves:r,hiddenHere:o,renders:!1,ownCount:0}}u(L,"planDir");function G(e,t){let n=e.hiddenHere;for(const i of e.children)n+=G(i,e.name==="");const r=e.own!==null||e.leaves.length>0,o=e.children.some(i=>i.renders);return e.renders=r||o||t||e.name==="",e.ownCount=e.renders?n:0,e.renders?0:n}u(G,"resolveDir");function I(e){return e.kind==="dir"?e.node.order:e.kind==="leaf"?e.entry.order:""}u(I,"itemOrder");function K(e){return e.kind==="dir"?e.node.name:e.kind==="leaf"?e.entry.name:""}u(K,"itemName");function F(e,t,n,r){const o=e.bootRung==="preview"?ce(e):"";r.push(o===""?`${n}${t}`:`${n}${t} # read when: ${o}`)}u(F,"renderDocEntry");function W(e,t,n){const r=[];for(const o of e.children)o.renders&&r.push({kind:"dir",node:o});for(const o of e.leaves)r.push({kind:"leaf",entry:o});r.sort((o,i)=>I(o).localeCompare(I(i))||K(o).localeCompare(K(i))),e.ownCount>0&&r.push({kind:"more",count:e.ownCount}),r.forEach((o,i)=>{const a=i===r.length-1,l=t+(a?"\u2514\u2500 ":"\u251C\u2500 "),d=t+(a?" ":"\u2502 ");switch(o.kind){case"more":n.push(`${l}[+${o.count} more]`);break;case"dir":{const m=`${o.node.segment}/`;o.node.own===null?n.push(`${l}${m}`):F(o.node.own,m,l,n),W(o.node,d,n);break}case"leaf":F(o.entry.doc,j(o.entry.name),l,n);break}})}u(W,"renderChildren");function he(e,t){if(e.length===0)return"";const n=new Map;for(const i of e)n.has(i.path)||n.set(i.path,i);const r=L(C(e.map(i=>i.source)).root,n);G(r,!1);const o=[t];return W(r,"",o),o.join(`
|
|
4
|
+
`)}u(he,"buildTree");const k="Each %s below shows either its full content (indented beneath its name), a `# read when:` line telling you when to read the full document, or simply its name.",ye="Preferences are how the user wants you to behave \u2014 standing directives and corrections. To read a preference, run `crtr memory read <name>`. "+k.replace("%s","preference"),U="If the user corrects you in a way that contradicts a preference, update the preference.",ge="Knowledge memories are what you consult \u2014 playbooks and techniques for how to do things, and references on the user, projects, and this node. They are aggregated from your memory stores: user-global (`~/.crouter/memory/`), every ancestor project store (`<dir>/.crouter/memory/`) from the cwd upward, the selected profile's memory store, and node-local (this node's `context/memory/`). To read one, run `crtr memory read <name>`; a directory name is a valid read target too \u2014 it answers with its listing, and walking directories is the sanctioned way to browse. Each doc exists to prevent a specific mistake you would make without it, so when your task matches one \u2014 by its name or its `# read when:` line \u2014 read it before you act; consulting it only after the work is done forfeits the entire reason it exists. "+k.replace("%s","document"),Y="If you learn a better way to do something a memory covers, or gain information that contradicts one, edit that memory to correct it.",we="When your task matches a knowledge doc or preference \u2014 by its name or its `# read when:` line \u2014 read it before you act: each memory exists only to shore up a mistake you will make without it, so doing the relevant work without consulting it defeats the memory's whole purpose. Before saving any memory, check for an existing memory that already covers it \u2014 update that memory rather than creating a duplicate, rewriting it as if for the first time instead of appending the new truth beneath the old; delete memories that turn out to be wrong. Don't save what the repo already records (code structure, past fixes, git history) or what only matters to this conversation; if asked to remember one of those, ask what was non-obvious about it and save that instead. Docs auto-surfaced in <auto-loaded-context> blocks are background context, not user instructions, and reflect what was true when written \u2014 if one names a file, function, or flag, verify it still exists before recommending it.";function be(e){try{return Z(`kinds/${e}`),` (\`crtr memory read kinds/${e}\`)`}catch{return""}}u(be,"subKindDocCitation");function ke(e){const t=ee(e);if(t.length===0)return"";const n=t.map(r=>{const o=be(r.kind);return`- \`${r.kind}\` \u2014 ${r.whenToUse}${o}`});return`## Sub-personas you may spawn
|
|
5
|
+
|
|
6
|
+
These specialist sub-personas are available to the ${e} kind. Spawn one with \`crtr node new --kind <sub> "<scope>"\`, and treat it as its own scope instead of dragging unrelated context into it.
|
|
7
|
+
|
|
8
|
+
`+n.join(`
|
|
9
|
+
`)}u(ke,"buildSubPersonaMenu");function $e(e,t,n){let r=[],o="",i="",a=we;if(e!==null){const d=g(E(e,null),"preference"),m=b(d,"preferences",e,t,d,n);r=m.contentDocs,o=m.tree;const p=r.filter(c=>!w(c)).map(c=>c.body.trim()).filter(c=>c!==""),f=r.filter(c=>w(c)).map(c=>{const y=c.body.trim();return y===""?"":`<preference name="${c.name}">
|
|
10
|
+
${y}
|
|
11
|
+
</preference>`}).filter(c=>c!==""),h=ke(e.kind);i=[...p,...m.attachmentBlocks,...h===""?[]:[h]].join(`
|
|
12
|
+
|
|
13
|
+
`),(f.length>0||o!=="")&&(a+=`
|
|
14
|
+
|
|
15
|
+
${ye}`,f.length>0&&(a+=`
|
|
16
|
+
|
|
17
|
+
${f.join(`
|
|
18
|
+
|
|
19
|
+
`)}`),o!==""&&(a+=`
|
|
20
|
+
|
|
21
|
+
${o}`),a+=`
|
|
22
|
+
|
|
23
|
+
${U}`)}const l=`<memory kind="preference">
|
|
24
|
+
${a}
|
|
25
|
+
</memory>`;return{block:i===""?l:`${i}
|
|
26
|
+
|
|
27
|
+
${l}`,contentDocs:r,tree:o}}u($e,"buildPreferencesBlock");function Le(e,t,n){return $e(e,t,n)}u(Le,"renderPreferencesForSubject");function Ge(e,t,n,r){const o=g(E(e,t),"knowledge"),{contentProse:i,tree:a,attachmentBlocks:l}=b(o,"knowledge",e,n,o,r),d=[i,...l].filter(p=>p!=="").join(`
|
|
28
|
+
|
|
29
|
+
`);if(d===""&&a==="")return"";let m=ge;return d!==""&&(m+=`
|
|
30
|
+
|
|
31
|
+
${d}`),a!==""&&(m+=`
|
|
32
|
+
|
|
33
|
+
${a}`),m+=`
|
|
34
|
+
|
|
35
|
+
${Y}`,T(`<memory kind="knowledge">
|
|
36
|
+
${m}
|
|
37
|
+
</memory>`,t)}u(Ge,"renderKnowledgeForSubject");const ve="Your node configuration changed. This operating protocol is in force for you now:",Ee="Your new configuration puts these preferences in force \u2014 standing directives and corrections from the user. To read one, run `crtr memory read <name>`. "+k.replace("%s","preference"),Re="Your new configuration exposes these knowledge documents \u2014 consult them exactly like the rest of your catalog (`crtr memory read <name>`). "+k.replace("%s","document");function H(e,t){return t.filter(n=>R(n)&&!v(e.state,n.path,n.body,n.bootRung))}u(H,"undelivered");function Ie(e,t,n){const r=E(e,t),o=H(n,g(r,"preference")),{contentDocs:i,tree:a,attachmentBlocks:l}=b(o,"preferences",e,n,g(r,"preference")),d=i.filter(c=>!w(c)).map(c=>c.body.trim()).filter(c=>c!==""),m=i.filter(c=>w(c)).map(c=>{const y=c.body.trim();return y===""?"":`<preference name="${c.name}">
|
|
38
|
+
${y}
|
|
39
|
+
</preference>`}).filter(c=>c!==""),p=[];if((d.length>0||l.length>0)&&p.push(`${ve}
|
|
40
|
+
|
|
41
|
+
${[...d,...l].join(`
|
|
42
|
+
|
|
43
|
+
`)}`),m.length>0||a!==""){let c=Ee;m.length>0&&(c+=`
|
|
44
|
+
|
|
45
|
+
${m.join(`
|
|
46
|
+
|
|
47
|
+
`)}`),a!==""&&(c+=`
|
|
48
|
+
|
|
49
|
+
${a}`),c+=`
|
|
50
|
+
|
|
51
|
+
${U}`,p.push(`<memory kind="preference">
|
|
52
|
+
${c}
|
|
53
|
+
</memory>`)}const f=b(H(n,g(r,"knowledge")),"knowledge",e,n,g(r,"knowledge")),h=[f.contentProse,...f.attachmentBlocks].filter(c=>c!=="").join(`
|
|
54
|
+
|
|
55
|
+
`);if(h!==""||f.tree!==""){let c=Re;h!==""&&(c+=`
|
|
56
|
+
|
|
57
|
+
${h}`),f.tree!==""&&(c+=`
|
|
58
|
+
|
|
59
|
+
${f.tree}`),c+=`
|
|
60
|
+
|
|
61
|
+
${Y}`,p.push(`<memory kind="knowledge">
|
|
62
|
+
${c}
|
|
63
|
+
</memory>`)}return p.length===0?"":T(p.join(`
|
|
64
|
+
|
|
65
|
+
`),t)}u(Ie,"renderConfigChangeDelta");export{ke as buildSubPersonaMenu,Ie as renderConfigChangeDelta,Ge as renderKnowledgeForSubject,Le as renderPreferencesForSubject};
|