@kodax-ai/kodax 0.7.55 → 0.7.57

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 (70) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +22 -24
  3. package/README_CN.md +16 -18
  4. package/dist/builtin/code-review/SKILL.md +22 -3
  5. package/dist/chunks/agent-EHWQZA4C.js +2 -0
  6. package/dist/chunks/argument-completer-AYDAYGKL.js +2 -0
  7. package/dist/chunks/chunk-3WWPJGPQ.js +2 -0
  8. package/dist/chunks/chunk-4SHP3M67.js +2 -0
  9. package/dist/chunks/chunk-KN6IJMTB.js +636 -0
  10. package/dist/chunks/{chunk-ZBK3DZ3S.js → chunk-LZKGOR2C.js} +1 -1
  11. package/dist/chunks/chunk-MJFPFRGK.js +423 -0
  12. package/dist/chunks/chunk-N2N2W3AQ.js +584 -0
  13. package/dist/chunks/chunk-PCPFLPS4.js +5 -0
  14. package/dist/chunks/chunk-TCLSPUTR.js +31 -0
  15. package/dist/chunks/chunk-VACH6QWN.js +315 -0
  16. package/dist/chunks/chunk-YSVPF6SN.js +597 -0
  17. package/dist/chunks/{compaction-config-NAJEEPG5.js → compaction-config-TLDMFMZO.js} +1 -1
  18. package/dist/chunks/{construction-bootstrap-4CIVZMQ5.js → construction-bootstrap-55B7Q5RX.js} +4 -4
  19. package/dist/chunks/dist-IE4HVWP7.js +2 -0
  20. package/dist/chunks/dist-IKOK2MJQ.js +2 -0
  21. package/dist/chunks/paste-WTL2XN7P.js +2 -0
  22. package/dist/chunks/utils-EJ2VCRTC.js +2 -0
  23. package/dist/index.d.ts +21 -16
  24. package/dist/index.js +6 -6
  25. package/dist/kodax_cli.js +1128 -1099
  26. package/dist/provider-capabilities.json +986 -195
  27. package/dist/sdk-agent.d.ts +20 -12
  28. package/dist/sdk-agent.js +1 -1
  29. package/dist/sdk-coding.d.ts +223 -108
  30. package/dist/sdk-coding.js +1 -1
  31. package/dist/sdk-llm.d.ts +10 -5
  32. package/dist/sdk-llm.js +1 -1
  33. package/dist/sdk-mcp.d.ts +1 -1
  34. package/dist/sdk-mcp.js +1 -1
  35. package/dist/sdk-media.d.ts +142 -0
  36. package/dist/sdk-media.js +2 -0
  37. package/dist/sdk-repl.d.ts +106 -96
  38. package/dist/sdk-repl.js +1 -1
  39. package/dist/sdk-session.d.ts +6 -5
  40. package/dist/sdk-session.js +1 -1
  41. package/dist/sdk-skills.js +1 -1
  42. package/dist/semantic-worker.js +11 -0
  43. package/dist/types-chunks/base.d-BnjQrSVf.d.ts +301 -0
  44. package/dist/types-chunks/{bash-prefix-extractor.d-LUGkQHcd.d.ts → bash-prefix-extractor.d-BgvMbfq6.d.ts} +198 -139
  45. package/dist/types-chunks/{capsule.d-CNonpwAZ.d.ts → capsule.d-DwJp5r63.d.ts} +14 -11
  46. package/dist/types-chunks/{types.d-D4jL-gAA.d.ts → guardrail.d-BP3yyr6u.d.ts} +3 -121
  47. package/dist/types-chunks/{guardrail.d-B18oO1gt.d.ts → guardrail.d-C1DhxnvC.d.ts} +31 -9
  48. package/dist/types-chunks/{manager.d-DLmDhX3i.d.ts → manager.d-DBD7SOTT.d.ts} +7 -2
  49. package/dist/types-chunks/{process.d-Bj82oJhD.d.ts → process.d-BZncyzEj.d.ts} +2 -1
  50. package/dist/types-chunks/{resolver.d-CCX9NXWP.d.ts → resolver.d-ZvKQgl0X.d.ts} +82 -17
  51. package/dist/types-chunks/{sdk-session-SjrnWb4-.d.ts → sdk-session-DAScB0rW.d.ts} +6 -4
  52. package/dist/types-chunks/{storage.d-BAuJ0Ks7.d.ts → storage.d-CPvn9qI0.d.ts} +2 -2
  53. package/dist/types-chunks/{base.d-BBNUF9nz.d.ts → types.d-6VOXvF88.d.ts} +101 -290
  54. package/dist/types-chunks/types.d-D8WcfrOD.d.ts +143 -0
  55. package/dist/types-chunks/{utils.d-C9MUY8n3.d.ts → utils.d-CpgVIjYZ.d.ts} +16 -18
  56. package/package.json +15 -6
  57. package/dist/chunks/agent-PYSVWY7M.js +0 -2
  58. package/dist/chunks/argument-completer-CTDNNWV3.js +0 -2
  59. package/dist/chunks/chunk-7C2QUBLE.js +0 -31
  60. package/dist/chunks/chunk-EVIDQWMF.js +0 -5
  61. package/dist/chunks/chunk-FRI7UQSB.js +0 -2
  62. package/dist/chunks/chunk-HQCLPWRI.js +0 -551
  63. package/dist/chunks/chunk-JCDO2FR4.js +0 -584
  64. package/dist/chunks/chunk-MX4G42EV.js +0 -425
  65. package/dist/chunks/chunk-RGPPZOD5.js +0 -314
  66. package/dist/chunks/chunk-THAKTCPE.js +0 -652
  67. package/dist/chunks/dist-7KTO2PUU.js +0 -2
  68. package/dist/chunks/dist-BNKIZRCP.js +0 -2
  69. package/dist/chunks/paste-5DSTHQGK.js +0 -2
  70. package/dist/chunks/utils-2QXBKYPJ.js +0 -2
