laohuang 0.3.2 → 0.4.1

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 (86) hide show
  1. package/README.md +142 -16
  2. package/dist/agent.d.ts +166 -0
  3. package/dist/agent.js +858 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/bash-runner.d.ts +79 -0
  6. package/dist/bash-runner.js +464 -0
  7. package/dist/bash-runner.js.map +1 -0
  8. package/dist/cancellation.d.ts +36 -0
  9. package/dist/cancellation.js +123 -0
  10. package/dist/cancellation.js.map +1 -0
  11. package/dist/cli.d.ts +117 -0
  12. package/dist/cli.js +1307 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/client.d.ts +21 -0
  15. package/dist/client.js +17 -0
  16. package/dist/client.js.map +1 -0
  17. package/dist/commands.d.ts +123 -0
  18. package/dist/commands.js +660 -0
  19. package/dist/commands.js.map +1 -0
  20. package/dist/config.d.ts +51 -0
  21. package/dist/config.js +183 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/credentials.d.ts +12 -0
  24. package/dist/credentials.js +102 -0
  25. package/dist/credentials.js.map +1 -0
  26. package/dist/events.d.ts +288 -0
  27. package/dist/events.js +838 -0
  28. package/dist/events.js.map +1 -0
  29. package/dist/model-adapter.d.ts +138 -0
  30. package/dist/model-adapter.js +244 -0
  31. package/dist/model-adapter.js.map +1 -0
  32. package/dist/model-selection.d.ts +67 -0
  33. package/dist/model-selection.js +148 -0
  34. package/dist/model-selection.js.map +1 -0
  35. package/dist/model-stream.d.ts +128 -0
  36. package/dist/model-stream.js +582 -0
  37. package/dist/model-stream.js.map +1 -0
  38. package/dist/project-instructions.d.ts +99 -0
  39. package/dist/project-instructions.js +348 -0
  40. package/dist/project-instructions.js.map +1 -0
  41. package/dist/providers.d.ts +9 -0
  42. package/dist/providers.js +26 -0
  43. package/dist/providers.js.map +1 -0
  44. package/dist/routing.d.ts +170 -0
  45. package/dist/routing.js +669 -0
  46. package/dist/routing.js.map +1 -0
  47. package/dist/semantic-classifier.d.ts +66 -0
  48. package/dist/semantic-classifier.js +86 -0
  49. package/dist/semantic-classifier.js.map +1 -0
  50. package/dist/session.d.ts +162 -0
  51. package/dist/session.js +871 -0
  52. package/dist/session.js.map +1 -0
  53. package/dist/system-prompt.d.ts +16 -0
  54. package/dist/system-prompt.js +42 -0
  55. package/dist/system-prompt.js.map +1 -0
  56. package/dist/terminal/editor.d.ts +161 -0
  57. package/dist/terminal/editor.js +1060 -0
  58. package/dist/terminal/editor.js.map +1 -0
  59. package/dist/terminal/input.d.ts +61 -0
  60. package/dist/terminal/input.js +276 -0
  61. package/dist/terminal/input.js.map +1 -0
  62. package/dist/terminal/markdown.d.ts +20 -0
  63. package/dist/terminal/markdown.js +621 -0
  64. package/dist/terminal/markdown.js.map +1 -0
  65. package/dist/terminal/screen.d.ts +66 -0
  66. package/dist/terminal/screen.js +624 -0
  67. package/dist/terminal/screen.js.map +1 -0
  68. package/dist/terminal/theme.d.ts +23 -0
  69. package/dist/terminal/theme.js +101 -0
  70. package/dist/terminal/theme.js.map +1 -0
  71. package/dist/terminal/ui.d.ts +285 -0
  72. package/dist/terminal/ui.js +1815 -0
  73. package/dist/terminal/ui.js.map +1 -0
  74. package/dist/tools.d.ts +95 -0
  75. package/dist/tools.js +444 -0
  76. package/dist/tools.js.map +1 -0
  77. package/dist/ui-state.d.ts +51 -0
  78. package/dist/ui-state.js +194 -0
  79. package/dist/ui-state.js.map +1 -0
  80. package/dist/web.d.ts +56 -0
  81. package/dist/web.js +247 -0
  82. package/dist/web.js.map +1 -0
  83. package/package.json +24 -21
  84. package/bin/laohuang.js +0 -10
  85. package/lib/launcher.js +0 -133
  86. package/vendor/laohuangcode-0.3.2-py3-none-any.whl +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/terminal/screen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Pi-inspired color tokens shared by the interactive terminal renderers.
