@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,99 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// reads. Raw session entries remain authoritative; durable stamps and review
|
|
3
|
-
// boundaries select which reconstructed messages a person can see.
|
|
4
|
-
import { readStamps, STAMP_SCHEMA_VERSION, } from './stamp/protocol.js';
|
|
5
|
-
import { REVIEW_BOUNDARY_CUSTOM_TYPE } from '../../shared/generated-context.js';
|
|
6
|
-
export { REVIEW_BOUNDARY_CUSTOM_TYPE };
|
|
7
|
-
/** True when an entry is a durable review boundary, optionally for one review. */
|
|
8
|
-
export function isReviewBoundary(entry, reviewId) {
|
|
9
|
-
if (entry === null || typeof entry !== 'object')
|
|
10
|
-
return false;
|
|
11
|
-
const candidate = entry;
|
|
12
|
-
return ((candidate.role === 'custom' || candidate.type === 'custom_message') &&
|
|
13
|
-
candidate.customType === REVIEW_BOUNDARY_CUSTOM_TYPE &&
|
|
14
|
-
(reviewId === undefined || candidate.details?.reviewId === reviewId));
|
|
15
|
-
}
|
|
16
|
-
function syntheticBoundary(timestamp) {
|
|
17
|
-
return {
|
|
18
|
-
role: 'custom',
|
|
19
|
-
customType: REVIEW_BOUNDARY_CUSTOM_TYPE,
|
|
20
|
-
content: 'Earlier conversation with the origin is not shown.',
|
|
21
|
-
display: true,
|
|
22
|
-
timestamp: timestamp ?? Date.now(),
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function classifyMessages(messages, sessionEntries) {
|
|
26
|
-
const internalByTimestamp = new Map();
|
|
27
|
-
for (const stamp of readStamps(sessionEntries ?? [])) {
|
|
28
|
-
if (stamp.kind !== 'message' || stamp.v !== STAMP_SCHEMA_VERSION)
|
|
29
|
-
continue;
|
|
30
|
-
const payload = stamp.payload;
|
|
31
|
-
if (typeof payload.msgTs !== 'number')
|
|
32
|
-
continue;
|
|
33
|
-
// Last stamp wins, matching every other message-stamp reader.
|
|
34
|
-
internalByTimestamp.set(payload.msgTs, payload.visibility === 'internal');
|
|
35
|
-
}
|
|
36
|
-
let visibility = 'visible';
|
|
37
|
-
return messages.map((identified) => {
|
|
38
|
-
const { message } = identified;
|
|
39
|
-
if (message.role === 'user') {
|
|
40
|
-
visibility = typeof message.timestamp === 'number'
|
|
41
|
-
&& internalByTimestamp.get(message.timestamp) === true
|
|
42
|
-
? 'internal'
|
|
43
|
-
: 'visible';
|
|
44
|
-
}
|
|
45
|
-
return { ...identified, visibility };
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Project identified snapshot messages for transcript presentation.
|
|
50
|
-
*
|
|
51
|
-
* Every retained message carries its durable visibility classification. A
|
|
52
|
-
* companion then passes its binding's review id so its slice starts at ITS OWN
|
|
53
|
-
* boundary marker: a node forked from another companion inherits that
|
|
54
|
-
* companion's earlier marker, and slicing at the first marker of any review
|
|
55
|
-
* would reveal the origin companion's transcript.
|
|
56
|
-
*/
|
|
57
|
-
export function projectTranscript(messages, opts) {
|
|
58
|
-
const projected = classifyMessages(messages, opts.sessionEntries);
|
|
59
|
-
const markerIndex = projected.findIndex(({ message }) => isReviewBoundary(message, opts.boundaryReviewId));
|
|
60
|
-
if (markerIndex !== -1)
|
|
61
|
-
return projected.slice(markerIndex);
|
|
62
|
-
if (opts.boundaryReviewId === undefined)
|
|
63
|
-
return projected;
|
|
64
|
-
const [first, ...retainedTail] = projected;
|
|
65
|
-
const boundary = {
|
|
66
|
-
id: '~boundary',
|
|
67
|
-
message: syntheticBoundary(first?.message.timestamp),
|
|
68
|
-
visibility: 'visible',
|
|
69
|
-
};
|
|
70
|
-
if (first?.message.role === 'compactionSummary') {
|
|
71
|
-
return [boundary, ...retainedTail];
|
|
72
|
-
}
|
|
73
|
-
return [boundary];
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Project a session tree to the review companion's visible transcript boundary.
|
|
77
|
-
*
|
|
78
|
-
* Pre-boundary ancestors are omitted rather than retained as empty structural
|
|
79
|
-
* shells, making each durable boundary a root in the returned forest. Once a
|
|
80
|
-
* boundary is crossed, its complete descendant subtree remains navigable. An
|
|
81
|
-
* absent boundary produces an empty tree, so picker previews never disclose an
|
|
82
|
-
* inherited entry before a mutation guard can reject its selection.
|
|
83
|
-
*
|
|
84
|
-
* `boundaryReviewId` selects only this binding's marker as a root, so a
|
|
85
|
-
* companion forked from another companion never navigates into the inherited
|
|
86
|
-
* subtree rooted at the origin's earlier marker.
|
|
87
|
-
*/
|
|
88
|
-
export function boundaryRootedTree(tree, boundaryReviewId) {
|
|
89
|
-
const retainSubtree = (node) => ({
|
|
90
|
-
...node,
|
|
91
|
-
children: node.children.map(retainSubtree),
|
|
92
|
-
});
|
|
93
|
-
const project = (node) => {
|
|
94
|
-
if (isReviewBoundary(node.entry, boundaryReviewId))
|
|
95
|
-
return [retainSubtree(node)];
|
|
96
|
-
return node.children.flatMap(project);
|
|
97
|
-
};
|
|
98
|
-
return tree.flatMap(project);
|
|
99
|
-
}
|
|
1
|
+
var l=Object.defineProperty;var o=(n,r)=>l(n,"name",{value:r,configurable:!0});import{readStamps as p,STAMP_SCHEMA_VERSION as f}from"./stamp/protocol.js";import{REVIEW_BOUNDARY_CUSTOM_TYPE as a}from"../../shared/generated-context.js";function c(n,r){if(n===null||typeof n!="object")return!1;const t=n;return(t.role==="custom"||t.type==="custom_message")&&t.customType===a&&(r===void 0||t.details?.reviewId===r)}o(c,"isReviewBoundary");function d(n){return{role:"custom",customType:a,content:"Earlier conversation with the origin is not shown.",display:!0,timestamp:n??Date.now()}}o(d,"syntheticBoundary");function y(n,r){const t=new Map;for(const e of p(r??[])){if(e.kind!=="message"||e.v!==f)continue;const i=e.payload;typeof i.msgTs=="number"&&t.set(i.msgTs,i.visibility==="internal")}let s="visible";return n.map(e=>{const{message:i}=e;return i.role==="user"&&(s=typeof i.timestamp=="number"&&t.get(i.timestamp)===!0?"internal":"visible"),{...e,visibility:s}})}o(y,"classifyMessages");function T(n,r){const t=y(n,r.sessionEntries),s=t.findIndex(({message:m})=>c(m,r.boundaryReviewId));if(s!==-1)return t.slice(s);if(r.boundaryReviewId===void 0)return t;const[e,...i]=t,u={id:"~boundary",message:d(e?.message.timestamp),visibility:"visible"};return e?.message.role==="compactionSummary"?[u,...i]:[u]}o(T,"projectTranscript");function h(n,r){const t=o(e=>({...e,children:e.children.map(t)}),"retainSubtree"),s=o(e=>c(e.entry,r)?[t(e)]:e.children.flatMap(s),"project");return n.flatMap(s)}o(h,"boundaryRootedTree");export{a as REVIEW_BOUNDARY_CUSTOM_TYPE,h as boundaryRootedTree,c as isReviewBoundary,T as projectTranscript};
|
|
@@ -1,100 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// uses `makeNodeShellRunner` over node:child_process.
|
|
11
|
-
//
|
|
12
|
-
// Node built-ins ONLY. This module is reachable from `src/commands/**`, where a
|
|
13
|
-
// `@earendil-works/pi-coding-agent` import would load the whole pi runtime just
|
|
14
|
-
// to read a document.
|
|
15
|
-
// Built fresh per use, never shared. A module-level /g regex carries mutable
|
|
16
|
-
// `lastIndex`, and both `.test()` and `matchAll` (which copies it into its
|
|
17
|
-
// internal clone) would make one call silently skip matches another consumed.
|
|
18
|
-
const SHELL_INLINE_SOURCE = '!`([^`\\n]+)`';
|
|
19
|
-
const SHELL_BLOCK_SOURCE = '```!\\n([\\s\\S]*?)\\n```';
|
|
20
|
-
const inlineRe = () => new RegExp(SHELL_INLINE_SOURCE, 'g');
|
|
21
|
-
const blockRe = () => new RegExp(SHELL_BLOCK_SOURCE, 'g');
|
|
22
|
-
export const DEFAULT_SHELL_TIMEOUT_MS = 120_000;
|
|
23
|
-
const MAX_OUTPUT_LINES = 2000;
|
|
24
|
-
const MAX_OUTPUT_BYTES = 50_000;
|
|
25
|
-
/** True when `body` carries at least one shell construct. Lets a caller skip an
|
|
26
|
-
* async execution pass (and its cwd/timeout plumbing) for the common inert
|
|
27
|
-
* document. */
|
|
28
|
-
export function hasShellBlocks(body) {
|
|
29
|
-
return new RegExp(SHELL_INLINE_SOURCE).test(body) || new RegExp(SHELL_BLOCK_SOURCE).test(body);
|
|
30
|
-
}
|
|
31
|
-
/** Cap runaway command output before it becomes model context. */
|
|
32
|
-
export function truncateShellOutput(content) {
|
|
33
|
-
const lines = content.split('\n');
|
|
34
|
-
if (lines.length > MAX_OUTPUT_LINES) {
|
|
35
|
-
return `${lines.slice(0, MAX_OUTPUT_LINES).join('\n')}\n[truncated: hit ${MAX_OUTPUT_LINES} lines]`;
|
|
36
|
-
}
|
|
37
|
-
if (Buffer.byteLength(content, 'utf8') > MAX_OUTPUT_BYTES) {
|
|
38
|
-
return `${Buffer.from(content, 'utf8').subarray(0, MAX_OUTPUT_BYTES).toString('utf8')}\n[truncated: hit ${MAX_OUTPUT_BYTES} bytes]`;
|
|
39
|
-
}
|
|
40
|
-
return content;
|
|
41
|
-
}
|
|
42
|
-
/** Merge a completed command's streams the way the model should read them. */
|
|
43
|
-
export function formatShellResult(result) {
|
|
44
|
-
if (result.killed === true) {
|
|
45
|
-
return `[Shell error: timed out after ${Math.max(1, Math.round(result.timeoutMs / 1000))}s]`;
|
|
46
|
-
}
|
|
47
|
-
if (result.code !== 0) {
|
|
48
|
-
return `[Shell error: exit code ${result.code}]\n${truncateShellOutput(result.stderr ?? '')}`;
|
|
49
|
-
}
|
|
50
|
-
let combined = result.stdout ?? '';
|
|
51
|
-
if (result.stderr !== undefined && result.stderr !== '') {
|
|
52
|
-
const sep = combined.length === 0 || combined.endsWith('\n') ? '' : '\n';
|
|
53
|
-
combined = `${combined}${sep}[stderr]\n${result.stderr}`;
|
|
54
|
-
}
|
|
55
|
-
return truncateShellOutput(combined);
|
|
56
|
-
}
|
|
57
|
-
/** The runner for processes with no pi engine — every CLI leaf. */
|
|
58
|
-
export function makeNodeShellRunner(opts) {
|
|
59
|
-
const timeoutMs = opts.timeoutMs ?? DEFAULT_SHELL_TIMEOUT_MS;
|
|
60
|
-
const [sh, flag] = process.platform === 'win32' ? ['powershell.exe', '-Command'] : ['sh', '-c'];
|
|
61
|
-
return (cmd) => new Promise((resolve) => {
|
|
62
|
-
execFile(sh, [flag, cmd], { cwd: opts.cwd, timeout: timeoutMs, maxBuffer: MAX_OUTPUT_BYTES * 4, encoding: 'utf8' }, (err, stdout, stderr) => {
|
|
63
|
-
// On timeout execFile kills the child and reports `killed: true` with
|
|
64
|
-
// a null `code` and a signal — never a numeric exit status. Check that
|
|
65
|
-
// first, or a timeout is misreported as a generic failure.
|
|
66
|
-
const e = err;
|
|
67
|
-
const killed = e !== null && (e.killed === true || (e.signal !== undefined && e.signal !== null));
|
|
68
|
-
const code = e === null ? 0 : typeof e.code === 'number' ? e.code : 1;
|
|
69
|
-
resolve(formatShellResult({ code, killed, stdout, stderr, timeoutMs }));
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
/** Replace every shell construct in `body` with its output.
|
|
74
|
-
*
|
|
75
|
-
* Fenced blocks resolve first behind sentinels so an inline pattern inside a
|
|
76
|
-
* block's own text is never executed a second time; inline forms resolve
|
|
77
|
-
* against the masked text; sentinels are then restored. Commands run in
|
|
78
|
-
* document order, exactly once per call — a document read twice runs its
|
|
79
|
-
* commands twice, which is the intended "once per invocation" contract. */
|
|
80
|
-
export async function expandShellBlocks(body, run) {
|
|
81
|
-
const blockOut = [];
|
|
82
|
-
let masked = '';
|
|
83
|
-
let last = 0;
|
|
84
|
-
for (const m of body.matchAll(blockRe())) {
|
|
85
|
-
const idx = m.index ?? 0;
|
|
86
|
-
masked += body.slice(last, idx) + `\x00B${blockOut.length}\x00`;
|
|
87
|
-
blockOut.push(await run(m[1] ?? ''));
|
|
88
|
-
last = idx + m[0].length;
|
|
89
|
-
}
|
|
90
|
-
masked += body.slice(last);
|
|
91
|
-
let inlined = '';
|
|
92
|
-
last = 0;
|
|
93
|
-
for (const m of masked.matchAll(inlineRe())) {
|
|
94
|
-
const idx = m.index ?? 0;
|
|
95
|
-
inlined += masked.slice(last, idx) + (await run(m[1] ?? ''));
|
|
96
|
-
last = idx + m[0].length;
|
|
97
|
-
}
|
|
98
|
-
inlined += masked.slice(last);
|
|
99
|
-
return inlined.replace(/\x00B(\d+)\x00/g, (_, n) => blockOut[parseInt(n, 10)] ?? '');
|
|
100
|
-
}
|
|
1
|
+
var S=Object.defineProperty;var l=(e,t)=>S(e,"name",{value:t,configurable:!0});import{execFile as E}from"node:child_process";const a="!`([^`\\n]+)`",h="```!\\n([\\s\\S]*?)\\n```",_=l(()=>new RegExp(a,"g"),"inlineRe"),w=l(()=>new RegExp(h,"g"),"blockRe"),L=12e4,f=2e3,d=5e4;function B(e){return new RegExp(a).test(e)||new RegExp(h).test(e)}l(B,"hasShellBlocks");function x(e){const t=e.split(`
|
|
2
|
+
`);return t.length>f?`${t.slice(0,f).join(`
|
|
3
|
+
`)}
|
|
4
|
+
[truncated: hit ${f} lines]`:Buffer.byteLength(e,"utf8")>d?`${Buffer.from(e,"utf8").subarray(0,d).toString("utf8")}
|
|
5
|
+
[truncated: hit ${d} bytes]`:e}l(x,"truncateShellOutput");function $(e){if(e.killed===!0)return`[Shell error: timed out after ${Math.max(1,Math.round(e.timeoutMs/1e3))}s]`;if(e.code!==0)return`[Shell error: exit code ${e.code}]
|
|
6
|
+
${x(e.stderr??"")}`;let t=e.stdout??"";if(e.stderr!==void 0&&e.stderr!==""){const i=t.length===0||t.endsWith(`
|
|
7
|
+
`)?"":`
|
|
8
|
+
`;t=`${t}${i}[stderr]
|
|
9
|
+
${e.stderr}`}return x(t)}l($,"formatShellResult");function M(e){const t=e.timeoutMs??L,[i,s]=process.platform==="win32"?["powershell.exe","-Command"]:["sh","-c"];return o=>new Promise(u=>{E(i,[s,o],{cwd:e.cwd,timeout:t,maxBuffer:d*4,encoding:"utf8"},(n,r,m)=>{const c=n,p=c!==null&&(c.killed===!0||c.signal!==void 0&&c.signal!==null),g=c===null?0:typeof c.code=="number"?c.code:1;u($({code:g,killed:p,stdout:r,stderr:m,timeoutMs:t}))})})}l(M,"makeNodeShellRunner");async function O(e,t){const i=[];let s="",o=0;for(const n of e.matchAll(w())){const r=n.index??0;s+=e.slice(o,r)+`\0B${i.length}\0`,i.push(await t(n[1]??"")),o=r+n[0].length}s+=e.slice(o);let u="";o=0;for(const n of s.matchAll(_())){const r=n.index??0;u+=s.slice(o,r)+await t(n[1]??""),o=r+n[0].length}return u+=s.slice(o),u.replace(/\x00B(\d+)\x00/g,(n,r)=>i[parseInt(r,10)]??"")}l(O,"expandShellBlocks");export{L as DEFAULT_SHELL_TIMEOUT_MS,O as expandShellBlocks,$ as formatShellResult,B as hasShellBlocks,M as makeNodeShellRunner,x as truncateShellOutput};
|
|
@@ -1,67 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// A node-owned runtime file (nodes/<id>/situational-context.md, NOT under
|
|
4
|
-
// context/ — see `situationalContextPath`) storing ONE rendered runtime-card
|
|
5
|
-
// envelope describing the LATEST situation: current state (e.g. which applet
|
|
6
|
-
// page a concierge is attached to right now), not task history, and never the
|
|
7
|
-
// node's goal or a visible chat message. Upserted (replace), never appended, so
|
|
8
|
-
// stale applet pages never accumulate across concierge reuse.
|
|
9
|
-
//
|
|
10
|
-
// `situationalContextEnvelope()` is the ONE read, and it yields the stored card
|
|
11
|
-
// verbatim — no caller downstream has a shape to check. Its three callers use
|
|
12
|
-
// it differently, and only the last nests:
|
|
13
|
-
// - canvas-inbox-watcher's context channel — delivered verbatim as a custom
|
|
14
|
-
// message's content, with SITUATIONAL_CONTEXT_CUSTOM_TYPE as delivery
|
|
15
|
-
// metadata only.
|
|
16
|
-
// - setSituationalContextLive() (warm-spare claim) — the same verbatim
|
|
17
|
-
// delivery, `deliverAs: 'nextTurn'`.
|
|
18
|
-
// - buildContextBearingsFromState() / buildForkBearingsFromState() — the card
|
|
19
|
-
// is placed in the bearings body, where it is deliberately a nested card
|
|
20
|
-
// inside the outer `bearings` card. The only nesting site in the system.
|
|
21
|
-
//
|
|
22
|
-
// The visible revive kickoff carries NO situational context: a fresh or cycling
|
|
23
|
-
// revive receives it through the session-start bearings instead.
|
|
24
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
25
|
-
import { situationalContextPath, nodeDir } from '../canvas/paths.js';
|
|
26
|
-
import { formatCard, parseCard } from '../../shared/generated-context.js';
|
|
27
|
-
/** The `customType` stamped on the hidden custom message the inbox watcher
|
|
28
|
-
* sends for an existing node's situational-context update. */
|
|
29
|
-
export { SITUATIONAL_CONTEXT_CUSTOM_TYPE } from '../../shared/generated-context.js';
|
|
30
|
-
/** Render prose supplied through a `situational_context` string entry point
|
|
31
|
-
* (`crtr node message --situational-context`, the node-create seed) as the
|
|
32
|
-
* card the sidecar stores. Card-supplying callers pass their own rendered
|
|
33
|
-
* envelope to `appendSituationalContext` instead. Blank prose renders as ''
|
|
34
|
-
* so the sidecar write stays a no-op rather than storing an empty card. */
|
|
35
|
-
export function formatSituationalProse(prose) {
|
|
36
|
-
return prose.trim() === '' ? '' : formatCard('situational', {}, prose);
|
|
37
|
-
}
|
|
38
|
-
/** Upsert the node's current situational context (replace, not append) — the
|
|
39
|
-
* one sanctioned writer for the sidecar, taking an ALREADY-RENDERED envelope.
|
|
40
|
-
* No-op for blank text, so a caller can pass through an optional/empty value
|
|
41
|
-
* with no guard at the call site. */
|
|
42
|
-
export function appendSituationalContext(nodeId, text) {
|
|
43
|
-
const body = text.trim();
|
|
44
|
-
if (body === '')
|
|
45
|
-
return;
|
|
46
|
-
mkdirSync(nodeDir(nodeId), { recursive: true });
|
|
47
|
-
writeFileSync(situationalContextPath(nodeId), body + '\n', 'utf8');
|
|
48
|
-
}
|
|
49
|
-
/** Read the stored text, or null if none was ever set. Module-private:
|
|
50
|
-
* `situationalContextEnvelope` is the one read, and it shape-checks. */
|
|
51
|
-
function readSituationalContext(nodeId) {
|
|
52
|
-
const p = situationalContextPath(nodeId);
|
|
53
|
-
if (!existsSync(p))
|
|
54
|
-
return null;
|
|
55
|
-
const body = readFileSync(p, 'utf8').trim();
|
|
56
|
-
return body !== '' ? body : null;
|
|
57
|
-
}
|
|
58
|
-
/** The node's stored situational card, verbatim, or null when none is set.
|
|
59
|
-
* The ONE read of the sidecar. A sidecar written before the card cut holds
|
|
60
|
-
* bare prose; that single legacy branch lives here alone and self-clears on
|
|
61
|
-
* the next situation change. */
|
|
62
|
-
export function situationalContextEnvelope(nodeId) {
|
|
63
|
-
const text = readSituationalContext(nodeId);
|
|
64
|
-
if (text === null)
|
|
65
|
-
return null;
|
|
66
|
-
return parseCard({ content: text }) === null ? formatSituationalProse(text) : text;
|
|
67
|
-
}
|
|
1
|
+
var e=Object.defineProperty;var o=(t,n)=>e(t,"name",{value:n,configurable:!0});import{existsSync as u,readFileSync as a,writeFileSync as l,mkdirSync as f}from"node:fs";import{situationalContextPath as i,nodeDir as c}from"../canvas/paths.js";import{formatCard as m,parseCard as p}from"../../shared/generated-context.js";import{SITUATIONAL_CONTEXT_CUSTOM_TYPE as _}from"../../shared/generated-context.js";function s(t){return t.trim()===""?"":m("situational",{},t)}o(s,"formatSituationalProse");function T(t,n){const r=n.trim();r!==""&&(f(c(t),{recursive:!0}),l(i(t),r+`
|
|
2
|
+
`,"utf8"))}o(T,"appendSituationalContext");function x(t){const n=i(t);if(!u(n))return null;const r=a(n,"utf8").trim();return r!==""?r:null}o(x,"readSituationalContext");function E(t){const n=x(t);return n===null?null:p({content:n})===null?s(n):n}o(E,"situationalContextEnvelope");export{_ as SITUATIONAL_CONTEXT_CUSTOM_TYPE,T as appendSituationalContext,s as formatSituationalProse,E as situationalContextEnvelope};
|
|
@@ -1,41 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// The sidecar (`situational-context.ts`) is the durable half: it stores one
|
|
4
|
-
// rendered `situational` card, which every revive path nests into the bearings.
|
|
5
|
-
// This module is the LIVE half for a node whose session has already passed
|
|
6
|
-
// `session_start` — the warm-pool claim, where a spare booted with no
|
|
7
|
-
// situational context is handed to a claimant that has one. The stored card is
|
|
8
|
-
// delivered UNWRAPPED; the customType is delivery metadata only.
|
|
9
|
-
//
|
|
10
|
-
// It is deliberately NOT the inbox watcher's situational send. That seam exists
|
|
11
|
-
// to WAKE a live node when its applet situation changes. A freshly-claimed
|
|
12
|
-
// spare must not run a turn before its owner says anything, so this path uses
|
|
13
|
-
// `nextTurn` delivery: the card rides the claimant's first real turn instead of
|
|
14
|
-
// starting one.
|
|
15
|
-
//
|
|
16
|
-
// Everything below the sidecar write is the shared live-delivery path
|
|
17
|
-
// (`deliver-live.ts`), which the claim's bearings delivery also rides.
|
|
18
|
-
import { getNode } from '../canvas/index.js';
|
|
19
|
-
import { deliverCustomMessageLive } from './deliver-live.js';
|
|
20
|
-
import { appendSituationalContext, formatSituationalProse, situationalContextEnvelope, SITUATIONAL_CONTEXT_CUSTOM_TYPE, } from './situational-context.js';
|
|
21
|
-
/** Write `text` (prose) to the node's sidecar and, when its broker is live,
|
|
22
|
-
* deliver the stored card into the running session for the NEXT turn.
|
|
23
|
-
*
|
|
24
|
-
* Rejects when a live broker cannot be reached or refuses the frame — the
|
|
25
|
-
* caller decides what that means. For a warm claim it is fatal (a node holding
|
|
26
|
-
* the wrong situation is worse than a slow one), the same call the model swap
|
|
27
|
-
* makes. A DORMANT node needs no delivery at all: its next revive renders the
|
|
28
|
-
* sidecar into the kickoff. */
|
|
29
|
-
export async function setSituationalContextLive(nodeId, text) {
|
|
30
|
-
appendSituationalContext(nodeId, formatSituationalProse(text));
|
|
31
|
-
if (getNode(nodeId) === null)
|
|
32
|
-
throw new Error(`setSituationalContextLive: unknown node ${nodeId}`);
|
|
33
|
-
const envelope = situationalContextEnvelope(nodeId);
|
|
34
|
-
if (envelope === null)
|
|
35
|
-
return; // no sidecar at all — blank text on a node that never had one
|
|
36
|
-
await deliverCustomMessageLive(nodeId, {
|
|
37
|
-
customType: SITUATIONAL_CONTEXT_CUSTOM_TYPE,
|
|
38
|
-
content: envelope,
|
|
39
|
-
deliverAs: 'nextTurn',
|
|
40
|
-
});
|
|
41
|
-
}
|
|
1
|
+
var i=Object.defineProperty;var n=(t,e)=>i(t,"name",{value:e,configurable:!0});import{getNode as r}from"../canvas/index.js";import{deliverCustomMessageLive as a}from"./deliver-live.js";import{appendSituationalContext as l,formatSituationalProse as u,situationalContextEnvelope as s,SITUATIONAL_CONTEXT_CUSTOM_TYPE as m}from"./situational-context.js";async function C(t,e){if(l(t,u(e)),r(t)===null)throw new Error(`setSituationalContextLive: unknown node ${t}`);const o=s(t);o!==null&&await a(t,{customType:m,content:o,deliverAs:"nextTurn"})}n(C,"setSituationalContextLive");export{C as setSituationalContextLive};
|
|
@@ -1,255 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
// One authoritative builder for every broker child's process env. The prior
|
|
4
|
-
// shape was `{ ...process.env, ...inv.env }` — the whole host env, including
|
|
5
|
-
// every ambient credential (`MISTRAL_API_KEY`, `GITHUB_TOKEN`, `AWS_*`, …),
|
|
6
|
-
// inherited verbatim into the broker and, through it, into pi's bash tool
|
|
7
|
-
// (`printenv`/`ps eww` both expose it). This module replaces that spread with
|
|
8
|
-
// a default-deny allowlist: nothing in `process.env` crosses unless it is a
|
|
9
|
-
// literal non-secret operational name (A1), a value-guarded proxy var (A2), a
|
|
10
|
-
// configured model-provider key (B), or an explicit `spawnEnv.allow` entry
|
|
11
|
-
// (C). A separate source E, the TARGET profile's own `profile env` store
|
|
12
|
-
// (`core/profiles/env-store.ts`), is read directly off disk — never through
|
|
13
|
-
// `process.env` — and injected unconditionally: storing a value there IS the
|
|
14
|
-
// operator's consent to cross the boundary, so it needs no matching
|
|
15
|
-
// `spawnEnv.allow` entry. `inv.env` (D) is crtr-constructed and trusted, so
|
|
16
|
-
// it overlays unconditionally, layered after E.
|
|
17
|
-
//
|
|
18
|
-
// One name IS rewritten rather than merely admitted: `PATH`. Bare-binary
|
|
19
|
-
// contributions (`bin` in a plugin manifest or a scope `config.json`) are
|
|
20
|
-
// materialized into a crouter-owned shim directory by
|
|
21
|
-
// `core/runtime/bin-contributions.ts`, and that directory is PREPENDED here so
|
|
22
|
-
// a declared bare command wins its name in every node's bash. The admitted
|
|
23
|
-
// host PATH stays intact behind it.
|
|
24
|
-
//
|
|
25
|
-
// `GIT_*` is deliberately absent from the allowlist: the whole namespace is an
|
|
26
|
-
// auth/config-injection surface (`GIT_CONFIG_KEY_*`/`GIT_CONFIG_VALUE_*`,
|
|
27
|
-
// `GIT_ASKPASS`, `GIT_SSH_COMMAND`), not a non-secret operational family, and
|
|
28
|
-
// ordinary git needs none of it (identity/credential-helper config via
|
|
29
|
-
// `~/.gitconfig`, reached through the allowlisted `HOME`; SSH remotes via the
|
|
30
|
-
// allowlisted `SSH_AUTH_SOCK`). A deliberate `GIT_*` need goes through
|
|
31
|
-
// `spawnEnv.allow`.
|
|
32
|
-
import { statSync } from 'node:fs';
|
|
33
|
-
import { delimiter, resolve } from 'node:path';
|
|
34
|
-
import { readMergedLaunchConfig } from '../config.js';
|
|
35
|
-
import { readProfileEnvVars } from '../profiles/env-store.js';
|
|
36
|
-
import { metadataEnvName, readProfileMetadata } from '../profiles/manifest.js';
|
|
37
|
-
import { binShimDirFor } from './bin-contributions.js';
|
|
38
|
-
import { FRONT_DOOR_ENV } from './front-door-env.js';
|
|
39
|
-
/** A1 — literal env-var names copied verbatim (no value inspection): a login
|
|
40
|
-
* shell plus dev toolchain needs exactly these, and none of them can carry a
|
|
41
|
-
* credential. */
|
|
42
|
-
const OPERATIONAL_LITERAL_NAMES = new Set([
|
|
43
|
-
'HOME',
|
|
44
|
-
'PATH',
|
|
45
|
-
'SHELL',
|
|
46
|
-
'USER',
|
|
47
|
-
'LOGNAME',
|
|
48
|
-
'PWD',
|
|
49
|
-
'TMPDIR',
|
|
50
|
-
'TERM',
|
|
51
|
-
'TERMINFO',
|
|
52
|
-
'COLORTERM',
|
|
53
|
-
'LANG',
|
|
54
|
-
'LANGUAGE',
|
|
55
|
-
'TZ',
|
|
56
|
-
'NO_PROXY',
|
|
57
|
-
'no_proxy',
|
|
58
|
-
'SSH_AUTH_SOCK',
|
|
59
|
-
// Bash safety-valve deadline override (ms) — an operator-wide knob set in
|
|
60
|
-
// the daemon's own ambient env, not a per-node secret.
|
|
61
|
-
'CRTR_BASH_VALVE_MS',
|
|
62
|
-
]);
|
|
63
|
-
/** A1 — prefixes admitted in full: each is a structurally non-secret family
|
|
64
|
-
* (locale, XDG base-dir paths, pi's own config/rendering knobs — pi's auth is
|
|
65
|
-
* file-backed in `auth.json`, never an env value). `GIT_` is NOT here — see
|
|
66
|
-
* module comment. */
|
|
67
|
-
const OPERATIONAL_PREFIXES = ['LC_', 'XDG_', 'PI_'];
|
|
68
|
-
/** The unshimmed PATH admitted from the host. Broker and cron shells resolve
|
|
69
|
-
* crouter-owned executables from this value, while commands those shells run
|
|
70
|
-
* still receive the shim-prepended PATH. */
|
|
71
|
-
export const ADMITTED_HOST_PATH_ENV = 'CRTR_ADMITTED_HOST_PATH';
|
|
72
|
-
/** Resolve a regular executable against a shell PATH without executing it.
|
|
73
|
-
* The result is absolute, or null when no PATH entry supplies the command. */
|
|
74
|
-
export function resolvePathExecutable(name, env, cwd) {
|
|
75
|
-
const pathValue = env['PATH'];
|
|
76
|
-
if (pathValue === undefined || pathValue === '')
|
|
77
|
-
return null;
|
|
78
|
-
for (const directory of pathValue.split(delimiter)) {
|
|
79
|
-
const candidate = resolve(cwd, directory === '' ? '.' : directory, name);
|
|
80
|
-
try {
|
|
81
|
-
const stat = statSync(candidate);
|
|
82
|
-
if (stat.isFile() && (stat.mode & 0o111) !== 0)
|
|
83
|
-
return candidate;
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
// Keep searching exactly as PATH resolution does.
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
export function resolveAdmittedHostCommand(name, env, cwd) {
|
|
92
|
-
const pathValue = env[ADMITTED_HOST_PATH_ENV] ?? env['PATH'];
|
|
93
|
-
if (pathValue === undefined || pathValue === '') {
|
|
94
|
-
throw new Error(`cannot resolve crouter-owned ${name}: the admitted host PATH is empty`);
|
|
95
|
-
}
|
|
96
|
-
const command = resolvePathExecutable(name, { PATH: pathValue }, cwd);
|
|
97
|
-
if (command !== null)
|
|
98
|
-
return command;
|
|
99
|
-
throw new Error(`cannot resolve crouter-owned ${name} from the admitted host PATH`);
|
|
100
|
-
}
|
|
101
|
-
/** A2 — proxy var names. Admitted only when the value's URL authority carries
|
|
102
|
-
* no userinfo component (no `user@` / `user:pass@`) — the one value-inspected
|
|
103
|
-
* entry in the whole builder, because a proxy var is the single operational
|
|
104
|
-
* name whose *value* (not name) can carry a secret. */
|
|
105
|
-
const PROXY_NAMES = ['HTTP_PROXY', 'HTTPS_PROXY', 'http_proxy', 'https_proxy'];
|
|
106
|
-
/** B — the exact env-var name of each crtr-configured model provider's API
|
|
107
|
-
* key. Deliberately an explicit provider→env-key mapping, NOT inferred from
|
|
108
|
-
* `MODEL_PROVIDER_KEYS` in launch.ts (that constant is a provider-ID list —
|
|
109
|
-
* `['anthropic', 'openai']` — not env-var names; conflating the two would
|
|
110
|
-
* silently admit the wrong names the moment either list changes). */
|
|
111
|
-
const PROVIDER_ENV_KEYS = {
|
|
112
|
-
anthropic: 'ANTHROPIC_API_KEY',
|
|
113
|
-
openai: 'OPENAI_API_KEY',
|
|
114
|
-
};
|
|
115
|
-
/** True when `value` is an absolute `http(s)` proxy URL with a host and NO
|
|
116
|
-
* embedded userinfo (`user@` / `user:pass@` / `:pass@`) — the only shape
|
|
117
|
-
* allowed to cross by default. Rejects three leak shapes a naive
|
|
118
|
-
* `new URL(value).username === ''` check misses:
|
|
119
|
-
* - password-only authority (`http://:pass@host`) — `username` is empty but
|
|
120
|
-
* `password` is not, so both must be checked.
|
|
121
|
-
* - scheme-less userinfo (`user:pass@host:3128`, no `http(s)://` prefix) —
|
|
122
|
-
* `URL` parses the text before the first `:` as a CUSTOM scheme (here
|
|
123
|
-
* `user:`), leaving `username`/`password` both empty even though the
|
|
124
|
-
* value plainly carries credentials. Requiring `protocol` to be exactly
|
|
125
|
-
* `http:`/`https:` rejects this shape before userinfo parsing could ever
|
|
126
|
-
* be fooled by it, rather than normalizing/re-parsing a scheme-less form.
|
|
127
|
-
* - anything else unparseable, protocol-mismatched, or hostless — safe-fail
|
|
128
|
-
* to "never admit" rather than silently passing a value through. */
|
|
129
|
-
function isCredentialFreeProxyValue(value) {
|
|
130
|
-
let parsed;
|
|
131
|
-
try {
|
|
132
|
-
parsed = new URL(value);
|
|
133
|
-
}
|
|
134
|
-
catch {
|
|
135
|
-
return false;
|
|
136
|
-
}
|
|
137
|
-
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:')
|
|
138
|
-
return false;
|
|
139
|
-
if (parsed.hostname === '')
|
|
140
|
-
return false;
|
|
141
|
-
if (parsed.username !== '' || parsed.password !== '')
|
|
142
|
-
return false;
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
/** Anchored FULL-STRING glob match for one `spawnEnv.allow` entry: `*` matches
|
|
146
|
-
* any (possibly empty) run of characters; every other character — including
|
|
147
|
-
* regex metacharacters — matches literally. A pattern with no `*` is a plain
|
|
148
|
-
* exact-name match (the common case, and the only shape prior to this fix).
|
|
149
|
-
* A bare/all-`*` "match everything" pattern is rejected earlier, at config
|
|
150
|
-
* read (`core/config.ts`'s `mergeSpawnEnv`), so it can never reach here. */
|
|
151
|
-
function matchesAllowPattern(name, pattern) {
|
|
152
|
-
if (!pattern.includes('*'))
|
|
153
|
-
return name === pattern;
|
|
154
|
-
const escaped = pattern
|
|
155
|
-
.split('*')
|
|
156
|
-
.map((part) => part.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
|
|
157
|
-
.join('.*');
|
|
158
|
-
return new RegExp(`^${escaped}$`).test(name);
|
|
159
|
-
}
|
|
160
|
-
/** Sources A–C: the operational base shared by the broker boundary (this
|
|
161
|
-
* module's `buildBrokerEnv`) and cron executor — the single shared definition
|
|
162
|
-
* of "non-secret host state the runtime exposes to any spawned shell." Does not include
|
|
163
|
-
* `inv.env`/`FRONT_DOOR_ENV` (source D), which is broker-specific. */
|
|
164
|
-
export function buildOperationalEnvBase(opts) {
|
|
165
|
-
const host = opts.host ?? process.env;
|
|
166
|
-
const out = {};
|
|
167
|
-
// A1 — literal names + non-secret prefixes, copied verbatim.
|
|
168
|
-
for (const [key, value] of Object.entries(host)) {
|
|
169
|
-
if (value === undefined)
|
|
170
|
-
continue;
|
|
171
|
-
if (OPERATIONAL_LITERAL_NAMES.has(key) || OPERATIONAL_PREFIXES.some((prefix) => key.startsWith(prefix))) {
|
|
172
|
-
out[key] = value;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
// A2 — proxy vars, admitted only past the userinfo guard.
|
|
176
|
-
for (const key of PROXY_NAMES) {
|
|
177
|
-
const value = host[key];
|
|
178
|
-
if (value !== undefined && isCredentialFreeProxyValue(value))
|
|
179
|
-
out[key] = value;
|
|
180
|
-
}
|
|
181
|
-
// B — configured model-provider keys, by exact env-var name.
|
|
182
|
-
for (const envKey of Object.values(PROVIDER_ENV_KEYS)) {
|
|
183
|
-
const value = host[envKey];
|
|
184
|
-
if (value !== undefined)
|
|
185
|
-
out[envKey] = value;
|
|
186
|
-
}
|
|
187
|
-
// C — explicit config-declared extra allowlist (literal names and/or
|
|
188
|
-
// globs), resolved from the TARGET's own cwd/profile scope (default empty).
|
|
189
|
-
const allow = readMergedLaunchConfig(opts.targetCwd, opts.targetProfileId).spawnEnv.allow;
|
|
190
|
-
if (allow.length > 0) {
|
|
191
|
-
for (const [key, value] of Object.entries(host)) {
|
|
192
|
-
if (value === undefined)
|
|
193
|
-
continue;
|
|
194
|
-
if (allow.some((pattern) => matchesAllowPattern(key, pattern)))
|
|
195
|
-
out[key] = value;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
// Preserve the unshimmed admitted host PATH across broker and cron children.
|
|
199
|
-
// A nested `crtr` launched from an agent inherits this constructed value,
|
|
200
|
-
// rather than mistaking its shim-prepended PATH for the host path.
|
|
201
|
-
const admittedHostPath = host[ADMITTED_HOST_PATH_ENV] ?? out['PATH'];
|
|
202
|
-
if (admittedHostPath !== undefined && admittedHostPath !== '')
|
|
203
|
-
out[ADMITTED_HOST_PATH_ENV] = admittedHostPath;
|
|
204
|
-
// Bare-binary contributions (`core/runtime/bin-contributions.ts`): the shim
|
|
205
|
-
// dir holding one symlink per declared bare command, PREPENDED so a
|
|
206
|
-
// contribution wins its name, with the host PATH admitted above left intact
|
|
207
|
-
// behind it. Resolved from the TARGET's own cwd/profile like source C.
|
|
208
|
-
const shimDir = binShimDirFor(opts.targetCwd, opts.targetProfileId);
|
|
209
|
-
if (shimDir !== null) {
|
|
210
|
-
const hostPath = out['PATH'];
|
|
211
|
-
out['PATH'] = hostPath === undefined || hostPath === '' ? shimDir : `${shimDir}:${hostPath}`;
|
|
212
|
-
}
|
|
213
|
-
return out;
|
|
214
|
-
}
|
|
215
|
-
/** Source F — the TARGET profile's manifest `metadata`, each entry surfaced
|
|
216
|
-
* as `CRTR_PROFILE_META_<KEY>` (key uppercased, every non-alphanumeric run
|
|
217
|
-
* → `_`). Identity facts rather than secrets — unlike the env store these
|
|
218
|
-
* are readable back (`profile show`, ProfileDTO). Read straight off the
|
|
219
|
-
* manifest at every launch; never throws (a bad profile id yields `{}`). */
|
|
220
|
-
export function profileMetadataEnv(profileId) {
|
|
221
|
-
const out = {};
|
|
222
|
-
for (const [key, value] of Object.entries(readProfileMetadata(profileId))) {
|
|
223
|
-
out[metadataEnvName(key)] = value;
|
|
224
|
-
}
|
|
225
|
-
return out;
|
|
226
|
-
}
|
|
227
|
-
/** The one authoritative broker child env: sources A–C (the operational
|
|
228
|
-
* base, resolved from the TARGET node's own cwd/profile — `inv.env`'s
|
|
229
|
-
* `CRTR_NODE_CWD`/`CRTR_PROFILE_ID`, never this process's ambient
|
|
230
|
-
* `process.cwd()`/`CRTR_PROFILE_ID`, which may be a launcher's or the
|
|
231
|
-
* daemon's own and belong to an unrelated scope), E — the TARGET profile's
|
|
232
|
-
* own `profile env` store (`readProfileEnvVars`, `core/profiles/env-store.ts`)
|
|
233
|
-
* read directly off disk and injected regardless of the host env or any
|
|
234
|
-
* `spawnEnv.allow` entry (setting a value there IS the consent to cross this
|
|
235
|
-
* boundary), F — the TARGET profile's manifest metadata as
|
|
236
|
-
* `CRTR_PROFILE_META_*` (`profileMetadataEnv` above), plus D — the trusted,
|
|
237
|
-
* crtr-constructed `inv.env` overlay and the
|
|
238
|
-
* fork-bomb recursion guard `FRONT_DOOR_ENV=1`. D is layered last so crtr's
|
|
239
|
-
* own constructed env always wins a name collision with a stored profile
|
|
240
|
-
* value. Every broker launch (front-door root, managed child, `--root`,
|
|
241
|
-
* every revive/daemon relaunch) funnels through `headlessBrokerHost.launch()`,
|
|
242
|
-
* which calls this. */
|
|
243
|
-
export function buildBrokerEnv(inv) {
|
|
244
|
-
const targetCwd = inv.env['CRTR_NODE_CWD'] ?? process.cwd();
|
|
245
|
-
const targetProfileId = inv.env['CRTR_PROFILE_ID'] || null;
|
|
246
|
-
const operational = buildOperationalEnvBase({ targetCwd, targetProfileId });
|
|
247
|
-
return {
|
|
248
|
-
...operational,
|
|
249
|
-
...profileMetadataEnv(targetProfileId),
|
|
250
|
-
...readProfileEnvVars(targetProfileId),
|
|
251
|
-
...inv.env,
|
|
252
|
-
[ADMITTED_HOST_PATH_ENV]: operational[ADMITTED_HOST_PATH_ENV],
|
|
253
|
-
[FRONT_DOOR_ENV]: '1',
|
|
254
|
-
};
|
|
255
|
-
}
|
|
1
|
+
var u=Object.defineProperty;var a=(e,t)=>u(e,"name",{value:t,configurable:!0});import{statSync as d}from"node:fs";import{delimiter as P,resolve as E}from"node:path";import{readMergedLaunchConfig as T}from"../config.js";import{readProfileEnvVars as _}from"../profiles/env-store.js";import{metadataEnvName as p,readProfileMetadata as m}from"../profiles/manifest.js";import{binShimDirFor as A}from"./bin-contributions.js";import{FRONT_DOOR_ENV as O}from"./front-door-env.js";const R=new Set(["HOME","PATH","SHELL","USER","LOGNAME","PWD","TMPDIR","TERM","TERMINFO","COLORTERM","LANG","LANGUAGE","TZ","NO_PROXY","no_proxy","SSH_AUTH_SOCK","CRTR_BASH_VALVE_MS"]),h=["LC_","XDG_","PI_"],f="CRTR_ADMITTED_HOST_PATH";function H(e,t,o){const n=t.PATH;if(n===void 0||n==="")return null;for(const s of n.split(P)){const c=E(o,s===""?".":s,e);try{const r=d(c);if(r.isFile()&&(r.mode&73)!==0)return c}catch{}}return null}a(H,"resolvePathExecutable");function $(e,t,o){const n=t[f]??t.PATH;if(n===void 0||n==="")throw new Error(`cannot resolve crouter-owned ${e}: the admitted host PATH is empty`);const s=H(e,{PATH:n},o);if(s!==null)return s;throw new Error(`cannot resolve crouter-owned ${e} from the admitted host PATH`)}a($,"resolveAdmittedHostCommand");const v=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy"],I={anthropic:"ANTHROPIC_API_KEY",openai:"OPENAI_API_KEY"};function w(e){let t;try{t=new URL(e)}catch{return!1}return!(t.protocol!=="http:"&&t.protocol!=="https:"||t.hostname===""||t.username!==""||t.password!=="")}a(w,"isCredentialFreeProxyValue");function N(e,t){if(!t.includes("*"))return e===t;const o=t.split("*").map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*");return new RegExp(`^${o}$`).test(e)}a(N,"matchesAllowPattern");function S(e){const t=e.host??process.env,o={};for(const[r,i]of Object.entries(t))i!==void 0&&(R.has(r)||h.some(l=>r.startsWith(l)))&&(o[r]=i);for(const r of v){const i=t[r];i!==void 0&&w(i)&&(o[r]=i)}for(const r of Object.values(I)){const i=t[r];i!==void 0&&(o[r]=i)}const n=T(e.targetCwd,e.targetProfileId).spawnEnv.allow;if(n.length>0)for(const[r,i]of Object.entries(t))i!==void 0&&n.some(l=>N(r,l))&&(o[r]=i);const s=t[f]??o.PATH;s!==void 0&&s!==""&&(o[f]=s);const c=A(e.targetCwd,e.targetProfileId);if(c!==null){const r=o.PATH;o.PATH=r===void 0||r===""?c:`${c}:${r}`}return o}a(S,"buildOperationalEnvBase");function C(e){const t={};for(const[o,n]of Object.entries(m(e)))t[p(o)]=n;return t}a(C,"profileMetadataEnv");function F(e){const t=e.env.CRTR_NODE_CWD??process.cwd(),o=e.env.CRTR_PROFILE_ID||null,n=S({targetCwd:t,targetProfileId:o});return{...n,...C(o),..._(o),...e.env,[f]:n[f],[O]:"1"}}a(F,"buildBrokerEnv");export{f as ADMITTED_HOST_PATH_ENV,F as buildBrokerEnv,S as buildOperationalEnvBase,C as profileMetadataEnv,$ as resolveAdmittedHostCommand,H as resolvePathExecutable};
|