@kodax-ai/kodax 0.7.49 → 0.7.51

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 (55) hide show
  1. package/CHANGELOG.md +1800 -1741
  2. package/README.md +1215 -1210
  3. package/README_CN.md +636 -632
  4. package/dist/chunks/agent-EFA7BSE7.js +2 -0
  5. package/dist/chunks/argument-completer-MAJVHSE7.js +2 -0
  6. package/dist/chunks/{chunk-TYZAH3YP.js → chunk-CCZMQE3Q.js} +1 -1
  7. package/dist/chunks/chunk-E3HENKTX.js +420 -0
  8. package/dist/chunks/chunk-FAIGYAEX.js +301 -0
  9. package/dist/chunks/chunk-HMATTIU6.js +574 -0
  10. package/dist/chunks/{chunk-YW4RQV7U.js → chunk-JJTUBNQX.js} +1 -1
  11. package/dist/chunks/chunk-ODVA5VTE.js +492 -0
  12. package/dist/chunks/chunk-PEWH3AAL.js +31 -0
  13. package/dist/chunks/chunk-WQTVG2T5.js +648 -0
  14. package/dist/chunks/{compaction-config-BQBYOWX2.js → compaction-config-UBPCNGC2.js} +1 -1
  15. package/dist/chunks/{construction-bootstrap-5TFGMSWQ.js → construction-bootstrap-WY5MDXRX.js} +1 -1
  16. package/dist/chunks/{dist-BL7IBQHD.js → dist-B73FQEAA.js} +1 -1
  17. package/dist/chunks/dist-BTWS2ENP.js +2 -0
  18. package/dist/chunks/utils-HVOJRR5C.js +2 -0
  19. package/dist/index.d.ts +11 -11
  20. package/dist/index.js +4 -4
  21. package/dist/kodax_cli.js +1091 -984
  22. package/dist/provider-capabilities.json +2 -0
  23. package/dist/sdk-agent.d.ts +25 -11
  24. package/dist/sdk-agent.js +1 -1
  25. package/dist/sdk-coding.d.ts +160 -34
  26. package/dist/sdk-coding.js +1 -1
  27. package/dist/sdk-llm.d.ts +3 -5
  28. package/dist/sdk-llm.js +1 -1
  29. package/dist/sdk-mcp.js +1 -1
  30. package/dist/sdk-repl.d.ts +38 -727
  31. package/dist/sdk-repl.js +2 -2
  32. package/dist/sdk-session.d.ts +8 -200
  33. package/dist/sdk-session.js +1 -1
  34. package/dist/sdk-skills.js +1 -1
  35. package/dist/types-chunks/{types.d-rPRl2LSB.d.ts → base.d-GZ6jvICS.d.ts} +270 -3
  36. package/dist/types-chunks/{bash-prefix-extractor.d-CI_xcPhn.d.ts → bash-prefix-extractor.d-DTOiDMlG.d.ts} +84 -537
  37. package/dist/types-chunks/{capsule.d-DaPuhyyK.d.ts → capsule.d-CXGdLGAn.d.ts} +6 -3
  38. package/dist/types-chunks/guardrail.d-D47yu9AO.d.ts +518 -0
  39. package/dist/types-chunks/{types.d-BR9oNWup.d.ts → process.d-B8kEBnQD.d.ts} +487 -275
  40. package/dist/types-chunks/{resolver.d-B_wm409c.d.ts → resolver.d-D75XFRH2.d.ts} +23 -6
  41. package/dist/types-chunks/sdk-session-BKQJN9oH.d.ts +977 -0
  42. package/dist/types-chunks/{storage.d-J2GqOgaX.d.ts → storage.d-BN1xIn8R.d.ts} +78 -3
  43. package/dist/types-chunks/types.d-DQ_hdN70.d.ts +273 -0
  44. package/dist/types-chunks/{utils.d-BJ_-y8gC.d.ts → utils.d-ZfRDo-kX.d.ts} +8 -80
  45. package/package.json +2 -2
  46. package/dist/chunks/argument-completer-GDG5OHN7.js +0 -2
  47. package/dist/chunks/chunk-67SWUEEN.js +0 -1035
  48. package/dist/chunks/chunk-C5PKZX5Z.js +0 -291
  49. package/dist/chunks/chunk-ISGHUKRY.js +0 -428
  50. package/dist/chunks/chunk-JTHMWRXM.js +0 -566
  51. package/dist/chunks/chunk-YACQ4OST.js +0 -31
  52. package/dist/chunks/dist-D7HOETCE.js +0 -2
  53. package/dist/chunks/utils-XWDT3W5X.js +0 -2
  54. package/dist/types-chunks/base.d-C4jYVjJh.d.ts +0 -270
  55. package/dist/types-chunks/types.d-BnjX2Gn4.d.ts +0 -297
@@ -1,714 +1,20 @@
1
1
  import React$1, { ReactNode } from 'react';
