@kodax-ai/kodax 0.7.56 → 0.7.58

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 (79) hide show
  1. package/CHANGELOG.md +2004 -1887
  2. package/README.md +52 -48
  3. package/README_CN.md +37 -32
  4. package/dist/builtin/code-review/SKILL.md +22 -3
  5. package/dist/chunks/agent-YJNC2755.js +2 -0
  6. package/dist/chunks/argument-completer-QGBNXTYJ.js +2 -0
  7. package/dist/chunks/chunk-526OILYL.js +2 -0
  8. package/dist/chunks/{chunk-ZBK3DZ3S.js → chunk-6AU6EPO6.js} +1 -1
  9. package/dist/chunks/chunk-73Z7BK5H.js +15 -0
  10. package/dist/chunks/chunk-7QB55SYG.js +326 -0
  11. package/dist/chunks/chunk-CQ6EQG7E.js +322 -0
  12. package/dist/chunks/chunk-CV6JHPEO.js +2 -0
  13. package/dist/chunks/chunk-D6QVXQNI.js +1 -0
  14. package/dist/chunks/chunk-HS2K74I4.js +31 -0
  15. package/dist/chunks/chunk-NKHXRN7G.js +403 -0
  16. package/dist/chunks/chunk-OBPB5BQ6.js +310 -0
  17. package/dist/chunks/chunk-P4VF3JEP.js +7 -0
  18. package/dist/chunks/chunk-PIQWODWN.js +18 -0
  19. package/dist/chunks/chunk-QHWXPJEG.js +601 -0
  20. package/dist/chunks/chunk-XXEIFNBE.js +52 -0
  21. package/dist/chunks/chunk-ZZDC75H4.js +681 -0
  22. package/dist/chunks/compaction-config-OPMRZSAK.js +2 -0
  23. package/dist/chunks/{construction-bootstrap-EDDVNP2B.js → construction-bootstrap-CIXFH5SE.js} +4 -4
  24. package/dist/chunks/dist-JSE7NICF.js +2 -0
  25. package/dist/chunks/dist-SDNQOW52.js +2 -0
  26. package/dist/chunks/host-H7FQMMRC.js +2 -0
  27. package/dist/chunks/{paste-5IDBBQQ3.js → paste-Y4DVUWSM.js} +1 -1
  28. package/dist/chunks/run-manager-4H5HWMVW.js +2 -0
  29. package/dist/chunks/utils-FLVVQHM7.js +2 -0
  30. package/dist/index.d.ts +22 -18
  31. package/dist/index.js +6 -6
  32. package/dist/kodax_cli.js +1303 -1108
  33. package/dist/provider-capabilities.json +986 -197
  34. package/dist/sdk-agent.d.ts +162 -14
  35. package/dist/sdk-agent.js +1 -1
  36. package/dist/sdk-coding.d.ts +285 -255
  37. package/dist/sdk-coding.js +1 -1
  38. package/dist/sdk-llm.d.ts +66 -43
  39. package/dist/sdk-llm.js +1 -1
  40. package/dist/sdk-mcp.d.ts +1 -1
  41. package/dist/sdk-mcp.js +1 -1
  42. package/dist/sdk-media.d.ts +64 -5
  43. package/dist/sdk-media.js +1 -1
  44. package/dist/sdk-repl.d.ts +114 -107
  45. package/dist/sdk-repl.js +2 -2
  46. package/dist/sdk-session.d.ts +7 -7
  47. package/dist/sdk-session.js +1 -1
  48. package/dist/sdk-skills.js +1 -1
  49. package/dist/semantic-worker.js +11 -0
  50. package/dist/types-chunks/{base.d-CwPfI8WQ.d.ts → base.d-BA9Doaj_.d.ts} +38 -8
  51. package/dist/types-chunks/{bash-prefix-extractor.d-DZF1gDDz.d.ts → bash-prefix-extractor.d-D3cddmyV.d.ts} +639 -163
  52. package/dist/types-chunks/capability-learning.d-DRV80ISB.d.ts +29 -0
  53. package/dist/types-chunks/{cost-tracker.d-wRtyEW9d.d.ts → cost-tracker.d-CBLk1fiD.d.ts} +24 -2
  54. package/dist/types-chunks/{guardrail.d-DQQknOfb.d.ts → guardrail.d-iK7FwMdW.d.ts} +32 -10
  55. package/dist/types-chunks/{manager.d-DLmDhX3i.d.ts → manager.d-DBD7SOTT.d.ts} +7 -2
  56. package/dist/types-chunks/{process.d-BdiIUr8T.d.ts → process.d-DHow2y2G.d.ts} +170 -14
  57. package/dist/types-chunks/{resolver.d-Djq8KlCE.d.ts → resolver.d-DDOfVYDr.d.ts} +111 -18
  58. package/dist/types-chunks/{capsule.d-D0kjnqYy.d.ts → run-manager.d-ByDcJc5g.d.ts} +124 -13
  59. package/dist/types-chunks/{sdk-session-BP6ZNpOp.d.ts → sdk-session-21Tt3N_x.d.ts} +74 -9
  60. package/dist/types-chunks/{storage.d-CkydxFsV.d.ts → storage.d-BsZrBPYu.d.ts} +2 -2
  61. package/dist/types-chunks/{types.d-BJmoMf5H.d.ts → types.d-Ci5YPFEh.d.ts} +135 -22
  62. package/dist/types-chunks/{types.d-BKuHSiR0.d.ts → types.d-D4ZA8LJV.d.ts} +7 -3
  63. package/dist/types-chunks/{utils.d-bC97IuQZ.d.ts → utils.d-BURxOxFd.d.ts} +94 -19
  64. package/package.json +12 -7
  65. package/dist/chunks/agent-MAAKRAF2.js +0 -2
  66. package/dist/chunks/argument-completer-OWEXGWNL.js +0 -2
  67. package/dist/chunks/chunk-4OHXHC2S.js +0 -314
  68. package/dist/chunks/chunk-5YJIAP6C.js +0 -551
  69. package/dist/chunks/chunk-7EAGBLRV.js +0 -2
  70. package/dist/chunks/chunk-CDGOEK3T.js +0 -31
  71. package/dist/chunks/chunk-DHETLULC.js +0 -425
  72. package/dist/chunks/chunk-JCDO2FR4.js +0 -584
  73. package/dist/chunks/chunk-NZVJ3DFC.js +0 -656
  74. package/dist/chunks/chunk-QI3MRJGU.js +0 -5
  75. package/dist/chunks/chunk-XXQ3RLA2.js +0 -2
  76. package/dist/chunks/compaction-config-NAJEEPG5.js +0 -2
  77. package/dist/chunks/dist-2267YGB5.js +0 -2
  78. package/dist/chunks/dist-GW32CHO5.js +0 -2
  79. package/dist/chunks/utils-J7XBBZGB.js +0 -2
