@crouton-kit/crouter 0.3.27 → 0.3.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-root.js +4 -2
- package/dist/builtin-memory/crouter-development/marketplaces.md +7 -6
- package/dist/builtin-memory/crouter-development/personas/base-prompt.md +1 -1
- package/dist/builtin-memory/crouter-development/personas/orchestrator-prompt.md +1 -1
- package/dist/builtin-memory/crouter-development/personas.md +1 -1
- package/dist/builtin-memory/crouter-development/plugins.md +20 -18
- package/dist/builtin-memory/design.md +1 -1
- package/dist/builtin-memory/development.md +1 -1
- package/dist/builtin-memory/internal/INDEX.md +1 -1
- package/dist/builtin-memory/internal/examples/INDEX.md +1 -1
- package/dist/builtin-memory/internal/examples/imessage-assistant.md +2 -2
- package/dist/builtin-memory/internal/nodes-and-canvas.md +1 -1
- package/dist/builtin-memory/internal/storage-tiers.md +1 -1
- package/dist/builtin-memory/planning.md +1 -1
- package/dist/builtin-memory/spec.md +6 -4
- package/dist/builtin-personas/orchestration-kernel.md +4 -5
- package/dist/builtin-personas/runtime-base.md +8 -4
- package/dist/builtin-personas/spec/PERSONA.md +8 -4
- package/dist/builtin-personas/spec/orchestrator.md +5 -3
- package/dist/builtin-personas/spec/requirements/PERSONA.md +10 -0
- package/dist/builtin-views/canvas/core.mjs +586 -0
- package/dist/builtin-views/canvas/text.mjs +58 -0
- package/dist/builtin-views/canvas/tui.mjs +165 -0
- package/dist/builtin-views/canvas/web.jsx +120 -0
- package/dist/builtin-views/git-pr/core.mjs +673 -0
- package/dist/builtin-views/git-pr/text.mjs +84 -0
- package/dist/builtin-views/git-pr/tui.mjs +302 -0
- package/dist/builtin-views/git-pr/web.jsx +216 -0
- package/dist/builtin-views/inbox/_lib/render.mjs +1 -3
- package/dist/builtin-views/inbox/core.mjs +1273 -0
- package/dist/builtin-views/inbox/text.mjs +73 -0
- package/dist/builtin-views/inbox/tui.mjs +312 -0
- package/dist/builtin-views/inbox/web.jsx +188 -0
- package/dist/builtin-views/linkedin/core.mjs +906 -0
- package/dist/builtin-views/linkedin/text.mjs +69 -0
- package/dist/builtin-views/linkedin/tui.mjs +427 -0
- package/dist/builtin-views/linkedin/web.jsx +206 -0
- package/dist/builtin-views/workspace-sidebar/core.mjs +621 -0
- package/dist/builtin-views/workspace-sidebar/text.mjs +53 -0
- package/dist/builtin-views/workspace-sidebar/tui.mjs +142 -0
- package/dist/builtin-views/workspace-sidebar/web.jsx +109 -0
- package/dist/cli.js +3 -3
- package/dist/clients/attach/__tests__/action-parity.test.js +48 -0
- package/dist/clients/attach/__tests__/clipboard-image.test.js +76 -0
- package/dist/clients/attach/__tests__/editor-newline.test.js +57 -0
- package/dist/clients/attach/__tests__/git-info.test.js +31 -0
- package/dist/clients/attach/__tests__/onrequest-wired.test.js +20 -0
- package/dist/clients/attach/__tests__/reconnect-giveup.test.js +30 -0
- package/dist/clients/attach/__tests__/slash-quit-copy.test.js +42 -0
- package/dist/clients/attach/__tests__/titled-editor.test.d.ts +1 -0
- package/dist/clients/attach/__tests__/titled-editor.test.js +39 -0
- package/dist/clients/attach/attach-cmd.js +445 -41
- package/dist/clients/attach/auth-pickers.d.ts +9 -0
- package/dist/clients/attach/auth-pickers.js +194 -0
- package/dist/clients/attach/canvas-panels.d.ts +12 -0
- package/dist/clients/attach/canvas-panels.js +78 -0
- package/dist/clients/attach/chat-view.d.ts +27 -2
- package/dist/clients/attach/chat-view.js +98 -9
- package/dist/clients/attach/clipboard-image.d.ts +47 -8
- package/dist/clients/attach/clipboard-image.js +150 -26
- package/dist/clients/attach/clipboard-text.d.ts +3 -0
- package/dist/clients/attach/clipboard-text.js +39 -0
- package/dist/clients/attach/config-load.d.ts +54 -7
- package/dist/clients/attach/config-load.js +99 -3
- package/dist/clients/attach/context-message.d.ts +12 -0
- package/dist/clients/attach/context-message.js +72 -0
- package/dist/clients/attach/git-info.d.ts +20 -0
- package/dist/clients/attach/git-info.js +44 -0
- package/dist/clients/attach/graph-overlay.d.ts +43 -0
- package/dist/clients/attach/graph-overlay.js +306 -0
- package/dist/clients/attach/input-controller.d.ts +81 -13
- package/dist/clients/attach/input-controller.js +307 -67
- package/dist/clients/attach/pickers.d.ts +58 -0
- package/dist/clients/attach/pickers.js +171 -0
- package/dist/clients/attach/slash-commands.d.ts +44 -1
- package/dist/clients/attach/slash-commands.js +250 -27
- package/dist/clients/attach/titled-editor.d.ts +33 -0
- package/dist/clients/attach/titled-editor.js +84 -0
- package/dist/clients/attach/view-socket.d.ts +37 -2
- package/dist/clients/attach/view-socket.js +131 -7
- package/dist/clients/web/dev-server.d.ts +7 -0
- package/dist/clients/web/dev-server.js +59 -0
- package/dist/clients/web/events.d.ts +14 -0
- package/dist/clients/web/events.js +151 -0
- package/dist/clients/web/server.d.ts +18 -0
- package/dist/clients/web/server.js +450 -0
- package/dist/clients/web/web-cmd.d.ts +2 -0
- package/dist/clients/web/web-cmd.js +120 -0
- package/dist/commands/canvas.js +1 -2
- package/dist/commands/chord.js +1 -1
- package/dist/commands/dashboard.js +5 -1
- package/dist/commands/human/prompts.js +3 -3
- package/dist/commands/human/queue.d.ts +17 -0
- package/dist/commands/human/queue.js +111 -4
- package/dist/commands/memory/__tests__/lint-schema.test.js +27 -4
- package/dist/commands/memory/lint.d.ts +5 -4
- package/dist/commands/memory/lint.js +23 -7
- package/dist/commands/memory/read.js +2 -2
- package/dist/commands/memory/shared.d.ts +7 -1
- package/dist/commands/memory/shared.js +18 -3
- package/dist/commands/memory/write.js +20 -7
- package/dist/commands/memory.js +4 -4
- package/dist/commands/node.d.ts +1 -1
- package/dist/commands/node.js +64 -65
- package/dist/commands/pkg.js +1 -2
- package/dist/commands/revive.js +11 -3
- package/dist/commands/sys/feedback.d.ts +1 -0
- package/dist/commands/sys/feedback.js +163 -0
- package/dist/commands/sys/sync.d.ts +1 -0
- package/dist/commands/sys/sync.js +187 -0
- package/dist/commands/sys.js +4 -2
- package/dist/commands/view-cycle.js +2 -2
- package/dist/commands/view-list.js +8 -8
- package/dist/commands/view-new.js +21 -17
- package/dist/commands/view-pick.js +1 -1
- package/dist/commands/view-run.js +35 -14
- package/dist/commands/view.js +8 -6
- package/dist/commands/workspace.d.ts +2 -0
- package/dist/commands/workspace.js +161 -0
- package/dist/core/__tests__/broker-double-spawn.test.d.ts +1 -0
- package/dist/core/__tests__/broker-double-spawn.test.js +143 -0
- package/dist/core/__tests__/broker-fork-seam.test.d.ts +1 -0
- package/dist/core/__tests__/broker-fork-seam.test.js +102 -0
- package/dist/core/__tests__/broker-sdk-wiring.test.js +2 -0
- package/dist/core/__tests__/broker-snapshot-history.test.d.ts +1 -0
- package/dist/core/__tests__/broker-snapshot-history.test.js +105 -0
- package/dist/core/__tests__/child-death-wake.test.js +56 -111
- package/dist/core/__tests__/close.test.js +14 -20
- package/dist/core/__tests__/context-intro.test.js +19 -19
- package/dist/core/__tests__/daemon-boot.test.js +30 -23
- package/dist/core/__tests__/draw-style.test.js +1 -1
- package/dist/core/__tests__/error-stall-recycle.test.d.ts +1 -0
- package/dist/core/__tests__/error-stall-recycle.test.js +141 -0
- package/dist/core/__tests__/fixtures/fake-engine.d.ts +24 -1
- package/dist/core/__tests__/fixtures/fake-engine.js +32 -2
- package/dist/core/__tests__/fixtures/fake-pi-host.js +2 -2
- package/dist/core/__tests__/focuses.test.js +25 -13
- package/dist/core/__tests__/fork.test.js +22 -5
- package/dist/core/__tests__/full/broker-control-preempt.test.d.ts +1 -0
- package/dist/core/__tests__/full/broker-control-preempt.test.js +61 -0
- package/dist/core/__tests__/full/broker-model-changed-broadcast.test.d.ts +1 -0
- package/dist/core/__tests__/full/broker-model-changed-broadcast.test.js +57 -0
- package/dist/core/__tests__/full/broker-navigate-tree-rewelcome.test.d.ts +1 -0
- package/dist/core/__tests__/full/broker-navigate-tree-rewelcome.test.js +80 -0
- package/dist/core/__tests__/full/broker-pane-resolution.test.js +90 -0
- package/dist/core/__tests__/full/cascade-close.test.js +22 -8
- package/dist/core/__tests__/full/detach-focus.test.js +66 -169
- package/dist/core/__tests__/helpers/harness.d.ts +6 -9
- package/dist/core/__tests__/helpers/harness.js +19 -36
- package/dist/core/__tests__/human-node-not-supervised.test.d.ts +1 -0
- package/dist/core/__tests__/human-node-not-supervised.test.js +83 -0
- package/dist/core/__tests__/human-stranded-deliver.test.d.ts +1 -0
- package/dist/core/__tests__/human-stranded-deliver.test.js +108 -0
- package/dist/core/__tests__/lifecycle.test.js +1 -19
- package/dist/core/__tests__/live-mutation-verbs.test.js +5 -5
- package/dist/core/__tests__/memory-resolver.test.js +1 -1
- package/dist/core/__tests__/on-read-dedup-resume.test.d.ts +1 -0
- package/dist/core/__tests__/on-read-dedup-resume.test.js +81 -0
- package/dist/core/__tests__/refresh-stall-recycle.test.d.ts +1 -0
- package/dist/core/__tests__/refresh-stall-recycle.test.js +88 -0
- package/dist/core/__tests__/relaunch-root.test.d.ts +1 -0
- package/dist/core/__tests__/relaunch-root.test.js +114 -0
- package/dist/core/__tests__/reset.test.js +19 -79
- package/dist/core/__tests__/steer-note.test.js +9 -7
- package/dist/core/__tests__/tmux-surface.test.js +13 -7
- package/dist/core/bootstrap.d.ts +0 -3
- package/dist/core/bootstrap.js +1 -143
- package/dist/core/canvas/browse/__tests__/model.test.js +86 -1
- package/dist/core/canvas/browse/__tests__/render.test.js +2 -1
- package/dist/core/canvas/browse/app.js +131 -8
- package/dist/core/canvas/browse/model.d.ts +23 -5
- package/dist/core/canvas/browse/model.js +68 -13
- package/dist/core/canvas/browse/render.d.ts +7 -1
- package/dist/core/canvas/browse/render.js +178 -47
- package/dist/core/canvas/canvas.js +1 -1
- package/dist/core/canvas/focuses.d.ts +4 -4
- package/dist/core/canvas/focuses.js +7 -7
- package/dist/core/canvas/nav-model.d.ts +162 -0
- package/dist/core/canvas/nav-model.js +487 -0
- package/dist/core/canvas/paths.d.ts +7 -0
- package/dist/core/canvas/paths.js +9 -0
- package/dist/core/canvas/render.d.ts +68 -9
- package/dist/core/canvas/render.js +195 -61
- package/dist/core/canvas/types.d.ts +16 -23
- package/dist/core/config.js +1 -4
- package/dist/core/memory-resolver.js +43 -5
- package/dist/core/runtime/bearings.d.ts +1 -1
- package/dist/core/runtime/bearings.js +8 -8
- package/dist/core/runtime/branded-host.d.ts +16 -0
- package/dist/core/runtime/branded-host.js +127 -0
- package/dist/core/runtime/broker-protocol.d.ts +212 -6
- package/dist/core/runtime/broker-sdk.d.ts +0 -12
- package/dist/core/runtime/broker-sdk.js +77 -6
- package/dist/core/runtime/broker.d.ts +5 -1
- package/dist/core/runtime/broker.js +520 -59
- package/dist/core/runtime/close.d.ts +12 -2
- package/dist/core/runtime/close.js +37 -16
- package/dist/core/runtime/front-door.js +14 -7
- package/dist/core/runtime/host.d.ts +14 -34
- package/dist/core/runtime/host.js +14 -50
- package/dist/core/runtime/launch.d.ts +12 -9
- package/dist/core/runtime/launch.js +27 -15
- package/dist/core/runtime/lifecycle.d.ts +1 -1
- package/dist/core/runtime/lifecycle.js +15 -19
- package/dist/core/runtime/nodes.d.ts +0 -55
- package/dist/core/runtime/nodes.js +6 -74
- package/dist/core/runtime/placement.d.ts +91 -334
- package/dist/core/runtime/placement.js +262 -828
- package/dist/core/runtime/promote.d.ts +2 -0
- package/dist/core/runtime/promote.js +24 -6
- package/dist/core/runtime/recap.d.ts +8 -0
- package/dist/core/runtime/recap.js +107 -0
- package/dist/core/runtime/recycle.js +25 -61
- package/dist/core/runtime/reset.d.ts +43 -37
- package/dist/core/runtime/reset.js +131 -218
- package/dist/core/runtime/revive.d.ts +9 -29
- package/dist/core/runtime/revive.js +45 -135
- package/dist/core/runtime/spawn.d.ts +15 -11
- package/dist/core/runtime/spawn.js +168 -136
- package/dist/core/runtime/surface-bg.d.ts +11 -0
- package/dist/core/runtime/surface-bg.js +68 -0
- package/dist/core/runtime/tmux.d.ts +15 -43
- package/dist/core/runtime/tmux.js +38 -80
- package/dist/core/scope.d.ts +1 -2
- package/dist/core/scope.js +1 -5
- package/dist/core/skill-sync/__tests__/dry-run-wrote-count.test.d.ts +1 -0
- package/dist/core/skill-sync/__tests__/dry-run-wrote-count.test.js +57 -0
- package/dist/core/skill-sync/builtins.d.ts +42 -0
- package/dist/core/skill-sync/builtins.js +112 -0
- package/dist/core/skill-sync/claude-plugins.d.ts +23 -0
- package/dist/core/skill-sync/claude-plugins.js +71 -0
- package/dist/core/skill-sync/engine.d.ts +42 -0
- package/dist/core/skill-sync/engine.js +633 -0
- package/dist/core/skill-sync/export.d.ts +23 -0
- package/dist/core/skill-sync/export.js +86 -0
- package/dist/core/skill-sync/manifest.d.ts +64 -0
- package/dist/core/skill-sync/manifest.js +181 -0
- package/dist/core/skill-sync/profile.d.ts +76 -0
- package/dist/core/skill-sync/profile.js +173 -0
- package/dist/core/skill-sync/snapshot.d.ts +57 -0
- package/dist/core/skill-sync/snapshot.js +120 -0
- package/dist/core/spawn.d.ts +14 -0
- package/dist/core/spawn.js +29 -9
- package/dist/core/substrate/index.d.ts +2 -2
- package/dist/core/substrate/index.js +7 -7
- package/dist/core/substrate/injected-store.d.ts +10 -0
- package/dist/core/substrate/injected-store.js +55 -0
- package/dist/core/substrate/on-read.js +68 -6
- package/dist/core/substrate/render.d.ts +8 -11
- package/dist/core/substrate/render.js +29 -43
- package/dist/core/substrate/schema.d.ts +16 -11
- package/dist/core/substrate/schema.js +32 -31
- package/dist/core/tui/host.d.ts +12 -4
- package/dist/core/tui/host.js +280 -149
- package/dist/core/view/bridge.d.ts +10 -0
- package/dist/core/view/bridge.js +31 -0
- package/dist/core/view/chrome.d.ts +9 -0
- package/dist/core/view/chrome.js +22 -0
- package/dist/core/view/contract.d.ts +171 -0
- package/dist/core/view/contract.js +23 -0
- package/dist/core/view/loader.d.ts +31 -0
- package/dist/core/view/loader.js +188 -0
- package/dist/core/view/transport-local.d.ts +7 -0
- package/dist/core/view/transport-local.js +70 -0
- package/dist/core/view/transport.d.ts +4 -0
- package/dist/core/view/transport.js +15 -0
- package/dist/daemon/crtrd.d.ts +38 -27
- package/dist/daemon/crtrd.js +303 -376
- package/dist/daemon/manage.js +6 -1
- package/dist/index.js +1 -1
- package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +28 -20
- package/dist/pi-extensions/canvas-context-intro.js +4 -4
- package/dist/pi-extensions/canvas-doc-substrate.js +29 -20
- package/dist/pi-extensions/canvas-nav.js +35 -385
- package/dist/pi-extensions/canvas-recap.d.ts +37 -0
- package/dist/pi-extensions/canvas-recap.js +236 -0
- package/dist/pi-extensions/canvas-resume.js +2 -1
- package/dist/pi-extensions/canvas-stophook.d.ts +15 -13
- package/dist/pi-extensions/canvas-stophook.js +119 -103
- package/dist/pi-extensions/canvas-view.js +2 -1
- package/dist/pi-extensions/widget-order-bus.d.ts +6 -0
- package/dist/pi-extensions/widget-order-bus.js +34 -0
- package/dist/prompts/view.d.ts +2 -2
- package/dist/prompts/view.js +145 -73
- package/dist/types.d.ts +1 -6
- package/dist/types.js +1 -3
- package/dist/web/ViewChrome.d.ts +7 -0
- package/dist/web/ViewChrome.js +28 -0
- package/dist/web/ViewPane.d.ts +39 -0
- package/dist/web/ViewPane.js +48 -0
- package/dist/web/index.d.ts +6 -0
- package/dist/web/index.js +16 -0
- package/dist/web/runtime.d.ts +39 -0
- package/dist/web/runtime.js +133 -0
- package/dist/web/states.d.ts +24 -0
- package/dist/web/states.js +24 -0
- package/dist/web/transport-http.d.ts +5 -0
- package/dist/web/transport-http.js +28 -0
- package/dist/web-client/assets/index-BUvQb4hR.css +2 -0
- package/dist/web-client/assets/index-ClLQXYAE.js +10 -0
- package/dist/web-client/index.html +13 -0
- package/package.json +20 -6
- package/dist/builtin-views/canvas/client.mjs +0 -303
- package/dist/builtin-views/canvas/view.mjs +0 -576
- package/dist/builtin-views/git-pr/client.mjs +0 -440
- package/dist/builtin-views/git-pr/view.mjs +0 -675
- package/dist/builtin-views/inbox/sources/gmail.mjs +0 -965
- package/dist/builtin-views/inbox/sources/linkedin.mjs +0 -427
- package/dist/builtin-views/inbox/view.mjs +0 -889
- package/dist/builtin-views/linkedin/client.mjs +0 -610
- package/dist/builtin-views/linkedin/view.mjs +0 -1171
- package/dist/commands/pkg/bridge.d.ts +0 -1
- package/dist/commands/pkg/bridge.js +0 -137
- package/dist/commands/skill/author.d.ts +0 -3
- package/dist/commands/skill/author.js +0 -140
- package/dist/commands/skill/shared.d.ts +0 -3
- package/dist/commands/skill/shared.js +0 -19
- package/dist/commands/skill.d.ts +0 -2
- package/dist/commands/skill.js +0 -21
- package/dist/commands/tmux-spread.d.ts +0 -2
- package/dist/commands/tmux-spread.js +0 -144
- package/dist/core/__tests__/full/daemon-liveness-pane.full.test.js +0 -292
- package/dist/core/__tests__/full/placement-focus.test.js +0 -309
- package/dist/core/__tests__/full/placement-reconcile.test.js +0 -212
- package/dist/core/__tests__/full/placement-revive.test.js +0 -238
- package/dist/core/__tests__/full/placement-teardown.test.js +0 -221
- package/dist/core/__tests__/home-session.test.js +0 -186
- package/dist/core/__tests__/relaunch.test.js +0 -335
- package/dist/core/bridge-map.d.ts +0 -19
- package/dist/core/bridge-map.js +0 -73
- package/dist/core/tui/contract.d.ts +0 -83
- package/dist/core/tui/contract.js +0 -8
- package/dist/core/tui/loader.d.ts +0 -16
- package/dist/core/tui/loader.js +0 -94
- package/dist/prompts/skill.d.ts +0 -2
- package/dist/prompts/skill.js +0 -650
- /package/dist/{core/__tests__/full/daemon-liveness-pane.full.test.d.ts → clients/attach/__tests__/action-parity.test.d.ts} +0 -0
- /package/dist/{core/__tests__/full/placement-focus.test.d.ts → clients/attach/__tests__/clipboard-image.test.d.ts} +0 -0
- /package/dist/{core/__tests__/full/placement-reconcile.test.d.ts → clients/attach/__tests__/editor-newline.test.d.ts} +0 -0
- /package/dist/{core/__tests__/full/placement-revive.test.d.ts → clients/attach/__tests__/git-info.test.d.ts} +0 -0
- /package/dist/{core/__tests__/full/placement-teardown.test.d.ts → clients/attach/__tests__/onrequest-wired.test.d.ts} +0 -0
- /package/dist/{core/__tests__/home-session.test.d.ts → clients/attach/__tests__/reconnect-giveup.test.d.ts} +0 -0
- /package/dist/{core/__tests__/relaunch.test.d.ts → clients/attach/__tests__/slash-quit-copy.test.d.ts} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Scope } from '../../types.js';
|
|
2
2
|
import type { MemoryDoc } from '../memory-resolver.js';
|
|
3
|
-
export declare const KINDS: readonly ["
|
|
3
|
+
export declare const KINDS: readonly ["knowledge", "preference"];
|
|
4
4
|
export type DocKind = (typeof KINDS)[number];
|
|
5
|
-
/** Is `v` one of the
|
|
5
|
+
/** Is `v` one of the two valid document kinds? */
|
|
6
6
|
export declare function isDocKind(v: unknown): v is DocKind;
|
|
7
7
|
export declare const RUNGS: readonly ["none", "name", "preview", "content"];
|
|
8
8
|
export type Rung = (typeof RUNGS)[number];
|
|
@@ -11,10 +11,7 @@ export declare function rungRank(r: Rung): number;
|
|
|
11
11
|
/** Does rung `r` disclose at least as much as `min`? — e.g.
|
|
12
12
|
* `rungAtLeast(doc.systemPromptVisibility, 'name')` ⇒ "shows at boot at all". */
|
|
13
13
|
export declare function rungAtLeast(r: Rung, min: Rung): boolean;
|
|
14
|
-
export declare const
|
|
15
|
-
systemPrompt: Rung;
|
|
16
|
-
fileRead: Rung;
|
|
17
|
-
}>;
|
|
14
|
+
export declare const FALLBACK_RUNG: Rung;
|
|
18
15
|
/** A gate predicate tree, evaluated by predicate.ts (`evalCondition`) against
|
|
19
16
|
* the node-config subject. Typed loosely on purpose — the matcher engine owns
|
|
20
17
|
* validation; structurally it is a field→matcher map with optional
|
|
@@ -24,7 +21,7 @@ export type GatePredicate = Record<string, unknown>;
|
|
|
24
21
|
* defaults applied. Required fields (`kind`/`when-and-why-to-read`) and
|
|
25
22
|
* optionals all resolved to concrete typed values. */
|
|
26
23
|
export interface SubstrateSchema {
|
|
27
|
-
/** Which of the
|
|
24
|
+
/** Which of the two semantic kinds (knowledge | preference). */
|
|
28
25
|
kind: DocKind;
|
|
29
26
|
/** The read-routing line — a single sentence answering WHEN to read this doc
|
|
30
27
|
* and WHY it is worth the read: "When <circumstance>, this <kind> should be
|
|
@@ -46,6 +43,13 @@ export interface SubstrateSchema {
|
|
|
46
43
|
/** Optional glob list narrowing the on-read trigger to matching read files.
|
|
47
44
|
* Absent ⇒ positional trigger only. A single glob is normalized to a 1-list. */
|
|
48
45
|
appliesTo?: string[];
|
|
46
|
+
/** Optional condition over the READ FILE's own frontmatter — the on-read
|
|
47
|
+
* frontmatter trigger (Stream A native rules). Same coercion + predicate
|
|
48
|
+
* vocabulary as `gate` (non-null non-array object carried; empty `{}` inert),
|
|
49
|
+
* but evaluated by `evalCondition` against the read file's parsed YAML rather
|
|
50
|
+
* than the node subject. Absent ⇒ no frontmatter trigger. Frontmatter key
|
|
51
|
+
* `read-when`. */
|
|
52
|
+
readWhen?: GatePredicate;
|
|
49
53
|
}
|
|
50
54
|
/** A fully-resolved substrate document: the parsed schema PLUS the resolver's
|
|
51
55
|
* path-derived identity and body. This single object flows through the whole
|
|
@@ -63,10 +67,11 @@ export interface SubstrateDoc extends SubstrateSchema {
|
|
|
63
67
|
/** Parse a raw frontmatter record (from `parseFrontmatterGeneric`, via the
|
|
64
68
|
* resolver) into a typed schema with defaults applied. Returns `null` when the
|
|
65
69
|
* record is absent or carries no valid `kind` — i.e. it is not a substrate
|
|
66
|
-
* document and cannot be classified
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* throws. Authoring-time enforcement of
|
|
70
|
+
* document and cannot be classified. Tolerant of every other imperfection (a
|
|
71
|
+
* missing `when-and-why-to-read` defaults to '', a missing/bad rung falls back
|
|
72
|
+
* to the neutral floor `none`), so a renderer mapping over many docs never
|
|
73
|
+
* throws. Authoring-time enforcement of these fields lives in `crtr memory
|
|
74
|
+
* write` (on create) and `crtr memory lint`. */
|
|
70
75
|
export declare function parseSubstrateFrontmatter(fm: Record<string, unknown> | null): SubstrateSchema | null;
|
|
71
76
|
/** Parse a resolved MemoryDoc into a fully-typed SubstrateDoc (schema + the
|
|
72
77
|
* resolver's name/scope/path/body). Returns `null` for a non-substrate doc
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
// schema.ts — the typed shape of a substrate document's frontmatter, the
|
|
2
|
-
// visibility ladder,
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
2
|
+
// visibility ladder, and the parse/validate function that turns a resolved
|
|
3
|
+
// MemoryDoc into a fully-typed SubstrateDoc. This is the keystone every
|
|
4
|
+
// downstream track (CLI verbs, boot render, on-read render, migrator) builds
|
|
5
|
+
// against — pure and side-effect free. See design-substrate.md §4 (schema).
|
|
6
|
+
//
|
|
7
|
+
// There is NO kind-based default for visibility: the right rung is a
|
|
8
|
+
// case-by-case authoring call, so both rungs are required at authoring time
|
|
9
|
+
// (enforced by `crtr memory write` on create and by `crtr memory lint`). The
|
|
10
|
+
// runtime parser is tolerant by contract (it maps over many docs and must
|
|
11
|
+
// never throw), so a doc missing/with an invalid rung falls back to the neutral
|
|
12
|
+
// floor `none` — a malformed doc renders invisible rather than crashing, and
|
|
13
|
+
// lint flags it. Valid docs never hit the fallback.
|
|
7
14
|
// ---------------------------------------------------------------------------
|
|
8
|
-
// Kinds — the
|
|
15
|
+
// Kinds — the two semantic kinds (design §3): `knowledge` (consult — procedural
|
|
16
|
+
// playbooks + factual references merged) vs `preference` (behave — standing
|
|
17
|
+
// directives). `kind` is a load-bearing binary, not a content taxonomy.
|
|
9
18
|
// ---------------------------------------------------------------------------
|
|
10
|
-
export const KINDS = ['
|
|
11
|
-
/** Is `v` one of the
|
|
19
|
+
export const KINDS = ['knowledge', 'preference'];
|
|
20
|
+
/** Is `v` one of the two valid document kinds? */
|
|
12
21
|
export function isDocKind(v) {
|
|
13
22
|
return typeof v === 'string' && KINDS.includes(v);
|
|
14
23
|
}
|
|
@@ -28,46 +37,38 @@ export function rungAtLeast(r, min) {
|
|
|
28
37
|
return rungRank(r) >= rungRank(min);
|
|
29
38
|
}
|
|
30
39
|
// ---------------------------------------------------------------------------
|
|
31
|
-
// The
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
// kind system-prompt-visibility file-read-visibility
|
|
37
|
-
// skill name none
|
|
38
|
-
// preference preview none
|
|
39
|
-
// reference none preview
|
|
40
|
+
// The neutral fallback rung used only when a doc omits a visibility field or
|
|
41
|
+
// carries an invalid one. NOT a default an author may lean on — authoring-time
|
|
42
|
+
// enforcement requires explicit rungs; this is purely the runtime parser's
|
|
43
|
+
// never-throw floor (a malformed doc renders invisible, and lint flags it).
|
|
40
44
|
// ---------------------------------------------------------------------------
|
|
41
|
-
export const
|
|
42
|
-
skill: { systemPrompt: 'name', fileRead: 'none' },
|
|
43
|
-
preference: { systemPrompt: 'preview', fileRead: 'none' },
|
|
44
|
-
reference: { systemPrompt: 'none', fileRead: 'preview' },
|
|
45
|
-
};
|
|
45
|
+
export const FALLBACK_RUNG = 'none';
|
|
46
46
|
// ---------------------------------------------------------------------------
|
|
47
47
|
// Parse / validate.
|
|
48
48
|
// ---------------------------------------------------------------------------
|
|
49
49
|
/** Parse a raw frontmatter record (from `parseFrontmatterGeneric`, via the
|
|
50
50
|
* resolver) into a typed schema with defaults applied. Returns `null` when the
|
|
51
51
|
* record is absent or carries no valid `kind` — i.e. it is not a substrate
|
|
52
|
-
* document and cannot be classified
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* throws. Authoring-time enforcement of
|
|
52
|
+
* document and cannot be classified. Tolerant of every other imperfection (a
|
|
53
|
+
* missing `when-and-why-to-read` defaults to '', a missing/bad rung falls back
|
|
54
|
+
* to the neutral floor `none`), so a renderer mapping over many docs never
|
|
55
|
+
* throws. Authoring-time enforcement of these fields lives in `crtr memory
|
|
56
|
+
* write` (on create) and `crtr memory lint`. */
|
|
56
57
|
export function parseSubstrateFrontmatter(fm) {
|
|
57
58
|
if (fm === null)
|
|
58
59
|
return null;
|
|
59
60
|
if (!isDocKind(fm.kind))
|
|
60
61
|
return null;
|
|
61
62
|
const kind = fm.kind;
|
|
62
|
-
const defaults = KIND_DEFAULT_RUNGS[kind];
|
|
63
63
|
return {
|
|
64
64
|
kind,
|
|
65
65
|
whenAndWhyToRead: strField(fm['when-and-why-to-read']),
|
|
66
66
|
shortForm: strField(fm['short-form']),
|
|
67
|
-
systemPromptVisibility: parseRung(fm['system-prompt-visibility'],
|
|
68
|
-
fileReadVisibility: parseRung(fm['file-read-visibility'],
|
|
67
|
+
systemPromptVisibility: parseRung(fm['system-prompt-visibility'], FALLBACK_RUNG),
|
|
68
|
+
fileReadVisibility: parseRung(fm['file-read-visibility'], FALLBACK_RUNG),
|
|
69
69
|
gate: parseGate(fm.gate),
|
|
70
70
|
appliesTo: parseAppliesTo(fm['applies-to']),
|
|
71
|
+
readWhen: parseGate(fm['read-when']),
|
|
71
72
|
};
|
|
72
73
|
}
|
|
73
74
|
/** Parse a resolved MemoryDoc into a fully-typed SubstrateDoc (schema + the
|
|
@@ -95,8 +96,8 @@ export function previewLine(doc) {
|
|
|
95
96
|
function strField(v) {
|
|
96
97
|
return typeof v === 'string' ? v : '';
|
|
97
98
|
}
|
|
98
|
-
/** Resolve a visibility field to a ladder rung, falling back to the
|
|
99
|
-
*
|
|
99
|
+
/** Resolve a visibility field to a ladder rung, falling back to the neutral
|
|
100
|
+
* floor when absent/invalid. */
|
|
100
101
|
function parseRung(v, fallback) {
|
|
101
102
|
return typeof v === 'string' && RUNGS.includes(v)
|
|
102
103
|
? v
|
package/dist/core/tui/host.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Draw, type Rect, type Size } from './draw.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ViewCore, TuiPresenter, TextPresenter, KeyHint, BannerLevel } from '../view/contract.js';
|
|
3
3
|
export interface RunViewOptions {
|
|
4
4
|
/** CLI flags forwarded verbatim to the view via host.options. */
|
|
5
5
|
options?: Record<string, string>;
|
|
@@ -19,11 +19,19 @@ export interface Chrome {
|
|
|
19
19
|
subtitle: string | null;
|
|
20
20
|
mode: string | null;
|
|
21
21
|
}
|
|
22
|
+
/** The slice of a view's manifest that drawChrome reads (title + subtitle), plus
|
|
23
|
+
* the footer hints lifted from the TuiPresenter's keymap bindings. */
|
|
24
|
+
export interface ChromeManifest {
|
|
25
|
+
title: string;
|
|
26
|
+
subtitle?: string;
|
|
27
|
+
keymap?: KeyHint[];
|
|
28
|
+
}
|
|
22
29
|
/** Draw the host chrome into `draw` and return the content Rect for the view.
|
|
23
30
|
* Three zones: title row (state rail + title/subtitle + state chip + liveness),
|
|
24
31
|
* a hairline, and a footer (status left, keymap right) with a severity banner
|
|
25
32
|
* on the row above it when set. */
|
|
26
|
-
declare function drawChrome(draw: Draw, size: Size, manifest:
|
|
33
|
+
declare function drawChrome(draw: Draw, size: Size, manifest: ChromeManifest, c: Chrome, now?: number): Rect;
|
|
27
34
|
export { drawChrome };
|
|
28
|
-
/** Host a
|
|
29
|
-
|
|
35
|
+
/** Host a dual-target ViewCore + TuiPresenter in the alt screen until it quits
|
|
36
|
+
* (or Ctrl-C). `text` is the optional text presenter for the piped path. */
|
|
37
|
+
export declare function runCoreView<S>(core: ViewCore<S>, tui: TuiPresenter<S>, text: TextPresenter<S> | null, opts?: RunViewOptions): Promise<void>;
|