@@ -1,20 +1,22 @@
1
1
  import React$1, { ReactNode } from 'react';
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-SjrnWb4-.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-SjrnWb4-.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-C9MUY8n3.js';
5
- import { v as KodaXEvents, m as KodaXAgentMode, ax as ProviderRecoveryEvent, a as BashPrefixExtractor, $ as KodaXResult } from './types-chunks/bash-prefix-extractor.d-LUGkQHcd.js';
6
- import { e as QueuedMessage } from './types-chunks/types.d-D4jL-gAA.js';
7
- import { b as PermissionMode } from './types-chunks/storage.d-BAuJ0Ks7.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-BAuJ0Ks7.js';
9
- import { i as KodaXCustomProviderConfig } from './types-chunks/base.d-BBNUF9nz.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-B18oO1gt.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-Bj82oJhD.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-DAScB0rW.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-DAScB0rW.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-CpgVIjYZ.js';
5
+ import { v as KodaXEvents, m as KodaXAgentMode, aB as ProviderRecoveryEvent, a as BashPrefixExtractor, $ as KodaXResult } from './types-chunks/bash-prefix-extractor.d-BgvMbfq6.js';
6
+ import { c as QueuedMessage } from './types-chunks/types.d-D8WcfrOD.js';
7
+ import { b as PermissionMode } from './types-chunks/storage.d-CPvn9qI0.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-CPvn9qI0.js';
9
+ import { d as KodaXCustomProviderConfig } from './types-chunks/types.d-6VOXvF88.js';
10
+ import { k as KodaXMcpServerConfig, l as KodaXMcpServersConfig, a as AutoModeAskUser, S as SignalCollector, g as AutoModeToolGuardrail, o as RulesLoadResult } from './types-chunks/guardrail.d-C1DhxnvC.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-BZncyzEj.js';
12
12
  import 'readline';
13
13
  import 'child_process';
14
14
  import 'vscode-languageserver-protocol';
15
15
  import './types-chunks/capability.d-3C62G8Eq.js';
16
+ import './types-chunks/base.d-BnjQrSVf.js';
16
17
  import './types-chunks/cost-tracker.d-wRtyEW9d.js';
17
18
  import './types-chunks/config.d-CJy1WENT.js';
19
+ import './types-chunks/guardrail.d-BP3yyr6u.js';
18
20
 
19
21
  /**
20
22
  * App - KodaX CLI root component.
@@ -132,57 +134,57 @@ declare const KeyMatchers: {
132
134
  /**
133
135
  * StreamingContext - Streaming Response Handling
134
136
  *
135
- * Reference implementation based on Gemini CLI's StreamingContext architecture - 鍙傝€?Gemini CLI 鐨?StreamingContext 鏋舵瀯瀹炵幇
136
- * Manages streaming response state, cancellation operations, and error handling - 绠$悊娴佸紡鍝嶅簲鐘舵€併€佸彇娑堟搷浣滃拰閿欒澶勭悊
137
+ * Reference implementation based on Gemini CLI's StreamingContext architecture - 参考 Gemini CLI StreamingContext 架构实现
138
+ * Manages streaming response state, cancellation operations, and error handling - 管理流式响应状态、取消操作和错误处理
137
139
  */
138
140
 
139
141
  /**
140
- * Iteration record - 杩唬璁板綍
141
- * Stores a snapshot of one iteration's thinking and response - 瀛樺偍涓€杞凯浠g殑 thinking 鍜屽搷搴斿揩鐓?
142
+ * Iteration record - 迭代记录
143
+ * Stores a snapshot of one iteration's thinking and response - 存储一轮迭代的 thinking 和响应快照
142
144
  */
143
145
  interface IterationRecord {
144
- /** Iteration number (1-based) - 杩唬搴忓彿锛堜粠1寮€濮嬶級 */
146
+ /** Iteration number (1-based) - 迭代序号(从1开始) */
145
147
  iteration: number;
146
- /** Thinking content summary (truncated) - Thinking 鍐呭鎽樿锛堟埅鏂級 */
148
+ /** Thinking content summary (truncated) - Thinking 内容摘要(截断) */
147
149
  thinkingSummary: string;
148
- /** Full thinking content length - 瀹屾暣 thinking 鍐呭闀垮害 */
150
+ /** Full thinking content length - 完整 thinking 内容长度 */
149
151
  thinkingLength: number;
150
- /** Response content - 鍝嶅簲鍐呭 */
152
+ /** Response content - 响应内容 */
151
153
  response: string;
152
- /** Tools used in this iteration - 鏈疆浣跨敤鐨勫伐鍏?*/
154
+ /** Tools used in this iteration - 本轮使用的工具 */
153
155
  toolsUsed: string[];
154
156
  }
155
157
  /**
156
- * Streaming context value - 娴佸紡涓婁笅鏂囧€?
158
+ * Streaming context value - 流式上下文值
157
159
  */
