@crouton-kit/crouter 0.3.32 → 0.3.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/build-root.js +1 -0
- package/dist/builtin-memory/crouter-development/marketplaces.md +2 -2
- package/dist/builtin-memory/crouter-development/personas/base-prompt.md +2 -2
- package/dist/builtin-memory/crouter-development/personas/orchestrator-prompt.md +5 -5
- package/dist/builtin-memory/crouter-development/personas.md +3 -4
- package/dist/builtin-memory/crouter-development/plugins.md +18 -18
- package/dist/builtin-memory/design.md +4 -1
- package/dist/builtin-memory/development.md +4 -1
- package/dist/builtin-memory/internal/INDEX.md +1 -1
- package/dist/builtin-memory/internal/nodes-and-canvas.md +6 -6
- package/dist/builtin-memory/internal/storage-tiers.md +5 -5
- package/dist/builtin-memory/planning.md +4 -1
- package/dist/builtin-memory/product.md +80 -0
- package/dist/builtin-memory/spec.md +4 -1
- package/dist/builtin-personas/advisor/PERSONA.md +10 -0
- package/dist/builtin-personas/design/PERSONA.md +2 -2
- package/dist/builtin-personas/design/orchestrator.md +3 -3
- package/dist/builtin-personas/developer/PERSONA.md +1 -1
- package/dist/builtin-personas/developer/orchestrator.md +2 -2
- package/dist/builtin-personas/explore/PERSONA.md +3 -3
- package/dist/builtin-personas/explore/orchestrator.md +4 -2
- package/dist/builtin-personas/general/PERSONA.md +1 -1
- package/dist/builtin-personas/general/orchestrator.md +1 -1
- package/dist/builtin-personas/orchestration-kernel.md +7 -14
- package/dist/builtin-personas/plan/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/orchestrator.md +2 -2
- package/dist/builtin-personas/plan/reviewers/architecture-fit/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/reviewers/code-smells/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/reviewers/pattern-consistency/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/reviewers/requirements-coverage/PERSONA.md +1 -1
- package/dist/builtin-personas/plan/reviewers/security/PERSONA.md +1 -1
- package/dist/builtin-personas/product/PERSONA.md +18 -0
- package/dist/builtin-personas/product/orchestrator.md +14 -0
- package/dist/builtin-personas/product/teardown/PERSONA.md +13 -0
- package/dist/builtin-personas/review/PERSONA.md +1 -1
- package/dist/builtin-personas/review/orchestrator.md +1 -1
- package/dist/builtin-personas/runtime-base.md +5 -0
- package/dist/builtin-personas/spec/PERSONA.md +1 -1
- package/dist/builtin-personas/spec/orchestrator.md +2 -2
- package/dist/builtin-personas/spec/requirements/PERSONA.md +1 -1
- package/dist/builtin-views/canvas/core.mjs +82 -1
- package/dist/builtin-views/canvas/tui.mjs +9 -5
- package/dist/builtin-views/canvas/web.jsx +3 -2
- package/dist/builtin-views/chat/core.mjs +725 -0
- package/dist/builtin-views/chat/text.mjs +101 -0
- package/dist/builtin-views/chat/tui.mjs +368 -0
- package/dist/builtin-views/chat/web.jsx +367 -0
- package/dist/builtin-views/prompt-review/core.mjs +863 -0
- package/dist/builtin-views/prompt-review/text.mjs +15 -0
- package/dist/builtin-views/prompt-review/tui.mjs +196 -0
- package/dist/builtin-views/prompt-review/web.jsx +484 -0
- package/dist/builtin-views/settings/core.mjs +397 -0
- package/dist/builtin-views/settings/text.mjs +40 -0
- package/dist/builtin-views/settings/tui.mjs +95 -0
- package/dist/builtin-views/settings/web.jsx +167 -0
- package/dist/cli.js +16 -3
- package/dist/clients/attach/__tests__/autocomplete-and-bash-mode.test.js +96 -0
- package/dist/clients/attach/__tests__/bash-bang-routing.test.js +58 -0
- package/dist/clients/attach/__tests__/bundle-pi-tui-dedup.test.d.ts +1 -0
- package/dist/clients/attach/__tests__/bundle-pi-tui-dedup.test.js +56 -0
- package/dist/clients/attach/__tests__/titled-editor.test.js +22 -1
- package/dist/clients/attach/attach-cmd.d.ts +18 -0
- package/dist/clients/attach/attach-cmd.js +1723 -795
- package/dist/clients/attach/canvas-panels.js +2 -2
- package/dist/clients/attach/chat-view.d.ts +10 -0
- package/dist/clients/attach/chat-view.js +23 -0
- package/dist/clients/attach/config-load.d.ts +8 -4
- package/dist/clients/attach/config-load.js +2 -0
- package/dist/clients/attach/extension-dialogs.d.ts +2 -3
- package/dist/clients/attach/extension-dialogs.js +7 -9
- package/dist/clients/attach/graph-overlay.js +3 -2
- package/dist/clients/attach/input-controller.d.ts +4 -3
- package/dist/clients/attach/input-controller.js +24 -3
- package/dist/clients/attach/slash-commands.d.ts +7 -7
- package/dist/clients/attach/slash-commands.js +38 -14
- package/dist/clients/attach/titled-editor.js +18 -14
- package/dist/clients/attach/view-socket.d.ts +2 -1
- package/dist/clients/attach/view-socket.js +27 -8
- package/dist/clients/web/__tests__/source-cache.test.d.ts +1 -0
- package/dist/clients/web/__tests__/source-cache.test.js +32 -0
- package/dist/clients/web/dev-server.js +1 -0
- package/dist/clients/web/events.js +9 -11
- package/dist/clients/web/server.d.ts +4 -3
- package/dist/clients/web/server.js +138 -31
- package/dist/clients/web/source-cache.d.ts +10 -0
- package/dist/clients/web/source-cache.js +57 -0
- package/dist/clients/web/web-cmd.js +28 -9
- package/dist/commands/__tests__/human.test.js +30 -28
- package/dist/commands/canvas-history/search.js +1 -1
- package/dist/commands/canvas-history.js +5 -8
- package/dist/commands/canvas-issue.d.ts +2 -0
- package/dist/commands/canvas-issue.js +148 -0
- package/dist/commands/canvas-prune.js +19 -0
- package/dist/commands/canvas-rebuild-index.d.ts +2 -0
- package/dist/commands/canvas-rebuild-index.js +57 -0
- package/dist/commands/canvas-snapshot.d.ts +2 -0
- package/dist/commands/canvas-snapshot.js +48 -0
- package/dist/commands/canvas-tmux-spread.d.ts +2 -0
- package/dist/commands/canvas-tmux-spread.js +188 -0
- package/dist/commands/canvas.d.ts +1 -0
- package/dist/commands/canvas.js +16 -1
- package/dist/commands/chord.js +143 -48
- package/dist/commands/daemon.js +3 -3
- package/dist/commands/human/prompts.d.ts +0 -1
- package/dist/commands/human/prompts.js +39 -54
- package/dist/commands/human/queue.d.ts +12 -1
- package/dist/commands/human/queue.js +468 -73
- package/dist/commands/human/shared.d.ts +3 -4
- package/dist/commands/human/shared.js +3 -3
- package/dist/commands/human.js +11 -10
- package/dist/commands/memory/find.js +3 -2
- package/dist/commands/memory/list.js +4 -3
- package/dist/commands/memory/read.js +3 -3
- package/dist/commands/memory/shared.d.ts +1 -4
- package/dist/commands/memory/shared.js +6 -9
- package/dist/commands/memory/write.js +3 -3
- package/dist/commands/memory.js +4 -7
- package/dist/commands/node-context.d.ts +2 -0
- package/dist/commands/node-context.js +172 -0
- package/dist/commands/node-snapshot.d.ts +2 -0
- package/dist/commands/node-snapshot.js +123 -0
- package/dist/commands/node.js +228 -52
- package/dist/commands/pkg/plugin-inspect.js +6 -6
- package/dist/commands/pkg/plugin-manage.js +1 -1
- package/dist/commands/pkg/plugin.js +2 -2
- package/dist/commands/pkg.js +2 -2
- package/dist/commands/push.d.ts +2 -0
- package/dist/commands/push.js +79 -11
- package/dist/commands/revive.js +74 -1
- package/dist/commands/search/answer.d.ts +1 -0
- package/dist/commands/search/answer.js +50 -0
- package/dist/commands/search/contents.d.ts +1 -0
- package/dist/commands/search/contents.js +96 -0
- package/dist/commands/search/exa.d.ts +53 -0
- package/dist/commands/search/exa.js +155 -0
- package/dist/commands/search/puremd.d.ts +11 -0
- package/dist/commands/search/puremd.js +53 -0
- package/dist/commands/search/web.d.ts +1 -0
- package/dist/commands/search/web.js +65 -0
- package/dist/commands/search.d.ts +2 -0
- package/dist/commands/search.js +24 -0
- package/dist/commands/sys/__tests__/sync-import.test.d.ts +1 -0
- package/dist/commands/sys/__tests__/sync-import.test.js +72 -0
- package/dist/commands/sys/config.js +59 -10
- package/dist/commands/sys/doctor.js +56 -4
- package/dist/commands/sys/prompt-review.d.ts +1 -0
- package/dist/commands/sys/prompt-review.js +178 -0
- package/dist/commands/sys/promptstudio.d.ts +2 -0
- package/dist/commands/sys/promptstudio.js +65 -0
- package/dist/commands/sys/settings.d.ts +2 -0
- package/dist/commands/sys/settings.js +16 -0
- package/dist/commands/sys/sync.js +311 -159
- package/dist/commands/sys/sysprompt.d.ts +1 -0
- package/dist/commands/sys/sysprompt.js +86 -0
- package/dist/commands/sys.js +9 -5
- package/dist/commands/view-new.js +2 -2
- package/dist/core/__tests__/artifact-paths.test.d.ts +1 -0
- package/dist/core/__tests__/artifact-paths.test.js +44 -0
- package/dist/core/__tests__/broker-preflight.test.d.ts +1 -0
- package/dist/core/__tests__/broker-preflight.test.js +85 -0
- package/dist/core/__tests__/broker-sdk-wiring.test.js +15 -0
- package/dist/core/__tests__/canvas.test.js +37 -1
- package/dist/core/__tests__/chat-view-reconnect.test.d.ts +1 -0
- package/dist/core/__tests__/chat-view-reconnect.test.js +70 -0
- package/dist/core/__tests__/child-death-wake.test.js +11 -2
- package/dist/core/__tests__/close.test.js +39 -1
- package/dist/core/__tests__/connection-reconnect-resume.test.d.ts +1 -0
- package/dist/core/__tests__/connection-reconnect-resume.test.js +37 -0
- package/dist/core/__tests__/context-intro.test.js +48 -14
- package/dist/core/__tests__/daemon-boot.test.js +182 -9
- package/dist/core/__tests__/editor-label.test.d.ts +1 -0
- package/dist/core/__tests__/editor-label.test.js +26 -0
- package/dist/core/__tests__/fault-marker.test.d.ts +1 -0
- package/dist/core/__tests__/fault-marker.test.js +112 -0
- package/dist/core/__tests__/fault-retry-rewind.test.d.ts +1 -0
- package/dist/core/__tests__/fault-retry-rewind.test.js +123 -0
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +30 -4
- package/dist/core/__tests__/fixtures/fake-engine.js +156 -17
- package/dist/core/__tests__/fixtures/fake-pi-host.js +10 -1
- package/dist/core/__tests__/full/human-new-window-regression.test.js +1 -1
- package/dist/core/__tests__/helpers/harness.d.ts +1 -1
- package/dist/core/__tests__/helpers/harness.js +2 -2
- package/dist/core/__tests__/human-stranded-deliver.test.js +38 -1
- package/dist/core/__tests__/human-surface-target.test.js +1 -1
- package/dist/core/__tests__/kickoff.test.js +18 -19
- package/dist/core/__tests__/memory-resolver.test.js +12 -1
- package/dist/core/__tests__/migration.test.js +49 -14
- package/dist/core/__tests__/model-ladders.test.d.ts +1 -0
- package/dist/core/__tests__/model-ladders.test.js +160 -0
- package/dist/core/__tests__/node-env.test.d.ts +1 -0
- package/dist/core/__tests__/node-env.test.js +26 -0
- package/dist/core/__tests__/push-final-guard.test.js +7 -1
- package/dist/core/__tests__/relaunch-root.test.js +9 -9
- package/dist/core/__tests__/revive.test.js +36 -6
- package/dist/core/__tests__/spawn-root.test.js +24 -1
- package/dist/core/__tests__/stop-guard.test.js +10 -0
- package/dist/core/__tests__/stranded-relaunch.test.d.ts +1 -0
- package/dist/core/__tests__/stranded-relaunch.test.js +72 -0
- package/dist/core/__tests__/tmux-surface.test.js +5 -1
- package/dist/core/__tests__/unknown-path.test.js +19 -19
- package/dist/core/__tests__/yield-ensures-daemon.test.d.ts +1 -0
- package/dist/core/__tests__/yield-ensures-daemon.test.js +54 -0
- package/dist/core/artifact.d.ts +2 -33
- package/dist/core/artifact.js +27 -87
- package/dist/core/bootstrap.js +2 -0
- package/dist/core/canvas/browse/__tests__/model.test.js +35 -1
- package/dist/core/canvas/browse/app.js +87 -17
- package/dist/core/canvas/browse/model.d.ts +10 -1
- package/dist/core/canvas/browse/model.js +37 -1
- package/dist/core/canvas/browse/render.js +35 -33
- package/dist/core/canvas/canvas.d.ts +7 -0
- package/dist/core/canvas/canvas.js +54 -5
- package/dist/core/canvas/db.js +35 -8
- package/dist/core/canvas/labels.d.ts +6 -8
- package/dist/core/canvas/labels.js +8 -11
- package/dist/core/canvas/nav-model.d.ts +5 -4
- package/dist/core/canvas/nav-model.js +31 -17
- package/dist/core/canvas/paths.d.ts +18 -1
- package/dist/core/canvas/paths.js +31 -2
- package/dist/core/canvas/render.d.ts +25 -0
- package/dist/core/canvas/render.js +96 -13
- package/dist/core/canvas/status-glyph.d.ts +35 -0
- package/dist/core/canvas/status-glyph.js +104 -0
- package/dist/core/canvas/types.d.ts +2 -2
- package/dist/core/config.js +114 -16
- package/dist/core/fault-classifier.d.ts +41 -0
- package/dist/core/fault-classifier.js +110 -0
- package/dist/core/feed/inbox.d.ts +15 -0
- package/dist/core/feed/inbox.js +40 -14
- package/dist/core/frontmatter.d.ts +1 -11
- package/dist/core/frontmatter.js +1 -55
- package/dist/core/hearth/config.d.ts +2 -0
- package/dist/core/hearth/config.js +75 -0
- package/dist/core/hearth/guest-env.d.ts +2 -0
- package/dist/core/hearth/guest-env.js +11 -0
- package/dist/core/hearth/index.d.ts +5 -0
- package/dist/core/hearth/index.js +5 -0
- package/dist/core/hearth/provider.d.ts +21 -0
- package/dist/core/hearth/provider.js +10 -0
- package/dist/core/hearth/providers/blaxel-bootstrap.d.ts +10 -0
- package/dist/core/hearth/providers/blaxel-bootstrap.js +39 -0
- package/dist/core/hearth/providers/blaxel-home.d.ts +11 -0
- package/dist/core/hearth/providers/blaxel-home.js +126 -0
- package/dist/core/hearth/providers/blaxel.d.ts +26 -0
- package/dist/core/hearth/providers/blaxel.js +208 -0
- package/dist/core/hearth/providers/types.d.ts +72 -0
- package/dist/core/hearth/providers/types.js +1 -0
- package/dist/core/hearth/registry.d.ts +15 -0
- package/dist/core/hearth/registry.js +179 -0
- package/dist/core/hearth/types.d.ts +121 -0
- package/dist/core/hearth/types.js +1 -0
- package/dist/core/host-exports/__tests__/export-prunes-boot-skill.test.d.ts +1 -0
- package/dist/core/host-exports/__tests__/export-prunes-boot-skill.test.js +79 -0
- package/dist/core/{skill-sync → host-exports}/builtins.d.ts +21 -13
- package/dist/core/host-exports/builtins.js +68 -0
- package/dist/core/{skill-sync → host-exports}/export.d.ts +9 -6
- package/dist/core/{skill-sync → host-exports}/export.js +37 -14
- package/dist/core/io.js +1 -1
- package/dist/core/log.d.ts +9 -0
- package/dist/core/log.js +113 -0
- package/dist/core/memory-resolver.d.ts +8 -8
- package/dist/core/memory-resolver.js +15 -28
- package/dist/core/personas/index.d.ts +4 -4
- package/dist/core/personas/index.js +2 -2
- package/dist/core/personas/loader.d.ts +51 -0
- package/dist/core/personas/loader.js +54 -50
- package/dist/core/personas/resolve.d.ts +43 -27
- package/dist/core/personas/resolve.js +336 -94
- package/dist/core/runtime/auth-reload.d.ts +7 -0
- package/dist/core/runtime/auth-reload.js +69 -0
- package/dist/core/runtime/bearings.d.ts +35 -15
- package/dist/core/runtime/bearings.js +305 -44
- package/dist/core/runtime/branded-host.d.ts +4 -2
- package/dist/core/runtime/branded-host.js +66 -4
- package/dist/core/runtime/broker-protocol.d.ts +38 -3
- package/dist/core/runtime/broker.js +343 -18
- package/dist/core/runtime/close.js +37 -29
- package/dist/core/runtime/connectivity.d.ts +12 -0
- package/dist/core/runtime/connectivity.js +73 -0
- package/dist/core/runtime/fault-recovery-nudge.d.ts +2 -0
- package/dist/core/runtime/fault-recovery-nudge.js +2 -0
- package/dist/core/runtime/fault-recovery.d.ts +23 -0
- package/dist/core/runtime/fault-recovery.js +74 -0
- package/dist/core/runtime/fault.d.ts +25 -0
- package/dist/core/runtime/fault.js +176 -0
- package/dist/core/runtime/front-door.d.ts +1 -1
- package/dist/core/runtime/front-door.js +2 -2
- package/dist/core/runtime/host.d.ts +10 -0
- package/dist/core/runtime/host.js +71 -9
- package/dist/core/runtime/kickoff.js +31 -45
- package/dist/core/runtime/launch.d.ts +32 -18
- package/dist/core/runtime/launch.js +148 -43
- package/dist/core/runtime/model-swap.d.ts +18 -0
- package/dist/core/runtime/model-swap.js +95 -0
- package/dist/core/runtime/naming.d.ts +7 -0
- package/dist/core/runtime/naming.js +61 -9
- package/dist/core/runtime/nodes.js +6 -1
- package/dist/core/runtime/persona.js +16 -17
- package/dist/core/runtime/placement.d.ts +36 -31
- package/dist/core/runtime/placement.js +149 -64
- package/dist/core/runtime/promote.d.ts +2 -0
- package/dist/core/runtime/promote.js +23 -3
- package/dist/core/runtime/recycle.js +6 -4
- package/dist/core/runtime/reset.d.ts +5 -2
- package/dist/core/runtime/reset.js +2 -2
- package/dist/core/runtime/revive.d.ts +4 -0
- package/dist/core/runtime/revive.js +27 -9
- package/dist/core/runtime/roadmap.d.ts +1 -1
- package/dist/core/runtime/roadmap.js +1 -1
- package/dist/core/runtime/spawn.d.ts +2 -2
- package/dist/core/runtime/spawn.js +30 -6
- package/dist/core/runtime/stop-guard.js +6 -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 +29 -6
- package/dist/core/runtime/tmux.js +134 -80
- package/dist/core/runtime/view-socket-client.d.ts +46 -0
- package/dist/core/runtime/view-socket-client.js +203 -0
- package/dist/core/substrate/index.d.ts +1 -1
- package/dist/core/substrate/index.js +1 -1
- package/dist/core/substrate/on-read.js +16 -4
- package/dist/core/substrate/render.d.ts +10 -13
- package/dist/core/substrate/render.js +56 -51
- package/dist/core/tui/host.js +83 -18
- package/dist/core/view/__tests__/transport-cache.test.d.ts +1 -0
- package/dist/core/view/__tests__/transport-cache.test.js +62 -0
- package/dist/core/view/contract.d.ts +20 -0
- package/dist/core/view/stream-local.d.ts +3 -0
- package/dist/core/view/stream-local.js +184 -0
- package/dist/core/view/transport-cache.d.ts +8 -0
- package/dist/core/view/transport-cache.js +38 -0
- package/dist/core/view/transport-local.js +4 -0
- package/dist/core/view/transport.d.ts +7 -1
- package/dist/daemon/crtrd.d.ts +3 -19
- package/dist/daemon/crtrd.js +139 -178
- package/dist/daemon/manage.d.ts +18 -1
- package/dist/daemon/manage.js +54 -9
- package/dist/hearth/wake-proxy/__tests__/anthropic-oauth.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/anthropic-oauth.test.js +289 -0
- package/dist/hearth/wake-proxy/__tests__/config-timeout.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/config-timeout.test.js +34 -0
- package/dist/hearth/wake-proxy/__tests__/guest-source.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/guest-source.test.js +203 -0
- package/dist/hearth/wake-proxy/__tests__/hardening.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/hardening.test.js +59 -0
- package/dist/hearth/wake-proxy/__tests__/hearth-status-route.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/hearth-status-route.test.js +372 -0
- package/dist/hearth/wake-proxy/__tests__/http-running-route-fast-path.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/http-running-route-fast-path.test.js +258 -0
- package/dist/hearth/wake-proxy/__tests__/model-auth-routes.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/model-auth-routes.test.js +437 -0
- package/dist/hearth/wake-proxy/__tests__/source-bridge-gate.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/source-bridge-gate.test.js +455 -0
- package/dist/hearth/wake-proxy/__tests__/static-asset-allowlist.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/static-asset-allowlist.test.js +15 -0
- package/dist/hearth/wake-proxy/__tests__/warm-path-concurrency.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/warm-path-concurrency.test.js +141 -0
- package/dist/hearth/wake-proxy/__tests__/ws-teardown-accounting.test.d.ts +1 -0
- package/dist/hearth/wake-proxy/__tests__/ws-teardown-accounting.test.js +143 -0
- package/dist/hearth/wake-proxy/anthropic-oauth.d.ts +58 -0
- package/dist/hearth/wake-proxy/anthropic-oauth.js +189 -0
- package/dist/hearth/wake-proxy/auth.d.ts +22 -0
- package/dist/hearth/wake-proxy/auth.js +128 -0
- package/dist/hearth/wake-proxy/config.d.ts +2 -0
- package/dist/hearth/wake-proxy/config.js +151 -0
- package/dist/hearth/wake-proxy/guest-source.d.ts +14 -0
- package/dist/hearth/wake-proxy/guest-source.js +130 -0
- package/dist/hearth/wake-proxy/hearth-status.d.ts +44 -0
- package/dist/hearth/wake-proxy/hearth-status.js +267 -0
- package/dist/hearth/wake-proxy/home.d.ts +67 -0
- package/dist/hearth/wake-proxy/home.js +297 -0
- package/dist/hearth/wake-proxy/main.d.ts +1 -0
- package/dist/hearth/wake-proxy/main.js +134 -0
- package/dist/hearth/wake-proxy/model-auth.d.ts +13 -0
- package/dist/hearth/wake-proxy/model-auth.js +345 -0
- package/dist/hearth/wake-proxy/proxy.d.ts +35 -0
- package/dist/hearth/wake-proxy/proxy.js +716 -0
- package/dist/hearth/wake-proxy/public-source-gate.d.ts +9 -0
- package/dist/hearth/wake-proxy/public-source-gate.js +409 -0
- package/dist/hearth/wake-proxy/redact.d.ts +1 -0
- package/dist/hearth/wake-proxy/redact.js +17 -0
- package/dist/hearth/wake-proxy/server.d.ts +11 -0
- package/dist/hearth/wake-proxy/server.js +142 -0
- package/dist/hearth/wake-proxy/state.d.ts +18 -0
- package/dist/hearth/wake-proxy/state.js +342 -0
- package/dist/hearth/wake-proxy/types.d.ts +76 -0
- package/dist/hearth/wake-proxy/types.js +1 -0
- package/dist/index.js +3 -2
- package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +6 -5
- package/dist/pi-extensions/canvas-context-intro.js +7 -7
- package/dist/pi-extensions/canvas-doc-substrate.js +19 -22
- package/dist/pi-extensions/canvas-nav.js +15 -8
- package/dist/pi-extensions/canvas-stophook.d.ts +1 -1
- package/dist/pi-extensions/canvas-stophook.js +78 -11
- package/dist/types.d.ts +39 -20
- package/dist/types.js +38 -13
- package/dist/web/runtime.js +141 -42
- package/dist/web/transport-http.js +7 -5
- package/dist/web/transport-stream.d.ts +3 -0
- package/dist/web/transport-stream.js +204 -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/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2 +0 -0
- package/dist/web-client/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2 +0 -0
- package/dist/web-client/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2 +0 -0
- package/dist/web-client/assets/index-BZUxTkv5.css +2 -0
- package/dist/web-client/assets/index-D36PNBj4.js +80 -0
- package/dist/web-client/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2 +0 -0
- package/dist/web-client/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2 +0 -0
- 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/index.html +3 -2
- package/package.json +32 -10
- package/dist/core/__tests__/error-stall-recycle.test.js +0 -141
- package/dist/core/skill-sync/__tests__/dry-run-wrote-count.test.js +0 -57
- package/dist/core/skill-sync/builtins.js +0 -112
- package/dist/core/skill-sync/claude-plugins.d.ts +0 -23
- package/dist/core/skill-sync/claude-plugins.js +0 -71
- package/dist/core/skill-sync/engine.d.ts +0 -42
- package/dist/core/skill-sync/engine.js +0 -633
- package/dist/core/skill-sync/manifest.d.ts +0 -64
- package/dist/core/skill-sync/manifest.js +0 -181
- package/dist/core/skill-sync/profile.d.ts +0 -76
- package/dist/core/skill-sync/profile.js +0 -173
- package/dist/core/skill-sync/snapshot.d.ts +0 -57
- package/dist/core/skill-sync/snapshot.js +0 -120
- package/dist/pi-extensions/canvas-commands.d.ts +0 -37
- package/dist/pi-extensions/canvas-commands.js +0 -113
- package/dist/pi-extensions/canvas-resume.d.ts +0 -21
- package/dist/pi-extensions/canvas-resume.js +0 -83
- package/dist/pi-extensions/canvas-view.d.ts +0 -21
- package/dist/pi-extensions/canvas-view.js +0 -76
- package/dist/web-client/assets/index-BUvQb4hR.css +0 -2
- package/dist/web-client/assets/index-ClLQXYAE.js +0 -10
- /package/dist/{core/__tests__/error-stall-recycle.test.d.ts → clients/attach/__tests__/autocomplete-and-bash-mode.test.d.ts} +0 -0
- /package/dist/{core/skill-sync/__tests__/dry-run-wrote-count.test.d.ts → clients/attach/__tests__/bash-bang-routing.test.d.ts} +0 -0
|
@@ -42,17 +42,13 @@ function builtinPersonasRoot() {
|
|
|
42
42
|
return srcPath;
|
|
43
43
|
return distPath;
|
|
44
44
|
}
|
|
45
|
-
// ---------------------------------------------------------------------------
|
|
46
|
-
// Scope roots for personas
|
|
47
|
-
// ---------------------------------------------------------------------------
|
|
48
|
-
/** Returns the ordered list of roots to search, highest precedence first. */
|
|
49
45
|
function personaSearchRoots() {
|
|
50
46
|
const roots = [];
|
|
51
47
|
const projectRoot = findProjectScopeRoot();
|
|
52
48
|
if (projectRoot)
|
|
53
|
-
roots.push(join(projectRoot, 'personas'));
|
|
54
|
-
roots.push(join(userScopeRoot(), 'personas'));
|
|
55
|
-
roots.push(builtinPersonasRoot());
|
|
49
|
+
roots.push({ scope: 'project', root: join(projectRoot, 'personas') });
|
|
50
|
+
roots.push({ scope: 'user', root: join(userScopeRoot(), 'personas') });
|
|
51
|
+
roots.push({ scope: 'builtin', root: builtinPersonasRoot() });
|
|
56
52
|
return roots;
|
|
57
53
|
}
|
|
58
54
|
// ---------------------------------------------------------------------------
|
|
@@ -72,21 +68,17 @@ function scalarToString(v) {
|
|
|
72
68
|
return String(v);
|
|
73
69
|
return null;
|
|
74
70
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// ---------------------------------------------------------------------------
|
|
78
|
-
/**
|
|
79
|
-
* Find the first existing file across the scope roots.
|
|
80
|
-
* `relativePath` is relative to each root (e.g. 'general/PERSONA.md').
|
|
81
|
-
*/
|
|
82
|
-
function resolveFile(relativePath) {
|
|
83
|
-
for (const root of personaSearchRoots()) {
|
|
71
|
+
function resolveFileMeta(relativePath) {
|
|
72
|
+
for (const { scope, root } of personaSearchRoots()) {
|
|
84
73
|
const candidate = join(root, relativePath);
|
|
85
74
|
if (existsSync(candidate))
|
|
86
|
-
return candidate;
|
|
75
|
+
return { path: candidate, scope };
|
|
87
76
|
}
|
|
88
77
|
return null;
|
|
89
78
|
}
|
|
79
|
+
function resolveFile(relativePath) {
|
|
80
|
+
return resolveFileMeta(relativePath)?.path ?? null;
|
|
81
|
+
}
|
|
90
82
|
// ---------------------------------------------------------------------------
|
|
91
83
|
// @include inlining
|
|
92
84
|
// ---------------------------------------------------------------------------
|
|
@@ -110,6 +102,14 @@ function inlineIncludes(body) {
|
|
|
110
102
|
return kernelBody.trim();
|
|
111
103
|
});
|
|
112
104
|
}
|
|
105
|
+
export function loadScopedText(relativePath) {
|
|
106
|
+
const meta = resolveFileMeta(relativePath);
|
|
107
|
+
if (!meta)
|
|
108
|
+
return null;
|
|
109
|
+
const src = readFileSync(meta.path, 'utf8');
|
|
110
|
+
const { body } = parseFrontmatterGeneric(src);
|
|
111
|
+
return { text: body.trim(), sourcePath: meta.path, scope: meta.scope };
|
|
112
|
+
}
|
|
113
113
|
// ---------------------------------------------------------------------------
|
|
114
114
|
// Public API
|
|
115
115
|
// ---------------------------------------------------------------------------
|
|
@@ -122,16 +122,26 @@ const PERSONA_FILE = 'PERSONA.md';
|
|
|
122
122
|
* On success, `@include` directives in the body are resolved and inlined.
|
|
123
123
|
*/
|
|
124
124
|
export function loadPersona(kind, mode) {
|
|
125
|
-
|
|
125
|
+
const source = loadPersonaSource(kind, mode);
|
|
126
|
+
if (!source)
|
|
127
|
+
return null;
|
|
128
|
+
return { frontmatter: source.frontmatter, body: source.body };
|
|
129
|
+
}
|
|
130
|
+
/** Load a persona file together with its provenance. */
|
|
131
|
+
export function loadPersonaSource(kind, mode) {
|
|
126
132
|
const relativePath = mode === 'orchestrator' ? `${kind}/orchestrator.md` : `${kind}/PERSONA.md`;
|
|
127
|
-
const
|
|
128
|
-
if (!
|
|
133
|
+
const file = resolveFileMeta(relativePath);
|
|
134
|
+
if (!file)
|
|
129
135
|
return null;
|
|
130
|
-
const src = readFileSync(
|
|
136
|
+
const src = readFileSync(file.path, 'utf8');
|
|
131
137
|
const { data, body } = parseFrontmatterGeneric(src);
|
|
132
138
|
return {
|
|
133
139
|
frontmatter: data,
|
|
140
|
+
rawBody: body.trim(),
|
|
134
141
|
body: inlineIncludes(body).trim(),
|
|
142
|
+
sourcePath: file.path,
|
|
143
|
+
scope: file.scope,
|
|
144
|
+
source: `personas/${relativePath}`,
|
|
135
145
|
};
|
|
136
146
|
}
|
|
137
147
|
/**
|
|
@@ -139,12 +149,11 @@ export function loadPersona(kind, mode) {
|
|
|
139
149
|
* Returns an empty string if the kernel file cannot be found.
|
|
140
150
|
*/
|
|
141
151
|
export function loadKernel() {
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
return body.trim();
|
|
152
|
+
const file = loadKernelSource();
|
|
153
|
+
return file?.text ?? '';
|
|
154
|
+
}
|
|
155
|
+
export function loadKernelSource() {
|
|
156
|
+
return loadScopedText('orchestration-kernel.md');
|
|
148
157
|
}
|
|
149
158
|
/**
|
|
150
159
|
* Load the base runtime prompt — the node operating protocol prepended to
|
|
@@ -153,12 +162,10 @@ export function loadKernel() {
|
|
|
153
162
|
* live in their own fragments, loaded below.
|
|
154
163
|
*/
|
|
155
164
|
export function loadRuntimeBase() {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
const { body } = parseFrontmatterGeneric(src);
|
|
161
|
-
return body.trim();
|
|
165
|
+
return loadRuntimeBaseSource()?.text ?? '';
|
|
166
|
+
}
|
|
167
|
+
export function loadRuntimeBaseSource() {
|
|
168
|
+
return loadScopedText('runtime-base.md');
|
|
162
169
|
}
|
|
163
170
|
/**
|
|
164
171
|
* Load the waiting fragment — the cross-kind "waiting is a way to end a turn"
|
|
@@ -167,11 +174,10 @@ export function loadRuntimeBase() {
|
|
|
167
174
|
* the lifecycle fragment (resolve.ts). Returns '' if the fragment is missing.
|
|
168
175
|
*/
|
|
169
176
|
export function loadWaitingFragment() {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
return body.trim();
|
|
177
|
+
return loadWaitingFragmentSource()?.text ?? '';
|
|
178
|
+
}
|
|
179
|
+
export function loadWaitingFragmentSource() {
|
|
180
|
+
return loadScopedText('waiting.md');
|
|
175
181
|
}
|
|
176
182
|
/**
|
|
177
183
|
* Load the lifecycle fragment — the "how you end" contract, keyed on the node's
|
|
@@ -181,11 +187,10 @@ export function loadWaitingFragment() {
|
|
|
181
187
|
* Returns '' if the fragment file cannot be found.
|
|
182
188
|
*/
|
|
183
189
|
export function loadLifecycleFragment(lifecycle) {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
return body.trim();
|
|
190
|
+
return loadLifecycleFragmentSource(lifecycle)?.text ?? '';
|
|
191
|
+
}
|
|
192
|
+
export function loadLifecycleFragmentSource(lifecycle) {
|
|
193
|
+
return loadScopedText(`lifecycle/${lifecycle}.md`);
|
|
189
194
|
}
|
|
190
195
|
/**
|
|
191
196
|
* Load the spine fragment — the "who you report to" contract, keyed on whether
|
|
@@ -195,11 +200,10 @@ export function loadLifecycleFragment(lifecycle) {
|
|
|
195
200
|
* Returns '' if the fragment file cannot be found.
|
|
196
201
|
*/
|
|
197
202
|
export function loadSpineFragment(hasManager) {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return body.trim();
|
|
203
|
+
return loadSpineFragmentSource(hasManager)?.text ?? '';
|
|
204
|
+
}
|
|
205
|
+
export function loadSpineFragmentSource(hasManager) {
|
|
206
|
+
return loadScopedText(`spine/${hasManager ? 'has-manager' : 'no-manager'}.md`);
|
|
203
207
|
}
|
|
204
208
|
/**
|
|
205
209
|
* Enumerate the kinds with at least one persona file (PERSONA.md or
|
|
@@ -210,7 +214,7 @@ export function loadSpineFragment(hasManager) {
|
|
|
210
214
|
*/
|
|
211
215
|
export function availableKinds() {
|
|
212
216
|
const kinds = new Set();
|
|
213
|
-
for (const root of personaSearchRoots()) {
|
|
217
|
+
for (const { root } of personaSearchRoots()) {
|
|
214
218
|
if (!existsSync(root))
|
|
215
219
|
continue;
|
|
216
220
|
for (const entry of readdirSync(root, { withFileTypes: true })) {
|
|
@@ -297,7 +301,7 @@ function parseAvailableTo(data, topKind) {
|
|
|
297
301
|
export function subPersonasFor(kind) {
|
|
298
302
|
const seen = new Set(); // full kind strings already resolved (higher root won)
|
|
299
303
|
const out = [];
|
|
300
|
-
for (const root of personaSearchRoots()) {
|
|
304
|
+
for (const { root } of personaSearchRoots()) {
|
|
301
305
|
if (!existsSync(root))
|
|
302
306
|
continue;
|
|
303
307
|
for (const top of readdirSync(root, { withFileTypes: true })) {
|
|
@@ -1,43 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Persona resolver — composes base + orchestrator personas into a
|
|
3
3
|
* ResolvedPersona ready for use when spawning a canvas node.
|
|
4
|
-
*
|
|
5
|
-
* Composition rules:
|
|
6
|
-
* mode==='base'
|
|
7
|
-
* → load <kind>/PERSONA.md; if missing fall back to general defaults.
|
|
8
|
-
*
|
|
9
|
-
* mode==='orchestrator'
|
|
10
|
-
* → prefer <kind>/orchestrator.md (which must embed the kernel via
|
|
11
|
-
* @include orchestration-kernel.md — inlined by the loader).
|
|
12
|
-
* If no orchestrator.md exists for this kind, compose:
|
|
13
|
-
* <kind>/PERSONA.md body + '\n\n' + kernel body
|
|
14
|
-
* If even the PERSONA.md is missing, fall back to general defaults + kernel.
|
|
15
|
-
*
|
|
16
|
-
* Frontmatter from whichever file is the primary source (orchestrator.md >
|
|
17
|
-
* PERSONA.md) supplies model/skills/extensions/tools. Lifecycle and spine position
|
|
18
|
-
* are INPUTS (the caller decides them — root/child, terminal/resident), not
|
|
19
|
-
* derived here; they select the lifecycle/spine protocol fragments spliced
|
|
20
|
-
* ahead of the persona body.
|
|
21
4
|
*/
|
|
22
5
|
export interface ResolvedPersona {
|
|
23
6
|
systemPrompt: string;
|
|
24
7
|
extensions: string[];
|
|
25
|
-
skills: string[];
|
|
26
8
|
model?: string;
|
|
27
9
|
lifecycle: 'terminal' | 'resident';
|
|
28
10
|
tools?: string[];
|
|
29
11
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
12
|
+
export type PromptLayerGroup = 'protocol' | 'persona' | 'generated' | 'substrate';
|
|
13
|
+
export type PromptLayerScope = 'project' | 'user' | 'builtin' | 'generated' | 'runtime';
|
|
14
|
+
export interface PromptLayer {
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
group: PromptLayerGroup;
|
|
18
|
+
source: string;
|
|
19
|
+
sourcePath: string | null;
|
|
20
|
+
scope: PromptLayerScope;
|
|
21
|
+
included: boolean;
|
|
22
|
+
condition: string | null;
|
|
23
|
+
text: string;
|
|
24
|
+
tokens: number;
|
|
25
|
+
chars: number;
|
|
26
|
+
}
|
|
27
|
+
export interface PromptSource {
|
|
28
|
+
id: string;
|
|
29
|
+
label: string;
|
|
30
|
+
path: string;
|
|
31
|
+
scope: Exclude<PromptLayerScope, 'generated' | 'runtime'>;
|
|
32
|
+
}
|
|
33
|
+
export interface PromptReviewConfig {
|
|
34
|
+
kind: string;
|
|
35
|
+
mode: 'base' | 'orchestrator';
|
|
36
|
+
lifecycle: 'terminal' | 'resident';
|
|
37
|
+
hasManager: boolean;
|
|
38
|
+
node: string | null;
|
|
39
|
+
}
|
|
40
|
+
export interface PromptReviewData {
|
|
41
|
+
config: PromptReviewConfig;
|
|
42
|
+
layers: PromptLayer[];
|
|
43
|
+
assembled: string;
|
|
44
|
+
total: {
|
|
45
|
+
tokens: number;
|
|
46
|
+
chars: number;
|
|
47
|
+
};
|
|
48
|
+
sources: PromptSource[];
|
|
49
|
+
}
|
|
35
50
|
export interface ResolveOpts {
|
|
36
|
-
/** The node's lifecycle axis — selects the "how you end" fragment. */
|
|
37
51
|
lifecycle: 'terminal' | 'resident';
|
|
38
|
-
/** Whether the node reports up to a manager (parent !== null) — selects the
|
|
39
|
-
* spine fragment (`has-manager` teaches the push family; `no-manager` omits
|
|
40
|
-
* it entirely). */
|
|
41
52
|
hasManager: boolean;
|
|
42
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Resolve a fully composed persona for the given `kind` and `mode`.
|
|
56
|
+
*/
|
|
43
57
|
export declare function resolve(kind: string, mode: 'base' | 'orchestrator', opts: ResolveOpts): ResolvedPersona;
|
|
58
|
+
export declare function resolveLayers(kind: string, mode: 'base' | 'orchestrator', opts: ResolveOpts): PromptLayer[];
|
|
59
|
+
export declare function resolvePromptReview(kind: string, mode: 'base' | 'orchestrator', opts: ResolveOpts, nodeId?: string): PromptReviewData;
|