@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,564 @@
|
|
|
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 chalk from 'chalk';
|
|
10
|
+
import hljs from 'highlight.js';
|
|
11
|
+
import { semanticChalk, dividers } from '../../design-system/theme-helpers.js';
|
|
12
|
+
import { BaseRenderer } from './BaseRenderer.js';
|
|
13
|
+
/**
|
|
14
|
+
* CliRenderer extends BaseRenderer and implements the unified JsCodingAgentRenderer interface
|
|
15
|
+
*/
|
|
16
|
+
export class CliRenderer extends BaseRenderer {
|
|
17
|
+
// BaseRenderer already has __doNotUseOrImplementIt
|
|
18
|
+
// BaseRenderer already has reasoningBuffer, isInDevinBlock, lastIterationReasoning, consecutiveRepeats, lastOutputLength
|
|
19
|
+
// ============================================================================
|
|
20
|
+
// Platform-specific output methods (required by BaseRenderer)
|
|
21
|
+
// ============================================================================
|
|
22
|
+
outputContent(content) {
|
|
23
|
+
process.stdout.write(chalk.white(content));
|
|
24
|
+
}
|
|
25
|
+
outputNewline() {
|
|
26
|
+
console.log(); // Single line break
|
|
27
|
+
}
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// JsCodingAgentRenderer Interface Implementation
|
|
30
|
+
// ============================================================================
|
|
31
|
+
renderIterationHeader(current, max) {
|
|
32
|
+
// Don't show iteration headers - they're not in the reference format
|
|
33
|
+
// The reference format shows tools directly without iteration numbers
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Render a compact plan summary bar
|
|
37
|
+
* Example: 📋 Plan: Create Tag System (3/5 steps, 60%) ████████░░░░░░░░
|
|
38
|
+
*/
|
|
39
|
+
renderPlanSummary(summary) {
|
|
40
|
+
const { title, completedSteps, totalSteps, progressPercent, status, currentStepDescription } = summary;
|
|
41
|
+
// Build progress bar (16 chars wide)
|
|
42
|
+
const barWidth = 16;
|
|
43
|
+
const filledWidth = Math.round((progressPercent / 100) * barWidth);
|
|
44
|
+
const emptyWidth = barWidth - filledWidth;
|
|
45
|
+
const progressBar = '█'.repeat(filledWidth) + '░'.repeat(emptyWidth);
|
|
46
|
+
// Status indicator
|
|
47
|
+
let statusIcon = '📋';
|
|
48
|
+
let statusColor = semanticChalk.info;
|
|
49
|
+
if (status === 'COMPLETED') {
|
|
50
|
+
statusIcon = '✅';
|
|
51
|
+
statusColor = semanticChalk.success;
|
|
52
|
+
}
|
|
53
|
+
else if (status === 'FAILED') {
|
|
54
|
+
statusIcon = '❌';
|
|
55
|
+
statusColor = semanticChalk.error;
|
|
56
|
+
}
|
|
57
|
+
else if (status === 'IN_PROGRESS') {
|
|
58
|
+
statusIcon = '🔄';
|
|
59
|
+
}
|
|
60
|
+
// Truncate title if too long
|
|
61
|
+
const maxTitleLen = 30;
|
|
62
|
+
const displayTitle = title.length > maxTitleLen ? title.substring(0, maxTitleLen - 3) + '...' : title;
|
|
63
|
+
// Main summary line
|
|
64
|
+
console.log(statusIcon + ' ' +
|
|
65
|
+
chalk.bold('Plan: ') +
|
|
66
|
+
chalk.white(displayTitle) + ' ' +
|
|
67
|
+
semanticChalk.muted(`(${completedSteps}/${totalSteps} steps, ${progressPercent}%) `) +
|
|
68
|
+
statusColor(progressBar));
|
|
69
|
+
// Show current step if available
|
|
70
|
+
if (currentStepDescription && status !== 'COMPLETED') {
|
|
71
|
+
const maxStepLen = 50;
|
|
72
|
+
const displayStep = currentStepDescription.length > maxStepLen
|
|
73
|
+
? currentStepDescription.substring(0, maxStepLen - 3) + '...'
|
|
74
|
+
: currentStepDescription;
|
|
75
|
+
console.log(' ⎿ ' + semanticChalk.muted('Next: ' + displayStep));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
renderLLMResponseStart() {
|
|
79
|
+
this.baseLLMResponseStart(); // Use BaseRenderer helper
|
|
80
|
+
process.stdout.write(semanticChalk.muted('💭 '));
|
|
81
|
+
}
|
|
82
|
+
renderLLMResponseChunk(chunk) {
|
|
83
|
+
// Add chunk to buffer
|
|
84
|
+
this.reasoningBuffer += chunk;
|
|
85
|
+
// Wait for more content if we detect an incomplete devin block (from BaseRenderer)
|
|
86
|
+
if (this.hasIncompleteDevinBlock(this.reasoningBuffer)) {
|
|
87
|
+
return; // Don't output anything yet, wait for more chunks
|
|
88
|
+
}
|
|
89
|
+
// Process the buffer to filter out devin blocks (from BaseRenderer)
|
|
90
|
+
let processedContent = this.filterDevinBlocks(this.reasoningBuffer);
|
|
91
|
+
// Only output new content that hasn't been printed yet
|
|
92
|
+
if (processedContent.length > 0) {
|
|
93
|
+
// Find what's new since last output
|
|
94
|
+
const newContent = processedContent.slice(this.lastOutputLength || 0);
|
|
95
|
+
if (newContent.length > 0) {
|
|
96
|
+
// Clean up excessive newlines (from BaseRenderer)
|
|
97
|
+
const cleanedContent = this.cleanNewlines(newContent);
|
|
98
|
+
process.stdout.write(chalk.white(cleanedContent));
|
|
99
|
+
this.lastOutputLength = processedContent.length;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
renderLLMResponseEnd() {
|
|
104
|
+
// Force output any remaining content after filtering devin blocks
|
|
105
|
+
const finalContent = this.filterDevinBlocks(this.reasoningBuffer);
|
|
106
|
+
const remainingContent = finalContent.slice(this.lastOutputLength || 0);
|
|
107
|
+
if (remainingContent.length > 0) {
|
|
108
|
+
this.outputContent(remainingContent);
|
|
109
|
+
}
|
|
110
|
+
// Check if this reasoning is similar to the last one (from BaseRenderer)
|
|
111
|
+
const currentReasoning = finalContent.trim();
|
|
112
|
+
const similarity = this.calculateSimilarity(currentReasoning, this.lastIterationReasoning);
|
|
113
|
+
if (similarity > 0.8 && this.lastIterationReasoning.length > 0) {
|
|
114
|
+
this.consecutiveRepeats++;
|
|
115
|
+
if (this.consecutiveRepeats >= 2) {
|
|
116
|
+
console.log(semanticChalk.warning('\n ⚠️ Agent appears to be repeating similar analysis...'));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this.consecutiveRepeats = 0;
|
|
121
|
+
}
|
|
122
|
+
this.lastIterationReasoning = currentReasoning;
|
|
123
|
+
// Only add a line break if the content doesn't already end with one
|
|
124
|
+
const trimmedContent = finalContent.trimEnd();
|
|
125
|
+
if (trimmedContent.length > 0 && !trimmedContent.endsWith('\n')) {
|
|
126
|
+
this.outputNewline();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
renderToolCall(toolName, paramsStr) {
|
|
130
|
+
const toolInfo = this.formatToolCallDisplay(toolName, paramsStr);
|
|
131
|
+
console.log(chalk.bold('● ') + chalk.bold(toolInfo.name) + semanticChalk.muted(' - ' + toolInfo.description));
|
|
132
|
+
if (toolInfo.details) {
|
|
133
|
+
console.log(' ⎿ ' + semanticChalk.muted(toolInfo.details));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
formatToolCallDisplay(toolName, paramsStr) {
|
|
137
|
+
// Parse parameters from the string format
|
|
138
|
+
const params = this.parseParamsString(paramsStr);
|
|
139
|
+
switch (toolName) {
|
|
140
|
+
case 'read-file':
|
|
141
|
+
return {
|
|
142
|
+
name: `${params.path || 'unknown'} - read file`,
|
|
143
|
+
description: 'file reader',
|
|
144
|
+
details: `Reading file: ${params.path || 'unknown'}`
|
|
145
|
+
};
|
|
146
|
+
case 'write-file':
|
|
147
|
+
const mode = params.mode || 'update';
|
|
148
|
+
return {
|
|
149
|
+
name: `${params.path || 'unknown'} - edit file`,
|
|
150
|
+
description: 'file editor',
|
|
151
|
+
details: `${mode === 'create' ? 'Creating' : 'Updating'} file: ${params.path || 'unknown'}`
|
|
152
|
+
};
|
|
153
|
+
case 'shell':
|
|
154
|
+
const command = params.command || params.cmd || 'unknown';
|
|
155
|
+
return {
|
|
156
|
+
name: 'Shell command',
|
|
157
|
+
description: 'command executor',
|
|
158
|
+
details: `Running: ${command}`
|
|
159
|
+
};
|
|
160
|
+
case 'glob':
|
|
161
|
+
return {
|
|
162
|
+
name: 'File search',
|
|
163
|
+
description: 'pattern matcher',
|
|
164
|
+
details: `Searching for files matching pattern: ${params.pattern || 'unknown'}`
|
|
165
|
+
};
|
|
166
|
+
case 'grep':
|
|
167
|
+
return {
|
|
168
|
+
name: 'Text search',
|
|
169
|
+
description: 'content finder',
|
|
170
|
+
details: `Searching for pattern: ${params.pattern || 'unknown'}${params.path ? ` in ${params.path}` : ''}`
|
|
171
|
+
};
|
|
172
|
+
case 'DocQL':
|
|
173
|
+
case 'docql': {
|
|
174
|
+
// Use JSON.parse directly - it handles all edge cases properly
|
|
175
|
+
let docqlParams = {};
|
|
176
|
+
try {
|
|
177
|
+
// First try direct JSON parse
|
|
178
|
+
docqlParams = JSON.parse(paramsStr);
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// Fallback to the old regex-based parsing
|
|
182
|
+
docqlParams = params;
|
|
183
|
+
}
|
|
184
|
+
const query = docqlParams.query || params.query || paramsStr;
|
|
185
|
+
const docPath = docqlParams.documentPath || params.documentPath;
|
|
186
|
+
const maxResults = docqlParams.maxResults || params.maxResults;
|
|
187
|
+
const reranker = docqlParams.rerankerType || params.rerankerType;
|
|
188
|
+
// Build details string - truncate long queries for display
|
|
189
|
+
const displayQuery = query.length > 80 ? query.substring(0, 77) + '...' : query;
|
|
190
|
+
let details = `Query: "${displayQuery}"`;
|
|
191
|
+
if (docPath)
|
|
192
|
+
details += ` | Doc: ${docPath}`;
|
|
193
|
+
if (maxResults)
|
|
194
|
+
details += ` | Max: ${maxResults}`;
|
|
195
|
+
if (reranker)
|
|
196
|
+
details += ` | Reranker: ${reranker}`;
|
|
197
|
+
return {
|
|
198
|
+
name: 'DocQL',
|
|
199
|
+
description: 'document query',
|
|
200
|
+
details
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
case 'plan': {
|
|
204
|
+
const action = params.action || 'unknown';
|
|
205
|
+
const actionLower = action.toLowerCase();
|
|
206
|
+
if (actionLower === 'create') {
|
|
207
|
+
return {
|
|
208
|
+
name: 'Plan',
|
|
209
|
+
description: 'creating plan',
|
|
210
|
+
details: 'Creating new task plan...'
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
else if (actionLower === 'complete_step') {
|
|
214
|
+
const steps = params.steps;
|
|
215
|
+
if (steps) {
|
|
216
|
+
return {
|
|
217
|
+
name: 'Plan',
|
|
218
|
+
description: 'updating progress',
|
|
219
|
+
details: `Completing multiple steps...`
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
name: 'Plan',
|
|
224
|
+
description: 'updating progress',
|
|
225
|
+
details: `Completing step ${params.taskIndex || '?'}.${params.stepIndex || '?'}`
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
else if (actionLower === 'fail_step') {
|
|
229
|
+
return {
|
|
230
|
+
name: 'Plan',
|
|
231
|
+
description: 'marking failed',
|
|
232
|
+
details: `Step ${params.taskIndex || '?'}.${params.stepIndex || '?'} failed`
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
else if (actionLower === 'view') {
|
|
236
|
+
return {
|
|
237
|
+
name: 'Plan',
|
|
238
|
+
description: 'viewing plan',
|
|
239
|
+
details: 'Viewing current plan status'
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
return {
|
|
243
|
+
name: 'Plan',
|
|
244
|
+
description: action,
|
|
245
|
+
details: paramsStr
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
default:
|
|
249
|
+
return {
|
|
250
|
+
name: toolName,
|
|
251
|
+
description: 'tool',
|
|
252
|
+
details: paramsStr
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
parseParamsString(paramsStr) {
|
|
257
|
+
const params = {};
|
|
258
|
+
// Normalize input: remove surrounding braces and trim
|
|
259
|
+
const cleaned = paramsStr.trim().replace(/^\{|\}$/g, '').trim();
|
|
260
|
+
if (!cleaned)
|
|
261
|
+
return params;
|
|
262
|
+
// Match key=value where value may be double-quoted, single-quoted, or unquoted (stops at comma/space/})
|
|
263
|
+
const regex = /(\w+)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^,\s}]+))/g;
|
|
264
|
+
let match;
|
|
265
|
+
while ((match = regex.exec(cleaned)) !== null) {
|
|
266
|
+
const key = match[1];
|
|
267
|
+
const value = match[2] ?? match[3] ?? match[4] ?? '';
|
|
268
|
+
params[key] = value;
|
|
269
|
+
}
|
|
270
|
+
return params;
|
|
271
|
+
}
|
|
272
|
+
renderToolResult(toolName, success, output, fullOutput, metadata) {
|
|
273
|
+
if (success && output) {
|
|
274
|
+
const summary = this.generateToolSummary(toolName, output);
|
|
275
|
+
console.log(' ⎿ ' + semanticChalk.success(summary));
|
|
276
|
+
if (toolName === 'read-file') {
|
|
277
|
+
// For read-file, show formatted code content with syntax highlighting
|
|
278
|
+
this.displayCodeContent(output, this.getFileExtension(output));
|
|
279
|
+
}
|
|
280
|
+
else if (toolName === 'write-file' || toolName === 'edit-file') {
|
|
281
|
+
// For write-file/edit-file, show diff view if available
|
|
282
|
+
const diffInfo = this.extractDiffInfo(output);
|
|
283
|
+
if (diffInfo && (diffInfo.additions > 0 || diffInfo.deletions > 0)) {
|
|
284
|
+
this.displayDiffSummary(diffInfo.additions, diffInfo.deletions);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
else if (!success && output) {
|
|
289
|
+
console.log(' ⎿ ' + semanticChalk.error(`Error: ${output.substring(0, 200)}`));
|
|
290
|
+
}
|
|
291
|
+
// Display metadata if provided
|
|
292
|
+
if (metadata && Object.keys(metadata).length > 0) {
|
|
293
|
+
this.displayMetadata(metadata);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
displayMetadata(metadata) {
|
|
297
|
+
const entries = Object.entries(metadata);
|
|
298
|
+
if (entries.length === 0)
|
|
299
|
+
return;
|
|
300
|
+
// Format metadata with icons based on common keys
|
|
301
|
+
const formattedEntries = entries.map(([key, value]) => {
|
|
302
|
+
switch (key) {
|
|
303
|
+
case 'duration':
|
|
304
|
+
case 'elapsed':
|
|
305
|
+
case 'time':
|
|
306
|
+
return `⏱ ${key}: ${semanticChalk.accent(value)}`;
|
|
307
|
+
case 'size':
|
|
308
|
+
case 'fileSize':
|
|
309
|
+
case 'bytes':
|
|
310
|
+
return `📦 ${key}: ${semanticChalk.accent(value)}`;
|
|
311
|
+
case 'lines':
|
|
312
|
+
case 'lineCount':
|
|
313
|
+
return `📄 ${key}: ${semanticChalk.accent(value)}`;
|
|
314
|
+
case 'status':
|
|
315
|
+
case 'exitCode':
|
|
316
|
+
return `📊 ${key}: ${semanticChalk.accent(value)}`;
|
|
317
|
+
default:
|
|
318
|
+
return ` ${key}: ${semanticChalk.muted(value)}`;
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
console.log(semanticChalk.muted(' ├─ metadata:'));
|
|
322
|
+
formattedEntries.forEach(entry => {
|
|
323
|
+
console.log(semanticChalk.muted(` │ ${entry}`));
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
generateToolSummary(toolName, output) {
|
|
327
|
+
switch (toolName) {
|
|
328
|
+
case 'glob':
|
|
329
|
+
const fileMatches = output.match(/Found (\d+) files/);
|
|
330
|
+
if (fileMatches) {
|
|
331
|
+
return `Found ${fileMatches[1]} files`;
|
|
332
|
+
}
|
|
333
|
+
return 'Files found';
|
|
334
|
+
case 'read-file':
|
|
335
|
+
const lines = output.split('\n').length;
|
|
336
|
+
return `Read ${lines} lines`;
|
|
337
|
+
case 'write-file':
|
|
338
|
+
case 'edit-file':
|
|
339
|
+
if (output.includes('created')) {
|
|
340
|
+
const lines = output.split('\n').length;
|
|
341
|
+
return `File created with ${lines} lines`;
|
|
342
|
+
}
|
|
343
|
+
else if (output.includes('updated') || output.includes('overwrote') || output.includes('Successfully')) {
|
|
344
|
+
// Try to extract diff information if available
|
|
345
|
+
const diffInfo = this.extractDiffInfo(output);
|
|
346
|
+
if (diffInfo && (diffInfo.additions > 0 || diffInfo.deletions > 0)) {
|
|
347
|
+
return `Edited with ${semanticChalk.success('+' + diffInfo.additions)} and ${semanticChalk.error('-' + diffInfo.deletions)}`;
|
|
348
|
+
}
|
|
349
|
+
return 'File updated successfully';
|
|
350
|
+
}
|
|
351
|
+
return 'File operation completed';
|
|
352
|
+
case 'shell':
|
|
353
|
+
return 'Command executed successfully';
|
|
354
|
+
case 'grep':
|
|
355
|
+
const matches = output.split('\n').filter(line => line.trim()).length;
|
|
356
|
+
return `Found ${matches} matches`;
|
|
357
|
+
case 'DocQL':
|
|
358
|
+
// Simplify DocQL output - just show success
|
|
359
|
+
return 'Query executed';
|
|
360
|
+
default:
|
|
361
|
+
return 'Operation completed';
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
displayCodeContent(content, fileExtension) {
|
|
365
|
+
const lines = content.split('\n');
|
|
366
|
+
const maxLines = 15; // Show first 15 lines to avoid overwhelming output
|
|
367
|
+
const displayLines = lines.slice(0, maxLines);
|
|
368
|
+
console.log(dividers.solid(60));
|
|
369
|
+
displayLines.forEach((line, index) => {
|
|
370
|
+
const lineNumber = (index + 1).toString().padStart(3, ' ');
|
|
371
|
+
const highlightedLine = this.highlightCode(line, fileExtension);
|
|
372
|
+
console.log(semanticChalk.muted(`${lineNumber} │ `) + highlightedLine);
|
|
373
|
+
});
|
|
374
|
+
if (lines.length > maxLines) {
|
|
375
|
+
console.log(semanticChalk.muted(`... (${lines.length - maxLines} more lines)`));
|
|
376
|
+
}
|
|
377
|
+
console.log(dividers.solid(60));
|
|
378
|
+
}
|
|
379
|
+
displayDiffSummary(additions, deletions) {
|
|
380
|
+
// Display diff summary similar to git diff output
|
|
381
|
+
console.log(dividers.solid(60));
|
|
382
|
+
console.log(semanticChalk.success(` +${additions} lines added`) + ' │ ' + semanticChalk.error(`-${deletions} lines removed`));
|
|
383
|
+
console.log(dividers.solid(60));
|
|
384
|
+
}
|
|
385
|
+
highlightCode(code, fileExtension) {
|
|
386
|
+
try {
|
|
387
|
+
const language = this.getLanguageFromExtension(fileExtension);
|
|
388
|
+
if (language && hljs.getLanguage(language)) {
|
|
389
|
+
const highlighted = hljs.highlight(code, { language }).value;
|
|
390
|
+
// Convert ANSI codes to chalk colors (simplified)
|
|
391
|
+
return this.convertAnsiToChalk(highlighted);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
catch (e) {
|
|
395
|
+
// Fallback to no highlighting
|
|
396
|
+
}
|
|
397
|
+
return code;
|
|
398
|
+
}
|
|
399
|
+
getFileExtension(content) {
|
|
400
|
+
// Try to extract file extension from content or context
|
|
401
|
+
// This is a simplified approach - in practice, you'd get this from the file path
|
|
402
|
+
if (content.includes('public class') || content.includes('import java'))
|
|
403
|
+
return 'java';
|
|
404
|
+
if (content.includes('function') && content.includes('{'))
|
|
405
|
+
return 'js';
|
|
406
|
+
if (content.includes('def ') || content.includes('import '))
|
|
407
|
+
return 'py';
|
|
408
|
+
if (content.includes('#include') || content.includes('int main'))
|
|
409
|
+
return 'cpp';
|
|
410
|
+
return 'txt';
|
|
411
|
+
}
|
|
412
|
+
getLanguageFromExtension(ext) {
|
|
413
|
+
const mapping = {
|
|
414
|
+
'java': 'java',
|
|
415
|
+
'js': 'javascript',
|
|
416
|
+
'ts': 'typescript',
|
|
417
|
+
'py': 'python',
|
|
418
|
+
'cpp': 'cpp',
|
|
419
|
+
'c': 'c',
|
|
420
|
+
'kt': 'kotlin',
|
|
421
|
+
'rs': 'rust',
|
|
422
|
+
'go': 'go',
|
|
423
|
+
'rb': 'ruby',
|
|
424
|
+
'php': 'php',
|
|
425
|
+
'html': 'html',
|
|
426
|
+
'css': 'css',
|
|
427
|
+
'json': 'json',
|
|
428
|
+
'xml': 'xml',
|
|
429
|
+
'yaml': 'yaml',
|
|
430
|
+
'yml': 'yaml',
|
|
431
|
+
'md': 'markdown'
|
|
432
|
+
};
|
|
433
|
+
return mapping[ext] || null;
|
|
434
|
+
}
|
|
435
|
+
convertAnsiToChalk(highlighted) {
|
|
436
|
+
// Simple conversion of highlight.js HTML to colored text
|
|
437
|
+
// This is a basic implementation - you might want to use a proper HTML-to-ANSI converter
|
|
438
|
+
return highlighted
|
|
439
|
+
.replace(/<span class="hljs-keyword">/g, semanticChalk.primary(''))
|
|
440
|
+
.replace(/<span class="hljs-string">/g, semanticChalk.success(''))
|
|
441
|
+
.replace(/<span class="hljs-comment">/g, semanticChalk.muted(''))
|
|
442
|
+
.replace(/<span class="hljs-number">/g, semanticChalk.warning(''))
|
|
443
|
+
.replace(/<\/span>/g, chalk.reset(''))
|
|
444
|
+
.replace(/<[^>]*>/g, ''); // Remove any remaining HTML tags
|
|
445
|
+
}
|
|
446
|
+
extractDiffInfo(output) {
|
|
447
|
+
// Try to extract diff information from output
|
|
448
|
+
const lines = output.split('\n');
|
|
449
|
+
let additions = 0;
|
|
450
|
+
let deletions = 0;
|
|
451
|
+
// Check for unified diff format (from tool output)
|
|
452
|
+
for (const line of lines) {
|
|
453
|
+
if (line.startsWith('+') && !line.startsWith('+++')) {
|
|
454
|
+
additions++;
|
|
455
|
+
}
|
|
456
|
+
else if (line.startsWith('-') && !line.startsWith('---')) {
|
|
457
|
+
deletions++;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
if (additions > 0 || deletions > 0) {
|
|
461
|
+
return { additions, deletions };
|
|
462
|
+
}
|
|
463
|
+
// Try to parse from success message like "Successfully created file: path (123 chars, 45 lines)"
|
|
464
|
+
// This is from WriteFileTool output
|
|
465
|
+
const newFileMatch = output.match(/created file.*\((\d+) chars, (\d+) lines\)/);
|
|
466
|
+
if (newFileMatch) {
|
|
467
|
+
const lineCount = parseInt(newFileMatch[2], 10);
|
|
468
|
+
return { additions: lineCount, deletions: 0 };
|
|
469
|
+
}
|
|
470
|
+
// Try to parse from success message like "Successfully overwrote file: path (123 chars, 45 lines)"
|
|
471
|
+
const overwriteMatch = output.match(/overwrote file.*\((\d+) chars, (\d+) lines\)/);
|
|
472
|
+
if (overwriteMatch) {
|
|
473
|
+
const lineCount = parseInt(overwriteMatch[2], 10);
|
|
474
|
+
// For overwrites, we can't determine exact diff without original content
|
|
475
|
+
// So we'll just show it as additions for now
|
|
476
|
+
return { additions: lineCount, deletions: 0 };
|
|
477
|
+
}
|
|
478
|
+
return null;
|
|
479
|
+
}
|
|
480
|
+
renderTaskComplete(executionTimeMs = 0, toolsUsedCount = 0) {
|
|
481
|
+
const parts = [];
|
|
482
|
+
if (executionTimeMs > 0) {
|
|
483
|
+
const seconds = (executionTimeMs / 1000).toFixed(2);
|
|
484
|
+
parts.push(`${seconds}s`);
|
|
485
|
+
}
|
|
486
|
+
if (toolsUsedCount > 0) {
|
|
487
|
+
parts.push(`${toolsUsedCount} tools`);
|
|
488
|
+
}
|
|
489
|
+
const info = parts.length > 0 ? ` (${parts.join(', ')})` : '';
|
|
490
|
+
console.log(semanticChalk.successBold(`\n✓ Task marked as complete${info}\n`));
|
|
491
|
+
}
|
|
492
|
+
renderFinalResult(success, message, iterations) {
|
|
493
|
+
console.log();
|
|
494
|
+
if (success) {
|
|
495
|
+
console.log(semanticChalk.successBold('✅ Task completed successfully'));
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
console.log(semanticChalk.warningBold('⚠️ Task incomplete'));
|
|
499
|
+
}
|
|
500
|
+
console.log(semanticChalk.muted(`Task completed after ${iterations} iterations`));
|
|
501
|
+
}
|
|
502
|
+
renderError(message) {
|
|
503
|
+
console.log(semanticChalk.errorBold('❌ ') + message);
|
|
504
|
+
}
|
|
505
|
+
renderRepeatWarning(toolName, count) {
|
|
506
|
+
console.log(semanticChalk.warning(`⚠️ Warning: Tool '${toolName}' has been called ${count} times in a row`));
|
|
507
|
+
console.log(semanticChalk.warning(` This may indicate the agent is stuck in a loop. Stopping execution.`));
|
|
508
|
+
}
|
|
509
|
+
renderRecoveryAdvice(recoveryAdvice) {
|
|
510
|
+
console.log();
|
|
511
|
+
console.log(semanticChalk.accentBold('🔧 ERROR RECOVERY ADVICE:'));
|
|
512
|
+
console.log(semanticChalk.accent(dividers.solid(50)));
|
|
513
|
+
// Split by lines and add proper indentation with colors
|
|
514
|
+
const lines = recoveryAdvice.split('\n');
|
|
515
|
+
for (const line of lines) {
|
|
516
|
+
if (line.trim().length > 0) {
|
|
517
|
+
// Color different sections differently
|
|
518
|
+
if (line.includes('Analysis:')) {
|
|
519
|
+
console.log(semanticChalk.primary(` ${line}`));
|
|
520
|
+
}
|
|
521
|
+
else if (line.includes('Recommended Actions:')) {
|
|
522
|
+
console.log(semanticChalk.success(` ${line}`));
|
|
523
|
+
}
|
|
524
|
+
else if (line.includes('Recovery Commands:')) {
|
|
525
|
+
console.log(semanticChalk.warning(` ${line}`));
|
|
526
|
+
}
|
|
527
|
+
else if (line.includes('Next Steps:')) {
|
|
528
|
+
console.log(chalk.magenta(` ${line}`));
|
|
529
|
+
}
|
|
530
|
+
else if (line.trim().startsWith('$')) {
|
|
531
|
+
// Command lines in cyan
|
|
532
|
+
console.log(semanticChalk.accent(` ${line}`));
|
|
533
|
+
}
|
|
534
|
+
else if (line.trim().match(/^\d+\./)) {
|
|
535
|
+
// Numbered items in white
|
|
536
|
+
console.log(chalk.white(` ${line}`));
|
|
537
|
+
}
|
|
538
|
+
else {
|
|
539
|
+
// Regular text in gray
|
|
540
|
+
console.log(semanticChalk.muted(` ${line}`));
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
console.log();
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
console.log(semanticChalk.accent(dividers.solid(50)));
|
|
548
|
+
console.log();
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Render an Agent-generated sketch block (chart, nanodsl, mermaid, etc.)
|
|
552
|
+
* In CLI mode, we display the code block with syntax highlighting hint.
|
|
553
|
+
*/
|
|
554
|
+
renderAgentSketchBlock(agentName, language, code, metadata) {
|
|
555
|
+
console.log();
|
|
556
|
+
console.log(semanticChalk.accentBold(`📊 Agent Sketch Block [${agentName}]`));
|
|
557
|
+
console.log(dividers.solid(50));
|
|
558
|
+
console.log(semanticChalk.muted(`\`\`\`${language}`));
|
|
559
|
+
console.log(chalk.white(code));
|
|
560
|
+
console.log(semanticChalk.muted('```'));
|
|
561
|
+
console.log(dividers.solid(50));
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
//# sourceMappingURL=CliRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliRenderer.js","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/agents/render/CliRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServerRenderer - Renders events from mpp-server in CLI format
|
|
3
|
+
*
|
|
4
|
+
* Implements JsCodingAgentRenderer interface from Kotlin Multiplatform.
|
|
5
|
+
* Provides similar output to CliRenderer but for server-side events (SSE).
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentEvent } from '../ServerAgentClient.js';
|
|
8
|
+
import { BaseRenderer } from './BaseRenderer.js';
|
|
9
|
+
/**
|
|
10
|
+
* ServerRenderer extends BaseRenderer and implements the unified JsCodingAgentRenderer interface
|
|
11
|
+
* defined in mpp-core/src/jsMain/kotlin/cc/unitmesh/agent/RendererExports.kt
|
|
12
|
+
*/
|
|
13
|
+
export declare class ServerRenderer extends BaseRenderer {
|
|
14
|
+
private currentIteration;
|
|
15
|
+
private maxIterations;
|
|
16
|
+
private toolCallsInProgress;
|
|
17
|
+
private isCloning;
|
|
18
|
+
private lastCloneProgress;
|
|
19
|
+
private hasStartedLLMOutput;
|
|
20
|
+
protected outputContent(content: string): void;
|
|
21
|
+
protected outputNewline(): void;
|
|
22
|
+
renderIterationHeader(current: number, max: number): void;
|
|
23
|
+
renderLLMResponseStart(): void;
|
|
24
|
+
renderLLMResponseChunk(chunk: string): void;
|
|
25
|
+
renderLLMResponseEnd(): void;
|
|
26
|
+
renderTaskComplete(executionTimeMs?: number, toolsUsedCount?: number): void;
|
|
27
|
+
renderRepeatWarning(toolName: string, count: number): void;
|
|
28
|
+
renderRecoveryAdvice(recoveryAdvice: string): void;
|
|
29
|
+
renderUserConfirmationRequest(toolName: string, params: Record<string, any>): void;
|
|
30
|
+
/**
|
|
31
|
+
* Render an event from the server
|
|
32
|
+
* This is the main entry point for SSE events from mpp-server
|
|
33
|
+
*/
|
|
34
|
+
renderEvent(event: AgentEvent): void;
|
|
35
|
+
private renderCloneProgress;
|
|
36
|
+
private renderCloneLog;
|
|
37
|
+
private renderLLMChunk;
|
|
38
|
+
renderToolCall(toolName: string, params: string): void;
|
|
39
|
+
private formatToolCallDisplay;
|
|
40
|
+
renderToolResult(toolName: string, success: boolean, output?: string | null, fullOutput?: string | null): void;
|
|
41
|
+
private generateToolSummary;
|
|
42
|
+
private displayCodeContent;
|
|
43
|
+
private displayDiffSummary;
|
|
44
|
+
private extractDiffInfo;
|
|
45
|
+
renderError(message: string): void;
|
|
46
|
+
renderFinalResult(success: boolean, message: string, iterations: number): void;
|
|
47
|
+
private renderIterationStart;
|
|
48
|
+
private renderComplete;
|
|
49
|
+
/**
|
|
50
|
+
* Render an Agent-generated sketch block (chart, nanodsl, mermaid, etc.)
|
|
51
|
+
* In server mode, we display the code block with formatting.
|
|
52
|
+
*/
|
|
53
|
+
renderAgentSketchBlock(agentName: string, language: string, code: string, metadata: Record<string, string>): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=ServerRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/jsMain/typescript/agents/render/ServerRenderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAgC,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAG9C,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,aAAa,CAAc;IAEnC,OAAO,CAAC,mBAAmB,CAAgE;IAC3F,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,mBAAmB,CAAkB;IAM7C,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;IAIzD,sBAAsB,IAAI,IAAI;IAK9B,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3C,oBAAoB,IAAI,IAAI;IAe5B,kBAAkB,CAAC,eAAe,GAAE,MAAU,EAAE,cAAc,GAAE,MAAU,GAAG,IAAI;IAiBjF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1D,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAclD,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAuBlF;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAoCpC,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,cAAc;IAkCtB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAuBtD,OAAO,CAAC,qBAAqB;IAwE7B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAuB9G,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAuCvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMlC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAoB9E,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,cAAc;IA4CtB;;;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"}
|