@xiuper/cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/README.md +180 -0
  2. package/dist/jsMain/typescript/agents/LLMService.d.ts +40 -0
  3. package/dist/jsMain/typescript/agents/LLMService.d.ts.map +1 -0
  4. package/dist/jsMain/typescript/agents/LLMService.js +156 -0
  5. package/dist/jsMain/typescript/agents/LLMService.js.map +1 -0
  6. package/dist/jsMain/typescript/agents/ServerAgentClient.d.ts +103 -0
  7. package/dist/jsMain/typescript/agents/ServerAgentClient.d.ts.map +1 -0
  8. package/dist/jsMain/typescript/agents/ServerAgentClient.js +142 -0
  9. package/dist/jsMain/typescript/agents/ServerAgentClient.js.map +1 -0
  10. package/dist/jsMain/typescript/agents/render/BaseRenderer.d.ts +87 -0
  11. package/dist/jsMain/typescript/agents/render/BaseRenderer.d.ts.map +1 -0
  12. package/dist/jsMain/typescript/agents/render/BaseRenderer.js +128 -0
  13. package/dist/jsMain/typescript/agents/render/BaseRenderer.js.map +1 -0
  14. package/dist/jsMain/typescript/agents/render/CliRenderer.d.ts +51 -0
  15. package/dist/jsMain/typescript/agents/render/CliRenderer.d.ts.map +1 -0
  16. package/dist/jsMain/typescript/agents/render/CliRenderer.js +564 -0
  17. package/dist/jsMain/typescript/agents/render/CliRenderer.js.map +1 -0
  18. package/dist/jsMain/typescript/agents/render/ServerRenderer.d.ts +55 -0
  19. package/dist/jsMain/typescript/agents/render/ServerRenderer.d.ts.map +1 -0
  20. package/dist/jsMain/typescript/agents/render/ServerRenderer.js +503 -0
  21. package/dist/jsMain/typescript/agents/render/ServerRenderer.js.map +1 -0
  22. package/dist/jsMain/typescript/agents/render/TuiRenderer.d.ts +104 -0
  23. package/dist/jsMain/typescript/agents/render/TuiRenderer.d.ts.map +1 -0
  24. package/dist/jsMain/typescript/agents/render/TuiRenderer.js +279 -0
  25. package/dist/jsMain/typescript/agents/render/TuiRenderer.js.map +1 -0
  26. package/dist/jsMain/typescript/config/ConfigManager.d.ts +146 -0
  27. package/dist/jsMain/typescript/config/ConfigManager.d.ts.map +1 -0
  28. package/dist/jsMain/typescript/config/ConfigManager.js +257 -0
  29. package/dist/jsMain/typescript/config/ConfigManager.js.map +1 -0
  30. package/dist/jsMain/typescript/constants/asciiArt.d.ts +9 -0
  31. package/dist/jsMain/typescript/constants/asciiArt.d.ts.map +1 -0
  32. package/dist/jsMain/typescript/constants/asciiArt.js +47 -0
  33. package/dist/jsMain/typescript/constants/asciiArt.js.map +1 -0
  34. package/dist/jsMain/typescript/design-system/colors.d.ts +492 -0
  35. package/dist/jsMain/typescript/design-system/colors.d.ts.map +1 -0
  36. package/dist/jsMain/typescript/design-system/colors.js +333 -0
  37. package/dist/jsMain/typescript/design-system/colors.js.map +1 -0
  38. package/dist/jsMain/typescript/design-system/index.d.ts +31 -0
  39. package/dist/jsMain/typescript/design-system/index.d.ts.map +1 -0
  40. package/dist/jsMain/typescript/design-system/index.js +195 -0
  41. package/dist/jsMain/typescript/design-system/index.js.map +1 -0
  42. package/dist/jsMain/typescript/design-system/theme-helpers.d.ts +161 -0
  43. package/dist/jsMain/typescript/design-system/theme-helpers.d.ts.map +1 -0
  44. package/dist/jsMain/typescript/design-system/theme-helpers.js +153 -0
  45. package/dist/jsMain/typescript/design-system/theme-helpers.js.map +1 -0
  46. package/dist/jsMain/typescript/i18n/index.d.ts +37 -0
  47. package/dist/jsMain/typescript/i18n/index.d.ts.map +1 -0
  48. package/dist/jsMain/typescript/i18n/index.js +139 -0
  49. package/dist/jsMain/typescript/i18n/index.js.map +1 -0
  50. package/dist/jsMain/typescript/i18n/locales/en.d.ts +6 -0
  51. package/dist/jsMain/typescript/i18n/locales/en.d.ts.map +1 -0
  52. package/dist/jsMain/typescript/i18n/locales/en.js +120 -0
  53. package/dist/jsMain/typescript/i18n/locales/en.js.map +1 -0
  54. package/dist/jsMain/typescript/i18n/locales/zh.d.ts +6 -0
  55. package/dist/jsMain/typescript/i18n/locales/zh.d.ts.map +1 -0
  56. package/dist/jsMain/typescript/i18n/locales/zh.js +120 -0
  57. package/dist/jsMain/typescript/i18n/locales/zh.js.map +1 -0
  58. package/dist/jsMain/typescript/i18n/types.d.ts +124 -0
  59. package/dist/jsMain/typescript/i18n/types.d.ts.map +1 -0
  60. package/dist/jsMain/typescript/i18n/types.js +7 -0
  61. package/dist/jsMain/typescript/i18n/types.js.map +1 -0
  62. package/dist/jsMain/typescript/index.d.ts +9 -0
  63. package/dist/jsMain/typescript/index.d.ts.map +1 -0
  64. package/dist/jsMain/typescript/index.js +380 -0
  65. package/dist/jsMain/typescript/index.js.map +1 -0
  66. package/dist/jsMain/typescript/modes/AgentMode.d.ts +33 -0
  67. package/dist/jsMain/typescript/modes/AgentMode.d.ts.map +1 -0
  68. package/dist/jsMain/typescript/modes/AgentMode.js +243 -0
  69. package/dist/jsMain/typescript/modes/AgentMode.js.map +1 -0
  70. package/dist/jsMain/typescript/modes/ChatMode.d.ts +30 -0
  71. package/dist/jsMain/typescript/modes/ChatMode.d.ts.map +1 -0
  72. package/dist/jsMain/typescript/modes/ChatMode.js +260 -0
  73. package/dist/jsMain/typescript/modes/ChatMode.js.map +1 -0
  74. package/dist/jsMain/typescript/modes/DocumentMode.d.ts +26 -0
  75. package/dist/jsMain/typescript/modes/DocumentMode.d.ts.map +1 -0
  76. package/dist/jsMain/typescript/modes/DocumentMode.js +217 -0
  77. package/dist/jsMain/typescript/modes/DocumentMode.js.map +1 -0
  78. package/dist/jsMain/typescript/modes/Mode.d.ts +72 -0
  79. package/dist/jsMain/typescript/modes/Mode.d.ts.map +1 -0
  80. package/dist/jsMain/typescript/modes/Mode.js +7 -0
  81. package/dist/jsMain/typescript/modes/Mode.js.map +1 -0
  82. package/dist/jsMain/typescript/modes/ModeManager.d.ts +76 -0
  83. package/dist/jsMain/typescript/modes/ModeManager.d.ts.map +1 -0
  84. package/dist/jsMain/typescript/modes/ModeManager.js +156 -0
  85. package/dist/jsMain/typescript/modes/ModeManager.js.map +1 -0
  86. package/dist/jsMain/typescript/modes/ReviewMode.d.ts +52 -0
  87. package/dist/jsMain/typescript/modes/ReviewMode.d.ts.map +1 -0
  88. package/dist/jsMain/typescript/modes/ReviewMode.js +435 -0
  89. package/dist/jsMain/typescript/modes/ReviewMode.js.map +1 -0
  90. package/dist/jsMain/typescript/modes/index.d.ts +9 -0
  91. package/dist/jsMain/typescript/modes/index.d.ts.map +1 -0
  92. package/dist/jsMain/typescript/modes/index.js +7 -0
  93. package/dist/jsMain/typescript/modes/index.js.map +1 -0
  94. package/dist/jsMain/typescript/processors/AtCommandProcessor.d.ts +34 -0
  95. package/dist/jsMain/typescript/processors/AtCommandProcessor.d.ts.map +1 -0
  96. package/dist/jsMain/typescript/processors/AtCommandProcessor.js +118 -0
  97. package/dist/jsMain/typescript/processors/AtCommandProcessor.js.map +1 -0
  98. package/dist/jsMain/typescript/processors/InputRouter.d.ts +84 -0
  99. package/dist/jsMain/typescript/processors/InputRouter.d.ts.map +1 -0
  100. package/dist/jsMain/typescript/processors/InputRouter.js +78 -0
  101. package/dist/jsMain/typescript/processors/InputRouter.js.map +1 -0
  102. package/dist/jsMain/typescript/processors/ModeCommandProcessor.d.ts +25 -0
  103. package/dist/jsMain/typescript/processors/ModeCommandProcessor.d.ts.map +1 -0
  104. package/dist/jsMain/typescript/processors/ModeCommandProcessor.js +127 -0
  105. package/dist/jsMain/typescript/processors/ModeCommandProcessor.js.map +1 -0
  106. package/dist/jsMain/typescript/processors/SlashCommandProcessor.d.ts +68 -0
  107. package/dist/jsMain/typescript/processors/SlashCommandProcessor.d.ts.map +1 -0
  108. package/dist/jsMain/typescript/processors/SlashCommandProcessor.js +391 -0
  109. package/dist/jsMain/typescript/processors/SlashCommandProcessor.js.map +1 -0
  110. package/dist/jsMain/typescript/processors/VariableProcessor.d.ts +44 -0
  111. package/dist/jsMain/typescript/processors/VariableProcessor.d.ts.map +1 -0
  112. package/dist/jsMain/typescript/processors/VariableProcessor.js +105 -0
  113. package/dist/jsMain/typescript/processors/VariableProcessor.js.map +1 -0
  114. package/dist/jsMain/typescript/ui/App.d.ts +16 -0
  115. package/dist/jsMain/typescript/ui/App.d.ts.map +1 -0
  116. package/dist/jsMain/typescript/ui/App.js +208 -0
  117. package/dist/jsMain/typescript/ui/App.js.map +1 -0
  118. package/dist/jsMain/typescript/ui/Banner.d.ts +6 -0
  119. package/dist/jsMain/typescript/ui/Banner.d.ts.map +1 -0
  120. package/dist/jsMain/typescript/ui/Banner.js +13 -0
  121. package/dist/jsMain/typescript/ui/Banner.js.map +1 -0
  122. package/dist/jsMain/typescript/ui/ChatInterface.d.ts +19 -0
  123. package/dist/jsMain/typescript/ui/ChatInterface.d.ts.map +1 -0
  124. package/dist/jsMain/typescript/ui/ChatInterface.js +223 -0
  125. package/dist/jsMain/typescript/ui/ChatInterface.js.map +1 -0
  126. package/dist/jsMain/typescript/ui/CommandSuggestions.d.ts +21 -0
  127. package/dist/jsMain/typescript/ui/CommandSuggestions.d.ts.map +1 -0
  128. package/dist/jsMain/typescript/ui/CommandSuggestions.js +43 -0
  129. package/dist/jsMain/typescript/ui/CommandSuggestions.js.map +1 -0
  130. package/dist/jsMain/typescript/ui/LanguageSwitcher.d.ts +11 -0
  131. package/dist/jsMain/typescript/ui/LanguageSwitcher.d.ts.map +1 -0
  132. package/dist/jsMain/typescript/ui/LanguageSwitcher.js +37 -0
  133. package/dist/jsMain/typescript/ui/LanguageSwitcher.js.map +1 -0
  134. package/dist/jsMain/typescript/ui/MessageRenderer.d.ts +70 -0
  135. package/dist/jsMain/typescript/ui/MessageRenderer.d.ts.map +1 -0
  136. package/dist/jsMain/typescript/ui/MessageRenderer.js +255 -0
  137. package/dist/jsMain/typescript/ui/MessageRenderer.js.map +1 -0
  138. package/dist/jsMain/typescript/ui/ModelConfigForm.d.ts +19 -0
  139. package/dist/jsMain/typescript/ui/ModelConfigForm.d.ts.map +1 -0
  140. package/dist/jsMain/typescript/ui/ModelConfigForm.js +257 -0
  141. package/dist/jsMain/typescript/ui/ModelConfigForm.js.map +1 -0
  142. package/dist/jsMain/typescript/ui/WelcomeScreen.d.ts +12 -0
  143. package/dist/jsMain/typescript/ui/WelcomeScreen.d.ts.map +1 -0
  144. package/dist/jsMain/typescript/ui/WelcomeScreen.js +93 -0
  145. package/dist/jsMain/typescript/ui/WelcomeScreen.js.map +1 -0
  146. package/dist/jsMain/typescript/utils/commandUtils.d.ts +64 -0
  147. package/dist/jsMain/typescript/utils/commandUtils.d.ts.map +1 -0
  148. package/dist/jsMain/typescript/utils/commandUtils.js +195 -0
  149. package/dist/jsMain/typescript/utils/commandUtils.js.map +1 -0
  150. package/dist/jsMain/typescript/utils/domainDictUtils.d.ts +53 -0
  151. package/dist/jsMain/typescript/utils/domainDictUtils.d.ts.map +1 -0
  152. package/dist/jsMain/typescript/utils/domainDictUtils.js +130 -0
  153. package/dist/jsMain/typescript/utils/domainDictUtils.js.map +1 -0
  154. package/dist/jsMain/typescript/utils/markdownSplitter.d.ts +23 -0
  155. package/dist/jsMain/typescript/utils/markdownSplitter.d.ts.map +1 -0
  156. package/dist/jsMain/typescript/utils/markdownSplitter.js +90 -0
  157. package/dist/jsMain/typescript/utils/markdownSplitter.js.map +1 -0
  158. package/dist/jsMain/typescript/utils/outputFormatter.d.ts +70 -0
  159. package/dist/jsMain/typescript/utils/outputFormatter.d.ts.map +1 -0
  160. package/dist/jsMain/typescript/utils/outputFormatter.js +140 -0
  161. package/dist/jsMain/typescript/utils/outputFormatter.js.map +1 -0
  162. package/dist/jsMain/typescript/utils/renderUtils.d.ts +17 -0
  163. package/dist/jsMain/typescript/utils/renderUtils.d.ts.map +1 -0
  164. package/dist/jsMain/typescript/utils/renderUtils.js +128 -0
  165. package/dist/jsMain/typescript/utils/renderUtils.js.map +1 -0
  166. package/dist/test/framework/analyzers/CodeChangeAnalyzer.d.ts +87 -0
  167. package/dist/test/framework/analyzers/CodeChangeAnalyzer.d.ts.map +1 -0
  168. package/dist/test/framework/analyzers/CodeChangeAnalyzer.js +412 -0
  169. package/dist/test/framework/analyzers/CodeChangeAnalyzer.js.map +1 -0
  170. package/dist/test/framework/analyzers/PromptAnalyzer.d.ts +46 -0
  171. package/dist/test/framework/analyzers/PromptAnalyzer.d.ts.map +1 -0
  172. package/dist/test/framework/analyzers/PromptAnalyzer.js +185 -0
  173. package/dist/test/framework/analyzers/PromptAnalyzer.js.map +1 -0
  174. package/dist/test/framework/analyzers/ToolCallAnalyzer.d.ts +45 -0
  175. package/dist/test/framework/analyzers/ToolCallAnalyzer.d.ts.map +1 -0
  176. package/dist/test/framework/analyzers/ToolCallAnalyzer.js +215 -0
  177. package/dist/test/framework/analyzers/ToolCallAnalyzer.js.map +1 -0
  178. package/dist/test/framework/cli.d.ts +8 -0
  179. package/dist/test/framework/cli.d.ts.map +1 -0
  180. package/dist/test/framework/cli.js +175 -0
  181. package/dist/test/framework/cli.js.map +1 -0
  182. package/dist/test/framework/core/TestCase.d.ts +100 -0
  183. package/dist/test/framework/core/TestCase.d.ts.map +1 -0
  184. package/dist/test/framework/core/TestCase.js +101 -0
  185. package/dist/test/framework/core/TestCase.js.map +1 -0
  186. package/dist/test/framework/core/TestEngine.d.ts +89 -0
  187. package/dist/test/framework/core/TestEngine.d.ts.map +1 -0
  188. package/dist/test/framework/core/TestEngine.js +552 -0
  189. package/dist/test/framework/core/TestEngine.js.map +1 -0
  190. package/dist/test/framework/core/TestResult.d.ts +143 -0
  191. package/dist/test/framework/core/TestResult.d.ts.map +1 -0
  192. package/dist/test/framework/core/TestResult.js +76 -0
  193. package/dist/test/framework/core/TestResult.js.map +1 -0
  194. package/dist/test/framework/examples/BasicRobustnessTest.d.ts +19 -0
  195. package/dist/test/framework/examples/BasicRobustnessTest.d.ts.map +1 -0
  196. package/dist/test/framework/examples/BasicRobustnessTest.js +116 -0
  197. package/dist/test/framework/examples/BasicRobustnessTest.js.map +1 -0
  198. package/dist/test/framework/index.d.ts +30 -0
  199. package/dist/test/framework/index.d.ts.map +1 -0
  200. package/dist/test/framework/index.js +38 -0
  201. package/dist/test/framework/index.js.map +1 -0
  202. package/dist/test/framework/loaders/JsonScenarioLoader.d.ts +99 -0
  203. package/dist/test/framework/loaders/JsonScenarioLoader.d.ts.map +1 -0
  204. package/dist/test/framework/loaders/JsonScenarioLoader.js +197 -0
  205. package/dist/test/framework/loaders/JsonScenarioLoader.js.map +1 -0
  206. package/dist/test/framework/reporters/ConsoleReporter.d.ts +25 -0
  207. package/dist/test/framework/reporters/ConsoleReporter.d.ts.map +1 -0
  208. package/dist/test/framework/reporters/ConsoleReporter.js +196 -0
  209. package/dist/test/framework/reporters/ConsoleReporter.js.map +1 -0
  210. package/dist/test/framework/scenarios/ScenarioBuilder.d.ts +62 -0
  211. package/dist/test/framework/scenarios/ScenarioBuilder.d.ts.map +1 -0
  212. package/dist/test/framework/scenarios/ScenarioBuilder.js +285 -0
  213. package/dist/test/framework/scenarios/ScenarioBuilder.js.map +1 -0
  214. package/dist/test/framework/validate-framework.d.ts +9 -0
  215. package/dist/test/framework/validate-framework.d.ts.map +1 -0
  216. package/dist/test/framework/validate-framework.js +187 -0
  217. package/dist/test/framework/validate-framework.js.map +1 -0
  218. package/package.json +84 -0
