@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.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +324 -0
  3. package/bin/dsh-tui-pi +5 -0
  4. package/cordis.patch.yml +9 -0
  5. package/lib/append-system.d.ts +66 -0
  6. package/lib/append-system.js +161 -0
  7. package/lib/append-system.js.map +1 -0
  8. package/lib/commands.d.ts +53 -0
  9. package/lib/commands.js +167 -0
  10. package/lib/commands.js.map +1 -0
  11. package/lib/dsh-events.d.ts +106 -0
  12. package/lib/dsh-events.js +30 -0
  13. package/lib/dsh-events.js.map +1 -0
  14. package/lib/editor.d.ts +28 -0
  15. package/lib/editor.js +70 -0
  16. package/lib/editor.js.map +1 -0
  17. package/lib/footer.d.ts +36 -0
  18. package/lib/footer.js +112 -0
  19. package/lib/footer.js.map +1 -0
  20. package/lib/frame.d.ts +35 -0
  21. package/lib/frame.js +75 -0
  22. package/lib/frame.js.map +1 -0
  23. package/lib/git.d.ts +17 -0
  24. package/lib/git.js +51 -0
  25. package/lib/git.js.map +1 -0
  26. package/lib/index.d.ts +15 -0
  27. package/lib/index.js +781 -0
  28. package/lib/index.js.map +1 -0
  29. package/lib/instructions.d.ts +29 -0
  30. package/lib/instructions.js +67 -0
  31. package/lib/instructions.js.map +1 -0
  32. package/lib/live-widgets.d.ts +85 -0
  33. package/lib/live-widgets.js +218 -0
  34. package/lib/live-widgets.js.map +1 -0
  35. package/lib/messages.d.ts +277 -0
  36. package/lib/messages.js +734 -0
  37. package/lib/messages.js.map +1 -0
  38. package/lib/permission.d.ts +27 -0
  39. package/lib/permission.js +48 -0
  40. package/lib/permission.js.map +1 -0
  41. package/lib/provider-catalog.d.ts +114 -0
  42. package/lib/provider-catalog.js +124 -0
  43. package/lib/provider-catalog.js.map +1 -0
  44. package/lib/quotes.d.ts +28 -0
  45. package/lib/quotes.js +144 -0
  46. package/lib/quotes.js.map +1 -0
  47. package/lib/reload.d.ts +23 -0
  48. package/lib/reload.js +171 -0
  49. package/lib/reload.js.map +1 -0
  50. package/lib/selectors.d.ts +48 -0
  51. package/lib/selectors.js +261 -0
  52. package/lib/selectors.js.map +1 -0
  53. package/lib/session.d.ts +157 -0
  54. package/lib/session.js +555 -0
  55. package/lib/session.js.map +1 -0
  56. package/lib/sessions.d.ts +73 -0
  57. package/lib/sessions.js +253 -0
  58. package/lib/sessions.js.map +1 -0
  59. package/lib/settings.d.ts +180 -0
  60. package/lib/settings.js +1328 -0
  61. package/lib/settings.js.map +1 -0
  62. package/lib/text.d.ts +22 -0
  63. package/lib/text.js +45 -0
  64. package/lib/text.js.map +1 -0
  65. package/lib/theme/index.d.ts +79 -0
  66. package/lib/theme/index.js +121 -0
  67. package/lib/theme/index.js.map +1 -0
  68. package/lib/theme/palette.d.ts +56 -0
  69. package/lib/theme/palette.js +154 -0
  70. package/lib/theme/palette.js.map +1 -0
  71. package/lib/theme-settings.d.ts +68 -0
  72. package/lib/theme-settings.js +223 -0
  73. package/lib/theme-settings.js.map +1 -0
  74. package/lib/tui.d.ts +70 -0
  75. package/lib/tui.js +206 -0
  76. package/lib/tui.js.map +1 -0
  77. package/lib/welcome.d.ts +91 -0
  78. package/lib/welcome.js +281 -0
  79. package/lib/welcome.js.map +1 -0
  80. package/package.json +50 -0
  81. package/patches/@earendil-works__pi-tui.patch +72 -0
  82. package/pnpm-workspace.yaml +2 -0
  83. package/templates/APPEND_SYSTEM.md +34 -0
