@north-light/crouter 0.3.172 → 0.3.174
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/bin/runtime-selector.mjs +8 -1
- package/dist/api/__tests__/{client.test.js → serial/client.test.js} +2 -135
- package/dist/api/client.d.ts +12 -21
- package/dist/api/client.js +22 -31
- package/dist/api/dto/broker-ops.d.ts +158 -0
- package/dist/api/dto/broker-ops.js +6 -0
- package/dist/api/dto/crons.d.ts +6 -0
- package/dist/api/dto/human.d.ts +7 -1
- package/dist/api/dto/inbox.d.ts +1 -71
- package/dist/api/dto/inbox.js +1 -9
- package/dist/api/dto/nodes.d.ts +6 -7
- package/dist/api/dto/reviews.d.ts +1 -11
- package/dist/api/routes.d.ts +7 -4
- package/dist/api/routes.js +8 -5
- package/dist/build-root.js +3 -3
- package/dist/builtin-memory/04-base-worker.md +1 -4
- package/dist/builtin-memory/05-kinds/advisor/00-base.md +1 -5
- package/dist/builtin-memory/05-kinds/advisor/01-orchestrator.md +2 -7
- package/dist/builtin-memory/05-kinds/design/00-base.md +1 -6
- package/dist/builtin-memory/05-kinds/developer/00-base.md +1 -6
- package/dist/builtin-memory/05-kinds/explore/00-base.md +1 -4
- package/dist/builtin-memory/05-kinds/explore/01-orchestrator.md +1 -2
- package/dist/builtin-memory/05-kinds/general/00-base.md +1 -3
- package/dist/builtin-memory/05-kinds/plan/00-base.md +1 -6
- package/dist/builtin-memory/05-kinds/plan/reviewers/00-base.md +1 -2
- package/dist/builtin-memory/05-kinds/plan/reviewers/architecture-fit.md +1 -3
- package/dist/builtin-memory/05-kinds/plan/reviewers/code-smells.md +1 -3
- package/dist/builtin-memory/05-kinds/plan/reviewers/pattern-consistency.md +1 -3
- package/dist/builtin-memory/05-kinds/plan/reviewers/requirements-coverage.md +1 -3
- package/dist/builtin-memory/05-kinds/plan/reviewers/security.md +1 -4
- package/dist/builtin-memory/05-kinds/review/companion/00-base.md +2 -3
- package/dist/builtin-memory/05-kinds/spec/00-base.md +1 -2
- package/dist/builtin-memory/advisor/council.md +1 -6
- package/dist/builtin-memory/design.md +2 -7
- package/dist/builtin-memory/development.md +9 -14
- package/dist/builtin-memory/internal/marketplaces.md +2 -6
- package/dist/builtin-memory/internal/nodes-and-canvas.md +1 -1
- package/dist/builtin-memory/internal/plugins.md +2 -8
- package/dist/builtin-memory/internal/storage-tiers.md +1 -2
- package/dist/builtin-memory/testing.md +41 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/{provider-rotation.test.ts → serial/provider-rotation.test.ts} +106 -177
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/claude-plugin-commands.ts +5 -15
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/frontmatter-rules/index.ts +1 -28
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/memory-slash-commands.ts +43 -88
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.js +55 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.ts +60 -0
- package/dist/cli.js +2 -2
- package/dist/clients/attach/__tests__/attach-remote-readonly.test.js +37 -131
- package/dist/clients/attach/__tests__/chat-view-snapshot-ordering.test.js +71 -152
- package/dist/clients/attach/__tests__/context-message.test.js +16 -174
- package/dist/clients/attach/__tests__/crtr-output.test.js +36 -2069
- package/dist/clients/attach/__tests__/diagram.test.js +2 -2
- package/dist/clients/attach/__tests__/edit-diff.test.js +0 -4
- package/dist/clients/attach/__tests__/file-review-focus.test.js +2 -1
- package/dist/clients/attach/__tests__/group-activity.test.js +40 -229
- package/dist/clients/attach/__tests__/oauth-dialog-lifecycle.test.js +26 -76
- package/dist/clients/attach/__tests__/prompt-preview.test.js +4 -70
- package/dist/clients/attach/__tests__/ref-autocomplete.test.js +11 -125
- package/dist/clients/attach/__tests__/titled-editor-preview.test.js +14 -205
- package/dist/clients/attach/command.d.ts +2 -1
- package/dist/clients/attach/command.js +81 -76
- package/dist/clients/attach/input/capabilities.d.ts +27 -0
- package/dist/clients/attach/input/capabilities.js +96 -0
- package/dist/clients/attach/input/controller.d.ts +20 -182
- package/dist/clients/attach/input/controller.js +128 -537
- package/dist/clients/attach/input/overlay-owner.d.ts +41 -0
- package/dist/clients/attach/input/overlay-owner.js +199 -0
- package/dist/clients/attach/overlays/file-review.d.ts +0 -4
- package/dist/clients/attach/overlays/file-review.js +13 -5
- package/dist/clients/attach/overlays/graph.js +2 -10
- package/dist/clients/attach/render/chat-view.d.ts +4 -3
- package/dist/clients/attach/render/chat-view.js +39 -33
- package/dist/clients/attach/render/group-activity.d.ts +1 -0
- package/dist/clients/attach/render/group-activity.js +20 -13
- package/dist/clients/attach/render/group-recap.js +12 -3
- package/dist/clients/attach/session/connection.js +9 -15
- package/dist/clients/attach/session/editor-inventory.d.ts +6 -5
- package/dist/clients/attach/session/editor-inventory.js +7 -8
- package/dist/clients/attach/session/file-links.d.ts +13 -0
- package/dist/clients/attach/session/file-links.js +107 -0
- package/dist/clients/attach/session/frame.d.ts +3 -0
- package/dist/clients/attach/session/frame.js +10 -1
- package/dist/clients/attach/session/frames.js +2 -3
- package/dist/clients/attach/session/input-wiring.d.ts +4 -1
- package/dist/clients/attach/session/input-wiring.js +15 -14
- package/dist/clients/attach/session/mouse.d.ts +6 -1
- package/dist/clients/attach/session/mouse.js +8 -5
- package/dist/clients/attach/session/profile-files.js +18 -12
- package/dist/clients/attach/session/reconnect.js +1 -1
- package/dist/clients/attach/session/state-sync.js +1 -2
- package/dist/clients/attach/session/surface-host.d.ts +3 -2
- package/dist/clients/attach/session/surface-host.js +4 -4
- package/dist/clients/attach/slash/dispatch.d.ts +8 -31
- package/dist/clients/attach/slash/dispatch.js +34 -81
- package/dist/clients/attach/viewer.js +820 -860
- package/dist/clients/conversation/projection.d.ts +79 -0
- package/dist/clients/conversation/projection.js +341 -0
- package/dist/clients/inbox/__tests__/serial/inbox-controller.test.js +159 -0
- package/dist/clients/inbox/__tests__/serial/mount-panel.test.js +151 -0
- package/dist/clients/inbox/controller.d.ts +0 -4
- package/dist/clients/inbox/controller.js +0 -2
- package/dist/clients/inbox/review/__tests__/review-core.test.js +4 -293
- package/dist/clients/inbox/review/__tests__/teardown-notice.test.js +100 -0
- package/dist/clients/inbox/review/comments-client.d.ts +3 -2
- package/dist/clients/inbox/review/comments-client.js +12 -12
- package/dist/clients/inbox/review/companion-pane.d.ts +30 -0
- package/dist/clients/inbox/review/companion-pane.js +86 -0
- package/dist/clients/inbox/review/document-surface.d.ts +182 -0
- package/dist/clients/inbox/review/{document-region.js → document-surface.js} +252 -48
- package/dist/clients/inbox/review/frame.js +5 -4
- package/dist/clients/inbox/review/launch.d.ts +8 -8
- package/dist/clients/inbox/review/launch.js +52 -92
- package/dist/clients/inbox/review/nvim.d.ts +2 -0
- package/dist/clients/inbox/review/nvim.js +14 -12
- package/dist/clients/inbox/review/review-client.d.ts +12 -8
- package/dist/clients/inbox/review/review-client.js +46 -35
- package/dist/clients/inbox/review-adapter.d.ts +3 -10
- package/dist/clients/inbox/review-adapter.js +27 -19
- package/dist/clients/inbox/surface.d.ts +0 -4
- package/dist/clients/inbox/surface.js +0 -2
- package/dist/clients/surfaces/host.d.ts +11 -3
- package/dist/commands/__tests__/api-client-cold-start-diagnostic.test.js +7 -34
- package/dist/commands/__tests__/human.test.js +11 -322
- package/dist/commands/api-client.d.ts +5 -5
- package/dist/commands/api-client.js +6 -85
- package/dist/commands/canvas-browse.js +3 -29
- package/dist/commands/canvas-config.js +1 -1
- package/dist/commands/canvas-use.js +3 -3
- package/dist/commands/canvas.js +1 -1
- package/dist/commands/cron.js +5 -1
- package/dist/commands/human/queue.d.ts +0 -4
- package/dist/commands/human/queue.js +7 -40
- package/dist/commands/memory/list.d.ts +14 -0
- package/dist/commands/memory/list.js +35 -31
- package/dist/commands/memory/read.d.ts +7 -0
- package/dist/commands/memory/read.js +14 -8
- package/dist/commands/node/bash.d.ts +1 -0
- package/dist/commands/node/bash.js +198 -0
- package/dist/commands/node/create.d.ts +23 -0
- package/dist/commands/node/create.js +207 -0
- package/dist/commands/node/inspect.d.ts +2 -0
- package/dist/commands/node/inspect.js +302 -0
- package/dist/commands/node/lifecycle.d.ts +4 -0
- package/dist/commands/node/lifecycle.js +415 -0
- package/dist/commands/node/message.d.ts +1 -0
- package/dist/commands/node/message.js +164 -0
- package/dist/commands/node/pyramid.d.ts +2 -0
- package/dist/commands/node/pyramid.js +79 -0
- package/dist/commands/node/subscription.d.ts +1 -0
- package/dist/commands/node/subscription.js +82 -0
- package/dist/commands/node/wait.d.ts +1 -0
- package/dist/commands/node/wait.js +159 -0
- package/dist/commands/node-lifecycle-revive.js +10 -57
- package/dist/commands/node.d.ts +0 -42
- package/dist/commands/node.js +11 -2065
- package/dist/commands/search.js +1 -1
- package/dist/commands/surface/node/cycle.d.ts +1 -0
- package/dist/commands/surface/node/cycle.js +83 -0
- package/dist/commands/surface/node/focus.d.ts +1 -0
- package/dist/commands/surface/node/focus.js +67 -0
- package/dist/commands/surface/node/id.d.ts +1 -0
- package/dist/commands/surface/node/id.js +38 -0
- package/dist/commands/surface/node/pin.d.ts +1 -0
- package/dist/commands/surface/node/pin.js +42 -0
- package/dist/commands/surface/node/placement.d.ts +46 -0
- package/dist/commands/surface/node/placement.js +124 -0
- package/dist/commands/surface-node.js +4 -1
- package/dist/commands/surface-reload.js +1 -2
- package/dist/commands/surface-tmux-spread.js +1 -1
- package/dist/commands/surface.js +5 -20
- package/dist/commands/sys/__tests__/setup-core.test.js +18 -271
- package/dist/commands/sys/config.js +6 -6
- package/dist/commands/sys/logs.js +1 -1
- package/dist/commands/sys/panels/broker-limits-panel.d.ts +17 -0
- package/dist/commands/sys/panels/broker-limits-panel.js +104 -0
- package/dist/commands/sys/panels/dependencies-panel.d.ts +14 -0
- package/dist/commands/sys/panels/dependencies-panel.js +80 -0
- package/dist/commands/sys/panels/keybindings-panel.d.ts +56 -0
- package/dist/commands/sys/panels/keybindings-panel.js +703 -0
- package/dist/commands/sys/panels/keys-panel.d.ts +16 -0
- package/dist/commands/sys/panels/keys-panel.js +60 -0
- package/dist/commands/sys/panels/models-panel.d.ts +77 -0
- package/dist/commands/sys/panels/models-panel.js +647 -0
- package/dist/commands/sys/panels/panel.d.ts +45 -0
- package/dist/commands/sys/panels/panel.js +137 -0
- package/dist/commands/sys/panels/plugins-panel.d.ts +16 -0
- package/dist/commands/sys/panels/plugins-panel.js +80 -0
- package/dist/commands/sys/panels/prefs-panel.d.ts +21 -0
- package/dist/commands/sys/panels/prefs-panel.js +85 -0
- package/dist/commands/sys/panels/provider-panel.d.ts +62 -0
- package/dist/commands/sys/panels/provider-panel.js +538 -0
- package/dist/commands/sys/settings-shell.d.ts +55 -0
- package/dist/commands/sys/settings-shell.js +400 -0
- package/dist/commands/sys/settings.d.ts +2 -0
- package/dist/commands/sys/settings.js +31 -0
- package/dist/commands/sys/setup-core.d.ts +3 -33
- package/dist/commands/sys/setup-core.js +27 -78
- package/dist/commands/sys/setup-settings-runner.d.ts +24 -0
- package/dist/commands/sys/setup-settings-runner.js +63 -0
- package/dist/commands/sys/setup-wizard.d.ts +26 -125
- package/dist/commands/sys/setup-wizard.js +209 -2473
- package/dist/commands/sys/setup.js +5 -7
- package/dist/commands/sys.js +3 -2
- package/dist/core/__tests__/broker-extension-canvas-db-boundary.test.js +50 -0
- package/dist/core/__tests__/broker-launch-candidates.test.js +20 -9
- package/dist/core/__tests__/broker-preflight.test.js +1 -1
- package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +108 -27
- package/dist/core/__tests__/canvas-inbox-watcher.test.js +14 -0
- package/dist/core/__tests__/canvas.test.js +2 -36
- package/dist/core/__tests__/close.test.js +14 -3
- package/dist/core/__tests__/context-intro.test.js +32 -143
- package/dist/core/__tests__/cron-broker-capacity.test.js +22 -3
- package/dist/core/__tests__/daemon-boot.test.js +2 -20
- package/dist/core/__tests__/daemon-wedge.test.js +1 -1
- package/dist/core/__tests__/dead-node-policy-table.test.js +1 -18
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +1 -1
- package/dist/core/__tests__/fixtures/fake-engine.js +2 -2
- package/dist/core/__tests__/fixtures/fake-pi-host.js +2 -2
- package/dist/core/__tests__/focuses.test.js +4 -98
- package/dist/core/__tests__/helpers/broker-clients.d.ts +0 -3
- package/dist/core/__tests__/helpers/broker-clients.js +0 -14
- package/dist/core/__tests__/helpers/harness.d.ts +0 -8
- package/dist/core/__tests__/helpers/harness.js +7 -87
- package/dist/core/__tests__/helpers/viewer-panes.js +1 -1
- package/dist/core/__tests__/inline-memory-refs.test.js +5 -134
- package/dist/core/__tests__/kickoff.test.js +1 -1
- package/dist/core/__tests__/memory-resolver-precedence.test.js +29 -1
- package/dist/core/__tests__/migration.test.js +35 -48
- package/dist/core/__tests__/on-read-dedup-resume.test.js +22 -12
- package/dist/core/__tests__/passive-subscription.test.js +26 -49
- package/dist/core/__tests__/preview-registry-sync.test.js +1 -2
- package/dist/core/__tests__/prune.test.js +94 -1
- package/dist/core/__tests__/review-model-floor.test.js +0 -32
- package/dist/core/__tests__/seam/broker-attach-multiclient.test.js +255 -0
- package/dist/core/__tests__/{full → seam}/broker-attach-stream.test.js +39 -7
- package/dist/core/__tests__/{full → seam}/broker-crash-teardown.test.js +30 -29
- package/dist/core/__tests__/{full → seam}/broker-pane-resolution.test.js +54 -5
- package/dist/core/__tests__/{full → seam}/broker-provider-retry.test.js +134 -82
- package/dist/core/__tests__/{full → seam}/broker-whip-interrupt.test.js +15 -4
- package/dist/core/__tests__/{full/idle-release-settlement.test.js → seam/dormancy-release.test.js} +69 -17
- package/dist/core/__tests__/{full/yield-message-transaction.test.js → seam/yield-refresh-transaction.test.js} +31 -9
- package/dist/core/__tests__/secrets.test.js +1 -7
- package/dist/core/__tests__/{broker-fork-seam.test.js → serial/broker-fork-seam.test.js} +58 -7
- package/dist/core/__tests__/{broker-sdk-wiring.test.js → serial/broker-sdk-wiring.test.js} +18 -162
- package/dist/core/__tests__/{broker-snapshot-history.test.js → serial/broker-snapshot-history.test.js} +9 -9
- package/dist/core/__tests__/{command-plugins.test.js → serial/command-plugins.test.js} +105 -15
- package/dist/core/__tests__/{deferred-no-wake.test.js → serial/deferred-no-wake.test.js} +23 -20
- package/dist/core/__tests__/{flagship-lifecycle.test.js → serial/flagship-lifecycle.test.js} +7 -7
- package/dist/core/__tests__/{host-teardown-process-group.test.js → serial/host-teardown-process-group.test.js} +6 -6
- package/dist/core/__tests__/{human-deliver-e2e.test.js → serial/human-deliver-e2e.test.js} +12 -12
- package/dist/core/__tests__/{live-mutation.test.js → serial/live-mutation.test.js} +5 -5
- package/dist/core/__tests__/{refresh-stall-recycle.test.js → serial/refresh-stall-recycle.test.js} +5 -14
- package/dist/core/__tests__/{revive.test.js → serial/revive.test.js} +15 -100
- package/dist/core/__tests__/{spawn-root.test.js → serial/spawn-root.test.js} +32 -15
- package/dist/core/__tests__/serial/subscription-delivery.test.js +126 -0
- package/dist/core/__tests__/serial/tmux-surface.test.js +256 -0
- package/dist/core/__tests__/{worktree.test.js → serial/worktree.test.js} +15 -15
- package/dist/core/__tests__/session-model.test.js +0 -18
- package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +9 -0
- package/dist/core/__tests__/watchdog-abort-arms-retry.test.js +50 -0
- package/dist/core/broker-client/__tests__/transport-relay.test.js +15 -16
- package/dist/core/broker-client/__tests__/transport-socket.test.js +28 -0
- package/dist/core/broker-client/client.d.ts +2 -2
- package/dist/core/broker-client/client.js +4 -7
- package/dist/core/broker-client/transport-relay.d.ts +13 -19
- package/dist/core/broker-client/transport-relay.js +19 -34
- package/dist/core/broker-client/transport-socket.d.ts +2 -2
- package/dist/core/broker-client/transport-socket.js +9 -2
- package/dist/core/broker-client/transport.d.ts +7 -3
- package/dist/core/broker-client/transport.js +4 -4
- package/dist/core/canvas/__tests__/attention.test.js +1 -18
- package/dist/core/canvas/__tests__/remote-canvas-source.test.js +7 -64
- package/dist/core/canvas/__tests__/remote-transport.test.js +2 -3
- package/dist/core/canvas/__tests__/render-remote.test.js +7 -52
- package/dist/core/canvas/browse/app.d.ts +2 -17
- package/dist/core/canvas/browse/app.js +16 -88
- package/dist/core/canvas/browse/model.d.ts +0 -4
- package/dist/core/canvas/browse/model.js +1 -12
- package/dist/core/canvas/browse/render.js +6 -3
- package/dist/core/canvas/crons.d.ts +8 -5
- package/dist/core/canvas/crons.js +7 -6
- package/dist/core/canvas/extensions.d.ts +7 -3
- package/dist/core/canvas/extensions.js +16 -4
- package/dist/core/canvas/nav-model.d.ts +0 -4
- package/dist/core/canvas/nav-model.js +2 -14
- package/dist/core/canvas/node-order.d.ts +3 -0
- package/dist/core/canvas/node-order.js +12 -0
- package/dist/core/canvas/remote-canvas-source.d.ts +3 -6
- package/dist/core/canvas/remote-canvas-source.js +8 -15
- package/dist/core/command.js +11 -4
- package/dist/core/config.js +3 -1
- package/dist/core/events/envelope.js +1 -1
- package/dist/core/events/read.js +7 -21
- package/dist/core/events/source.d.ts +0 -2
- package/dist/core/events/source.js +0 -16
- package/dist/core/events/types.d.ts +1 -1
- package/dist/core/fault-classifier.d.ts +1 -1
- package/dist/core/feed/passive.d.ts +0 -11
- package/dist/core/feed/passive.js +1 -62
- package/dist/core/human/__tests__/{inbox-core.test.js → serial/inbox-core.test.js} +6 -6
- package/dist/core/keybindings/__tests__/resolve.test.js +1 -96
- package/dist/core/keybindings/background-bash.js +3 -4
- package/dist/core/keybindings/catalog.js +1 -1
- package/dist/core/memory/inline-ref-grammar.js +3 -3
- package/dist/core/memory-resolver.d.ts +11 -25
- package/dist/core/memory-resolver.js +51 -33
- package/dist/core/model-routes.d.ts +15 -0
- package/dist/core/model-routes.js +12 -0
- package/dist/core/pool-credential-store.js +1 -1
- package/dist/core/preview-registry.js +8 -9
- package/dist/core/profiles/__tests__/root-profile.test.js +4 -14
- package/dist/core/review/realize.d.ts +0 -13
- package/dist/core/review/realize.js +0 -40
- package/dist/core/review/types.d.ts +1 -1
- package/dist/core/runtime/__tests__/engine-route.test.js +2 -2
- package/dist/core/runtime/bearings.js +1 -11
- package/dist/core/runtime/broker/client-registry.d.ts +33 -0
- package/dist/core/runtime/broker/client-registry.js +164 -0
- package/dist/core/runtime/broker/daemon-ops.d.ts +19 -0
- package/dist/core/runtime/broker/daemon-ops.js +49 -0
- package/dist/core/runtime/broker/event-projection.d.ts +42 -0
- package/dist/core/runtime/broker/event-projection.js +178 -0
- package/dist/core/runtime/broker/fault-retry.d.ts +39 -0
- package/dist/core/runtime/broker/fault-retry.js +277 -0
- package/dist/core/runtime/broker/frame-dispatch.d.ts +238 -0
- package/dist/core/runtime/broker/frame-dispatch.js +1537 -0
- package/dist/core/runtime/broker/inbox.d.ts +22 -0
- package/dist/core/runtime/broker/inbox.js +167 -0
- package/dist/core/runtime/broker/passive.d.ts +16 -0
- package/dist/core/runtime/broker/passive.js +44 -0
- package/dist/core/runtime/broker/read-ops.d.ts +23 -0
- package/dist/core/runtime/broker/read-ops.js +150 -0
- package/dist/core/runtime/broker/rebind.d.ts +74 -0
- package/dist/core/runtime/broker/rebind.js +211 -0
- package/dist/core/runtime/broker/tool-groups.d.ts +39 -0
- package/dist/core/runtime/broker/tool-groups.js +244 -0
- package/dist/core/runtime/broker-extension-render.d.ts +11 -0
- package/dist/core/runtime/broker-extension-render.js +181 -0
- package/dist/core/runtime/broker-persona-guidance.d.ts +13 -0
- package/dist/core/runtime/broker-persona-guidance.js +58 -0
- package/dist/core/runtime/broker-protocol.d.ts +1 -1
- package/dist/core/runtime/broker-protocol.js +1 -1
- package/dist/core/runtime/broker.d.ts +5 -196
- package/dist/core/runtime/broker.js +276 -3059
- package/dist/core/runtime/canvas-extensions.js +11 -2
- package/dist/core/runtime/fault.js +1 -1
- package/dist/core/runtime/model-selection.d.ts +9 -0
- package/dist/core/runtime/model-selection.js +12 -0
- package/dist/core/runtime/model-swap.d.ts +3 -3
- package/dist/core/runtime/model-swap.js +33 -25
- package/dist/core/runtime/placement-tmux.d.ts +3 -14
- package/dist/core/runtime/placement-tmux.js +11 -80
- package/dist/core/runtime/placement.d.ts +4 -2
- package/dist/core/runtime/placement.js +7 -12
- package/dist/core/runtime/promote.d.ts +14 -1
- package/dist/core/runtime/promote.js +1 -1
- package/dist/core/runtime/reset.d.ts +1 -1
- package/dist/core/runtime/roadmap.js +1 -1
- package/dist/core/runtime/spawn.d.ts +8 -0
- package/dist/core/runtime/spawn.js +36 -6
- package/dist/core/runtime/stop-guard.d.ts +4 -3
- package/dist/core/runtime/stop-guard.js +36 -18
- package/dist/core/runtime/stop-signals.d.ts +4 -1
- package/dist/core/runtime/stream-watchdog.js +4 -5
- package/dist/core/runtime/structured-output.d.ts +15 -2
- package/dist/core/runtime/structured-output.js +35 -12
- package/dist/core/runtime/tmux-bindings.d.ts +25 -0
- package/dist/core/runtime/tmux-bindings.js +682 -0
- package/dist/core/runtime/tmux-chrome.d.ts +2 -1
- package/dist/core/runtime/tmux-chrome.js +3 -2
- package/dist/core/runtime/{tmux.d.ts → tmux-driver.d.ts} +18 -26
- package/dist/core/runtime/tmux-driver.js +598 -0
- package/dist/core/runtime/view-socket.d.ts +14 -0
- package/dist/core/runtime/view-socket.js +83 -0
- package/dist/core/session-model/session-state.d.ts +1 -2
- package/dist/core/session-model/session-state.js +5 -8
- package/dist/core/spawn.d.ts +1 -1
- package/dist/core/spawn.js +2 -2
- package/dist/core/substrate/gate.d.ts +1 -1
- package/dist/core/substrate/on-read-pure.d.ts +7 -0
- package/dist/core/substrate/on-read-pure.js +272 -0
- package/dist/core/termrender/termrender.js +32 -2
- package/dist/core/user-settings.d.ts +23 -1
- package/dist/core/user-settings.js +18 -1
- package/dist/daemon/api/__tests__/node-model-validation.test.js +134 -0
- package/dist/daemon/api/__tests__/review-terminal-conflict.test.js +98 -0
- package/dist/daemon/api/__tests__/{full → seam}/api-server.test.js +6 -48
- package/dist/daemon/api/__tests__/{full → seam}/b10-attach-modelauth.test.js +17 -44
- package/dist/daemon/api/__tests__/{full/push-parity.test.js → seam/leaf-api-parity.test.js} +61 -42
- package/dist/daemon/api/bridge.js +40 -81
- package/dist/daemon/api/handlers/broker-ops.d.ts +2 -0
- package/dist/daemon/api/handlers/broker-ops.js +383 -0
- package/dist/daemon/api/handlers/crons.js +9 -4
- package/dist/daemon/api/handlers/files.js +6 -7
- package/dist/daemon/api/handlers/inbox.js +2 -340
- package/dist/daemon/api/handlers/nodes.d.ts +10 -1
- package/dist/daemon/api/handlers/nodes.js +74 -39
- package/dist/daemon/api/handlers/review-comments.js +5 -1
- package/dist/daemon/api/handlers/reviews.js +0 -19
- package/dist/daemon/api/map.js +25 -4
- package/dist/daemon/api/router.js +2 -3
- package/dist/daemon/api/server.js +5 -7
- package/dist/daemon/cron-run.d.ts +4 -0
- package/dist/daemon/cron-run.js +30 -13
- package/dist/daemon/crtrd.d.ts +3 -58
- package/dist/daemon/crtrd.js +28 -1244
- package/dist/daemon/manage.js +0 -1
- package/dist/daemon/reconcilers/broker-supervision.d.ts +50 -0
- package/dist/daemon/reconcilers/broker-supervision.js +549 -0
- package/dist/daemon/reconcilers/cron-lane.d.ts +10 -0
- package/dist/daemon/reconcilers/cron-lane.js +32 -0
- package/dist/daemon/reconcilers/dormant-inbox.d.ts +18 -0
- package/dist/daemon/reconcilers/dormant-inbox.js +143 -0
- package/dist/daemon/reconcilers/storage-maintenance.d.ts +22 -0
- package/dist/daemon/reconcilers/storage-maintenance.js +213 -0
- package/dist/daemon/review/finish.js +2 -5
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +34 -53
- package/dist/pi-extensions/__tests__/canvas-recap.test.js +16 -113
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +72 -99
- package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +29 -12
- package/dist/pi-extensions/broker-local.d.ts +20 -0
- package/dist/pi-extensions/broker-local.js +89 -0
- package/dist/pi-extensions/canvas-context-intro.d.ts +3 -3
- package/dist/pi-extensions/canvas-context-intro.js +22 -11
- package/dist/pi-extensions/canvas-doc-substrate.js +17 -34
- package/dist/pi-extensions/canvas-goal-capture.js +7 -12
- package/dist/pi-extensions/canvas-inbox-watcher.js +124 -139
- package/dist/pi-extensions/canvas-passive-context.d.ts +3 -3
- package/dist/pi-extensions/canvas-passive-context.js +22 -18
- package/dist/pi-extensions/canvas-recap.d.ts +2 -2
- package/dist/pi-extensions/canvas-recap.js +48 -21
- package/dist/pi-extensions/canvas-review-boundary.js +10 -4
- package/dist/pi-extensions/canvas-stophook.d.ts +0 -5
- package/dist/pi-extensions/canvas-stophook.js +149 -431
- package/dist/pi-extensions/canvas-structured-output.js +52 -30
- package/dist/pi-extensions/envelope-merge.d.ts +13 -0
- package/dist/pi-extensions/envelope-merge.js +29 -0
- package/dist/shared/working-activity.d.ts +3 -2
- package/dist/shared/working-activity.js +3 -2
- package/dist/types.d.ts +6 -5
- package/dist/types.js +2 -2
- package/docs/compat/hearth-crtr-v1.md +4 -12
- package/docs/compat/hearth-crtr-v2.md +3 -11
- package/docs/compat/hearth-crtr-v3.md +4 -12
- package/docs/compat/hearth-crtr-v4.md +3 -11
- package/docs/compat/hearth-crtr-v5.md +3 -11
- package/docs/public-api.md +3 -7
- package/package.json +7 -49
- package/runtime.lock.json +2766 -14533
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/claude-plugin-commands.test.ts +0 -49
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/memory-slash-commands.test.ts +0 -194
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/statusline.test.ts +0 -68
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/frontmatter-rules/test.ts +0 -119
- package/dist/clients/attach/__tests__/attach-chrome-remote.test.js +0 -439
- package/dist/clients/attach/__tests__/attach-keybindings.test.js +0 -170
- package/dist/clients/attach/__tests__/crtr-output-coverage.test.js +0 -57
- package/dist/clients/attach/__tests__/editor-frame-title.test.js +0 -19
- package/dist/clients/attach/__tests__/input-controller-extension-command.test.js +0 -32
- package/dist/clients/attach/__tests__/markdown-headings.test.js +0 -35
- package/dist/clients/attach/__tests__/session-identity-refresh.test.js +0 -32
- package/dist/clients/conversation/conversation.d.ts +0 -65
- package/dist/clients/conversation/conversation.js +0 -318
- package/dist/clients/conversation/frames.d.ts +0 -30
- package/dist/clients/conversation/frames.js +0 -52
- package/dist/clients/conversation/region.d.ts +0 -51
- package/dist/clients/conversation/region.js +0 -265
- package/dist/clients/inbox/__tests__/inbox-controller.test.js +0 -247
- package/dist/clients/inbox/__tests__/mount-panel.test.js +0 -776
- package/dist/clients/inbox/review/__tests__/remap.test.js +0 -196
- package/dist/clients/inbox/review/columns.d.ts +0 -22
- package/dist/clients/inbox/review/columns.js +0 -40
- package/dist/clients/inbox/review/composition.d.ts +0 -60
- package/dist/clients/inbox/review/composition.js +0 -278
- package/dist/clients/inbox/review/document-region.d.ts +0 -120
- package/dist/clients/surfaces/region.d.ts +0 -16
- package/dist/clients/web/__tests__/push-engine.test.js +0 -158
- package/dist/clients/web/__tests__/push-registry.test.d.ts +0 -1
- package/dist/clients/web/__tests__/push-registry.test.js +0 -177
- package/dist/clients/web/dev-server.d.ts +0 -7
- package/dist/clients/web/dev-server.js +0 -46
- package/dist/clients/web/events.d.ts +0 -19
- package/dist/clients/web/events.js +0 -163
- package/dist/clients/web/push-engine.d.ts +0 -44
- package/dist/clients/web/push-engine.js +0 -125
- package/dist/clients/web/push-registry.d.ts +0 -85
- package/dist/clients/web/push-registry.js +0 -373
- package/dist/clients/web/server.d.ts +0 -19
- package/dist/clients/web/server.js +0 -661
- package/dist/clients/web/web-client/shared/protocol.d.ts +0 -214
- package/dist/clients/web/web-client/shared/protocol.js +0 -8
- package/dist/clients/web/web-cmd.d.ts +0 -2
- package/dist/clients/web/web-cmd.js +0 -141
- package/dist/commands/__tests__/api-canvas-source.test.d.ts +0 -1
- package/dist/commands/__tests__/api-canvas-source.test.js +0 -37
- package/dist/commands/__tests__/canvas-config.test.d.ts +0 -1
- package/dist/commands/__tests__/canvas-config.test.js +0 -107
- package/dist/commands/__tests__/node-no-kickoff-flag.test.d.ts +0 -1
- package/dist/commands/__tests__/node-no-kickoff-flag.test.js +0 -73
- package/dist/commands/__tests__/node-worktree-flag.test.d.ts +0 -1
- package/dist/commands/__tests__/node-worktree-flag.test.js +0 -49
- package/dist/commands/__tests__/search-contents.test.d.ts +0 -1
- package/dist/commands/__tests__/search-contents.test.js +0 -52
- package/dist/commands/memory/__tests__/lint.test.d.ts +0 -1
- package/dist/commands/memory/__tests__/lint.test.js +0 -15
- package/dist/commands/sys/__tests__/config-broker-thresholds.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/config-broker-thresholds.test.js +0 -95
- package/dist/commands/sys/__tests__/config-keybindings.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/config-keybindings.test.js +0 -55
- package/dist/commands/sys/__tests__/helpers/setup-runtime.d.ts +0 -5
- package/dist/commands/sys/__tests__/helpers/setup-runtime.js +0 -19
- package/dist/commands/sys/__tests__/setup-front-door.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/setup-front-door.test.js +0 -102
- package/dist/commands/sys/__tests__/setup-models.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/setup-models.test.js +0 -205
- package/dist/commands/sys/__tests__/setup-providers-viewport.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/setup-providers-viewport.test.js +0 -155
- package/dist/commands/sys/__tests__/sync-deps.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/sync-deps.test.js +0 -179
- package/dist/commands/sys/__tests__/sync-import.test.d.ts +0 -1
- package/dist/commands/sys/__tests__/sync-import.test.js +0 -315
- package/dist/core/__tests__/base-worker-prompt.test.d.ts +0 -1
- package/dist/core/__tests__/base-worker-prompt.test.js +0 -57
- package/dist/core/__tests__/command-plugins-surfaces.test.d.ts +0 -1
- package/dist/core/__tests__/command-plugins-surfaces.test.js +0 -359
- package/dist/core/__tests__/connection-reconnect-resume.test.d.ts +0 -1
- package/dist/core/__tests__/connection-reconnect-resume.test.js +0 -36
- package/dist/core/__tests__/finalization-migration.test.d.ts +0 -1
- package/dist/core/__tests__/finalization-migration.test.js +0 -38
- package/dist/core/__tests__/fixtures/extra-extension.d.ts +0 -1
- package/dist/core/__tests__/fixtures/extra-extension.js +0 -3
- package/dist/core/__tests__/fixtures/spawn-proof-target.test.d.ts +0 -1
- package/dist/core/__tests__/fixtures/spawn-proof-target.test.js +0 -15
- package/dist/core/__tests__/fork.test.d.ts +0 -1
- package/dist/core/__tests__/fork.test.js +0 -108
- package/dist/core/__tests__/full/broker-attach-limits.test.d.ts +0 -1
- package/dist/core/__tests__/full/broker-attach-limits.test.js +0 -147
- package/dist/core/__tests__/full/broker-deliver-ack.test.d.ts +0 -1
- package/dist/core/__tests__/full/broker-deliver-ack.test.js +0 -73
- package/dist/core/__tests__/full/broker-dialogs.test.d.ts +0 -1
- package/dist/core/__tests__/full/broker-dialogs.test.js +0 -180
- package/dist/core/__tests__/full/broker-display-snapshot.test.d.ts +0 -1
- package/dist/core/__tests__/full/broker-display-snapshot.test.js +0 -75
- package/dist/core/__tests__/full/broker-dormant-wake.test.d.ts +0 -1
- package/dist/core/__tests__/full/broker-dormant-wake.test.js +0 -130
- package/dist/core/__tests__/full/broker-model-changed-broadcast.test.d.ts +0 -1
- package/dist/core/__tests__/full/broker-model-changed-broadcast.test.js +0 -57
- package/dist/core/__tests__/full/broker-navigate-tree-rewelcome.test.d.ts +0 -1
- package/dist/core/__tests__/full/broker-navigate-tree-rewelcome.test.js +0 -80
- package/dist/core/__tests__/full/cascade-close.test.d.ts +0 -1
- package/dist/core/__tests__/full/cascade-close.test.js +0 -240
- package/dist/core/__tests__/full/detach-focus.test.d.ts +0 -1
- package/dist/core/__tests__/full/detach-focus.test.js +0 -126
- package/dist/core/__tests__/full/idle-release-settlement.test.d.ts +0 -1
- package/dist/core/__tests__/full/issue-146-yield-spawn-focus.test.d.ts +0 -1
- package/dist/core/__tests__/full/issue-146-yield-spawn-focus.test.js +0 -107
- package/dist/core/__tests__/full/park-clock-release.test.d.ts +0 -1
- package/dist/core/__tests__/full/park-clock-release.test.js +0 -56
- package/dist/core/__tests__/full/yield-message-transaction.test.d.ts +0 -1
- package/dist/core/__tests__/memory-index-render.test.d.ts +0 -1
- package/dist/core/__tests__/memory-index-render.test.js +0 -60
- package/dist/core/__tests__/model-routes.test.d.ts +0 -1
- package/dist/core/__tests__/model-routes.test.js +0 -41
- package/dist/core/__tests__/on-read-identity.test.d.ts +0 -1
- package/dist/core/__tests__/on-read-identity.test.js +0 -61
- package/dist/core/__tests__/phase4-review-migration.test.d.ts +0 -1
- package/dist/core/__tests__/phase4-review-migration.test.js +0 -100
- package/dist/core/__tests__/prune-to-limit.test.d.ts +0 -1
- package/dist/core/__tests__/prune-to-limit.test.js +0 -126
- package/dist/core/__tests__/reset.test.d.ts +0 -1
- package/dist/core/__tests__/reset.test.js +0 -69
- package/dist/core/__tests__/spawn-no-kickoff.test.d.ts +0 -1
- package/dist/core/__tests__/spawn-no-kickoff.test.js +0 -115
- package/dist/core/__tests__/steer-note.test.d.ts +0 -1
- package/dist/core/__tests__/steer-note.test.js +0 -41
- package/dist/core/__tests__/subcommand-tier.test.d.ts +0 -1
- package/dist/core/__tests__/subcommand-tier.test.js +0 -99
- package/dist/core/__tests__/subscription-delivery.test.js +0 -211
- package/dist/core/__tests__/test-runner-cheap-sharding.test.d.ts +0 -1
- package/dist/core/__tests__/test-runner-cheap-sharding.test.js +0 -97
- package/dist/core/__tests__/tmux-surface.test.js +0 -484
- package/dist/core/__tests__/wake-bearings.test.d.ts +0 -1
- package/dist/core/__tests__/wake-bearings.test.js +0 -102
- package/dist/core/canvas/__tests__/remote-event-stream.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/remote-event-stream.test.js +0 -146
- package/dist/core/canvas/__tests__/source-resolve.test.d.ts +0 -1
- package/dist/core/canvas/__tests__/source-resolve.test.js +0 -77
- package/dist/core/canvas/browse/__tests__/model.test.d.ts +0 -1
- package/dist/core/canvas/browse/__tests__/model.test.js +0 -290
- package/dist/core/canvas/browse/__tests__/rebuild-coalescer.test.d.ts +0 -1
- package/dist/core/canvas/browse/__tests__/rebuild-coalescer.test.js +0 -134
- package/dist/core/canvas/browse/__tests__/render.test.d.ts +0 -1
- package/dist/core/canvas/browse/__tests__/render.test.js +0 -111
- package/dist/core/canvas/browse/rebuild-coalescer.d.ts +0 -7
- package/dist/core/canvas/browse/rebuild-coalescer.js +0 -61
- package/dist/core/canvas/remote-event-stream.d.ts +0 -24
- package/dist/core/canvas/remote-event-stream.js +0 -94
- package/dist/core/feed/__tests__/coalesce-human.test.d.ts +0 -1
- package/dist/core/feed/__tests__/coalesce-human.test.js +0 -36
- package/dist/core/feed/__tests__/empty-node-guard.test.d.ts +0 -1
- package/dist/core/feed/__tests__/empty-node-guard.test.js +0 -45
- package/dist/core/host-exports/__tests__/export-prunes-boot-skill.test.d.ts +0 -1
- package/dist/core/host-exports/__tests__/export-prunes-boot-skill.test.js +0 -84
- package/dist/core/human/__tests__/visible-paths.test.d.ts +0 -1
- package/dist/core/human/__tests__/visible-paths.test.js +0 -28
- package/dist/core/keybindings/__tests__/inbox-affordance.test.d.ts +0 -1
- package/dist/core/keybindings/__tests__/inbox-affordance.test.js +0 -38
- package/dist/core/review/__tests__/project.test.d.ts +0 -1
- package/dist/core/review/__tests__/project.test.js +0 -71
- package/dist/core/runtime/__tests__/command-expansion.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/command-expansion.test.js +0 -25
- package/dist/core/runtime/__tests__/session-visibility.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/session-visibility.test.js +0 -119
- package/dist/core/runtime/__tests__/spawn-at-given-id.test.d.ts +0 -1
- package/dist/core/runtime/__tests__/spawn-at-given-id.test.js +0 -34
- package/dist/core/runtime/tmux.js +0 -1314
- package/dist/daemon/api/__tests__/full/push-parity.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/full/worktree-parity.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/full/worktree-parity.test.js +0 -160
- package/dist/daemon/api/__tests__/inbox.test.d.ts +0 -1
- package/dist/daemon/api/__tests__/inbox.test.js +0 -489
- package/dist/web-client/apple-touch-icon.png +0 -0
- package/dist/web-client/assets/fragment-mono-latin-400-normal-BYwT3kSJ.woff +0 -0
- package/dist/web-client/assets/fragment-mono-latin-400-normal-yxdJ5AmL.woff2 +0 -0
- package/dist/web-client/assets/fragment-mono-latin-ext-400-normal-BbKYyvR9.woff2 +0 -0
- package/dist/web-client/assets/fragment-mono-latin-ext-400-normal-CT4YFKeK.woff +0 -0
- package/dist/web-client/assets/index-CCPaLeW7.css +0 -2
- package/dist/web-client/assets/index-kyOWsnZK.js +0 -86
- package/dist/web-client/assets/martian-mono-cyrillic-wght-normal-B84CD5C_.woff2 +0 -0
- package/dist/web-client/assets/martian-mono-latin-ext-wght-normal-DlL6xMw5.woff2 +0 -0
- package/dist/web-client/assets/martian-mono-latin-wght-normal-5W32yIyr.woff2 +0 -0
- package/dist/web-client/assets/workbox-window.prod.es5-Bd17z0YL.js +0 -2
- package/dist/web-client/icon-192.png +0 -0
- package/dist/web-client/icon-512.png +0 -0
- package/dist/web-client/icon-maskable-512.png +0 -0
- package/dist/web-client/index.html +0 -17
- package/dist/web-client/manifest.webmanifest +0 -1
- package/dist/web-client/sw.js +0 -1
- /package/dist/api/__tests__/{client.test.d.ts → serial/client.test.d.ts} +0 -0
- /package/dist/clients/inbox/__tests__/{inbox-controller.test.d.ts → serial/inbox-controller.test.d.ts} +0 -0
- /package/dist/clients/inbox/__tests__/{mount-panel.test.d.ts → serial/mount-panel.test.d.ts} +0 -0
- /package/dist/clients/{attach/__tests__/attach-chrome-remote.test.d.ts → inbox/review/__tests__/teardown-notice.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/attach-keybindings.test.d.ts → core/__tests__/broker-extension-canvas-db-boundary.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/crtr-output-coverage.test.d.ts → core/__tests__/seam/broker-attach-multiclient.test.d.ts} +0 -0
- /package/dist/core/__tests__/{full → seam}/broker-attach-stream.test.d.ts +0 -0
- /package/dist/core/__tests__/{full → seam}/broker-crash-teardown.test.d.ts +0 -0
- /package/dist/core/__tests__/{full → seam}/broker-pane-resolution.test.d.ts +0 -0
- /package/dist/core/__tests__/{full → seam}/broker-provider-retry.test.d.ts +0 -0
- /package/dist/core/__tests__/{full → seam}/broker-whip-interrupt.test.d.ts +0 -0
- /package/dist/{clients/attach/__tests__/editor-frame-title.test.d.ts → core/__tests__/seam/dormancy-release.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/input-controller-extension-command.test.d.ts → core/__tests__/seam/yield-refresh-transaction.test.d.ts} +0 -0
- /package/dist/core/__tests__/{broker-fork-seam.test.d.ts → serial/broker-fork-seam.test.d.ts} +0 -0
- /package/dist/core/__tests__/{broker-sdk-wiring.test.d.ts → serial/broker-sdk-wiring.test.d.ts} +0 -0
- /package/dist/core/__tests__/{broker-snapshot-history.test.d.ts → serial/broker-snapshot-history.test.d.ts} +0 -0
- /package/dist/core/__tests__/{command-plugins.test.d.ts → serial/command-plugins.test.d.ts} +0 -0
- /package/dist/core/__tests__/{deferred-no-wake.test.d.ts → serial/deferred-no-wake.test.d.ts} +0 -0
- /package/dist/core/__tests__/{flagship-lifecycle.test.d.ts → serial/flagship-lifecycle.test.d.ts} +0 -0
- /package/dist/core/__tests__/{host-teardown-process-group.test.d.ts → serial/host-teardown-process-group.test.d.ts} +0 -0
- /package/dist/core/__tests__/{human-deliver-e2e.test.d.ts → serial/human-deliver-e2e.test.d.ts} +0 -0
- /package/dist/core/__tests__/{live-mutation.test.d.ts → serial/live-mutation.test.d.ts} +0 -0
- /package/dist/core/__tests__/{refresh-stall-recycle.test.d.ts → serial/refresh-stall-recycle.test.d.ts} +0 -0
- /package/dist/core/__tests__/{revive.test.d.ts → serial/revive.test.d.ts} +0 -0
- /package/dist/core/__tests__/{spawn-root.test.d.ts → serial/spawn-root.test.d.ts} +0 -0
- /package/dist/core/__tests__/{subscription-delivery.test.d.ts → serial/subscription-delivery.test.d.ts} +0 -0
- /package/dist/core/__tests__/{tmux-surface.test.d.ts → serial/tmux-surface.test.d.ts} +0 -0
- /package/dist/core/__tests__/{worktree.test.d.ts → serial/worktree.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/markdown-headings.test.d.ts → core/__tests__/watchdog-abort-arms-retry.test.d.ts} +0 -0
- /package/dist/{clients/attach/__tests__/session-identity-refresh.test.d.ts → core/broker-client/__tests__/transport-socket.test.d.ts} +0 -0
- /package/dist/core/human/__tests__/{inbox-core.test.d.ts → serial/inbox-core.test.d.ts} +0 -0
- /package/dist/{clients/inbox/review/__tests__/remap.test.d.ts → daemon/api/__tests__/node-model-validation.test.d.ts} +0 -0
- /package/dist/{clients/surfaces/region.js → daemon/api/__tests__/review-terminal-conflict.test.d.ts} +0 -0
- /package/dist/daemon/api/__tests__/{full → seam}/api-server.test.d.ts +0 -0
- /package/dist/daemon/api/__tests__/{full → seam}/b10-attach-modelauth.test.d.ts +0 -0
- /package/dist/{clients/web/__tests__/push-engine.test.d.ts → daemon/api/__tests__/seam/leaf-api-parity.test.d.ts} +0 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
// canvas-structured-output.ts — dynamic `submit` tool for schema-shaped node results.
|
|
2
2
|
//
|
|
3
|
-
// Loaded into every canvas node. Inert unless nodes/<id>/output-schema.json exists
|
|
3
|
+
// Loaded into every canvas node. Inert unless nodes/<id>/output-schema.json exists
|
|
4
|
+
// and is valid. If the request file is malformed, the tool is not registered — the
|
|
5
|
+
// stop-guard will reprompt the node with an explicit error about the invalid file.
|
|
4
6
|
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
5
7
|
import { dirname } from 'node:path';
|
|
6
|
-
import {
|
|
8
|
+
import { emitEvent } from '../core/events/emit.js';
|
|
9
|
+
import { publishBrokerReport } from '../core/runtime/broker/daemon-ops.js';
|
|
7
10
|
import { outputResultPath, readOutputRequest, removeOutputSchema, } from '../core/runtime/structured-output.js';
|
|
8
11
|
function reportBody(resultPath, json) {
|
|
9
12
|
return `Structured output submitted.\n\nResult path: ${resultPath}\n\n\`\`\`json\n${json}\n\`\`\`\n`;
|
|
@@ -84,14 +87,26 @@ export function registerCanvasStructuredOutput(pi) {
|
|
|
84
87
|
let registeredKey = null;
|
|
85
88
|
let active = false;
|
|
86
89
|
const ensureSubmitTool = (activate) => {
|
|
87
|
-
const
|
|
88
|
-
|
|
90
|
+
const state = readOutputRequest(nodeId);
|
|
91
|
+
// If no request exists, retire the tool if it was active.
|
|
92
|
+
if (state.state === 'absent') {
|
|
89
93
|
if (active) {
|
|
90
94
|
active = false;
|
|
91
95
|
retireTool(pi);
|
|
92
96
|
}
|
|
93
97
|
return;
|
|
94
98
|
}
|
|
99
|
+
// If the request is invalid, do not register or activate the tool.
|
|
100
|
+
// The stop-guard will reprompt with an explicit error message.
|
|
101
|
+
if (state.state === 'invalid') {
|
|
102
|
+
if (active) {
|
|
103
|
+
active = false;
|
|
104
|
+
retireTool(pi);
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// The request is valid; proceed with tool registration and activation.
|
|
109
|
+
const request = state.request;
|
|
95
110
|
const key = JSON.stringify(request);
|
|
96
111
|
if (registeredKey !== key) {
|
|
97
112
|
pi.registerTool({
|
|
@@ -117,13 +132,19 @@ export function registerCanvasStructuredOutput(pi) {
|
|
|
117
132
|
constrainedSampling: { type: 'json_schema', strict: 'prefer' },
|
|
118
133
|
async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
|
|
119
134
|
const current = readOutputRequest(nodeId);
|
|
120
|
-
if (current ===
|
|
135
|
+
if (current.state === 'absent') {
|
|
121
136
|
return {
|
|
122
137
|
content: [{ type: 'text', text: 'No structured output is currently requested.' }],
|
|
123
138
|
details: { submitted: false, reason: 'no_request' },
|
|
124
139
|
};
|
|
125
140
|
}
|
|
126
|
-
if (
|
|
141
|
+
if (current.state === 'invalid') {
|
|
142
|
+
return {
|
|
143
|
+
content: [{ type: 'text', text: `Structured-output request is invalid: ${current.error}` }],
|
|
144
|
+
details: { submitted: false, reason: 'invalid_request', error: current.error },
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (JSON.stringify(current.request) !== key) {
|
|
127
148
|
registeredKey = null;
|
|
128
149
|
ensureSubmitTool(true);
|
|
129
150
|
return {
|
|
@@ -131,20 +152,31 @@ export function registerCanvasStructuredOutput(pi) {
|
|
|
131
152
|
details: { submitted: false, reason: 'schema_replaced' },
|
|
132
153
|
};
|
|
133
154
|
}
|
|
134
|
-
const result = omitStrictNulls(params, current.schema);
|
|
155
|
+
const result = omitStrictNulls(params, current.request.schema);
|
|
135
156
|
const resultPath = outputResultPath(nodeId);
|
|
136
157
|
const json = JSON.stringify(result, null, 2);
|
|
137
158
|
mkdirSync(dirname(resultPath), { recursive: true });
|
|
138
159
|
writeFileSync(resultPath, `${json}\n`, 'utf8');
|
|
139
160
|
const body = reportBody(resultPath, json);
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
161
|
+
try {
|
|
162
|
+
await publishBrokerReport(nodeId, {
|
|
163
|
+
tier: current.request.mode === 'terminal' ? 'final' : 'update',
|
|
164
|
+
body,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
// A rejected daemon operation leaves the schema active and does not
|
|
169
|
+
// terminate Pi, so the submitted result remains retryable.
|
|
170
|
+
emitEvent({
|
|
171
|
+
event: 'broker.daemon.operation.failed',
|
|
172
|
+
level: 'error',
|
|
173
|
+
node_id: nodeId,
|
|
174
|
+
error,
|
|
175
|
+
fields: { operation: 'structured_output_report' },
|
|
176
|
+
});
|
|
177
|
+
throw error;
|
|
178
|
+
}
|
|
179
|
+
if (current.request.mode === 'terminal') {
|
|
148
180
|
removeOutputSchema(nodeId);
|
|
149
181
|
active = false;
|
|
150
182
|
retireTool(pi);
|
|
@@ -158,17 +190,16 @@ export function registerCanvasStructuredOutput(pi) {
|
|
|
158
190
|
catch { /* ignore */ }
|
|
159
191
|
return {
|
|
160
192
|
content: [{ type: 'text', text: `Structured output submitted and finalized: ${resultPath}` }],
|
|
161
|
-
details: { submitted: true, mode: current.mode, resultPath, result },
|
|
193
|
+
details: { submitted: true, mode: current.request.mode, resultPath, result },
|
|
162
194
|
terminate: true,
|
|
163
195
|
};
|
|
164
196
|
}
|
|
165
|
-
await pushUpdate(nodeId, body);
|
|
166
197
|
removeOutputSchema(nodeId);
|
|
167
198
|
active = false;
|
|
168
199
|
retireTool(pi);
|
|
169
200
|
return {
|
|
170
201
|
content: [{ type: 'text', text: `Structured output submitted: ${resultPath}` }],
|
|
171
|
-
details: { submitted: true, mode: current.mode, resultPath, result },
|
|
202
|
+
details: { submitted: true, mode: current.request.mode, resultPath, result },
|
|
172
203
|
};
|
|
173
204
|
},
|
|
174
205
|
});
|
|
@@ -179,21 +210,12 @@ export function registerCanvasStructuredOutput(pi) {
|
|
|
179
210
|
activateTool(pi);
|
|
180
211
|
}
|
|
181
212
|
};
|
|
182
|
-
|
|
183
|
-
ensureSubmitTool(false);
|
|
184
|
-
}
|
|
185
|
-
catch { /* malformed files are enforced by the stop-guard */ }
|
|
213
|
+
ensureSubmitTool(false);
|
|
186
214
|
pi.on('before_agent_start', () => {
|
|
187
|
-
|
|
188
|
-
ensureSubmitTool(true);
|
|
189
|
-
}
|
|
190
|
-
catch { /* keep the node alive; stop-guard will reprompt */ }
|
|
215
|
+
ensureSubmitTool(true);
|
|
191
216
|
});
|
|
192
217
|
pi.on('agent_start', () => {
|
|
193
|
-
|
|
194
|
-
ensureSubmitTool(true);
|
|
195
|
-
}
|
|
196
|
-
catch { /* keep the node alive; stop-guard will reprompt */ }
|
|
218
|
+
ensureSubmitTool(true);
|
|
197
219
|
});
|
|
198
220
|
}
|
|
199
221
|
export default registerCanvasStructuredOutput;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type ContentBlock = {
|
|
2
|
+
type: string;
|
|
3
|
+
text?: string;
|
|
4
|
+
};
|
|
5
|
+
type TextBlock = {
|
|
6
|
+
type: 'text';
|
|
7
|
+
text: string;
|
|
8
|
+
};
|
|
9
|
+
/** Return the normalized contents of an auto-loaded-context envelope. */
|
|
10
|
+
export declare function autoLoadedContextInner(text: string): string | null;
|
|
11
|
+
/** Merge fresh items into the one auto-loaded-context envelope in a tool result. */
|
|
12
|
+
export declare function mergeAutoLoadedContext<T extends ContentBlock>(items: readonly string[], content: T[]): Array<T | TextBlock>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const AUTO_CONTEXT_RE = /<auto-loaded-context(?:\s[^>]*)?>\n([\s\S]*?)\n<\/auto-loaded-context>/;
|
|
2
|
+
/** Return the normalized contents of an auto-loaded-context envelope. */
|
|
3
|
+
export function autoLoadedContextInner(text) {
|
|
4
|
+
const inner = text.match(AUTO_CONTEXT_RE)?.[1]?.trim();
|
|
5
|
+
return inner === undefined || inner === '' ? null : inner;
|
|
6
|
+
}
|
|
7
|
+
/** Merge fresh items into the one auto-loaded-context envelope in a tool result. */
|
|
8
|
+
export function mergeAutoLoadedContext(items, content) {
|
|
9
|
+
const existingText = content.map((block) => block.text ?? '').join('\n');
|
|
10
|
+
const fresh = items.map((item) => item.trim()).filter((item) => item !== '' && !existingText.includes(item));
|
|
11
|
+
if (fresh.length === 0)
|
|
12
|
+
return content;
|
|
13
|
+
const inner = fresh.join('\n');
|
|
14
|
+
const existingIdx = content.findIndex((block) => typeof block.text === 'string' && AUTO_CONTEXT_RE.test(block.text));
|
|
15
|
+
if (existingIdx === -1) {
|
|
16
|
+
return [{ type: 'text', text: `<auto-loaded-context>\n${inner}\n</auto-loaded-context>` }, ...content];
|
|
17
|
+
}
|
|
18
|
+
return content.map((block, idx) => {
|
|
19
|
+
if (idx !== existingIdx || typeof block.text !== 'string')
|
|
20
|
+
return block;
|
|
21
|
+
return {
|
|
22
|
+
...block,
|
|
23
|
+
text: block.text.replace(AUTO_CONTEXT_RE, (_whole, current) => {
|
|
24
|
+
const existing = current.trim();
|
|
25
|
+
return `<auto-loaded-context>\n${inner}${existing === '' ? '' : `\n${existing}`}\n</auto-loaded-context>`;
|
|
26
|
+
}),
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export declare const DEFAULT_WORKING_GERUND = "working";
|
|
2
|
+
export declare const DEFAULT_WORKING_GERUNDS: readonly ["thinking", "planning", "checking", "working"];
|
|
2
3
|
export declare const DEFAULT_WORKING_ACTIVITY = "Working...";
|
|
3
|
-
/** Keep only usable configured labels;
|
|
4
|
+
/** Keep only usable configured labels; malformed or empty lists fall back to working. */
|
|
4
5
|
export declare function normalizeWorkingGerunds(value: unknown): string[];
|
|
5
6
|
/** Format one configured gerund as the activity label shown by every viewer. */
|
|
6
7
|
export declare function formatWorkingActivity(gerund: unknown): string;
|
|
7
|
-
/** Pick one configured gerund
|
|
8
|
+
/** Pick one configured gerund when the broker receives a user message. */
|
|
8
9
|
export declare function randomWorkingActivity(value: unknown, random?: () => number): string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export const DEFAULT_WORKING_GERUND = 'working';
|
|
2
|
+
export const DEFAULT_WORKING_GERUNDS = ['thinking', 'planning', 'checking', DEFAULT_WORKING_GERUND];
|
|
2
3
|
export const DEFAULT_WORKING_ACTIVITY = 'Working...';
|
|
3
|
-
/** Keep only usable configured labels;
|
|
4
|
+
/** Keep only usable configured labels; malformed or empty lists fall back to working. */
|
|
4
5
|
export function normalizeWorkingGerunds(value) {
|
|
5
6
|
if (!Array.isArray(value))
|
|
6
7
|
return [DEFAULT_WORKING_GERUND];
|
|
@@ -15,7 +16,7 @@ export function formatWorkingActivity(gerund) {
|
|
|
15
16
|
const normalized = normalizeWorkingGerunds([gerund])[0] ?? DEFAULT_WORKING_GERUND;
|
|
16
17
|
return `${normalized[0].toUpperCase()}${normalized.slice(1)}...`;
|
|
17
18
|
}
|
|
18
|
-
/** Pick one configured gerund
|
|
19
|
+
/** Pick one configured gerund when the broker receives a user message. */
|
|
19
20
|
export function randomWorkingActivity(value, random = Math.random) {
|
|
20
21
|
const gerunds = normalizeWorkingGerunds(value);
|
|
21
22
|
const draw = random();
|
package/dist/types.d.ts
CHANGED
|
@@ -166,8 +166,9 @@ export interface ScopeConfig {
|
|
|
166
166
|
* node with no viewer attached is silent regardless. Default true. */
|
|
167
167
|
completion_bell: boolean;
|
|
168
168
|
/** Gerunds used for the live turn activity label. A new entry is selected at
|
|
169
|
-
* random
|
|
170
|
-
* Missing
|
|
169
|
+
* random for each received user message and rendered as, for example,
|
|
170
|
+
* `Thinking...`. Missing configuration uses the built-in rotation; malformed
|
|
171
|
+
* or empty lists fall back to `['working']`. */
|
|
171
172
|
working_gerunds: string[];
|
|
172
173
|
/** Play the whip header animation whenever the human sends a prompt, and once
|
|
173
174
|
* when an automatically opened managed-child viewer starts. Default false. */
|
|
@@ -223,9 +224,9 @@ export interface ScopeConfig {
|
|
|
223
224
|
* entries at the same scope precedence as the rest of `ScopeConfig`. */
|
|
224
225
|
kinds: Record<string, KindConfig>;
|
|
225
226
|
/** Named remote-canvas targets for `crtr surface attach to <id> --canvas
|
|
226
|
-
* <name
|
|
227
|
-
*
|
|
228
|
-
*
|
|
227
|
+
* <name>` and `crtr node inspect list/show --canvas <name>` — registered/
|
|
228
|
+
* managed via `crtr canvas config add/list/show/remove` and selected durably
|
|
229
|
+
* via `crtr canvas use`. Unset
|
|
229
230
|
* via `sys config set` — not in `TOP_LEVEL_KEYS`. */
|
|
230
231
|
remoteCanvas: RemoteCanvasConfig;
|
|
231
232
|
/** Extra env-var names/globs a scope explicitly admits across the broker
|
package/dist/types.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DEFAULT_WORKING_GERUNDS } from './shared/working-activity.js';
|
|
2
2
|
export const ExitCode = {
|
|
3
3
|
SUCCESS: 0,
|
|
4
4
|
GENERAL: 1,
|
|
@@ -76,7 +76,7 @@ export function defaultScopeConfig() {
|
|
|
76
76
|
auto_open_child_viewers: true,
|
|
77
77
|
brokerThresholds: { warning: 128, automaticReviveCap: 256 },
|
|
78
78
|
completion_bell: true,
|
|
79
|
-
working_gerunds: [
|
|
79
|
+
working_gerunds: [...DEFAULT_WORKING_GERUNDS],
|
|
80
80
|
whip_mode: false,
|
|
81
81
|
whip_messages: [...DEFAULT_WHIP_MESSAGES],
|
|
82
82
|
mouse_mode_default: 'tmux',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Hearth ↔ crtr runtime compatibility — v1 (retired)
|
|
2
2
|
|
|
3
|
-
This is the historical v1 contract for an external product (originally: `@crouton-kit/hearth`) that pinned a crtr package version. It ended at the node-and-surface hard cut: current crtr removes `crtr node msg`, so do not run this document's v1 command examples against a current install. Migrate consumers to [v2](hearth-crtr-v2.md), which records the replacement contract.
|
|
3
|
+
This is the historical v1 contract for an external product (originally: `@crouton-kit/hearth`) that pinned a crtr package version. It ended at the node-and-surface hard cut: current crtr removes `crtr node msg`, so do not run this document's v1 command examples against a current install. Migrate consumers to [v2](hearth-crtr-v2.md), which records the replacement contract. The retired developer web surface is not part of this document's current compatibility promise.
|
|
4
4
|
|
|
5
5
|
## 1. Import contract
|
|
6
6
|
|
|
@@ -65,17 +65,9 @@ call; if a caller needs to know the target acted on the message, that is a
|
|
|
65
65
|
separate, out-of-band observation (e.g. polling node status or waiting for
|
|
66
66
|
the target to message back), not a guarantee `node msg` makes.
|
|
67
67
|
|
|
68
|
-
## 4.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
unified web server (shell SPA, source/command bridge, SSE change lane, and
|
|
72
|
-
the browser⇄broker relay) bound to loopback on a private port chosen by the
|
|
73
|
-
guest. This is a **private, unauthenticated-by-default loopback surface** —
|
|
74
|
-
binding a non-loopback host requires `--token`; a consumer that fronts this
|
|
75
|
-
port (reverse-proxying non-model-auth or non-product traffic to it) is
|
|
76
|
-
responsible for whatever auth gate sits in front of the public listener. crtr
|
|
77
|
-
itself makes no claim about what proxies to this port or how; it only
|
|
78
|
-
guarantees the port serves the crtr web UI when bound.
|
|
68
|
+
## 4. Retired web surface
|
|
69
|
+
|
|
70
|
+
Current crtr provides no developer web server or in-guest web port. This historical v1 compatibility document does not promise either surface.
|
|
79
71
|
|
|
80
72
|
## 5. Broker `view.sock` — the `reload_auth` subset
|
|
81
73
|
|
|
@@ -64,17 +64,9 @@ call; if a caller needs to know the target acted on the message, that is a
|
|
|
64
64
|
separate, out-of-band observation (e.g. polling node status or waiting for
|
|
65
65
|
the target to message back), not a guarantee `node message send` makes.
|
|
66
66
|
|
|
67
|
-
## 4.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
unified web server (shell SPA, source/command bridge, SSE change lane, and
|
|
71
|
-
the browser⇄broker relay) bound to loopback on a private port chosen by the
|
|
72
|
-
guest. This is a **private, unauthenticated-by-default loopback surface** —
|
|
73
|
-
binding a non-loopback host requires `--token`; a consumer that fronts this
|
|
74
|
-
port (reverse-proxying non-model-auth or non-product traffic to it) is
|
|
75
|
-
responsible for whatever auth gate sits in front of the public listener. crtr
|
|
76
|
-
itself makes no claim about what proxies to this port or how; it only
|
|
77
|
-
guarantees the port serves the crtr web UI when bound.
|
|
67
|
+
## 4. Retired web surface
|
|
68
|
+
|
|
69
|
+
Current crtr provides no developer web server or in-guest web port. This historical v2 compatibility document does not promise either surface.
|
|
78
70
|
|
|
79
71
|
## 5. Broker `view.sock` — the `reload_auth` subset
|
|
80
72
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Hearth ↔ crtr runtime compatibility — v3 (retired)
|
|
2
2
|
|
|
3
|
-
This is the historical v3 contract for an external product (originally: `@crouton-kit/hearth`) that pinned a crtr package version. It ended at the trigger→cron hard cut: current crtr removes the entire `node trigger` command family (`node trigger send`, `node trigger revive`, and every other trigger leaf) along with the `triggers` canvas table, so do not run this document's `node trigger` examples against a current install — they now fail with `unknown subcommand`. Migrate consumers to [v4](hearth-crtr-v4.md), which records the replacement contract built on `crtr cron`.
|
|
3
|
+
This is the historical v3 contract for an external product (originally: `@crouton-kit/hearth`) that pinned a crtr package version. It ended at the trigger→cron hard cut: current crtr removes the entire `node trigger` command family (`node trigger send`, `node trigger revive`, and every other trigger leaf) along with the `triggers` canvas table, so do not run this document's `node trigger` examples against a current install — they now fail with `unknown subcommand`. Migrate consumers to [v4](hearth-crtr-v4.md), which records the replacement contract built on `crtr cron`. The retired developer web surface is not part of this document's current compatibility promise.
|
|
4
4
|
|
|
5
5
|
## Status and migration from v2
|
|
6
6
|
|
|
@@ -64,17 +64,9 @@ call; if a caller needs to know the target acted on the message, that is a
|
|
|
64
64
|
separate, out-of-band observation (e.g. polling node status or waiting for
|
|
65
65
|
the target to message back), not a guarantee `node message send` makes.
|
|
66
66
|
|
|
67
|
-
## 4.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
unified web server (shell SPA, source/command bridge, SSE change lane, and
|
|
71
|
-
the browser⇄broker relay) bound to loopback on a private port chosen by the
|
|
72
|
-
guest. This is a **private, unauthenticated-by-default loopback surface** —
|
|
73
|
-
binding a non-loopback host requires `--token`; a consumer that fronts this
|
|
74
|
-
port (reverse-proxying non-model-auth or non-product traffic to it) is
|
|
75
|
-
responsible for whatever auth gate sits in front of the public listener. crtr
|
|
76
|
-
itself makes no claim about what proxies to this port or how; it only
|
|
77
|
-
guarantees the port serves the crtr web UI when bound.
|
|
67
|
+
## 4. Retired web surface
|
|
68
|
+
|
|
69
|
+
Current crtr provides no developer web server or in-guest web port. This historical v3 compatibility document does not promise either surface.
|
|
78
70
|
|
|
79
71
|
## 5. Broker `view.sock` — the `reload_auth` subset
|
|
80
72
|
|
|
@@ -70,17 +70,9 @@ call; if a caller needs to know the target acted on the message, that is a
|
|
|
70
70
|
separate, out-of-band observation (e.g. polling node status or waiting for
|
|
71
71
|
the target to message back), not a guarantee `node message send` makes.
|
|
72
72
|
|
|
73
|
-
## 4.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
unified web server (shell SPA, source/command bridge, SSE change lane, and
|
|
77
|
-
the browser⇄broker relay) bound to loopback on a private port chosen by the
|
|
78
|
-
guest. This is a **private, unauthenticated-by-default loopback surface** —
|
|
79
|
-
binding a non-loopback host requires `--token`; a consumer that fronts this
|
|
80
|
-
port (reverse-proxying non-model-auth or non-product traffic to it) is
|
|
81
|
-
responsible for whatever auth gate sits in front of the public listener. crtr
|
|
82
|
-
itself makes no claim about what proxies to this port or how; it only
|
|
83
|
-
guarantees the port serves the crtr web UI when bound.
|
|
73
|
+
## 4. Retired web surface
|
|
74
|
+
|
|
75
|
+
Current crtr provides no developer web server or in-guest web port. This historical v4 compatibility document does not promise either surface.
|
|
84
76
|
|
|
85
77
|
## 5. Broker `view.sock` — the `reload_auth` subset
|
|
86
78
|
|
|
@@ -68,17 +68,9 @@ call; if a caller needs to know the target acted on the message, that is a
|
|
|
68
68
|
separate, out-of-band observation (e.g. polling node status or waiting for
|
|
69
69
|
the target to message back), not a guarantee `node message send` makes.
|
|
70
70
|
|
|
71
|
-
## 4.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
unified web server (shell SPA, source/command bridge, SSE change lane, and
|
|
75
|
-
the browser⇄broker relay) bound to loopback on a private port chosen by the
|
|
76
|
-
guest. This is a **private, unauthenticated-by-default loopback surface** —
|
|
77
|
-
binding a non-loopback host requires `--token`; a consumer that fronts this
|
|
78
|
-
port (reverse-proxying non-model-auth or non-product traffic to it) is
|
|
79
|
-
responsible for whatever auth gate sits in front of the public listener. crtr
|
|
80
|
-
itself makes no claim about what proxies to this port or how; it only
|
|
81
|
-
guarantees the port serves the crtr web UI when bound.
|
|
71
|
+
## 4. Retired web surface
|
|
72
|
+
|
|
73
|
+
Current crtr provides no developer web server or in-guest web port. This v5 compatibility contract does not promise either surface.
|
|
82
74
|
|
|
83
75
|
## 5. Broker `view.sock` — the `reload_auth` subset
|
|
84
76
|
|
package/docs/public-api.md
CHANGED
|
@@ -54,10 +54,6 @@ comment-organized); this table is the map, not the inventory:
|
|
|
54
54
|
|
|
55
55
|
## What is NOT public
|
|
56
56
|
|
|
57
|
-
- `startWebServer` / `RunningWebServer` (`src/clients/web/server.ts`) are
|
|
58
|
-
**not exported** and are not part of the public API. A consumer that needs
|
|
59
|
-
an HTTP front for guest/remote use cases builds its own process; it does
|
|
60
|
-
not import crtr's web server.
|
|
61
57
|
- Anything under `src/commands/`, `src/daemon/`, `src/core/canvas/*` (writer
|
|
62
58
|
paths), or any file not reachable from one of the three barrels above.
|
|
63
59
|
- Deep imports (`@north-light/crouter/dist/...`, `@north-light/crouter/src/...`)
|
|
@@ -68,9 +64,9 @@ comment-organized); this table is the map, not the inventory:
|
|
|
68
64
|
|
|
69
65
|
A consumer that runs alongside crtr (a separate process, a separate repo)
|
|
70
66
|
also has a CLI/socket/schema surface to depend on instead of an import.
|
|
71
|
-
That contract — `crtr sys version`, `crtr node message send`, the
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
That contract — `crtr sys version`, `crtr node message send`, the broker
|
|
68
|
+
`view.sock` `reload_auth` subset, and the canvas.db byte-shape — is documented
|
|
69
|
+
separately and versioned: see `docs/compat/hearth-crtr-v5.md`.
|
|
74
70
|
|
|
75
71
|
## Packaging
|
|
76
72
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@north-light/crouter",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.174",
|
|
4
4
|
"description": "crtr — agent runtime with memory, plugins, and marketplaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -60,7 +60,6 @@
|
|
|
60
60
|
"files": [
|
|
61
61
|
"dist",
|
|
62
62
|
"bin",
|
|
63
|
-
"!bin/__tests__",
|
|
64
63
|
"docs",
|
|
65
64
|
"scripts/postinstall.mjs",
|
|
66
65
|
"scripts/patch-pi-tree-root-ordering.mjs",
|
|
@@ -73,8 +72,7 @@
|
|
|
73
72
|
"build": "node scripts/build.mjs",
|
|
74
73
|
"build:api": "tsc -p packages/crouter-api/tsconfig.json",
|
|
75
74
|
"typecheck:pi-packages": "npx tsc -p src/builtin-pi-packages/pi-crtr-extensions/tsconfig.json",
|
|
76
|
-
"test:build-output": "node scripts/test
|
|
77
|
-
"lint:web-px": "node scripts/lint-web-px.mjs",
|
|
75
|
+
"test:build-output": "node scripts/build-concurrency-test.mjs",
|
|
78
76
|
"check:cli-no-canvas": "node scripts/check-cli-no-canvas.mjs",
|
|
79
77
|
"postinstall": "node scripts/postinstall.mjs",
|
|
80
78
|
"install-runtime": "node scripts/install-runtime.mjs",
|
|
@@ -83,12 +81,9 @@
|
|
|
83
81
|
"dev": "tsx --conditions=crtr-src src/cli.ts",
|
|
84
82
|
"link": "npm link",
|
|
85
83
|
"prepublishOnly": "npm run build",
|
|
86
|
-
"test": "node
|
|
87
|
-
"test:
|
|
88
|
-
"test:
|
|
89
|
-
"test:full:process": "node scripts/test-runner.mjs process",
|
|
90
|
-
"test:full:live": "node scripts/test-runner.mjs live",
|
|
91
|
-
"test:full:heavy": "node scripts/test-runner.mjs heavy"
|
|
84
|
+
"test": "node --conditions=crtr-src --import tsx/esm --test --test-concurrency=4 --test-timeout=10000 'src/**/__tests__/*.test.ts'",
|
|
85
|
+
"test:serial": "node --conditions=crtr-src --import tsx/esm --test --test-concurrency=1 --test-timeout=60000 'src/**/__tests__/serial/*.test.ts'",
|
|
86
|
+
"test:seam": "npm run build && node --test --test-concurrency=1 --test-timeout=180000 'dist/**/__tests__/seam/*.test.js'"
|
|
92
87
|
},
|
|
93
88
|
"overrides": {
|
|
94
89
|
"@earendil-works/pi-ai": "0.83.0",
|
|
@@ -108,57 +103,20 @@
|
|
|
108
103
|
"@earendil-works/pi-ai": "0.83.0",
|
|
109
104
|
"@earendil-works/pi-coding-agent": "0.83.0",
|
|
110
105
|
"@earendil-works/pi-tui": "0.83.0",
|
|
111
|
-
"@fontsource-variable/fraunces": "^5.2.9",
|
|
112
|
-
"@fontsource-variable/instrument-sans": "^5.2.8",
|
|
113
|
-
"@fontsource-variable/martian-mono": "^5.2.7",
|
|
114
|
-
"@fontsource/fragment-mono": "^5.2.8",
|
|
115
|
-
"@tailwindcss/typography": "^0.5.20",
|
|
116
|
-
"@tailwindcss/vite": "^4.3.2",
|
|
117
|
-
"@tanstack/react-virtual": "^3.13.0",
|
|
118
|
-
"@types/markdown-it": "^14.1.2",
|
|
119
|
-
"@vitejs/plugin-react": "^6.0.3",
|
|
120
|
-
"class-variance-authority": "^0.7.1",
|
|
121
|
-
"clsx": "^2.1.1",
|
|
122
106
|
"cron-parser": "^5.6.0",
|
|
123
|
-
"dompurify": "^3.2.3",
|
|
124
|
-
"highlight.js": "^11.11.1",
|
|
125
|
-
"lucide-react": "^0.469.0",
|
|
126
|
-
"markdown-it": "^14.1.0",
|
|
127
|
-
"mermaid": "^11.16.0",
|
|
128
107
|
"proper-lockfile": "4.1.2",
|
|
129
|
-
"radix-ui": "^1.6.2",
|
|
130
|
-
"react": "^19.2.7",
|
|
131
|
-
"react-markdown": "^10.1.0",
|
|
132
|
-
"react-dom": "^19.2.7",
|
|
133
|
-
"react-router-dom": "^7.1.1",
|
|
134
|
-
"rehype-highlight": "^7.0.2",
|
|
135
|
-
"remark-gfm": "^4.0.1",
|
|
136
|
-
"remark-parse": "^11.0.0",
|
|
137
108
|
"string-width": "^7.0.0",
|
|
138
|
-
"tailwind-merge": "^3.6.0",
|
|
139
|
-
"tailwindcss": "^4.3.2",
|
|
140
109
|
"tar": "^7.5.22",
|
|
141
|
-
"tw-animate-css": "^1.4.0",
|
|
142
|
-
"unified": "^11.0.5",
|
|
143
|
-
"vite": "^8.1.3",
|
|
144
|
-
"web-push": "^3.6.7",
|
|
145
110
|
"ws": "^8.21.0",
|
|
146
111
|
"yaml": "^2.9.0",
|
|
147
|
-
"zod": "^4.3.6"
|
|
148
|
-
"zustand": "^5.0.2"
|
|
112
|
+
"zod": "^4.3.6"
|
|
149
113
|
},
|
|
150
114
|
"devDependencies": {
|
|
151
115
|
"@types/node": "^24.0.0",
|
|
152
116
|
"@types/proper-lockfile": "^4.1.4",
|
|
153
|
-
"@types/react": "^19.2.17",
|
|
154
|
-
"@types/react-dom": "^19.2.3",
|
|
155
|
-
"@types/web-push": "^3.6.4",
|
|
156
117
|
"@types/ws": "^8.18.1",
|
|
157
118
|
"esbuild": "^0.27.7",
|
|
158
|
-
"jsdom": "^29.1.1",
|
|
159
|
-
"remark-rehype": "^11.1.0",
|
|
160
119
|
"tsx": "^4.0.0",
|
|
161
|
-
"typescript": "^5.7.0"
|
|
162
|
-
"vite-plugin-pwa": "^1.3.0"
|
|
120
|
+
"typescript": "^5.7.0"
|
|
163
121
|
}
|
|
164
122
|
}
|