@north-light/crouter 0.3.170 β 0.3.172
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/dist/api/client.d.ts +37 -11
- package/dist/api/client.js +84 -15
- package/dist/api/dto/human.d.ts +53 -39
- package/dist/api/dto/human.js +2 -3
- package/dist/api/dto/inbox.d.ts +0 -1
- package/dist/api/dto/nodes.d.ts +12 -0
- package/dist/api/dto/review-comments.d.ts +137 -0
- package/dist/api/dto/review-comments.js +5 -0
- package/dist/api/dto/reviews.d.ts +109 -0
- package/dist/api/dto/reviews.js +5 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +2 -0
- package/dist/api/routes.d.ts +17 -4
- package/dist/api/routes.js +21 -5
- package/dist/build-root.d.ts +1 -16
- package/dist/build-root.js +1 -25
- package/dist/builtin-memory/00-runtime-base.md +7 -5
- package/dist/builtin-memory/04-base-worker.md +1 -1
- package/dist/builtin-memory/04-orchestration-kernel.md +7 -7
- package/dist/builtin-memory/05-kinds/design/00-base.md +1 -1
- package/dist/builtin-memory/05-kinds/design/01-orchestrator.md +1 -1
- package/dist/builtin-memory/05-kinds/developer/00-base.md +1 -1
- package/dist/builtin-memory/05-kinds/explore/00-base.md +1 -1
- package/dist/builtin-memory/05-kinds/plan/00-base.md +1 -1
- package/dist/builtin-memory/05-kinds/plan/01-orchestrator.md +1 -1
- package/dist/builtin-memory/05-kinds/review/00-base.md +1 -1
- package/dist/builtin-memory/05-kinds/review/companion/00-base.md +20 -0
- package/dist/builtin-memory/05-kinds/spec/00-base.md +3 -7
- package/dist/builtin-memory/05-kinds/spec/01-orchestrator.md +3 -3
- package/dist/builtin-memory/05-kinds/spec/requirements.md +3 -3
- package/dist/builtin-memory/design.md +2 -2
- package/dist/builtin-memory/insights/capture.md +50 -0
- package/dist/builtin-memory/insights/init.md +45 -0
- package/dist/builtin-memory/insights/listen.md +9 -0
- package/dist/builtin-memory/internal/agent-shaping.md +2 -2
- package/dist/builtin-memory/internal/nodes-and-canvas.md +1 -1
- package/dist/builtin-memory/internal/plugins.md +12 -11
- package/dist/builtin-memory/internal/storage-tiers.md +2 -2
- package/dist/builtin-memory/{planning.md β plan/roadmap.md} +3 -3
- package/dist/builtin-memory/plan.md +19 -0
- package/dist/builtin-memory/spec/guide.md +38 -0
- package/dist/builtin-memory/spec/requirements.md +31 -0
- package/dist/builtin-memory/spec/roadmap.md +35 -0
- package/dist/builtin-memory/spec.md +10 -86
- package/dist/builtin-pi-packages/pi-crtr-extensions/README.md +3 -4
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/provider-rotation.test.ts +49 -5
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.d.ts +56 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.js +920 -0
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.ts +221 -156
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/statusline.ts +4 -5
- package/dist/cli.js +2 -6
- package/dist/clients/attach/__tests__/attach-chrome-remote.test.js +7 -35
- package/dist/clients/attach/__tests__/attach-keybindings.test.js +32 -16
- package/dist/clients/attach/__tests__/context-message.test.js +142 -6
- package/dist/clients/attach/__tests__/crtr-output.test.js +29 -45
- package/dist/clients/attach/__tests__/diagram.test.js +1 -1
- package/dist/clients/attach/__tests__/file-review-focus.test.js +48 -0
- package/dist/clients/attach/__tests__/group-activity.test.js +266 -0
- package/dist/clients/attach/__tests__/input-controller-extension-command.test.js +32 -0
- package/dist/clients/attach/__tests__/session-identity-refresh.test.js +32 -0
- package/dist/clients/attach/__tests__/titled-editor-preview.test.js +1 -2
- package/dist/clients/attach/chrome/header.d.ts +10 -0
- package/dist/clients/attach/chrome/header.js +30 -0
- package/dist/clients/attach/chrome/recap.d.ts +7 -0
- package/dist/clients/attach/chrome/recap.js +19 -0
- package/dist/clients/attach/chrome/status-line.d.ts +3 -0
- package/dist/clients/attach/chrome/status-line.js +5 -0
- package/dist/clients/attach/chrome/widgets.js +11 -21
- package/dist/clients/attach/command.js +11 -7
- package/dist/clients/attach/config.d.ts +4 -0
- package/dist/clients/attach/config.js +3 -0
- package/dist/clients/attach/input/controller.d.ts +19 -0
- package/dist/clients/attach/input/controller.js +62 -28
- package/dist/clients/attach/input/titled-editor.d.ts +0 -4
- package/dist/clients/attach/input/titled-editor.js +2 -10
- package/dist/clients/attach/overlays/file-review.d.ts +9 -5
- package/dist/clients/attach/overlays/file-review.js +9 -70
- package/dist/clients/attach/overlays/help.d.ts +33 -0
- package/dist/clients/attach/overlays/help.js +204 -0
- package/dist/clients/attach/render/activity-slot.d.ts +4 -0
- package/dist/clients/attach/render/activity-slot.js +13 -0
- package/dist/clients/attach/render/chat-view.d.ts +117 -12
- package/dist/clients/attach/render/chat-view.js +604 -135
- package/dist/clients/attach/render/context-message.d.ts +2 -1
- package/dist/clients/attach/render/context-message.js +17 -13
- package/dist/clients/attach/render/crtr-output.js +1 -3
- package/dist/clients/attach/render/diagram.js +2 -2
- package/dist/clients/attach/render/edit-diff.d.ts +4 -1
- package/dist/clients/attach/render/edit-diff.js +7 -11
- package/dist/clients/attach/render/group-activity.d.ts +32 -0
- package/dist/clients/attach/render/group-activity.js +206 -0
- package/dist/clients/attach/render/group-recap.d.ts +10 -0
- package/dist/clients/attach/render/group-recap.js +93 -0
- package/dist/clients/attach/render/html-markdown.d.ts +17 -0
- package/dist/clients/attach/render/html-markdown.js +228 -0
- package/dist/clients/attach/render/measured-container.d.ts +96 -0
- package/dist/clients/attach/render/measured-container.js +322 -0
- package/dist/clients/attach/render/scroll-animation.d.ts +8 -0
- package/dist/clients/attach/render/scroll-animation.js +80 -0
- package/dist/clients/attach/render/tool-calls.js +6 -6
- package/dist/clients/attach/render/transcript-copy.d.ts +9 -0
- package/dist/clients/attach/render/transcript-copy.js +81 -0
- package/dist/clients/attach/render/viewport.d.ts +29 -0
- package/dist/clients/attach/render/viewport.js +159 -0
- package/dist/clients/attach/session/bindings.d.ts +10 -7
- package/dist/clients/attach/session/bindings.js +23 -8
- package/dist/clients/attach/session/connection.js +4 -5
- package/dist/clients/attach/session/context.d.ts +6 -4
- package/dist/clients/attach/session/frame.d.ts +34 -0
- package/dist/clients/attach/session/frame.js +176 -0
- package/dist/clients/attach/session/frames.d.ts +4 -1
- package/dist/clients/attach/session/frames.js +14 -1
- package/dist/clients/attach/session/identity.js +4 -3
- package/dist/clients/attach/session/input-wiring.d.ts +14 -4
- package/dist/clients/attach/session/input-wiring.js +15 -13
- package/dist/clients/attach/session/invariant.d.ts +9 -0
- package/dist/clients/attach/session/invariant.js +15 -0
- package/dist/clients/attach/session/keys.d.ts +10 -2
- package/dist/clients/attach/session/keys.js +13 -5
- package/dist/clients/attach/session/layout.d.ts +10 -8
- package/dist/clients/attach/session/layout.js +33 -34
- package/dist/clients/attach/session/mouse.d.ts +18 -0
- package/dist/clients/attach/session/mouse.js +64 -0
- package/dist/clients/attach/session/pane-tag.d.ts +3 -0
- package/dist/clients/attach/session/pane-tag.js +51 -8
- package/dist/clients/attach/session/reconnect.d.ts +3 -0
- package/dist/clients/attach/session/reconnect.js +42 -5
- package/dist/clients/attach/session/surface-frame.d.ts +20 -0
- package/dist/clients/attach/session/surface-frame.js +73 -0
- package/dist/clients/attach/session/surface-host.d.ts +64 -0
- package/dist/clients/attach/session/surface-host.js +255 -0
- package/dist/clients/attach/session/whip.d.ts +17 -0
- package/dist/clients/attach/session/whip.js +334 -0
- package/dist/clients/attach/slash/dispatch.d.ts +13 -1
- package/dist/clients/attach/slash/dispatch.js +51 -29
- package/dist/clients/attach/viewer.js +907 -819
- package/dist/clients/conversation/conversation.d.ts +65 -0
- package/dist/clients/conversation/conversation.js +318 -0
- package/dist/clients/conversation/frames.d.ts +30 -0
- package/dist/clients/conversation/frames.js +52 -0
- package/dist/clients/conversation/region.d.ts +51 -0
- package/dist/clients/conversation/region.js +265 -0
- package/dist/clients/conversation/submit.d.ts +38 -0
- package/dist/clients/conversation/submit.js +51 -0
- package/dist/clients/inbox/__tests__/inbox-controller.test.js +247 -0
- package/dist/clients/inbox/__tests__/mount-panel.test.js +776 -0
- package/dist/clients/inbox/controller.d.ts +79 -0
- package/dist/clients/inbox/controller.js +448 -0
- package/dist/clients/inbox/deck-adapter.d.ts +29 -0
- package/dist/clients/inbox/deck-adapter.js +62 -0
- package/dist/clients/inbox/layout.d.ts +8 -0
- package/dist/clients/inbox/layout.js +9 -0
- package/dist/clients/inbox/resolve.d.ts +10 -0
- package/dist/clients/inbox/resolve.js +34 -0
- package/dist/clients/inbox/review/__tests__/editor-roundtrip.test.js +29 -0
- package/dist/clients/inbox/review/__tests__/remap.test.js +196 -0
- package/dist/clients/inbox/review/__tests__/review-core.test.js +341 -0
- package/dist/clients/inbox/review/anchors.d.ts +41 -0
- package/dist/clients/inbox/review/anchors.js +89 -0
- package/dist/clients/inbox/review/columns.d.ts +22 -0
- package/dist/clients/inbox/review/columns.js +40 -0
- package/dist/clients/inbox/review/comments-client.d.ts +66 -0
- package/dist/clients/inbox/review/comments-client.js +98 -0
- package/dist/clients/inbox/review/composition.d.ts +60 -0
- package/dist/clients/inbox/review/composition.js +278 -0
- package/dist/clients/inbox/review/document-region.d.ts +120 -0
- package/dist/clients/inbox/review/document-region.js +902 -0
- package/dist/clients/inbox/review/frame.d.ts +45 -0
- package/dist/clients/inbox/review/frame.js +215 -0
- package/dist/clients/inbox/review/keys.d.ts +67 -0
- package/dist/clients/inbox/review/keys.js +130 -0
- package/dist/clients/inbox/review/launch.d.ts +10 -0
- package/dist/clients/inbox/review/launch.js +129 -0
- package/dist/clients/inbox/review/live-source.d.ts +24 -0
- package/dist/clients/inbox/review/live-source.js +160 -0
- package/dist/clients/inbox/review/nvim.d.ts +13 -0
- package/dist/clients/inbox/review/nvim.js +42 -0
- package/dist/clients/inbox/review/remap.d.ts +51 -0
- package/dist/clients/inbox/review/remap.js +157 -0
- package/dist/clients/inbox/review/review-client.d.ts +30 -0
- package/dist/clients/inbox/review/review-client.js +107 -0
- package/dist/clients/inbox/review/roundtrip.d.ts +5 -0
- package/dist/clients/inbox/review/roundtrip.js +36 -0
- package/dist/clients/inbox/review/state.d.ts +143 -0
- package/dist/clients/inbox/review/state.js +282 -0
- package/dist/clients/inbox/review-adapter.d.ts +29 -0
- package/dist/clients/inbox/review-adapter.js +92 -0
- package/dist/clients/inbox/review-visibility.d.ts +5 -0
- package/dist/clients/inbox/review-visibility.js +19 -0
- package/dist/clients/inbox/surface.d.ts +19 -0
- package/dist/clients/inbox/surface.js +128 -0
- package/dist/clients/inbox/tui/ansi.d.ts +66 -0
- package/dist/clients/inbox/tui/ansi.js +317 -0
- package/dist/clients/inbox/tui/clipboard.d.ts +2 -0
- package/dist/clients/inbox/tui/clipboard.js +26 -0
- package/dist/clients/inbox/tui/input.d.ts +7 -0
- package/dist/clients/inbox/tui/input.js +653 -0
- package/dist/clients/inbox/tui/keys.d.ts +28 -0
- package/dist/clients/inbox/tui/keys.js +111 -0
- package/dist/clients/inbox/tui/panel.d.ts +2 -0
- package/dist/clients/inbox/tui/panel.js +217 -0
- package/dist/clients/inbox/tui/render.d.ts +37 -0
- package/dist/clients/inbox/tui/render.js +476 -0
- package/dist/clients/inbox/tui/types.d.ts +57 -0
- package/dist/clients/inbox/tui/types.js +1 -0
- package/dist/clients/inbox/tui.d.ts +6 -0
- package/dist/clients/inbox/tui.js +74 -0
- package/dist/clients/surfaces/host.d.ts +66 -0
- package/dist/clients/surfaces/host.js +1 -0
- package/dist/clients/surfaces/region.d.ts +16 -0
- package/dist/clients/surfaces/region.js +1 -0
- package/dist/clients/web/__tests__/push-engine.test.js +14 -158
- package/dist/clients/web/dev-server.d.ts +3 -3
- package/dist/clients/web/dev-server.js +9 -23
- package/dist/clients/web/events.js +4 -6
- package/dist/clients/web/push-engine.d.ts +2 -66
- package/dist/clients/web/push-engine.js +30 -161
- package/dist/clients/web/push-registry.d.ts +0 -4
- package/dist/clients/web/push-registry.js +2 -7
- package/dist/clients/web/server.js +3 -35
- package/dist/clients/web/web-client/shared/protocol.d.ts +0 -108
- package/dist/clients/web/web-cmd.js +2 -2
- package/dist/commands/__tests__/human.test.js +27 -15
- package/dist/commands/api-client.js +3 -3
- package/dist/commands/canvas-browse.js +1 -1
- package/dist/commands/canvas-issue.js +1 -1
- package/dist/commands/canvas-use.js +1 -1
- package/dist/commands/human/doc.d.ts +2 -0
- package/dist/commands/human/doc.js +98 -0
- package/dist/commands/human/inbox.d.ts +2 -0
- package/dist/commands/human/inbox.js +101 -0
- package/dist/commands/human/prompts.d.ts +2 -3
- package/dist/commands/human/prompts.js +27 -180
- package/dist/commands/human/queue.d.ts +1 -5
- package/dist/commands/human/queue.js +54 -216
- package/dist/commands/human/review.d.ts +2 -0
- package/dist/commands/human/review.js +298 -0
- package/dist/commands/human/shared.d.ts +2 -69
- package/dist/commands/human/shared.js +1 -181
- package/dist/commands/human.js +15 -20
- package/dist/commands/memory/__tests__/lint.test.d.ts +1 -0
- package/dist/commands/memory/__tests__/lint.test.js +15 -0
- package/dist/commands/memory/delete.js +2 -2
- package/dist/commands/memory/lint.d.ts +1 -0
- package/dist/commands/memory/lint.js +21 -3
- package/dist/commands/memory/read.js +4 -4
- package/dist/commands/node.js +8 -7
- package/dist/commands/pkg/plugin-manage.js +143 -68
- package/dist/commands/surface-inspect.js +2 -2
- package/dist/commands/surface.js +6 -12
- package/dist/commands/sys/__tests__/setup-core.test.js +9 -5
- package/dist/commands/sys/__tests__/setup-front-door.test.js +7 -42
- package/dist/commands/sys/config.js +29 -3
- package/dist/commands/sys/feedback.js +1 -1
- package/dist/commands/sys/setup-core.d.ts +12 -11
- package/dist/commands/sys/setup-core.js +55 -46
- package/dist/commands/sys/setup-wizard.d.ts +4 -1
- package/dist/commands/sys/setup-wizard.js +50 -9
- package/dist/commands/sys/sync-deps.js +1 -1
- package/dist/commands/sys.js +4 -6
- package/dist/core/__tests__/broker-sdk-wiring.test.js +6 -1
- package/dist/core/__tests__/broker-snapshot-history.test.js +9 -1
- package/dist/core/__tests__/dead-node-policy-table.test.js +3 -4
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +8 -5
- package/dist/core/__tests__/fixtures/fake-engine.js +28 -2
- package/dist/core/__tests__/full/broker-provider-retry.test.js +87 -2
- package/dist/core/__tests__/full/broker-whip-interrupt.test.d.ts +1 -0
- package/dist/core/__tests__/full/broker-whip-interrupt.test.js +39 -0
- package/dist/core/__tests__/full/detach-focus.test.js +1 -1
- package/dist/core/__tests__/human-deliver-e2e.test.js +64 -64
- package/dist/core/__tests__/human-deliver.test.js +71 -345
- package/dist/core/__tests__/inline-memory-refs.test.js +2 -12
- package/dist/core/__tests__/memory-resolver-precedence.test.js +12 -15
- package/dist/core/__tests__/migration.test.js +10 -0
- package/dist/core/__tests__/model-pin-durability.test.js +14 -0
- package/dist/core/__tests__/phase4-review-migration.test.d.ts +1 -0
- package/dist/core/__tests__/phase4-review-migration.test.js +100 -0
- package/dist/core/__tests__/phase4-review-store.test.d.ts +1 -0
- package/dist/core/__tests__/phase4-review-store.test.js +143 -0
- package/dist/core/__tests__/remote-canvas-target.test.js +2 -2
- package/dist/core/__tests__/revive.test.js +22 -53
- package/dist/core/__tests__/session-cycles.test.js +48 -18
- package/dist/core/__tests__/spawn-no-kickoff.test.js +8 -12
- package/dist/core/__tests__/stop-guard.test.js +16 -1
- package/dist/core/__tests__/tmux-surface.test.js +21 -25
- package/dist/core/asset-root.d.ts +7 -0
- package/dist/core/asset-root.js +18 -0
- package/dist/core/broker-client/client.d.ts +0 -7
- package/dist/core/broker-client/client.js +4 -10
- package/dist/core/broker-client/transport-relay.d.ts +3 -4
- package/dist/core/broker-client/transport-relay.js +3 -4
- package/dist/core/canvas/__tests__/attention.test.js +1 -1
- package/dist/core/canvas/__tests__/remote-canvas-source.test.js +1 -1
- package/dist/core/canvas/__tests__/remote-transport.test.d.ts +1 -0
- package/dist/core/{view/__tests__/transport-remote.test.js β canvas/__tests__/remote-transport.test.js} +2 -2
- package/dist/core/canvas/__tests__/render-remote.test.js +1 -1
- package/dist/core/canvas/attention.js +4 -4
- package/dist/core/canvas/canvas.d.ts +6 -11
- package/dist/core/canvas/canvas.js +11 -33
- package/dist/core/canvas/db.js +207 -38
- package/dist/core/canvas/extensions.d.ts +1 -1
- package/dist/core/canvas/extensions.js +8 -1
- package/dist/core/canvas/index.d.ts +0 -1
- package/dist/core/canvas/index.js +0 -1
- package/dist/core/canvas/nav-model.d.ts +1 -1
- package/dist/core/canvas/nav-model.js +1 -1
- package/dist/core/canvas/paths.d.ts +5 -0
- package/dist/core/canvas/paths.js +16 -0
- package/dist/core/canvas/remote-canvas-source.js +2 -2
- package/dist/core/canvas/remote-transport.d.ts +7 -0
- package/dist/core/{view/transport-remote.js β canvas/remote-transport.js} +3 -4
- package/dist/core/canvas/source.js +1 -1
- package/dist/core/canvas/status-glyph.js +4 -12
- package/dist/core/canvas/types.d.ts +10 -35
- package/dist/core/clipboard-text.d.ts +8 -0
- package/dist/core/clipboard-text.js +18 -0
- package/dist/core/command-manifests/registry.d.ts +1 -3
- package/dist/core/command-plugins/bundle.d.ts +29 -0
- package/dist/core/command-plugins/bundle.js +198 -0
- package/dist/core/command-plugins/discovery.d.ts +0 -8
- package/dist/core/command-plugins/discovery.js +2 -39
- package/dist/core/command-plugins/transport/http-fetch.d.ts +4 -30
- package/dist/core/command-plugins/transport/http-fetch.js +17 -95
- package/dist/core/command.d.ts +1 -13
- package/dist/core/command.js +1 -16
- package/dist/core/config.d.ts +4 -0
- package/dist/core/config.js +28 -3
- package/dist/core/document-lines.d.ts +4 -0
- package/dist/core/document-lines.js +6 -0
- package/dist/core/feed/feed.d.ts +2 -0
- package/dist/core/feed/feed.js +11 -7
- package/dist/core/human/__tests__/inbox-cancel-worker.d.ts +1 -0
- package/dist/core/human/__tests__/inbox-cancel-worker.js +7 -0
- package/dist/core/human/__tests__/inbox-claim-worker.d.ts +1 -0
- package/dist/core/human/__tests__/inbox-claim-worker.js +17 -0
- package/dist/core/human/__tests__/inbox-core.test.d.ts +1 -0
- package/dist/core/human/__tests__/inbox-core.test.js +144 -0
- package/dist/core/human/__tests__/inbox-stale-claim-worker.d.ts +1 -0
- package/dist/core/human/__tests__/inbox-stale-claim-worker.js +8 -0
- package/dist/core/human/__tests__/visible-paths.test.d.ts +1 -0
- package/dist/{clients/attach β core/human}/__tests__/visible-paths.test.js +9 -0
- package/dist/core/human/claim.d.ts +23 -0
- package/dist/core/human/claim.js +67 -0
- package/dist/core/human/convention.d.ts +30 -0
- package/dist/core/human/convention.js +202 -0
- package/dist/core/human/deck-factories.d.ts +8 -0
- package/dist/core/human/deck-factories.js +15 -0
- package/dist/core/human/deck-schema.d.ts +70 -0
- package/dist/core/human/deck-schema.js +92 -0
- package/dist/core/human/root.d.ts +7 -0
- package/dist/core/human/root.js +37 -0
- package/dist/core/human/scan.d.ts +3 -0
- package/dist/core/human/scan.js +76 -0
- package/dist/core/human/summary.d.ts +8 -0
- package/dist/core/human/summary.js +44 -0
- package/dist/core/human/tickets.d.ts +49 -0
- package/dist/core/human/tickets.js +190 -0
- package/dist/core/human/types.d.ts +136 -0
- package/dist/core/human/types.js +5 -0
- package/dist/{clients/attach β core/human}/visible-paths.d.ts +1 -1
- package/dist/{clients/attach β core/human}/visible-paths.js +3 -2
- package/dist/core/inspector/chrome.d.ts +6 -0
- package/dist/core/inspector/chrome.js +14 -0
- package/dist/core/inspector/contract.d.ts +105 -0
- package/dist/core/inspector/contract.js +1 -0
- package/dist/core/inspector/core.d.ts +4 -5
- package/dist/core/inspector/core.js +3 -5
- package/dist/core/inspector/host.d.ts +46 -0
- package/dist/core/{tui β inspector}/host.js +42 -208
- package/dist/core/inspector/text.d.ts +2 -2
- package/dist/core/inspector/transport.d.ts +6 -0
- package/dist/core/inspector/transport.js +36 -0
- package/dist/core/inspector/tui.d.ts +2 -2
- package/dist/core/inspector/tui.js +15 -15
- package/dist/core/keybindings/__tests__/inbox-affordance.test.js +11 -11
- package/dist/core/keybindings/__tests__/resolve.test.js +10 -19
- package/dist/core/keybindings/attach-control.d.ts +9 -3
- package/dist/core/keybindings/attach-control.js +3 -1
- package/dist/core/keybindings/catalog.d.ts +6 -5
- package/dist/core/keybindings/catalog.js +61 -133
- package/dist/core/keybindings/inbox.d.ts +5 -6
- package/dist/core/keybindings/inbox.js +9 -10
- package/dist/core/keybindings/index.d.ts +3 -3
- package/dist/core/keybindings/index.js +3 -3
- package/dist/core/keybindings/persistence.d.ts +5 -1
- package/dist/core/keybindings/persistence.js +24 -6
- package/dist/core/keybindings/resolve.d.ts +6 -0
- package/dist/core/keybindings/resolve.js +10 -3
- package/dist/core/memory/inline-ref-grammar.js +2 -3
- package/dist/core/memory-resolver.d.ts +27 -29
- package/dist/core/memory-resolver.js +45 -39
- package/dist/core/model-routes.d.ts +33 -0
- package/dist/core/model-routes.js +42 -3
- package/dist/core/preview-registry.js +17 -55
- package/dist/core/profiles/select.js +3 -3
- package/dist/core/{view/remote-canvas-target.d.ts β remote-canvas-target.d.ts} +2 -2
- package/dist/core/{view/remote-canvas-target.js β remote-canvas-target.js} +4 -4
- package/dist/core/review/__tests__/capture-origin.test.d.ts +1 -0
- package/dist/core/review/__tests__/capture-origin.test.js +139 -0
- package/dist/core/review/__tests__/comments.test.d.ts +1 -0
- package/dist/core/review/__tests__/comments.test.js +98 -0
- package/dist/core/review/__tests__/project.test.d.ts +1 -0
- package/dist/core/review/__tests__/project.test.js +71 -0
- package/dist/core/review/__tests__/remap.test.d.ts +1 -0
- package/dist/core/review/__tests__/remap.test.js +159 -0
- package/dist/core/review/__tests__/stage-identity.test.d.ts +1 -0
- package/dist/core/review/__tests__/stage-identity.test.js +140 -0
- package/dist/core/review/birth.d.ts +7 -0
- package/dist/core/review/birth.js +23 -0
- package/dist/core/review/comments.d.ts +69 -0
- package/dist/core/review/comments.js +295 -0
- package/dist/core/review/companion.d.ts +35 -0
- package/dist/core/review/companion.js +205 -0
- package/dist/core/review/document.d.ts +27 -0
- package/dist/core/review/document.js +138 -0
- package/dist/core/review/project.d.ts +13 -0
- package/dist/core/review/project.js +58 -0
- package/dist/core/review/realize.d.ts +19 -0
- package/dist/core/review/realize.js +217 -0
- package/dist/core/review/remap.d.ts +24 -0
- package/dist/core/review/remap.js +156 -0
- package/dist/core/review/signal.d.ts +5 -0
- package/dist/core/review/signal.js +31 -0
- package/dist/core/review/stage.d.ts +26 -0
- package/dist/core/review/stage.js +184 -0
- package/dist/core/review/store.d.ts +46 -0
- package/dist/core/review/store.js +163 -0
- package/dist/core/review/ticket-filter.d.ts +17 -0
- package/dist/core/review/ticket-filter.js +32 -0
- package/dist/core/review/types.d.ts +130 -0
- package/dist/core/review/types.js +23 -0
- package/dist/core/runtime/__tests__/session-visibility.test.d.ts +1 -0
- package/dist/core/runtime/__tests__/session-visibility.test.js +119 -0
- package/dist/core/runtime/bearings.d.ts +5 -17
- package/dist/core/runtime/bearings.js +88 -71
- package/dist/core/runtime/broker-protocol.d.ts +31 -8
- package/dist/core/runtime/broker.d.ts +15 -1
- package/dist/core/runtime/broker.js +573 -141
- package/dist/core/runtime/canvas-extensions.d.ts +4 -5
- package/dist/core/runtime/canvas-extensions.js +5 -5
- package/dist/core/runtime/front-door.js +4 -4
- package/dist/core/runtime/headless-pi.d.ts +24 -0
- package/dist/core/runtime/headless-pi.js +152 -0
- package/dist/core/runtime/kickoff.d.ts +1 -5
- package/dist/core/runtime/kickoff.js +1 -5
- package/dist/core/runtime/model-registry.d.ts +3 -0
- package/dist/core/runtime/model-registry.js +13 -0
- package/dist/core/runtime/naming-persist.d.ts +4 -0
- package/dist/core/runtime/naming-persist.js +27 -1
- package/dist/core/runtime/naming.d.ts +17 -12
- package/dist/core/runtime/naming.js +91 -140
- package/dist/core/runtime/node-read.js +19 -10
- package/dist/core/runtime/nodes.d.ts +9 -14
- package/dist/core/runtime/nodes.js +3 -53
- package/dist/core/runtime/package-health.d.ts +6 -21
- package/dist/core/runtime/package-health.js +12 -123
- package/dist/core/runtime/placement-tmux.d.ts +2 -1
- package/dist/core/runtime/placement-tmux.js +6 -4
- package/dist/core/runtime/placement.d.ts +1 -0
- package/dist/core/runtime/placement.js +4 -8
- package/dist/core/runtime/promote.js +3 -0
- package/dist/core/runtime/recap.d.ts +2 -7
- package/dist/core/runtime/recap.js +35 -69
- package/dist/core/runtime/revive.js +34 -77
- package/dist/core/runtime/session-cycles.d.ts +4 -0
- package/dist/core/runtime/session-cycles.js +14 -1
- package/dist/core/runtime/session-visibility.d.ts +37 -0
- package/dist/core/runtime/session-visibility.js +83 -0
- package/dist/core/runtime/spawn.js +10 -22
- package/dist/core/runtime/stop-guard.d.ts +1 -1
- package/dist/core/runtime/stop-guard.js +18 -13
- package/dist/core/runtime/surface-bg.js +1 -1
- package/dist/core/runtime/tmux-chrome.d.ts +1 -1
- package/dist/core/runtime/tmux-chrome.js +1 -1
- package/dist/core/runtime/tmux.d.ts +35 -7
- package/dist/core/runtime/tmux.js +439 -62
- package/dist/core/runtime/tool-group-summary.d.ts +19 -0
- package/dist/core/runtime/tool-group-summary.js +88 -0
- package/dist/core/scope.d.ts +2 -7
- package/dist/core/scope.js +9 -35
- package/dist/core/substrate/schema.d.ts +2 -2
- package/dist/core/termrender/code-doc.d.ts +12 -0
- package/dist/core/termrender/code-doc.js +92 -0
- package/dist/core/termrender/display.d.ts +12 -0
- package/dist/core/termrender/display.js +19 -0
- package/dist/core/termrender/termrender.d.ts +73 -0
- package/dist/core/termrender/termrender.js +795 -0
- package/dist/core/termrender/version.d.ts +1 -0
- package/dist/core/termrender/version.js +1 -0
- package/dist/core/tui/terminal.js +1 -2
- package/dist/core/user-settings.d.ts +71 -3
- package/dist/core/user-settings.js +83 -1
- package/dist/daemon/api/__tests__/inbox.test.js +44 -133
- package/dist/daemon/api/handlers/human.d.ts +0 -10
- package/dist/daemon/api/handlers/human.js +104 -702
- package/dist/daemon/api/handlers/inbox.js +113 -142
- package/dist/daemon/api/handlers/review-comments.d.ts +2 -0
- package/dist/daemon/api/handlers/review-comments.js +500 -0
- package/dist/daemon/api/handlers/reviews.d.ts +2 -0
- package/dist/daemon/api/handlers/reviews.js +287 -0
- package/dist/daemon/api/map.d.ts +22 -7
- package/dist/daemon/api/map.js +159 -11
- package/dist/daemon/api/server.js +4 -0
- package/dist/daemon/cron-run.js +6 -9
- package/dist/daemon/crtrd.js +17 -33
- package/dist/daemon/fleet.d.ts +1 -8
- package/dist/daemon/fleet.js +4 -30
- package/dist/daemon/human/finish.d.ts +14 -0
- package/dist/daemon/human/finish.js +115 -0
- package/dist/daemon/human/sweep.d.ts +6 -0
- package/dist/daemon/human/sweep.js +49 -0
- package/dist/daemon/messaging/node-message.d.ts +18 -0
- package/dist/daemon/messaging/node-message.js +70 -0
- package/dist/daemon/review/comment-notify.d.ts +26 -0
- package/dist/daemon/review/comment-notify.js +107 -0
- package/dist/daemon/review/deliver.d.ts +7 -0
- package/dist/daemon/review/deliver.js +56 -0
- package/dist/daemon/review/finish.d.ts +22 -0
- package/dist/daemon/review/finish.js +254 -0
- package/dist/daemon/review/sweep.d.ts +11 -0
- package/dist/daemon/review/sweep.js +120 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -2
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +42 -64
- package/dist/pi-extensions/__tests__/canvas-recap.test.d.ts +1 -0
- package/dist/pi-extensions/__tests__/canvas-recap.test.js +159 -0
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +16 -38
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.d.ts +1 -0
- package/dist/pi-extensions/__tests__/canvas-structured-output.test.js +63 -0
- package/dist/pi-extensions/canvas-context-intro.d.ts +8 -11
- package/dist/pi-extensions/canvas-context-intro.js +50 -104
- package/dist/pi-extensions/canvas-recap.d.ts +15 -2
- package/dist/pi-extensions/canvas-recap.js +192 -69
- package/dist/pi-extensions/canvas-review-boundary.d.ts +59 -0
- package/dist/pi-extensions/canvas-review-boundary.js +81 -0
- package/dist/pi-extensions/canvas-stophook.d.ts +3 -3
- package/dist/pi-extensions/canvas-stophook.js +78 -128
- package/dist/pi-extensions/canvas-structured-output.js +52 -8
- package/dist/shared/generated-context.d.ts +29 -4
- package/dist/shared/generated-context.js +122 -7
- package/dist/shared/tool-groups.d.ts +23 -0
- package/dist/shared/tool-groups.js +60 -0
- package/dist/shared/working-activity.d.ts +8 -0
- package/dist/shared/working-activity.js +26 -0
- package/dist/types.d.ts +36 -2
- package/dist/types.js +51 -0
- package/dist/web-client/assets/index-CCPaLeW7.css +2 -0
- package/dist/web-client/assets/index-kyOWsnZK.js +86 -0
- package/dist/web-client/index.html +2 -2
- package/dist/web-client/sw.js +1 -1
- package/docs/compat/hearth-crtr-v4.md +2 -2
- package/docs/compat/hearth-crtr-v5.md +4 -2
- package/docs/public-api.md +3 -3
- package/package.json +21 -14
- package/runtime.lock.json +4661 -1453
- package/scripts/postinstall.mjs +15 -2
- package/dist/builtin-pi-packages/pi-mode-switch/README.md +0 -36
- package/dist/builtin-pi-packages/pi-mode-switch/bin/mode +0 -36
- package/dist/builtin-pi-packages/pi-mode-switch/extensions/index.ts +0 -449
- package/dist/builtin-pi-packages/pi-mode-switch/package.json +0 -14
- package/dist/builtin-pi-packages/pi-mode-switch/tsconfig.json +0 -9
- package/dist/builtin-views/_lib/states.mjs +0 -161
- package/dist/builtin-views/canvas/core.mjs +0 -657
- package/dist/builtin-views/canvas/text.mjs +0 -58
- package/dist/builtin-views/canvas/tui.mjs +0 -168
- package/dist/builtin-views/canvas/web.jsx +0 -121
- package/dist/builtin-views/chat/core.mjs +0 -684
- package/dist/builtin-views/chat/text.mjs +0 -101
- package/dist/builtin-views/chat/tui.mjs +0 -360
- package/dist/builtin-views/chat/web.jsx +0 -362
- package/dist/builtin-views/git-pr/core.mjs +0 -673
- package/dist/builtin-views/git-pr/text.mjs +0 -84
- package/dist/builtin-views/git-pr/tui.mjs +0 -301
- package/dist/builtin-views/git-pr/web.jsx +0 -216
- package/dist/builtin-views/inbox/_lib/render.mjs +0 -175
- package/dist/builtin-views/inbox/core.mjs +0 -1273
- package/dist/builtin-views/inbox/text.mjs +0 -73
- package/dist/builtin-views/inbox/tui.mjs +0 -314
- package/dist/builtin-views/inbox/web.jsx +0 -188
- package/dist/builtin-views/linkedin/core.mjs +0 -906
- package/dist/builtin-views/linkedin/text.mjs +0 -69
- package/dist/builtin-views/linkedin/tui.mjs +0 -413
- package/dist/builtin-views/linkedin/web.jsx +0 -206
- package/dist/builtin-views/prompt-review/core.mjs +0 -735
- package/dist/builtin-views/prompt-review/text.mjs +0 -15
- package/dist/builtin-views/prompt-review/tui.mjs +0 -196
- package/dist/builtin-views/prompt-review/web.jsx +0 -484
- package/dist/builtin-views/workspace-sidebar/__tests__/core.test.js +0 -50
- package/dist/builtin-views/workspace-sidebar/__tests__/core.test.ts +0 -53
- package/dist/builtin-views/workspace-sidebar/core.mjs +0 -670
- package/dist/builtin-views/workspace-sidebar/text.mjs +0 -53
- package/dist/builtin-views/workspace-sidebar/tui.mjs +0 -141
- package/dist/builtin-views/workspace-sidebar/web.jsx +0 -109
- package/dist/clients/attach/session/mode.d.ts +0 -25
- package/dist/clients/attach/session/mode.js +0 -97
- package/dist/commands/sys/promptstudio.d.ts +0 -2
- package/dist/commands/sys/promptstudio.js +0 -65
- package/dist/commands/view-cycle.d.ts +0 -2
- package/dist/commands/view-cycle.js +0 -130
- package/dist/commands/view-list.d.ts +0 -2
- package/dist/commands/view-list.js +0 -66
- package/dist/commands/view-new.d.ts +0 -2
- package/dist/commands/view-new.js +0 -74
- package/dist/commands/view-pick.d.ts +0 -6
- package/dist/commands/view-pick.js +0 -129
- package/dist/commands/view-run.d.ts +0 -2
- package/dist/commands/view-run.js +0 -214
- package/dist/commands/view.d.ts +0 -2
- package/dist/commands/view.js +0 -31
- package/dist/commands/workspace.d.ts +0 -2
- package/dist/commands/workspace.js +0 -165
- package/dist/core/__tests__/chat-view-reconnect.test.js +0 -105
- package/dist/core/__tests__/full/consult-startup-failure.test.js +0 -124
- package/dist/core/canvas/__tests__/human-work-outbox.test.js +0 -123
- package/dist/core/canvas/human-work-outbox.d.ts +0 -73
- package/dist/core/canvas/human-work-outbox.js +0 -261
- package/dist/core/command-plugins/store.d.ts +0 -16
- package/dist/core/command-plugins/store.js +0 -64
- package/dist/core/keybindings/__tests__/bespoke-consumers.test.js +0 -40
- package/dist/core/runtime/fault-recovery-nudge.d.ts +0 -3
- package/dist/core/runtime/fault-recovery-nudge.js +0 -3
- package/dist/core/tui/__tests__/host-keybindings.test.js +0 -113
- package/dist/core/tui/host.d.ts +0 -66
- package/dist/core/view/__tests__/transport-cache.test.js +0 -62
- package/dist/core/view/bridge.d.ts +0 -10
- package/dist/core/view/bridge.js +0 -31
- package/dist/core/view/chrome.d.ts +0 -9
- package/dist/core/view/chrome.js +0 -22
- package/dist/core/view/contract.d.ts +0 -205
- package/dist/core/view/contract.js +0 -23
- package/dist/core/view/loader.d.ts +0 -31
- package/dist/core/view/loader.js +0 -188
- package/dist/core/view/stream-local.d.ts +0 -3
- package/dist/core/view/stream-local.js +0 -231
- package/dist/core/view/transport-cache.d.ts +0 -8
- package/dist/core/view/transport-cache.js +0 -38
- package/dist/core/view/transport-local.d.ts +0 -7
- package/dist/core/view/transport-local.js +0 -83
- package/dist/core/view/transport-remote.d.ts +0 -2
- package/dist/core/view/transport.d.ts +0 -10
- package/dist/core/view/transport.js +0 -15
- package/dist/pi-extensions/naming-tool.d.ts +0 -24
- package/dist/pi-extensions/naming-tool.js +0 -67
- package/dist/prompts/view.d.ts +0 -7
- package/dist/prompts/view.js +0 -172
- package/dist/web/ViewChrome.d.ts +0 -7
- package/dist/web/ViewChrome.js +0 -28
- package/dist/web/ViewPane.d.ts +0 -39
- package/dist/web/ViewPane.js +0 -48
- package/dist/web/index.d.ts +0 -8
- package/dist/web/index.js +0 -22
- package/dist/web/runtime.d.ts +0 -39
- package/dist/web/runtime.js +0 -232
- package/dist/web/states.d.ts +0 -24
- package/dist/web/states.js +0 -24
- package/dist/web/transport-http.d.ts +0 -5
- package/dist/web/transport-http.js +0 -34
- package/dist/web/transport-stream.d.ts +0 -3
- package/dist/web/transport-stream.js +0 -204
- package/dist/web-client/assets/index-U_NZ66VE.js +0 -79
- package/dist/web-client/assets/index-aaeu4adv.css +0 -2
- /package/dist/{builtin-views/workspace-sidebar/__tests__/core.test.d.ts β clients/attach/__tests__/file-review-focus.test.d.ts} +0 -0
- /package/dist/clients/attach/__tests__/{visible-paths.test.d.ts β group-activity.test.d.ts} +0 -0
- /package/dist/{core/__tests__/chat-view-reconnect.test.d.ts β clients/attach/__tests__/input-controller-extension-command.test.d.ts} +0 -0
- /package/dist/{core/__tests__/full/consult-startup-failure.test.d.ts β clients/attach/__tests__/session-identity-refresh.test.d.ts} +0 -0
- /package/dist/{core/canvas/__tests__/human-work-outbox.test.d.ts β clients/inbox/__tests__/inbox-controller.test.d.ts} +0 -0
- /package/dist/{core/keybindings/__tests__/bespoke-consumers.test.d.ts β clients/inbox/__tests__/mount-panel.test.d.ts} +0 -0
- /package/dist/{core/tui/__tests__/host-keybindings.test.d.ts β clients/inbox/review/__tests__/editor-roundtrip.test.d.ts} +0 -0
- /package/dist/{core/view/__tests__/transport-cache.test.d.ts β clients/inbox/review/__tests__/remap.test.d.ts} +0 -0
- /package/dist/{core/view/__tests__/transport-remote.test.d.ts β clients/inbox/review/__tests__/review-core.test.d.ts} +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// session-visibility.ts β transcript boundary projection for review companions.
|
|
2
|
+
//
|
|
3
|
+
// The companion node inherits the origin's full session context but the person
|
|
4
|
+
// must see only the transcript from the moment the review started. A durable
|
|
5
|
+
// marker (the boundary message) is appended to the session before the first
|
|
6
|
+
// human-visible message, and this projection uses it to slice the visible
|
|
7
|
+
// window.
|
|
8
|
+
//
|
|
9
|
+
// Applied at the two BrokerSnapshot.messages producers (live broker and
|
|
10
|
+
// dormant node read) so every presenter β attach, web node viewer, inspect β is
|
|
11
|
+
// boundary-safe by construction with no presenter-side changes.
|
|
12
|
+
/** customType of the crtr-authored boundary marker that opens a review
|
|
13
|
+
* companion's visible transcript. Data payload: `{ reviewId, originNodeId,
|
|
14
|
+
* targetFile }` β per-review facts that complement the inheritance prefix.
|
|
15
|
+
*
|
|
16
|
+
* The marker itself is a crtr-rendered divider shown to the person; everything
|
|
17
|
+
* above it in the inherited session is context they cannot see.
|
|
18
|
+
*/
|
|
19
|
+
export const REVIEW_BOUNDARY_CUSTOM_TYPE = 'crtr-review-boundary';
|
|
20
|
+
/** True when an entry is a durable review boundary, optionally for one review. */
|
|
21
|
+
export function isReviewBoundary(entry, reviewId) {
|
|
22
|
+
if (entry === null || typeof entry !== 'object')
|
|
23
|
+
return false;
|
|
24
|
+
const candidate = entry;
|
|
25
|
+
return ((candidate.role === 'custom' || candidate.type === 'custom_message') &&
|
|
26
|
+
candidate.customType === REVIEW_BOUNDARY_CUSTOM_TYPE &&
|
|
27
|
+
(reviewId === undefined || candidate.details?.reviewId === reviewId));
|
|
28
|
+
}
|
|
29
|
+
function syntheticBoundary(timestamp) {
|
|
30
|
+
return {
|
|
31
|
+
role: 'custom',
|
|
32
|
+
customType: REVIEW_BOUNDARY_CUSTOM_TYPE,
|
|
33
|
+
content: 'Earlier conversation with the origin is not shown.',
|
|
34
|
+
display: true,
|
|
35
|
+
timestamp: timestamp ?? Date.now(),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Project snapshot messages to the visible window for a review companion.
|
|
40
|
+
*
|
|
41
|
+
* Contract (in evaluation order):
|
|
42
|
+
* 1. Marker present β slice from the **first** occurrence (marker included) to
|
|
43
|
+
* the end. Everything before the marker is inherited context, hidden from
|
|
44
|
+
* the person.
|
|
45
|
+
* 2. Not a review companion β return input unchanged (same reference). Ordinary
|
|
46
|
+
* nodes are not filtered.
|
|
47
|
+
* 3. No marker and review companion β a leading compaction summary is replaced
|
|
48
|
+
* with a synthetic boundary while its retained tail remains visible. Every
|
|
49
|
+
* other markerless shape fails closed with the synthetic boundary alone.
|
|
50
|
+
*/
|
|
51
|
+
export function visibleMessages(messages, opts) {
|
|
52
|
+
const markerIndex = messages.findIndex((message) => isReviewBoundary(message));
|
|
53
|
+
if (markerIndex !== -1)
|
|
54
|
+
return messages.slice(markerIndex);
|
|
55
|
+
if (!opts.reviewCompanion)
|
|
56
|
+
return messages;
|
|
57
|
+
const [first, ...retainedTail] = messages;
|
|
58
|
+
if (first?.role === 'compactionSummary') {
|
|
59
|
+
return [syntheticBoundary(first.timestamp), ...retainedTail];
|
|
60
|
+
}
|
|
61
|
+
return [syntheticBoundary(first?.timestamp)];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Project a session tree to the review companion's visible transcript boundary.
|
|
65
|
+
*
|
|
66
|
+
* Pre-boundary ancestors are omitted rather than retained as empty structural
|
|
67
|
+
* shells, making each durable boundary a root in the returned forest. Once a
|
|
68
|
+
* boundary is crossed, its complete descendant subtree remains navigable. An
|
|
69
|
+
* absent boundary produces an empty tree, so picker previews never disclose an
|
|
70
|
+
* inherited entry before a mutation guard can reject its selection.
|
|
71
|
+
*/
|
|
72
|
+
export function boundaryRootedTree(tree) {
|
|
73
|
+
const retainSubtree = (node) => ({
|
|
74
|
+
...node,
|
|
75
|
+
children: node.children.map(retainSubtree),
|
|
76
|
+
});
|
|
77
|
+
const project = (node) => {
|
|
78
|
+
if (isReviewBoundary(node.entry))
|
|
79
|
+
return [retainSubtree(node)];
|
|
80
|
+
return node.children.flatMap(project);
|
|
81
|
+
};
|
|
82
|
+
return tree.flatMap(project);
|
|
83
|
+
}
|
|
@@ -20,7 +20,7 @@ import { usage, brokerLaunchFailed } from '../errors.js';
|
|
|
20
20
|
import { writeGoal } from './kickoff.js';
|
|
21
21
|
import { appendSituationalContext } from './situational-context.js';
|
|
22
22
|
import { hasRoadmap, seedRoadmap } from './roadmap.js';
|
|
23
|
-
import {
|
|
23
|
+
import { buildWakeBearings } from './bearings.js';
|
|
24
24
|
import { contextDir, getNode, fullName, recordPid } from '../canvas/index.js';
|
|
25
25
|
import { jobDir } from '../canvas/paths.js';
|
|
26
26
|
import { openViewerWindow, focusOf, windowOfPane, currentTmux, focusWindow, } from './placement.js';
|
|
@@ -271,28 +271,13 @@ export async function spawnChildPrepared(opts, beforeBrokerLaunch) {
|
|
|
271
271
|
throw error;
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
|
-
// A
|
|
275
|
-
// identity
|
|
276
|
-
//
|
|
277
|
-
//
|
|
278
|
-
// triggers the fork's first turn, so the model acts on "you are node X, a
|
|
279
|
-
// FORK of <source>, NOT them" as live instruction. When the daemon births this
|
|
280
|
-
// node from a scheduled `spawn` wake, the <crtr-wake> provenance block leads
|
|
281
|
-
// (so "a timer birthed you" precedes the task) β mirroring the fork-identity
|
|
282
|
-
// prepend. Only the pi argv prompt is reframed; the persisted goal (writeGoal
|
|
283
|
-
// above) keeps the raw task.
|
|
284
|
-
//
|
|
285
|
-
// A no-kickoff spawn (opts.prompt === '', see `node new --no-kickoff`) delivers
|
|
286
|
-
// NO positional prompt at all (buildPiArgv below omits it on an empty string),
|
|
287
|
-
// so no turn ever runs at spawn β neither block is meaningful without a turn to
|
|
288
|
-
// ride, so both are skipped even when forkFrom/wakeOrigin are set: the forked
|
|
289
|
-
// history still lands in the new session verbatim, it is simply not paired
|
|
290
|
-
// with an immediate re-assertion turn. Whatever real prompt arrives later is
|
|
291
|
-
// the fork's actual first turn.
|
|
274
|
+
// A scheduled birth prepends its clock provenance to the real task. Fork
|
|
275
|
+
// identity is owned exclusively by the session-start bearings message, which
|
|
276
|
+
// lands after copied history and before this prompt. An empty prompt starts
|
|
277
|
+
// the broker idle and carries neither a task nor wake provenance.
|
|
292
278
|
const hasKickoff = opts.prompt !== '';
|
|
293
279
|
const wakeBlock = hasKickoff && opts.wakeOrigin !== undefined ? `${buildWakeBearings(opts.wakeOrigin)}\n\n` : '';
|
|
294
|
-
const
|
|
295
|
-
const kickoff = `${wakeBlock}${idBlock}${opts.prompt}`;
|
|
280
|
+
const kickoff = `${wakeBlock}${opts.prompt}`;
|
|
296
281
|
// A child created DIRECTLY as an orchestrator (mode='orchestrator') boots
|
|
297
282
|
// with the orchestrator persona but bypasses promote(), which is where a
|
|
298
283
|
// roadmap scaffold would normally be seeded. Lay one down here (goal
|
|
@@ -387,12 +372,15 @@ export async function spawnChildPrepared(opts, beforeBrokerLaunch) {
|
|
|
387
372
|
// have bound view.sock yet. Hand the attach pane CRTR_ATTACH_WAIT_MS so
|
|
388
373
|
// it self-polls the socket until it accepts instead of connecting once,
|
|
389
374
|
// finding a cold socket, and closing the pane instantly β the exact
|
|
390
|
-
// mechanism bootRoot uses.
|
|
375
|
+
// mechanism bootRoot uses. Mark this as the initial auto-opened child
|
|
376
|
+
// viewer too, so whip_mode can greet it without firing on ordinary
|
|
377
|
+
// focus/attach paths. No pre-wait in this CLI subprocess.
|
|
391
378
|
const viewer = openViewerWindow(meta.node_id, parentViewer.session ?? '', {
|
|
392
379
|
name: fullName(meta),
|
|
393
380
|
cwd: opts.cwd,
|
|
394
381
|
besidePane: parentViewer.pane,
|
|
395
382
|
waitForBroker: true,
|
|
383
|
+
initialWhip: true,
|
|
396
384
|
});
|
|
397
385
|
if (viewer !== null && viewer.pane !== null && viewer.pane !== '') {
|
|
398
386
|
session = viewer.session;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { STALL_REPROMPT } from '../../shared/generated-context.js';
|
|
1
2
|
export interface StopSignals {
|
|
2
3
|
/** Did the node call `push --final` (finish) this turn? */
|
|
3
4
|
pushedFinal: boolean;
|
|
@@ -12,7 +13,6 @@ export type StopAction = {
|
|
|
12
13
|
reason: 'stalled';
|
|
13
14
|
message: string;
|
|
14
15
|
};
|
|
15
|
-
export declare const STALL_REPROMPT: string;
|
|
16
16
|
/** Decide what to do when a node stops. Pure given the canvas + this turn's
|
|
17
17
|
* signals β the stophook supplies the signals and enacts the action. */
|
|
18
18
|
export declare function evaluateStop(nodeId: string, signals: StopSignals): StopAction;
|
|
@@ -2,25 +2,27 @@
|
|
|
2
2
|
//
|
|
3
3
|
// Every time a node's pi process stops, we ask one question: is this node
|
|
4
4
|
// *legitimately waiting*? A node is legitimately waiting iff it holds an ACTIVE
|
|
5
|
-
// subscription to a live node,
|
|
6
|
-
//
|
|
7
|
-
//
|
|
5
|
+
// subscription to a live node, explicitly awaits a live controller's message,
|
|
6
|
+
// or has a live file-backed background bash job whose completion sends an inbox
|
|
7
|
+
// message β something that can actually wake it. (A passive sub won't wake you,
|
|
8
|
+
// so it doesn't count.)
|
|
8
9
|
//
|
|
9
10
|
// β’ resident β an interactable / human-driven node is NEVER forced to
|
|
10
11
|
// submit a final: stopping to go dormant is always
|
|
11
12
|
// legitimate (woken by inbox/human). Keyed on the LIFECYCLE
|
|
12
13
|
// value, not on parent/mode β what matters is residency.
|
|
13
|
-
// β’ waiting β a TERMINAL node
|
|
14
|
-
//
|
|
15
|
-
//
|
|
14
|
+
// β’ waiting β a TERMINAL node has an active live subscription, an
|
|
15
|
+
// explicit controller wait, or a live background bash job.
|
|
16
|
+
// Let it sleep; the resulting inbox delivery wakes it.
|
|
16
17
|
// β’ finished/asked β it pushed --final (done) or called `crtr ask` this turn.
|
|
17
18
|
// Also fine.
|
|
18
19
|
// β’ otherwise β a TERMINAL node with nothing live to wait for and no
|
|
19
20
|
// final pushed. Re-prompt it to finish or escalate.
|
|
20
|
-
import { hasActiveLiveSubscription, hasLiveMessageWait, hasPendingCancelOnWakeCron, getNode } from '../canvas/index.js';
|
|
21
|
+
import { hasActiveLiveSubscription, hasLiveMessageWait, hasPendingCancelOnWakeCron, getNode, contextDir } from '../canvas/index.js';
|
|
22
|
+
import { activeBackgroundBashJobs } from '../bash-jobs.js';
|
|
23
|
+
import { formatStructuredOutputReprompt, STALL_REPROMPT } from '../../shared/generated-context.js';
|
|
21
24
|
import { hasPendingStructuredOutput, readOutputRequest } from './structured-output.js';
|
|
22
|
-
export
|
|
23
|
-
"Pipe the result to `crtr push final` through a single-quoted heredoc if the work is done, or use `crtr human ask` if you are blocked or need the user.";
|
|
25
|
+
export { STALL_REPROMPT } from '../../shared/generated-context.js';
|
|
24
26
|
function structuredOutputReprompt(nodeId) {
|
|
25
27
|
let schema = '{}';
|
|
26
28
|
try {
|
|
@@ -31,7 +33,7 @@ function structuredOutputReprompt(nodeId) {
|
|
|
31
33
|
catch {
|
|
32
34
|
/* keep a deterministic reprompt even if the schema file was corrupted */
|
|
33
35
|
}
|
|
34
|
-
return
|
|
36
|
+
return formatStructuredOutputReprompt(schema);
|
|
35
37
|
}
|
|
36
38
|
/** Decide what to do when a node stops. Pure given the canvas + this turn's
|
|
37
39
|
* signals β the stophook supplies the signals and enacts the action. */
|
|
@@ -68,9 +70,12 @@ export function evaluateStop(nodeId, signals) {
|
|
|
68
70
|
if (hasPendingCancelOnWakeCron(nodeId))
|
|
69
71
|
return { action: 'allow', reason: 'scheduled' };
|
|
70
72
|
// A terminal node holding something live to wake it is legitimately awaiting.
|
|
71
|
-
// Parentage alone is deliberately absent: only
|
|
72
|
-
// controller wait
|
|
73
|
-
|
|
73
|
+
// Parentage alone is deliberately absent: only an active subscription, an
|
|
74
|
+
// explicit controller wait, or a live background bash job whose completion
|
|
75
|
+
// sends an inbox message can suppress the stall guard.
|
|
76
|
+
if (hasActiveLiveSubscription(nodeId)
|
|
77
|
+
|| hasLiveMessageWait(nodeId)
|
|
78
|
+
|| activeBackgroundBashJobs(contextDir(nodeId)).length > 0)
|
|
74
79
|
return { action: 'allow', reason: 'awaiting' };
|
|
75
80
|
// A terminal node with nothing live and no final pushed has stalled.
|
|
76
81
|
return { action: 'reprompt', reason: 'stalled', message: STALL_REPROMPT };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// surface-bg.ts β the "distinct popup surface" background, theme-derived.
|
|
2
2
|
//
|
|
3
3
|
// crtr's overlays and popups must read as a SEPARATE surface from the normal one
|
|
4
|
-
// (CTO ruling,
|
|
4
|
+
// (CTO ruling, insights/terminal-ui/inline-ui-placement #11): a popup whose background matches
|
|
5
5
|
// the surface has invisible edges, so you can't tell where the float begins. We
|
|
6
6
|
// paint them with the active pi theme's `selectedBg` role β theme-derived, so it
|
|
7
7
|
// adapts to light/dark and is ONE centralized knob, not a scattered hardcode.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { installTmuxBindings, legacyInboxKeyFile, sendKeysEnter, displayMessage, paneCurrentPath, getPaneOption, type TmuxInstalledPair, type TmuxInstallDiagnostic, type TmuxInstallResult, } from './tmux.js';
|
|
1
|
+
export { installTmuxBindings, occupiedTmuxRootGestures, legacyInboxKeyFile, sendKeysEnter, displayMessage, paneCurrentPath, getPaneOption, type TmuxInstalledPair, type TmuxInstallDiagnostic, type TmuxInstallResult, } from './tmux.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// tmux-chrome.ts β chrome seam (Β§2.1): stateless keybind/input verbs.
|
|
2
2
|
// The ONLY non-placement module allowed to import the tmux driver, per the
|
|
3
3
|
// Β§5.1 lint. Re-exports the server chrome callers need.
|
|
4
|
-
export { installTmuxBindings, legacyInboxKeyFile, sendKeysEnter, displayMessage, paneCurrentPath, getPaneOption, } from './tmux.js';
|
|
4
|
+
export { installTmuxBindings, occupiedTmuxRootGestures, legacyInboxKeyFile, sendKeysEnter, displayMessage, paneCurrentPath, getPaneOption, } from './tmux.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type BindingId, type BindingResolution } from '../keybindings/index.js';
|
|
1
|
+
import { type AttachBindingId, type BindingId, type BindingResolution } from '../keybindings/index.js';
|
|
2
2
|
/** POSIX single-quote escaping for one shell word. */
|
|
3
3
|
export declare function shellQuote(s: string): string;
|
|
4
4
|
export declare function inTmux(): boolean;
|
|
@@ -142,8 +142,7 @@ export declare function paneRunning(pane: string): boolean;
|
|
|
142
142
|
* display-message each. */
|
|
143
143
|
export declare function listLivePanes(): Set<string> | null;
|
|
144
144
|
/** The working directory of a pane (`display-message -p -t <pane>
|
|
145
|
-
* '#{pane_current_path}'`).
|
|
146
|
-
* view-cycle respawn so project-scoped views still resolve. Null if tmux fails. */
|
|
145
|
+
* '#{pane_current_path}'`). Null if tmux fails. */
|
|
147
146
|
export declare function paneCurrentPath(pane: string): string | null;
|
|
148
147
|
/** Flash a transient status-line toast on the client showing `pane` (or the
|
|
149
148
|
* current client when `pane` is omitted). `ms` sets the display duration. Used
|
|
@@ -151,14 +150,36 @@ export declare function paneCurrentPath(pane: string): string | null;
|
|
|
151
150
|
* Best-effort; never throws. */
|
|
152
151
|
export declare function displayMessage(message: string, pane?: string, ms?: number): boolean;
|
|
153
152
|
/** Set a PANE-scoped tmux option (`tmux set-option -p -t <pane> <name> <value>`).
|
|
154
|
-
* Used to tag a pane with the view id it currently hosts (`@crtr_view`) so the
|
|
155
|
-
* view-nav cycle can read it back and switch to the next/prev view in place.
|
|
156
153
|
* Best-effort; never throws. */
|
|
157
154
|
export declare function setPaneOption(pane: string, name: string, value: string): boolean;
|
|
158
155
|
/** Read a PANE-scoped tmux option value (`tmux show-options -p -t <pane> -q -v
|
|
159
156
|
* <name>`): `-v` prints only the value, `-q` suppresses the unknown-option
|
|
160
157
|
* error so an unset option yields an empty string. undefined if tmux fails. */
|
|
161
158
|
export declare function getPaneOption(pane: string, name: string): string | undefined;
|
|
159
|
+
/** Pane option recording when an attach viewer was last started or focused.
|
|
160
|
+
* `liveViewerPanes` uses it to select the most recently used viewer. */
|
|
161
|
+
export declare const VIEWER_STAMP_OPTION = "@crtr_viewer_at";
|
|
162
|
+
/** Stamp a viewer pane without blocking the input path that observed focus.
|
|
163
|
+
* Stamps are monotonically increasing and their tmux writes are serialized, so
|
|
164
|
+
* two rapid focus events cannot leave an older pane with the newer stamp. */
|
|
165
|
+
export declare function stampViewerPaneAsync(pane: string): void;
|
|
166
|
+
export interface LiveViewerPane {
|
|
167
|
+
readonly pane: string;
|
|
168
|
+
readonly session: string;
|
|
169
|
+
readonly nodeId: string;
|
|
170
|
+
readonly stampMs: number;
|
|
171
|
+
}
|
|
172
|
+
/** List viewer panes tagged by a running local attach viewer. Pane tags can
|
|
173
|
+
* survive a killed process, so every tag must match a viewer for the same node.
|
|
174
|
+
* Shell-hosted viewers are recognized through their live child process. Unstamped
|
|
175
|
+
* valid viewers remain eligible at stamp zero while an older viewer rolls forward. */
|
|
176
|
+
export declare function liveViewerPanes(socket?: string): LiveViewerPane[];
|
|
177
|
+
/** Deliver one private attach-control sequence literally into a viewer pane.
|
|
178
|
+
* `-l` bypasses tmux key-table lookup, so delivery cannot re-trigger a root
|
|
179
|
+
* binding that initiated it. */
|
|
180
|
+
export declare function sendAttachControl(socket: string | undefined, pane: string, actionId: AttachBindingId): boolean;
|
|
181
|
+
/** Show a tmux status-line message on a specific client when one is known. */
|
|
182
|
+
export declare function displayClientMessage(socket: string | undefined, client: string | undefined, text: string): boolean;
|
|
162
183
|
export interface RespawnPaneOpts {
|
|
163
184
|
/** Target pane id (e.g. `%3`) β the pane to re-exec in place. */
|
|
164
185
|
pane: string;
|
|
@@ -242,6 +263,13 @@ export interface TmuxInstallResult {
|
|
|
242
263
|
readonly installed: readonly TmuxInstalledPair[];
|
|
243
264
|
readonly diagnostics: readonly TmuxInstallDiagnostic[];
|
|
244
265
|
}
|
|
266
|
+
/** Effective crouter gestures that tmux's root table currently consumes before
|
|
267
|
+
* pane input can see them. One list-keys snapshot serves the whole query. */
|
|
268
|
+
export declare function occupiedTmuxRootGestures(gestures: readonly string[]): readonly string[];
|
|
245
269
|
export declare function legacyInboxKeyFile(): string;
|
|
246
|
-
|
|
247
|
-
|
|
270
|
+
export declare function inboxToggleTmuxCommand(): string[];
|
|
271
|
+
/** Reconcile the tmux server with one immutable crouter settings snapshot.
|
|
272
|
+
* Passing snapshots is hermetic; the no-argument front door reads both user
|
|
273
|
+
* settings from the same config read. The server lock covers the entire
|
|
274
|
+
* manifest read, restore, install, fingerprint, and write transition. */
|
|
275
|
+
export declare function installTmuxBindings(bindingSnapshot?: BindingResolution<BindingId>, passthroughSnapshot?: readonly BindingId[]): TmuxInstallResult;
|