@north-light/crouter 0.3.173 → 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} +27 -179
- 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 +7 -1
- package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.ts +9 -1
- 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,4 +1,4 @@
|
|
|
1
|
-
import type { IsoTime, NodeIdDTO
|
|
1
|
+
import type { IsoTime, NodeIdDTO } from './common.js';
|
|
2
2
|
import type { FeedbackResultDTO } from './human.js';
|
|
3
3
|
export type ReviewOriginKindDTO = 'ticket' | 'inline';
|
|
4
4
|
/** `binding` is intentionally never exposed over the API. */
|
|
@@ -73,16 +73,6 @@ export interface ListReviewsQuery {
|
|
|
73
73
|
export interface ReviewListDTO {
|
|
74
74
|
reviews: ReviewDTO[];
|
|
75
75
|
}
|
|
76
|
-
/** Daemon-derived result of opening an active review or acknowledging a terminal one. */
|
|
77
|
-
export type ReviewOpenResultDTO = {
|
|
78
|
-
review: ReviewDTO;
|
|
79
|
-
companion_node_id: NodeIdDTO;
|
|
80
|
-
companion_status: NodeStatusDTO;
|
|
81
|
-
disposition: 'open';
|
|
82
|
-
} | {
|
|
83
|
-
review: ReviewDTO;
|
|
84
|
-
disposition: 'terminal';
|
|
85
|
-
};
|
|
86
76
|
/** Daemon-derived result of terminal review approval. */
|
|
87
77
|
export interface ReviewSubmitResultDTO {
|
|
88
78
|
review: ReviewDTO;
|
package/dist/api/routes.d.ts
CHANGED
|
@@ -19,6 +19,13 @@ export declare const routes: {
|
|
|
19
19
|
readonly nodeFork: (id: string) => string;
|
|
20
20
|
readonly nodeRevive: (id: string) => string;
|
|
21
21
|
readonly nodeRelaunchRoot: (id: string) => string;
|
|
22
|
+
readonly nodeBrokerSessionBound: (id: string) => string;
|
|
23
|
+
readonly nodeBrokerSettle: (id: string) => string;
|
|
24
|
+
readonly nodeBrokerInboxCursor: (id: string) => string;
|
|
25
|
+
readonly nodeBrokerModel: (id: string) => string;
|
|
26
|
+
readonly nodeBrokerExtensionState: (id: string) => string;
|
|
27
|
+
readonly nodeBrokerGeneratedName: (id: string) => string;
|
|
28
|
+
readonly nodeBrokerPersonaAck: (id: string) => string;
|
|
22
29
|
readonly nodeClose: (id: string) => string;
|
|
23
30
|
readonly nodeRecycle: (id: string) => string;
|
|
24
31
|
readonly nodeDemote: (id: string) => string;
|
|
@@ -54,7 +61,6 @@ export declare const routes: {
|
|
|
54
61
|
readonly humanReviews: () => string;
|
|
55
62
|
readonly humanReview: (reviewId: string) => string;
|
|
56
63
|
readonly humanReviewByBridge: (bridgeNodeId: string) => string;
|
|
57
|
-
readonly humanReviewOpen: (reviewId: string) => string;
|
|
58
64
|
readonly humanReviewSubmit: (reviewId: string) => string;
|
|
59
65
|
readonly humanReviewCancel: (reviewId: string) => string;
|
|
60
66
|
readonly humanReviewDocument: (reviewId: string) => string;
|
|
@@ -67,9 +73,6 @@ export declare const routes: {
|
|
|
67
73
|
readonly humanCommentReopen: (commentId: string) => string;
|
|
68
74
|
readonly humanCommentDelete: (commentId: string) => string;
|
|
69
75
|
readonly humanInbox: () => string;
|
|
70
|
-
readonly humanInboxTicket: (ticketId: string) => string;
|
|
71
|
-
readonly humanInboxRespond: (ticketId: string) => string;
|
|
72
|
-
readonly humanInboxCancel: (ticketId: string) => string;
|
|
73
76
|
readonly profiles: () => string;
|
|
74
77
|
readonly profile: (name: string) => string;
|
|
75
78
|
readonly modelAuths: () => string;
|
package/dist/api/routes.js
CHANGED
|
@@ -37,6 +37,13 @@ export const routes = {
|
|
|
37
37
|
nodeFork: (id) => `${V}/nodes/${id}/fork`,
|
|
38
38
|
nodeRevive: (id) => `${V}/nodes/${id}/revive`,
|
|
39
39
|
nodeRelaunchRoot: (id) => `${V}/nodes/${id}/relaunch-root`,
|
|
40
|
+
nodeBrokerSessionBound: (id) => `${V}/nodes/${id}/broker/session-bound`,
|
|
41
|
+
nodeBrokerSettle: (id) => `${V}/nodes/${id}/broker/settle`,
|
|
42
|
+
nodeBrokerInboxCursor: (id) => `${V}/nodes/${id}/broker/inbox-cursor`,
|
|
43
|
+
nodeBrokerModel: (id) => `${V}/nodes/${id}/broker/model`,
|
|
44
|
+
nodeBrokerExtensionState: (id) => `${V}/nodes/${id}/broker/extension-state`,
|
|
45
|
+
nodeBrokerGeneratedName: (id) => `${V}/nodes/${id}/broker/generated-name`,
|
|
46
|
+
nodeBrokerPersonaAck: (id) => `${V}/nodes/${id}/broker/persona-ack`,
|
|
40
47
|
nodeClose: (id) => `${V}/nodes/${id}/close`,
|
|
41
48
|
nodeRecycle: (id) => `${V}/nodes/${id}/recycle`,
|
|
42
49
|
nodeDemote: (id) => `${V}/nodes/${id}/demote`,
|
|
@@ -80,7 +87,6 @@ export const routes = {
|
|
|
80
87
|
humanReviews: () => `${V}/human/reviews`,
|
|
81
88
|
humanReview: (reviewId) => `${V}/human/reviews/${reviewId}`,
|
|
82
89
|
humanReviewByBridge: (bridgeNodeId) => `${V}/human/reviews/by-bridge/${bridgeNodeId}`,
|
|
83
|
-
humanReviewOpen: (reviewId) => `${V}/human/reviews/${reviewId}/open`,
|
|
84
90
|
humanReviewSubmit: (reviewId) => `${V}/human/reviews/${reviewId}/submit`,
|
|
85
91
|
humanReviewCancel: (reviewId) => `${V}/human/reviews/${reviewId}/cancel`,
|
|
86
92
|
humanReviewDocument: (reviewId) => `${V}/human/reviews/${reviewId}/document`,
|
|
@@ -92,11 +98,8 @@ export const routes = {
|
|
|
92
98
|
humanCommentResolve: (commentId) => `${V}/human/comments/${commentId}/resolve`,
|
|
93
99
|
humanCommentReopen: (commentId) => `${V}/human/comments/${commentId}/reopen`,
|
|
94
100
|
humanCommentDelete: (commentId) => `${V}/human/comments/${commentId}/delete`,
|
|
95
|
-
//
|
|
101
|
+
// Attached terminal viewer inbox
|
|
96
102
|
humanInbox: () => `${V}/human/inbox`,
|
|
97
|
-
humanInboxTicket: (ticketId) => `${V}/human/inbox/${ticketId}`,
|
|
98
|
-
humanInboxRespond: (ticketId) => `${V}/human/inbox/${ticketId}/respond`,
|
|
99
|
-
humanInboxCancel: (ticketId) => `${V}/human/inbox/${ticketId}/cancel`,
|
|
100
103
|
// Profiles (server-side for P2 Core; CLI profile verbs stay fs-local)
|
|
101
104
|
profiles: () => `${V}/profiles`,
|
|
102
105
|
profile: (name) => `${V}/profiles/${name}`,
|
package/dist/build-root.js
CHANGED
|
@@ -3,9 +3,9 @@ const TAGLINE = 'crtr: agentic runtime.';
|
|
|
3
3
|
/** Lazy registry: subtree name → dynamic importer that builds its BranchDef.
|
|
4
4
|
* The whole point is that each `import()` only compiles that one subtree's
|
|
5
5
|
* module graph. The hot path (`crtr surface node focus …`, `crtr push …`, …) dispatches
|
|
6
|
-
* into a single leaf, so it must load ONE subtree — not the attach
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* into a single leaf, so it must load ONE subtree — not the attach TUI and
|
|
7
|
+
* every other subtree it never touches. `crtr` cold-start is dominated by Node
|
|
8
|
+
* module loading; keeping the
|
|
9
9
|
* other subtrees off the path is the biggest, lowest-risk win. */
|
|
10
10
|
const SUBTREE_LOADERS = {
|
|
11
11
|
memory: async () => (await import('./commands/memory.js')).registerMemory(),
|
|
@@ -5,10 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {mode: base}
|
|
7
7
|
rationale: >-
|
|
8
|
-
A base security reviewer handed its entire assignment to another base security reviewer,
|
|
9
|
-
which repeated the move through a 35-node chain in under five minutes. The universal prompt
|
|
10
|
-
had said to delegate any self-contained work while no base-mode layer told sub-kinds to work
|
|
11
|
-
hands-on; exact sub-kind gating also meant plan/reviewers/security did not inherit plan/00-base.
|
|
8
|
+
A base security reviewer handed its entire assignment to another base security reviewer, which repeated the move through a 35-node chain in under five minutes. The universal prompt had said to delegate any self-contained work while no base-mode layer told sub-kinds to work hands-on; exact sub-kind gating also meant plan/reviewers/security did not inherit plan/00-base.
|
|
12
9
|
---
|
|
13
10
|
|
|
14
11
|
## You are a hands-on worker
|
|
@@ -5,11 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: advisor}
|
|
7
7
|
rationale: >-
|
|
8
|
-
the reciprocal of explore's model-tier economics — judgment, debugging, and
|
|
9
|
-
tradeoff work need the slow/expensive think-y tier, so it is fenced into its own kind
|
|
10
|
-
rather than left as a per-task instruction. The orchestrator variant is the council:
|
|
11
|
-
reach for it only when the call is consequential enough to fund deliberation — the
|
|
12
|
-
ordinary case is still one advisor (or a few, un-orchestrated), not a fan-out.
|
|
8
|
+
the reciprocal of explore's model-tier economics — judgment, debugging, and tradeoff work need the slow/expensive think-y tier, so it is fenced into its own kind rather than left as a per-task instruction. The orchestrator variant is the council: reach for it only when the call is consequential enough to fund deliberation — the ordinary case is still one advisor (or a few, un-orchestrated), not a fan-out.
|
|
13
9
|
---
|
|
14
10
|
|
|
15
11
|
Ground advice in evidence. Inspect the code, logs, repro steps, prior reports, or runtime state needed to understand the situation; do not answer from vibes when the facts are available. For debugging, drive toward the smallest credible root cause: reproduce or trace the failure, separate symptoms from causes, and name the file, command, invariant, or design assumption that explains it.
|
|
@@ -5,16 +5,11 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: advisor, mode: orchestrator}
|
|
7
7
|
rationale: >-
|
|
8
|
-
Everyone's instinct for getting the right answer out of a council is to make the agents
|
|
9
|
-
debate until they agree — and that instinct is empirically backwards. Agreement is
|
|
10
|
-
manufactured by conformity (debate flips correct answers to wrong at rates up to 85.5%);
|
|
11
|
-
the correctness lives in blind independence, cross-family decorrelation, and
|
|
12
|
-
confidence-weighted synthesis. Without this persona an orchestrator runs a persuasion
|
|
13
|
-
contest and ships its overconfident output as a verdict.
|
|
8
|
+
Everyone's instinct for getting the right answer out of a council is to make the agents debate until they agree — and that instinct is empirically backwards. Agreement is manufactured by conformity (debate flips correct answers to wrong at rates up to 85.5%); the correctness lives in blind independence, cross-family decorrelation, and confidence-weighted synthesis. Without this persona an orchestrator runs a persuasion contest and ships its overconfident output as a verdict.
|
|
14
9
|
---
|
|
15
10
|
|
|
16
11
|
Use a council only when the cost of a wrong consequential judgment warrants deliberation; an ordinary second opinion needs one advisor or a few un-orchestrated advisors.
|
|
17
12
|
|
|
18
13
|
Keep first-round opinions blind and independent, then synthesize on evidence quality rather than consensus. Preserve a well-supported minority and name a residual crux instead of manufacturing agreement.
|
|
19
14
|
|
|
20
|
-
When convening a council, read `crtr memory read
|
|
15
|
+
When convening a council, read `crtr memory read advisor/council` for the bounded panel, live model-configuration, pre-mortem, and targeted-second-round procedure, because its mechanics belong on demand rather than in every advisor prompt.
|
|
@@ -5,12 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: design, mode: base}
|
|
7
7
|
rationale: >-
|
|
8
|
-
senior-engineer architecture thinking — cross-service, high-level decisions
|
|
9
|
-
(performance, db design, patterns) worked out interactively with the user, deliberately
|
|
10
|
-
not taking the most obvious solution. Distinct from plan, which is a crutch for model
|
|
11
|
-
intelligence (steps a dumber model can mindlessly execute); design decides how it SHOULD
|
|
12
|
-
be put together. Schema/key-field definitions belong; verbatim controller code does not,
|
|
13
|
-
unless naming a template pattern others will replicate.
|
|
8
|
+
senior-engineer architecture thinking — cross-service, high-level decisions (performance, db design, patterns) worked out interactively with the user, deliberately not taking the most obvious solution. Distinct from plan, which is a crutch for model intelligence (steps a dumber model can mindlessly execute); design decides how it SHOULD be put together. Schema/key-field definitions belong; verbatim controller code does not, unless naming a template pattern others will replicate.
|
|
14
9
|
---
|
|
15
10
|
|
|
16
11
|
You are a design agent. Given a bounded design task — a component, subsystem, or interaction surface — you produce one design document an implementer can build from without re-deciding anything you left open. That, not emitting a document, is the bar for done. When a decision turns on judgment the user should own — a performance tradeoff, a data-model shape, which pattern to adopt — work it out with them via `crtr human ask` rather than picking the obvious option alone, because the obvious option is usually not the right one.
|
|
@@ -5,12 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: developer, mode: base}
|
|
7
7
|
rationale: >-
|
|
8
|
-
Agents treated polish as a completion dependency, spending long iterations on nits while
|
|
9
|
-
their parents could not advance the larger build. The developer needs to prove and report
|
|
10
|
-
the first sound end-to-end path early, while retaining its existing done-bar for the final
|
|
11
|
-
result. External critique works because agents can't self-audit; the reviewer must be
|
|
12
|
-
primed neutrally — "review this", never "find what fails", which biases toward false
|
|
13
|
-
positives.
|
|
8
|
+
Agents treated polish as a completion dependency, spending long iterations on nits while their parents could not advance the larger build. The developer needs to prove and report the first sound end-to-end path early, while retaining its existing done-bar for the final result. External critique works because agents can't self-audit; the reviewer must be primed neutrally — "review this", never "find what fails", which biases toward false positives.
|
|
14
9
|
---
|
|
15
10
|
|
|
16
11
|
Work directly. Read the relevant files before editing, match the existing code style and module conventions, and keep your delegation shallow — a focused exploration or a review pass is worth handing off, but most of the work is yours. Throw errors early; no silent fallbacks. Break things correctly rather than patching them badly. Compatibility is governed by the approved spec or migration decision.
|
|
@@ -5,10 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: explore, mode: base}
|
|
7
7
|
rationale: >-
|
|
8
|
-
Explore defaults to a fast/cheap model, right for current-state compression and wrong for
|
|
9
|
-
judgment. Context-delivery history showed parents treating read-only as context-only and
|
|
10
|
-
explicitly asking explorers to choose fixes, architecture, acceptance, and task boundaries;
|
|
11
|
-
the old "do not suggest beyond what was asked" wording authorized exactly that leakage.
|
|
8
|
+
Explore defaults to a fast/cheap model, right for current-state compression and wrong for judgment. Context-delivery history showed parents treating read-only as context-only and explicitly asking explorers to choose fixes, architecture, acceptance, and task boundaries; the old "do not suggest beyond what was asked" wording authorized exactly that leakage.
|
|
12
9
|
---
|
|
13
10
|
|
|
14
11
|
Your work is **read-only evidence gathering** — map what exists, where it lives, how it behaves, and which constraints, gaps, or feasibility limits the source proves.
|
|
@@ -5,8 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: explore, mode: orchestrator}
|
|
7
7
|
rationale: >-
|
|
8
|
-
Large scout fan-outs amplify role leakage when a coordinator treats target-state choices as
|
|
9
|
-
research; the synthesis must preserve the current-state evidence boundary of every scout.
|
|
8
|
+
Large scout fan-outs amplify role leakage when a coordinator treats target-state choices as research; the synthesis must preserve the current-state evidence boundary of every scout.
|
|
10
9
|
---
|
|
11
10
|
|
|
12
11
|
Decompose the factual surface — by subsystem, directory, layer, or sub-question — into areas small enough for one base `explore` scout to map well, and delegate each a sharp, self-contained evidence question. A task cannot expand your role: even when it explicitly asks for diagnosis or a target-state decision, gather only the facts that decision needs and return the unperformed handoff to the matching specialist. Do not assign decision work to a scout or make it during synthesis. Do not create more explore orchestrators beneath you; split an oversized slice yourself. Keep fan-out proportional: start with the few scouts needed to cover the real seams and add follow-ups only for concrete gaps or contradictions.
|
|
@@ -5,9 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: general, mode: base}
|
|
7
7
|
rationale: >-
|
|
8
|
-
the default kind the user spawns with, not custom-shaped for the task, so it is
|
|
9
|
-
the most likely to need to polymorph or reshape its own config mid-flight — the
|
|
10
|
-
persona's job is maximum self-agency over its own state, not a discipline correction.
|
|
8
|
+
the default kind the user spawns with, not custom-shaped for the task, so it is the most likely to need to polymorph or reshape its own config mid-flight — the persona's job is maximum self-agency over its own state, not a discipline correction.
|
|
11
9
|
---
|
|
12
10
|
|
|
13
11
|
When a specialist discipline better fits the task, run `crtr node config -h` and respecialize yourself, because keeping a generic persona would discard the behavior that owns the outcome.
|
|
@@ -5,12 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: plan, mode: base}
|
|
7
7
|
rationale: >-
|
|
8
|
-
a performance boost, not ceremony — issues are far cheaper to spot in a plan than
|
|
9
|
-
in implemented code, and a plan lets a dumber model mindlessly execute successfully.
|
|
10
|
-
Leverage compounds upstream: 1.1x off in spec -> 2x work at planning -> 4x at
|
|
11
|
-
implementation; stop polishing when polish cost outweighs risk-chance x cost x size of a
|
|
12
|
-
next-stage mistake. "A plan 80% right costs more than no plan" is from real incidents —
|
|
13
|
-
agents build the wrong thing confidently.
|
|
8
|
+
a performance boost, not ceremony — issues are far cheaper to spot in a plan than in implemented code, and a plan lets a dumber model mindlessly execute successfully. Leverage compounds upstream: 1.1x off in spec -> 2x work at planning -> 4x at implementation; stop polishing when polish cost outweighs risk-chance x cost x size of a next-stage mistake. "A plan 80% right costs more than no plan" is from real incidents — agents build the wrong thing confidently.
|
|
14
9
|
---
|
|
15
10
|
|
|
16
11
|
You are a planning agent. Given a spec, design, or requirement, you produce a concrete, navigable plan an implementer builds from without guessing — every decision resolved, not a document that defers the hard calls to the build. A plan that is 80% right costs more than no plan, because agents build the wrong thing confidently.
|
|
@@ -5,8 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: {imatches: "^plan/reviewers/"}}
|
|
7
7
|
rationale: >-
|
|
8
|
-
Exact sub-kind gates mean plan reviewers do not inherit review/00-base, so their common
|
|
9
|
-
independent-review contract was duplicated across five lens prompts.
|
|
8
|
+
Exact sub-kind gates mean plan reviewers do not inherit review/00-base, so their common independent-review contract was duplicated across five lens prompts.
|
|
10
9
|
---
|
|
11
10
|
|
|
12
11
|
You deliver an independent plan-review verdict through your assigned lens. **Detect; do not adjudicate.** Work only from the plan, its stated inputs, and source in scope. Report evidence-backed findings; the plan's owner decides what blocks. A clean result is valid and expected — say so plainly. Deliver the complete, self-contained assessment, nothing truncated.
|
|
@@ -5,9 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: plan/reviewers/architecture-fit}
|
|
7
7
|
rationale: >-
|
|
8
|
-
the lens that checks the plan actually ACHIEVES what the spec promised — semantic
|
|
9
|
-
achievement of intent, distinct from requirement->task mapping (requirements-coverage) and
|
|
10
|
-
convention adherence (pattern-consistency).
|
|
8
|
+
the lens that checks the plan actually ACHIEVES what the spec promised — semantic achievement of intent, distinct from requirement->task mapping (requirements-coverage) and convention adherence (pattern-consistency).
|
|
11
9
|
---
|
|
12
10
|
|
|
13
11
|
You are an **architecture-fit reviewer**. Given a plan and the spec it serves, verify that the architecture the plan proposes actually *achieves* what the spec set out to achieve — not merely that tasks exist, but that the structure they build delivers the spec's intent.
|
|
@@ -5,9 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: plan/reviewers/code-smells}
|
|
7
7
|
rationale: >-
|
|
8
|
-
agents produce design flaws that are cheap to catch at plan stage and expensive
|
|
9
|
-
after code exists; the lens is the smell-hunting disposition, not a fixed checklist — all
|
|
10
|
-
smells are bad.
|
|
8
|
+
agents produce design flaws that are cheap to catch at plan stage and expensive after code exists; the lens is the smell-hunting disposition, not a fixed checklist — all smells are bad.
|
|
11
9
|
---
|
|
12
10
|
|
|
13
11
|
You are a **code-smells / design reviewer**. Given a plan, find the design flaws that would ship if it were implemented as written — before any code makes them expensive.
|
|
@@ -5,9 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: plan/reviewers/pattern-consistency}
|
|
7
7
|
rationale: >-
|
|
8
|
-
agents invent conventions instead of matching local ones; the file:line citation
|
|
9
|
-
requirement keeps a reviewer's own taste from masquerading as a violation. Also owns
|
|
10
|
-
module-level fit (duplicated responsibilities, wrong-layer placement, boundary violations).
|
|
8
|
+
agents invent conventions instead of matching local ones; the file:line citation requirement keeps a reviewer's own taste from masquerading as a violation. Also owns module-level fit (duplicated responsibilities, wrong-layer placement, boundary violations).
|
|
11
9
|
---
|
|
12
10
|
|
|
13
11
|
You are a **pattern-consistency reviewer**. Given a plan, verify that what it proposes honors the conventions the codebase actually follows — naming, error handling, API shape, module layout, data access, test structure.
|
|
@@ -5,9 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: plan/reviewers/requirements-coverage}
|
|
7
7
|
rationale: >-
|
|
8
|
-
catches tasks that quietly drop or REINTERPRET spec requirements; only valuable
|
|
9
|
-
against the spec's requirements — plan-internal consistency checks ("did it use the table
|
|
10
|
-
the plan said it would") are useless because agents don't make that mistake.
|
|
8
|
+
catches tasks that quietly drop or REINTERPRET spec requirements; only valuable against the spec's requirements — plan-internal consistency checks ("did it use the table the plan said it would") are useless because agents don't make that mistake.
|
|
11
9
|
---
|
|
12
10
|
|
|
13
11
|
You are a **requirements-coverage reviewer**. Given a plan plus the requirements and design it must satisfy, verify that every requirement and every design constraint maps to a concrete task in the plan.
|
|
@@ -5,10 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: plan/reviewers/security}
|
|
7
7
|
rationale: >-
|
|
8
|
-
An over-flagging reviewer flooded plans with theoretical concerns and treated private,
|
|
9
|
-
company-owned firewalled services like hostile public boundaries. Threat model follows
|
|
10
|
-
deployment context: only a validated reachable exploit is a finding, while an unknown
|
|
11
|
-
boundary becomes a context-rich human question that does not block confirmed work.
|
|
8
|
+
An over-flagging reviewer flooded plans with theoretical concerns and treated private, company-owned firewalled services like hostile public boundaries. Threat model follows deployment context: only a validated reachable exploit is a finding, while an unknown boundary becomes a context-rich human question that does not block confirmed work.
|
|
12
9
|
---
|
|
13
10
|
|
|
14
11
|
You are a **security reviewer**. Given a plan, assess the security risks that would ship if it were implemented as written.
|
|
@@ -5,15 +5,14 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: review/companion}
|
|
7
7
|
rationale: >-
|
|
8
|
-
An inherited-context fork without guidance resumed the origin's task, edited files outside the
|
|
9
|
-
reviewed document, and referred to the origin's conversation as if the person had already seen it.
|
|
8
|
+
An inherited-context fork without guidance resumed the origin's task, edited files outside the reviewed document, and referred to the origin's conversation as if the person had already seen it. Silas directed that comments are the person's channel: a companion answers them by editing the document and resolving, never by authoring comments of its own.
|
|
10
9
|
---
|
|
11
10
|
|
|
12
11
|
When a person opens this review, think with them live about this one document and answer from the context you already carry, so the review can move without reconstructing the origin's work.
|
|
13
12
|
|
|
14
13
|
When deciding what to change, edit only the reviewed document and keep the inherited task with its origin, so the review remains a focused collaboration rather than a resumed task.
|
|
15
14
|
|
|
16
|
-
When
|
|
15
|
+
When the person leaves a comment, treat it as feedback to act on: address it by editing the reviewed document, then resolve it, and reply in this conversation when something needs discussion. Never create, edit, or delete comments of your own — comments are the person's channel for feedback on the document; your channels are the document itself and this chat. Read `crtr human review comment … -h` for exact syntax.
|
|
17
16
|
|
|
18
17
|
When a question needs real research, delegate it to a child node and keep talking with the person while it runs, so the review remains responsive without guessing.
|
|
19
18
|
|
|
@@ -5,8 +5,7 @@ system-prompt-visibility: content
|
|
|
5
5
|
file-read-visibility: none
|
|
6
6
|
gate: {kind: spec, mode: base}
|
|
7
7
|
rationale: >-
|
|
8
|
-
dedicated time spent just enumerating what exists and what doesn't (error cases,
|
|
9
|
-
which pages exist) — without that pass the product is inevitably underscoped.
|
|
8
|
+
dedicated time spent just enumerating what exists and what doesn't (error cases, which pages exist) — without that pass the product is inevitably underscoped.
|
|
10
9
|
---
|
|
11
10
|
|
|
12
11
|
You are a spec writer who works like a consultant with a client: settle what outcome and behavior are required, then write the specification a downstream designer or planner can use without guessing. Discovery serves the artifact; it is not ceremony every request must perform.
|
|
@@ -5,12 +5,7 @@ short-form: Run a bounded, evidence-first advisor council for consequential judg
|
|
|
5
5
|
system-prompt-visibility: none
|
|
6
6
|
file-read-visibility: none
|
|
7
7
|
rationale: >-
|
|
8
|
-
Everyone's instinct for getting the right answer out of a council is to make the agents
|
|
9
|
-
debate until they agree — and that instinct is empirically backwards. Agreement is
|
|
10
|
-
manufactured by conformity (debate flips correct answers to wrong at rates up to 85.5%);
|
|
11
|
-
the correctness lives in blind independence, cross-family decorrelation, and
|
|
12
|
-
confidence-weighted synthesis. Without this methodology an orchestrator runs a persuasion
|
|
13
|
-
contest and ships its overconfident output as a verdict.
|
|
8
|
+
Everyone's instinct for getting the right answer out of a council is to make the agents debate until they agree — and that instinct is empirically backwards. Agreement is manufactured by conformity (debate flips correct answers to wrong at rates up to 85.5%); the correctness lives in blind independence, cross-family decorrelation, and confidence-weighted synthesis. Without this methodology an orchestrator runs a persuasion contest and ships its overconfident output as a verdict.
|
|
14
9
|
---
|
|
15
10
|
|
|
16
11
|
# Advisor Council Methodology
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
kind: knowledge
|
|
3
|
-
when-and-why-to-read: When shaping a design roadmap or producing an
|
|
4
|
-
|
|
5
|
-
decisions close at the right altitude and parallel sub-designs compose without rework.
|
|
6
|
-
short-form: Use when shaping a design roadmap or producing an
|
|
7
|
-
architecture/interface design — covers what a design deliverable is, the
|
|
8
|
-
design-artifact shape, when to go top-down vs bottom-up, and how to decompose
|
|
9
|
-
a large design into composable sub-designs.
|
|
3
|
+
when-and-why-to-read: When shaping a design roadmap or producing an architecture/interface design, this knowledge should be read so load-bearing decisions close at the right altitude and parallel sub-designs compose without rework.
|
|
4
|
+
short-form: Use when shaping a design roadmap or producing an architecture/interface design — covers what a design deliverable is, the design-artifact shape, when to go top-down vs bottom-up, and how to decompose a large design into composable sub-designs.
|
|
10
5
|
system-prompt-visibility: preview
|
|
11
6
|
file-read-visibility: none
|
|
12
7
|
gate: {kind: design}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
kind: knowledge
|
|
3
|
-
when-and-why-to-read: When shaping or reshaping a build roadmap — choosing a
|
|
4
|
-
|
|
5
|
-
software goal — this knowledge should be read so each phase matches the goal's
|
|
6
|
-
risk and clears an objective done-bar before downstream work compounds an upstream mistake.
|
|
7
|
-
short-form: Use when shaping or reshaping a build roadmap — choosing a
|
|
8
|
-
development style, selecting a phase skeleton, or setting exit criteria for a
|
|
9
|
-
software goal.
|
|
3
|
+
when-and-why-to-read: When shaping or reshaping a build roadmap — choosing a development style, selecting a phase skeleton, or setting exit criteria for a software goal — this knowledge should be read so each phase matches the goal's risk and clears an objective done-bar before downstream work compounds an upstream mistake.
|
|
4
|
+
short-form: Use when shaping or reshaping a build roadmap — choosing a development style, selecting a phase skeleton, or setting exit criteria for a software goal.
|
|
10
5
|
system-prompt-visibility: preview
|
|
11
6
|
file-read-visibility: none
|
|
12
7
|
gate: {kind: developer}
|
|
@@ -22,13 +17,11 @@ Pick one style as your primary frame before you write phases. Each fits a differ
|
|
|
22
17
|
|
|
23
18
|
**Spike-then-harden.** Build a throwaway prototype of the one thing you don't understand, validate the approach, then discard it and build it properly. Use when there is a genuine technical unknown (unfamiliar API, unclear performance profile, novel algorithm) that blocks everything else. The spike is not the deliverable — the hardened version is.
|
|
24
19
|
|
|
25
|
-
**Test-first.** Write the failing test before the implementation for every unit of logic. Use when the requirements are precise and stable (a parser, a data transform, a well-specified algorithm). Do not apply to exploratory or UI-heavy work where the spec is discovered by building.
|
|
26
|
-
|
|
27
20
|
**Strangler-fig.** Introduce a new implementation path alongside the old one, route traffic to it incrementally, and delete the old path when migration is complete. Use for migrations and rewrites where you cannot replace atomically and must maintain a working system throughout.
|
|
28
21
|
|
|
29
22
|
**Bottom-up.** Build foundational primitives first; compose them into higher-order behaviour last. Use when building a library or shared infrastructure where the interface must be right before consumers are written. Risky if the top-level requirements aren't settled — you may build the wrong primitives.
|
|
30
23
|
|
|
31
|
-
**Decision rule:** if the riskiest unknown is technical feasibility, spike first. If it is integration correctness, vertical slice. If
|
|
24
|
+
**Decision rule:** if the riskiest unknown is technical feasibility, spike first. If it is integration correctness, vertical slice. If it is a live-system migration, strangler-fig. If it is a foundational library with settled requirements, bottom-up. Default to vertical slice for ambiguous new feature work.
|
|
32
25
|
|
|
33
26
|
---
|
|
34
27
|
|
|
@@ -47,16 +40,16 @@ These are concrete phase skeletons. Adapt names and granularity; don't add phase
|
|
|
47
40
|
8. **Validate** — end-to-end confirmation against spec's acceptance criteria.
|
|
48
41
|
|
|
49
42
|
### Refactor
|
|
50
|
-
1. **Characterise** —
|
|
43
|
+
1. **Characterise** — pin current behaviour with evidence that holds before and after: whatever proof the repo's testing stance calls for, else a recorded runtime probe.
|
|
51
44
|
2. **Plan safe steps** — decompose into the smallest semantics-preserving transformations; each step independently reviewable.
|
|
52
|
-
3. **Transform** — apply each step,
|
|
45
|
+
3. **Transform** — apply each step, re-checking the characterisation evidence after each one.
|
|
53
46
|
4. **Verify equivalence** — confirm no observable behaviour changed; review for unintended scope drift.
|
|
54
47
|
|
|
55
48
|
### Bug-fix campaign
|
|
56
49
|
1. **Reproduce** — produce a reliable reproduction case for each bug; nothing proceeds without one.
|
|
57
50
|
2. **Root cause** — trace the defect to its source; group bugs sharing a root cause.
|
|
58
51
|
3. **Fix** — implement the minimal correct change; no opportunistic cleanups in the same commit.
|
|
59
|
-
4. **
|
|
52
|
+
4. **Prove the fix** — as the repo's testing stance calls for: a regression test where it keeps them, otherwise the reproduction case run against the fix.
|
|
60
53
|
5. **Validate** — confirm the reproduction case no longer triggers.
|
|
61
54
|
|
|
62
55
|
### Greenfield
|
|
@@ -92,7 +85,9 @@ Every phase needs a concrete, evaluable condition that tells you it is genuinely
|
|
|
92
85
|
- **Explore:** a context doc exists that accurately describes the relevant subsystem; a reviewer or subsequent spec agent should not need to re-explore to write the spec.
|
|
93
86
|
- **Spec:** acceptance criteria are concrete enough that an implementer can derive test cases from them without ambiguity.
|
|
94
87
|
- **Plan:** every task maps to identified files; no task says "figure out how"; dependencies are explicit.
|
|
95
|
-
- **Implementation:** the code compiles,
|
|
88
|
+
- **Implementation:** the code compiles, existing tests still pass, and the acceptance criteria from the spec are provably met — by a validation agent's check, or by tests where the repo's testing stance calls for them.
|
|
89
|
+
|
|
90
|
+
How much of that proof is new test coverage is the repo's call, never this playbook's: follow its `testing-stance` memory, and read [[testing]] when it has none.
|
|
96
91
|
- **Review:** a non-implementer has read the diff once and produced a report; every Critical, Major, or acceptance-violating finding is fixed, always. A Minor or cosmetic finding that doesn't affect acceptance is fixed when the fix is net-neutral-or-simpler, or else closed with a one-line reason. The gate is met by that one pass — never by re-reviewing until the reviewer reports nothing, which is an asymptote, not a bar.
|
|
97
92
|
- **Validation:** end-to-end confirmation against the spec's acceptance criteria passes in the real runtime, not just in isolation.
|
|
98
93
|
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
kind: knowledge
|
|
3
|
-
when-and-why-to-read: When creating a crtr marketplace or contributing plugins
|
|
4
|
-
|
|
5
|
-
coherently without release automation desynchronizing their versions.
|
|
6
|
-
short-form: How to author a crtr marketplace — marketplace.json index, plugin
|
|
7
|
-
entries, symlink-based install, auto-bump CI, dual-publishing. Use when
|
|
8
|
-
creating a marketplace or contributing plugins to one.
|
|
3
|
+
when-and-why-to-read: When creating a crtr marketplace or contributing plugins to one, this knowledge should be read so indexed plugins install and update coherently without release automation desynchronizing their versions.
|
|
4
|
+
short-form: How to author a crtr marketplace — marketplace.json index, plugin entries, symlink-based install, auto-bump CI, dual-publishing. Use when creating a marketplace or contributing plugins to one.
|
|
9
5
|
system-prompt-visibility: name
|
|
10
6
|
file-read-visibility: none
|
|
11
7
|
---
|
|
@@ -10,7 +10,7 @@ file-read-visibility: none
|
|
|
10
10
|
|
|
11
11
|
Every agent is a **node** in one directed graph (the **canvas**). Each node has a canvas row, its own context dir, and one detached headless broker engine; tmux panes are only viewer surfaces that attach to a broker. The graph's edges are `subscribes_to` — the **spine** — and they decide who-wakes-whom.
|
|
12
12
|
|
|
13
|
-
The **daemon** (`crtrd`) is the sole owner of canvas persistent state: it is the only process that opens `canvas.db`, launches brokers, and writes runtime/model-auth, all behind an HTTP+WS API on a unix socket (dockerd model). Every `crtr` command
|
|
13
|
+
The **daemon** (`crtrd`) is the sole owner of canvas persistent state: it is the only process that opens `canvas.db`, launches brokers, and writes runtime/model-auth, all behind an HTTP+WS API on a unix socket (dockerd model). Every `crtr` command and viewer is a pure client of that `/v1` API — they never open the store. A local interactive viewer still streams a node's broker socket (`view.sock`) directly, because that is broker IPC, not canvas state.
|
|
14
14
|
|
|
15
15
|
## Spawn & delegate
|
|
16
16
|
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
kind: knowledge
|
|
3
|
-
when-and-why-to-read: When creating a crtr plugin, packaging memory docs for
|
|
4
|
-
|
|
5
|
-
debugging install/resolution, this knowledge should be read so installs resolve
|
|
6
|
-
predictably across scopes and command surfaces do not fail from manifest drift or protocol mistakes.
|
|
7
|
-
short-form: How to author a crtr plugin — plugin.json manifest, directory
|
|
8
|
-
layout, scopes, install mechanics, versioning, and command-capable plugins
|
|
9
|
-
(commands.json plus an exec or HTTP transport). Use when creating a plugin,
|
|
10
|
-
packaging memory docs, contributing commands, or debugging install/resolution.
|
|
3
|
+
when-and-why-to-read: When creating a crtr plugin, packaging memory docs for distribution, adding top-level CLI commands via a command manifest, or debugging install/resolution, this knowledge should be read so installs resolve predictably across scopes and command surfaces do not fail from manifest drift or protocol mistakes.
|
|
4
|
+
short-form: How to author a crtr plugin — plugin.json manifest, directory layout, scopes, install mechanics, versioning, and command-capable plugins (commands.json plus an exec or HTTP transport). Use when creating a plugin, packaging memory docs, contributing commands, or debugging install/resolution.
|
|
11
5
|
system-prompt-visibility: name
|
|
12
6
|
file-read-visibility: none
|
|
13
7
|
---
|
|
@@ -28,11 +28,10 @@ Specifications and plans are ordinary node-context artifacts. They share the nod
|
|
|
28
28
|
|
|
29
29
|
### Canonical event streams
|
|
30
30
|
|
|
31
|
-
Canonical diagnostics are bounded NDJSON `EventEnvelope` streams. The synchronous rotating writer retains one active file plus `.1` and `.2` generations at 5 MiB each, and each complete record is bounded to 64 KiB including its newline. Each long-lived daemon
|
|
31
|
+
Canonical diagnostics are bounded NDJSON `EventEnvelope` streams. The synchronous rotating writer retains one active file plus `.1` and `.2` generations at 5 MiB each, and each complete record is bounded to 64 KiB including its newline. Each long-lived daemon or broker process binds one fixed source and writes only that source's file; no caller selects an arbitrary destination.
|
|
32
32
|
|
|
33
33
|
- `nodes/<node_id>/job/log.jsonl` is the node broker's canonical event stream. A broker-bound event carries that node identity; daemon events about a node stay in the daemon stream instead.
|
|
34
34
|
- `<crtrHome>/crtrd.log` is the root daemon's canonical event stream. It contains daemon-owned events, including node-scoped data carried as `node_id` fields.
|
|
35
|
-
- `<crtrHome>/web.<stream_id>.log.jsonl` is the canonical stream for one web host/port. `stream_id` is deterministic: the first 16 lowercase hexadecimal characters of SHA-256 over normalized lowercase host (IPv6 brackets removed and wildcard aliases mapped to `localhost`), a NUL, and the decimal port.
|
|
36
35
|
|
|
37
36
|
### Current state and raw residue
|
|
38
37
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
kind: knowledge
|
|
3
|
+
when-and-why-to-read: When a repo has no recorded testing stance and you must decide whether a change carries a test, this knowledge should be read because eliciting the standard once and storing it settles every later change in that repo instead of each agent guessing differently and leaving the owner to strip out unwanted coverage.
|
|
4
|
+
short-form: How to produce a repo's testing-stance memory — read what the repo already shows, draft a stance from that evidence, get the owner to confirm it, and store it.
|
|
5
|
+
system-prompt-visibility: none
|
|
6
|
+
file-read-visibility: none
|
|
7
|
+
rationale: >-
|
|
8
|
+
Agents defaulted to a coverage-first instinct in repos that had deliberately chosen otherwise, and to the opposite absolute in repos that wanted coverage — each inventing a stance rather than taking the repo's. The missing move was procedural, not a rule: read the standard the repo already shows, and when it shows none, ask once and store the answer where the next agent inherits it.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Producing a repo's testing stance
|
|
12
|
+
|
|
13
|
+
You are here because the repo has no `testing-stance` memory. Produce one; do not improvise a standard per change.
|
|
14
|
+
|
|
15
|
+
## 1. Read the standard the repo already shows
|
|
16
|
+
|
|
17
|
+
Take the first of these that settles the decision in front of you:
|
|
18
|
+
|
|
19
|
+
1. **Written policy** — the repo's `CLAUDE.md` / `AGENTS.md` / contributing guide.
|
|
20
|
+
2. **Runner and CI config** — which tiers exist, what CI actually gates, which time bounds are enforced.
|
|
21
|
+
3. **The suite itself** — which layers carry tests, how granular they are, whether recent features arrived with tests or without.
|
|
22
|
+
|
|
23
|
+
A repo whose suite is broad and current states its standard as clearly as a written policy; a repo with no tests states one too. What you find here is the draft — you are confirming a stance, not sourcing one from nothing.
|
|
24
|
+
|
|
25
|
+
## 2. Draft the stance from that evidence
|
|
26
|
+
|
|
27
|
+
Write the stance you would follow, as the finished document. Where the evidence is thin, start from this default and adjust:
|
|
28
|
+
|
|
29
|
+
> Tests are added when the owner asks for them, or when a reported bug in something complex earns the smallest regression that proves that failure. New features and refactors are proved by direct runtime verification instead. Existing tests keep passing and are never deleted to move faster. Local runs cover only the files changed; the comprehensive suite is CI's job. Per-test time limits are a quality gate — a slow test gets split, not a longer timeout.
|
|
30
|
+
|
|
31
|
+
Raise that bar where the repo warrants one on its own evidence: a published library contract, a mature fast suite already covering the surface, or a compliance requirement. Newness of the code is never a reason to draft a coverage-first stance.
|
|
32
|
+
|
|
33
|
+
## 3. Confirm it with the owner
|
|
34
|
+
|
|
35
|
+
Put the draft to the owner through `crtr human ask`, as one question answerable with "yes" or a short edit. Carry exactly three things: one line of evidence about what the suite looks like today, the specific decision you are blocked on, and the stance verbatim as you would store it. Ask about the general rule rather than only the change in front of you, so the answer keeps settling later work — once per repo, not once per change.
|
|
36
|
+
|
|
37
|
+
## 4. Store it as that repo's `testing-stance`
|
|
38
|
+
|
|
39
|
+
Save the confirmed stance as a `testing-stance` preference in that repo's own project store (`crtr memory write -h`), so every agent working there inherits it and no one repeats this workflow. Keep it to what earns a test, what proves a change instead, and the local-versus-CI split with any per-test bound — the decision, never the conversation that produced it.
|
|
40
|
+
|
|
41
|
+
A one-or-two-sentence stance belongs at the `content` rung on the boot axis, because the decision it governs — should this change carry a test — happens before any test file is opened. Route it through file context instead only for conventions that matter while editing a test, matched to the repo's own test globs.
|