@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,498 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// answers at `<namespace>/deps/<bundle>`, AND the bundle's relative sidecar
|
|
17
|
-
// links (./references/x.md, ./docs/y.md) keep resolving on disk because
|
|
18
|
-
// the bundle's file layout is preserved. Sidecar .md files get minimal
|
|
19
|
-
// substrate frontmatter injected (lint-clean, system name/file none); other
|
|
20
|
-
// files copy verbatim.
|
|
21
|
-
// • Physical layout is store-local (`deps/**` under the project's memory
|
|
22
|
-
// dir); every name the lane reports, links, or tells an agent to read is
|
|
23
|
-
// the full canonical name, composed with the store's declared namespace.
|
|
24
|
-
// The store must already declare one — this lane vendors documents into a
|
|
25
|
-
// project store, never the declaration that gives them their identity.
|
|
26
|
-
// • Vendored bundle and sidecar docs sit at system name/file none, so the boot
|
|
27
|
-
// catalog exposes their resolvable identities without loading their bodies.
|
|
28
|
-
// The ONE generated top deps/INDEX.md sits at system preview/file none and
|
|
29
|
-
// carries the routing catalog. The catalog is one read away, each vendored
|
|
30
|
-
// doc another.
|
|
31
|
-
import { copyFileSync, mkdirSync, readdirSync, rmSync } from 'node:fs';
|
|
32
|
-
import { basename, dirname, join, relative, resolve, sep } from 'node:path';
|
|
33
|
-
import { defineLeaf } from '../../core/command.js';
|
|
34
|
-
import { usage } from '../../core/errors.js';
|
|
35
|
-
import { parseFrontmatterGeneric } from '../../core/frontmatter.js';
|
|
36
|
-
import { pathExists, readJsonIfExists, readText, walkFiles, writeText } from '../../core/fs-utils.js';
|
|
37
|
-
import { composeCanonicalName } from '../../core/memory/identity.js';
|
|
38
|
-
import { openProjectMemoryStore } from '../../core/memory-resolver.js';
|
|
39
|
-
import { requireMountedStore, serializeMemoryDoc } from '../memory/shared.js';
|
|
40
|
-
import { routeFromDescription, scalarString } from './sync-shared.js';
|
|
41
|
-
import { isRecord } from '../../shared/predicates.js';
|
|
42
|
-
/** Marker value written to the generated top INDEX's `generated-by` field —
|
|
43
|
-
* the wipe guard: `deps` only ever deletes a deps/ dir whose INDEX carries
|
|
44
|
-
* this marker. */
|
|
45
|
-
export const DEPS_GENERATED_MARKER = 'crtr sys sync deps';
|
|
46
|
-
function invalidDepsConfig(message) {
|
|
47
|
-
throw usage(`--deps: invalid package.json crtr.sync.deps.exclude: ${message}`);
|
|
48
|
-
}
|
|
49
|
-
/** Read the sole dependency-policy source. Selectors are deliberately objects:
|
|
50
|
-
* their three exact components cannot be confused with a semver range or a
|
|
51
|
-
* scoped package's @ delimiter. */
|
|
52
|
-
function readDepsExclusions(projectRoot) {
|
|
53
|
-
const manifest = readJsonIfExists(join(projectRoot, 'package.json'));
|
|
54
|
-
if (!isRecord(manifest))
|
|
55
|
-
invalidDepsConfig('package.json must contain an object');
|
|
56
|
-
const crtr = manifest['crtr'];
|
|
57
|
-
if (crtr === undefined)
|
|
58
|
-
return [];
|
|
59
|
-
if (!isRecord(crtr))
|
|
60
|
-
invalidDepsConfig('crtr must be an object');
|
|
61
|
-
const sync = crtr['sync'];
|
|
62
|
-
if (sync === undefined)
|
|
63
|
-
return [];
|
|
64
|
-
if (!isRecord(sync))
|
|
65
|
-
invalidDepsConfig('crtr.sync must be an object');
|
|
66
|
-
const deps = sync['deps'];
|
|
67
|
-
if (deps === undefined)
|
|
68
|
-
return [];
|
|
69
|
-
if (!isRecord(deps))
|
|
70
|
-
invalidDepsConfig('crtr.sync.deps must be an object');
|
|
71
|
-
const exclude = deps['exclude'];
|
|
72
|
-
if (exclude === undefined)
|
|
73
|
-
return [];
|
|
74
|
-
if (!Array.isArray(exclude))
|
|
75
|
-
invalidDepsConfig('exclude must be an array of {package, version, skill} selectors');
|
|
76
|
-
const seen = new Set();
|
|
77
|
-
return exclude.map((raw, index) => {
|
|
78
|
-
if (!isRecord(raw))
|
|
79
|
-
invalidDepsConfig(`exclude[${index}] must be an object with exactly package, version, and skill`);
|
|
80
|
-
const keys = Object.keys(raw).sort();
|
|
81
|
-
if (keys.join(',') !== 'package,skill,version') {
|
|
82
|
-
invalidDepsConfig(`exclude[${index}] must contain exactly package, version, and skill`);
|
|
83
|
-
}
|
|
84
|
-
const pkg = raw['package'];
|
|
85
|
-
const version = raw['version'];
|
|
86
|
-
const skill = raw['skill'];
|
|
87
|
-
if (typeof pkg !== 'string' || !PACKAGE_NAME_RE.test(pkg)) {
|
|
88
|
-
invalidDepsConfig(`exclude[${index}].package must be one exact npm package name`);
|
|
89
|
-
}
|
|
90
|
-
if (typeof version !== 'string' || !SEMVER_RE.test(version)) {
|
|
91
|
-
invalidDepsConfig(`exclude[${index}].version must be one exact installed semver version`);
|
|
92
|
-
}
|
|
93
|
-
if (typeof skill !== 'string' || skill === '' || (skill !== '.' && (skill.startsWith('/') || skill.split('/').some((part) => part === '' || part === '.' || part === '..') || /[\\*?[\]{}]/.test(skill)))) {
|
|
94
|
-
invalidDepsConfig(`exclude[${index}].skill must be one exact POSIX path relative to the package skills/ directory (use . for a root SKILL.md)`);
|
|
95
|
-
}
|
|
96
|
-
const selector = { package: pkg, version, skill };
|
|
97
|
-
const key = `${pkg}\u0000${version}\u0000${skill}`;
|
|
98
|
-
if (seen.has(key))
|
|
99
|
-
invalidDepsConfig(`exclude[${index}] duplicates ${pkg}@${version} skill ${skill}`);
|
|
100
|
-
seen.add(key);
|
|
101
|
-
return selector;
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
const PACKAGE_NAME_RE = /^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/;
|
|
105
|
-
const SEMVER_IDENTIFIER_RE = '(?:0|[1-9]\\d*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)';
|
|
106
|
-
const SEMVER_RE = new RegExp(`^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-${SEMVER_IDENTIFIER_RE}(?:\\.${SEMVER_IDENTIFIER_RE})*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$`);
|
|
107
|
-
function exclusionKey(pkg, version, skill) {
|
|
108
|
-
return `${pkg}\u0000${version}\u0000${skill}`;
|
|
109
|
-
}
|
|
110
|
-
function isExcluded(exclusions, pkg, skill) {
|
|
111
|
-
return exclusions.has(exclusionKey(pkg.pkg, pkg.version, skill));
|
|
112
|
-
}
|
|
113
|
-
/** The project whose dependencies get vendored: an explicit --source dir, else
|
|
114
|
-
* the nearest ancestor of cwd carrying a package.json. */
|
|
115
|
-
function depsProjectDir(sourceArg) {
|
|
116
|
-
if (sourceArg !== undefined)
|
|
117
|
-
return resolve(sourceArg);
|
|
118
|
-
let d = resolve(process.cwd());
|
|
119
|
-
while (true) {
|
|
120
|
-
if (pathExists(join(d, 'package.json')))
|
|
121
|
-
return d;
|
|
122
|
-
const parent = dirname(d);
|
|
123
|
-
if (parent === d) {
|
|
124
|
-
throw usage('--deps: no package.json found from cwd upward; run inside a Node project or pass --source <project-dir>');
|
|
125
|
-
}
|
|
126
|
-
d = parent;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/** Every installed package that ships a `skills/` dir, sorted by directory
|
|
130
|
-
* name for deterministic first-wins collision handling. */
|
|
131
|
-
function skillsPackages(nodeModules) {
|
|
132
|
-
const pkgDirs = [];
|
|
133
|
-
for (const name of listDirNames(nodeModules)) {
|
|
134
|
-
if (name.startsWith('.'))
|
|
135
|
-
continue;
|
|
136
|
-
if (name.startsWith('@')) {
|
|
137
|
-
for (const sub of listDirNames(join(nodeModules, name))) {
|
|
138
|
-
pkgDirs.push(join(nodeModules, name, sub));
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
pkgDirs.push(join(nodeModules, name));
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
const out = [];
|
|
146
|
-
for (const dir of pkgDirs.sort()) {
|
|
147
|
-
const skillsRoot = join(dir, 'skills');
|
|
148
|
-
if (!pathExists(skillsRoot))
|
|
149
|
-
continue;
|
|
150
|
-
const pj = readJsonIfExists(join(dir, 'package.json'));
|
|
151
|
-
out.push({
|
|
152
|
-
pkg: pj?.name ?? relative(nodeModules, dir).split(sep).join('/'),
|
|
153
|
-
version: pj?.version ?? '',
|
|
154
|
-
skillsRoot,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
return out;
|
|
158
|
-
}
|
|
159
|
-
function listDirNames(dir) {
|
|
160
|
-
try {
|
|
161
|
-
// Tolerant: a non-dir or unreadable entry yields nothing.
|
|
162
|
-
return readdirSync(dir);
|
|
163
|
-
}
|
|
164
|
-
catch {
|
|
165
|
-
return [];
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/** Return the deepest discovered bundle that owns a file. A nested SKILL.md
|
|
169
|
-
* bundle owns its own files rather than inheriting its parent's policy. */
|
|
170
|
-
function owningBundle(file, bundleRoots) {
|
|
171
|
-
return bundleRoots.find((root) => file === root || file.startsWith(`${root}${sep}`));
|
|
172
|
-
}
|
|
173
|
-
/** First sentence of a description, capped — the catalog line + short-form. */
|
|
174
|
-
function condenseDescription(desc, max = 220) {
|
|
175
|
-
const s = desc.replace(/\s+/g, ' ').trim();
|
|
176
|
-
const firstSentence = s.split(/(?<=[.!?])\s+/)[0] ?? s;
|
|
177
|
-
const pick = firstSentence.length >= 30 ? firstSentence : s;
|
|
178
|
-
if (pick.length <= max)
|
|
179
|
-
return pick;
|
|
180
|
-
const cut = pick.slice(0, max);
|
|
181
|
-
const lastSpace = cut.lastIndexOf(' ');
|
|
182
|
-
return `${cut.slice(0, lastSpace > 80 ? lastSpace : max).trimEnd()}…`;
|
|
183
|
-
}
|
|
184
|
-
/** Frontmatter fields from a source file that must never pass through into a
|
|
185
|
-
* vendored doc: this lane owns identity, routing, visibility, and gates, so a
|
|
186
|
-
* dependency bundle cannot alter how the generated project catalog surfaces. */
|
|
187
|
-
const CONTROLLED_FIELDS = [
|
|
188
|
-
'name',
|
|
189
|
-
'description',
|
|
190
|
-
'type',
|
|
191
|
-
'keywords',
|
|
192
|
-
'kind',
|
|
193
|
-
'when-and-why-to-read',
|
|
194
|
-
'short-form',
|
|
195
|
-
'unlisted',
|
|
196
|
-
'surfaces',
|
|
197
|
-
'gate',
|
|
198
|
-
'rationale',
|
|
199
|
-
];
|
|
200
|
-
function passthroughFm(source) {
|
|
201
|
-
const out = { ...source };
|
|
202
|
-
for (const f of CONTROLLED_FIELDS)
|
|
203
|
-
delete out[f];
|
|
204
|
-
return out;
|
|
205
|
-
}
|
|
206
|
-
function firstHeading(body) {
|
|
207
|
-
const m = body.match(/^#{1,6}\s+(.+)$/m);
|
|
208
|
-
return m ? m[1].trim() : undefined;
|
|
209
|
-
}
|
|
210
|
-
export function runDepsSync(opts) {
|
|
211
|
-
const projectRoot = depsProjectDir(opts.sourceArg);
|
|
212
|
-
const nodeModules = join(projectRoot, 'node_modules');
|
|
213
|
-
if (!pathExists(nodeModules)) {
|
|
214
|
-
throw usage(`sys sync deps: ${nodeModules} does not exist; install dependencies first (npm ci / npm install), then re-run`);
|
|
215
|
-
}
|
|
216
|
-
// Identity before any planning: the store's declared namespace is what every
|
|
217
|
-
// reported row, catalog link, and read instruction composes under.
|
|
218
|
-
const store = requireMountedStore(openProjectMemoryStore(projectRoot));
|
|
219
|
-
const depsDir = join(store.storeRoot, 'deps');
|
|
220
|
-
const depsName = composeCanonicalName(store.namespace, 'deps');
|
|
221
|
-
const exclusions = readDepsExclusions(projectRoot);
|
|
222
|
-
const exclusionSet = new Set(exclusions.map((e) => exclusionKey(e.package, e.version, e.skill)));
|
|
223
|
-
const selectorMatches = new Map(exclusions.map((e) => [exclusionKey(e.package, e.version, e.skill), 0]));
|
|
224
|
-
// -- Plan: discover every bundle before validating selectors or planning
|
|
225
|
-
// files. Each file belongs to its deepest containing bundle, so excluding a
|
|
226
|
-
// parent removes only that parent's own files while nested safe bundles stay.
|
|
227
|
-
const planned = new Map();
|
|
228
|
-
const rows = [];
|
|
229
|
-
const packages = skillsPackages(nodeModules);
|
|
230
|
-
const includedPackages = [];
|
|
231
|
-
for (const p of packages) {
|
|
232
|
-
const bundleRoots = [];
|
|
233
|
-
const excludedBundleRoots = new Set();
|
|
234
|
-
for (const skillFile of walkFiles(p.skillsRoot, (name) => name === 'SKILL.md', (d) => d === 'node_modules' || d === '.git')) {
|
|
235
|
-
const skillRoot = dirname(skillFile);
|
|
236
|
-
bundleRoots.push(skillRoot);
|
|
237
|
-
const skillRel = dirname(relative(p.skillsRoot, skillFile).split(sep).join('/'));
|
|
238
|
-
if (!isExcluded(exclusionSet, p, skillRel))
|
|
239
|
-
continue;
|
|
240
|
-
const selector = exclusionKey(p.pkg, p.version, skillRel);
|
|
241
|
-
selectorMatches.set(selector, (selectorMatches.get(selector) ?? 0) + 1);
|
|
242
|
-
excludedBundleRoots.add(skillRoot);
|
|
243
|
-
rows.push({
|
|
244
|
-
source: skillFile,
|
|
245
|
-
target: '—',
|
|
246
|
-
name: `${p.pkg}@${p.version}:${skillRel}`,
|
|
247
|
-
scope: 'project',
|
|
248
|
-
status: 'excluded',
|
|
249
|
-
reason: 'matched package.json crtr.sync.deps.exclude',
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
includedPackages.push({ ...p, bundleRoots: bundleRoots.sort((a, b) => b.length - a.length), excludedBundleRoots });
|
|
253
|
-
}
|
|
254
|
-
for (const exclusion of exclusions) {
|
|
255
|
-
const selector = exclusionKey(exclusion.package, exclusion.version, exclusion.skill);
|
|
256
|
-
const matches = selectorMatches.get(selector);
|
|
257
|
-
if (matches !== 1) {
|
|
258
|
-
throw usage(`--deps: package.json crtr.sync.deps.exclude selector ${exclusion.package}@${exclusion.version}:${exclusion.skill} ` +
|
|
259
|
-
`${matches === 0 ? 'does not match an installed dependency skill bundle' : `matches ${matches} installed dependency skill bundles`}; ` +
|
|
260
|
-
'update or remove the selector before syncing');
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
for (const p of includedPackages) {
|
|
264
|
-
const bundleRoots = p.bundleRoots ?? [];
|
|
265
|
-
const excludedBundleRoots = p.excludedBundleRoots ?? new Set();
|
|
266
|
-
for (const file of walkFiles(p.skillsRoot, () => true, (d) => d === 'node_modules' || d === '.git')) {
|
|
267
|
-
const owner = owningBundle(file, bundleRoots);
|
|
268
|
-
if (owner === undefined || excludedBundleRoots.has(owner))
|
|
269
|
-
continue;
|
|
270
|
-
const rel = relative(p.skillsRoot, file).split(sep).join('/');
|
|
271
|
-
let entry;
|
|
272
|
-
let targetRel;
|
|
273
|
-
if (basename(file) === 'SKILL.md') {
|
|
274
|
-
const relDir = dirname(rel);
|
|
275
|
-
const bundleRel = relDir === '.' ? (p.pkg.split('/').pop() ?? p.pkg) : relDir;
|
|
276
|
-
targetRel = `${bundleRel}/INDEX.md`;
|
|
277
|
-
let fm = {};
|
|
278
|
-
let body = '';
|
|
279
|
-
try {
|
|
280
|
-
const parsed = parseFrontmatterGeneric(readText(file));
|
|
281
|
-
fm = parsed.data ?? {};
|
|
282
|
-
body = parsed.body;
|
|
283
|
-
}
|
|
284
|
-
catch {
|
|
285
|
-
body = readText(file);
|
|
286
|
-
}
|
|
287
|
-
entry = {
|
|
288
|
-
kind: 'skill',
|
|
289
|
-
sourceAbs: file,
|
|
290
|
-
pkg: p.pkg,
|
|
291
|
-
version: p.version,
|
|
292
|
-
bundleRel,
|
|
293
|
-
fm,
|
|
294
|
-
body,
|
|
295
|
-
description: scalarString(fm['description']) ?? '',
|
|
296
|
-
};
|
|
297
|
-
}
|
|
298
|
-
else if (rel.toLowerCase().endsWith('.md')) {
|
|
299
|
-
targetRel = rel;
|
|
300
|
-
entry = { kind: 'sidecar-md', sourceAbs: file, pkg: p.pkg, version: p.version };
|
|
301
|
-
}
|
|
302
|
-
else {
|
|
303
|
-
targetRel = rel;
|
|
304
|
-
entry = { kind: 'asset', sourceAbs: file, pkg: p.pkg };
|
|
305
|
-
}
|
|
306
|
-
if (targetRel === 'INDEX.md')
|
|
307
|
-
continue; // reserved for the generated catalog
|
|
308
|
-
const existing = planned.get(targetRel);
|
|
309
|
-
if (existing) {
|
|
310
|
-
if (entry.kind === 'skill') {
|
|
311
|
-
rows.push({
|
|
312
|
-
source: file,
|
|
313
|
-
target: join(depsDir, ...targetRel.split('/')),
|
|
314
|
-
name: `${depsName}/${dirname(targetRel)}`,
|
|
315
|
-
scope: 'project',
|
|
316
|
-
status: 'skipped',
|
|
317
|
-
reason: `collides with same-named bundle from ${existing.pkg}`,
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
continue; // first (sorted) package wins
|
|
321
|
-
}
|
|
322
|
-
planned.set(targetRel, entry);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
const skills = [...planned.entries()].filter((e) => e[1].kind === 'skill');
|
|
326
|
-
// Sidecar/asset counts attributed to the DEEPEST bundle dir that contains them.
|
|
327
|
-
const bundleDirs = skills.map(([, s]) => s.bundleRel).sort((a, b) => b.length - a.length);
|
|
328
|
-
const sidecarCount = new Map();
|
|
329
|
-
for (const [targetRel, entry] of planned) {
|
|
330
|
-
if (entry.kind === 'skill')
|
|
331
|
-
continue;
|
|
332
|
-
const owner = bundleDirs.find((d) => targetRel.startsWith(`${d}/`));
|
|
333
|
-
if (owner)
|
|
334
|
-
sidecarCount.set(owner, (sidecarCount.get(owner) ?? 0) + 1);
|
|
335
|
-
}
|
|
336
|
-
const catalogPackages = new Set(skills.map(([, skill]) => `${skill.pkg}@${skill.version}`));
|
|
337
|
-
const status = opts.dryRun ? 'would-import' : 'imported';
|
|
338
|
-
for (const [targetRel, skill] of skills) {
|
|
339
|
-
const n = sidecarCount.get(skill.bundleRel) ?? 0;
|
|
340
|
-
rows.push({
|
|
341
|
-
source: skill.sourceAbs,
|
|
342
|
-
target: join(depsDir, ...targetRel.split('/')),
|
|
343
|
-
name: `${depsName}/${skill.bundleRel}`,
|
|
344
|
-
scope: 'project',
|
|
345
|
-
status,
|
|
346
|
-
...(n > 0 ? { reason: `+${n} sidecar file${n === 1 ? '' : 's'}` } : {}),
|
|
347
|
-
});
|
|
348
|
-
}
|
|
349
|
-
rows.push({
|
|
350
|
-
source: nodeModules,
|
|
351
|
-
target: join(depsDir, 'INDEX.md'),
|
|
352
|
-
name: depsName,
|
|
353
|
-
scope: 'project',
|
|
354
|
-
status,
|
|
355
|
-
reason: `generated catalog of ${skills.length} docs from ${catalogPackages.size} package${catalogPackages.size === 1 ? '' : 's'}`,
|
|
356
|
-
});
|
|
357
|
-
if (opts.dryRun)
|
|
358
|
-
return rows;
|
|
359
|
-
// -- Wipe (marker-guarded) + regenerate. -----------------------------------
|
|
360
|
-
if (pathExists(depsDir)) {
|
|
361
|
-
const idx = join(depsDir, 'INDEX.md');
|
|
362
|
-
const marked = pathExists(idx) && readText(idx).includes(DEPS_GENERATED_MARKER);
|
|
363
|
-
if (!marked) {
|
|
364
|
-
throw usage(`--deps: ${depsDir} exists but its INDEX.md does not carry the "${DEPS_GENERATED_MARKER}" marker; ` +
|
|
365
|
-
'it may be hand-authored — move or delete it manually before vendoring dependency docs there');
|
|
366
|
-
}
|
|
367
|
-
rmSync(depsDir, { recursive: true, force: true });
|
|
368
|
-
}
|
|
369
|
-
for (const [targetRel, entry] of planned) {
|
|
370
|
-
const target = join(depsDir, ...targetRel.split('/'));
|
|
371
|
-
if (entry.kind === 'skill') {
|
|
372
|
-
const fm = {
|
|
373
|
-
kind: 'knowledge',
|
|
374
|
-
'when-and-why-to-read': routeFromDescription(entry.description, 'knowledge'),
|
|
375
|
-
'short-form': entry.description !== ''
|
|
376
|
-
? condenseDescription(entry.description)
|
|
377
|
-
: `Vendored agent doc shipped by ${entry.pkg}.`,
|
|
378
|
-
surfaces: [{ on: 'boot', at: 'name' }],
|
|
379
|
-
'source-package': `${entry.pkg}@${entry.version}`,
|
|
380
|
-
...passthroughFm(entry.fm),
|
|
381
|
-
};
|
|
382
|
-
writeText(target, serializeMemoryDoc(fm, entry.body));
|
|
383
|
-
}
|
|
384
|
-
else if (entry.kind === 'sidecar-md') {
|
|
385
|
-
let sourceFm = {};
|
|
386
|
-
let body;
|
|
387
|
-
try {
|
|
388
|
-
const parsed = parseFrontmatterGeneric(readText(entry.sourceAbs));
|
|
389
|
-
sourceFm = parsed.data ?? {};
|
|
390
|
-
body = parsed.body;
|
|
391
|
-
}
|
|
392
|
-
catch {
|
|
393
|
-
body = readText(entry.sourceAbs);
|
|
394
|
-
}
|
|
395
|
-
const parentBundle = bundleDirs.find((d) => targetRel.startsWith(`${d}/`));
|
|
396
|
-
const parentName = parentBundle ? `${depsName}/${parentBundle}` : `a ${depsName} document`;
|
|
397
|
-
const fm = {
|
|
398
|
-
kind: 'knowledge',
|
|
399
|
-
'when-and-why-to-read': `When ${parentName} links to this file, this knowledge should be read because it carries the linked supporting reference.`,
|
|
400
|
-
'short-form': firstHeading(body) ?? `Supporting reference vendored from ${entry.pkg}.`,
|
|
401
|
-
surfaces: [{ on: 'boot', at: 'name' }],
|
|
402
|
-
'source-package': `${entry.pkg}@${entry.version}`,
|
|
403
|
-
...passthroughFm(sourceFm),
|
|
404
|
-
};
|
|
405
|
-
writeText(target, serializeMemoryDoc(fm, body));
|
|
406
|
-
}
|
|
407
|
-
else {
|
|
408
|
-
mkdirSync(dirname(target), { recursive: true });
|
|
409
|
-
copyFileSync(entry.sourceAbs, target);
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
// The generated catalog INDEX: boot preview + full per-package map.
|
|
413
|
-
const libNames = [...new Set(skills.map(([, skill]) => skill.pkg))];
|
|
414
|
-
const shownLibs = libNames.slice(0, 6).join(', ') + (libNames.length > 6 ? ', …' : '');
|
|
415
|
-
const byPackage = new Map();
|
|
416
|
-
for (const [, skill] of skills) {
|
|
417
|
-
const key = `${skill.pkg}@${skill.version}`;
|
|
418
|
-
const bucket = byPackage.get(key) ?? { version: skill.version, lines: [] };
|
|
419
|
-
const desc = skill.description !== '' ? ` — ${condenseDescription(skill.description, 180)}` : '';
|
|
420
|
-
bucket.lines.push(`- \`${depsName}/${skill.bundleRel}\`${desc}`);
|
|
421
|
-
byPackage.set(key, bucket);
|
|
422
|
-
}
|
|
423
|
-
const sections = [...byPackage.entries()]
|
|
424
|
-
.map(([key, { lines }]) => `## ${key}\n\n${lines.sort().join('\n')}`)
|
|
425
|
-
.join('\n\n');
|
|
426
|
-
const emptyCatalog = skills.length === 0;
|
|
427
|
-
const indexFm = {
|
|
428
|
-
kind: 'knowledge',
|
|
429
|
-
'when-and-why-to-read': emptyCatalog
|
|
430
|
-
? 'When deciding whether dependency-shipped agent docs are available in this project, this catalog should be read because no dependency guides are currently vendored.'
|
|
431
|
-
: `When writing code against this project's dependencies (${shownLibs}), this catalog should be read ` +
|
|
432
|
-
'because those packages ship their own authoritative agent guides, vendored below and readable with ' +
|
|
433
|
-
`\`crtr memory read ${depsName}/<name>\`.`,
|
|
434
|
-
'short-form': emptyCatalog
|
|
435
|
-
? 'No dependency-shipped agent docs are currently vendored.'
|
|
436
|
-
: "Generated catalog of the agent docs shipped inside this project's npm dependencies.",
|
|
437
|
-
surfaces: [{ on: 'boot', at: 'preview' }],
|
|
438
|
-
'generated-by': DEPS_GENERATED_MARKER,
|
|
439
|
-
};
|
|
440
|
-
const indexBody = emptyCatalog
|
|
441
|
-
? '# Dependency-shipped agent docs (generated)\n\nNo dependency agent docs are currently vendored. `crtr sys sync deps` found no included Agent Skill bundles.\n'
|
|
442
|
-
: '# Dependency-shipped agent docs (generated)\n\n' +
|
|
443
|
-
'Generated by `crtr sys sync deps` from the Agent Skill bundles inside this project\'s ' +
|
|
444
|
-
'node_modules. Do not hand-edit: the whole `deps/` directory is wiped and regenerated on every run — ' +
|
|
445
|
-
`re-run after dependencies change. Read any entry with \`crtr memory read ${depsName}/<name>\`.\n\n` +
|
|
446
|
-
sections;
|
|
447
|
-
writeText(join(depsDir, 'INDEX.md'), serializeMemoryDoc(indexFm, indexBody));
|
|
448
|
-
// Derived state never enters git: the dir ignores itself.
|
|
449
|
-
writeText(join(depsDir, '.gitignore'), '*\n');
|
|
450
|
-
return rows;
|
|
451
|
-
}
|
|
452
|
-
// The `sys sync deps` leaf.
|
|
453
|
-
function renderDepsSummary(rows) {
|
|
454
|
-
const imported = rows.filter((r) => r.status === 'imported').length;
|
|
455
|
-
const wouldImport = rows.filter((r) => r.status === 'would-import').length;
|
|
456
|
-
const skipped = rows.filter((r) => r.status === 'skipped').length;
|
|
457
|
-
const excluded = rows.filter((r) => r.status === 'excluded').length;
|
|
458
|
-
const header = wouldImport > 0
|
|
459
|
-
? `crtr sys sync deps — dry run: ${wouldImport} would import, ${skipped} skipped, ${excluded} excluded`
|
|
460
|
-
: `crtr sys sync deps — ${imported} imported, ${skipped} skipped, ${excluded} excluded`;
|
|
461
|
-
const tableRows = rows.map((r) => {
|
|
462
|
-
const reason = r.reason ? ` (${r.reason})` : '';
|
|
463
|
-
return `| ${r.status} | ${r.scope}/${r.name || '—'} | ${r.target} | ${r.source}${reason} |`;
|
|
464
|
-
});
|
|
465
|
-
const body = tableRows.length === 0
|
|
466
|
-
? ['No sync candidates.']
|
|
467
|
-
: ['| status | memory doc | target | source |', '| --- | --- | --- | --- |', ...tableRows];
|
|
468
|
-
return [header, '', ...body].join('\n');
|
|
469
|
-
}
|
|
470
|
-
export const sysSyncDepsLeaf = defineLeaf({
|
|
471
|
-
name: 'deps',
|
|
472
|
-
description: 'vendor Agent Skill bundles shipped inside npm dependencies as derived crouter memory docs',
|
|
473
|
-
whenToUse: "vendoring Agent Skill bundles shipped inside a project's installed npm dependencies (node_modules/<pkg>/skills/**/SKILL.md) into that project's own .crouter/memory/deps/ as derived, regenerated-per-run memory docs, so agents get first-party dependency guidance without touching node_modules directly.",
|
|
474
|
-
help: {
|
|
475
|
-
name: 'sys sync deps',
|
|
476
|
-
summary: 'vendor npm-dependency Agent Skill bundles into <project>/.crouter/memory/deps/ (wholly derived, regenerated every run)',
|
|
477
|
-
params: [
|
|
478
|
-
{ kind: 'flag', name: 'source', type: 'string', required: false, constraint: 'The project directory whose dependencies to vendor. Default: the nearest ancestor of cwd with a package.json. node_modules must already be installed there, and its repository-root `.crouter/memory/INDEX.md` must declare a `namespace:`.' },
|
|
479
|
-
{ kind: 'flag', name: 'dry-run', type: 'bool', required: false, constraint: 'Report what would be vendored without writing anything.' },
|
|
480
|
-
],
|
|
481
|
-
output: [
|
|
482
|
-
{ name: 'results', type: 'object[]', required: true, constraint: 'Each: {source,target,name,scope,status,reason?}; status is one of imported, would-import, skipped, excluded. `name` is the full canonical name the vendored doc answers at (`<namespace>/deps/<bundle>`), except on an excluded row, which names the `<package>@<version>:<skill>` selector. An excluded row is a dependency bundle rejected before its files enter the vendoring planner.' },
|
|
483
|
-
],
|
|
484
|
-
outputKind: 'object',
|
|
485
|
-
effects: [
|
|
486
|
-
"Wipes and regenerates <project>/.crouter/memory/deps/ from installed dependency skills, except bundles selected by exact {package,version,skill} entries in package.json crtr.sync.deps.exclude. Each included SKILL.md becomes a system-name/file-none deps/<bundle>/INDEX.md answering at <namespace>/deps/<bundle> (relative sidecar links keep resolving), Markdown sidecar docs are vendored alongside at the same rungs, other sidecar assets are copied verbatim, and a system-preview/file-none deps/INDEX.md catalog answering at <namespace>/deps plus a self-ignoring .gitignore are written. Excluded bundles and their sidecars do not enter the catalog.",
|
|
487
|
-
'Refuses a project store whose repository root declares no namespace, naming `crtr sys migrate --dir <repositoryRoot>` as the remedy; it never declares one itself.',
|
|
488
|
-
'With --dry-run: read-only; writes nothing.',
|
|
489
|
-
],
|
|
490
|
-
},
|
|
491
|
-
run: async (input) => {
|
|
492
|
-
const sourceArg = input['source'];
|
|
493
|
-
const dryRun = input['dryRun'] ?? false;
|
|
494
|
-
const results = runDepsSync({ sourceArg, dryRun });
|
|
495
|
-
return { results };
|
|
496
|
-
},
|
|
497
|
-
render: (result) => renderDepsSummary(result.results),
|
|
498
|
-
});
|
|
1
|
+
var ce=Object.defineProperty;var u=(s,n)=>ce(s,"name",{value:n,configurable:!0});import{copyFileSync as de,mkdirSync as ae,readdirSync as le,rmSync as pe}from"node:fs";import{basename as ue,dirname as S,join as m,relative as P,resolve as H,sep as z}from"node:path";import{defineLeaf as me}from"../../core/command.js";import{usage as A}from"../../core/errors.js";import{parseFrontmatterGeneric as J}from"../../core/frontmatter.js";import{pathExists as N,readJsonIfExists as U,readText as I,walkFiles as Q,writeText as W}from"../../core/fs-utils.js";import{composeCanonicalName as ge}from"../../core/memory/identity.js";import{openProjectMemoryStore as fe}from"../../core/memory-resolver.js";import{requireMountedStore as he,serializeMemoryDoc as C}from"../memory/shared.js";import{routeFromDescription as ke,scalarString as ye}from"./sync-shared.js";import{isRecord as L}from"../../shared/predicates.js";const T="crtr sys sync deps";function y(s){throw A(`--deps: invalid package.json crtr.sync.deps.exclude: ${s}`)}u(y,"invalidDepsConfig");function be(s){const n=U(m(s,"package.json"));L(n)||y("package.json must contain an object");const o=n.crtr;if(o===void 0)return[];L(o)||y("crtr must be an object");const a=o.sync;if(a===void 0)return[];L(a)||y("crtr.sync must be an object");const r=a.deps;if(r===void 0)return[];L(r)||y("crtr.sync.deps must be an object");const l=r.exclude;if(l===void 0)return[];Array.isArray(l)||y("exclude must be an array of {package, version, skill} selectors");const g=new Set;return l.map(($,i)=>{L($)||y(`exclude[${i}] must be an object with exactly package, version, and skill`),Object.keys($).sort().join(",")!=="package,skill,version"&&y(`exclude[${i}] must contain exactly package, version, and skill`);const f=$.package,x=$.version,h=$.skill;(typeof f!="string"||!$e.test(f))&&y(`exclude[${i}].package must be one exact npm package name`),(typeof x!="string"||!we.test(x))&&y(`exclude[${i}].version must be one exact installed semver version`),(typeof h!="string"||h===""||h!=="."&&(h.startsWith("/")||h.split("/").some(R=>R===""||R==="."||R==="..")||/[\\*?[\]{}]/.test(h)))&&y(`exclude[${i}].skill must be one exact POSIX path relative to the package skills/ directory (use . for a root SKILL.md)`);const w={package:f,version:x,skill:h},D=`${f}\0${x}\0${h}`;return g.has(D)&&y(`exclude[${i}] duplicates ${f}@${x} skill ${h}`),g.add(D),w})}u(be,"readDepsExclusions");const $e=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,Y="(?:0|[1-9]\\d*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)",we=new RegExp(`^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-${Y}(?:\\.${Y})*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$`);function _(s,n,o){return`${s}\0${n}\0${o}`}u(_,"exclusionKey");function ve(s,n,o){return s.has(_(n.pkg,n.version,o))}u(ve,"isExcluded");function je(s){if(s!==void 0)return H(s);let n=H(process.cwd());for(;;){if(N(m(n,"package.json")))return n;const o=S(n);if(o===n)throw A("--deps: no package.json found from cwd upward; run inside a Node project or pass --source <project-dir>");n=o}}u(je,"depsProjectDir");function xe(s){const n=[];for(const a of ee(s))if(!a.startsWith("."))if(a.startsWith("@"))for(const r of ee(m(s,a)))n.push(m(s,a,r));else n.push(m(s,a));const o=[];for(const a of n.sort()){const r=m(a,"skills");if(!N(r))continue;const l=U(m(a,"package.json"));o.push({pkg:l?.name??P(s,a).split(z).join("/"),version:l?.version??"",skillsRoot:r})}return o}u(xe,"skillsPackages");function ee(s){try{return le(s)}catch{return[]}}u(ee,"listDirNames");function Re(s,n){return n.find(o=>s===o||s.startsWith(`${o}${z}`))}u(Re,"owningBundle");function se(s,n=220){const o=s.replace(/\s+/g," ").trim(),a=o.split(/(?<=[.!?])\s+/)[0]??o,r=a.length>=30?a:o;if(r.length<=n)return r;const l=r.slice(0,n),g=l.lastIndexOf(" ");return`${l.slice(0,g>80?g:n).trimEnd()}\u2026`}u(se,"condenseDescription");const Ee=["name","description","type","keywords","kind","when-and-why-to-read","short-form","unlisted","surfaces","gate","rationale"];function ne(s){const n={...s};for(const o of Ee)delete n[o];return n}u(ne,"passthroughFm");function Se(s){const n=s.match(/^#{1,6}\s+(.+)$/m);return n?n[1].trim():void 0}u(Se,"firstHeading");function De(s){const n=je(s.sourceArg),o=m(n,"node_modules");if(!N(o))throw A(`sys sync deps: ${o} does not exist; install dependencies first (npm ci / npm install), then re-run`);const a=he(fe(n)),r=m(a.storeRoot,"deps"),l=ge(a.namespace,"deps"),g=be(n),$=new Set(g.map(e=>_(e.package,e.version,e.skill))),i=new Map(g.map(e=>[_(e.package,e.version,e.skill),0])),j=new Map,f=[],x=xe(o),h=[];for(const e of x){const t=[],c=new Set;for(const d of Q(e.skillsRoot,p=>p==="SKILL.md",p=>p==="node_modules"||p===".git")){const p=S(d);t.push(p);const k=S(P(e.skillsRoot,d).split(z).join("/"));if(!ve($,e,k))continue;const v=_(e.pkg,e.version,k);i.set(v,(i.get(v)??0)+1),c.add(p),f.push({source:d,target:"\u2014",name:`${e.pkg}@${e.version}:${k}`,scope:"project",status:"excluded",reason:"matched package.json crtr.sync.deps.exclude"})}h.push({...e,bundleRoots:t.sort((d,p)=>p.length-d.length),excludedBundleRoots:c})}for(const e of g){const t=_(e.package,e.version,e.skill),c=i.get(t);if(c!==1)throw A(`--deps: package.json crtr.sync.deps.exclude selector ${e.package}@${e.version}:${e.skill} ${c===0?"does not match an installed dependency skill bundle":`matches ${c} installed dependency skill bundles`}; update or remove the selector before syncing`)}for(const e of h){const t=e.bundleRoots??[],c=e.excludedBundleRoots??new Set;for(const d of Q(e.skillsRoot,()=>!0,p=>p==="node_modules"||p===".git")){const p=Re(d,t);if(p===void 0||c.has(p))continue;const k=P(e.skillsRoot,d).split(z).join("/");let v,b;if(ue(d)==="SKILL.md"){const Z=S(k),q=Z==="."?e.pkg.split("/").pop()??e.pkg:Z;b=`${q}/INDEX.md`;let X={},K="";try{const V=J(I(d));X=V.data??{},K=V.body}catch{K=I(d)}v={kind:"skill",sourceAbs:d,pkg:e.pkg,version:e.version,bundleRel:q,fm:X,body:K,description:ye(X.description)??""}}else k.toLowerCase().endsWith(".md")?(b=k,v={kind:"sidecar-md",sourceAbs:d,pkg:e.pkg,version:e.version}):(b=k,v={kind:"asset",sourceAbs:d,pkg:e.pkg});if(b==="INDEX.md")continue;const E=j.get(b);if(E){v.kind==="skill"&&f.push({source:d,target:m(r,...b.split("/")),name:`${l}/${S(b)}`,scope:"project",status:"skipped",reason:`collides with same-named bundle from ${E.pkg}`});continue}j.set(b,v)}}const w=[...j.entries()].filter(e=>e[1].kind==="skill"),D=w.map(([,e])=>e.bundleRel).sort((e,t)=>t.length-e.length),R=new Map;for(const[e,t]of j){if(t.kind==="skill")continue;const c=D.find(d=>e.startsWith(`${d}/`));c&&R.set(c,(R.get(c)??0)+1)}const B=new Set(w.map(([,e])=>`${e.pkg}@${e.version}`)),G=s.dryRun?"would-import":"imported";for(const[e,t]of w){const c=R.get(t.bundleRel)??0;f.push({source:t.sourceAbs,target:m(r,...e.split("/")),name:`${l}/${t.bundleRel}`,scope:"project",status:G,...c>0?{reason:`+${c} sidecar file${c===1?"":"s"}`}:{}})}if(f.push({source:o,target:m(r,"INDEX.md"),name:l,scope:"project",status:G,reason:`generated catalog of ${w.length} docs from ${B.size} package${B.size===1?"":"s"}`}),s.dryRun)return f;if(N(r)){const e=m(r,"INDEX.md");if(!(N(e)&&I(e).includes(T)))throw A(`--deps: ${r} exists but its INDEX.md does not carry the "${T}" marker; it may be hand-authored \u2014 move or delete it manually before vendoring dependency docs there`);pe(r,{recursive:!0,force:!0})}for(const[e,t]of j){const c=m(r,...e.split("/"));if(t.kind==="skill"){const d={kind:"knowledge","when-and-why-to-read":ke(t.description,"knowledge"),"short-form":t.description!==""?se(t.description):`Vendored agent doc shipped by ${t.pkg}.`,surfaces:[{on:"boot",at:"name"}],"source-package":`${t.pkg}@${t.version}`,...ne(t.fm)};W(c,C(d,t.body))}else if(t.kind==="sidecar-md"){let d={},p;try{const E=J(I(t.sourceAbs));d=E.data??{},p=E.body}catch{p=I(t.sourceAbs)}const k=D.find(E=>e.startsWith(`${E}/`)),b={kind:"knowledge","when-and-why-to-read":`When ${k?`${l}/${k}`:`a ${l} document`} links to this file, this knowledge should be read because it carries the linked supporting reference.`,"short-form":Se(p)??`Supporting reference vendored from ${t.pkg}.`,surfaces:[{on:"boot",at:"name"}],"source-package":`${t.pkg}@${t.version}`,...ne(d)};W(c,C(b,p))}else ae(S(c),{recursive:!0}),de(t.sourceAbs,c)}const O=[...new Set(w.map(([,e])=>e.pkg))],te=O.slice(0,6).join(", ")+(O.length>6?", \u2026":""),F=new Map;for(const[,e]of w){const t=`${e.pkg}@${e.version}`,c=F.get(t)??{version:e.version,lines:[]},d=e.description!==""?` \u2014 ${se(e.description,180)}`:"";c.lines.push(`- \`${l}/${e.bundleRel}\`${d}`),F.set(t,c)}const oe=[...F.entries()].map(([e,{lines:t}])=>`## ${e}
|
|
2
|
+
|
|
3
|
+
${t.sort().join(`
|
|
4
|
+
`)}`).join(`
|
|
5
|
+
|
|
6
|
+
`),M=w.length===0,re={kind:"knowledge","when-and-why-to-read":M?"When deciding whether dependency-shipped agent docs are available in this project, this catalog should be read because no dependency guides are currently vendored.":`When writing code against this project's dependencies (${te}), this catalog should be read because those packages ship their own authoritative agent guides, vendored below and readable with \`crtr memory read ${l}/<name>\`.`,"short-form":M?"No dependency-shipped agent docs are currently vendored.":"Generated catalog of the agent docs shipped inside this project's npm dependencies.",surfaces:[{on:"boot",at:"preview"}],"generated-by":T},ie=M?`# Dependency-shipped agent docs (generated)
|
|
7
|
+
|
|
8
|
+
No dependency agent docs are currently vendored. \`crtr sys sync deps\` found no included Agent Skill bundles.
|
|
9
|
+
`:`# Dependency-shipped agent docs (generated)
|
|
10
|
+
|
|
11
|
+
Generated by \`crtr sys sync deps\` from the Agent Skill bundles inside this project's node_modules. Do not hand-edit: the whole \`deps/\` directory is wiped and regenerated on every run \u2014 re-run after dependencies change. Read any entry with \`crtr memory read ${l}/<name>\`.
|
|
12
|
+
|
|
13
|
+
`+oe;return W(m(r,"INDEX.md"),C(re,ie)),W(m(r,".gitignore"),`*
|
|
14
|
+
`),f}u(De,"runDepsSync");function Ae(s){const n=s.filter(i=>i.status==="imported").length,o=s.filter(i=>i.status==="would-import").length,a=s.filter(i=>i.status==="skipped").length,r=s.filter(i=>i.status==="excluded").length,l=o>0?`crtr sys sync deps \u2014 dry run: ${o} would import, ${a} skipped, ${r} excluded`:`crtr sys sync deps \u2014 ${n} imported, ${a} skipped, ${r} excluded`,g=s.map(i=>{const j=i.reason?` (${i.reason})`:"";return`| ${i.status} | ${i.scope}/${i.name||"\u2014"} | ${i.target} | ${i.source}${j} |`}),$=g.length===0?["No sync candidates."]:["| status | memory doc | target | source |","| --- | --- | --- | --- |",...g];return[l,"",...$].join(`
|
|
15
|
+
`)}u(Ae,"renderDepsSummary");const Te=me({name:"deps",description:"vendor Agent Skill bundles shipped inside npm dependencies as derived crouter memory docs",whenToUse:"vendoring Agent Skill bundles shipped inside a project's installed npm dependencies (node_modules/<pkg>/skills/**/SKILL.md) into that project's own .crouter/memory/deps/ as derived, regenerated-per-run memory docs, so agents get first-party dependency guidance without touching node_modules directly.",help:{name:"sys sync deps",summary:"vendor npm-dependency Agent Skill bundles into <project>/.crouter/memory/deps/ (wholly derived, regenerated every run)",params:[{kind:"flag",name:"source",type:"string",required:!1,constraint:"The project directory whose dependencies to vendor. Default: the nearest ancestor of cwd with a package.json. node_modules must already be installed there, and its repository-root `.crouter/memory/INDEX.md` must declare a `namespace:`."},{kind:"flag",name:"dry-run",type:"bool",required:!1,constraint:"Report what would be vendored without writing anything."}],output:[{name:"results",type:"object[]",required:!0,constraint:"Each: {source,target,name,scope,status,reason?}; status is one of imported, would-import, skipped, excluded. `name` is the full canonical name the vendored doc answers at (`<namespace>/deps/<bundle>`), except on an excluded row, which names the `<package>@<version>:<skill>` selector. An excluded row is a dependency bundle rejected before its files enter the vendoring planner."}],outputKind:"object",effects:["Wipes and regenerates <project>/.crouter/memory/deps/ from installed dependency skills, except bundles selected by exact {package,version,skill} entries in package.json crtr.sync.deps.exclude. Each included SKILL.md becomes a system-name/file-none deps/<bundle>/INDEX.md answering at <namespace>/deps/<bundle> (relative sidecar links keep resolving), Markdown sidecar docs are vendored alongside at the same rungs, other sidecar assets are copied verbatim, and a system-preview/file-none deps/INDEX.md catalog answering at <namespace>/deps plus a self-ignoring .gitignore are written. Excluded bundles and their sidecars do not enter the catalog.","Refuses a project store whose repository root declares no namespace, naming `crtr sys migrate --dir <repositoryRoot>` as the remedy; it never declares one itself.","With --dry-run: read-only; writes nothing."]},run:u(async s=>{const n=s.source,o=s.dryRun??!1;return{results:De({sourceArg:n,dryRun:o})}},"run"),render:u(s=>Ae(s.results),"render")});export{T as DEPS_GENERATED_MARKER,De as runDepsSync,Te as sysSyncDepsLeaf};
|