3
+ *
4
+ * Hand-written ANSI: themes only carry hex tokens; conversion to SGR
5
+ * sequences happens here instead of going through a styling library.
6
+ */
7
+ export declare class TerminalTheme {
8
+ /** Semantic colors for terminal UI, independent from a rendering library. */
9
+ readonly name: string;
10
+ readonly colors: Readonly<Record<string, string>>;
11
+ constructor(name: string, colors: Record<string, string>);
12
+ color(token: string): string;
13
+ /** Truecolor SGR sequence for a token, foreground or background. */
14
+ sgr(token: string, options?: {
15
+ background?: boolean;
16
+ }): string;
17
+ }
18
+ export declare const PI_DARK: TerminalTheme;
19
+ export declare const PI_LIGHT: TerminalTheme;
20
+ /** Resolve an explicit Pi-style theme, defaulting from terminal settings. */
21
+ export declare function resolveTerminalTheme(name?: string | null, env?: {
22
+ COLORFGBG?: string | undefined;
23
+ }): TerminalTheme;
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Pi-inspired color tokens shared by the interactive terminal renderers.
3
+ *
4
+ * Hand-written ANSI: themes only carry hex tokens; conversion to SGR
5
+ * sequences happens here instead of going through a styling library.
6
+ */
7
+ export class TerminalTheme {
8
+ /** Semantic colors for terminal UI, independent from a rendering library. */
9
+ name;
10
+ colors;
11
+ constructor(name, colors) {
12
+ this.name = name;
13
+ this.colors = Object.freeze({ ...colors });
14
+ }
15
+ color(token) {
16
+ const value = this.colors[token];
17
+ if (value === undefined) {
18
+ throw new Error(`unknown theme token: ${token}`);
19
+ }
20
+ return value;
21
+ }
22
+ /** Truecolor SGR sequence for a token, foreground or background. */
23
+ sgr(token, options) {
24
+ const hex = this.color(token);
25
+ const match = /^#([0-9a-fA-F]{6})$/.exec(hex);
26
+ if (!match) {
27
+ throw new Error(`theme token ${token} is not a #rrggbb color: ${hex}`);
28
+ }
29
+ const value = match[1];
30
+ const r = parseInt(value.slice(0, 2), 16);
31
+ const g = parseInt(value.slice(2, 4), 16);
32
+ const b = parseInt(value.slice(4, 6), 16);
33
+ const channel = options?.background ? 48 : 38;
34
+ return `\x1b[${channel};2;${r};${g};${b}m`;
35
+ }
36
+ }
37
+ export const PI_DARK = new TerminalTheme("dark", {
38
+ accent: "#8abeb7",
39
+ border: "#5f87ff",
40
+ border_muted: "#505050",
41
+ text: "#d4d4d4",
42
+ muted: "#808080",
43
+ dim: "#666666",
44
+ success: "#b5bd68",
45
+ error: "#cc6666",
46
+ warning: "#ffff00",
47
+ user_bg: "#343541",
48
+ tool_pending_bg: "#282832",
49
+ tool_success_bg: "#283228",
50
+ tool_error_bg: "#3c2828",
51
+ card: "#1e1e24",
52
+ selected_bg: "#3a3a4a",
53
+ code: "#b5bd68",
54
+ heading: "#f0c674",
55
+ link: "#81a2be",
56
+ thinking: "#808080",
57
+ bash: "#b5bd68",
58
+ });
59
+ export const PI_LIGHT = new TerminalTheme("light", {
60
+ accent: "#5a8080",
61
+ border: "#547da7",
62
+ border_muted: "#b0b0b0",
63
+ text: "#1f2328",
64
+ muted: "#6c6c6c",
65
+ dim: "#767676",
66
+ success: "#588458",
67
+ error: "#aa5555",
68
+ warning: "#9a7326",
69
+ user_bg: "#e8e8e8",
70
+ tool_pending_bg: "#e8e8f0",
71
+ tool_success_bg: "#e8f0e8",
72
+ tool_error_bg: "#f0e8e8",
73
+ card: "#ffffff",
74
+ selected_bg: "#d0d0e0",
75
+ code: "#588458",
76
+ heading: "#9a7326",
77
+ link: "#547da7",
78
+ thinking: "#6c6c6c",
79
+ bash: "#588458",
80
+ });
81
+ /** Resolve an explicit Pi-style theme, defaulting from terminal settings. */
82
+ export function resolveTerminalTheme(name, env = process.env) {
83
+ const requested = (name ?? "auto").trim().toLowerCase() || "auto";
84
+ if (requested === "light") {
85
+ return PI_LIGHT;
86
+ }
87
+ if (requested === "dark") {
88
+ return PI_DARK;
89
+ }
90
+ if (requested !== "auto") {
91
+ throw new Error("terminal theme must be 'auto', 'dark', or 'light'");
92
+ }
93
+ const colorfgbg = env.COLORFGBG ?? "";
94
+ const background = colorfgbg ? colorfgbg.split(";").pop() : "";
95
+ // Mirror Python int(): optional sign and surrounding whitespace, digits only.
96
+ if (/^\s*[+-]?\d+\s*$/.test(background)) {
97
+ return parseInt(background, 10) >= 7 ? PI_LIGHT : PI_DARK;
98
+ }
99
+ return PI_DARK;
100
+ }
101
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/terminal/theme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,OAAO,aAAa;IACxB,6EAA6E;IAEpE,IAAI,CAAS;IACb,MAAM,CAAmC;IAElD,YAAY,IAAY,EAAE,MAA8B;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAa;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oEAAoE;IACpE,GAAG,CAAC,KAAa,EAAE,OAAkC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,4BAA4B,GAAG,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE;IAC/C,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,SAAS;IAC1B,aAAa,EAAE,SAAS;IACxB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,OAAO,EAAE;IACjD,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,YAAY,EAAE,SAAS;IACvB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,SAAS;IAC1B,aAAa,EAAE,SAAS;IACxB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,SAAS;CAChB,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB,CAClC,IAAoB,EACpB,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,SAAS,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC;IAClE,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,8EAA8E;IAC9E,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,285 @@
1
+ /**
2
+ * Polished interactive terminal UI for laoHuangCode.
3
+ *
4
+ * Port of terminal_ui.py: the sole terminal writer. Everything visible is an
5
+ * append-only transcript of blocks; mutable blocks stream inline and are
6
+ * frozen (never rewritten) once their turn completes. Cancelled/truncated
7
+ * partial replies stay on screen and are marked.
8
+ *
9
+ * Scope notes for the TypeScript rewrite:
10
+ * - The legacy prompt_toolkit/rich console path has no TS equivalent; the
11
+ * interactive UI is always the single-renderer raw loop, and non-TTY
12
+ * sessions use PlainEventSink.
13
+ * - The editor and raw-input decoder behind the loop live behind the
14
+ * EditorLike/InputDecoderLike interfaces so terminal/input.ts (another
15
+ * workstream) can be injected once landed. BasicEditorState and
16
+ * BasicInputDecoder are the built-in defaults implementing that contract.
17
+ */
18
+ import { UIEventReducer, type UIEventLike, type UIState, type UIUpdate } from "../ui-state.ts";
19
+ import { type TerminalTheme } from "./theme.ts";
20
+ import { type ScreenFrame, type TerminalDriver } from "./screen.ts";
21
+ export type InputActionKind = "insert" | "submit" | "newline" | "complete" | "history_up" | "history_down" | "cursor_left" | "cursor_right" | "backspace" | "dismiss" | "cancel" | "eof";
22
+ export interface InputAction {
23
+ kind: InputActionKind;
24
+ text?: string;
25
+ }
26
+ export interface EditorEffect {
27
+ submit?: string | null;
28
+ cancelRequested?: boolean;
29
+ exitRequested?: boolean;
30
+ notice?: string | null;
31
+ }
32
+ /** A completion independent of any particular input widget. */
33
+ export interface CompletionItemLike {
34
+ value: string;
35
+ description: string;
36
+ start: number;
37
+ }
38
+ export interface EditorRenderResult {
39
+ lines: string[];
40
+ cursorRow: number;
41
+ cursorCol: number;
42
+ }
43
+ /** The editor surface the interactive loop renders and drives. */
44
+ export interface EditorLike {
45
+ text: string;
46
+ cursor: number;
47
+ historyIndex: number | null;
48
+ readonly completions: readonly CompletionItemLike[];
49
+ selectedCompletion: number | null;
50
+ apply(action: InputAction, options: {
51
+ runtimeActive: boolean;
52
+ }): EditorEffect;
53
+ setCompletions(values: readonly CompletionItemLike[]): void;
54
+ renderLines(width: number, options: {
55
+ prompt?: string;
56
+ mask?: boolean;
57
+ }): EditorRenderResult;
58
+ }
59
+ /** Hooks the input decoder uses to negotiate terminal keyboard modes. */
60
+ export interface InputDecoderHooks {
61
+ enableModifyOtherKeys(): void;
62
+ disableModifyOtherKeys(): void;
63
+ }
64
+ /** Bytes-to-actions input pipeline used by the interactive loop. */
65
+ export interface InputDecoderLike {
66
+ kittyProtocolActive: boolean;
67
+ feed(data: Uint8Array): InputAction[];
68
+ flush(): InputAction[];
69
+ clear(): void;
70
+ }
71
+ export type EditorFactory = () => EditorLike;
72
+ export type InputDecoderFactory = (hooks: InputDecoderHooks) => InputDecoderLike;
73
+ /** Slash-command completion source (commands.ts once landed). */
74
+ export interface CommandRegistryLike {
75
+ complete(text: string, options: {
76
+ state: string;
77
+ }): CompletionItemLike[];
78
+ }
79
+ /**
80
+ * Text, history, and command-completion state for the active editor.
81
+ *
82
+ * Default implementation of EditorLike; the richer editor from
83
+ * terminal/input.ts can replace it through the same interface.
84
+ */
85
+ export declare class BasicEditorState implements EditorLike {
86
+ #private;
87
+ text: string;
88
+ /** Cursor position in code points. */
89
+ cursor: number;
90
+ history: string[];
91
+ historyIndex: number | null;
92
+ completions: CompletionItemLike[];
93
+ selectedCompletion: number | null;
94
+ get completionVisible(): boolean;
95
+ setCompletions(values: readonly CompletionItemLike[]): void;
96
+ apply(action: InputAction, options: {
97
+ runtimeActive: boolean;
98
+ }): EditorEffect;
99
+ renderLines(width: number, options?: {
100
+ prompt?: string;
101
+ mask?: boolean;
102
+ }): EditorRenderResult;
103
+ }
104
+ export interface BasicInputDecoderOptions {
105
+ isAppleTerminal?: () => boolean;
106
+ shiftPressed?: () => boolean;
107
+ }
108
+ /**
109
+ * Incremental raw-input decoder with bracketed-paste and keyboard-mode
110
+ * negotiation handling. Default InputDecoderLike; the input workstream's
111
+ * pipeline can replace it through the same interface.
112
+ */
113
+ export declare class BasicInputDecoder implements InputDecoderLike {
114
+ #private;
115
+ kittyProtocolActive: boolean;
116
+ constructor(hooks: InputDecoderHooks, options?: BasicInputDecoderOptions);
117
+ feed(data: Uint8Array): InputAction[];
118
+ flush(): InputAction[];
119
+ clear(): void;
120
+ }
121
+ /** An append-only transcript unit, mutable only while it streams. */
122
+ export interface TranscriptBlock {
123
+ kind: string;
124
+ key: string;
125
+ text: string;
126
+ mutable: boolean;
127
+ name: string;
128
+ subject: string;
129
+ status: string;
130
+ exitCode: number | null;
131
+ durationMs: number | null;
132
+ streamError: string;
133
+ style: string;
134
+ }
135
+ export declare function createTranscriptBlock(kind: string, key: string, fields?: Partial<Omit<TranscriptBlock, "kind" | "key">>): TranscriptBlock;
136
+ /** Minimal readable-source contract for the production run loop. */
137
+ export interface LoopInputSource {
138
+ on(event: "data", listener: (data: Uint8Array) => void): unknown;
139
+ on(event: "end", listener: () => void): unknown;
140
+ off?(event: "data" | "end", listener: (...args: never[]) => void): unknown;
141
+ }
142
+ /** A terminal driver that may support raw-mode entry (POSIX TTY). */
143
+ export type RawTerminalDriver = TerminalDriver & {
144
+ enterRawMode?: () => void;
145
+ };
146
+ /** Serialize stdin, UI events, and all terminal writes in one loop. */
147
+ export declare class InteractiveTerminalLoop {
148
+ #private;
149
+ static readonly ESCAPE_TIMEOUT_MS = 50;
150
+ static readonly WORK_QUEUE_LIMIT = 4096;
151
+ writeError: unknown;
152
+ constructor(ui: TerminalUI, driver: RawTerminalDriver, editor: EditorLike, decoderFactory: InputDecoderFactory);
153
+ get editor(): EditorLike;
154
+ get closed(): boolean;
155
+ get running(): boolean;
156
+ start(onSubmit: (text: string) => void): void;
157
+ publishEvent(event: unknown): void;
158
+ feedInputBytes(data: Uint8Array): void;
159
+ /** Synchronously consume queued work; this is also the test hook. */
160
+ drain(): void;
161
+ ask(message: string, options?: {
162
+ secret?: boolean;
163
+ }): Promise<string>;
164
+ requestExit(): void;
165
+ close(): void;
166
+ /** Production entry: raw mode, terminal modes, stdin-driven draining. */
167
+ run(input?: LoopInputSource): Promise<void>;
168
+ startTerminalModes(): void;
169
+ }
170
+ /** A terminal driver that may also expose raw-mode entry. */
171
+ export interface TerminalUIOptions {
172
+ /** Plain-text fallback writer used when no live loop owns the screen. */
173
+ output?: (text: string) => void;
174
+ projectRoot?: string;
175
+ provider?: string;
176
+ model?: string;
177
+ dashboardUrl?: string;
178
+ commandRegistry?: CommandRegistryLike | null;
179
+ cancelCallback?: (() => void) | null;
180
+ theme?: string | null;
181
+ driver?: RawTerminalDriver | null;
182
+ editorFactory?: EditorFactory;
183
+ decoderFactory?: InputDecoderFactory;
184
+ /** Non-loop prompt fallback (setup questions outside a live session). */
185
+ askFallback?: (message: string, secret: boolean) => Promise<string>;
186
+ }
187
+ /**
188
+ * Render interactive agent sessions with the append-only transcript model.
189
+ *
190
+ * With a terminal driver, all painting goes through the raw interactive
191
+ * loop; without one the UI is a headless transcript plus a plain fallback
192
+ * writer (non-interactive sessions should prefer PlainEventSink).
193
+ */
194
+ export declare class TerminalUI {
195
+ #private;
196
+ readonly theme: TerminalTheme;
197
+ readonly state: UIState;
198
+ readonly reducer: UIEventReducer;
199
+ commandRegistry: CommandRegistryLike | null;
200
+ cancelCallback: (() => void) | null;
201
+ runtimeRunningCallback: (() => boolean) | null;
202
+ readonly projectRoot: string | null;
203
+ readonly provider: string | null;
204
+ readonly model: string | null;
205
+ readonly dashboardUrl: string | null;
206
+ constructor(options?: TerminalUIOptions);
207
+ get interactiveLoop(): InteractiveTerminalLoop | null;
208
+ get renderError(): unknown;
209
+ prompt(message?: string): Promise<string>;
210
+ promptSecret(message: string): Promise<string>;
211
+ /** Run the single-owner interactive terminal for the whole session. */
212
+ run(onSubmit: (text: string) => void): Promise<void>;
213
+ requestExit(): void;
214
+ close(): void;
215
+ startLoop(onSubmit: (text: string) => void): void;
216
+ feedInputBytes(data: Uint8Array): void;
217
+ drainLoop(): void;
218
+ flushEventRenderer(): void;
219
+ setCommandRegistry(registry: CommandRegistryLike): void;
220
+ setCancelCallback(callback: () => void): void;
221
+ setRuntimeRunningCallback(callback: () => boolean): void;
222
+ isRunning(): boolean;
223
+ cancelFromKeybinding(): void;
224
+ newBlockId(): string;
225
+ appendTranscript(block: TranscriptBlock): void;
226
+ acceptUserInput(text: string): void;
227
+ blockFor(kind: string, key: string): TranscriptBlock;
228
+ /** Build every persisted transcript line; never crop history here. */
229
+ buildHistoryLines(width: number): string[];
230
+ buildFrame(options: {
231
+ width: number;
232
+ editor: EditorLike;
233
+ prompt?: string;
234
+ secret?: boolean;
235
+ }): ScreenFrame;
236
+ /** Queue a projected event; the loop is the sole event writer. */
237
+ publishEvent(event: unknown): void;
238
+ /** Reduce a projected event and apply its append-only block change. */
239
+ applyProjectedEvent(event: UIEventLike): void;
240
+ /** Mutate transcript state; the raw loop paints it later. */
241
+ applyTranscriptUpdate(update: UIUpdate): void;
242
+ write(message: string): void;
243
+ showError(message: string): void;
244
+ showInterrupted(options?: {
245
+ operation?: boolean;
246
+ }): void;
247
+ showGoodbye(): void;
248
+ showAssistant(response: string): void;
249
+ showWelcome(): void;
250
+ }
251
+ /**
252
+ * Append-only renderer used when stdin/stdout are not interactive TTYs.
253
+ *
254
+ * The Python original renders from a background thread fed by a bounded
255
+ * queue; the TS event loop is single-threaded, so events render
256
+ * synchronously in publication order and flush()/stop() are lifecycle
257
+ * no-ops kept for API parity. Render errors are captured, never thrown
258
+ * back into the event bus.
259
+ */
260
+ export declare class PlainEventSink {
261
+ #private;
262
+ readonly outputFn: (text: string) => void;
263
+ renderError: unknown;
264
+ constructor(outputFn?: (text: string) => void);
265
+ publishEvent(event: unknown): void;
266
+ write(message: string): void;
267
+ flush(): void;
268
+ stop(_options?: {
269
+ drain?: boolean;
270
+ }): void;
271
+ }
272
+ /** Production terminal driver over process stdin/stdout. */
273
+ export declare class StdTerminalDriver implements RawTerminalDriver {
274
+ #private;
275
+ constructor();
276
+ get inputStream(): NodeJS.ReadStream;
277
+ enterRawMode(): void;
278
+ write(data: string): void;
279
+ flush(): void;
280
+ getSize(): {
281
+ columns: number;
282
+ rows: number;
283
+ };
284
+ restore(): void;
285
+ }