@north-light/crouter 0.3.318 → 0.3.320
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -3
- package/dist/api/client.js +2 -912
- package/dist/api/dto/attach.js +0 -13
- package/dist/api/dto/bash-jobs.js +1 -9
- package/dist/api/dto/broker-ops.js +0 -6
- package/dist/api/dto/broker.js +0 -20
- package/dist/api/dto/canvas.js +0 -2
- package/dist/api/dto/chat-inventory.js +0 -11
- package/dist/api/dto/common.js +1 -15
- package/dist/api/dto/config.js +0 -3
- package/dist/api/dto/crons.js +1 -10
- package/dist/api/dto/files.js +0 -7
- package/dist/api/dto/focus.js +0 -10
- package/dist/api/dto/health.js +0 -2
- package/dist/api/dto/human-requests.js +0 -4
- package/dist/api/dto/human.js +0 -4
- package/dist/api/dto/inbox.js +0 -4
- package/dist/api/dto/lifecycle.js +0 -3
- package/dist/api/dto/mail.js +0 -1
- package/dist/api/dto/memory.js +0 -6
- package/dist/api/dto/messages.js +0 -2
- package/dist/api/dto/model-config.js +0 -1
- package/dist/api/dto/modelauth.js +0 -4
- package/dist/api/dto/node-outcomes.js +0 -2
- package/dist/api/dto/nodes.js +0 -3
- package/dist/api/dto/profiles.js +1 -4
- package/dist/api/dto/recovery.js +0 -1
- package/dist/api/dto/reports.js +0 -2
- package/dist/api/dto/review-comments.js +0 -5
- package/dist/api/dto/reviews.js +0 -5
- package/dist/api/dto/subscriptions.js +0 -2
- package/dist/api/dto/worktree.js +0 -6
- package/dist/api/errors.js +1 -40
- package/dist/api/index.js +1 -33
- package/dist/api/plugin-manifest-schema.js +0 -23
- package/dist/api/routes.js +1 -147
- package/dist/build-root.js +1 -198
- package/dist/cli.js +3 -99
- package/dist/clients/attach/ansi-cells.js +1 -137
- package/dist/clients/attach/chrome/bash-jobs.js +1 -31
- package/dist/clients/attach/chrome/canvas-panels.js +1 -194
- package/dist/clients/attach/chrome/completion-bell.js +1 -89
- package/dist/clients/attach/chrome/cron-wait.js +1 -34
- package/dist/clients/attach/chrome/git-info.js +2 -44
- package/dist/clients/attach/chrome/header.js +1 -30
- package/dist/clients/attach/chrome/inbox-strip.js +1 -199
- package/dist/clients/attach/chrome/recap.js +1 -19
- package/dist/clients/attach/chrome/review-wait.js +1 -22
- package/dist/clients/attach/chrome/roster.js +4 -275
- package/dist/clients/attach/chrome/status-line.js +1 -117
- package/dist/clients/attach/chrome/ticket-panel.js +1 -280
- package/dist/clients/attach/chrome/widgets.js +1 -51
- package/dist/clients/attach/command.js +1 -107
- package/dist/clients/attach/config.js +1 -274
- package/dist/clients/attach/input/capabilities.js +1 -104
- package/dist/clients/attach/input/clipboard-image.js +3 -220
- package/dist/clients/attach/input/completion-frecency.js +1 -141
- package/dist/clients/attach/input/controller.js +7 -377
- package/dist/clients/attach/input/overlay-owner.js +1 -199
- package/dist/clients/attach/input/ref-autocomplete.js +2 -176
- package/dist/clients/attach/input/titled-editor.js +4 -859
- package/dist/clients/attach/overlays/auth.js +2 -271
- package/dist/clients/attach/overlays/dialogs.js +2 -102
- package/dist/clients/attach/overlays/file-review.js +2 -128
- package/dist/clients/attach/overlays/graph.js +1 -661
- package/dist/clients/attach/overlays/help.js +1 -211
- package/dist/clients/attach/overlays/mcp.js +1 -302
- package/dist/clients/attach/overlays/pickers.js +1 -163
- package/dist/clients/attach/render/activity-slot.js +1 -13
- package/dist/clients/attach/render/assistant-message.js +1 -56
- package/dist/clients/attach/render/card-presentation.js +5 -218
- package/dist/clients/attach/render/chat-view.js +5 -1708
- package/dist/clients/attach/render/condensed-history.js +1 -60
- package/dist/clients/attach/render/context-message.js +1 -63
- package/dist/clients/attach/render/crtr-output.js +17 -905
- package/dist/clients/attach/render/diagram.js +7 -111
- package/dist/clients/attach/render/edit-diff.js +5 -304
- package/dist/clients/attach/render/glyph-codepoints.js +1 -42
- package/dist/clients/attach/render/group-activity.js +2 -263
- package/dist/clients/attach/render/group-recap.js +1 -152
- package/dist/clients/attach/render/markdown-source.js +5 -266
- package/dist/clients/attach/render/measured-container.js +1 -322
- package/dist/clients/attach/render/page-block.js +1 -183
- package/dist/clients/attach/render/scroll-animation.js +1 -80
- package/dist/clients/attach/render/tool-calls.js +3 -361
- package/dist/clients/attach/render/transcript-copy.js +2 -81
- package/dist/clients/attach/render/transcript-search.js +1 -152
- package/dist/clients/attach/render/viewport.js +1 -184
- package/dist/clients/attach/session/banner.js +1 -29
- package/dist/clients/attach/session/bindings.js +1 -71
- package/dist/clients/attach/session/chrome-refresh.js +1 -94
- package/dist/clients/attach/session/connection.js +1 -186
- package/dist/clients/attach/session/context.js +0 -16
- package/dist/clients/attach/session/editor-frame.js +1 -142
- package/dist/clients/attach/session/editor-inventory.js +6 -160
- package/dist/clients/attach/session/file-links.js +1 -68
- package/dist/clients/attach/session/focus-events.js +1 -12
- package/dist/clients/attach/session/frame.js +1 -214
- package/dist/clients/attach/session/frames.js +1 -188
- package/dist/clients/attach/session/identity.js +1 -26
- package/dist/clients/attach/session/input-wiring.js +1 -140
- package/dist/clients/attach/session/invariant.js +1 -15
- package/dist/clients/attach/session/keys.js +1 -77
- package/dist/clients/attach/session/layout.js +1 -59
- package/dist/clients/attach/session/mouse.js +1 -78
- package/dist/clients/attach/session/pane-focus.js +1 -42
- package/dist/clients/attach/session/pane-tag.js +1 -112
- package/dist/clients/attach/session/pi-assets.js +1 -24
- package/dist/clients/attach/session/pi-oauth-flows.js +1 -21
- package/dist/clients/attach/session/profile-files.js +1 -228
- package/dist/clients/attach/session/reconnect.js +1 -175
- package/dist/clients/attach/session/selection.js +3 -108
- package/dist/clients/attach/session/state-sync.js +1 -67
- package/dist/clients/attach/session/surface-frame.js +1 -73
- package/dist/clients/attach/session/surface-host.js +1 -255
- package/dist/clients/attach/session/teardown.js +5 -94
- package/dist/clients/attach/session/transcript-search.js +3 -151
- package/dist/clients/attach/session/whip-achievements.js +2 -145
- package/dist/clients/attach/session/whip.js +1 -362
- package/dist/clients/attach/slash/dispatch.js +1 -706
- package/dist/clients/attach/slash/prompt-preview.js +1 -121
- package/dist/clients/attach/viewer.js +441 -441
- package/dist/clients/conversation/projection.js +1 -324
- package/dist/clients/conversation/submit.js +1 -51
- package/dist/clients/inbox/controller.js +1 -701
- package/dist/clients/inbox/dto-adapt.js +1 -93
- package/dist/clients/inbox/layout.js +1 -9
- package/dist/clients/inbox/page-adapter.js +1 -55
- package/dist/clients/inbox/resolve.js +1 -35
- package/dist/clients/inbox/review/anchors.js +1 -89
- package/dist/clients/inbox/review/comments-client.js +1 -98
- package/dist/clients/inbox/review/companion-pane.js +1 -82
- package/dist/clients/inbox/review/document-surface.js +2 -1188
- package/dist/clients/inbox/review/frame.js +1 -216
- package/dist/clients/inbox/review/keys.js +1 -123
- package/dist/clients/inbox/review/launch.js +1 -151
- package/dist/clients/inbox/review/live-source.js +1 -160
- package/dist/clients/inbox/review/nvim.js +1 -44
- package/dist/clients/inbox/review/remap.js +1 -157
- package/dist/clients/inbox/review/review-client.js +1 -123
- package/dist/clients/inbox/review/roundtrip.js +3 -36
- package/dist/clients/inbox/review/state.js +4 -315
- package/dist/clients/inbox/review-adapter.js +1 -43
- package/dist/clients/inbox/surface.js +1 -152
- package/dist/clients/inbox/tui/ansi.js +3 -321
- package/dist/clients/inbox/tui/input.js +5 -392
- package/dist/clients/inbox/tui/keys.js +1 -104
- package/dist/clients/inbox/tui/page-body.js +1 -66
- package/dist/clients/inbox/tui/panel.js +1 -84
- package/dist/clients/inbox/tui/render.js +2 -368
- package/dist/clients/inbox/tui/slots.js +3 -134
- package/dist/clients/inbox/tui/types.js +0 -1
- package/dist/clients/inbox/tui.js +1 -86
- package/dist/clients/surfaces/host.js +0 -1
- package/dist/commands/api-client.js +4 -290
- package/dist/commands/attention.js +1 -215
- package/dist/commands/canvas-browse.js +1 -70
- package/dist/commands/canvas-config.js +2 -192
- package/dist/commands/canvas-history/grep.js +7 -85
- package/dist/commands/canvas-history/read.js +3 -50
- package/dist/commands/canvas-history/search.js +10 -99
- package/dist/commands/canvas-history/shared.js +1 -139
- package/dist/commands/canvas-history/stats.js +6 -68
- package/dist/commands/canvas-history.js +1 -32
- package/dist/commands/canvas-issue.js +14 -149
- package/dist/commands/canvas-prune.js +1 -108
- package/dist/commands/canvas-roster.js +1 -69
- package/dist/commands/canvas-snapshot.js +1 -34
- package/dist/commands/canvas-use.js +1 -61
- package/dist/commands/canvas.js +1 -49
- package/dist/commands/chord.js +1 -241
- package/dist/commands/cron.js +11 -534
- package/dist/commands/dashboard.js +1 -85
- package/dist/commands/human/components.js +3 -77
- package/dist/commands/human/feedback.js +1 -112
- package/dist/commands/human/prompts.js +1 -331
- package/dist/commands/human/queue.js +1 -191
- package/dist/commands/human/request.js +1 -266
- package/dist/commands/human/review.js +1 -288
- package/dist/commands/human/shared.js +1 -67
- package/dist/commands/human.js +4 -60
- package/dist/commands/memory/delete.js +1 -100
- package/dist/commands/memory/edit.js +21 -219
- package/dist/commands/memory/find.js +2 -244
- package/dist/commands/memory/history.js +5 -199
- package/dist/commands/memory/lint.js +1 -107
- package/dist/commands/memory/list.js +1 -142
- package/dist/commands/memory/move.js +1 -223
- package/dist/commands/memory/origin.js +1 -130
- package/dist/commands/memory/read.js +6 -232
- package/dist/commands/memory/shared.js +12 -802
- package/dist/commands/memory/write.js +13 -235
- package/dist/commands/memory.js +1 -30
- package/dist/commands/node/bash.js +5 -245
- package/dist/commands/node/create.js +3 -332
- package/dist/commands/node/inspect.js +12 -300
- package/dist/commands/node/lifecycle.js +2 -453
- package/dist/commands/node/message.js +1 -161
- package/dist/commands/node/outcome.js +4 -134
- package/dist/commands/node/pyramid.js +2 -79
- package/dist/commands/node/subscription.js +1 -78
- package/dist/commands/node/wait.js +7 -163
- package/dist/commands/node-context.js +2 -159
- package/dist/commands/node-inspect-artifacts.js +8 -109
- package/dist/commands/node-lifecycle-revive.js +1 -217
- package/dist/commands/node-snapshot.js +1 -37
- package/dist/commands/node-transcript.js +1 -62
- package/dist/commands/node-worktree.js +1 -138
- package/dist/commands/node.js +1 -29
- package/dist/commands/pkg/browse/actions.js +1 -198
- package/dist/commands/pkg/browse/catalog.js +1 -466
- package/dist/commands/pkg/browse/command-view.js +1 -191
- package/dist/commands/pkg/browse/detail-panel.js +1 -402
- package/dist/commands/pkg/browse/doc-view.js +1 -89
- package/dist/commands/pkg/browse/list-panel.js +2 -168
- package/dist/commands/pkg/browse/model.js +1 -36
- package/dist/commands/pkg/browse/shell.js +1 -640
- package/dist/commands/pkg/browse.js +1 -27
- package/dist/commands/pkg/market-inspect.js +1 -141
- package/dist/commands/pkg/market-manage.js +1 -327
- package/dist/commands/pkg/market.js +1 -14
- package/dist/commands/pkg/plugin-inspect.js +1 -168
- package/dist/commands/pkg/plugin-manage.js +17 -1109
- package/dist/commands/pkg/plugin.js +1 -14
- package/dist/commands/pkg/shared.js +1 -62
- package/dist/commands/pkg.js +1 -21
- package/dist/commands/profile/default.js +1 -139
- package/dist/commands/profile/delete.js +1 -66
- package/dist/commands/profile/env.js +3 -188
- package/dist/commands/profile/kind.js +2 -35
- package/dist/commands/profile/list.js +1 -43
- package/dist/commands/profile/meta.js +1 -67
- package/dist/commands/profile/new.js +1 -115
- package/dist/commands/profile/pause.js +1 -59
- package/dist/commands/profile/project.js +1 -113
- package/dist/commands/profile/rename.js +1 -38
- package/dist/commands/profile/show.js +1 -52
- package/dist/commands/profile.js +1 -35
- package/dist/commands/push.js +9 -265
- package/dist/commands/revive.js +10 -181
- package/dist/commands/surface/node/cycle.js +1 -83
- package/dist/commands/surface/node/focus.js +1 -81
- package/dist/commands/surface/node/id.js +1 -38
- package/dist/commands/surface/node/pin.js +1 -42
- package/dist/commands/surface/node/placement.js +1 -134
- package/dist/commands/surface-edit.js +1 -157
- package/dist/commands/surface-inbox.js +1 -98
- package/dist/commands/surface-inspect.js +1 -39
- package/dist/commands/surface-node.js +1 -19
- package/dist/commands/surface-reload.js +2 -134
- package/dist/commands/surface-tmux-spread.js +1 -214
- package/dist/commands/surface.js +1 -28
- package/dist/commands/sys/branch.js +1 -19
- package/dist/commands/sys/config.js +1 -353
- package/dist/commands/sys/context/admin/actions.js +2 -246
- package/dist/commands/sys/context/admin/detail-panel.js +1 -247
- package/dist/commands/sys/context/admin/docs-panel.js +1 -191
- package/dist/commands/sys/context/admin/list-view.js +1 -183
- package/dist/commands/sys/context/admin/model.js +1 -229
- package/dist/commands/sys/context/admin/rail-panel.js +1 -227
- package/dist/commands/sys/context/admin/read-view.js +2 -194
- package/dist/commands/sys/context/admin/shell.js +1 -910
- package/dist/commands/sys/context/admin.js +2 -126
- package/dist/commands/sys/context/doc.js +3 -197
- package/dist/commands/sys/context/prompt-review.js +11 -291
- package/dist/commands/sys/context/resolve.js +10 -489
- package/dist/commands/sys/context/sysprompt.js +5 -96
- package/dist/commands/sys/context.js +1 -20
- package/dist/commands/sys/daemon.js +1 -313
- package/dist/commands/sys/doctor.js +1 -617
- package/dist/commands/sys/feedback.js +7 -228
- package/dist/commands/sys/logs.js +3 -129
- package/dist/commands/sys/migrate.js +1 -94
- package/dist/commands/sys/panels/broker-limits-panel.js +2 -110
- package/dist/commands/sys/panels/dependencies-panel.js +1 -80
- package/dist/commands/sys/panels/keybindings-panel.js +1 -703
- package/dist/commands/sys/panels/models-panel.js +1 -1133
- package/dist/commands/sys/panels/plugins-panel.js +1 -80
- package/dist/commands/sys/panels/prefs-panel.js +1 -85
- package/dist/commands/sys/panels/profiles-panel.js +1 -601
- package/dist/commands/sys/panels/provider-panel.js +1 -538
- package/dist/commands/sys/settings-shell.js +1 -400
- package/dist/commands/sys/settings.js +1 -46
- package/dist/commands/sys/setup-core.js +6 -579
- package/dist/commands/sys/setup-settings-runner.js +1 -16
- package/dist/commands/sys/setup-wizard.js +1 -279
- package/dist/commands/sys/setup.js +1 -34
- package/dist/commands/sys/shared.js +1 -81
- package/dist/commands/sys/support/prepare.js +3 -239
- package/dist/commands/sys/support/submit.js +6 -524
- package/dist/commands/sys/support.js +1 -18
- package/dist/commands/sys/sync-deps.js +15 -498
- package/dist/commands/sys/sync-project-guidance.js +4 -481
- package/dist/commands/sys/sync-shared.js +1 -49
- package/dist/commands/sys/sync-skills.js +2 -311
- package/dist/commands/sys/sync.js +1 -18
- package/dist/commands/sys/update.js +1 -147
- package/dist/commands/sys/worktrees.js +5 -53
- package/dist/commands/sys.js +1 -18
- package/dist/core/activity-signal.js +2 -38
- package/dist/core/asset-root.js +1 -18
- package/dist/core/auth-file.js +2 -179
- package/dist/core/auth-interaction.js +3 -94
- package/dist/core/auto-update.js +4 -94
- package/dist/core/bash-guard.js +11 -393
- package/dist/core/bash-jobs.js +7 -411
- package/dist/core/bootstrap.js +2 -53
- package/dist/core/broker-client/client.js +1 -184
- package/dist/core/broker-client/index.js +1 -13
- package/dist/core/broker-client/transport-relay.js +1 -157
- package/dist/core/broker-client/transport-socket.js +1 -179
- package/dist/core/broker-client/transport.js +1 -26
- package/dist/core/canvas/attention.js +1 -47
- package/dist/core/canvas/boot-id.js +1 -26
- package/dist/core/canvas/boot.js +1 -186
- package/dist/core/canvas/browse/app.js +3 -919
- package/dist/core/canvas/browse/model.js +1 -477
- package/dist/core/canvas/browse/pins.js +1 -29
- package/dist/core/canvas/browse/render.js +3 -1055
- package/dist/core/canvas/canvas.js +15 -922
- package/dist/core/canvas/crons.js +11 -481
- package/dist/core/canvas/daemon-owner.js +2 -146
- package/dist/core/canvas/db.js +2 -100
- package/dist/core/canvas/deliveries.js +22 -283
- package/dist/core/canvas/delivery-contract.js +1 -8
- package/dist/core/canvas/executions.js +1 -68
- package/dist/core/canvas/extensions.js +1 -83
- package/dist/core/canvas/focuses.js +1 -77
- package/dist/core/canvas/history.js +24 -860
- package/dist/core/canvas/index.js +1 -15
- package/dist/core/canvas/install-id.js +1 -84
- package/dist/core/canvas/labels.js +1 -43
- package/dist/core/canvas/meta-file.js +1 -89
- package/dist/core/canvas/migrations.js +41 -1150
- package/dist/core/canvas/nav-model.js +1 -231
- package/dist/core/canvas/nav-render.js +1 -260
- package/dist/core/canvas/node-order.js +1 -37
- package/dist/core/canvas/node-recap.js +2 -67
- package/dist/core/canvas/node-sql-migration.js +2 -209
- package/dist/core/canvas/paths.js +1 -153
- package/dist/core/canvas/pid.js +4 -683
- package/dist/core/canvas/recovery.js +3 -565
- package/dist/core/canvas/remote-canvas-source.js +1 -288
- package/dist/core/canvas/remote-transport.js +1 -57
- package/dist/core/canvas/render-source.js +10 -635
- package/dist/core/canvas/sessions.js +1 -78
- package/dist/core/canvas/source.js +1 -47
- package/dist/core/canvas/status-glyph.js +1 -132
- package/dist/core/canvas/telemetry.js +1 -35
- package/dist/core/canvas/types.js +1 -6
- package/dist/core/canvas/waits.js +4 -68
- package/dist/core/canvas/worktrees.js +1 -93
- package/dist/core/clipboard-text.js +1 -57
- package/dist/core/command-hooks/artifact.js +1 -145
- package/dist/core/command-hooks/catalog.js +1 -38
- package/dist/core/command-hooks/compose.js +1 -99
- package/dist/core/command-hooks/discovery.js +1 -228
- package/dist/core/command-hooks/help.js +1 -18
- package/dist/core/command-hooks/index.js +1 -7
- package/dist/core/command-hooks/lifecycle-catalog.js +1 -9
- package/dist/core/command-hooks/lifecycle-create.js +1 -51
- package/dist/core/command-hooks/report.js +1 -28
- package/dist/core/command-hooks/schema.js +1 -157
- package/dist/core/command-hooks/transport/exec-invoke.js +1 -276
- package/dist/core/command-hooks/transport/exec-lifecycle.js +1 -211
- package/dist/core/command-manifests/manifest.js +1 -324
- package/dist/core/command-manifests/registry.js +1 -118
- package/dist/core/command-manifests/schema.js +1 -736
- package/dist/core/command-plugins/bundle.js +1 -261
- package/dist/core/command-plugins/compose.js +1 -65
- package/dist/core/command-plugins/discovery.js +1 -245
- package/dist/core/command-plugins/endpoint.js +1 -48
- package/dist/core/command-plugins/extensions.js +1 -166
- package/dist/core/command-plugins/help-addenda.js +1 -44
- package/dist/core/command-plugins/presence.js +1 -17
- package/dist/core/command-plugins/revalidate.js +2 -152
- package/dist/core/command-plugins/transport/exec-invoke.js +1 -215
- package/dist/core/command-plugins/transport/http-fetch.js +1 -68
- package/dist/core/command-plugins/transport/http-invoke.js +3 -546
- package/dist/core/command.js +10 -739
- package/dist/core/config.js +1 -1059
- package/dist/core/document-lines.js +3 -6
- package/dist/core/env-name.js +1 -9
- package/dist/core/errors.js +1 -52
- package/dist/core/events/emit.js +1 -17
- package/dist/core/events/envelope.js +1 -84
- package/dist/core/events/errors.js +1 -69
- package/dist/core/events/index.js +1 -4
- package/dist/core/events/operation-id.js +1 -24
- package/dist/core/events/read.js +1 -623
- package/dist/core/events/serialize.js +1 -199
- package/dist/core/events/source.js +1 -31
- package/dist/core/events/types.js +1 -11
- package/dist/core/exclusive-lock.js +1 -197
- package/dist/core/fault-classifier.js +1 -96
- package/dist/core/feed/feed.js +7 -202
- package/dist/core/feed/inbox-migrate.js +3 -135
- package/dist/core/feed/inbox.js +10 -122
- package/dist/core/feed/messages.js +6 -212
- package/dist/core/frontmatter.js +1 -35
- package/dist/core/fs-utils.js +3 -202
- package/dist/core/git.js +2 -103
- package/dist/core/help.js +9 -310
- package/dist/core/host-exports/builtins.js +9 -68
- package/dist/core/host-exports/export.js +3 -124
- package/dist/core/human/action-binding.js +1 -40
- package/dist/core/human/answer-text.js +5 -100
- package/dist/core/human/answer.js +1 -119
- package/dist/core/human/claim.js +3 -67
- package/dist/core/human/completion.js +1 -27
- package/dist/core/human/component-docs.js +78 -272
- package/dist/core/human/convention.js +2 -82
- package/dist/core/human/feedback-companion.js +1 -106
- package/dist/core/human/feedback.js +1 -88
- package/dist/core/human/page-authoring.js +1 -19
- package/dist/core/human/page-catalog.js +1 -172
- package/dist/core/human/page-errors.js +1 -7
- package/dist/core/human/page-eval.js +1 -125
- package/dist/core/human/page-html-markdown.js +8 -260
- package/dist/core/human/page-markdown.js +17 -295
- package/dist/core/human/page-schema.js +1 -373
- package/dist/core/human/page-synth.js +8 -27
- package/dist/core/human/page.js +1 -198
- package/dist/core/human/requests.js +15 -466
- package/dist/core/human/review-schema.js +1 -34
- package/dist/core/human/root.js +1 -11
- package/dist/core/human/scan.js +1 -69
- package/dist/core/human/summary.js +1 -5
- package/dist/core/human/tickets.js +1 -171
- package/dist/core/human/types.js +0 -1
- package/dist/core/human/visible-paths.js +1 -77
- package/dist/core/human-actions.js +1 -101
- package/dist/core/inspector/chrome.js +1 -14
- package/dist/core/inspector/contract.js +0 -1
- package/dist/core/inspector/core.js +2 -295
- package/dist/core/inspector/host.js +4 -538
- package/dist/core/inspector/model.js +2 -226
- package/dist/core/inspector/text.js +6 -45
- package/dist/core/inspector/transport.js +1 -36
- package/dist/core/inspector/tui.js +2 -295
- package/dist/core/installed-plugins.js +1 -78
- package/dist/core/io.js +7 -356
- package/dist/core/keybindings/attach-control.js +1 -42
- package/dist/core/keybindings/background-bash.js +1 -33
- package/dist/core/keybindings/catalog.js +1 -256
- package/dist/core/keybindings/inbox.js +1 -25
- package/dist/core/keybindings/index.js +1 -7
- package/dist/core/keybindings/match.js +1 -127
- package/dist/core/keybindings/persistence.js +1 -49
- package/dist/core/keybindings/resolve.js +1 -348
- package/dist/core/keybindings/types.js +0 -1
- package/dist/core/locked-file.js +1 -118
- package/dist/core/log.js +3 -27
- package/dist/core/manifest-recovery.js +1 -72
- package/dist/core/manifest-stale.js +1 -39
- package/dist/core/manifest.js +1 -20
- package/dist/core/memory/doc-link-grammar.js +2 -109
- package/dist/core/memory/extensions.js +1 -221
- package/dist/core/memory/history.js +6 -268
- package/dist/core/memory/identity.js +1 -181
- package/dist/core/memory/inline-ref-grammar.js +1 -98
- package/dist/core/memory/inline-ref-guidance.js +2 -35
- package/dist/core/memory/inline-ref-inventory.js +1 -59
- package/dist/core/memory/lint.js +2 -671
- package/dist/core/memory/project-namespace.js +2 -85
- package/dist/core/memory/repository-association.js +1 -129
- package/dist/core/memory/tree.js +1 -93
- package/dist/core/memory-resolver.js +2 -611
- package/dist/core/model-config.js +1 -107
- package/dist/core/model-routes.js +1 -201
- package/dist/core/nested-stores.js +2 -166
- package/dist/core/output.js +7 -99
- package/dist/core/pagination.js +1 -88
- package/dist/core/plugin-swap-lock.js +1 -31
- package/dist/core/pool-credential-store.js +1 -116
- package/dist/core/predicate.js +1 -191
- package/dist/core/preview-registry.js +2 -411
- package/dist/core/preview-result-path.js +1 -26
- package/dist/core/profiles/default-binding.js +1 -24
- package/dist/core/profiles/deletion-reservation.js +1 -42
- package/dist/core/profiles/env-store.js +2 -162
- package/dist/core/profiles/fuzzy-match.js +1 -92
- package/dist/core/profiles/manifest.js +1 -574
- package/dist/core/profiles/select.js +35 -741
- package/dist/core/profiles/state-block.js +3 -17
- package/dist/core/provider-error-recognition.js +1 -74
- package/dist/core/provider-failure.js +1 -86
- package/dist/core/provider-management.js +1 -22
- package/dist/core/remote-canvas-target.js +1 -30
- package/dist/core/render.js +18 -138
- package/dist/core/resolver.js +1 -111
- package/dist/core/review/birth.js +1 -52
- package/dist/core/review/comments.js +5 -279
- package/dist/core/review/companion.js +1 -215
- package/dist/core/review/document.js +2 -138
- package/dist/core/review/project.js +1 -36
- package/dist/core/review/realize.js +1 -71
- package/dist/core/review/remap.js +4 -141
- package/dist/core/review/signal.js +1 -12
- package/dist/core/review/stage.js +1 -184
- package/dist/core/review/store.js +1 -168
- package/dist/core/review/types.js +1 -23
- package/dist/core/runtime/advertised-command-invocation.js +1 -233
- package/dist/core/runtime/auth-reload.js +1 -67
- package/dist/core/runtime/banner.js +1 -51
- package/dist/core/runtime/bearings-render.js +18 -250
- package/dist/core/runtime/bearings.js +7 -194
- package/dist/core/runtime/bin-contributions.js +2 -186
- package/dist/core/runtime/boot-root.js +1 -107
- package/dist/core/runtime/branded-host.js +2 -264
- package/dist/core/runtime/broker/auth-reload.js +1 -157
- package/dist/core/runtime/broker/client-registry.js +1 -179
- package/dist/core/runtime/broker/daemon-ops.js +1 -88
- package/dist/core/runtime/broker/engine-drive.js +1 -354
- package/dist/core/runtime/broker/engine-routing.js +1 -211
- package/dist/core/runtime/broker/event-projection.js +1 -193
- package/dist/core/runtime/broker/extension-abort.js +1 -36
- package/dist/core/runtime/broker/fault-retry.js +1 -588
- package/dist/core/runtime/broker/frame-client.js +1 -132
- package/dist/core/runtime/broker/frame-dispatch.js +1 -183
- package/dist/core/runtime/broker/frame-engine-control.js +1 -231
- package/dist/core/runtime/broker/frame-memory-refs.js +1 -41
- package/dist/core/runtime/broker/frame-model-query.js +1 -69
- package/dist/core/runtime/broker/frame-read.js +1 -116
- package/dist/core/runtime/broker/frame-replies.js +1 -64
- package/dist/core/runtime/broker/frame-session.js +4 -203
- package/dist/core/runtime/broker/held-deferred-inbox.js +1 -13
- package/dist/core/runtime/broker/inbox.js +13 -163
- package/dist/core/runtime/broker/node-named.js +1 -27
- package/dist/core/runtime/broker/read-ops.js +1 -171
- package/dist/core/runtime/broker/rebind.js +1 -318
- package/dist/core/runtime/broker/tool-groups.js +1 -246
- package/dist/core/runtime/broker/turn-admission.js +1 -31
- package/dist/core/runtime/broker/turn-ignition.js +1 -84
- package/dist/core/runtime/broker-cli.js +3 -81
- package/dist/core/runtime/broker-extension-render.js +5 -135
- package/dist/core/runtime/broker-inventory.js +1 -116
- package/dist/core/runtime/broker-persona-guidance.js +4 -154
- package/dist/core/runtime/broker-protocol.js +3 -152
- package/dist/core/runtime/broker-request.js +1 -85
- package/dist/core/runtime/broker-sdk.js +1 -129
- package/dist/core/runtime/broker.js +1 -1214
- package/dist/core/runtime/canvas-extensions.js +1 -96
- package/dist/core/runtime/chat-inventory-rows.js +1 -105
- package/dist/core/runtime/close.js +1 -265
- package/dist/core/runtime/command-expansion.js +9 -104
- package/dist/core/runtime/command-surface.js +1 -117
- package/dist/core/runtime/connectivity.js +1 -73
- package/dist/core/runtime/deliver-live.js +1 -88
- package/dist/core/runtime/fault-recovery.js +1 -83
- package/dist/core/runtime/fault.js +1 -17
- package/dist/core/runtime/fleet.js +1 -58
- package/dist/core/runtime/front-door-env.js +1 -16
- package/dist/core/runtime/front-door.js +7 -183
- package/dist/core/runtime/headless-pi.js +1 -161
- package/dist/core/runtime/host.js +1 -457
- package/dist/core/runtime/interactive-deliver.js +1 -51
- package/dist/core/runtime/invocation.js +0 -10
- package/dist/core/runtime/kickoff.js +30 -327
- package/dist/core/runtime/launch-config-worker.js +1 -12
- package/dist/core/runtime/launch-prompt.js +4 -13
- package/dist/core/runtime/launch-target.js +1 -55
- package/dist/core/runtime/launch.js +1 -483
- package/dist/core/runtime/lifecycle.js +2 -213
- package/dist/core/runtime/managed-provider-cooling.js +1 -62
- package/dist/core/runtime/memory.js +1 -17
- package/dist/core/runtime/model-registry.js +1 -13
- package/dist/core/runtime/model-selection.js +1 -135
- package/dist/core/runtime/model-swap.js +1 -86
- package/dist/core/runtime/naming.js +14 -298
- package/dist/core/runtime/nerd-font.js +2 -127
- package/dist/core/runtime/node-read.js +2 -386
- package/dist/core/runtime/nodes.js +1 -331
- package/dist/core/runtime/outcome-document.js +1 -97
- package/dist/core/runtime/package-health.js +4 -99
- package/dist/core/runtime/persona.js +2 -55
- package/dist/core/runtime/pi-cli.js +1 -65
- package/dist/core/runtime/pi-vendored.js +1 -66
- package/dist/core/runtime/placement-tmux.js +1 -81
- package/dist/core/runtime/placement.js +1 -386
- package/dist/core/runtime/promote.js +1 -174
- package/dist/core/runtime/prospective-inventory-cli.js +3 -61
- package/dist/core/runtime/prospective-inventory.js +2 -88
- package/dist/core/runtime/recap.js +27 -103
- package/dist/core/runtime/recycle.js +1 -190
- package/dist/core/runtime/reopen.js +1 -138
- package/dist/core/runtime/reset.js +1 -245
- package/dist/core/runtime/resume-root.js +10 -290
- package/dist/core/runtime/revive-all.js +1 -107
- package/dist/core/runtime/revive.js +4 -544
- package/dist/core/runtime/roadmap.js +4 -38
- package/dist/core/runtime/session-branch.js +1 -46
- package/dist/core/runtime/session-cycles.js +1 -110
- package/dist/core/runtime/session-list-cache.js +1 -406
- package/dist/core/runtime/session-visibility.js +1 -99
- package/dist/core/runtime/shell-expansion.js +9 -100
- package/dist/core/runtime/situational-context.js +2 -67
- package/dist/core/runtime/situational-live.js +1 -41
- package/dist/core/runtime/spawn-env.js +1 -255
- package/dist/core/runtime/spawn.js +3 -577
- package/dist/core/runtime/stamp/channel.js +1 -76
- package/dist/core/runtime/stamp/protocol.js +1 -113
- package/dist/core/runtime/stop-guard.js +7 -116
- package/dist/core/runtime/stop-signals.js +1 -46
- package/dist/core/runtime/stream-watchdog.js +1 -134
- package/dist/core/runtime/structured-output.js +4 -156
- package/dist/core/runtime/surface-bg.js +1 -85
- package/dist/core/runtime/tmux-bindings.js +4 -730
- package/dist/core/runtime/tmux-chrome.js +1 -5
- package/dist/core/runtime/tmux-driver.js +7 -637
- package/dist/core/runtime/tool-group-summary.js +6 -85
- package/dist/core/runtime/turn-visibility.js +1 -31
- package/dist/core/runtime/view-socket.js +1 -83
- package/dist/core/runtime/warm-pool.js +1 -395
- package/dist/core/scope.js +1 -254
- package/dist/core/scoped-state/db.js +1 -135
- package/dist/core/scoped-state/migrate.js +3 -181
- package/dist/core/scoped-state/paths.js +1 -27
- package/dist/core/scoped-state/profiles.js +1 -62
- package/dist/core/scoped-state/providers.js +1 -8
- package/dist/core/scoped-state/schema.js +3 -16
- package/dist/core/scoped-state/settings.js +1 -82
- package/dist/core/secrets.js +2 -55
- package/dist/core/self-update.js +1 -71
- package/dist/core/session-model/session-state.js +1 -180
- package/dist/core/shell-segments.js +4 -169
- package/dist/core/spawn.js +1 -26
- package/dist/core/stdout-errors.js +1 -14
- package/dist/core/subscription-state.js +3 -193
- package/dist/core/substrate/frontmatter-validation.js +1 -105
- package/dist/core/substrate/gate-explain.js +1 -424
- package/dist/core/substrate/gate.js +1 -26
- package/dist/core/substrate/index.js +1 -30
- package/dist/core/substrate/injected-store.js +1 -249
- package/dist/core/substrate/listings.js +1 -115
- package/dist/core/substrate/on-read-node.js +1 -36
- package/dist/core/substrate/on-read.js +9 -315
- package/dist/core/substrate/plan.js +1 -266
- package/dist/core/substrate/render-node.js +1 -30
- package/dist/core/substrate/render.js +65 -689
- package/dist/core/substrate/schema.js +1 -186
- package/dist/core/substrate/session-cache.js +1 -83
- package/dist/core/substrate/subject-fields.js +1 -35
- package/dist/core/substrate/subject.js +1 -47
- package/dist/core/substrate/surface-match.js +1 -242
- package/dist/core/termrender/code-doc.js +5 -92
- package/dist/core/termrender/display.js +2 -56
- package/dist/core/termrender/termrender.js +14 -719
- package/dist/core/termrender/version.js +1 -1
- package/dist/core/timing.js +2 -94
- package/dist/core/tui/draw.js +2 -378
- package/dist/core/tui/fuzzy.js +1 -38
- package/dist/core/tui/markdown.js +3 -407
- package/dist/core/tui/page-host.js +1 -74
- package/dist/core/tui/panel.js +1 -137
- package/dist/core/tui/terminal.js +2 -100
- package/dist/core/user-settings.js +1 -454
- package/dist/core/wake.js +1 -296
- package/dist/core/worktree-close.js +6 -228
- package/dist/core/worktree-containment.js +3 -48
- package/dist/core/worktree-landing.js +4 -56
- package/dist/core/worktree-mutation-async.js +10 -280
- package/dist/core/worktree-quarantine.js +1 -54
- package/dist/core/worktree-sweep.js +6 -453
- package/dist/core/worktree.js +18 -899
- package/dist/daemon/api/bridge.js +8 -418
- package/dist/daemon/api/handlers/attach.js +1 -65
- package/dist/daemon/api/handlers/bash-jobs.js +2 -91
- package/dist/daemon/api/handlers/broker-ops.js +1 -447
- package/dist/daemon/api/handlers/broker-recovery.js +1 -251
- package/dist/daemon/api/handlers/canvas.js +6 -490
- package/dist/daemon/api/handlers/chat-inventory.js +1 -25
- package/dist/daemon/api/handlers/crons.js +1 -373
- package/dist/daemon/api/handlers/daemon.js +1 -76
- package/dist/daemon/api/handlers/feedback-comments.js +3 -199
- package/dist/daemon/api/handlers/files.js +1 -63
- package/dist/daemon/api/handlers/focus.js +1 -92
- package/dist/daemon/api/handlers/health.js +1 -76
- package/dist/daemon/api/handlers/human-requests.js +1 -379
- package/dist/daemon/api/handlers/human.js +1 -3
- package/dist/daemon/api/handlers/inbox-page.js +1 -89
- package/dist/daemon/api/handlers/inbox.js +1 -301
- package/dist/daemon/api/handlers/memory.js +1 -50
- package/dist/daemon/api/handlers/messages.js +2 -506
- package/dist/daemon/api/handlers/model-config.js +1 -44
- package/dist/daemon/api/handlers/modelauth.js +1 -165
- package/dist/daemon/api/handlers/node-outcomes.js +1 -181
- package/dist/daemon/api/handlers/nodes.js +1 -939
- package/dist/daemon/api/handlers/profiles.js +1 -140
- package/dist/daemon/api/handlers/prospective-chat-inventory.js +1 -59
- package/dist/daemon/api/handlers/reports.js +16 -332
- package/dist/daemon/api/handlers/review-comments.js +1 -465
- package/dist/daemon/api/handlers/reviews.js +1 -200
- package/dist/daemon/api/handlers/subscriptions.js +1 -53
- package/dist/daemon/api/handlers/validate.js +1 -58
- package/dist/daemon/api/handlers/worktree.js +1 -39
- package/dist/daemon/api/map.js +2 -735
- package/dist/daemon/api/router.js +1 -190
- package/dist/daemon/api/server.js +11 -408
- package/dist/daemon/boot-migrations.js +1 -31
- package/dist/daemon/companion-retire.js +1 -34
- package/dist/daemon/control.js +1 -22
- package/dist/daemon/cron/armed-context.js +1 -100
- package/dist/daemon/cron/capture.js +2 -45
- package/dist/daemon/cron/disposition.js +1 -55
- package/dist/daemon/cron/escalation.js +3 -124
- package/dist/daemon/cron/held.js +1 -20
- package/dist/daemon/cron/lease-recovery.js +1 -119
- package/dist/daemon/cron/live-runs.js +1 -23
- package/dist/daemon/cron/passes.js +1 -58
- package/dist/daemon/cron/settle.js +1 -61
- package/dist/daemon/cron/sinks.js +2 -59
- package/dist/daemon/cron-run.js +1 -405
- package/dist/daemon/crtrd-cli.js +1 -23
- package/dist/daemon/crtrd.js +8 -854
- package/dist/daemon/delivery/run-delivery.js +1 -164
- package/dist/daemon/fleet.js +17 -475
- package/dist/daemon/human/finish.js +10 -179
- package/dist/daemon/human/settle.js +1 -89
- package/dist/daemon/human/sweep.js +1 -66
- package/dist/daemon/manage.js +2 -595
- package/dist/daemon/messaging/node-message.js +1 -99
- package/dist/daemon/park-activity.js +1 -30
- package/dist/daemon/park-pending.js +1 -52
- package/dist/daemon/pidfile.js +1 -37
- package/dist/daemon/profile-delete.js +1 -306
- package/dist/daemon/reconcilers/bash-deadline.js +1 -80
- package/dist/daemon/reconcilers/broker-supervision.js +4 -761
- package/dist/daemon/reconcilers/controller-death.js +1 -14
- package/dist/daemon/reconcilers/cron-lane.js +1 -29
- package/dist/daemon/reconcilers/delivery-lane.js +1 -130
- package/dist/daemon/reconcilers/live-obligation.js +1 -87
- package/dist/daemon/reconcilers/managed-worktree-sweep.js +1 -202
- package/dist/daemon/reconcilers/node-deadline.js +1 -82
- package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +1 -172
- package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.js +1 -59
- package/dist/daemon/reconcilers/node-lifecycle/terminating.js +1 -12
- package/dist/daemon/reconcilers/node-lifecycle/tick.js +1 -146
- package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -11
- package/dist/daemon/reconcilers/pending-review-submit.js +1 -36
- package/dist/daemon/reconcilers/storage-maintenance.js +1 -207
- package/dist/daemon/review/comment-notify.js +2 -109
- package/dist/daemon/review/companion.js +1 -29
- package/dist/daemon/review/deliver.js +3 -8
- package/dist/daemon/review/finish.js +1 -122
- package/dist/daemon/review/sweep.js +1 -18
- package/dist/daemon/startup-policy.js +1 -1
- package/dist/daemon/supervise-cadence.js +1 -6
- package/dist/hook-authoring.js +5 -447
- package/dist/hook-process.js +1 -34
- package/dist/index.js +1 -52
- package/dist/migrations/001-surfaces-frontmatter.js +1 -161
- package/dist/migrations/002-profile-project-memory.js +1 -72
- package/dist/migrations/003-repository-root-memory-identity/front-door.js +11 -231
- package/dist/migrations/003-repository-root-memory-identity/index.js +5 -513
- package/dist/migrations/003-repository-root-memory-identity/references.js +5 -469
- package/dist/migrations/003-repository-root-memory-identity/repository-facts.js +3 -349
- package/dist/migrations/activation.js +2 -89
- package/dist/migrations/convergent.js +2 -82
- package/dist/migrations/corpus.js +3 -483
- package/dist/migrations/frontmatter-splice.js +8 -176
- package/dist/migrations/profile-manifests.js +2 -70
- package/dist/migrations/registry.js +1 -42
- package/dist/migrations/runner.js +1 -85
- package/dist/migrations/types.js +0 -24
- package/dist/pi-extensions/broker-local.js +2 -106
- package/dist/pi-extensions/canvas-bash-valve.js +7 -461
- package/dist/pi-extensions/canvas-context-intro.js +2 -113
- package/dist/pi-extensions/canvas-doc-substrate.js +9 -178
- package/dist/pi-extensions/canvas-goal-capture.js +1 -83
- package/dist/pi-extensions/canvas-inbox-watcher.js +1 -1010
- package/dist/pi-extensions/canvas-passive-context.js +14 -203
- package/dist/pi-extensions/canvas-preview-result.js +2 -72
- package/dist/pi-extensions/canvas-prompt-scrub.js +2 -54
- package/dist/pi-extensions/canvas-recap.js +11 -405
- package/dist/pi-extensions/canvas-review-boundary.js +3 -63
- package/dist/pi-extensions/canvas-stamp.js +2 -77
- package/dist/pi-extensions/canvas-stophook.js +1 -643
- package/dist/pi-extensions/canvas-structured-output.js +13 -35
- package/dist/pi-extensions/canvas-tool-guide.js +9 -78
- package/dist/pi-extensions/envelope-merge.js +8 -29
- package/dist/prompts/review.js +20 -42
- package/dist/shared/birth-announcement.js +1 -25
- package/dist/shared/crtr-version.js +1 -18
- package/dist/shared/env.js +1 -214
- package/dist/shared/generated-context.js +11 -226
- package/dist/shared/predicates.js +1 -4
- package/dist/shared/shell-quote.js +1 -5
- package/dist/shared/tool-groups.js +1 -64
- package/dist/shared/working-activity.js +1 -27
- package/dist/suppress-experimental-warnings.js +1 -15
- package/dist/types.js +1 -185
- package/docs/public-api.md +10 -9
- package/package.json +6 -4
- package/runtime.lock.json +5 -5
- package/scripts/pack-minify.mjs +108 -0
- package/dist/api/__tests__/integration/client.test.d.ts +0 -1
- package/dist/api/__tests__/integration/client.test.js +0 -163
- package/dist/builtin-pi-packages/pi-crtr-extensions/__tests__/insights-active-init.test.ts +0 -98
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/crtr-commands.test.ts +0 -93
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/integration/provider-rotation.test.ts +0 -2530
- package/dist/clients/__tests__/helpers/human-daemon.d.ts +0 -11
- package/dist/clients/__tests__/helpers/human-daemon.js +0 -60
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.js +0 -97
- package/dist/clients/attach/__tests__/bash-call-width.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/bash-call-width.test.js +0 -38
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +0 -175
- package/dist/clients/attach/__tests__/completion-frecency.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/completion-frecency.test.js +0 -35
- package/dist/clients/attach/__tests__/context-message.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/context-message.test.js +0 -130
- package/dist/clients/attach/__tests__/crtr-output.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/crtr-output.test.js +0 -68
- package/dist/clients/attach/__tests__/diagram.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/diagram.test.js +0 -42
- package/dist/clients/attach/__tests__/edit-diff.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/edit-diff.test.js +0 -31
- package/dist/clients/attach/__tests__/frame-selection.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/frame-selection.test.js +0 -84
- package/dist/clients/attach/__tests__/group-activity.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/group-activity.test.js +0 -165
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.js +0 -83
- package/dist/clients/attach/__tests__/pane-tag-successor.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/pane-tag-successor.test.js +0 -56
- package/dist/clients/attach/__tests__/profile-files.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/profile-files.test.js +0 -21
- package/dist/clients/attach/__tests__/prompt-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/prompt-preview.test.js +0 -21
- package/dist/clients/attach/__tests__/ref-autocomplete.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/ref-autocomplete.test.js +0 -64
- package/dist/clients/attach/__tests__/titled-editor-paste.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-paste.test.js +0 -114
- package/dist/clients/attach/__tests__/titled-editor-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-preview.test.js +0 -83
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.js +0 -81
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.js +0 -135
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.js +0 -66
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.js +0 -35
- package/dist/clients/inbox/review/__tests__/review-core.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/review-core.test.js +0 -52
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.js +0 -100
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.d.ts +0 -1
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.js +0 -69
- package/dist/commands/__tests__/human.test.d.ts +0 -1
- package/dist/commands/__tests__/human.test.js +0 -172
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.js +0 -237
- package/dist/commands/__tests__/integration/migrate.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/migrate.test.js +0 -1330
- package/dist/commands/__tests__/node-message.test.d.ts +0 -1
- package/dist/commands/__tests__/node-message.test.js +0 -112
- package/dist/commands/__tests__/node-new.test.d.ts +0 -1
- package/dist/commands/__tests__/node-new.test.js +0 -58
- package/dist/commands/__tests__/revive-now-gate.test.d.ts +0 -1
- package/dist/commands/__tests__/revive-now-gate.test.js +0 -62
- package/dist/commands/__tests__/seam/daemon-status.test.d.ts +0 -1
- package/dist/commands/__tests__/seam/daemon-status.test.js +0 -29
- package/dist/commands/__tests__/surface-reload-target.test.d.ts +0 -1
- package/dist/commands/__tests__/surface-reload-target.test.js +0 -21
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.js +0 -379
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.js +0 -124
- package/dist/commands/memory/__tests__/repository-root-lint.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/repository-root-lint.test.js +0 -148
- package/dist/commands/sys/__tests__/config-model-ladders.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/config-model-ladders.test.js +0 -114
- package/dist/commands/sys/__tests__/setup-core.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/setup-core.test.js +0 -45
- package/dist/commands/sys/__tests__/sync-project-guidance.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/sync-project-guidance.test.js +0 -244
- package/dist/core/__tests__/bash-guard.test.d.ts +0 -1
- package/dist/core/__tests__/bash-guard.test.js +0 -190
- package/dist/core/__tests__/boot-fault-attempt.test.d.ts +0 -1
- package/dist/core/__tests__/boot-fault-attempt.test.js +0 -105
- package/dist/core/__tests__/boot.test.d.ts +0 -1
- package/dist/core/__tests__/boot.test.js +0 -274
- package/dist/core/__tests__/branded-host-concurrency.test.d.ts +0 -1
- package/dist/core/__tests__/branded-host-concurrency.test.js +0 -72
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.js +0 -75
- package/dist/core/__tests__/broker-launch-candidates.test.d.ts +0 -1
- package/dist/core/__tests__/broker-launch-candidates.test.js +0 -311
- package/dist/core/__tests__/broker-preflight.test.d.ts +0 -1
- package/dist/core/__tests__/broker-preflight.test.js +0 -95
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.d.ts +0 -1
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.js +0 -82
- package/dist/core/__tests__/broker-turn-admission.test.d.ts +0 -1
- package/dist/core/__tests__/broker-turn-admission.test.js +0 -44
- package/dist/core/__tests__/canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-db-boundary.test.js +0 -46
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +0 -710
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.js +0 -310
- package/dist/core/__tests__/canvas-inbox-watcher.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher.test.js +0 -397
- package/dist/core/__tests__/canvas.test.d.ts +0 -1
- package/dist/core/__tests__/canvas.test.js +0 -138
- package/dist/core/__tests__/child-death-wake.test.d.ts +0 -1
- package/dist/core/__tests__/child-death-wake.test.js +0 -153
- package/dist/core/__tests__/cli-help-contract.test.d.ts +0 -1
- package/dist/core/__tests__/cli-help-contract.test.js +0 -152
- package/dist/core/__tests__/close.test.d.ts +0 -1
- package/dist/core/__tests__/close.test.js +0 -284
- package/dist/core/__tests__/collectible.test.d.ts +0 -1
- package/dist/core/__tests__/collectible.test.js +0 -89
- package/dist/core/__tests__/config-change-delta.test.d.ts +0 -1
- package/dist/core/__tests__/config-change-delta.test.js +0 -108
- package/dist/core/__tests__/context-intro.test.d.ts +0 -1
- package/dist/core/__tests__/context-intro.test.js +0 -123
- package/dist/core/__tests__/cron-armed-context-failure.test.d.ts +0 -1
- package/dist/core/__tests__/cron-armed-context-failure.test.js +0 -150
- package/dist/core/__tests__/cron-held-settlement.test.d.ts +0 -1
- package/dist/core/__tests__/cron-held-settlement.test.js +0 -240
- package/dist/core/__tests__/cron-node-sink-parked-root.test.d.ts +0 -1
- package/dist/core/__tests__/cron-node-sink-parked-root.test.js +0 -166
- package/dist/core/__tests__/cron-self-cancel-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/cron-self-cancel-delivery.test.js +0 -84
- package/dist/core/__tests__/cron-timeout-descendants.test.d.ts +0 -1
- package/dist/core/__tests__/cron-timeout-descendants.test.js +0 -114
- package/dist/core/__tests__/daemon-boot.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-boot.test.js +0 -422
- package/dist/core/__tests__/daemon-wedge.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-wedge.test.js +0 -106
- package/dist/core/__tests__/dead-node-policy-table.test.d.ts +0 -1
- package/dist/core/__tests__/dead-node-policy-table.test.js +0 -77
- package/dist/core/__tests__/events-contract.test.d.ts +0 -1
- package/dist/core/__tests__/events-contract.test.js +0 -76
- package/dist/core/__tests__/extension-abort.test.d.ts +0 -1
- package/dist/core/__tests__/extension-abort.test.js +0 -21
- package/dist/core/__tests__/fault-classifier.test.d.ts +0 -1
- package/dist/core/__tests__/fault-classifier.test.js +0 -138
- package/dist/core/__tests__/fixtures/api-server-host.d.ts +0 -1
- package/dist/core/__tests__/fixtures/api-server-host.js +0 -47
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.js +0 -34
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.js +0 -32
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +0 -347
- package/dist/core/__tests__/fixtures/fake-engine.js +0 -1509
- package/dist/core/__tests__/fixtures/fake-pi-host.d.ts +0 -2
- package/dist/core/__tests__/fixtures/fake-pi-host.js +0 -311
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.d.ts +0 -1
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.js +0 -75
- package/dist/core/__tests__/fixtures/metadata-migration-race.d.ts +0 -1
- package/dist/core/__tests__/fixtures/metadata-migration-race.js +0 -49
- package/dist/core/__tests__/focuses.test.d.ts +0 -1
- package/dist/core/__tests__/focuses.test.js +0 -113
- package/dist/core/__tests__/fs-utils.test.d.ts +0 -1
- package/dist/core/__tests__/fs-utils.test.js +0 -50
- package/dist/core/__tests__/helpers/broker-clients.d.ts +0 -43
- package/dist/core/__tests__/helpers/broker-clients.js +0 -174
- package/dist/core/__tests__/helpers/fleet.d.ts +0 -12
- package/dist/core/__tests__/helpers/fleet.js +0 -50
- package/dist/core/__tests__/helpers/harness.d.ts +0 -124
- package/dist/core/__tests__/helpers/harness.js +0 -806
- package/dist/core/__tests__/helpers/viewer-panes.d.ts +0 -12
- package/dist/core/__tests__/helpers/viewer-panes.js +0 -133
- package/dist/core/__tests__/history-inbox.test.d.ts +0 -1
- package/dist/core/__tests__/history-inbox.test.js +0 -121
- package/dist/core/__tests__/human-action-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/human-action-delivery.test.js +0 -162
- package/dist/core/__tests__/human-actions.test.d.ts +0 -1
- package/dist/core/__tests__/human-actions.test.js +0 -120
- package/dist/core/__tests__/inline-memory-refs.test.d.ts +0 -1
- package/dist/core/__tests__/inline-memory-refs.test.js +0 -225
- package/dist/core/__tests__/integration/broker-fork-seam.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-fork-seam.test.js +0 -193
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.js +0 -750
- package/dist/core/__tests__/integration/broker-snapshot-history.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-snapshot-history.test.js +0 -288
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.js +0 -103
- package/dist/core/__tests__/integration/command-plugins.test.d.ts +0 -1
- package/dist/core/__tests__/integration/command-plugins.test.js +0 -1200
- package/dist/core/__tests__/integration/deferred-no-wake.test.d.ts +0 -1
- package/dist/core/__tests__/integration/deferred-no-wake.test.js +0 -610
- package/dist/core/__tests__/integration/flagship-lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/flagship-lifecycle.test.js +0 -264
- package/dist/core/__tests__/integration/fresh-home-commands.test.d.ts +0 -1
- package/dist/core/__tests__/integration/fresh-home-commands.test.js +0 -49
- package/dist/core/__tests__/integration/git-optional-locks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/git-optional-locks.test.js +0 -81
- package/dist/core/__tests__/integration/host-teardown-process-group.test.d.ts +0 -1
- package/dist/core/__tests__/integration/host-teardown-process-group.test.js +0 -480
- package/dist/core/__tests__/integration/lifecycle-hooks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/lifecycle-hooks.test.js +0 -498
- package/dist/core/__tests__/integration/live-mutation-verbs.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation-verbs.test.js +0 -180
- package/dist/core/__tests__/integration/live-mutation.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation.test.js +0 -173
- package/dist/core/__tests__/integration/plugin-revalidate.test.d.ts +0 -1
- package/dist/core/__tests__/integration/plugin-revalidate.test.js +0 -359
- package/dist/core/__tests__/integration/profile-pause.test.d.ts +0 -1
- package/dist/core/__tests__/integration/profile-pause.test.js +0 -115
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.js +0 -151
- package/dist/core/__tests__/integration/revive.test.d.ts +0 -1
- package/dist/core/__tests__/integration/revive.test.js +0 -615
- package/dist/core/__tests__/integration/spawn-root.test.d.ts +0 -1
- package/dist/core/__tests__/integration/spawn-root.test.js +0 -536
- package/dist/core/__tests__/integration/subscription-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/integration/subscription-delivery.test.js +0 -132
- package/dist/core/__tests__/integration/tmux-surface.test.d.ts +0 -1
- package/dist/core/__tests__/integration/tmux-surface.test.js +0 -330
- package/dist/core/__tests__/integration/worktree-land.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-land.test.js +0 -607
- package/dist/core/__tests__/integration/worktree-reap.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-reap.test.js +0 -842
- package/dist/core/__tests__/kickoff.test.d.ts +0 -1
- package/dist/core/__tests__/kickoff.test.js +0 -196
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.js +0 -62
- package/dist/core/__tests__/lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle.test.js +0 -176
- package/dist/core/__tests__/live-lifecycle-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/live-lifecycle-prompt.test.js +0 -63
- package/dist/core/__tests__/memory-resolver-precedence.test.d.ts +0 -1
- package/dist/core/__tests__/memory-resolver-precedence.test.js +0 -228
- package/dist/core/__tests__/migration.test.d.ts +0 -1
- package/dist/core/__tests__/migration.test.js +0 -946
- package/dist/core/__tests__/model-pin-durability.test.d.ts +0 -1
- package/dist/core/__tests__/model-pin-durability.test.js +0 -195
- package/dist/core/__tests__/model-routes-config.test.d.ts +0 -1
- package/dist/core/__tests__/model-routes-config.test.js +0 -150
- package/dist/core/__tests__/nested-store-discovery.test.d.ts +0 -1
- package/dist/core/__tests__/nested-store-discovery.test.js +0 -89
- package/dist/core/__tests__/node-outcome.test.d.ts +0 -1
- package/dist/core/__tests__/node-outcome.test.js +0 -246
- package/dist/core/__tests__/on-read-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-crouter-home-fence.test.js +0 -66
- package/dist/core/__tests__/on-read-dedup-resume.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-dedup-resume.test.js +0 -132
- package/dist/core/__tests__/on-read-nested-store.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-nested-store.test.js +0 -135
- package/dist/core/__tests__/parse-argv-stdin-secret.test.d.ts +0 -1
- package/dist/core/__tests__/parse-argv-stdin-secret.test.js +0 -68
- package/dist/core/__tests__/passive-subscription.test.d.ts +0 -1
- package/dist/core/__tests__/passive-subscription.test.js +0 -120
- package/dist/core/__tests__/pid-identity-match.test.d.ts +0 -1
- package/dist/core/__tests__/pid-identity-match.test.js +0 -145
- package/dist/core/__tests__/pid-zombie.test.d.ts +0 -1
- package/dist/core/__tests__/pid-zombie.test.js +0 -42
- package/dist/core/__tests__/plugin-kinds.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-kinds.test.js +0 -182
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.js +0 -43
- package/dist/core/__tests__/plugin-page-components.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-page-components.test.js +0 -159
- package/dist/core/__tests__/preview-mirror-cap.test.d.ts +0 -1
- package/dist/core/__tests__/preview-mirror-cap.test.js +0 -53
- package/dist/core/__tests__/preview-registry-sync.test.d.ts +0 -1
- package/dist/core/__tests__/preview-registry-sync.test.js +0 -107
- package/dist/core/__tests__/profile-project-memory-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/profile-project-memory-delivery.test.js +0 -644
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.d.ts +0 -1
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.js +0 -91
- package/dist/core/__tests__/prune.test.d.ts +0 -1
- package/dist/core/__tests__/prune.test.js +0 -243
- package/dist/core/__tests__/push-final-guard.test.d.ts +0 -1
- package/dist/core/__tests__/push-final-guard.test.js +0 -191
- package/dist/core/__tests__/relaunch-root.test.d.ts +0 -1
- package/dist/core/__tests__/relaunch-root.test.js +0 -249
- package/dist/core/__tests__/remote-canvas-target.test.d.ts +0 -1
- package/dist/core/__tests__/remote-canvas-target.test.js +0 -93
- package/dist/core/__tests__/repository-association.test.d.ts +0 -1
- package/dist/core/__tests__/repository-association.test.js +0 -153
- package/dist/core/__tests__/repository-root-identity.test.d.ts +0 -1
- package/dist/core/__tests__/repository-root-identity.test.js +0 -223
- package/dist/core/__tests__/respawn-throttle.test.d.ts +0 -1
- package/dist/core/__tests__/respawn-throttle.test.js +0 -20
- package/dist/core/__tests__/review-model-floor.test.d.ts +0 -1
- package/dist/core/__tests__/review-model-floor.test.js +0 -83
- package/dist/core/__tests__/revive-all.test.d.ts +0 -1
- package/dist/core/__tests__/revive-all.test.js +0 -157
- package/dist/core/__tests__/revive-capacity.test.d.ts +0 -1
- package/dist/core/__tests__/revive-capacity.test.js +0 -184
- package/dist/core/__tests__/revive-parked-fresh.test.d.ts +0 -1
- package/dist/core/__tests__/revive-parked-fresh.test.js +0 -176
- package/dist/core/__tests__/scope-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/scope-crouter-home-fence.test.js +0 -55
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.js +0 -262
- package/dist/core/__tests__/seam/broker-attach-stream.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-stream.test.js +0 -176
- package/dist/core/__tests__/seam/broker-cap-freeze.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-cap-freeze.test.js +0 -155
- package/dist/core/__tests__/seam/broker-crash-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-crash-teardown.test.js +0 -131
- package/dist/core/__tests__/seam/broker-pane-resolution.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-pane-resolution.test.js +0 -204
- package/dist/core/__tests__/seam/broker-provider-retry.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-provider-retry.test.js +0 -686
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.js +0 -82
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.js +0 -50
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.js +0 -138
- package/dist/core/__tests__/seam/dormancy-release.test.d.ts +0 -1
- package/dist/core/__tests__/seam/dormancy-release.test.js +0 -516
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.js +0 -65
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.d.ts +0 -1
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.js +0 -84
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.d.ts +0 -1
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.js +0 -160
- package/dist/core/__tests__/seam/node-outcome-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/node-outcome-delivery.test.js +0 -177
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.d.ts +0 -1
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.js +0 -31
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.d.ts +0 -1
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.js +0 -60
- package/dist/core/__tests__/seam/self-close-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/self-close-teardown.test.js +0 -49
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.d.ts +0 -1
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.js +0 -100
- package/dist/core/__tests__/secrets.test.d.ts +0 -1
- package/dist/core/__tests__/secrets.test.js +0 -49
- package/dist/core/__tests__/self-update.test.d.ts +0 -1
- package/dist/core/__tests__/self-update.test.js +0 -46
- package/dist/core/__tests__/session-branch.test.d.ts +0 -1
- package/dist/core/__tests__/session-branch.test.js +0 -61
- package/dist/core/__tests__/session-cycles.test.d.ts +0 -1
- package/dist/core/__tests__/session-cycles.test.js +0 -133
- package/dist/core/__tests__/session-model.test.d.ts +0 -1
- package/dist/core/__tests__/session-model.test.js +0 -111
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.d.ts +0 -1
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +0 -71
- package/dist/core/__tests__/stdin-body-no-discard.test.d.ts +0 -1
- package/dist/core/__tests__/stdin-body-no-discard.test.js +0 -33
- package/dist/core/__tests__/stdout-errors.test.d.ts +0 -1
- package/dist/core/__tests__/stdout-errors.test.js +0 -16
- package/dist/core/__tests__/stop-guard.test.d.ts +0 -1
- package/dist/core/__tests__/stop-guard.test.js +0 -237
- package/dist/core/__tests__/stream-watchdog.test.d.ts +0 -1
- package/dist/core/__tests__/stream-watchdog.test.js +0 -154
- package/dist/core/__tests__/subscription-pool-credential-guard.test.d.ts +0 -1
- package/dist/core/__tests__/subscription-pool-credential-guard.test.js +0 -95
- package/dist/core/__tests__/tmux-driver-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/tmux-driver-boundary.test.js +0 -50
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.d.ts +0 -1
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.js +0 -54
- package/dist/core/__tests__/worktree-landing.test.d.ts +0 -1
- package/dist/core/__tests__/worktree-landing.test.js +0 -11
- package/dist/core/__tests__/yield-ensures-daemon.test.d.ts +0 -1
- package/dist/core/__tests__/yield-ensures-daemon.test.js +0 -55
- package/dist/core/broker-client/__tests__/transport-relay.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-relay.test.js +0 -214
- package/dist/core/broker-client/__tests__/transport-socket.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-socket.test.js +0 -73
- package/dist/core/canvas/__tests__/attention.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/attention.test.js +0 -83
- package/dist/core/canvas/__tests__/history-transcript.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/history-transcript.test.js +0 -102
- package/dist/core/canvas/__tests__/remote-canvas-source.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-canvas-source.test.js +0 -328
- package/dist/core/canvas/__tests__/remote-transport.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-transport.test.js +0 -97
- package/dist/core/canvas/__tests__/render-remote.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/render-remote.test.js +0 -243
- package/dist/core/canvas/__tests__/session-window.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/session-window.test.js +0 -70
- package/dist/core/feed/__tests__/inbox-migrate.test.d.ts +0 -1
- package/dist/core/feed/__tests__/inbox-migrate.test.js +0 -49
- package/dist/core/human/__tests__/page-catalog.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-catalog.test.js +0 -20
- package/dist/core/human/__tests__/page-html-markdown.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-html-markdown.test.js +0 -48
- package/dist/core/human/__tests__/page.test.d.ts +0 -1
- package/dist/core/human/__tests__/page.test.js +0 -92
- package/dist/core/keybindings/__tests__/resolve.test.d.ts +0 -1
- package/dist/core/keybindings/__tests__/resolve.test.js +0 -171
- package/dist/core/profiles/__tests__/env-store.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/env-store.test.js +0 -99
- package/dist/core/profiles/__tests__/fuzzy-match.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/fuzzy-match.test.js +0 -51
- package/dist/core/profiles/__tests__/root-profile.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/root-profile.test.js +0 -59
- package/dist/core/review/__tests__/capture-origin.test.d.ts +0 -1
- package/dist/core/review/__tests__/capture-origin.test.js +0 -150
- package/dist/core/review/__tests__/comments.test.d.ts +0 -1
- package/dist/core/review/__tests__/comments.test.js +0 -116
- package/dist/core/review/__tests__/remap.test.d.ts +0 -1
- package/dist/core/review/__tests__/remap.test.js +0 -177
- package/dist/core/review/__tests__/stage-identity.test.d.ts +0 -1
- package/dist/core/review/__tests__/stage-identity.test.js +0 -150
- package/dist/core/runtime/__tests__/engine-route.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/engine-route.test.js +0 -36
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.js +0 -45
- package/dist/core/runtime/__tests__/node-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/node-env.test.js +0 -73
- package/dist/core/runtime/__tests__/spawn-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/spawn-env.test.js +0 -259
- package/dist/core/substrate/__tests__/surface-match-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-command.test.js +0 -89
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.js +0 -28
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.js +0 -92
- package/dist/daemon/__tests__/autostart-storm.test.d.ts +0 -1
- package/dist/daemon/__tests__/autostart-storm.test.js +0 -128
- package/dist/daemon/__tests__/broker-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/broker-ownership.test.js +0 -25
- package/dist/daemon/__tests__/daemon-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/daemon-ownership.test.js +0 -27
- package/dist/daemon/__tests__/helpers/source-daemon.d.ts +0 -30
- package/dist/daemon/__tests__/helpers/source-daemon.js +0 -176
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.js +0 -83
- package/dist/daemon/__tests__/integration/migration-startup.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/migration-startup.test.js +0 -127
- package/dist/daemon/__tests__/node-deadline-lane.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-deadline-lane.test.js +0 -77
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.js +0 -146
- package/dist/daemon/__tests__/node-outcome-delivery.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-delivery.test.js +0 -116
- package/dist/daemon/__tests__/reconciler-signature.test.d.ts +0 -1
- package/dist/daemon/__tests__/reconciler-signature.test.js +0 -37
- package/dist/daemon/__tests__/subtree-filter-freshness.test.d.ts +0 -1
- package/dist/daemon/__tests__/subtree-filter-freshness.test.js +0 -63
- package/dist/daemon/__tests__/thaw-order.test.d.ts +0 -1
- package/dist/daemon/__tests__/thaw-order.test.js +0 -55
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.js +0 -58
- package/dist/daemon/api/__tests__/broker-settle-park.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/broker-settle-park.test.js +0 -175
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.js +0 -216
- package/dist/daemon/api/__tests__/error-seam.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/error-seam.test.js +0 -83
- package/dist/daemon/api/__tests__/model-config.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/model-config.test.js +0 -73
- package/dist/daemon/api/__tests__/node-create-description.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-create-description.test.js +0 -127
- package/dist/daemon/api/__tests__/node-model-validation.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-model-validation.test.js +0 -183
- package/dist/daemon/api/__tests__/nodes-activity-query.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/nodes-activity-query.test.js +0 -99
- package/dist/daemon/api/__tests__/profile-launch-gates.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-launch-gates.test.js +0 -172
- package/dist/daemon/api/__tests__/profile-metadata-route.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-metadata-route.test.js +0 -95
- package/dist/daemon/api/__tests__/reopen-delivery.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/reopen-delivery.test.js +0 -260
- package/dist/daemon/api/__tests__/seam/api-server.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/api-server.test.js +0 -442
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.js +0 -310
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.js +0 -351
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.js +0 -159
- package/dist/daemon/api/__tests__/seam/profile-delete.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/profile-delete.test.js +0 -372
- package/dist/daemon/api/__tests__/submit-result.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/submit-result.test.js +0 -215
- package/dist/migrations/__tests__/activation-concurrency.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation-concurrency.test.js +0 -146
- package/dist/migrations/__tests__/activation.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation.test.js +0 -152
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.d.ts +0 -1
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.js +0 -149
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.js +0 -86
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +0 -364
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.js +0 -106
- package/dist/pi-extensions/__tests__/canvas-recap.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-recap.test.js +0 -62
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +0 -432
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +0 -152
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.js +0 -88
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.js +0 -96
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.js +0 -133
- package/dist/pi-extensions/__tests__/pre-command-gate.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/pre-command-gate.test.js +0 -232
- package/dist/shared/__tests__/env-boundary.test.d.ts +0 -1
- package/dist/shared/__tests__/env-boundary.test.js +0 -95
- package/dist/shared/__tests__/generated-context-grammar.test.d.ts +0 -1
- package/dist/shared/__tests__/generated-context-grammar.test.js +0 -80
- package/docs/compat/hearth-crtr-v1.md +0 -179
- package/docs/compat/hearth-crtr-v2.md +0 -177
- package/docs/compat/hearth-crtr-v3.md +0 -176
- package/docs/compat/hearth-crtr-v4.md +0 -182
- package/docs/compat/hearth-crtr-v5.md +0 -169
|
@@ -1,611 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { readdirSync } from 'node:fs';
|
|
4
|
-
import { CRTR_DIR_NAME } from '../types.js';
|
|
5
|
-
import { pathExists, readText, realpathOrSelf, walkFiles } from './fs-utils.js';
|
|
6
|
-
import { parseFrontmatterGeneric } from './frontmatter.js';
|
|
7
|
-
import { interpolateNodePaths } from './canvas/paths.js';
|
|
8
|
-
import { listInstalledPlugins, listInstalledPluginsInRoot } from './resolver.js';
|
|
9
|
-
import { notFound, usage } from './errors.js';
|
|
10
|
-
import { warn } from './output.js';
|
|
11
|
-
import { NEUTRAL_PROJECT_MEMORY, pluginMemoryDir, projectScopeRoots, projectScopeRootsWithMemory, scopeMemoryDir } from './scope.js';
|
|
12
|
-
import { effectiveDocKind } from './substrate/schema.js';
|
|
13
|
-
import { INDEX_SEGMENT, canonicalSegments, composeCanonicalName, localNameFromPath, normalizeNameSegment, representationForPath, resolveLocalName, routingAnchorFor, validateNamespace, } from './memory/identity.js';
|
|
14
|
-
import { loadProfileManifest, profileMemoryDir } from './profiles/manifest.js';
|
|
15
|
-
import { memoryDir as nodeMemoryDir } from './runtime/memory.js';
|
|
16
|
-
import { descendantStoreRoots } from './nested-stores.js';
|
|
17
|
-
import { associateRepository } from './memory/repository-association.js';
|
|
18
|
-
/** The target the ambient process describes: cwd + the two env seams every
|
|
19
|
-
* profile/node-aware memory path reads through (`CRTR_PROFILE_ID`,
|
|
20
|
-
* `CRTR_NODE_ID`). */
|
|
21
|
-
export function ambientMemoryTarget() {
|
|
22
|
-
return {
|
|
23
|
-
cwd: process.cwd(),
|
|
24
|
-
profileId: envProfileId() || null,
|
|
25
|
-
nodeId: envNodeId() || null,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/** The selected profile id from the process env, or '' when none. */
|
|
29
|
-
function selectedProfileId() {
|
|
30
|
-
return ambientMemoryTarget().profileId ?? '';
|
|
31
|
-
}
|
|
32
|
-
// Store discovery: which physical stores a target sees, in what order, and
|
|
33
|
-
// whether each one's namespace lets it mount.
|
|
34
|
-
/** The memory scopes in resolution precedence: node > project stack > profile >
|
|
35
|
-
* user > builtin. Node is included only when the target names one and ranks
|
|
36
|
-
* NEAREST — a node doc overrides any wider scope. Project is included only when
|
|
37
|
-
* a project scope exists for the target's cwd (or its profile's project stack);
|
|
38
|
-
* profile is included only when the target has one. A single `scope` narrows to
|
|
39
|
-
* just that scope. */
|
|
40
|
-
function scopesInPrecedence(target, scope) {
|
|
41
|
-
if (scope)
|
|
42
|
-
return [scope];
|
|
43
|
-
const out = [];
|
|
44
|
-
if (target.nodeId)
|
|
45
|
-
out.push('node');
|
|
46
|
-
if (projectScopeRoots(target.cwd, target.profileId).length > 0)
|
|
47
|
-
out.push('project');
|
|
48
|
-
if (target.profileId)
|
|
49
|
-
out.push('profile');
|
|
50
|
-
out.push('user');
|
|
51
|
-
out.push('builtin');
|
|
52
|
-
return out;
|
|
53
|
-
}
|
|
54
|
-
/** Resolve a project store through its repository-root declaration. */
|
|
55
|
-
function projectStoreDescriptor(ownerDir, storeRoot, projectMemory) {
|
|
56
|
-
const base = { scope: 'project', storeRoot, ownerDir, projectMemory };
|
|
57
|
-
if (!pathExists(storeRoot))
|
|
58
|
-
return { ...base, namespace: '', mountStatus: 'absent' };
|
|
59
|
-
const association = associateRepository(ownerDir);
|
|
60
|
-
if (!association.ok) {
|
|
61
|
-
const remedy = `run \`crtr sys migrate --dir ${ownerDir}\``;
|
|
62
|
-
if (association.code === 'no-project-root') {
|
|
63
|
-
return {
|
|
64
|
-
...base,
|
|
65
|
-
namespace: '',
|
|
66
|
-
mountStatus: 'undeclared',
|
|
67
|
-
mountFailure: 'association',
|
|
68
|
-
diagnostic: `project memory store at ${storeRoot} has no repository root declaring \`namespace:\` — ${remedy}`,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
return {
|
|
72
|
-
...base,
|
|
73
|
-
namespace: '',
|
|
74
|
-
mountStatus: 'invalid',
|
|
75
|
-
mountFailure: 'association',
|
|
76
|
-
diagnostic: `project memory store at ${storeRoot} cannot be associated: ${association.reason} — ${remedy}`,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
const { association: repository } = association;
|
|
80
|
-
const repositoryFields = {
|
|
81
|
-
namespacePath: repository.declarationPath,
|
|
82
|
-
repositoryRoot: repository.repositoryRoot,
|
|
83
|
-
repositoryKey: repository.repositoryKey,
|
|
84
|
-
ownerRelativePath: repository.ownerRelativePath,
|
|
85
|
-
};
|
|
86
|
-
const rootIndex = repository.declarationPath;
|
|
87
|
-
const nested = repository.ownerRelativePath !== '';
|
|
88
|
-
const remedy = `run \`crtr sys migrate --dir ${repository.repositoryRoot}\``;
|
|
89
|
-
const missingDiagnostic = nested
|
|
90
|
-
? `nested project memory store at ${storeRoot} takes its identity from ${rootIndex}, which is missing root ${INDEX_SEGMENT}.md declaring \`namespace:\` — ${remedy}`
|
|
91
|
-
: `project memory store has no root ${INDEX_SEGMENT}.md declaring \`namespace:\` — ${remedy}`;
|
|
92
|
-
if (!pathExists(rootIndex)) {
|
|
93
|
-
return {
|
|
94
|
-
...base,
|
|
95
|
-
...repositoryFields,
|
|
96
|
-
namespace: '',
|
|
97
|
-
mountStatus: 'undeclared',
|
|
98
|
-
mountFailure: 'undeclared-root',
|
|
99
|
-
diagnostic: missingDiagnostic,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
let declared;
|
|
103
|
-
try {
|
|
104
|
-
declared = parseFrontmatterGeneric(readText(rootIndex)).data?.['namespace'];
|
|
105
|
-
}
|
|
106
|
-
catch (e) {
|
|
107
|
-
return {
|
|
108
|
-
...base,
|
|
109
|
-
...repositoryFields,
|
|
110
|
-
namespace: '',
|
|
111
|
-
mountStatus: 'invalid',
|
|
112
|
-
mountFailure: 'invalid-root',
|
|
113
|
-
diagnostic: `project memory store's ${rootIndex} does not parse (${firstLine(e)}) — ${remedy}`,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
if (declared === undefined || declared === null || declared === '') {
|
|
117
|
-
const diagnostic = nested
|
|
118
|
-
? `nested project memory store at ${storeRoot} takes its identity from ${rootIndex}, which declares no \`namespace:\` — ${remedy}`
|
|
119
|
-
: `project memory store's ${rootIndex} declares no \`namespace:\` — ${remedy}`;
|
|
120
|
-
return {
|
|
121
|
-
...base,
|
|
122
|
-
...repositoryFields,
|
|
123
|
-
namespace: '',
|
|
124
|
-
mountStatus: 'undeclared',
|
|
125
|
-
mountFailure: 'undeclared-root',
|
|
126
|
-
diagnostic,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
// No coercion: a numeric or otherwise non-string declaration is a malformed
|
|
130
|
-
// store, not a namespace. Coercing it would mount a store whose namespace no
|
|
131
|
-
// memory command can then edit.
|
|
132
|
-
if (typeof declared !== 'string') {
|
|
133
|
-
return {
|
|
134
|
-
...base,
|
|
135
|
-
...repositoryFields,
|
|
136
|
-
namespace: '',
|
|
137
|
-
mountStatus: 'invalid',
|
|
138
|
-
mountFailure: 'invalid-root',
|
|
139
|
-
diagnostic: `project memory store declares a non-string \`namespace:\` (${JSON.stringify(declared)}) — quote it in ${rootIndex}, or ${remedy}`,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
const valid = validateNamespace(declared);
|
|
143
|
-
if (!valid.ok) {
|
|
144
|
-
return {
|
|
145
|
-
...base,
|
|
146
|
-
...repositoryFields,
|
|
147
|
-
namespace: '',
|
|
148
|
-
mountStatus: 'invalid',
|
|
149
|
-
mountFailure: 'invalid-root',
|
|
150
|
-
diagnostic: `project memory store declares an invalid namespace \`${declared}\` (${valid.reason}) — ${remedy}`,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
return {
|
|
154
|
-
...base,
|
|
155
|
-
...repositoryFields,
|
|
156
|
-
repositoryNamespace: declared,
|
|
157
|
-
namespace: composeCanonicalName(declared, repository.ownerRelativePath),
|
|
158
|
-
mountStatus: 'ready',
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
/** A store with no namespace of its own: user, profile, node, builtin. */
|
|
162
|
-
function plainStoreDescriptor(scope, storeRoot) {
|
|
163
|
-
if (storeRoot === null) {
|
|
164
|
-
return { scope, storeRoot: '', namespace: '', mountStatus: 'absent', projectMemory: NEUTRAL_PROJECT_MEMORY };
|
|
165
|
-
}
|
|
166
|
-
return {
|
|
167
|
-
scope,
|
|
168
|
-
storeRoot,
|
|
169
|
-
namespace: '',
|
|
170
|
-
mountStatus: pathExists(storeRoot) ? 'ready' : 'absent',
|
|
171
|
-
projectMemory: NEUTRAL_PROJECT_MEMORY,
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
/** An installed plugin's store, mounted under the plugin's own name. */
|
|
175
|
-
function pluginStoreDescriptor(plugin, scope, projectMemory) {
|
|
176
|
-
const storeRoot = pluginMemoryDir(plugin);
|
|
177
|
-
return {
|
|
178
|
-
scope,
|
|
179
|
-
storeRoot,
|
|
180
|
-
namespace: plugin.name,
|
|
181
|
-
plugin: plugin.name,
|
|
182
|
-
mountStatus: pathExists(storeRoot) ? 'ready' : 'absent',
|
|
183
|
-
projectMemory,
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
/** The exact project store owned by `ownerDir` — the `--dir` selector's store,
|
|
187
|
-
* loaded whatever its mount status so lint and migration can inspect a store
|
|
188
|
-
* the runtime refuses to mount. */
|
|
189
|
-
export function openProjectMemoryStore(ownerDir) {
|
|
190
|
-
const owner = realpathOrSelf(ownerDir);
|
|
191
|
-
return projectStoreDescriptor(owner, join(owner, CRTR_DIR_NAME, 'memory'), NEUTRAL_PROJECT_MEMORY);
|
|
192
|
-
}
|
|
193
|
-
/** Every store a target sees, in precedence order: node, each project store
|
|
194
|
-
* nearest-first (its enabled plugins after it), then profile, user, builtin.
|
|
195
|
-
* One real store reached twice contributes once, at its first position. */
|
|
196
|
-
export function memoryStoresInPrecedence(target, scope, includeDescendants = false, reportDiscovery = true) {
|
|
197
|
-
const out = [];
|
|
198
|
-
const projectStores = (crtrRoot, projectMemory) => {
|
|
199
|
-
out.push(projectStoreDescriptor(dirname(crtrRoot), join(crtrRoot, 'memory'), projectMemory));
|
|
200
|
-
for (const plugin of listInstalledPluginsInRoot('project', crtrRoot).filter((p) => p.enabled)) {
|
|
201
|
-
out.push(pluginStoreDescriptor(plugin, 'project', projectMemory));
|
|
202
|
-
}
|
|
203
|
-
};
|
|
204
|
-
for (const s of scopesInPrecedence(target, scope)) {
|
|
205
|
-
if (s === 'project') {
|
|
206
|
-
const annotated = projectScopeRootsWithMemory(target.cwd, target.profileId);
|
|
207
|
-
for (const { root, memory } of annotated)
|
|
208
|
-
projectStores(root, memory);
|
|
209
|
-
// Descendant stores rank after every ancestor source (and before
|
|
210
|
-
// profile): an ancestor doc always wins an equal-canonical tie against a
|
|
211
|
-
// nested one. They carry the neutral ceiling — no profile entry names
|
|
212
|
-
// them, and descendant discovery is off for every automatic delivery path.
|
|
213
|
-
if (includeDescendants) {
|
|
214
|
-
for (const root of descendantStoreRoots(annotated.map(({ root: r }) => r), reportDiscovery)) {
|
|
215
|
-
projectStores(root, NEUTRAL_PROJECT_MEMORY);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
else if (s === 'profile') {
|
|
220
|
-
const profileId = target.profileId ?? '';
|
|
221
|
-
if (profileId !== '') {
|
|
222
|
-
try {
|
|
223
|
-
const { profileId: resolvedId } = loadProfileManifest(profileId);
|
|
224
|
-
out.push(plainStoreDescriptor('profile', profileMemoryDir(resolvedId)));
|
|
225
|
-
}
|
|
226
|
-
catch {
|
|
227
|
-
// Missing/deleted/invalid selected profile: no profile memory store.
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
else if (s === 'node') {
|
|
232
|
-
const nodeId = target.nodeId ?? '';
|
|
233
|
-
if (nodeId !== '')
|
|
234
|
-
out.push(plainStoreDescriptor('node', nodeMemoryDir(nodeId)));
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
out.push(plainStoreDescriptor(s, scopeMemoryDir(s)));
|
|
238
|
-
for (const plugin of listInstalledPlugins(s).filter((p) => p.enabled)) {
|
|
239
|
-
out.push(pluginStoreDescriptor(plugin, s, NEUTRAL_PROJECT_MEMORY));
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
const seen = new Set();
|
|
244
|
-
const deduped = out.filter((store) => {
|
|
245
|
-
if (store.storeRoot === '')
|
|
246
|
-
return false;
|
|
247
|
-
const key = realpathOrSelf(store.storeRoot);
|
|
248
|
-
if (seen.has(key))
|
|
249
|
-
return false;
|
|
250
|
-
seen.add(key);
|
|
251
|
-
return true;
|
|
252
|
-
});
|
|
253
|
-
const collisions = new Map();
|
|
254
|
-
for (const store of deduped) {
|
|
255
|
-
if (store.scope !== 'project' ||
|
|
256
|
-
store.mountStatus !== 'ready' ||
|
|
257
|
-
store.repositoryRoot === undefined ||
|
|
258
|
-
store.ownerRelativePath === undefined)
|
|
259
|
-
continue;
|
|
260
|
-
const key = `${store.repositoryRoot}\u0000${store.ownerRelativePath}`;
|
|
261
|
-
const group = collisions.get(key);
|
|
262
|
-
if (group)
|
|
263
|
-
group.push(store);
|
|
264
|
-
else
|
|
265
|
-
collisions.set(key, [store]);
|
|
266
|
-
}
|
|
267
|
-
return deduped.map((store) => {
|
|
268
|
-
if (store.scope !== 'project' ||
|
|
269
|
-
store.mountStatus !== 'ready' ||
|
|
270
|
-
store.repositoryRoot === undefined ||
|
|
271
|
-
store.ownerRelativePath === undefined)
|
|
272
|
-
return store;
|
|
273
|
-
const group = collisions.get(`${store.repositoryRoot}\u0000${store.ownerRelativePath}`);
|
|
274
|
-
if (group === undefined || group.length < 2)
|
|
275
|
-
return store;
|
|
276
|
-
const owners = group.map((member) => member.ownerDir ?? member.storeRoot).join(', ');
|
|
277
|
-
return {
|
|
278
|
-
...store,
|
|
279
|
-
mountStatus: 'invalid',
|
|
280
|
-
mountFailure: 'collision',
|
|
281
|
-
diagnostic: `project memory stores at ${owners} normalize to the same effective prefix \`${store.namespace}\` — rename one owner directory`,
|
|
282
|
-
};
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
/** The native (non-plugin) MOUNTED store dirs in resolution precedence.
|
|
286
|
-
* Addresses a store directly when the document itself may be absent, which is
|
|
287
|
-
* how a DELETED doc's revision log is still found: history outlives the doc,
|
|
288
|
-
* so its lookup cannot go through document resolution. */
|
|
289
|
-
export function nativeMemoryStoresInPrecedence(scope, includeDescendants = false) {
|
|
290
|
-
return memoryStoresInPrecedence(ambientMemoryTarget(), scope, includeDescendants)
|
|
291
|
-
.filter((store) => store.mountStatus === 'ready' && store.scope !== 'builtin' && store.plugin === undefined)
|
|
292
|
-
.map((store) => ({ scope: store.scope, memoryDir: store.storeRoot, store }));
|
|
293
|
-
}
|
|
294
|
-
// Document loading: one store's markdown files become canonically-identified
|
|
295
|
-
// documents.
|
|
296
|
-
function firstLine(e) {
|
|
297
|
-
return (e instanceof Error ? e.message : String(e)).split('\n')[0] ?? '';
|
|
298
|
-
}
|
|
299
|
-
/** Load one markdown file as a document of `store`, or null when it has no
|
|
300
|
-
* canonical identity — a root `INDEX.md` in a store without a namespace, which
|
|
301
|
-
* would compose to the empty name. */
|
|
302
|
-
function loadMemoryDoc(store, path, physicalRelativePath) {
|
|
303
|
-
const { data, body } = parseFrontmatterGeneric(readText(path));
|
|
304
|
-
const pathLocal = localNameFromPath(physicalRelativePath);
|
|
305
|
-
const representation = representationForPath(physicalRelativePath);
|
|
306
|
-
// A store's root INDEX.md is the store's own document: its identity is the
|
|
307
|
-
// namespace itself, never an explicit `name` (lint rejects one there).
|
|
308
|
-
const localName = pathLocal === '' ? '' : resolveLocalName(data, pathLocal);
|
|
309
|
-
const name = composeCanonicalName(store.namespace, localName);
|
|
310
|
-
if (name === '')
|
|
311
|
-
return null;
|
|
312
|
-
return {
|
|
313
|
-
name,
|
|
314
|
-
localName,
|
|
315
|
-
scope: store.scope,
|
|
316
|
-
path,
|
|
317
|
-
root: store.storeRoot,
|
|
318
|
-
physicalRelativePath,
|
|
319
|
-
representation,
|
|
320
|
-
routingAnchor: routingAnchorFor(name, representation),
|
|
321
|
-
store,
|
|
322
|
-
frontmatter: data,
|
|
323
|
-
body,
|
|
324
|
-
projectMemory: store.projectMemory,
|
|
325
|
-
...(store.plugin === undefined ? {} : { plugin: store.plugin }),
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
/** Within one store, `foo/INDEX.md` deterministically precedes `foo.md` for the
|
|
329
|
-
* same canonical identity: the directory form physically fronts the directory.
|
|
330
|
-
* Lint errors on the pair and every mutation refuses it, but a read still has
|
|
331
|
-
* one answer. */
|
|
332
|
-
function compareDocs(a, b) {
|
|
333
|
-
const byName = a.name.localeCompare(b.name);
|
|
334
|
-
if (byName !== 0)
|
|
335
|
-
return byName;
|
|
336
|
-
if (a.representation !== b.representation)
|
|
337
|
-
return a.representation === 'directory-index' ? -1 : 1;
|
|
338
|
-
return a.physicalRelativePath.localeCompare(b.physicalRelativePath);
|
|
339
|
-
}
|
|
340
|
-
/** Every document in one store, sorted by canonical identity. SKILL.md bundles
|
|
341
|
-
* are Agent Skills, not memory docs. Enumeration stops at a nested `.crouter/`:
|
|
342
|
-
* that is another store's mount point, never this store's content. */
|
|
343
|
-
export function loadStoreMemoryDocs(store, quiet = false) {
|
|
344
|
-
if (store.storeRoot === '' || !pathExists(store.storeRoot))
|
|
345
|
-
return [];
|
|
346
|
-
const docs = [];
|
|
347
|
-
for (const path of walkFiles(store.storeRoot, (n) => n.endsWith('.md') && n !== 'SKILL.md', (d) => d === CRTR_DIR_NAME)) {
|
|
348
|
-
const physicalRelativePath = relative(store.storeRoot, path).split(sep).join('/');
|
|
349
|
-
// COLLECTION layer: the strict frontmatter parser throws on invalid YAML.
|
|
350
|
-
// Isolate one malformed doc with a scoped notice + skip, so a single bad
|
|
351
|
-
// file can't brick `memory list`/`find` or the substrate boot render.
|
|
352
|
-
// `quiet` suppresses the notice for a targeted resolve, where another doc's
|
|
353
|
-
// health is noise before the result.
|
|
354
|
-
try {
|
|
355
|
-
const doc = loadMemoryDoc(store, path, physicalRelativePath);
|
|
356
|
-
if (doc === null) {
|
|
357
|
-
if (!quiet)
|
|
358
|
-
warn(`${path}: a root ${INDEX_SEGMENT}.md has no canonical name in a store without a namespace`);
|
|
359
|
-
continue;
|
|
360
|
-
}
|
|
361
|
-
docs.push(doc);
|
|
362
|
-
}
|
|
363
|
-
catch (e) {
|
|
364
|
-
if (!quiet)
|
|
365
|
-
warn(`invalid frontmatter in ${path}: ${firstLine(e)}`);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
return docs.sort(compareDocs);
|
|
369
|
-
}
|
|
370
|
-
/** All of one plugin's substrate docs, mounted under the plugin's own name:
|
|
371
|
-
* each doc's store-local name (explicit or path-derived) composes under that
|
|
372
|
-
* mount prefix. */
|
|
373
|
-
export function listPluginMemoryDocs(plugin, scope, quiet = false, projectMemory = NEUTRAL_PROJECT_MEMORY) {
|
|
374
|
-
return loadStoreMemoryDocs(pluginStoreDescriptor(plugin, scope, projectMemory), quiet);
|
|
375
|
-
}
|
|
376
|
-
// Views: exact canonical resolution over a loaded corpus.
|
|
377
|
-
/** The canonical form of a query: empty segments dropped. An `NN-` ordering
|
|
378
|
-
* prefix is physical-path-only and is NOT stripped here — a canonical name
|
|
379
|
-
* never carries one, so `04-base` is simply no document's address. */
|
|
380
|
-
function normalizeQuery(rawName) {
|
|
381
|
-
return canonicalSegments(rawName.trim()).join('/');
|
|
382
|
-
}
|
|
383
|
-
function notFoundError(rawName, name, scope) {
|
|
384
|
-
const segments = canonicalSegments(name);
|
|
385
|
-
const collapsedIndex = segments[segments.length - 1] === INDEX_SEGMENT;
|
|
386
|
-
if (collapsedIndex)
|
|
387
|
-
segments.pop();
|
|
388
|
-
const leaf = segments[segments.length - 1] ?? name;
|
|
389
|
-
const next = collapsedIndex
|
|
390
|
-
? `A directory's own document answers at the directory name — drop the trailing /${INDEX_SEGMENT}. Run \`crtr memory find ${leaf}\` to find the canonical name.`
|
|
391
|
-
: `Resolution takes the full canonical name (a project doc is <namespace>/<local name>). Run \`crtr memory find ${leaf}\` to find it.`;
|
|
392
|
-
return notFound(`memory document not found: ${rawName}`, { memory: name, ...(scope ? { scope } : {}), next });
|
|
393
|
-
}
|
|
394
|
-
function makeView(stores, docs, scope) {
|
|
395
|
-
const candidatesFor = (rawName, opts) => {
|
|
396
|
-
const name = normalizeQuery(rawName);
|
|
397
|
-
if (name === '')
|
|
398
|
-
return null;
|
|
399
|
-
const kind = opts?.kind;
|
|
400
|
-
const candidates = docs.filter((d) => d.name === name && (kind === undefined || effectiveDocKind(d) === kind));
|
|
401
|
-
if (candidates.length === 0)
|
|
402
|
-
return null;
|
|
403
|
-
return { name, winner: candidates[0], candidates };
|
|
404
|
-
};
|
|
405
|
-
return {
|
|
406
|
-
stores,
|
|
407
|
-
docs,
|
|
408
|
-
candidates: candidatesFor,
|
|
409
|
-
candidateSets(opts) {
|
|
410
|
-
const kind = opts?.kind;
|
|
411
|
-
const grouped = new Map();
|
|
412
|
-
for (const doc of docs) {
|
|
413
|
-
if (kind !== undefined && effectiveDocKind(doc) !== kind)
|
|
414
|
-
continue;
|
|
415
|
-
const bucket = grouped.get(doc.name);
|
|
416
|
-
if (bucket)
|
|
417
|
-
bucket.push(doc);
|
|
418
|
-
else
|
|
419
|
-
grouped.set(doc.name, [doc]);
|
|
420
|
-
}
|
|
421
|
-
return [...grouped.entries()]
|
|
422
|
-
.sort(([a], [b]) => a.localeCompare(b))
|
|
423
|
-
.map(([name, candidates]) => ({ name, winner: candidates[0], candidates }));
|
|
424
|
-
},
|
|
425
|
-
resolve(rawName, opts) {
|
|
426
|
-
const name = normalizeQuery(rawName);
|
|
427
|
-
if (name === '')
|
|
428
|
-
throw usage('memory document name required');
|
|
429
|
-
const set = candidatesFor(name, opts);
|
|
430
|
-
if (set === null)
|
|
431
|
-
throw notFoundError(rawName, name, scope);
|
|
432
|
-
return set.winner;
|
|
433
|
-
},
|
|
434
|
-
};
|
|
435
|
-
}
|
|
436
|
-
/** Load one target's whole corpus: every mounted store's documents in source
|
|
437
|
-
* order. A project store that does not mount is reported once (unless quiet)
|
|
438
|
-
* with its migration remedy and contributes nothing. */
|
|
439
|
-
export function loadMemoryTargetView(target, opts = {}) {
|
|
440
|
-
const quiet = opts.quiet ?? false;
|
|
441
|
-
const stores = memoryStoresInPrecedence(target, opts.scope, opts.includeDescendants ?? false, opts.reportDiscovery ?? !quiet);
|
|
442
|
-
const docs = [];
|
|
443
|
-
for (const store of stores) {
|
|
444
|
-
if (store.mountStatus === 'absent')
|
|
445
|
-
continue;
|
|
446
|
-
if (store.mountStatus !== 'ready') {
|
|
447
|
-
if (!quiet && store.diagnostic !== undefined)
|
|
448
|
-
warn(`memory store not mounted: ${store.diagnostic}`);
|
|
449
|
-
continue;
|
|
450
|
-
}
|
|
451
|
-
docs.push(...loadStoreMemoryDocs(store, quiet));
|
|
452
|
-
}
|
|
453
|
-
return { target, ...makeView(stores, docs, opts.scope) };
|
|
454
|
-
}
|
|
455
|
-
/** Load ONE exact physical store. An undeclared/invalid project store loads
|
|
456
|
-
* under the empty namespace so lint and migration can inspect what it holds;
|
|
457
|
-
* no target view ever sees those documents. */
|
|
458
|
-
export function loadMemoryStoreView(store, quiet = false) {
|
|
459
|
-
return { store, ...makeView([store], loadStoreMemoryDocs(store, quiet)) };
|
|
460
|
-
}
|
|
461
|
-
// Corpus listing.
|
|
462
|
-
/** All project-scoped docs visible from an explicit node workspace/profile — the
|
|
463
|
-
* project-only slice of a `MemoryTarget` view, used where only workspace docs
|
|
464
|
-
* are wanted (a workspace-open render). For a full-precedence target-addressed
|
|
465
|
-
* lookup, use `resolveMemoryDocForTarget`. */
|
|
466
|
-
export function listProjectMemoryDocs(startDir = process.cwd(), profileId = selectedProfileId() || null, quiet = false) {
|
|
467
|
-
return [
|
|
468
|
-
...loadMemoryTargetView({ cwd: startDir, profileId, nodeId: null }, { scope: 'project', quiet }).docs,
|
|
469
|
-
];
|
|
470
|
-
}
|
|
471
|
-
/** All memory docs across the resolved sources, in precedence order: each
|
|
472
|
-
* ancestor project `.crouter/` from nearest to farthest, then the selected
|
|
473
|
-
* profile's memory (if any), then user, then builtin. Within each source,
|
|
474
|
-
* native docs are emitted before enabled-plugin docs, and equal-canonical
|
|
475
|
-
* candidates stay in source order, so a caller's first-wins dedup yields the
|
|
476
|
-
* address winners. */
|
|
477
|
-
export function listAllMemoryDocs(scope, quiet = false, includeDescendants = false) {
|
|
478
|
-
return [...loadMemoryTargetView(ambientMemoryTarget(), { ...(scope ? { scope } : {}), quiet, includeDescendants }).docs];
|
|
479
|
-
}
|
|
480
|
-
export function createMemoryDocSnapshot(target = ambientMemoryTarget()) {
|
|
481
|
-
// Quiet: a snapshot feeds command registration and migration planning, where
|
|
482
|
-
// another doc's frontmatter health is noise — corpus health is `lint`'s job.
|
|
483
|
-
const view = loadMemoryTargetView(target, { quiet: true });
|
|
484
|
-
return {
|
|
485
|
-
docs: view.docs,
|
|
486
|
-
resolve: (names) => {
|
|
487
|
-
const resolved = new Map();
|
|
488
|
-
for (const rawName of names) {
|
|
489
|
-
const set = view.candidates(rawName);
|
|
490
|
-
// A command registration reports its own body-read failure; one
|
|
491
|
-
// malformed/stale identity must not suppress every other slash command.
|
|
492
|
-
if (set !== null)
|
|
493
|
-
resolved.set(rawName, set.winner);
|
|
494
|
-
}
|
|
495
|
-
return resolved;
|
|
496
|
-
},
|
|
497
|
-
};
|
|
498
|
-
}
|
|
499
|
-
/** Resolve several canonical names over one memory-source snapshot. Failed
|
|
500
|
-
* names are omitted so callers can preserve their per-document error behavior. */
|
|
501
|
-
export function resolveMemoryDocs(names) {
|
|
502
|
-
return createMemoryDocSnapshot().resolve(names);
|
|
503
|
-
}
|
|
504
|
-
/** Load the body at an already-resolved memory path with the same frontmatter
|
|
505
|
-
* stripping and in-node path interpolation as `memory read`. Callers that
|
|
506
|
-
* already have the resolved path (such as slash-command discovery) avoid
|
|
507
|
-
* re-walking every memory store for each document. */
|
|
508
|
-
export function readMemoryDocContent(path, includeFrontmatter = false) {
|
|
509
|
-
const raw = readText(path);
|
|
510
|
-
const content = includeFrontmatter ? raw : parseFrontmatterGeneric(raw).body;
|
|
511
|
-
const nodeId = envNodeId();
|
|
512
|
-
return nodeId ? interpolateNodePaths(content, nodeId) : content;
|
|
513
|
-
}
|
|
514
|
-
/** The address winner for an exact canonical name in the ambient target. */
|
|
515
|
-
export function resolveMemoryDoc(rawName, opts = {}) {
|
|
516
|
-
return resolveMemoryDocForTarget(rawName, ambientMemoryTarget(), opts);
|
|
517
|
-
}
|
|
518
|
-
/** Resolve a memory document as ANOTHER node would see it — the same precedence
|
|
519
|
-
* chain (node-local > project stack > profile > user > builtin), read from the
|
|
520
|
-
* target's cwd/profile/node rather than the host process's. This is what crtrd
|
|
521
|
-
* resolves a `[[name]]` link through: the daemon's own cwd and env name no
|
|
522
|
-
* node, and the same name can be a different document for two nodes. */
|
|
523
|
-
export function resolveMemoryDocForTarget(rawName, target, opts = {}) {
|
|
524
|
-
return resolveMemoryCandidatesForTarget(rawName, target, opts).winner;
|
|
525
|
-
}
|
|
526
|
-
/** Every physical candidate for an exact canonical name in the ambient target,
|
|
527
|
-
* in source order — what path-aware inventory, diagnostics, and automatic
|
|
528
|
-
* event eligibility consume instead of the winner alone. */
|
|
529
|
-
export function resolveMemoryCandidates(rawName, opts = {}) {
|
|
530
|
-
return resolveMemoryCandidatesForTarget(rawName, ambientMemoryTarget(), opts);
|
|
531
|
-
}
|
|
532
|
-
export function resolveMemoryCandidatesForTarget(rawName, target, opts = {}) {
|
|
533
|
-
const view = loadMemoryTargetView(target, { ...opts, quiet: true });
|
|
534
|
-
const name = normalizeQuery(rawName);
|
|
535
|
-
if (name === '')
|
|
536
|
-
throw usage('memory document name required');
|
|
537
|
-
const set = view.candidates(name, opts);
|
|
538
|
-
if (set === null)
|
|
539
|
-
throw notFoundError(rawName, name, opts.scope);
|
|
540
|
-
return set;
|
|
541
|
-
}
|
|
542
|
-
/** The address winner for an exact canonical name inside ONE project store —
|
|
543
|
-
* the `--dir` selector's resolution. The query is still the full canonical
|
|
544
|
-
* name, including that store's namespace. */
|
|
545
|
-
export function resolveMemoryDocInStore(rawName, store, opts = {}) {
|
|
546
|
-
return loadMemoryStoreView(store, true).resolve(rawName, opts);
|
|
547
|
-
}
|
|
548
|
-
// Physical sidecar lookup: the revision log mirrors the doc tree, so it is
|
|
549
|
-
// addressed by PHYSICAL path segments, not by canonical identity.
|
|
550
|
-
/** Find the direct child of `dir` — an `ext` file (matched on name minus
|
|
551
|
-
* extension) or a directory — whose NORMALIZED display name equals
|
|
552
|
-
* `segment`. An exact literal match (no prefix to strip) wins over a
|
|
553
|
-
* normalized match, so a `spine` dir sitting beside a `01-spine` dir (a
|
|
554
|
-
* malformed corpus) never masks the literal one; a well-formed corpus has at
|
|
555
|
-
* most one candidate either way. Returns the absolute child path, or null. */
|
|
556
|
-
function matchNormalizedChild(dir, segment, want, ext = '.md') {
|
|
557
|
-
let entries;
|
|
558
|
-
try {
|
|
559
|
-
entries = readdirSync(dir, { withFileTypes: true });
|
|
560
|
-
}
|
|
561
|
-
catch {
|
|
562
|
-
return null;
|
|
563
|
-
}
|
|
564
|
-
let normalizedHit = null;
|
|
565
|
-
for (const e of entries) {
|
|
566
|
-
if (want === 'dir') {
|
|
567
|
-
if (!e.isDirectory())
|
|
568
|
-
continue;
|
|
569
|
-
if (e.name === segment)
|
|
570
|
-
return join(dir, e.name);
|
|
571
|
-
if (normalizedHit === null && normalizeNameSegment(e.name) === segment) {
|
|
572
|
-
normalizedHit = join(dir, e.name);
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
else {
|
|
576
|
-
if (!(e.isFile() && e.name.endsWith(ext)))
|
|
577
|
-
continue;
|
|
578
|
-
const base = e.name.slice(0, -ext.length);
|
|
579
|
-
if (base === segment)
|
|
580
|
-
return join(dir, e.name);
|
|
581
|
-
if (normalizedHit === null && normalizeNameSegment(base) === segment) {
|
|
582
|
-
normalizedHit = join(dir, e.name);
|
|
583
|
-
}
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
return normalizedHit;
|
|
587
|
-
}
|
|
588
|
-
/** Resolve a NORMALIZED (numeric-prefix-stripped) segment path against a
|
|
589
|
-
* physical dir: walk intermediate segments matching each as a directory by
|
|
590
|
-
* normalized name, then resolve the final segment as an `ext` file. Null when
|
|
591
|
-
* the segment path does not resolve. This is what keeps a sidecar findable
|
|
592
|
-
* when its physical path carries ordering pins — `00-topic.md` logged at
|
|
593
|
-
* `.history/00-topic.jsonl` still answers to `topic`. */
|
|
594
|
-
function resolveNormalizedFile(baseDir, segments, ext) {
|
|
595
|
-
let curDir = baseDir;
|
|
596
|
-
for (let i = 0; i < segments.length - 1; i++) {
|
|
597
|
-
const next = matchNormalizedChild(curDir, segments[i], 'dir', ext);
|
|
598
|
-
if (!next)
|
|
599
|
-
return null;
|
|
600
|
-
curDir = next;
|
|
601
|
-
}
|
|
602
|
-
return matchNormalizedChild(curDir, segments[segments.length - 1], 'file', ext);
|
|
603
|
-
}
|
|
604
|
-
/** Resolve PHYSICAL path segments against a `.history` tree, which mirrors the
|
|
605
|
-
* doc tree segment for segment with `.jsonl` in place of `.md`. A log outlives
|
|
606
|
-
* its document, so this lookup cannot go through document resolution. */
|
|
607
|
-
export function resolveHistoryLogPath(historyDir, segments) {
|
|
608
|
-
if (segments.length === 0)
|
|
609
|
-
return null;
|
|
610
|
-
return resolveNormalizedFile(historyDir, segments, '.jsonl');
|
|
611
|
-
}
|
|
1
|
+
var V=Object.defineProperty;var c=(e,o)=>V(e,"name",{value:o,configurable:!0});import{envNodeId as x,envProfileId as W}from"../shared/env.js";import{dirname as G,join as y,relative as H,sep as J}from"node:path";import{readdirSync as Q}from"node:fs";import{CRTR_DIR_NAME as F}from"../types.js";import{pathExists as v,readText as $,realpathOrSelf as N,walkFiles as U}from"./fs-utils.js";import{parseFrontmatterGeneric as j}from"./frontmatter.js";import{interpolateNodePaths as X}from"./canvas/paths.js";import{listInstalledPlugins as Y,listInstalledPluginsInRoot as B}from"./resolver.js";import{notFound as Z,usage as b}from"./errors.js";import{warn as M}from"./output.js";import{NEUTRAL_PROJECT_MEMORY as h,pluginMemoryDir as ee,projectScopeRoots as oe,projectScopeRootsWithMemory as ne,scopeMemoryDir as te}from"./scope.js";import{effectiveDocKind as k}from"./substrate/schema.js";import{INDEX_SEGMENT as w,canonicalSegments as C,composeCanonicalName as E,localNameFromPath as re,normalizeNameSegment as T,representationForPath as ie,resolveLocalName as ae,routingAnchorFor as se,validateNamespace as ce}from"./memory/identity.js";import{loadProfileManifest as ue,profileMemoryDir as le}from"./profiles/manifest.js";import{memoryDir as me}from"./runtime/memory.js";import{descendantStoreRoots as de}from"./nested-stores.js";import{associateRepository as fe}from"./memory/repository-association.js";function g(){return{cwd:process.cwd(),profileId:W()||null,nodeId:x()||null}}c(g,"ambientMemoryTarget");function pe(){return g().profileId??""}c(pe,"selectedProfileId");function ye(e,o){if(o)return[o];const n=[];return e.nodeId&&n.push("node"),oe(e.cwd,e.profileId).length>0&&n.push("project"),e.profileId&&n.push("profile"),n.push("user"),n.push("builtin"),n}c(ye,"scopesInPrecedence");function L(e,o,n){const t={scope:"project",storeRoot:o,ownerDir:e,projectMemory:n};if(!v(o))return{...t,namespace:"",mountStatus:"absent"};const r=fe(e);if(!r.ok){const p=`run \`crtr sys migrate --dir ${e}\``;return r.code==="no-project-root"?{...t,namespace:"",mountStatus:"undeclared",mountFailure:"association",diagnostic:`project memory store at ${o} has no repository root declaring \`namespace:\` \u2014 ${p}`}:{...t,namespace:"",mountStatus:"invalid",mountFailure:"association",diagnostic:`project memory store at ${o} cannot be associated: ${r.reason} \u2014 ${p}`}}const{association:i}=r,s={namespacePath:i.declarationPath,repositoryRoot:i.repositoryRoot,repositoryKey:i.repositoryKey,ownerRelativePath:i.ownerRelativePath},u=i.declarationPath,d=i.ownerRelativePath!=="",a=`run \`crtr sys migrate --dir ${i.repositoryRoot}\``,l=d?`nested project memory store at ${o} takes its identity from ${u}, which is missing root ${w}.md declaring \`namespace:\` \u2014 ${a}`:`project memory store has no root ${w}.md declaring \`namespace:\` \u2014 ${a}`;if(!v(u))return{...t,...s,namespace:"",mountStatus:"undeclared",mountFailure:"undeclared-root",diagnostic:l};let m;try{m=j($(u)).data?.namespace}catch(p){return{...t,...s,namespace:"",mountStatus:"invalid",mountFailure:"invalid-root",diagnostic:`project memory store's ${u} does not parse (${z(p)}) \u2014 ${a}`}}if(m==null||m===""){const p=d?`nested project memory store at ${o} takes its identity from ${u}, which declares no \`namespace:\` \u2014 ${a}`:`project memory store's ${u} declares no \`namespace:\` \u2014 ${a}`;return{...t,...s,namespace:"",mountStatus:"undeclared",mountFailure:"undeclared-root",diagnostic:p}}if(typeof m!="string")return{...t,...s,namespace:"",mountStatus:"invalid",mountFailure:"invalid-root",diagnostic:`project memory store declares a non-string \`namespace:\` (${JSON.stringify(m)}) \u2014 quote it in ${u}, or ${a}`};const f=ce(m);return f.ok?{...t,...s,repositoryNamespace:m,namespace:E(m,i.ownerRelativePath),mountStatus:"ready"}:{...t,...s,namespace:"",mountStatus:"invalid",mountFailure:"invalid-root",diagnostic:`project memory store declares an invalid namespace \`${m}\` (${f.reason}) \u2014 ${a}`}}c(L,"projectStoreDescriptor");function R(e,o){return o===null?{scope:e,storeRoot:"",namespace:"",mountStatus:"absent",projectMemory:h}:{scope:e,storeRoot:o,namespace:"",mountStatus:v(o)?"ready":"absent",projectMemory:h}}c(R,"plainStoreDescriptor");function I(e,o,n){const t=ee(e);return{scope:o,storeRoot:t,namespace:e.name,plugin:e.name,mountStatus:v(t)?"ready":"absent",projectMemory:n}}c(I,"pluginStoreDescriptor");function _e(e){const o=N(e);return L(o,y(o,F,"memory"),h)}c(_e,"openProjectMemoryStore");function q(e,o,n=!1,t=!0){const r=[],i=c((a,l)=>{r.push(L(G(a),y(a,"memory"),l));for(const m of B("project",a).filter(f=>f.enabled))r.push(I(m,"project",l))},"projectStores");for(const a of ye(e,o))if(a==="project"){const l=ne(e.cwd,e.profileId);for(const{root:m,memory:f}of l)i(m,f);if(n)for(const m of de(l.map(({root:f})=>f),t))i(m,h)}else if(a==="profile"){const l=e.profileId??"";if(l!=="")try{const{profileId:m}=ue(l);r.push(R("profile",le(m)))}catch{}}else if(a==="node"){const l=e.nodeId??"";l!==""&&r.push(R("node",me(l)))}else{r.push(R(a,te(a)));for(const l of Y(a).filter(m=>m.enabled))r.push(I(l,a,h))}const s=new Set,u=r.filter(a=>{if(a.storeRoot==="")return!1;const l=N(a.storeRoot);return s.has(l)?!1:(s.add(l),!0)}),d=new Map;for(const a of u){if(a.scope!=="project"||a.mountStatus!=="ready"||a.repositoryRoot===void 0||a.ownerRelativePath===void 0)continue;const l=`${a.repositoryRoot}\0${a.ownerRelativePath}`,m=d.get(l);m?m.push(a):d.set(l,[a])}return u.map(a=>{if(a.scope!=="project"||a.mountStatus!=="ready"||a.repositoryRoot===void 0||a.ownerRelativePath===void 0)return a;const l=d.get(`${a.repositoryRoot}\0${a.ownerRelativePath}`);if(l===void 0||l.length<2)return a;const m=l.map(f=>f.ownerDir??f.storeRoot).join(", ");return{...a,mountStatus:"invalid",mountFailure:"collision",diagnostic:`project memory stores at ${m} normalize to the same effective prefix \`${a.namespace}\` \u2014 rename one owner directory`}})}c(q,"memoryStoresInPrecedence");function Ke(e,o=!1){return q(g(),e,o).filter(n=>n.mountStatus==="ready"&&n.scope!=="builtin"&&n.plugin===void 0).map(n=>({scope:n.scope,memoryDir:n.storeRoot,store:n}))}c(Ke,"nativeMemoryStoresInPrecedence");function z(e){return(e instanceof Error?e.message:String(e)).split(`
|
|
2
|
+
`)[0]??""}c(z,"firstLine");function he(e,o,n){const{data:t,body:r}=j($(o)),i=re(n),s=ie(n),u=i===""?"":ae(t,i),d=E(e.namespace,u);return d===""?null:{name:d,localName:u,scope:e.scope,path:o,root:e.storeRoot,physicalRelativePath:n,representation:s,routingAnchor:se(d,s),store:e,frontmatter:t,body:r,projectMemory:e.projectMemory,...e.plugin===void 0?{}:{plugin:e.plugin}}}c(he,"loadMemoryDoc");function ge(e,o){const n=e.name.localeCompare(o.name);return n!==0?n:e.representation!==o.representation?e.representation==="directory-index"?-1:1:e.physicalRelativePath.localeCompare(o.physicalRelativePath)}c(ge,"compareDocs");function D(e,o=!1){if(e.storeRoot===""||!v(e.storeRoot))return[];const n=[];for(const t of U(e.storeRoot,r=>r.endsWith(".md")&&r!=="SKILL.md",r=>r===F)){const r=H(e.storeRoot,t).split(J).join("/");try{const i=he(e,t,r);if(i===null){o||M(`${t}: a root ${w}.md has no canonical name in a store without a namespace`);continue}n.push(i)}catch(i){o||M(`invalid frontmatter in ${t}: ${z(i)}`)}}return n.sort(ge)}c(D,"loadStoreMemoryDocs");function Oe(e,o,n=!1,t=h){return D(I(e,o,t),n)}c(Oe,"listPluginMemoryDocs");function P(e){return C(e.trim()).join("/")}c(P,"normalizeQuery");function A(e,o,n){const t=C(o),r=t[t.length-1]===w;r&&t.pop();const i=t[t.length-1]??o,s=r?`A directory's own document answers at the directory name \u2014 drop the trailing /${w}. Run \`crtr memory find ${i}\` to find the canonical name.`:`Resolution takes the full canonical name (a project doc is <namespace>/<local name>). Run \`crtr memory find ${i}\` to find it.`;return Z(`memory document not found: ${e}`,{memory:o,...n?{scope:n}:{},next:s})}c(A,"notFoundError");function _(e,o,n){const t=c((r,i)=>{const s=P(r);if(s==="")return null;const u=i?.kind,d=o.filter(a=>a.name===s&&(u===void 0||k(a)===u));return d.length===0?null:{name:s,winner:d[0],candidates:d}},"candidatesFor");return{stores:e,docs:o,candidates:t,candidateSets(r){const i=r?.kind,s=new Map;for(const u of o){if(i!==void 0&&k(u)!==i)continue;const d=s.get(u.name);d?d.push(u):s.set(u.name,[u])}return[...s.entries()].sort(([u],[d])=>u.localeCompare(d)).map(([u,d])=>({name:u,winner:d[0],candidates:d}))},resolve(r,i){const s=P(r);if(s==="")throw b("memory document name required");const u=t(s,i);if(u===null)throw A(r,s,n);return u.winner}}}c(_,"makeView");function S(e,o={}){const n=o.quiet??!1,t=q(e,o.scope,o.includeDescendants??!1,o.reportDiscovery??!n),r=[];for(const i of t)if(i.mountStatus!=="absent"){if(i.mountStatus!=="ready"){!n&&i.diagnostic!==void 0&&M(`memory store not mounted: ${i.diagnostic}`);continue}r.push(...D(i,n))}return{target:e,..._(t,r,o.scope)}}c(S,"loadMemoryTargetView");function ve(e,o=!1){return{store:e,..._([e],D(e,o))}}c(ve,"loadMemoryStoreView");function Ve(e=process.cwd(),o=pe()||null,n=!1){return[...S({cwd:e,profileId:o,nodeId:null},{scope:"project",quiet:n}).docs]}c(Ve,"listProjectMemoryDocs");function We(e,o=!1,n=!1){return[...S(g(),{...e?{scope:e}:{},quiet:o,includeDescendants:n}).docs]}c(We,"listAllMemoryDocs");function we(e=g()){const o=S(e,{quiet:!0});return{docs:o.docs,resolve:c(n=>{const t=new Map;for(const r of n){const i=o.candidates(r);i!==null&&t.set(r,i.winner)}return t},"resolve")}}c(we,"createMemoryDocSnapshot");function Ge(e){return we().resolve(e)}c(Ge,"resolveMemoryDocs");function He(e,o=!1){const n=$(e),t=o?n:j(n).body,r=x();return r?X(t,r):t}c(He,"readMemoryDocContent");function Je(e,o={}){return Se(e,g(),o)}c(Je,"resolveMemoryDoc");function Se(e,o,n={}){return K(e,o,n).winner}c(Se,"resolveMemoryDocForTarget");function Qe(e,o={}){return K(e,g(),o)}c(Qe,"resolveMemoryCandidates");function K(e,o,n={}){const t=S(o,{...n,quiet:!0}),r=P(e);if(r==="")throw b("memory document name required");const i=t.candidates(r,n);if(i===null)throw A(e,r,n.scope);return i}c(K,"resolveMemoryCandidatesForTarget");function Ue(e,o,n={}){return ve(o,!0).resolve(e,n)}c(Ue,"resolveMemoryDocInStore");function O(e,o,n,t=".md"){let r;try{r=Q(e,{withFileTypes:!0})}catch{return null}let i=null;for(const s of r)if(n==="dir"){if(!s.isDirectory())continue;if(s.name===o)return y(e,s.name);i===null&&T(s.name)===o&&(i=y(e,s.name))}else{if(!(s.isFile()&&s.name.endsWith(t)))continue;const u=s.name.slice(0,-t.length);if(u===o)return y(e,s.name);i===null&&T(u)===o&&(i=y(e,s.name))}return i}c(O,"matchNormalizedChild");function $e(e,o,n){let t=e;for(let r=0;r<o.length-1;r++){const i=O(t,o[r],"dir",n);if(!i)return null;t=i}return O(t,o[o.length-1],"file",n)}c($e,"resolveNormalizedFile");function Xe(e,o){return o.length===0?null:$e(e,o,".jsonl")}c(Xe,"resolveHistoryLogPath");export{g as ambientMemoryTarget,we as createMemoryDocSnapshot,We as listAllMemoryDocs,Oe as listPluginMemoryDocs,Ve as listProjectMemoryDocs,ve as loadMemoryStoreView,S as loadMemoryTargetView,D as loadStoreMemoryDocs,q as memoryStoresInPrecedence,Ke as nativeMemoryStoresInPrecedence,_e as openProjectMemoryStore,He as readMemoryDocContent,Xe as resolveHistoryLogPath,Qe as resolveMemoryCandidates,K as resolveMemoryCandidatesForTarget,Je as resolveMemoryDoc,Se as resolveMemoryDocForTarget,Ue as resolveMemoryDocInStore,Ge as resolveMemoryDocs};
|