2
- import { k as PermissionMode } from './types-chunks/utils.d-BJ_-y8gC.js';
3
- export { B as BUILTIN_COMMANDS, C as Command, a as CommandCallbacks, b as ConfirmResult, c as CurrentConfig, I as InkREPLOptions, d as InteractiveContext, e as InteractiveMode, K as KODAX_CONFIG_FILE, f as KODAX_DIR, g as KODAX_SESSIONS_DIR, h as KODAX_VERSION, P as PERMISSION_MODES, i as PREVIEW_MAX_LENGTH, j as PermissionContext, R as RepLOptions, l as computeConfirmTools, m as createInteractiveContext, n as executeCommand, o as getGitRoot, p as getProviderList, q as getProviderModel, r as getVersion, s as hydrateProcessEnvFromShell, t as isPermissionMode, u as isProviderConfigured, v as loadConfig, w as normalizePermissionMode, x as parseCommand, y as permissionModeDisplayName, z as prepareRuntimeConfig, A as processSpecialSyntax, D as rateLimitedCall, E as registerConfiguredCustomProviders, F as runInkInteractiveMode, G as runInteractiveMode, H as saveConfig, J as touchContext } from './types-chunks/utils.d-BJ_-y8gC.js';
4
- import { E as KodaXReasoningMode, n as KodaXMessage, h as KodaXCustomProviderConfig } from './types-chunks/types.d-rPRl2LSB.js';
5
- import { K as KodaXAgentMode, N as KodaXEvents, aL as ProviderRecoveryEvent, a0 as KodaXMcpServerConfig, a1 as KodaXMcpServersConfig, i as BashPrefixExtractor, a as AutoModeAskUser, A as AgentsFile, aZ as SignalCollector, g as AutoModeToolGuardrail, aY as RulesLoadResult, ae as KodaXResult } from './types-chunks/bash-prefix-extractor.d-CI_xcPhn.js';
6
- import { a4 as QueuedMessage } from './types-chunks/types.d-BR9oNWup.js';
7
- export { F as FileSessionStorage, M as MemorySessionStorage, S as SessionData, a as SessionStorage, c as createMemorySessionStorage } from './types-chunks/storage.d-J2GqOgaX.js';
8
- export { DeleteSessionResult, ListSessionsOptions, RunningSessionInfo, SessionManager, SessionSummary, WatchSessionsCallback, archiveSession, createSessionManager, deleteSession, forkSession, listRunningSessions, listSessions, loadSession, rewindSession, setActiveEntry, unarchiveSession, watchSessions } from './sdk-session.js';
9
- import './types-chunks/types.d-BnjX2Gn4.js';
2
+ import { A as AppProps, M as Message, $ as UIState, c as CreatableHistoryItem, f as HistoryItem, Y as ToolCall, _ as UIActions, K as KeyInfo, t as KeypressHandler, N as StreamingState, w as PromptEditingMode, I as InputPromptProps, J as StatusBarProps, V as Theme, Z as ToolCallStatus, O as Suggestion, a0 as UseTextBufferReturn, H as HistoryEntry, P as PastedContent, l as HistoryItemInfo } from './types-chunks/sdk-session-BKQJN9oH.js';
3
+ export { a as AppState, C as Completer, b as Completion, d as CursorPosition, D as DEFAULT_UI_STATE, e as DeleteSessionResult, F as FullTranscriptSessionData, g as HistoryItemAssistant, h as HistoryItemBase, i as HistoryItemError, j as HistoryItemEvent, k as HistoryItemHint, m as HistoryItemSystem, n as HistoryItemThinking, o as HistoryItemToolGroup, p as HistoryItemType, q as HistoryItemUser, r as HistorySeedSourceMessage, s as KeypressEvent, u as KeypressHandlerPriority, L as LegacyMessageListProps, v as ListSessionsOptions, x as PromptSubmitPayload, R as RestoreHistoryItemsFromSessionInput, y as RestoredHistorySeed, z as RunningSessionInfo, S as SessionManager, B as SessionSummary, E as SessionTranscriptEntry, G as SessionTranscriptEntryType, T as TOOL_STATUS_ICONS, Q as TextBuffer, U as TextBufferOptions, W as ThemeColors, X as ThemeSymbols, a1 as VisualCursor, a2 as VisualLayout, a3 as WatchSessionsCallback, a4 as archiveSession, a5 as createSessionManager, a6 as deleteSession, a7 as extractHistorySeedsFromMessage, a8 as extractHistorySeedsFromMessages, a9 as extractTextContent, aa as extractTitle, ab as forkSession, ac as formatMessagePreview, ad as listRunningSessions, ae as listSessions, af as loadFullTranscript, ag as loadSession, ah as restoreHistoryItemsFromSession, ai as rewindSession, aj as seedToHistoryItem, ak as setActiveEntry, al as toolCallSeedToHistoryToolCall, am as trimPersistedUiHistorySnapshot, an as unarchiveSession, ao as watchSessions } from './types-chunks/sdk-session-BKQJN9oH.js';
4
+ export { B as BUILTIN_COMMANDS, C as Command, a as CommandCallbacks, b as CurrentConfig, I as InkREPLOptions, c as InteractiveContext, d as InteractiveMode, K as KODAX_CONFIG_FILE, e as KODAX_DIR, f as KODAX_SESSIONS_DIR, g as KODAX_VERSION, P as PREVIEW_MAX_LENGTH, R as RepLOptions, h as createInteractiveContext, i as executeCommand, j as getGitRoot, k as getProviderList, l as getProviderModel, m as getVersion, n as hydrateProcessEnvFromShell, o as isProviderConfigured, p as loadConfig, q as parseCommand, r as prepareRuntimeConfig, s as processSpecialSyntax, t as rateLimitedCall, u as registerConfiguredCustomProviders, v as runInkInteractiveMode, w as runInteractiveMode, x as saveConfig, y as touchContext } from './types-chunks/utils.d-ZfRDo-kX.js';
5
+ import { t as KodaXEvents, k as KodaXAgentMode, au as ProviderRecoveryEvent, a as BashPrefixExtractor, Z as KodaXResult } from './types-chunks/bash-prefix-extractor.d-DTOiDMlG.js';
6
+ import { e as QueuedMessage } from './types-chunks/types.d-DQ_hdN70.js';
7
+ import { b as PermissionMode } from './types-chunks/storage.d-BN1xIn8R.js';
8
+ export { C as ConfirmResult, F as FileSessionStorage, M as MemorySessionStorage, P as PERMISSION_MODES, a as PermissionContext, S as SessionData, c as SessionStorage, d as computeConfirmTools, e as createMemorySessionStorage, i as isPermissionMode, n as normalizePermissionMode, p as permissionModeDisplayName } from './types-chunks/storage.d-BN1xIn8R.js';
9
+ import { i as KodaXCustomProviderConfig } from './types-chunks/base.d-GZ6jvICS.js';
10
+ import { k as KodaXMcpServerConfig, l as KodaXMcpServersConfig, a as AutoModeAskUser, A as AgentsFile, S as SignalCollector, g as AutoModeToolGuardrail, o as RulesLoadResult } from './types-chunks/guardrail.d-D47yu9AO.js';
11
+ export { ac as KodaXSessionUiHistoryItem, ad as KodaXSessionUiHistoryItemType, ae as KodaXSessionUiTextHistoryItem, af as KodaXSessionUiTextHistoryItemType, ag as KodaXSessionUiToolCall, ah as KodaXSessionUiToolCallStatus, ai as KodaXSessionUiToolGroupHistoryItem } from './types-chunks/process.d-B8kEBnQD.js';
10
12
  import 'readline';
11
13
  import 'child_process';
12
- import './types-chunks/config.d-CJy1WENT.js';
13
14
  import 'vscode-languageserver-protocol';
14
15
  import './types-chunks/capability.d-3C62G8Eq.js';
15
- import './types-chunks/base.d-C4jYVjJh.js';
16
16
  import './types-chunks/cost-tracker.d-wRtyEW9d.js';