158
160
  interface StreamingContextValue {
159
- /** 褰撳墠娴佸紡鐘舵€?*/
161
+ /** 当前流式状态 */
160
162
  state: StreamingState;
161
163
  /** 褰撳墠姝e湪娴佸紡浼犺緭鐨勫搷搴?*/
162
164
  currentResponse: string;
163
- /** 閿欒淇℃伅 */
165
+ /** 错误信息 */
164
166
  error?: string;
165
167
  /** 鐢ㄤ簬鍙栨秷璇锋眰鐨?AbortController */
166
168
  abortController?: AbortController;
167
- /** 鏄惁姝e湪 thinking */
169
+ /** 是否正在 thinking */
168
170
  isThinking: boolean;
169
- /** Thinking 瀛楃璁℃暟 */
171
+ /** Thinking 字符计数 */
170
172
  thinkingCharCount: number;
171
- /** Thinking 鍐呭 (鐢ㄤ簬UI鏄剧ず) */
173
+ /** Thinking 内容 (用于UI显示) */
172
174
  thinkingContent: string;
173
- /** 褰撳墠鎵ц鐨勫伐鍏峰悕绉?*/
175
+ /** 当前执行的工具名称 */
174
176
  currentTool?: string;
175
- /** 宸ュ叿杈撳叆瀛楃璁℃暟 */
177
+ /** 工具输入字符计数 */
176
178
  toolInputCharCount: number;
177
- /** 宸ュ叿杈撳叆鍐呭 (鐢ㄤ簬UI鏄剧ず鍙傛暟鎽樿) */
179
+ /** 工具输入内容 (用于UI显示参数摘要) */
178
180
  toolInputContent: string;
179
- /** Iteration history - 杩唬鍘嗗彶 */
181
+ /** Iteration history - 迭代历史 */
180
182
  iterationHistory: IterationRecord[];
181
- /** Current iteration number (1-based) - 褰撳墠杩唬搴忓彿锛堜粠1寮€濮嬶級 */
183
+ /** Current iteration number (1-based) - 当前迭代序号(从1开始) */
182
184
  currentIteration: number;
183
- /** Maximum iterations allowed - 鏈€澶у厑璁歌凯浠f鏁?*/
185
+ /** Maximum iterations allowed - 最大允许迭代次数 */
184
186
  maxIter: number;
185
- /** 鏄惁姝e湪鍘嬬缉涓婁笅鏂?*/
187
+ /** 是否正在压缩上下文 */
186
188
  isCompacting: boolean;
187
189
  pendingInputs: string[];
188
190
  /**
@@ -212,51 +214,51 @@ interface AbortOptions {
212
214
  * Streaming actions interface - 娴佸紡鎿嶄綔鎺ュ彛
213
215
  */
214
216
  interface StreamingActions {
215
- /** 寮€濮嬫祦寮忓搷搴?*/
217
+ /** 开始流式响应 */
216
218
  startStreaming: () => void;
217
- /** 鍋滄娴佸紡鍝嶅簲 */
219
+ /** 停止流式响应 */
218
220
  stopStreaming: () => void;
219
- /** 杩藉姞鍝嶅簲鏂囨湰 */
221
+ /** 追加响应文本 */
220
222
  appendResponse: (text: string) => void;
221
- /** 娓呯┖鍝嶅簲 */
223
+ /** 清空响应 */
222
224
  clearResponse: () => void;
223
- /** 璁剧疆閿欒 */
225
+ /** 设置错误 */
224
226
  setError: (error: string | undefined) => void;
225
- /** 鍙栨秷褰撳墠娴佸紡鍝嶅簲 */
227
+ /** 取消当前流式响应 */
226
228
  abort: (options?: AbortOptions) => void;
227
- /** 閲嶇疆鐘舵€?*/
229
+ /** 重置状态 */
228
230
  reset: () => void;
229
- /** 寮€濮?thinking */
231
+ /** 开始 thinking */
230
232
  startThinking: () => void;
231
- /** 杩藉姞 thinking 瀛楃鏁?*/
233
+ /** 追加 thinking 字符数 */
232
234
  appendThinkingChars: (count: number) => void;
233
- /** 杩藉姞 thinking 鍐呭 */
235
+ /** 追加 thinking 内容 */
234
236
  appendThinkingContent: (text: string) => void;
235
- /** 缁撴潫 thinking */
237
+ /** 结束 thinking */
236
238
  stopThinking: () => void;
237
- /** 娓呯┖ thinking 鍐呭 (鍝嶅簲瀹屾垚鏃惰皟鐢? */
239
+ /** 清空 thinking 内容 (响应完成时调用) */
238
240
  clearThinkingContent: () => void;
239
241
  /** 璁剧疆褰撳墠宸ュ叿 */
240
242
  setCurrentTool: (tool: string | undefined) => void;
241
- /** 杩藉姞宸ュ叿杈撳叆瀛楃鏁?*/
243
+ /** 追加工具输入字符数 */
242
244
  appendToolInputChars: (count: number) => void;
243
- /** 杩藉姞宸ュ叿杈撳叆鍐呭 */
245
+ /** 追加工具输入内容 */
244
246
  appendToolInputContent: (text: string) => void;
245
- /** 娓呯┖宸ュ叿杈撳叆鍐呭 */
247
+ /** 清空工具输入内容 */
246
248
  clearToolInputContent: () => void;
247
- /** 鑾峰彇褰撳墠鐨?AbortSignal (鐢ㄤ簬浼犻€掔粰 API 璇锋眰) */
249
+ /** 获取当前的 AbortSignal (用于传递给 API 请求) */
248
250
  getSignal: () => AbortSignal | undefined;
249
- /** 鑾峰彇瀹屾暣鍝嶅簲鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級- 鐢ㄤ簬涓柇鏃朵繚瀛?*/
251
+ /** 获取完整响应内容(包括缓冲区中未刷新的内容)- 用于中断时保存 */
250
252
  getFullResponse: () => string;
251
- /** 鑾峰彇瀹屾暣 thinking 鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級- 鐢ㄤ簬鎸佷箙鍖栧巻鍙茶褰?*/
253
+ /** 获取完整 thinking 内容(包括缓冲区中未刷新的内容)- 用于持久化历史记录 */
252
254
  getThinkingContent: () => string;
253
- /** Start a new iteration - saves current content to history and clears for next round - 寮€濮嬫柊杩唬锛屼繚瀛樺綋鍓嶅唴瀹瑰埌鍘嗗彶骞舵竻绌?*/
255
+ /** Start a new iteration - saves current content to history and clears for next round - 开始新迭代,保存当前内容到历史并清空 */
254
256
  startNewIteration: (iteration: number) => void;
255
- /** Clear iteration history - 娓呯┖杩唬鍘嗗彶 */
257
+ /** Clear iteration history - 清空迭代历史 */
256
258
  clearIterationHistory: () => void;
257
- /** Set maximum iterations - 璁剧疆鏈€澶ц凯浠f鏁?*/
259
+ /** Set maximum iterations - 设置最大迭代次数 */
258
260
  setMaxIter: (maxIter: number) => void;
259
- /** 寮€濮嬪帇缂╀笂涓嬫枃 */
261
+ /** 开始压缩上下文 */
260
262
  startCompacting: () => void;
261
263
  /** 缁撴潫鍘嬬缉涓婁笅鏂?*/
262
264
  stopCompacting: () => void;
@@ -267,66 +269,66 @@ interface StreamingActions {
267
269
  consumePendingInputs: () => string[];
268
270
  }
269
271
  /**
270
- * State change listener - 鐘舵€佸彉鏇寸洃鍚櫒
272
+ * State change listener - 状态变更监听器
271
273
  */
272
274
  type StreamingStateListener = (state: StreamingContextValue) => void;
273
275
  /**
274
276
  * Streaming manager interface - 娴佸紡绠$悊鍣ㄦ帴鍙?
275
277
  */
276
278
  interface StreamingManager {
277
- /** 鑾峰彇褰撳墠鐘舵€?*/
279
+ /** 获取当前状态 */
278
280
  getState: () => StreamingContextValue;
279
- /** 璁剧疆娴佸紡鐘舵€?*/
281
+ /** 设置流式状态 */
280
282
  setState: (state: StreamingState) => void;
281
- /** 寮€濮嬫祦寮忓搷搴?*/
283
+ /** 开始流式响应 */
282
284
  startStreaming: () => void;
283
- /** 鍋滄娴佸紡鍝嶅簲 */
285
+ /** 停止流式响应 */
284
286
  stopStreaming: () => void;
285
- /** 杩藉姞鍝嶅簲鏂囨湰 */
287
+ /** 追加响应文本 */
286
288
  appendResponse: (text: string) => void;
287
- /** 娓呯┖鍝嶅簲 */
289
+ /** 清空响应 */
288
290
  clearResponse: () => void;
289
- /** 璁剧疆閿欒 */
291
+ /** 设置错误 */
290
292
  setError: (error: string | undefined) => void;
291
- /** 鍙栨秷褰撳墠娴佸紡鍝嶅簲 */
293
+ /** 取消当前流式响应 */
292
294
  abort: (options?: AbortOptions) => void;
293
- /** 閲嶇疆鐘舵€?*/
295
+ /** 重置状态 */
294
296
  reset: () => void;
295
- /** 鏄惁姝e湪娴佸紡浼犺緭 */
297
+ /** 是否正在流式传输 */
296
298
  isStreaming: () => boolean;
297
- /** 璁㈤槄鐘舵€佸彉鏇?*/
299
+ /** 订阅状态变更 */
298
300
  subscribe: (listener: StreamingStateListener) => () => void;
299
- /** 寮€濮?thinking */
301
+ /** 开始 thinking */
300
302
  startThinking: () => void;
301
- /** 杩藉姞 thinking 瀛楃鏁?*/
303
+ /** 追加 thinking 字符数 */
302
304
  appendThinkingChars: (count: number) => void;
303
- /** 杩藉姞 thinking 鍐呭 */
305
+ /** 追加 thinking 内容 */
304
306
  appendThinkingContent: (text: string) => void;
305
- /** 缁撴潫 thinking */
307
+ /** 结束 thinking */
306
308
  stopThinking: () => void;
307
- /** 娓呯┖ thinking 鍐呭 (鍝嶅簲瀹屾垚鏃惰皟鐢? */
309
+ /** 清空 thinking 内容 (响应完成时调用) */
308
310
  clearThinkingContent: () => void;
309
311
  /** 璁剧疆褰撳墠宸ュ叿 */
310
312
  setCurrentTool: (tool: string | undefined) => void;
311
- /** 杩藉姞宸ュ叿杈撳叆瀛楃鏁?*/
313
+ /** 追加工具输入字符数 */
312
314
  appendToolInputChars: (count: number) => void;
313
- /** 杩藉姞宸ュ叿杈撳叆鍐呭 */
315
+ /** 追加工具输入内容 */
314
316
  appendToolInputContent: (text: string) => void;
315
- /** 娓呯┖宸ュ叿杈撳叆鍐呭 */
317
+ /** 清空工具输入内容 */
316
318
  clearToolInputContent: () => void;
317
319
  /** 鑾峰彇褰撳墠鐨?AbortSignal */
318
320
  getSignal: () => AbortSignal | undefined;
319
- /** 鑾峰彇瀹屾暣鍝嶅簲鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級 */
321
+ /** 获取完整响应内容(包括缓冲区中未刷新的内容) */
320
322
  getFullResponse: () => string;
321
- /** 鑾峰彇瀹屾暣 thinking 鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級 */
323
+ /** 获取完整 thinking 内容(包括缓冲区中未刷新的内容) */
322
324
  getThinkingContent: () => string;
323
- /** Start a new iteration - 寮€濮嬫柊杩唬 */
325
+ /** Start a new iteration - 开始新迭代 */
324
326
  startNewIteration: (iteration: number) => void;
325
- /** Clear iteration history - 娓呯┖杩唬鍘嗗彶 */
327
+ /** Clear iteration history - 清空迭代历史 */
326
328
  clearIterationHistory: () => void;
327
- /** Set maximum iterations - 璁剧疆鏈€澶ц凯浠f鏁?*/
329
+ /** Set maximum iterations - 设置最大迭代次数 */
328
330
  setMaxIter: (maxIter: number) => void;
329
- /** Start compacting context - 寮€濮嬪帇缂╀笂涓嬫枃 */
331
+ /** Start compacting context - 开始压缩上下文 */
330
332
  startCompacting: () => void;
331
333
  /** Stop compacting context - 缁撴潫鍘嬬缉涓婁笅鏂?*/
332
334
  stopCompacting: () => void;
@@ -346,9 +348,9 @@ interface StreamingManager {
346
348
  /**
347
349
  * Create streaming manager - 鍒涘缓娴佸紡绠$悊鍣?
348
350
  *
349
- * Issue 048 fix: Use batch updates to reduce render frequency - Issue 048 淇: 浣跨敤鎵归噺鏇存柊鍑忓皯娓叉煋棰戠巼
350
- * - Buffer streaming text and thinking content to 80ms cycle - 娴佸紡鏂囨湰鍜?thinking 鍐呭缂撳啿鍒?80ms 鍛ㄦ湡
351
- * - Sync with Spinner animation to avoid race conditions - 涓?Spinner 鍔ㄧ敾鍚屾锛岄伩鍏嶇珵鎬佹潯浠?
351
+ * Issue 048 fix: Use batch updates to reduce render frequency - Issue 048 修复: 使用批量更新减少渲染频率
352
+ * - Buffer streaming text and thinking content to 80ms cycle - 流式文本和 thinking 内容缓冲到 80ms 周期
353
+ * - Sync with Spinner animation to avoid race conditions - Spinner 动画同步,避免竞态条件
352
354
  */
353
355
  declare function createStreamingManager(): StreamingManager;
354
356
  interface StreamingProviderProps {
@@ -360,15 +362,15 @@ interface StreamingProviderProps {
360
362
  */
361
363
  declare function StreamingProvider({ children, onStateChange, }: StreamingProviderProps): React$1.ReactElement;
362
364
  /**
363
- * Get streaming state - 鑾峰彇娴佸紡鐘舵€?
365
+ * Get streaming state - 获取流式状态
364
366
  */
365
367
  declare function useStreamingState(): StreamingContextValue;
366
368
  /**
367
- * Get streaming actions - 鑾峰彇娴佸紡鎿嶄綔
369
+ * Get streaming actions - 获取流式操作
368
370
  */
369
371
  declare function useStreamingActions(): StreamingActions;
370
372
  /**
371
- * Get complete streaming state and actions - 鑾峰彇瀹屾暣娴佸紡鐘舵€佸拰鎿嶄綔
373
+ * Get complete streaming state and actions - 获取完整流式状态和操作
372
374
  */
373
375
  declare function useStreaming(): {
374
376
  state: StreamingContextValue;
@@ -409,27 +411,27 @@ declare const SingleLineTextInput: React$1.FC<{
409
411
  }>;
410
412
 
411
413
  /**
412
- * InputPrompt - Input prompt component - 鏉堟挸鍙嗛幓鎰仛缂佸嫪娆?
414
+ * InputPrompt - Input prompt component - 输入提示组件
413
415
  *
414
416
  * Integrates multi-line input, history navigation, keyboard shortcuts
415
- * through a dedicated prompt input controller. - 闁俺绻冮悪顒傜彌閻ㄥ嫯绶崗銉﹀付閸掕泛娅掗梿鍡樺灇婢舵俺顢戞潏鎾冲弳閵嗕礁宸婚崣鎻掝嚤閼割亜鎷伴柨顔炬磸韫囶偅宓庨柨顔衡偓?
417
+ * through a dedicated prompt input controller. - 通过独立的输入控制器集成多行输入、历史导航和键盘快捷键
416
418
  */
417
419
 
418
420
  /**
419
421
  * Extended props for InputPrompt with autocomplete support
420
- * InputPrompt 閻ㄥ嫭澧跨仦鏇炵潣閹嶇礉閺€顖涘瘮閼奉亜濮╃悰銉ュ弿
422
+ * InputPrompt 的扩展属性,支持自动补全
421
423
  */
422
424
  interface InputPromptAutocompleteProps extends InputPromptProps {
423
425
  /** Working directory for file completion - 閺傚洣娆㈢悰銉ュ弿閻ㄥ嫬浼愭担婊呮窗瑜?*/
424
426
  cwd?: string;
425
- /** Git root for skill discovery - 閹垛偓閼宠棄褰傞悳鎵畱 Git 閺嶅湱娲拌ぐ?*/
427
+ /** Git root for skill discovery - 技能发现的 Git 根目录 */
426
428
  gitRoot?: string;
427
- /** Whether autocomplete is enabled (default: true) - 閺勵垰鎯侀崥顖滄暏閼奉亜濮╃悰銉ュ弿閿涘牓绮拋銈忕窗true閿?*/
429
+ /** Whether autocomplete is enabled (default: true) - 是否启用自动补全(默认:true) */
428
430
  autocompleteEnabled?: boolean;
429
431
  }
430
432
  declare const InputPrompt: React$1.FC<InputPromptAutocompleteProps>;
431
433
  /**
432
- * Simplified InputPrompt - single-line mode - 缁犫偓閸栨牜澧?InputPrompt - 閸楁洝顢戝Ο鈥崇础
434
+ * Simplified InputPrompt - single-line mode - 简化版 InputPrompt - 单行模式
433
435
  */
434
436
  declare const SimpleInputPrompt: React$1.FC<{
435
437
  onSubmit: (text: string) => void;
@@ -2292,9 +2294,12 @@ declare function getPlanModeBlockReason(toolName: string, input: Record<string,
2292
2294
  * config (FEATURE_092 v0.7.34 hotfix-3). They are evaluated on every
2293
2295
  * classify() call, so mid-session `/model` and `/provider` swaps DO
2294
2296
  * retarget the classifier without the user re-entering auto mode.
2295
- * `claudeMd` and `rules` remain captured-at-init by design (CLAUDE.md
2296
- * and `~/.kodax/auto-rules.jsonc` mid-session edits are rare; restart
2297
- * applies them).
2297
+ * AGENTS.md is wired the same way via the `getClaudeMd` live getter
2298
+ * (FEATURE_092 follow-up) it reads `loadAgentsFiles` (mtime-cached)
2299
+ * on every classify so mid-session AGENTS.md edits reach the classifier
2300
+ * without a restart or `/reload`. Only `rules`
2301
+ * (`~/.kodax/auto-rules.jsonc`) remains captured-at-init; those edits
2302
+ * are rare and a restart applies them.
2298
2303
  */
2299
2304
 
2300
2305
  interface AutoModeBootstrapDeps {
@@ -2306,7 +2311,6 @@ interface AutoModeBootstrapDeps {
2306
2311
  */
2307
2312
  readonly askUser: AutoModeAskUser;
2308
2313
  readonly projectRoot: string;
2309
- readonly getAgentsFiles: () => AgentsFile[];
2310
2314
  readonly getCurrentProviderName: () => string;
2311
2315
  readonly getCurrentModel: () => string | undefined;
2312
2316
  readonly getCurrentPermissionMode: () => PermissionMode;
@@ -2351,6 +2355,12 @@ interface ResolvedAutoModeBootstrapSettings {
2351
2355
  readonly classifierModel?: string;
2352
2356
  readonly classifierModelEnv?: string;
2353
2357
  readonly timeoutMs?: number;
2358
+ /**
2359
+ * Issue 143 (WS3): speculative-classify quiet window in ms. Forwarded to the
2360
+ * guardrail's `speculativeWindowMs`. When undefined, the guardrail falls back
2361
+ * to the `KODAX_AUTO_SPECULATIVE_WINDOW_MS` env / `DEFAULT_WINDOW_MS = 500`.
2362
+ */
2363
+ readonly speculativeWindowMs?: number;
2354
2364
  }
2355
2365
  interface AutoModeBootstrapResult {
2356
2366
  /**
package/dist/sdk-repl.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{$ as un,$a as fo,A as Q,Aa as $n,Ab as qo,B as T,Ba as qn,Bb as zo,C as U,Ca as zn,Cb as Bo,D as V,Da as Bn,Db as Eo,E as Y,Ea as En,Eb as Go,F as Z,Fa as Gn,Fb as Ho,G as tt,Ga as Hn,Gb as Jo,H as nt,Ha as Jn,Hb as Qo,I as ot,Ia as Qn,Ib as To,J as et,Ja as Tn,Jb as Uo,K as rt,Ka as Un,Kb as Vo,L as at,La as Vn,Lb as Yo,M as pt,Ma as Yn,Mb as Zo,N as lt,Na as Zn,Nb as te,O as ut,Oa as to,Ob as ne,P as ft,Pa as no,Pb as oe,Q as nn,Qa as oo,Qb as ee,R as on,Ra as eo,Rb as re,S as en,Sa as ro,Sb as ae,T as rn,Ta as ao,Tb as me,U as an,Ua as mo,Ub as ie,V as mn,Va as io,W as sn,Wa as so,X as cn,Xa as co,Y as dn,Ya as po,Z as pn,Za as lo,_ as ln,_a as uo,a as D,aa as fn,ab as go,b as P,ba as gn,bb as Co,c as M,ca as Cn,cb as xo,d as b,da as xn,db as yo,e as w,ea as yn,eb as Ko,f as N,fa as Kn,fb as Xo,g as _,ga as Xn,gb as ho,h as j,ha as hn,hb as Do,i as k,ia as Dn,ib as Po,j as A,ja as Pn,jb as Mo,k as O,ka as Mn,kb as bo,l as R,la as bn,lb as wo,m as S,ma as wn,mb as No,n as v,na as Nn,nb as _o,o as I,oa as _n,ob as jo,p as L,pa as jn,pb as ko,q as W,qa as kn,qb as Ao,r as F,ra as An,rb as Oo,s as $,sa as On,sb as Ro,t as q,ta as Rn,tb as So,u as z,ua as Sn,ub as vo,v as B,va as vn,vb as Io,w as E,wa as In,wb as Lo,x as G,xa as Ln,xb as Wo,y as H,ya as Wn,yb as Fo,z as J,za as Fn,zb as $o}from"./chunks/chunk-RGPPZOD5.js";import{I as Gt,J as Ht,K as Jt,L as Qt,M as Tt,R as Ut,S as Vt,a as mt,b as it,c as st,d as ct,e as dt,f as gt,h as Ct,k as xt,l as yt,m as Kt,n as It,p as Lt,q as Wt,r as Ft,s as $t,sa as Yt,ta as Zt,u as qt,ua as tn,v as zt,w as Bt,x as Et}from"./chunks/chunk-HQCLPWRI.js";import{D as vt,b as Xt,c as ht,d as Dt,e as Pt,f as Mt,h as bt,i as wt,j as Nt,k as _t,u as jt,v as kt,w as At,x as Ot,y as Rt,z as St}from"./chunks/chunk-FRI7UQSB.js";import"./chunks/chunk-ZBK3DZ3S.js";import"./chunks/chunk-EVIDQWMF.js";import"./chunks/chunk-MX4G42EV.js";import"./chunks/chunk-THAKTCPE.js";import"./chunks/chunk-7C2QUBLE.js";import"./chunks/chunk-JCDO2FR4.js";import{a}from"./chunks/chunk-V4WSBIXB.js";import l from"fs/promises";import c from"path";import x from"os";var u=c.join(x.homedir(),".kodax","commands");function y(){return u}a(y,"getDefaultCommandDir");async function K(e){let n=new Map,o=e??u;try{await l.mkdir(o,{recursive:!0});let r=await l.readdir(o);for(let t of r){let m=c.extname(t),f=t.replace(m,"");if(m===".md"){try{let d=await l.readFile(c.join(o,t),"utf-8"),i=(d.split(`
2
+ import{$ as un,$a as fo,A as Q,Aa as $n,Ab as qo,B as T,Ba as qn,Bb as zo,C as U,Ca as zn,Cb as Bo,D as V,Da as Bn,Db as Eo,E as Y,Ea as En,Eb as Go,F as Z,Fa as Gn,Fb as Ho,G as tt,Ga as Hn,Gb as Jo,H as nt,Ha as Jn,Hb as Qo,I as ot,Ia as Qn,Ib as To,J as et,Ja as Tn,Jb as Uo,K as rt,Ka as Un,Kb as Vo,L as at,La as Vn,Lb as Yo,M as pt,Ma as Yn,Mb as Zo,N as lt,Na as Zn,Nb as te,O as ut,Oa as to,Ob as ne,P as ft,Pa as no,Pb as oe,Q as nn,Qa as oo,Qb as ee,R as on,Ra as eo,Rb as re,S as en,Sa as ro,Sb as ae,T as rn,Ta as ao,Tb as me,U as an,Ua as mo,Ub as ie,V as mn,Va as io,W as sn,Wa as so,X as cn,Xa as co,Y as dn,Ya as po,Z as pn,Za as lo,_ as ln,_a as uo,a as D,aa as fn,ab as go,b as P,ba as gn,bb as Co,c as M,ca as Cn,cb as xo,d as b,da as xn,db as yo,e as w,ea as yn,eb as Ko,f as N,fa as Kn,fb as Xo,g as _,ga as Xn,gb as ho,h as j,ha as hn,hb as Do,i as k,ia as Dn,ib as Po,j as A,ja as Pn,jb as Mo,k as O,ka as Mn,kb as bo,l as R,la as bn,lb as wo,m as S,ma as wn,mb as No,n as v,na as Nn,nb as _o,o as I,oa as _n,ob as jo,p as L,pa as jn,pb as ko,q as W,qa as kn,qb as Ao,r as F,ra as An,rb as Oo,s as $,sa as On,sb as Ro,t as q,ta as Rn,tb as So,u as z,ua as Sn,ub as vo,v as B,va as vn,vb as Io,w as E,wa as In,wb as Lo,x as G,xa as Ln,xb as Wo,y as H,ya as Wn,yb as Fo,z as J,za as Fn,zb as $o}from"./chunks/chunk-VACH6QWN.js";import"./chunks/chunk-4SHP3M67.js";import{I as Gt,J as Ht,K as Jt,L as Qt,M as Tt,R as Ut,S as Vt,a as mt,b as it,c as st,d as ct,e as dt,f as gt,h as Ct,k as xt,l as yt,m as Kt,n as It,p as Lt,q as Wt,r as Ft,s as $t,sa as Yt,ta as Zt,u as qt,ua as tn,v as zt,w as Bt,x as Et}from"./chunks/chunk-YSVPF6SN.js";import{C as jt,D as kt,E as At,F as Ot,G as Rt,J as St,N as vt,e as Xt,f as ht,g as Dt,h as Pt,i as Mt,k as bt,l as wt,m as Nt,n as _t}from"./chunks/chunk-3WWPJGPQ.js";import"./chunks/chunk-LZKGOR2C.js";import"./chunks/chunk-MJFPFRGK.js";import"./chunks/chunk-KN6IJMTB.js";import"./chunks/chunk-PCPFLPS4.js";import"./chunks/chunk-TCLSPUTR.js";import"./chunks/chunk-N2N2W3AQ.js";import{a}from"./chunks/chunk-V4WSBIXB.js";import l from"fs/promises";import c from"path";import x from"os";var u=c.join(x.homedir(),".kodax","commands");function y(){return u}a(y,"getDefaultCommandDir");async function K(e){let n=new Map,o=e??u;try{await l.mkdir(o,{recursive:!0});let r=await l.readdir(o);for(let t of r){let m=c.extname(t),f=t.replace(m,"");if(m===".md"){try{let d=await l.readFile(c.join(o,t),"utf-8"),i=(d.split(`
3
3
  `)[0]?.replace(/^#\s*/,"").trim()??"").slice(0,60)||"(prompt command)";n.set(f,{name:f,description:i,content:d,type:"prompt"})}catch{}continue}if(m===".js"||m===".ts")try{let g=await import(c.join(o,t));for(let[i,p]of Object.entries(g))if(i.startsWith("command_")&&typeof p=="function"){let s=i.replace("command_",""),C=p.description??s;n.set(s,{name:s,description:String(C).slice(0,60),content:`[Programmable command: ${s}]`,type:"programmable",execute:p})}}catch{}}}catch{}return n}a(K,"loadCommands");async function X(e,n,o,r){let t=o.get(e);return t?t.type==="prompt"?n?t.content.replace(/{args}/g,n):t.content:t.type==="programmable"&&t.execute?t.execute({args:n,runAgent:r}):null:null}a(X,"processCommandCall");function h(e){if(!e.startsWith("/"))return null;let n=e.slice(1).trim();if(!n)return null;let o=n.search(/\s/);if(o===-1)return[n];let r=n.slice(0,o),t=n.slice(o).trim();return t?[r,t]:[r]}a(h,"parseCommandCall");export{Xn as App,nn as AutocompleteContextProvider,Yt as BUILTIN_COMMANDS,Gn as BackgroundTaskBar,Jn as ChildActivitySurface,So as ConsoleCapturer,dt as DEFAULT_UI_STATE,$n as DialogSurface,pn as DotsIndicator,Qo as FileSessionStorage,Dn as FullscreenTranscriptLayout,gn as HistoryItemRenderer,sn as InputPrompt,u as KODAX_COMMANDS_DIR,Dt as KODAX_CONFIG_FILE,Xt as KODAX_DIR,ht as KODAX_SESSIONS_DIR,Nt as KODAX_VERSION,ft as KeyMatchers,ct as KeypressHandlerPriority,ot as KeypressParser,lt as KeypressProvider,L as LRUCache,fn as LoadingIndicator,io as MemorySessionStorage,Pn as MessageActions,Cn as MessageList,Mn as MessageSelector,zn as NotificationsSurface,gt as PERMISSION_MODES,Pt as PREVIEW_MAX_LENGTH,wo as PendingInputsIndicator,ln as ProgressIndicator,wn as PromptComposer,jn as PromptFooter,Nn as PromptFooterLeftSide,_n as PromptFooterRightSide,kn as PromptHelpMenu,Fn as PromptSuggestionsSurface,qn as QueuedCommandsSurface,hn as SimpleApp,cn as SimpleInputPrompt,xn as SimpleMessageDisplay,Kn as SimpleStatusBar,tt as SingleLineTextInput,dn as Spinner,En as StashNotice,yn as StatusBar,Bn as StatusNoticesSurface,Tn as StreamingProvider,mt as StreamingState,Wn as SuggestionsDisplay,st as TOOL_STATUS_ICONS,an as TextBuffer,Z as TextInput,un as ThinkingIndicator,Mo as ToolCallDisplay,it as ToolCallStatus,bo as ToolGroup,Po as ToolProgressBar,Do as ToolStatusBadge,bn as TranscriptViewport,Sn as UIStateProvider,eo as _resetQueuedPromptsCacheForTests,re as archiveSession,mo as bootstrapAutoMode,J as calculateVisualCursorFromLayout,H as calculateVisualLayout,zt as collectBashWriteTargets,xt as computeConfirmTools,Xo as createCliEvents,On as createHistoryItem,ro as createInteractiveContext,ho as createJsonEvents,to as createKeyMatcher,pt as createKeypressManager,so as createMemorySessionStorage,xo as createRecoveryHistoryItem,go as createRetryHistoryItem,ie as createSessionManager,Qn as createStreamingManager,Rn as createToolCall,Q as darkTheme,To as dedupeSessions,ee as deleteSession,Ro as detectTerminalCapabilities,j as detectTerminalHostProfile,_ as detectTerminalRenderHost,yo as emitRecoveryHistoryItem,Co as emitRetryHistoryItem,tn as executeCommand,co as executeShellCommand,Jt as extractHistorySeedsFromMessage,Qt as extractHistorySeedsFromMessages,Tt as extractTextContent,Ut as extractTitle,Zo as forkSession,Vt as formatMessagePreview,An as generateId,Ft as generateSavePattern,Bt as getBashOutsideProjectWriteRisk,q as getCharAtCodePoint,W as getCodePointLength,$o as getCustomProviderConfig,y as getDefaultCommandDir,St as getGitRoot,at as getKeyDisplayName,Eo as getMcpServerConfig,Et as getPlanModeBlockReason,jt as getProviderList,_t as getProviderModel,S as getTerminalHostCapabilities,Ao as getTerminalWidth,V as getTheme,Y as getThemeNames,wt as getVersion,$ as getVisualWidth,G as getVisualWidthCached,P as hasCursorUpViewportYankRisk,b as hasMainScreenRenderScrollRisk,Mt as hydrateProcessEnvFromShell,$t as isAlwaysConfirmPath,It as isBashReadCommand,Lt as isBashWriteCommand,I as isClassicReplForced,et as isFunctionKey,v as isOwnedRendererPreferred,qt as isPathInsideProject,yt as isPermissionMode,rt as isPrintable,kt as isProviderConfigured,M as isRemoteConptyHost,Oo as isScreenReader,po as isShellCommand,lo as isShellCommandSuccess,w as isTmuxControlMode,Wt as isToolCallAllowed,D as isVsCodeTerminalHostEnv,F as isWideChar,Fo as listCustomProviders,Bo as listMcpServers,oe as listRunningSessions,Uo as listSessions,K as loadCommands,At as loadConfig,Yo as loadFullTranscript,Vo as loadSession,Hn as measureChildActivitySurfaceRows,T as minimalTheme,Kt as normalizePermissionMode,Zt as parseCommand,h as parseCommandCall,nt as parseKeypress,Ct as permissionModeDisplayName,Ot as prepareRuntimeConfig,X as processCommandCall,Wo as processSpecialSyntax,vt as rateLimitedCall,bt as registerConfiguredCustomProviders,zo as removeCustomProvider,Ho as removeMcpServer,N as resetTmuxControlModeProbeForTesting,k as resolveConfiguredTuiRendererMode,A as resolveEffectiveTuiRendererMode,R as resolveFullscreenPolicy,O as resolveInteractiveSurfacePreference,fo as restoreHistoryItemsFromSession,te as rewindSession,Ko as runInkInteractiveMode,Lo as runInteractiveMode,Rt as saveConfig,Gt as seedToHistoryItem,ne as setActiveEntry,z as splitByCodePoints,_o as supports256Colors,ko as supportsEmoji,No as supportsTrueColor,jo as supportsUnicode,U as themes,Ht as toolCallSeedToHistoryToolCall,ao as touchContext,uo as trimPersistedUiHistorySnapshot,B as truncateByVisualWidth,ae as unarchiveSession,qo as upsertCustomProvider,Go as upsertMcpServer,en as useAutocomplete,on as useAutocompleteContext,rn as useInputHistory,Zn as useKeypress,ut as useKeypressManager,oo as useQueuedPromptContents,no as useQueuedPrompts,Yn as useStreaming,Vn as useStreamingActions,Un as useStreamingState,mn as useTextBuffer,Ln as useUI,In as useUIActions,vn as useUIState,Jo as validateMcpServerConfig,E as visualWidthCache,me as watchSessions,vo as withCapture,Io as withCaptureSync};
@@ -1,8 +1,9 @@
1
- export { c as CreatableHistoryItem, e as DeleteSessionResult, F as FullTranscriptSessionData, r as HistorySeedSourceMessage, v as ListSessionsOptions, R as RestoreHistoryItemsFromSessionInput, y as RestoredHistorySeed, z as RunningSessionInfo, S as SessionManager, B as SessionSummary, E as SessionTranscriptEntry, G as SessionTranscriptEntryType, a3 as WatchSessionsCallback, a4 as archiveSession, a5 as createSessionManager, a6 as deleteSession, a7 as extractHistorySeedsFromMessage, a8 as extractHistorySeedsFromMessages, ab as forkSession, ad as listRunningSessions, ae as listSessions, af as loadFullTranscript, ag as loadSession, ah as restoreHistoryItemsFromSession, ai as rewindSession, ak as setActiveEntry, an as unarchiveSession, ao as watchSessions } from './types-chunks/sdk-session-SjrnWb4-.js';
2
- 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-Bj82oJhD.js';
3
- import './types-chunks/storage.d-BAuJ0Ks7.js';
4
- import './types-chunks/bash-prefix-extractor.d-LUGkQHcd.js';
5
- import './types-chunks/base.d-BBNUF9nz.js';
1
+ export { c as CreatableHistoryItem, e as DeleteSessionResult, F as FullTranscriptSessionData, r as HistorySeedSourceMessage, v as ListSessionsOptions, R as RestoreHistoryItemsFromSessionInput, y as RestoredHistorySeed, z as RunningSessionInfo, S as SessionManager, B as SessionSummary, E as SessionTranscriptEntry, G as SessionTranscriptEntryType, a3 as WatchSessionsCallback, a4 as archiveSession, a5 as createSessionManager, a6 as deleteSession, a7 as extractHistorySeedsFromMessage, a8 as extractHistorySeedsFromMessages, ab as forkSession, ad as listRunningSessions, ae as listSessions, af as loadFullTranscript, ag as loadSession, ah as restoreHistoryItemsFromSession, ai as rewindSession, ak as setActiveEntry, an as unarchiveSession, ao as watchSessions } from './types-chunks/sdk-session-DAScB0rW.js';
2
+ 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-BZncyzEj.js';
3
+ import './types-chunks/storage.d-CPvn9qI0.js';
4
+ import './types-chunks/bash-prefix-extractor.d-BgvMbfq6.js';
5
+ import './types-chunks/types.d-6VOXvF88.js';
6
6
  import 'vscode-languageserver-protocol';
7
7
  import './types-chunks/capability.d-3C62G8Eq.js';
8
+ import './types-chunks/base.d-BnjQrSVf.js';
8
9
  import './types-chunks/cost-tracker.d-wRtyEW9d.js';
@@ -1,2 +1,2 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{$a as o,Jb as i,Kb as t,Lb as r,Mb as n,Nb as a,Ob as S,Pb as l,Qb as y,Rb as d,Sb as m,Tb as p,Ub as c}from"./chunks/chunk-RGPPZOD5.js";import{K as s,L as e}from"./chunks/chunk-HQCLPWRI.js";import"./chunks/chunk-FRI7UQSB.js";import"./chunks/chunk-ZBK3DZ3S.js";import"./chunks/chunk-EVIDQWMF.js";import"./chunks/chunk-MX4G42EV.js";import"./chunks/chunk-THAKTCPE.js";import"./chunks/chunk-7C2QUBLE.js";import"./chunks/chunk-JCDO2FR4.js";import"./chunks/chunk-V4WSBIXB.js";export{d as archiveSession,c as createSessionManager,y as deleteSession,s as extractHistorySeedsFromMessage,e as extractHistorySeedsFromMessages,n as forkSession,l as listRunningSessions,i as listSessions,r as loadFullTranscript,t as loadSession,o as restoreHistoryItemsFromSession,a as rewindSession,S as setActiveEntry,m as unarchiveSession,p as watchSessions};
2
+ import{$a as o,Jb as i,Kb as t,Lb as r,Mb as n,Nb as a,Ob as S,Pb as l,Qb as y,Rb as d,Sb as m,Tb as p,Ub as c}from"./chunks/chunk-VACH6QWN.js";import"./chunks/chunk-4SHP3M67.js";import{K as s,L as e}from"./chunks/chunk-YSVPF6SN.js";import"./chunks/chunk-3WWPJGPQ.js";import"./chunks/chunk-LZKGOR2C.js";import"./chunks/chunk-MJFPFRGK.js";import"./chunks/chunk-KN6IJMTB.js";import"./chunks/chunk-PCPFLPS4.js";import"./chunks/chunk-TCLSPUTR.js";import"./chunks/chunk-N2N2W3AQ.js";import"./chunks/chunk-V4WSBIXB.js";export{d as archiveSession,c as createSessionManager,y as deleteSession,s as extractHistorySeedsFromMessage,e as extractHistorySeedsFromMessages,n as forkSession,l as listRunningSessions,i as listSessions,r as loadFullTranscript,t as loadSession,o as restoreHistoryItemsFromSession,a as rewindSession,S as setActiveEntry,m as unarchiveSession,p as watchSessions};
@@ -1,2 +1,2 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{Ac as k,Bc as r,Cc as S,Dc as s,Ec as n,Fc as g,Gc as u,Hc as c,Ic as x,Jc as d,Kc as P,Lc as R,Mc as h,Nc as p,Oc as v,Pc as y,Qc as M,Rc as f,Sc as m,Tc as E,rc as l,sc as e,tc as i,uc as t,vc as a,wc as o}from"./chunks/chunk-JCDO2FR4.js";import"./chunks/chunk-V4WSBIXB.js";export{y as SkillExecutor,R as SkillRegistry,x as VariableResolver,t as clearPluginSkillPaths,M as createExecutor,d as createResolver,n as discoverSkills,u as discoverSkillsWithMonorepo,f as executeSkill,m as expandSkillForLLM,E as formatSkillActivationMessage,a as getDefaultSkillPaths,g as getNestedSkillPaths,o as getSkillPathsFlat,h as getSkillRegistry,p as initializeSkillRegistry,i as listPluginSkillPaths,S as loadFullSkill,s as loadSkillFileContent,r as loadSkillMetadata,c as parseArguments,k as parseSkillMarkdown,l as registerPluginSkillPath,v as resetSkillRegistry,P as resolveSkillContent,e as unregisterPluginSkillPath};
2
+ import{Cc as k,Dc as r,Ec as S,Fc as s,Gc as n,Hc as g,Ic as u,Jc as c,Kc as x,Lc as d,Mc as P,Nc as R,Oc as h,Pc as p,Qc as v,Rc as y,Sc as M,Tc as f,Uc as m,Vc as E,tc as l,uc as e,vc as i,wc as t,xc as a,yc as o}from"./chunks/chunk-N2N2W3AQ.js";import"./chunks/chunk-V4WSBIXB.js";export{y as SkillExecutor,R as SkillRegistry,x as VariableResolver,t as clearPluginSkillPaths,M as createExecutor,d as createResolver,n as discoverSkills,u as discoverSkillsWithMonorepo,f as executeSkill,m as expandSkillForLLM,E as formatSkillActivationMessage,a as getDefaultSkillPaths,g as getNestedSkillPaths,o as getSkillPathsFlat,h as getSkillRegistry,p as initializeSkillRegistry,i as listPluginSkillPaths,S as loadFullSkill,s as loadSkillFileContent,r as loadSkillMetadata,c as parseArguments,k as parseSkillMarkdown,l as registerPluginSkillPath,v as resetSkillRegistry,P as resolveSkillContent,e as unregisterPluginSkillPath};