@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.
- package/README.md +180 -0
- package/dist/jsMain/typescript/agents/LLMService.d.ts +40 -0
- package/dist/jsMain/typescript/agents/LLMService.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/LLMService.js +156 -0
- package/dist/jsMain/typescript/agents/LLMService.js.map +1 -0
- package/dist/jsMain/typescript/agents/ServerAgentClient.d.ts +103 -0
- package/dist/jsMain/typescript/agents/ServerAgentClient.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/ServerAgentClient.js +142 -0
- package/dist/jsMain/typescript/agents/ServerAgentClient.js.map +1 -0
- package/dist/jsMain/typescript/agents/render/BaseRenderer.d.ts +87 -0
- package/dist/jsMain/typescript/agents/render/BaseRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/render/BaseRenderer.js +128 -0
- package/dist/jsMain/typescript/agents/render/BaseRenderer.js.map +1 -0
- package/dist/jsMain/typescript/agents/render/CliRenderer.d.ts +51 -0
- package/dist/jsMain/typescript/agents/render/CliRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/render/CliRenderer.js +564 -0
- package/dist/jsMain/typescript/agents/render/CliRenderer.js.map +1 -0
- package/dist/jsMain/typescript/agents/render/ServerRenderer.d.ts +55 -0
- package/dist/jsMain/typescript/agents/render/ServerRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/render/ServerRenderer.js +503 -0
- package/dist/jsMain/typescript/agents/render/ServerRenderer.js.map +1 -0
- package/dist/jsMain/typescript/agents/render/TuiRenderer.d.ts +104 -0
- package/dist/jsMain/typescript/agents/render/TuiRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/agents/render/TuiRenderer.js +279 -0
- package/dist/jsMain/typescript/agents/render/TuiRenderer.js.map +1 -0
- package/dist/jsMain/typescript/config/ConfigManager.d.ts +146 -0
- package/dist/jsMain/typescript/config/ConfigManager.d.ts.map +1 -0
- package/dist/jsMain/typescript/config/ConfigManager.js +257 -0
- package/dist/jsMain/typescript/config/ConfigManager.js.map +1 -0
- package/dist/jsMain/typescript/constants/asciiArt.d.ts +9 -0
- package/dist/jsMain/typescript/constants/asciiArt.d.ts.map +1 -0
- package/dist/jsMain/typescript/constants/asciiArt.js +47 -0
- package/dist/jsMain/typescript/constants/asciiArt.js.map +1 -0
- package/dist/jsMain/typescript/design-system/colors.d.ts +492 -0
- package/dist/jsMain/typescript/design-system/colors.d.ts.map +1 -0
- package/dist/jsMain/typescript/design-system/colors.js +333 -0
- package/dist/jsMain/typescript/design-system/colors.js.map +1 -0
- package/dist/jsMain/typescript/design-system/index.d.ts +31 -0
- package/dist/jsMain/typescript/design-system/index.d.ts.map +1 -0
- package/dist/jsMain/typescript/design-system/index.js +195 -0
- package/dist/jsMain/typescript/design-system/index.js.map +1 -0
- package/dist/jsMain/typescript/design-system/theme-helpers.d.ts +161 -0
- package/dist/jsMain/typescript/design-system/theme-helpers.d.ts.map +1 -0
- package/dist/jsMain/typescript/design-system/theme-helpers.js +153 -0
- package/dist/jsMain/typescript/design-system/theme-helpers.js.map +1 -0
- package/dist/jsMain/typescript/i18n/index.d.ts +37 -0
- package/dist/jsMain/typescript/i18n/index.d.ts.map +1 -0
- package/dist/jsMain/typescript/i18n/index.js +139 -0
- package/dist/jsMain/typescript/i18n/index.js.map +1 -0
- package/dist/jsMain/typescript/i18n/locales/en.d.ts +6 -0
- package/dist/jsMain/typescript/i18n/locales/en.d.ts.map +1 -0
- package/dist/jsMain/typescript/i18n/locales/en.js +120 -0
- package/dist/jsMain/typescript/i18n/locales/en.js.map +1 -0
- package/dist/jsMain/typescript/i18n/locales/zh.d.ts +6 -0
- package/dist/jsMain/typescript/i18n/locales/zh.d.ts.map +1 -0
- package/dist/jsMain/typescript/i18n/locales/zh.js +120 -0
- package/dist/jsMain/typescript/i18n/locales/zh.js.map +1 -0
- package/dist/jsMain/typescript/i18n/types.d.ts +124 -0
- package/dist/jsMain/typescript/i18n/types.d.ts.map +1 -0
- package/dist/jsMain/typescript/i18n/types.js +7 -0
- package/dist/jsMain/typescript/i18n/types.js.map +1 -0
- package/dist/jsMain/typescript/index.d.ts +9 -0
- package/dist/jsMain/typescript/index.d.ts.map +1 -0
- package/dist/jsMain/typescript/index.js +380 -0
- package/dist/jsMain/typescript/index.js.map +1 -0
- package/dist/jsMain/typescript/modes/AgentMode.d.ts +33 -0
- package/dist/jsMain/typescript/modes/AgentMode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/AgentMode.js +243 -0
- package/dist/jsMain/typescript/modes/AgentMode.js.map +1 -0
- package/dist/jsMain/typescript/modes/ChatMode.d.ts +30 -0
- package/dist/jsMain/typescript/modes/ChatMode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/ChatMode.js +260 -0
- package/dist/jsMain/typescript/modes/ChatMode.js.map +1 -0
- package/dist/jsMain/typescript/modes/DocumentMode.d.ts +26 -0
- package/dist/jsMain/typescript/modes/DocumentMode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/DocumentMode.js +217 -0
- package/dist/jsMain/typescript/modes/DocumentMode.js.map +1 -0
- package/dist/jsMain/typescript/modes/Mode.d.ts +72 -0
- package/dist/jsMain/typescript/modes/Mode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/Mode.js +7 -0
- package/dist/jsMain/typescript/modes/Mode.js.map +1 -0
- package/dist/jsMain/typescript/modes/ModeManager.d.ts +76 -0
- package/dist/jsMain/typescript/modes/ModeManager.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/ModeManager.js +156 -0
- package/dist/jsMain/typescript/modes/ModeManager.js.map +1 -0
- package/dist/jsMain/typescript/modes/ReviewMode.d.ts +52 -0
- package/dist/jsMain/typescript/modes/ReviewMode.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/ReviewMode.js +435 -0
- package/dist/jsMain/typescript/modes/ReviewMode.js.map +1 -0
- package/dist/jsMain/typescript/modes/index.d.ts +9 -0
- package/dist/jsMain/typescript/modes/index.d.ts.map +1 -0
- package/dist/jsMain/typescript/modes/index.js +7 -0
- package/dist/jsMain/typescript/modes/index.js.map +1 -0
- package/dist/jsMain/typescript/processors/AtCommandProcessor.d.ts +34 -0
- package/dist/jsMain/typescript/processors/AtCommandProcessor.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/AtCommandProcessor.js +118 -0
- package/dist/jsMain/typescript/processors/AtCommandProcessor.js.map +1 -0
- package/dist/jsMain/typescript/processors/InputRouter.d.ts +84 -0
- package/dist/jsMain/typescript/processors/InputRouter.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/InputRouter.js +78 -0
- package/dist/jsMain/typescript/processors/InputRouter.js.map +1 -0
- package/dist/jsMain/typescript/processors/ModeCommandProcessor.d.ts +25 -0
- package/dist/jsMain/typescript/processors/ModeCommandProcessor.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/ModeCommandProcessor.js +127 -0
- package/dist/jsMain/typescript/processors/ModeCommandProcessor.js.map +1 -0
- package/dist/jsMain/typescript/processors/SlashCommandProcessor.d.ts +68 -0
- package/dist/jsMain/typescript/processors/SlashCommandProcessor.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/SlashCommandProcessor.js +391 -0
- package/dist/jsMain/typescript/processors/SlashCommandProcessor.js.map +1 -0
- package/dist/jsMain/typescript/processors/VariableProcessor.d.ts +44 -0
- package/dist/jsMain/typescript/processors/VariableProcessor.d.ts.map +1 -0
- package/dist/jsMain/typescript/processors/VariableProcessor.js +105 -0
- package/dist/jsMain/typescript/processors/VariableProcessor.js.map +1 -0
- package/dist/jsMain/typescript/ui/App.d.ts +16 -0
- package/dist/jsMain/typescript/ui/App.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/App.js +208 -0
- package/dist/jsMain/typescript/ui/App.js.map +1 -0
- package/dist/jsMain/typescript/ui/Banner.d.ts +6 -0
- package/dist/jsMain/typescript/ui/Banner.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/Banner.js +13 -0
- package/dist/jsMain/typescript/ui/Banner.js.map +1 -0
- package/dist/jsMain/typescript/ui/ChatInterface.d.ts +19 -0
- package/dist/jsMain/typescript/ui/ChatInterface.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/ChatInterface.js +223 -0
- package/dist/jsMain/typescript/ui/ChatInterface.js.map +1 -0
- package/dist/jsMain/typescript/ui/CommandSuggestions.d.ts +21 -0
- package/dist/jsMain/typescript/ui/CommandSuggestions.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/CommandSuggestions.js +43 -0
- package/dist/jsMain/typescript/ui/CommandSuggestions.js.map +1 -0
- package/dist/jsMain/typescript/ui/LanguageSwitcher.d.ts +11 -0
- package/dist/jsMain/typescript/ui/LanguageSwitcher.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/LanguageSwitcher.js +37 -0
- package/dist/jsMain/typescript/ui/LanguageSwitcher.js.map +1 -0
- package/dist/jsMain/typescript/ui/MessageRenderer.d.ts +70 -0
- package/dist/jsMain/typescript/ui/MessageRenderer.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/MessageRenderer.js +255 -0
- package/dist/jsMain/typescript/ui/MessageRenderer.js.map +1 -0
- package/dist/jsMain/typescript/ui/ModelConfigForm.d.ts +19 -0
- package/dist/jsMain/typescript/ui/ModelConfigForm.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/ModelConfigForm.js +257 -0
- package/dist/jsMain/typescript/ui/ModelConfigForm.js.map +1 -0
- package/dist/jsMain/typescript/ui/WelcomeScreen.d.ts +12 -0
- package/dist/jsMain/typescript/ui/WelcomeScreen.d.ts.map +1 -0
- package/dist/jsMain/typescript/ui/WelcomeScreen.js +93 -0
- package/dist/jsMain/typescript/ui/WelcomeScreen.js.map +1 -0
- package/dist/jsMain/typescript/utils/commandUtils.d.ts +64 -0
- package/dist/jsMain/typescript/utils/commandUtils.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/commandUtils.js +195 -0
- package/dist/jsMain/typescript/utils/commandUtils.js.map +1 -0
- package/dist/jsMain/typescript/utils/domainDictUtils.d.ts +53 -0
- package/dist/jsMain/typescript/utils/domainDictUtils.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/domainDictUtils.js +130 -0
- package/dist/jsMain/typescript/utils/domainDictUtils.js.map +1 -0
- package/dist/jsMain/typescript/utils/markdownSplitter.d.ts +23 -0
- package/dist/jsMain/typescript/utils/markdownSplitter.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/markdownSplitter.js +90 -0
- package/dist/jsMain/typescript/utils/markdownSplitter.js.map +1 -0
- package/dist/jsMain/typescript/utils/outputFormatter.d.ts +70 -0
- package/dist/jsMain/typescript/utils/outputFormatter.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/outputFormatter.js +140 -0
- package/dist/jsMain/typescript/utils/outputFormatter.js.map +1 -0
- package/dist/jsMain/typescript/utils/renderUtils.d.ts +17 -0
- package/dist/jsMain/typescript/utils/renderUtils.d.ts.map +1 -0
- package/dist/jsMain/typescript/utils/renderUtils.js +128 -0
- package/dist/jsMain/typescript/utils/renderUtils.js.map +1 -0
- package/dist/test/framework/analyzers/CodeChangeAnalyzer.d.ts +87 -0
- package/dist/test/framework/analyzers/CodeChangeAnalyzer.d.ts.map +1 -0
- package/dist/test/framework/analyzers/CodeChangeAnalyzer.js +412 -0
- package/dist/test/framework/analyzers/CodeChangeAnalyzer.js.map +1 -0
- package/dist/test/framework/analyzers/PromptAnalyzer.d.ts +46 -0
- package/dist/test/framework/analyzers/PromptAnalyzer.d.ts.map +1 -0
- package/dist/test/framework/analyzers/PromptAnalyzer.js +185 -0
- package/dist/test/framework/analyzers/PromptAnalyzer.js.map +1 -0
- package/dist/test/framework/analyzers/ToolCallAnalyzer.d.ts +45 -0
- package/dist/test/framework/analyzers/ToolCallAnalyzer.d.ts.map +1 -0
- package/dist/test/framework/analyzers/ToolCallAnalyzer.js +215 -0
- package/dist/test/framework/analyzers/ToolCallAnalyzer.js.map +1 -0
- package/dist/test/framework/cli.d.ts +8 -0
- package/dist/test/framework/cli.d.ts.map +1 -0
- package/dist/test/framework/cli.js +175 -0
- package/dist/test/framework/cli.js.map +1 -0
- package/dist/test/framework/core/TestCase.d.ts +100 -0
- package/dist/test/framework/core/TestCase.d.ts.map +1 -0
- package/dist/test/framework/core/TestCase.js +101 -0
- package/dist/test/framework/core/TestCase.js.map +1 -0
- package/dist/test/framework/core/TestEngine.d.ts +89 -0
- package/dist/test/framework/core/TestEngine.d.ts.map +1 -0
- package/dist/test/framework/core/TestEngine.js +552 -0
- package/dist/test/framework/core/TestEngine.js.map +1 -0
- package/dist/test/framework/core/TestResult.d.ts +143 -0
- package/dist/test/framework/core/TestResult.d.ts.map +1 -0
- package/dist/test/framework/core/TestResult.js +76 -0
- package/dist/test/framework/core/TestResult.js.map +1 -0
- package/dist/test/framework/examples/BasicRobustnessTest.d.ts +19 -0
- package/dist/test/framework/examples/BasicRobustnessTest.d.ts.map +1 -0
- package/dist/test/framework/examples/BasicRobustnessTest.js +116 -0
- package/dist/test/framework/examples/BasicRobustnessTest.js.map +1 -0
- package/dist/test/framework/index.d.ts +30 -0
- package/dist/test/framework/index.d.ts.map +1 -0
- package/dist/test/framework/index.js +38 -0
- package/dist/test/framework/index.js.map +1 -0
- package/dist/test/framework/loaders/JsonScenarioLoader.d.ts +99 -0
- package/dist/test/framework/loaders/JsonScenarioLoader.d.ts.map +1 -0
- package/dist/test/framework/loaders/JsonScenarioLoader.js +197 -0
- package/dist/test/framework/loaders/JsonScenarioLoader.js.map +1 -0
- package/dist/test/framework/reporters/ConsoleReporter.d.ts +25 -0
- package/dist/test/framework/reporters/ConsoleReporter.d.ts.map +1 -0
- package/dist/test/framework/reporters/ConsoleReporter.js +196 -0
- package/dist/test/framework/reporters/ConsoleReporter.js.map +1 -0
- package/dist/test/framework/scenarios/ScenarioBuilder.d.ts +62 -0
- package/dist/test/framework/scenarios/ScenarioBuilder.d.ts.map +1 -0
- package/dist/test/framework/scenarios/ScenarioBuilder.js +285 -0
- package/dist/test/framework/scenarios/ScenarioBuilder.js.map +1 -0
- package/dist/test/framework/validate-framework.d.ts +9 -0
- package/dist/test/framework/validate-framework.d.ts.map +1 -0
- package/dist/test/framework/validate-framework.js +187 -0
- package/dist/test/framework/validate-framework.js.map +1 -0
- 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"}
|