@@ -1,21 +1,21 @@
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, a0 as UIState, c as CreatableHistoryItem, f as HistoryItem, Z as ToolCall, $ as UIActions, K as KeyInfo, u as KeypressHandler, O as StreamingState, x as PromptEditingMode, I as InputPromptProps, N as StatusBarProps, W as Theme, _ as ToolCallStatus, Q as Suggestion, a1 as UseTextBufferReturn, H as HistoryEntry, P as PastedContent, l as HistoryItemInfo } from './types-chunks/sdk-session-21Tt3N_x.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 HistoryItemSidecar, n as HistoryItemSystem, o as HistoryItemThinking, p as HistoryItemToolGroup, q as HistoryItemType, r as HistoryItemUser, s as HistorySeedSourceMessage, t as KeypressEvent, v as KeypressHandlerPriority, L as LegacyMessageListProps, w as ListSessionsOptions, y as PromptSubmitPayload, R as RestoreHistoryItemsFromSessionInput, z as RestoredHistorySeed, B as RunningSessionInfo, S as SessionManager, E as SessionSummary, G as SessionTranscriptEntry, J as SessionTranscriptEntryType, T as TOOL_STATUS_ICONS, U as TextBuffer, V as TextBufferOptions, X as ThemeColors, Y as ThemeSymbols, a2 as VisualCursor, a3 as VisualLayout, a4 as WatchSessionsCallback, a5 as archiveSession, a6 as createSessionManager, a7 as deleteSession, a8 as extractHistorySeedsFromMessage, a9 as extractHistorySeedsFromMessages, aa as extractTextContent, ab as extractTitle, ac as forkSession, ad as formatMessagePreview, ae as listRunningSessions, af as listSessions, ag as loadFullTranscript, ah as loadSession, ai as restoreHistoryItemsFromSession, aj as rewindSession, ak as seedToHistoryItem, al as setActiveEntry, am as toolCallSeedToHistoryToolCall, an as trimPersistedUiHistorySnapshot, ao as unarchiveSession, ap as watchSessions } from './types-chunks/sdk-session-21Tt3N_x.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_EXAMPLE_CONFIG_FILE, g as KODAX_SESSIONS_DIR, h as KODAX_VERSION, P as PREVIEW_MAX_LENGTH, R as RepLOptions, i as createInteractiveContext, j as ensureExampleConfigFile, k as executeCommand, l as getGitRoot, m as getProviderList, n as getProviderModel, o as getVersion, p as hydrateProcessEnvFromShell, q as isProviderConfigured, r as loadConfig, s as parseCommand, t as prepareRuntimeConfig, u as processSpecialSyntax, v as rateLimitedCall, w as registerConfiguredCustomProviders, x as runInkInteractiveMode, y as runInteractiveMode, z as saveConfig, A as touchContext } from './types-chunks/utils.d-BURxOxFd.js';
5
+ import { x as KodaXEvents, m as KodaXAgentMode, aA as ProviderRecoveryEvent, a as BashPrefixExtractor, Z as KodaXResult } from './types-chunks/bash-prefix-extractor.d-D3cddmyV.js';
6
+ import { f as QueuedMessage } from './types-chunks/types.d-D4ZA8LJV.js';
7
+ import { b as PermissionMode } from './types-chunks/storage.d-BsZrBPYu.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-BsZrBPYu.js';
9
+ import { d as KodaXCustomProviderConfig } from './types-chunks/types.d-Ci5YPFEh.js';
10
+ import { a as McpServerConfig, b as McpServersConfig } from './types-chunks/config.d-CJy1WENT.js';
11
+ export { ai as KodaXSessionUiHistoryItem, aj as KodaXSessionUiHistoryItemType, ak as KodaXSessionUiTextHistoryItem, al as KodaXSessionUiTextHistoryItemType, am as KodaXSessionUiToolCall, an as KodaXSessionUiToolCallStatus, ao as KodaXSessionUiToolGroupHistoryItem } from './types-chunks/process.d-DHow2y2G.js';
12
+ import { a as AutoModeAskUser, S as SignalCollector, g as AutoModeToolGuardrail, o as RulesLoadResult } from './types-chunks/guardrail.d-iK7FwMdW.js';
12
13
  import 'readline';
13
14
  import 'child_process';
14
15
  import 'vscode-languageserver-protocol';
16
+ import './types-chunks/cost-tracker.d-CBLk1fiD.js';
15
17
  import './types-chunks/capability.d-3C62G8Eq.js';
16
- import './types-chunks/base.d-CwPfI8WQ.js';
17
- import './types-chunks/cost-tracker.d-wRtyEW9d.js';
18
- import './types-chunks/config.d-CJy1WENT.js';
18
+ import './types-chunks/base.d-BA9Doaj_.js';
19
19
 
20
20
  /**
21
21
  * App - KodaX CLI root component.
@@ -133,57 +133,57 @@ declare const KeyMatchers: {
133
133
  /**
134
134
  * StreamingContext - Streaming Response Handling
135
135
  *
136
- * Reference implementation based on Gemini CLI's StreamingContext architecture - 鍙傝€?Gemini CLI 鐨?StreamingContext 鏋舵瀯瀹炵幇
137
- * Manages streaming response state, cancellation operations, and error handling - 绠$悊娴佸紡鍝嶅簲鐘舵€併€佸彇娑堟搷浣滃拰閿欒澶勭悊
136
+ * Reference implementation based on Gemini CLI's StreamingContext architecture - 参考 Gemini CLI StreamingContext 架构实现
137
+ * Manages streaming response state, cancellation operations, and error handling - 管理流式响应状态、取消操作和错误处理
138
138
  */
