@north-light/crouter 0.3.317 → 0.3.319
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -3
- package/dist/api/client.d.ts +1 -1
- package/dist/api/client.js +2 -912
- package/dist/api/dto/attach.js +0 -13
- package/dist/api/dto/bash-jobs.js +1 -9
- package/dist/api/dto/broker-ops.js +0 -6
- package/dist/api/dto/broker.js +0 -20
- package/dist/api/dto/canvas.js +0 -2
- package/dist/api/dto/chat-inventory.js +0 -11
- package/dist/api/dto/common.js +1 -15
- package/dist/api/dto/config.js +0 -3
- package/dist/api/dto/crons.js +1 -10
- package/dist/api/dto/files.js +0 -7
- package/dist/api/dto/focus.js +0 -10
- package/dist/api/dto/health.js +0 -2
- package/dist/api/dto/human-requests.js +0 -4
- package/dist/api/dto/human.js +0 -4
- package/dist/api/dto/inbox.js +0 -4
- package/dist/api/dto/lifecycle.js +0 -3
- package/dist/api/dto/mail.js +0 -1
- package/dist/api/dto/memory.js +0 -6
- package/dist/api/dto/messages.js +0 -2
- package/dist/api/dto/model-config.js +0 -1
- package/dist/api/dto/modelauth.js +0 -4
- package/dist/api/dto/node-outcomes.js +0 -2
- package/dist/api/dto/nodes.js +0 -3
- package/dist/api/dto/profiles.js +1 -4
- package/dist/api/dto/recovery.js +0 -1
- package/dist/api/dto/reports.js +0 -2
- package/dist/api/dto/review-comments.js +0 -5
- package/dist/api/dto/reviews.js +0 -5
- package/dist/api/dto/subscriptions.js +0 -2
- package/dist/api/dto/worktree.js +0 -6
- package/dist/api/errors.js +1 -40
- package/dist/api/index.js +1 -33
- package/dist/api/plugin-manifest-schema.js +0 -23
- package/dist/api/routes.js +1 -147
- package/dist/build-root.js +1 -198
- package/dist/cli.js +3 -99
- package/dist/clients/attach/ansi-cells.js +1 -137
- package/dist/clients/attach/chrome/bash-jobs.js +1 -31
- package/dist/clients/attach/chrome/canvas-panels.js +1 -194
- package/dist/clients/attach/chrome/completion-bell.js +1 -89
- package/dist/clients/attach/chrome/cron-wait.js +1 -34
- package/dist/clients/attach/chrome/git-info.js +2 -44
- package/dist/clients/attach/chrome/header.js +1 -30
- package/dist/clients/attach/chrome/inbox-strip.js +1 -199
- package/dist/clients/attach/chrome/recap.js +1 -19
- package/dist/clients/attach/chrome/review-wait.js +1 -22
- package/dist/clients/attach/chrome/roster.js +4 -275
- package/dist/clients/attach/chrome/status-line.js +1 -117
- package/dist/clients/attach/chrome/ticket-panel.js +1 -280
- package/dist/clients/attach/chrome/widgets.js +1 -51
- package/dist/clients/attach/command.js +1 -107
- package/dist/clients/attach/config.js +1 -274
- package/dist/clients/attach/input/capabilities.js +1 -104
- package/dist/clients/attach/input/clipboard-image.js +3 -220
- package/dist/clients/attach/input/completion-frecency.js +1 -141
- package/dist/clients/attach/input/controller.js +7 -377
- package/dist/clients/attach/input/overlay-owner.js +1 -199
- package/dist/clients/attach/input/ref-autocomplete.js +2 -176
- package/dist/clients/attach/input/titled-editor.js +4 -859
- package/dist/clients/attach/overlays/auth.js +2 -271
- package/dist/clients/attach/overlays/dialogs.js +2 -102
- package/dist/clients/attach/overlays/file-review.js +2 -128
- package/dist/clients/attach/overlays/graph.js +1 -661
- package/dist/clients/attach/overlays/help.js +1 -211
- package/dist/clients/attach/overlays/mcp.js +1 -302
- package/dist/clients/attach/overlays/pickers.js +1 -163
- package/dist/clients/attach/render/activity-slot.js +1 -13
- package/dist/clients/attach/render/assistant-message.js +1 -56
- package/dist/clients/attach/render/card-presentation.js +5 -218
- package/dist/clients/attach/render/chat-view.js +5 -1708
- package/dist/clients/attach/render/condensed-history.js +1 -60
- package/dist/clients/attach/render/context-message.js +1 -63
- package/dist/clients/attach/render/crtr-output.js +17 -905
- package/dist/clients/attach/render/diagram.js +7 -111
- package/dist/clients/attach/render/edit-diff.js +5 -304
- package/dist/clients/attach/render/glyph-codepoints.js +1 -42
- package/dist/clients/attach/render/group-activity.js +2 -263
- package/dist/clients/attach/render/group-recap.js +1 -152
- package/dist/clients/attach/render/markdown-source.js +5 -266
- package/dist/clients/attach/render/measured-container.js +1 -322
- package/dist/clients/attach/render/page-block.js +1 -183
- package/dist/clients/attach/render/scroll-animation.js +1 -80
- package/dist/clients/attach/render/tool-calls.js +3 -361
- package/dist/clients/attach/render/transcript-copy.js +2 -81
- package/dist/clients/attach/render/transcript-search.js +1 -152
- package/dist/clients/attach/render/viewport.js +1 -184
- package/dist/clients/attach/session/banner.js +1 -29
- package/dist/clients/attach/session/bindings.js +1 -71
- package/dist/clients/attach/session/chrome-refresh.js +1 -94
- package/dist/clients/attach/session/connection.js +1 -186
- package/dist/clients/attach/session/context.js +0 -16
- package/dist/clients/attach/session/editor-frame.js +1 -142
- package/dist/clients/attach/session/editor-inventory.js +6 -160
- package/dist/clients/attach/session/file-links.js +1 -68
- package/dist/clients/attach/session/focus-events.js +1 -12
- package/dist/clients/attach/session/frame.js +1 -214
- package/dist/clients/attach/session/frames.js +1 -188
- package/dist/clients/attach/session/identity.js +1 -26
- package/dist/clients/attach/session/input-wiring.js +1 -140
- package/dist/clients/attach/session/invariant.js +1 -15
- package/dist/clients/attach/session/keys.js +1 -77
- package/dist/clients/attach/session/layout.js +1 -59
- package/dist/clients/attach/session/mouse.js +1 -78
- package/dist/clients/attach/session/pane-focus.js +1 -42
- package/dist/clients/attach/session/pane-tag.js +1 -112
- package/dist/clients/attach/session/pi-assets.js +1 -24
- package/dist/clients/attach/session/pi-oauth-flows.js +1 -21
- package/dist/clients/attach/session/profile-files.js +1 -228
- package/dist/clients/attach/session/reconnect.js +1 -175
- package/dist/clients/attach/session/selection.js +3 -108
- package/dist/clients/attach/session/state-sync.js +1 -67
- package/dist/clients/attach/session/surface-frame.js +1 -73
- package/dist/clients/attach/session/surface-host.js +1 -255
- package/dist/clients/attach/session/teardown.js +5 -94
- package/dist/clients/attach/session/transcript-search.js +3 -151
- package/dist/clients/attach/session/whip-achievements.js +2 -145
- package/dist/clients/attach/session/whip.js +1 -362
- package/dist/clients/attach/slash/dispatch.js +1 -706
- package/dist/clients/attach/slash/prompt-preview.js +1 -121
- package/dist/clients/attach/viewer.js +1 -1
- package/dist/clients/conversation/projection.js +1 -324
- package/dist/clients/conversation/submit.js +1 -51
- package/dist/clients/inbox/controller.js +1 -701
- package/dist/clients/inbox/dto-adapt.js +1 -93
- package/dist/clients/inbox/layout.js +1 -9
- package/dist/clients/inbox/page-adapter.js +1 -55
- package/dist/clients/inbox/resolve.js +1 -35
- package/dist/clients/inbox/review/anchors.js +1 -89
- package/dist/clients/inbox/review/comments-client.js +1 -98
- package/dist/clients/inbox/review/companion-pane.js +1 -82
- package/dist/clients/inbox/review/document-surface.js +2 -1188
- package/dist/clients/inbox/review/frame.js +1 -216
- package/dist/clients/inbox/review/keys.js +1 -123
- package/dist/clients/inbox/review/launch.js +1 -151
- package/dist/clients/inbox/review/live-source.js +1 -160
- package/dist/clients/inbox/review/nvim.js +1 -44
- package/dist/clients/inbox/review/remap.js +1 -157
- package/dist/clients/inbox/review/review-client.js +1 -123
- package/dist/clients/inbox/review/roundtrip.js +3 -36
- package/dist/clients/inbox/review/state.js +4 -315
- package/dist/clients/inbox/review-adapter.js +1 -43
- package/dist/clients/inbox/surface.js +1 -152
- package/dist/clients/inbox/tui/ansi.js +3 -321
- package/dist/clients/inbox/tui/input.js +5 -392
- package/dist/clients/inbox/tui/keys.js +1 -104
- package/dist/clients/inbox/tui/page-body.js +1 -66
- package/dist/clients/inbox/tui/panel.js +1 -84
- package/dist/clients/inbox/tui/render.js +2 -368
- package/dist/clients/inbox/tui/slots.js +3 -134
- package/dist/clients/inbox/tui/types.js +0 -1
- package/dist/clients/inbox/tui.js +1 -86
- package/dist/clients/surfaces/host.js +0 -1
- package/dist/commands/api-client.js +4 -290
- package/dist/commands/attention.js +1 -215
- package/dist/commands/canvas-browse.js +1 -70
- package/dist/commands/canvas-config.js +2 -192
- package/dist/commands/canvas-history/grep.js +7 -85
- package/dist/commands/canvas-history/read.js +3 -50
- package/dist/commands/canvas-history/search.js +10 -99
- package/dist/commands/canvas-history/shared.js +1 -139
- package/dist/commands/canvas-history/stats.js +6 -68
- package/dist/commands/canvas-history.js +1 -32
- package/dist/commands/canvas-issue.js +14 -149
- package/dist/commands/canvas-prune.js +1 -108
- package/dist/commands/canvas-roster.js +1 -69
- package/dist/commands/canvas-snapshot.js +1 -34
- package/dist/commands/canvas-use.js +1 -61
- package/dist/commands/canvas.js +1 -49
- package/dist/commands/chord.js +1 -241
- package/dist/commands/cron.js +11 -534
- package/dist/commands/dashboard.js +1 -85
- package/dist/commands/human/components.js +3 -77
- package/dist/commands/human/feedback.js +1 -112
- package/dist/commands/human/prompts.js +1 -331
- package/dist/commands/human/queue.js +1 -191
- package/dist/commands/human/request.js +1 -266
- package/dist/commands/human/review.js +1 -288
- package/dist/commands/human/shared.js +1 -67
- package/dist/commands/human.js +4 -60
- package/dist/commands/memory/delete.js +1 -100
- package/dist/commands/memory/edit.js +21 -219
- package/dist/commands/memory/find.js +2 -244
- package/dist/commands/memory/history.js +5 -199
- package/dist/commands/memory/lint.js +1 -107
- package/dist/commands/memory/list.js +1 -142
- package/dist/commands/memory/move.js +1 -223
- package/dist/commands/memory/origin.js +1 -130
- package/dist/commands/memory/read.js +6 -232
- package/dist/commands/memory/shared.js +12 -802
- package/dist/commands/memory/write.js +13 -235
- package/dist/commands/memory.js +1 -30
- package/dist/commands/node/bash.js +5 -245
- package/dist/commands/node/create.js +3 -332
- package/dist/commands/node/inspect.js +12 -300
- package/dist/commands/node/lifecycle.js +2 -453
- package/dist/commands/node/message.js +1 -161
- package/dist/commands/node/outcome.js +4 -134
- package/dist/commands/node/pyramid.js +2 -79
- package/dist/commands/node/subscription.js +1 -78
- package/dist/commands/node/wait.js +7 -163
- package/dist/commands/node-context.js +2 -159
- package/dist/commands/node-inspect-artifacts.js +8 -109
- package/dist/commands/node-lifecycle-revive.js +1 -217
- package/dist/commands/node-snapshot.js +1 -37
- package/dist/commands/node-transcript.js +1 -62
- package/dist/commands/node-worktree.js +1 -138
- package/dist/commands/node.js +1 -29
- package/dist/commands/pkg/browse/actions.js +1 -198
- package/dist/commands/pkg/browse/catalog.js +1 -466
- package/dist/commands/pkg/browse/command-view.js +1 -191
- package/dist/commands/pkg/browse/detail-panel.js +1 -402
- package/dist/commands/pkg/browse/doc-view.js +1 -89
- package/dist/commands/pkg/browse/list-panel.js +2 -168
- package/dist/commands/pkg/browse/model.js +1 -36
- package/dist/commands/pkg/browse/shell.js +1 -640
- package/dist/commands/pkg/browse.js +1 -27
- package/dist/commands/pkg/market-inspect.js +1 -141
- package/dist/commands/pkg/market-manage.js +1 -327
- package/dist/commands/pkg/market.js +1 -14
- package/dist/commands/pkg/plugin-inspect.js +1 -168
- package/dist/commands/pkg/plugin-manage.js +17 -1109
- package/dist/commands/pkg/plugin.js +1 -14
- package/dist/commands/pkg/shared.js +1 -62
- package/dist/commands/pkg.js +1 -21
- package/dist/commands/profile/default.js +1 -139
- package/dist/commands/profile/delete.js +1 -66
- package/dist/commands/profile/env.js +3 -188
- package/dist/commands/profile/kind.js +2 -35
- package/dist/commands/profile/list.js +1 -43
- package/dist/commands/profile/meta.js +1 -67
- package/dist/commands/profile/new.js +1 -115
- package/dist/commands/profile/pause.js +1 -59
- package/dist/commands/profile/project.js +1 -113
- package/dist/commands/profile/rename.js +1 -38
- package/dist/commands/profile/show.js +1 -52
- package/dist/commands/profile.js +1 -35
- package/dist/commands/push.js +9 -265
- package/dist/commands/revive.js +10 -181
- package/dist/commands/surface/node/cycle.js +1 -83
- package/dist/commands/surface/node/focus.js +1 -81
- package/dist/commands/surface/node/id.js +1 -38
- package/dist/commands/surface/node/pin.js +1 -42
- package/dist/commands/surface/node/placement.js +1 -134
- package/dist/commands/surface-edit.js +1 -157
- package/dist/commands/surface-inbox.js +1 -98
- package/dist/commands/surface-inspect.js +1 -39
- package/dist/commands/surface-node.js +1 -19
- package/dist/commands/surface-reload.js +2 -134
- package/dist/commands/surface-tmux-spread.js +1 -214
- package/dist/commands/surface.js +1 -28
- package/dist/commands/sys/branch.js +1 -19
- package/dist/commands/sys/config.js +1 -353
- package/dist/commands/sys/context/admin/actions.js +2 -246
- package/dist/commands/sys/context/admin/detail-panel.js +1 -247
- package/dist/commands/sys/context/admin/docs-panel.js +1 -191
- package/dist/commands/sys/context/admin/list-view.js +1 -183
- package/dist/commands/sys/context/admin/model.js +1 -229
- package/dist/commands/sys/context/admin/rail-panel.js +1 -227
- package/dist/commands/sys/context/admin/read-view.js +2 -194
- package/dist/commands/sys/context/admin/shell.js +1 -910
- package/dist/commands/sys/context/admin.js +2 -126
- package/dist/commands/sys/context/doc.js +3 -197
- package/dist/commands/sys/context/prompt-review.js +11 -291
- package/dist/commands/sys/context/resolve.js +10 -489
- package/dist/commands/sys/context/sysprompt.js +5 -96
- package/dist/commands/sys/context.js +1 -20
- package/dist/commands/sys/daemon.js +1 -313
- package/dist/commands/sys/doctor.js +1 -617
- package/dist/commands/sys/feedback.js +7 -228
- package/dist/commands/sys/logs.js +3 -129
- package/dist/commands/sys/migrate.js +1 -94
- package/dist/commands/sys/panels/broker-limits-panel.js +2 -110
- package/dist/commands/sys/panels/dependencies-panel.js +1 -80
- package/dist/commands/sys/panels/keybindings-panel.js +1 -703
- package/dist/commands/sys/panels/models-panel.js +1 -1133
- package/dist/commands/sys/panels/plugins-panel.js +1 -80
- package/dist/commands/sys/panels/prefs-panel.js +1 -85
- package/dist/commands/sys/panels/profiles-panel.js +1 -601
- package/dist/commands/sys/panels/provider-panel.js +1 -538
- package/dist/commands/sys/settings-shell.js +1 -400
- package/dist/commands/sys/settings.js +1 -46
- package/dist/commands/sys/setup-core.js +6 -579
- package/dist/commands/sys/setup-settings-runner.js +1 -16
- package/dist/commands/sys/setup-wizard.js +1 -279
- package/dist/commands/sys/setup.js +1 -34
- package/dist/commands/sys/shared.js +1 -81
- package/dist/commands/sys/support/prepare.js +3 -239
- package/dist/commands/sys/support/submit.js +6 -524
- package/dist/commands/sys/support.js +1 -18
- package/dist/commands/sys/sync-deps.js +15 -498
- package/dist/commands/sys/sync-project-guidance.js +4 -481
- package/dist/commands/sys/sync-shared.js +1 -49
- package/dist/commands/sys/sync-skills.js +2 -311
- package/dist/commands/sys/sync.js +1 -18
- package/dist/commands/sys/update.js +1 -147
- package/dist/commands/sys/worktrees.js +5 -53
- package/dist/commands/sys.js +1 -18
- package/dist/core/activity-signal.js +2 -38
- package/dist/core/asset-root.js +1 -18
- package/dist/core/auth-file.js +2 -179
- package/dist/core/auth-interaction.js +3 -94
- package/dist/core/auto-update.js +4 -94
- package/dist/core/bash-guard.js +11 -393
- package/dist/core/bash-jobs.js +7 -411
- package/dist/core/bootstrap.js +2 -53
- package/dist/core/broker-client/client.js +1 -184
- package/dist/core/broker-client/index.js +1 -13
- package/dist/core/broker-client/transport-relay.js +1 -157
- package/dist/core/broker-client/transport-socket.js +1 -179
- package/dist/core/broker-client/transport.js +1 -26
- package/dist/core/canvas/attention.js +1 -47
- package/dist/core/canvas/boot-id.js +1 -26
- package/dist/core/canvas/boot.js +1 -186
- package/dist/core/canvas/browse/app.js +3 -919
- package/dist/core/canvas/browse/model.js +1 -477
- package/dist/core/canvas/browse/pins.js +1 -29
- package/dist/core/canvas/browse/render.js +3 -1055
- package/dist/core/canvas/canvas.js +15 -922
- package/dist/core/canvas/crons.js +11 -481
- package/dist/core/canvas/daemon-owner.js +2 -146
- package/dist/core/canvas/db.js +2 -100
- package/dist/core/canvas/deliveries.js +22 -283
- package/dist/core/canvas/delivery-contract.js +1 -8
- package/dist/core/canvas/executions.js +1 -68
- package/dist/core/canvas/extensions.js +1 -83
- package/dist/core/canvas/focuses.js +1 -77
- package/dist/core/canvas/history.js +24 -860
- package/dist/core/canvas/index.js +1 -15
- package/dist/core/canvas/install-id.js +1 -84
- package/dist/core/canvas/labels.js +1 -43
- package/dist/core/canvas/meta-file.js +1 -89
- package/dist/core/canvas/migrations.js +41 -1150
- package/dist/core/canvas/nav-model.js +1 -231
- package/dist/core/canvas/nav-render.js +1 -260
- package/dist/core/canvas/node-order.js +1 -37
- package/dist/core/canvas/node-recap.js +2 -67
- package/dist/core/canvas/node-sql-migration.js +2 -209
- package/dist/core/canvas/paths.js +1 -153
- package/dist/core/canvas/pid.js +4 -683
- package/dist/core/canvas/recovery.js +3 -565
- package/dist/core/canvas/remote-canvas-source.js +1 -288
- package/dist/core/canvas/remote-transport.js +1 -57
- package/dist/core/canvas/render-source.js +10 -635
- package/dist/core/canvas/sessions.js +1 -78
- package/dist/core/canvas/source.js +1 -47
- package/dist/core/canvas/status-glyph.js +1 -132
- package/dist/core/canvas/telemetry.js +1 -35
- package/dist/core/canvas/types.js +1 -6
- package/dist/core/canvas/waits.js +4 -68
- package/dist/core/canvas/worktrees.js +1 -93
- package/dist/core/clipboard-text.js +1 -57
- package/dist/core/command-hooks/artifact.js +1 -145
- package/dist/core/command-hooks/catalog.js +1 -38
- package/dist/core/command-hooks/compose.js +1 -99
- package/dist/core/command-hooks/discovery.js +1 -228
- package/dist/core/command-hooks/help.js +1 -18
- package/dist/core/command-hooks/index.js +1 -7
- package/dist/core/command-hooks/lifecycle-catalog.js +1 -9
- package/dist/core/command-hooks/lifecycle-create.js +1 -51
- package/dist/core/command-hooks/report.js +1 -28
- package/dist/core/command-hooks/schema.js +1 -157
- package/dist/core/command-hooks/transport/exec-invoke.js +1 -276
- package/dist/core/command-hooks/transport/exec-lifecycle.js +1 -211
- package/dist/core/command-manifests/manifest.js +1 -324
- package/dist/core/command-manifests/registry.js +1 -118
- package/dist/core/command-manifests/schema.js +1 -736
- package/dist/core/command-plugins/bundle.js +1 -261
- package/dist/core/command-plugins/compose.js +1 -65
- package/dist/core/command-plugins/discovery.js +1 -245
- package/dist/core/command-plugins/endpoint.js +1 -48
- package/dist/core/command-plugins/extensions.js +1 -166
- package/dist/core/command-plugins/help-addenda.js +1 -44
- package/dist/core/command-plugins/presence.js +1 -17
- package/dist/core/command-plugins/revalidate.js +2 -152
- package/dist/core/command-plugins/transport/exec-invoke.js +1 -215
- package/dist/core/command-plugins/transport/http-fetch.js +1 -68
- package/dist/core/command-plugins/transport/http-invoke.js +3 -546
- package/dist/core/command.js +10 -739
- package/dist/core/config.js +1 -1059
- package/dist/core/document-lines.js +3 -6
- package/dist/core/env-name.js +1 -9
- package/dist/core/errors.js +1 -52
- package/dist/core/events/emit.js +1 -17
- package/dist/core/events/envelope.js +1 -84
- package/dist/core/events/errors.js +1 -69
- package/dist/core/events/index.js +1 -4
- package/dist/core/events/operation-id.js +1 -24
- package/dist/core/events/read.js +1 -623
- package/dist/core/events/serialize.js +1 -199
- package/dist/core/events/source.js +1 -31
- package/dist/core/events/types.js +1 -11
- package/dist/core/exclusive-lock.js +1 -197
- package/dist/core/fault-classifier.js +1 -96
- package/dist/core/feed/feed.js +7 -202
- package/dist/core/feed/inbox-migrate.js +3 -135
- package/dist/core/feed/inbox.js +10 -122
- package/dist/core/feed/messages.js +6 -212
- package/dist/core/frontmatter.js +1 -35
- package/dist/core/fs-utils.js +3 -202
- package/dist/core/git.js +2 -103
- package/dist/core/help.js +9 -310
- package/dist/core/host-exports/builtins.js +9 -68
- package/dist/core/host-exports/export.js +3 -124
- package/dist/core/human/action-binding.js +1 -40
- package/dist/core/human/answer-text.js +5 -100
- package/dist/core/human/answer.js +1 -119
- package/dist/core/human/claim.js +3 -67
- package/dist/core/human/completion.js +1 -27
- package/dist/core/human/component-docs.js +78 -272
- package/dist/core/human/convention.js +2 -82
- package/dist/core/human/feedback-companion.js +1 -106
- package/dist/core/human/feedback.js +1 -88
- package/dist/core/human/page-authoring.js +1 -19
- package/dist/core/human/page-catalog.js +1 -172
- package/dist/core/human/page-errors.js +1 -7
- package/dist/core/human/page-eval.js +1 -125
- package/dist/core/human/page-html-markdown.js +8 -260
- package/dist/core/human/page-markdown.js +17 -295
- package/dist/core/human/page-schema.js +1 -373
- package/dist/core/human/page-synth.js +8 -27
- package/dist/core/human/page.js +1 -198
- package/dist/core/human/requests.js +15 -466
- package/dist/core/human/review-schema.js +1 -34
- package/dist/core/human/root.js +1 -11
- package/dist/core/human/scan.js +1 -69
- package/dist/core/human/summary.js +1 -5
- package/dist/core/human/tickets.js +1 -171
- package/dist/core/human/types.js +0 -1
- package/dist/core/human/visible-paths.js +1 -77
- package/dist/core/human-actions.js +1 -101
- package/dist/core/inspector/chrome.js +1 -14
- package/dist/core/inspector/contract.js +0 -1
- package/dist/core/inspector/core.js +2 -295
- package/dist/core/inspector/host.js +4 -538
- package/dist/core/inspector/model.js +2 -226
- package/dist/core/inspector/text.js +6 -45
- package/dist/core/inspector/transport.js +1 -36
- package/dist/core/inspector/tui.js +2 -295
- package/dist/core/installed-plugins.js +1 -78
- package/dist/core/io.js +7 -356
- package/dist/core/keybindings/attach-control.js +1 -42
- package/dist/core/keybindings/background-bash.js +1 -33
- package/dist/core/keybindings/catalog.js +1 -256
- package/dist/core/keybindings/inbox.js +1 -25
- package/dist/core/keybindings/index.js +1 -7
- package/dist/core/keybindings/match.js +1 -127
- package/dist/core/keybindings/persistence.js +1 -49
- package/dist/core/keybindings/resolve.js +1 -348
- package/dist/core/keybindings/types.js +0 -1
- package/dist/core/locked-file.js +1 -118
- package/dist/core/log.js +3 -27
- package/dist/core/manifest-recovery.js +1 -72
- package/dist/core/manifest-stale.js +1 -39
- package/dist/core/manifest.js +1 -20
- package/dist/core/memory/doc-link-grammar.js +2 -109
- package/dist/core/memory/extensions.js +1 -221
- package/dist/core/memory/history.js +6 -268
- package/dist/core/memory/identity.js +1 -181
- package/dist/core/memory/inline-ref-grammar.js +1 -98
- package/dist/core/memory/inline-ref-guidance.js +2 -35
- package/dist/core/memory/inline-ref-inventory.js +1 -59
- package/dist/core/memory/lint.js +2 -671
- package/dist/core/memory/project-namespace.js +2 -85
- package/dist/core/memory/repository-association.js +1 -129
- package/dist/core/memory/tree.js +1 -93
- package/dist/core/memory-resolver.js +2 -611
- package/dist/core/model-config.js +1 -107
- package/dist/core/model-routes.js +1 -201
- package/dist/core/nested-stores.js +2 -166
- package/dist/core/output.js +7 -99
- package/dist/core/pagination.js +1 -88
- package/dist/core/plugin-swap-lock.js +1 -31
- package/dist/core/pool-credential-store.js +1 -116
- package/dist/core/predicate.js +1 -191
- package/dist/core/preview-registry.js +2 -411
- package/dist/core/preview-result-path.js +1 -26
- package/dist/core/profiles/default-binding.js +1 -24
- package/dist/core/profiles/deletion-reservation.js +1 -42
- package/dist/core/profiles/env-store.js +2 -162
- package/dist/core/profiles/fuzzy-match.js +1 -92
- package/dist/core/profiles/manifest.js +1 -574
- package/dist/core/profiles/select.js +35 -741
- package/dist/core/profiles/state-block.js +3 -17
- package/dist/core/provider-error-recognition.js +1 -74
- package/dist/core/provider-failure.js +1 -86
- package/dist/core/provider-management.js +1 -22
- package/dist/core/remote-canvas-target.js +1 -30
- package/dist/core/render.js +18 -138
- package/dist/core/resolver.js +1 -111
- package/dist/core/review/birth.js +1 -52
- package/dist/core/review/comments.js +5 -279
- package/dist/core/review/companion.js +1 -215
- package/dist/core/review/document.js +2 -138
- package/dist/core/review/project.js +1 -36
- package/dist/core/review/realize.js +1 -71
- package/dist/core/review/remap.js +4 -141
- package/dist/core/review/signal.js +1 -12
- package/dist/core/review/stage.js +1 -184
- package/dist/core/review/store.js +1 -168
- package/dist/core/review/types.js +1 -23
- package/dist/core/runtime/advertised-command-invocation.js +1 -233
- package/dist/core/runtime/auth-reload.js +1 -67
- package/dist/core/runtime/banner.js +1 -51
- package/dist/core/runtime/bearings-render.js +18 -250
- package/dist/core/runtime/bearings.js +7 -194
- package/dist/core/runtime/bin-contributions.js +2 -186
- package/dist/core/runtime/boot-root.js +1 -107
- package/dist/core/runtime/branded-host.js +2 -264
- package/dist/core/runtime/broker/auth-reload.js +1 -157
- package/dist/core/runtime/broker/client-registry.js +1 -179
- package/dist/core/runtime/broker/daemon-ops.js +1 -88
- package/dist/core/runtime/broker/engine-drive.js +1 -354
- package/dist/core/runtime/broker/engine-routing.js +1 -211
- package/dist/core/runtime/broker/event-projection.js +1 -193
- package/dist/core/runtime/broker/extension-abort.js +1 -36
- package/dist/core/runtime/broker/fault-retry.js +1 -588
- package/dist/core/runtime/broker/frame-client.js +1 -132
- package/dist/core/runtime/broker/frame-dispatch.js +1 -183
- package/dist/core/runtime/broker/frame-engine-control.js +1 -231
- package/dist/core/runtime/broker/frame-memory-refs.js +1 -41
- package/dist/core/runtime/broker/frame-model-query.js +1 -69
- package/dist/core/runtime/broker/frame-read.js +1 -116
- package/dist/core/runtime/broker/frame-replies.js +1 -64
- package/dist/core/runtime/broker/frame-session.js +4 -203
- package/dist/core/runtime/broker/held-deferred-inbox.js +1 -13
- package/dist/core/runtime/broker/inbox.js +13 -163
- package/dist/core/runtime/broker/node-named.js +1 -27
- package/dist/core/runtime/broker/read-ops.js +1 -171
- package/dist/core/runtime/broker/rebind.js +1 -318
- package/dist/core/runtime/broker/tool-groups.js +1 -246
- package/dist/core/runtime/broker/turn-admission.js +1 -31
- package/dist/core/runtime/broker/turn-ignition.js +1 -84
- package/dist/core/runtime/broker-cli.js +3 -81
- package/dist/core/runtime/broker-extension-render.js +5 -135
- package/dist/core/runtime/broker-inventory.js +1 -116
- package/dist/core/runtime/broker-persona-guidance.js +4 -154
- package/dist/core/runtime/broker-protocol.js +3 -152
- package/dist/core/runtime/broker-request.js +1 -85
- package/dist/core/runtime/broker-sdk.js +1 -129
- package/dist/core/runtime/broker.js +1 -1214
- package/dist/core/runtime/canvas-extensions.js +1 -96
- package/dist/core/runtime/chat-inventory-rows.js +1 -105
- package/dist/core/runtime/close.js +1 -265
- package/dist/core/runtime/command-expansion.js +9 -104
- package/dist/core/runtime/command-surface.js +1 -117
- package/dist/core/runtime/connectivity.js +1 -73
- package/dist/core/runtime/deliver-live.js +1 -88
- package/dist/core/runtime/fault-recovery.js +1 -83
- package/dist/core/runtime/fault.js +1 -17
- package/dist/core/runtime/fleet.js +1 -58
- package/dist/core/runtime/front-door-env.js +1 -16
- package/dist/core/runtime/front-door.js +7 -183
- package/dist/core/runtime/headless-pi.js +1 -161
- package/dist/core/runtime/host.js +1 -457
- package/dist/core/runtime/interactive-deliver.js +1 -51
- package/dist/core/runtime/invocation.js +0 -10
- package/dist/core/runtime/kickoff.js +30 -327
- package/dist/core/runtime/launch-config-worker.js +1 -12
- package/dist/core/runtime/launch-prompt.js +4 -13
- package/dist/core/runtime/launch-target.js +1 -55
- package/dist/core/runtime/launch.js +1 -483
- package/dist/core/runtime/lifecycle.js +2 -213
- package/dist/core/runtime/managed-provider-cooling.js +1 -62
- package/dist/core/runtime/memory.js +1 -17
- package/dist/core/runtime/model-registry.js +1 -13
- package/dist/core/runtime/model-selection.js +1 -135
- package/dist/core/runtime/model-swap.js +1 -86
- package/dist/core/runtime/naming.js +14 -298
- package/dist/core/runtime/nerd-font.js +2 -127
- package/dist/core/runtime/node-read.js +2 -386
- package/dist/core/runtime/nodes.js +1 -331
- package/dist/core/runtime/outcome-document.js +1 -97
- package/dist/core/runtime/package-health.js +4 -99
- package/dist/core/runtime/persona.js +2 -55
- package/dist/core/runtime/pi-cli.js +1 -65
- package/dist/core/runtime/pi-vendored.js +1 -66
- package/dist/core/runtime/placement-tmux.js +1 -81
- package/dist/core/runtime/placement.js +1 -386
- package/dist/core/runtime/promote.js +1 -174
- package/dist/core/runtime/prospective-inventory-cli.js +3 -61
- package/dist/core/runtime/prospective-inventory.js +2 -88
- package/dist/core/runtime/recap.js +27 -103
- package/dist/core/runtime/recycle.js +1 -190
- package/dist/core/runtime/reopen.js +1 -138
- package/dist/core/runtime/reset.js +1 -245
- package/dist/core/runtime/resume-root.js +10 -290
- package/dist/core/runtime/revive-all.js +1 -107
- package/dist/core/runtime/revive.js +4 -544
- package/dist/core/runtime/roadmap.js +4 -38
- package/dist/core/runtime/session-branch.js +1 -46
- package/dist/core/runtime/session-cycles.js +1 -110
- package/dist/core/runtime/session-list-cache.js +1 -406
- package/dist/core/runtime/session-visibility.js +1 -99
- package/dist/core/runtime/shell-expansion.js +9 -100
- package/dist/core/runtime/situational-context.js +2 -67
- package/dist/core/runtime/situational-live.js +1 -41
- package/dist/core/runtime/spawn-env.js +1 -255
- package/dist/core/runtime/spawn.js +3 -577
- package/dist/core/runtime/stamp/channel.js +1 -76
- package/dist/core/runtime/stamp/protocol.js +1 -113
- package/dist/core/runtime/stop-guard.js +7 -116
- package/dist/core/runtime/stop-signals.js +1 -46
- package/dist/core/runtime/stream-watchdog.js +1 -134
- package/dist/core/runtime/structured-output.js +4 -156
- package/dist/core/runtime/surface-bg.js +1 -85
- package/dist/core/runtime/tmux-bindings.js +4 -730
- package/dist/core/runtime/tmux-chrome.js +1 -5
- package/dist/core/runtime/tmux-driver.js +7 -637
- package/dist/core/runtime/tool-group-summary.js +6 -85
- package/dist/core/runtime/turn-visibility.js +1 -31
- package/dist/core/runtime/view-socket.js +1 -83
- package/dist/core/runtime/warm-pool.d.ts +3 -2
- package/dist/core/runtime/warm-pool.js +1 -385
- package/dist/core/scope.js +1 -254
- package/dist/core/scoped-state/db.js +1 -135
- package/dist/core/scoped-state/migrate.js +3 -181
- package/dist/core/scoped-state/paths.js +1 -27
- package/dist/core/scoped-state/profiles.js +1 -62
- package/dist/core/scoped-state/providers.js +1 -8
- package/dist/core/scoped-state/schema.js +3 -16
- package/dist/core/scoped-state/settings.js +1 -82
- package/dist/core/secrets.js +2 -55
- package/dist/core/self-update.js +1 -71
- package/dist/core/session-model/session-state.js +1 -180
- package/dist/core/shell-segments.js +4 -169
- package/dist/core/spawn.js +1 -26
- package/dist/core/stdout-errors.js +1 -14
- package/dist/core/subscription-state.js +3 -193
- package/dist/core/substrate/frontmatter-validation.js +1 -105
- package/dist/core/substrate/gate-explain.js +1 -424
- package/dist/core/substrate/gate.js +1 -26
- package/dist/core/substrate/index.js +1 -30
- package/dist/core/substrate/injected-store.js +1 -249
- package/dist/core/substrate/listings.js +1 -115
- package/dist/core/substrate/on-read-node.js +1 -36
- package/dist/core/substrate/on-read.js +9 -315
- package/dist/core/substrate/plan.js +1 -266
- package/dist/core/substrate/render-node.js +1 -30
- package/dist/core/substrate/render.js +65 -689
- package/dist/core/substrate/schema.js +1 -186
- package/dist/core/substrate/session-cache.js +1 -83
- package/dist/core/substrate/subject-fields.js +1 -35
- package/dist/core/substrate/subject.js +1 -47
- package/dist/core/substrate/surface-match.js +1 -242
- package/dist/core/termrender/code-doc.js +5 -92
- package/dist/core/termrender/display.js +2 -56
- package/dist/core/termrender/termrender.js +14 -719
- package/dist/core/termrender/version.js +1 -1
- package/dist/core/timing.js +2 -94
- package/dist/core/tui/draw.js +2 -378
- package/dist/core/tui/fuzzy.js +1 -38
- package/dist/core/tui/markdown.js +3 -407
- package/dist/core/tui/page-host.js +1 -74
- package/dist/core/tui/panel.js +1 -137
- package/dist/core/tui/terminal.js +2 -100
- package/dist/core/user-settings.js +1 -454
- package/dist/core/wake.js +1 -296
- package/dist/core/worktree-close.js +6 -228
- package/dist/core/worktree-containment.js +3 -48
- package/dist/core/worktree-landing.js +4 -56
- package/dist/core/worktree-mutation-async.js +10 -280
- package/dist/core/worktree-quarantine.js +1 -54
- package/dist/core/worktree-sweep.js +6 -453
- package/dist/core/worktree.js +18 -899
- package/dist/daemon/api/bridge.js +8 -418
- package/dist/daemon/api/handlers/attach.js +1 -65
- package/dist/daemon/api/handlers/bash-jobs.js +2 -91
- package/dist/daemon/api/handlers/broker-ops.js +1 -447
- package/dist/daemon/api/handlers/broker-recovery.js +1 -251
- package/dist/daemon/api/handlers/canvas.js +6 -490
- package/dist/daemon/api/handlers/chat-inventory.js +1 -25
- package/dist/daemon/api/handlers/crons.js +1 -373
- package/dist/daemon/api/handlers/daemon.js +1 -76
- package/dist/daemon/api/handlers/feedback-comments.js +3 -199
- package/dist/daemon/api/handlers/files.js +1 -63
- package/dist/daemon/api/handlers/focus.js +1 -92
- package/dist/daemon/api/handlers/health.js +1 -76
- package/dist/daemon/api/handlers/human-requests.js +1 -379
- package/dist/daemon/api/handlers/human.js +1 -3
- package/dist/daemon/api/handlers/inbox-page.js +1 -89
- package/dist/daemon/api/handlers/inbox.js +1 -301
- package/dist/daemon/api/handlers/memory.js +1 -50
- package/dist/daemon/api/handlers/messages.js +2 -506
- package/dist/daemon/api/handlers/model-config.js +1 -44
- package/dist/daemon/api/handlers/modelauth.js +1 -165
- package/dist/daemon/api/handlers/node-outcomes.js +1 -181
- package/dist/daemon/api/handlers/nodes.js +1 -943
- package/dist/daemon/api/handlers/profiles.js +1 -140
- package/dist/daemon/api/handlers/prospective-chat-inventory.js +1 -59
- package/dist/daemon/api/handlers/reports.js +16 -332
- package/dist/daemon/api/handlers/review-comments.js +1 -465
- package/dist/daemon/api/handlers/reviews.js +1 -200
- package/dist/daemon/api/handlers/subscriptions.js +1 -53
- package/dist/daemon/api/handlers/validate.js +1 -58
- package/dist/daemon/api/handlers/worktree.js +1 -39
- package/dist/daemon/api/map.js +2 -735
- package/dist/daemon/api/router.js +1 -190
- package/dist/daemon/api/server.js +11 -408
- package/dist/daemon/boot-migrations.js +1 -31
- package/dist/daemon/companion-retire.js +1 -34
- package/dist/daemon/control.js +1 -22
- package/dist/daemon/cron/armed-context.js +1 -100
- package/dist/daemon/cron/capture.js +2 -45
- package/dist/daemon/cron/disposition.js +1 -55
- package/dist/daemon/cron/escalation.js +3 -124
- package/dist/daemon/cron/held.js +1 -20
- package/dist/daemon/cron/lease-recovery.js +1 -119
- package/dist/daemon/cron/live-runs.js +1 -23
- package/dist/daemon/cron/passes.js +1 -58
- package/dist/daemon/cron/settle.js +1 -61
- package/dist/daemon/cron/sinks.js +2 -59
- package/dist/daemon/cron-run.js +1 -405
- package/dist/daemon/crtrd-cli.js +1 -23
- package/dist/daemon/crtrd.js +8 -854
- package/dist/daemon/delivery/run-delivery.js +1 -164
- package/dist/daemon/fleet.js +17 -475
- package/dist/daemon/human/finish.js +10 -179
- package/dist/daemon/human/settle.js +1 -89
- package/dist/daemon/human/sweep.js +1 -66
- package/dist/daemon/manage.js +2 -595
- package/dist/daemon/messaging/node-message.js +1 -99
- package/dist/daemon/park-activity.js +1 -30
- package/dist/daemon/park-pending.js +1 -52
- package/dist/daemon/pidfile.js +1 -37
- package/dist/daemon/profile-delete.js +1 -306
- package/dist/daemon/reconcilers/bash-deadline.js +1 -80
- package/dist/daemon/reconcilers/broker-supervision.js +4 -761
- package/dist/daemon/reconcilers/controller-death.js +1 -14
- package/dist/daemon/reconcilers/cron-lane.js +1 -29
- package/dist/daemon/reconcilers/delivery-lane.js +1 -130
- package/dist/daemon/reconcilers/live-obligation.js +1 -87
- package/dist/daemon/reconcilers/managed-worktree-sweep.js +1 -202
- package/dist/daemon/reconcilers/node-deadline.js +1 -82
- package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +1 -172
- package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.js +1 -59
- package/dist/daemon/reconcilers/node-lifecycle/terminating.js +1 -12
- package/dist/daemon/reconcilers/node-lifecycle/tick.js +1 -146
- package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -11
- package/dist/daemon/reconcilers/pending-review-submit.js +1 -36
- package/dist/daemon/reconcilers/storage-maintenance.js +1 -207
- package/dist/daemon/review/comment-notify.js +2 -109
- package/dist/daemon/review/companion.js +1 -29
- package/dist/daemon/review/deliver.js +3 -8
- package/dist/daemon/review/finish.js +1 -122
- package/dist/daemon/review/sweep.js +1 -18
- package/dist/daemon/startup-policy.js +1 -1
- package/dist/daemon/supervise-cadence.js +1 -6
- package/dist/hook-authoring.js +5 -447
- package/dist/hook-process.js +1 -34
- package/dist/index.js +1 -52
- package/dist/migrations/001-surfaces-frontmatter.js +1 -161
- package/dist/migrations/002-profile-project-memory.js +1 -72
- package/dist/migrations/003-repository-root-memory-identity/front-door.js +11 -231
- package/dist/migrations/003-repository-root-memory-identity/index.js +5 -513
- package/dist/migrations/003-repository-root-memory-identity/references.js +5 -469
- package/dist/migrations/003-repository-root-memory-identity/repository-facts.js +3 -349
- package/dist/migrations/activation.js +2 -89
- package/dist/migrations/convergent.js +2 -82
- package/dist/migrations/corpus.js +3 -483
- package/dist/migrations/frontmatter-splice.js +8 -176
- package/dist/migrations/profile-manifests.js +2 -70
- package/dist/migrations/registry.js +1 -42
- package/dist/migrations/runner.js +1 -85
- package/dist/migrations/types.js +0 -24
- package/dist/pi-extensions/broker-local.js +2 -106
- package/dist/pi-extensions/canvas-bash-valve.js +7 -461
- package/dist/pi-extensions/canvas-context-intro.js +2 -113
- package/dist/pi-extensions/canvas-doc-substrate.js +9 -178
- package/dist/pi-extensions/canvas-goal-capture.js +1 -83
- package/dist/pi-extensions/canvas-inbox-watcher.js +1 -1010
- package/dist/pi-extensions/canvas-passive-context.js +14 -203
- package/dist/pi-extensions/canvas-preview-result.js +2 -72
- package/dist/pi-extensions/canvas-prompt-scrub.js +2 -54
- package/dist/pi-extensions/canvas-recap.js +11 -405
- package/dist/pi-extensions/canvas-review-boundary.js +3 -63
- package/dist/pi-extensions/canvas-stamp.js +2 -77
- package/dist/pi-extensions/canvas-stophook.js +1 -643
- package/dist/pi-extensions/canvas-structured-output.js +13 -35
- package/dist/pi-extensions/canvas-tool-guide.js +9 -78
- package/dist/pi-extensions/envelope-merge.js +8 -29
- package/dist/prompts/review.js +20 -42
- package/dist/shared/birth-announcement.js +1 -25
- package/dist/shared/crtr-version.js +1 -18
- package/dist/shared/env.js +1 -214
- package/dist/shared/generated-context.js +11 -226
- package/dist/shared/predicates.js +1 -4
- package/dist/shared/shell-quote.js +1 -5
- package/dist/shared/tool-groups.js +1 -64
- package/dist/shared/working-activity.js +1 -27
- package/dist/suppress-experimental-warnings.js +1 -15
- package/dist/types.js +1 -185
- package/docs/public-api.md +10 -9
- package/package.json +6 -5
- package/runtime.lock.json +5 -5
- package/dist/api/__tests__/integration/client.test.d.ts +0 -1
- package/dist/api/__tests__/integration/client.test.js +0 -163
- package/dist/builtin-pi-packages/pi-crtr-extensions/__tests__/insights-active-init.test.ts +0 -98
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/crtr-commands.test.ts +0 -93
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/integration/provider-rotation.test.ts +0 -2530
- package/dist/clients/__tests__/helpers/human-daemon.d.ts +0 -11
- package/dist/clients/__tests__/helpers/human-daemon.js +0 -60
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.js +0 -97
- package/dist/clients/attach/__tests__/bash-call-width.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/bash-call-width.test.js +0 -38
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +0 -175
- package/dist/clients/attach/__tests__/completion-frecency.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/completion-frecency.test.js +0 -35
- package/dist/clients/attach/__tests__/context-message.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/context-message.test.js +0 -130
- package/dist/clients/attach/__tests__/crtr-output.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/crtr-output.test.js +0 -68
- package/dist/clients/attach/__tests__/diagram.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/diagram.test.js +0 -42
- package/dist/clients/attach/__tests__/edit-diff.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/edit-diff.test.js +0 -31
- package/dist/clients/attach/__tests__/frame-selection.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/frame-selection.test.js +0 -84
- package/dist/clients/attach/__tests__/group-activity.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/group-activity.test.js +0 -165
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.js +0 -83
- package/dist/clients/attach/__tests__/pane-tag-successor.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/pane-tag-successor.test.js +0 -56
- package/dist/clients/attach/__tests__/profile-files.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/profile-files.test.js +0 -21
- package/dist/clients/attach/__tests__/prompt-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/prompt-preview.test.js +0 -21
- package/dist/clients/attach/__tests__/ref-autocomplete.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/ref-autocomplete.test.js +0 -64
- package/dist/clients/attach/__tests__/titled-editor-paste.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-paste.test.js +0 -114
- package/dist/clients/attach/__tests__/titled-editor-preview.test.d.ts +0 -1
- package/dist/clients/attach/__tests__/titled-editor-preview.test.js +0 -83
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/inbox-controller.test.js +0 -81
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/mount-panel.test.js +0 -135
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.d.ts +0 -1
- package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.js +0 -66
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.js +0 -35
- package/dist/clients/inbox/review/__tests__/review-core.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/review-core.test.js +0 -52
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.d.ts +0 -1
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.js +0 -100
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.d.ts +0 -1
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.js +0 -69
- package/dist/commands/__tests__/human.test.d.ts +0 -1
- package/dist/commands/__tests__/human.test.js +0 -172
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/dashboard-snapshot.test.js +0 -237
- package/dist/commands/__tests__/integration/migrate.test.d.ts +0 -1
- package/dist/commands/__tests__/integration/migrate.test.js +0 -1330
- package/dist/commands/__tests__/node-message.test.d.ts +0 -1
- package/dist/commands/__tests__/node-message.test.js +0 -112
- package/dist/commands/__tests__/node-new.test.d.ts +0 -1
- package/dist/commands/__tests__/node-new.test.js +0 -58
- package/dist/commands/__tests__/revive-now-gate.test.d.ts +0 -1
- package/dist/commands/__tests__/revive-now-gate.test.js +0 -62
- package/dist/commands/__tests__/seam/daemon-status.test.d.ts +0 -1
- package/dist/commands/__tests__/seam/daemon-status.test.js +0 -29
- package/dist/commands/__tests__/surface-reload-target.test.d.ts +0 -1
- package/dist/commands/__tests__/surface-reload-target.test.js +0 -21
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.js +0 -379
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.js +0 -124
- package/dist/commands/memory/__tests__/repository-root-lint.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/repository-root-lint.test.js +0 -148
- package/dist/commands/sys/__tests__/config-model-ladders.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/config-model-ladders.test.js +0 -114
- package/dist/commands/sys/__tests__/setup-core.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/setup-core.test.js +0 -45
- package/dist/commands/sys/__tests__/sync-project-guidance.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/sync-project-guidance.test.js +0 -244
- package/dist/core/__tests__/bash-guard.test.d.ts +0 -1
- package/dist/core/__tests__/bash-guard.test.js +0 -190
- package/dist/core/__tests__/boot-fault-attempt.test.d.ts +0 -1
- package/dist/core/__tests__/boot-fault-attempt.test.js +0 -105
- package/dist/core/__tests__/boot.test.d.ts +0 -1
- package/dist/core/__tests__/boot.test.js +0 -274
- package/dist/core/__tests__/branded-host-concurrency.test.d.ts +0 -1
- package/dist/core/__tests__/branded-host-concurrency.test.js +0 -72
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.js +0 -75
- package/dist/core/__tests__/broker-launch-candidates.test.d.ts +0 -1
- package/dist/core/__tests__/broker-launch-candidates.test.js +0 -311
- package/dist/core/__tests__/broker-preflight.test.d.ts +0 -1
- package/dist/core/__tests__/broker-preflight.test.js +0 -95
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.d.ts +0 -1
- package/dist/core/__tests__/broker-stream-watchdog-floor.test.js +0 -82
- package/dist/core/__tests__/broker-turn-admission.test.d.ts +0 -1
- package/dist/core/__tests__/broker-turn-admission.test.js +0 -44
- package/dist/core/__tests__/canvas-db-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-db-boundary.test.js +0 -46
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +0 -710
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher-naming.test.js +0 -310
- package/dist/core/__tests__/canvas-inbox-watcher.test.d.ts +0 -1
- package/dist/core/__tests__/canvas-inbox-watcher.test.js +0 -397
- package/dist/core/__tests__/canvas.test.d.ts +0 -1
- package/dist/core/__tests__/canvas.test.js +0 -138
- package/dist/core/__tests__/child-death-wake.test.d.ts +0 -1
- package/dist/core/__tests__/child-death-wake.test.js +0 -153
- package/dist/core/__tests__/cli-help-contract.test.d.ts +0 -1
- package/dist/core/__tests__/cli-help-contract.test.js +0 -152
- package/dist/core/__tests__/close.test.d.ts +0 -1
- package/dist/core/__tests__/close.test.js +0 -284
- package/dist/core/__tests__/collectible.test.d.ts +0 -1
- package/dist/core/__tests__/collectible.test.js +0 -89
- package/dist/core/__tests__/config-change-delta.test.d.ts +0 -1
- package/dist/core/__tests__/config-change-delta.test.js +0 -108
- package/dist/core/__tests__/context-intro.test.d.ts +0 -1
- package/dist/core/__tests__/context-intro.test.js +0 -123
- package/dist/core/__tests__/cron-armed-context-failure.test.d.ts +0 -1
- package/dist/core/__tests__/cron-armed-context-failure.test.js +0 -150
- package/dist/core/__tests__/cron-held-settlement.test.d.ts +0 -1
- package/dist/core/__tests__/cron-held-settlement.test.js +0 -240
- package/dist/core/__tests__/cron-node-sink-parked-root.test.d.ts +0 -1
- package/dist/core/__tests__/cron-node-sink-parked-root.test.js +0 -166
- package/dist/core/__tests__/cron-self-cancel-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/cron-self-cancel-delivery.test.js +0 -84
- package/dist/core/__tests__/cron-timeout-descendants.test.d.ts +0 -1
- package/dist/core/__tests__/cron-timeout-descendants.test.js +0 -114
- package/dist/core/__tests__/daemon-boot.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-boot.test.js +0 -422
- package/dist/core/__tests__/daemon-wedge.test.d.ts +0 -1
- package/dist/core/__tests__/daemon-wedge.test.js +0 -106
- package/dist/core/__tests__/dead-node-policy-table.test.d.ts +0 -1
- package/dist/core/__tests__/dead-node-policy-table.test.js +0 -77
- package/dist/core/__tests__/events-contract.test.d.ts +0 -1
- package/dist/core/__tests__/events-contract.test.js +0 -76
- package/dist/core/__tests__/extension-abort.test.d.ts +0 -1
- package/dist/core/__tests__/extension-abort.test.js +0 -21
- package/dist/core/__tests__/fault-classifier.test.d.ts +0 -1
- package/dist/core/__tests__/fault-classifier.test.js +0 -138
- package/dist/core/__tests__/fixtures/api-server-host.d.ts +0 -1
- package/dist/core/__tests__/fixtures/api-server-host.js +0 -47
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c3-custom-provider-ext.js +0 -34
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.d.ts +0 -2
- package/dist/core/__tests__/fixtures/c5-command-boundary-ext.js +0 -32
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +0 -347
- package/dist/core/__tests__/fixtures/fake-engine.js +0 -1509
- package/dist/core/__tests__/fixtures/fake-pi-host.d.ts +0 -2
- package/dist/core/__tests__/fixtures/fake-pi-host.js +0 -311
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.d.ts +0 -1
- package/dist/core/__tests__/fixtures/memory-slash-live-probe.js +0 -75
- package/dist/core/__tests__/fixtures/metadata-migration-race.d.ts +0 -1
- package/dist/core/__tests__/fixtures/metadata-migration-race.js +0 -49
- package/dist/core/__tests__/focuses.test.d.ts +0 -1
- package/dist/core/__tests__/focuses.test.js +0 -113
- package/dist/core/__tests__/fs-utils.test.d.ts +0 -1
- package/dist/core/__tests__/fs-utils.test.js +0 -50
- package/dist/core/__tests__/helpers/broker-clients.d.ts +0 -43
- package/dist/core/__tests__/helpers/broker-clients.js +0 -174
- package/dist/core/__tests__/helpers/fleet.d.ts +0 -12
- package/dist/core/__tests__/helpers/fleet.js +0 -50
- package/dist/core/__tests__/helpers/harness.d.ts +0 -124
- package/dist/core/__tests__/helpers/harness.js +0 -806
- package/dist/core/__tests__/helpers/viewer-panes.d.ts +0 -12
- package/dist/core/__tests__/helpers/viewer-panes.js +0 -133
- package/dist/core/__tests__/history-inbox.test.d.ts +0 -1
- package/dist/core/__tests__/history-inbox.test.js +0 -121
- package/dist/core/__tests__/human-action-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/human-action-delivery.test.js +0 -162
- package/dist/core/__tests__/human-actions.test.d.ts +0 -1
- package/dist/core/__tests__/human-actions.test.js +0 -120
- package/dist/core/__tests__/inline-memory-refs.test.d.ts +0 -1
- package/dist/core/__tests__/inline-memory-refs.test.js +0 -225
- package/dist/core/__tests__/integration/broker-fork-seam.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-fork-seam.test.js +0 -193
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-sdk-wiring.test.js +0 -750
- package/dist/core/__tests__/integration/broker-snapshot-history.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-snapshot-history.test.js +0 -288
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.d.ts +0 -1
- package/dist/core/__tests__/integration/broker-wedge-supervision.test.js +0 -103
- package/dist/core/__tests__/integration/command-plugins.test.d.ts +0 -1
- package/dist/core/__tests__/integration/command-plugins.test.js +0 -1200
- package/dist/core/__tests__/integration/deferred-no-wake.test.d.ts +0 -1
- package/dist/core/__tests__/integration/deferred-no-wake.test.js +0 -610
- package/dist/core/__tests__/integration/flagship-lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/flagship-lifecycle.test.js +0 -264
- package/dist/core/__tests__/integration/fresh-home-commands.test.d.ts +0 -1
- package/dist/core/__tests__/integration/fresh-home-commands.test.js +0 -49
- package/dist/core/__tests__/integration/git-optional-locks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/git-optional-locks.test.js +0 -81
- package/dist/core/__tests__/integration/host-teardown-process-group.test.d.ts +0 -1
- package/dist/core/__tests__/integration/host-teardown-process-group.test.js +0 -480
- package/dist/core/__tests__/integration/lifecycle-hooks.test.d.ts +0 -1
- package/dist/core/__tests__/integration/lifecycle-hooks.test.js +0 -498
- package/dist/core/__tests__/integration/live-mutation-verbs.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation-verbs.test.js +0 -180
- package/dist/core/__tests__/integration/live-mutation.test.d.ts +0 -1
- package/dist/core/__tests__/integration/live-mutation.test.js +0 -173
- package/dist/core/__tests__/integration/plugin-revalidate.test.d.ts +0 -1
- package/dist/core/__tests__/integration/plugin-revalidate.test.js +0 -359
- package/dist/core/__tests__/integration/profile-pause.test.d.ts +0 -1
- package/dist/core/__tests__/integration/profile-pause.test.js +0 -115
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.d.ts +0 -1
- package/dist/core/__tests__/integration/refresh-stall-recycle.test.js +0 -151
- package/dist/core/__tests__/integration/revive.test.d.ts +0 -1
- package/dist/core/__tests__/integration/revive.test.js +0 -615
- package/dist/core/__tests__/integration/spawn-root.test.d.ts +0 -1
- package/dist/core/__tests__/integration/spawn-root.test.js +0 -536
- package/dist/core/__tests__/integration/subscription-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/integration/subscription-delivery.test.js +0 -132
- package/dist/core/__tests__/integration/tmux-surface.test.d.ts +0 -1
- package/dist/core/__tests__/integration/tmux-surface.test.js +0 -330
- package/dist/core/__tests__/integration/worktree-land.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-land.test.js +0 -607
- package/dist/core/__tests__/integration/worktree-reap.test.d.ts +0 -1
- package/dist/core/__tests__/integration/worktree-reap.test.js +0 -842
- package/dist/core/__tests__/kickoff.test.d.ts +0 -1
- package/dist/core/__tests__/kickoff.test.js +0 -196
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle-terminal-reasons.test.js +0 -62
- package/dist/core/__tests__/lifecycle.test.d.ts +0 -1
- package/dist/core/__tests__/lifecycle.test.js +0 -176
- package/dist/core/__tests__/live-lifecycle-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/live-lifecycle-prompt.test.js +0 -63
- package/dist/core/__tests__/memory-resolver-precedence.test.d.ts +0 -1
- package/dist/core/__tests__/memory-resolver-precedence.test.js +0 -228
- package/dist/core/__tests__/migration.test.d.ts +0 -1
- package/dist/core/__tests__/migration.test.js +0 -946
- package/dist/core/__tests__/model-pin-durability.test.d.ts +0 -1
- package/dist/core/__tests__/model-pin-durability.test.js +0 -195
- package/dist/core/__tests__/model-routes-config.test.d.ts +0 -1
- package/dist/core/__tests__/model-routes-config.test.js +0 -150
- package/dist/core/__tests__/nested-store-discovery.test.d.ts +0 -1
- package/dist/core/__tests__/nested-store-discovery.test.js +0 -89
- package/dist/core/__tests__/node-outcome.test.d.ts +0 -1
- package/dist/core/__tests__/node-outcome.test.js +0 -246
- package/dist/core/__tests__/on-read-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-crouter-home-fence.test.js +0 -66
- package/dist/core/__tests__/on-read-dedup-resume.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-dedup-resume.test.js +0 -132
- package/dist/core/__tests__/on-read-nested-store.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-nested-store.test.js +0 -135
- package/dist/core/__tests__/parse-argv-stdin-secret.test.d.ts +0 -1
- package/dist/core/__tests__/parse-argv-stdin-secret.test.js +0 -68
- package/dist/core/__tests__/passive-subscription.test.d.ts +0 -1
- package/dist/core/__tests__/passive-subscription.test.js +0 -120
- package/dist/core/__tests__/pid-identity-match.test.d.ts +0 -1
- package/dist/core/__tests__/pid-identity-match.test.js +0 -145
- package/dist/core/__tests__/pid-zombie.test.d.ts +0 -1
- package/dist/core/__tests__/pid-zombie.test.js +0 -42
- package/dist/core/__tests__/plugin-kinds.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-kinds.test.js +0 -182
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.js +0 -43
- package/dist/core/__tests__/plugin-page-components.test.d.ts +0 -1
- package/dist/core/__tests__/plugin-page-components.test.js +0 -159
- package/dist/core/__tests__/preview-mirror-cap.test.d.ts +0 -1
- package/dist/core/__tests__/preview-mirror-cap.test.js +0 -53
- package/dist/core/__tests__/preview-registry-sync.test.d.ts +0 -1
- package/dist/core/__tests__/preview-registry-sync.test.js +0 -107
- package/dist/core/__tests__/profile-project-memory-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/profile-project-memory-delivery.test.js +0 -644
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.d.ts +0 -1
- package/dist/core/__tests__/prospective-inventory-capability-parity.test.js +0 -91
- package/dist/core/__tests__/prune.test.d.ts +0 -1
- package/dist/core/__tests__/prune.test.js +0 -243
- package/dist/core/__tests__/push-final-guard.test.d.ts +0 -1
- package/dist/core/__tests__/push-final-guard.test.js +0 -191
- package/dist/core/__tests__/relaunch-root.test.d.ts +0 -1
- package/dist/core/__tests__/relaunch-root.test.js +0 -249
- package/dist/core/__tests__/remote-canvas-target.test.d.ts +0 -1
- package/dist/core/__tests__/remote-canvas-target.test.js +0 -93
- package/dist/core/__tests__/repository-association.test.d.ts +0 -1
- package/dist/core/__tests__/repository-association.test.js +0 -153
- package/dist/core/__tests__/repository-root-identity.test.d.ts +0 -1
- package/dist/core/__tests__/repository-root-identity.test.js +0 -223
- package/dist/core/__tests__/respawn-throttle.test.d.ts +0 -1
- package/dist/core/__tests__/respawn-throttle.test.js +0 -20
- package/dist/core/__tests__/review-model-floor.test.d.ts +0 -1
- package/dist/core/__tests__/review-model-floor.test.js +0 -83
- package/dist/core/__tests__/revive-all.test.d.ts +0 -1
- package/dist/core/__tests__/revive-all.test.js +0 -157
- package/dist/core/__tests__/revive-capacity.test.d.ts +0 -1
- package/dist/core/__tests__/revive-capacity.test.js +0 -184
- package/dist/core/__tests__/revive-parked-fresh.test.d.ts +0 -1
- package/dist/core/__tests__/revive-parked-fresh.test.js +0 -176
- package/dist/core/__tests__/scope-crouter-home-fence.test.d.ts +0 -1
- package/dist/core/__tests__/scope-crouter-home-fence.test.js +0 -55
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.js +0 -262
- package/dist/core/__tests__/seam/broker-attach-stream.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-attach-stream.test.js +0 -176
- package/dist/core/__tests__/seam/broker-cap-freeze.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-cap-freeze.test.js +0 -155
- package/dist/core/__tests__/seam/broker-crash-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-crash-teardown.test.js +0 -131
- package/dist/core/__tests__/seam/broker-pane-resolution.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-pane-resolution.test.js +0 -204
- package/dist/core/__tests__/seam/broker-provider-retry.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-provider-retry.test.js +0 -686
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-startup-diagnostics.test.js +0 -82
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/broker-whip-interrupt.test.js +0 -50
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/deadline-wake-delivery.test.js +0 -138
- package/dist/core/__tests__/seam/dormancy-release.test.d.ts +0 -1
- package/dist/core/__tests__/seam/dormancy-release.test.js +0 -516
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/seam/held-deferred-human-prompt.test.js +0 -65
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.d.ts +0 -1
- package/dist/core/__tests__/seam/inbox-reference-guidance.test.js +0 -84
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.d.ts +0 -1
- package/dist/core/__tests__/seam/memory-slash-node-relative-inventory.test.js +0 -160
- package/dist/core/__tests__/seam/node-outcome-delivery.test.d.ts +0 -1
- package/dist/core/__tests__/seam/node-outcome-delivery.test.js +0 -177
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.d.ts +0 -1
- package/dist/core/__tests__/seam/prospective-inventory-stdout.test.js +0 -31
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.d.ts +0 -1
- package/dist/core/__tests__/seam/reopen-invalidated-worktree.test.js +0 -60
- package/dist/core/__tests__/seam/self-close-teardown.test.d.ts +0 -1
- package/dist/core/__tests__/seam/self-close-teardown.test.js +0 -49
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.d.ts +0 -1
- package/dist/core/__tests__/seam/yield-refresh-transaction.test.js +0 -100
- package/dist/core/__tests__/secrets.test.d.ts +0 -1
- package/dist/core/__tests__/secrets.test.js +0 -49
- package/dist/core/__tests__/self-update.test.d.ts +0 -1
- package/dist/core/__tests__/self-update.test.js +0 -46
- package/dist/core/__tests__/session-branch.test.d.ts +0 -1
- package/dist/core/__tests__/session-branch.test.js +0 -61
- package/dist/core/__tests__/session-cycles.test.d.ts +0 -1
- package/dist/core/__tests__/session-cycles.test.js +0 -133
- package/dist/core/__tests__/session-model.test.d.ts +0 -1
- package/dist/core/__tests__/session-model.test.js +0 -111
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.d.ts +0 -1
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +0 -71
- package/dist/core/__tests__/stdin-body-no-discard.test.d.ts +0 -1
- package/dist/core/__tests__/stdin-body-no-discard.test.js +0 -33
- package/dist/core/__tests__/stdout-errors.test.d.ts +0 -1
- package/dist/core/__tests__/stdout-errors.test.js +0 -16
- package/dist/core/__tests__/stop-guard.test.d.ts +0 -1
- package/dist/core/__tests__/stop-guard.test.js +0 -237
- package/dist/core/__tests__/stream-watchdog.test.d.ts +0 -1
- package/dist/core/__tests__/stream-watchdog.test.js +0 -154
- package/dist/core/__tests__/subscription-pool-credential-guard.test.d.ts +0 -1
- package/dist/core/__tests__/subscription-pool-credential-guard.test.js +0 -95
- package/dist/core/__tests__/tmux-driver-boundary.test.d.ts +0 -1
- package/dist/core/__tests__/tmux-driver-boundary.test.js +0 -50
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.d.ts +0 -1
- package/dist/core/__tests__/warm-claim-preference-snapshot.test.js +0 -54
- package/dist/core/__tests__/worktree-landing.test.d.ts +0 -1
- package/dist/core/__tests__/worktree-landing.test.js +0 -11
- package/dist/core/__tests__/yield-ensures-daemon.test.d.ts +0 -1
- package/dist/core/__tests__/yield-ensures-daemon.test.js +0 -55
- package/dist/core/broker-client/__tests__/transport-relay.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-relay.test.js +0 -214
- package/dist/core/broker-client/__tests__/transport-socket.test.d.ts +0 -1
- package/dist/core/broker-client/__tests__/transport-socket.test.js +0 -73
- package/dist/core/canvas/__tests__/attention.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/attention.test.js +0 -83
- package/dist/core/canvas/__tests__/history-transcript.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/history-transcript.test.js +0 -102
- package/dist/core/canvas/__tests__/remote-canvas-source.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-canvas-source.test.js +0 -328
- package/dist/core/canvas/__tests__/remote-transport.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-transport.test.js +0 -97
- package/dist/core/canvas/__tests__/render-remote.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/render-remote.test.js +0 -243
- package/dist/core/canvas/__tests__/session-window.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/session-window.test.js +0 -70
- package/dist/core/feed/__tests__/inbox-migrate.test.d.ts +0 -1
- package/dist/core/feed/__tests__/inbox-migrate.test.js +0 -49
- package/dist/core/human/__tests__/page-catalog.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-catalog.test.js +0 -20
- package/dist/core/human/__tests__/page-html-markdown.test.d.ts +0 -1
- package/dist/core/human/__tests__/page-html-markdown.test.js +0 -48
- package/dist/core/human/__tests__/page.test.d.ts +0 -1
- package/dist/core/human/__tests__/page.test.js +0 -92
- package/dist/core/keybindings/__tests__/resolve.test.d.ts +0 -1
- package/dist/core/keybindings/__tests__/resolve.test.js +0 -171
- package/dist/core/profiles/__tests__/env-store.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/env-store.test.js +0 -99
- package/dist/core/profiles/__tests__/fuzzy-match.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/fuzzy-match.test.js +0 -51
- package/dist/core/profiles/__tests__/root-profile.test.d.ts +0 -1
- package/dist/core/profiles/__tests__/root-profile.test.js +0 -59
- package/dist/core/review/__tests__/capture-origin.test.d.ts +0 -1
- package/dist/core/review/__tests__/capture-origin.test.js +0 -150
- package/dist/core/review/__tests__/comments.test.d.ts +0 -1
- package/dist/core/review/__tests__/comments.test.js +0 -116
- package/dist/core/review/__tests__/remap.test.d.ts +0 -1
- package/dist/core/review/__tests__/remap.test.js +0 -177
- package/dist/core/review/__tests__/stage-identity.test.d.ts +0 -1
- package/dist/core/review/__tests__/stage-identity.test.js +0 -150
- package/dist/core/runtime/__tests__/engine-route.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/engine-route.test.js +0 -36
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/install-id-cache-scoping.test.js +0 -45
- package/dist/core/runtime/__tests__/node-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/node-env.test.js +0 -73
- package/dist/core/runtime/__tests__/spawn-env.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/spawn-env.test.js +0 -259
- package/dist/core/substrate/__tests__/surface-match-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-command.test.js +0 -89
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-memory-read.test.js +0 -28
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.d.ts +0 -1
- package/dist/core/substrate/__tests__/surface-match-pre-command.test.js +0 -92
- package/dist/daemon/__tests__/autostart-storm.test.d.ts +0 -1
- package/dist/daemon/__tests__/autostart-storm.test.js +0 -128
- package/dist/daemon/__tests__/broker-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/broker-ownership.test.js +0 -25
- package/dist/daemon/__tests__/daemon-ownership.test.d.ts +0 -1
- package/dist/daemon/__tests__/daemon-ownership.test.js +0 -27
- package/dist/daemon/__tests__/helpers/source-daemon.d.ts +0 -30
- package/dist/daemon/__tests__/helpers/source-daemon.js +0 -176
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/api-startup-readiness.test.js +0 -83
- package/dist/daemon/__tests__/integration/migration-startup.test.d.ts +0 -1
- package/dist/daemon/__tests__/integration/migration-startup.test.js +0 -127
- package/dist/daemon/__tests__/node-deadline-lane.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-deadline-lane.test.js +0 -77
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-birth-invariants.test.js +0 -146
- package/dist/daemon/__tests__/node-outcome-delivery.test.d.ts +0 -1
- package/dist/daemon/__tests__/node-outcome-delivery.test.js +0 -116
- package/dist/daemon/__tests__/reconciler-signature.test.d.ts +0 -1
- package/dist/daemon/__tests__/reconciler-signature.test.js +0 -37
- package/dist/daemon/__tests__/subtree-filter-freshness.test.d.ts +0 -1
- package/dist/daemon/__tests__/subtree-filter-freshness.test.js +0 -63
- package/dist/daemon/__tests__/thaw-order.test.d.ts +0 -1
- package/dist/daemon/__tests__/thaw-order.test.js +0 -55
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/bridge-heartbeat.test.js +0 -58
- package/dist/daemon/api/__tests__/broker-settle-park.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/broker-settle-park.test.js +0 -175
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.js +0 -216
- package/dist/daemon/api/__tests__/error-seam.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/error-seam.test.js +0 -83
- package/dist/daemon/api/__tests__/model-config.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/model-config.test.js +0 -73
- package/dist/daemon/api/__tests__/node-create-description.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-create-description.test.js +0 -107
- package/dist/daemon/api/__tests__/node-model-validation.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-model-validation.test.js +0 -183
- package/dist/daemon/api/__tests__/nodes-activity-query.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/nodes-activity-query.test.js +0 -99
- package/dist/daemon/api/__tests__/profile-launch-gates.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-launch-gates.test.js +0 -172
- package/dist/daemon/api/__tests__/profile-metadata-route.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-metadata-route.test.js +0 -95
- package/dist/daemon/api/__tests__/reopen-delivery.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/reopen-delivery.test.js +0 -260
- package/dist/daemon/api/__tests__/seam/api-server.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/api-server.test.js +0 -442
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.js +0 -310
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.js +0 -351
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.js +0 -159
- package/dist/daemon/api/__tests__/seam/profile-delete.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/profile-delete.test.js +0 -372
- package/dist/daemon/api/__tests__/submit-result.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/submit-result.test.js +0 -215
- package/dist/migrations/__tests__/activation-concurrency.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation-concurrency.test.js +0 -146
- package/dist/migrations/__tests__/activation.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation.test.js +0 -152
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.d.ts +0 -1
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.js +0 -149
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.js +0 -86
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +0 -364
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.js +0 -106
- package/dist/pi-extensions/__tests__/canvas-recap.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-recap.test.js +0 -62
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +0 -432
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +0 -152
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.js +0 -88
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.js +0 -96
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.js +0 -133
- package/dist/pi-extensions/__tests__/pre-command-gate.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/pre-command-gate.test.js +0 -232
- package/dist/shared/__tests__/env-boundary.test.d.ts +0 -1
- package/dist/shared/__tests__/env-boundary.test.js +0 -95
- package/dist/shared/__tests__/generated-context-grammar.test.d.ts +0 -1
- package/dist/shared/__tests__/generated-context-grammar.test.js +0 -80
- package/docs/compat/hearth-crtr-v1.md +0 -179
- package/docs/compat/hearth-crtr-v2.md +0 -177
- package/docs/compat/hearth-crtr-v3.md +0 -176
- package/docs/compat/hearth-crtr-v4.md +0 -182
- package/docs/compat/hearth-crtr-v5.md +0 -169
|
@@ -1,311 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// surface: the crouter side after a sync is a plain memory/<name>.md document.
|
|
4
|
-
import { existsSync } from 'node:fs';
|
|
5
|
-
import { homedir } from 'node:os';
|
|
6
|
-
import { basename, dirname, join, relative, resolve, sep } from 'node:path';
|
|
7
|
-
import { defineLeaf } from '../../core/command.js';
|
|
8
|
-
import { usage } from '../../core/errors.js';
|
|
9
|
-
import { parseFrontmatterGeneric } from '../../core/frontmatter.js';
|
|
10
|
-
import { pathExists, readJsonIfExists, readText, walkFiles, writeJson, writeText } from '../../core/fs-utils.js';
|
|
11
|
-
import { composeCanonicalName } from '../../core/memory/identity.js';
|
|
12
|
-
import { findProjectScopeRoot } from '../../core/scope.js';
|
|
13
|
-
import { CRTR_DIR_NAME } from '../../types.js';
|
|
14
|
-
import { memoryFilePath, requireMountedStore, resolveWriteSelector, serializeMemoryDoc } from '../memory/shared.js';
|
|
15
|
-
import { normalizedName, routeFromDescription, scalarString } from './sync-shared.js';
|
|
16
|
-
const LEGACY_BOOT_SKILL_MARKER_PREFIX = '<!-- crtr-boot-skill v';
|
|
17
|
-
const HOST_SKILL_FILE = 'SKILL.md';
|
|
18
|
-
const IGNORE_FILE = 'skill-import-ignore.json';
|
|
19
|
-
// Directories a skill-root walk never descends into — build/dependency trees
|
|
20
|
-
// plus crouter's own state dir.
|
|
21
|
-
const SKILL_WALK_JUNK_DIRS = new Set([
|
|
22
|
-
'node_modules', '.git', '.venv', 'venv', 'dist', 'build', '.next', '.cache', '.yalc', '.sisyphus', CRTR_DIR_NAME,
|
|
23
|
-
]);
|
|
24
|
-
function projectDir() {
|
|
25
|
-
const root = findProjectScopeRoot();
|
|
26
|
-
return root ? dirname(root) : null;
|
|
27
|
-
}
|
|
28
|
-
function ignoreFilePath() {
|
|
29
|
-
return join(homedir(), '.crouter', IGNORE_FILE);
|
|
30
|
-
}
|
|
31
|
-
function defaultSourceRoots() {
|
|
32
|
-
const roots = [
|
|
33
|
-
{ label: 'claude-user', root: join(homedir(), '.claude', 'skills'), defaultScope: 'user' },
|
|
34
|
-
{ label: 'pi-user', root: join(homedir(), '.pi', 'agent', 'skills'), defaultScope: 'user' },
|
|
35
|
-
];
|
|
36
|
-
const proj = projectDir();
|
|
37
|
-
if (proj) {
|
|
38
|
-
roots.push({ label: 'claude-project', root: join(proj, '.claude', 'skills'), defaultScope: 'project' });
|
|
39
|
-
roots.push({ label: 'pi-project', root: join(proj, '.pi', 'agent', 'skills'), defaultScope: 'project' });
|
|
40
|
-
}
|
|
41
|
-
return roots;
|
|
42
|
-
}
|
|
43
|
-
function sourceRootsFromArg(sourceArg, scopeArg) {
|
|
44
|
-
if (sourceArg === undefined)
|
|
45
|
-
return defaultSourceRoots();
|
|
46
|
-
const root = resolve(sourceArg);
|
|
47
|
-
if (scopeArg !== undefined && scopeArg !== 'user' && scopeArg !== 'project') {
|
|
48
|
-
throw usage(`invalid --scope: ${scopeArg} (expected user|project)`);
|
|
49
|
-
}
|
|
50
|
-
return [{ label: 'source', root, defaultScope: scopeArg ?? 'user' }];
|
|
51
|
-
}
|
|
52
|
-
function collectCandidates(rootDef) {
|
|
53
|
-
const root = rootDef.root;
|
|
54
|
-
if (!existsSync(root))
|
|
55
|
-
return [];
|
|
56
|
-
const statRoot = resolve(root);
|
|
57
|
-
const candidates = [];
|
|
58
|
-
if (basename(statRoot) === HOST_SKILL_FILE) {
|
|
59
|
-
candidates.push({ path: statRoot, root: dirname(statRoot), source: rootDef.label, defaultScope: rootDef.defaultScope });
|
|
60
|
-
return candidates;
|
|
61
|
-
}
|
|
62
|
-
const directSkill = join(statRoot, HOST_SKILL_FILE);
|
|
63
|
-
if (existsSync(directSkill)) {
|
|
64
|
-
candidates.push({ path: directSkill, root: dirname(statRoot), source: rootDef.label, defaultScope: rootDef.defaultScope });
|
|
65
|
-
return candidates;
|
|
66
|
-
}
|
|
67
|
-
for (const file of walkFiles(statRoot, (name) => name === HOST_SKILL_FILE, (name) => SKILL_WALK_JUNK_DIRS.has(name))) {
|
|
68
|
-
candidates.push({ path: file, root: statRoot, source: rootDef.label, defaultScope: rootDef.defaultScope });
|
|
69
|
-
}
|
|
70
|
-
return candidates;
|
|
71
|
-
}
|
|
72
|
-
function nameForCandidate(candidate, fm) {
|
|
73
|
-
const fmName = scalarString(fm?.name);
|
|
74
|
-
if (fmName && fmName.trim() !== '')
|
|
75
|
-
return normalizedName(fmName);
|
|
76
|
-
const relDir = relative(candidate.root, dirname(candidate.path)).split(sep).join('/');
|
|
77
|
-
return normalizedName(relDir || basename(dirname(candidate.path)));
|
|
78
|
-
}
|
|
79
|
-
function storeResolver() {
|
|
80
|
-
const cache = new Map();
|
|
81
|
-
return (scope) => {
|
|
82
|
-
const cached = cache.get(scope);
|
|
83
|
-
if (cached !== undefined)
|
|
84
|
-
return cached;
|
|
85
|
-
const { memoryDir, store } = resolveWriteSelector({ scope });
|
|
86
|
-
requireMountedStore(store);
|
|
87
|
-
const resolved = { memoryDir, namespace: store.namespace };
|
|
88
|
-
cache.set(scope, resolved);
|
|
89
|
-
return resolved;
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
function readIgnoreState() {
|
|
93
|
-
let doc;
|
|
94
|
-
try {
|
|
95
|
-
doc = readJsonIfExists(ignoreFilePath());
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
throw usage(`invalid JSON in ${ignoreFilePath()}: ${e instanceof Error ? e.message : String(e)}`);
|
|
99
|
-
}
|
|
100
|
-
if (doc === null)
|
|
101
|
-
return { version: 1, ignored: [] };
|
|
102
|
-
if (typeof doc !== 'object' ||
|
|
103
|
-
doc === null ||
|
|
104
|
-
doc.version !== 1 ||
|
|
105
|
-
!Array.isArray(doc.ignored)) {
|
|
106
|
-
throw usage(`malformed ${ignoreFilePath()}: expected {"version":1,"ignored":[...]}`);
|
|
107
|
-
}
|
|
108
|
-
const ignored = [];
|
|
109
|
-
for (const entry of doc.ignored) {
|
|
110
|
-
if (typeof entry !== 'object' || entry === null)
|
|
111
|
-
continue;
|
|
112
|
-
const e = entry;
|
|
113
|
-
if (typeof e.source === 'string' &&
|
|
114
|
-
typeof e.name === 'string' &&
|
|
115
|
-
(e.scope === 'user' || e.scope === 'project') &&
|
|
116
|
-
typeof e.ignoredAt === 'string') {
|
|
117
|
-
ignored.push({ source: resolve(e.source), name: e.name, scope: e.scope, ignoredAt: e.ignoredAt });
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return { version: 1, ignored };
|
|
121
|
-
}
|
|
122
|
-
function writeIgnoreState(state) {
|
|
123
|
-
writeJson(ignoreFilePath(), state);
|
|
124
|
-
}
|
|
125
|
-
function isIgnored(prepared, state) {
|
|
126
|
-
const source = resolve(prepared.candidate.path);
|
|
127
|
-
return state.ignored.some((entry) => entry.source === source ||
|
|
128
|
-
(entry.scope === prepared.scope && entry.name === prepared.name));
|
|
129
|
-
}
|
|
130
|
-
function rememberIgnored(prepared, state) {
|
|
131
|
-
if (isIgnored(prepared, state))
|
|
132
|
-
return false;
|
|
133
|
-
state.ignored.push({
|
|
134
|
-
source: resolve(prepared.candidate.path),
|
|
135
|
-
name: prepared.name,
|
|
136
|
-
scope: prepared.scope,
|
|
137
|
-
ignoredAt: new Date().toISOString(),
|
|
138
|
-
});
|
|
139
|
-
state.ignored.sort((a, b) => `${a.scope}/${a.name}`.localeCompare(`${b.scope}/${b.name}`));
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
function skipResult(candidate, scope, reason) {
|
|
143
|
-
return { source: candidate.path, target: '', name: '', scope, status: 'skipped', reason };
|
|
144
|
-
}
|
|
145
|
-
function prepareCandidate(candidate, stores, scopeOverride) {
|
|
146
|
-
const raw = readText(candidate.path);
|
|
147
|
-
const scope = scopeOverride ?? candidate.defaultScope;
|
|
148
|
-
if (raw.includes(LEGACY_BOOT_SKILL_MARKER_PREFIX)) {
|
|
149
|
-
return skipResult(candidate, scope, 'legacy generated crtr boot skill is pruned by host exports, not imported');
|
|
150
|
-
}
|
|
151
|
-
const parsed = parseFrontmatterGeneric(raw);
|
|
152
|
-
const sourceFm = parsed.data ?? {};
|
|
153
|
-
const kind = sourceFm.kind === 'preference' ? 'preference' : 'knowledge';
|
|
154
|
-
const localName = nameForCandidate(candidate, sourceFm);
|
|
155
|
-
if (localName === '')
|
|
156
|
-
return skipResult(candidate, scope, 'could not derive memory document name');
|
|
157
|
-
const store = stores(scope);
|
|
158
|
-
const target = memoryFilePath(store.memoryDir, localName);
|
|
159
|
-
const name = composeCanonicalName(store.namespace, localName);
|
|
160
|
-
return { candidate, raw, parsed, sourceFm, kind, name, scope, target };
|
|
161
|
-
}
|
|
162
|
-
function convertPrepared(prepared, opts) {
|
|
163
|
-
if (pathExists(prepared.target) && !opts.overwrite) {
|
|
164
|
-
return {
|
|
165
|
-
source: prepared.candidate.path,
|
|
166
|
-
target: prepared.target,
|
|
167
|
-
name: prepared.name,
|
|
168
|
-
scope: prepared.scope,
|
|
169
|
-
status: 'skipped',
|
|
170
|
-
reason: 'target memory doc already exists; re-run with --overwrite to replace it',
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
const description = scalarString(prepared.sourceFm.description) ?? '';
|
|
174
|
-
const frontmatter = { ...prepared.sourceFm };
|
|
175
|
-
delete frontmatter.name;
|
|
176
|
-
delete frontmatter.description;
|
|
177
|
-
delete frontmatter.type;
|
|
178
|
-
delete frontmatter.keywords;
|
|
179
|
-
// Retired visibility-axis fields a stale source may still carry — they must
|
|
180
|
-
// never pass through into a substrate doc.
|
|
181
|
-
delete frontmatter['system-prompt-visibility'];
|
|
182
|
-
delete frontmatter['file-read-visibility'];
|
|
183
|
-
delete frontmatter['applies-to'];
|
|
184
|
-
delete frontmatter['read-when'];
|
|
185
|
-
frontmatter.kind = prepared.kind;
|
|
186
|
-
if (typeof frontmatter['when-and-why-to-read'] !== 'string' || frontmatter['when-and-why-to-read'].trim() === '') {
|
|
187
|
-
frontmatter['when-and-why-to-read'] = routeFromDescription(description, prepared.kind);
|
|
188
|
-
}
|
|
189
|
-
if (typeof frontmatter['short-form'] !== 'string' || frontmatter['short-form'].trim() === '') {
|
|
190
|
-
frontmatter['short-form'] = description.replace(/\s+/g, ' ').trim();
|
|
191
|
-
}
|
|
192
|
-
if (!Array.isArray(frontmatter['surfaces']))
|
|
193
|
-
frontmatter['surfaces'] = [{ on: 'boot', at: 'preview' }];
|
|
194
|
-
if (!opts.dryRun)
|
|
195
|
-
writeText(prepared.target, serializeMemoryDoc(frontmatter, prepared.parsed.body));
|
|
196
|
-
return {
|
|
197
|
-
source: prepared.candidate.path,
|
|
198
|
-
target: prepared.target,
|
|
199
|
-
name: prepared.name,
|
|
200
|
-
scope: prepared.scope,
|
|
201
|
-
status: opts.dryRun ? 'would-import' : 'imported',
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
function ignoreResult(prepared, reason, dryRun) {
|
|
205
|
-
return {
|
|
206
|
-
source: prepared.candidate.path,
|
|
207
|
-
target: prepared.target,
|
|
208
|
-
name: prepared.name,
|
|
209
|
-
scope: prepared.scope,
|
|
210
|
-
status: dryRun ? 'would-ignore' : 'ignored',
|
|
211
|
-
reason,
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
function renderSummary(results, ignoreMode) {
|
|
215
|
-
const imported = results.filter((r) => r.status === 'imported').length;
|
|
216
|
-
const wouldImport = results.filter((r) => r.status === 'would-import').length;
|
|
217
|
-
const skipped = results.filter((r) => r.status === 'skipped').length;
|
|
218
|
-
const ignored = results.filter((r) => r.status === 'ignored').length;
|
|
219
|
-
const wouldIgnore = results.filter((r) => r.status === 'would-ignore').length;
|
|
220
|
-
let header;
|
|
221
|
-
if (ignoreMode)
|
|
222
|
-
header = `crtr sys sync skills — ${wouldIgnore > 0 ? `${wouldIgnore} would ignore` : `${ignored} ignored`}, ${skipped} skipped`;
|
|
223
|
-
else if (wouldImport > 0)
|
|
224
|
-
header = `crtr sys sync skills — dry run: ${wouldImport} would import, ${skipped} skipped, ${ignored} ignored`;
|
|
225
|
-
else
|
|
226
|
-
header = `crtr sys sync skills — ${imported} imported, ${skipped} skipped, ${ignored} ignored`;
|
|
227
|
-
const rows = results.map((r) => {
|
|
228
|
-
const target = r.target || '—';
|
|
229
|
-
const reason = r.reason ? ` (${r.reason})` : '';
|
|
230
|
-
return `| ${r.status} | ${r.scope}/${r.name || '—'} | ${target} | ${r.source}${reason} |`;
|
|
231
|
-
});
|
|
232
|
-
const body = rows.length === 0
|
|
233
|
-
? ['No sync candidates.']
|
|
234
|
-
: ['| status | memory doc | target | source |', '| --- | --- | --- | --- |', ...rows];
|
|
235
|
-
return [header, '', ...body].join('\n');
|
|
236
|
-
}
|
|
237
|
-
export const sysSyncSkillsLeaf = defineLeaf({
|
|
238
|
-
name: 'skills',
|
|
239
|
-
description: 'import host Agent Skill (SKILL.md) bundles as crouter memory docs',
|
|
240
|
-
whenToUse: 'migrating legacy host-native Agent Skill bundles (SKILL.md — Claude/pi user or project skill roots, or an explicit bundle/root via --source) into the crouter memory-doc model. One-way: crouter never re-exports memory docs back to SKILL.md, and stops reading the originals unconditionally once migrated.',
|
|
241
|
-
help: {
|
|
242
|
-
name: 'sys sync skills',
|
|
243
|
-
summary: 'one-way import: host SKILL.md bundles → crouter memory docs',
|
|
244
|
-
params: [
|
|
245
|
-
{ kind: 'flag', name: 'source', type: 'string', required: false, constraint: 'A SKILL.md file, a single skill bundle dir containing SKILL.md, or a skills root to scan recursively. Default: the user/project Claude and pi skill roots that exist.' },
|
|
246
|
-
{ kind: 'flag', name: 'scope', type: 'enum', choices: ['user', 'project'], required: false, constraint: 'Target memory scope for the selected sources. Default: user for user host roots and project for project host roots; an explicit value applies to every selected source. `project` writes into the nearest project store walking up from cwd, which must already declare its `namespace:` — this lane imports documents into a store, never the declaration itself.' },
|
|
247
|
-
{ kind: 'flag', name: 'dry-run', type: 'bool', required: false, constraint: 'Show what would be imported without writing memory docs.' },
|
|
248
|
-
{ kind: 'flag', name: 'overwrite', type: 'bool', required: false, constraint: 'Replace an existing target memory doc. Default: skip existing docs to avoid clobbering user-authored memory.' },
|
|
249
|
-
{ kind: 'flag', name: 'ignore', type: 'bool', required: false, constraint: `Permanently ignore every selected SKILL.md source by recording it in ~/.crouter/${IGNORE_FILE}. Honors --source/--scope; with no --source, ignores every currently discovered default host skill candidate.` },
|
|
250
|
-
{ kind: 'flag', name: 'include-ignored', type: 'bool', required: false, constraint: 'Include ignored candidates in the report without making sync read-only. Pair with --dry-run to audit the full candidate set without importing non-ignored skills.' },
|
|
251
|
-
],
|
|
252
|
-
output: [
|
|
253
|
-
{ name: 'results', type: 'object[]', required: true, constraint: 'Each: {source,target,name,scope,status,reason?}; status is one of imported, skipped, would-import, ignored, would-ignore. `name` is the full canonical name the imported doc answers at — a user import’s bundle name, a project import’s `<namespace>/<bundle name>`.' },
|
|
254
|
-
],
|
|
255
|
-
outputKind: 'object',
|
|
256
|
-
effects: [
|
|
257
|
-
'Writes memory/<bundle name>.md in the selected crouter scope with substrate frontmatter and the SKILL.md body. The file stays store-local; a project import answers at `<namespace>/<bundle name>`.',
|
|
258
|
-
'Refuses a project store that declares no namespace, naming the `crtr sys migrate --dir` (legacy store) or `crtr memory write <namespace> --dir` (empty store) remedy; it never declares one itself.',
|
|
259
|
-
'Skips existing memory docs unless --overwrite is present.',
|
|
260
|
-
'Skips marker-bearing generated crtr boot skills; host exports prune those legacy artifacts instead.',
|
|
261
|
-
`With --ignore: writes ~/.crouter/${IGNORE_FILE} and does not import the selected sources.`,
|
|
262
|
-
'With --dry-run: read-only; writes nothing.',
|
|
263
|
-
],
|
|
264
|
-
},
|
|
265
|
-
run: async (input) => {
|
|
266
|
-
const sourceArg = input['source'];
|
|
267
|
-
const scopeArg = input['scope'];
|
|
268
|
-
const dryRun = input['dryRun'] ?? false;
|
|
269
|
-
const overwrite = input['overwrite'] ?? false;
|
|
270
|
-
const ignoreMode = input['ignore'] ?? false;
|
|
271
|
-
const includeIgnored = input['includeIgnored'] ?? false;
|
|
272
|
-
const roots = sourceRootsFromArg(sourceArg, scopeArg);
|
|
273
|
-
const seen = new Set();
|
|
274
|
-
const candidates = [];
|
|
275
|
-
for (const root of roots) {
|
|
276
|
-
for (const c of collectCandidates(root)) {
|
|
277
|
-
if (seen.has(c.path))
|
|
278
|
-
continue;
|
|
279
|
-
seen.add(c.path);
|
|
280
|
-
candidates.push(c);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
const stores = storeResolver();
|
|
284
|
-
const ignoreState = readIgnoreState();
|
|
285
|
-
const results = [];
|
|
286
|
-
let changedIgnoreState = false;
|
|
287
|
-
for (const candidate of candidates) {
|
|
288
|
-
const prepared = prepareCandidate(candidate, stores, scopeArg);
|
|
289
|
-
if ('status' in prepared) {
|
|
290
|
-
results.push(prepared);
|
|
291
|
-
continue;
|
|
292
|
-
}
|
|
293
|
-
if (ignoreMode) {
|
|
294
|
-
if (!dryRun)
|
|
295
|
-
changedIgnoreState = rememberIgnored(prepared, ignoreState) || changedIgnoreState;
|
|
296
|
-
results.push(ignoreResult(prepared, dryRun ? 'would record permanent ignore' : `recorded in ~/.crouter/${IGNORE_FILE}`, dryRun));
|
|
297
|
-
continue;
|
|
298
|
-
}
|
|
299
|
-
if (isIgnored(prepared, ignoreState)) {
|
|
300
|
-
if (includeIgnored)
|
|
301
|
-
results.push(ignoreResult(prepared, `matched ~/.crouter/${IGNORE_FILE}`, false));
|
|
302
|
-
continue;
|
|
303
|
-
}
|
|
304
|
-
results.push(convertPrepared(prepared, { dryRun, overwrite }));
|
|
305
|
-
}
|
|
306
|
-
if (changedIgnoreState)
|
|
307
|
-
writeIgnoreState(ignoreState);
|
|
308
|
-
return { results, ignoreFile: ignoreFilePath(), ignoreMode };
|
|
309
|
-
},
|
|
310
|
-
render: (result) => renderSummary(result.results, result.ignoreMode === true),
|
|
311
|
-
});
|
|
1
|
+
var _=Object.defineProperty;var s=(e,o)=>_(e,"name",{value:o,configurable:!0});import{existsSync as $}from"node:fs";import{homedir as v}from"node:os";import{basename as j,dirname as h,join as g,relative as E,resolve as y,sep as C}from"node:path";import{defineLeaf as N}from"../../core/command.js";import{usage as I}from"../../core/errors.js";import{parseFrontmatterGeneric as q}from"../../core/frontmatter.js";import{pathExists as T,readJsonIfExists as M,readText as O,walkFiles as P,writeJson as D,writeText as W}from"../../core/fs-utils.js";import{composeCanonicalName as J}from"../../core/memory/identity.js";import{findProjectScopeRoot as G}from"../../core/scope.js";import{CRTR_DIR_NAME as z}from"../../types.js";import{memoryFilePath as H,requireMountedStore as U,resolveWriteSelector as B,serializeMemoryDoc as X}from"../memory/shared.js";import{normalizedName as R,routeFromDescription as Y,scalarString as x}from"./sync-shared.js";const Q="<!-- crtr-boot-skill v",L="SKILL.md",w="skill-import-ignore.json",V=new Set(["node_modules",".git",".venv","venv","dist","build",".next",".cache",".yalc",".sisyphus",z]);function Z(){const e=G();return e?h(e):null}s(Z,"projectDir");function k(){return g(v(),".crouter",w)}s(k,"ignoreFilePath");function ee(){const e=[{label:"claude-user",root:g(v(),".claude","skills"),defaultScope:"user"},{label:"pi-user",root:g(v(),".pi","agent","skills"),defaultScope:"user"}],o=Z();return o&&(e.push({label:"claude-project",root:g(o,".claude","skills"),defaultScope:"project"}),e.push({label:"pi-project",root:g(o,".pi","agent","skills"),defaultScope:"project"})),e}s(ee,"defaultSourceRoots");function te(e,o){if(e===void 0)return ee();const r=y(e);if(o!==void 0&&o!=="user"&&o!=="project")throw I(`invalid --scope: ${o} (expected user|project)`);return[{label:"source",root:r,defaultScope:o??"user"}]}s(te,"sourceRootsFromArg");function oe(e){const o=e.root;if(!$(o))return[];const r=y(o),t=[];if(j(r)===L)return t.push({path:r,root:h(r),source:e.label,defaultScope:e.defaultScope}),t;const i=g(r,L);if($(i))return t.push({path:i,root:h(r),source:e.label,defaultScope:e.defaultScope}),t;for(const a of P(r,c=>c===L,c=>V.has(c)))t.push({path:a,root:r,source:e.label,defaultScope:e.defaultScope});return t}s(oe,"collectCandidates");function re(e,o){const r=x(o?.name);if(r&&r.trim()!=="")return R(r);const t=E(e.root,h(e.path)).split(C).join("/");return R(t||j(h(e.path)))}s(re,"nameForCandidate");function ne(){const e=new Map;return o=>{const r=e.get(o);if(r!==void 0)return r;const{memoryDir:t,store:i}=B({scope:o});U(i);const a={memoryDir:t,namespace:i.namespace};return e.set(o,a),a}}s(ne,"storeResolver");function se(){let e;try{e=M(k())}catch(r){throw I(`invalid JSON in ${k()}: ${r instanceof Error?r.message:String(r)}`)}if(e===null)return{version:1,ignored:[]};if(typeof e!="object"||e===null||e.version!==1||!Array.isArray(e.ignored))throw I(`malformed ${k()}: expected {"version":1,"ignored":[...]}`);const o=[];for(const r of e.ignored){if(typeof r!="object"||r===null)continue;const t=r;typeof t.source=="string"&&typeof t.name=="string"&&(t.scope==="user"||t.scope==="project")&&typeof t.ignoredAt=="string"&&o.push({source:y(t.source),name:t.name,scope:t.scope,ignoredAt:t.ignoredAt})}return{version:1,ignored:o}}s(se,"readIgnoreState");function ie(e){D(k(),e)}s(ie,"writeIgnoreState");function K(e,o){const r=y(e.candidate.path);return o.ignored.some(t=>t.source===r||t.scope===e.scope&&t.name===e.name)}s(K,"isIgnored");function ae(e,o){return K(e,o)?!1:(o.ignored.push({source:y(e.candidate.path),name:e.name,scope:e.scope,ignoredAt:new Date().toISOString()}),o.ignored.sort((r,t)=>`${r.scope}/${r.name}`.localeCompare(`${t.scope}/${t.name}`)),!0)}s(ae,"rememberIgnored");function F(e,o,r){return{source:e.path,target:"",name:"",scope:o,status:"skipped",reason:r}}s(F,"skipResult");function ce(e,o,r){const t=O(e.path),i=r??e.defaultScope;if(t.includes(Q))return F(e,i,"legacy generated crtr boot skill is pruned by host exports, not imported");const a=q(t),c=a.data??{},u=c.kind==="preference"?"preference":"knowledge",d=re(e,c);if(d==="")return F(e,i,"could not derive memory document name");const m=o(i),n=H(m.memoryDir,d),p=J(m.namespace,d);return{candidate:e,raw:t,parsed:a,sourceFm:c,kind:u,name:p,scope:i,target:n}}s(ce,"prepareCandidate");function le(e,o){if(T(e.target)&&!o.overwrite)return{source:e.candidate.path,target:e.target,name:e.name,scope:e.scope,status:"skipped",reason:"target memory doc already exists; re-run with --overwrite to replace it"};const r=x(e.sourceFm.description)??"",t={...e.sourceFm};return delete t.name,delete t.description,delete t.type,delete t.keywords,delete t["system-prompt-visibility"],delete t["file-read-visibility"],delete t["applies-to"],delete t["read-when"],t.kind=e.kind,(typeof t["when-and-why-to-read"]!="string"||t["when-and-why-to-read"].trim()==="")&&(t["when-and-why-to-read"]=Y(r,e.kind)),(typeof t["short-form"]!="string"||t["short-form"].trim()==="")&&(t["short-form"]=r.replace(/\s+/g," ").trim()),Array.isArray(t.surfaces)||(t.surfaces=[{on:"boot",at:"preview"}]),o.dryRun||W(e.target,X(t,e.parsed.body)),{source:e.candidate.path,target:e.target,name:e.name,scope:e.scope,status:o.dryRun?"would-import":"imported"}}s(le,"convertPrepared");function A(e,o,r){return{source:e.candidate.path,target:e.target,name:e.name,scope:e.scope,status:r?"would-ignore":"ignored",reason:o}}s(A,"ignoreResult");function de(e,o){const r=e.filter(n=>n.status==="imported").length,t=e.filter(n=>n.status==="would-import").length,i=e.filter(n=>n.status==="skipped").length,a=e.filter(n=>n.status==="ignored").length,c=e.filter(n=>n.status==="would-ignore").length;let u;o?u=`crtr sys sync skills \u2014 ${c>0?`${c} would ignore`:`${a} ignored`}, ${i} skipped`:t>0?u=`crtr sys sync skills \u2014 dry run: ${t} would import, ${i} skipped, ${a} ignored`:u=`crtr sys sync skills \u2014 ${r} imported, ${i} skipped, ${a} ignored`;const d=e.map(n=>{const p=n.target||"\u2014",f=n.reason?` (${n.reason})`:"";return`| ${n.status} | ${n.scope}/${n.name||"\u2014"} | ${p} | ${n.source}${f} |`}),m=d.length===0?["No sync candidates."]:["| status | memory doc | target | source |","| --- | --- | --- | --- |",...d];return[u,"",...m].join(`
|
|
2
|
+
`)}s(de,"renderSummary");const Le=N({name:"skills",description:"import host Agent Skill (SKILL.md) bundles as crouter memory docs",whenToUse:"migrating legacy host-native Agent Skill bundles (SKILL.md \u2014 Claude/pi user or project skill roots, or an explicit bundle/root via --source) into the crouter memory-doc model. One-way: crouter never re-exports memory docs back to SKILL.md, and stops reading the originals unconditionally once migrated.",help:{name:"sys sync skills",summary:"one-way import: host SKILL.md bundles \u2192 crouter memory docs",params:[{kind:"flag",name:"source",type:"string",required:!1,constraint:"A SKILL.md file, a single skill bundle dir containing SKILL.md, or a skills root to scan recursively. Default: the user/project Claude and pi skill roots that exist."},{kind:"flag",name:"scope",type:"enum",choices:["user","project"],required:!1,constraint:"Target memory scope for the selected sources. Default: user for user host roots and project for project host roots; an explicit value applies to every selected source. `project` writes into the nearest project store walking up from cwd, which must already declare its `namespace:` \u2014 this lane imports documents into a store, never the declaration itself."},{kind:"flag",name:"dry-run",type:"bool",required:!1,constraint:"Show what would be imported without writing memory docs."},{kind:"flag",name:"overwrite",type:"bool",required:!1,constraint:"Replace an existing target memory doc. Default: skip existing docs to avoid clobbering user-authored memory."},{kind:"flag",name:"ignore",type:"bool",required:!1,constraint:`Permanently ignore every selected SKILL.md source by recording it in ~/.crouter/${w}. Honors --source/--scope; with no --source, ignores every currently discovered default host skill candidate.`},{kind:"flag",name:"include-ignored",type:"bool",required:!1,constraint:"Include ignored candidates in the report without making sync read-only. Pair with --dry-run to audit the full candidate set without importing non-ignored skills."}],output:[{name:"results",type:"object[]",required:!0,constraint:"Each: {source,target,name,scope,status,reason?}; status is one of imported, skipped, would-import, ignored, would-ignore. `name` is the full canonical name the imported doc answers at \u2014 a user import\u2019s bundle name, a project import\u2019s `<namespace>/<bundle name>`."}],outputKind:"object",effects:["Writes memory/<bundle name>.md in the selected crouter scope with substrate frontmatter and the SKILL.md body. The file stays store-local; a project import answers at `<namespace>/<bundle name>`.","Refuses a project store that declares no namespace, naming the `crtr sys migrate --dir` (legacy store) or `crtr memory write <namespace> --dir` (empty store) remedy; it never declares one itself.","Skips existing memory docs unless --overwrite is present.","Skips marker-bearing generated crtr boot skills; host exports prune those legacy artifacts instead.",`With --ignore: writes ~/.crouter/${w} and does not import the selected sources.`,"With --dry-run: read-only; writes nothing."]},run:s(async e=>{const o=e.source,r=e.scope,t=e.dryRun??!1,i=e.overwrite??!1,a=e.ignore??!1,c=e.includeIgnored??!1,u=te(o,r),d=new Set,m=[];for(const b of u)for(const l of oe(b))d.has(l.path)||(d.add(l.path),m.push(l));const n=ne(),p=se(),f=[];let S=!1;for(const b of m){const l=ce(b,n,r);if("status"in l){f.push(l);continue}if(a){t||(S=ae(l,p)||S),f.push(A(l,t?"would record permanent ignore":`recorded in ~/.crouter/${w}`,t));continue}if(K(l,p)){c&&f.push(A(l,`matched ~/.crouter/${w}`,!1));continue}f.push(le(l,{dryRun:t,overwrite:i}))}return S&&ie(p),{results:f,ignoreFile:k(),ignoreMode:a}},"run"),render:s(e=>de(e.results,e.ignoreMode===!0),"render")});export{Le as sysSyncSkillsLeaf};
|
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// conversion lanes from non-crouter guidance surfaces into crouter memory
|
|
3
|
-
// docs. See each child leaf for its exact source/target/effects contract.
|
|
4
|
-
import { defineBranch } from '../../core/command.js';
|
|
5
|
-
import { sysSyncSkillsLeaf } from './sync-skills.js';
|
|
6
|
-
import { sysSyncProjectGuidanceLeaf } from './sync-project-guidance.js';
|
|
7
|
-
import { sysSyncDepsLeaf } from './sync-deps.js';
|
|
8
|
-
export const sysSyncBranch = defineBranch({
|
|
9
|
-
name: 'sync',
|
|
10
|
-
description: 'migrate non-crouter guidance surfaces into crouter memory docs',
|
|
11
|
-
whenToUse: 'importing or migrating an external guidance source — host Agent Skill bundles, project CLAUDE.md/AGENTS.md/.claude/rules, or npm-dependency-shipped Agent Skill bundles — into the crouter memory-doc model',
|
|
12
|
-
help: {
|
|
13
|
-
name: 'sys sync',
|
|
14
|
-
summary: 'migrate external guidance sources into crouter memory docs',
|
|
15
|
-
model: "Three independent one-way conversion lanes, none of which ever export memory docs back to their source: skills imports host-native SKILL.md bundles into a scope-root memory dir; project-guidance migrates a project's own CLAUDE.md/AGENTS.md/.claude/rules into that same directory's OWN .crouter/memory/; deps vendors Agent Skill bundles shipped inside installed npm dependencies into the owning project's .crouter/memory/deps/ as wholly derived, regenerated-per-run docs.",
|
|
16
|
-
},
|
|
17
|
-
children: [sysSyncSkillsLeaf, sysSyncProjectGuidanceLeaf, sysSyncDepsLeaf],
|
|
18
|
-
});
|
|
1
|
+
import{defineBranch as e}from"../../core/command.js";import{sysSyncSkillsLeaf as r}from"./sync-skills.js";import{sysSyncProjectGuidanceLeaf as o}from"./sync-project-guidance.js";import{sysSyncDepsLeaf as n}from"./sync-deps.js";const d=e({name:"sync",description:"migrate non-crouter guidance surfaces into crouter memory docs",whenToUse:"importing or migrating an external guidance source \u2014 host Agent Skill bundles, project CLAUDE.md/AGENTS.md/.claude/rules, or npm-dependency-shipped Agent Skill bundles \u2014 into the crouter memory-doc model",help:{name:"sys sync",summary:"migrate external guidance sources into crouter memory docs",model:"Three independent one-way conversion lanes, none of which ever export memory docs back to their source: skills imports host-native SKILL.md bundles into a scope-root memory dir; project-guidance migrates a project's own CLAUDE.md/AGENTS.md/.claude/rules into that same directory's OWN .crouter/memory/; deps vendors Agent Skill bundles shipped inside installed npm dependencies into the owning project's .crouter/memory/deps/ as wholly derived, regenerated-per-run docs."},children:[r,o,n]});export{d as sysSyncBranch};
|
|
@@ -1,147 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { updateState } from '../../core/config.js';
|
|
3
|
-
import { projectScopeRoot } from '../../core/scope.js';
|
|
4
|
-
import { selfCheck, selfUpdate, contentCheck } from '../../core/self-update.js';
|
|
5
|
-
import { marketUpdate } from '../pkg/market-manage.js';
|
|
6
|
-
import { pluginUpdate } from '../pkg/plugin-manage.js';
|
|
7
|
-
import { nowIso } from '../../core/fs-utils.js';
|
|
8
|
-
import { processLocatedGeneration, readPackageVersion, runtimeManifest, selectedGeneration } from './shared.js';
|
|
9
|
-
export const sysUpdateLeaf = defineLeaf({
|
|
10
|
-
name: 'update',
|
|
11
|
-
description: 'update binary and content',
|
|
12
|
-
whenToUse: 'upgrading crtr or its installed plugins and marketplaces — pull the latest binary, refresh installed content, or both, or just check what is out of date without applying anything.',
|
|
13
|
-
help: {
|
|
14
|
-
name: 'sys update',
|
|
15
|
-
summary: 'update the crtr binary and/or installed plugins and marketplaces',
|
|
16
|
-
params: [
|
|
17
|
-
{ kind: 'flag', name: 'target', type: 'enum', choices: ['self', 'content', 'all'], required: false, constraint: "What to update. Default: all." },
|
|
18
|
-
{ kind: 'flag', name: 'check', type: 'bool', required: false, constraint: 'Check for updates without applying them (bounded, blocking).' },
|
|
19
|
-
],
|
|
20
|
-
output: [
|
|
21
|
-
{ name: 'target', type: 'string', required: false, constraint: 'Present when applying updates: self | content | all.' },
|
|
22
|
-
{ name: 'status', type: 'string', required: false, constraint: 'done | failed when applying updates.' },
|
|
23
|
-
{ name: 'error', type: 'string', required: false, constraint: 'Failure message when status is failed.' },
|
|
24
|
-
{ name: 'updates', type: 'object[]', required: false, constraint: 'Present when --check. Each: {name, current, latest, up_to_date, unreachable, kind}.' },
|
|
25
|
-
{ name: 'up_to_date', type: 'boolean', required: false, constraint: 'Present when --check. True when all items are up to date.' },
|
|
26
|
-
],
|
|
27
|
-
outputKind: 'object',
|
|
28
|
-
effects: [
|
|
29
|
-
'--check — read-only, bounded network calls.',
|
|
30
|
-
'Default (no --check) — launches a background job; returns job handle immediately.',
|
|
31
|
-
'Content update replaces each marketplace and source-installed plugin checkout with a freshly staged revision, discarding local modifications in those directories.',
|
|
32
|
-
],
|
|
33
|
-
},
|
|
34
|
-
run: async (input) => {
|
|
35
|
-
const target = input['target'];
|
|
36
|
-
const check = input['check'];
|
|
37
|
-
const resolvedTarget = target !== undefined ? target : 'all';
|
|
38
|
-
if (check) {
|
|
39
|
-
// Bounded blocking path: collect check results and return
|
|
40
|
-
const updates = [];
|
|
41
|
-
if (resolvedTarget === 'self' || resolvedTarget === 'all') {
|
|
42
|
-
const r = selfCheck();
|
|
43
|
-
if (r !== null) {
|
|
44
|
-
updates.push({
|
|
45
|
-
name: '@north-light/crouter',
|
|
46
|
-
kind: 'self',
|
|
47
|
-
current: r.current,
|
|
48
|
-
latest: r.latest,
|
|
49
|
-
up_to_date: r.current === r.latest,
|
|
50
|
-
unreachable: false,
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
updates.push({
|
|
55
|
-
name: '@north-light/crouter',
|
|
56
|
-
kind: 'self',
|
|
57
|
-
current: null,
|
|
58
|
-
latest: null,
|
|
59
|
-
up_to_date: true,
|
|
60
|
-
unreachable: true,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (resolvedTarget === 'content' || resolvedTarget === 'all') {
|
|
65
|
-
const entries = contentCheck();
|
|
66
|
-
for (const e of entries) {
|
|
67
|
-
updates.push({
|
|
68
|
-
name: e.name,
|
|
69
|
-
kind: e.kind,
|
|
70
|
-
current: e.current,
|
|
71
|
-
latest: e.latest,
|
|
72
|
-
up_to_date: e.up_to_date,
|
|
73
|
-
unreachable: e.unreachable,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
const up_to_date = updates.every((u) => u.up_to_date || u.unreachable);
|
|
78
|
-
return { updates: updates, up_to_date };
|
|
79
|
-
}
|
|
80
|
-
// Apply path. Content update owns no refresh logic of its own: it runs the
|
|
81
|
-
// same replace-in-place leaves as `pkg market update` and `pkg plugin
|
|
82
|
-
// update`, so every surface refreshes content one way. Marketplaces go
|
|
83
|
-
// first — one registered with no installed plugin is invisible to the
|
|
84
|
-
// plugin sweep.
|
|
85
|
-
try {
|
|
86
|
-
if (resolvedTarget === 'self' || resolvedTarget === 'all') {
|
|
87
|
-
selfUpdate();
|
|
88
|
-
const scopes = ['user'];
|
|
89
|
-
if (projectScopeRoot())
|
|
90
|
-
scopes.unshift('project');
|
|
91
|
-
for (const scope of scopes) {
|
|
92
|
-
updateState(scope, (s) => {
|
|
93
|
-
s.last_self_check = nowIso();
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if (resolvedTarget === 'content' || resolvedTarget === 'all') {
|
|
98
|
-
await marketUpdate.run({});
|
|
99
|
-
await pluginUpdate.run({});
|
|
100
|
-
}
|
|
101
|
-
return { target: resolvedTarget, status: 'done' };
|
|
102
|
-
}
|
|
103
|
-
catch (e) {
|
|
104
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
105
|
-
return { target: resolvedTarget, status: 'failed', error: msg };
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
export const sysVersionLeaf = defineLeaf({
|
|
110
|
-
name: 'version',
|
|
111
|
-
description: 'print installed version',
|
|
112
|
-
whenToUse: 'you need the installed crtr version — to report it in a bug or confirm an upgrade landed.',
|
|
113
|
-
help: {
|
|
114
|
-
name: 'sys version',
|
|
115
|
-
summary: 'report selected and process runtime generations',
|
|
116
|
-
params: [],
|
|
117
|
-
output: [
|
|
118
|
-
{ name: 'version', type: 'string', required: true, constraint: 'Version from this process generation manifest; package.json version in a development checkout.' },
|
|
119
|
-
{ name: 'selected_generation', type: 'object', required: true, constraint: 'Selected runtime generation: {id, version, status}; id/version are null when no selection exists.' },
|
|
120
|
-
{ name: 'process_generation', type: 'object', required: true, constraint: 'Generation containing this loaded module: {id, version, status}; id/version are null in a development checkout.' },
|
|
121
|
-
{ name: 'drift', type: 'boolean', required: true, constraint: 'True when selected and process generation ids differ.' },
|
|
122
|
-
],
|
|
123
|
-
outputKind: 'object',
|
|
124
|
-
effects: ['None. Read-only.'],
|
|
125
|
-
},
|
|
126
|
-
run: async (_input) => {
|
|
127
|
-
const describe = (lookup) => {
|
|
128
|
-
if (lookup.generation === null)
|
|
129
|
-
return { id: null, version: null, status: lookup.error ?? 'no runtime generation' };
|
|
130
|
-
const { id, manifest } = lookup.generation;
|
|
131
|
-
const shape = runtimeManifest.validateManifestShape(manifest, { id, entryName: 'cli' });
|
|
132
|
-
return {
|
|
133
|
-
id,
|
|
134
|
-
version: typeof manifest.packageVersion === 'string' ? manifest.packageVersion : null,
|
|
135
|
-
status: shape.ok ? 'valid' : shape.error,
|
|
136
|
-
};
|
|
137
|
-
};
|
|
138
|
-
const selected = describe(selectedGeneration());
|
|
139
|
-
const process = describe(processLocatedGeneration());
|
|
140
|
-
return {
|
|
141
|
-
version: process.version ?? readPackageVersion(),
|
|
142
|
-
selected_generation: selected,
|
|
143
|
-
process_generation: process,
|
|
144
|
-
drift: selected.id !== null && process.id !== null && selected.id !== process.id,
|
|
145
|
-
};
|
|
146
|
-
},
|
|
147
|
-
});
|
|
1
|
+
var u=Object.defineProperty;var c=(o,s)=>u(o,"name",{value:s,configurable:!0});import{defineLeaf as l}from"../../core/command.js";import{updateState as d}from"../../core/config.js";import{projectScopeRoot as p}from"../../core/scope.js";import{selfCheck as f,selfUpdate as m,contentCheck as h}from"../../core/self-update.js";import{marketUpdate as g}from"../pkg/market-manage.js";import{pluginUpdate as y}from"../pkg/plugin-manage.js";import{nowIso as k}from"../../core/fs-utils.js";import{processLocatedGeneration as b,readPackageVersion as _,runtimeManifest as v,selectedGeneration as w}from"./shared.js";const x=l({name:"update",description:"update binary and content",whenToUse:"upgrading crtr or its installed plugins and marketplaces \u2014 pull the latest binary, refresh installed content, or both, or just check what is out of date without applying anything.",help:{name:"sys update",summary:"update the crtr binary and/or installed plugins and marketplaces",params:[{kind:"flag",name:"target",type:"enum",choices:["self","content","all"],required:!1,constraint:"What to update. Default: all."},{kind:"flag",name:"check",type:"bool",required:!1,constraint:"Check for updates without applying them (bounded, blocking)."}],output:[{name:"target",type:"string",required:!1,constraint:"Present when applying updates: self | content | all."},{name:"status",type:"string",required:!1,constraint:"done | failed when applying updates."},{name:"error",type:"string",required:!1,constraint:"Failure message when status is failed."},{name:"updates",type:"object[]",required:!1,constraint:"Present when --check. Each: {name, current, latest, up_to_date, unreachable, kind}."},{name:"up_to_date",type:"boolean",required:!1,constraint:"Present when --check. True when all items are up to date."}],outputKind:"object",effects:["--check \u2014 read-only, bounded network calls.","Default (no --check) \u2014 launches a background job; returns job handle immediately.","Content update replaces each marketplace and source-installed plugin checkout with a freshly staged revision, discarding local modifications in those directories."]},run:c(async o=>{const s=o.target,i=o.check,n=s!==void 0?s:"all";if(i){const e=[];if(n==="self"||n==="all"){const t=f();t!==null?e.push({name:"@north-light/crouter",kind:"self",current:t.current,latest:t.latest,up_to_date:t.current===t.latest,unreachable:!1}):e.push({name:"@north-light/crouter",kind:"self",current:null,latest:null,up_to_date:!0,unreachable:!0})}if(n==="content"||n==="all"){const t=h();for(const r of t)e.push({name:r.name,kind:r.kind,current:r.current,latest:r.latest,up_to_date:r.up_to_date,unreachable:r.unreachable})}const a=e.every(t=>t.up_to_date||t.unreachable);return{updates:e,up_to_date:a}}try{if(n==="self"||n==="all"){m();const e=["user"];p()&&e.unshift("project");for(const a of e)d(a,t=>{t.last_self_check=k()})}return(n==="content"||n==="all")&&(await g.run({}),await y.run({})),{target:n,status:"done"}}catch(e){const a=e instanceof Error?e.message:String(e);return{target:n,status:"failed",error:a}}},"run")}),G=l({name:"version",description:"print installed version",whenToUse:"you need the installed crtr version \u2014 to report it in a bug or confirm an upgrade landed.",help:{name:"sys version",summary:"report selected and process runtime generations",params:[],output:[{name:"version",type:"string",required:!0,constraint:"Version from this process generation manifest; package.json version in a development checkout."},{name:"selected_generation",type:"object",required:!0,constraint:"Selected runtime generation: {id, version, status}; id/version are null when no selection exists."},{name:"process_generation",type:"object",required:!0,constraint:"Generation containing this loaded module: {id, version, status}; id/version are null in a development checkout."},{name:"drift",type:"boolean",required:!0,constraint:"True when selected and process generation ids differ."}],outputKind:"object",effects:["None. Read-only."]},run:c(async o=>{const s=c(e=>{if(e.generation===null)return{id:null,version:null,status:e.error??"no runtime generation"};const{id:a,manifest:t}=e.generation,r=v.validateManifestShape(t,{id:a,entryName:"cli"});return{id:a,version:typeof t.packageVersion=="string"?t.packageVersion:null,status:r.ok?"valid":r.error}},"describe"),i=s(w()),n=s(b());return{version:n.version??_(),selected_generation:i,process_generation:n,drift:i.id!==null&&n.id!==null&&i.id!==n.id}},"run")});export{x as sysUpdateLeaf,G as sysVersionLeaf};
|
|
@@ -1,53 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB'];
|
|
7
|
-
let value = bytes;
|
|
8
|
-
let unit = 0;
|
|
9
|
-
while (value >= 1024 && unit < units.length - 1) {
|
|
10
|
-
value /= 1024;
|
|
11
|
-
unit++;
|
|
12
|
-
}
|
|
13
|
-
return `${value >= 10 || unit === 0 ? value.toFixed(0) : value.toFixed(1)} ${units[unit]}`;
|
|
14
|
-
}
|
|
15
|
-
export const sysWorktreesLeaf = defineLeaf({
|
|
16
|
-
name: 'worktrees',
|
|
17
|
-
description: 'list managed worktrees quarantined by daemon cleanup',
|
|
18
|
-
whenToUse: 'daemon cleanup has stopped retrying managed worktrees it could not reconcile and you need the recorded refusal, remaining checkout, and disk cost for human intervention',
|
|
19
|
-
help: {
|
|
20
|
-
name: 'sys worktrees',
|
|
21
|
-
summary: 'list managed worktrees the daemon cleanup sweep quarantined',
|
|
22
|
-
params: [],
|
|
23
|
-
output: [
|
|
24
|
-
{ name: 'worktrees', type: 'QuarantinedWorktreeDTO[]', required: true, constraint: 'Oldest refusal first. Each record: {node_id, path, branch, repo_root, reason, detail?, attempts, last_attempt, size_bytes}; size_bytes is null when the checkout path is gone or cannot be measured.' },
|
|
25
|
-
],
|
|
26
|
-
outputKind: 'object',
|
|
27
|
-
effects: ['None. Read-only.'],
|
|
28
|
-
},
|
|
29
|
-
run: async () => {
|
|
30
|
-
try {
|
|
31
|
-
return { worktrees: await cliClient().listQuarantinedWorktrees() };
|
|
32
|
-
}
|
|
33
|
-
catch (err) {
|
|
34
|
-
rethrowAsCliError(err);
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
render: (result) => {
|
|
38
|
-
const worktrees = result['worktrees'];
|
|
39
|
-
if (worktrees.length === 0)
|
|
40
|
-
return '0 quarantined managed worktrees.';
|
|
41
|
-
return `${worktrees.length} quarantined managed worktree${worktrees.length === 1 ? '' : 's'}:\n\n${worktrees.map((worktree) => {
|
|
42
|
-
const details = [
|
|
43
|
-
`- \`${worktree.node_id}\` — ${worktree.reason} · ${formatSize(worktree.size_bytes)} · ${worktree.attempts} attempt${worktree.attempts === 1 ? '' : 's'} · ${worktree.last_attempt}`,
|
|
44
|
-
` - path: \`${worktree.path}\``,
|
|
45
|
-
` - branch: \`${worktree.branch}\``,
|
|
46
|
-
` - repo root: \`${worktree.repo_root}\``,
|
|
47
|
-
];
|
|
48
|
-
if (worktree.detail !== undefined)
|
|
49
|
-
details.push(` - detail: ${worktree.detail}`);
|
|
50
|
-
return details.join('\n');
|
|
51
|
-
}).join('\n')}`;
|
|
52
|
-
},
|
|
53
|
-
});
|
|
1
|
+
var i=Object.defineProperty;var r=(t,n)=>i(t,"name",{value:n,configurable:!0});import{defineLeaf as o}from"../../core/command.js";import{cliClient as s,rethrowAsCliError as d}from"../api-client.js";function u(t){if(t===null||!Number.isFinite(t)||t<0)return"unmeasurable";const n=["B","KiB","MiB","GiB","TiB"];let e=t,a=0;for(;e>=1024&&a<n.length-1;)e/=1024,a++;return`${e>=10||a===0?e.toFixed(0):e.toFixed(1)} ${n[a]}`}r(u,"formatSize");const p=o({name:"worktrees",description:"list managed worktrees quarantined by daemon cleanup",whenToUse:"daemon cleanup has stopped retrying managed worktrees it could not reconcile and you need the recorded refusal, remaining checkout, and disk cost for human intervention",help:{name:"sys worktrees",summary:"list managed worktrees the daemon cleanup sweep quarantined",params:[],output:[{name:"worktrees",type:"QuarantinedWorktreeDTO[]",required:!0,constraint:"Oldest refusal first. Each record: {node_id, path, branch, repo_root, reason, detail?, attempts, last_attempt, size_bytes}; size_bytes is null when the checkout path is gone or cannot be measured."}],outputKind:"object",effects:["None. Read-only."]},run:r(async()=>{try{return{worktrees:await s().listQuarantinedWorktrees()}}catch(t){d(t)}},"run"),render:r(t=>{const n=t.worktrees;return n.length===0?"0 quarantined managed worktrees.":`${n.length} quarantined managed worktree${n.length===1?"":"s"}:
|
|
2
|
+
|
|
3
|
+
${n.map(e=>{const a=[`- \`${e.node_id}\` \u2014 ${e.reason} \xB7 ${u(e.size_bytes)} \xB7 ${e.attempts} attempt${e.attempts===1?"":"s"} \xB7 ${e.last_attempt}`,` - path: \`${e.path}\``,` - branch: \`${e.branch}\``,` - repo root: \`${e.repo_root}\``];return e.detail!==void 0&&a.push(` - detail: ${e.detail}`),a.join(`
|
|
4
|
+
`)}).join(`
|
|
5
|
+
`)}`},"render")});export{p as sysWorktreesLeaf};
|
package/dist/commands/sys.js
CHANGED
|
@@ -1,18 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { defineSysBranch } from './sys/branch.js';
|
|
3
|
-
import { configBranch } from './sys/config.js';
|
|
4
|
-
import { daemonBranch } from './sys/daemon.js';
|
|
5
|
-
import { sysDoctorLeaf } from './sys/doctor.js';
|
|
6
|
-
import { sysFeedbackLeaf } from './sys/feedback.js';
|
|
7
|
-
import { sysLogsLeaf } from './sys/logs.js';
|
|
8
|
-
import { sysWorktreesLeaf } from './sys/worktrees.js';
|
|
9
|
-
import { sysSettingsLeaf } from './sys/settings.js';
|
|
10
|
-
import { sysSetupLeaf } from './sys/setup.js';
|
|
11
|
-
import { supportBranch } from './sys/support.js';
|
|
12
|
-
import { contextBranch } from './sys/context.js';
|
|
13
|
-
import { sysSyncBranch } from './sys/sync.js';
|
|
14
|
-
import { sysMigrateLeaf } from './sys/migrate.js';
|
|
15
|
-
import { sysUpdateLeaf, sysVersionLeaf } from './sys/update.js';
|
|
16
|
-
export function registerSys() {
|
|
17
|
-
return defineSysBranch([sysSettingsLeaf, configBranch, sysSetupLeaf, sysDoctorLeaf, contextBranch, sysFeedbackLeaf, sysLogsLeaf, sysWorktreesLeaf, supportBranch, sysUpdateLeaf, sysVersionLeaf, sysMigrateLeaf, sysSyncBranch, daemonBranch]);
|
|
18
|
-
}
|
|
1
|
+
var s=Object.defineProperty;var r=(o,m)=>s(o,"name",{value:m,configurable:!0});import{defineSysBranch as t}from"./sys/branch.js";import{configBranch as e}from"./sys/config.js";import{daemonBranch as f}from"./sys/daemon.js";import{sysDoctorLeaf as i}from"./sys/doctor.js";import{sysFeedbackLeaf as a}from"./sys/feedback.js";import{sysLogsLeaf as p}from"./sys/logs.js";import{sysWorktreesLeaf as n}from"./sys/worktrees.js";import{sysSettingsLeaf as y}from"./sys/settings.js";import{sysSetupLeaf as c}from"./sys/setup.js";import{supportBranch as L}from"./sys/support.js";import{contextBranch as h}from"./sys/context.js";import{sysSyncBranch as B}from"./sys/sync.js";import{sysMigrateLeaf as g}from"./sys/migrate.js";import{sysUpdateLeaf as S,sysVersionLeaf as d}from"./sys/update.js";function z(){return t([y,e,c,i,h,a,p,n,L,S,d,g,B,f])}r(z,"registerSys");export{z as registerSys};
|
|
@@ -1,38 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { crtrHome } from './canvas/paths.js';
|
|
4
|
-
/** One durable-mutation signal file under `crtrHome()/signals/<name>`, shared by
|
|
5
|
-
* every subsystem that needs to tell every open viewer "something changed"
|
|
6
|
-
* without watching each individual record's directory. */
|
|
7
|
-
export function activityPath(name) {
|
|
8
|
-
return join(crtrHome(), 'signals', name);
|
|
9
|
-
}
|
|
10
|
-
/** Signal one durable mutation to every open watcher of `name`. */
|
|
11
|
-
export function signalActivity(name) {
|
|
12
|
-
const path = activityPath(name);
|
|
13
|
-
try {
|
|
14
|
-
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
15
|
-
writeFileSync(path, `${Date.now()}\n`, { mode: 0o600 });
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
// A later read of the underlying record is still authoritative.
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export function watchActivity(name, onChange) {
|
|
22
|
-
const path = activityPath(name);
|
|
23
|
-
try {
|
|
24
|
-
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
25
|
-
const watcher = watch(dirname(path), (_event, filename) => {
|
|
26
|
-
if (String(filename) === basename(path))
|
|
27
|
-
onChange();
|
|
28
|
-
});
|
|
29
|
-
return () => watcher.close();
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
// The caller keeps a working no-op unwatch — a watch failure must not crash
|
|
33
|
-
// whatever set it up to be best-effort — but it stays surfaced once, since a
|
|
34
|
-
// silently-never-refreshing viewer is a real symptom, not a background detail.
|
|
35
|
-
console.error(`activity-signal: failed to watch "${name}": ${error instanceof Error ? error.message : String(error)}`);
|
|
36
|
-
return () => { };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
1
|
+
var m=Object.defineProperty;var o=(t,r)=>m(t,"name",{value:r,configurable:!0});import{basename as u,dirname as n,join as f}from"node:path";import{mkdirSync as c,watch as h,writeFileSync as p}from"node:fs";import{crtrHome as y}from"./canvas/paths.js";function a(t){return f(y(),"signals",t)}o(a,"activityPath");function S(t){const r=a(t);try{c(n(r),{recursive:!0,mode:448}),p(r,`${Date.now()}
|
|
2
|
+
`,{mode:384})}catch{}}o(S,"signalActivity");function x(t,r){const i=a(t);try{c(n(i),{recursive:!0,mode:448});const e=h(n(i),(l,s)=>{String(s)===u(i)&&r()});return()=>e.close()}catch(e){return console.error(`activity-signal: failed to watch "${t}": ${e instanceof Error?e.message:String(e)}`),()=>{}}}o(x,"watchActivity");export{a as activityPath,S as signalActivity,x as watchActivity};
|