@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,87 @@
1
+ /**
2
+ * Base TypeScript renderer implementing JsCodingAgentRenderer interface
3
+ * Provides common functionality for all TypeScript renderer implementations
4
+ *
5
+ * This mirrors the Kotlin BaseRenderer from mpp-core.
6
+ * All TypeScript renderers (CliRenderer, ServerRenderer, TuiRenderer) should extend this class.
7
+ *
8
+ * @see mpp-core/src/commonMain/kotlin/cc/unitmesh/agent/render/BaseRenderer.kt
9
+ * @see mpp-core/src/jsMain/kotlin/cc/unitmesh/agent/RendererExports.kt - JsCodingAgentRenderer interface
10
+ */
11
+ import { cc } from "autodev-mpp-core/autodev-mpp-core";
12
+ import JsCodingAgentRenderer = cc.unitmesh.agent.JsCodingAgentRenderer;
13
+ import JsPlanSummaryData = cc.unitmesh.agent.JsPlanSummaryData;
14
+ export declare abstract class BaseRenderer implements JsCodingAgentRenderer {
15
+ readonly __doNotUseOrImplementIt: any;
16
+ protected reasoningBuffer: string;
17
+ protected isInDevinBlock: boolean;
18
+ protected lastIterationReasoning: string;
19
+ protected consecutiveRepeats: number;
20
+ protected lastOutputLength: number;
21
+ /**
22
+ * Filter out devin blocks and thinking blocks from content
23
+ */
24
+ protected filterDevinBlocks(content: string): string;
25
+ /**
26
+ * Check if content has incomplete devin or thinking blocks
27
+ */
28
+ protected hasIncompleteDevinBlock(content: string): boolean;
29
+ /**
30
+ * Calculate similarity between two strings for repeat detection
31
+ */
32
+ protected calculateSimilarity(str1: string, str2: string): number;
33
+ /**
34
+ * Clean up excessive newlines in content
35
+ */
36
+ protected cleanNewlines(content: string): string;
37
+ abstract renderIterationHeader(current: number, max: number): void;
38
+ abstract renderLLMResponseStart(): void;
39
+ abstract renderLLMResponseChunk(chunk: string): void;
40
+ abstract renderLLMResponseEnd(): void;
41
+ abstract renderToolCall(toolName: string, paramsStr: string): void;
42
+ abstract renderToolResult(toolName: string, success: boolean, output: string | null, fullOutput?: string | null, metadata?: Record<string, string>): void;
43
+ abstract renderTaskComplete(executionTimeMs?: number, toolsUsedCount?: number): void;
44
+ abstract renderFinalResult(success: boolean, message: string, iterations: number): void;
45
+ abstract renderError(message: string): void;
46
+ abstract renderRepeatWarning(toolName: string, count: number): void;
47
+ abstract renderRecoveryAdvice(recoveryAdvice: string): void;
48
+ /**
49
+ * Optional policy/permission prompt. Default: no-op; subclasses can override.
50
+ */
51
+ renderUserConfirmationRequest(toolName: string, params: Record<string, any>): void;
52
+ /**
53
+ * Live terminal sessions are optional; default no-op implementation.
54
+ * Subclasses that support PTY streaming can override.
55
+ */
56
+ addLiveTerminal(sessionId: string, command: string, workingDirectory?: string | null, ptyHandle?: any): void;
57
+ /**
58
+ * Render a compact plan summary bar.
59
+ * Default implementation - subclasses can override for custom rendering.
60
+ *
61
+ * @param summary The plan summary data
62
+ */
63
+ renderPlanSummary(summary: JsPlanSummaryData): void;
64
+ /**
65
+ * Render an Agent-generated sketch block (chart, nanodsl, mermaid, etc.)
66
+ * Called when a SubAgent returns content containing special code blocks.
67
+ *
68
+ * @param agentName The name of the agent that generated the content
69
+ * @param language The language identifier of the code block
70
+ * @param code The code content to render
71
+ * @param metadata Additional metadata as JSON object
72
+ */
73
+ renderAgentSketchBlock(agentName: string, language: string, code: string, metadata: Record<string, string>): void;
74
+ /**
75
+ * Common implementation for LLM response start
76
+ */
77
+ protected baseLLMResponseStart(): void;
78
+ /**
79
+ * Output content - to be implemented by subclasses
80
+ */
81
+ protected abstract outputContent(content: string): void;
82
+ /**
83
+ * Output newline - to be implemented by subclasses
84
+ */
85
+ protected abstract outputNewline(): void;
86
+ }
87
+ //# sourceMappingURL=BaseRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/agents/render/BaseRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Base TypeScript renderer implementing JsCodingAgentRenderer interface
3
+ * Provides common functionality for all TypeScript renderer implementations
4
+ *
5
+ * This mirrors the Kotlin BaseRenderer from mpp-core.
6
+ * All TypeScript renderers (CliRenderer, ServerRenderer, TuiRenderer) should extend this class.
7
+ *
8
+ * @see mpp-core/src/commonMain/kotlin/cc/unitmesh/agent/render/BaseRenderer.kt
9
+ * @see mpp-core/src/jsMain/kotlin/cc/unitmesh/agent/RendererExports.kt - JsCodingAgentRenderer interface
10
+ */
11
+ export class BaseRenderer {
12
+ // Required by Kotlin JS export interface
13
+ __doNotUseOrImplementIt = {};
14
+ reasoningBuffer = '';
15
+ isInDevinBlock = false;
16
+ lastIterationReasoning = '';
17
+ consecutiveRepeats = 0;
18
+ lastOutputLength = 0;
19
+ /**
20
+ * Filter out devin blocks and thinking blocks from content
21
+ */
22
+ filterDevinBlocks(content) {
23
+ // Remove all complete devin blocks
24
+ let filtered = content.replace(/<devin[^>]*>[\s\S]*?<\/devin>/g, '');
25
+ // Remove all complete thinking blocks
26
+ filtered = filtered.replace(/<thinking>[\s\S]*?<\/thinking>/g, '');
27
+ // Handle incomplete devin blocks at the end - remove them completely
28
+ const openDevinIndex = filtered.lastIndexOf('<devin');
29
+ if (openDevinIndex !== -1) {
30
+ const closeDevinIndex = filtered.indexOf('</devin>', openDevinIndex);
31
+ if (closeDevinIndex === -1) {
32
+ // Incomplete devin block, remove it
33
+ filtered = filtered.substring(0, openDevinIndex);
34
+ }
35
+ }
36
+ // Handle incomplete thinking blocks at the end - remove them completely
37
+ const openThinkingIndex = filtered.lastIndexOf('<thinking');
38
+ if (openThinkingIndex !== -1) {
39
+ const closeThinkingIndex = filtered.indexOf('</thinking>', openThinkingIndex);
40
+ if (closeThinkingIndex === -1) {
41
+ // Incomplete thinking block, remove it
42
+ filtered = filtered.substring(0, openThinkingIndex);
43
+ }
44
+ }
45
+ // Also remove partial devin/thinking tags at the end and any standalone '<' that might be part of a tag
46
+ const partialTagPattern = /<(?:de(?:v(?:i(?:n)?)?)?|th(?:i(?:n(?:k(?:i(?:n(?:g)?)?)?)?)?)?)?$|<$/;
47
+ filtered = filtered.replace(partialTagPattern, '');
48
+ return filtered;
49
+ }
50
+ /**
51
+ * Check if content has incomplete devin or thinking blocks
52
+ */
53
+ hasIncompleteDevinBlock(content) {
54
+ // Check if there's an incomplete devin block
55
+ const lastOpenDevin = content.lastIndexOf('<devin');
56
+ const lastCloseDevin = content.lastIndexOf('</devin>');
57
+ // Check if there's an incomplete thinking block
58
+ const lastOpenThinking = content.lastIndexOf('<thinking');
59
+ const lastCloseThinking = content.lastIndexOf('</thinking>');
60
+ // Also check for partial opening tags like '<de', '<dev', '<th', '<thi' or just '<'
61
+ const partialTagPattern = /<(?:de(?:v(?:i(?:n)?)?)?|th(?:i(?:n(?:k(?:i(?:n(?:g)?)?)?)?)?)?)?$|<$/;
62
+ const hasPartialTag = partialTagPattern.test(content);
63
+ const hasIncompleteDevin = lastOpenDevin > lastCloseDevin;
64
+ const hasIncompleteThinking = lastOpenThinking > lastCloseThinking;
65
+ return hasIncompleteDevin || hasIncompleteThinking || hasPartialTag;
66
+ }
67
+ /**
68
+ * Calculate similarity between two strings for repeat detection
69
+ */
70
+ calculateSimilarity(str1, str2) {
71
+ if (!str1 || !str2)
72
+ return 0;
73
+ const words1 = str1.toLowerCase().split(/\s+/);
74
+ const words2 = str2.toLowerCase().split(/\s+/);
75
+ const commonWords = words1.filter(word => words2.includes(word));
76
+ const totalWords = Math.max(words1.length, words2.length);
77
+ return totalWords > 0 ? commonWords.length / totalWords : 0;
78
+ }
79
+ /**
80
+ * Clean up excessive newlines in content
81
+ */
82
+ cleanNewlines(content) {
83
+ return content.replace(/\n{3,}/g, '\n\n');
84
+ }
85
+ /**
86
+ * Optional policy/permission prompt. Default: no-op; subclasses can override.
87
+ */
88
+ renderUserConfirmationRequest(toolName, params) {
89
+ // Default to an info/error line if desired; keeping no-op to avoid extra noise in CLI/Server outputs.
90
+ }
91
+ /**
92
+ * Live terminal sessions are optional; default no-op implementation.
93
+ * Subclasses that support PTY streaming can override.
94
+ */
95
+ addLiveTerminal(sessionId, command, workingDirectory, ptyHandle) {
96
+ // no-op by default
97
+ }
98
+ /**
99
+ * Render a compact plan summary bar.
100
+ * Default implementation - subclasses can override for custom rendering.
101
+ *
102
+ * @param summary The plan summary data
103
+ */
104
+ renderPlanSummary(summary) {
105
+ // Default: no-op, subclasses can override
106
+ }
107
+ /**
108
+ * Render an Agent-generated sketch block (chart, nanodsl, mermaid, etc.)
109
+ * Called when a SubAgent returns content containing special code blocks.
110
+ *
111
+ * @param agentName The name of the agent that generated the content
112
+ * @param language The language identifier of the code block
113
+ * @param code The code content to render
114
+ * @param metadata Additional metadata as JSON object
115
+ */
116
+ renderAgentSketchBlock(agentName, language, code, metadata) {
117
+ // Default: no-op, subclasses can override for interactive rendering
118
+ }
119
+ /**
120
+ * Common implementation for LLM response start
121
+ */
122
+ baseLLMResponseStart() {
123
+ this.reasoningBuffer = '';
124
+ this.isInDevinBlock = false;
125
+ this.lastOutputLength = 0;
126
+ }
127
+ }
128
+ //# sourceMappingURL=BaseRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseRenderer.js","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/agents/render/BaseRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * CLI Renderer for CodingAgent
3
+ *
4
+ * Implements JsCodingAgentRenderer interface from Kotlin Multiplatform.
5
+ * Provides enhanced CLI output with colors, syntax highlighting, and formatting.
6
+ *
7
+ * @see mpp-core/src/jsMain/kotlin/cc/unitmesh/agent/RendererExports.kt - Interface definition
8
+ */
9
+ import { BaseRenderer } from './BaseRenderer.js';
10
+ import { cc } from 'autodev-mpp-core/autodev-mpp-core';
11
+ import JsPlanSummaryData = cc.unitmesh.agent.JsPlanSummaryData;
12
+ /**
13
+ * CliRenderer extends BaseRenderer and implements the unified JsCodingAgentRenderer interface
14
+ */
15
+ export declare class CliRenderer extends BaseRenderer {
16
+ protected outputContent(content: string): void;
17
+ protected outputNewline(): void;
18
+ renderIterationHeader(current: number, max: number): void;
19
+ /**
20
+ * Render a compact plan summary bar
21
+ * Example: 📋 Plan: Create Tag System (3/5 steps, 60%) ████████░░░░░░░░
22
+ */
23
+ renderPlanSummary(summary: JsPlanSummaryData): void;
24
+ renderLLMResponseStart(): void;
25
+ renderLLMResponseChunk(chunk: string): void;
26
+ renderLLMResponseEnd(): void;
27
+ renderToolCall(toolName: string, paramsStr: string): void;
28
+ private formatToolCallDisplay;
29
+ private parseParamsString;
30
+ renderToolResult(toolName: string, success: boolean, output: string | null, fullOutput: string | null, metadata?: Record<string, string>): void;
31
+ private displayMetadata;
32
+ private generateToolSummary;
33
+ private displayCodeContent;
34
+ private displayDiffSummary;
35
+ private highlightCode;
36
+ private getFileExtension;
37
+ private getLanguageFromExtension;
38
+ private convertAnsiToChalk;
39
+ private extractDiffInfo;
40
+ renderTaskComplete(executionTimeMs?: number, toolsUsedCount?: number): void;
41
+ renderFinalResult(success: boolean, message: string, iterations: number): void;
42
+ renderError(message: string): void;
43
+ renderRepeatWarning(toolName: string, count: number): void;
44
+ renderRecoveryAdvice(recoveryAdvice: string): void;
45
+ /**
46
+ * Render an Agent-generated sketch block (chart, nanodsl, mermaid, etc.)
47
+ * In CLI mode, we display the code block with syntax highlighting hint.
48
+ */
49
+ renderAgentSketchBlock(agentName: string, language: string, code: string, metadata: Record<string, string>): void;
50
+ }
51
+ //# sourceMappingURL=CliRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/agents/render/CliRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,EAAE,EAAE,MAAM,mCAAmC,CAAC;AACvD,OAAO,iBAAiB,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAE/D;;GAEG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAQ3C,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9C,SAAS,CAAC,aAAa,IAAI,IAAI;IAQ/B,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzD;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IA6CnD,sBAAsB,IAAI,IAAI;IAK9B,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAyB3C,oBAAoB,IAAI,IAAI;IA+B5B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQzD,OAAO,CAAC,qBAAqB;IAsH3B,OAAO,CAAC,iBAAiB;IAoB3B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAwB/I,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,eAAe;IAuCvB,kBAAkB,CAAC,eAAe,GAAE,MAAU,EAAE,cAAc,GAAE,MAAU,GAAG,IAAI;IAgBjF,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAU9E,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1D,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAqClD;;;OAGG;IACH,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,IAAI;CASR"}