@kodax-ai/kodax 0.7.56 → 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 +33 -0
  2. package/README.md +21 -23
  3. package/README_CN.md +15 -17
  4. package/dist/builtin/code-review/SKILL.md +22 -3
  5. package/dist/chunks/{agent-MAAKRAF2.js → agent-EHWQZA4C.js} +1 -1
  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-EDDVNP2B.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 -17
  24. package/dist/index.js +6 -6
  25. package/dist/kodax_cli.js +1098 -1073
  26. package/dist/provider-capabilities.json +986 -197
  27. package/dist/sdk-agent.d.ts +20 -13
  28. package/dist/sdk-agent.js +1 -1
  29. package/dist/sdk-coding.d.ts +140 -110
  30. package/dist/sdk-coding.js +1 -1
  31. package/dist/sdk-llm.d.ts +5 -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 +48 -5
  36. package/dist/sdk-media.js +1 -1
  37. package/dist/sdk-repl.d.ts +106 -97
  38. package/dist/sdk-repl.js +1 -1
  39. package/dist/sdk-session.d.ts +6 -6
  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-CwPfI8WQ.d.ts → base.d-BnjQrSVf.d.ts} +36 -6
  44. package/dist/types-chunks/{bash-prefix-extractor.d-DZF1gDDz.d.ts → bash-prefix-extractor.d-BgvMbfq6.d.ts} +190 -135
  45. package/dist/types-chunks/{capsule.d-D0kjnqYy.d.ts → capsule.d-DwJp5r63.d.ts} +14 -11
  46. package/dist/types-chunks/{types.d-BKuHSiR0.d.ts → guardrail.d-BP3yyr6u.d.ts} +3 -121
  47. package/dist/types-chunks/{guardrail.d-DQQknOfb.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-BdiIUr8T.d.ts → process.d-BZncyzEj.d.ts} +2 -1
  50. package/dist/types-chunks/{resolver.d-Djq8KlCE.d.ts → resolver.d-ZvKQgl0X.d.ts} +82 -18
  51. package/dist/types-chunks/{sdk-session-BP6ZNpOp.d.ts → sdk-session-DAScB0rW.d.ts} +6 -4
  52. package/dist/types-chunks/{storage.d-CkydxFsV.d.ts → storage.d-CPvn9qI0.d.ts} +2 -2
  53. package/dist/types-chunks/{types.d-BJmoMf5H.d.ts → types.d-6VOXvF88.d.ts} +101 -22
  54. package/dist/types-chunks/types.d-D8WcfrOD.d.ts +143 -0
  55. package/dist/types-chunks/{utils.d-bC97IuQZ.d.ts → utils.d-CpgVIjYZ.d.ts} +16 -18
  56. package/package.json +11 -6
  57. package/dist/chunks/argument-completer-OWEXGWNL.js +0 -2
  58. package/dist/chunks/chunk-4OHXHC2S.js +0 -314
  59. package/dist/chunks/chunk-5YJIAP6C.js +0 -551
  60. package/dist/chunks/chunk-7EAGBLRV.js +0 -2
  61. package/dist/chunks/chunk-CDGOEK3T.js +0 -31
  62. package/dist/chunks/chunk-DHETLULC.js +0 -425
  63. package/dist/chunks/chunk-JCDO2FR4.js +0 -584
  64. package/dist/chunks/chunk-NZVJ3DFC.js +0 -656
  65. package/dist/chunks/chunk-QI3MRJGU.js +0 -5
  66. package/dist/chunks/chunk-XXQ3RLA2.js +0 -2
  67. package/dist/chunks/dist-2267YGB5.js +0 -2
  68. package/dist/chunks/dist-GW32CHO5.js +0 -2
  69. package/dist/chunks/paste-5IDBBQQ3.js +0 -2
  70. package/dist/chunks/utils-J7XBBZGB.js +0 -2
@@ -1,21 +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-BP6ZNpOp.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-BP6ZNpOp.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-bC97IuQZ.js';
5
- import { v as KodaXEvents, m as KodaXAgentMode, aA as ProviderRecoveryEvent, a as BashPrefixExtractor, a2 as KodaXResult } from './types-chunks/bash-prefix-extractor.d-DZF1gDDz.js';
6
- import { e as QueuedMessage } from './types-chunks/types.d-BKuHSiR0.js';
7
- import { b as PermissionMode } from './types-chunks/storage.d-CkydxFsV.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-CkydxFsV.js';
9
- import { h as KodaXCustomProviderConfig } from './types-chunks/types.d-BJmoMf5H.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-DQQknOfb.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-BdiIUr8T.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-CwPfI8WQ.js';
16
+ import './types-chunks/base.d-BnjQrSVf.js';
17
17
  import './types-chunks/cost-tracker.d-wRtyEW9d.js';
