@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,85 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { lightModel } from './naming.js';
|
|
8
|
-
import { normalizeToolGroupSummary } from '../../shared/tool-groups.js';
|
|
9
|
-
const BOUNDARY_CAP = 600;
|
|
10
|
-
const TOOL_ARGS_CAP = 300;
|
|
11
|
-
const RESULT_CAP = 400;
|
|
12
|
-
const TEXT_CAP = 1_000;
|
|
13
|
-
const SEGMENT_CAP = 10_000;
|
|
14
|
-
const SUMMARY_TIMEOUT_MS = 45_000;
|
|
15
|
-
function capped(value, cap) {
|
|
16
|
-
const normalized = value.replace(/\s+/g, ' ').trim();
|
|
17
|
-
return normalized.length <= cap ? normalized : `${normalized.slice(0, Math.max(0, cap - 1)).trimEnd()}…`;
|
|
18
|
-
}
|
|
19
|
-
function printable(value, cap) {
|
|
20
|
-
try {
|
|
21
|
-
return capped(typeof value === 'string' ? value : JSON.stringify(value), cap);
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return capped(String(value), cap);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/** Serialize only the causal material around one group, with fixed per-piece
|
|
28
|
-
* and total budgets so a verbose tool result cannot dominate the light-model call. */
|
|
29
|
-
export function serializeToolGroup(previousBoundaryProse, pieces) {
|
|
30
|
-
const lines = [`Previous visible message: ${capped(previousBoundaryProse, BOUNDARY_CAP) || '(none)'}`, 'Between-message activity:'];
|
|
31
|
-
for (const piece of pieces) {
|
|
32
|
-
if (piece.type === 'tool')
|
|
33
|
-
lines.push(`- tool ${piece.name}(${printable(piece.args, TOOL_ARGS_CAP)})`);
|
|
34
|
-
else if (piece.type === 'result')
|
|
35
|
-
lines.push(`- ${piece.isError ? 'error' : 'result'} ${piece.name}: ${printable(piece.result, RESULT_CAP)}`);
|
|
36
|
-
else
|
|
37
|
-
lines.push(`- context: ${capped(piece.text, TEXT_CAP)}`);
|
|
38
|
-
}
|
|
39
|
-
return capped(lines.join('\n'), SEGMENT_CAP);
|
|
40
|
-
}
|
|
41
|
-
// Tool mechanics, identifiers, and inbox bookkeeping produce a machine log rather
|
|
42
|
-
// than the glanceable human recap this surface needs, so the prompt asks only for
|
|
43
|
-
// very short outcomes while the structured fields retain the underlying stats.
|
|
44
|
-
const SUMMARY_SYSTEM_PROMPT = 'Create a structured recap of this coding-agent tool activity. ' +
|
|
45
|
-
'Prefer 1–3 bullets and use at most 5 only for distinct meaningful outcomes. ' +
|
|
46
|
-
'Each bullet must be an extremely readable plain-English outcome of 3–10 words, without markdown markers. ' +
|
|
47
|
-
'Describe what changed or was accomplished, not the tools, commands, or investigation steps; for code work, say what capability was added to a one- or two-phrase plain-English part of the system, such as "Added scheduling controls to the worker service." ' +
|
|
48
|
-
'Never include IDs, hashes, paths, filenames, command names, tool names, raw values, or report text. ' +
|
|
49
|
-
'Omit inbox receipt, delivery, and queueing; node-response and report bookkeeping; help lookups; status checks; and summary-generation activity. ' +
|
|
50
|
-
'A node response may support a substantive outcome, but its arrival or resummarization is never itself an outcome. ' +
|
|
51
|
-
'If no meaningful outcome remains after those omissions, submit the single bullet "No meaningful changes." ' +
|
|
52
|
-
'Count distinct files removed from disk only when the supplied tool arguments or results evidence them; otherwise use zero, even when the corresponding mechanics are omitted from bullets. ' +
|
|
53
|
-
'A deleted file is one that no longer exists after the segment, never a file that was merely edited or overwritten, and a recursive or wildcard removal of an unknown number of files counts as one. ' +
|
|
54
|
-
'Do not invent success when a result shows failure. ' +
|
|
55
|
-
'Call submit_summary exactly once with bullets and filesDeleted, then stop.';
|
|
56
|
-
const SUBMIT_SUMMARY_SCHEMA = Type.Object({
|
|
57
|
-
bullets: Type.Array(Type.String({
|
|
58
|
-
minLength: 1,
|
|
59
|
-
maxLength: 120,
|
|
60
|
-
description: 'A very short, plain-English outcome without bullet markers, identifiers, or operational bookkeeping.',
|
|
61
|
-
}), { minItems: 1, maxItems: 5 }),
|
|
62
|
-
filesDeleted: Type.Integer({
|
|
63
|
-
minimum: 0,
|
|
64
|
-
description: 'Count of distinct files removed from disk during the supplied segment, or zero when none are evidenced.',
|
|
65
|
-
}),
|
|
66
|
-
}, { additionalProperties: false });
|
|
67
|
-
/** Generate a structured summary object, or null on every failure. */
|
|
68
|
-
export async function headlessToolGroupSummary(segment) {
|
|
69
|
-
const ladders = modelLadders();
|
|
70
|
-
const modelIntent = `${defaultProvider(ladders)}/light`;
|
|
71
|
-
return normalizeToolGroupSummary(await headlessToolCall({
|
|
72
|
-
systemPrompt: SUMMARY_SYSTEM_PROMPT,
|
|
73
|
-
userPrompt: `<tool-group>\n${segment}\n</tool-group>\n\nSummarize the activity above.`,
|
|
74
|
-
modelSpec: lightModel(),
|
|
75
|
-
modelIntent,
|
|
76
|
-
timeoutMs: SUMMARY_TIMEOUT_MS,
|
|
77
|
-
tool: {
|
|
78
|
-
name: 'submit_summary',
|
|
79
|
-
label: 'Submit summary',
|
|
80
|
-
description: 'Submit the structured tool-group activity recap exactly once, then stop.',
|
|
81
|
-
parameters: SUBMIT_SUMMARY_SCHEMA,
|
|
82
|
-
constrainedSampling: false,
|
|
83
|
-
},
|
|
84
|
-
}));
|
|
85
|
-
}
|
|
1
|
+
var l=Object.defineProperty;var r=(e,t)=>l(e,"name",{value:t,configurable:!0});import{Type as i}from"@earendil-works/pi-ai";import{headlessToolCall as m}from"./headless-pi.js";import{defaultProvider as u,modelLadders as c}from"./model-selection.js";import{lightModel as d}from"./naming.js";import{normalizeToolGroupSummary as p}from"../../shared/tool-groups.js";const h=600,f=300,g=400,y=1e3,b=1e4,v=45e3;function n(e,t){const o=e.replace(/\s+/g," ").trim();return o.length<=t?o:`${o.slice(0,Math.max(0,t-1)).trimEnd()}\u2026`}r(n,"capped");function a(e,t){try{return n(typeof e=="string"?e:JSON.stringify(e),t)}catch{return n(String(e),t)}}r(a,"printable");function E(e,t){const o=[`Previous visible message: ${n(e,h)||"(none)"}`,"Between-message activity:"];for(const s of t)s.type==="tool"?o.push(`- tool ${s.name}(${a(s.args,f)})`):s.type==="result"?o.push(`- ${s.isError?"error":"result"} ${s.name}: ${a(s.result,g)}`):o.push(`- context: ${n(s.text,y)}`);return n(o.join(`
|
|
2
|
+
`),b)}r(E,"serializeToolGroup");const w='Create a structured recap of this coding-agent tool activity. Prefer 1\u20133 bullets and use at most 5 only for distinct meaningful outcomes. Each bullet must be an extremely readable plain-English outcome of 3\u201310 words, without markdown markers. Describe what changed or was accomplished, not the tools, commands, or investigation steps; for code work, say what capability was added to a one- or two-phrase plain-English part of the system, such as "Added scheduling controls to the worker service." Never include IDs, hashes, paths, filenames, command names, tool names, raw values, or report text. Omit inbox receipt, delivery, and queueing; node-response and report bookkeeping; help lookups; status checks; and summary-generation activity. A node response may support a substantive outcome, but its arrival or resummarization is never itself an outcome. If no meaningful outcome remains after those omissions, submit the single bullet "No meaningful changes." Count distinct files removed from disk only when the supplied tool arguments or results evidence them; otherwise use zero, even when the corresponding mechanics are omitted from bullets. A deleted file is one that no longer exists after the segment, never a file that was merely edited or overwritten, and a recursive or wildcard removal of an unknown number of files counts as one. Do not invent success when a result shows failure. Call submit_summary exactly once with bullets and filesDeleted, then stop.',S=i.Object({bullets:i.Array(i.String({minLength:1,maxLength:120,description:"A very short, plain-English outcome without bullet markers, identifiers, or operational bookkeeping."}),{minItems:1,maxItems:5}),filesDeleted:i.Integer({minimum:0,description:"Count of distinct files removed from disk during the supplied segment, or zero when none are evidenced."})},{additionalProperties:!1});async function P(e){const t=c(),o=`${u(t)}/light`;return p(await m({systemPrompt:w,userPrompt:`<tool-group>
|
|
3
|
+
${e}
|
|
4
|
+
</tool-group>
|
|
5
|
+
|
|
6
|
+
Summarize the activity above.`,modelSpec:d(),modelIntent:o,timeoutMs:v,tool:{name:"submit_summary",label:"Submit summary",description:"Submit the structured tool-group activity recap exactly once, then stop.",parameters:S,constrainedSampling:!1}}))}r(P,"headlessToolGroupSummary");export{P as headlessToolGroupSummary,E as serializeToolGroup};
|
|
@@ -1,31 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// The broker is native ESM while guest and crouter pi extensions are Jiti-loaded,
|
|
4
|
-
// so ordinary module state splits at the loader boundary. A registered symbol
|
|
5
|
-
// keeps crouter's decision visible to every in-process extension.
|
|
6
|
-
const TURN_VISIBILITY = Symbol.for('@crouton-kit/crtr:turn-visibility');
|
|
7
|
-
function state() {
|
|
8
|
-
const host = globalThis;
|
|
9
|
-
const existing = host[TURN_VISIBILITY];
|
|
10
|
-
if (existing !== undefined)
|
|
11
|
-
return existing;
|
|
12
|
-
const created = { value: 'visible' };
|
|
13
|
-
host[TURN_VISIBILITY] = created;
|
|
14
|
-
return created;
|
|
15
|
-
}
|
|
16
|
-
/** The presentation classification of the current agent run. */
|
|
17
|
-
export function currentTurnVisibility() {
|
|
18
|
-
return state().value;
|
|
19
|
-
}
|
|
20
|
-
/** Whether the current agent run is structurally internal to crouter. */
|
|
21
|
-
export function isTurnInternal() {
|
|
22
|
-
return currentTurnVisibility() === 'internal';
|
|
23
|
-
}
|
|
24
|
-
/** Set visibility before handing an admitted input to pi. */
|
|
25
|
-
export function setTurnVisibility(visibility) {
|
|
26
|
-
state().value = visibility;
|
|
27
|
-
}
|
|
28
|
-
/** Return to the fail-open state after the complete agent run settles. */
|
|
29
|
-
export function clearTurnVisibility() {
|
|
30
|
-
state().value = 'visible';
|
|
31
|
-
}
|
|
1
|
+
var o=Object.defineProperty;var i=(t,n)=>o(t,"name",{value:n,configurable:!0});const u=Symbol.for("@crouton-kit/crtr:turn-visibility");function r(){const t=globalThis,n=t[u];if(n!==void 0)return n;const e={value:"visible"};return t[u]=e,e}i(r,"state");function l(){return r().value}i(l,"currentTurnVisibility");function c(){return l()==="internal"}i(c,"isTurnInternal");function a(t){r().value=t}i(a,"setTurnVisibility");function b(){r().value="visible"}i(b,"clearTurnVisibility");export{b as clearTurnVisibility,l as currentTurnVisibility,c as isTurnInternal,a as setTurnVisibility};
|
|
@@ -1,83 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// A successful Unix-socket connect proves a broker is listening; socket-file
|
|
4
|
-
// existence alone can be stale after a broker exit. This stays canvas-db-free so
|
|
5
|
-
// command callers can wait without reaching a runtime placement owner.
|
|
6
|
-
import { createConnection } from 'node:net';
|
|
7
|
-
import { viewSocketPath } from '../canvas/paths.js';
|
|
8
|
-
const BROKER_FOCUS_SOCKET_WAIT_MS = 30_000;
|
|
9
|
-
const BROKER_FOCUS_SOCKET_RETRY_MS = 100;
|
|
10
|
-
/** The shared cold-start deadline (ms) a freshly-opened viewer waits for its
|
|
11
|
-
* broker's view.sock — one source of truth for CRTR_ATTACH_WAIT_MS. */
|
|
12
|
-
export const BROKER_VIEW_SOCKET_WAIT_MS = BROKER_FOCUS_SOCKET_WAIT_MS;
|
|
13
|
-
function sleep(ms) {
|
|
14
|
-
return new Promise((resolve) => {
|
|
15
|
-
setTimeout(resolve, ms);
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
/** Resolve true exactly when `sockPath` accepts a connection within `timeoutMs`. */
|
|
19
|
-
export function probeViewSocket(sockPath, timeoutMs) {
|
|
20
|
-
return new Promise((resolve) => {
|
|
21
|
-
let settled = false;
|
|
22
|
-
let socket = null;
|
|
23
|
-
const finish = (ok) => {
|
|
24
|
-
if (settled)
|
|
25
|
-
return;
|
|
26
|
-
settled = true;
|
|
27
|
-
if (socket !== null)
|
|
28
|
-
socket.destroy();
|
|
29
|
-
resolve(ok);
|
|
30
|
-
};
|
|
31
|
-
try {
|
|
32
|
-
socket = createConnection(sockPath);
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
finish(false);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
socket.once('connect', () => finish(true));
|
|
39
|
-
socket.once('error', () => finish(false));
|
|
40
|
-
socket.setTimeout(timeoutMs, () => finish(false));
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
/** Bounded retry for the revive leaf, which has no launch handle to observe. */
|
|
44
|
-
export async function waitForViewSocketReady(nodeId) {
|
|
45
|
-
const sockPath = viewSocketPath(nodeId);
|
|
46
|
-
const deadline = Date.now() + BROKER_FOCUS_SOCKET_WAIT_MS;
|
|
47
|
-
while (Date.now() <= deadline) {
|
|
48
|
-
if (await probeViewSocket(sockPath, BROKER_FOCUS_SOCKET_RETRY_MS))
|
|
49
|
-
return true;
|
|
50
|
-
await sleep(BROKER_FOCUS_SOCKET_RETRY_MS);
|
|
51
|
-
}
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
/** Wait for a launched broker's view.sock, failing fast when its launch handle
|
|
55
|
-
* exits. `exited` remains optional for existing callers that only need the same
|
|
56
|
-
* bounded readiness deadline without a handle. */
|
|
57
|
-
export async function waitForBrokerViewSocket(nodeId, exited) {
|
|
58
|
-
const sockPath = viewSocketPath(nodeId);
|
|
59
|
-
const deadline = Date.now() + BROKER_FOCUS_SOCKET_WAIT_MS;
|
|
60
|
-
const exitSeen = exited?.then(() => 'exit');
|
|
61
|
-
while (Date.now() <= deadline) {
|
|
62
|
-
const remaining = Math.max(0, deadline - Date.now());
|
|
63
|
-
const probe = probeViewSocket(sockPath, Math.min(BROKER_FOCUS_SOCKET_RETRY_MS, remaining))
|
|
64
|
-
.then((ok) => (ok ? 'ready' : 'retry'));
|
|
65
|
-
const outcome = exitSeen === undefined ? await probe : await Promise.race([probe, exitSeen]);
|
|
66
|
-
if (outcome === 'ready')
|
|
67
|
-
return true;
|
|
68
|
-
if (outcome === 'exit')
|
|
69
|
-
return false;
|
|
70
|
-
if (exitSeen !== undefined) {
|
|
71
|
-
const sleptOrExit = await Promise.race([
|
|
72
|
-
sleep(BROKER_FOCUS_SOCKET_RETRY_MS).then(() => 'sleep'),
|
|
73
|
-
exitSeen,
|
|
74
|
-
]);
|
|
75
|
-
if (sleptOrExit === 'exit')
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
await sleep(BROKER_FOCUS_SOCKET_RETRY_MS);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
1
|
+
var S=Object.defineProperty;var r=(t,n)=>S(t,"name",{value:n,configurable:!0});import{createConnection as _}from"node:net";import{viewSocketPath as m}from"../canvas/paths.js";const u=3e4,s=100,E=u;function f(t){return new Promise(n=>{setTimeout(n,t)})}r(f,"sleep");function d(t,n){return new Promise(i=>{let a=!1,e=null;const o=r(c=>{a||(a=!0,e!==null&&e.destroy(),i(c))},"finish");try{e=_(t)}catch{o(!1);return}e.once("connect",()=>o(!0)),e.once("error",()=>o(!1)),e.setTimeout(n,()=>o(!1))})}r(d,"probeViewSocket");async function O(t){const n=m(t),i=Date.now()+u;for(;Date.now()<=i;){if(await d(n,s))return!0;await f(s)}return!1}r(O,"waitForViewSocketReady");async function R(t,n){const i=m(t),a=Date.now()+u,e=n?.then(()=>"exit");for(;Date.now()<=a;){const o=Math.max(0,a-Date.now()),c=d(i,Math.min(s,o)).then(w=>w?"ready":"retry"),l=e===void 0?await c:await Promise.race([c,e]);if(l==="ready")return!0;if(l==="exit")return!1;if(e!==void 0){if(await Promise.race([f(s).then(()=>"sleep"),e])==="exit")return!1}else await f(s)}return!1}r(R,"waitForBrokerViewSocket");export{E as BROKER_VIEW_SOCKET_WAIT_MS,d as probeViewSocket,R as waitForBrokerViewSocket,O as waitForViewSocketReady};
|
|
@@ -1,395 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// milliseconds instead of waiting out a full pi engine boot (~3.6s in a guest
|
|
3
|
-
// container, all of it `waitForBrokerViewSocket`).
|
|
4
|
-
//
|
|
5
|
-
// A spare is an ordinary canvas node: root, no kickoff prompt (so it never runs
|
|
6
|
-
// a turn before anyone owns it), booted and holding a live broker, carrying a
|
|
7
|
-
// `warm_pool` marker that hides it from every listing until it is claimed.
|
|
8
|
-
// Claiming is the atomic DELETE of that marker (canvas.ts `claimWarmSpare`)
|
|
9
|
-
// plus a `created` restamp and a RESHAPE onto the claimant's persona, after
|
|
10
|
-
// which the node is indistinguishable from one that was just cold-spawned.
|
|
11
|
-
//
|
|
12
|
-
// What a spare must freeze is ONLY what a booted pi process genuinely cannot
|
|
13
|
-
// change: its cwd, its profile, and the launch spec minus the two properties a
|
|
14
|
-
// live session can still be told (tools, extensions, system prompt, env).
|
|
15
|
-
// Everything else is claim-time reshape:
|
|
16
|
-
// • kind / mode / name / launch spec — rewritten on the row exactly as the
|
|
17
|
-
// `promote`/`yield --kind` polymorph rewrites them, so the next revive comes
|
|
18
|
-
// back as the claimed persona and `nodeEnv`'s CRTR_KIND/CRTR_MODE flip for
|
|
19
|
-
// anything the live process spawns.
|
|
20
|
-
// • persona_ack — stamped to the claimed persona so a newborn has no pending
|
|
21
|
-
// transition on its first turn.
|
|
22
|
-
// • model — swapped over the live broker socket (`setModelLive`, the same
|
|
23
|
-
// seam provider rotation uses). A model swap that cannot reach the broker
|
|
24
|
-
// FAILS the claim: the spare is closed and the caller cold-spawns, because
|
|
25
|
-
// a wrong-model node is worse than a slow one.
|
|
26
|
-
// • bearings — a spare mints with NONE (the context-intro extension withholds
|
|
27
|
-
// them from an unclaimed spare), because a block built at mint would assert
|
|
28
|
-
// the spare's placeholder `general`/`base` persona and snapshot the repo as
|
|
29
|
-
// it looked at mint time. Built and delivered here instead, over
|
|
30
|
-
// `deliver-live.ts`, once the row already wears the claimant's persona — and
|
|
31
|
-
// still landing first, since nobody has spoken in the session yet.
|
|
32
|
-
// • situational context — the sidecar is written and the block handed to the
|
|
33
|
-
// running session over `set_situational_context` (`situational-live.ts`),
|
|
34
|
-
// which queues it for the claimant's FIRST turn rather than starting one.
|
|
35
|
-
// Fails the claim on the same terms as the model: a node holding the wrong
|
|
36
|
-
// situation is worse than a slow one.
|
|
37
|
-
//
|
|
38
|
-
// The whole reshape is sound because every installed kind×mode builds an
|
|
39
|
-
// IDENTICAL launch spec apart from `model` — verified across all 34 of them.
|
|
40
|
-
// The key is derived from the actual built spec, so if that ever stops being
|
|
41
|
-
// true the affected kinds simply key into their own pool instead of silently
|
|
42
|
-
// being handed a mismatched node.
|
|
43
|
-
//
|
|
44
|
-
// Pool depth is 1 per key. It is populated lazily (the first `prefer_warm`
|
|
45
|
-
// create for a key falls back to a cold spawn and mints the spare behind it)
|
|
46
|
-
// and at daemon start for the most recently used profiles, so the FIRST node
|
|
47
|
-
// after sitting down is warm too.
|
|
48
|
-
//
|
|
49
|
-
// A spare freezes the directory it was booted in, so a create launched from a
|
|
50
|
-
// different directory than the last one simply misses and cold-spawns — the
|
|
51
|
-
// pool serves the common case of returning to the same working directory.
|
|
52
|
-
//
|
|
53
|
-
// Nothing ever resumes a spare: the daemon's row query hides the pool, so a
|
|
54
|
-
// spare whose broker dies (every daemon handover tears down every broker of the
|
|
55
|
-
// epoch) is garbage, not a parked node. It is also invisible to the count-based
|
|
56
|
-
// prune for the same reason. So the pool owns
|
|
57
|
-
// its own garbage collection — `reapStaleSpares`, below, run at daemon start
|
|
58
|
-
// and on every supervision tick.
|
|
59
|
-
import { createHash } from 'node:crypto';
|
|
60
|
-
import { claimWarmSpare, deleteNode, getNode, listNodes, listWarmSpares, registerWarmSpare, unregisterWarmSpare, updateNode, warmSpareCount, } from '../canvas/index.js';
|
|
61
|
-
import { recordedPidLiveness } from '../canvas/pid.js';
|
|
62
|
-
import { nowIso } from '../fs-utils.js';
|
|
63
|
-
import { admitNodeCreate } from '../command-hooks/lifecycle-create.js';
|
|
64
|
-
import { spawnChildPrepared } from './spawn.js';
|
|
65
|
-
import { buildLaunchSpecAsync } from './launch.js';
|
|
66
|
-
import { setModelLive } from './model-swap.js';
|
|
67
|
-
import { setSituationalContextLive } from './situational-live.js';
|
|
68
|
-
import { deliverBearingsLive } from './deliver-live.js';
|
|
69
|
-
import { closeNode } from './close.js';
|
|
70
|
-
/** Kill switch. `CRTR_WARM_POOL=0` makes every create cold again: claims stop,
|
|
71
|
-
* refills stop, and daemon-start pre-warm no-ops. Read live (not cached at
|
|
72
|
-
* module load) so flipping it takes effect on the next `crtr sys daemon
|
|
73
|
-
* restart` without a rebuild. Env rather than config because the operators who
|
|
74
|
-
* need it are guest containers — a Blaxel sandbox spec and the local-docker
|
|
75
|
-
* compose both already carry per-home env, and neither has a config file the
|
|
76
|
-
* host controls.
|
|
77
|
-
*
|
|
78
|
-
* Turn it off when a spare's ~150-300 MB resident broker is the scarce
|
|
79
|
-
* resource (a memory-capped guest), or to isolate the pool while debugging a
|
|
80
|
-
* node that came back wearing the wrong persona. */
|
|
81
|
-
export function warmPoolEnabled() {
|
|
82
|
-
return process.env['CRTR_WARM_POOL'] !== '0';
|
|
83
|
-
}
|
|
84
|
-
/** Stable digest of everything a booted broker bakes in. Deliberately excludes
|
|
85
|
-
* `model`/`modelProviderPinned`/`modelExact` AND the situational context: both
|
|
86
|
-
* are a socket round-trip on a live session, so both are claim-time, not
|
|
87
|
-
* mint-time. Keeping the situation out is what stops the pool fanning into a
|
|
88
|
-
* key (and a resident broker) per distinct ambient context. */
|
|
89
|
-
function warmRecipeKey(cwd, profileId, launch) {
|
|
90
|
-
const env = Object.entries(launch.env ?? {}).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
91
|
-
const canonical = JSON.stringify([
|
|
92
|
-
cwd,
|
|
93
|
-
profileId,
|
|
94
|
-
launch.tools ?? [],
|
|
95
|
-
launch.extensions ?? [],
|
|
96
|
-
launch.systemPrompt ?? null,
|
|
97
|
-
env,
|
|
98
|
-
]);
|
|
99
|
-
return createHash('sha256').update(canonical).digest('hex').slice(0, 32);
|
|
100
|
-
}
|
|
101
|
-
/** Resolve a request's frozen half. Both cwd and profile arrive already
|
|
102
|
-
* resolved from the create handler, so this is pure launch-spec construction. */
|
|
103
|
-
async function resolveRecipe(request) {
|
|
104
|
-
const { launch } = await buildLaunchSpecAsync(request.kind, request.mode, {
|
|
105
|
-
lifecycle: 'resident',
|
|
106
|
-
hasManager: false,
|
|
107
|
-
...(request.model !== null ? { model: request.model } : {}),
|
|
108
|
-
cwd: request.cwd,
|
|
109
|
-
profileId: request.profileId,
|
|
110
|
-
});
|
|
111
|
-
return { key: warmRecipeKey(request.cwd, request.profileId, launch), launch, request };
|
|
112
|
-
}
|
|
113
|
-
/** Claim a spare for `request`, reshaped onto its persona — or null when the
|
|
114
|
-
* pool cannot serve it. The caller falls back to a cold spawn; a refused
|
|
115
|
-
* create hook leaves the spare untouched and rejects the create. `beforeClaimDelivery`
|
|
116
|
-
* persists birth state before the claimant's first session message can arrive. */
|
|
117
|
-
export async function claimWarmNode(request, birth = {}, beforeClaimDelivery) {
|
|
118
|
-
const recipe = await resolveRecipe(request);
|
|
119
|
-
if (warmSpareCount(recipe.key) === 0)
|
|
120
|
-
return null;
|
|
121
|
-
const created = nowIso();
|
|
122
|
-
// The claim's requested deadline and delivery registration move with its
|
|
123
|
-
// marker deletion, so the spare becomes caller-owned only as a fully armed
|
|
124
|
-
// birth. meta.json follows with the same created stamp.
|
|
125
|
-
const releaseCreateGate = await admitNodeCreate({
|
|
126
|
-
kind: request.kind,
|
|
127
|
-
mode: request.mode,
|
|
128
|
-
cwd: request.cwd,
|
|
129
|
-
profile: request.profileId,
|
|
130
|
-
root: true,
|
|
131
|
-
parentId: null,
|
|
132
|
-
requestingNodeId: request.creator,
|
|
133
|
-
lifecycle: 'resident',
|
|
134
|
-
replaces: null,
|
|
135
|
-
});
|
|
136
|
-
let nodeId;
|
|
137
|
-
try {
|
|
138
|
-
nodeId = claimWarmSpare(recipe.key, created, birth);
|
|
139
|
-
}
|
|
140
|
-
finally {
|
|
141
|
-
releaseCreateGate();
|
|
142
|
-
}
|
|
143
|
-
if (nodeId === null)
|
|
144
|
-
return null;
|
|
145
|
-
const spare = getNode(nodeId);
|
|
146
|
-
const bootedModel = spare?.launch?.model;
|
|
147
|
-
updateNode(nodeId, {
|
|
148
|
-
created,
|
|
149
|
-
kind: request.kind,
|
|
150
|
-
mode: request.mode,
|
|
151
|
-
name: request.name ?? request.kind,
|
|
152
|
-
creator: request.creator,
|
|
153
|
-
// The recipe a later revive replays — skip it and the node silently comes
|
|
154
|
-
// back as the spare's persona.
|
|
155
|
-
launch: recipe.launch,
|
|
156
|
-
// A newborn must not be told its persona just changed.
|
|
157
|
-
persona_ack: { kind: request.kind, mode: request.mode, lifecycle: 'resident' },
|
|
158
|
-
...(request.model !== null ? { model_override: request.model } : {}),
|
|
159
|
-
});
|
|
160
|
-
// Persist any caller-owned birth state before the first claimant delivery.
|
|
161
|
-
// A spare has no claimant turn yet, but this keeps claimed and cold roots on
|
|
162
|
-
// the same durable-before-observable boundary.
|
|
163
|
-
try {
|
|
164
|
-
beforeClaimDelivery?.(nodeId);
|
|
165
|
-
}
|
|
166
|
-
catch (err) {
|
|
167
|
-
return abandonSpare(nodeId, 'birth preparation', err);
|
|
168
|
-
}
|
|
169
|
-
// Bearings FIRST, before any other delivery: a spare mints without them (see
|
|
170
|
-
// canvas-context-intro.ts), so this is the node's orienting frame and it must
|
|
171
|
-
// land as the session's first entry. Built from the row we just reshaped, so
|
|
172
|
-
// the identity assertion, knowledge catalog, and `<project_context>` snapshot
|
|
173
|
-
// all describe the node actually being handed out rather than the spare as it
|
|
174
|
-
// looked whenever it happened to boot.
|
|
175
|
-
try {
|
|
176
|
-
await deliverBearingsLive(nodeId);
|
|
177
|
-
}
|
|
178
|
-
catch (err) {
|
|
179
|
-
return abandonSpare(nodeId, 'bearings delivery', err);
|
|
180
|
-
}
|
|
181
|
-
// Spares are always minted at the kind's DEFAULT model (never an explicit
|
|
182
|
-
// pin), so this fires only when the claimant asked for a different tier.
|
|
183
|
-
const target = recipe.launch.model;
|
|
184
|
-
if (target !== undefined && target !== bootedModel) {
|
|
185
|
-
try {
|
|
186
|
-
await setModelLive(nodeId, target, recipe.launch.modelProviderPinned === true);
|
|
187
|
-
}
|
|
188
|
-
catch (err) {
|
|
189
|
-
return abandonSpare(nodeId, 'model swap', err);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
// Spares mint with NO situational context, so this is the claimant's, handed
|
|
193
|
-
// to a session that is already past session_start. `nextTurn` delivery means
|
|
194
|
-
// it rides the first real turn instead of waking a node nobody has spoken to.
|
|
195
|
-
if (request.situationalContext !== null) {
|
|
196
|
-
try {
|
|
197
|
-
await setSituationalContextLive(nodeId, request.situationalContext);
|
|
198
|
-
}
|
|
199
|
-
catch (err) {
|
|
200
|
-
return abandonSpare(nodeId, 'situational-context delivery', err);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return nodeId;
|
|
204
|
-
}
|
|
205
|
-
/** A claim-time reshape that could not be applied leaves a node wearing the
|
|
206
|
-
* WRONG persona/model/situation — worse than a slow one. Close it and answer
|
|
207
|
-
* null so the caller cold-spawns. */
|
|
208
|
-
function abandonSpare(nodeId, what, err) {
|
|
209
|
-
console.error(`[warm-pool] ${what} failed on claim; closing the spare: ${err.message}`);
|
|
210
|
-
try {
|
|
211
|
-
closeNode(nodeId);
|
|
212
|
-
}
|
|
213
|
-
catch { /* best-effort */ }
|
|
214
|
-
return null;
|
|
215
|
-
}
|
|
216
|
-
// Reaping
|
|
217
|
-
/** How long an UNCLAIMED spare is worth its resident broker (~150-300 MB).
|
|
218
|
-
* A spare exists to make the NEXT create instant; one nobody has claimed in
|
|
219
|
-
* this long is memory rented for nothing, so it is returned. Over-reaping
|
|
220
|
-
* costs exactly one cold create (which then refills the pool), while
|
|
221
|
-
* under-reaping accumulates hidden brokers — nothing else reaps them.
|
|
222
|
-
*
|
|
223
|
-
* It is also what bounds the number of KEYS. Depth is 1 per key, but the key
|
|
224
|
-
* digests the launch spec, whose extension paths carry the runtime GENERATION
|
|
225
|
-
* hash — so every `install-runtime` re-keys the pool and strands the previous
|
|
226
|
-
* key's spare, permanently claimable by nobody. The TTL is what collects them.
|
|
227
|
-
*/
|
|
228
|
-
const SPARE_TTL_MS = 60 * 60 * 1000;
|
|
229
|
-
/** Return every spare that is no longer worth its broker: one whose engine is
|
|
230
|
-
* confirmed GONE (the common case — a daemon handover tears down every broker
|
|
231
|
-
* of its epoch and nothing resumes a spare), one whose row left `active`/`idle`,
|
|
232
|
-
* and one nobody claimed inside `SPARE_TTL_MS`.
|
|
233
|
-
*
|
|
234
|
-
* Order matters: the marker is deleted FIRST, atomically, which is the same
|
|
235
|
-
* move a claim makes — so a spare handed out a microsecond earlier is left
|
|
236
|
-
* alone (`unregisterWarmSpare` returns false) and never torn down under its
|
|
237
|
-
* new owner. Only after winning the marker is the broker killed and the row +
|
|
238
|
-
* dir deleted. Never throws: a failed reap is retried on the next sweep. */
|
|
239
|
-
export function reapStaleSpares() {
|
|
240
|
-
const reaped = [];
|
|
241
|
-
let spares;
|
|
242
|
-
try {
|
|
243
|
-
spares = listWarmSpares();
|
|
244
|
-
}
|
|
245
|
-
catch (err) {
|
|
246
|
-
console.error(`[warm-pool] spare scan failed: ${err.message}`);
|
|
247
|
-
return reaped;
|
|
248
|
-
}
|
|
249
|
-
const cutoff = Date.now() - SPARE_TTL_MS;
|
|
250
|
-
for (const spare of spares) {
|
|
251
|
-
const mintedAt = Date.parse(spare.created);
|
|
252
|
-
const expired = Number.isNaN(mintedAt) || mintedAt < cutoff;
|
|
253
|
-
const liveness = recordedPidLiveness(spare.pi_pid, spare.pi_pid_identity);
|
|
254
|
-
const live = (spare.status === 'active' || spare.status === 'idle') && liveness === 'alive';
|
|
255
|
-
if (live && !expired)
|
|
256
|
-
continue;
|
|
257
|
-
// A failed probe is not evidence of death — leave it for the next sweep
|
|
258
|
-
// unless it is past its TTL anyway, where the verdict is the same.
|
|
259
|
-
if (liveness === 'indeterminate' && !expired)
|
|
260
|
-
continue;
|
|
261
|
-
try {
|
|
262
|
-
if (!unregisterWarmSpare(spare.node_id))
|
|
263
|
-
continue; // claimed out from under us
|
|
264
|
-
if (live) {
|
|
265
|
-
try {
|
|
266
|
-
closeNode(spare.node_id);
|
|
267
|
-
}
|
|
268
|
-
catch { /* best-effort broker teardown */ }
|
|
269
|
-
}
|
|
270
|
-
deleteNode(spare.node_id);
|
|
271
|
-
reaped.push(spare.node_id);
|
|
272
|
-
}
|
|
273
|
-
catch (err) {
|
|
274
|
-
console.error(`[warm-pool] reap failed for ${spare.node_id}: ${err.message}`);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
return reaped;
|
|
278
|
-
}
|
|
279
|
-
/** Keys with a mint in flight — crtrd is the single writer of the pool, so an
|
|
280
|
-
* in-process guard is enough to keep depth at 1 under concurrent creates. */
|
|
281
|
-
const minting = new Set();
|
|
282
|
-
/** Bring the pool for `request` back to depth 1, in the background. Never
|
|
283
|
-
* throws and never blocks a caller: a failed mint just means the next create
|
|
284
|
-
* for this key is cold again. */
|
|
285
|
-
export function refillWarmPool(request) {
|
|
286
|
-
if (!warmPoolEnabled())
|
|
287
|
-
return;
|
|
288
|
-
try {
|
|
289
|
-
// Mint at the kind's DEFAULT model and with NO situational context: both
|
|
290
|
-
// are claim-time properties, so baking either in would only narrow who the
|
|
291
|
-
// spare can serve.
|
|
292
|
-
void resolveRecipe({ ...request, model: null, situationalContext: null })
|
|
293
|
-
.then(mint)
|
|
294
|
-
.catch((err) => console.error(`[warm-pool] recipe resolution failed: ${err.message}`));
|
|
295
|
-
}
|
|
296
|
-
catch (err) {
|
|
297
|
-
console.error(`[warm-pool] recipe resolution failed: ${err.message}`);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
/** Mint one spare for an already-resolved recipe, if the pool is short. */
|
|
301
|
-
function mint(recipe) {
|
|
302
|
-
const { key, request } = recipe;
|
|
303
|
-
if (minting.has(key))
|
|
304
|
-
return;
|
|
305
|
-
if (warmSpareCount(key) > 0)
|
|
306
|
-
return;
|
|
307
|
-
minting.add(key);
|
|
308
|
-
void (async () => {
|
|
309
|
-
try {
|
|
310
|
-
await spawnChildPrepared({
|
|
311
|
-
kind: request.kind,
|
|
312
|
-
mode: request.mode,
|
|
313
|
-
cwd: request.cwd,
|
|
314
|
-
// No kickoff: an empty prompt means no launch turn, so a spare burns no
|
|
315
|
-
// tokens and holds no history before somebody owns it.
|
|
316
|
-
prompt: '',
|
|
317
|
-
root: true,
|
|
318
|
-
// The spare is only useful once its broker accepts viewers — that wait
|
|
319
|
-
// is precisely the cost being moved off the create path.
|
|
320
|
-
readiness: 'await',
|
|
321
|
-
// Mint at the kind's DEFAULT model: `model_override` then stays unset on
|
|
322
|
-
// the spare, so a claim only ever SETS it (updateNode cannot clear a
|
|
323
|
-
// field) and a no-model claim gets a clean row.
|
|
324
|
-
profile: request.profileId,
|
|
325
|
-
// No situational context either: the claimant's is delivered live at
|
|
326
|
-
// claim time, so a spare that baked one in would serve nobody else.
|
|
327
|
-
// Mark it unclaimed the instant its row exists and BEFORE the broker
|
|
328
|
-
// launch this call then waits out — otherwise the spare would sit in
|
|
329
|
-
// every listing for the whole boot as a phantom empty conversation.
|
|
330
|
-
}, (nodeId) => registerWarmSpare(nodeId, key));
|
|
331
|
-
}
|
|
332
|
-
catch (err) {
|
|
333
|
-
console.error(`[warm-pool] mint failed for ${request.kind}: ${err.message}`);
|
|
334
|
-
}
|
|
335
|
-
finally {
|
|
336
|
-
minting.delete(key);
|
|
337
|
-
}
|
|
338
|
-
})();
|
|
339
|
-
}
|
|
340
|
-
// Daemon-start pre-warm
|
|
341
|
-
/** How many profiles get a spare at daemon start. Each spare is a resident
|
|
342
|
-
* broker at ~150-300 MB, so this is deliberately tiny. */
|
|
343
|
-
const PREWARM_PROFILES = 2;
|
|
344
|
-
/** Mint a spare for the most recently used profiles so the FIRST create after
|
|
345
|
-
* crtrd boots is warm too, not only the second. The profile is the whole
|
|
346
|
-
* recipe: it supplies the cwd, and everything else a claim reshapes live.
|
|
347
|
-
* Fire-and-forget — returns as soon as the mints are scheduled, never blocking
|
|
348
|
-
* the daemon's work lane. */
|
|
349
|
-
export function prewarmRecentRecipes() {
|
|
350
|
-
if (!warmPoolEnabled())
|
|
351
|
-
return;
|
|
352
|
-
let candidates;
|
|
353
|
-
try {
|
|
354
|
-
const seen = new Set();
|
|
355
|
-
candidates = [];
|
|
356
|
-
// Newest first; `listNodes` already hides unclaimed spares.
|
|
357
|
-
for (const row of listNodes({ status: ['active', 'idle'] }).reverse()) {
|
|
358
|
-
if (row.parent !== null || row.kind === 'human')
|
|
359
|
-
continue;
|
|
360
|
-
const profileId = row.profile_id ?? null;
|
|
361
|
-
if (seen.has(profileId ?? ''))
|
|
362
|
-
continue;
|
|
363
|
-
seen.add(profileId ?? '');
|
|
364
|
-
// A node lands in the directory its launch names, so the profile's last
|
|
365
|
-
// root predicts the next one better than the profile's home does.
|
|
366
|
-
candidates.push({ cwd: row.cwd, profileId });
|
|
367
|
-
if (candidates.length >= PREWARM_PROFILES)
|
|
368
|
-
break;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
catch (err) {
|
|
372
|
-
console.error(`[warm-pool] prewarm scan failed: ${err.message}`);
|
|
373
|
-
return;
|
|
374
|
-
}
|
|
375
|
-
for (const candidate of candidates) {
|
|
376
|
-
try {
|
|
377
|
-
// `general`/`base` is only the shape the spare BOOTS as — the key it is
|
|
378
|
-
// filed under excludes everything a claim can reshape, so any kind can
|
|
379
|
-
// claim it.
|
|
380
|
-
void resolveRecipe({
|
|
381
|
-
kind: 'general',
|
|
382
|
-
mode: 'base',
|
|
383
|
-
cwd: candidate.cwd,
|
|
384
|
-
profileId: candidate.profileId,
|
|
385
|
-
model: null,
|
|
386
|
-
situationalContext: null,
|
|
387
|
-
name: null,
|
|
388
|
-
creator: null,
|
|
389
|
-
}).then(mint).catch((err) => console.error(`[warm-pool] prewarm failed for ${candidate.cwd}: ${err.message}`));
|
|
390
|
-
}
|
|
391
|
-
catch (err) {
|
|
392
|
-
console.error(`[warm-pool] prewarm failed for ${candidate.cwd}: ${err.message}`);
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
}
|
|
1
|
+
var v=Object.defineProperty;var i=(e,r)=>v(e,"name",{value:r,configurable:!0});import{createHash as k}from"node:crypto";import{claimWarmSpare as S,deleteNode as _,getNode as x,listNodes as $,listWarmSpares as I,registerWarmSpare as N,unregisterWarmSpare as P,updateNode as R,warmSpareCount as w}from"../canvas/index.js";import{recordedPidLiveness as C}from"../canvas/pid.js";import{nowIso as b}from"../fs-utils.js";import{admitNodeCreate as L}from"../command-hooks/lifecycle-create.js";import{spawnChildPrepared as W}from"./spawn.js";import{buildLaunchSpecAsync as M}from"./launch.js";import{setModelLive as A}from"./model-swap.js";import{setSituationalContextLive as O}from"./situational-live.js";import{deliverBearingsLive as E}from"./deliver-live.js";import{closeNode as h}from"./close.js";function y(){return process.env.CRTR_WARM_POOL!=="0"}i(y,"warmPoolEnabled");function T(e,r,n){const o=Object.entries(n.env??{}).sort(([l],[t])=>l<t?-1:l>t?1:0),a=JSON.stringify([e,r,n.tools??[],n.extensions??[],n.systemPrompt??null,o]);return k("sha256").update(a).digest("hex").slice(0,32)}i(T,"warmRecipeKey");async function f(e){const{launch:r}=await M(e.kind,e.mode,{lifecycle:"resident",hasManager:!1,...e.model!==null?{model:e.model}:{},cwd:e.cwd,profileId:e.profileId});return{key:T(e.cwd,e.profileId,r),launch:r,request:e}}i(f,"resolveRecipe");async function Z(e,r={},n){const o=await f(e);if(w(o.key)===0)return null;const a=b(),l=await L({kind:e.kind,mode:e.mode,cwd:e.cwd,profile:e.profileId,root:!0,parentId:null,requestingNodeId:e.creator,lifecycle:"resident",replaces:null});let t;try{t=S(o.key,a,r)}finally{l()}if(t===null)return null;const m=x(t)?.launch?.model;R(t,{created:a,kind:e.kind,mode:e.mode,name:e.name??e.kind,creator:e.creator,launch:o.launch,persona_ack:{kind:e.kind,mode:e.mode,lifecycle:"resident"},...e.model!==null?{model_override:e.model}:{}});try{n?.(t)}catch(d){return c(t,"birth preparation",d)}try{await E(t)}catch(d){return c(t,"bearings delivery",d)}const p=o.launch.model;if(p!==void 0&&p!==m)try{await A(t,p,o.launch.modelProviderPinned===!0)}catch(d){return c(t,"model swap",d)}if(e.situationalContext!==null)try{await O(t,e.situationalContext)}catch(d){return c(t,"situational-context delivery",d)}return t}i(Z,"claimWarmNode");function c(e,r,n){console.error(`[warm-pool] ${r} failed on claim; closing the spare: ${n.message}`);try{h(e)}catch{}return null}i(c,"abandonSpare");const D=3600*1e3;function q(){const e=[];let r;try{r=I()}catch(o){return console.error(`[warm-pool] spare scan failed: ${o.message}`),e}const n=Date.now()-D;for(const o of r){const a=Date.parse(o.created),l=Number.isNaN(a)||a<n,t=C(o.pi_pid,o.pi_pid_identity),s=(o.status==="active"||o.status==="idle")&&t==="alive";if(!(s&&!l)&&!(t==="indeterminate"&&!l))try{if(!P(o.node_id))continue;if(s)try{h(o.node_id)}catch{}_(o.node_id),e.push(o.node_id)}catch(m){console.error(`[warm-pool] reap failed for ${o.node_id}: ${m.message}`)}}return e}i(q,"reapStaleSpares");const u=new Set;function ee(e){if(y())try{f({...e,model:null,situationalContext:null}).then(g).catch(r=>console.error(`[warm-pool] recipe resolution failed: ${r.message}`))}catch(r){console.error(`[warm-pool] recipe resolution failed: ${r.message}`)}}i(ee,"refillWarmPool");function g(e){const{key:r,request:n}=e;u.has(r)||w(r)>0||(u.add(r),(async()=>{try{await W({kind:n.kind,mode:n.mode,cwd:n.cwd,prompt:"",root:!0,readiness:"await",profile:n.profileId},o=>N(o,r))}catch(o){console.error(`[warm-pool] mint failed for ${n.kind}: ${o.message}`)}finally{u.delete(r)}})())}i(g,"mint");const j=2;function re(){if(!y())return;let e;try{const r=new Set;e=[];for(const n of $({status:["active","idle"]}).reverse()){if(n.parent!==null||n.kind==="human")continue;const o=n.profile_id??null;if(!r.has(o??"")&&(r.add(o??""),e.push({cwd:n.cwd,profileId:o}),e.length>=j))break}}catch(r){console.error(`[warm-pool] prewarm scan failed: ${r.message}`);return}for(const r of e)try{f({kind:"general",mode:"base",cwd:r.cwd,profileId:r.profileId,model:null,situationalContext:null,name:null,creator:null}).then(g).catch(n=>console.error(`[warm-pool] prewarm failed for ${r.cwd}: ${n.message}`))}catch(n){console.error(`[warm-pool] prewarm failed for ${r.cwd}: ${n.message}`)}}i(re,"prewarmRecentRecipes");export{Z as claimWarmNode,re as prewarmRecentRecipes,q as reapStaleSpares,ee as refillWarmPool,y as warmPoolEnabled};
|