17
-
18
- /**
19
- * TextBuffer - Text buffer management class - 文本缓冲区管理类
20
- *
21
- * Reference implementation: Gemini CLI text-buffer.ts - 参考实现: Gemini CLI text-buffer.ts
22
- * Supports multi-line text editing, cursor navigation, and Unicode-safe operations - 支持多行文本编辑,光标导航,Unicode 安全操作
23
- */
24
- interface CursorPosition {
25
- row: number;
26
- col: number;
27
- }
28
- interface VisualCursor$1 {
29
- row: number;
30
- col: number;
31
- }
32
- interface TextBufferOptions {
33
- maxHistory?: number;
34
- }
35
- declare class TextBuffer {
36
- private _text;
37
- private _lines;
38
- private _cursor;
39
- private _rememberedCol;
40
- private _history;
41
- private _historyIndex;
42
- private _maxHistory;
43
- constructor(options?: TextBufferOptions);
44
- get text(): string;
45
- get lines(): string[];
46
- get cursor(): CursorPosition;
47
- get lineCount(): number;
48
- get currentLine(): string;
49
- get isEmpty(): boolean;
50
- /**
51
- * Get visual width of current line - 获取当前行的视觉宽度
52
- */
53
- get currentLineVisualWidth(): number;
54
- /**
55
- * Get visual position of cursor (considering wide characters) - 获取光标的视觉位置(考虑宽字符)
56
- */
57
- get visualCursor(): VisualCursor$1;
58
- /**
59
- * Get visual width of character at cursor position on current line - 获取当前行在光标位置的字符视觉宽度
60
- */
61
- getCharWidthAtCursor(): number;
62
- /**
63
- * Convert visual column position to logical column position - 将视觉列位置转换为逻辑列位置
64
- */
65
- visualColToLogicalCol(visualCol: number): number;
66
- /**
67
- * Move to visual column position - 移动到视觉列位置
68
- */
69
- moveToVisualCol(visualCol: number): void;
70
- /**
71
- * Set entire text content - 设置整个文本内容
72
- */
73
- setText(text: string): void;
74
- /**
75
- * Replace a text range and leave the cursor after the replacement.
76
- */
77
- replaceRange(start: number, end: number, replacement: string): void;
78
- /**
79
- * Insert text at cursor position - 在光标位置插入文本
80
- */
81
- insert(text: string, options?: {
82
- paste?: boolean;
83
- }): void;
84
- /**
85
- * Insert text on current line - 在当前行插入文本
86
- */
87
- private _insertText;
88
- /**
89
- * Insert newline character - 插入换行符
90
- */
91
- newline(): void;
92
- private _insertNewline;
93
- /**
94
- * Delete character before cursor - 删除光标前的字符
95
- */
96
- backspace(): void;
97
- /**
98
- * Delete character after cursor - 删除光标后的字符
99
- */
100
- delete(): void;
101
- /**
102
- * Move cursor - 移动光标
103
- */
104
- move(direction: "up" | "down" | "left" | "right" | "home" | "end"): void;
105
- private _moveUp;
106
- private _moveDown;
107
- private _moveLeft;
108
- private _moveRight;
109
- private _moveHome;
110
- private _moveEnd;
111
- /**
112
- * Clamp column position within current line range using rememberedCol - 限制列位置在当前行范围内,使用 rememberedCol
113
- */
114
- private _clampColumn;
115
- /**
116
- * Clamp cursor to valid range - 限制光标在有效范围内
117
- */
118
- private _clampCursor;
119
- /**
120
- * Delete content from cursor to end of line (Ctrl+K) - 删除光标到行尾的内容 (Ctrl+K)
121
- */
122
- killLineRight(): void;
123
- /**
124
- * Delete content from line start to cursor (Ctrl+U) - 删除行首到光标的内容 (Ctrl+U)
125
- */
126
- killLineLeft(): void;
127
- /**
128
- * Delete word before cursor (Ctrl+W) - 删除光标前的一个词 (Ctrl+W)
129
- */
130
- deleteWordLeft(): void;
131
- private _saveHistory;
132
- /**
133
- * Undo - 撤销
134
- */
135
- undo(): boolean;
136
- /**
137
- * Redo - 重做
138
- */
139
- redo(): boolean;
140
- private _updateText;
141
- private _setTextInternal;
142
- /**
143
- * Move cursor to an absolute string offset - 将光标移动到文本中的绝对偏移位置
144
- */
145
- moveToAbsoluteOffset(offset: number): void;
146
- /**
147
- * Clear buffer - 清空缓冲区
148
- */
149
- clear(): void;
150
- /**
151
- * Get absolute position of cursor in text - 获取光标在文本中的绝对位置
152
- */
153
- getAbsoluteOffset(): number;
154
- /**
155
- * Check if current line ends with backslash - 检查当前行是否以反斜杠结尾
156
- */
157
- isLineContinuation(): boolean;
158
- /**
159
- * Move cursor to end of entire text - 将光标移动到整个文本的末尾
160
- */
161
- moveToEnd(): void;
162
- }
163
-
164
- /**
165
- * PasteStore — per-session paste content registry + placeholder ref helpers.
166
- *
167
- * Design: see docs/KNOWN_ISSUES.md Issue 121 (三层防御:粘贴拦截 / 输入兜底 / 渲染硬上限).
168
- * Reference implementation: Claude Code src/history.ts + src/utils/pasteStore.ts.
169
- *
170
- * Responsibilities (pure / deterministic where possible):
171
- * - Format / parse `[Pasted text #N +K lines]` and related refs
172
- * - Allocate monotonic per-session paste IDs
173
- * - Store / expand paste content in memory
174
- * - Find placeholder boundaries adjacent to cursor (for atomic edit)
175
- *
176
- * Stateful concerns are confined to the `PasteStore` class. Everything else is
177
- * pure so rendering and controller code can call them safely.
178
- */
179
- type PastedContentType = "text" | "image";
180
- interface PastedContent {
181
- id: number;
182
- type: PastedContentType;
183
- content: string;
184
- /** Optional sha256 hash — set when backed by on-disk paste-cache */
185
- contentHash?: string;
186
- /** Media type for image pastes; unused for text */
187
- mediaType?: string;
188
- /** Optional filename hint for image pastes */
189
- filename?: string;
190
- }
191
- /**
192
- * Session-scoped stateful registry. One instance per REPL session (not per
193
- * paste). Lives as long as the composer. IDs are monotonic and never recycled
194
- * so undo/redo never collides with a fresh paste that reused an id.
195
- */
196
- declare class PasteStore {
197
- private readonly contents;
198
- private nextId;
199
- /**
200
- * Register text content, returns the allocated id + the placeholder string
201
- * to insert into the buffer in place of the raw content.
202
- */
203
- registerText(content: string): {
204
- id: number;
205
- placeholder: string;
206
- numLines: number;
207
- };
208
- /**
209
- * Register pre-computed Layer 2 truncation output. Caller is responsible
210
- * for constructing the truncated text; this just stores the middle chunk.
211
- */
212
- registerTruncatedText(content: string): {
213
- id: number;
214
- numLines: number;
215
- };
216
- /**
217
- * Adopt a pre-allocated id + content (e.g. when restoring from disk-backed
218
- * input history).
219
- */
220
- adopt(entry: PastedContent): void;
221
- /** Allocate the NEXT id without registering anything yet. */
222
- peekNextId(): number;
223
- get(id: number): PastedContent | undefined;
224
- /** Expand all placeholders in `input` using this store's contents. */
225
- expand(input: string): string;
226
- /**
227
- * Snapshot the current contents map. Returned map is a COPY — mutation does
228
- * not leak back. Used by undo buffer snapshots.
229
- */
230
- snapshot(): Map<number, PastedContent>;
231
- /** Replace contents from a snapshot. Used by undo. `nextId` preserved. */
232
- restore(snapshot: ReadonlyMap<number, PastedContent>): void;
233
- /**
234
- * Session-level reset. Called on `/clear`, start-new-session, etc.
235
- * Does NOT clear on per-submit since Up-arrow navigation re-submits may
236
- * reuse stored refs.
237
- */
238
- reset(): void;
239
- size(): number;
240
- /** Export contents for persistence (input history serialization). */
241
- export(): PastedContent[];
242
- }
243
-
244
- /**
245
- * Keyboard info interface - 键盘信息接口
246
- * Reference: Gemini CLI Key interface - 参考: Gemini CLI Key interface
247
- */
248
- interface KeyInfo {
249
- name: string;
250
- sequence: string;
251
- ctrl: boolean;
252
- meta: boolean;
253
- shift: boolean;
254
- insertable: boolean;
255
- isPasted?: boolean;
256
- mouse?: {
257
- action: "press" | "release" | "drag" | "move" | "wheel";
258
- button: "left" | "middle" | "right" | "wheelup" | "wheeldown" | "unknown";
259
- row: number;
260
- column: number;
261
- };
262
- }
263
-
264
- type PromptEditingMode = "idle" | "typing" | "pasting";
265
- interface UseTextBufferReturn {
266
- buffer: TextBuffer;
267
- text: string;
268
- cursor: CursorPosition;
269
- lines: string[];
270
- isPasting: boolean;
271
- editingMode: PromptEditingMode;
272
- /**
273
- * Issue 121: session-scoped paste registry. Registered paste ids survive
274
- * submit so Up-arrow input-history recall can still expand them.
275
- */
276
- pasteStore: PasteStore;
277
- resetTransientState: () => void;
278
- setText: (text: string) => void;
279
- replaceRange: (start: number, end: number, replacement: string) => void;
280
- insert: (text: string, options?: {
281
- paste?: boolean;
282
- }) => void;
283
- newline: () => void;
284
- backspace: () => void;
285
- delete: () => void;
286
- move: (direction: "up" | "down" | "left" | "right" | "home" | "end") => void;
287
- moveToEnd: () => void;
288
- moveToOffset: (offset: number) => void;
289
- killLineRight: () => void;
290
- killLineLeft: () => void;
291
- deleteWordLeft: () => void;
292
- clear: () => void;
293
- undo: () => boolean;
294
- redo: () => boolean;
295
- }
296
- /**
297
- * Visual Layout Interface - 视觉布局接口
298
- * Reference: Gemini CLI text-buffer.ts - VisualLayout
299
- */
300
- interface VisualLayout$1 {
301
- /** All visual lines for rendering - 所有视觉行(用于渲染) */
302
- visualLines: string[];
303
- /** For each logical line: [[visualLineIndex, startColInLogical], ...] - 每个逻辑行 -> 视觉行索引 + 起始列的映射 */
304
- logicalToVisualMap: Array<Array<[number, number]>>;
305
- /** For each visual line: [logicalLineIndex, startColInLogical] - 每个视觉行 -> 逻辑行 + 起始列的映射 */
306
- visualToLogicalMap: Array<[number, number]>;
307
- }
308
- type VisualCursor = [number, number];
309
- /**
310
- * An input-history entry. `text` is the display form (may contain
311
- * `[Pasted text #N]` placeholders). `pastedContents`, when present, carries
312
- * the stored contents needed to expand those placeholders after recall.
313
- *
314
- * Issue 121: pastedContents preserves paste fidelity across Up-arrow and
315
- * undo. For entries loaded from disk-backed history, contents may carry only
316
- * `contentHash` until `retrievePastedText` resolves them.
317
- */
318
- interface HistoryEntry {
319
- text: string;
320
- timestamp: number;
321
- pastedContents?: PastedContent[];
322
- }
323
- interface Completion$1 {
324
- text: string;
325
- display: string;
326
- description?: string;
327
- type: "file" | "command" | "argument";
328
- }
329
- interface Completer {
330
- canComplete(input: string, cursorPos: number): boolean;
331
- getCompletions(input: string, cursorPos: number): Promise<Completion$1[]>;
332
- }
333
- /**
334
- * Autocomplete suggestion item - 自动补全建议项
335
- * For SuggestionsDisplay component - 用于 SuggestionsDisplay 组件
336
- */
337
- interface Suggestion {
338
- id: string;
339
- text: string;
340
- displayText?: string;
341
- description?: string;
342
- type?: "command" | "file" | "history" | "argument" | "snippet" | "skill";
343
- icon?: string;
344
- }
345
- interface ThemeColors {
346
- primary: string;
347
- secondary: string;
348
- accent: string;
349
- text: string;
350
- dim: string;
351
- thinking: string;
352
- success: string;
353
- warning: string;
354
- error: string;
355
- info: string;
356
- hint: string;
357
- background: string;
358
- inputBackground: string;
359
- }
360
- interface ThemeSymbols {
361
- prompt: string;
362
- success: string;
363
- error: string;
364
- warning: string;
365
- spinner: string[];
366
- }
367
- interface Theme {
368
- name: string;
369
- colors: ThemeColors;
370
- symbols: ThemeSymbols;
371
- }
372
- interface PromptSubmitPayload {
373
- /**
374
- * Display form — what the user saw in the input bar. May contain
375
- * `[Pasted text #N +K lines]` placeholders or `[...Truncated text #N ...]`
376
- * refs (Issue 121).
377
- */
378
- displayText: string;
379
- /**
380
- * Fully expanded form — all paste placeholders substituted for their raw
381
- * stored contents. This is what parseCommand / the agent pipeline consume.
382
- */
383
- fullText: string;
384
- /** Paste contents referenced by displayText — for persistence / recall. */
385
- pastedContents: PastedContent[];
386
- }
387
- interface InputPromptProps {
388
- onSubmit: (payload: PromptSubmitPayload) => void;
389
- placeholder?: string;
390
- prompt?: string;
391
- focus?: boolean;
392
- initialValue?: string;
393
- /** Callback when input text changes - 输入文本变化时的回调 */
394
- onInputChange?: (text: string) => void;
395
- /**
396
- * Called when the ↑ arrow history recall brings back an entry with stored
397
- * paste contents. Consumer can hydrate a disk-backed paste cache here.
398
- */
399
- onHistoryRecall?: (entry: {
400
- text: string;
401
- pastedContents: PastedContent[];
402
- }) => void;
403
- /**
404
- * FEATURE_149 Phase 2.1 (v0.7.38) — pop the queued follow-up inputs back
405
- * into the editor when the user presses ↑ on an empty buffer. Return the
406
- * joined text to load (queue gets atomically cleared by the consumer), or
407
- * `undefined` to leave history-recall behavior intact when the queue is
408
- * empty.
409
- */
410
- onPopPendingInputs?: () => string | undefined;
411
- }
412
- interface StatusBarProps {
413
- sessionId: string;
414
- permissionMode: PermissionMode;
415
- agentMode: KodaXAgentMode;
416
- provider: string;
417
- model: string;
418
- tokenUsage?: {
419
- input: number;
420
- output: number;
421
- total: number;
422
- };
423
- currentTool?: string;
424
- activeToolCount?: number;
425
- thinking?: boolean;
426
- reasoningMode?: KodaXReasoningMode;
427
- reasoningCapability?: string;
428
- /** Is context currently compacting - 是否正在压缩上下文 */
429
- isCompacting?: boolean;
430
- /** Thinking character count - Issue 068: 显示 thinking 进度 */
431
- thinkingCharCount?: number;
432
- /** Whether a thinking stream is currently active */
433
- isThinkingActive?: boolean;
434
- /** Tool input character count - Issue 068: 显示 tool 输入进度 */
435
- toolInputCharCount?: number;
436
- /** Tool input content (truncated) - Issue 068 Phase 4: 显示参数摘要 */
437
- toolInputContent?: string;
438
- /** Current iteration number - Issue 068: 显示迭代进度 */
439
- currentIteration?: number;
440
- /** Maximum iterations - Issue 068: 显示迭代进度 */
441
- maxIter?: number;
442
- /** Context usage info - Issue 070: 显示上下文使用情况 */
443
- contextUsage?: {
444
- /** Current token count in context */
445
- currentTokens: number;
446
- /** Context window size (effective contextWindow) */
447
- contextWindow: number;
448
- /** Compaction trigger percentage (0-100) */
449
- triggerPercent: number;
450
- };
451
- /** Whether current busy/thinking status should be visible in the bar */
452
- showBusyStatus?: boolean;
453
- managedPhase?: "starting" | "routing" | "preflight" | "round" | "worker" | "upgrade" | "verifying" | "completed";
454
- managedHarnessProfile?: string;
455
- managedWorkerTitle?: string;
456
- managedRound?: number;
457
- managedMaxRounds?: number;
458
- managedGlobalWorkBudget?: number;
459
- managedBudgetUsage?: number;
460
- managedBudgetApprovalRequired?: boolean;
461
- /**
462
- * v0.7.38 FEATURE_156 — true when the runner-driven outer loop is
463
- * parked in `waitForWakeEvent` (idle-yield from FEATURE_155). The
464
- * status bar renders this as "{role} - waiting for N children"
465
- * instead of falling back to the last role-emit label, so the user
466
- * can tell the spinner is actively waiting on something concrete.
467
- * Consumers MUST branch on `=== true` (undefined transitions out).
468
- */
469
- managedIdleWaiting?: boolean;
470
- /** v0.7.38 FEATURE_156 — child count surfaced in the idle-wait label. */
471
- managedIdleWaitingPendingCount?: number;
472
- /**
473
- * FEATURE_092 phase 2b.8: classifier engine indicator. Only renders when
474
- * permissionMode is in the auto family. `'llm'` shows green `auto[LLM]`
475
- * (healthy), `'rules'` shows yellow `auto[RULES]` (downgraded — every
476
- * non-Tier-1 tool call escalates to user confirm).
477
- */
478
- autoModeEngine?: 'llm' | 'rules';
479
- }
480
- /**
481
- * @deprecated Use MessageListProps from components/MessageList.js instead
482
- */
483
- interface LegacyMessageListProps {
484
- messages: Message[];
485
- isLoading?: boolean;
486
- }
487
- interface Message {
488
- id: string;
489
- role: "user" | "assistant" | "system";
490
- content: string;
491
- timestamp: number;
492
- }
493
- interface AppState {
494
- messages: Message[];
495
- isLoading: boolean;
496
- error?: string;
497
- sessionId: string;
498
- }
499
- interface AppProps {
500
- model: string;
501
- provider: string;
502
- onSubmit: (input: string) => Promise<void>;
503
- permissionMode?: PermissionMode;
504
- agentMode?: KodaXAgentMode;
505
- }
506
- /**
507
- * Streaming response state enum - 流式响应状态枚举
508
- * Reference: Gemini CLI StreamingContext.tsx - 参考: Gemini CLI StreamingContext.tsx
509
- */
510
- declare enum StreamingState {
511
- Idle = "idle",
512
- Responding = "responding",
513
- WaitingForConfirmation = "waiting_for_confirmation"
514
- }
515
- /**
516
- * Tool call status enum - 工具调用状态枚举
517
- * Reference: Gemini CLI useToolScheduler - 参考: Gemini CLI useToolScheduler
518
- */
519
- declare enum ToolCallStatus {
520
- Scheduled = "scheduled",
521
- Validating = "validating",
522
- AwaitingApproval = "awaiting_approval",
523
- Executing = "executing",
524
- Success = "success",
525
- Error = "error",
526
- Cancelled = "cancelled"
527
- }
528
- /**
529
- * Tool call status icons - 工具调用状态图标
530
- */
531
- declare const TOOL_STATUS_ICONS: Record<ToolCallStatus, string>;
532
- /**
533
- * Single tool call - 单个工具调用
534
- */
535
- interface ToolCall {
536
- id: string;
537
- name: string;
538
- status: ToolCallStatus;
539
- input?: Record<string, unknown>;
540
- preview?: string;
541
- output?: unknown;
542
- error?: string;
543
- progress?: number;
544
- /** Real-time progress lines displayed inside the tool block during execution. */
545
- progressLines?: string[];
546
- startTime: number;
547
- endTime?: number;
548
- }
549
- /**
550
- * History item type - 历史项类型
551
- * Reference: Gemini CLI HistoryItem - 参考: Gemini CLI HistoryItem
552
- */
553
- type HistoryItemType = "user" | "assistant" | "system" | "tool_group" | "thinking" | "error" | "event" | "info" | "hint";
554
- /**
555
- * History item base class - 历史项基类
556
- */
557
- interface HistoryItemBase {
558
- id: string;
559
- type: HistoryItemType;
560
- timestamp: number;
561
- }
562
- /**
563
- * User message - 用户消息
564
- */
565
- interface HistoryItemUser extends HistoryItemBase {
566
- type: "user";
567
- text: string;
568
- }
569
- /**
570
- * Assistant message - 助手消息
571
- */
572
- interface HistoryItemAssistant extends HistoryItemBase {
573
- type: "assistant";
574
- text: string;
575
- compactText?: string;
576
- isStreaming?: boolean;
577
- }
578
- /**
579
- * System message - 系统消息
580
- */
581
- interface HistoryItemSystem extends HistoryItemBase {
582
- type: "system";
583
- text: string;
584
- }
585
- /**
586
- * Tool group - 工具组
587
- */
588
- interface HistoryItemToolGroup extends HistoryItemBase {
589
- type: "tool_group";
590
- tools: ToolCall[];
591
- }
592
- /**
593
- * Thinking content - 思考内容
594
- */
595
- interface HistoryItemThinking extends HistoryItemBase {
596
- type: "thinking";
597
- text: string;
598
- compactText?: string;
599
- }
600
- /**
601
- * Error message - 错误消息
602
- */
603
- interface HistoryItemError extends HistoryItemBase {
604
- type: "error";
605
- text: string;
606
- }
607
- interface HistoryItemEvent extends HistoryItemBase {
608
- type: "event";
609
- text: string;
610
- icon?: string;
611
- compactText?: string;
612
- }
613
- /**
614
- * Info message - 信息消息
615
- */
616
- interface HistoryItemInfo extends HistoryItemBase {
617
- type: "info";
618
- text: string;
619
- icon?: string;
620
- compactText?: string;
621
- /**
622
- * When true, drop the default bottom margin so consecutive info items
623
- * (e.g. a burst of repo-intelligence trace stages emitted within one
624
- * turn) visually stack as a block instead of each getting a blank
625
- * spacer line. Non-tight items following a tight run restore normal
626
- * spacing on their own via their own `marginBottom`.
627
- */
628
- tightSpacing?: boolean;
629
- }
630
- /**
631
- * Hint message - 提示消息
632
- */
633
- interface HistoryItemHint extends HistoryItemBase {
634
- type: "hint";
635
- text: string;
636
- }
637
- /**
638
- * Union type of all history items - 所有历史项的联合类型
639
- */
640
- type HistoryItem = HistoryItemUser | HistoryItemAssistant | HistoryItemSystem | HistoryItemToolGroup | HistoryItemThinking | HistoryItemError | HistoryItemEvent | HistoryItemInfo | HistoryItemHint;
641
- /**
642
- * Creatable history item types (with text property) - 可创建的历史项类型(带 text 属性)
643
- * Used for addHistoryItem function parameter type - 用于 addHistoryItem 等函数的参数类型
644
- */
645
- type CreatableHistoryItem = Omit<HistoryItemUser, "id" | "timestamp"> | Omit<HistoryItemAssistant, "id" | "timestamp"> | Omit<HistoryItemSystem, "id" | "timestamp"> | Omit<HistoryItemThinking, "id" | "timestamp"> | Omit<HistoryItemError, "id" | "timestamp"> | Omit<HistoryItemEvent, "id" | "timestamp"> | Omit<HistoryItemInfo, "id" | "timestamp"> | Omit<HistoryItemHint, "id" | "timestamp"> | Omit<HistoryItemToolGroup, "id" | "timestamp">;
646
- /**
647
- * UI global state interface - UI 全局状态接口
648
- * Reference: Gemini CLI UIStateContext - 参考: Gemini CLI UIStateContext
649
- */
650
- interface UIState {
651
- streamingState: StreamingState;
652
- currentResponse: string;
653
- history: HistoryItem[];
654
- pendingToolCalls: ToolCall[];
655
- sessionId: string;
656
- provider: string;
657
- model: string;
658
- tokenUsage?: {
659
- input: number;
660
- output: number;
661
- total: number;
662
- };
663
- error?: string;
664
- isLoading: boolean;
665
- }
666
- /**
667
- * UI actions interface - UI 操作接口
668
- */
669
- interface UIActions {
670
- setStreamingState: (state: StreamingState) => void;
671
- appendToResponse: (text: string) => void;
672
- clearResponse: () => void;
673
- addHistoryItem: (item: CreatableHistoryItem) => void;
674
- addHistoryItems: (items: CreatableHistoryItem[]) => void;
675
- updateHistoryItem: (id: string, updates: Partial<HistoryItem>) => void;
676
- clearHistory: () => void;
677
- addToolCall: (tool: Omit<ToolCall, "id" | "startTime">) => string;
678
- updateToolCall: (id: string, updates: Partial<ToolCall>) => void;
679
- clearToolCalls: () => void;
680
- setSessionId: (id: string) => void;
681
- setProvider: (provider: string) => void;
682
- setModel: (model: string) => void;
683
- setTokenUsage: (usage: UIState["tokenUsage"]) => void;
684
- setError: (error: string | undefined) => void;
685
- setLoading: (loading: boolean) => void;
686
- }
687
- /**
688
- * Keyboard event handler priority - 键盘事件处理器优先级
689
- * Reference: Gemini CLI KeypressContext - 参考: Gemini CLI KeypressContext
690
- */
691
- declare enum KeypressHandlerPriority {
692
- Low = -100,
693
- Normal = 0,
694
- High = 100,
695
- Critical = 200
696
- }
697
- /**
698
- * Keyboard event handler - 键盘事件处理器
699
- */
700
- type KeypressHandler = (event: KeyInfo) => boolean | void;
701
- /**
702
- * Keyboard event - 键盘事件
703
- */
704
- interface KeypressEvent {
705
- key: KeyInfo;
706
- handled: boolean;
707
- }
708
- /**
709
- * Default UI state - 默认 UI 状态
710
- */
711
- declare const DEFAULT_UI_STATE: UIState;
17
+ import './types-chunks/config.d-CJy1WENT.js';
712
18
 
