@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,161 @@
1
+ /**
2
+ * Theme Helpers - 主题辅助工具
3
+ *
4
+ * 提供便捷的方法来访问当前主题的颜色和工具函数
5
+ * 基于「霓虹暗夜」视觉语言的语义化颜色系统
6
+ */
7
+ import chalk from 'chalk';
8
+ /**
9
+ * Chalk 颜色辅助类
10
+ * 使用设计系统中定义的语义化颜色
11
+ */
12
+ export declare const semanticChalk: {
13
+ readonly primary: import("chalk").ChalkInstance;
14
+ readonly accent: import("chalk").ChalkInstance;
15
+ readonly success: import("chalk").ChalkInstance;
16
+ readonly warning: import("chalk").ChalkInstance;
17
+ readonly error: import("chalk").ChalkInstance;
18
+ readonly info: import("chalk").ChalkInstance;
19
+ readonly muted: import("chalk").ChalkInstance;
20
+ readonly dim: import("chalk").ChalkInstance;
21
+ readonly bold: import("chalk").ChalkInstance;
22
+ readonly successBold: import("chalk").ChalkInstance;
23
+ readonly errorBold: import("chalk").ChalkInstance;
24
+ readonly warningBold: import("chalk").ChalkInstance;
25
+ readonly infoBold: import("chalk").ChalkInstance;
26
+ readonly primaryBold: import("chalk").ChalkInstance;
27
+ readonly accentBold: import("chalk").ChalkInstance;
28
+ readonly user: import("chalk").ChalkInstance;
29
+ readonly ai: import("chalk").ChalkInstance;
30
+ };
31
+ /**
32
+ * Ink 颜色辅助 - 用于 <Text> 组件
33
+ * 返回 Ink 支持的颜色字符串
34
+ */
35
+ export declare const semanticInk: {
36
+ readonly primary: "cyan";
37
+ readonly accent: "magenta";
38
+ readonly success: "green";
39
+ readonly warning: "yellow";
40
+ readonly error: "red";
41
+ readonly info: "blue";
42
+ readonly muted: "gray";
43
+ readonly user: "cyan";
44
+ readonly ai: "magenta";
45
+ };
46
+ /**
47
+ * 语义化颜色类型
48
+ */
49
+ export type SemanticColor = 'primary' | 'accent' | 'success' | 'warning' | 'error' | 'info' | 'muted' | 'user' | 'ai';
50
+ /**
51
+ * 获取 Ink 颜色(用于 <Text color={...}> )
52
+ */
53
+ export declare function getInkColor(semantic: SemanticColor): string;
54
+ /**
55
+ * 获取 Chalk 颜色函数
56
+ */
57
+ export declare function getChalkColor(semantic: SemanticColor): typeof chalk;
58
+ /**
59
+ * 状态指示器
60
+ */
61
+ export declare const statusIndicators: {
62
+ readonly success: "✓";
63
+ readonly error: "✗";
64
+ readonly warning: "⚠";
65
+ readonly info: "ℹ";
66
+ readonly loading: "⏳";
67
+ readonly processing: "⚡";
68
+ readonly user: "›";
69
+ readonly ai: "◆";
70
+ };
71
+ /**
72
+ * 带颜色的状态指示器
73
+ */
74
+ export declare function coloredStatus(status: keyof typeof statusIndicators, message: string): string;
75
+ /**
76
+ * 分隔线样式
77
+ */
78
+ export declare const dividers: {
79
+ readonly solid: (length?: number) => string;
80
+ readonly double: (length?: number) => string;
81
+ readonly bold: (length?: number) => string;
82
+ readonly glow: (length?: number) => string;
83
+ };
84
+ /**
85
+ * 高亮文本
86
+ */
87
+ export declare function highlight(text: string, color?: SemanticColor): string;
88
+ /**
89
+ * 代码块样式
90
+ */
91
+ export declare function codeBlock(code: string, language?: string): string;
92
+ /**
93
+ * 人机边界样式 - 用于区分用户输入和 AI 输出
94
+ */
95
+ export declare const boundary: {
96
+ readonly user: (text: string) => string;
97
+ readonly ai: (text: string) => string;
98
+ readonly userBold: (text: string) => string;
99
+ readonly aiBold: (text: string) => string;
100
+ };
101
+ declare const _default: {
102
+ semanticChalk: {
103
+ readonly primary: import("chalk").ChalkInstance;
104
+ readonly accent: import("chalk").ChalkInstance;
105
+ readonly success: import("chalk").ChalkInstance;
106
+ readonly warning: import("chalk").ChalkInstance;
107
+ readonly error: import("chalk").ChalkInstance;
108
+ readonly info: import("chalk").ChalkInstance;
109
+ readonly muted: import("chalk").ChalkInstance;
110
+ readonly dim: import("chalk").ChalkInstance;
111
+ readonly bold: import("chalk").ChalkInstance;
112
+ readonly successBold: import("chalk").ChalkInstance;
113
+ readonly errorBold: import("chalk").ChalkInstance;
114
+ readonly warningBold: import("chalk").ChalkInstance;
115
+ readonly infoBold: import("chalk").ChalkInstance;
116
+ readonly primaryBold: import("chalk").ChalkInstance;
117
+ readonly accentBold: import("chalk").ChalkInstance;
118
+ readonly user: import("chalk").ChalkInstance;
119
+ readonly ai: import("chalk").ChalkInstance;
120
+ };
121
+ semanticInk: {
122
+ readonly primary: "cyan";
123
+ readonly accent: "magenta";
124
+ readonly success: "green";
125
+ readonly warning: "yellow";
126
+ readonly error: "red";
127
+ readonly info: "blue";
128
+ readonly muted: "gray";
129
+ readonly user: "cyan";
130
+ readonly ai: "magenta";
131
+ };
132
+ getInkColor: typeof getInkColor;
133
+ getChalkColor: typeof getChalkColor;
134
+ statusIndicators: {
135
+ readonly success: "✓";
136
+ readonly error: "✗";
137
+ readonly warning: "⚠";
138
+ readonly info: "ℹ";
139
+ readonly loading: "⏳";
140
+ readonly processing: "⚡";
141
+ readonly user: "›";
142
+ readonly ai: "◆";
143
+ };
144
+ coloredStatus: typeof coloredStatus;
145
+ dividers: {
146
+ readonly solid: (length?: number) => string;
147
+ readonly double: (length?: number) => string;
148
+ readonly bold: (length?: number) => string;
149
+ readonly glow: (length?: number) => string;
150
+ };
151
+ highlight: typeof highlight;
152
+ codeBlock: typeof codeBlock;
153
+ boundary: {
154
+ readonly user: (text: string) => string;
155
+ readonly ai: (text: string) => string;
156
+ readonly userBold: (text: string) => string;
157
+ readonly aiBold: (text: string) => string;
158
+ };
159
+ };
160
+ export default _default;
161
+ //# sourceMappingURL=theme-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-helpers.d.ts","sourceRoot":"","sources":["../../../../src/jsMain/typescript/design-system/theme-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;CA2BhB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAYd,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;AAEtH;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,KAAK,CAEnE;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;CASnB,CAAC;AAEX;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,OAAO,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAsB5F;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;8BACH,MAAM;+BACL,MAAM;6BACR,MAAM;6BACN,MAAM;CACb,CAAC;AAEX;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,aAAyB,GAAG,MAAM,CAGhF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAUjE;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;0BACN,MAAM;wBACR,MAAM;8BACA,MAAM;4BACR,MAAM;CACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCArCO,MAAM;mCACL,MAAM;iCACR,MAAM;iCACN,MAAM;;;;;8BA8BR,MAAM;4BACR,MAAM;kCACA,MAAM;gCACR,MAAM;;;AAGvB,wBAWE"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Theme Helpers - 主题辅助工具
3
+ *
4
+ * 提供便捷的方法来访问当前主题的颜色和工具函数
5
+ * 基于「霓虹暗夜」视觉语言的语义化颜色系统
6
+ */
7
+ import { inkColorMap } from './colors.js';
8
+ import chalk from 'chalk';
9
+ /**
10
+ * Chalk 颜色辅助类
11
+ * 使用设计系统中定义的语义化颜色
12
+ */
13
+ export const semanticChalk = {
14
+ // Primary and Accent - 能量色
15
+ primary: chalk.cyan, // 电光青 - 用户意图
16
+ accent: chalk.magenta, // 霓虹紫 - AI 生成
17
+ // Semantic colors - 信号色
18
+ success: chalk.green,
19
+ warning: chalk.yellow,
20
+ error: chalk.red,
21
+ info: chalk.blue,
22
+ // Text variants
23
+ muted: chalk.gray,
24
+ dim: chalk.dim,
25
+ bold: chalk.bold,
26
+ // Combined styles
27
+ successBold: chalk.green.bold,
28
+ errorBold: chalk.red.bold,
29
+ warningBold: chalk.yellow.bold,
30
+ infoBold: chalk.blue.bold,
31
+ primaryBold: chalk.cyan.bold,
32
+ accentBold: chalk.magenta.bold,
33
+ // 人机边界颜色
34
+ user: chalk.cyan, // 用户相关 - 电光青
35
+ ai: chalk.magenta, // AI 相关 - 霓虹紫
36
+ };
37
+ /**
38
+ * Ink 颜色辅助 - 用于 <Text> 组件
39
+ * 返回 Ink 支持的颜色字符串
40
+ */
41
+ export const semanticInk = {
42
+ primary: inkColorMap.primary,
43
+ accent: inkColorMap.accent,
44
+ success: inkColorMap.success,
45
+ warning: inkColorMap.warning,
46
+ error: inkColorMap.error,
47
+ info: inkColorMap.info,
48
+ muted: inkColorMap.muted,
49
+ // 人机边界颜色
50
+ user: 'cyan', // 用户相关 - 电光青
51
+ ai: 'magenta', // AI 相关 - 霓虹紫
52
+ };
53
+ /**
54
+ * 获取 Ink 颜色(用于 <Text color={...}> )
55
+ */
56
+ export function getInkColor(semantic) {
57
+ return semanticInk[semantic] ?? semanticInk.muted;
58
+ }
59
+ /**
60
+ * 获取 Chalk 颜色函数
61
+ */
62
+ export function getChalkColor(semantic) {
63
+ return semanticChalk[semantic] ?? semanticChalk.muted;
64
+ }
65
+ /**
66
+ * 状态指示器
67
+ */
68
+ export const statusIndicators = {
69
+ success: '✓',
70
+ error: '✗',
71
+ warning: '⚠',
72
+ info: 'ℹ',
73
+ loading: '⏳',
74
+ processing: '⚡', // 使用闪电符号更符合「气韵流动」美学
75
+ user: '›', // 用户输入提示
76
+ ai: '◆', // AI 输出提示
77
+ };
78
+ /**
79
+ * 带颜色的状态指示器
80
+ */
81
+ export function coloredStatus(status, message) {
82
+ const indicator = statusIndicators[status];
83
+ switch (status) {
84
+ case 'success':
85
+ return chalk.green(`${indicator} ${message}`);
86
+ case 'error':
87
+ return chalk.red(`${indicator} ${message}`);
88
+ case 'warning':
89
+ return chalk.yellow(`${indicator} ${message}`);
90
+ case 'info':
91
+ return chalk.blue(`${indicator} ${message}`);
92
+ case 'loading':
93
+ case 'processing':
94
+ return chalk.cyan(`${indicator} ${message}`);
95
+ case 'user':
96
+ return chalk.cyan(`${indicator} ${message}`);
97
+ case 'ai':
98
+ return chalk.magenta(`${indicator} ${message}`);
99
+ default:
100
+ return `${indicator} ${message}`;
101
+ }
102
+ }
103
+ /**
104
+ * 分隔线样式
105
+ */
106
+ export const dividers = {
107
+ solid: (length = 60) => chalk.gray('─'.repeat(length)),
108
+ double: (length = 60) => chalk.gray('═'.repeat(length)),
109
+ bold: (length = 60) => chalk.bold('─'.repeat(length)),
110
+ glow: (length = 60) => chalk.cyan('━'.repeat(length)), // 电光青发光分隔线
111
+ };
112
+ /**
113
+ * 高亮文本
114
+ */
115
+ export function highlight(text, color = 'primary') {
116
+ const chalkFn = getChalkColor(color);
117
+ return chalkFn.bold(text);
118
+ }
119
+ /**
120
+ * 代码块样式
121
+ */
122
+ export function codeBlock(code, language) {
123
+ const header = language ? chalk.gray(`[${language}]`) : '';
124
+ const lines = code.split('\n').map(line => chalk.gray('│ ') + line);
125
+ return [
126
+ header,
127
+ chalk.gray('┌' + '─'.repeat(58) + '┐'),
128
+ ...lines,
129
+ chalk.gray('└' + '─'.repeat(58) + '┘')
130
+ ].filter(Boolean).join('\n');
131
+ }
132
+ /**
133
+ * 人机边界样式 - 用于区分用户输入和 AI 输出
134
+ */
135
+ export const boundary = {
136
+ user: (text) => chalk.cyan(text),
137
+ ai: (text) => chalk.magenta(text),
138
+ userBold: (text) => chalk.cyan.bold(text),
139
+ aiBold: (text) => chalk.magenta.bold(text),
140
+ };
141
+ export default {
142
+ semanticChalk,
143
+ semanticInk,
144
+ getInkColor,
145
+ getChalkColor,
146
+ statusIndicators,
147
+ coloredStatus,
148
+ dividers,
149
+ highlight,
150
+ codeBlock,
151
+ boundary,
152
+ };
153
+ //# sourceMappingURL=theme-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-helpers.js","sourceRoot":"","sources":["../../../../src/jsMain/typescript/design-system/theme-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * i18n - Internationalization Support
3
+ *
4
+ * Provides simple internationalization without external dependencies
5
+ * Supports English and Chinese (Simplified)
6
+ */
7
+ import type { SupportedLanguage } from './types.js';
8
+ export type { SupportedLanguage, TranslationKeys } from './types.js';
9
+ /**
10
+ * Initialize i18n with user's language preference
11
+ */
12
+ export declare function initI18n(): SupportedLanguage;
13
+ /**
14
+ * Set current language
15
+ */
16
+ export declare function setLanguage(lang: SupportedLanguage): void;
17
+ /**
18
+ * Get current language
19
+ */
20
+ export declare function getLanguage(): SupportedLanguage;
21
+ /**
22
+ * Get translation for a key path
23
+ *
24
+ * @param keyPath - Dot-separated key path (e.g., 'common.save', 'welcome.title')
25
+ * @param params - Optional parameters for string interpolation
26
+ * @returns Translated string
27
+ *
28
+ * @example
29
+ * t('common.save') // => 'Save' or '保存'
30
+ * t('modelConfig.defaultHint', { default: 'gpt-4' }) // => 'default: gpt-4'
31
+ */
32
+ export declare function t(keyPath: string, params?: Record<string, any>): string;
33
+ /**
34
+ * Save language preference to config file
35
+ */
36
+ export declare function saveLanguagePreference(lang: SupportedLanguage): Promise<void>;
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/jsMain/typescript/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,YAAY,CAAC;AAMrE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASrE;;GAEG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CA0B5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,iBAAiB,CAE/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAmCvE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCnF"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * i18n - Internationalization Support
3
+ *
4
+ * Provides simple internationalization without external dependencies
5
+ * Supports English and Chinese (Simplified)
6
+ */
7
+ import { en } from './locales/en.js';
8
+ import { zh } from './locales/zh.js';
9
+ import * as fs from 'fs';
10
+ import * as path from 'path';
11
+ import * as os from 'os';
12
+ const translations = {
13
+ en,
14
+ zh,
15
+ };
16
+ let currentLanguage = 'en';
17
+ /**
18
+ * Initialize i18n with user's language preference
19
+ */
20
+ export function initI18n() {
21
+ // Try to load language preference from config
22
+ const configPath = path.join(os.homedir(), '.autodev', 'config.yaml');
23
+ try {
24
+ if (fs.existsSync(configPath)) {
25
+ const content = fs.readFileSync(configPath, 'utf-8');
26
+ const match = content.match(/language:\s*['"]?(en|zh)['"]?/);
27
+ if (match) {
28
+ currentLanguage = match[1];
29
+ return currentLanguage;
30
+ }
31
+ }
32
+ }
33
+ catch (error) {
34
+ // Ignore errors, use default
35
+ }
36
+ // Fall back to system locale
37
+ const locale = process.env.LANG || process.env.LC_ALL || 'en';
38
+ if (locale.startsWith('zh')) {
39
+ currentLanguage = 'zh';
40
+ }
41
+ else {
42
+ currentLanguage = 'en';
43
+ }
44
+ return currentLanguage;
45
+ }
46
+ /**
47
+ * Set current language
48
+ */
49
+ export function setLanguage(lang) {
50
+ currentLanguage = lang;
51
+ }
52
+ /**
53
+ * Get current language
54
+ */
55
+ export function getLanguage() {
56
+ return currentLanguage;
57
+ }
58
+ /**
59
+ * Get translation for a key path
60
+ *
61
+ * @param keyPath - Dot-separated key path (e.g., 'common.save', 'welcome.title')
62
+ * @param params - Optional parameters for string interpolation
63
+ * @returns Translated string
64
+ *
65
+ * @example
66
+ * t('common.save') // => 'Save' or '保存'
67
+ * t('modelConfig.defaultHint', { default: 'gpt-4' }) // => 'default: gpt-4'
68
+ */
69
+ export function t(keyPath, params) {
70
+ const keys = keyPath.split('.');
71
+ const langData = translations[currentLanguage];
72
+ // Navigate through the nested object
73
+ let value = langData;
74
+ for (const key of keys) {
75
+ if (value && typeof value === 'object' && key in value) {
76
+ value = value[key];
77
+ }
78
+ else {
79
+ // Fallback to English if key not found
80
+ value = translations.en;
81
+ for (const k of keys) {
82
+ if (value && typeof value === 'object' && k in value) {
83
+ value = value[k];
84
+ }
85
+ else {
86
+ return keyPath; // Return key path if not found
87
+ }
88
+ }
89
+ break;
90
+ }
91
+ }
92
+ if (typeof value !== 'string') {
93
+ return keyPath;
94
+ }
95
+ // Simple string interpolation
96
+ if (params) {
97
+ return value.replace(/\{\{(\w+)\}\}/g, (match, key) => {
98
+ return params[key]?.toString() || match;
99
+ });
100
+ }
101
+ return value;
102
+ }
103
+ /**
104
+ * Save language preference to config file
105
+ */
106
+ export async function saveLanguagePreference(lang) {
107
+ const configDir = path.join(os.homedir(), '.autodev');
108
+ const configPath = path.join(configDir, 'config.yaml');
109
+ try {
110
+ // Ensure directory exists
111
+ if (!fs.existsSync(configDir)) {
112
+ fs.mkdirSync(configDir, { recursive: true });
113
+ }
114
+ let content = '';
115
+ // Read existing config if it exists
116
+ if (fs.existsSync(configPath)) {
117
+ content = fs.readFileSync(configPath, 'utf-8');
118
+ // Update or add language setting
119
+ if (content.includes('language:')) {
120
+ content = content.replace(/language:\s*['"]?\w+['"]?/, `language: ${lang}`);
121
+ }
122
+ else {
123
+ content = `language: ${lang}\n${content}`;
124
+ }
125
+ }
126
+ else {
127
+ content = `language: ${lang}\n`;
128
+ }
129
+ fs.writeFileSync(configPath, content, 'utf-8');
130
+ setLanguage(lang);
131
+ }
132
+ catch (error) {
133
+ console.error('Failed to save language preference:', error);
134
+ throw error;
135
+ }
136
+ }
137
+ // Initialize on import
138
+ initI18n();
139
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/jsMain/typescript/i18n/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * English Translations
3
+ */
4
+ import type { TranslationKeys } from '../types.js';
5
+ export declare const en: TranslationKeys;
6
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/i18n/locales/en.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,EAAE,EAAE,eAwHhB,CAAC"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * English Translations
3
+ */
4
+ export const en = {
5
+ common: {
6
+ save: 'Save',
7
+ cancel: 'Cancel',
8
+ back: 'Back',
9
+ confirm: 'Confirm',
10
+ error: 'Error',
11
+ success: 'Success',
12
+ loading: 'Loading',
13
+ yes: 'Yes',
14
+ no: 'No',
15
+ continue: 'Continue',
16
+ exit: 'Exit',
17
+ },
18
+ welcome: {
19
+ title: '🚀 Welcome to AutoDev CLI!',
20
+ subtitle: "Let's set up your AI configuration. You can add more later in ~/.autodev/config.yaml",
21
+ configPrompt: 'Configure your LLM model to get started',
22
+ exitHint: 'Press Ctrl+C to exit',
23
+ },
24
+ modelConfig: {
25
+ title: '🤖 Configure LLM Model',
26
+ stepInfo: 'Step 1/2',
27
+ nextStepInfo: "You'll name this configuration in the next step",
28
+ selectProvider: 'Select your LLM provider:',
29
+ enterModel: 'Enter model name',
30
+ defaultHint: 'default: {{default}}',
31
+ enterApiKey: 'Enter your API key:',
32
+ enterBaseUrl: 'Enter custom base URL (optional):',
33
+ customBaseUrl: 'Enter custom base URL',
34
+ ollamaUrl: 'Enter Ollama server URL:',
35
+ leaveEmpty: 'Leave empty to use default',
36
+ backHint: 'Press Ctrl+B to go back',
37
+ summary: 'Configuration Summary:',
38
+ nameConfig: '💾 Name Your Configuration',
39
+ namePrompt: 'Give this configuration a name (e.g., "work", "personal", "gpt4"):',
40
+ nameHint: 'Press Enter to save',
41
+ providers: {
42
+ openai: '🔹 OpenAI (GPT-4, GPT-3.5)',
43
+ anthropic: '🔹 Anthropic (Claude)',
44
+ google: '🔹 Google (Gemini)',
45
+ deepseek: '🔹 DeepSeek',
46
+ ollama: '🔹 Ollama (Local)',
47
+ openrouter: '🔹 OpenRouter',
48
+ glm: '🔹 智谱AI (GLM)',
49
+ qwen: '🔹 阿里通义千问 (Qwen)',
50
+ kimi: '🔹 月之暗面 (Kimi)',
51
+ customOpenAIBase: '🔹 Custom OpenAI-compatible',
52
+ },
53
+ fields: {
54
+ provider: 'Provider',
55
+ model: 'Model',
56
+ apiKey: 'API Key',
57
+ baseUrl: 'Base URL',
58
+ },
59
+ },
60
+ chat: {
61
+ title: '🤖 AutoDev CLI - AI Coding Assistant',
62
+ emptyHint: '💬 Type your message to start coding',
63
+ startHint: '💡 Try /help or @code to get started',
64
+ inputPlaceholder: 'Type your message... (or /help for commands)',
65
+ exitHint: 'Press Ctrl+C to exit',
66
+ helpHint: 'Type /help for commands',
67
+ prefixes: {
68
+ you: '👤 You',
69
+ ai: '🤖 AI',
70
+ system: 'ℹ️ System',
71
+ },
72
+ },
73
+ commands: {
74
+ help: {
75
+ description: 'Show help information',
76
+ },
77
+ clear: {
78
+ description: 'Clear chat history',
79
+ success: '✓ Chat history cleared',
80
+ },
81
+ exit: {
82
+ description: 'Exit the application',
83
+ },
84
+ config: {
85
+ description: 'Show configuration',
86
+ output: '📋 Configuration:\n • Model: {{model}}\n • Type /help for more commands',
87
+ },
88
+ model: {
89
+ description: 'Change AI model',
90
+ available: 'Available models: {{models}}',
91
+ current: 'Current: {{model}}',
92
+ usage: 'Usage: /model <name>',
93
+ },
94
+ init: {
95
+ description: 'Initialize project domain dictionary',
96
+ starting: '🚀 Starting domain dictionary generation...',
97
+ analyzing: '📊 Analyzing project code...',
98
+ generating: '🤖 Generating domain dictionary with AI...',
99
+ saving: '💾 Saving domain dictionary to prompts/domain.csv...',
100
+ success: '✅ Domain dictionary generated successfully! File saved to prompts/domain.csv',
101
+ error: '❌ Domain dictionary generation failed: {{error}}',
102
+ noCode: '⚠️ No analyzable code files found',
103
+ usage: 'Usage: /init [--force] - Generate project domain dictionary',
104
+ },
105
+ unknown: 'Unknown command: {{command}}. Type /help for available commands.',
106
+ usage: 'Command name is required. Usage: /command [args]',
107
+ executionError: 'Command execution failed: {{error}}',
108
+ },
109
+ messages: {
110
+ configSaving: '⏳ Saving configuration...',
111
+ configSaved: '✓ Configuration saved!',
112
+ configLoadError: 'Failed to load configuration: {{error}}',
113
+ configSaveError: 'Failed to save configuration: {{error}}',
114
+ starting: 'Starting AutoDev CLI...',
115
+ goodbye: '👋 Goodbye! Happy coding!',
116
+ inputError: 'Error processing input: {{error}}',
117
+ compilationError: 'DevIns compilation error: {{error}}',
118
+ },
119
+ };
120
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/i18n/locales/en.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Chinese Translations (简体中文)
3
+ */
4
+ import type { TranslationKeys } from '../types.js';
5
+ export declare const zh: TranslationKeys;
6
+ //# sourceMappingURL=zh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/i18n/locales/zh.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAO,MAAM,EAAE,EAAE,eAwHhB,CAAC"}