@north-light/crouter 0.3.318 → 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.js +2 -912
- package/dist/api/dto/attach.js +0 -13
- package/dist/api/dto/bash-jobs.js +1 -9
- package/dist/api/dto/broker-ops.js +0 -6
- package/dist/api/dto/broker.js +0 -20
- package/dist/api/dto/canvas.js +0 -2
- package/dist/api/dto/chat-inventory.js +0 -11
- package/dist/api/dto/common.js +1 -15
- package/dist/api/dto/config.js +0 -3
- package/dist/api/dto/crons.js +1 -10
- package/dist/api/dto/files.js +0 -7
- package/dist/api/dto/focus.js +0 -10
- package/dist/api/dto/health.js +0 -2
- package/dist/api/dto/human-requests.js +0 -4
- package/dist/api/dto/human.js +0 -4
- package/dist/api/dto/inbox.js +0 -4
- package/dist/api/dto/lifecycle.js +0 -3
- package/dist/api/dto/mail.js +0 -1
- package/dist/api/dto/memory.js +0 -6
- package/dist/api/dto/messages.js +0 -2
- package/dist/api/dto/model-config.js +0 -1
- package/dist/api/dto/modelauth.js +0 -4
- package/dist/api/dto/node-outcomes.js +0 -2
- package/dist/api/dto/nodes.js +0 -3
- package/dist/api/dto/profiles.js +1 -4
- package/dist/api/dto/recovery.js +0 -1
- package/dist/api/dto/reports.js +0 -2
- package/dist/api/dto/review-comments.js +0 -5
- package/dist/api/dto/reviews.js +0 -5
- package/dist/api/dto/subscriptions.js +0 -2
- package/dist/api/dto/worktree.js +0 -6
- package/dist/api/errors.js +1 -40
- package/dist/api/index.js +1 -33
- package/dist/api/plugin-manifest-schema.js +0 -23
- package/dist/api/routes.js +1 -147
- package/dist/build-root.js +1 -198
- package/dist/cli.js +3 -99
- package/dist/clients/attach/ansi-cells.js +1 -137
- package/dist/clients/attach/chrome/bash-jobs.js +1 -31
- package/dist/clients/attach/chrome/canvas-panels.js +1 -194
- package/dist/clients/attach/chrome/completion-bell.js +1 -89
- package/dist/clients/attach/chrome/cron-wait.js +1 -34
- package/dist/clients/attach/chrome/git-info.js +2 -44
- package/dist/clients/attach/chrome/header.js +1 -30
- package/dist/clients/attach/chrome/inbox-strip.js +1 -199
- package/dist/clients/attach/chrome/recap.js +1 -19
- package/dist/clients/attach/chrome/review-wait.js +1 -22
- package/dist/clients/attach/chrome/roster.js +4 -275
- package/dist/clients/attach/chrome/status-line.js +1 -117
- package/dist/clients/attach/chrome/ticket-panel.js +1 -280
- package/dist/clients/attach/chrome/widgets.js +1 -51
- package/dist/clients/attach/command.js +1 -107
- package/dist/clients/attach/config.js +1 -274
- package/dist/clients/attach/input/capabilities.js +1 -104
- package/dist/clients/attach/input/clipboard-image.js +3 -220
- package/dist/clients/attach/input/completion-frecency.js +1 -141
- package/dist/clients/attach/input/controller.js +7 -377
- package/dist/clients/attach/input/overlay-owner.js +1 -199
- package/dist/clients/attach/input/ref-autocomplete.js +2 -176
- package/dist/clients/attach/input/titled-editor.js +4 -859
- package/dist/clients/attach/overlays/auth.js +2 -271
- package/dist/clients/attach/overlays/dialogs.js +2 -102
- package/dist/clients/attach/overlays/file-review.js +2 -128
- package/dist/clients/attach/overlays/graph.js +1 -661
- package/dist/clients/attach/overlays/help.js +1 -211
- package/dist/clients/attach/overlays/mcp.js +1 -302
- package/dist/clients/attach/overlays/pickers.js +1 -163
- package/dist/clients/attach/render/activity-slot.js +1 -13
- package/dist/clients/attach/render/assistant-message.js +1 -56
- package/dist/clients/attach/render/card-presentation.js +5 -218
- package/dist/clients/attach/render/chat-view.js +5 -1708
- package/dist/clients/attach/render/condensed-history.js +1 -60
- package/dist/clients/attach/render/context-message.js +1 -63
- package/dist/clients/attach/render/crtr-output.js +17 -905
- package/dist/clients/attach/render/diagram.js +7 -111
- package/dist/clients/attach/render/edit-diff.js +5 -304
- package/dist/clients/attach/render/glyph-codepoints.js +1 -42
- package/dist/clients/attach/render/group-activity.js +2 -263
- package/dist/clients/attach/render/group-recap.js +1 -152
- package/dist/clients/attach/render/markdown-source.js +5 -266
- package/dist/clients/attach/render/measured-container.js +1 -322
- package/dist/clients/attach/render/page-block.js +1 -183
- package/dist/clients/attach/render/scroll-animation.js +1 -80
- package/dist/clients/attach/render/tool-calls.js +3 -361
- package/dist/clients/attach/render/transcript-copy.js +2 -81
- package/dist/clients/attach/render/transcript-search.js +1 -152
- package/dist/clients/attach/render/viewport.js +1 -184
- package/dist/clients/attach/session/banner.js +1 -29
- package/dist/clients/attach/session/bindings.js +1 -71
- package/dist/clients/attach/session/chrome-refresh.js +1 -94
- package/dist/clients/attach/session/connection.js +1 -186
- package/dist/clients/attach/session/context.js +0 -16
- package/dist/clients/attach/session/editor-frame.js +1 -142
- package/dist/clients/attach/session/editor-inventory.js +6 -160
- package/dist/clients/attach/session/file-links.js +1 -68
- package/dist/clients/attach/session/focus-events.js +1 -12
- package/dist/clients/attach/session/frame.js +1 -214
- package/dist/clients/attach/session/frames.js +1 -188
- package/dist/clients/attach/session/identity.js +1 -26
- package/dist/clients/attach/session/input-wiring.js +1 -140
- package/dist/clients/attach/session/invariant.js +1 -15
- package/dist/clients/attach/session/keys.js +1 -77
- package/dist/clients/attach/session/layout.js +1 -59
- package/dist/clients/attach/session/mouse.js +1 -78
- package/dist/clients/attach/session/pane-focus.js +1 -42
- package/dist/clients/attach/session/pane-tag.js +1 -112
- package/dist/clients/attach/session/pi-assets.js +1 -24
- package/dist/clients/attach/session/pi-oauth-flows.js +1 -21
- package/dist/clients/attach/session/profile-files.js +1 -228
- package/dist/clients/attach/session/reconnect.js +1 -175
- package/dist/clients/attach/session/selection.js +3 -108
- package/dist/clients/attach/session/state-sync.js +1 -67
- package/dist/clients/attach/session/surface-frame.js +1 -73
- package/dist/clients/attach/session/surface-host.js +1 -255
- package/dist/clients/attach/session/teardown.js +5 -94
- package/dist/clients/attach/session/transcript-search.js +3 -151
- package/dist/clients/attach/session/whip-achievements.js +2 -145
- package/dist/clients/attach/session/whip.js +1 -362
- package/dist/clients/attach/slash/dispatch.js +1 -706
- package/dist/clients/attach/slash/prompt-preview.js +1 -121
- package/dist/clients/attach/viewer.js +441 -441
- package/dist/clients/conversation/projection.js +1 -324
- package/dist/clients/conversation/submit.js +1 -51
- package/dist/clients/inbox/controller.js +1 -701
- package/dist/clients/inbox/dto-adapt.js +1 -93
- package/dist/clients/inbox/layout.js +1 -9
- package/dist/clients/inbox/page-adapter.js +1 -55
- package/dist/clients/inbox/resolve.js +1 -35
- package/dist/clients/inbox/review/anchors.js +1 -89
- package/dist/clients/inbox/review/comments-client.js +1 -98
- package/dist/clients/inbox/review/companion-pane.js +1 -82
- package/dist/clients/inbox/review/document-surface.js +2 -1188
- package/dist/clients/inbox/review/frame.js +1 -216
- package/dist/clients/inbox/review/keys.js +1 -123
- package/dist/clients/inbox/review/launch.js +1 -151
- package/dist/clients/inbox/review/live-source.js +1 -160
- package/dist/clients/inbox/review/nvim.js +1 -44
- package/dist/clients/inbox/review/remap.js +1 -157
- package/dist/clients/inbox/review/review-client.js +1 -123
- package/dist/clients/inbox/review/roundtrip.js +3 -36
- package/dist/clients/inbox/review/state.js +4 -315
- package/dist/clients/inbox/review-adapter.js +1 -43
- package/dist/clients/inbox/surface.js +1 -152
- package/dist/clients/inbox/tui/ansi.js +3 -321
- package/dist/clients/inbox/tui/input.js +5 -392
- package/dist/clients/inbox/tui/keys.js +1 -104
- package/dist/clients/inbox/tui/page-body.js +1 -66
- package/dist/clients/inbox/tui/panel.js +1 -84
- package/dist/clients/inbox/tui/render.js +2 -368
- package/dist/clients/inbox/tui/slots.js +3 -134
- package/dist/clients/inbox/tui/types.js +0 -1
- package/dist/clients/inbox/tui.js +1 -86
- package/dist/clients/surfaces/host.js +0 -1
- package/dist/commands/api-client.js +4 -290
- package/dist/commands/attention.js +1 -215
- package/dist/commands/canvas-browse.js +1 -70
- package/dist/commands/canvas-config.js +2 -192
- package/dist/commands/canvas-history/grep.js +7 -85
- package/dist/commands/canvas-history/read.js +3 -50
- package/dist/commands/canvas-history/search.js +10 -99
- package/dist/commands/canvas-history/shared.js +1 -139
- package/dist/commands/canvas-history/stats.js +6 -68
- package/dist/commands/canvas-history.js +1 -32
- package/dist/commands/canvas-issue.js +14 -149
- package/dist/commands/canvas-prune.js +1 -108
- package/dist/commands/canvas-roster.js +1 -69
- package/dist/commands/canvas-snapshot.js +1 -34
- package/dist/commands/canvas-use.js +1 -61
- package/dist/commands/canvas.js +1 -49
- package/dist/commands/chord.js +1 -241
- package/dist/commands/cron.js +11 -534
- package/dist/commands/dashboard.js +1 -85
- package/dist/commands/human/components.js +3 -77
- package/dist/commands/human/feedback.js +1 -112
- package/dist/commands/human/prompts.js +1 -331
- package/dist/commands/human/queue.js +1 -191
- package/dist/commands/human/request.js +1 -266
- package/dist/commands/human/review.js +1 -288
- package/dist/commands/human/shared.js +1 -67
- package/dist/commands/human.js +4 -60
- package/dist/commands/memory/delete.js +1 -100
- package/dist/commands/memory/edit.js +21 -219
- package/dist/commands/memory/find.js +2 -244
- package/dist/commands/memory/history.js +5 -199
- package/dist/commands/memory/lint.js +1 -107
- package/dist/commands/memory/list.js +1 -142
- package/dist/commands/memory/move.js +1 -223
- package/dist/commands/memory/origin.js +1 -130
- package/dist/commands/memory/read.js +6 -232
- package/dist/commands/memory/shared.js +12 -802
- package/dist/commands/memory/write.js +13 -235
- package/dist/commands/memory.js +1 -30
- package/dist/commands/node/bash.js +5 -245
- package/dist/commands/node/create.js +3 -332
- package/dist/commands/node/inspect.js +12 -300
- package/dist/commands/node/lifecycle.js +2 -453
- package/dist/commands/node/message.js +1 -161
- package/dist/commands/node/outcome.js +4 -134
- package/dist/commands/node/pyramid.js +2 -79
- package/dist/commands/node/subscription.js +1 -78
- package/dist/commands/node/wait.js +7 -163
- package/dist/commands/node-context.js +2 -159
- package/dist/commands/node-inspect-artifacts.js +8 -109
- package/dist/commands/node-lifecycle-revive.js +1 -217
- package/dist/commands/node-snapshot.js +1 -37
- package/dist/commands/node-transcript.js +1 -62
- package/dist/commands/node-worktree.js +1 -138
- package/dist/commands/node.js +1 -29
- package/dist/commands/pkg/browse/actions.js +1 -198
- package/dist/commands/pkg/browse/catalog.js +1 -466
- package/dist/commands/pkg/browse/command-view.js +1 -191
- package/dist/commands/pkg/browse/detail-panel.js +1 -402
- package/dist/commands/pkg/browse/doc-view.js +1 -89
- package/dist/commands/pkg/browse/list-panel.js +2 -168
- package/dist/commands/pkg/browse/model.js +1 -36
- package/dist/commands/pkg/browse/shell.js +1 -640
- package/dist/commands/pkg/browse.js +1 -27
- package/dist/commands/pkg/market-inspect.js +1 -141
- package/dist/commands/pkg/market-manage.js +1 -327
- package/dist/commands/pkg/market.js +1 -14
- package/dist/commands/pkg/plugin-inspect.js +1 -168
- package/dist/commands/pkg/plugin-manage.js +17 -1109
- package/dist/commands/pkg/plugin.js +1 -14
- package/dist/commands/pkg/shared.js +1 -62
- package/dist/commands/pkg.js +1 -21
- package/dist/commands/profile/default.js +1 -139
- package/dist/commands/profile/delete.js +1 -66
- package/dist/commands/profile/env.js +3 -188
- package/dist/commands/profile/kind.js +2 -35
- package/dist/commands/profile/list.js +1 -43
- package/dist/commands/profile/meta.js +1 -67
- package/dist/commands/profile/new.js +1 -115
- package/dist/commands/profile/pause.js +1 -59
- package/dist/commands/profile/project.js +1 -113
- package/dist/commands/profile/rename.js +1 -38
- package/dist/commands/profile/show.js +1 -52
- package/dist/commands/profile.js +1 -35
- package/dist/commands/push.js +9 -265
- package/dist/commands/revive.js +10 -181
- package/dist/commands/surface/node/cycle.js +1 -83
- package/dist/commands/surface/node/focus.js +1 -81
- package/dist/commands/surface/node/id.js +1 -38
- package/dist/commands/surface/node/pin.js +1 -42
- package/dist/commands/surface/node/placement.js +1 -134
- package/dist/commands/surface-edit.js +1 -157
- package/dist/commands/surface-inbox.js +1 -98
- package/dist/commands/surface-inspect.js +1 -39
- package/dist/commands/surface-node.js +1 -19
- package/dist/commands/surface-reload.js +2 -134
- package/dist/commands/surface-tmux-spread.js +1 -214
- package/dist/commands/surface.js +1 -28
- package/dist/commands/sys/branch.js +1 -19
- package/dist/commands/sys/config.js +1 -353
- package/dist/commands/sys/context/admin/actions.js +2 -246
- package/dist/commands/sys/context/admin/detail-panel.js +1 -247
- package/dist/commands/sys/context/admin/docs-panel.js +1 -191
- package/dist/commands/sys/context/admin/list-view.js +1 -183
- package/dist/commands/sys/context/admin/model.js +1 -229
- package/dist/commands/sys/context/admin/rail-panel.js +1 -227
- package/dist/commands/sys/context/admin/read-view.js +2 -194
- package/dist/commands/sys/context/admin/shell.js +1 -910
- package/dist/commands/sys/context/admin.js +2 -126
- package/dist/commands/sys/context/doc.js +3 -197
- package/dist/commands/sys/context/prompt-review.js +11 -291
- package/dist/commands/sys/context/resolve.js +10 -489
- package/dist/commands/sys/context/sysprompt.js +5 -96
- package/dist/commands/sys/context.js +1 -20
- package/dist/commands/sys/daemon.js +1 -313
- package/dist/commands/sys/doctor.js +1 -617
- package/dist/commands/sys/feedback.js +7 -228
- package/dist/commands/sys/logs.js +3 -129
- package/dist/commands/sys/migrate.js +1 -94
- package/dist/commands/sys/panels/broker-limits-panel.js +2 -110
- package/dist/commands/sys/panels/dependencies-panel.js +1 -80
- package/dist/commands/sys/panels/keybindings-panel.js +1 -703
- package/dist/commands/sys/panels/models-panel.js +1 -1133
- package/dist/commands/sys/panels/plugins-panel.js +1 -80
- package/dist/commands/sys/panels/prefs-panel.js +1 -85
- package/dist/commands/sys/panels/profiles-panel.js +1 -601
- package/dist/commands/sys/panels/provider-panel.js +1 -538
- package/dist/commands/sys/settings-shell.js +1 -400
- package/dist/commands/sys/settings.js +1 -46
- package/dist/commands/sys/setup-core.js +6 -579
- package/dist/commands/sys/setup-settings-runner.js +1 -16
- package/dist/commands/sys/setup-wizard.js +1 -279
- package/dist/commands/sys/setup.js +1 -34
- package/dist/commands/sys/shared.js +1 -81
- package/dist/commands/sys/support/prepare.js +3 -239
- package/dist/commands/sys/support/submit.js +6 -524
- package/dist/commands/sys/support.js +1 -18
- package/dist/commands/sys/sync-deps.js +15 -498
- package/dist/commands/sys/sync-project-guidance.js +4 -481
- package/dist/commands/sys/sync-shared.js +1 -49
- package/dist/commands/sys/sync-skills.js +2 -311
- package/dist/commands/sys/sync.js +1 -18
- package/dist/commands/sys/update.js +1 -147
- package/dist/commands/sys/worktrees.js +5 -53
- package/dist/commands/sys.js +1 -18
- package/dist/core/activity-signal.js +2 -38
- package/dist/core/asset-root.js +1 -18
- package/dist/core/auth-file.js +2 -179
- package/dist/core/auth-interaction.js +3 -94
- package/dist/core/auto-update.js +4 -94
- package/dist/core/bash-guard.js +11 -393
- package/dist/core/bash-jobs.js +7 -411
- package/dist/core/bootstrap.js +2 -53
- package/dist/core/broker-client/client.js +1 -184
- package/dist/core/broker-client/index.js +1 -13
- package/dist/core/broker-client/transport-relay.js +1 -157
- package/dist/core/broker-client/transport-socket.js +1 -179
- package/dist/core/broker-client/transport.js +1 -26
- package/dist/core/canvas/attention.js +1 -47
- package/dist/core/canvas/boot-id.js +1 -26
- package/dist/core/canvas/boot.js +1 -186
- package/dist/core/canvas/browse/app.js +3 -919
- package/dist/core/canvas/browse/model.js +1 -477
- package/dist/core/canvas/browse/pins.js +1 -29
- package/dist/core/canvas/browse/render.js +3 -1055
- package/dist/core/canvas/canvas.js +15 -922
- package/dist/core/canvas/crons.js +11 -481
- package/dist/core/canvas/daemon-owner.js +2 -146
- package/dist/core/canvas/db.js +2 -100
- package/dist/core/canvas/deliveries.js +22 -283
- package/dist/core/canvas/delivery-contract.js +1 -8
- package/dist/core/canvas/executions.js +1 -68
- package/dist/core/canvas/extensions.js +1 -83
- package/dist/core/canvas/focuses.js +1 -77
- package/dist/core/canvas/history.js +24 -860
- package/dist/core/canvas/index.js +1 -15
- package/dist/core/canvas/install-id.js +1 -84
- package/dist/core/canvas/labels.js +1 -43
- package/dist/core/canvas/meta-file.js +1 -89
- package/dist/core/canvas/migrations.js +41 -1150
- package/dist/core/canvas/nav-model.js +1 -231
- package/dist/core/canvas/nav-render.js +1 -260
- package/dist/core/canvas/node-order.js +1 -37
- package/dist/core/canvas/node-recap.js +2 -67
- package/dist/core/canvas/node-sql-migration.js +2 -209
- package/dist/core/canvas/paths.js +1 -153
- package/dist/core/canvas/pid.js +4 -683
- package/dist/core/canvas/recovery.js +3 -565
- package/dist/core/canvas/remote-canvas-source.js +1 -288
- package/dist/core/canvas/remote-transport.js +1 -57
- package/dist/core/canvas/render-source.js +10 -635
- package/dist/core/canvas/sessions.js +1 -78
- package/dist/core/canvas/source.js +1 -47
- package/dist/core/canvas/status-glyph.js +1 -132
- package/dist/core/canvas/telemetry.js +1 -35
- package/dist/core/canvas/types.js +1 -6
- package/dist/core/canvas/waits.js +4 -68
- package/dist/core/canvas/worktrees.js +1 -93
- package/dist/core/clipboard-text.js +1 -57
- package/dist/core/command-hooks/artifact.js +1 -145
- package/dist/core/command-hooks/catalog.js +1 -38
- package/dist/core/command-hooks/compose.js +1 -99
- package/dist/core/command-hooks/discovery.js +1 -228
- package/dist/core/command-hooks/help.js +1 -18
- package/dist/core/command-hooks/index.js +1 -7
- package/dist/core/command-hooks/lifecycle-catalog.js +1 -9
- package/dist/core/command-hooks/lifecycle-create.js +1 -51
- package/dist/core/command-hooks/report.js +1 -28
- package/dist/core/command-hooks/schema.js +1 -157
- package/dist/core/command-hooks/transport/exec-invoke.js +1 -276
- package/dist/core/command-hooks/transport/exec-lifecycle.js +1 -211
- package/dist/core/command-manifests/manifest.js +1 -324
- package/dist/core/command-manifests/registry.js +1 -118
- package/dist/core/command-manifests/schema.js +1 -736
- package/dist/core/command-plugins/bundle.js +1 -261
- package/dist/core/command-plugins/compose.js +1 -65
- package/dist/core/command-plugins/discovery.js +1 -245
- package/dist/core/command-plugins/endpoint.js +1 -48
- package/dist/core/command-plugins/extensions.js +1 -166
- package/dist/core/command-plugins/help-addenda.js +1 -44
- package/dist/core/command-plugins/presence.js +1 -17
- package/dist/core/command-plugins/revalidate.js +2 -152
- package/dist/core/command-plugins/transport/exec-invoke.js +1 -215
- package/dist/core/command-plugins/transport/http-fetch.js +1 -68
- package/dist/core/command-plugins/transport/http-invoke.js +3 -546
- package/dist/core/command.js +10 -739
- package/dist/core/config.js +1 -1059
- package/dist/core/document-lines.js +3 -6
- package/dist/core/env-name.js +1 -9
- package/dist/core/errors.js +1 -52
- package/dist/core/events/emit.js +1 -17
- package/dist/core/events/envelope.js +1 -84
- package/dist/core/events/errors.js +1 -69
- package/dist/core/events/index.js +1 -4
- package/dist/core/events/operation-id.js +1 -24
- package/dist/core/events/read.js +1 -623
- package/dist/core/events/serialize.js +1 -199
- package/dist/core/events/source.js +1 -31
- package/dist/core/events/types.js +1 -11
- package/dist/core/exclusive-lock.js +1 -197
- package/dist/core/fault-classifier.js +1 -96
- package/dist/core/feed/feed.js +7 -202
- package/dist/core/feed/inbox-migrate.js +3 -135
- package/dist/core/feed/inbox.js +10 -122
- package/dist/core/feed/messages.js +6 -212
- package/dist/core/frontmatter.js +1 -35
- package/dist/core/fs-utils.js +3 -202
- package/dist/core/git.js +2 -103
- package/dist/core/help.js +9 -310
- package/dist/core/host-exports/builtins.js +9 -68
- package/dist/core/host-exports/export.js +3 -124
- package/dist/core/human/action-binding.js +1 -40
- package/dist/core/human/answer-text.js +5 -100
- package/dist/core/human/answer.js +1 -119
- package/dist/core/human/claim.js +3 -67
- package/dist/core/human/completion.js +1 -27
- package/dist/core/human/component-docs.js +78 -272
- package/dist/core/human/convention.js +2 -82
- package/dist/core/human/feedback-companion.js +1 -106
- package/dist/core/human/feedback.js +1 -88
- package/dist/core/human/page-authoring.js +1 -19
- package/dist/core/human/page-catalog.js +1 -172
- package/dist/core/human/page-errors.js +1 -7
- package/dist/core/human/page-eval.js +1 -125
- package/dist/core/human/page-html-markdown.js +8 -260
- package/dist/core/human/page-markdown.js +17 -295
- package/dist/core/human/page-schema.js +1 -373
- package/dist/core/human/page-synth.js +8 -27
- package/dist/core/human/page.js +1 -198
- package/dist/core/human/requests.js +15 -466
- package/dist/core/human/review-schema.js +1 -34
- package/dist/core/human/root.js +1 -11
- package/dist/core/human/scan.js +1 -69
- package/dist/core/human/summary.js +1 -5
- package/dist/core/human/tickets.js +1 -171
- package/dist/core/human/types.js +0 -1
- package/dist/core/human/visible-paths.js +1 -77
- package/dist/core/human-actions.js +1 -101
- package/dist/core/inspector/chrome.js +1 -14
- package/dist/core/inspector/contract.js +0 -1
- package/dist/core/inspector/core.js +2 -295
- package/dist/core/inspector/host.js +4 -538
- package/dist/core/inspector/model.js +2 -226
- package/dist/core/inspector/text.js +6 -45
- package/dist/core/inspector/transport.js +1 -36
- package/dist/core/inspector/tui.js +2 -295
- package/dist/core/installed-plugins.js +1 -78
- package/dist/core/io.js +7 -356
- package/dist/core/keybindings/attach-control.js +1 -42
- package/dist/core/keybindings/background-bash.js +1 -33
- package/dist/core/keybindings/catalog.js +1 -256
- package/dist/core/keybindings/inbox.js +1 -25
- package/dist/core/keybindings/index.js +1 -7
- package/dist/core/keybindings/match.js +1 -127
- package/dist/core/keybindings/persistence.js +1 -49
- package/dist/core/keybindings/resolve.js +1 -348
- package/dist/core/keybindings/types.js +0 -1
- package/dist/core/locked-file.js +1 -118
- package/dist/core/log.js +3 -27
- package/dist/core/manifest-recovery.js +1 -72
- package/dist/core/manifest-stale.js +1 -39
- package/dist/core/manifest.js +1 -20
- package/dist/core/memory/doc-link-grammar.js +2 -109
- package/dist/core/memory/extensions.js +1 -221
- package/dist/core/memory/history.js +6 -268
- package/dist/core/memory/identity.js +1 -181
- package/dist/core/memory/inline-ref-grammar.js +1 -98
- package/dist/core/memory/inline-ref-guidance.js +2 -35
- package/dist/core/memory/inline-ref-inventory.js +1 -59
- package/dist/core/memory/lint.js +2 -671
- package/dist/core/memory/project-namespace.js +2 -85
- package/dist/core/memory/repository-association.js +1 -129
- package/dist/core/memory/tree.js +1 -93
- package/dist/core/memory-resolver.js +2 -611
- package/dist/core/model-config.js +1 -107
- package/dist/core/model-routes.js +1 -201
- package/dist/core/nested-stores.js +2 -166
- package/dist/core/output.js +7 -99
- package/dist/core/pagination.js +1 -88
- package/dist/core/plugin-swap-lock.js +1 -31
- package/dist/core/pool-credential-store.js +1 -116
- package/dist/core/predicate.js +1 -191
- package/dist/core/preview-registry.js +2 -411
- package/dist/core/preview-result-path.js +1 -26
- package/dist/core/profiles/default-binding.js +1 -24
- package/dist/core/profiles/deletion-reservation.js +1 -42
- package/dist/core/profiles/env-store.js +2 -162
- package/dist/core/profiles/fuzzy-match.js +1 -92
- package/dist/core/profiles/manifest.js +1 -574
- package/dist/core/profiles/select.js +35 -741
- package/dist/core/profiles/state-block.js +3 -17
- package/dist/core/provider-error-recognition.js +1 -74
- package/dist/core/provider-failure.js +1 -86
- package/dist/core/provider-management.js +1 -22
- package/dist/core/remote-canvas-target.js +1 -30
- package/dist/core/render.js +18 -138
- package/dist/core/resolver.js +1 -111
- package/dist/core/review/birth.js +1 -52
- package/dist/core/review/comments.js +5 -279
- package/dist/core/review/companion.js +1 -215
- package/dist/core/review/document.js +2 -138
- package/dist/core/review/project.js +1 -36
- package/dist/core/review/realize.js +1 -71
- package/dist/core/review/remap.js +4 -141
- package/dist/core/review/signal.js +1 -12
- package/dist/core/review/stage.js +1 -184
- package/dist/core/review/store.js +1 -168
- package/dist/core/review/types.js +1 -23
- package/dist/core/runtime/advertised-command-invocation.js +1 -233
- package/dist/core/runtime/auth-reload.js +1 -67
- package/dist/core/runtime/banner.js +1 -51
- package/dist/core/runtime/bearings-render.js +18 -250
- package/dist/core/runtime/bearings.js +7 -194
- package/dist/core/runtime/bin-contributions.js +2 -186
- package/dist/core/runtime/boot-root.js +1 -107
- package/dist/core/runtime/branded-host.js +2 -264
- package/dist/core/runtime/broker/auth-reload.js +1 -157
- package/dist/core/runtime/broker/client-registry.js +1 -179
- package/dist/core/runtime/broker/daemon-ops.js +1 -88
- package/dist/core/runtime/broker/engine-drive.js +1 -354
- package/dist/core/runtime/broker/engine-routing.js +1 -211
- package/dist/core/runtime/broker/event-projection.js +1 -193
- package/dist/core/runtime/broker/extension-abort.js +1 -36
- package/dist/core/runtime/broker/fault-retry.js +1 -588
- package/dist/core/runtime/broker/frame-client.js +1 -132
- package/dist/core/runtime/broker/frame-dispatch.js +1 -183
- package/dist/core/runtime/broker/frame-engine-control.js +1 -231
- package/dist/core/runtime/broker/frame-memory-refs.js +1 -41
- package/dist/core/runtime/broker/frame-model-query.js +1 -69
- package/dist/core/runtime/broker/frame-read.js +1 -116
- package/dist/core/runtime/broker/frame-replies.js +1 -64
- package/dist/core/runtime/broker/frame-session.js +4 -203
- package/dist/core/runtime/broker/held-deferred-inbox.js +1 -13
- package/dist/core/runtime/broker/inbox.js +13 -163
- package/dist/core/runtime/broker/node-named.js +1 -27
- package/dist/core/runtime/broker/read-ops.js +1 -171
- package/dist/core/runtime/broker/rebind.js +1 -318
- package/dist/core/runtime/broker/tool-groups.js +1 -246
- package/dist/core/runtime/broker/turn-admission.js +1 -31
- package/dist/core/runtime/broker/turn-ignition.js +1 -84
- package/dist/core/runtime/broker-cli.js +3 -81
- package/dist/core/runtime/broker-extension-render.js +5 -135
- package/dist/core/runtime/broker-inventory.js +1 -116
- package/dist/core/runtime/broker-persona-guidance.js +4 -154
- package/dist/core/runtime/broker-protocol.js +3 -152
- package/dist/core/runtime/broker-request.js +1 -85
- package/dist/core/runtime/broker-sdk.js +1 -129
- package/dist/core/runtime/broker.js +1 -1214
- package/dist/core/runtime/canvas-extensions.js +1 -96
- package/dist/core/runtime/chat-inventory-rows.js +1 -105
- package/dist/core/runtime/close.js +1 -265
- package/dist/core/runtime/command-expansion.js +9 -104
- package/dist/core/runtime/command-surface.js +1 -117
- package/dist/core/runtime/connectivity.js +1 -73
- package/dist/core/runtime/deliver-live.js +1 -88
- package/dist/core/runtime/fault-recovery.js +1 -83
- package/dist/core/runtime/fault.js +1 -17
- package/dist/core/runtime/fleet.js +1 -58
- package/dist/core/runtime/front-door-env.js +1 -16
- package/dist/core/runtime/front-door.js +7 -183
- package/dist/core/runtime/headless-pi.js +1 -161
- package/dist/core/runtime/host.js +1 -457
- package/dist/core/runtime/interactive-deliver.js +1 -51
- package/dist/core/runtime/invocation.js +0 -10
- package/dist/core/runtime/kickoff.js +30 -327
- package/dist/core/runtime/launch-config-worker.js +1 -12
- package/dist/core/runtime/launch-prompt.js +4 -13
- package/dist/core/runtime/launch-target.js +1 -55
- package/dist/core/runtime/launch.js +1 -483
- package/dist/core/runtime/lifecycle.js +2 -213
- package/dist/core/runtime/managed-provider-cooling.js +1 -62
- package/dist/core/runtime/memory.js +1 -17
- package/dist/core/runtime/model-registry.js +1 -13
- package/dist/core/runtime/model-selection.js +1 -135
- package/dist/core/runtime/model-swap.js +1 -86
- package/dist/core/runtime/naming.js +14 -298
- package/dist/core/runtime/nerd-font.js +2 -127
- package/dist/core/runtime/node-read.js +2 -386
- package/dist/core/runtime/nodes.js +1 -331
- package/dist/core/runtime/outcome-document.js +1 -97
- package/dist/core/runtime/package-health.js +4 -99
- package/dist/core/runtime/persona.js +2 -55
- package/dist/core/runtime/pi-cli.js +1 -65
- package/dist/core/runtime/pi-vendored.js +1 -66
- package/dist/core/runtime/placement-tmux.js +1 -81
- package/dist/core/runtime/placement.js +1 -386
- package/dist/core/runtime/promote.js +1 -174
- package/dist/core/runtime/prospective-inventory-cli.js +3 -61
- package/dist/core/runtime/prospective-inventory.js +2 -88
- package/dist/core/runtime/recap.js +27 -103
- package/dist/core/runtime/recycle.js +1 -190
- package/dist/core/runtime/reopen.js +1 -138
- package/dist/core/runtime/reset.js +1 -245
- package/dist/core/runtime/resume-root.js +10 -290
- package/dist/core/runtime/revive-all.js +1 -107
- package/dist/core/runtime/revive.js +4 -544
- package/dist/core/runtime/roadmap.js +4 -38
- package/dist/core/runtime/session-branch.js +1 -46
- package/dist/core/runtime/session-cycles.js +1 -110
- package/dist/core/runtime/session-list-cache.js +1 -406
- package/dist/core/runtime/session-visibility.js +1 -99
- package/dist/core/runtime/shell-expansion.js +9 -100
- package/dist/core/runtime/situational-context.js +2 -67
- package/dist/core/runtime/situational-live.js +1 -41
- package/dist/core/runtime/spawn-env.js +1 -255
- package/dist/core/runtime/spawn.js +3 -577
- package/dist/core/runtime/stamp/channel.js +1 -76
- package/dist/core/runtime/stamp/protocol.js +1 -113
- package/dist/core/runtime/stop-guard.js +7 -116
- package/dist/core/runtime/stop-signals.js +1 -46
- package/dist/core/runtime/stream-watchdog.js +1 -134
- package/dist/core/runtime/structured-output.js +4 -156
- package/dist/core/runtime/surface-bg.js +1 -85
- package/dist/core/runtime/tmux-bindings.js +4 -730
- package/dist/core/runtime/tmux-chrome.js +1 -5
- package/dist/core/runtime/tmux-driver.js +7 -637
- package/dist/core/runtime/tool-group-summary.js +6 -85
- package/dist/core/runtime/turn-visibility.js +1 -31
- package/dist/core/runtime/view-socket.js +1 -83
- package/dist/core/runtime/warm-pool.js +1 -395
- package/dist/core/scope.js +1 -254
- package/dist/core/scoped-state/db.js +1 -135
- package/dist/core/scoped-state/migrate.js +3 -181
- package/dist/core/scoped-state/paths.js +1 -27
- package/dist/core/scoped-state/profiles.js +1 -62
- package/dist/core/scoped-state/providers.js +1 -8
- package/dist/core/scoped-state/schema.js +3 -16
- package/dist/core/scoped-state/settings.js +1 -82
- package/dist/core/secrets.js +2 -55
- package/dist/core/self-update.js +1 -71
- package/dist/core/session-model/session-state.js +1 -180
- package/dist/core/shell-segments.js +4 -169
- package/dist/core/spawn.js +1 -26
- package/dist/core/stdout-errors.js +1 -14
- package/dist/core/subscription-state.js +3 -193
- package/dist/core/substrate/frontmatter-validation.js +1 -105
- package/dist/core/substrate/gate-explain.js +1 -424
- package/dist/core/substrate/gate.js +1 -26
- package/dist/core/substrate/index.js +1 -30
- package/dist/core/substrate/injected-store.js +1 -249
- package/dist/core/substrate/listings.js +1 -115
- package/dist/core/substrate/on-read-node.js +1 -36
- package/dist/core/substrate/on-read.js +9 -315
- package/dist/core/substrate/plan.js +1 -266
- package/dist/core/substrate/render-node.js +1 -30
- package/dist/core/substrate/render.js +65 -689
- package/dist/core/substrate/schema.js +1 -186
- package/dist/core/substrate/session-cache.js +1 -83
- package/dist/core/substrate/subject-fields.js +1 -35
- package/dist/core/substrate/subject.js +1 -47
- package/dist/core/substrate/surface-match.js +1 -242
- package/dist/core/termrender/code-doc.js +5 -92
- package/dist/core/termrender/display.js +2 -56
- package/dist/core/termrender/termrender.js +14 -719
- package/dist/core/termrender/version.js +1 -1
- package/dist/core/timing.js +2 -94
- package/dist/core/tui/draw.js +2 -378
- package/dist/core/tui/fuzzy.js +1 -38
- package/dist/core/tui/markdown.js +3 -407
- package/dist/core/tui/page-host.js +1 -74
- package/dist/core/tui/panel.js +1 -137
- package/dist/core/tui/terminal.js +2 -100
- package/dist/core/user-settings.js +1 -454
- package/dist/core/wake.js +1 -296
- package/dist/core/worktree-close.js +6 -228
- package/dist/core/worktree-containment.js +3 -48
- package/dist/core/worktree-landing.js +4 -56
- package/dist/core/worktree-mutation-async.js +10 -280
- package/dist/core/worktree-quarantine.js +1 -54
- package/dist/core/worktree-sweep.js +6 -453
- package/dist/core/worktree.js +18 -899
- package/dist/daemon/api/bridge.js +8 -418
- package/dist/daemon/api/handlers/attach.js +1 -65
- package/dist/daemon/api/handlers/bash-jobs.js +2 -91
- package/dist/daemon/api/handlers/broker-ops.js +1 -447
- package/dist/daemon/api/handlers/broker-recovery.js +1 -251
- package/dist/daemon/api/handlers/canvas.js +6 -490
- package/dist/daemon/api/handlers/chat-inventory.js +1 -25
- package/dist/daemon/api/handlers/crons.js +1 -373
- package/dist/daemon/api/handlers/daemon.js +1 -76
- package/dist/daemon/api/handlers/feedback-comments.js +3 -199
- package/dist/daemon/api/handlers/files.js +1 -63
- package/dist/daemon/api/handlers/focus.js +1 -92
- package/dist/daemon/api/handlers/health.js +1 -76
- package/dist/daemon/api/handlers/human-requests.js +1 -379
- package/dist/daemon/api/handlers/human.js +1 -3
- package/dist/daemon/api/handlers/inbox-page.js +1 -89
- package/dist/daemon/api/handlers/inbox.js +1 -301
- package/dist/daemon/api/handlers/memory.js +1 -50
- package/dist/daemon/api/handlers/messages.js +2 -506
- package/dist/daemon/api/handlers/model-config.js +1 -44
- package/dist/daemon/api/handlers/modelauth.js +1 -165
- package/dist/daemon/api/handlers/node-outcomes.js +1 -181
- package/dist/daemon/api/handlers/nodes.js +1 -939
- package/dist/daemon/api/handlers/profiles.js +1 -140
- package/dist/daemon/api/handlers/prospective-chat-inventory.js +1 -59
- package/dist/daemon/api/handlers/reports.js +16 -332
- package/dist/daemon/api/handlers/review-comments.js +1 -465
- package/dist/daemon/api/handlers/reviews.js +1 -200
- package/dist/daemon/api/handlers/subscriptions.js +1 -53
- package/dist/daemon/api/handlers/validate.js +1 -58
- package/dist/daemon/api/handlers/worktree.js +1 -39
- package/dist/daemon/api/map.js +2 -735
- package/dist/daemon/api/router.js +1 -190
- package/dist/daemon/api/server.js +11 -408
- package/dist/daemon/boot-migrations.js +1 -31
- package/dist/daemon/companion-retire.js +1 -34
- package/dist/daemon/control.js +1 -22
- package/dist/daemon/cron/armed-context.js +1 -100
- package/dist/daemon/cron/capture.js +2 -45
- package/dist/daemon/cron/disposition.js +1 -55
- package/dist/daemon/cron/escalation.js +3 -124
- package/dist/daemon/cron/held.js +1 -20
- package/dist/daemon/cron/lease-recovery.js +1 -119
- package/dist/daemon/cron/live-runs.js +1 -23
- package/dist/daemon/cron/passes.js +1 -58
- package/dist/daemon/cron/settle.js +1 -61
- package/dist/daemon/cron/sinks.js +2 -59
- package/dist/daemon/cron-run.js +1 -405
- package/dist/daemon/crtrd-cli.js +1 -23
- package/dist/daemon/crtrd.js +8 -854
- package/dist/daemon/delivery/run-delivery.js +1 -164
- package/dist/daemon/fleet.js +17 -475
- package/dist/daemon/human/finish.js +10 -179
- package/dist/daemon/human/settle.js +1 -89
- package/dist/daemon/human/sweep.js +1 -66
- package/dist/daemon/manage.js +2 -595
- package/dist/daemon/messaging/node-message.js +1 -99
- package/dist/daemon/park-activity.js +1 -30
- package/dist/daemon/park-pending.js +1 -52
- package/dist/daemon/pidfile.js +1 -37
- package/dist/daemon/profile-delete.js +1 -306
- package/dist/daemon/reconcilers/bash-deadline.js +1 -80
- package/dist/daemon/reconcilers/broker-supervision.js +4 -761
- package/dist/daemon/reconcilers/controller-death.js +1 -14
- package/dist/daemon/reconcilers/cron-lane.js +1 -29
- package/dist/daemon/reconcilers/delivery-lane.js +1 -130
- package/dist/daemon/reconcilers/live-obligation.js +1 -87
- package/dist/daemon/reconcilers/managed-worktree-sweep.js +1 -202
- package/dist/daemon/reconcilers/node-deadline.js +1 -82
- package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +1 -172
- package/dist/daemon/reconcilers/node-lifecycle/respawn-policy.js +1 -59
- package/dist/daemon/reconcilers/node-lifecycle/terminating.js +1 -12
- package/dist/daemon/reconcilers/node-lifecycle/tick.js +1 -146
- package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -11
- package/dist/daemon/reconcilers/pending-review-submit.js +1 -36
- package/dist/daemon/reconcilers/storage-maintenance.js +1 -207
- package/dist/daemon/review/comment-notify.js +2 -109
- package/dist/daemon/review/companion.js +1 -29
- package/dist/daemon/review/deliver.js +3 -8
- package/dist/daemon/review/finish.js +1 -122
- package/dist/daemon/review/sweep.js +1 -18
- package/dist/daemon/startup-policy.js +1 -1
- package/dist/daemon/supervise-cadence.js +1 -6
- package/dist/hook-authoring.js +5 -447
- package/dist/hook-process.js +1 -34
- package/dist/index.js +1 -52
- package/dist/migrations/001-surfaces-frontmatter.js +1 -161
- package/dist/migrations/002-profile-project-memory.js +1 -72
- package/dist/migrations/003-repository-root-memory-identity/front-door.js +11 -231
- package/dist/migrations/003-repository-root-memory-identity/index.js +5 -513
- package/dist/migrations/003-repository-root-memory-identity/references.js +5 -469
- package/dist/migrations/003-repository-root-memory-identity/repository-facts.js +3 -349
- package/dist/migrations/activation.js +2 -89
- package/dist/migrations/convergent.js +2 -82
- package/dist/migrations/corpus.js +3 -483
- package/dist/migrations/frontmatter-splice.js +8 -176
- package/dist/migrations/profile-manifests.js +2 -70
- package/dist/migrations/registry.js +1 -42
- package/dist/migrations/runner.js +1 -85
- package/dist/migrations/types.js +0 -24
- package/dist/pi-extensions/broker-local.js +2 -106
- package/dist/pi-extensions/canvas-bash-valve.js +7 -461
- package/dist/pi-extensions/canvas-context-intro.js +2 -113
- package/dist/pi-extensions/canvas-doc-substrate.js +9 -178
- package/dist/pi-extensions/canvas-goal-capture.js +1 -83
- package/dist/pi-extensions/canvas-inbox-watcher.js +1 -1010
- package/dist/pi-extensions/canvas-passive-context.js +14 -203
- package/dist/pi-extensions/canvas-preview-result.js +2 -72
- package/dist/pi-extensions/canvas-prompt-scrub.js +2 -54
- package/dist/pi-extensions/canvas-recap.js +11 -405
- package/dist/pi-extensions/canvas-review-boundary.js +3 -63
- package/dist/pi-extensions/canvas-stamp.js +2 -77
- package/dist/pi-extensions/canvas-stophook.js +1 -643
- package/dist/pi-extensions/canvas-structured-output.js +13 -35
- package/dist/pi-extensions/canvas-tool-guide.js +9 -78
- package/dist/pi-extensions/envelope-merge.js +8 -29
- package/dist/prompts/review.js +20 -42
- package/dist/shared/birth-announcement.js +1 -25
- package/dist/shared/crtr-version.js +1 -18
- package/dist/shared/env.js +1 -214
- package/dist/shared/generated-context.js +11 -226
- package/dist/shared/predicates.js +1 -4
- package/dist/shared/shell-quote.js +1 -5
- package/dist/shared/tool-groups.js +1 -64
- package/dist/shared/working-activity.js +1 -27
- package/dist/suppress-experimental-warnings.js +1 -15
- package/dist/types.js +1 -185
- package/docs/public-api.md +10 -9
- package/package.json +5 -4
- 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 -127
- package/dist/daemon/api/__tests__/node-model-validation.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/node-model-validation.test.js +0 -183
- package/dist/daemon/api/__tests__/nodes-activity-query.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/nodes-activity-query.test.js +0 -99
- package/dist/daemon/api/__tests__/profile-launch-gates.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-launch-gates.test.js +0 -172
- package/dist/daemon/api/__tests__/profile-metadata-route.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/profile-metadata-route.test.js +0 -95
- package/dist/daemon/api/__tests__/reopen-delivery.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/reopen-delivery.test.js +0 -260
- package/dist/daemon/api/__tests__/seam/api-server.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/api-server.test.js +0 -442
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.js +0 -310
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.js +0 -351
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/node-outcome-api.test.js +0 -159
- package/dist/daemon/api/__tests__/seam/profile-delete.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/seam/profile-delete.test.js +0 -372
- package/dist/daemon/api/__tests__/submit-result.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/submit-result.test.js +0 -215
- package/dist/migrations/__tests__/activation-concurrency.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation-concurrency.test.js +0 -146
- package/dist/migrations/__tests__/activation.test.d.ts +0 -1
- package/dist/migrations/__tests__/activation.test.js +0 -152
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.d.ts +0 -1
- package/dist/migrations/__tests__/deletion-and-root-declaration.test.js +0 -149
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-bash-valve.test.js +0 -86
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +0 -364
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.js +0 -106
- package/dist/pi-extensions/__tests__/canvas-recap.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-recap.test.js +0 -62
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +0 -432
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +0 -152
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.js +0 -88
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/canvas-tool-guide.test.js +0 -96
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/integration/canvas-bash-valve.test.js +0 -133
- package/dist/pi-extensions/__tests__/pre-command-gate.test.d.ts +0 -1
- package/dist/pi-extensions/__tests__/pre-command-gate.test.js +0 -232
- package/dist/shared/__tests__/env-boundary.test.d.ts +0 -1
- package/dist/shared/__tests__/env-boundary.test.js +0 -95
- package/dist/shared/__tests__/generated-context-grammar.test.d.ts +0 -1
- package/dist/shared/__tests__/generated-context-grammar.test.js +0 -80
- package/docs/compat/hearth-crtr-v1.md +0 -179
- package/docs/compat/hearth-crtr-v2.md +0 -177
- package/docs/compat/hearth-crtr-v3.md +0 -176
- package/docs/compat/hearth-crtr-v4.md +0 -182
- package/docs/compat/hearth-crtr-v5.md +0 -169
|
@@ -1,139 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// `canvas history grep` \u2014 both leaves scope + filter the same per-cwd episodic
|
|
3
|
-
// corpus (search ranks/browses it, grep line-matches it), so the scope/filter
|
|
4
|
-
// flags, their param schemas, and their CLI-side parsing/validation are one
|
|
5
|
-
// seam. This is internal reuse only: neither leaf's public flag set or output
|
|
6
|
-
// shape is shared, and nothing here is re-exported as a command alias.
|
|
7
|
-
import { usage } from '../../core/errors.js';
|
|
8
|
-
export const TYPES = ['report', 'doc', 'roadmap', 'meta', 'inbox', 'transcript'];
|
|
9
|
-
export const ORIGINS = [
|
|
10
|
-
'human', 'inbox', 'wake', 'revive', 'restart-continuation',
|
|
11
|
-
'stop-guard', 'park', 'recovery', 'context-nudge', 'kickoff', 'unknown',
|
|
12
|
-
];
|
|
13
|
-
export const ROLES = ['user', 'assistant', 'toolResult'];
|
|
14
|
-
export const NODE_KINDS = ['advisor', 'developer', 'spec', 'design', 'review', 'explore', 'plan', 'general'];
|
|
15
|
-
export const STATUSES = ['active', 'idle', 'done', 'dead', 'canceled'];
|
|
16
|
-
const REL_UNITS = {
|
|
17
|
-
s: 1000,
|
|
18
|
-
m: 60_000,
|
|
19
|
-
h: 3_600_000,
|
|
20
|
-
d: 86_400_000,
|
|
21
|
-
w: 604_800_000,
|
|
22
|
-
mo: 2_592_000_000,
|
|
23
|
-
y: 31_536_000_000,
|
|
24
|
-
};
|
|
25
|
-
/** ISO 8601 (`2026-06-01`) \u2192 epoch ms (absolute); relative (`7d`, `2w`, `1mo`)
|
|
26
|
-
* \u2192 now minus the duration. Throws usage on an unparseable value. */
|
|
27
|
-
export function parseWhen(field, raw) {
|
|
28
|
-
const rel = raw.match(/^(\d+)(mo|[smhdwy])$/);
|
|
29
|
-
if (rel !== null)
|
|
30
|
-
return Date.now() - Number(rel[1]) * REL_UNITS[rel[2]];
|
|
31
|
-
const abs = Date.parse(raw);
|
|
32
|
-
if (!Number.isNaN(abs))
|
|
33
|
-
return abs;
|
|
34
|
-
throw usage(`--${field} must be ISO 8601 (2026-06-01) or relative (7d, 2w, 1mo); received: ${raw}`);
|
|
35
|
-
}
|
|
36
|
-
export function splitCsv(v) {
|
|
37
|
-
if (v === undefined || v === '')
|
|
38
|
-
return undefined;
|
|
39
|
-
return v.split(',').map((s) => s.trim()).filter((s) => s !== '');
|
|
40
|
-
}
|
|
41
|
-
/** The scope/filter param schema shared by search and grep help \u2014 everything
|
|
42
|
-
* except the query/pattern positional and each leaf's own result-shaping
|
|
43
|
-
* flags (search: --body/--sort/--snippet-lines/--full; grep: none). */
|
|
44
|
-
export const filterParams = [
|
|
45
|
-
{ kind: 'flag', name: 'cwd', type: 'path', required: false, constraint: 'Search another project\'s record. Default: the calling node\'s cwd (process cwd when not a node). Mutually exclusive with --all-cwds.' },
|
|
46
|
-
{ kind: 'flag', name: 'all-cwds', type: 'bool', required: false, constraint: 'Search every cwd on the canvas. Mutually exclusive with --cwd.' },
|
|
47
|
-
{ kind: 'flag', name: 'under', type: 'string', required: false, constraint: 'Restrict to a node and its subscription descendants (one initiative / sub-DAG).' },
|
|
48
|
-
{ kind: 'flag', name: 'node', type: 'string', required: false, constraint: 'Restrict to specific node ids. Comma-separated for several.' },
|
|
49
|
-
{ kind: 'flag', name: 'type', type: 'string', required: false, constraint: `Corpus to search; comma-separated for several. One of: ${TYPES.join(', ')}. report = push history; doc = context artifacts; roadmap = roadmap.md specifically; meta = node name/description/kind; inbox = inbox history including full un-clipped direct-message bodies (diagnostic, not curated work). Default: report, doc, roadmap, meta \u2014 inbox is opt-in only, pass --type inbox explicitly.` },
|
|
50
|
-
{ kind: 'flag', name: 'report-kind', type: 'enum', choices: ['final', 'update'], required: false, constraint: 'Narrow reports to outcome summaries (final) or progress (update). Implies --type report.' },
|
|
51
|
-
{ kind: 'flag', name: 'kind', type: 'string', required: false, constraint: `Node kind; comma-separated for several. One of: ${NODE_KINDS.join(', ')}.` },
|
|
52
|
-
{ kind: 'flag', name: 'status', type: 'string', required: false, constraint: `Node lifecycle status; comma-separated for several. One of: ${STATUSES.join(', ')} (e.g. done = completed work only).` },
|
|
53
|
-
{ kind: 'flag', name: 'since', type: 'string', required: false, constraint: 'Lower bound on artifact timestamp. ISO 8601 (2026-06-01) or relative (7d, 2w, 1mo).' },
|
|
54
|
-
{ kind: 'flag', name: 'until', type: 'string', required: false, constraint: 'Upper bound on artifact timestamp. ISO 8601 or relative.' },
|
|
55
|
-
{ kind: 'flag', name: 'origin', type: 'string', required: false, constraint: `What drove a message to arrive; comma-separated for several. One of: ${ORIGINS.join(', ')}. Applies to transcript + inbox artifacts, which are the only ones that arrive — passing it therefore excludes every generated turn on its own. \`unknown\` is a message carrying no stamp, and is its own bucket rather than a fallback.` },
|
|
56
|
-
{ kind: 'flag', name: 'role', type: 'string', required: false, constraint: `Transcript message role; comma-separated for several. One of: ${ROLES.join(', ')}.` },
|
|
57
|
-
{ kind: 'flag', name: 'from', type: 'string', required: false, constraint: 'Case-insensitive substring against sender attribution — the node that sent a delivery. Applies to transcript + inbox artifacts.' },
|
|
58
|
-
];
|
|
59
|
-
/** Parse + validate the shared scope/filter flags from a leaf's raw input.
|
|
60
|
-
* Pure and client-side; the corpus scan itself runs server-side in crtrd. */
|
|
61
|
-
export function parseFilters(input) {
|
|
62
|
-
const cwd = input['cwd'];
|
|
63
|
-
const allCwds = input['allCwds'] === true;
|
|
64
|
-
if (cwd !== undefined && allCwds)
|
|
65
|
-
throw usage('--cwd and --all-cwds are mutually exclusive.');
|
|
66
|
-
const types = splitCsv(input['type']);
|
|
67
|
-
if (types !== undefined) {
|
|
68
|
-
const bad = types.find((t) => !TYPES.includes(t));
|
|
69
|
-
if (bad !== undefined)
|
|
70
|
-
throw usage(`--type must be one of: ${TYPES.join(', ')}; received: ${bad}`);
|
|
71
|
-
}
|
|
72
|
-
const origins = splitCsv(input['origin']);
|
|
73
|
-
if (origins !== undefined) {
|
|
74
|
-
const bad = origins.find((o) => !ORIGINS.includes(o));
|
|
75
|
-
if (bad !== undefined)
|
|
76
|
-
throw usage(`--origin must be one of: ${ORIGINS.join(', ')}; received: ${bad}`);
|
|
77
|
-
}
|
|
78
|
-
const roles = splitCsv(input['role']);
|
|
79
|
-
if (roles !== undefined) {
|
|
80
|
-
const bad = roles.find((r) => !ROLES.includes(r));
|
|
81
|
-
if (bad !== undefined)
|
|
82
|
-
throw usage(`--role must be one of: ${ROLES.join(', ')}; received: ${bad}`);
|
|
83
|
-
}
|
|
84
|
-
// Session files are large and there is no persistent index, so the whole
|
|
85
|
-
// conversation corpus is reachable only through a narrowed scan. The guard
|
|
86
|
-
// lives in the failure rather than in a permanently visible constraint:
|
|
87
|
-
// agents who never search transcripts never pay to understand it.
|
|
88
|
-
if (types !== undefined && types.includes('transcript')) {
|
|
89
|
-
const narrowed = input['node'] !== undefined || input['under'] !== undefined || input['since'] !== undefined;
|
|
90
|
-
if (!narrowed) {
|
|
91
|
-
throw usage('--type transcript needs a narrowing flag: pass --node, --under, or --since.', { next: 'Transcripts are the full conversation corpus — scanning every node in a cwd reads every session file. Narrow first.' });
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
cwd,
|
|
96
|
-
allCwds,
|
|
97
|
-
under: input['under'],
|
|
98
|
-
nodes: splitCsv(input['node']),
|
|
99
|
-
types,
|
|
100
|
-
reportKind: input['reportKind'],
|
|
101
|
-
kinds: splitCsv(input['kind']),
|
|
102
|
-
statuses: splitCsv(input['status']),
|
|
103
|
-
sinceMs: input['since'] !== undefined ? parseWhen('since', input['since']) : undefined,
|
|
104
|
-
untilMs: input['until'] !== undefined ? parseWhen('until', input['until']) : undefined,
|
|
105
|
-
origins,
|
|
106
|
-
roles,
|
|
107
|
-
from: input['from'],
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
/** Copy every parsed filter onto a wire query. search, grep, and stats share
|
|
111
|
-
* the whole filter vocabulary, so the mapping lives once. */
|
|
112
|
-
export function applyFilters(q, f) {
|
|
113
|
-
if (f.cwd !== undefined)
|
|
114
|
-
q['cwd'] = f.cwd;
|
|
115
|
-
if (f.allCwds)
|
|
116
|
-
q['all_cwds'] = true;
|
|
117
|
-
if (f.under !== undefined)
|
|
118
|
-
q['under'] = f.under;
|
|
119
|
-
if (f.nodes !== undefined)
|
|
120
|
-
q['nodes'] = f.nodes;
|
|
121
|
-
if (f.types !== undefined)
|
|
122
|
-
q['types'] = f.types;
|
|
123
|
-
if (f.reportKind !== undefined)
|
|
124
|
-
q['report_kind'] = f.reportKind;
|
|
125
|
-
if (f.kinds !== undefined)
|
|
126
|
-
q['kinds'] = f.kinds;
|
|
127
|
-
if (f.statuses !== undefined)
|
|
128
|
-
q['statuses'] = f.statuses;
|
|
129
|
-
if (f.sinceMs !== undefined)
|
|
130
|
-
q['since_ms'] = f.sinceMs;
|
|
131
|
-
if (f.untilMs !== undefined)
|
|
132
|
-
q['until_ms'] = f.untilMs;
|
|
133
|
-
if (f.origins !== undefined)
|
|
134
|
-
q['origins'] = f.origins;
|
|
135
|
-
if (f.roles !== undefined)
|
|
136
|
-
q['roles'] = f.roles;
|
|
137
|
-
if (f.from !== undefined)
|
|
138
|
-
q['from'] = f.from;
|
|
139
|
-
}
|
|
1
|
+
var g=Object.defineProperty;var d=(e,n)=>g(e,"name",{value:n,configurable:!0});import{usage as s}from"../../core/errors.js";const u=["report","doc","roadmap","meta","inbox","transcript"],f=["human","inbox","wake","revive","restart-continuation","stop-guard","park","recovery","context-nudge","kickoff","unknown"],p=["user","assistant","toolResult"],w=["advisor","developer","spec","design","review","explore","plan","general"],y=["active","idle","done","dead","canceled"],h={s:1e3,m:6e4,h:36e5,d:864e5,w:6048e5,mo:2592e6,y:31536e6};function m(e,n){const t=n.match(/^(\d+)(mo|[smhdwy])$/);if(t!==null)return Date.now()-Number(t[1])*h[t[2]];const i=Date.parse(n);if(!Number.isNaN(i))return i;throw s(`--${e} must be ISO 8601 (2026-06-01) or relative (7d, 2w, 1mo); received: ${n}`)}d(m,"parseWhen");function o(e){if(!(e===void 0||e===""))return e.split(",").map(n=>n.trim()).filter(n=>n!=="")}d(o,"splitCsv");const b=[{kind:"flag",name:"cwd",type:"path",required:!1,constraint:"Search another project's record. Default: the calling node's cwd (process cwd when not a node). Mutually exclusive with --all-cwds."},{kind:"flag",name:"all-cwds",type:"bool",required:!1,constraint:"Search every cwd on the canvas. Mutually exclusive with --cwd."},{kind:"flag",name:"under",type:"string",required:!1,constraint:"Restrict to a node and its subscription descendants (one initiative / sub-DAG)."},{kind:"flag",name:"node",type:"string",required:!1,constraint:"Restrict to specific node ids. Comma-separated for several."},{kind:"flag",name:"type",type:"string",required:!1,constraint:`Corpus to search; comma-separated for several. One of: ${u.join(", ")}. report = push history; doc = context artifacts; roadmap = roadmap.md specifically; meta = node name/description/kind; inbox = inbox history including full un-clipped direct-message bodies (diagnostic, not curated work). Default: report, doc, roadmap, meta \u2014 inbox is opt-in only, pass --type inbox explicitly.`},{kind:"flag",name:"report-kind",type:"enum",choices:["final","update"],required:!1,constraint:"Narrow reports to outcome summaries (final) or progress (update). Implies --type report."},{kind:"flag",name:"kind",type:"string",required:!1,constraint:`Node kind; comma-separated for several. One of: ${w.join(", ")}.`},{kind:"flag",name:"status",type:"string",required:!1,constraint:`Node lifecycle status; comma-separated for several. One of: ${y.join(", ")} (e.g. done = completed work only).`},{kind:"flag",name:"since",type:"string",required:!1,constraint:"Lower bound on artifact timestamp. ISO 8601 (2026-06-01) or relative (7d, 2w, 1mo)."},{kind:"flag",name:"until",type:"string",required:!1,constraint:"Upper bound on artifact timestamp. ISO 8601 or relative."},{kind:"flag",name:"origin",type:"string",required:!1,constraint:`What drove a message to arrive; comma-separated for several. One of: ${f.join(", ")}. Applies to transcript + inbox artifacts, which are the only ones that arrive \u2014 passing it therefore excludes every generated turn on its own. \`unknown\` is a message carrying no stamp, and is its own bucket rather than a fallback.`},{kind:"flag",name:"role",type:"string",required:!1,constraint:`Transcript message role; comma-separated for several. One of: ${p.join(", ")}.`},{kind:"flag",name:"from",type:"string",required:!1,constraint:"Case-insensitive substring against sender attribution \u2014 the node that sent a delivery. Applies to transcript + inbox artifacts."}];function x(e){const n=e.cwd,t=e.allCwds===!0;if(n!==void 0&&t)throw s("--cwd and --all-cwds are mutually exclusive.");const i=o(e.type);if(i!==void 0){const r=i.find(a=>!u.includes(a));if(r!==void 0)throw s(`--type must be one of: ${u.join(", ")}; received: ${r}`)}const c=o(e.origin);if(c!==void 0){const r=c.find(a=>!f.includes(a));if(r!==void 0)throw s(`--origin must be one of: ${f.join(", ")}; received: ${r}`)}const l=o(e.role);if(l!==void 0){const r=l.find(a=>!p.includes(a));if(r!==void 0)throw s(`--role must be one of: ${p.join(", ")}; received: ${r}`)}if(i!==void 0&&i.includes("transcript")&&!(e.node!==void 0||e.under!==void 0||e.since!==void 0))throw s("--type transcript needs a narrowing flag: pass --node, --under, or --since.",{next:"Transcripts are the full conversation corpus \u2014 scanning every node in a cwd reads every session file. Narrow first."});return{cwd:n,allCwds:t,under:e.under,nodes:o(e.node),types:i,reportKind:e.reportKind,kinds:o(e.kind),statuses:o(e.status),sinceMs:e.since!==void 0?m("since",e.since):void 0,untilMs:e.until!==void 0?m("until",e.until):void 0,origins:c,roles:l,from:e.from}}d(x,"parseFilters");function _(e,n){n.cwd!==void 0&&(e.cwd=n.cwd),n.allCwds&&(e.all_cwds=!0),n.under!==void 0&&(e.under=n.under),n.nodes!==void 0&&(e.nodes=n.nodes),n.types!==void 0&&(e.types=n.types),n.reportKind!==void 0&&(e.report_kind=n.reportKind),n.kinds!==void 0&&(e.kinds=n.kinds),n.statuses!==void 0&&(e.statuses=n.statuses),n.sinceMs!==void 0&&(e.since_ms=n.sinceMs),n.untilMs!==void 0&&(e.until_ms=n.untilMs),n.origins!==void 0&&(e.origins=n.origins),n.roles!==void 0&&(e.roles=n.roles),n.from!==void 0&&(e.from=n.from)}d(_,"applyFilters");export{w as NODE_KINDS,f as ORIGINS,p as ROLES,y as STATUSES,u as TYPES,_ as applyFilters,b as filterParams,x as parseFilters,m as parseWhen,o as splitCsv};
|
|
@@ -1,68 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { usage } from '../../core/errors.js';
|
|
8
|
-
import { cliClient, rethrowAsCliError } from '../api-client.js';
|
|
9
|
-
import { applyFilters, filterParams, parseFilters } from './shared.js';
|
|
10
|
-
const GROUP_KEYS = ['origin', 'node', 'kind', 'day', 'type', 'role'];
|
|
11
|
-
export const statsLeaf = defineLeaf({
|
|
12
|
-
name: 'stats',
|
|
13
|
-
description: 'grouped counts over the cwd\'s node history — the projection view',
|
|
14
|
-
whenToUse: 'you want the SHAPE of the record rather than individual hits — how much of it came from where, who produced it, or when it happened. Group by origin to census what drove agents to run (cron wakes, inbox deliveries, recovery re-drives, people), by node/kind to see who produced the work, by day for volume over time, by type for corpus composition. Takes every scope and filter `canvas history search` takes, so any query you can search you can also count. Want the matching artifacts themselves? Use `canvas history search` or `canvas history grep`.',
|
|
15
|
-
help: {
|
|
16
|
-
name: 'canvas history stats',
|
|
17
|
-
summary: 'counts by one dimension over the per-cwd episodic record — origin census, per-node volume, activity by day',
|
|
18
|
-
params: [
|
|
19
|
-
{ kind: 'flag', name: 'group-by', type: 'enum', choices: GROUP_KEYS, required: false, default: 'type', constraint: 'The dimension to count by. origin = what drove an inbound message (transcript + inbox only); role = transcript message role; node / kind = who produced it; day = artifact date; type = corpus composition.' },
|
|
20
|
-
...filterParams,
|
|
21
|
-
],
|
|
22
|
-
output: [
|
|
23
|
-
{ name: 'group_by', type: 'string', required: true, constraint: 'The dimension counted.' },
|
|
24
|
-
{ name: 'groups', type: 'object[]', required: true, constraint: '{key, count}, descending by count then key.' },
|
|
25
|
-
{ name: 'total', type: 'int', required: true, constraint: 'Artifacts that carried the grouped dimension. Lower than `scanned` when grouping by one not every artifact has (origin, role).' },
|
|
26
|
-
{ name: 'scanned', type: 'int', required: true, constraint: 'Artifacts matched by the filters before grouping.' },
|
|
27
|
-
],
|
|
28
|
-
outputKind: 'object',
|
|
29
|
-
effects: ['None. Read-only.'],
|
|
30
|
-
},
|
|
31
|
-
run: async (input) => {
|
|
32
|
-
const by = input['groupBy'] ?? 'type';
|
|
33
|
-
if (!GROUP_KEYS.includes(by)) {
|
|
34
|
-
throw usage(`--group-by must be one of: ${GROUP_KEYS.join(', ')}; received: ${by}`);
|
|
35
|
-
}
|
|
36
|
-
// Filter validation stays client-side (pure); the corpus scan + grouping
|
|
37
|
-
// run server-side in crtrd, where canvas.db and the session files live.
|
|
38
|
-
const f = parseFilters(input);
|
|
39
|
-
const q = { group_by: by };
|
|
40
|
-
applyFilters(q, f);
|
|
41
|
-
try {
|
|
42
|
-
const res = await cliClient().historyStats(q);
|
|
43
|
-
return { group_by: res.group_by, groups: res.groups, total: res.total, scanned: res.scanned };
|
|
44
|
-
}
|
|
45
|
-
catch (err) {
|
|
46
|
-
rethrowAsCliError(err);
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
render: (r) => {
|
|
50
|
-
const groups = r['groups'];
|
|
51
|
-
const by = String(r['group_by']);
|
|
52
|
-
const total = r['total'];
|
|
53
|
-
const scanned = r['scanned'];
|
|
54
|
-
if (groups.length === 0) {
|
|
55
|
-
return `0 artifacts carried \`${by}\` (${scanned} scanned).`;
|
|
56
|
-
}
|
|
57
|
-
const width = Math.max(...groups.map((g) => g.key.length));
|
|
58
|
-
const max = groups[0].count;
|
|
59
|
-
const rows = groups
|
|
60
|
-
.map((g) => {
|
|
61
|
-
const bar = '█'.repeat(Math.max(1, Math.round((g.count / max) * 24)));
|
|
62
|
-
return ` ${g.key.padEnd(width)} ${String(g.count).padStart(6)} ${bar}`;
|
|
63
|
-
})
|
|
64
|
-
.join('\n');
|
|
65
|
-
const tail = total === scanned ? `${total} artifacts` : `${total} of ${scanned} scanned carried \`${by}\``;
|
|
66
|
-
return `by ${by}:\n\n${rows}\n\n- ${tail}`;
|
|
67
|
-
},
|
|
68
|
-
});
|
|
1
|
+
var h=Object.defineProperty;var s=(o,e)=>h(o,"name",{value:e,configurable:!0});import{defineLeaf as m}from"../../core/command.js";import{usage as g}from"../../core/errors.js";import{cliClient as l,rethrowAsCliError as f}from"../api-client.js";import{applyFilters as b,filterParams as w,parseFilters as v}from"./shared.js";const i=["origin","node","kind","day","type","role"],_=m({name:"stats",description:"grouped counts over the cwd's node history \u2014 the projection view",whenToUse:"you want the SHAPE of the record rather than individual hits \u2014 how much of it came from where, who produced it, or when it happened. Group by origin to census what drove agents to run (cron wakes, inbox deliveries, recovery re-drives, people), by node/kind to see who produced the work, by day for volume over time, by type for corpus composition. Takes every scope and filter `canvas history search` takes, so any query you can search you can also count. Want the matching artifacts themselves? Use `canvas history search` or `canvas history grep`.",help:{name:"canvas history stats",summary:"counts by one dimension over the per-cwd episodic record \u2014 origin census, per-node volume, activity by day",params:[{kind:"flag",name:"group-by",type:"enum",choices:i,required:!1,default:"type",constraint:"The dimension to count by. origin = what drove an inbound message (transcript + inbox only); role = transcript message role; node / kind = who produced it; day = artifact date; type = corpus composition."},...w],output:[{name:"group_by",type:"string",required:!0,constraint:"The dimension counted."},{name:"groups",type:"object[]",required:!0,constraint:"{key, count}, descending by count then key."},{name:"total",type:"int",required:!0,constraint:"Artifacts that carried the grouped dimension. Lower than `scanned` when grouping by one not every artifact has (origin, role)."},{name:"scanned",type:"int",required:!0,constraint:"Artifacts matched by the filters before grouping."}],outputKind:"object",effects:["None. Read-only."]},run:s(async o=>{const e=o.groupBy??"type";if(!i.includes(e))throw g(`--group-by must be one of: ${i.join(", ")}; received: ${e}`);const n=v(o),r={group_by:e};b(r,n);try{const t=await l().historyStats(r);return{group_by:t.group_by,groups:t.groups,total:t.total,scanned:t.scanned}}catch(t){f(t)}},"run"),render:s(o=>{const e=o.groups,n=String(o.group_by),r=o.total,t=o.scanned;if(e.length===0)return`0 artifacts carried \`${n}\` (${t} scanned).`;const c=Math.max(...e.map(a=>a.key.length)),d=e[0].count,u=e.map(a=>{const y="\u2588".repeat(Math.max(1,Math.round(a.count/d*24)));return` ${a.key.padEnd(c)} ${String(a.count).padStart(6)} ${y}`}).join(`
|
|
2
|
+
`),p=r===t?`${r} artifacts`:`${r} of ${t} scanned carried \`${n}\``;return`by ${n}:
|
|
3
|
+
|
|
4
|
+
${u}
|
|
5
|
+
|
|
6
|
+
- ${p}`},"render")});export{_ as statsLeaf};
|
|
@@ -1,32 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// search over every node's reports/context docs, plus reading one hit's full
|
|
3
|
-
// body by ref. One node's own artifact listing lives at `node inspect
|
|
4
|
-
// artifacts` (a single-node read, not a graph-wide one). Distinct from `crtr
|
|
5
|
-
// memory`, which is curated semantic knowledge held independent of any episode.
|
|
6
|
-
// This branch owns CONTENT; it never duplicates the graph (use `node lifecycle
|
|
7
|
-
// revive` to reopen a found node, `node inspect show` for its topology).
|
|
8
|
-
import { envNodeCwd } from '../shared/env.js';
|
|
9
|
-
import { defineBranch } from '../core/command.js';
|
|
10
|
-
import { searchLeaf } from './canvas-history/search.js';
|
|
11
|
-
import { grepLeaf } from './canvas-history/grep.js';
|
|
12
|
-
import { readLeaf } from './canvas-history/read.js';
|
|
13
|
-
import { statsLeaf } from './canvas-history/stats.js';
|
|
14
|
-
/** A tiny per-cwd `<corpus>` marker for branch -h — just enough context to
|
|
15
|
-
* anchor the help text without scanning nodes or files. Uses only the injected
|
|
16
|
-
* node cwd env (or the process cwd outside a node), so help stays cheap. */
|
|
17
|
-
function corpusBlock() {
|
|
18
|
-
const cwd = envNodeCwd() ?? process.cwd();
|
|
19
|
-
return `<corpus cwd="${cwd}"/>`;
|
|
20
|
-
}
|
|
21
|
-
export const historyBranch = defineBranch({
|
|
22
|
-
name: 'history',
|
|
23
|
-
description: 'search and recall the cwd-wide content corpus — every node\'s reports, context docs, and conversations',
|
|
24
|
-
whenToUse: 'you want to find or re-read what was DONE in a cwd — a past design, a final report, a roadmap, a finding — across every node that ran there, WITHOUT already knowing which node. Use it when picking up prior work ("that caching work from last week"), recovering an artifact, or surveying a project\'s history. Already have the node id and just want everything IT left behind? Use `node inspect artifacts <id>` instead — this branch is the cwd-wide search corpus, not a per-node listing. Distinct from `crtr memory` (curated semantic knowledge, not episodes) and from `canvas dashboard`/`node inspect` (graph topology, not content).',
|
|
25
|
-
help: {
|
|
26
|
-
name: 'canvas history',
|
|
27
|
-
summary: 'search and recall the cwd-wide content corpus — every node\'s reports and context docs in this cwd',
|
|
28
|
-
model: 'The accumulated record of every node that ran in a cwd and the artifacts it left — its reports (final/update outcome summaries), context docs (specs, designs, roadmaps, findings), and the conversations themselves. `search` finds by content (ranked, filtered, sorted; omit the query to browse by recency); `grep` finds by an exact ECMAScript regex over body lines (pattern required, one hit per matching line — use this over `search` when you know the literal string/pattern, not just the topic); `read` pulls one hit\'s full body by its <node-id>:<relpath> ref, `--format raw` for the verbatim bytes; `stats` counts the same filtered corpus by one dimension instead of listing hits. Corpus is a DIMENSION here, not a location: `--type` selects which record you search, and every leaf takes the same scope and filters. This is the episodic record of what was DONE — distinct from `crtr memory`, which is curated semantic knowledge. Already have a node id and want everything IT left behind (not a cwd-wide search)? Use `node inspect artifacts <node-id>` instead. Two corpora are opt-in diagnostics rather than curated work: `--type inbox` is one node\'s full inbox history including un-clipped message bodies, and `--type transcript` is the conversation itself, message by message, each inbound turn carrying the origin that drove it (`--origin`, `--role`, `--from`, and `stats --group-by origin` for the census). Transcripts require a narrowing flag because there is no index. To reopen a node you found, use `node lifecycle revive`; for its place in the graph, `node inspect show`.',
|
|
29
|
-
dynamicState: corpusBlock,
|
|
30
|
-
},
|
|
31
|
-
children: [searchLeaf, grepLeaf, readLeaf, statsLeaf],
|
|
32
|
-
});
|
|
1
|
+
var n=Object.defineProperty;var t=(e,r)=>n(e,"name",{value:r,configurable:!0});import{envNodeCwd as o}from"../shared/env.js";import{defineBranch as a}from"../core/command.js";import{searchLeaf as s}from"./canvas-history/search.js";import{grepLeaf as i}from"./canvas-history/grep.js";import{readLeaf as d}from"./canvas-history/read.js";import{statsLeaf as c}from"./canvas-history/stats.js";function h(){return`<corpus cwd="${o()??process.cwd()}"/>`}t(h,"corpusBlock");const g=a({name:"history",description:"search and recall the cwd-wide content corpus \u2014 every node's reports, context docs, and conversations",whenToUse:'you want to find or re-read what was DONE in a cwd \u2014 a past design, a final report, a roadmap, a finding \u2014 across every node that ran there, WITHOUT already knowing which node. Use it when picking up prior work ("that caching work from last week"), recovering an artifact, or surveying a project\'s history. Already have the node id and just want everything IT left behind? Use `node inspect artifacts <id>` instead \u2014 this branch is the cwd-wide search corpus, not a per-node listing. Distinct from `crtr memory` (curated semantic knowledge, not episodes) and from `canvas dashboard`/`node inspect` (graph topology, not content).',help:{name:"canvas history",summary:"search and recall the cwd-wide content corpus \u2014 every node's reports and context docs in this cwd",model:"The accumulated record of every node that ran in a cwd and the artifacts it left \u2014 its reports (final/update outcome summaries), context docs (specs, designs, roadmaps, findings), and the conversations themselves. `search` finds by content (ranked, filtered, sorted; omit the query to browse by recency); `grep` finds by an exact ECMAScript regex over body lines (pattern required, one hit per matching line \u2014 use this over `search` when you know the literal string/pattern, not just the topic); `read` pulls one hit's full body by its <node-id>:<relpath> ref, `--format raw` for the verbatim bytes; `stats` counts the same filtered corpus by one dimension instead of listing hits. Corpus is a DIMENSION here, not a location: `--type` selects which record you search, and every leaf takes the same scope and filters. This is the episodic record of what was DONE \u2014 distinct from `crtr memory`, which is curated semantic knowledge. Already have a node id and want everything IT left behind (not a cwd-wide search)? Use `node inspect artifacts <node-id>` instead. Two corpora are opt-in diagnostics rather than curated work: `--type inbox` is one node's full inbox history including un-clipped message bodies, and `--type transcript` is the conversation itself, message by message, each inbound turn carrying the origin that drove it (`--origin`, `--role`, `--from`, and `stats --group-by origin` for the census). Transcripts require a narrowing flag because there is no index. To reopen a node you found, use `node lifecycle revive`; for its place in the graph, `node inspect show`.",dynamicState:h},children:[s,i,d,c]});export{g as historyBranch};
|
|
@@ -1,149 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// rendered result (stdout) stays clean.
|
|
16
|
-
import { spawnSync } from 'node:child_process';
|
|
17
|
-
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
18
|
-
import { join } from 'node:path';
|
|
19
|
-
import { defineLeaf } from '../core/command.js';
|
|
20
|
-
import { InputError } from '../core/io.js';
|
|
21
|
-
import { generateIssueTitle, titleSlug } from '../core/runtime/naming.js';
|
|
22
|
-
import { displayMessage, paneCurrentPath } from '../core/runtime/tmux-chrome.js';
|
|
23
|
-
/** Issue types the capture chord offers — each maps to a GitHub label. */
|
|
24
|
-
const TYPES = {
|
|
25
|
-
idea: { color: 'a2eeef', description: 'Captured idea / enhancement' },
|
|
26
|
-
bug: { color: 'd73a4a', description: 'Captured bug report' },
|
|
27
|
-
};
|
|
28
|
-
/** Read the whole note from stdin, TTY or pipe alike, until EOF (Ctrl-D in the
|
|
29
|
-
* popup). The framework's stdin param can't be used here: it short-circuits to
|
|
30
|
-
* '' when stdin is a TTY, which is exactly the popup case. */
|
|
31
|
-
function readNote() {
|
|
32
|
-
return new Promise((resolve) => {
|
|
33
|
-
const chunks = [];
|
|
34
|
-
process.stdin.on('data', (c) => chunks.push(c));
|
|
35
|
-
process.stdin.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
36
|
-
process.stdin.on('error', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
37
|
-
process.stdin.resume();
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/** Run a command in `cwd`, capturing stdout. Returns null on any non-zero exit
|
|
41
|
-
* or spawn failure (so callers can branch on "is this a gh repo"). */
|
|
42
|
-
function run(cmd, args, cwd) {
|
|
43
|
-
try {
|
|
44
|
-
const r = spawnSync(cmd, args, { cwd, encoding: 'utf8' });
|
|
45
|
-
if (r.status !== 0 || typeof r.stdout !== 'string')
|
|
46
|
-
return null;
|
|
47
|
-
return r.stdout.trim();
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/** The GitHub `owner/repo` for `cwd`, or null when it is not a gh-resolvable
|
|
54
|
-
* repo (no git remote, no gh auth, gh absent). */
|
|
55
|
-
function ghRepo(cwd) {
|
|
56
|
-
const r = run('gh', ['repo', 'view', '--json', 'nameWithOwner', '-q', '.nameWithOwner'], cwd);
|
|
57
|
-
return r !== null && r !== '' ? r : null;
|
|
58
|
-
}
|
|
59
|
-
/** Best-effort: ensure the `<type>` label exists before creating the issue
|
|
60
|
-
* (gh issue create fails on an unknown label). Ignores "already exists". */
|
|
61
|
-
function ensureLabel(cwd, type) {
|
|
62
|
-
const { color, description } = TYPES[type];
|
|
63
|
-
spawnSync('gh', ['label', 'create', type, '--color', color, '--description', description], { cwd, encoding: 'utf8' });
|
|
64
|
-
}
|
|
65
|
-
export const issueNewLeaf = defineLeaf({
|
|
66
|
-
name: 'new',
|
|
67
|
-
description: 'capture a todo/idea/bug note into a GitHub issue (or a .todos/ markdown note)',
|
|
68
|
-
whenToUse: 'the alt+c \u2192 i chord runs this inside a tmux popup; rarely run by hand',
|
|
69
|
-
tier: 'hidden',
|
|
70
|
-
help: {
|
|
71
|
-
name: 'canvas issue new',
|
|
72
|
-
summary: 'Capture a free-text note as a GitHub issue labeled with its type (idea|bug). Reads the note from the popup TTY, auto-generates the title via a headless pi call, and files it with `gh issue create` when the cwd is a GitHub repo, else writes `<git-root>/.todos/<slug>.md`. Bound to the alt+c \u2192 i prefix chord.',
|
|
73
|
-
params: [
|
|
74
|
-
{ kind: 'flag', name: 'type', type: 'enum', choices: ['idea', 'bug'], required: true, constraint: 'Issue type / label.' },
|
|
75
|
-
{ kind: 'flag', name: 'body', type: 'string', required: false, constraint: 'The note text. Omit to read it from stdin/the popup TTY (type, Ctrl-D to submit).' },
|
|
76
|
-
{ kind: 'flag', name: 'cwd', type: 'string', required: false, constraint: 'Directory whose repo the issue targets. Defaults to --pane\u2019s path, then process.cwd().' },
|
|
77
|
-
{ kind: 'flag', name: 'pane', type: 'string', required: false, constraint: 'tmux pane whose cwd/client to use for repo resolution and the confirmation toast.' },
|
|
78
|
-
],
|
|
79
|
-
output: [
|
|
80
|
-
{ name: 'created', type: 'boolean', required: true, constraint: 'True when a note was filed.' },
|
|
81
|
-
{ name: 'target', type: 'string', required: false, constraint: 'Where it landed: "github" or "file".' },
|
|
82
|
-
{ name: 'type', type: 'string', required: false, constraint: 'The issue type/label.' },
|
|
83
|
-
{ name: 'title', type: 'string', required: false, constraint: 'The generated issue title.' },
|
|
84
|
-
{ name: 'url', type: 'string', required: false, constraint: 'Issue URL when target is github.' },
|
|
85
|
-
{ name: 'path', type: 'string', required: false, constraint: 'File path when target is file.' },
|
|
86
|
-
],
|
|
87
|
-
outputKind: 'object',
|
|
88
|
-
effects: [
|
|
89
|
-
'Creates a GitHub issue via `gh issue create` (and the label if missing), OR writes a markdown note under `<git-root>/.todos/`.',
|
|
90
|
-
'Flashes a tmux status-line toast confirming the capture.',
|
|
91
|
-
],
|
|
92
|
-
},
|
|
93
|
-
run: async (input) => {
|
|
94
|
-
const type = input['type']?.trim();
|
|
95
|
-
if (type === undefined || !(type in TYPES)) {
|
|
96
|
-
throw new InputError({
|
|
97
|
-
error: 'bad_type',
|
|
98
|
-
message: `unknown issue type: ${String(input['type'])}`,
|
|
99
|
-
field: 'type',
|
|
100
|
-
next: `Valid types: ${Object.keys(TYPES).join(' | ')}.`,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
const pane = input['pane'] ?? process.env['TMUX_PANE'];
|
|
104
|
-
const cwd = input['cwd'] ??
|
|
105
|
-
(pane !== undefined && pane !== '' ? paneCurrentPath(pane) ?? undefined : undefined) ??
|
|
106
|
-
process.cwd();
|
|
107
|
-
let note = input['body'] ?? '';
|
|
108
|
-
if (note === '') {
|
|
109
|
-
process.stderr.write(`New ${type} \u2014 type your note, then Ctrl-D to submit (Ctrl-C to cancel):\n\n`);
|
|
110
|
-
note = await readNote();
|
|
111
|
-
}
|
|
112
|
-
note = note.trim();
|
|
113
|
-
if (note === '') {
|
|
114
|
-
displayMessage('crtr: nothing captured \u2014 empty note', pane);
|
|
115
|
-
return { created: false };
|
|
116
|
-
}
|
|
117
|
-
process.stderr.write('\nCreating\u2026\n');
|
|
118
|
-
const title = await generateIssueTitle(note);
|
|
119
|
-
const repo = ghRepo(cwd);
|
|
120
|
-
if (repo !== null) {
|
|
121
|
-
ensureLabel(cwd, type);
|
|
122
|
-
const url = run('gh', ['issue', 'create', '--title', title, '--body', note, '--label', type], cwd);
|
|
123
|
-
if (url !== null && url !== '') {
|
|
124
|
-
displayMessage(`crtr: \u2713 ${type} filed \u2192 ${url}`, pane, 5000);
|
|
125
|
-
return { created: true, target: 'github', type, title, url };
|
|
126
|
-
}
|
|
127
|
-
// gh failed mid-create (e.g. auth/network) — fall through to a local note
|
|
128
|
-
// so the capture is never lost.
|
|
129
|
-
process.stderr.write('gh issue create failed; saving a local .todos note instead\n');
|
|
130
|
-
}
|
|
131
|
-
// No GitHub repo (or gh failed): write a markdown note at the git root.
|
|
132
|
-
const root = run('git', ['rev-parse', '--show-toplevel'], cwd) ?? cwd;
|
|
133
|
-
const dir = join(root, '.todos');
|
|
134
|
-
const stamp = new Date().toISOString();
|
|
135
|
-
const fileStamp = stamp.replace(/[:.]/g, '-').replace('T', '_').slice(0, 19);
|
|
136
|
-
const path = join(dir, `${fileStamp}-${titleSlug(title)}.md`);
|
|
137
|
-
const frontmatter = `---\ntype: ${type}\ntitle: ${JSON.stringify(title)}\ncreated: ${stamp}\nstatus: open\n---\n\n${note}\n`;
|
|
138
|
-
try {
|
|
139
|
-
mkdirSync(dir, { recursive: true });
|
|
140
|
-
writeFileSync(path, frontmatter, 'utf8');
|
|
141
|
-
}
|
|
142
|
-
catch (e) {
|
|
143
|
-
displayMessage(`crtr: failed to save note: ${e.message}`, pane, 5000);
|
|
144
|
-
throw new InputError({ error: 'write_failed', message: `could not write ${path}`, next: 'Check directory permissions.' });
|
|
145
|
-
}
|
|
146
|
-
displayMessage(`crtr: \u2713 ${type} saved \u2192 .todos/${fileStamp}-${titleSlug(title)}.md`, pane, 5000);
|
|
147
|
-
return { created: true, target: 'file', type, title, path };
|
|
148
|
-
},
|
|
149
|
-
});
|
|
1
|
+
var T=Object.defineProperty;var a=(t,e)=>T(t,"name",{value:e,configurable:!0});import{spawnSync as h}from"node:child_process";import{mkdirSync as S,writeFileSync as k}from"node:fs";import{join as g}from"node:path";import{defineLeaf as q}from"../core/command.js";import{InputError as w}from"../core/io.js";import{generateIssueTitle as C,titleSlug as y}from"../core/runtime/naming.js";import{displayMessage as u,paneCurrentPath as v}from"../core/runtime/tmux-chrome.js";const d={idea:{color:"a2eeef",description:"Captured idea / enhancement"},bug:{color:"d73a4a",description:"Captured bug report"}};function x(){return new Promise(t=>{const e=[];process.stdin.on("data",r=>e.push(r)),process.stdin.on("end",()=>t(Buffer.concat(e).toString("utf8"))),process.stdin.on("error",()=>t(Buffer.concat(e).toString("utf8"))),process.stdin.resume()})}a(x,"readNote");function l(t,e,r){try{const n=h(t,e,{cwd:r,encoding:"utf8"});return n.status!==0||typeof n.stdout!="string"?null:n.stdout.trim()}catch{return null}}a(l,"run");function O(t){const e=l("gh",["repo","view","--json","nameWithOwner","-q",".nameWithOwner"],t);return e!==null&&e!==""?e:null}a(O,"ghRepo");function j(t,e){const{color:r,description:n}=d[e];h("gh",["label","create",e,"--color",r,"--description",n],{cwd:t,encoding:"utf8"})}a(j,"ensureLabel");const B=q({name:"new",description:"capture a todo/idea/bug note into a GitHub issue (or a .todos/ markdown note)",whenToUse:"the alt+c \u2192 i chord runs this inside a tmux popup; rarely run by hand",tier:"hidden",help:{name:"canvas issue new",summary:"Capture a free-text note as a GitHub issue labeled with its type (idea|bug). Reads the note from the popup TTY, auto-generates the title via a headless pi call, and files it with `gh issue create` when the cwd is a GitHub repo, else writes `<git-root>/.todos/<slug>.md`. Bound to the alt+c \u2192 i prefix chord.",params:[{kind:"flag",name:"type",type:"enum",choices:["idea","bug"],required:!0,constraint:"Issue type / label."},{kind:"flag",name:"body",type:"string",required:!1,constraint:"The note text. Omit to read it from stdin/the popup TTY (type, Ctrl-D to submit)."},{kind:"flag",name:"cwd",type:"string",required:!1,constraint:"Directory whose repo the issue targets. Defaults to --pane\u2019s path, then process.cwd()."},{kind:"flag",name:"pane",type:"string",required:!1,constraint:"tmux pane whose cwd/client to use for repo resolution and the confirmation toast."}],output:[{name:"created",type:"boolean",required:!0,constraint:"True when a note was filed."},{name:"target",type:"string",required:!1,constraint:'Where it landed: "github" or "file".'},{name:"type",type:"string",required:!1,constraint:"The issue type/label."},{name:"title",type:"string",required:!1,constraint:"The generated issue title."},{name:"url",type:"string",required:!1,constraint:"Issue URL when target is github."},{name:"path",type:"string",required:!1,constraint:"File path when target is file."}],outputKind:"object",effects:["Creates a GitHub issue via `gh issue create` (and the label if missing), OR writes a markdown note under `<git-root>/.todos/`.","Flashes a tmux status-line toast confirming the capture."]},run:a(async t=>{const e=t.type?.trim();if(e===void 0||!(e in d))throw new w({error:"bad_type",message:`unknown issue type: ${String(t.type)}`,field:"type",next:`Valid types: ${Object.keys(d).join(" | ")}.`});const r=t.pane??process.env.TMUX_PANE,n=t.cwd??(r!==void 0&&r!==""?v(r)??void 0:void 0)??process.cwd();let s=t.body??"";if(s===""&&(process.stderr.write(`New ${e} \u2014 type your note, then Ctrl-D to submit (Ctrl-C to cancel):
|
|
2
|
+
|
|
3
|
+
`),s=await x()),s=s.trim(),s==="")return u("crtr: nothing captured \u2014 empty note",r),{created:!1};process.stderr.write(`
|
|
4
|
+
Creating\u2026
|
|
5
|
+
`);const i=await C(s);if(O(n)!==null){j(n,e);const o=l("gh",["issue","create","--title",i,"--body",s,"--label",e],n);if(o!==null&&o!=="")return u(`crtr: \u2713 ${e} filed \u2192 ${o}`,r,5e3),{created:!0,target:"github",type:e,title:i,url:o};process.stderr.write(`gh issue create failed; saving a local .todos note instead
|
|
6
|
+
`)}const b=l("git",["rev-parse","--show-toplevel"],n)??n,p=g(b,".todos"),f=new Date().toISOString(),m=f.replace(/[:.]/g,"-").replace("T","_").slice(0,19),c=g(p,`${m}-${y(i)}.md`),$=`---
|
|
7
|
+
type: ${e}
|
|
8
|
+
title: ${JSON.stringify(i)}
|
|
9
|
+
created: ${f}
|
|
10
|
+
status: open
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
${s}
|
|
14
|
+
`;try{S(p,{recursive:!0}),k(c,$,"utf8")}catch(o){throw u(`crtr: failed to save note: ${o.message}`,r,5e3),new w({error:"write_failed",message:`could not write ${c}`,next:"Check directory permissions."})}return u(`crtr: \u2713 ${e} saved \u2192 .todos/${m}-${y(i)}.md`,r,5e3),{created:!0,target:"file",type:e,title:i,path:c}},"run")});export{B as issueNewLeaf};
|
|
@@ -1,108 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// The canvas never deleted a node before this: dead/done/canceled rows + their
|
|
4
|
-
// `nodes/<id>/` dirs accumulated without limit. `prune` is the retention sweep —
|
|
5
|
-
// remove TERMINAL nodes (dead | done | canceled) older than a TTL; the edges→nodes
|
|
6
|
-
// FK (ON DELETE CASCADE) GCs their edges, and each node's dir is removed too.
|
|
7
|
-
// Live nodes (active | idle) and nodes with an open managed worktree are never touched.
|
|
8
|
-
//
|
|
9
|
-
// Exported as a leaf; `crtr canvas` (canvas.ts) mounts it.
|
|
10
|
-
import { defineLeaf } from '../core/command.js';
|
|
11
|
-
import { cliClient, rethrowAsCliError } from './api-client.js';
|
|
12
|
-
const DEFAULT_TTL_DAYS = 14;
|
|
13
|
-
export const canvasPruneLeaf = defineLeaf({
|
|
14
|
-
name: 'prune',
|
|
15
|
-
description: 'remove terminal nodes (dead/done/canceled) older than a TTL',
|
|
16
|
-
whenToUse: 'you want to bound the canvas\u2019s on-disk growth \u2014 sweep away nodes that are finished (done), crashed (dead), or closed (canceled) and older than a retention window, reclaiming their rows, edges (cascade-deleted by the schema), and `nodes/<id>/` dirs. Run it as an operator/cron chore; live nodes (active/idle) and nodes with an open managed worktree are never touched, and you can preview the sweep before it deletes anything',
|
|
17
|
-
help: {
|
|
18
|
-
name: 'canvas prune',
|
|
19
|
-
summary: 'delete terminal nodes older than a TTL (edges cascade, dirs removed); --max N for a count cap; --dry-run to preview',
|
|
20
|
-
params: [
|
|
21
|
-
{
|
|
22
|
-
kind: 'flag',
|
|
23
|
-
name: 'max',
|
|
24
|
-
type: 'int',
|
|
25
|
-
required: false,
|
|
26
|
-
constraint: 'COUNT mode (instead of the TTL sweep): keep the N most-recently-active nodes plus every protected node, deleting the oldest remaining terminal nodes. Active/idle nodes regardless of process state and nodes with an open managed worktree are NEVER deleted, so the real floor is max(N, protectedCount). Recency = telemetry.json mtime, falling back to created. Combine with --dry-run to preview.',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
kind: 'flag',
|
|
30
|
-
name: 'ttl',
|
|
31
|
-
type: 'int',
|
|
32
|
-
required: false,
|
|
33
|
-
default: DEFAULT_TTL_DAYS,
|
|
34
|
-
constraint: `Retention window in days: only dead/done/canceled nodes created more than this many days ago are pruned, except nodes with an open managed worktree. Default: ${DEFAULT_TTL_DAYS}.`,
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
kind: 'flag',
|
|
38
|
-
name: 'include-stale',
|
|
39
|
-
type: 'bool',
|
|
40
|
-
required: false,
|
|
41
|
-
default: false,
|
|
42
|
-
constraint: 'ALSO prune stale active/idle nodes past the TTL whose process is gone (pi_pid null or dead) — reaps abandoned roots the daemon never reconciled. A genuinely-running node (live pi_pid), a node with an open managed worktree, and the caller are protected.',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
kind: 'flag',
|
|
46
|
-
name: 'empty',
|
|
47
|
-
type: 'bool',
|
|
48
|
-
required: false,
|
|
49
|
-
default: false,
|
|
50
|
-
constraint: 'Instead of the TTL sweep, reap EMPTY nodes — nodes (of any age or status) whose engine never produced an assistant message, the useless shells that just take up graph + disk space. A node mid-first-turn, the caller, and a node with an open managed worktree are spared. Combine with --dry-run to preview.',
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
kind: 'flag',
|
|
54
|
-
name: 'dry-run',
|
|
55
|
-
type: 'bool',
|
|
56
|
-
required: false,
|
|
57
|
-
default: false,
|
|
58
|
-
constraint: 'Report what WOULD be pruned without deleting anything.',
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
output: [
|
|
62
|
-
{ name: 'pruned', type: 'integer', required: true, constraint: 'How many nodes were pruned (0 under --dry-run since nothing is deleted; the candidate count is in `nodes`).' },
|
|
63
|
-
{ name: 'dryRun', type: 'boolean', required: true, constraint: 'True when nothing was deleted (preview only).' },
|
|
64
|
-
{ name: 'ttlDays', type: 'integer', required: true, constraint: 'The retention window used.' },
|
|
65
|
-
{ name: 'nodes', type: 'object[]', required: true, constraint: 'One per pruned (or, under --dry-run, prunable) node: {node_id,status,created}.' },
|
|
66
|
-
],
|
|
67
|
-
outputKind: 'object',
|
|
68
|
-
effects: [
|
|
69
|
-
'With --max N: COUNT mode — keep the N most-recently-active nodes plus every protected node, deleting the oldest remaining terminal nodes; active/idle nodes regardless of process state, open-managed-worktree nodes, and the caller are never deleted. Takes precedence over the TTL/--empty sweeps.',
|
|
70
|
-
'Deletes matching `nodes` rows; their edges cascade-delete via the FK; each node\u2019s `nodes/<id>/` dir is removed. Nodes with an open managed worktree are excluded.',
|
|
71
|
-
'No-op on live nodes (active/idle), nodes with an open managed worktree, and terminal nodes newer than the TTL. With --include-stale: also deletes active/idle nodes past the TTL whose process is gone (pi_pid null/dead); genuinely-running nodes and the caller are kept.',
|
|
72
|
-
'Under --dry-run: read-only, deletes nothing.',
|
|
73
|
-
],
|
|
74
|
-
},
|
|
75
|
-
run: async (input) => {
|
|
76
|
-
const ttlDays = input['ttl'] ?? DEFAULT_TTL_DAYS;
|
|
77
|
-
const dryRun = input['dryRun'] ?? false;
|
|
78
|
-
const includeStale = input['includeStale'] ?? false;
|
|
79
|
-
const empty = input['empty'] ?? false;
|
|
80
|
-
const maxNodes = input['max'];
|
|
81
|
-
// Precedence COUNT (--max) > EMPTY (--empty) > TTL sweep — the server applies
|
|
82
|
-
// the same order; sending the winning mode keeps it unambiguous. The prune
|
|
83
|
-
// itself + target-gone notifications run inside crtrd (it owns the feed).
|
|
84
|
-
const req = { dry_run: dryRun, ttl_days: ttlDays };
|
|
85
|
-
if (maxNodes !== undefined)
|
|
86
|
-
req.limit = maxNodes;
|
|
87
|
-
else if (empty)
|
|
88
|
-
req.empty = true;
|
|
89
|
-
else
|
|
90
|
-
req.include_stale = includeStale;
|
|
91
|
-
try {
|
|
92
|
-
const res = await cliClient().prune(req);
|
|
93
|
-
return {
|
|
94
|
-
pruned: res.dry_run ? 0 : res.pruned.length,
|
|
95
|
-
dryRun: res.dry_run,
|
|
96
|
-
ttlDays: res.ttl_days,
|
|
97
|
-
nodes: res.pruned.map((p) => ({
|
|
98
|
-
node_id: p.node_id,
|
|
99
|
-
status: p.status,
|
|
100
|
-
created: p.created,
|
|
101
|
-
})),
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
catch (err) {
|
|
105
|
-
rethrowAsCliError(err);
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
});
|
|
1
|
+
var u=Object.defineProperty;var s=(e,a)=>u(e,"name",{value:a,configurable:!0});import{defineLeaf as p}from"../core/command.js";import{cliClient as h,rethrowAsCliError as m}from"./api-client.js";const r=14,f=p({name:"prune",description:"remove terminal nodes (dead/done/canceled) older than a TTL",whenToUse:"you want to bound the canvas\u2019s on-disk growth \u2014 sweep away nodes that are finished (done), crashed (dead), or closed (canceled) and older than a retention window, reclaiming their rows, edges (cascade-deleted by the schema), and `nodes/<id>/` dirs. Run it as an operator/cron chore; live nodes (active/idle) and nodes with an open managed worktree are never touched, and you can preview the sweep before it deletes anything",help:{name:"canvas prune",summary:"delete terminal nodes older than a TTL (edges cascade, dirs removed); --max N for a count cap; --dry-run to preview",params:[{kind:"flag",name:"max",type:"int",required:!1,constraint:"COUNT mode (instead of the TTL sweep): keep the N most-recently-active nodes plus every protected node, deleting the oldest remaining terminal nodes. Active/idle nodes regardless of process state and nodes with an open managed worktree are NEVER deleted, so the real floor is max(N, protectedCount). Recency = telemetry.json mtime, falling back to created. Combine with --dry-run to preview."},{kind:"flag",name:"ttl",type:"int",required:!1,default:r,constraint:`Retention window in days: only dead/done/canceled nodes created more than this many days ago are pruned, except nodes with an open managed worktree. Default: ${r}.`},{kind:"flag",name:"include-stale",type:"bool",required:!1,default:!1,constraint:"ALSO prune stale active/idle nodes past the TTL whose process is gone (pi_pid null or dead) \u2014 reaps abandoned roots the daemon never reconciled. A genuinely-running node (live pi_pid), a node with an open managed worktree, and the caller are protected."},{kind:"flag",name:"empty",type:"bool",required:!1,default:!1,constraint:"Instead of the TTL sweep, reap EMPTY nodes \u2014 nodes (of any age or status) whose engine never produced an assistant message, the useless shells that just take up graph + disk space. A node mid-first-turn, the caller, and a node with an open managed worktree are spared. Combine with --dry-run to preview."},{kind:"flag",name:"dry-run",type:"bool",required:!1,default:!1,constraint:"Report what WOULD be pruned without deleting anything."}],output:[{name:"pruned",type:"integer",required:!0,constraint:"How many nodes were pruned (0 under --dry-run since nothing is deleted; the candidate count is in `nodes`)."},{name:"dryRun",type:"boolean",required:!0,constraint:"True when nothing was deleted (preview only)."},{name:"ttlDays",type:"integer",required:!0,constraint:"The retention window used."},{name:"nodes",type:"object[]",required:!0,constraint:"One per pruned (or, under --dry-run, prunable) node: {node_id,status,created}."}],outputKind:"object",effects:["With --max N: COUNT mode \u2014 keep the N most-recently-active nodes plus every protected node, deleting the oldest remaining terminal nodes; active/idle nodes regardless of process state, open-managed-worktree nodes, and the caller are never deleted. Takes precedence over the TTL/--empty sweeps.","Deletes matching `nodes` rows; their edges cascade-delete via the FK; each node\u2019s `nodes/<id>/` dir is removed. Nodes with an open managed worktree are excluded.","No-op on live nodes (active/idle), nodes with an open managed worktree, and terminal nodes newer than the TTL. With --include-stale: also deletes active/idle nodes past the TTL whose process is gone (pi_pid null/dead); genuinely-running nodes and the caller are kept.","Under --dry-run: read-only, deletes nothing."]},run:s(async e=>{const a=e.ttl??r,i=e.dryRun??!1,l=e.includeStale??!1,c=e.empty??!1,o=e.max,t={dry_run:i,ttl_days:a};o!==void 0?t.limit=o:c?t.empty=!0:t.include_stale=l;try{const n=await h().prune(t);return{pruned:n.dry_run?0:n.pruned.length,dryRun:n.dry_run,ttlDays:n.ttl_days,nodes:n.pruned.map(d=>({node_id:d.node_id,status:d.status,created:d.created}))}}catch(n){m(n)}},"run")});export{f as canvasPruneLeaf};
|