18
18
  import './types-chunks/config.d-CJy1WENT.js';
19
+ import './types-chunks/guardrail.d-BP3yyr6u.js';
19
20
 
20
21
  /**
21
22
  * App - KodaX CLI root component.
@@ -133,57 +134,57 @@ declare const KeyMatchers: {
133
134
  /**
134
135
  * StreamingContext - Streaming Response Handling
135
136
  *
136
- * Reference implementation based on Gemini CLI's StreamingContext architecture - 鍙傝€?Gemini CLI 鐨?StreamingContext 鏋舵瀯瀹炵幇
137
- * 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 - 管理流式响应状态、取消操作和错误处理
138
139
  */
139
140
 
140
141
  /**
141
- * Iteration record - 杩唬璁板綍
142
- * 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 和响应快照
143
144
  */
144
145
  interface IterationRecord {
145
- /** Iteration number (1-based) - 杩唬搴忓彿锛堜粠1寮€濮嬶級 */
146
+ /** Iteration number (1-based) - 迭代序号(从1开始) */
146
147
  iteration: number;
147
- /** Thinking content summary (truncated) - Thinking 鍐呭鎽樿锛堟埅鏂級 */
148
+ /** Thinking content summary (truncated) - Thinking 内容摘要(截断) */
148
149
  thinkingSummary: string;
149
- /** Full thinking content length - 瀹屾暣 thinking 鍐呭闀垮害 */
150
+ /** Full thinking content length - 完整 thinking 内容长度 */
150
151
  thinkingLength: number;
151
- /** Response content - 鍝嶅簲鍐呭 */
152
+ /** Response content - 响应内容 */
152
153
  response: string;
153
- /** Tools used in this iteration - 鏈疆浣跨敤鐨勫伐鍏?*/
154
+ /** Tools used in this iteration - 本轮使用的工具 */
154
155
  toolsUsed: string[];
155
156
  }
156
157
  /**
157
- * Streaming context value - 娴佸紡涓婁笅鏂囧€?
158
+ * Streaming context value - 流式上下文值
158
159
  */