139
139
 
140
140
  /**
141
- * Iteration record - 杩唬璁板綍
142
- * Stores a snapshot of one iteration's thinking and response - 瀛樺偍涓€杞凯浠g殑 thinking 鍜屽搷搴斿揩鐓?
141
+ * Iteration record - 迭代记录
142
+ * Stores a snapshot of one iteration's thinking and response - 存储一轮迭代的 thinking 和响应快照
143
143
  */
144
144
  interface IterationRecord {
145
- /** Iteration number (1-based) - 杩唬搴忓彿锛堜粠1寮€濮嬶級 */
145
+ /** Iteration number (1-based) - 迭代序号(从1开始) */
146
146
  iteration: number;
147
- /** Thinking content summary (truncated) - Thinking 鍐呭鎽樿锛堟埅鏂級 */
147
+ /** Thinking content summary (truncated) - Thinking 内容摘要(截断) */
148
148
  thinkingSummary: string;
149
- /** Full thinking content length - 瀹屾暣 thinking 鍐呭闀垮害 */
149
+ /** Full thinking content length - 完整 thinking 内容长度 */
150
150
  thinkingLength: number;
151
- /** Response content - 鍝嶅簲鍐呭 */
151
+ /** Response content - 响应内容 */
152
152
  response: string;
153
- /** Tools used in this iteration - 鏈疆浣跨敤鐨勫伐鍏?*/
153
+ /** Tools used in this iteration - 本轮使用的工具 */
154
154
  toolsUsed: string[];
155
155
  }
156
156
  /**
157
- * Streaming context value - 娴佸紡涓婁笅鏂囧€?
157
+ * Streaming context value - 流式上下文值
158
158
  */