@@ -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":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAiB,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAErD,qEAAqE;AACrE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;AAChC,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAE/F,mFAAmF;AACnF,SAAS,WAAW,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAAa;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,OAAO,GAAG,QAAQ,KAAK,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,CAAA;AAC/D,CAAC;AAED,0DAA0D;AAC1D,SAAS,cAAc,CAAC,QAAgB,EAAE,QAAgB;IACxD,OAAO,GAAG,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AAChE,CAAC;AAED,MAAM,OAAO,WAAW;IACL,GAAG,CAAW;IACvB,KAAK,CAAU;IACN,aAAa,CAAY;IAC1C,oEAAoE;IAC5D,SAAS,GAAmD,EAAE,CAAA;IACtE,2DAA2D;IACnD,UAAU,GAAyB,EAAE,CAAA;IAC7C,0EAA0E;IAClE,QAAQ,CAAkB;IAClC,wEAAwE;IAChE,YAAY,GAAG,CAAC,CAAA;IAExB,YAAY,GAAc,EAAE,KAAe,EAAE,aAAyB;QACpE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAED,mEAAmE;IACnE,WAAW,CAAC,KAAqD;QAC/D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,6DAA6D;IAC7D,YAAY,CAAC,MAA4B;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;QACxB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;YAAE,OAAM;QACrE,IAAI,CAAC,YAAY,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,8EAA8E;IAC9E,QAAQ,CAAC,KAAe;QACtB,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;YAAE,OAAM;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,0EAA0E;IAC1E,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QACnB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;YACzB,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,OAAO;QACb,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QACpE,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAA;QAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC1F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACnC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;YAC3B,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,OAAM;QACR,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChC,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC;IAED,+EAA+E;IACvE,UAAU,CAAC,WAAmB,EAAE,SAAmB;QACzD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QACzD,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAA;QAC1E,oEAAoE;QACpE,yCAAyC;QACzC,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QAChE,OAAO,GAAG,GAAG,KAAK,MAAM,KAAK,IAAI,EAAE,CAAA;IACrC,CAAC;IAED,+DAA+D;IACvD,WAAW;QACjB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAA;QAC9E,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,KAAK;cACzD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,KAAK,CAAA;IACxF,CAAC;IAED;;;;;OAKG;IACK,SAAS;QACf,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;YACrE,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YACjG,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW;gBAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa;oBAC7B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAK,OAAO,EAAE,GAAG,KAAK;oBAC/D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACvC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACK,UAAU,CAAC,KAA2B;QAC5C,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAA;YAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YACtF,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;YACnF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,KAAK,CAAA;YAC/D,MAAM,SAAS,GAAa,EAAE,CAAA;YAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;YAC5G,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC;oBAC1E,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI;oBAC7D,CAAC,CAAC,EAAE,CAAA;gBACN,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC,CAAA;YAC9C,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;YACpD,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACxC,0EAA0E;YAC1E,MAAM,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;YACzC,wEAAwE;YACxE,qEAAqE;YACrE,uEAAuE;YACvE,gDAAgD;YAChD,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YACjE,MAAM,eAAe,GAAG,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAA;YAChF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;YAChF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAC1C,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YACpD,MAAM,UAAU,GAAG,eAAe,KAAK,EAAE;gBACvC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,KAAK;gBAC3D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,KAAK,GAAG,IAAI;sBACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,KAAK,CAAA;YAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,KAAK,CAAA;YAC1E,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC,CAAA;YAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,GAAG,CAAA;YACvF,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;kBAC3D,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}