159
160
  interface StreamingContextValue {
160
- /** 褰撳墠娴佸紡鐘舵€?*/
161
+ /** 当前流式状态 */
161
162
  state: StreamingState;
162
163
  /** 褰撳墠姝e湪娴佸紡浼犺緭鐨勫搷搴?*/
163
164
  currentResponse: string;
164
- /** 閿欒淇℃伅 */
165
+ /** 错误信息 */
165
166
  error?: string;
166
167
  /** 鐢ㄤ簬鍙栨秷璇锋眰鐨?AbortController */
167
168
  abortController?: AbortController;
168
- /** 鏄惁姝e湪 thinking */
169
+ /** 是否正在 thinking */
169
170
  isThinking: boolean;
170
- /** Thinking 瀛楃璁℃暟 */
171
+ /** Thinking 字符计数 */
171
172
  thinkingCharCount: number;
172
- /** Thinking 鍐呭 (鐢ㄤ簬UI鏄剧ず) */
173
+ /** Thinking 内容 (用于UI显示) */
173
174
  thinkingContent: string;
174
- /** 褰撳墠鎵ц鐨勫伐鍏峰悕绉?*/
175
+ /** 当前执行的工具名称 */
175
176
  currentTool?: string;
176
- /** 宸ュ叿杈撳叆瀛楃璁℃暟 */
177
+ /** 工具输入字符计数 */
177
178
  toolInputCharCount: number;
178
- /** 宸ュ叿杈撳叆鍐呭 (鐢ㄤ簬UI鏄剧ず鍙傛暟鎽樿) */
179
+ /** 工具输入内容 (用于UI显示参数摘要) */
179
180
  toolInputContent: string;
180
- /** Iteration history - 杩唬鍘嗗彶 */
181
+ /** Iteration history - 迭代历史 */
181
182
  iterationHistory: IterationRecord[];
182
- /** Current iteration number (1-based) - 褰撳墠杩唬搴忓彿锛堜粠1寮€濮嬶級 */
183
+ /** Current iteration number (1-based) - 当前迭代序号(从1开始) */
183
184
  currentIteration: number;
184
- /** Maximum iterations allowed - 鏈€澶у厑璁歌凯浠f鏁?*/
185
+ /** Maximum iterations allowed - 最大允许迭代次数 */
185
186
  maxIter: number;
186
- /** 鏄惁姝e湪鍘嬬缉涓婁笅鏂?*/
187
+ /** 是否正在压缩上下文 */
187
188
  isCompacting: boolean;
188
189
  pendingInputs: string[];
189
190
  /**
@@ -213,51 +214,51 @@ interface AbortOptions {
213
214
  * Streaming actions interface - 娴佸紡鎿嶄綔鎺ュ彛
214
215
  */
215
216
  interface StreamingActions {
216
- /** 寮€濮嬫祦寮忓搷搴?*/
217
+ /** 开始流式响应 */
217
218
  startStreaming: () => void;
218
- /** 鍋滄娴佸紡鍝嶅簲 */
219
+ /** 停止流式响应 */
219
220
  stopStreaming: () => void;
220
- /** 杩藉姞鍝嶅簲鏂囨湰 */
221
+ /** 追加响应文本 */
221
222
  appendResponse: (text: string) => void;
222
- /** 娓呯┖鍝嶅簲 */
223
+ /** 清空响应 */
223
224
  clearResponse: () => void;
224
- /** 璁剧疆閿欒 */
225
+ /** 设置错误 */
225
226
  setError: (error: string | undefined) => void;
226
- /** 鍙栨秷褰撳墠娴佸紡鍝嶅簲 */
227
+ /** 取消当前流式响应 */
227
228
  abort: (options?: AbortOptions) => void;
228
- /** 閲嶇疆鐘舵€?*/
229
+ /** 重置状态 */
229
230
  reset: () => void;
230
- /** 寮€濮?thinking */
231
+ /** 开始 thinking */
231
232
  startThinking: () => void;
232
- /** 杩藉姞 thinking 瀛楃鏁?*/
233
+ /** 追加 thinking 字符数 */
233
234
  appendThinkingChars: (count: number) => void;
234
- /** 杩藉姞 thinking 鍐呭 */
235
+ /** 追加 thinking 内容 */
235
236
  appendThinkingContent: (text: string) => void;
236
- /** 缁撴潫 thinking */
237
+ /** 结束 thinking */
237
238
  stopThinking: () => void;
238
- /** 娓呯┖ thinking 鍐呭 (鍝嶅簲瀹屾垚鏃惰皟鐢? */
239
+ /** 清空 thinking 内容 (响应完成时调用) */
239
240
  clearThinkingContent: () => void;
240
241
  /** 璁剧疆褰撳墠宸ュ叿 */
241
242
  setCurrentTool: (tool: string | undefined) => void;
242
- /** 杩藉姞宸ュ叿杈撳叆瀛楃鏁?*/
243
+ /** 追加工具输入字符数 */
243
244
  appendToolInputChars: (count: number) => void;
244
- /** 杩藉姞宸ュ叿杈撳叆鍐呭 */
245
+ /** 追加工具输入内容 */
245
246
  appendToolInputContent: (text: string) => void;
246
- /** 娓呯┖宸ュ叿杈撳叆鍐呭 */
247
+ /** 清空工具输入内容 */
247
248
  clearToolInputContent: () => void;
248
- /** 鑾峰彇褰撳墠鐨?AbortSignal (鐢ㄤ簬浼犻€掔粰 API 璇锋眰) */
249
+ /** 获取当前的 AbortSignal (用于传递给 API 请求) */
249
250
  getSignal: () => AbortSignal | undefined;
250
- /** 鑾峰彇瀹屾暣鍝嶅簲鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級- 鐢ㄤ簬涓柇鏃朵繚瀛?*/
251
+ /** 获取完整响应内容(包括缓冲区中未刷新的内容)- 用于中断时保存 */
251
252
  getFullResponse: () => string;
252
- /** 鑾峰彇瀹屾暣 thinking 鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級- 鐢ㄤ簬鎸佷箙鍖栧巻鍙茶褰?*/
253
+ /** 获取完整 thinking 内容(包括缓冲区中未刷新的内容)- 用于持久化历史记录 */
253
254
  getThinkingContent: () => string;
254
- /** 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 - 开始新迭代,保存当前内容到历史并清空 */
255
256
  startNewIteration: (iteration: number) => void;
256
- /** Clear iteration history - 娓呯┖杩唬鍘嗗彶 */
257
+ /** Clear iteration history - 清空迭代历史 */
257
258
  clearIterationHistory: () => void;
258
- /** Set maximum iterations - 璁剧疆鏈€澶ц凯浠f鏁?*/
259
+ /** Set maximum iterations - 设置最大迭代次数 */
259
260
  setMaxIter: (maxIter: number) => void;
260
- /** 寮€濮嬪帇缂╀笂涓嬫枃 */
261
+ /** 开始压缩上下文 */
261
262
  startCompacting: () => void;
262
263
  /** 缁撴潫鍘嬬缉涓婁笅鏂?*/
263
264
  stopCompacting: () => void;
@@ -268,66 +269,66 @@ interface StreamingActions {
268
269
  consumePendingInputs: () => string[];
269
270
  }
270
271
  /**
271
- * State change listener - 鐘舵€佸彉鏇寸洃鍚櫒
272
+ * State change listener - 状态变更监听器
272
273
  */
273
274
  type StreamingStateListener = (state: StreamingContextValue) => void;
274
275
  /**
275
276
  * Streaming manager interface - 娴佸紡绠$悊鍣ㄦ帴鍙?
276
277
  */
277
278
  interface StreamingManager {
278
- /** 鑾峰彇褰撳墠鐘舵€?*/
279
+ /** 获取当前状态 */
279
280
  getState: () => StreamingContextValue;
280
- /** 璁剧疆娴佸紡鐘舵€?*/
281
+ /** 设置流式状态 */
281
282
  setState: (state: StreamingState) => void;
282
- /** 寮€濮嬫祦寮忓搷搴?*/
283
+ /** 开始流式响应 */
283
284
  startStreaming: () => void;
284
- /** 鍋滄娴佸紡鍝嶅簲 */
285
+ /** 停止流式响应 */
285
286
  stopStreaming: () => void;
286
- /** 杩藉姞鍝嶅簲鏂囨湰 */
287
+ /** 追加响应文本 */
287
288
  appendResponse: (text: string) => void;
288
- /** 娓呯┖鍝嶅簲 */
289
+ /** 清空响应 */
289
290
  clearResponse: () => void;
290
- /** 璁剧疆閿欒 */
291
+ /** 设置错误 */
291
292
  setError: (error: string | undefined) => void;
292
- /** 鍙栨秷褰撳墠娴佸紡鍝嶅簲 */
293
+ /** 取消当前流式响应 */
293
294
  abort: (options?: AbortOptions) => void;
294
- /** 閲嶇疆鐘舵€?*/
295
+ /** 重置状态 */
295
296
  reset: () => void;
296
- /** 鏄惁姝e湪娴佸紡浼犺緭 */
297
+ /** 是否正在流式传输 */
297
298
  isStreaming: () => boolean;
298
- /** 璁㈤槄鐘舵€佸彉鏇?*/
299
+ /** 订阅状态变更 */
299
300
  subscribe: (listener: StreamingStateListener) => () => void;
300
- /** 寮€濮?thinking */
301
+ /** 开始 thinking */
301
302
  startThinking: () => void;
302
- /** 杩藉姞 thinking 瀛楃鏁?*/
303
+ /** 追加 thinking 字符数 */
303
304
  appendThinkingChars: (count: number) => void;
304
- /** 杩藉姞 thinking 鍐呭 */
305
+ /** 追加 thinking 内容 */
305
306
  appendThinkingContent: (text: string) => void;
306
- /** 缁撴潫 thinking */
307
+ /** 结束 thinking */
307
308
  stopThinking: () => void;
308
- /** 娓呯┖ thinking 鍐呭 (鍝嶅簲瀹屾垚鏃惰皟鐢? */
309
+ /** 清空 thinking 内容 (响应完成时调用) */
309
310
  clearThinkingContent: () => void;
310
311
  /** 璁剧疆褰撳墠宸ュ叿 */
311
312
  setCurrentTool: (tool: string | undefined) => void;
312
- /** 杩藉姞宸ュ叿杈撳叆瀛楃鏁?*/
313
+ /** 追加工具输入字符数 */
313
314
  appendToolInputChars: (count: number) => void;
314
- /** 杩藉姞宸ュ叿杈撳叆鍐呭 */
315
+ /** 追加工具输入内容 */
315
316
  appendToolInputContent: (text: string) => void;
316
- /** 娓呯┖宸ュ叿杈撳叆鍐呭 */
317
+ /** 清空工具输入内容 */
317
318
  clearToolInputContent: () => void;
318
319
  /** 鑾峰彇褰撳墠鐨?AbortSignal */
319
320
  getSignal: () => AbortSignal | undefined;
320
- /** 鑾峰彇瀹屾暣鍝嶅簲鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級 */
321
+ /** 获取完整响应内容(包括缓冲区中未刷新的内容) */
321
322
  getFullResponse: () => string;
322
- /** 鑾峰彇瀹屾暣 thinking 鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級 */
323
+ /** 获取完整 thinking 内容(包括缓冲区中未刷新的内容) */
323
324
  getThinkingContent: () => string;
324
- /** Start a new iteration - 寮€濮嬫柊杩唬 */
325
+ /** Start a new iteration - 开始新迭代 */
325
326
  startNewIteration: (iteration: number) => void;
326
- /** Clear iteration history - 娓呯┖杩唬鍘嗗彶 */
327
+ /** Clear iteration history - 清空迭代历史 */
327
328
  clearIterationHistory: () => void;
328
- /** Set maximum iterations - 璁剧疆鏈€澶ц凯浠f鏁?*/
329
+ /** Set maximum iterations - 设置最大迭代次数 */
329
330
  setMaxIter: (maxIter: number) => void;
330
- /** Start compacting context - 寮€濮嬪帇缂╀笂涓嬫枃 */
331
+ /** Start compacting context - 开始压缩上下文 */
331
332
  startCompacting: () => void;
332
333
  /** Stop compacting context - 缁撴潫鍘嬬缉涓婁笅鏂?*/
333
334
  stopCompacting: () => void;
@@ -347,9 +348,9 @@ interface StreamingManager {
347
348
  /**
348
349
  * Create streaming manager - 鍒涘缓娴佸紡绠$悊鍣?
349
350
  *
350
- * Issue 048 fix: Use batch updates to reduce render frequency - Issue 048 淇: 浣跨敤鎵归噺鏇存柊鍑忓皯娓叉煋棰戠巼
351
- * - Buffer streaming text and thinking content to 80ms cycle - 娴佸紡鏂囨湰鍜?thinking 鍐呭缂撳啿鍒?80ms 鍛ㄦ湡
352
- * - 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 动画同步,避免竞态条件
353
354
  */
354
355
  declare function createStreamingManager(): StreamingManager;
355
356
  interface StreamingProviderProps {
@@ -361,15 +362,15 @@ interface StreamingProviderProps {
361
362
  */
362
363
  declare function StreamingProvider({ children, onStateChange, }: StreamingProviderProps): React$1.ReactElement;
363
364
  /**
364
- * Get streaming state - 鑾峰彇娴佸紡鐘舵€?
365
+ * Get streaming state - 获取流式状态
365
366
  */
366
367
  declare function useStreamingState(): StreamingContextValue;
367
368
  /**
368
- * Get streaming actions - 鑾峰彇娴佸紡鎿嶄綔
369
+ * Get streaming actions - 获取流式操作
369
370
  */
370
371
  declare function useStreamingActions(): StreamingActions;
371
372
  /**
372
- * Get complete streaming state and actions - 鑾峰彇瀹屾暣娴佸紡鐘舵€佸拰鎿嶄綔
373
+ * Get complete streaming state and actions - 获取完整流式状态和操作
373
374
  */
374
375
  declare function useStreaming(): {
375
376
  state: StreamingContextValue;
@@ -410,27 +411,27 @@ declare const SingleLineTextInput: React$1.FC<{
410
411
  }>;
411
412
 
412
413
  /**
413
- * InputPrompt - Input prompt component - 鏉堟挸鍙嗛幓鎰仛缂佸嫪娆?
414
+ * InputPrompt - Input prompt component - 输入提示组件
414
415
  *
415
416
  * Integrates multi-line input, history navigation, keyboard shortcuts
416
- * through a dedicated prompt input controller. - 闁俺绻冮悪顒傜彌閻ㄥ嫯绶崗銉﹀付閸掕泛娅掗梿鍡樺灇婢舵俺顢戞潏鎾冲弳閵嗕礁宸婚崣鎻掝嚤閼割亜鎷伴柨顔炬磸韫囶偅宓庨柨顔衡偓?
417
+ * through a dedicated prompt input controller. - 通过独立的输入控制器集成多行输入、历史导航和键盘快捷键
417
418
  */
418
419
 
419
420
  /**
420
421
  * Extended props for InputPrompt with autocomplete support
421
- * InputPrompt 閻ㄥ嫭澧跨仦鏇炵潣閹嶇礉閺€顖涘瘮閼奉亜濮╃悰銉ュ弿
422
+ * InputPrompt 的扩展属性,支持自动补全
422
423
  */
423
424
  interface InputPromptAutocompleteProps extends InputPromptProps {
424
425
  /** Working directory for file completion - 閺傚洣娆㈢悰銉ュ弿閻ㄥ嫬浼愭担婊呮窗瑜?*/
425
426
  cwd?: string;
426
- /** Git root for skill discovery - 閹垛偓閼宠棄褰傞悳鎵畱 Git 閺嶅湱娲拌ぐ?*/
427
+ /** Git root for skill discovery - 技能发现的 Git 根目录 */
427
428
  gitRoot?: string;
428
- /** Whether autocomplete is enabled (default: true) - 閺勵垰鎯侀崥顖滄暏閼奉亜濮╃悰銉ュ弿閿涘牓绮拋銈忕窗true閿?*/
429
+ /** Whether autocomplete is enabled (default: true) - 是否启用自动补全(默认:true) */
429
430
  autocompleteEnabled?: boolean;
430
431
  }
431
432
  declare const InputPrompt: React$1.FC<InputPromptAutocompleteProps>;
432
433
  /**
433
- * Simplified InputPrompt - single-line mode - 缁犫偓閸栨牜澧?InputPrompt - 閸楁洝顢戝Ο鈥崇础
434
+ * Simplified InputPrompt - single-line mode - 简化版 InputPrompt - 单行模式
434
435
  */
435
436
  declare const SimpleInputPrompt: React$1.FC<{
436
437
  onSubmit: (text: string) => void;
@@ -2293,9 +2294,12 @@ declare function getPlanModeBlockReason(toolName: string, input: Record<string,
2293
2294
  * config (FEATURE_092 v0.7.34 hotfix-3). They are evaluated on every
2294
2295
  * classify() call, so mid-session `/model` and `/provider` swaps DO
2295
2296
  * retarget the classifier without the user re-entering auto mode.
2296
- * `claudeMd` and `rules` remain captured-at-init by design (CLAUDE.md
2297
- * and `~/.kodax/auto-rules.jsonc` mid-session edits are rare; restart
2298
- * 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.
2299
2303
  */
2300
2304
 
2301
2305
  interface AutoModeBootstrapDeps {
@@ -2307,7 +2311,6 @@ interface AutoModeBootstrapDeps {
2307
2311
  */
2308
2312
  readonly askUser: AutoModeAskUser;
2309
2313
  readonly projectRoot: string;
2310
- readonly getAgentsFiles: () => AgentsFile[];
2311
2314
  readonly getCurrentProviderName: () => string;
2312
2315
  readonly getCurrentModel: () => string | undefined;
2313
2316
  readonly getCurrentPermissionMode: () => PermissionMode;
@@ -2352,6 +2355,12 @@ interface ResolvedAutoModeBootstrapSettings {
2352
2355
  readonly classifierModel?: string;
2353
2356
  readonly classifierModelEnv?: string;
2354
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;
2355
2364
  }
2356
2365
  interface AutoModeBootstrapResult {
2357
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-4OHXHC2S.js";import"./chunks/chunk-XXQ3RLA2.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-5YJIAP6C.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-7EAGBLRV.js";import"./chunks/chunk-ZBK3DZ3S.js";import"./chunks/chunk-DHETLULC.js";import"./chunks/chunk-NZVJ3DFC.js";import"./chunks/chunk-QI3MRJGU.js";import"./chunks/chunk-CDGOEK3T.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,9 +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-BP6ZNpOp.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-BdiIUr8T.js';
3
- import './types-chunks/storage.d-CkydxFsV.js';
4
- import './types-chunks/bash-prefix-extractor.d-DZF1gDDz.js';
5
- import './types-chunks/types.d-BJmoMf5H.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-CwPfI8WQ.js';
8
+ import './types-chunks/base.d-BnjQrSVf.js';
9
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-4OHXHC2S.js";import"./chunks/chunk-XXQ3RLA2.js";import{K as s,L as e}from"./chunks/chunk-5YJIAP6C.js";import"./chunks/chunk-7EAGBLRV.js";import"./chunks/chunk-ZBK3DZ3S.js";import"./chunks/chunk-DHETLULC.js";import"./chunks/chunk-NZVJ3DFC.js";import"./chunks/chunk-QI3MRJGU.js";import"./chunks/chunk-CDGOEK3T.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};