@treeseed/dsh-chapters 0.2.11 → 0.2.12
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/lib/client.js +26 -6
- package/lib/client.js.map +1 -1
- package/lib/commands.js +4 -0
- package/lib/commands.js.map +1 -1
- package/lib/index.d.ts +5 -0
- package/lib/index.js +10 -0
- package/lib/index.js.map +1 -1
- package/lib/prompt-state.d.ts +4 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -182,7 +182,19 @@ window.__ModuleLoader__.load({
|
|
|
182
182
|
* autorun and pausing it silently would be the loop dying with nobody told.
|
|
183
183
|
*/
|
|
184
184
|
const ACTIVE_POLL_MS = 1e4;
|
|
185
|
-
|
|
185
|
+
/**
|
|
186
|
+
* #229: the quiet heartbeat is CONFIG-GATED (`promptQuietHeartbeatSec`) and defaults to ZERO.
|
|
187
|
+
* Measured on the maintainer's live log after 0.2.11 installed correctly (gaps exactly 60.0s): every
|
|
188
|
+
* pull is two durable nodes — a host `command/run` + `command/done` pair — and the user's rule is
|
|
189
|
+
* absolute: never repeated chapters-prompt executions. The sanctioned moments (mount discovery once
|
|
190
|
+
* per page load, the turn-end pulse, visibility return with an untrusted cache, forced confirms)
|
|
191
|
+
* remain; the ambient drumbeat does not exist unless configured. This module is client-safe (no node
|
|
192
|
+
* builtins), so the wiring injects the config value at boot via `configureQuietHeartbeat`.
|
|
193
|
+
*/
|
|
194
|
+
let QUIET_POLL_MS = 0;
|
|
195
|
+
function configureQuietHeartbeat(seconds) {
|
|
196
|
+
QUIET_POLL_MS = typeof seconds === "number" && Number.isFinite(seconds) && seconds > 0 ? Math.trunc(seconds * 1e3) : 0;
|
|
197
|
+
}
|
|
186
198
|
function pollSpacingFor(s) {
|
|
187
199
|
if (s.turnEndPulse === true) return ACTIVE_POLL_MS;
|
|
188
200
|
if (s.edges) {
|
|
@@ -191,7 +203,8 @@ window.__ModuleLoader__.load({
|
|
|
191
203
|
}
|
|
192
204
|
const active = s.status === "analyzing" || s.autorun === "armed";
|
|
193
205
|
if (!active && s.hidden) return null;
|
|
194
|
-
|
|
206
|
+
if (!active) return QUIET_POLL_MS > 0 ? QUIET_POLL_MS : null;
|
|
207
|
+
return ACTIVE_POLL_MS;
|
|
195
208
|
}
|
|
196
209
|
/**
|
|
197
210
|
* #203: whether a freshly mounted bar pulls, or renders its cache and stays silent. The maintainer's
|
|
@@ -205,7 +218,7 @@ window.__ModuleLoader__.load({
|
|
|
205
218
|
if (!c.hasCache) return true;
|
|
206
219
|
if (c.status === "off") return false;
|
|
207
220
|
if (c.autorun === "armed" || c.status === "analyzing") return true;
|
|
208
|
-
return c.ageMs > QUIET_POLL_MS;
|
|
221
|
+
return QUIET_POLL_MS > 0 && c.ageMs > QUIET_POLL_MS;
|
|
209
222
|
}
|
|
210
223
|
/**
|
|
211
224
|
* #203: fold a cached wire event back into row state through the SAME reducer the live path uses —
|
|
@@ -272,6 +285,7 @@ window.__ModuleLoader__.load({
|
|
|
272
285
|
}
|
|
273
286
|
scalars[key] !== void 0 ? scalars[key] += ` ${value}` : scalars[key] = value;
|
|
274
287
|
}
|
|
288
|
+
configureQuietHeartbeat(Number.parseInt((scalars["heartbeat"] ?? "").trim(), 10) || 0);
|
|
275
289
|
const turnRaw = scalars["turn"] ?? "";
|
|
276
290
|
const turnSeq = /^\d+$/.test(turnRaw) ? Number(turnRaw) : null;
|
|
277
291
|
const errorRaw = scalars["error"] ?? "";
|
|
@@ -440,11 +454,12 @@ window.__ModuleLoader__.load({
|
|
|
440
454
|
".dsh-chapters_promptBar{isolation:isolate;box-sizing:border-box;width:100%;border-radius:var(--dsw-radius-md);height:36px;box-shadow:var(--dsw-elevation-panel);border:0;align-items:center;gap:10px;padding:4px 5px 4px 12px;display:flex;position:relative}",
|
|
441
455
|
".dsh-chapters_promptBar::before{z-index:-1;border-radius:inherit;background:var(--dsw-specific-menu);backdrop-filter:var(--dsw-menu-backdrop-filter);content:\"\";pointer-events:none;position:absolute;inset:0}",
|
|
442
456
|
".dsh-chapters_promptExpanded::before{align-items:flex-start;position:absolute;inset:0}",
|
|
457
|
+
".dsh-chapters_promptExpanded{height:auto;min-height:36px;padding-top:8px;padding-bottom:8px}",
|
|
443
458
|
".dsh-chapters_promptGlyph{color:var(--dsw-alias-label-tertiary);flex:none;display:inline-flex}",
|
|
444
459
|
".dsh-chapters_promptLabel{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:24px}",
|
|
445
460
|
".dsh-chapters_promptText{min-width:0;color:var(--dsw-alias-label-primary-dimmed);font-size:13px;line-height:20px;cursor:pointer;border:0;background:0 0;padding:0;text-align:left;flex:1}",
|
|
446
461
|
".dsh-chapters_promptEllipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}",
|
|
447
|
-
".dsh-chapters_promptFull{white-space:pre-wrap;overflow:
|
|
462
|
+
".dsh-chapters_promptFull{white-space:pre-wrap;overflow-wrap:anywhere;line-height:20px;font-size:13px;color:var(--dsw-alias-label-primary);display:block}",
|
|
448
463
|
".dsh-chapters_promptError{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:20px;flex:none;max-width:34%}",
|
|
449
464
|
".dsh-chapters_promptNote{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:20px;min-width:0}",
|
|
450
465
|
".dsh-chapters_promptIntent{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px}",
|
|
@@ -630,6 +645,7 @@ window.__ModuleLoader__.load({
|
|
|
630
645
|
let timer;
|
|
631
646
|
const effectiveStatus = () => replyStatus.current === "unknown" ? stateRef.current.status : replyStatus.current;
|
|
632
647
|
const spacingNow = () => {
|
|
648
|
+
if (stateRef.current.autorun === "armed") return ACTIVE_POLL_MS;
|
|
633
649
|
const pe = turnEndPulse(turnBoundary?.lastTurn, seenTurnRef.current);
|
|
634
650
|
if (pe.pulse) seenTurnRef.current = pe.seen;
|
|
635
651
|
return pollSpacingFor({
|
|
@@ -657,7 +673,8 @@ window.__ModuleLoader__.load({
|
|
|
657
673
|
if (!(opts?.mount === true && duePull())) return;
|
|
658
674
|
}
|
|
659
675
|
const spacing = spacingNow();
|
|
660
|
-
|
|
676
|
+
const mountDiscovery = opts?.mount === true && duePull();
|
|
677
|
+
if (opts?.force === true || mountDiscovery || spacing !== null && opts?.mount !== true) await refresh();
|
|
661
678
|
if (replyStatus.current === "off") return;
|
|
662
679
|
const next = spacingNow();
|
|
663
680
|
if (next !== null) timer = setTimeout(() => {
|
|
@@ -792,7 +809,10 @@ window.__ModuleLoader__.load({
|
|
|
792
809
|
className: "dsh-chapters_promptText",
|
|
793
810
|
"aria-label": state.expanded ? "Put this suggested prompt in the input box" : "Show the full suggested prompt",
|
|
794
811
|
onClick: populate
|
|
795
|
-
}, state.expanded ? (0, react.createElement)("span", { className: "dsh-chapters_promptFull" }, state.text ?? "") : (0, react.createElement)("span", {
|
|
812
|
+
}, state.expanded ? (0, react.createElement)("span", { className: "dsh-chapters_promptFull" }, state.text ?? "") : (0, react.createElement)("span", {
|
|
813
|
+
className: "dsh-chapters_promptEllipsis",
|
|
814
|
+
title: state.text ?? void 0
|
|
815
|
+
}, lineFor(state))), ...state.note === "" ? [] : [(0, react.createElement)("span", {
|
|
796
816
|
key: "note",
|
|
797
817
|
className: "dsh-chapters_promptNote",
|
|
798
818
|
role: "status"
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["h","CSS","h","useReducer","useRef","useState","useCallback","useState","useRef","useCallback","h"],"sources":["../src/client/tooltip.ts","../src/prompt-keys.ts","../src/client/prompt-bar.ts","../src/client/prompt-dock.ts","../src/client/doors.ts","../src/client/index.ts"],"sourcesContent":["/**\n * The host's Tooltip seat, resolved OPTIONALLY (#194-compat — measured on 0.2.1-rc.5, not guessed):\n *\n * `@deepseek-ai/dsh-client-ui-primitives` exists in the 0.2.0-rc.2 host tree and is ABSENT from the\n * entire 0.2.1-rc.5 install tree — no successor package exports `Tooltip`. Our bundle's static\n * import becomes a LAZY require in the built CJS: the bundle loads and components run, but the\n * first render that touches `Tooltip` throws, and React's error boundary swallows the subtree\n * silently. Measured symptoms on 0.2.1: door registration fully healthy (inject returned a\n * disposer; the factory ran; both register effects are functions) yet the assistant-actions region\n * renders ZERO entries, and the dock renders no row — because both wrap their buttons in Tooltip.\n *\n * The fix keeps one resolution point and one fallback (#59 — never per-component try/catch):\n * probe the module once; when it is absent, buttons carry the platform's own `title` tooltip, so\n * hover text survives on every host and the fancy tooltip survives where it exists.\n */\nimport { createElement as h, type ComponentType, type ReactElement } from 'react'\n\ndeclare const require: ((id: string) => Record<string, unknown>) | undefined\n\nexport type TooltipLike = ComponentType<{ label: string; side?: string; portal?: boolean; delayMs?: number; children: ReactElement<Record<string, unknown>> }>\n\n/**\n * The tooltip recipe, field for field the goal bar's own (GoalBar.tsx:101-142: `portal`,\n * `side=\"bottom\"`, `delayMs={500}`) — the shipped occupant of the same dock strip, whose tooltips\n * are NOT covered by the composer. `portal` is the load-bearing one: it renders the popup at\n * document level instead of inside our dock's stacking context, which is exactly the maintainer's\n * report (#210: \"the hoverover tooltips are covered by the main chat input container\"). Our old\n * compile-time types rejected portal/delayMs at the overload; the runtime host always accepted\n * them, and since the seat is typed by us, the recipe is pinned by a row instead of by luck.\n */\nexport function tooltipPropsFor(label: string): { label: string; side: 'bottom'; portal: true; delayMs: 500 } {\n return { label, side: 'bottom', portal: true, delayMs: 500 }\n}\n\nlet resolved: TooltipLike | null | undefined // undefined = not probed yet\n\nexport function resolveTooltip(): TooltipLike | null {\n if (resolved !== undefined) return resolved\n resolved = null\n try {\n if (typeof require === 'function') {\n const mod = require('@deepseek-ai/dsh-client-ui-primitives') as { Tooltip?: unknown } | undefined\n const T = mod?.Tooltip\n if (typeof T === 'function' || typeof T === 'object') resolved = T as TooltipLike\n }\n } catch {\n resolved = null // absent host: the native-title fallback stands\n }\n return resolved\n}\n\n/** Wrap in the host Tooltip when it exists; otherwise return the child (which must carry `title`). */\nexport function withTooltip(label: string, child: ReactElement<Record<string, unknown>>): ReactElement {\n const T = resolveTooltip()\n return T !== null ? h(T, { ...tooltipPropsFor(label), children: child }) : child\n}\n\n/** The native-tooltip attribute, present ONLY when the host seat is absent — no double tooltips. */\nexport function nativeTitle(label: string): { title: string } | Record<string, never> {\n return resolveTooltip() === null ? { title: label } : {}\n}\n","/**\n * Identifiers shared by BOTH planes of the push transport (#194). One module, one spelling: the\n * server registers the projection under this key and the client reads `useProjection(key)` — two\n * literals in two planes would be exactly the drift #59 forbids. No node imports (the client\n * compiles this), no DOM (the server imports this).\n */\nexport const PROMPT_PROJECTION_KEY = 'chaptersPrompt'\n","/**\n * The Suggested Next Step bar — every decision the row makes, kept out of React (#113).\n *\n * Deliberately shaped like the goal bar, because that implementation is tested, already fits, and gets the\n * split right: the **durable** facts (`status`, `text`, `turnSeq` — the server's one-generation-per-turn\n * identity) versus the **process-local** intent (`autorun`, `expanded` — the goal's `activation` in\n * everything but name). Nothing transient is persisted, and nothing persisted is guessed here.\n *\n * The failures the maintainer rejected are all decision bugs, not rendering bugs: firing while a turn is\n * running, shouting a refusal that should have been silence, an autorun that outlives the purpose that\n * justified it. Each has a row in `tests/unit/prompt-bar.test.ts`.\n */\n\nexport type PromptBarStatus = 'off' | 'idle' | 'analyzing' | 'ready' | 'failed'\nexport type PromptBarAutorun = 'armed' | 'disarmed'\n/** Mirrors the host's `GoalPhase` vocabulary (`dsh-goal` types) so goal composition needs no translation. */\nexport type GoalPhaseView = 'none' | 'active' | 'paused' | 'blocked' | 'complete'\n\nexport interface PromptBarState {\n status: PromptBarStatus\n /** The offer, verbatim. Never truncated — an over-cap answer is refused upstream. */\n text: string | null\n /** #113: what kind of step the server classified this as. `goal-edit` is held for the human's keystroke,\n * because goal edits require a direct human turn in the host and an autorun message is not one. */\n intent: 'worker-step' | 'goal-edit'\n /** The `turn/end` seq this offer belongs to; its identity, not a timestamp. */\n turnSeq: number | null\n /** Set only with `status: 'failed'`; rendered as `role=\"alert\"` (#61: delivered, not swallowed). */\n error: string | null\n /** Why an action did not happen, on the bar's face (#113). Empty when there is nothing to explain. */\n note: string\n autorun: PromptBarAutorun\n expanded: boolean\n running: boolean\n goalPhase: GoalPhaseView\n /** The offer a human dismissed or interrupted. A NEW `turnSeq` clears it; this one stays hidden. */\n hiddenTurnSeq: number | null\n /** Live goal facts, when the caller can read them (the goal driver owns the next turn when active+armed). */\n goal: { phase: string; activation: string; revision: number } | null\n}\n\nexport type PromptBarEvent =\n | { t: 'polled', status: PromptBarStatus, text?: string | null, turnSeq?: number | null, error?: string | null, intent?: 'worker-step' | 'goal-edit' }\n | { t: 'expand' } | { t: 'collapse' }\n /** Why an action did not happen, on the bar's own face (#113). Cleared when a new offer lands. */\n | { t: 'note'; note: string }\n | { t: 'autorun', on: boolean }\n | { t: 'human/prompt' }\n | { t: 'off' }\n | { t: 'goal', phase: GoalPhaseView }\n | { t: 'running', running: boolean }\n\nexport function initialBarState(autorun: PromptBarAutorun = 'disarmed'): PromptBarState {\n return { status: 'off', text: null, turnSeq: null, error: null, note: '', intent: 'worker-step', goalPhase: 'none', goal: null, autorun, expanded: false, running: false, hiddenTurnSeq: null }\n}\n\nexport function promptBarReducer(state: PromptBarState, ev: PromptBarEvent): PromptBarState {\n if (ev.t === 'note') return { ...state, note: ev.note }\n const next = baseBarReducer(state, ev)\n // A note is about the gesture that just failed, so a NEW offer retires it. A poll that repeats the same\n // offer (the bar re-reads every few seconds) does not — otherwise the explanation would blink out before\n // the human could read it.\n return ev.t === 'polled' && (next.turnSeq !== state.turnSeq || next.text !== state.text) ? { ...next, note: '' } : next\n}\n\nfunction baseBarReducer(state: PromptBarState, ev: PromptBarEvent): PromptBarState {\n switch (ev.t) {\n case 'polled': {\n if (ev.status === 'off') return { ...state, status: 'off', text: null, turnSeq: null, error: null, expanded: false, autorun: 'disarmed' }\n // A fresh generation invalidates the previous offer: acting on a stale one is how a bar lies.\n if (ev.status === 'analyzing') return { ...state, status: 'analyzing', text: null, error: null }\n return {\n ...state,\n status: ev.status,\n text: ev.status === 'ready' ? (ev.text ?? null) : null,\n intent: ev.status === 'ready' ? (ev.intent ?? 'worker-step') : 'worker-step',\n turnSeq: ev.turnSeq ?? state.turnSeq,\n error: ev.status === 'failed' ? (ev.error ?? 'the suggestion call failed') : null,\n }\n }\n case 'expand': return { ...state, expanded: true }\n // Collapsing is a reading action. It keeps the offer — only a human prompt or `Off` dismisses it.\n case 'collapse': return { ...state, expanded: false }\n case 'autorun': return { ...state, autorun: ev.on ? 'armed' : 'disarmed' }\n case 'running': return { ...state, running: ev.running }\n case 'human/prompt':\n // The human took the wheel: yield the loop, and drop the offer that was on screen. Generation itself\n // continues on the NEXT turn boundary — suspension is not disable.\n return { ...state, autorun: 'disarmed', hiddenTurnSeq: state.turnSeq, expanded: false }\n case 'off': return { ...state, status: 'off', text: null, turnSeq: null, error: null, expanded: false, autorun: 'disarmed' }\n case 'goal':\n // Per spec: autorun runs ALONGSIDE an active goal and disarms itself when the goal completes — the\n // suggestion loop exists to serve the session's purpose, and stops when that purpose stops.\n // #188: blocked joins complete — both planes stop together when the goal reaches a terminal\n // phase; a loop still firing offers at a blocked goal is the autorun that outlived its purpose.\n return { ...state, goalPhase: ev.phase, autorun: ev.phase === 'complete' || ev.phase === 'blocked' ? 'disarmed' : state.autorun }\n }\n // Exhaustive fallback: a new event without a case must return the state unchanged rather than\n // compile into `undefined` and blank the bar.\n return state\n}\n\n/** The status label. `failed` keeps the ready label so the error span is the delta, not a mystery row. */\nexport function barLabel(s: PromptBarState): string | null {\n if (s.status === 'analyzing') return 'Analyzing situation…'\n if (s.status === 'ready' || s.status === 'failed') return 'Recommended Next Step'\n return null\n}\n\n/**\n * #193: the pull cadence, as a decision instead of an interval constant. Every pull is two recorded\n * host lifecycle events (`command/run` + `command/done`) the UI renders as history nodes — cadence\n * IS the litter, so it belongs in this module with a row for every arm. Active = the state can\n * plausibly change on a short clock (generation in flight, an armed loop to fire, a turn running\n * that will end into an offer). Quiet = stable; one pull a minute is plenty for a state that only\n * changes at turn boundaries. Hidden-and-quiet = pull NOTHING (a background tab should write zero\n * history); hidden-and-active still pulls, because walking away from a running loop is the point of\n * autorun and pausing it silently would be the loop dying with nobody told.\n */\nexport const ACTIVE_POLL_MS = 10_000\nexport const QUIET_POLL_MS = 60_000\n\nexport function pollSpacingFor(s: { status: PromptBarStatus; autorun: PromptBarAutorun; running: boolean; hidden: boolean; edges: boolean; turnEndPulse?: boolean }): number | null {\n // #203: where the host publishes the running signal, the idle EDGE is the schedule — a turn ending\n // pulls, the bar's own actions pull, and a stable disarmed bar keeps NO clock at all, because a\n // timer there could only re-read truth into rendered history nodes. Analyzing stays on the fast\n // belt (a generation completing fires no edge), and an armed loop keeps it too (a missed edge must\n // not stall autorun). Hosts that publish no running prop get the #193 cadence, unchanged.\n // #221: a turn-end pulse from the host projection deserves an immediate follow-up — the offer\n // was just born. Applies in BOTH modes; it is the sanctioned moment, not a clock.\n if (s.turnEndPulse === true) return ACTIVE_POLL_MS\n if (s.edges) {\n if (s.status === 'analyzing' || s.autorun === 'armed') return ACTIVE_POLL_MS\n return null\n }\n // #221: unknown-running is UNKNOWN, not running. The maintainer's live host (0.2.0-rc.2) publishes\n // no usable running signal to docks; `running` defaulted to true and pinned this bar into the FAST\n // clock forever — measured 158 state pulls at exact 10.0s intervals across one session's log, even\n // while idle. Only two states justify a fast clock: generation in flight (analyzing) and an armed\n // loop that must see offers promptly. A KNOWN running turn (edges=false hosts that do supply the\n // signal... which by definition have edges=true) never needed the clock either way. So: analyzing\n // or armed ⇒ fast; otherwise quiet, hidden-quiet ⇒ silent.\n const active = s.status === 'analyzing' || s.autorun === 'armed'\n if (!active && s.hidden) return null\n return active ? ACTIVE_POLL_MS : QUIET_POLL_MS\n}\n\n/**\n * #203: whether a freshly mounted bar pulls, or renders its cache and stays silent. The maintainer's\n * rule: generate or read AFTER THE TURN ENDS, never when you activate a session. So a mount pulls\n * only when the cache cannot be trusted — absent (first mount after a page load), stale (a turn\n * could have ended since; this guarded pull is what keeps Run honest, because clicking a stale\n * offer would submit the row's newer text while showing the old), mid-generation, or armed. A\n * cached `off` never pulls: off is a human/config switch, and only an explicit `on` revisits it.\n */\nexport function mountPullDecision(c: { hasCache: boolean; ageMs: number; status: PromptBarStatus; autorun: PromptBarAutorun }): boolean {\n if (!c.hasCache) return true\n // #208, the maintainer's rule — NOT RELEVANT, NOT VISIBLE: `off` is terminal for the page\n // lifetime. The #203 staleness-revival arm cost one visible history node per reactivation of a\n // known-off session, for a feature that is not on; revival is a page reload, and the commands\n // that re-enable (`model`, `on`) say so in their replies.\n if (c.status === 'off') return false\n if (c.autorun === 'armed' || c.status === 'analyzing') return true\n return c.ageMs > QUIET_POLL_MS\n}\n\n/**\n * #203: fold a cached wire event back into row state through the SAME reducer the live path uses —\n * one fold, no second implementation to drift (the #59 rule).\n */\nexport function stateFromCache(ev: PromptBarEvent, autorun: PromptBarAutorun | null): PromptBarState {\n const folded = promptBarReducer(initialBarState(), ev)\n return autorun === null ? folded : promptBarReducer(folded, { t: 'autorun', on: autorun === 'armed' })\n}\n\nexport function barVisible(s: PromptBarState): boolean {\n // Only `off` hides the row. `idle` is enabled-and-waiting, and showing it is the difference between\n // \"the feature is live, nothing to say yet\" and silence that reads as disabled (#113).\n if (s.status === 'off') return false\n if (s.status === 'ready' && (s.text === null || s.text === '')) return false\n // The goal bar's `clearedGoalId` guard, in our terms: don't flicker back the offer just dismissed.\n if (s.hiddenTurnSeq !== null && s.hiddenTurnSeq === s.turnSeq) return false\n return true\n}\n\n/** May the bar submit its own offer? Armed, present, idle, not dismissed, and still serving a purpose. */\nexport function shouldAutoFire(s: PromptBarState): boolean {\n if (s.status !== 'ready') return false\n if (s.text === null || s.text === '') return false\n // #113: two host-imposed stops before anything else. A goal re-cut needs a human turn (dsh-tool-goal's\n // requireDirectHuman), and an armed goal driver already intends to start this turn — firing here would be\n // two turn-starters at one boundary, racing the driver's own reservation fence.\n if (s.intent === 'goal-edit') return false\n if (s.goal !== null && s.goal.phase === 'active' && s.goal.activation === 'armed') return false\n if (s.autorun !== 'armed') return false\n if (s.running) return false\n if (s.goalPhase === 'complete' || s.goalPhase === 'blocked') return false\n if (s.hiddenTurnSeq !== null && s.hiddenTurnSeq === s.turnSeq) return false\n return true\n}\n\n/** The command the bar pulls. One string, so the client and the command plane cannot drift silently. */\nexport const BAR_STATE_COMMAND = '/chapters-prompt state'\n/** The bar's Run button: the server submits the on-screen offer as the human's own turn. */\nexport const BAR_RUN_COMMAND = '/chapters-prompt run'\n\n/**\n * Parse the `state` verb's `k: v` lines into a pull event.\n *\n * One output serving the human and the component is the design (see `docs/contract.md`); this function is\n * the cost of that choice, and it is kept honest: an unrecognised line is IGNORED, not guessed at, and a\n * payload that yields no `status` is `null` so the caller keeps its last state rather than inventing `off`\n * (which would hide a bar that is merely mid-reply). Indentation and the prompt's own lines are the reason\n * the prompt is collected separately from the scalar fields — it is the only multi-line value.\n */\nexport function parseBarState(text: string): PromptBarEvent | null {\n const lines = text.split('\\n')\n const head = lines[0] ?? ''\n const statusWord = head.startsWith('suggested next step:') ? head.slice('suggested next step:'.length).trim() : ''\n const status = statusWord === 'off' ? 'off'\n : statusWord === 'idle' ? 'idle'\n : statusWord === 'analyzing' ? 'analyzing'\n : statusWord === 'ready' ? 'ready'\n : statusWord === 'failed' ? 'failed'\n : null\n if (status === null) return null\n const scalars: Record<string, string> = {}\n const prompt: string[] = []\n let inPrompt = false\n for (const line of lines.slice(1)) {\n if (inPrompt) { prompt.push(line.replace(/^ {4}/, '')); continue }\n const m = /^ {2}([a-z]+): ?(.*)$/.exec(line)\n if (m === null) continue\n const key = m[1]!, value = m[2]!.trim()\n if (key === 'prompt') { inPrompt = true; continue }\n scalars[key] !== undefined ? (scalars[key] += ` ${value}`) : (scalars[key] = value)\n }\n const turnRaw = scalars['turn'] ?? ''\n const turnSeq = /^\\d+$/.test(turnRaw) ? Number(turnRaw) : null\n const errorRaw = scalars['error'] ?? ''\n const intentWord = (scalars['intent'] ?? '').split(' ')[0] ?? ''\n return {\n t: 'polled',\n intent: intentWord === 'goal-edit' ? 'goal-edit' : 'worker-step',\n status,\n ...(status === 'ready' ? { text: prompt.join('\\n'), turnSeq } : {}),\n ...(status === 'failed' ? { error: errorRaw, turnSeq } : {}),\n }\n}\n\n/** The autorun flag, read from the same payload — the row is durable, the flag is not. */\nexport function parseBarAutorun(text: string): 'armed' | 'disarmed' | null {\n const m = /^ {2}autorun: (armed|disarmed)\\b/m.exec(text)\n return m === null ? null : (m[1] as 'armed' | 'disarmed')\n}\n\n/**\n * Does the host say this session is busy right now?\n *\n * The dock's props are HOOKS (`useSessionStatus`, `useChat`, `useInput`, …) — documented in\n * docs/contract.md § \"What a dock component is handed\" — so a component that waits for a scalar\n * `props.running` waits forever, which is precisely why Autorun declared itself unavailable while the host\n * was publishing the signal one field away. Shapes differ across hosts and versions, so every form is folded\n * here, in one pure function, with `undefined` (unknown) kept distinct from `false` (idle): the loop refuses\n * to start a turn on an unknown, and that distinction is the whole safety property.\n */\nexport function deriveRunning(status: unknown): boolean | undefined {\n if (status === undefined || status === null) return undefined\n if (typeof status === 'boolean') return status\n if (typeof status === 'string') {\n if (/^(running|streaming|busy|active)$/i.test(status)) return true\n if (/^(idle|done|stopped|finished|ready|waiting)$/i.test(status)) return false\n return undefined\n }\n if (typeof status === 'object') {\n const s = status as { status?: unknown, state?: unknown, running?: unknown, phase?: unknown }\n if (s.running !== undefined) return typeof s.running === 'boolean' ? s.running : undefined\n return deriveRunning(s.status ?? s.state ?? s.phase)\n }\n return undefined\n}\n\n\n/**\n * #208: the plane-wide relevance fact, read from the `state` block's own model line. `model: unset`\n * means the feature does not exist on this plane — one discovery reply carrying it silences EVERY\n * dock on the page (the pull transport cannot do better than one discovery; the push transport\n * (#194) removes even that). An unrecognised block is false, never a guess.\n */\nexport function parseModelAbsent(text: string): boolean {\n return /^\\s*model:\\s*unset\\b/m.test(text)\n}\n\n// ---------------------------------------------------------------- #194: the push half\n\n/** The pushed payload, as the client reads it from the standard `useProjection` seat. */\nexport interface PromptPushView {\n v: number\n status: PromptBarStatus\n text: string\n turnSeq: number | null\n error: string\n intent: 'worker-step' | 'goal-edit'\n autorun: 'armed' | 'disarmed'\n}\n\n/**\n * A pushed payload becomes the SAME events the pull path dispatches — one fold, one reducer, no\n * second implementation to drift (#59). Null when the payload is not ours or not trustworthy: an\n * unrecognised push is ignored, never guessed at, and the pull schedule underneath keeps running\n * until a payload this function accepts actually arrives.\n */\nexport function pushEventsOf(payload: unknown): { polled: PromptBarEvent; autorun: PromptBarEvent } | null {\n if (payload === null || payload === undefined || typeof payload !== 'object') return null\n const p = payload as Partial<PromptPushView>\n if (p.v !== 1 || typeof p.status !== 'string') return null\n // text is a ready-state fact, not a payload gate: an analyzing push without text is honest\n // progress, and rejecting it would blind the bar to the very transition it exists to show.\n const status = p.status as PromptBarStatus\n if (status !== 'off' && status !== 'idle' && status !== 'analyzing' && status !== 'ready' && status !== 'failed') return null\n return {\n polled: {\n t: 'polled', status,\n ...(status === 'ready' ? { text: typeof p.text === 'string' ? p.text : '', turnSeq: p.turnSeq ?? null, intent: p.intent ?? 'worker-step' } : {}),\n ...(status === 'failed' ? { error: p.error ?? 'the suggestion call failed' } : {}),\n },\n autorun: { t: 'autorun', on: p.autorun === 'armed' },\n }\n}\n\n/**\n * The running signal's resolution order (scalar prop → `useSession` snapshot via `deriveRunning` →\n * unknown) lives in the dock as `props.running ?? deriveRunning(sessionSnapshot)` — ONE expression,\n * pinned by a source-scan row, folded by the deriveRunning rows that already cover every shape.\n * A second pure helper for the same decision would be exactly the drift #59 forbids; the draft of\n * #194 shipped one and this comment is its headstone.\n */\n\n/** The staleness-confirm's one question: did a push arrive after the edge that scheduled it? */\nexport function pushIsFresher(lastPushAt: number | null, edgeAt: number): boolean {\n return lastPushAt !== null && lastPushAt > edgeAt\n}\n\n\n/** The projection key, from the ONE module both planes share (#194 — never retyped per plane). */\nexport { PROMPT_PROJECTION_KEY } from '../prompt-keys.ts'\n\n/**\n * #218: a DEAD-PUSH HEARTBEAT, not a staleness confirm — 20s fired mid-turn before the turn's\n * record could exist (turns outlast 20s), which was confirm spam wearing a safety hat. 5 minutes:\n * during normal work a record arrives every turn and the push effect retires the pending timer, so\n * a healthy push NEVER fires it; only a push silent for a whole 5 minutes pulls once — a frozen\n * bar is the failure this bounds, and it is worth one node every 5 minutes, not one every 20\n * seconds.\n * within moments (the runner writes it BEFORE calling the model). If no push arrived this long\n * after the edge, the push is presumed dead and ONE confirm pull runs — a silently dead push\n * degrades to one pull per turn, never to a frozen bar.\n */\nexport const PUSH_CONFIRM_GRACE_MS = 300_000\n\n/**\n * #211 — the edge kick's delay, measured on the maintainer's host the hard way: some hosts publish\n * `running` at STEP granularity (it flickers at every tool call and thinking block), and an\n * immediate kick per falling edge was a rendered `chapters-prompt` node per tool call — all waste,\n * because the server row changes ONLY at turn boundaries. So: a falling edge schedules its pull\n * after the debounce, a rising edge cancels it (step flicker coalesces to zero pulls), and the rate\n * floor bounds even a host that holds `running` low through long tool calls. A real turn end — a\n * falling edge with no rising edge after it — pulls exactly once.\n */\nexport const EDGE_DEBOUNCE_MS = 2_000\nexport const EDGE_FLOOR_MS = 15_000\n\nexport function edgeKickDelayMs(msSinceLastPull: number): number {\n return Math.max(EDGE_DEBOUNCE_MS, EDGE_FLOOR_MS - msSinceLastPull)\n}\n\n\n/**\n * #221: the turn-end pulse, derived from the host's own turn-boundary projection — no plugin\n * record API needed, so it works on 0.2.0 hosts (where appendPluginRecord is absent) exactly as\n * on newer ones. The host maintains a `turnBoundary` projection (the agent loop reads its\n * lastTurn for its own bookkeeping); reading what the host already folds costs zero writes and\n * delivers reactively through the same standard useProjection seat as any other projection.\n * Returns true when a NEW turn ended since the last observation; the dock calls it once per\n * render and stores the returned stamp back into `seen`.\n */\nexport function turnEndPulse(lastTurn: number | null | undefined, seen: number): { pulse: boolean, seen: number } {\n const cur = typeof lastTurn === 'number' && Number.isFinite(lastTurn) ? lastTurn : 0\n if (cur > seen) return { pulse: true, seen: cur }\n return { pulse: false, seen }\n}\n","/**\n * The Suggested Next Step dock row (#113) — thin by design.\n *\n * Every decision lives in `prompt-bar.ts` where a row can pin it; this file only moves pixels and bytes\n * between the host slot and that reducer. That split is the reason it exists: the ghost was rejected for\n * behaviour that had no home, and \"one turn, one offer\" cannot be tested in a component.\n *\n * Placement is measured, not styled: `conversation.input.dock` is the host's full-width stack rendered\n * ABOVE the composer card (todo `order: 0`, goal `10`, queue `20`), so `order: 30` puts this row under every\n * other dock entry and directly above the input — and because it is a docked row rather than an overlay, it\n * can neither cover the placeholder nor collide with the send buttons. The ghost's ugliest defect was\n * structural, and the structure fixes it.\n *\n * The bar is PUSH-SHAPED, PULL-FED. A registrant can own a reactive observable (`hooks: { x }` → prop\n * `useX`) — that is how the goal bar gets its `activation` — but a plugin cannot publish a projection, and\n * the only plugin-reachable call path is `remote.commands.execute`. So the component pulls the `state` verb\n * on edges it can actually observe. Stated here because the alternative is a reader assuming a subscription\n * that does not exist.\n *\n * @module dsh-chapters/src/client/prompt-dock\n */\n\nimport { createElement as h, useCallback, useEffect, useReducer, useRef, useState, type ReactElement } from 'react'\nimport { withTooltip, nativeTitle } from './tooltip.ts'\nimport {\n BAR_RUN_COMMAND,\n deriveRunning,\n BAR_STATE_COMMAND,\n pollSpacingFor, mountPullDecision, stateFromCache, parseModelAbsent, edgeKickDelayMs,\n pushEventsOf, pushIsFresher, PROMPT_PROJECTION_KEY, PUSH_CONFIRM_GRACE_MS, turnEndPulse, type PromptBarStatus,\n barLabel,\n barVisible,\n initialBarState,\n parseBarAutorun,\n parseBarState,\n promptBarReducer,\n shouldAutoFire,\n type PromptBarEvent,\n type PromptBarState,\n} from './prompt-bar.ts'\n\n/** The dock's owner + standard-kit props we read. Everything is optional-typed on purpose: this is a host\n * shape crossing a plugin boundary, and an absent field must degrade visibly, not throw at boot (#58). */\nexport interface DockProps {\n sessionId?: string\n inputActions?: { insertText?: (text: string) => void; setDraft?: (text: string) => void; submit?: () => void }\n /** The host's session-status hook, when this build hands docks one (`useSessionStatus` is in the dock's\n * documented prop list). Folded through `deriveRunning` because its shape is not ours to assume. */\n useSessionStatus?: (selector?: unknown) => unknown\n /** The session snapshot hook; its snapshot carries `running`, which is Autorun's idle edge. */\n useSession?: (selector?: unknown) => unknown\n /** #194: the standard projection seat (SessionStandardProps, measured in ui-session). Where the\n * server registered the push projection, this returns its value reactively — zero commands.\n * Absent hook or undefined value ⇒ the pull schedule stands, unchanged. */\n useProjection?: (key: string) => unknown\n /** The host publishes running/idle through the composer kit on some builds; if it is absent, autorun\n * refuses to fire rather than guessing that the session is idle. Fail-safe, not fail-open. */\n running?: boolean\n /** Run a host command line for THIS session and return its text. One verb for every call the bar makes\n * (the `state` pull and the `off` write), because the bar is a mouth for the command plane — a second\n * private channel would be a second contract to keep in step, which is what `doors.ts` already avoids. */\n exec?: (line: string) => Promise<string>\n}\n\nconst CSS = [\n // Metrics copied from the goal bar's measured module so the two rows read as one family: a 36px card,\n // host elevation + radius tokens, and the host's own composer width vars so it tracks the card above it.\n '.dsh-chapters_promptDock{box-sizing:border-box;width:calc(100% - 2 * var(--dsh-composer-side-clearance) - 4 * var(--dsh-composer-dock-inset));max-width:calc(var(--dsh-composer-card-max-width) - 4 * var(--dsh-composer-dock-inset));margin:0 auto}',\n '.dsh-chapters_promptBar{isolation:isolate;box-sizing:border-box;width:100%;border-radius:var(--dsw-radius-md);height:36px;box-shadow:var(--dsw-elevation-panel);border:0;align-items:center;gap:10px;padding:4px 5px 4px 12px;display:flex;position:relative}',\n '.dsh-chapters_promptBar::before{z-index:-1;border-radius:inherit;background:var(--dsw-specific-menu);backdrop-filter:var(--dsw-menu-backdrop-filter);content:\"\";pointer-events:none;position:absolute;inset:0}',\n '.dsh-chapters_promptExpanded::before{align-items:flex-start;position:absolute;inset:0}',\n '.dsh-chapters_promptGlyph{color:var(--dsw-alias-label-tertiary);flex:none;display:inline-flex}',\n '.dsh-chapters_promptLabel{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:24px}',\n '.dsh-chapters_promptText{min-width:0;color:var(--dsw-alias-label-primary-dimmed);font-size:13px;line-height:20px;cursor:pointer;border:0;background:0 0;padding:0;text-align:left;flex:1}',\n '.dsh-chapters_promptEllipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}',\n '.dsh-chapters_promptFull{white-space:pre-wrap;overflow:auto;max-height:9rem;display:block}',\n '.dsh-chapters_promptError{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:20px;flex:none;max-width:34%}', '.dsh-chapters_promptNote{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:20px;min-width:0}',\n '.dsh-chapters_promptIntent{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px}',\n\n '.dsh-chapters_promptActions{flex:none;align-items:center;gap:10px;display:flex}',\n '.dsh-chapters_promptBtn{corner-shape:round;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;font-size:13px}',\n '.dsh-chapters_promptBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}',\n '.dsh-chapters_promptBtn:disabled{opacity:.4;cursor:default}',\n].join('\\n')\nconst CSS_ID = 'dsh-chapters/prompt-dock.css'\n\nconst ensureCss = (): void => {\n if (typeof document === 'undefined') return\n if (document.getElementById(CSS_ID) !== null) return\n const style = document.createElement('style')\n style.id = CSS_ID\n style.setAttribute('data-plugin-css', CSS_ID)\n style.textContent = CSS\n document.head.appendChild(style)\n}\n\n/** The analysis glyph, drawn to the goal icon's metric (16 viewBox, stroke currentColor, width 1).\n * A prism-and-arrow: the feature reads the situation and points at the next move. */\nconst Glyph = (): ReactElement => h(\n 'svg', { viewBox: '0 0 16 16', width: 14, height: 14, fill: 'none', 'aria-hidden': 'true', 'stroke-width': '1' },\n h('path', { d: 'M2.5 3.5h11L8 9.5 2.5 3.5Z', stroke: 'currentColor' }),\n h('path', { d: 'M8 9.5V14', stroke: 'currentColor' }),\n h('path', { d: 'M6 12l2 2 2-2', stroke: 'currentColor' }),\n)\n\n/** One action button, labelled through the host tooltip exactly as the goal bar labels its own. */\nconst Action = (props: { label: string; glyph: string; onClick: () => void; disabled?: boolean; title?: string }): ReactElement => {\n const button = h('button', {\n type: 'button', className: 'dsh-chapters_promptBtn', 'aria-label': props.label,\n ...(props.disabled === true ? { disabled: true } : {}),\n ...(props.title !== undefined ? { title: props.title } : nativeTitle(props.label)),\n onClick: props.onClick,\n }, props.glyph)\n // Props matched to the call `doors.ts` already makes successfully: the host Tooltip takes\n // { label, side, children } and nothing else that I have verified. Inventing extra props (portal, delayMs)\n // failed the overload on the first compile, which is the right way to learn it.\n return withTooltip(props.label, button as ReactElement<Record<string, unknown>>)\n}\n\n/** Run is allowed whenever there is an offer; AUTORUN is what the intent and the goal gate. Keeping the\n * human's own button enabled is deliberate — the point of the protocol is to route a goal edit to a keystroke,\n * never to disable the human's ability to send it. */\n/**\n * The words the collapsed row shows, per state. `idle` and `analyzing` must say something, because an empty\n * row is indistinguishable from a broken one — the whole reason this feature took a day to read: the bar was\n * live, enabled, and rendering nothing but whitespace.\n */\nfunction lineFor(state: PromptBarState): string {\n if (state.status === 'ready') return state.text ?? ''\n if (state.status === 'analyzing') return 'Analyzing the session…'\n if (state.status === 'failed') return state.error !== null && state.error !== '' ? `Cannot recommend: ${state.error}` : 'Cannot recommend a next step right now'\n return 'No suggestion yet — I will recommend one after your next turn'\n}\n\nconst canRunHere = (state: PromptBarState): boolean => state.text !== null && state.text !== ''\n\n/** How long a state pull may take before we call it failed. Generous on purpose: this is a local RPC that\n * answers in milliseconds when the session is attachable, and the failure it guards against is a hang. */\nconst PULL_TIMEOUT_MS = 15_000\n\n/**\n * #203: the last known truth per session, outliving the component. SPA navigation remounts the\n * dock, and every pull is a rendered `command/run`+`command/done` history pair — so a remount\n * that re-pulled wrote a node per activation, the waste the maintainer named (\"every time I\n * navigate away and come back\"). The cache makes activation free: mount folds it through the SAME\n * reducer (stateFromCache), and only an untrustworthy cache pulls (mountPullDecision). A page\n * reload clears it and pays exactly one honest pull.\n */\ninterface CacheEntry { ev: import('./prompt-bar.ts').PromptBarEvent; autorun: 'armed' | 'disarmed' | null; at: number }\nconst stateCache = new Map<string, CacheEntry>()\n\n/**\n * #208: set by the first reply reporting the plane-wide `model: unset` — the feature does not\n * exist here, so NO dock on this page pulls again for anything: not mounts, not idle edges, not\n * timers, not visibility. One discovery per page load is the pull transport's floor; a page reload\n * is the only revival, and the enabling commands say so.\n */\nlet featureAbsent = false\n\n/** Retry ceiling for the FIRST pull only, in attempts and spacing. A mount-time race must not be able to\n * starve the bar forever, and a real `off` answer stops the loop on the first reply either way. */\n\nfunction execWithTimeout(exec: (line: string) => Promise<string>, line: string, ms: number): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const timer = setTimeout(() => { reject(new Error(`no answer within ${String(ms)}ms`)) }, ms)\n exec(line).then(\n (text) => { clearTimeout(timer); resolve(text) },\n (error: unknown) => { clearTimeout(timer); reject(error instanceof Error ? error : new Error(String(error))) },\n )\n })\n}\n\nexport function PromptDock(props: DockProps): ReactElement | null {\n const { sessionId, inputActions, exec } = props\n // #194 + the contract's running-signal lock: BOTH hook reads happen first, unconditionally,\n // above every other hook — hook order must not change between renders (the #310 lesson). The\n // measured seats: `useSession`'s snapshot carries `running` (deriveRunning folds whatever shape\n // arrives; a scalar `running` prop wins where a build supplies one), and `useProjection` is the\n // standard seat the push transport rides. Absent hooks degrade through stable fallbacks.\n const useSessionHook = props.useSession ?? (() => undefined)\n const sessionSnapshot = useSessionHook((snapshot: unknown) => snapshot)\n const running = props.running ?? deriveRunning(sessionSnapshot)\n const useProjectionHook = props.useProjection ?? (() => undefined)\n const pushed = useProjectionHook(PROMPT_PROJECTION_KEY)\n // #221: the host's OWN turn-boundary projection. Reading it costs nothing (the agent loop already\n // maintains it), works on EVERY host with projections including 0.2.0-rc.2 — where appendPluginRecord\n // is absent and the record transport cannot exist. A new turn end is the only moment our row can\n // change without a user action, so this pulse replaces the clock: one sanctioned follow-up pull per\n // boundary instead of a 10-second drumbeat (measured on the maintainer's live log: 158 pulls at exact\n // 10.0s intervals). Absent hook or projection ⇒ no pulse ⇒ the quiet heartbeat stands.\n const turnBoundary = useProjectionHook('turnBoundary') as { lastTurn?: number } | null | undefined\n const [state, dispatch] = useReducer(promptBarReducer, initialBarState(), (s) => {\n // #203: activation renders from the module cache — zero invocations — folded through the live\n // reducer path, so there is no second fold implementation to drift.\n const pushEvs = pushEventsOf(pushed)\n if (pushEvs !== null) {\n return { ...promptBarReducer(promptBarReducer(s, pushEvs.polled), pushEvs.autorun), running: running ?? true }\n }\n const c = sessionId !== undefined ? stateCache.get(sessionId) : undefined\n const base = c !== undefined ? stateFromCache(c.ev, c.autorun) : s\n return { ...base, running: running ?? true }\n })\n // #79's discipline, kept because the failure it prevents was real: one pull per mount, then per edge.\n // A fetch in an effect with no such guard re-fires on every render.\n const pulling = useRef(false)\n // TWO different facts, two different refs — conflating them is the bug I just shipped: `pulled` is the\n // once-per-mount pull guard, `alive` is \"may this component still call dispatch/setState\". Initializing the\n // pull guard to true made every mount skip its first pull, so the bar sat at its `off` default and rendered\n // nothing at all — a regression that looked, from outside, like the feature having stopped working.\n const probed = useRef(false)\n const pulled = useRef(false)\n const alive = useRef(true)\n useEffect(() => () => { alive.current = false }, [])\n const [busy, setBusy] = useState(false)\n void 0\n // #193: the mount effect's reschedule handle, so the idle edge and the visibility edge can pull NOW\n // instead of waiting out a possibly-quiet cadence. Undefined while the poll is not mounted.\n const kick = useRef<(() => void) | undefined>(undefined)\n // #211: when the last pull STARTED (a failed pull is still a rendered node — the floor counts it),\n // and the pending debounced edge pull, which a rising edge cancels.\n const lastPullAt = useRef<number | null>(null)\n const edgeTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n // #194: push-mode bookkeeping. pushLive flips on the first ACCEPTED payload and stays true for\n // the page lifetime — a projection that existed and went silent is the confirm-pull's job to\n // police, not a reason to resurrect the clock.\n const pushLiveRef = useRef<boolean>(false)\n // #221: the last turn-end seq observed; the pulse fires when the host advances past it.\n const seenTurnRef = useRef<number>(0)\n const lastPushAt = useRef<number | null>(null)\n const answered = useRef(false)\n const replyStatus = useRef<string>('unknown')\n const stateRef = useRef<PromptBarState>(initialBarState())\n stateRef.current = state\n // #203: does THIS host publish the running signal? Where it does, the idle edge is the schedule\n // and a stable bar keeps no clock; where it does not, the #193 cadence is the fallback.\n const edgesRef = useRef<boolean>(props.running !== undefined)\n edgesRef.current = props.running !== undefined\n if (!probed.current) {\n probed.current = true\n // One print, on the first mount: which composer verbs does THIS host actually hand a dock? The click-to-draft\n // requirement needs one, `setDraft` is accepted but never reaches the editor, and guessing at the surface\n // again would be a third wrong theory in a row.\n console.info(`[client:prompt] inputActions keys: ${Object.keys(inputActions ?? {}).join(',') || 'NONE'}`)\n }\n\n const refresh = useCallback(async (): Promise<void> => {\n if (exec === undefined || pulling.current) return\n pulling.current = true\n lastPullAt.current = Date.now()\n try {\n // Bounded, and loudly so. Tonight's whole diagnosis cost was paid because this await had no ceiling:\n // a wire that never answers produced no dispatch, no catch and no `finally`, which looked identical to\n // \"the feature is switched off\". A hung command is now a named failure with a number on it (#61).\n const text = await execWithTimeout(exec, BAR_STATE_COMMAND, PULL_TIMEOUT_MS)\n // Handed to the leg through the page, because the state block is the contract and I need to see the\n // bytes the browser parsed, not the bytes the server meant. Overwritten each pull; read on failure.\n try { (window as unknown as { __dshPromptReply?: string }).__dshPromptReply = text } catch { /* test seam only */ }\n const ev = parseBarState(text) as PromptBarEvent | null\n if (ev !== null) { answered.current = true; replyStatus.current = (ev as { status?: string }).status ?? replyStatus.current; dispatch(ev) }\n const autorun = parseBarAutorun(text)\n if (autorun !== null) dispatch({ t: 'autorun', on: autorun === 'armed' })\n // #208: a reply naming the model unset silences the whole page — relevance is plane-wide.\n if (parseModelAbsent(text)) featureAbsent = true\n // #203: every honest reply feeds the cache the next activation renders from.\n if (ev !== null && sessionId !== undefined) {\n stateCache.set(sessionId, { ev, autorun: autorun === 'armed' || autorun === 'disarmed' ? autorun : null, at: Date.now() })\n }\n } catch (error) {\n // #61: a detected failure is a DELIVERED failure. Keeping the last known state is right; saying\n // nothing was not — with a bare `catch {}` a wire that never answers is indistinguishable from a\n // feature that is switched off, and that is exactly how this bar looked \"unverifiable\" in a browser\n // while the real fault was one line of swallowed output.\n // A failed pull is not a state: the bar keeps what it last knew rather than rendering `off`,\n // which would read as \"suggestions are disabled\" when the wire merely hiccoughed.\n console.warn(`[client:prompt] pull failed: ${String((error as Error)?.message ?? error).slice(0, 180)}`)\n } finally { pulling.current = false }\n }, [exec])\n\n // #194: the pushed value dispatches through the same reducer the pulls feed. The effect sits\n // ABOVE the mount poll so pushLive is set before the first tick decides anything. Any push also\n // retires a pending edge timer in push mode — the record IS the answer the confirm would fetch.\n useEffect(() => {\n const evs = pushEventsOf(pushed)\n if (evs === null) return\n pushLiveRef.current = true\n lastPushAt.current = Date.now()\n dispatch(evs.polled)\n dispatch(evs.autorun)\n if (edgeTimer.current !== undefined) { clearTimeout(edgeTimer.current); edgeTimer.current = undefined }\n }, [pushed])\n\n useEffect(() => {\n ensureCss()\n if (pulled.current) return\n pulled.current = true\n // Retry until SOMETHING answers. `answered` flips on any parseable reply, including an honest `off`, so\n // this loop cannot make a disabled session look enabled — it only closes the window where a pull fired\n // before the session could take a command and the bar then stayed blank for the rest of the session.\n // Keep reading while the feature is live, at a cadence that is a DECISION (#193): every pull is two\n // recorded host lifecycle events (`command/run` + `command/done`) the UI renders as history nodes, so\n // the old unconditional 10s poll wrote ~360 visible nodes an hour into every bar-enabled session —\n // the maintainer's \"littered with chapters-prompt runs, one right after another\". `pollSpacingFor`\n // paces it: fast while state can change (analyzing / armed / running), slow while stable, and NOTHING\n // in a hidden tab unless the loop is armed. On hosts that publish no running prop, `running` stays\n // conservatively true and the cadence stays active — the old behavior, unchanged. `off` still ends it.\n let timer: ReturnType<typeof setTimeout> | undefined\n // #203: one vocabulary for \"what the bar knows right now\" — a reply beats the cache-folded row\n // state, and every schedule decision reads THIS instead of keeping a fourth copy of the truth.\n const effectiveStatus = (): PromptBarStatus =>\n (replyStatus.current === 'unknown' ? stateRef.current.status : replyStatus.current) as PromptBarStatus\n const spacingNow = (): number | null => {\n // #221: consume the pulse exactly once per boundary.\n const pe = turnEndPulse(turnBoundary?.lastTurn, seenTurnRef.current)\n if (pe.pulse) seenTurnRef.current = pe.seen\n return pollSpacingFor({\n status: effectiveStatus(),\n autorun: stateRef.current.autorun,\n running: stateRef.current.running,\n hidden: typeof document !== 'undefined' && document.hidden === true,\n edges: edgesRef.current,\n turnEndPulse: pe.pulse,\n })\n }\n const duePull = (): boolean => {\n const c = sessionId !== undefined ? stateCache.get(sessionId) : undefined\n return mountPullDecision({\n hasCache: c !== undefined,\n ageMs: c !== undefined ? Date.now() - c.at : Number.MAX_SAFE_INTEGER,\n status: effectiveStatus(),\n autorun: stateRef.current.autorun,\n })\n }\n const tick = async (opts?: { mount?: boolean; force?: boolean }): Promise<void> => {\n // #194: in push mode there is no clock and no mount pull — state arrives through the\n // projection. A FORCED tick still runs: that is the staleness confirm firing because the\n // push did NOT arrive, and the pull is then the honest fallback, not waste.\n if (pushLiveRef.current && opts?.force !== true) return\n // #208: not relevant, not visible — an unset-model plane spends nothing, ever.\n if (featureAbsent) return\n if (effectiveStatus() === 'off') {\n // A known `off` spends no clock and no edge — but a STALE cached off is untrustworthy:\n // `/chapters-prompt on` could have happened anywhere. The staleness guard on a mount is the\n // only revival path short of a page reload, and that matches the old within-mount rule.\n if (!(opts?.mount === true && duePull())) return\n }\n const spacing = spacingNow()\n // force = an edge the schedule sanctions (a turn ended): pull even where the steady cadence\n // says no timer is needed. mount = the guarded first look; a fresh cache renders for free.\n if (opts?.force === true || (spacing !== null && !(opts?.mount === true && !duePull()))) await refresh()\n if (replyStatus.current === 'off') return\n // The reply, not the React state: the row is hidden while `off`, and a hidden row renders\n // nothing, so stateRef can lag. The schedule reads the wire truth whenever it exists.\n const next = spacingNow()\n if (next !== null) timer = setTimeout(() => { void tick() }, next)\n }\n // The idle edge IS the schedule (#203): a turn ending is the moment an offer is born, so it\n // pulls with force. The tab-foreground edge pulls ONLY when the cache can no longer be\n // trusted — flicking back to a tab you left a moment ago must not write a history node.\n kick.current = () => {\n if (timer !== undefined) clearTimeout(timer)\n void tick({ force: true })\n }\n const onVisible = (): void => {\n if (typeof document !== 'undefined' && !document.hidden && duePull()) kick.current?.()\n }\n if (typeof document !== 'undefined') document.addEventListener('visibilitychange', onVisible)\n void tick({ mount: true })\n return () => {\n if (timer !== undefined) clearTimeout(timer)\n if (edgeTimer.current !== undefined) { clearTimeout(edgeTimer.current); edgeTimer.current = undefined }\n kick.current = undefined\n if (typeof document !== 'undefined') document.removeEventListener('visibilitychange', onVisible)\n }\n }, [refresh])\n\n // Autorun fires off the IDLE edge, never off a render. `running` comes from the host when it publishes it;\n // absent means unknown, and unknown means do not start a turn the human cannot see coming.\n const prevRunning = useRef<boolean>(running ?? true)\n useEffect(() => {\n const next = running ?? true\n const prev = prevRunning.current\n prevRunning.current = next\n dispatch({ t: 'running', running: next })\n // #211 + #194, ONE schedule: a falling edge delays exactly one pull and a rising edge cancels\n // it (step-granular flicker coalesces to zero pulls). Pull mode: the debounced kick\n // (edgeKickDelayMs — 2s debounce, 15s floor). Push mode: the staleness CONFIRM at\n // max(grace, floor − since) — a record landing after the edge retires it via the push effect,\n // so a healthy push costs nothing and a dead one degrades to one pull per turn, never a\n // frozen bar. Hosts that publish no running signal never produce transitions and keep the\n // cadence fallback unchanged.\n if (prev && !next) {\n if (edgeTimer.current !== undefined) clearTimeout(edgeTimer.current)\n const since = lastPullAt.current === null ? Number.MAX_SAFE_INTEGER : Date.now() - lastPullAt.current\n const delay = pushLiveRef.current\n ? Math.max(PUSH_CONFIRM_GRACE_MS, edgeKickDelayMs(since))\n : edgeKickDelayMs(since)\n const edgeAt = Date.now()\n edgeTimer.current = setTimeout(() => {\n edgeTimer.current = undefined\n // A push that landed after the edge already answered the confirm's question.\n if (pushLiveRef.current && pushIsFresher(lastPushAt.current, edgeAt)) return\n kick.current?.()\n }, delay)\n } else if (!prev && next) {\n if (edgeTimer.current !== undefined) { clearTimeout(edgeTimer.current); edgeTimer.current = undefined }\n }\n }, [running])\n\n // Run is a COMMAND, not a keystroke. The composer-write path (`inputActions.setDraft` + `submit`) looked\n // like the obvious implementation and does not work on this host build: `setDraft` is accepted, and the\n // editor stays empty — measured, twice, after I had convinced myself it was the test's locator or a focus\n // ordering problem. The plugin already has a dependable wire to its own server plane, and the server has\n // exactly one human-authored submission path (the follow-up autorun uses), so Run rides that. The\n // consequence is also the point: what the human clicks and what the loop arms are the same code.\n const run = useCallback((): void => {\n if (state.text === null || state.text === '' || exec === undefined) return\n setBusy(true)\n void exec(BAR_RUN_COMMAND)\n .then((out) => {\n if (!alive.current) return\n if (/^cannot run:/i.test(out.trim())) dispatch({ t: 'polled', status: 'failed', text: state.text, error: out.trim().slice(0, 200), turnSeq: state.turnSeq } as PromptBarEvent)\n else dispatch({ t: 'collapse' })\n })\n .catch((error: unknown) => { console.warn(`[client:prompt] run failed: ${String((error as Error)?.message ?? error).slice(0, 160)}`) })\n .finally(() => { if (alive.current) setBusy(false) })\n }, [exec, state.text, state.turnSeq])\n\n useEffect(() => {\n if (!shouldAutoFire(state)) return\n run()\n }, [state, run])\n\n // Autorun's idle edge stays UNWIRED on this host, and that is now a measured fact rather than a guess:\n // `useSessionStatus` is in the dock's documented prop list, but calling it here threw twice — first a React\n // hook-order abort (#310, because it sat below the early return), then `TypeError: l is not a function` once\n // hoisted. Two blind attempts is the limit; the contract says which hooks exist, not their arity or context.\n // So the gate keeps its original, correct behavior: with no signal, `running` is undefined, Autorun is\n // visibly unavailable and says why, and `deriveRunning` (9 rows) stands ready for whichever shape the host\n // does publish. A loop that starts turns the human cannot foresee is the one failure mode not on offer.\n // `useSessionStatus` is `SnapshotSelectorHook<SessionStatusSnapshot>` — a SELECTOR hook (declared in\n // dsh-client-ui-session's client types), which is why calling it with a session id threw\n // `TypeError: l is not a function`: the host used my string as the selector. An identity selector takes\n // whatever the snapshot's shape happens to be, and `deriveRunning` folds it, so this code does not bet on\n // field names I have not read. Still hoisted above the early return: hook count must not change per render.\n // The idle signal IS published — on `useSession`, whose snapshot carries `running` (measured by printing the\n // hook surfaces once: `useSession=sessionId|pendingSubmissions|running|subagent|removed|openState`). My\n // first two attempts were wrong in different ways: a scalar `props.running` that no host supplies, then\n // `useSessionStatus`, which is provided but yields no readable keys under an identity selector. `deriveRunning`\n // folds `{running}`, so this is the last mile, and the hook is called unconditionally through a stable\n // fallback because hook order must not change between renders.\n const autorunDisabled = running === undefined\n\n if (sessionId === undefined || !barVisible(state as PromptBarState)) return null\n\n const populate = (): void => {\n // Collapsed: reading. Expanded: the maintainer's click-to-edit gesture — setDraft REPLACES the draft,\n // which is what they asked for (\"the prompt replaces the chat input contents so you can edit it\"), and\n // nothing is submitted. Run is a separate, deliberate button.\n // Printed on every branch, because \"the button did nothing\" and \"the button took the other path\" looked\n // identical from outside for three runs.\n console.info(`[client:prompt] populate expanded=${String(state.expanded)} hasInsertText=${String(typeof inputActions?.insertText)} hasSetDraft=${String(typeof inputActions?.setDraft)} textLen=${String(state.text?.length ?? -1)}`)\n if (!state.expanded) { dispatch({ t: 'expand' }); return }\n if (state.text === null || state.text === '') return\n // Delivered, not assumed. The click-to-draft gesture is the interaction the maintainer asked for, so a\n // silent no-op here is indistinguishable from \"the feature does not work\" — and that ambiguity cost the\n // rest of this leg's diagnosis. Absent verb, absent text: both say so.\n // The host's composer kit is `{ captureInsertion, insertText, setDraft, addAttachments, removeAttachment,\n // pruneAttachments, submit }` (measured on 0.2.0-rc.2). `setDraft` writes the STORE, and the store is\n // mirrored into the editor only at mount while the editor is empty — which is why a click that \"worked\"\n // (no refusal, no throw) left the box visibly empty. `insertText` is the verb that reaches the editor, so\n // click-to-draft uses it and keeps `setDraft` only as a fallback for builds that lack it.\n if (typeof inputActions?.insertText === 'function') {\n // `insertText` inserts AT THE CARET, and clicking this button moves the caret out of the editor — so the\n // call ran and put the words nowhere. Focusing the composer first is the whole difference, and it is done\n // with a tolerant query rather than a class name: the host's own module hashes (`wSkVaW_…`) are not mine\n // to depend on, and a bar that silently stops drafting after a host restyle is worse than one that tries.\n try {\n const box = document.querySelector<HTMLElement>('[contenteditable=\"true\"][role=\"textbox\"]')\n box?.focus()\n } catch { /* a host without the editor mounted: the insert below still records the intent */ }\n // Measured on host 0.2.0-rc.2: called from a dock this throws\n // `Cannot read properties of undefined (reading 'draftRev')`, and the kit's other verb (`setDraft`) writes\n // a store the editor mirrors only at mount. Neither reaches the composer. A silent no-op is what cost the\n // last six runs, so the refusal now appears on the bar and points at Run, which does work.\n const refuse = (why: string): void => {\n console.warn(`[client:prompt] click-to-draft refused: ${why}`)\n dispatch({ t: 'note', note: 'This host does not let a plugin write the composer, so the prompt cannot be edited before sending — Run submits it as your turn' })\n }\n try {\n inputActions.insertText(state.text)\n // Throwing is the easy case. The harder one is the verb that returns successfully and changes nothing,\n // which is what `setDraft` does on 0.2.0-rc.2 and what a silent button looks like forever. Verify the\n // editor actually holds the words; if it does not, say so on the bar.\n const box = document.querySelector<HTMLElement>('[contenteditable=\"true\"][role=\"textbox\"]')\n const head = state.text.slice(0, 24)\n if ((box?.innerText ?? '').indexOf(head) === -1) {\n // One animation frame: the host may write the DOM after its own microtask.\n setTimeout(() => {\n const b2 = document.querySelector<HTMLElement>('[contenteditable=\"true\"][role=\"textbox\"]')\n if ((b2?.innerText ?? '').indexOf(head) === -1) refuse('insertText reported success and left the editor empty')\n }, 400)\n }\n } catch (error) {\n refuse(String((error as Error)?.message ?? error).slice(0, 160))\n }\n // Read the editor back from inside the component, so \"insertText is a no-op on this host\" is a fact with\n // a number next to it rather than a conclusion the test reaches after the fact.\n setTimeout(() => {\n try {\n const box = document.querySelector<HTMLElement>('[contenteditable=\"true\"][role=\"textbox\"]')\n console.info(`[client:prompt] after insertText: editorText=${String(box?.innerText?.length ?? 'NO-BOX')} focused=${String(document.activeElement === box)}`)\n } catch { /* diagnostics never break the gesture */ }\n }, 250)\n return\n }\n if (typeof inputActions?.setDraft === 'function') {\n inputActions.setDraft(state.text)\n return\n }\n console.warn('[client:prompt] click-to-draft refused: this host exposes neither insertText nor setDraft')\n }\n\n // Called unconditionally through a stable fallback, so the hook order cannot change between renders.\n return h('div', { className: 'dsh-chapters_promptDock', 'data-prompt-bar': 'true' },\n h('div', { className: `dsh-chapters_promptBar${state.expanded ? ' dsh-chapters_promptExpanded' : ''}` },\n h('span', { className: 'dsh-chapters_promptGlyph' }, h(Glyph)),\n h('span', { className: 'dsh-chapters_promptLabel' }, barLabel(state as PromptBarState) ?? ''),\n // A goal re-cut is held for the human's keystroke: the host reserves goal edits for a turn containing a\n // direct human message, and an autorun message is not one. The bar says so on its face rather than\n // letting Run appear to be a normal button that silently fails in the tool.\n ...(state.intent === 'goal-edit' ? [h('span', { key: 'intent', className: 'dsh-chapters_promptIntent', 'aria-label': 'This step edits the goal' }, 'edits the goal · run it yourself')] : []),\n h('button', {\n type: 'button', className: 'dsh-chapters_promptText',\n 'aria-label': state.expanded ? 'Put this suggested prompt in the input box' : 'Show the full suggested prompt',\n onClick: populate,\n }, state.expanded\n ? h('span', { className: 'dsh-chapters_promptFull' }, state.text ?? '')\n : h('span', { className: 'dsh-chapters_promptEllipsis' }, lineFor(state))),\n ...(state.note === '' ? [] : [h('span', { key: 'note', className: 'dsh-chapters_promptNote', role: 'status' }, state.note)]),\n ...(state.error === '' ? [] : [h('span', { key: 'err', className: 'dsh-chapters_promptError', role: 'alert' }, state.error)]),\n h('div', { className: 'dsh-chapters_promptActions' },\n h(Action, {\n label: 'Run the suggested next step', glyph: '▶', onClick: run, disabled: busy,\n ...(state.text === null || state.text === '' || !canRunHere(state) ? { disabled: true } : {}),\n ...(state.intent === 'goal-edit'\n ? { title: 'Goal edits need a human turn. Run still works; autorun will never do this one.' }\n : {}),\n }),\n h(Action, {\n label: state.autorun === 'armed' ? 'Autorun off' : 'Autorun',\n glyph: state.autorun === 'armed' ? '⟳' : '⟲',\n disabled: autorunDisabled,\n ...(autorunDisabled\n ? { title: 'Autorun needs the host to publish an idle signal; this build does not, so nothing would fire safely.' }\n : {}),\n // A SERVER write, like `off` below. Flipping local state alone was the defect: `refresh()` re-reads the\n // loop state (`:193`), the server still says `disarmed`, and the label snaps back — so the user watched\n // their own click be refused and the loop could never be started from the bar. The command surface is\n // `/chapters-prompt autorun on|off` (src/commands.ts:462-478), which also reports the goal displacement.\n onClick: () => {\n void (async () => {\n const arm = state.autorun !== 'armed'\n if (exec !== undefined) await exec(`/chapters-prompt autorun ${arm ? 'on' : 'off'}`)\n dispatch({ t: 'autorun', on: arm })\n // #194: in push mode the setAutorun append carries the truth back — a refresh here\n // would be a command run for a fact already in flight.\n if (!pushLiveRef.current) await refresh()\n })()\n },\n }),\n h(Action, {\n label: 'Turn prompt suggestions off for this session', glyph: '✕',\n // `off` is a server write, not a local hide: generation stops, the configured model is KEPT so\n // back-on is one action, and the bar disappears instead of lingering with a stale offer.\n onClick: () => { void (async () => { if (exec !== undefined) await exec('/chapters-prompt off'); dispatch({ t: 'off' }); if (sessionId !== undefined) stateCache.set(sessionId, { ev: { t: 'polled', status: 'off' }, autorun: null, at: Date.now() }) })() },\n }),\n ),\n ),\n )\n}\n","/**\n * The client door runner: the two deterministic archive doors, executed over\n * `remote.commands` and followed by a SWITCH to the fresh child.\n *\n * ONE runner, two rows. The server side keeps the same discipline — both doors\n * come from `deterministicCommand(door)` in src/tools.ts, and a unit row pins\n * that they archive identically. Copy-pasting this body is how the two would\n * drift apart, so there is exactly one implementation and a table of rows.\n *\n * `chapters-continue` ships only as a composer command; without a button here\n * the child is created correctly and the UI shows nothing, which reads as\n * \"nothing happened\". The row is the missing affordance, not new logic.\n *\n * React-free on purpose: the primitives package pulls CSS modules the node\n * test runner cannot load, so the testable half lives here and index.ts is the\n * thin chrome that renders these rows as buttons (tests/unit/client-doors.test.ts).\n *\n * @module dsh-chapters/src/client/doors\n */\n\n/** Structural slice of the aggregated remote service (@deepseek-ai/dsh-api-remotes).\n * `remote.commands` must ALSO appear in inject — the federation gates each\n * sub-service individually (the live feedback package declares\n * remote.messageFeedback beside remote for exactly this reason). */\nexport interface ClientRemote {\n commands?: {\n execute(sessionId: string, line: string, attachments: readonly unknown[]): Promise<{\n ok?: boolean\n value?: { commandId?: string; result?: { kind?: string; text?: string } }\n error?: { code?: string; message?: string }\n }>\n }\n}\n\n/** The client sessions service (dsh-client-runtime): open() lives on the\n * prototype; everything else on the surface stays untrusted and unused. */\nexport interface ClientSessions {\n open(sessionId: string): unknown\n}\n\nexport interface DoorResult {\n ok: boolean\n message: string\n}\n\n/**\n * One assistant-action row. `noun` is the server's own word for the child in\n * its success text (`branch` / `continuation`), so the fallback wording and the\n * title regex both track the door without a second implementation.\n */\nexport interface DoorAction {\n /** The slot registration id. */\n id: string\n /** Position in the assistant action row. */\n order: number\n /** Button + tooltip label, and the accessible name the e2e specs select on. */\n label: string\n /** The host command this row executes — the ONLY semantic difference at runtime. */\n command: string\n /** The noun in `${noun} “title” is session ch-…`. */\n noun: string\n /** The row's glyph (16×16 viewBox, single path). */\n iconPath: string\n}\n\nexport const DOOR_ACTIONS: readonly DoorAction[] = [\n {\n id: 'chapters-fork',\n order: 30,\n label: 'Fork with chapters',\n command: '/chapters-fork',\n noun: 'branch',\n iconPath: 'M5 3.25a2.25 2.25 0 1 0-1.5 2.12v5.26a2.25 2.25 0 1 0 1.5 0V9h5a2.25 2.25 0 0 0 2.25-2.25v-1.4a2.25 2.25 0 1 0-1.5 0v1.4A.75.75 0 0 1 10 7.5H5V5.37A2.25 2.25 0 0 0 5 3.25Z',\n },\n {\n id: 'chapters-continue',\n order: 31,\n label: 'Continue with chapters',\n command: '/chapters-continue',\n noun: 'continuation',\n iconPath: 'M1 8a.75.75 0 0 1 0-1.5h9.44L7.72 3.28a.75.75 0 1 1 1.06-1.06l3.5 3.5.53.53-.53.53-3.5 3.5a.75.75 0 1 1-1.06-1.06L10.44 9.5H1Zm13-5.25v10.5a.75.75 0 0 1-1.5 0v-10.5a.75.75 0 0 1 1.5 0Z',\n },\n]\n\n/** Pull the child id out of either door's durable success text — both end in\n * `… is session ch-…` (src/tools.ts), so this regex is door-agnostic. */\n/**\n * Which build of THIS file produced a door note (#77). When the live probe reported a roster\n * trace of `missing → missing → missing` — meaning adoption should have fired three times — while\n * showing no adoption outcome at all, the first question stopped being \"why did the client refuse\"\n * and became \"did the browser run the code I am reading?\". A note that names its own build makes\n * that a glance instead of an archaeology session into symlinked plugin trees.\n */\nexport const DOOR_BUILD = '2026-10-22T23:55 door-build-stamp'\n\nexport const CHILD_ID = /is session (ch-[\\w-]+)/\n\n/** The quoted title the door gave the child, matched by its OWN noun so a\n * refusal or an unrelated quote cannot pass for it. */\nexport const doorTitle = (noun: string): RegExp => new RegExp(`${noun} \\\\u201C([^\\\\u201D]+)\\\\u201D is session`)\n\n/**\n * A refusal reason that can never render as nothing. `String(err.message ?? err)` is `''` for a\n * host error built with an empty message, and an empty reason disappears from the note — the\n * reader then concludes \"no refusal happened\", which is the opposite of the truth (#77).\n */\nfunction refusalReason(error: unknown): string {\n const raw = error instanceof Error ? error.message : String(error)\n const trimmed = raw.trim()\n const named = trimmed === '' ? (error instanceof Error && error.name.trim() !== '' ? error.name : '') : trimmed\n const base = named === '' ? (error === null ? 'null thrown' : typeof error) : named\n return base.replace(/\\s+/g, ' ').slice(0, 90)\n}\n\n/**\n * Is the child in the client's OWN roster? This is the question that separates two very\n * different failures, and the door used to report the symptom without it:\n * - the client never learned the session exists (roster: missing) → the fix is server-side\n * publication, and no amount of clicking `open` will ever work;\n * - the client knows it and `open` still did nothing (roster: contains) → a navigation bug.\n * Measured host 0.2.0-rc.2: the sessions service exposes `projectList`, `refresh`, `retain`,\n * `handleSessionAdded` — the roster is a projection the client fills from control frames.\n */\n/**\n * The client's own session ids, or `null` when the store cannot be read. ONE reader for both\n * the note and the adoption decision, so the door never acts on a verdict it did not report.\n */\nfunction rosterIds(sessions: ClientSessions | undefined): Set<string> | null {\n const store = (sessions as unknown as { list?: { getSnapshot?: () => unknown } })?.list\n if (typeof store?.getSnapshot !== 'function') return null\n const snap = store.getSnapshot()\n const ids = new Set<string>()\n if (Array.isArray((snap as { ids?: unknown[] } | undefined)?.ids)) {\n for (const id of (snap as { ids: unknown[] }).ids) ids.add(String(id))\n } else if ((snap as { byId?: object } | undefined)?.byId !== undefined) {\n for (const k of Object.keys((snap as { byId: object }).byId)) ids.add(k)\n } else return null\n return ids\n}\n\nfunction rosterNote(sessions: ClientSessions | undefined, child: string): string {\n try {\n // The host's client store shape is `list.getSnapshot() → { ids, byId, phase }`.\n // `projectList()` turned out to be a MUTATOR that returns undefined (measured), so the first\n // version of this note printed \"0 sessions\" about a conversation that visibly had one — the\n // repo's own `listEvents` lesson (\"measure the SHAPE, not the presence\"), repeated by me in\n // the same week. Read the store; when it isn't reachable, presence is UNKNOWN and the note\n // says that rather than inventing an absence.\n const ids = rosterIds(sessions)\n if (ids === null) {\n const store = (sessions as unknown as { list?: { getSnapshot?: () => unknown } })?.list\n const shape = typeof store?.getSnapshot !== 'function' ? 'no list store on the service' : 'snapshot unreadable'\n return ` (roster: ${shape} — presence of ${child.slice(0, 11)}… is UNKNOWN, not absent)`\n }\n if (ids.size === 0) return ` (roster: empty — presence of ${child.slice(0, 11)}… is UNKNOWN, not absent)`\n const n = ids.size\n return ids.has(child)\n ? ` (roster: contains ${child.slice(0, 11)}…, ${String(n)} sessions — open() is the failure)`\n : ` (roster: MISSING, ${String(n)} sessions — the client never catalogued this session)`\n } catch { return '' }\n}\n\n/** The service's own method names, as a hint attached to a failure note (never a guess). */\nfunction verbsNote(sessions: ClientSessions | undefined): string {\n try {\n const svc = sessions as unknown as Record<string, unknown> | undefined\n if (svc === null || svc === undefined || typeof svc !== 'object') return ' (sessions service: absent)'\n // Measured: `Object.keys(svc)` returned NOTHING for the real service, because the host\n // puts its verbs on the PROTOTYPE (a class instance), not as own keys. A diagnostic that\n // reports \"no methods\" about a working service is worse than none — walk the chain.\n const found = new Set<string>()\n let node: unknown = svc\n // Stop at Object.prototype: its four legacy accessors are not service verbs, and listing\n // them pushed the real names past the cap on the first live run.\n for (let depth = 0; depth < 6 && node !== null && node !== undefined && node !== Object.prototype; depth++) {\n for (const key of Object.getOwnPropertyNames(node as object)) {\n if (key === 'constructor') continue\n try { if (typeof (svc as Record<string, unknown>)[key] === 'function') found.add(key) } catch { /* getter that throws — not a verb we can use either */ }\n }\n node = Object.getPrototypeOf(node)\n }\n const verbs = [...found].sort().slice(0, 24)\n return verbs.length === 0 ? ' (sessions service: no methods on the chain)' : ` (sessions verbs: ${verbs.join(', ')})`\n } catch { return ' (sessions service: unreadable)' }\n}\n\nfunction openByService(\n sessions: ClientSessions | undefined,\n sessionId: string,\n /** #77: adopt (and re-project) only when the client's own roster is missing this session.\n * `onAfter` reports the roster at the instant after adoption, before any later refresh can\n * discard the mutation — the difference between an ordering bug and a publication gap. */\n adopt?: { needed: boolean, onRefused: (reason: string) => void, onSubscribeRefused?: (reason: string) => void, onAfter: (seen: boolean | null) => void, onStep?: (step: string) => void },\n nav?: { openSession?: (id: string) => unknown },\n): Promise<boolean> {\n return (async () => {\n const svc = sessions as unknown as {\n open?: (id: string) => unknown; refresh?: () => unknown; projectList?: () => unknown\n create?: (opts: { sessionId?: string }) => unknown\n using?: (id: string, opts: { source: string }, fn: () => Promise<void>) => unknown\n } | undefined\n // #77, the actual root cause: `sessions.open` DOES NOT EXIST on this host. The sessions\n // service offers create/fork/using/retain/binding/refresh; the host's own fork button calls\n // `ctx.uiWorkspace.openSession(childId)` (`dsh-client-ui-chat/lib/client.js`). The line here\n // used to be `if (typeof svc?.open !== 'function') return false`, so every service attempt\n // since the door was written returned false on line one and the note blamed the client's\n // roster for a verb that was never there.\n if (svc === undefined) return false\n const navigate = typeof nav?.openSession === 'function'\n ? (id: string): unknown => nav.openSession!(id)\n : typeof svc?.open === 'function'\n ? (id: string): unknown => svc.open!(id)\n : null\n if (navigate === null) {\n adopt?.onStep?.('no-verb')\n return false\n }\n try { await svc.refresh?.() } catch { /* refresh best-effort */ }\n // #57: re-project the client's session catalog. The host does this ITSELF after every\n // create and fork — `dsh-api-session-controller/lib/client.js`, `create()` and `fork()`\n // both end in `this.projectList()` — because a session the client has never catalogued is\n // not addressable by `open()` no matter how often you call it. A plugin-created child is\n // exactly that case: durable, workspace-attached, absent from the client's roster. Measured\n // on 0.2.0-rc.2: without this the door created the child, `open` resolved, and the app\n // stayed on the parent (the door's own note now says `roster: …` so this is never a guess).\n try { svc.projectList?.() } catch { /* best-effort, like refresh */ }\n // #77: adopt-and-catalogue. `manager.create()` is documented \"on success merge into\n // summaries immediately (no wait for the next refresh)\" and forwards a caller-owned\n // `sessionId`, while the server ADOPTS a persisted id instead of authoring a second session\n // (`create(request)` → `ensureSession(sessionId, cwd, request.sessionId !== undefined, …)`).\n // Nothing about the child's content is authored here — the seed notice was committed\n // host-plane long before this call — this only lets the client see what the host already\n // knows. A refusal is reported to the caller, never swallowed.\n if (adopt?.needed === true && typeof svc.create === 'function') {\n // the block narrates itself: entry first, then whichever way it left. The live note once\n // said \"try\" from the runner and showed nothing downstream — with this line, an absent\n // `enter-create` IS the answer instead of a mystery.\n adopt.onStep?.('enter-create')\n try {\n await svc.create({ sessionId })\n adopt.onStep?.('settle-create')\n try { svc.projectList?.() } catch { /* re-project again, now that a mutation exists */ }\n // the momentary read is the whole point: a later `refreshList()` reassigns the manager's\n // mutations from the server result, so an adoption that DID land is invisible by the time\n // the last attempt fails. Report what was true at the instant it mattered.\n const after = rosterIds(sessions)\n adopt.onAfter?.(after === null ? null : after.has(sessionId))\n } catch (error) {\n adopt.onStep?.('refuse-create')\n adopt.onRefused(refusalReason(error))\n }\n }\n // #77, second candidate: if adoption left the child out of the roster, SUBSCRIBE to it.\n // `using(target, {source}, fn)` is the host's own way to address a session that is not\n // currently displayed (`sessions/service.js`: retain → `manager.get(id).open()`). A refusal is\n // reported exactly like adoption's. No URL route exists as an alternative — checked every\n // dsh-client-* bundle: the only `/session/` strings are resource addresses for files.\n if (adopt?.needed === true && typeof svc.using === 'function' && rosterIds(sessions)?.has(sessionId) === false) {\n adopt.onStep?.('enter-using')\n try {\n await svc.using(sessionId, { source: 'dsh-chapters-door' }, async () => undefined)\n adopt.onStep?.('settle-using')\n try { svc.projectList?.() } catch { /* best-effort, like the others */ }\n const seen = rosterIds(sessions)\n adopt.onAfter?.(seen === null ? null : seen.has(sessionId))\n } catch (error) {\n adopt.onStep?.('refuse-using')\n adopt.onSubscribeRefused?.(refusalReason(error))\n }\n }\n // The store must know the session before open() resolves it; a child\n // created seconds ago is only server-known until refresh lands. Retry\n // open briefly across that window.\n const started = Date.now()\n for (;;) {\n try { navigate(sessionId); return true } catch {\n if (Date.now() - started > 4_000) return false\n await new Promise((r) => setTimeout(r, 250))\n }\n }\n })()\n}\n\n/**\n * Fallback path: expand collapsed groups / show-more buttons, then click the\n * newest treeitem whose label contains the child title (newest-updated sorts\n * first, so the first match is the fresh child).\n */\nasync function openBranchRow(title: string, budgetMs = 4_000): Promise<boolean> {\n if (typeof document === 'undefined') return false\n const needle = title.toLowerCase()\n const tryClick = (): boolean => {\n const rows = Array.from(document.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'))\n const hit = rows.find((row) => (row.textContent ?? '').toLowerCase().includes(needle))\n if (hit === undefined) return false\n hit.click()\n return true\n }\n const clickMore = (): number => {\n const buttons = Array.from(document.querySelectorAll<HTMLElement>('button'))\n .filter((b) => /more sessions|ungrouped/i.test(b.textContent ?? '') && b.getAttribute('aria-expanded') !== 'true')\n for (const b of buttons) b.click()\n return buttons.length\n }\n const started = Date.now()\n let expansions = 0\n while (Date.now() - started < budgetMs) {\n if (tryClick()) return true\n if (expansions < 4 && clickMore() > 0) { expansions += 1; await new Promise((r) => setTimeout(r, 250)); continue }\n await new Promise((resolve) => setTimeout(resolve, 150))\n }\n return tryClick()\n}\n\nexport function makeDoorRunner(\n remote: ClientRemote,\n sessions: ClientSessions | undefined,\n door: DoorAction,\n /**\n * \"Is THIS session the one the client is now showing?\" #54: `sessions.open()` returns\n * void, so a call that resolves proves the request was accepted, not that the app\n * switched. Measured on host 0.2.0-rc.2: no note element (open resolved), yet\n * `dsh.sessions.current` still named the parent and the child was absent from the\n * sidebar after a full reload — the user got silence and a missing session. Absent\n * (a client that cannot answer) the runner keeps the old behavior, and the wiring is\n * pinned by a row so production can never quietly drop it.\n */\n verifySwitched?: (childSessionId: string) => Promise<boolean>,\n /**\n * #77: how many times to re-pull the client's list, re-project and re-open. The session\n * manager documents `refreshList()` as \"single-flight within one Host generation\"\n * (`dsh-api-session-controller/lib/types/client/sessions/manager.js`), so a pull issued while\n * another is in flight can resolve from the STALE result — precisely the moment a session\n * created microseconds ago is missing. Retrying is both the fix candidate and the measurement:\n * which attempt lands tells us whether this is ordering (ours) or silence (host-side).\n * A client with no `refresh` verb gets exactly ONE attempt — re-asking `open` against a roster\n * we cannot re-pull would be theater.\n */\n opts?: { attempts?: number, attemptPauseMs?: number, navigator?: { openSession?: (id: string) => unknown } },\n): (sessionId: string, anchorSeq?: number | null) => Promise<DoorResult> {\n return async function run(sessionId: string, anchorSeq?: number | null): Promise<DoorResult> {\n try {\n if (remote.commands?.execute === undefined) return { ok: false, message: 'commands remote unavailable' }\n // #221: the clicked message's seq rides the command as its first token — the server anchors\n // the archive at the last completed turn AT OR BEFORE it. Absent ⇒ today's behavior (the end\n // of the session), byte-identical to the pre-#221 line.\n const line = typeof anchorSeq === 'number' && Number.isFinite(anchorSeq) ? `${door.command} ${String(Math.trunc(anchorSeq))}` : door.command\n const res = await remote.commands.execute(sessionId, line, [])\n if (res.ok !== true) return { ok: false, message: (res.error?.message ?? `the ${door.noun} call failed`).slice(0, 90) }\n const result = res.value?.result\n const text = typeof result?.text === 'string' ? result.text : ''\n if (result?.kind !== 'success') return { ok: false, message: (text || `the ${door.noun} was refused — see the command result`).slice(0, 90) }\n const child = CHILD_ID.exec(text)?.[1]\n if (child === undefined) return { ok: true, message: `${door.noun} created — appearing in the sidebar` }\n const switchedOnce = async (): Promise<boolean> => {\n if (verifySwitched === undefined) return true\n try { return await verifySwitched(child) } catch { return false }\n }\n const canRepull = typeof (sessions as unknown as { refresh?: unknown } | undefined)?.refresh === 'function'\n const maxAttempts = canRepull ? (opts?.attempts ?? 3) : 1\n let tried = 0\n let adoptRefusal = ''\n let subscribeRefusal = ''\n // #77: what the roster reader answered AT EACH DECISION, not only at the end. The live\n // probe reported MISSING after three attempts while neither candidate fired, which can\n // only mean the reader disagreed with itself over time — and a note that says one number\n // cannot show that.\n const rosterTrace: string[] = []\n const steps: string[] = []\n let adoptSaw: boolean | null | undefined\n for (let i = 0; i < maxAttempts; i++) {\n tried += 1\n // decide adoption from the SAME reader the note reports, so the door never acts on a\n // verdict it did not tell the user about; an unreadable roster is not \"missing\"\n const ids = rosterIds(sessions)\n // Loaded-but-empty is a DECISION (the child is not there → try the sanctioned paths);\n // unreadable is UNKNOWN and must not invent a session (#77: the strict form here meant\n // neither candidate ever ran in the live probe, and its silence looked like a result).\n const needed = ids !== null && !ids.has(child)\n // `+c` / `+u` = the candidate verbs are present on the injected service AT THAT MOMENT.\n // Without this, a note that says the roster was missing while no adoption outcome appears\n // is uninterpretable: either the code never ran, or the service has no create to call.\n const svcShape = sessions as unknown as { create?: unknown, using?: unknown, open?: unknown } | undefined\n // +c create, +u using, +o sessions.open, +w workspace navigator — the exact predicates\n // the door branches on, so a note can be read instead of re-derived from source\n rosterTrace.push(`${ids === null ? 'unknown' : ids.size === 0 ? 'empty' : ids.has(child) ? 'has' : 'missing'}${typeof svcShape?.create === 'function' ? '+c' : '-c'}${typeof svcShape?.using === 'function' ? '+u' : '-u'}${typeof svcShape?.open === 'function' ? '+o' : '-o'}${typeof opts?.navigator?.openSession === 'function' ? '+w' : '-w'}`)\n if (await openByService(sessions, child, {\n needed,\n onRefused: (reason) => { adoptRefusal = reason },\n onSubscribeRefused: (reason) => { subscribeRefusal = reason },\n onAfter: (seen) => { adoptSaw = seen },\n onStep: (step) => { if (!steps.includes(step)) steps.push(step) },\n }, opts?.navigator) && await switchedOnce()) return { ok: true, message: '' }\n if (i + 1 < maxAttempts) await new Promise((r) => { setTimeout(r, opts?.attemptPauseMs ?? 300).unref?.() })\n }\n // the service path did not take — the sidebar row is the same affordance a human uses\n const title = doorTitle(door.noun).exec(text)?.[1]\n if (title !== undefined && await openBranchRow(title) && await switchedOnce()) return { ok: true, message: '' }\n // #54: a child that is created but not shown is a DIFFERENT fact from one the user\n // has to open by hand, and the message must not blur them.\n // #56/#57: the note must be ACTIONABLE. \"the app did not switch\" is true and useless;\n // naming the verbs the injected service actually exposes turns one failure into the\n // diagnosis (is there a refresh/reload to call, or is `open` the only verb and the\n // omission server-side?). A detected failure that isn't delivered is the same bug.\n return verifySwitched === undefined\n ? { ok: true, message: `${door.noun} created — open it in the sidebar` }\n : { ok: true, message: `${door.noun} created — the app did not switch after ${String(tried)} attempt${tried === 1 ? '' : 's'}; open it from the sidebar [roster per attempt: ${rosterTrace.join(' → ')}] [tried: ${steps.length === 0 ? 'none' : steps.includes('no-verb') ? 'no open or openSession verb on any injected service' : steps.join(', ')}] (build: ${DOOR_BUILD})${adoptRefusal === '' ? '' : ` (adoption refused: ${adoptRefusal})`}${subscribeRefusal === '' ? '' : ` (subscribe refused: ${subscribeRefusal})`}${adoptSaw === undefined ? '' : ` (right after adopt: ${adoptSaw ? 'contains' : 'missing'} ${child.slice(0, 15)})`}${rosterNote(sessions, child)}${verbsNote(sessions)}` }\n } catch (error) {\n return { ok: false, message: String((error as Error)?.message ?? error).slice(0, 90) }\n }\n }\n}\n\n/**\n * Execute a host command line for one session and return its text, or '' when the command plane is\n * unavailable. The bar's `state` pull and `off` write ride this, because it is the ONE place the client\n * talks to the wire: the guard row \"there is no second runner body in the client chrome\" exists to keep\n * `index.ts` as registration chrome, and a duplicated `commands.execute` in two files is how a wire\n * behaviour drifts from its own test (#59's one-predicate rule, applied to the transport).\n */\nexport async function runCommandText(remote: ClientRemote | undefined, sessionId: string, line: string): Promise<string> {\n const exec = remote?.commands?.execute\n if (exec === undefined) return ''\n const res = await exec(sessionId, line, [])\n if (res.ok !== true) return ''\n return res.value?.result?.text ?? ''\n}\n","/**\n * dsh-chapters client entry: the per-message door buttons.\n *\n * Registers the two deterministic archive doors into the assistant action row\n * (`conversation.chat.assistant-actions` — the slot the official feedback\n * package populates beside copy/branch). Clicking one executes its host\n * command — `/chapters-fork`, `/chapters-continue` — through `remote.commands`,\n * the exact wire the composer's input line rides, then SWITCHES the app to the\n * fresh child:\n *\n * 1. `sessions.open(child)` — the client sessions service carries open() on\n * its prototype (Playwright-verified against this host; a keys-dump alone\n * hid it, which is why an earlier round wrongly gave up on this path);\n * 2. fallback: click the child's sidebar row after expanding collapsed\n * groups (plugin children can render under collapsed 'Ungrouped' heads);\n * 3. last resort: an inline note — the child is durable either way.\n *\n * There is deliberately NO second implementation of door logic here: the\n * buttons are mouths for the host commands (watermark, segmentation, budget,\n * titles, refusal-with-numbers all server-side, all tested), and the runner\n * they share is `src/client/doors.ts` — one body, one row per door. The purity\n * gate in tsdown.client.config.ts keeps this file cross-plugin-free.\n *\n * @module dsh-chapters/src/client\n */\n\nimport { createElement as h, useCallback, useEffect, useRef, useState, type ReactElement } from 'react'\n// The host's own tooltip bubble — a platform module served by the loader table,\n// external like react. Every action in this row labels through it.\nimport { withTooltip, nativeTitle } from './tooltip.ts'\nimport { PromptDock } from './prompt-dock.ts'\nimport { DOOR_ACTIONS, makeDoorRunner, runCommandText, type ClientRemote, type ClientSessions, type DoorAction, type DoorResult } from './doors.ts'\n\ninterface ClientSlots {\n inject(name: string, factory: () => unknown): void\n register(registration: Record<string, unknown>, component: unknown): unknown\n}\n\ninterface Ctx {\n slots: ClientSlots\n get(name: string): unknown\n}\n\n// #77: `uiWorkspace` is not optional in practice — it owns `openSession(target)`, the verb the\n// host's own fork button uses (`ctx.uiWorkspace.openSession(childId)` in dsh-client-ui-chat).\n// `sessions` has no `open` at all, so without this row the door has never had a way to switch.\nexport const inject = ['slots', 'remote', 'remote.commands', 'sessions', 'uiWorkspace'] as const\n\n/** Props composed by the slot framework: owner (`messageId`) + our injected verb. */\ninterface DoorActionProps {\n messageId: string\n run: () => Promise<DoorResult>\n}\n\n/**\n * Style parity with the native IconActions row: rules copied verbatim from the\n * host's MessageIconActions module (`._xzv4MW_action` in dsh-client-ui-chat's\n * compiled client + the feedback package's :disabled) — same metrics, tokens,\n * hover. Update this string if the host restyles its action row. Both doors\n * share these metrics.\n *\n * The final rule hides the native branch action IN THE MESSAGE ROW only\n * (user-approved cosmetic decision, docs/architecture.md): built-in chrome, so\n * the selector is its accessible label scoped to action-row buttons; both\n * locale spellings covered. If the host rewords the label the button simply\n * reappears — fails open, visibly.\n */\nconst CSS = [\n '.dsh-chapters_forkAction{width:calc(28px + var(--dsh-content-font-delta,0px));height:calc(28px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:6px;display:inline-flex}',\n '.dsh-chapters_forkAction svg{width:calc(15px + var(--dsh-content-font-delta,0px));height:calc(15px + var(--dsh-content-font-delta,0px))}',\n '.dsh-chapters_forkAction:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}',\n '.dsh-chapters_forkAction:disabled{cursor:default;opacity:.4}',\n '.dsh-chapters_forkNote{color:var(--dsw-alias-label-tertiary);padding-left:4px;font-size:13px;line-height:20px}',\n 'button[class*=\"_action\"][aria-label=\"Branch into a new conversation\"],button[class*=\"_action\"][aria-label=\"\\u5728\\u65b0\\u5bf9\\u8bdd\\u4e2d\\u5206\\u652f\"]{display:none !important}',\n].join('\\n')\nconst CSS_TAG_ID = 'dsh-chapters/assistant-action.css'\n\nfunction injectStyles(): void {\n try {\n if (typeof document === 'undefined' || document.querySelector(`style[data-plugin-css=${JSON.stringify(CSS_TAG_ID)}]`) !== null) return\n const tag = document.createElement('style')\n tag.dataset.plugin = 'dsh-chapters'\n tag.dataset.pluginCss = CSS_TAG_ID\n tag.textContent = CSS\n document.head.appendChild(tag)\n } catch { /* styling is cosmetic; the action still works without it */ }\n}\n\n/** One component body for every door row; only the label and glyph differ. */\nfunction makeDoorAction(door: DoorAction) {\n return function ChaptersDoorAction({ run }: DoorActionProps) {\n const [busy, setBusy] = useState(false)\n const [note, setNote] = useState<string | null>(null)\n const alive = useRef(true)\n useEffect(() => () => { alive.current = false }, [])\n const onClick = useCallback(() => {\n if (busy) return\n setBusy(true)\n setNote(null)\n void run().then((result) => {\n if (!alive.current) return\n setBusy(false)\n setNote(result.message === '' ? null : result.message)\n setTimeout(() => { if (alive.current) setNote(null) }, 8000)\n })\n }, [busy, run])\n const button = h('button', {\n type: 'button',\n 'aria-label': door.label,\n ...nativeTitle(door.label),\n disabled: busy,\n onClick,\n className: 'dsh-chapters_forkAction',\n },\n h('svg', { viewBox: '0 0 16 16', width: '15', height: '15', fill: 'currentColor', 'aria-hidden': 'true' },\n h('path', { d: door.iconPath })))\n return h('span', { style: { display: 'inline-flex', alignItems: 'center', gap: '4px' } },\n withTooltip(door.label, button as ReactElement<Record<string, unknown>>),\n note !== null\n ? h('span', { className: 'dsh-chapters_forkNote' }, note)\n : null)\n }\n}\n\nexport function apply(ctx: Ctx): void {\n injectStyles()\n const slots = ctx.slots\n const remote = (ctx.get('remote') ?? {}) as ClientRemote\n let sessions: ClientSessions | undefined\n try { sessions = ctx.get('sessions') as ClientSessions | undefined } catch { sessions = undefined }\n // Defensive: a host that cannot provide the navigator must leave the door registering and\n // reporting its own limitation, not failing at boot.\n let uiWorkspace: { openSession?: (id: string) => unknown } | undefined\n try { uiWorkspace = ctx.get('uiWorkspace') as { openSession?: (id: string) => unknown } | undefined } catch { uiWorkspace = undefined }\n // No early return on missing descriptors: the buttons register regardless\n // and the click reports the gap. A missing button is worse than a button\n // that explains itself. Components and runners are built ONCE here — slot\n // factories may re-run, and a fresh component identity per call would\n // remount the row.\n // #54: the switch verifier. `dsh.sessions.current` is published by the host's own\n // dsh-client-ui-workspace (grep-confirmed, not folklore) — the same key the e2e specs\n // read to name a session exactly, which is the point: the door now checks the fact the\n // user would notice, not whether a void call threw.\n const currentSessionId = (): string | null => {\n try {\n const raw = window.localStorage.getItem('dsh.sessions.current')\n if (raw === null) return null\n const parsed = JSON.parse(raw) as { sessionId?: string } | null\n return parsed?.sessionId ?? null\n } catch { return null }\n }\n const rows = DOOR_ACTIONS.map((door) => ({\n door,\n run: makeDoorRunner(remote, sessions, door, async (child) => {\n for (let i = 0; i < 8; i++) {\n if (currentSessionId() === child) return true\n await new Promise((r) => setTimeout(r, 250))\n }\n return currentSessionId() === child\n }, { ...(uiWorkspace !== undefined ? { navigator: uiWorkspace } : {} ) }),\n component: makeDoorAction(door),\n }))\n // Boot-witness instrumentation (#194's 0.2.1 compatibility hunt made this permanent): the door\n // registration is a two-step dance with the host's slot runtime, and a silent drop at either step\n // is indistinguishable from \"the region renders nothing\" — three console lines make the difference\n // one page reload away. Same discipline as the dock's inputActions witness.\n console.info(`[client:chapters] injecting ${String(rows.length)} assistant-actions door(s)`)\n const disposeDoors = slots.inject('conversation.chat.assistant-actions', () => {\n const effects = rows.map(({ door, run, component }) => slots.register({\n name: 'conversation.chat.assistant-actions',\n id: door.id,\n // #194-compat probe: the host's own entries in this region (feedback, goal's dock sibling)\n // all carry `label`/`locale`; 0.2.1-rc.5 renders NOTHING for entries without a label while\n // 0.2.0-rc.2 rendered them fine. Declaring the label is contract-blessed on BOTH (\"Register\n // options are id, order, and label\" — docs/contract.md) and costs nothing.\n label: door.label,\n // #221: the framework hands the action row its OWNER props — `{ messageId }`, the uuid of the\n // assistant message under the buttons (measured in dsh-client-ui-chat TurnTailNodeView). The\n // door resolves that uuid to its durable seq through the plugin's own RPC and passes it as the\n // anchor, so clicking Continue on an earlier message archives through THAT message's turn, not\n // the end of the session. Resolution failure falls back to no-anchor (old behavior) and says so\n // in the note — a door that silently ignores which row you clicked is the bug being fixed.\n inject: (sessionId: string, owner?: { messageId?: string }) => ({\n run: async () => {\n let anchor: number | null = null\n const mid = typeof owner?.messageId === 'string' ? owner.messageId : ''\n if (mid !== '') {\n try {\n const out = await runCommandText(remote, sessionId, `/chapters-anchor ${mid}`)\n const n = Number.parseInt(out.trim(), 10)\n if (Number.isFinite(n) && n > 0) anchor = n\n } catch { /* fall back to unanchored — old behavior */ }\n }\n return run(sessionId, anchor)\n },\n }),\n }, component))\n console.info(`[client:chapters] door factory ran: ${String(effects.length)} register effect(s), types: ${effects.map((e) => typeof e).join(',')}`)\n return effects\n })\n console.info(`[client:chapters] assistant-actions inject returned ${typeof disposeDoors}`)\n slots.inject('conversation.input.dock', () => slots.register({\n name: 'conversation.input.dock',\n id: 'chapters-prompt',\n // Under every other dock entry and directly above the composer card: todo 0, goal 10, queue 20, and the\n // host sorts ascending by priority then order (measured in dsh-client-ui-slots).\n order: 30,\n inject: (sessionId: string) => ({\n // The bar is a mouth for the command plane, and the ONE wire body in `doors.ts` carries it: a plugin has\n // no declarable RPC namespace, so this pull transport is why the bar is push-shaped and pull-fed.\n exec: (line: string) => runCommandText(remote, sessionId, line),\n }),\n }, PromptDock))\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","names":["h","CSS","h","useReducer","useRef","useState","useCallback","useState","useRef","useCallback","h"],"sources":["../src/client/tooltip.ts","../src/prompt-keys.ts","../src/client/prompt-bar.ts","../src/client/prompt-dock.ts","../src/client/doors.ts","../src/client/index.ts"],"sourcesContent":["/**\n * The host's Tooltip seat, resolved OPTIONALLY (#194-compat — measured on 0.2.1-rc.5, not guessed):\n *\n * `@deepseek-ai/dsh-client-ui-primitives` exists in the 0.2.0-rc.2 host tree and is ABSENT from the\n * entire 0.2.1-rc.5 install tree — no successor package exports `Tooltip`. Our bundle's static\n * import becomes a LAZY require in the built CJS: the bundle loads and components run, but the\n * first render that touches `Tooltip` throws, and React's error boundary swallows the subtree\n * silently. Measured symptoms on 0.2.1: door registration fully healthy (inject returned a\n * disposer; the factory ran; both register effects are functions) yet the assistant-actions region\n * renders ZERO entries, and the dock renders no row — because both wrap their buttons in Tooltip.\n *\n * The fix keeps one resolution point and one fallback (#59 — never per-component try/catch):\n * probe the module once; when it is absent, buttons carry the platform's own `title` tooltip, so\n * hover text survives on every host and the fancy tooltip survives where it exists.\n */\nimport { createElement as h, type ComponentType, type ReactElement } from 'react'\n\ndeclare const require: ((id: string) => Record<string, unknown>) | undefined\n\nexport type TooltipLike = ComponentType<{ label: string; side?: string; portal?: boolean; delayMs?: number; children: ReactElement<Record<string, unknown>> }>\n\n/**\n * The tooltip recipe, field for field the goal bar's own (GoalBar.tsx:101-142: `portal`,\n * `side=\"bottom\"`, `delayMs={500}`) — the shipped occupant of the same dock strip, whose tooltips\n * are NOT covered by the composer. `portal` is the load-bearing one: it renders the popup at\n * document level instead of inside our dock's stacking context, which is exactly the maintainer's\n * report (#210: \"the hoverover tooltips are covered by the main chat input container\"). Our old\n * compile-time types rejected portal/delayMs at the overload; the runtime host always accepted\n * them, and since the seat is typed by us, the recipe is pinned by a row instead of by luck.\n */\nexport function tooltipPropsFor(label: string): { label: string; side: 'bottom'; portal: true; delayMs: 500 } {\n return { label, side: 'bottom', portal: true, delayMs: 500 }\n}\n\nlet resolved: TooltipLike | null | undefined // undefined = not probed yet\n\nexport function resolveTooltip(): TooltipLike | null {\n if (resolved !== undefined) return resolved\n resolved = null\n try {\n if (typeof require === 'function') {\n const mod = require('@deepseek-ai/dsh-client-ui-primitives') as { Tooltip?: unknown } | undefined\n const T = mod?.Tooltip\n if (typeof T === 'function' || typeof T === 'object') resolved = T as TooltipLike\n }\n } catch {\n resolved = null // absent host: the native-title fallback stands\n }\n return resolved\n}\n\n/** Wrap in the host Tooltip when it exists; otherwise return the child (which must carry `title`). */\nexport function withTooltip(label: string, child: ReactElement<Record<string, unknown>>): ReactElement {\n const T = resolveTooltip()\n return T !== null ? h(T, { ...tooltipPropsFor(label), children: child }) : child\n}\n\n/** The native-tooltip attribute, present ONLY when the host seat is absent — no double tooltips. */\nexport function nativeTitle(label: string): { title: string } | Record<string, never> {\n return resolveTooltip() === null ? { title: label } : {}\n}\n","/**\n * Identifiers shared by BOTH planes of the push transport (#194). One module, one spelling: the\n * server registers the projection under this key and the client reads `useProjection(key)` — two\n * literals in two planes would be exactly the drift #59 forbids. No node imports (the client\n * compiles this), no DOM (the server imports this).\n */\nexport const PROMPT_PROJECTION_KEY = 'chaptersPrompt'\n","/**\n * The Suggested Next Step bar — every decision the row makes, kept out of React (#113).\n *\n * Deliberately shaped like the goal bar, because that implementation is tested, already fits, and gets the\n * split right: the **durable** facts (`status`, `text`, `turnSeq` — the server's one-generation-per-turn\n * identity) versus the **process-local** intent (`autorun`, `expanded` — the goal's `activation` in\n * everything but name). Nothing transient is persisted, and nothing persisted is guessed here.\n *\n * The failures the maintainer rejected are all decision bugs, not rendering bugs: firing while a turn is\n * running, shouting a refusal that should have been silence, an autorun that outlives the purpose that\n * justified it. Each has a row in `tests/unit/prompt-bar.test.ts`.\n */\n\nexport type PromptBarStatus = 'off' | 'idle' | 'analyzing' | 'ready' | 'failed'\nexport type PromptBarAutorun = 'armed' | 'disarmed'\n/** Mirrors the host's `GoalPhase` vocabulary (`dsh-goal` types) so goal composition needs no translation. */\nexport type GoalPhaseView = 'none' | 'active' | 'paused' | 'blocked' | 'complete'\n\nexport interface PromptBarState {\n status: PromptBarStatus\n /** The offer, verbatim. Never truncated — an over-cap answer is refused upstream. */\n text: string | null\n /** #113: what kind of step the server classified this as. `goal-edit` is held for the human's keystroke,\n * because goal edits require a direct human turn in the host and an autorun message is not one. */\n intent: 'worker-step' | 'goal-edit'\n /** The `turn/end` seq this offer belongs to; its identity, not a timestamp. */\n turnSeq: number | null\n /** Set only with `status: 'failed'`; rendered as `role=\"alert\"` (#61: delivered, not swallowed). */\n error: string | null\n /** Why an action did not happen, on the bar's face (#113). Empty when there is nothing to explain. */\n note: string\n autorun: PromptBarAutorun\n expanded: boolean\n running: boolean\n goalPhase: GoalPhaseView\n /** The offer a human dismissed or interrupted. A NEW `turnSeq` clears it; this one stays hidden. */\n hiddenTurnSeq: number | null\n /** Live goal facts, when the caller can read them (the goal driver owns the next turn when active+armed). */\n goal: { phase: string; activation: string; revision: number } | null\n}\n\nexport type PromptBarEvent =\n | { t: 'polled', status: PromptBarStatus, text?: string | null, turnSeq?: number | null, error?: string | null, intent?: 'worker-step' | 'goal-edit' }\n | { t: 'expand' } | { t: 'collapse' }\n /** Why an action did not happen, on the bar's own face (#113). Cleared when a new offer lands. */\n | { t: 'note'; note: string }\n | { t: 'autorun', on: boolean }\n | { t: 'human/prompt' }\n | { t: 'off' }\n | { t: 'goal', phase: GoalPhaseView }\n | { t: 'running', running: boolean }\n\nexport function initialBarState(autorun: PromptBarAutorun = 'disarmed'): PromptBarState {\n return { status: 'off', text: null, turnSeq: null, error: null, note: '', intent: 'worker-step', goalPhase: 'none', goal: null, autorun, expanded: false, running: false, hiddenTurnSeq: null }\n}\n\nexport function promptBarReducer(state: PromptBarState, ev: PromptBarEvent): PromptBarState {\n if (ev.t === 'note') return { ...state, note: ev.note }\n const next = baseBarReducer(state, ev)\n // A note is about the gesture that just failed, so a NEW offer retires it. A poll that repeats the same\n // offer (the bar re-reads every few seconds) does not — otherwise the explanation would blink out before\n // the human could read it.\n return ev.t === 'polled' && (next.turnSeq !== state.turnSeq || next.text !== state.text) ? { ...next, note: '' } : next\n}\n\nfunction baseBarReducer(state: PromptBarState, ev: PromptBarEvent): PromptBarState {\n switch (ev.t) {\n case 'polled': {\n if (ev.status === 'off') return { ...state, status: 'off', text: null, turnSeq: null, error: null, expanded: false, autorun: 'disarmed' }\n // A fresh generation invalidates the previous offer: acting on a stale one is how a bar lies.\n if (ev.status === 'analyzing') return { ...state, status: 'analyzing', text: null, error: null }\n return {\n ...state,\n status: ev.status,\n text: ev.status === 'ready' ? (ev.text ?? null) : null,\n intent: ev.status === 'ready' ? (ev.intent ?? 'worker-step') : 'worker-step',\n turnSeq: ev.turnSeq ?? state.turnSeq,\n error: ev.status === 'failed' ? (ev.error ?? 'the suggestion call failed') : null,\n }\n }\n case 'expand': return { ...state, expanded: true }\n // Collapsing is a reading action. It keeps the offer — only a human prompt or `Off` dismisses it.\n case 'collapse': return { ...state, expanded: false }\n case 'autorun': return { ...state, autorun: ev.on ? 'armed' : 'disarmed' }\n case 'running': return { ...state, running: ev.running }\n case 'human/prompt':\n // The human took the wheel: yield the loop, and drop the offer that was on screen. Generation itself\n // continues on the NEXT turn boundary — suspension is not disable.\n return { ...state, autorun: 'disarmed', hiddenTurnSeq: state.turnSeq, expanded: false }\n case 'off': return { ...state, status: 'off', text: null, turnSeq: null, error: null, expanded: false, autorun: 'disarmed' }\n case 'goal':\n // Per spec: autorun runs ALONGSIDE an active goal and disarms itself when the goal completes — the\n // suggestion loop exists to serve the session's purpose, and stops when that purpose stops.\n // #188: blocked joins complete — both planes stop together when the goal reaches a terminal\n // phase; a loop still firing offers at a blocked goal is the autorun that outlived its purpose.\n return { ...state, goalPhase: ev.phase, autorun: ev.phase === 'complete' || ev.phase === 'blocked' ? 'disarmed' : state.autorun }\n }\n // Exhaustive fallback: a new event without a case must return the state unchanged rather than\n // compile into `undefined` and blank the bar.\n return state\n}\n\n/** The status label. `failed` keeps the ready label so the error span is the delta, not a mystery row. */\nexport function barLabel(s: PromptBarState): string | null {\n if (s.status === 'analyzing') return 'Analyzing situation…'\n if (s.status === 'ready' || s.status === 'failed') return 'Recommended Next Step'\n return null\n}\n\n/**\n * #193: the pull cadence, as a decision instead of an interval constant. Every pull is two recorded\n * host lifecycle events (`command/run` + `command/done`) the UI renders as history nodes — cadence\n * IS the litter, so it belongs in this module with a row for every arm. Active = the state can\n * plausibly change on a short clock (generation in flight, an armed loop to fire, a turn running\n * that will end into an offer). Quiet = stable; one pull a minute is plenty for a state that only\n * changes at turn boundaries. Hidden-and-quiet = pull NOTHING (a background tab should write zero\n * history); hidden-and-active still pulls, because walking away from a running loop is the point of\n * autorun and pausing it silently would be the loop dying with nobody told.\n */\nexport const ACTIVE_POLL_MS = 10_000\n/**\n * #229: the quiet heartbeat is CONFIG-GATED (`promptQuietHeartbeatSec`) and defaults to ZERO.\n * Measured on the maintainer's live log after 0.2.11 installed correctly (gaps exactly 60.0s): every\n * pull is two durable nodes — a host `command/run` + `command/done` pair — and the user's rule is\n * absolute: never repeated chapters-prompt executions. The sanctioned moments (mount discovery once\n * per page load, the turn-end pulse, visibility return with an untrusted cache, forced confirms)\n * remain; the ambient drumbeat does not exist unless configured. This module is client-safe (no node\n * builtins), so the wiring injects the config value at boot via `configureQuietHeartbeat`.\n */\nexport let QUIET_POLL_MS = 0\nexport function configureQuietHeartbeat(seconds: number | undefined): void {\n QUIET_POLL_MS = typeof seconds === 'number' && Number.isFinite(seconds) && seconds > 0 ? Math.trunc(seconds * 1000) : 0\n}\n\nexport function pollSpacingFor(s: { status: PromptBarStatus; autorun: PromptBarAutorun; running: boolean; hidden: boolean; edges: boolean; turnEndPulse?: boolean }): number | null {\n // #203: where the host publishes the running signal, the idle EDGE is the schedule — a turn ending\n // pulls, the bar's own actions pull, and a stable disarmed bar keeps NO clock at all, because a\n // timer there could only re-read truth into rendered history nodes. Analyzing stays on the fast\n // belt (a generation completing fires no edge), and an armed loop keeps it too (a missed edge must\n // not stall autorun). Hosts that publish no running prop get the #193 cadence, unchanged.\n // #221: a turn-end pulse from the host projection deserves an immediate follow-up — the offer\n // was just born. Applies in BOTH modes; it is the sanctioned moment, not a clock.\n if (s.turnEndPulse === true) return ACTIVE_POLL_MS\n if (s.edges) {\n if (s.status === 'analyzing' || s.autorun === 'armed') return ACTIVE_POLL_MS\n return null\n }\n // #221: unknown-running is UNKNOWN, not running. The maintainer's live host (0.2.0-rc.2) publishes\n // no usable running signal to docks; `running` defaulted to true and pinned this bar into the FAST\n // clock forever — measured 158 state pulls at exact 10.0s intervals across one session's log, even\n // while idle. Only two states justify a fast clock: generation in flight (analyzing) and an armed\n // loop that must see offers promptly. A KNOWN running turn (edges=false hosts that do supply the\n // signal... which by definition have edges=true) never needed the clock either way. So: analyzing\n // or armed ⇒ fast; otherwise quiet, hidden-quiet ⇒ silent.\n const active = s.status === 'analyzing' || s.autorun === 'armed'\n if (!active && s.hidden) return null\n if (!active) return QUIET_POLL_MS > 0 ? QUIET_POLL_MS : null\n return ACTIVE_POLL_MS\n}\n\n/**\n * #203: whether a freshly mounted bar pulls, or renders its cache and stays silent. The maintainer's\n * rule: generate or read AFTER THE TURN ENDS, never when you activate a session. So a mount pulls\n * only when the cache cannot be trusted — absent (first mount after a page load), stale (a turn\n * could have ended since; this guarded pull is what keeps Run honest, because clicking a stale\n * offer would submit the row's newer text while showing the old), mid-generation, or armed. A\n * cached `off` never pulls: off is a human/config switch, and only an explicit `on` revisits it.\n */\nexport function mountPullDecision(c: { hasCache: boolean; ageMs: number; status: PromptBarStatus; autorun: PromptBarAutorun }): boolean {\n if (!c.hasCache) return true\n // #208, the maintainer's rule — NOT RELEVANT, NOT VISIBLE: `off` is terminal for the page\n // lifetime. The #203 staleness-revival arm cost one visible history node per reactivation of a\n // known-off session, for a feature that is not on; revival is a page reload, and the commands\n // that re-enable (`model`, `on`) say so in their replies.\n if (c.status === 'off') return false\n if (c.autorun === 'armed' || c.status === 'analyzing') return true\n // #229: with no heartbeat configured, staleness alone never pulls — a tab left open for ten\n // minutes must not resurrect the drumbeat through the mount path. Freshness returns via the\n // turn-end pulse, visibility edges, and the confirm arms, all of which are real events.\n return QUIET_POLL_MS > 0 && c.ageMs > QUIET_POLL_MS\n}\n\n/**\n * #203: fold a cached wire event back into row state through the SAME reducer the live path uses —\n * one fold, no second implementation to drift (the #59 rule).\n */\nexport function stateFromCache(ev: PromptBarEvent, autorun: PromptBarAutorun | null): PromptBarState {\n const folded = promptBarReducer(initialBarState(), ev)\n return autorun === null ? folded : promptBarReducer(folded, { t: 'autorun', on: autorun === 'armed' })\n}\n\nexport function barVisible(s: PromptBarState): boolean {\n // Only `off` hides the row. `idle` is enabled-and-waiting, and showing it is the difference between\n // \"the feature is live, nothing to say yet\" and silence that reads as disabled (#113).\n if (s.status === 'off') return false\n if (s.status === 'ready' && (s.text === null || s.text === '')) return false\n // The goal bar's `clearedGoalId` guard, in our terms: don't flicker back the offer just dismissed.\n if (s.hiddenTurnSeq !== null && s.hiddenTurnSeq === s.turnSeq) return false\n return true\n}\n\n/** May the bar submit its own offer? Armed, present, idle, not dismissed, and still serving a purpose. */\nexport function shouldAutoFire(s: PromptBarState): boolean {\n if (s.status !== 'ready') return false\n if (s.text === null || s.text === '') return false\n // #113: two host-imposed stops before anything else. A goal re-cut needs a human turn (dsh-tool-goal's\n // requireDirectHuman), and an armed goal driver already intends to start this turn — firing here would be\n // two turn-starters at one boundary, racing the driver's own reservation fence.\n if (s.intent === 'goal-edit') return false\n if (s.goal !== null && s.goal.phase === 'active' && s.goal.activation === 'armed') return false\n if (s.autorun !== 'armed') return false\n if (s.running) return false\n if (s.goalPhase === 'complete' || s.goalPhase === 'blocked') return false\n if (s.hiddenTurnSeq !== null && s.hiddenTurnSeq === s.turnSeq) return false\n return true\n}\n\n/** The command the bar pulls. One string, so the client and the command plane cannot drift silently. */\nexport const BAR_STATE_COMMAND = '/chapters-prompt state'\n/** The bar's Run button: the server submits the on-screen offer as the human's own turn. */\nexport const BAR_RUN_COMMAND = '/chapters-prompt run'\n\n/**\n * Parse the `state` verb's `k: v` lines into a pull event.\n *\n * One output serving the human and the component is the design (see `docs/contract.md`); this function is\n * the cost of that choice, and it is kept honest: an unrecognised line is IGNORED, not guessed at, and a\n * payload that yields no `status` is `null` so the caller keeps its last state rather than inventing `off`\n * (which would hide a bar that is merely mid-reply). Indentation and the prompt's own lines are the reason\n * the prompt is collected separately from the scalar fields — it is the only multi-line value.\n */\nexport function parseBarState(text: string): PromptBarEvent | null {\n const lines = text.split('\\n')\n const head = lines[0] ?? ''\n const statusWord = head.startsWith('suggested next step:') ? head.slice('suggested next step:'.length).trim() : ''\n const status = statusWord === 'off' ? 'off'\n : statusWord === 'idle' ? 'idle'\n : statusWord === 'analyzing' ? 'analyzing'\n : statusWord === 'ready' ? 'ready'\n : statusWord === 'failed' ? 'failed'\n : null\n if (status === null) return null\n const scalars: Record<string, string> = {}\n const prompt: string[] = []\n let inPrompt = false\n for (const line of lines.slice(1)) {\n if (inPrompt) { prompt.push(line.replace(/^ {4}/, '')); continue }\n const m = /^ {2}([a-z]+): ?(.*)$/.exec(line)\n if (m === null) continue\n const key = m[1]!, value = m[2]!.trim()\n if (key === 'prompt') { inPrompt = true; continue }\n scalars[key] !== undefined ? (scalars[key] += ` ${value}`) : (scalars[key] = value)\n }\n // #229: the server's configured ambient heartbeat rides every state reply; learn it here so the\n // module-level gate matches the operator's setting before any schedule decision reads it.\n configureQuietHeartbeat(Number.parseInt((scalars['heartbeat'] ?? '').trim(), 10) || 0)\n const turnRaw = scalars['turn'] ?? ''\n const turnSeq = /^\\d+$/.test(turnRaw) ? Number(turnRaw) : null\n const errorRaw = scalars['error'] ?? ''\n const intentWord = (scalars['intent'] ?? '').split(' ')[0] ?? ''\n return {\n t: 'polled',\n intent: intentWord === 'goal-edit' ? 'goal-edit' : 'worker-step',\n status,\n ...(status === 'ready' ? { text: prompt.join('\\n'), turnSeq } : {}),\n ...(status === 'failed' ? { error: errorRaw, turnSeq } : {}),\n }\n}\n\n/** The autorun flag, read from the same payload — the row is durable, the flag is not. */\nexport function parseBarAutorun(text: string): 'armed' | 'disarmed' | null {\n const m = /^ {2}autorun: (armed|disarmed)\\b/m.exec(text)\n return m === null ? null : (m[1] as 'armed' | 'disarmed')\n}\n\n/**\n * Does the host say this session is busy right now?\n *\n * The dock's props are HOOKS (`useSessionStatus`, `useChat`, `useInput`, …) — documented in\n * docs/contract.md § \"What a dock component is handed\" — so a component that waits for a scalar\n * `props.running` waits forever, which is precisely why Autorun declared itself unavailable while the host\n * was publishing the signal one field away. Shapes differ across hosts and versions, so every form is folded\n * here, in one pure function, with `undefined` (unknown) kept distinct from `false` (idle): the loop refuses\n * to start a turn on an unknown, and that distinction is the whole safety property.\n */\nexport function deriveRunning(status: unknown): boolean | undefined {\n if (status === undefined || status === null) return undefined\n if (typeof status === 'boolean') return status\n if (typeof status === 'string') {\n if (/^(running|streaming|busy|active)$/i.test(status)) return true\n if (/^(idle|done|stopped|finished|ready|waiting)$/i.test(status)) return false\n return undefined\n }\n if (typeof status === 'object') {\n const s = status as { status?: unknown, state?: unknown, running?: unknown, phase?: unknown }\n if (s.running !== undefined) return typeof s.running === 'boolean' ? s.running : undefined\n return deriveRunning(s.status ?? s.state ?? s.phase)\n }\n return undefined\n}\n\n\n/**\n * #208: the plane-wide relevance fact, read from the `state` block's own model line. `model: unset`\n * means the feature does not exist on this plane — one discovery reply carrying it silences EVERY\n * dock on the page (the pull transport cannot do better than one discovery; the push transport\n * (#194) removes even that). An unrecognised block is false, never a guess.\n */\nexport function parseModelAbsent(text: string): boolean {\n return /^\\s*model:\\s*unset\\b/m.test(text)\n}\n\n// ---------------------------------------------------------------- #194: the push half\n\n/** The pushed payload, as the client reads it from the standard `useProjection` seat. */\nexport interface PromptPushView {\n v: number\n status: PromptBarStatus\n text: string\n turnSeq: number | null\n error: string\n intent: 'worker-step' | 'goal-edit'\n autorun: 'armed' | 'disarmed'\n}\n\n/**\n * A pushed payload becomes the SAME events the pull path dispatches — one fold, one reducer, no\n * second implementation to drift (#59). Null when the payload is not ours or not trustworthy: an\n * unrecognised push is ignored, never guessed at, and the pull schedule underneath keeps running\n * until a payload this function accepts actually arrives.\n */\nexport function pushEventsOf(payload: unknown): { polled: PromptBarEvent; autorun: PromptBarEvent } | null {\n if (payload === null || payload === undefined || typeof payload !== 'object') return null\n const p = payload as Partial<PromptPushView>\n if (p.v !== 1 || typeof p.status !== 'string') return null\n // text is a ready-state fact, not a payload gate: an analyzing push without text is honest\n // progress, and rejecting it would blind the bar to the very transition it exists to show.\n const status = p.status as PromptBarStatus\n if (status !== 'off' && status !== 'idle' && status !== 'analyzing' && status !== 'ready' && status !== 'failed') return null\n return {\n polled: {\n t: 'polled', status,\n ...(status === 'ready' ? { text: typeof p.text === 'string' ? p.text : '', turnSeq: p.turnSeq ?? null, intent: p.intent ?? 'worker-step' } : {}),\n ...(status === 'failed' ? { error: p.error ?? 'the suggestion call failed' } : {}),\n },\n autorun: { t: 'autorun', on: p.autorun === 'armed' },\n }\n}\n\n/**\n * The running signal's resolution order (scalar prop → `useSession` snapshot via `deriveRunning` →\n * unknown) lives in the dock as `props.running ?? deriveRunning(sessionSnapshot)` — ONE expression,\n * pinned by a source-scan row, folded by the deriveRunning rows that already cover every shape.\n * A second pure helper for the same decision would be exactly the drift #59 forbids; the draft of\n * #194 shipped one and this comment is its headstone.\n */\n\n/** The staleness-confirm's one question: did a push arrive after the edge that scheduled it? */\nexport function pushIsFresher(lastPushAt: number | null, edgeAt: number): boolean {\n return lastPushAt !== null && lastPushAt > edgeAt\n}\n\n\n/** The projection key, from the ONE module both planes share (#194 — never retyped per plane). */\nexport { PROMPT_PROJECTION_KEY } from '../prompt-keys.ts'\n\n/**\n * #218: a DEAD-PUSH HEARTBEAT, not a staleness confirm — 20s fired mid-turn before the turn's\n * record could exist (turns outlast 20s), which was confirm spam wearing a safety hat. 5 minutes:\n * during normal work a record arrives every turn and the push effect retires the pending timer, so\n * a healthy push NEVER fires it; only a push silent for a whole 5 minutes pulls once — a frozen\n * bar is the failure this bounds, and it is worth one node every 5 minutes, not one every 20\n * seconds.\n * within moments (the runner writes it BEFORE calling the model). If no push arrived this long\n * after the edge, the push is presumed dead and ONE confirm pull runs — a silently dead push\n * degrades to one pull per turn, never to a frozen bar.\n */\nexport const PUSH_CONFIRM_GRACE_MS = 300_000\n\n/**\n * #211 — the edge kick's delay, measured on the maintainer's host the hard way: some hosts publish\n * `running` at STEP granularity (it flickers at every tool call and thinking block), and an\n * immediate kick per falling edge was a rendered `chapters-prompt` node per tool call — all waste,\n * because the server row changes ONLY at turn boundaries. So: a falling edge schedules its pull\n * after the debounce, a rising edge cancels it (step flicker coalesces to zero pulls), and the rate\n * floor bounds even a host that holds `running` low through long tool calls. A real turn end — a\n * falling edge with no rising edge after it — pulls exactly once.\n */\nexport const EDGE_DEBOUNCE_MS = 2_000\nexport const EDGE_FLOOR_MS = 15_000\n\nexport function edgeKickDelayMs(msSinceLastPull: number): number {\n return Math.max(EDGE_DEBOUNCE_MS, EDGE_FLOOR_MS - msSinceLastPull)\n}\n\n\n/**\n * #221: the turn-end pulse, derived from the host's own turn-boundary projection — no plugin\n * record API needed, so it works on 0.2.0 hosts (where appendPluginRecord is absent) exactly as\n * on newer ones. The host maintains a `turnBoundary` projection (the agent loop reads its\n * lastTurn for its own bookkeeping); reading what the host already folds costs zero writes and\n * delivers reactively through the same standard useProjection seat as any other projection.\n * Returns true when a NEW turn ended since the last observation; the dock calls it once per\n * render and stores the returned stamp back into `seen`.\n */\nexport function turnEndPulse(lastTurn: number | null | undefined, seen: number): { pulse: boolean, seen: number } {\n const cur = typeof lastTurn === 'number' && Number.isFinite(lastTurn) ? lastTurn : 0\n if (cur > seen) return { pulse: true, seen: cur }\n return { pulse: false, seen }\n}\n","/**\n * The Suggested Next Step dock row (#113) — thin by design.\n *\n * Every decision lives in `prompt-bar.ts` where a row can pin it; this file only moves pixels and bytes\n * between the host slot and that reducer. That split is the reason it exists: the ghost was rejected for\n * behaviour that had no home, and \"one turn, one offer\" cannot be tested in a component.\n *\n * Placement is measured, not styled: `conversation.input.dock` is the host's full-width stack rendered\n * ABOVE the composer card (todo `order: 0`, goal `10`, queue `20`), so `order: 30` puts this row under every\n * other dock entry and directly above the input — and because it is a docked row rather than an overlay, it\n * can neither cover the placeholder nor collide with the send buttons. The ghost's ugliest defect was\n * structural, and the structure fixes it.\n *\n * The bar is PUSH-SHAPED, PULL-FED. A registrant can own a reactive observable (`hooks: { x }` → prop\n * `useX`) — that is how the goal bar gets its `activation` — but a plugin cannot publish a projection, and\n * the only plugin-reachable call path is `remote.commands.execute`. So the component pulls the `state` verb\n * on edges it can actually observe. Stated here because the alternative is a reader assuming a subscription\n * that does not exist.\n *\n * @module dsh-chapters/src/client/prompt-dock\n */\n\nimport { createElement as h, useCallback, useEffect, useReducer, useRef, useState, type ReactElement } from 'react'\nimport { withTooltip, nativeTitle } from './tooltip.ts'\nimport {\n BAR_RUN_COMMAND,\n deriveRunning,\n BAR_STATE_COMMAND,\n pollSpacingFor, mountPullDecision, stateFromCache, parseModelAbsent, edgeKickDelayMs,\n pushEventsOf, pushIsFresher, PROMPT_PROJECTION_KEY, PUSH_CONFIRM_GRACE_MS, turnEndPulse, ACTIVE_POLL_MS, type PromptBarStatus,\n barLabel,\n barVisible,\n initialBarState,\n parseBarAutorun,\n parseBarState,\n promptBarReducer,\n shouldAutoFire,\n type PromptBarEvent,\n type PromptBarState,\n} from './prompt-bar.ts'\n\n/** The dock's owner + standard-kit props we read. Everything is optional-typed on purpose: this is a host\n * shape crossing a plugin boundary, and an absent field must degrade visibly, not throw at boot (#58). */\nexport interface DockProps {\n sessionId?: string\n inputActions?: { insertText?: (text: string) => void; setDraft?: (text: string) => void; submit?: () => void }\n /** The host's session-status hook, when this build hands docks one (`useSessionStatus` is in the dock's\n * documented prop list). Folded through `deriveRunning` because its shape is not ours to assume. */\n useSessionStatus?: (selector?: unknown) => unknown\n /** The session snapshot hook; its snapshot carries `running`, which is Autorun's idle edge. */\n useSession?: (selector?: unknown) => unknown\n /** #194: the standard projection seat (SessionStandardProps, measured in ui-session). Where the\n * server registered the push projection, this returns its value reactively — zero commands.\n * Absent hook or undefined value ⇒ the pull schedule stands, unchanged. */\n useProjection?: (key: string) => unknown\n /** The host publishes running/idle through the composer kit on some builds; if it is absent, autorun\n * refuses to fire rather than guessing that the session is idle. Fail-safe, not fail-open. */\n running?: boolean\n /** Run a host command line for THIS session and return its text. One verb for every call the bar makes\n * (the `state` pull and the `off` write), because the bar is a mouth for the command plane — a second\n * private channel would be a second contract to keep in step, which is what `doors.ts` already avoids. */\n exec?: (line: string) => Promise<string>\n}\n\nconst CSS = [\n // Metrics copied from the goal bar's measured module so the two rows read as one family: a 36px card,\n // host elevation + radius tokens, and the host's own composer width vars so it tracks the card above it.\n '.dsh-chapters_promptDock{box-sizing:border-box;width:calc(100% - 2 * var(--dsh-composer-side-clearance) - 4 * var(--dsh-composer-dock-inset));max-width:calc(var(--dsh-composer-card-max-width) - 4 * var(--dsh-composer-dock-inset));margin:0 auto}',\n '.dsh-chapters_promptBar{isolation:isolate;box-sizing:border-box;width:100%;border-radius:var(--dsw-radius-md);height:36px;box-shadow:var(--dsw-elevation-panel);border:0;align-items:center;gap:10px;padding:4px 5px 4px 12px;display:flex;position:relative}',\n '.dsh-chapters_promptBar::before{z-index:-1;border-radius:inherit;background:var(--dsw-specific-menu);backdrop-filter:var(--dsw-menu-backdrop-filter);content:\"\";pointer-events:none;position:absolute;inset:0}',\n '.dsh-chapters_promptExpanded::before{align-items:flex-start;position:absolute;inset:0}',\n // #229: the EXPANDED bar is a solid card that grows with its content — the maintainer's report was\n // an offer opening \"on a transparent background right over the bar, impossible to read\". The ::before\n // paint layer (menu token) already backs the collapsed row; expansion now also lifts height:auto so\n // the whole text sits ON the card, in flow, not floating over anything.\n '.dsh-chapters_promptExpanded{height:auto;min-height:36px;padding-top:8px;padding-bottom:8px}',\n '.dsh-chapters_promptGlyph{color:var(--dsw-alias-label-tertiary);flex:none;display:inline-flex}',\n '.dsh-chapters_promptLabel{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:24px}',\n '.dsh-chapters_promptText{min-width:0;color:var(--dsw-alias-label-primary-dimmed);font-size:13px;line-height:20px;cursor:pointer;border:0;background:0 0;padding:0;text-align:left;flex:1}',\n '.dsh-chapters_promptEllipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block}',\n '.dsh-chapters_promptFull{white-space:pre-wrap;overflow-wrap:anywhere;line-height:20px;font-size:13px;color:var(--dsw-alias-label-primary);display:block}',\n '.dsh-chapters_promptError{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:20px;flex:none;max-width:34%}', '.dsh-chapters_promptNote{color:var(--dsw-alias-label-secondary);font-size:12px;line-height:20px;min-width:0}',\n '.dsh-chapters_promptIntent{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px}',\n\n '.dsh-chapters_promptActions{flex:none;align-items:center;gap:10px;display:flex}',\n '.dsh-chapters_promptBtn{corner-shape:round;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;font-size:13px}',\n '.dsh-chapters_promptBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}',\n '.dsh-chapters_promptBtn:disabled{opacity:.4;cursor:default}',\n].join('\\n')\nconst CSS_ID = 'dsh-chapters/prompt-dock.css'\n\nconst ensureCss = (): void => {\n if (typeof document === 'undefined') return\n if (document.getElementById(CSS_ID) !== null) return\n const style = document.createElement('style')\n style.id = CSS_ID\n style.setAttribute('data-plugin-css', CSS_ID)\n style.textContent = CSS\n document.head.appendChild(style)\n}\n\n/** The analysis glyph, drawn to the goal icon's metric (16 viewBox, stroke currentColor, width 1).\n * A prism-and-arrow: the feature reads the situation and points at the next move. */\nconst Glyph = (): ReactElement => h(\n 'svg', { viewBox: '0 0 16 16', width: 14, height: 14, fill: 'none', 'aria-hidden': 'true', 'stroke-width': '1' },\n h('path', { d: 'M2.5 3.5h11L8 9.5 2.5 3.5Z', stroke: 'currentColor' }),\n h('path', { d: 'M8 9.5V14', stroke: 'currentColor' }),\n h('path', { d: 'M6 12l2 2 2-2', stroke: 'currentColor' }),\n)\n\n/** One action button, labelled through the host tooltip exactly as the goal bar labels its own. */\nconst Action = (props: { label: string; glyph: string; onClick: () => void; disabled?: boolean; title?: string }): ReactElement => {\n const button = h('button', {\n type: 'button', className: 'dsh-chapters_promptBtn', 'aria-label': props.label,\n ...(props.disabled === true ? { disabled: true } : {}),\n ...(props.title !== undefined ? { title: props.title } : nativeTitle(props.label)),\n onClick: props.onClick,\n }, props.glyph)\n // Props matched to the call `doors.ts` already makes successfully: the host Tooltip takes\n // { label, side, children } and nothing else that I have verified. Inventing extra props (portal, delayMs)\n // failed the overload on the first compile, which is the right way to learn it.\n return withTooltip(props.label, button as ReactElement<Record<string, unknown>>)\n}\n\n/** Run is allowed whenever there is an offer; AUTORUN is what the intent and the goal gate. Keeping the\n * human's own button enabled is deliberate — the point of the protocol is to route a goal edit to a keystroke,\n * never to disable the human's ability to send it. */\n/**\n * The words the collapsed row shows, per state. `idle` and `analyzing` must say something, because an empty\n * row is indistinguishable from a broken one — the whole reason this feature took a day to read: the bar was\n * live, enabled, and rendering nothing but whitespace.\n */\nfunction lineFor(state: PromptBarState): string {\n if (state.status === 'ready') return state.text ?? ''\n if (state.status === 'analyzing') return 'Analyzing the session…'\n if (state.status === 'failed') return state.error !== null && state.error !== '' ? `Cannot recommend: ${state.error}` : 'Cannot recommend a next step right now'\n return 'No suggestion yet — I will recommend one after your next turn'\n}\n\nconst canRunHere = (state: PromptBarState): boolean => state.text !== null && state.text !== ''\n\n/** How long a state pull may take before we call it failed. Generous on purpose: this is a local RPC that\n * answers in milliseconds when the session is attachable, and the failure it guards against is a hang. */\nconst PULL_TIMEOUT_MS = 15_000\n\n/**\n * #203: the last known truth per session, outliving the component. SPA navigation remounts the\n * dock, and every pull is a rendered `command/run`+`command/done` history pair — so a remount\n * that re-pulled wrote a node per activation, the waste the maintainer named (\"every time I\n * navigate away and come back\"). The cache makes activation free: mount folds it through the SAME\n * reducer (stateFromCache), and only an untrustworthy cache pulls (mountPullDecision). A page\n * reload clears it and pays exactly one honest pull.\n */\ninterface CacheEntry { ev: import('./prompt-bar.ts').PromptBarEvent; autorun: 'armed' | 'disarmed' | null; at: number }\nconst stateCache = new Map<string, CacheEntry>()\n\n/**\n * #208: set by the first reply reporting the plane-wide `model: unset` — the feature does not\n * exist here, so NO dock on this page pulls again for anything: not mounts, not idle edges, not\n * timers, not visibility. One discovery per page load is the pull transport's floor; a page reload\n * is the only revival, and the enabling commands say so.\n */\nlet featureAbsent = false\n\n/** Retry ceiling for the FIRST pull only, in attempts and spacing. A mount-time race must not be able to\n * starve the bar forever, and a real `off` answer stops the loop on the first reply either way. */\n\nfunction execWithTimeout(exec: (line: string) => Promise<string>, line: string, ms: number): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const timer = setTimeout(() => { reject(new Error(`no answer within ${String(ms)}ms`)) }, ms)\n exec(line).then(\n (text) => { clearTimeout(timer); resolve(text) },\n (error: unknown) => { clearTimeout(timer); reject(error instanceof Error ? error : new Error(String(error))) },\n )\n })\n}\n\nexport function PromptDock(props: DockProps): ReactElement | null {\n const { sessionId, inputActions, exec } = props\n // #194 + the contract's running-signal lock: BOTH hook reads happen first, unconditionally,\n // above every other hook — hook order must not change between renders (the #310 lesson). The\n // measured seats: `useSession`'s snapshot carries `running` (deriveRunning folds whatever shape\n // arrives; a scalar `running` prop wins where a build supplies one), and `useProjection` is the\n // standard seat the push transport rides. Absent hooks degrade through stable fallbacks.\n const useSessionHook = props.useSession ?? (() => undefined)\n const sessionSnapshot = useSessionHook((snapshot: unknown) => snapshot)\n const running = props.running ?? deriveRunning(sessionSnapshot)\n const useProjectionHook = props.useProjection ?? (() => undefined)\n const pushed = useProjectionHook(PROMPT_PROJECTION_KEY)\n // #221: the host's OWN turn-boundary projection. Reading it costs nothing (the agent loop already\n // maintains it), works on EVERY host with projections including 0.2.0-rc.2 — where appendPluginRecord\n // is absent and the record transport cannot exist. A new turn end is the only moment our row can\n // change without a user action, so this pulse replaces the clock: one sanctioned follow-up pull per\n // boundary instead of a 10-second drumbeat (measured on the maintainer's live log: 158 pulls at exact\n // 10.0s intervals). Absent hook or projection ⇒ no pulse ⇒ the quiet heartbeat stands.\n const turnBoundary = useProjectionHook('turnBoundary') as { lastTurn?: number } | null | undefined\n const [state, dispatch] = useReducer(promptBarReducer, initialBarState(), (s) => {\n // #203: activation renders from the module cache — zero invocations — folded through the live\n // reducer path, so there is no second fold implementation to drift.\n const pushEvs = pushEventsOf(pushed)\n if (pushEvs !== null) {\n return { ...promptBarReducer(promptBarReducer(s, pushEvs.polled), pushEvs.autorun), running: running ?? true }\n }\n const c = sessionId !== undefined ? stateCache.get(sessionId) : undefined\n const base = c !== undefined ? stateFromCache(c.ev, c.autorun) : s\n return { ...base, running: running ?? true }\n })\n // #79's discipline, kept because the failure it prevents was real: one pull per mount, then per edge.\n // A fetch in an effect with no such guard re-fires on every render.\n const pulling = useRef(false)\n // TWO different facts, two different refs — conflating them is the bug I just shipped: `pulled` is the\n // once-per-mount pull guard, `alive` is \"may this component still call dispatch/setState\". Initializing the\n // pull guard to true made every mount skip its first pull, so the bar sat at its `off` default and rendered\n // nothing at all — a regression that looked, from outside, like the feature having stopped working.\n const probed = useRef(false)\n const pulled = useRef(false)\n const alive = useRef(true)\n useEffect(() => () => { alive.current = false }, [])\n const [busy, setBusy] = useState(false)\n void 0\n // #193: the mount effect's reschedule handle, so the idle edge and the visibility edge can pull NOW\n // instead of waiting out a possibly-quiet cadence. Undefined while the poll is not mounted.\n const kick = useRef<(() => void) | undefined>(undefined)\n // #211: when the last pull STARTED (a failed pull is still a rendered node — the floor counts it),\n // and the pending debounced edge pull, which a rising edge cancels.\n const lastPullAt = useRef<number | null>(null)\n const edgeTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n // #194: push-mode bookkeeping. pushLive flips on the first ACCEPTED payload and stays true for\n // the page lifetime — a projection that existed and went silent is the confirm-pull's job to\n // police, not a reason to resurrect the clock.\n const pushLiveRef = useRef<boolean>(false)\n // #221: the last turn-end seq observed; the pulse fires when the host advances past it.\n const seenTurnRef = useRef<number>(0)\n const lastPushAt = useRef<number | null>(null)\n const answered = useRef(false)\n const replyStatus = useRef<string>('unknown')\n const stateRef = useRef<PromptBarState>(initialBarState())\n stateRef.current = state\n // #203: does THIS host publish the running signal? Where it does, the idle edge is the schedule\n // and a stable bar keeps no clock; where it does not, the #193 cadence is the fallback.\n const edgesRef = useRef<boolean>(props.running !== undefined)\n edgesRef.current = props.running !== undefined\n if (!probed.current) {\n probed.current = true\n // One print, on the first mount: which composer verbs does THIS host actually hand a dock? The click-to-draft\n // requirement needs one, `setDraft` is accepted but never reaches the editor, and guessing at the surface\n // again would be a third wrong theory in a row.\n console.info(`[client:prompt] inputActions keys: ${Object.keys(inputActions ?? {}).join(',') || 'NONE'}`)\n }\n\n const refresh = useCallback(async (): Promise<void> => {\n if (exec === undefined || pulling.current) return\n pulling.current = true\n lastPullAt.current = Date.now()\n try {\n // Bounded, and loudly so. Tonight's whole diagnosis cost was paid because this await had no ceiling:\n // a wire that never answers produced no dispatch, no catch and no `finally`, which looked identical to\n // \"the feature is switched off\". A hung command is now a named failure with a number on it (#61).\n const text = await execWithTimeout(exec, BAR_STATE_COMMAND, PULL_TIMEOUT_MS)\n // Handed to the leg through the page, because the state block is the contract and I need to see the\n // bytes the browser parsed, not the bytes the server meant. Overwritten each pull; read on failure.\n try { (window as unknown as { __dshPromptReply?: string }).__dshPromptReply = text } catch { /* test seam only */ }\n const ev = parseBarState(text) as PromptBarEvent | null\n if (ev !== null) { answered.current = true; replyStatus.current = (ev as { status?: string }).status ?? replyStatus.current; dispatch(ev) }\n const autorun = parseBarAutorun(text)\n if (autorun !== null) dispatch({ t: 'autorun', on: autorun === 'armed' })\n // #208: a reply naming the model unset silences the whole page — relevance is plane-wide.\n if (parseModelAbsent(text)) featureAbsent = true\n // #203: every honest reply feeds the cache the next activation renders from.\n if (ev !== null && sessionId !== undefined) {\n stateCache.set(sessionId, { ev, autorun: autorun === 'armed' || autorun === 'disarmed' ? autorun : null, at: Date.now() })\n }\n } catch (error) {\n // #61: a detected failure is a DELIVERED failure. Keeping the last known state is right; saying\n // nothing was not — with a bare `catch {}` a wire that never answers is indistinguishable from a\n // feature that is switched off, and that is exactly how this bar looked \"unverifiable\" in a browser\n // while the real fault was one line of swallowed output.\n // A failed pull is not a state: the bar keeps what it last knew rather than rendering `off`,\n // which would read as \"suggestions are disabled\" when the wire merely hiccoughed.\n console.warn(`[client:prompt] pull failed: ${String((error as Error)?.message ?? error).slice(0, 180)}`)\n } finally { pulling.current = false }\n }, [exec])\n\n // #194: the pushed value dispatches through the same reducer the pulls feed. The effect sits\n // ABOVE the mount poll so pushLive is set before the first tick decides anything. Any push also\n // retires a pending edge timer in push mode — the record IS the answer the confirm would fetch.\n useEffect(() => {\n const evs = pushEventsOf(pushed)\n if (evs === null) return\n pushLiveRef.current = true\n lastPushAt.current = Date.now()\n dispatch(evs.polled)\n dispatch(evs.autorun)\n if (edgeTimer.current !== undefined) { clearTimeout(edgeTimer.current); edgeTimer.current = undefined }\n }, [pushed])\n\n useEffect(() => {\n ensureCss()\n if (pulled.current) return\n pulled.current = true\n // Retry until SOMETHING answers. `answered` flips on any parseable reply, including an honest `off`, so\n // this loop cannot make a disabled session look enabled — it only closes the window where a pull fired\n // before the session could take a command and the bar then stayed blank for the rest of the session.\n // Keep reading while the feature is live, at a cadence that is a DECISION (#193): every pull is two\n // recorded host lifecycle events (`command/run` + `command/done`) the UI renders as history nodes, so\n // the old unconditional 10s poll wrote ~360 visible nodes an hour into every bar-enabled session —\n // the maintainer's \"littered with chapters-prompt runs, one right after another\". `pollSpacingFor`\n // paces it: fast while state can change (analyzing / armed / running), slow while stable, and NOTHING\n // in a hidden tab unless the loop is armed. On hosts that publish no running prop, `running` stays\n // conservatively true and the cadence stays active — the old behavior, unchanged. `off` still ends it.\n let timer: ReturnType<typeof setTimeout> | undefined\n // #203: one vocabulary for \"what the bar knows right now\" — a reply beats the cache-folded row\n // state, and every schedule decision reads THIS instead of keeping a fourth copy of the truth.\n const effectiveStatus = (): PromptBarStatus =>\n (replyStatus.current === 'unknown' ? stateRef.current.status : replyStatus.current) as PromptBarStatus\n const spacingNow = (): number | null => {\n // #229: an ARMED autorun loop is the one state that genuinely needs follow-up polling — after\n // a fired round the offer changes without a human action, and the turn-end pulse may already\n // have been consumed before generation finished. While armed, keep the old quiet floor (60s)\n // even when the ambient heartbeat is off; disarmed bars poll nothing.\n if (stateRef.current.autorun === 'armed') return ACTIVE_POLL_MS\n // #221: consume the pulse exactly once per boundary.\n const pe = turnEndPulse(turnBoundary?.lastTurn, seenTurnRef.current)\n if (pe.pulse) seenTurnRef.current = pe.seen\n return pollSpacingFor({\n status: effectiveStatus(),\n autorun: stateRef.current.autorun,\n running: stateRef.current.running,\n hidden: typeof document !== 'undefined' && document.hidden === true,\n edges: edgesRef.current,\n turnEndPulse: pe.pulse,\n })\n }\n const duePull = (): boolean => {\n const c = sessionId !== undefined ? stateCache.get(sessionId) : undefined\n return mountPullDecision({\n hasCache: c !== undefined,\n ageMs: c !== undefined ? Date.now() - c.at : Number.MAX_SAFE_INTEGER,\n status: effectiveStatus(),\n autorun: stateRef.current.autorun,\n })\n }\n const tick = async (opts?: { mount?: boolean; force?: boolean }): Promise<void> => {\n // #194: in push mode there is no clock and no mount pull — state arrives through the\n // projection. A FORCED tick still runs: that is the staleness confirm firing because the\n // push did NOT arrive, and the pull is then the honest fallback, not waste.\n if (pushLiveRef.current && opts?.force !== true) return\n // #208: not relevant, not visible — an unset-model plane spends nothing, ever.\n if (featureAbsent) return\n if (effectiveStatus() === 'off') {\n // A known `off` spends no clock and no edge — but a STALE cached off is untrustworthy:\n // `/chapters-prompt on` could have happened anywhere. The staleness guard on a mount is the\n // only revival path short of a page reload, and that matches the old within-mount rule.\n if (!(opts?.mount === true && duePull())) return\n }\n const spacing = spacingNow()\n // force = an edge the schedule sanctions (a turn ended): pull even where the steady cadence\n // says no timer is needed. mount = the guarded first look; a fresh cache renders for free.\n // #231: the MOUNT discovery is a sanctioned moment in its own right — it must NOT be gated on\n // `spacing`, or removing the ambient clock (the whole point of #231) removes the one pull that\n // tells the bar whether the feature exists at all. Measured cost of getting this wrong: the\n // rig's prompt leg failed four-for-four because no pull ever fired and the dock stayed hidden.\n const mountDiscovery = opts?.mount === true && duePull()\n if (opts?.force === true || mountDiscovery || (spacing !== null && opts?.mount !== true)) await refresh()\n if (replyStatus.current === 'off') return\n // The reply, not the React state: the row is hidden while `off`, and a hidden row renders\n // nothing, so stateRef can lag. The schedule reads the wire truth whenever it exists.\n const next = spacingNow()\n if (next !== null) timer = setTimeout(() => { void tick() }, next)\n }\n // The idle edge IS the schedule (#203): a turn ending is the moment an offer is born, so it\n // pulls with force. The tab-foreground edge pulls ONLY when the cache can no longer be\n // trusted — flicking back to a tab you left a moment ago must not write a history node.\n kick.current = () => {\n if (timer !== undefined) clearTimeout(timer)\n void tick({ force: true })\n }\n const onVisible = (): void => {\n if (typeof document !== 'undefined' && !document.hidden && duePull()) kick.current?.()\n }\n if (typeof document !== 'undefined') document.addEventListener('visibilitychange', onVisible)\n void tick({ mount: true })\n return () => {\n if (timer !== undefined) clearTimeout(timer)\n if (edgeTimer.current !== undefined) { clearTimeout(edgeTimer.current); edgeTimer.current = undefined }\n kick.current = undefined\n if (typeof document !== 'undefined') document.removeEventListener('visibilitychange', onVisible)\n }\n }, [refresh])\n\n // Autorun fires off the IDLE edge, never off a render. `running` comes from the host when it publishes it;\n // absent means unknown, and unknown means do not start a turn the human cannot see coming.\n const prevRunning = useRef<boolean>(running ?? true)\n useEffect(() => {\n const next = running ?? true\n const prev = prevRunning.current\n prevRunning.current = next\n dispatch({ t: 'running', running: next })\n // #211 + #194, ONE schedule: a falling edge delays exactly one pull and a rising edge cancels\n // it (step-granular flicker coalesces to zero pulls). Pull mode: the debounced kick\n // (edgeKickDelayMs — 2s debounce, 15s floor). Push mode: the staleness CONFIRM at\n // max(grace, floor − since) — a record landing after the edge retires it via the push effect,\n // so a healthy push costs nothing and a dead one degrades to one pull per turn, never a\n // frozen bar. Hosts that publish no running signal never produce transitions and keep the\n // cadence fallback unchanged.\n if (prev && !next) {\n if (edgeTimer.current !== undefined) clearTimeout(edgeTimer.current)\n const since = lastPullAt.current === null ? Number.MAX_SAFE_INTEGER : Date.now() - lastPullAt.current\n const delay = pushLiveRef.current\n ? Math.max(PUSH_CONFIRM_GRACE_MS, edgeKickDelayMs(since))\n : edgeKickDelayMs(since)\n const edgeAt = Date.now()\n edgeTimer.current = setTimeout(() => {\n edgeTimer.current = undefined\n // A push that landed after the edge already answered the confirm's question.\n if (pushLiveRef.current && pushIsFresher(lastPushAt.current, edgeAt)) return\n kick.current?.()\n }, delay)\n } else if (!prev && next) {\n if (edgeTimer.current !== undefined) { clearTimeout(edgeTimer.current); edgeTimer.current = undefined }\n }\n }, [running])\n\n // Run is a COMMAND, not a keystroke. The composer-write path (`inputActions.setDraft` + `submit`) looked\n // like the obvious implementation and does not work on this host build: `setDraft` is accepted, and the\n // editor stays empty — measured, twice, after I had convinced myself it was the test's locator or a focus\n // ordering problem. The plugin already has a dependable wire to its own server plane, and the server has\n // exactly one human-authored submission path (the follow-up autorun uses), so Run rides that. The\n // consequence is also the point: what the human clicks and what the loop arms are the same code.\n const run = useCallback((): void => {\n if (state.text === null || state.text === '' || exec === undefined) return\n setBusy(true)\n void exec(BAR_RUN_COMMAND)\n .then((out) => {\n if (!alive.current) return\n if (/^cannot run:/i.test(out.trim())) dispatch({ t: 'polled', status: 'failed', text: state.text, error: out.trim().slice(0, 200), turnSeq: state.turnSeq } as PromptBarEvent)\n else dispatch({ t: 'collapse' })\n })\n .catch((error: unknown) => { console.warn(`[client:prompt] run failed: ${String((error as Error)?.message ?? error).slice(0, 160)}`) })\n .finally(() => { if (alive.current) setBusy(false) })\n }, [exec, state.text, state.turnSeq])\n\n useEffect(() => {\n if (!shouldAutoFire(state)) return\n run()\n }, [state, run])\n\n // Autorun's idle edge stays UNWIRED on this host, and that is now a measured fact rather than a guess:\n // `useSessionStatus` is in the dock's documented prop list, but calling it here threw twice — first a React\n // hook-order abort (#310, because it sat below the early return), then `TypeError: l is not a function` once\n // hoisted. Two blind attempts is the limit; the contract says which hooks exist, not their arity or context.\n // So the gate keeps its original, correct behavior: with no signal, `running` is undefined, Autorun is\n // visibly unavailable and says why, and `deriveRunning` (9 rows) stands ready for whichever shape the host\n // does publish. A loop that starts turns the human cannot foresee is the one failure mode not on offer.\n // `useSessionStatus` is `SnapshotSelectorHook<SessionStatusSnapshot>` — a SELECTOR hook (declared in\n // dsh-client-ui-session's client types), which is why calling it with a session id threw\n // `TypeError: l is not a function`: the host used my string as the selector. An identity selector takes\n // whatever the snapshot's shape happens to be, and `deriveRunning` folds it, so this code does not bet on\n // field names I have not read. Still hoisted above the early return: hook count must not change per render.\n // The idle signal IS published — on `useSession`, whose snapshot carries `running` (measured by printing the\n // hook surfaces once: `useSession=sessionId|pendingSubmissions|running|subagent|removed|openState`). My\n // first two attempts were wrong in different ways: a scalar `props.running` that no host supplies, then\n // `useSessionStatus`, which is provided but yields no readable keys under an identity selector. `deriveRunning`\n // folds `{running}`, so this is the last mile, and the hook is called unconditionally through a stable\n // fallback because hook order must not change between renders.\n const autorunDisabled = running === undefined\n\n if (sessionId === undefined || !barVisible(state as PromptBarState)) return null\n\n const populate = (): void => {\n // Collapsed: reading. Expanded: the maintainer's click-to-edit gesture — setDraft REPLACES the draft,\n // which is what they asked for (\"the prompt replaces the chat input contents so you can edit it\"), and\n // nothing is submitted. Run is a separate, deliberate button.\n // Printed on every branch, because \"the button did nothing\" and \"the button took the other path\" looked\n // identical from outside for three runs.\n console.info(`[client:prompt] populate expanded=${String(state.expanded)} hasInsertText=${String(typeof inputActions?.insertText)} hasSetDraft=${String(typeof inputActions?.setDraft)} textLen=${String(state.text?.length ?? -1)}`)\n if (!state.expanded) { dispatch({ t: 'expand' }); return }\n if (state.text === null || state.text === '') return\n // Delivered, not assumed. The click-to-draft gesture is the interaction the maintainer asked for, so a\n // silent no-op here is indistinguishable from \"the feature does not work\" — and that ambiguity cost the\n // rest of this leg's diagnosis. Absent verb, absent text: both say so.\n // The host's composer kit is `{ captureInsertion, insertText, setDraft, addAttachments, removeAttachment,\n // pruneAttachments, submit }` (measured on 0.2.0-rc.2). `setDraft` writes the STORE, and the store is\n // mirrored into the editor only at mount while the editor is empty — which is why a click that \"worked\"\n // (no refusal, no throw) left the box visibly empty. `insertText` is the verb that reaches the editor, so\n // click-to-draft uses it and keeps `setDraft` only as a fallback for builds that lack it.\n if (typeof inputActions?.insertText === 'function') {\n // `insertText` inserts AT THE CARET, and clicking this button moves the caret out of the editor — so the\n // call ran and put the words nowhere. Focusing the composer first is the whole difference, and it is done\n // with a tolerant query rather than a class name: the host's own module hashes (`wSkVaW_…`) are not mine\n // to depend on, and a bar that silently stops drafting after a host restyle is worse than one that tries.\n try {\n const box = document.querySelector<HTMLElement>('[contenteditable=\"true\"][role=\"textbox\"]')\n box?.focus()\n } catch { /* a host without the editor mounted: the insert below still records the intent */ }\n // Measured on host 0.2.0-rc.2: called from a dock this throws\n // `Cannot read properties of undefined (reading 'draftRev')`, and the kit's other verb (`setDraft`) writes\n // a store the editor mirrors only at mount. Neither reaches the composer. A silent no-op is what cost the\n // last six runs, so the refusal now appears on the bar and points at Run, which does work.\n const refuse = (why: string): void => {\n console.warn(`[client:prompt] click-to-draft refused: ${why}`)\n dispatch({ t: 'note', note: 'This host does not let a plugin write the composer, so the prompt cannot be edited before sending — Run submits it as your turn' })\n }\n try {\n inputActions.insertText(state.text)\n // Throwing is the easy case. The harder one is the verb that returns successfully and changes nothing,\n // which is what `setDraft` does on 0.2.0-rc.2 and what a silent button looks like forever. Verify the\n // editor actually holds the words; if it does not, say so on the bar.\n const box = document.querySelector<HTMLElement>('[contenteditable=\"true\"][role=\"textbox\"]')\n const head = state.text.slice(0, 24)\n if ((box?.innerText ?? '').indexOf(head) === -1) {\n // One animation frame: the host may write the DOM after its own microtask.\n setTimeout(() => {\n const b2 = document.querySelector<HTMLElement>('[contenteditable=\"true\"][role=\"textbox\"]')\n if ((b2?.innerText ?? '').indexOf(head) === -1) refuse('insertText reported success and left the editor empty')\n }, 400)\n }\n } catch (error) {\n refuse(String((error as Error)?.message ?? error).slice(0, 160))\n }\n // Read the editor back from inside the component, so \"insertText is a no-op on this host\" is a fact with\n // a number next to it rather than a conclusion the test reaches after the fact.\n setTimeout(() => {\n try {\n const box = document.querySelector<HTMLElement>('[contenteditable=\"true\"][role=\"textbox\"]')\n console.info(`[client:prompt] after insertText: editorText=${String(box?.innerText?.length ?? 'NO-BOX')} focused=${String(document.activeElement === box)}`)\n } catch { /* diagnostics never break the gesture */ }\n }, 250)\n return\n }\n if (typeof inputActions?.setDraft === 'function') {\n inputActions.setDraft(state.text)\n return\n }\n console.warn('[client:prompt] click-to-draft refused: this host exposes neither insertText nor setDraft')\n }\n\n // Called unconditionally through a stable fallback, so the hook order cannot change between renders.\n return h('div', { className: 'dsh-chapters_promptDock', 'data-prompt-bar': 'true' },\n h('div', { className: `dsh-chapters_promptBar${state.expanded ? ' dsh-chapters_promptExpanded' : ''}` },\n h('span', { className: 'dsh-chapters_promptGlyph' }, h(Glyph)),\n h('span', { className: 'dsh-chapters_promptLabel' }, barLabel(state as PromptBarState) ?? ''),\n // A goal re-cut is held for the human's keystroke: the host reserves goal edits for a turn containing a\n // direct human message, and an autorun message is not one. The bar says so on its face rather than\n // letting Run appear to be a normal button that silently fails in the tool.\n ...(state.intent === 'goal-edit' ? [h('span', { key: 'intent', className: 'dsh-chapters_promptIntent', 'aria-label': 'This step edits the goal' }, 'edits the goal · run it yourself')] : []),\n h('button', {\n type: 'button', className: 'dsh-chapters_promptText',\n 'aria-label': state.expanded ? 'Put this suggested prompt in the input box' : 'Show the full suggested prompt',\n onClick: populate,\n }, state.expanded\n ? h('span', { className: 'dsh-chapters_promptFull' }, state.text ?? '')\n : h('span', { className: 'dsh-chapters_promptEllipsis', title: state.text ?? undefined }, lineFor(state))),\n ...(state.note === '' ? [] : [h('span', { key: 'note', className: 'dsh-chapters_promptNote', role: 'status' }, state.note)]),\n ...(state.error === '' ? [] : [h('span', { key: 'err', className: 'dsh-chapters_promptError', role: 'alert' }, state.error)]),\n h('div', { className: 'dsh-chapters_promptActions' },\n h(Action, {\n label: 'Run the suggested next step', glyph: '▶', onClick: run, disabled: busy,\n ...(state.text === null || state.text === '' || !canRunHere(state) ? { disabled: true } : {}),\n ...(state.intent === 'goal-edit'\n ? { title: 'Goal edits need a human turn. Run still works; autorun will never do this one.' }\n : {}),\n }),\n h(Action, {\n label: state.autorun === 'armed' ? 'Autorun off' : 'Autorun',\n glyph: state.autorun === 'armed' ? '⟳' : '⟲',\n disabled: autorunDisabled,\n ...(autorunDisabled\n ? { title: 'Autorun needs the host to publish an idle signal; this build does not, so nothing would fire safely.' }\n : {}),\n // A SERVER write, like `off` below. Flipping local state alone was the defect: `refresh()` re-reads the\n // loop state (`:193`), the server still says `disarmed`, and the label snaps back — so the user watched\n // their own click be refused and the loop could never be started from the bar. The command surface is\n // `/chapters-prompt autorun on|off` (src/commands.ts:462-478), which also reports the goal displacement.\n onClick: () => {\n void (async () => {\n const arm = state.autorun !== 'armed'\n if (exec !== undefined) await exec(`/chapters-prompt autorun ${arm ? 'on' : 'off'}`)\n dispatch({ t: 'autorun', on: arm })\n // #194: in push mode the setAutorun append carries the truth back — a refresh here\n // would be a command run for a fact already in flight.\n if (!pushLiveRef.current) await refresh()\n })()\n },\n }),\n h(Action, {\n label: 'Turn prompt suggestions off for this session', glyph: '✕',\n // `off` is a server write, not a local hide: generation stops, the configured model is KEPT so\n // back-on is one action, and the bar disappears instead of lingering with a stale offer.\n onClick: () => { void (async () => { if (exec !== undefined) await exec('/chapters-prompt off'); dispatch({ t: 'off' }); if (sessionId !== undefined) stateCache.set(sessionId, { ev: { t: 'polled', status: 'off' }, autorun: null, at: Date.now() }) })() },\n }),\n ),\n ),\n )\n}\n","/**\n * The client door runner: the two deterministic archive doors, executed over\n * `remote.commands` and followed by a SWITCH to the fresh child.\n *\n * ONE runner, two rows. The server side keeps the same discipline — both doors\n * come from `deterministicCommand(door)` in src/tools.ts, and a unit row pins\n * that they archive identically. Copy-pasting this body is how the two would\n * drift apart, so there is exactly one implementation and a table of rows.\n *\n * `chapters-continue` ships only as a composer command; without a button here\n * the child is created correctly and the UI shows nothing, which reads as\n * \"nothing happened\". The row is the missing affordance, not new logic.\n *\n * React-free on purpose: the primitives package pulls CSS modules the node\n * test runner cannot load, so the testable half lives here and index.ts is the\n * thin chrome that renders these rows as buttons (tests/unit/client-doors.test.ts).\n *\n * @module dsh-chapters/src/client/doors\n */\n\n/** Structural slice of the aggregated remote service (@deepseek-ai/dsh-api-remotes).\n * `remote.commands` must ALSO appear in inject — the federation gates each\n * sub-service individually (the live feedback package declares\n * remote.messageFeedback beside remote for exactly this reason). */\nexport interface ClientRemote {\n commands?: {\n execute(sessionId: string, line: string, attachments: readonly unknown[]): Promise<{\n ok?: boolean\n value?: { commandId?: string; result?: { kind?: string; text?: string } }\n error?: { code?: string; message?: string }\n }>\n }\n}\n\n/** The client sessions service (dsh-client-runtime): open() lives on the\n * prototype; everything else on the surface stays untrusted and unused. */\nexport interface ClientSessions {\n open(sessionId: string): unknown\n}\n\nexport interface DoorResult {\n ok: boolean\n message: string\n}\n\n/**\n * One assistant-action row. `noun` is the server's own word for the child in\n * its success text (`branch` / `continuation`), so the fallback wording and the\n * title regex both track the door without a second implementation.\n */\nexport interface DoorAction {\n /** The slot registration id. */\n id: string\n /** Position in the assistant action row. */\n order: number\n /** Button + tooltip label, and the accessible name the e2e specs select on. */\n label: string\n /** The host command this row executes — the ONLY semantic difference at runtime. */\n command: string\n /** The noun in `${noun} “title” is session ch-…`. */\n noun: string\n /** The row's glyph (16×16 viewBox, single path). */\n iconPath: string\n}\n\nexport const DOOR_ACTIONS: readonly DoorAction[] = [\n {\n id: 'chapters-fork',\n order: 30,\n label: 'Fork with chapters',\n command: '/chapters-fork',\n noun: 'branch',\n iconPath: 'M5 3.25a2.25 2.25 0 1 0-1.5 2.12v5.26a2.25 2.25 0 1 0 1.5 0V9h5a2.25 2.25 0 0 0 2.25-2.25v-1.4a2.25 2.25 0 1 0-1.5 0v1.4A.75.75 0 0 1 10 7.5H5V5.37A2.25 2.25 0 0 0 5 3.25Z',\n },\n {\n id: 'chapters-continue',\n order: 31,\n label: 'Continue with chapters',\n command: '/chapters-continue',\n noun: 'continuation',\n iconPath: 'M1 8a.75.75 0 0 1 0-1.5h9.44L7.72 3.28a.75.75 0 1 1 1.06-1.06l3.5 3.5.53.53-.53.53-3.5 3.5a.75.75 0 1 1-1.06-1.06L10.44 9.5H1Zm13-5.25v10.5a.75.75 0 0 1-1.5 0v-10.5a.75.75 0 0 1 1.5 0Z',\n },\n]\n\n/** Pull the child id out of either door's durable success text — both end in\n * `… is session ch-…` (src/tools.ts), so this regex is door-agnostic. */\n/**\n * Which build of THIS file produced a door note (#77). When the live probe reported a roster\n * trace of `missing → missing → missing` — meaning adoption should have fired three times — while\n * showing no adoption outcome at all, the first question stopped being \"why did the client refuse\"\n * and became \"did the browser run the code I am reading?\". A note that names its own build makes\n * that a glance instead of an archaeology session into symlinked plugin trees.\n */\nexport const DOOR_BUILD = '2026-10-22T23:55 door-build-stamp'\n\nexport const CHILD_ID = /is session (ch-[\\w-]+)/\n\n/** The quoted title the door gave the child, matched by its OWN noun so a\n * refusal or an unrelated quote cannot pass for it. */\nexport const doorTitle = (noun: string): RegExp => new RegExp(`${noun} \\\\u201C([^\\\\u201D]+)\\\\u201D is session`)\n\n/**\n * A refusal reason that can never render as nothing. `String(err.message ?? err)` is `''` for a\n * host error built with an empty message, and an empty reason disappears from the note — the\n * reader then concludes \"no refusal happened\", which is the opposite of the truth (#77).\n */\nfunction refusalReason(error: unknown): string {\n const raw = error instanceof Error ? error.message : String(error)\n const trimmed = raw.trim()\n const named = trimmed === '' ? (error instanceof Error && error.name.trim() !== '' ? error.name : '') : trimmed\n const base = named === '' ? (error === null ? 'null thrown' : typeof error) : named\n return base.replace(/\\s+/g, ' ').slice(0, 90)\n}\n\n/**\n * Is the child in the client's OWN roster? This is the question that separates two very\n * different failures, and the door used to report the symptom without it:\n * - the client never learned the session exists (roster: missing) → the fix is server-side\n * publication, and no amount of clicking `open` will ever work;\n * - the client knows it and `open` still did nothing (roster: contains) → a navigation bug.\n * Measured host 0.2.0-rc.2: the sessions service exposes `projectList`, `refresh`, `retain`,\n * `handleSessionAdded` — the roster is a projection the client fills from control frames.\n */\n/**\n * The client's own session ids, or `null` when the store cannot be read. ONE reader for both\n * the note and the adoption decision, so the door never acts on a verdict it did not report.\n */\nfunction rosterIds(sessions: ClientSessions | undefined): Set<string> | null {\n const store = (sessions as unknown as { list?: { getSnapshot?: () => unknown } })?.list\n if (typeof store?.getSnapshot !== 'function') return null\n const snap = store.getSnapshot()\n const ids = new Set<string>()\n if (Array.isArray((snap as { ids?: unknown[] } | undefined)?.ids)) {\n for (const id of (snap as { ids: unknown[] }).ids) ids.add(String(id))\n } else if ((snap as { byId?: object } | undefined)?.byId !== undefined) {\n for (const k of Object.keys((snap as { byId: object }).byId)) ids.add(k)\n } else return null\n return ids\n}\n\nfunction rosterNote(sessions: ClientSessions | undefined, child: string): string {\n try {\n // The host's client store shape is `list.getSnapshot() → { ids, byId, phase }`.\n // `projectList()` turned out to be a MUTATOR that returns undefined (measured), so the first\n // version of this note printed \"0 sessions\" about a conversation that visibly had one — the\n // repo's own `listEvents` lesson (\"measure the SHAPE, not the presence\"), repeated by me in\n // the same week. Read the store; when it isn't reachable, presence is UNKNOWN and the note\n // says that rather than inventing an absence.\n const ids = rosterIds(sessions)\n if (ids === null) {\n const store = (sessions as unknown as { list?: { getSnapshot?: () => unknown } })?.list\n const shape = typeof store?.getSnapshot !== 'function' ? 'no list store on the service' : 'snapshot unreadable'\n return ` (roster: ${shape} — presence of ${child.slice(0, 11)}… is UNKNOWN, not absent)`\n }\n if (ids.size === 0) return ` (roster: empty — presence of ${child.slice(0, 11)}… is UNKNOWN, not absent)`\n const n = ids.size\n return ids.has(child)\n ? ` (roster: contains ${child.slice(0, 11)}…, ${String(n)} sessions — open() is the failure)`\n : ` (roster: MISSING, ${String(n)} sessions — the client never catalogued this session)`\n } catch { return '' }\n}\n\n/** The service's own method names, as a hint attached to a failure note (never a guess). */\nfunction verbsNote(sessions: ClientSessions | undefined): string {\n try {\n const svc = sessions as unknown as Record<string, unknown> | undefined\n if (svc === null || svc === undefined || typeof svc !== 'object') return ' (sessions service: absent)'\n // Measured: `Object.keys(svc)` returned NOTHING for the real service, because the host\n // puts its verbs on the PROTOTYPE (a class instance), not as own keys. A diagnostic that\n // reports \"no methods\" about a working service is worse than none — walk the chain.\n const found = new Set<string>()\n let node: unknown = svc\n // Stop at Object.prototype: its four legacy accessors are not service verbs, and listing\n // them pushed the real names past the cap on the first live run.\n for (let depth = 0; depth < 6 && node !== null && node !== undefined && node !== Object.prototype; depth++) {\n for (const key of Object.getOwnPropertyNames(node as object)) {\n if (key === 'constructor') continue\n try { if (typeof (svc as Record<string, unknown>)[key] === 'function') found.add(key) } catch { /* getter that throws — not a verb we can use either */ }\n }\n node = Object.getPrototypeOf(node)\n }\n const verbs = [...found].sort().slice(0, 24)\n return verbs.length === 0 ? ' (sessions service: no methods on the chain)' : ` (sessions verbs: ${verbs.join(', ')})`\n } catch { return ' (sessions service: unreadable)' }\n}\n\nfunction openByService(\n sessions: ClientSessions | undefined,\n sessionId: string,\n /** #77: adopt (and re-project) only when the client's own roster is missing this session.\n * `onAfter` reports the roster at the instant after adoption, before any later refresh can\n * discard the mutation — the difference between an ordering bug and a publication gap. */\n adopt?: { needed: boolean, onRefused: (reason: string) => void, onSubscribeRefused?: (reason: string) => void, onAfter: (seen: boolean | null) => void, onStep?: (step: string) => void },\n nav?: { openSession?: (id: string) => unknown },\n): Promise<boolean> {\n return (async () => {\n const svc = sessions as unknown as {\n open?: (id: string) => unknown; refresh?: () => unknown; projectList?: () => unknown\n create?: (opts: { sessionId?: string }) => unknown\n using?: (id: string, opts: { source: string }, fn: () => Promise<void>) => unknown\n } | undefined\n // #77, the actual root cause: `sessions.open` DOES NOT EXIST on this host. The sessions\n // service offers create/fork/using/retain/binding/refresh; the host's own fork button calls\n // `ctx.uiWorkspace.openSession(childId)` (`dsh-client-ui-chat/lib/client.js`). The line here\n // used to be `if (typeof svc?.open !== 'function') return false`, so every service attempt\n // since the door was written returned false on line one and the note blamed the client's\n // roster for a verb that was never there.\n if (svc === undefined) return false\n const navigate = typeof nav?.openSession === 'function'\n ? (id: string): unknown => nav.openSession!(id)\n : typeof svc?.open === 'function'\n ? (id: string): unknown => svc.open!(id)\n : null\n if (navigate === null) {\n adopt?.onStep?.('no-verb')\n return false\n }\n try { await svc.refresh?.() } catch { /* refresh best-effort */ }\n // #57: re-project the client's session catalog. The host does this ITSELF after every\n // create and fork — `dsh-api-session-controller/lib/client.js`, `create()` and `fork()`\n // both end in `this.projectList()` — because a session the client has never catalogued is\n // not addressable by `open()` no matter how often you call it. A plugin-created child is\n // exactly that case: durable, workspace-attached, absent from the client's roster. Measured\n // on 0.2.0-rc.2: without this the door created the child, `open` resolved, and the app\n // stayed on the parent (the door's own note now says `roster: …` so this is never a guess).\n try { svc.projectList?.() } catch { /* best-effort, like refresh */ }\n // #77: adopt-and-catalogue. `manager.create()` is documented \"on success merge into\n // summaries immediately (no wait for the next refresh)\" and forwards a caller-owned\n // `sessionId`, while the server ADOPTS a persisted id instead of authoring a second session\n // (`create(request)` → `ensureSession(sessionId, cwd, request.sessionId !== undefined, …)`).\n // Nothing about the child's content is authored here — the seed notice was committed\n // host-plane long before this call — this only lets the client see what the host already\n // knows. A refusal is reported to the caller, never swallowed.\n if (adopt?.needed === true && typeof svc.create === 'function') {\n // the block narrates itself: entry first, then whichever way it left. The live note once\n // said \"try\" from the runner and showed nothing downstream — with this line, an absent\n // `enter-create` IS the answer instead of a mystery.\n adopt.onStep?.('enter-create')\n try {\n await svc.create({ sessionId })\n adopt.onStep?.('settle-create')\n try { svc.projectList?.() } catch { /* re-project again, now that a mutation exists */ }\n // the momentary read is the whole point: a later `refreshList()` reassigns the manager's\n // mutations from the server result, so an adoption that DID land is invisible by the time\n // the last attempt fails. Report what was true at the instant it mattered.\n const after = rosterIds(sessions)\n adopt.onAfter?.(after === null ? null : after.has(sessionId))\n } catch (error) {\n adopt.onStep?.('refuse-create')\n adopt.onRefused(refusalReason(error))\n }\n }\n // #77, second candidate: if adoption left the child out of the roster, SUBSCRIBE to it.\n // `using(target, {source}, fn)` is the host's own way to address a session that is not\n // currently displayed (`sessions/service.js`: retain → `manager.get(id).open()`). A refusal is\n // reported exactly like adoption's. No URL route exists as an alternative — checked every\n // dsh-client-* bundle: the only `/session/` strings are resource addresses for files.\n if (adopt?.needed === true && typeof svc.using === 'function' && rosterIds(sessions)?.has(sessionId) === false) {\n adopt.onStep?.('enter-using')\n try {\n await svc.using(sessionId, { source: 'dsh-chapters-door' }, async () => undefined)\n adopt.onStep?.('settle-using')\n try { svc.projectList?.() } catch { /* best-effort, like the others */ }\n const seen = rosterIds(sessions)\n adopt.onAfter?.(seen === null ? null : seen.has(sessionId))\n } catch (error) {\n adopt.onStep?.('refuse-using')\n adopt.onSubscribeRefused?.(refusalReason(error))\n }\n }\n // The store must know the session before open() resolves it; a child\n // created seconds ago is only server-known until refresh lands. Retry\n // open briefly across that window.\n const started = Date.now()\n for (;;) {\n try { navigate(sessionId); return true } catch {\n if (Date.now() - started > 4_000) return false\n await new Promise((r) => setTimeout(r, 250))\n }\n }\n })()\n}\n\n/**\n * Fallback path: expand collapsed groups / show-more buttons, then click the\n * newest treeitem whose label contains the child title (newest-updated sorts\n * first, so the first match is the fresh child).\n */\nasync function openBranchRow(title: string, budgetMs = 4_000): Promise<boolean> {\n if (typeof document === 'undefined') return false\n const needle = title.toLowerCase()\n const tryClick = (): boolean => {\n const rows = Array.from(document.querySelectorAll<HTMLElement>('[role=\"treeitem\"]'))\n const hit = rows.find((row) => (row.textContent ?? '').toLowerCase().includes(needle))\n if (hit === undefined) return false\n hit.click()\n return true\n }\n const clickMore = (): number => {\n const buttons = Array.from(document.querySelectorAll<HTMLElement>('button'))\n .filter((b) => /more sessions|ungrouped/i.test(b.textContent ?? '') && b.getAttribute('aria-expanded') !== 'true')\n for (const b of buttons) b.click()\n return buttons.length\n }\n const started = Date.now()\n let expansions = 0\n while (Date.now() - started < budgetMs) {\n if (tryClick()) return true\n if (expansions < 4 && clickMore() > 0) { expansions += 1; await new Promise((r) => setTimeout(r, 250)); continue }\n await new Promise((resolve) => setTimeout(resolve, 150))\n }\n return tryClick()\n}\n\nexport function makeDoorRunner(\n remote: ClientRemote,\n sessions: ClientSessions | undefined,\n door: DoorAction,\n /**\n * \"Is THIS session the one the client is now showing?\" #54: `sessions.open()` returns\n * void, so a call that resolves proves the request was accepted, not that the app\n * switched. Measured on host 0.2.0-rc.2: no note element (open resolved), yet\n * `dsh.sessions.current` still named the parent and the child was absent from the\n * sidebar after a full reload — the user got silence and a missing session. Absent\n * (a client that cannot answer) the runner keeps the old behavior, and the wiring is\n * pinned by a row so production can never quietly drop it.\n */\n verifySwitched?: (childSessionId: string) => Promise<boolean>,\n /**\n * #77: how many times to re-pull the client's list, re-project and re-open. The session\n * manager documents `refreshList()` as \"single-flight within one Host generation\"\n * (`dsh-api-session-controller/lib/types/client/sessions/manager.js`), so a pull issued while\n * another is in flight can resolve from the STALE result — precisely the moment a session\n * created microseconds ago is missing. Retrying is both the fix candidate and the measurement:\n * which attempt lands tells us whether this is ordering (ours) or silence (host-side).\n * A client with no `refresh` verb gets exactly ONE attempt — re-asking `open` against a roster\n * we cannot re-pull would be theater.\n */\n opts?: { attempts?: number, attemptPauseMs?: number, navigator?: { openSession?: (id: string) => unknown } },\n): (sessionId: string, anchorSeq?: number | null) => Promise<DoorResult> {\n return async function run(sessionId: string, anchorSeq?: number | null): Promise<DoorResult> {\n try {\n if (remote.commands?.execute === undefined) return { ok: false, message: 'commands remote unavailable' }\n // #221: the clicked message's seq rides the command as its first token — the server anchors\n // the archive at the last completed turn AT OR BEFORE it. Absent ⇒ today's behavior (the end\n // of the session), byte-identical to the pre-#221 line.\n const line = typeof anchorSeq === 'number' && Number.isFinite(anchorSeq) ? `${door.command} ${String(Math.trunc(anchorSeq))}` : door.command\n const res = await remote.commands.execute(sessionId, line, [])\n if (res.ok !== true) return { ok: false, message: (res.error?.message ?? `the ${door.noun} call failed`).slice(0, 90) }\n const result = res.value?.result\n const text = typeof result?.text === 'string' ? result.text : ''\n if (result?.kind !== 'success') return { ok: false, message: (text || `the ${door.noun} was refused — see the command result`).slice(0, 90) }\n const child = CHILD_ID.exec(text)?.[1]\n if (child === undefined) return { ok: true, message: `${door.noun} created — appearing in the sidebar` }\n const switchedOnce = async (): Promise<boolean> => {\n if (verifySwitched === undefined) return true\n try { return await verifySwitched(child) } catch { return false }\n }\n const canRepull = typeof (sessions as unknown as { refresh?: unknown } | undefined)?.refresh === 'function'\n const maxAttempts = canRepull ? (opts?.attempts ?? 3) : 1\n let tried = 0\n let adoptRefusal = ''\n let subscribeRefusal = ''\n // #77: what the roster reader answered AT EACH DECISION, not only at the end. The live\n // probe reported MISSING after three attempts while neither candidate fired, which can\n // only mean the reader disagreed with itself over time — and a note that says one number\n // cannot show that.\n const rosterTrace: string[] = []\n const steps: string[] = []\n let adoptSaw: boolean | null | undefined\n for (let i = 0; i < maxAttempts; i++) {\n tried += 1\n // decide adoption from the SAME reader the note reports, so the door never acts on a\n // verdict it did not tell the user about; an unreadable roster is not \"missing\"\n const ids = rosterIds(sessions)\n // Loaded-but-empty is a DECISION (the child is not there → try the sanctioned paths);\n // unreadable is UNKNOWN and must not invent a session (#77: the strict form here meant\n // neither candidate ever ran in the live probe, and its silence looked like a result).\n const needed = ids !== null && !ids.has(child)\n // `+c` / `+u` = the candidate verbs are present on the injected service AT THAT MOMENT.\n // Without this, a note that says the roster was missing while no adoption outcome appears\n // is uninterpretable: either the code never ran, or the service has no create to call.\n const svcShape = sessions as unknown as { create?: unknown, using?: unknown, open?: unknown } | undefined\n // +c create, +u using, +o sessions.open, +w workspace navigator — the exact predicates\n // the door branches on, so a note can be read instead of re-derived from source\n rosterTrace.push(`${ids === null ? 'unknown' : ids.size === 0 ? 'empty' : ids.has(child) ? 'has' : 'missing'}${typeof svcShape?.create === 'function' ? '+c' : '-c'}${typeof svcShape?.using === 'function' ? '+u' : '-u'}${typeof svcShape?.open === 'function' ? '+o' : '-o'}${typeof opts?.navigator?.openSession === 'function' ? '+w' : '-w'}`)\n if (await openByService(sessions, child, {\n needed,\n onRefused: (reason) => { adoptRefusal = reason },\n onSubscribeRefused: (reason) => { subscribeRefusal = reason },\n onAfter: (seen) => { adoptSaw = seen },\n onStep: (step) => { if (!steps.includes(step)) steps.push(step) },\n }, opts?.navigator) && await switchedOnce()) return { ok: true, message: '' }\n if (i + 1 < maxAttempts) await new Promise((r) => { setTimeout(r, opts?.attemptPauseMs ?? 300).unref?.() })\n }\n // the service path did not take — the sidebar row is the same affordance a human uses\n const title = doorTitle(door.noun).exec(text)?.[1]\n if (title !== undefined && await openBranchRow(title) && await switchedOnce()) return { ok: true, message: '' }\n // #54: a child that is created but not shown is a DIFFERENT fact from one the user\n // has to open by hand, and the message must not blur them.\n // #56/#57: the note must be ACTIONABLE. \"the app did not switch\" is true and useless;\n // naming the verbs the injected service actually exposes turns one failure into the\n // diagnosis (is there a refresh/reload to call, or is `open` the only verb and the\n // omission server-side?). A detected failure that isn't delivered is the same bug.\n return verifySwitched === undefined\n ? { ok: true, message: `${door.noun} created — open it in the sidebar` }\n : { ok: true, message: `${door.noun} created — the app did not switch after ${String(tried)} attempt${tried === 1 ? '' : 's'}; open it from the sidebar [roster per attempt: ${rosterTrace.join(' → ')}] [tried: ${steps.length === 0 ? 'none' : steps.includes('no-verb') ? 'no open or openSession verb on any injected service' : steps.join(', ')}] (build: ${DOOR_BUILD})${adoptRefusal === '' ? '' : ` (adoption refused: ${adoptRefusal})`}${subscribeRefusal === '' ? '' : ` (subscribe refused: ${subscribeRefusal})`}${adoptSaw === undefined ? '' : ` (right after adopt: ${adoptSaw ? 'contains' : 'missing'} ${child.slice(0, 15)})`}${rosterNote(sessions, child)}${verbsNote(sessions)}` }\n } catch (error) {\n return { ok: false, message: String((error as Error)?.message ?? error).slice(0, 90) }\n }\n }\n}\n\n/**\n * Execute a host command line for one session and return its text, or '' when the command plane is\n * unavailable. The bar's `state` pull and `off` write ride this, because it is the ONE place the client\n * talks to the wire: the guard row \"there is no second runner body in the client chrome\" exists to keep\n * `index.ts` as registration chrome, and a duplicated `commands.execute` in two files is how a wire\n * behaviour drifts from its own test (#59's one-predicate rule, applied to the transport).\n */\nexport async function runCommandText(remote: ClientRemote | undefined, sessionId: string, line: string): Promise<string> {\n const exec = remote?.commands?.execute\n if (exec === undefined) return ''\n const res = await exec(sessionId, line, [])\n if (res.ok !== true) return ''\n return res.value?.result?.text ?? ''\n}\n","/**\n * dsh-chapters client entry: the per-message door buttons.\n *\n * Registers the two deterministic archive doors into the assistant action row\n * (`conversation.chat.assistant-actions` — the slot the official feedback\n * package populates beside copy/branch). Clicking one executes its host\n * command — `/chapters-fork`, `/chapters-continue` — through `remote.commands`,\n * the exact wire the composer's input line rides, then SWITCHES the app to the\n * fresh child:\n *\n * 1. `sessions.open(child)` — the client sessions service carries open() on\n * its prototype (Playwright-verified against this host; a keys-dump alone\n * hid it, which is why an earlier round wrongly gave up on this path);\n * 2. fallback: click the child's sidebar row after expanding collapsed\n * groups (plugin children can render under collapsed 'Ungrouped' heads);\n * 3. last resort: an inline note — the child is durable either way.\n *\n * There is deliberately NO second implementation of door logic here: the\n * buttons are mouths for the host commands (watermark, segmentation, budget,\n * titles, refusal-with-numbers all server-side, all tested), and the runner\n * they share is `src/client/doors.ts` — one body, one row per door. The purity\n * gate in tsdown.client.config.ts keeps this file cross-plugin-free.\n *\n * @module dsh-chapters/src/client\n */\n\nimport { createElement as h, useCallback, useEffect, useRef, useState, type ReactElement } from 'react'\n// The host's own tooltip bubble — a platform module served by the loader table,\n// external like react. Every action in this row labels through it.\nimport { withTooltip, nativeTitle } from './tooltip.ts'\nimport { PromptDock } from './prompt-dock.ts'\nimport { DOOR_ACTIONS, makeDoorRunner, runCommandText, type ClientRemote, type ClientSessions, type DoorAction, type DoorResult } from './doors.ts'\n\ninterface ClientSlots {\n inject(name: string, factory: () => unknown): void\n register(registration: Record<string, unknown>, component: unknown): unknown\n}\n\ninterface Ctx {\n slots: ClientSlots\n get(name: string): unknown\n}\n\n// #77: `uiWorkspace` is not optional in practice — it owns `openSession(target)`, the verb the\n// host's own fork button uses (`ctx.uiWorkspace.openSession(childId)` in dsh-client-ui-chat).\n// `sessions` has no `open` at all, so without this row the door has never had a way to switch.\nexport const inject = ['slots', 'remote', 'remote.commands', 'sessions', 'uiWorkspace'] as const\n\n/** Props composed by the slot framework: owner (`messageId`) + our injected verb. */\ninterface DoorActionProps {\n messageId: string\n run: () => Promise<DoorResult>\n}\n\n/**\n * Style parity with the native IconActions row: rules copied verbatim from the\n * host's MessageIconActions module (`._xzv4MW_action` in dsh-client-ui-chat's\n * compiled client + the feedback package's :disabled) — same metrics, tokens,\n * hover. Update this string if the host restyles its action row. Both doors\n * share these metrics.\n *\n * The final rule hides the native branch action IN THE MESSAGE ROW only\n * (user-approved cosmetic decision, docs/architecture.md): built-in chrome, so\n * the selector is its accessible label scoped to action-row buttons; both\n * locale spellings covered. If the host rewords the label the button simply\n * reappears — fails open, visibly.\n */\nconst CSS = [\n '.dsh-chapters_forkAction{width:calc(28px + var(--dsh-content-font-delta,0px));height:calc(28px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:6px;display:inline-flex}',\n '.dsh-chapters_forkAction svg{width:calc(15px + var(--dsh-content-font-delta,0px));height:calc(15px + var(--dsh-content-font-delta,0px))}',\n '.dsh-chapters_forkAction:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}',\n '.dsh-chapters_forkAction:disabled{cursor:default;opacity:.4}',\n '.dsh-chapters_forkNote{color:var(--dsw-alias-label-tertiary);padding-left:4px;font-size:13px;line-height:20px}',\n 'button[class*=\"_action\"][aria-label=\"Branch into a new conversation\"],button[class*=\"_action\"][aria-label=\"\\u5728\\u65b0\\u5bf9\\u8bdd\\u4e2d\\u5206\\u652f\"]{display:none !important}',\n].join('\\n')\nconst CSS_TAG_ID = 'dsh-chapters/assistant-action.css'\n\nfunction injectStyles(): void {\n try {\n if (typeof document === 'undefined' || document.querySelector(`style[data-plugin-css=${JSON.stringify(CSS_TAG_ID)}]`) !== null) return\n const tag = document.createElement('style')\n tag.dataset.plugin = 'dsh-chapters'\n tag.dataset.pluginCss = CSS_TAG_ID\n tag.textContent = CSS\n document.head.appendChild(tag)\n } catch { /* styling is cosmetic; the action still works without it */ }\n}\n\n/** One component body for every door row; only the label and glyph differ. */\nfunction makeDoorAction(door: DoorAction) {\n return function ChaptersDoorAction({ run }: DoorActionProps) {\n const [busy, setBusy] = useState(false)\n const [note, setNote] = useState<string | null>(null)\n const alive = useRef(true)\n useEffect(() => () => { alive.current = false }, [])\n const onClick = useCallback(() => {\n if (busy) return\n setBusy(true)\n setNote(null)\n void run().then((result) => {\n if (!alive.current) return\n setBusy(false)\n setNote(result.message === '' ? null : result.message)\n setTimeout(() => { if (alive.current) setNote(null) }, 8000)\n })\n }, [busy, run])\n const button = h('button', {\n type: 'button',\n 'aria-label': door.label,\n ...nativeTitle(door.label),\n disabled: busy,\n onClick,\n className: 'dsh-chapters_forkAction',\n },\n h('svg', { viewBox: '0 0 16 16', width: '15', height: '15', fill: 'currentColor', 'aria-hidden': 'true' },\n h('path', { d: door.iconPath })))\n return h('span', { style: { display: 'inline-flex', alignItems: 'center', gap: '4px' } },\n withTooltip(door.label, button as ReactElement<Record<string, unknown>>),\n note !== null\n ? h('span', { className: 'dsh-chapters_forkNote' }, note)\n : null)\n }\n}\n\nexport function apply(ctx: Ctx): void {\n injectStyles()\n const slots = ctx.slots\n const remote = (ctx.get('remote') ?? {}) as ClientRemote\n let sessions: ClientSessions | undefined\n try { sessions = ctx.get('sessions') as ClientSessions | undefined } catch { sessions = undefined }\n // Defensive: a host that cannot provide the navigator must leave the door registering and\n // reporting its own limitation, not failing at boot.\n let uiWorkspace: { openSession?: (id: string) => unknown } | undefined\n try { uiWorkspace = ctx.get('uiWorkspace') as { openSession?: (id: string) => unknown } | undefined } catch { uiWorkspace = undefined }\n // No early return on missing descriptors: the buttons register regardless\n // and the click reports the gap. A missing button is worse than a button\n // that explains itself. Components and runners are built ONCE here — slot\n // factories may re-run, and a fresh component identity per call would\n // remount the row.\n // #54: the switch verifier. `dsh.sessions.current` is published by the host's own\n // dsh-client-ui-workspace (grep-confirmed, not folklore) — the same key the e2e specs\n // read to name a session exactly, which is the point: the door now checks the fact the\n // user would notice, not whether a void call threw.\n const currentSessionId = (): string | null => {\n try {\n const raw = window.localStorage.getItem('dsh.sessions.current')\n if (raw === null) return null\n const parsed = JSON.parse(raw) as { sessionId?: string } | null\n return parsed?.sessionId ?? null\n } catch { return null }\n }\n const rows = DOOR_ACTIONS.map((door) => ({\n door,\n run: makeDoorRunner(remote, sessions, door, async (child) => {\n for (let i = 0; i < 8; i++) {\n if (currentSessionId() === child) return true\n await new Promise((r) => setTimeout(r, 250))\n }\n return currentSessionId() === child\n }, { ...(uiWorkspace !== undefined ? { navigator: uiWorkspace } : {} ) }),\n component: makeDoorAction(door),\n }))\n // Boot-witness instrumentation (#194's 0.2.1 compatibility hunt made this permanent): the door\n // registration is a two-step dance with the host's slot runtime, and a silent drop at either step\n // is indistinguishable from \"the region renders nothing\" — three console lines make the difference\n // one page reload away. Same discipline as the dock's inputActions witness.\n console.info(`[client:chapters] injecting ${String(rows.length)} assistant-actions door(s)`)\n const disposeDoors = slots.inject('conversation.chat.assistant-actions', () => {\n const effects = rows.map(({ door, run, component }) => slots.register({\n name: 'conversation.chat.assistant-actions',\n id: door.id,\n // #194-compat probe: the host's own entries in this region (feedback, goal's dock sibling)\n // all carry `label`/`locale`; 0.2.1-rc.5 renders NOTHING for entries without a label while\n // 0.2.0-rc.2 rendered them fine. Declaring the label is contract-blessed on BOTH (\"Register\n // options are id, order, and label\" — docs/contract.md) and costs nothing.\n label: door.label,\n // #221: the framework hands the action row its OWNER props — `{ messageId }`, the uuid of the\n // assistant message under the buttons (measured in dsh-client-ui-chat TurnTailNodeView). The\n // door resolves that uuid to its durable seq through the plugin's own RPC and passes it as the\n // anchor, so clicking Continue on an earlier message archives through THAT message's turn, not\n // the end of the session. Resolution failure falls back to no-anchor (old behavior) and says so\n // in the note — a door that silently ignores which row you clicked is the bug being fixed.\n inject: (sessionId: string, owner?: { messageId?: string }) => ({\n run: async () => {\n let anchor: number | null = null\n const mid = typeof owner?.messageId === 'string' ? owner.messageId : ''\n if (mid !== '') {\n try {\n const out = await runCommandText(remote, sessionId, `/chapters-anchor ${mid}`)\n const n = Number.parseInt(out.trim(), 10)\n if (Number.isFinite(n) && n > 0) anchor = n\n } catch { /* fall back to unanchored — old behavior */ }\n }\n return run(sessionId, anchor)\n },\n }),\n }, component))\n console.info(`[client:chapters] door factory ran: ${String(effects.length)} register effect(s), types: ${effects.map((e) => typeof e).join(',')}`)\n return effects\n })\n console.info(`[client:chapters] assistant-actions inject returned ${typeof disposeDoors}`)\n slots.inject('conversation.input.dock', () => slots.register({\n name: 'conversation.input.dock',\n id: 'chapters-prompt',\n // Under every other dock entry and directly above the composer card: todo 0, goal 10, queue 20, and the\n // host sorts ascending by priority then order (measured in dsh-client-ui-slots).\n order: 30,\n inject: (sessionId: string) => ({\n // The bar is a mouth for the command plane, and the ONE wire body in `doors.ts` carries it: a plugin has\n // no declarable RPC namespace, so this pull transport is why the bar is push-shaped and pull-fed.\n exec: (line: string) => runCommandText(remote, sessionId, line),\n }),\n }, PromptDock))\n}\n"],"mappings":"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"}
|
package/lib/commands.js
CHANGED
|
@@ -502,6 +502,10 @@ export function registerHostCommands(ctx, domain, config) {
|
|
|
502
502
|
// and the bar must be able to say that without re-parsing the prompt.
|
|
503
503
|
` intent: ${st.intent}${st.intent === 'goal-edit' ? ' — re-cuts the goal, so Run it yourself; autorun will not' : ''}`,
|
|
504
504
|
` goal: ${st.goalRevision === null ? 'none' : `revision ${String(st.goalRevision)}`}`,
|
|
505
|
+
// #229: the heartbeat the server has configured rides EVERY state reply — the client's
|
|
506
|
+
// schedule is the operator's setting, not a compile-time guess. Zero (the default) means
|
|
507
|
+
// no ambient clock exists at all; the sanctioned moments still do.
|
|
508
|
+
` heartbeat: ${String(config.prompt.bar.quietHeartbeatSec ?? 0)}s`,
|
|
505
509
|
...(st.error === '' ? [] : [` error: ${st.error}`]),
|
|
506
510
|
...(st.text === '' ? [] : [' prompt:', ...st.text.split('\n').map((l) => ` ${l}`)]),
|
|
507
511
|
].join('\n') };
|
package/lib/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -151,6 +151,11 @@ export interface Config {
|
|
|
151
151
|
promptMaxChars: number;
|
|
152
152
|
/** #188: share of the prompt model's context window the derived input budget takes. */
|
|
153
153
|
promptContextRatio: number;
|
|
154
|
+
/** #229: seconds between ambient state pulls while the bar is idle — the heartbeat that produced a
|
|
155
|
+
* durable command pair per tick (measured: exact 60.0s gaps on the maintainer's live log). Default
|
|
156
|
+
* ZERO: no ambient clock exists; sanctioned moments (mount discovery, turn-end pulse, visibility)
|
|
157
|
+
* remain. A nonzero value re-arms the heartbeat for hosts that want freshness over silence. */
|
|
158
|
+
promptQuietHeartbeatSec: number;
|
|
154
159
|
/** #113: how many turns an armed autorun may start before it stops and says so. Re-arming does NOT
|
|
155
160
|
* refresh it, so arming cannot become an infinite loop; the budget is per process, like the flag. */
|
|
156
161
|
promptMaxRounds: number;
|
package/lib/index.js
CHANGED
|
@@ -148,6 +148,9 @@ export const Config = Schema.object({
|
|
|
148
148
|
promptContextChars: Schema.number().default(32000),
|
|
149
149
|
promptMaxChars: Schema.number().default(4096),
|
|
150
150
|
promptContextRatio: Schema.number().default(0.5),
|
|
151
|
+
// #229: the ambient heartbeat is OFF by default — "never repeated chapters-prompt executions" is
|
|
152
|
+
// the user's absolute rule, and every pull is two visible history nodes on every host so far.
|
|
153
|
+
promptQuietHeartbeatSec: Schema.number().default(0),
|
|
151
154
|
promptMaxRounds: Schema.number().default(24),
|
|
152
155
|
/** #117: how many lines a `/chapters-repair` report may print. The finding COUNT always leads; */
|
|
153
156
|
repairReportMaxLines: Schema.number().default(60),
|
|
@@ -534,6 +537,13 @@ export async function apply(ctx, config) {
|
|
|
534
537
|
pushChains.set(sessionId, next.then(() => undefined, () => undefined));
|
|
535
538
|
};
|
|
536
539
|
const promptBar = {
|
|
540
|
+
// #229: the ambient heartbeat is config-gated and defaults to ZERO — the maintainer's rule is
|
|
541
|
+
// absolute ("never want to see repeated chapters-prompt executions in a session again"), and
|
|
542
|
+
// the measurement that proved it: exact 60.0s pull gaps on their live log even with 0.2.11
|
|
543
|
+
// installed correctly. The value rides EVERY state reply (quietHeartbeatSec) so the client's
|
|
544
|
+
// schedule is the server's setting, not a compile-time guess; the same number lands in the
|
|
545
|
+
// /chapters-prompt state text for humans.
|
|
546
|
+
quietHeartbeatSec: config.promptQuietHeartbeatSec,
|
|
537
547
|
read: async (sessionId) => {
|
|
538
548
|
const status = (await promptRow.get(sessionId)).promptSuggestion ?? noSuggestion;
|
|
539
549
|
const live = promptLoop.statusOf(sessionId);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/prompt-state.d.ts
CHANGED
|
@@ -104,6 +104,10 @@ export interface PromptBarAccess {
|
|
|
104
104
|
autorun: 'armed' | 'disarmed';
|
|
105
105
|
fired: number;
|
|
106
106
|
}>;
|
|
107
|
+
/** #229: the heartbeat the SERVER has configured, carried on every state reply so the client's
|
|
108
|
+
* schedule matches the operator's setting without a second channel. Absent ⇒ the client treats
|
|
109
|
+
* it as zero (no ambient clock). */
|
|
110
|
+
quietHeartbeatSec?: number;
|
|
107
111
|
/** #218: mirror a just-served state read into the push transport, so the NEXT mount reads the
|
|
108
112
|
* projection instead of pulling again — discovery self-extinguishes. Optional: a pull-only
|
|
109
113
|
* surface (no writer) simply does not implement it, and the caller's feature check makes that a
|
package/lib/version.d.ts
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* reader cannot recover later, so it belongs in the bytes. A row in tests asserts this literal equals
|
|
7
7
|
* `package.json`'s version — the one place a hand-mirrored constant must never be allowed to drift.
|
|
8
8
|
*/
|
|
9
|
-
export declare const PLUGIN_VERSION = "0.2.
|
|
9
|
+
export declare const PLUGIN_VERSION = "0.2.12";
|
package/lib/version.js
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
* reader cannot recover later, so it belongs in the bytes. A row in tests asserts this literal equals
|
|
7
7
|
* `package.json`'s version — the one place a hand-mirrored constant must never be allowed to drift.
|
|
8
8
|
*/
|
|
9
|
-
export const PLUGIN_VERSION = '0.2.
|
|
9
|
+
export const PLUGIN_VERSION = '0.2.12';
|
|
10
10
|
//# sourceMappingURL=version.js.map
|