713
19
  /**
714
20
  * App - KodaX CLI root component.
@@ -1694,6 +1000,28 @@ interface BackgroundTaskBarProps {
1694
1000
  }
1695
1001
  declare const BackgroundTaskBar: React$1.FC<BackgroundTaskBarProps>;
1696
1002
 
1003
+ type ChildActivityRowKind = "summary" | "activity";
1004
+ type ChildActivitySymbolColor = "cyan" | "green" | "dim";
1005
+ interface ChildActivityRow {
1006
+ readonly kind: ChildActivityRowKind;
1007
+ readonly id: string;
1008
+ readonly symbol: string;
1009
+ readonly symbolColor: ChildActivitySymbolColor;
1010
+ readonly text: string;
1011
+ readonly isActive: boolean;
1012
+ }
1013
+ interface ChildActivityViewModel {
1014
+ readonly shouldRender: boolean;
1015
+ readonly activeCount: number;
1016
+ readonly rows: readonly ChildActivityRow[];
1017
+ }
1018
+
1019
+ interface ChildActivitySurfaceProps {
1020
+ readonly viewModel: ChildActivityViewModel;
1021
+ }
1022
+ declare function measureChildActivitySurfaceRows(viewModel: ChildActivityViewModel): number;
1023
+ declare const ChildActivitySurface: React$1.FC<ChildActivitySurfaceProps>;
1024
+
1697
1025
  interface QueuedCommandsSurfaceProps {
1698
1026
  pendingInputs: readonly string[];
1699
1027
  }
@@ -2378,37 +1706,20 @@ declare function withCaptureSync<T>(fn: () => T): {
2378
1706
  captured: string[];
2379
1707
  };
2380
1708
 
1709
+ type CreatableInfoHistoryItem = Omit<HistoryItemInfo, "id" | "timestamp">;
2381
1710
  /**
2382
1711
  * Build the retry info history item shown during automatic provider retries.
2383
1712
  * Keeping this out of InkREPL makes the regression easy to test and avoids
2384
1713
  * falling back to console.log, which gets captured and deferred.
2385
1714
  */
