@aiwayds/dsh-tui-pi 0.1.0
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/LICENSE +21 -0
- package/README.md +324 -0
- package/bin/dsh-tui-pi +5 -0
- package/cordis.patch.yml +9 -0
- package/lib/append-system.d.ts +66 -0
- package/lib/append-system.js +161 -0
- package/lib/append-system.js.map +1 -0
- package/lib/commands.d.ts +53 -0
- package/lib/commands.js +167 -0
- package/lib/commands.js.map +1 -0
- package/lib/dsh-events.d.ts +106 -0
- package/lib/dsh-events.js +30 -0
- package/lib/dsh-events.js.map +1 -0
- package/lib/editor.d.ts +28 -0
- package/lib/editor.js +70 -0
- package/lib/editor.js.map +1 -0
- package/lib/footer.d.ts +36 -0
- package/lib/footer.js +112 -0
- package/lib/footer.js.map +1 -0
- package/lib/frame.d.ts +35 -0
- package/lib/frame.js +75 -0
- package/lib/frame.js.map +1 -0
- package/lib/git.d.ts +17 -0
- package/lib/git.js +51 -0
- package/lib/git.js.map +1 -0
- package/lib/index.d.ts +15 -0
- package/lib/index.js +781 -0
- package/lib/index.js.map +1 -0
- package/lib/instructions.d.ts +29 -0
- package/lib/instructions.js +67 -0
- package/lib/instructions.js.map +1 -0
- package/lib/live-widgets.d.ts +85 -0
- package/lib/live-widgets.js +218 -0
- package/lib/live-widgets.js.map +1 -0
- package/lib/messages.d.ts +277 -0
- package/lib/messages.js +734 -0
- package/lib/messages.js.map +1 -0
- package/lib/permission.d.ts +27 -0
- package/lib/permission.js +48 -0
- package/lib/permission.js.map +1 -0
- package/lib/provider-catalog.d.ts +114 -0
- package/lib/provider-catalog.js +124 -0
- package/lib/provider-catalog.js.map +1 -0
- package/lib/quotes.d.ts +28 -0
- package/lib/quotes.js +144 -0
- package/lib/quotes.js.map +1 -0
- package/lib/reload.d.ts +23 -0
- package/lib/reload.js +171 -0
- package/lib/reload.js.map +1 -0
- package/lib/selectors.d.ts +48 -0
- package/lib/selectors.js +261 -0
- package/lib/selectors.js.map +1 -0
- package/lib/session.d.ts +157 -0
- package/lib/session.js +555 -0
- package/lib/session.js.map +1 -0
- package/lib/sessions.d.ts +73 -0
- package/lib/sessions.js +253 -0
- package/lib/sessions.js.map +1 -0
- package/lib/settings.d.ts +180 -0
- package/lib/settings.js +1328 -0
- package/lib/settings.js.map +1 -0
- package/lib/text.d.ts +22 -0
- package/lib/text.js +45 -0
- package/lib/text.js.map +1 -0
- package/lib/theme/index.d.ts +79 -0
- package/lib/theme/index.js +121 -0
- package/lib/theme/index.js.map +1 -0
- package/lib/theme/palette.d.ts +56 -0
- package/lib/theme/palette.js +154 -0
- package/lib/theme/palette.js.map +1 -0
- package/lib/theme-settings.d.ts +68 -0
- package/lib/theme-settings.js +223 -0
- package/lib/theme-settings.js.map +1 -0
- package/lib/tui.d.ts +70 -0
- package/lib/tui.js +206 -0
- package/lib/tui.js.map +1 -0
- package/lib/welcome.d.ts +91 -0
- package/lib/welcome.js +281 -0
- package/lib/welcome.js.map +1 -0
- package/package.json +50 -0
- package/patches/@earendil-works__pi-tui.patch +72 -0
- package/pnpm-workspace.yaml +2 -0
- package/templates/APPEND_SYSTEM.md +34 -0
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-global workspace instructions (`~/.dsh/AGENTS.md`): dsh reads this
|
|
3
|
+
* file as the fixed user-global baseline for EVERY session
|
|
4
|
+
* (dsh-agent-instructions, mounted by dsh-base) — the native channel to
|
|
5
|
+
* teach the model UI conventions, a real file the user can see and edit,
|
|
6
|
+
* unlike a system-prompt patch. The TUI ensures its todo-lifecycle section
|
|
7
|
+
* exists there, idempotently keyed by an HTML-comment marker: the file is
|
|
8
|
+
* created when absent, the section appended when the marker is missing, and
|
|
9
|
+
* left untouched when already present. The write is atomic (tmp + rename)
|
|
10
|
+
* and best-effort — a failure is contained and reported, never breaks TUI
|
|
11
|
+
* startup.
|
|
12
|
+
*/
|
|
13
|
+
/** Idempotency marker for the TUI-owned section of the instructions file. */
|
|
14
|
+
export declare const TODO_LIFECYCLE_MARKER = "<!-- dsh-tui-pi:todo-lifecycle -->";
|
|
15
|
+
/**
|
|
16
|
+
* The TUI-owned section: the model must clear the todo list when the work is
|
|
17
|
+
* done, because `todo/write` is a whole-list snapshot (last-write-wins) and
|
|
18
|
+
* an all-completed list would stay pinned above the chat input.
|
|
19
|
+
*/
|
|
20
|
+
export declare const TODO_LIFECYCLE_SECTION = "<!-- dsh-tui-pi:todo-lifecycle -->\n## Todo list lifecycle (dsh-tui-pi)\n\nThe UI renders your todo list as a fixed panel above the chat input. Keep\nitems `pending` or `in_progress` while they are not done. When EVERY todo is\ncompleted \u2014 no pending or in-progress items remain \u2014 write an EMPTY todo list\n(`todos: []`) so the panel clears. Never leave a fully-completed list behind.\n";
|
|
21
|
+
/** The user-global instructions file path (`$DSH_HOME` or `~/.dsh`). */
|
|
22
|
+
export declare function userGlobalInstructionsPath(dshHome?: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Ensure the todo-lifecycle section exists in the user-global AGENTS.md.
|
|
25
|
+
* @param path - target file (injectable for tests).
|
|
26
|
+
* @returns an error message on failure, undefined on success (including the
|
|
27
|
+
* no-op case where the marker is already present).
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureTodoLifecycleInstructions(path?: string): Promise<string | undefined>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-global workspace instructions (`~/.dsh/AGENTS.md`): dsh reads this
|
|
3
|
+
* file as the fixed user-global baseline for EVERY session
|
|
4
|
+
* (dsh-agent-instructions, mounted by dsh-base) — the native channel to
|
|
5
|
+
* teach the model UI conventions, a real file the user can see and edit,
|
|
6
|
+
* unlike a system-prompt patch. The TUI ensures its todo-lifecycle section
|
|
7
|
+
* exists there, idempotently keyed by an HTML-comment marker: the file is
|
|
8
|
+
* created when absent, the section appended when the marker is missing, and
|
|
9
|
+
* left untouched when already present. The write is atomic (tmp + rename)
|
|
10
|
+
* and best-effort — a failure is contained and reported, never breaks TUI
|
|
11
|
+
* startup.
|
|
12
|
+
*/
|
|
13
|
+
import { readFile, rename, unlink, writeFile } from 'node:fs/promises';
|
|
14
|
+
import { homedir } from 'node:os';
|
|
15
|
+
import { join } from 'node:path';
|
|
16
|
+
/** Idempotency marker for the TUI-owned section of the instructions file. */
|
|
17
|
+
export const TODO_LIFECYCLE_MARKER = '<!-- dsh-tui-pi:todo-lifecycle -->';
|
|
18
|
+
/**
|
|
19
|
+
* The TUI-owned section: the model must clear the todo list when the work is
|
|
20
|
+
* done, because `todo/write` is a whole-list snapshot (last-write-wins) and
|
|
21
|
+
* an all-completed list would stay pinned above the chat input.
|
|
22
|
+
*/
|
|
23
|
+
export const TODO_LIFECYCLE_SECTION = `${TODO_LIFECYCLE_MARKER}
|
|
24
|
+
## Todo list lifecycle (dsh-tui-pi)
|
|
25
|
+
|
|
26
|
+
The UI renders your todo list as a fixed panel above the chat input. Keep
|
|
27
|
+
items \`pending\` or \`in_progress\` while they are not done. When EVERY todo is
|
|
28
|
+
completed — no pending or in-progress items remain — write an EMPTY todo list
|
|
29
|
+
(\`todos: []\`) so the panel clears. Never leave a fully-completed list behind.
|
|
30
|
+
`;
|
|
31
|
+
/** The user-global instructions file path (`$DSH_HOME` or `~/.dsh`). */
|
|
32
|
+
export function userGlobalInstructionsPath(dshHome = process.env.DSH_HOME ?? join(homedir(), '.dsh')) {
|
|
33
|
+
return join(dshHome, 'AGENTS.md');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Ensure the todo-lifecycle section exists in the user-global AGENTS.md.
|
|
37
|
+
* @param path - target file (injectable for tests).
|
|
38
|
+
* @returns an error message on failure, undefined on success (including the
|
|
39
|
+
* no-op case where the marker is already present).
|
|
40
|
+
*/
|
|
41
|
+
export async function ensureTodoLifecycleInstructions(path = userGlobalInstructionsPath()) {
|
|
42
|
+
let existing;
|
|
43
|
+
try {
|
|
44
|
+
existing = await readFile(path, 'utf8');
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
existing = '';
|
|
48
|
+
}
|
|
49
|
+
if (existing.includes(TODO_LIFECYCLE_MARKER))
|
|
50
|
+
return undefined;
|
|
51
|
+
const next = existing === '' ? TODO_LIFECYCLE_SECTION : `${existing.replace(/\s+$/u, '')}\n\n${TODO_LIFECYCLE_SECTION}`;
|
|
52
|
+
const tmp = `${path}.tmp`;
|
|
53
|
+
try {
|
|
54
|
+
await writeFile(tmp, next, 'utf8');
|
|
55
|
+
await rename(tmp, path);
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
// Best-effort: never leave the tmp file behind, never break startup.
|
|
60
|
+
try {
|
|
61
|
+
await unlink(tmp);
|
|
62
|
+
}
|
|
63
|
+
catch { /* already gone */ }
|
|
64
|
+
return error instanceof Error ? error.message : String(error);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,oCAAoC,CAAA;AAEzE;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,qBAAqB;;;;;;;CAO7D,CAAA;AAED,wEAAwE;AACxE,MAAM,UAAU,0BAA0B,CAAC,UAAkB,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC;IAC1G,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,OAAe,0BAA0B,EAAE;IAC/F,IAAI,QAAgB,CAAA;IACpB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAA;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9D,MAAM,IAAI,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,sBAAsB,EAAE,CAAA;IACvH,MAAM,GAAG,GAAG,GAAG,IAAI,MAAM,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAClC,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACtD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixed widgets pinned ABOVE the chat input: the Todos panel and the Agents
|
|
3
|
+
* panel, each a bordered box (top border + header row + body rows + bottom
|
|
4
|
+
* border, same chrome as the thinking/tool panels). The dock slot they live
|
|
5
|
+
* in has auto height — it renders zero rows while both panels are empty and
|
|
6
|
+
* grows to their content while the model holds todos or has subagents running.
|
|
7
|
+
*
|
|
8
|
+
* Show-when-content, clear-when-done: a panel appears only while it has
|
|
9
|
+
* content and disappears when it empties — todos render until an empty
|
|
10
|
+
* `todo/write` snapshot (or `/new`); the Agents board renders ONLY running
|
|
11
|
+
* children (a settled child drops off, so once every subagent finishes the
|
|
12
|
+
* whole panel vanishes).
|
|
13
|
+
*
|
|
14
|
+
* Live refresh: `tickLive` (the AGENT_TICK_MS timer in index.ts) advances the
|
|
15
|
+
* spinner and re-reads the elapsed clock; it is a no-op while nothing runs.
|
|
16
|
+
* `setTheme` recolors in place on a theme hot-switch (no replay buffer — the
|
|
17
|
+
* widget is live state, not transcript history).
|
|
18
|
+
*/
|
|
19
|
+
import { Container } from '@earendil-works/pi-tui';
|
|
20
|
+
import type { AgentView } from './dsh-events.ts';
|
|
21
|
+
import { type TuiTheme } from './theme/index.ts';
|
|
22
|
+
/** Refresh interval of the live Agents board (spinner + elapsed). */
|
|
23
|
+
export declare const AGENT_TICK_MS = 100;
|
|
24
|
+
/** Braille spinner cycle; the frame index advances once per tick. */
|
|
25
|
+
export declare const AGENT_SPINNER_FRAMES: readonly ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
26
|
+
export declare class LiveWidgets {
|
|
27
|
+
private readonly doc;
|
|
28
|
+
private theme;
|
|
29
|
+
private readonly requestRender;
|
|
30
|
+
/** Latest todo list from `todo/write`, rendered while non-empty. */
|
|
31
|
+
private liveTodos;
|
|
32
|
+
/** Latest subagent views from the bridge's onLive fold. */
|
|
33
|
+
private liveAgents;
|
|
34
|
+
/** The single widget Text (both bordered panels), replaced on rebuild. */
|
|
35
|
+
private liveText;
|
|
36
|
+
/** Spinner frame counter, advanced by tickLive while any agent runs. */
|
|
37
|
+
private spinnerFrame;
|
|
38
|
+
constructor(doc: Container, theme: TuiTheme, requestRender: () => void);
|
|
39
|
+
/** Replace the todos snapshot (`todo/write` events and replay). */
|
|
40
|
+
renderTodos(todos: readonly {
|
|
41
|
+
content: string;
|
|
42
|
+
status: string;
|
|
43
|
+
}[]): void;
|
|
44
|
+
/** Replace the subagent views (the bridge's onLive fold). */
|
|
45
|
+
renderAgents(agents: readonly AgentView[]): void;
|
|
46
|
+
/**
|
|
47
|
+
* Live refresh ~10x/sec while any subagent runs: advance the spinner and
|
|
48
|
+
* repaint (the elapsed column re-reads Date.now()). No-op when nothing runs
|
|
49
|
+
* — the panel then holds its final (empty) state.
|
|
50
|
+
*/
|
|
51
|
+
tickLive(): void;
|
|
52
|
+
/** Recolor the widget under a theme hot-switch (no-op on the same bundle). */
|
|
53
|
+
setTheme(theme: TuiTheme): void;
|
|
54
|
+
/** Drop everything (`/new`); the bridge also fires `renderAgents([])`. */
|
|
55
|
+
clear(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Rebuild the single widget Text: one bordered panel per present section
|
|
58
|
+
* (Todos tree, running-agents board), stacked with no separator. When
|
|
59
|
+
* nothing is left to show the Text is removed and the dock slot collapses.
|
|
60
|
+
* Clear-when-done: the Todos panel hides once every todo is completed (the
|
|
61
|
+
* model writes the whole-list snapshot and rarely clears it — an
|
|
62
|
+
* all-completed list is the signal the work is over); the Agents panel
|
|
63
|
+
* hides once no child is running.
|
|
64
|
+
*/
|
|
65
|
+
private rebuild;
|
|
66
|
+
/** One bordered panel: top border + header row + body rows + bottom border. */
|
|
67
|
+
private boxedPanel;
|
|
68
|
+
/** `● Todos (done/total)`, styled for the panel header row. */
|
|
69
|
+
private todosHeader;
|
|
70
|
+
/**
|
|
71
|
+
* Tree-style todo body lines: `├─`/`└─` connectors with `☐`/`◐`/`☑` status
|
|
72
|
+
* icons. Content is model-controlled: clipped BEFORE styling to the boxed
|
|
73
|
+
* row's inner budget minus the tree chrome (connector 3 cols + icon+space
|
|
74
|
+
* 2 cols) — see clipPanelLine's contract.
|
|
75
|
+
*/
|
|
76
|
+
private todoLines;
|
|
77
|
+
/**
|
|
78
|
+
* Agent board body lines: one main line per RUNNING view (connector +
|
|
79
|
+
* spinner + provider + label + meta) with an activity line beneath. The
|
|
80
|
+
* label is the only unbounded field — its budget is computed against the
|
|
81
|
+
* actual chrome width so no row ever exceeds the boxed inner budget; every
|
|
82
|
+
* line is clipped BEFORE styling (see clipPanelLine's contract).
|
|
83
|
+
*/
|
|
84
|
+
private agentLines;
|
|
85
|
+
}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixed widgets pinned ABOVE the chat input: the Todos panel and the Agents
|
|
3
|
+
* panel, each a bordered box (top border + header row + body rows + bottom
|
|
4
|
+
* border, same chrome as the thinking/tool panels). The dock slot they live
|
|
5
|
+
* in has auto height — it renders zero rows while both panels are empty and
|
|
6
|
+
* grows to their content while the model holds todos or has subagents running.
|
|
7
|
+
*
|
|
8
|
+
* Show-when-content, clear-when-done: a panel appears only while it has
|
|
9
|
+
* content and disappears when it empties — todos render until an empty
|
|
10
|
+
* `todo/write` snapshot (or `/new`); the Agents board renders ONLY running
|
|
11
|
+
* children (a settled child drops off, so once every subagent finishes the
|
|
12
|
+
* whole panel vanishes).
|
|
13
|
+
*
|
|
14
|
+
* Live refresh: `tickLive` (the AGENT_TICK_MS timer in index.ts) advances the
|
|
15
|
+
* spinner and re-reads the elapsed clock; it is a no-op while nothing runs.
|
|
16
|
+
* `setTheme` recolors in place on a theme hot-switch (no replay buffer — the
|
|
17
|
+
* widget is live state, not transcript history).
|
|
18
|
+
*/
|
|
19
|
+
import { Container, Text } from '@earendil-works/pi-tui';
|
|
20
|
+
import { panelBodyText, panelBoxWidth, clipPanelLine } from "./messages.js";
|
|
21
|
+
import { ansiFg, RESET } from "./theme/index.js";
|
|
22
|
+
import { clipToWidth, visibleWidth } from "./text.js";
|
|
23
|
+
/** Refresh interval of the live Agents board (spinner + elapsed). */
|
|
24
|
+
export const AGENT_TICK_MS = 100;
|
|
25
|
+
/** Braille spinner cycle; the frame index advances once per tick. */
|
|
26
|
+
export const AGENT_SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
27
|
+
/** One bordered row of a widget panel: `│ ` + inner + ` │` (no trailing RESET). */
|
|
28
|
+
function borderedRow(boxWidth, borderFg, inner) {
|
|
29
|
+
const pad = Math.max(0, boxWidth - 4 - visibleWidth(inner));
|
|
30
|
+
return `${borderFg}│ ${inner}${' '.repeat(pad)}${borderFg} │`;
|
|
31
|
+
}
|
|
32
|
+
/** Top border line (`┌─…─┐`), `boxWidth` columns wide. */
|
|
33
|
+
function panelTopBorder(boxWidth, borderFg) {
|
|
34
|
+
return `${borderFg}┌${'─'.repeat(Math.max(0, boxWidth - 2))}┐`;
|
|
35
|
+
}
|
|
36
|
+
export class LiveWidgets {
|
|
37
|
+
doc;
|
|
38
|
+
theme;
|
|
39
|
+
requestRender;
|
|
40
|
+
/** Latest todo list from `todo/write`, rendered while non-empty. */
|
|
41
|
+
liveTodos = [];
|
|
42
|
+
/** Latest subagent views from the bridge's onLive fold. */
|
|
43
|
+
liveAgents = [];
|
|
44
|
+
/** The single widget Text (both bordered panels), replaced on rebuild. */
|
|
45
|
+
liveText;
|
|
46
|
+
/** Spinner frame counter, advanced by tickLive while any agent runs. */
|
|
47
|
+
spinnerFrame = 0;
|
|
48
|
+
constructor(doc, theme, requestRender) {
|
|
49
|
+
this.doc = doc;
|
|
50
|
+
this.theme = theme;
|
|
51
|
+
this.requestRender = requestRender;
|
|
52
|
+
}
|
|
53
|
+
/** Replace the todos snapshot (`todo/write` events and replay). */
|
|
54
|
+
renderTodos(todos) {
|
|
55
|
+
this.liveTodos = todos;
|
|
56
|
+
this.rebuild();
|
|
57
|
+
}
|
|
58
|
+
/** Replace the subagent views (the bridge's onLive fold). */
|
|
59
|
+
renderAgents(agents) {
|
|
60
|
+
this.liveAgents = agents;
|
|
61
|
+
this.rebuild();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Live refresh ~10x/sec while any subagent runs: advance the spinner and
|
|
65
|
+
* repaint (the elapsed column re-reads Date.now()). No-op when nothing runs
|
|
66
|
+
* — the panel then holds its final (empty) state.
|
|
67
|
+
*/
|
|
68
|
+
tickLive() {
|
|
69
|
+
if (!this.liveAgents.some(view => view.outcome === undefined))
|
|
70
|
+
return;
|
|
71
|
+
this.spinnerFrame += 1;
|
|
72
|
+
this.rebuild();
|
|
73
|
+
}
|
|
74
|
+
/** Recolor the widget under a theme hot-switch (no-op on the same bundle). */
|
|
75
|
+
setTheme(theme) {
|
|
76
|
+
if (theme === this.theme)
|
|
77
|
+
return;
|
|
78
|
+
this.theme = theme;
|
|
79
|
+
this.rebuild();
|
|
80
|
+
}
|
|
81
|
+
/** Drop everything (`/new`); the bridge also fires `renderAgents([])`. */
|
|
82
|
+
clear() {
|
|
83
|
+
this.liveTodos = [];
|
|
84
|
+
this.liveAgents = [];
|
|
85
|
+
this.spinnerFrame = 0;
|
|
86
|
+
if (this.liveText !== undefined) {
|
|
87
|
+
this.doc.removeChild(this.liveText);
|
|
88
|
+
this.liveText = undefined;
|
|
89
|
+
this.requestRender();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Rebuild the single widget Text: one bordered panel per present section
|
|
94
|
+
* (Todos tree, running-agents board), stacked with no separator. When
|
|
95
|
+
* nothing is left to show the Text is removed and the dock slot collapses.
|
|
96
|
+
* Clear-when-done: the Todos panel hides once every todo is completed (the
|
|
97
|
+
* model writes the whole-list snapshot and rarely clears it — an
|
|
98
|
+
* all-completed list is the signal the work is over); the Agents panel
|
|
99
|
+
* hides once no child is running.
|
|
100
|
+
*/
|
|
101
|
+
rebuild() {
|
|
102
|
+
const panels = [];
|
|
103
|
+
if (this.liveTodos.some(todo => todo.status !== 'completed')) {
|
|
104
|
+
panels.push(this.boxedPanel(this.todosHeader(), this.todoLines()));
|
|
105
|
+
}
|
|
106
|
+
const running = this.liveAgents.filter(view => view.outcome === undefined);
|
|
107
|
+
if (running.length > 0)
|
|
108
|
+
panels.push(this.boxedPanel('● Agents', this.agentLines(running)));
|
|
109
|
+
if (panels.length === 0) {
|
|
110
|
+
if (this.liveText !== undefined) {
|
|
111
|
+
this.doc.removeChild(this.liveText);
|
|
112
|
+
this.liveText = undefined;
|
|
113
|
+
}
|
|
114
|
+
this.requestRender();
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (this.liveText !== undefined)
|
|
118
|
+
this.doc.removeChild(this.liveText);
|
|
119
|
+
this.liveText = new Text(panels.join('\n'), 1, 0);
|
|
120
|
+
this.doc.addChild(this.liveText);
|
|
121
|
+
this.requestRender();
|
|
122
|
+
}
|
|
123
|
+
/** One bordered panel: top border + header row + body rows + bottom border. */
|
|
124
|
+
boxedPanel(headerInner, bodyLines) {
|
|
125
|
+
const boxWidth = panelBoxWidth(process.stdout.columns);
|
|
126
|
+
const borderFg = ansiFg(this.theme.palette.borderDefault);
|
|
127
|
+
const top = panelTopBorder(boxWidth, borderFg);
|
|
128
|
+
const header = borderedRow(boxWidth, borderFg, clipPanelLine(headerInner));
|
|
129
|
+
// 'all' body: every line kept verbatim (each already clipped to one
|
|
130
|
+
// physical row), bottom border appended.
|
|
131
|
+
const body = panelBodyText(bodyLines, boxWidth, borderFg, 'all');
|
|
132
|
+
return `${top}\n${header}\n${body}`;
|
|
133
|
+
}
|
|
134
|
+
/** `● Todos (done/total)`, styled for the panel header row. */
|
|
135
|
+
todosHeader() {
|
|
136
|
+
const done = this.liveTodos.filter(todo => todo.status === 'completed').length;
|
|
137
|
+
return ansiFg(this.theme.palette.accent) + '● Todos ' + RESET
|
|
138
|
+
+ ansiFg(this.theme.palette.fgSubtle) + `(${done}/${this.liveTodos.length})` + RESET;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Tree-style todo body lines: `├─`/`└─` connectors with `☐`/`◐`/`☑` status
|
|
142
|
+
* icons. Content is model-controlled: clipped BEFORE styling to the boxed
|
|
143
|
+
* row's inner budget minus the tree chrome (connector 3 cols + icon+space
|
|
144
|
+
* 2 cols) — see clipPanelLine's contract.
|
|
145
|
+
*/
|
|
146
|
+
todoLines() {
|
|
147
|
+
const innerCap = panelBoxWidth(process.stdout.columns) - 4;
|
|
148
|
+
const lines = [];
|
|
149
|
+
const total = this.liveTodos.length;
|
|
150
|
+
for (let i = 0; i < total; i++) {
|
|
151
|
+
const todo = this.liveTodos[i];
|
|
152
|
+
const content = clipToWidth(todo.content, Math.max(10, innerCap - 5));
|
|
153
|
+
const connector = ansiFg(this.theme.palette.fgSubtle) + (i === total - 1 ? '└─ ' : '├─ ') + RESET;
|
|
154
|
+
const statusStyled = todo.status === 'completed'
|
|
155
|
+
? this.theme.chat.todoDone(content)
|
|
156
|
+
: todo.status === 'in_progress'
|
|
157
|
+
? ansiFg(this.theme.palette.attention) + `◐ ${content}` + RESET
|
|
158
|
+
: this.theme.chat.todoOpen(content);
|
|
159
|
+
lines.push(connector + statusStyled);
|
|
160
|
+
}
|
|
161
|
+
return lines;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Agent board body lines: one main line per RUNNING view (connector +
|
|
165
|
+
* spinner + provider + label + meta) with an activity line beneath. The
|
|
166
|
+
* label is the only unbounded field — its budget is computed against the
|
|
167
|
+
* actual chrome width so no row ever exceeds the boxed inner budget; every
|
|
168
|
+
* line is clipped BEFORE styling (see clipPanelLine's contract).
|
|
169
|
+
*/
|
|
170
|
+
agentLines(views) {
|
|
171
|
+
const innerCap = panelBoxWidth(process.stdout.columns) - 4;
|
|
172
|
+
const lines = [];
|
|
173
|
+
const total = views.length;
|
|
174
|
+
for (let i = 0; i < total; i++) {
|
|
175
|
+
const view = views[i];
|
|
176
|
+
const last = i === total - 1;
|
|
177
|
+
const connector = ansiFg(this.theme.palette.fgSubtle) + (last ? '└─ ' : '├─ ') + RESET;
|
|
178
|
+
const glyph = AGENT_SPINNER_FRAMES[this.spinnerFrame % AGENT_SPINNER_FRAMES.length];
|
|
179
|
+
const icon = ansiFg(this.theme.palette.fgMuted) + glyph + RESET;
|
|
180
|
+
const metaParts = [];
|
|
181
|
+
if (view.retries >= 1) {
|
|
182
|
+
metaParts.push(view.maxRetries === undefined ? `↻${view.retries}` : `↻${view.retries}≤${view.maxRetries}`);
|
|
183
|
+
}
|
|
184
|
+
if (view.tokens > 0) {
|
|
185
|
+
const pct = typeof view.contextWindow === 'number' && view.contextWindow > 0
|
|
186
|
+
? ` (${Math.round(view.tokens / view.contextWindow * 100)}%)`
|
|
187
|
+
: '';
|
|
188
|
+
metaParts.push(`${view.tokens} token${pct}`);
|
|
189
|
+
}
|
|
190
|
+
const elapsed = (Date.now() - view.startedAt) / 1000;
|
|
191
|
+
metaParts.push(`${elapsed.toFixed(1)}s`);
|
|
192
|
+
// Plain (unstyled) meta for the label budget; styled only once assembled.
|
|
193
|
+
const metaPlain = ' · ' + metaParts.join(' · ');
|
|
194
|
+
const providerPlain = view.provider ?? '';
|
|
195
|
+
// 3 = connector, 2 = icon + space, 2 = safety column so the styled line
|
|
196
|
+
// never wraps inside the box. Provider and label share the remaining
|
|
197
|
+
// name budget; both are clipped (provider is a config value and can be
|
|
198
|
+
// arbitrarily long, label is model-controlled).
|
|
199
|
+
const nameBudget = innerCap - 3 - 2 - visibleWidth(metaPlain) - 2;
|
|
200
|
+
const providerClipped = clipToWidth(providerPlain, Math.max(0, nameBudget - 12));
|
|
201
|
+
const labelBudget = Math.max(10, nameBudget - visibleWidth(providerClipped) - 2);
|
|
202
|
+
const label = clipPanelLine(view.label, 0);
|
|
203
|
+
const labelClipped = clipToWidth(label, labelBudget);
|
|
204
|
+
const nameStyled = providerClipped === ''
|
|
205
|
+
? ansiFg(this.theme.palette.fgMuted) + labelClipped + RESET
|
|
206
|
+
: ansiFg(this.theme.palette.fgDefault) + providerClipped + RESET + ' '
|
|
207
|
+
+ ansiFg(this.theme.palette.fgMuted) + labelClipped + RESET;
|
|
208
|
+
const metaStyled = ansiFg(this.theme.palette.fgSubtle) + metaPlain + RESET;
|
|
209
|
+
lines.push(connector + icon + ' ' + nameStyled + metaStyled);
|
|
210
|
+
const indent = last ? ' ' : '│ ';
|
|
211
|
+
const activity = view.lastTool === undefined ? 'working…' : `running ${view.lastTool}…`;
|
|
212
|
+
lines.push(indent + '⎿ ' + ansiFg(this.theme.palette.fgSubtle)
|
|
213
|
+
+ clipToWidth(activity, Math.max(1, innerCap - 8)) + RESET);
|
|
214
|
+
}
|
|
215
|
+
return lines;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=live-widgets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-widgets.js","sourceRoot":"","sources":["../src/live-widgets.ts"],"names":[],"mappings":"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"}
|