159
159
  interface StreamingContextValue {
160
- /** 褰撳墠娴佸紡鐘舵€?*/
160
+ /** 当前流式状态 */
161
161
  state: StreamingState;
162
162
  /** 褰撳墠姝e湪娴佸紡浼犺緭鐨勫搷搴?*/
163
163
  currentResponse: string;
164
- /** 閿欒淇℃伅 */
164
+ /** 错误信息 */
165
165
  error?: string;
166
166
  /** 鐢ㄤ簬鍙栨秷璇锋眰鐨?AbortController */
167
167
  abortController?: AbortController;
168
- /** 鏄惁姝e湪 thinking */
168
+ /** 是否正在 thinking */
169
169
  isThinking: boolean;
170
- /** Thinking 瀛楃璁℃暟 */
170
+ /** Thinking 字符计数 */
171
171
  thinkingCharCount: number;
172
- /** Thinking 鍐呭 (鐢ㄤ簬UI鏄剧ず) */
172
+ /** Thinking 内容 (用于UI显示) */
173
173
  thinkingContent: string;
174
- /** 褰撳墠鎵ц鐨勫伐鍏峰悕绉?*/
174
+ /** 当前执行的工具名称 */
175
175
  currentTool?: string;
176
- /** 宸ュ叿杈撳叆瀛楃璁℃暟 */
176
+ /** 工具输入字符计数 */
177
177
  toolInputCharCount: number;
178
- /** 宸ュ叿杈撳叆鍐呭 (鐢ㄤ簬UI鏄剧ず鍙傛暟鎽樿) */
178
+ /** 工具输入内容 (用于UI显示参数摘要) */
179
179
  toolInputContent: string;
180
- /** Iteration history - 杩唬鍘嗗彶 */
180
+ /** Iteration history - 迭代历史 */
181
181
  iterationHistory: IterationRecord[];
182
- /** Current iteration number (1-based) - 褰撳墠杩唬搴忓彿锛堜粠1寮€濮嬶級 */
182
+ /** Current iteration number (1-based) - 当前迭代序号(从1开始) */
183
183
  currentIteration: number;
184
- /** Maximum iterations allowed - 鏈€澶у厑璁歌凯浠f鏁?*/
184
+ /** Maximum iterations allowed - 最大允许迭代次数 */
185
185
  maxIter: number;
186
- /** 鏄惁姝e湪鍘嬬缉涓婁笅鏂?*/
186
+ /** 是否正在压缩上下文 */
187
187
  isCompacting: boolean;
188
188
  pendingInputs: string[];
189
189
  /**
@@ -213,51 +213,51 @@ interface AbortOptions {
213
213
  * Streaming actions interface - 娴佸紡鎿嶄綔鎺ュ彛
214
214
  */
215
215
  interface StreamingActions {
216
- /** 寮€濮嬫祦寮忓搷搴?*/
216
+ /** 开始流式响应 */
217
217
  startStreaming: () => void;
218
- /** 鍋滄娴佸紡鍝嶅簲 */
218
+ /** 停止流式响应 */
219
219
  stopStreaming: () => void;
220
- /** 杩藉姞鍝嶅簲鏂囨湰 */
220
+ /** 追加响应文本 */
221
221
  appendResponse: (text: string) => void;
222
- /** 娓呯┖鍝嶅簲 */
222
+ /** 清空响应 */
223
223
  clearResponse: () => void;
224
- /** 璁剧疆閿欒 */
224
+ /** 设置错误 */
225
225
  setError: (error: string | undefined) => void;
226
- /** 鍙栨秷褰撳墠娴佸紡鍝嶅簲 */
226
+ /** 取消当前流式响应 */
227
227
  abort: (options?: AbortOptions) => void;
228
- /** 閲嶇疆鐘舵€?*/
228
+ /** 重置状态 */
229
229
  reset: () => void;
230
- /** 寮€濮?thinking */
230
+ /** 开始 thinking */
231
231
  startThinking: () => void;
232
- /** 杩藉姞 thinking 瀛楃鏁?*/
232
+ /** 追加 thinking 字符数 */
233
233
  appendThinkingChars: (count: number) => void;
234
- /** 杩藉姞 thinking 鍐呭 */
234
+ /** 追加 thinking 内容 */
235
235
  appendThinkingContent: (text: string) => void;
236
- /** 缁撴潫 thinking */
236
+ /** 结束 thinking */
237
237
  stopThinking: () => void;
238
- /** 娓呯┖ thinking 鍐呭 (鍝嶅簲瀹屾垚鏃惰皟鐢? */
238
+ /** 清空 thinking 内容 (响应完成时调用) */
239
239
  clearThinkingContent: () => void;
240
240
  /** 璁剧疆褰撳墠宸ュ叿 */
241
241
  setCurrentTool: (tool: string | undefined) => void;
242
- /** 杩藉姞宸ュ叿杈撳叆瀛楃鏁?*/
242
+ /** 追加工具输入字符数 */
243
243
  appendToolInputChars: (count: number) => void;
244
- /** 杩藉姞宸ュ叿杈撳叆鍐呭 */
244
+ /** 追加工具输入内容 */
245
245
  appendToolInputContent: (text: string) => void;
246
- /** 娓呯┖宸ュ叿杈撳叆鍐呭 */
246
+ /** 清空工具输入内容 */
247
247
  clearToolInputContent: () => void;
248
- /** 鑾峰彇褰撳墠鐨?AbortSignal (鐢ㄤ簬浼犻€掔粰 API 璇锋眰) */
248
+ /** 获取当前的 AbortSignal (用于传递给 API 请求) */
249
249
  getSignal: () => AbortSignal | undefined;
250
- /** 鑾峰彇瀹屾暣鍝嶅簲鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級- 鐢ㄤ簬涓柇鏃朵繚瀛?*/
250
+ /** 获取完整响应内容(包括缓冲区中未刷新的内容)- 用于中断时保存 */
251
251
  getFullResponse: () => string;
252
- /** 鑾峰彇瀹屾暣 thinking 鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級- 鐢ㄤ簬鎸佷箙鍖栧巻鍙茶褰?*/
252
+ /** 获取完整 thinking 内容(包括缓冲区中未刷新的内容)- 用于持久化历史记录 */
253
253
  getThinkingContent: () => string;
254
- /** Start a new iteration - saves current content to history and clears for next round - 寮€濮嬫柊杩唬锛屼繚瀛樺綋鍓嶅唴瀹瑰埌鍘嗗彶骞舵竻绌?*/
254
+ /** Start a new iteration - saves current content to history and clears for next round - 开始新迭代,保存当前内容到历史并清空 */
255
255
  startNewIteration: (iteration: number) => void;
256
- /** Clear iteration history - 娓呯┖杩唬鍘嗗彶 */
256
+ /** Clear iteration history - 清空迭代历史 */
257
257
  clearIterationHistory: () => void;
258
- /** Set maximum iterations - 璁剧疆鏈€澶ц凯浠f鏁?*/
258
+ /** Set maximum iterations - 设置最大迭代次数 */
259
259
  setMaxIter: (maxIter: number) => void;
260
- /** 寮€濮嬪帇缂╀笂涓嬫枃 */
260
+ /** 开始压缩上下文 */
261
261
  startCompacting: () => void;
262
262
  /** 缁撴潫鍘嬬缉涓婁笅鏂?*/
263
263
  stopCompacting: () => void;
@@ -268,66 +268,66 @@ interface StreamingActions {
268
268
  consumePendingInputs: () => string[];
269
269
  }
270
270
  /**
271
- * State change listener - 鐘舵€佸彉鏇寸洃鍚櫒
271
+ * State change listener - 状态变更监听器
272
272
  */
273
273
  type StreamingStateListener = (state: StreamingContextValue) => void;
274
274
  /**
275
275
  * Streaming manager interface - 娴佸紡绠$悊鍣ㄦ帴鍙?
276
276
  */
277
277
  interface StreamingManager {
278
- /** 鑾峰彇褰撳墠鐘舵€?*/
278
+ /** 获取当前状态 */
279
279
  getState: () => StreamingContextValue;
280
- /** 璁剧疆娴佸紡鐘舵€?*/
280
+ /** 设置流式状态 */
281
281
  setState: (state: StreamingState) => void;
282
- /** 寮€濮嬫祦寮忓搷搴?*/
282
+ /** 开始流式响应 */
283
283
  startStreaming: () => void;
284
- /** 鍋滄娴佸紡鍝嶅簲 */
284
+ /** 停止流式响应 */
285
285
  stopStreaming: () => void;
286
- /** 杩藉姞鍝嶅簲鏂囨湰 */
286
+ /** 追加响应文本 */
287
287
  appendResponse: (text: string) => void;
288
- /** 娓呯┖鍝嶅簲 */
288
+ /** 清空响应 */
289
289
  clearResponse: () => void;
290
- /** 璁剧疆閿欒 */
290
+ /** 设置错误 */
291
291
  setError: (error: string | undefined) => void;
292
- /** 鍙栨秷褰撳墠娴佸紡鍝嶅簲 */
292
+ /** 取消当前流式响应 */
293
293
  abort: (options?: AbortOptions) => void;
294
- /** 閲嶇疆鐘舵€?*/
294
+ /** 重置状态 */
295
295
  reset: () => void;
296
- /** 鏄惁姝e湪娴佸紡浼犺緭 */
296
+ /** 是否正在流式传输 */
297
297
  isStreaming: () => boolean;
298
- /** 璁㈤槄鐘舵€佸彉鏇?*/
298
+ /** 订阅状态变更 */
299
299
  subscribe: (listener: StreamingStateListener) => () => void;
300
- /** 寮€濮?thinking */
300
+ /** 开始 thinking */
301
301
  startThinking: () => void;
302
- /** 杩藉姞 thinking 瀛楃鏁?*/
302
+ /** 追加 thinking 字符数 */
303
303
  appendThinkingChars: (count: number) => void;
304
- /** 杩藉姞 thinking 鍐呭 */
304
+ /** 追加 thinking 内容 */
305
305
  appendThinkingContent: (text: string) => void;
306
- /** 缁撴潫 thinking */
306
+ /** 结束 thinking */
307
307
  stopThinking: () => void;
308
- /** 娓呯┖ thinking 鍐呭 (鍝嶅簲瀹屾垚鏃惰皟鐢? */
308
+ /** 清空 thinking 内容 (响应完成时调用) */
309
309
  clearThinkingContent: () => void;
310
310
  /** 璁剧疆褰撳墠宸ュ叿 */
311
311
  setCurrentTool: (tool: string | undefined) => void;
312
- /** 杩藉姞宸ュ叿杈撳叆瀛楃鏁?*/
312
+ /** 追加工具输入字符数 */
313
313
  appendToolInputChars: (count: number) => void;
314
- /** 杩藉姞宸ュ叿杈撳叆鍐呭 */
314
+ /** 追加工具输入内容 */
315
315
  appendToolInputContent: (text: string) => void;
316
- /** 娓呯┖宸ュ叿杈撳叆鍐呭 */
316
+ /** 清空工具输入内容 */
317
317
  clearToolInputContent: () => void;
318
318
  /** 鑾峰彇褰撳墠鐨?AbortSignal */
319
319
  getSignal: () => AbortSignal | undefined;
320
- /** 鑾峰彇瀹屾暣鍝嶅簲鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級 */
320
+ /** 获取完整响应内容(包括缓冲区中未刷新的内容) */
321
321
  getFullResponse: () => string;
322
- /** 鑾峰彇瀹屾暣 thinking 鍐呭锛堝寘鎷紦鍐插尯涓湭鍒锋柊鐨勫唴瀹癸級 */
322
+ /** 获取完整 thinking 内容(包括缓冲区中未刷新的内容) */
323
323
  getThinkingContent: () => string;
324
- /** Start a new iteration - 寮€濮嬫柊杩唬 */
324
+ /** Start a new iteration - 开始新迭代 */
325
325
  startNewIteration: (iteration: number) => void;
326
- /** Clear iteration history - 娓呯┖杩唬鍘嗗彶 */
326
+ /** Clear iteration history - 清空迭代历史 */
327
327
  clearIterationHistory: () => void;
328
- /** Set maximum iterations - 璁剧疆鏈€澶ц凯浠f鏁?*/
328
+ /** Set maximum iterations - 设置最大迭代次数 */
329
329
  setMaxIter: (maxIter: number) => void;
330
- /** Start compacting context - 寮€濮嬪帇缂╀笂涓嬫枃 */
330
+ /** Start compacting context - 开始压缩上下文 */
331
331
  startCompacting: () => void;
332
332
  /** Stop compacting context - 缁撴潫鍘嬬缉涓婁笅鏂?*/
333
333
  stopCompacting: () => void;
@@ -347,9 +347,9 @@ interface StreamingManager {
347
347
  /**
348
348
  * Create streaming manager - 鍒涘缓娴佸紡绠$悊鍣?
349
349
  *
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 鍔ㄧ敾鍚屾锛岄伩鍏嶇珵鎬佹潯浠?
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 动画同步,避免竞态条件
353
353
  */
354
354
  declare function createStreamingManager(): StreamingManager;
355
355
  interface StreamingProviderProps {
@@ -361,15 +361,15 @@ interface StreamingProviderProps {
361
361
  */
362
362
  declare function StreamingProvider({ children, onStateChange, }: StreamingProviderProps): React$1.ReactElement;
363
363
  /**
364
- * Get streaming state - 鑾峰彇娴佸紡鐘舵€?
364
+ * Get streaming state - 获取流式状态
365
365
  */
366
366
  declare function useStreamingState(): StreamingContextValue;
367
367
  /**
368
- * Get streaming actions - 鑾峰彇娴佸紡鎿嶄綔
368
+ * Get streaming actions - 获取流式操作
369
369
  */
370
370
  declare function useStreamingActions(): StreamingActions;
371
371
  /**
372
- * Get complete streaming state and actions - 鑾峰彇瀹屾暣娴佸紡鐘舵€佸拰鎿嶄綔
372
+ * Get complete streaming state and actions - 获取完整流式状态和操作
373
373
  */
374
374
  declare function useStreaming(): {
375
375
  state: StreamingContextValue;
@@ -410,27 +410,27 @@ declare const SingleLineTextInput: React$1.FC<{
410
410
  }>;
411
411
 
412
412
  /**
413
- * InputPrompt - Input prompt component - 鏉堟挸鍙嗛幓鎰仛缂佸嫪娆?
413
+ * InputPrompt - Input prompt component - 输入提示组件
414
414
  *
415
415
  * Integrates multi-line input, history navigation, keyboard shortcuts
416
- * through a dedicated prompt input controller. - 闁俺绻冮悪顒傜彌閻ㄥ嫯绶崗銉﹀付閸掕泛娅掗梿鍡樺灇婢舵俺顢戞潏鎾冲弳閵嗕礁宸婚崣鎻掝嚤閼割亜鎷伴柨顔炬磸韫囶偅宓庨柨顔衡偓?
416
+ * through a dedicated prompt input controller. - 通过独立的输入控制器集成多行输入、历史导航和键盘快捷键
417
417
  */
418
418
 
419
419
  /**
420
420
  * Extended props for InputPrompt with autocomplete support
421
- * InputPrompt 閻ㄥ嫭澧跨仦鏇炵潣閹嶇礉閺€顖涘瘮閼奉亜濮╃悰銉ュ弿
421
+ * InputPrompt 的扩展属性,支持自动补全
422
422
  */
423
423
  interface InputPromptAutocompleteProps extends InputPromptProps {
424
424
  /** Working directory for file completion - 閺傚洣娆㈢悰銉ュ弿閻ㄥ嫬浼愭担婊呮窗瑜?*/
425
425
  cwd?: string;
426
- /** Git root for skill discovery - 閹垛偓閼宠棄褰傞悳鎵畱 Git 閺嶅湱娲拌ぐ?*/
426
+ /** Git root for skill discovery - 技能发现的 Git 根目录 */
427
427
  gitRoot?: string;
428
- /** Whether autocomplete is enabled (default: true) - 閺勵垰鎯侀崥顖滄暏閼奉亜濮╃悰銉ュ弿閿涘牓绮拋銈忕窗true閿?*/
428
+ /** Whether autocomplete is enabled (default: true) - 是否启用自动补全(默认:true) */
429
429
  autocompleteEnabled?: boolean;
430
430
  }
431
431
  declare const InputPrompt: React$1.FC<InputPromptAutocompleteProps>;
432
432
  /**
433
- * Simplified InputPrompt - single-line mode - 缁犫偓閸栨牜澧?InputPrompt - 閸楁洝顢戝Ο鈥崇础
433
+ * Simplified InputPrompt - single-line mode - 简化版 InputPrompt - 单行模式
434
434
  */
435
435
  declare const SimpleInputPrompt: React$1.FC<{
436
436
  onSubmit: (text: string) => void;
@@ -2000,10 +2000,9 @@ declare function removeCustomProvider(name: string): boolean;
2000
2000
  * mid-turn.
2001
2001
  *
2002
2002
  * Schema: this module relies on TypeScript's structural typing against
2003
- * `KodaXMcpServerConfig` (exported from `@kodax-ai/agent` via the coding
2004
- * barrel). Unlike custom providers which have a runtime validator
2005
- * MCP entries have no canonical zod schema in the SDK today, so the
2006
- * CRUD does shape-level checks only (required `name`, recognized
2003
+ * `KodaXMcpServerConfig` exported directly from `@kodax-ai/agent`. Unlike
2004
+ * custom providers, MCP entries have no canonical zod schema in the SDK today,
2005
+ * so the CRUD does shape-level checks only (required `name`, recognized
2007
2006
  * transport `type`, transport-shape coherence: stdio→command, http-like
2008
2007
  * transports→url). Embedders that need stricter validation can
2009
2008
  * layer it on top.
@@ -2021,13 +2020,13 @@ declare function removeCustomProvider(name: string): boolean;
2021
2020
  * config (use {@link upsertMcpServer} / {@link removeMcpServer} for
2022
2021
  * mutation). Order is undefined (object key order semantics).
2023
2022
  */
2024
- declare function listMcpServers(): KodaXMcpServersConfig;
2023
+ declare function listMcpServers(): McpServersConfig;
2025
2024
  /**
2026
2025
  * Look up a single MCP server config by `name`. Returns `undefined`
2027
2026
  * if no such server is configured. Returned value is a defensive
2028
2027
  * deep copy.
2029
2028
  */
2030
- declare function getMcpServerConfig(name: string): KodaXMcpServerConfig | undefined;
2029
+ declare function getMcpServerConfig(name: string): McpServerConfig | undefined;
2031
2030
  /**
2032
2031
  * Add a new MCP server OR replace an existing one with the same
2033
2032
  * name. Shape is validated via {@link validateMcpServerConfig}; on
@@ -2036,7 +2035,7 @@ declare function getMcpServerConfig(name: string): KodaXMcpServerConfig | undefi
2036
2035
  * Returns the deep-cloned stored shape (so callers can observe the
2037
2036
  * normalized value without re-reading the file).
2038
2037
  */
2039
- declare function upsertMcpServer(name: string, config: KodaXMcpServerConfig): KodaXMcpServerConfig;
2038
+ declare function upsertMcpServer(name: string, config: McpServerConfig): McpServerConfig;
2040
2039
  /**
2041
2040
  * Remove the MCP server identified by `name`. Returns `true` when an
2042
2041
  * entry was removed, `false` when no server with that name existed
@@ -2061,7 +2060,7 @@ declare function removeMcpServer(name: string): boolean;
2061
2060
  * reachable — both are runtime concerns surfaced by McpServerRuntime
2062
2061
  * at connection time.
2063
2062
  */
2064
- declare function validateMcpServerConfig(name: string, config: KodaXMcpServerConfig): void;
2063
+ declare function validateMcpServerConfig(name: string, config: McpServerConfig): void;
2065
2064
 
2066
2065
  type SessionDedupeSkipReason = 'managed-task-worker' | 'unreadable' | 'no-match' | 'ambiguous-match' | 'move-failed';
2067
2066
  interface SessionDedupeOptions {
@@ -2293,9 +2292,12 @@ declare function getPlanModeBlockReason(toolName: string, input: Record<string,
2293
2292
  * config (FEATURE_092 v0.7.34 hotfix-3). They are evaluated on every
2294
2293
  * classify() call, so mid-session `/model` and `/provider` swaps DO
2295
2294
  * 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).
2295
+ * AGENTS.md is wired the same way via the `getClaudeMd` live getter
2296
+ * (FEATURE_092 follow-up) it reads `loadAgentsFiles` (mtime-cached)
2297
+ * on every classify so mid-session AGENTS.md edits reach the classifier
2298
+ * without a restart or `/reload`. Only `rules`
2299
+ * (`~/.kodax/auto-rules.jsonc`) remains captured-at-init; those edits
2300
+ * are rare and a restart applies them.
2299
2301
  */
2300
2302
 
2301
2303
  interface AutoModeBootstrapDeps {
@@ -2307,7 +2309,6 @@ interface AutoModeBootstrapDeps {
2307
2309
  */
2308
2310
  readonly askUser: AutoModeAskUser;
2309
2311
  readonly projectRoot: string;
2310
- readonly getAgentsFiles: () => AgentsFile[];
2311
2312
  readonly getCurrentProviderName: () => string;
2312
2313
  readonly getCurrentModel: () => string | undefined;
2313
2314
  readonly getCurrentPermissionMode: () => PermissionMode;
@@ -2352,6 +2353,12 @@ interface ResolvedAutoModeBootstrapSettings {
2352
2353
  readonly classifierModel?: string;
2353
2354
  readonly classifierModelEnv?: string;
2354
2355
  readonly timeoutMs?: number;
2356
+ /**
2357
+ * Issue 143 (WS3): speculative-classify quiet window in ms. Forwarded to the
2358
+ * guardrail's `speculativeWindowMs`. When undefined, the guardrail falls back
2359
+ * to the `KODAX_AUTO_SPECULATIVE_WINDOW_MS` env / `DEFAULT_WINDOW_MS = 500`.
2360
+ */
2361
+ readonly speculativeWindowMs?: number;
2355
2362
  }
2356
2363
  interface AutoModeBootstrapResult {
2357
2364
  /**
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(`
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};
2
+ import{$ as gn,$a as Co,A as Q,Aa as zn,Ab as Bo,B as T,Ba as Bn,Bb as Eo,C as U,Ca as En,Cb as Go,D as V,Da as Gn,Db as Ho,E as Y,Ea as Hn,Eb as Jo,F as Z,Fa as Jn,Fb as Qo,G as tt,Ga as Qn,Gb as To,H as nt,Ha as Tn,Hb as Uo,I as ot,Ia as Un,Ib as Vo,J as et,Ja as Vn,Jb as Yo,K as rt,Ka as Yn,Kb as Zo,L as at,La as Zn,Lb as te,M as pt,Ma as to,Mb as ne,N as lt,Na as no,Nb as oe,O as ut,Oa as oo,Ob as ee,P as ft,Pa as eo,Pb as re,Q as en,Qa as ro,Qb as ae,R as rn,Ra as ao,Rb as me,S as an,Sa as mo,Sb as ie,T as mn,Ta as io,Tb as se,U as sn,Ua as so,Ub as ce,V as cn,Va as co,W as dn,Wa as po,X as pn,Xa as lo,Y as ln,Ya as uo,Z as un,Za as fo,_ as fn,_a as go,a as D,aa as Cn,ab as xo,b as P,ba as xn,bb as yo,c as M,ca as yn,cb as Ko,d as b,da as Kn,db as Xo,e as w,ea as Xn,eb as ho,f as N,fa as hn,fb as Do,g as _,ga as Dn,gb as Po,h as j,ha as Pn,hb as Mo,i as k,ia as Mn,ib as bo,j as A,ja as bn,jb as wo,k as O,ka as wn,kb as No,l as R,la as Nn,lb as _o,m as S,ma as _n,mb as jo,n as v,na as jn,nb as ko,o as I,oa as kn,ob as Ao,p as L,pa as An,pb as Oo,q as W,qa as On,qb as Ro,r as F,ra as Rn,rb as So,s as $,sa as Sn,sb as vo,t as q,ta as vn,tb as Io,u as z,ua as In,ub as Lo,v as B,va as Ln,vb as Wo,w as E,wa as Wn,wb as Fo,x as G,xa as Fn,xb as $o,y as H,ya as $n,yb as qo,z as J,za as qn,zb as zo}from"./chunks/chunk-OBPB5BQ6.js";import{I as Jt,J as Qt,K as Tt,L as Ut,M as Vt,R as Yt,S as Zt,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 Wt,p as Ft,q as $t,r as qt,s as zt,u as Bt,v as Et,va as tn,w as Gt,wa as nn,x as Ht,xa as on}from"./chunks/chunk-QHWXPJEG.js";import"./chunks/chunk-6AU6EPO6.js";import"./chunks/chunk-CV6JHPEO.js";import{A as kt,B as At,C as Ot,D as Rt,E as St,F as vt,I as It,M as Lt,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,z as jt}from"./chunks/chunk-XXEIFNBE.js";import"./chunks/chunk-NKHXRN7G.js";import"./chunks/chunk-73Z7BK5H.js";import"./chunks/chunk-PIQWODWN.js";import"./chunks/chunk-CQ6EQG7E.js";import"./chunks/chunk-D6QVXQNI.js";import"./chunks/chunk-526OILYL.js";import"./chunks/chunk-7QB55SYG.js";import"./chunks/chunk-HS2K74I4.js";import"./chunks/chunk-ZZDC75H4.js";import"./chunks/chunk-P4VF3JEP.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
+ `)[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{Dn as App,en as AutocompleteContextProvider,tn as BUILTIN_COMMANDS,Jn as BackgroundTaskBar,Tn as ChildActivitySurface,Io as ConsoleCapturer,dt as DEFAULT_UI_STATE,zn as DialogSurface,un as DotsIndicator,Uo as FileSessionStorage,Mn as FullscreenTranscriptLayout,xn as HistoryItemRenderer,dn as InputPrompt,u as KODAX_COMMANDS_DIR,Dt as KODAX_CONFIG_FILE,Xt as KODAX_DIR,Ot as KODAX_EXAMPLE_CONFIG_FILE,ht as KODAX_SESSIONS_DIR,Nt as KODAX_VERSION,ft as KeyMatchers,ct as KeypressHandlerPriority,ot as KeypressParser,lt as KeypressProvider,L as LRUCache,Cn as LoadingIndicator,co as MemorySessionStorage,bn as MessageActions,yn as MessageList,wn as MessageSelector,En as NotificationsSurface,gt as PERMISSION_MODES,Pt as PREVIEW_MAX_LENGTH,_o as PendingInputsIndicator,fn as ProgressIndicator,_n as PromptComposer,An as PromptFooter,jn as PromptFooterLeftSide,kn as PromptFooterRightSide,On as PromptHelpMenu,qn as PromptSuggestionsSurface,Bn as QueuedCommandsSurface,Pn as SimpleApp,pn as SimpleInputPrompt,Kn as SimpleMessageDisplay,hn as SimpleStatusBar,tt as SingleLineTextInput,ln as Spinner,Hn as StashNotice,Xn as StatusBar,Gn as StatusNoticesSurface,Vn as StreamingProvider,mt as StreamingState,$n as SuggestionsDisplay,st as TOOL_STATUS_ICONS,sn as TextBuffer,Z as TextInput,gn as ThinkingIndicator,wo as ToolCallDisplay,it as ToolCallStatus,No as ToolGroup,bo as ToolProgressBar,Mo as ToolStatusBadge,Nn as TranscriptViewport,In as UIStateProvider,ao as _resetQueuedPromptsCacheForTests,me as archiveSession,so as bootstrapAutoMode,J as calculateVisualCursorFromLayout,H as calculateVisualLayout,Et as collectBashWriteTargets,xt as computeConfirmTools,Do as createCliEvents,Sn as createHistoryItem,mo as createInteractiveContext,Po as createJsonEvents,oo as createKeyMatcher,pt as createKeypressManager,po as createMemorySessionStorage,Ko as createRecoveryHistoryItem,xo as createRetryHistoryItem,ce as createSessionManager,Un as createStreamingManager,vn as createToolCall,Q as darkTheme,Vo as dedupeSessions,ae as deleteSession,vo as detectTerminalCapabilities,j as detectTerminalHostProfile,_ as detectTerminalRenderHost,Xo as emitRecoveryHistoryItem,yo as emitRetryHistoryItem,Rt as ensureExampleConfigFile,on as executeCommand,lo as executeShellCommand,Tt as extractHistorySeedsFromMessage,Ut as extractHistorySeedsFromMessages,Vt as extractTextContent,Yt as extractTitle,ne as forkSession,Zt as formatMessagePreview,Rn as generateId,qt as generateSavePattern,Gt as getBashOutsideProjectWriteRisk,q as getCharAtCodePoint,W as getCodePointLength,zo as getCustomProviderConfig,y as getDefaultCommandDir,It as getGitRoot,at as getKeyDisplayName,Ho as getMcpServerConfig,Ht as getPlanModeBlockReason,jt as getProviderList,_t as getProviderModel,S as getTerminalHostCapabilities,Ro 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,zt as isAlwaysConfirmPath,Wt as isBashReadCommand,Ft as isBashWriteCommand,I as isClassicReplForced,et as isFunctionKey,v as isOwnedRendererPreferred,Bt as isPathInsideProject,yt as isPermissionMode,rt as isPrintable,kt as isProviderConfigured,M as isRemoteConptyHost,So as isScreenReader,uo as isShellCommand,fo as isShellCommandSuccess,w as isTmuxControlMode,$t as isToolCallAllowed,D as isVsCodeTerminalHostEnv,F as isWideChar,qo as listCustomProviders,Go as listMcpServers,re as listRunningSessions,Yo as listSessions,K as loadCommands,At as loadConfig,te as loadFullTranscript,Zo as loadSession,Qn as measureChildActivitySurfaceRows,T as minimalTheme,Kt as normalizePermissionMode,nn as parseCommand,h as parseCommandCall,nt as parseKeypress,Ct as permissionModeDisplayName,St as prepareRuntimeConfig,X as processCommandCall,$o as processSpecialSyntax,Lt as rateLimitedCall,bt as registerConfiguredCustomProviders,Eo as removeCustomProvider,Qo as removeMcpServer,N as resetTmuxControlModeProbeForTesting,k as resolveConfiguredTuiRendererMode,A as resolveEffectiveTuiRendererMode,R as resolveFullscreenPolicy,O as resolveInteractiveSurfacePreference,Co as restoreHistoryItemsFromSession,oe as rewindSession,ho as runInkInteractiveMode,Fo as runInteractiveMode,vt as saveConfig,Jt as seedToHistoryItem,ee as setActiveEntry,z as splitByCodePoints,ko as supports256Colors,Oo as supportsEmoji,jo as supportsTrueColor,Ao as supportsUnicode,U as themes,Qt as toolCallSeedToHistoryToolCall,io as touchContext,go as trimPersistedUiHistorySnapshot,B as truncateByVisualWidth,ie as unarchiveSession,Bo as upsertCustomProvider,Jo as upsertMcpServer,an as useAutocomplete,rn as useAutocompleteContext,mn as useInputHistory,no as useKeypress,ut as useKeypressManager,ro as useQueuedPromptContents,eo as useQueuedPrompts,to as useStreaming,Zn as useStreamingActions,Yn as useStreamingState,cn as useTextBuffer,Fn as useUI,Wn as useUIActions,Ln as useUIState,To as validateMcpServerConfig,E as visualWidthCache,se as watchSessions,Lo as withCapture,Wo 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, s as HistorySeedSourceMessage, w as ListSessionsOptions, R as RestoreHistoryItemsFromSessionInput, z as RestoredHistorySeed, B as RunningSessionInfo, S as SessionManager, E as SessionSummary, G as SessionTranscriptEntry, J as SessionTranscriptEntryType, a4 as WatchSessionsCallback, a5 as archiveSession, a6 as createSessionManager, a7 as deleteSession, a8 as extractHistorySeedsFromMessage, a9 as extractHistorySeedsFromMessages, ac as forkSession, ae as listRunningSessions, af as listSessions, ag as loadFullTranscript, ah as loadSession, ai as restoreHistoryItemsFromSession, aj as rewindSession, al as setActiveEntry, ao as unarchiveSession, ap as watchSessions } from './types-chunks/sdk-session-21Tt3N_x.js';
2
+ export { ai as KodaXSessionUiHistoryItem, aj as KodaXSessionUiHistoryItemType, ak as KodaXSessionUiTextHistoryItem, al as KodaXSessionUiTextHistoryItemType, am as KodaXSessionUiToolCall, an as KodaXSessionUiToolCallStatus, ao as KodaXSessionUiToolGroupHistoryItem } from './types-chunks/process.d-DHow2y2G.js';
3
+ import './types-chunks/storage.d-BsZrBPYu.js';
4
+ import './types-chunks/bash-prefix-extractor.d-D3cddmyV.js';
5
+ import './types-chunks/types.d-Ci5YPFEh.js';
6
6
  import 'vscode-languageserver-protocol';
7
+ import './types-chunks/cost-tracker.d-CBLk1fiD.js';
7
8
  import './types-chunks/capability.d-3C62G8Eq.js';
8
- import './types-chunks/base.d-CwPfI8WQ.js';
9
- import './types-chunks/cost-tracker.d-wRtyEW9d.js';
9
+ import './types-chunks/base.d-BA9Doaj_.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-OBPB5BQ6.js";import{K as s,L as e}from"./chunks/chunk-QHWXPJEG.js";import"./chunks/chunk-6AU6EPO6.js";import"./chunks/chunk-CV6JHPEO.js";import"./chunks/chunk-XXEIFNBE.js";import"./chunks/chunk-NKHXRN7G.js";import"./chunks/chunk-73Z7BK5H.js";import"./chunks/chunk-PIQWODWN.js";import"./chunks/chunk-CQ6EQG7E.js";import"./chunks/chunk-D6QVXQNI.js";import"./chunks/chunk-526OILYL.js";import"./chunks/chunk-7QB55SYG.js";import"./chunks/chunk-HS2K74I4.js";import"./chunks/chunk-ZZDC75H4.js";import"./chunks/chunk-P4VF3JEP.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{Ac as o,Ec as k,Fc as r,Gc as S,Hc as s,Ic as n,Jc as g,Kc as u,Lc as c,Mc as x,Nc as d,Oc as P,Pc as R,Qc as h,Rc as p,Sc as v,Tc as y,Uc as M,Vc as f,Wc as m,Xc as E,vc as l,wc as e,xc as i,yc as t,zc as a}from"./chunks/chunk-ZZDC75H4.js";import"./chunks/chunk-P4VF3JEP.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};