2386
- declare function createRetryHistoryItem(reason: string, attempt: number, maxAttempts: number): CreatableHistoryItem;
1715
+ declare function createRetryHistoryItem(reason: string, attempt: number, maxAttempts: number): CreatableInfoHistoryItem;
2387
1716
  declare function emitRetryHistoryItem(addHistoryItem: (item: CreatableHistoryItem) => void, reason: string, attempt: number, maxAttempts: number): void;
2388
1717
  /**
2389
1718
  * Build a recovery history item from a structured ProviderRecoveryEvent.
2390
1719
  */
2391
- declare function createRecoveryHistoryItem(event: ProviderRecoveryEvent): CreatableHistoryItem;
1720
+ declare function createRecoveryHistoryItem(event: ProviderRecoveryEvent): CreatableInfoHistoryItem;
2392
1721
  declare function emitRecoveryHistoryItem(addHistoryItem: (item: CreatableHistoryItem) => void, event: ProviderRecoveryEvent): void;
2393
1722
 
2394
- /**
2395
- * Utilities for extracting message content for history rendering, copy, and previews.
2396
- */
2397
-
2398
- /**
2399
- * Extract plain text from message content.
2400
- * Thinking/tool blocks are omitted so callers get only visible assistant text.
2401
- */
2402
- declare function extractTextContent(content: string | readonly unknown[]): string;
2403
- /**
2404
- * Extract a session title from the first user message.
2405
- */
2406
- declare function extractTitle(messages: KodaXMessage[]): string;
2407
- /**
2408
- * Format a single-line preview for session lists.
2409
- */
2410
- declare function formatMessagePreview(content: string, maxLength?: number): string;
2411
-
2412
1723
  /**
2413
1724
  * Shell Executor - Shell command executor - Shell 命令执行器
2414
1725
  *
@@ -3043,5 +2354,5 @@ declare function loadCommands(commandDir?: string): Promise<Map<string, KodaXCom
3043
2354
  declare function processCommandCall(commandName: string, args: string | undefined, commands: Map<string, KodaXCommand>, runAgent: (prompt: string) => Promise<KodaXResult>): Promise<string | null>;
3044
2355
  declare function parseCommandCall(input: string): [string, string?] | null;
3045
2356
 
3046
- export { App, AutocompleteContextProvider, BackgroundTaskBar, ConsoleCapturer, DEFAULT_UI_STATE, DialogSurface, DotsIndicator, FullscreenTranscriptLayout, HistoryItemRenderer, InputPrompt, KODAX_COMMANDS_DIR, KeyMatchers, KeypressHandlerPriority, KeypressParser, KeypressProvider, LRUCache, LoadingIndicator, MessageActions, MessageList, MessageSelector, NotificationsSurface, PendingInputsIndicator, PermissionMode, ProgressIndicator, PromptComposer, PromptFooter, PromptFooterLeftSide, PromptFooterRightSide, PromptHelpMenu, PromptSuggestionsSurface, QueuedCommandsSurface, SimpleApp, SimpleInputPrompt, SimpleMessageDisplay, SimpleStatusBar, SingleLineTextInput, Spinner, StashNotice, StatusBar, StatusNoticesSurface, StreamingProvider, StreamingState, SuggestionsDisplay, TOOL_STATUS_ICONS, TextBuffer, TextInput, ThinkingIndicator, ToolCallDisplay, ToolCallStatus, ToolGroup, ToolProgressBar, ToolStatusBadge, TranscriptViewport, UIStateProvider, _resetQueuedPromptsCacheForTests, bootstrapAutoMode, calculateVisualCursorFromLayout, calculateVisualLayout, collectBashWriteTargets, createCliEvents, createHistoryItem, createJsonEvents, createKeyMatcher, createKeypressManager, createRecoveryHistoryItem, createRetryHistoryItem, createStreamingManager, createToolCall, darkTheme, detectTerminalCapabilities, detectTerminalHostProfile, detectTerminalRenderHost, emitRecoveryHistoryItem, emitRetryHistoryItem, executeShellCommand, extractTextContent, extractTitle, formatMessagePreview, generateId, generateSavePattern, getBashOutsideProjectWriteRisk, getCharAtCodePoint, getCodePointLength, getCustomProviderConfig, getDefaultCommandDir, getKeyDisplayName, getMcpServerConfig, getPlanModeBlockReason, getTerminalHostCapabilities, getTerminalWidth, getTheme, getThemeNames, getVisualWidth, getVisualWidthCached, hasCursorUpViewportYankRisk, hasMainScreenRenderScrollRisk, isAlwaysConfirmPath, isBashReadCommand, isBashWriteCommand, isClassicReplForced, isFunctionKey, isOwnedRendererPreferred, isPathInsideProject, isPrintable, isRemoteConptyHost, isScreenReader, isShellCommand, isShellCommandSuccess, isTmuxControlMode, isToolCallAllowed, isVsCodeTerminalHostEnv, isWideChar, listCustomProviders, listMcpServers, loadCommands, minimalTheme, parseCommandCall, parseKeypress, processCommandCall, removeCustomProvider, removeMcpServer, resetTmuxControlModeProbeForTesting, resolveConfiguredTuiRendererMode, resolveEffectiveTuiRendererMode, resolveFullscreenPolicy, resolveInteractiveSurfacePreference, splitByCodePoints, supports256Colors, supportsEmoji, supportsTrueColor, supportsUnicode, themes, truncateByVisualWidth, upsertCustomProvider, upsertMcpServer, useAutocomplete, useAutocompleteContext, useInputHistory, useKeypress, useKeypressManager, useQueuedPromptContents, useQueuedPrompts, useStreaming, useStreamingActions, useStreamingState, useTextBuffer, useUI, useUIActions, useUIState, validateMcpServerConfig, visualWidthCache, withCapture, withCaptureSync };
3047
- export type { AppHandle, AppProps, AppState, AutoModeBootstrapDeps, AutoModeBootstrapResult, BackgroundTaskBarItem, BackgroundTaskBarProps, Completer, Completion$1 as Completion, CreatableHistoryItem, CursorPosition, DialogSelectOption, DialogSurfaceConfirmState, DialogSurfaceProps, DialogSurfaceUIRequestState, DotsIndicatorProps, EffectiveTuiRendererMode, FullscreenPolicy, FullscreenTranscriptLayoutProps, HistoryEntry, HistoryItem, HistoryItemAssistant, HistoryItemBase, HistoryItemError, HistoryItemEvent, HistoryItemHint, HistoryItemInfo, HistoryItemRendererProps, HistoryItemSystem, HistoryItemThinking, HistoryItemToolGroup, HistoryItemType, HistoryItemUser, InputPromptProps, InteractiveSurfacePreference, KeyInfo, KeypressEvent, KeypressHandler, KeypressManager, KeypressProviderProps, KodaXCommand, KodaXCommandContext, LegacyMessageListProps, LoadingIndicatorProps, LoadingIndicatorType, Message, MessageActionsProps, MessageListProps, MessageSelectorProps, NotificationSurfaceItem, NotificationsSurfaceProps, PendingInputsIndicatorProps, ProgressIndicatorProps, PromptComposerProps, PromptEditingMode, PromptFooterLeftSideProps, PromptFooterProps, PromptFooterRightSideProps, PromptFooterSurfaceItem, PromptHelpMenuProps, PromptSubmitPayload, PromptSuggestionsSurfaceProps, QueuedCommandsSurfaceProps, ResolvedAutoModeBootstrapSettings, ShellExecutorConfig, SpinnerProps, StashNoticeProps, StatusBarProps, StatusNoticesSurfaceProps, StreamingActions, StreamingContextValue, StreamingManager, StreamingProviderProps, StreamingStateListener, Suggestion, SuggestionsDisplayProps, TerminalCapabilities, TerminalHostCapabilities, TerminalHostDetectionOptions, TerminalHostProfile, TerminalRenderHost, TextBufferOptions, TextInputProps, Theme, ThemeColors, ThemeSymbols, ThinkingIndicatorProps, ToolCall, ToolCallDisplayProps, ToolGroupProps, ToolProgressBarProps, ToolStatusBadgeProps, TranscriptViewportProps, TuiRendererMode, UIActions, UIState, UIStateProviderProps, UseAutocompleteOptions, UseAutocompleteReturn, UseInputHistoryOptions, UseInputHistoryReturn, UseKeypressOptions, UseTextBufferOptions, UseTextBufferReturn, VisualCursor, VisualLayout$1 as VisualLayout };
2357
+ export { App, AppProps, AutocompleteContextProvider, BackgroundTaskBar, ChildActivitySurface, ConsoleCapturer, CreatableHistoryItem, DialogSurface, DotsIndicator, FullscreenTranscriptLayout, HistoryEntry, HistoryItem, HistoryItemInfo, HistoryItemRenderer, InputPrompt, InputPromptProps, KODAX_COMMANDS_DIR, KeyInfo, KeyMatchers, KeypressHandler, KeypressParser, KeypressProvider, LRUCache, LoadingIndicator, Message, MessageActions, MessageList, MessageSelector, NotificationsSurface, PendingInputsIndicator, PermissionMode, ProgressIndicator, PromptComposer, PromptEditingMode, PromptFooter, PromptFooterLeftSide, PromptFooterRightSide, PromptHelpMenu, PromptSuggestionsSurface, QueuedCommandsSurface, SimpleApp, SimpleInputPrompt, SimpleMessageDisplay, SimpleStatusBar, SingleLineTextInput, Spinner, StashNotice, StatusBar, StatusBarProps, StatusNoticesSurface, StreamingProvider, StreamingState, Suggestion, SuggestionsDisplay, TextInput, Theme, ThinkingIndicator, ToolCall, ToolCallDisplay, ToolCallStatus, ToolGroup, ToolProgressBar, ToolStatusBadge, TranscriptViewport, UIActions, UIState, UIStateProvider, UseTextBufferReturn, _resetQueuedPromptsCacheForTests, bootstrapAutoMode, calculateVisualCursorFromLayout, calculateVisualLayout, collectBashWriteTargets, createCliEvents, createHistoryItem, createJsonEvents, createKeyMatcher, createKeypressManager, createRecoveryHistoryItem, createRetryHistoryItem, createStreamingManager, createToolCall, darkTheme, detectTerminalCapabilities, detectTerminalHostProfile, detectTerminalRenderHost, emitRecoveryHistoryItem, emitRetryHistoryItem, executeShellCommand, generateId, generateSavePattern, getBashOutsideProjectWriteRisk, getCharAtCodePoint, getCodePointLength, getCustomProviderConfig, getDefaultCommandDir, getKeyDisplayName, getMcpServerConfig, getPlanModeBlockReason, getTerminalHostCapabilities, getTerminalWidth, getTheme, getThemeNames, getVisualWidth, getVisualWidthCached, hasCursorUpViewportYankRisk, hasMainScreenRenderScrollRisk, isAlwaysConfirmPath, isBashReadCommand, isBashWriteCommand, isClassicReplForced, isFunctionKey, isOwnedRendererPreferred, isPathInsideProject, isPrintable, isRemoteConptyHost, isScreenReader, isShellCommand, isShellCommandSuccess, isTmuxControlMode, isToolCallAllowed, isVsCodeTerminalHostEnv, isWideChar, listCustomProviders, listMcpServers, loadCommands, measureChildActivitySurfaceRows, minimalTheme, parseCommandCall, parseKeypress, processCommandCall, removeCustomProvider, removeMcpServer, resetTmuxControlModeProbeForTesting, resolveConfiguredTuiRendererMode, resolveEffectiveTuiRendererMode, resolveFullscreenPolicy, resolveInteractiveSurfacePreference, splitByCodePoints, supports256Colors, supportsEmoji, supportsTrueColor, supportsUnicode, themes, truncateByVisualWidth, upsertCustomProvider, upsertMcpServer, useAutocomplete, useAutocompleteContext, useInputHistory, useKeypress, useKeypressManager, useQueuedPromptContents, useQueuedPrompts, useStreaming, useStreamingActions, useStreamingState, useTextBuffer, useUI, useUIActions, useUIState, validateMcpServerConfig, visualWidthCache, withCapture, withCaptureSync };
2358
+ export type { AppHandle, AutoModeBootstrapDeps, AutoModeBootstrapResult, BackgroundTaskBarItem, BackgroundTaskBarProps, ChildActivitySurfaceProps, DialogSelectOption, DialogSurfaceConfirmState, DialogSurfaceProps, DialogSurfaceUIRequestState, DotsIndicatorProps, EffectiveTuiRendererMode, FullscreenPolicy, FullscreenTranscriptLayoutProps, HistoryItemRendererProps, InteractiveSurfacePreference, KeypressManager, KeypressProviderProps, KodaXCommand, KodaXCommandContext, LoadingIndicatorProps, LoadingIndicatorType, MessageActionsProps, MessageListProps, MessageSelectorProps, NotificationSurfaceItem, NotificationsSurfaceProps, PendingInputsIndicatorProps, ProgressIndicatorProps, PromptComposerProps, PromptFooterLeftSideProps, PromptFooterProps, PromptFooterRightSideProps, PromptFooterSurfaceItem, PromptHelpMenuProps, PromptSuggestionsSurfaceProps, QueuedCommandsSurfaceProps, ResolvedAutoModeBootstrapSettings, ShellExecutorConfig, SpinnerProps, StashNoticeProps, StatusNoticesSurfaceProps, StreamingActions, StreamingContextValue, StreamingManager, StreamingProviderProps, StreamingStateListener, SuggestionsDisplayProps, TerminalCapabilities, TerminalHostCapabilities, TerminalHostDetectionOptions, TerminalHostProfile, TerminalRenderHost, TextInputProps, ThinkingIndicatorProps, ToolCallDisplayProps, ToolGroupProps, ToolProgressBarProps, ToolStatusBadgeProps, TranscriptViewportProps, TuiRendererMode, UIStateProviderProps, UseAutocompleteOptions, UseAutocompleteReturn, UseInputHistoryOptions, UseInputHistoryReturn, UseKeypressOptions, UseTextBufferOptions };