@@ -0,0 +1,279 @@
1
+ /**
2
+ * TUI Renderer - TUI 环境的渲染器
3
+ *
4
+ * 适配 CodingAgent 的渲染接口到 TUI 环境
5
+ * 实现 JsCodingAgentRenderer 接口
6
+ *
7
+ * 特性:
8
+ * - 智能输出截断(默认20行)
9
+ * - 工具输出格式化和摘要
10
+ * - 减少冗余日志
11
+ */
12
+ import { BaseRenderer } from "./BaseRenderer.js";
13
+ /**
14
+ * TUI 渲染器
15
+ * 实现 Kotlin CodingAgent 期望的 JsCodingAgentRenderer 接口
16
+ */
17
+ export class TuiRenderer extends BaseRenderer {
18
+ outputContent(content) {
19
+ }
20
+ outputNewline() {
21
+ }
22
+ __doNotUseOrImplementIt = {};
23
+ context;
24
+ currentMessage = null;
25
+ lastIterationNumber = 0;
26
+ // Configuration - 可通过环境变量调整
27
+ MAX_OUTPUT_LINES = parseInt(process.env.AUTODEV_MAX_OUTPUT_LINES || '20');
28
+ MAX_LINE_LENGTH = parseInt(process.env.AUTODEV_MAX_LINE_LENGTH || '120');
29
+ SHOW_ITERATION_HEADERS = process.env.AUTODEV_SHOW_ITERATIONS === 'true';
30
+ VERBOSE_MODE = process.env.AUTODEV_VERBOSE === 'true';
31
+ constructor(context) {
32
+ super();
33
+ this.context = context;
34
+ }
35
+ /**
36
+ * 渲染迭代头部 - 只在重要时显示
37
+ */
38
+ renderIterationHeader(current, max) {
39
+ // 只在第一次或每5次迭代时显示,减少冗余
40
+ if (!this.SHOW_ITERATION_HEADERS) {
41
+ return;
42
+ }
43
+ if (current === 1 || current % 5 === 0 || current === max) {
44
+ const message = `🔄 **Iteration ${current}/${max}**`;
45
+ this.renderSystemMessage(message);
46
+ }
47
+ this.lastIterationNumber = current;
48
+ }
49
+ /**
50
+ * 渲染 LLM 响应开始
51
+ */
52
+ renderLLMResponseStart() {
53
+ this.currentMessage = {
54
+ role: 'assistant',
55
+ content: '',
56
+ timestamp: Date.now(),
57
+ showPrefix: true
58
+ };
59
+ this.context.setPendingMessage(this.currentMessage);
60
+ }
61
+ /**
62
+ * 渲染 LLM 响应块
63
+ */
64
+ renderLLMResponseChunk(chunk) {
65
+ if (this.currentMessage) {
66
+ this.currentMessage.content += chunk;
67
+ this.context.setPendingMessage({ ...this.currentMessage });
68
+ }
69
+ }
70
+ /**
71
+ * 渲染 LLM 响应结束
72
+ */
73
+ renderLLMResponseEnd() {
74
+ if (this.currentMessage) {
75
+ this.context.addMessage(this.currentMessage);
76
+ this.context.setPendingMessage(null);
77
+ this.currentMessage = null;
78
+ }
79
+ }
80
+ /**
81
+ * 渲染工具调用 - 简化显示
82
+ */
83
+ renderToolCall(toolName, paramsStr) {
84
+ // 解析参数以提供更友好的显示
85
+ let params = '';
86
+ try {
87
+ const parsed = JSON.parse(paramsStr);
88
+ params = this.formatToolParams(toolName, parsed);
89
+ }
90
+ catch {
91
+ params = paramsStr;
92
+ }
93
+ const message = `🔧 **${toolName}** ${params}`;
94
+ this.renderSystemMessage(message);
95
+ }
96
+ /**
97
+ * 渲染工具调用结果 - 智能截断和格式化
98
+ */
99
+ renderToolResult(toolName, success, output, fullOutput) {
100
+ const icon = success ? '✅' : '❌';
101
+ const resultText = output || fullOutput || 'No output';
102
+ if (!success) {
103
+ // 错误信息保持简短
104
+ const errorText = this.truncateText(resultText, 3);
105
+ const message = `${icon} **${toolName}** failed\n\`\`\`\n${errorText}\n\`\`\``;
106
+ this.renderSystemMessage(message);
107
+ return;
108
+ }
109
+ // 成功结果根据工具类型智能处理
110
+ const formattedResult = this.formatToolResult(toolName, resultText);
111
+ const message = `${icon} **${toolName}** ${formattedResult}`;
112
+ this.renderSystemMessage(message);
113
+ }
114
+ /**
115
+ * 渲染任务完成
116
+ */
117
+ renderTaskComplete(executionTimeMs = 0, toolsUsedCount = 0) {
118
+ const parts = [];
119
+ if (executionTimeMs > 0) {
120
+ const seconds = (executionTimeMs / 1000).toFixed(2);
121
+ parts.push(`${seconds}s`);
122
+ }
123
+ if (toolsUsedCount > 0) {
124
+ parts.push(`${toolsUsedCount} tools`);
125
+ }
126
+ const info = parts.length > 0 ? ` (${parts.join(', ')})` : '';
127
+ const message = `✅ **Task completed**${info}`;
128
+ this.renderSystemMessage(message);
129
+ }
130
+ /**
131
+ * 渲染最终结果 - 简化显示
132
+ */
133
+ renderFinalResult(success, message, iterations) {
134
+ const icon = success ? '✅' : '❌';
135
+ // 只在多次迭代时显示迭代数
136
+ const iterationInfo = iterations > 1 ? ` (${iterations} iterations)` : '';
137
+ const resultMessage = `${icon} **Task ${success ? 'completed' : 'failed'}**${iterationInfo}\n\n${this.truncateText(message, 10)}`;
138
+ this.renderSystemMessage(resultMessage);
139
+ }
140
+ /**
141
+ * 渲染错误
142
+ */
143
+ renderError(message) {
144
+ const errorMessage = `❌ **Error**: ${message}`;
145
+ this.renderSystemMessage(errorMessage);
146
+ }
147
+ /**
148
+ * 渲染重复警告 - 简化显示
149
+ */
150
+ renderRepeatWarning(toolName, count) {
151
+ const message = `⚠️ **${toolName}** called ${count} times - consider different approach`;
152
+ this.renderSystemMessage(message);
153
+ }
154
+ /**
155
+ * 渲染恢复建议 - 简化显示
156
+ */
157
+ renderRecoveryAdvice(recoveryAdvice) {
158
+ const message = `💡 **Suggestion**: ${this.truncateText(recoveryAdvice, 3)}`;
159
+ this.renderSystemMessage(message);
160
+ }
161
+ /**
162
+ * 渲染用户确认请求
163
+ */
164
+ renderUserConfirmationRequest(toolName, params) {
165
+ const paramStr = Object.entries(params)
166
+ .map(([k, v]) => `${k}=${JSON.stringify(v)}`)
167
+ .join(', ');
168
+ const message = `🔐 Tool '${toolName}' needs approval: ${paramStr} (Auto-approved)`;
169
+ this.renderSystemMessage(message);
170
+ }
171
+ // Helper methods
172
+ /**
173
+ * 格式化工具参数显示
174
+ */
175
+ formatToolParams(toolName, params) {
176
+ switch (toolName) {
177
+ case 'read-file':
178
+ return `\`${params.path || params.file || ''}\``;
179
+ case 'write-file':
180
+ return `\`${params.path || params.file || ''}\``;
181
+ case 'list-files':
182
+ return `\`${params.path || '.'}\`${params.recursive ? ' (recursive)' : ''}`;
183
+ case 'grep':
184
+ return `"${params.pattern || params.query || ''}" in \`${params.path || '.'}\``;
185
+ case 'shell':
186
+ return `\`${params.command || ''}\``;
187
+ default:
188
+ return Object.keys(params).length > 0 ? `(${Object.keys(params).join(', ')})` : '';
189
+ }
190
+ }
191
+ /**
192
+ * 格式化工具结果显示
193
+ */
194
+ formatToolResult(toolName, output) {
195
+ const lines = output.split('\n');
196
+ const totalLines = lines.length;
197
+ switch (toolName) {
198
+ case 'list-files':
199
+ if (totalLines > this.MAX_OUTPUT_LINES) {
200
+ const preview = lines.slice(0, this.MAX_OUTPUT_LINES).join('\n');
201
+ return `found ${totalLines} files\n\`\`\`\n${preview}\n... (${totalLines - this.MAX_OUTPUT_LINES} more files)\n\`\`\``;
202
+ }
203
+ return `found ${totalLines} files\n\`\`\`\n${output}\n\`\`\``;
204
+ case 'read-file':
205
+ if (totalLines > this.MAX_OUTPUT_LINES) {
206
+ const preview = lines.slice(0, this.MAX_OUTPUT_LINES).join('\n');
207
+ return `(${totalLines} lines)\n\`\`\`\n${preview}\n... (${totalLines - this.MAX_OUTPUT_LINES} more lines)\n\`\`\``;
208
+ }
209
+ return `(${totalLines} lines)\n\`\`\`\n${output}\n\`\`\``;
210
+ case 'grep':
211
+ const matches = lines.filter(line => line.trim());
212
+ if (matches.length > this.MAX_OUTPUT_LINES) {
213
+ const preview = matches.slice(0, this.MAX_OUTPUT_LINES).join('\n');
214
+ return `found ${matches.length} matches\n\`\`\`\n${preview}\n... (${matches.length - this.MAX_OUTPUT_LINES} more matches)\n\`\`\``;
215
+ }
216
+ return `found ${matches.length} matches\n\`\`\`\n${output}\n\`\`\``;
217
+ case 'shell':
218
+ if (totalLines > this.MAX_OUTPUT_LINES) {
219
+ const preview = this.truncateText(output, this.MAX_OUTPUT_LINES);
220
+ return `completed\n\`\`\`\n${preview}\n\`\`\``;
221
+ }
222
+ return `completed\n\`\`\`\n${output}\n\`\`\``;
223
+ case 'write-file':
224
+ return 'completed';
225
+ default:
226
+ // 在 verbose 模式下显示更多信息
227
+ const maxLines = this.VERBOSE_MODE ? this.MAX_OUTPUT_LINES * 2 : this.MAX_OUTPUT_LINES;
228
+ return this.truncateText(output, maxLines);
229
+ }
230
+ }
231
+ /**
232
+ * 截断文本到指定行数
233
+ */
234
+ truncateText(text, maxLines) {
235
+ const lines = text.split('\n');
236
+ if (lines.length <= maxLines) {
237
+ return text;
238
+ }
239
+ const truncated = lines.slice(0, maxLines).join('\n');
240
+ const remaining = lines.length - maxLines;
241
+ return `${truncated}\n... (${remaining} more lines)`;
242
+ }
243
+ /**
244
+ * 渲染系统消息
245
+ */
246
+ renderSystemMessage(message) {
247
+ const systemMessage = {
248
+ role: 'system',
249
+ content: message,
250
+ timestamp: Date.now(),
251
+ showPrefix: true
252
+ };
253
+ this.context.addMessage(systemMessage);
254
+ }
255
+ /**
256
+ * 强制停止
257
+ */
258
+ forceStop() {
259
+ if (this.currentMessage) {
260
+ this.context.addMessage(this.currentMessage);
261
+ this.context.setPendingMessage(null);
262
+ this.currentMessage = null;
263
+ }
264
+ }
265
+ /**
266
+ * Render an Agent-generated sketch block (chart, nanodsl, mermaid, etc.)
267
+ * In TUI mode, we display the code block as a message.
268
+ */
269
+ renderAgentSketchBlock(agentName, language, code, metadata) {
270
+ const sketchMessage = {
271
+ role: 'assistant',
272
+ content: `\`\`\`${language}\n${code}\n\`\`\``,
273
+ timestamp: Date.now(),
274
+ showPrefix: true
275
+ };
276
+ this.context.addMessage(sketchMessage);
277
+ }
278
+ }
279
+ //# sourceMappingURL=TuiRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TuiRenderer.js","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/agents/render/TuiRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * ConfigManager - Manages CLI configuration
3
+ *
4
+ * Handles loading, saving, and validating configuration for the AutoDev CLI.
5
+ * Supports multiple named configurations with active selection.
6
+ */
7
+ export type LLMProvider = 'openai' | 'anthropic' | 'google' | 'deepseek' | 'ollama' | 'openrouter' | 'glm' | 'qwen' | 'kimi' | 'custom-openai-base';
8
+ /**
9
+ * Single LLM configuration
10
+ */
11
+ export interface LLMConfig {
12
+ name: string;
13
+ provider: LLMProvider;
14
+ apiKey: string;
15
+ model: string;
16
+ baseUrl?: string;
17
+ temperature?: number;
18
+ maxTokens?: number;
19
+ logLevel?: string;
20
+ }
21
+ /**
22
+ * MCP Server configuration
23
+ */
24
+ export interface McpServerConfig {
25
+ command?: string;
26
+ url?: string;
27
+ args?: string[];
28
+ disabled?: boolean;
29
+ autoApprove?: string[];
30
+ env?: Record<string, string>;
31
+ timeout?: number;
32
+ trust?: boolean;
33
+ headers?: Record<string, string>;
34
+ cwd?: string;
35
+ }
36
+ /**
37
+ * Root configuration file structure
38
+ */
39
+ export interface ConfigFile {
40
+ active: string;
41
+ configs: LLMConfig[];
42
+ mcpServers?: Record<string, McpServerConfig>;
43
+ globalLogLevel?: string;
44
+ }
45
+ /**
46
+ * Legacy config format (for backward compatibility)
47
+ */
48
+ export interface LegacyConfig {
49
+ provider: LLMProvider;
50
+ apiKey: string;
51
+ model: string;
52
+ baseUrl?: string;
53
+ temperature?: number;
54
+ maxTokens?: number;
55
+ logLevel?: string;
56
+ }
57
+ export declare class ConfigManager {
58
+ private static CONFIG_DIR;
59
+ private static CONFIG_FILE;
60
+ /**
61
+ * Override config directory (for testing)
62
+ */
63
+ static setConfigDir(dir: string): void;
64
+ /**
65
+ * Reset to default config directory
66
+ */
67
+ static resetConfigDir(): void;
68
+ /**
69
+ * Load configuration from file
70
+ */
71
+ static load(): Promise<AutoDevConfigWrapper>;
72
+ /**
73
+ * Save configuration to file
74
+ */
75
+ static save(configFile: ConfigFile): Promise<void>;
76
+ /**
77
+ * Add or update a single configuration
78
+ */
79
+ static saveConfig(config: LLMConfig, setActive?: boolean): Promise<void>;
80
+ /**
81
+ * Delete a configuration by name
82
+ */
83
+ static deleteConfig(name: string): Promise<void>;
84
+ /**
85
+ * Switch active configuration
86
+ */
87
+ static setActive(name: string): Promise<void>;
88
+ /**
89
+ * Get configuration file path
90
+ */
91
+ static getConfigPath(): string;
92
+ /**
93
+ * Create empty configuration
94
+ */
95
+ private static createEmpty;
96
+ }
97
+ /**
98
+ * Wrapper class for configuration with validation
99
+ */
100
+ export declare class AutoDevConfigWrapper {
101
+ private configFile;
102
+ constructor(configFile: ConfigFile);
103
+ /**
104
+ * Get the entire config file structure
105
+ */
106
+ getConfigFile(): ConfigFile;
107
+ /**
108
+ * Get the active configuration
109
+ */
110
+ getActiveConfig(): LLMConfig | null;
111
+ /**
112
+ * Get all configurations
113
+ */
114
+ getAllConfigs(): LLMConfig[];
115
+ /**
116
+ * Get active config name
117
+ */
118
+ getActiveName(): string;
119
+ /**
120
+ * Get MCP servers configuration
121
+ */
122
+ getMcpServers(): Record<string, McpServerConfig>;
123
+ /**
124
+ * Get enabled MCP servers
125
+ */
126
+ getEnabledMcpServers(): Record<string, McpServerConfig>;
127
+ /**
128
+ * Check if any valid configuration exists
129
+ */
130
+ isValid(): boolean;
131
+ getProvider(): LLMProvider;
132
+ getApiKey(): string;
133
+ getModel(): string;
134
+ getBaseUrl(): string | undefined;
135
+ getTemperature(): number;
136
+ getMaxTokens(): number;
137
+ /**
138
+ * Get log level from active config or global setting
139
+ */
140
+ getLogLevel(): string;
141
+ /**
142
+ * Convert active config to legacy format (for backward compatibility)
143
+ */
144
+ toJSON(): LegacyConfig;
145
+ }
146
+ //# sourceMappingURL=ConfigManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../../../src/jsMain/typescript/config/ConfigManager.ts"],"names":[],"mappings":"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"}