jazz-ai 0.2.2 → 0.4.3
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 +8 -6
- package/dist/cli/commands/chat-agent.d.ts +3 -1
- package/dist/cli/commands/chat-agent.d.ts.map +1 -1
- package/dist/cli/commands/chat-agent.js +180 -102
- package/dist/cli/commands/chat-agent.js.map +1 -1
- package/dist/cli/commands/edit-agent.d.ts +2 -2
- package/dist/cli/commands/edit-agent.d.ts.map +1 -1
- package/dist/cli/commands/edit-agent.js +20 -10
- package/dist/cli/commands/edit-agent.js.map +1 -1
- package/dist/cli/commands/task-agent.d.ts +1 -1
- package/dist/cli/commands/task-agent.d.ts.map +1 -1
- package/dist/cli/commands/task-agent.js +6 -6
- package/dist/cli/commands/task-agent.js.map +1 -1
- package/dist/constants/agent.d.ts +2 -0
- package/dist/constants/agent.d.ts.map +1 -0
- package/dist/constants/agent.js +5 -0
- package/dist/constants/agent.js.map +1 -0
- package/dist/core/agent/agent-prompt.d.ts +0 -1
- package/dist/core/agent/agent-prompt.d.ts.map +1 -1
- package/dist/core/agent/agent-prompt.js +7 -15
- package/dist/core/agent/agent-prompt.js.map +1 -1
- package/dist/core/agent/agent-runner.d.ts +15 -0
- package/dist/core/agent/agent-runner.d.ts.map +1 -1
- package/dist/core/agent/agent-runner.js +570 -270
- package/dist/core/agent/agent-runner.js.map +1 -1
- package/dist/core/agent/agent-service.d.ts +20 -5
- package/dist/core/agent/agent-service.d.ts.map +1 -1
- package/dist/core/agent/agent-service.js +54 -6
- package/dist/core/agent/agent-service.js.map +1 -1
- package/dist/core/agent/gmail-agent.js +7 -7
- package/dist/core/agent/gmail-agent.js.map +1 -1
- package/dist/core/agent/prompts/coder/v1.d.ts +2 -0
- package/dist/core/agent/prompts/coder/v1.d.ts.map +1 -0
- package/dist/core/agent/prompts/coder/v1.js +370 -0
- package/dist/core/agent/prompts/coder/v1.js.map +1 -0
- package/dist/core/agent/prompts/default/v2.d.ts +1 -1
- package/dist/core/agent/prompts/default/v2.d.ts.map +1 -1
- package/dist/core/agent/prompts/default/v2.js +1 -2
- package/dist/core/agent/prompts/default/v2.js.map +1 -1
- package/dist/core/agent/prompts/gmail/v1.d.ts +1 -1
- package/dist/core/agent/prompts/gmail/v1.d.ts.map +1 -1
- package/dist/core/agent/prompts/gmail/v1.js +5 -5
- package/dist/core/agent/prompts/gmail/v2.d.ts +1 -1
- package/dist/core/agent/prompts/gmail/v2.d.ts.map +1 -1
- package/dist/core/agent/prompts/gmail/v2.js +7 -7
- package/dist/core/agent/tools/base-tool.d.ts +3 -4
- package/dist/core/agent/tools/base-tool.d.ts.map +1 -1
- package/dist/core/agent/tools/base-tool.js +11 -51
- package/dist/core/agent/tools/base-tool.js.map +1 -1
- package/dist/core/agent/tools/context-utils.d.ts +6 -0
- package/dist/core/agent/tools/context-utils.d.ts.map +1 -0
- package/dist/core/agent/tools/context-utils.js +9 -0
- package/dist/core/agent/tools/context-utils.js.map +1 -0
- package/dist/core/agent/tools/env-utils.d.ts +7 -0
- package/dist/core/agent/tools/env-utils.d.ts.map +1 -0
- package/dist/core/agent/tools/env-utils.js +39 -0
- package/dist/core/agent/tools/env-utils.js.map +1 -0
- package/dist/core/agent/tools/fs-tools.d.ts.map +1 -1
- package/dist/core/agent/tools/fs-tools.js +48 -53
- package/dist/core/agent/tools/fs-tools.js.map +1 -1
- package/dist/core/agent/tools/git-tools.d.ts +5 -0
- package/dist/core/agent/tools/git-tools.d.ts.map +1 -1
- package/dist/core/agent/tools/git-tools.js +716 -154
- package/dist/core/agent/tools/git-tools.js.map +1 -1
- package/dist/core/agent/tools/gmail-tools.js +35 -35
- package/dist/core/agent/tools/gmail-tools.js.map +1 -1
- package/dist/core/agent/tools/http-tools.js +2 -2
- package/dist/core/agent/tools/http-tools.js.map +1 -1
- package/dist/core/agent/tools/register-tools.d.ts +18 -1
- package/dist/core/agent/tools/register-tools.d.ts.map +1 -1
- package/dist/core/agent/tools/register-tools.js +52 -6
- package/dist/core/agent/tools/register-tools.js.map +1 -1
- package/dist/core/agent/tools/shell-tools.d.ts.map +1 -1
- package/dist/core/agent/tools/shell-tools.js +10 -20
- package/dist/core/agent/tools/shell-tools.js.map +1 -1
- package/dist/core/agent/tools/tool-registry.d.ts +11 -7
- package/dist/core/agent/tools/tool-registry.d.ts.map +1 -1
- package/dist/core/agent/tools/tool-registry.js +45 -19
- package/dist/core/agent/tools/tool-registry.js.map +1 -1
- package/dist/core/agent/tools/web-search-tools.js +1 -1
- package/dist/core/agent/tools/web-search-tools.js.map +1 -1
- package/dist/core/agent/tracking/agent-run-tracker.d.ts +2 -0
- package/dist/core/agent/tracking/agent-run-tracker.d.ts.map +1 -1
- package/dist/core/agent/tracking/agent-run-tracker.js +40 -2
- package/dist/core/agent/tracking/agent-run-tracker.js.map +1 -1
- package/dist/core/types/index.d.ts +82 -15
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/utils/markdown-renderer.d.ts +25 -0
- package/dist/core/utils/markdown-renderer.d.ts.map +1 -1
- package/dist/core/utils/markdown-renderer.js +100 -1
- package/dist/core/utils/markdown-renderer.js.map +1 -1
- package/dist/core/utils/output-renderer.d.ts +81 -0
- package/dist/core/utils/output-renderer.d.ts.map +1 -0
- package/dist/core/utils/output-renderer.js +291 -0
- package/dist/core/utils/output-renderer.js.map +1 -0
- package/dist/core/utils/output-theme.d.ts +64 -0
- package/dist/core/utils/output-theme.d.ts.map +1 -0
- package/dist/core/utils/output-theme.js +154 -0
- package/dist/core/utils/output-theme.js.map +1 -0
- package/dist/core/utils/output-writer.d.ts +79 -0
- package/dist/core/utils/output-writer.d.ts.map +1 -0
- package/dist/core/utils/output-writer.js +133 -0
- package/dist/core/utils/output-writer.js.map +1 -0
- package/dist/core/utils/runtime-detection.d.ts +28 -0
- package/dist/core/utils/runtime-detection.d.ts.map +1 -0
- package/dist/core/utils/runtime-detection.js +62 -0
- package/dist/core/utils/runtime-detection.js.map +1 -0
- package/dist/core/utils/string.d.ts +8 -0
- package/dist/core/utils/string.d.ts.map +1 -0
- package/dist/core/utils/string.js +19 -0
- package/dist/core/utils/string.js.map +1 -0
- package/dist/core/utils/thinking-renderer.d.ts +56 -0
- package/dist/core/utils/thinking-renderer.d.ts.map +1 -0
- package/dist/core/utils/thinking-renderer.js +174 -0
- package/dist/core/utils/thinking-renderer.js.map +1 -0
- package/dist/core/utils/tool-formatter.d.ts +21 -0
- package/dist/core/utils/tool-formatter.d.ts.map +1 -0
- package/dist/core/utils/tool-formatter.js +343 -0
- package/dist/core/utils/tool-formatter.js.map +1 -0
- package/dist/main.js +11 -4
- package/dist/main.js.map +1 -1
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +20 -20
- package/dist/services/config.js.map +1 -1
- package/dist/services/llm/ai-sdk-service.d.ts.map +1 -1
- package/dist/services/llm/ai-sdk-service.js +128 -37
- package/dist/services/llm/ai-sdk-service.js.map +1 -1
- package/dist/services/llm/stream-detector.d.ts +44 -0
- package/dist/services/llm/stream-detector.d.ts.map +1 -0
- package/dist/services/llm/stream-detector.js +81 -0
- package/dist/services/llm/stream-detector.js.map +1 -0
- package/dist/services/llm/stream-processor.d.ts +93 -0
- package/dist/services/llm/stream-processor.d.ts.map +1 -0
- package/dist/services/llm/stream-processor.js +330 -0
- package/dist/services/llm/stream-processor.js.map +1 -0
- package/dist/services/llm/streaming-types.d.ts +131 -0
- package/dist/services/llm/streaming-types.d.ts.map +1 -0
- package/dist/services/llm/streaming-types.js +12 -0
- package/dist/services/llm/streaming-types.js.map +1 -0
- package/dist/services/llm/types.d.ts +8 -0
- package/dist/services/llm/types.d.ts.map +1 -1
- package/dist/services/llm/types.js.map +1 -1
- package/dist/services/logger.d.ts +4 -4
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +23 -45
- package/dist/services/logger.js.map +1 -1
- package/dist/services/shell.d.ts.map +1 -1
- package/dist/services/shell.js +52 -18
- package/dist/services/shell.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OutputRenderer = void 0;
|
|
4
|
+
const effect_1 = require("effect");
|
|
5
|
+
const markdown_renderer_1 = require("./markdown-renderer");
|
|
6
|
+
const output_theme_1 = require("./output-theme");
|
|
7
|
+
const output_writer_1 = require("./output-writer");
|
|
8
|
+
const thinking_renderer_1 = require("./thinking-renderer");
|
|
9
|
+
const tool_formatter_1 = require("./tool-formatter");
|
|
10
|
+
/**
|
|
11
|
+
* Output renderer for terminal display
|
|
12
|
+
* Handles progressive rendering of streaming LLM responses
|
|
13
|
+
* Supports multiple output modes: normal, quiet, verbose, json, accessible
|
|
14
|
+
*/
|
|
15
|
+
class OutputRenderer {
|
|
16
|
+
config;
|
|
17
|
+
writer;
|
|
18
|
+
theme;
|
|
19
|
+
thinkingRenderer;
|
|
20
|
+
toolNameMap = new Map();
|
|
21
|
+
mode;
|
|
22
|
+
constructor(config) {
|
|
23
|
+
this.config = config;
|
|
24
|
+
// Determine color profile
|
|
25
|
+
const colorProfile = config.displayConfig.colorProfile || (0, output_theme_1.detectColorProfile)();
|
|
26
|
+
// Determine output mode
|
|
27
|
+
this.mode = config.displayConfig.mode;
|
|
28
|
+
// Create appropriate writer based on mode
|
|
29
|
+
this.writer = this.createWriter(this.mode);
|
|
30
|
+
// Create theme (use no-color for json/accessible modes)
|
|
31
|
+
this.theme = (0, output_theme_1.createTheme)(this.mode === "json" || this.mode === "accessible" ? "none" : colorProfile);
|
|
32
|
+
// Create thinking renderer
|
|
33
|
+
this.thinkingRenderer = new thinking_renderer_1.ThinkingRenderer(this.theme);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create writer based on output mode
|
|
37
|
+
*/
|
|
38
|
+
createWriter(mode) {
|
|
39
|
+
switch (mode) {
|
|
40
|
+
case "quiet":
|
|
41
|
+
return new output_writer_1.QuietWriter();
|
|
42
|
+
case "json":
|
|
43
|
+
return new output_writer_1.JSONWriter();
|
|
44
|
+
case "normal":
|
|
45
|
+
case "verbose":
|
|
46
|
+
case "accessible":
|
|
47
|
+
return new output_writer_1.TerminalWriter();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Handle a streaming event and update output
|
|
52
|
+
*/
|
|
53
|
+
handleEvent(event) {
|
|
54
|
+
return effect_1.Effect.gen(this, function* () {
|
|
55
|
+
const output = this.renderEvent(event);
|
|
56
|
+
if (output) {
|
|
57
|
+
yield* this.writer.write(output);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Render an event to a string (pure function for easier testing)
|
|
63
|
+
*/
|
|
64
|
+
renderEvent(event) {
|
|
65
|
+
// In quiet mode, only show errors
|
|
66
|
+
if (this.mode === "quiet" && event.type !== "error") {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
switch (event.type) {
|
|
70
|
+
case "stream_start":
|
|
71
|
+
return this.renderStreamStart(event);
|
|
72
|
+
case "thinking_start":
|
|
73
|
+
if (this.config.displayConfig.showThinking) {
|
|
74
|
+
return this.thinkingRenderer.handleStart();
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
case "thinking_chunk":
|
|
78
|
+
if (this.config.displayConfig.showThinking && this.thinkingRenderer.isActive()) {
|
|
79
|
+
return this.thinkingRenderer.handleChunk(event.content);
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
case "thinking_complete":
|
|
83
|
+
if (this.config.displayConfig.showThinking) {
|
|
84
|
+
const { output, shouldClearLines } = this.thinkingRenderer.handleComplete(event.totalTokens);
|
|
85
|
+
if (shouldClearLines > 0) {
|
|
86
|
+
// Need to clear previous lines first
|
|
87
|
+
effect_1.Effect.runSync(this.writer.clearLines(shouldClearLines));
|
|
88
|
+
}
|
|
89
|
+
return output;
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
case "text_start":
|
|
93
|
+
// No visual indicator needed
|
|
94
|
+
return null;
|
|
95
|
+
case "text_chunk":
|
|
96
|
+
return this.renderTextChunk(event.delta);
|
|
97
|
+
case "tool_call":
|
|
98
|
+
// Tool call detected - execution will be handled by separate events
|
|
99
|
+
if (this.mode === "verbose") {
|
|
100
|
+
return this.renderToolCallVerbose(event.toolCall);
|
|
101
|
+
}
|
|
102
|
+
return null;
|
|
103
|
+
case "tools_detected":
|
|
104
|
+
if (this.config.displayConfig.showToolExecution) {
|
|
105
|
+
return this.renderToolsDetected(event);
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
case "tool_execution_start":
|
|
109
|
+
if (this.config.displayConfig.showToolExecution) {
|
|
110
|
+
return this.renderToolExecutionStart(event);
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
case "tool_execution_complete":
|
|
114
|
+
if (this.config.displayConfig.showToolExecution) {
|
|
115
|
+
return this.renderToolExecutionComplete(event);
|
|
116
|
+
}
|
|
117
|
+
return null;
|
|
118
|
+
case "usage_update":
|
|
119
|
+
if (this.mode === "verbose") {
|
|
120
|
+
return this.renderUsageUpdate(event);
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
case "error":
|
|
124
|
+
return this.renderError(event.error);
|
|
125
|
+
case "complete":
|
|
126
|
+
return this.renderComplete(event);
|
|
127
|
+
default:
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
renderStreamStart(event) {
|
|
132
|
+
// Reset thinking state for new stream
|
|
133
|
+
this.thinkingRenderer.reset();
|
|
134
|
+
const reasoningInfo = this.config.reasoningEffort
|
|
135
|
+
? this.theme.colors.dim(` [Reasoning: ${this.config.reasoningEffort}]`)
|
|
136
|
+
: "";
|
|
137
|
+
return ("\n" +
|
|
138
|
+
this.theme.colors.agentName(this.config.agentName) +
|
|
139
|
+
` (${event.provider}/${event.model})` +
|
|
140
|
+
reasoningInfo +
|
|
141
|
+
":\n");
|
|
142
|
+
}
|
|
143
|
+
renderTextChunk(delta) {
|
|
144
|
+
// Always use markdown rendering since LLMs output markdown
|
|
145
|
+
if (this.config.streamingConfig.progressiveMarkdown &&
|
|
146
|
+
this.mode !== "json" &&
|
|
147
|
+
this.mode !== "accessible") {
|
|
148
|
+
// Use markdown renderer with buffering
|
|
149
|
+
const bufferMs = this.config.streamingConfig.textBufferMs ?? 50;
|
|
150
|
+
try {
|
|
151
|
+
const rendered = markdown_renderer_1.MarkdownRenderer.renderChunk(delta, bufferMs);
|
|
152
|
+
return rendered;
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
// Fallback to plain text if markdown rendering fails
|
|
156
|
+
// Log warning in verbose mode
|
|
157
|
+
if (this.mode === "verbose") {
|
|
158
|
+
console.warn("Markdown rendering failed:", error);
|
|
159
|
+
}
|
|
160
|
+
return delta;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
// Plain text streaming for accessible/json modes
|
|
165
|
+
return delta;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
renderToolCallVerbose(toolCall) {
|
|
169
|
+
const { colors, icons } = this.theme;
|
|
170
|
+
return ("\n" +
|
|
171
|
+
colors.dim(`${icons.tool} Tool call detected: `) +
|
|
172
|
+
colors.toolName(toolCall.function.name) +
|
|
173
|
+
"\n");
|
|
174
|
+
}
|
|
175
|
+
renderToolsDetected(event) {
|
|
176
|
+
const { colors, icons } = this.theme;
|
|
177
|
+
const tools = event.toolNames.join(", ");
|
|
178
|
+
return ("\n" +
|
|
179
|
+
colors.warning(`${icons.tool} ${event.agentName} is using tools: `) +
|
|
180
|
+
colors.toolName(tools) +
|
|
181
|
+
"\n");
|
|
182
|
+
}
|
|
183
|
+
renderToolExecutionStart(event) {
|
|
184
|
+
// Store tool name for later use in completion
|
|
185
|
+
this.toolNameMap.set(event.toolCallId, event.toolName);
|
|
186
|
+
const argsStr = OutputRenderer.formatToolArguments(event.toolName, event.arguments);
|
|
187
|
+
const { colors, icons } = this.theme;
|
|
188
|
+
return ("\n" +
|
|
189
|
+
colors.toolName(`${icons.tool} Executing tool: `) +
|
|
190
|
+
colors.toolName(event.toolName) +
|
|
191
|
+
argsStr +
|
|
192
|
+
"...");
|
|
193
|
+
}
|
|
194
|
+
renderToolExecutionComplete(event) {
|
|
195
|
+
// Get tool name from map
|
|
196
|
+
const toolName = this.toolNameMap.get(event.toolCallId) || "";
|
|
197
|
+
const summary = event.summary || OutputRenderer.formatToolResult(toolName, event.result);
|
|
198
|
+
const { colors, icons } = this.theme;
|
|
199
|
+
// Clean up
|
|
200
|
+
this.toolNameMap.delete(event.toolCallId);
|
|
201
|
+
return (` ${colors.success(icons.success)}` +
|
|
202
|
+
(summary ? ` ${summary}` : "") +
|
|
203
|
+
` ${colors.dim(`(${event.durationMs}ms)`)}` +
|
|
204
|
+
"\n");
|
|
205
|
+
}
|
|
206
|
+
renderUsageUpdate(event) {
|
|
207
|
+
const { colors } = this.theme;
|
|
208
|
+
return (colors.dim(`\n[Tokens: ${event.usage.promptTokens} prompt + ${event.usage.completionTokens} completion = ${event.usage.totalTokens} total]\n`) + "\n");
|
|
209
|
+
}
|
|
210
|
+
renderError(error) {
|
|
211
|
+
const { colors, icons } = this.theme;
|
|
212
|
+
return "\n" + colors.error(`${icons.error} Error: ${error.message}`) + "\n";
|
|
213
|
+
}
|
|
214
|
+
renderComplete(event) {
|
|
215
|
+
// Flush any remaining buffered markdown content
|
|
216
|
+
if (this.config.streamingConfig.progressiveMarkdown &&
|
|
217
|
+
this.mode !== "json" &&
|
|
218
|
+
this.mode !== "accessible") {
|
|
219
|
+
try {
|
|
220
|
+
const remaining = markdown_renderer_1.MarkdownRenderer.flushBuffer();
|
|
221
|
+
if (remaining.length > 0) {
|
|
222
|
+
// Write immediately (side effect, but necessary for proper output)
|
|
223
|
+
effect_1.Effect.runSync(this.writer.write(remaining));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
// Silently ignore flush errors
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
let output = "";
|
|
231
|
+
// Show metrics if enabled and available
|
|
232
|
+
if (this.config.showMetrics && event.metrics) {
|
|
233
|
+
const parts = [];
|
|
234
|
+
if (event.metrics.firstTokenLatencyMs) {
|
|
235
|
+
parts.push(`First token: ${event.metrics.firstTokenLatencyMs}ms`);
|
|
236
|
+
}
|
|
237
|
+
if (event.metrics.tokensPerSecond) {
|
|
238
|
+
parts.push(`Speed: ${event.metrics.tokensPerSecond.toFixed(1)} tok/s`);
|
|
239
|
+
}
|
|
240
|
+
if (event.metrics.totalTokens) {
|
|
241
|
+
parts.push(`Total: ${event.metrics.totalTokens} tokens`);
|
|
242
|
+
}
|
|
243
|
+
if (parts.length > 0) {
|
|
244
|
+
output += this.theme.colors.dim(`\n[${parts.join(" | ")}]\n`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// In verbose mode, show total duration
|
|
248
|
+
if (this.mode === "verbose") {
|
|
249
|
+
output += this.theme.colors.dim(`\n[Total duration: ${event.totalDurationMs}ms]\n`);
|
|
250
|
+
}
|
|
251
|
+
// Add final newline for separation
|
|
252
|
+
output += "\n";
|
|
253
|
+
return output;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Format tool arguments for display (used in both streaming and non-streaming modes)
|
|
257
|
+
*/
|
|
258
|
+
static formatToolArguments(toolName, args) {
|
|
259
|
+
return (0, tool_formatter_1.formatToolArguments)(toolName, args, { style: "colored" });
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Format tool result for display (used in both streaming and non-streaming modes)
|
|
263
|
+
*/
|
|
264
|
+
static formatToolResult(toolName, result) {
|
|
265
|
+
return (0, tool_formatter_1.formatToolResult)(toolName, result);
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Reset renderer state (call between conversations)
|
|
269
|
+
*/
|
|
270
|
+
reset() {
|
|
271
|
+
return effect_1.Effect.sync(() => {
|
|
272
|
+
this.toolNameMap.clear();
|
|
273
|
+
this.thinkingRenderer.reset();
|
|
274
|
+
markdown_renderer_1.MarkdownRenderer.resetStreamingBuffer();
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Flush any pending output
|
|
279
|
+
*/
|
|
280
|
+
flush() {
|
|
281
|
+
return this.writer.flush();
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Get the underlying writer (useful for testing)
|
|
285
|
+
*/
|
|
286
|
+
getWriter() {
|
|
287
|
+
return this.writer;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
exports.OutputRenderer = OutputRenderer;
|
|
291
|
+
//# sourceMappingURL=output-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-renderer.js","sourceRoot":"","sources":["../../../src/core/utils/output-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color profile for terminal output
|
|
3
|
+
*/
|
|
4
|
+
export type ColorProfile = "full" | "basic" | "none";
|
|
5
|
+
/**
|
|
6
|
+
* Output mode controls what content is displayed
|
|
7
|
+
*/
|
|
8
|
+
export type OutputMode = "normal" | "quiet" | "verbose" | "json" | "accessible";
|
|
9
|
+
/**
|
|
10
|
+
* Theme configuration for rendering output
|
|
11
|
+
*/
|
|
12
|
+
export interface RenderTheme {
|
|
13
|
+
readonly colors: {
|
|
14
|
+
readonly thinking: (text: string) => string;
|
|
15
|
+
readonly thinkingContent: (text: string) => string;
|
|
16
|
+
readonly toolName: (text: string) => string;
|
|
17
|
+
readonly toolArgs: (text: string) => string;
|
|
18
|
+
readonly success: (text: string) => string;
|
|
19
|
+
readonly error: (text: string) => string;
|
|
20
|
+
readonly warning: (text: string) => string;
|
|
21
|
+
readonly info: (text: string) => string;
|
|
22
|
+
readonly dim: (text: string) => string;
|
|
23
|
+
readonly highlight: (text: string) => string;
|
|
24
|
+
readonly agentName: (text: string) => string;
|
|
25
|
+
};
|
|
26
|
+
readonly icons: {
|
|
27
|
+
readonly thinking: string;
|
|
28
|
+
readonly tool: string;
|
|
29
|
+
readonly success: string;
|
|
30
|
+
readonly error: string;
|
|
31
|
+
readonly warning: string;
|
|
32
|
+
readonly info: string;
|
|
33
|
+
};
|
|
34
|
+
readonly separatorWidth: number;
|
|
35
|
+
readonly separatorChar: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* ANSI escape sequences
|
|
39
|
+
*/
|
|
40
|
+
export declare const ANSI: {
|
|
41
|
+
readonly MOVE_UP_1_CLEAR: "\u001B[1A\u001B[0J";
|
|
42
|
+
readonly MOVE_UP_2_CLEAR: "\u001B[2A\u001B[0J";
|
|
43
|
+
readonly MOVE_UP_3_CLEAR: "\u001B[3A\u001B[0J";
|
|
44
|
+
readonly CLEAR_LINE: "\u001B[2K";
|
|
45
|
+
readonly CURSOR_TO_START: "\u001B[0G";
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Display constants
|
|
49
|
+
*/
|
|
50
|
+
export declare const DISPLAY: {
|
|
51
|
+
readonly SEPARATOR_WIDTH: 60;
|
|
52
|
+
readonly SEPARATOR_CHAR: "─";
|
|
53
|
+
readonly MAX_TOOL_ARG_LENGTH: 60;
|
|
54
|
+
readonly MAX_TOOL_RESULT_PREVIEW: 50;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Create a theme based on color profile
|
|
58
|
+
*/
|
|
59
|
+
export declare function createTheme(profile: ColorProfile): RenderTheme;
|
|
60
|
+
/**
|
|
61
|
+
* Detect appropriate color profile based on environment
|
|
62
|
+
*/
|
|
63
|
+
export declare function detectColorProfile(): ColorProfile;
|
|
64
|
+
//# sourceMappingURL=output-theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-theme.d.ts","sourceRoot":"","sources":["../../../src/core/utils/output-theme.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAC5C,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAC5C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAC5C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACzC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAC3C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACxC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QACvC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAC7C,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC9C,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;CAMP,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;CAKV,CAAC;AAEX;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAS9D;AAiGD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAsBjD"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DISPLAY = exports.ANSI = void 0;
|
|
4
|
+
exports.createTheme = createTheme;
|
|
5
|
+
exports.detectColorProfile = detectColorProfile;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
/**
|
|
9
|
+
* ANSI escape sequences
|
|
10
|
+
*/
|
|
11
|
+
exports.ANSI = {
|
|
12
|
+
MOVE_UP_1_CLEAR: "\x1b[1A\x1b[0J",
|
|
13
|
+
MOVE_UP_2_CLEAR: "\x1b[2A\x1b[0J",
|
|
14
|
+
MOVE_UP_3_CLEAR: "\x1b[3A\x1b[0J",
|
|
15
|
+
CLEAR_LINE: "\x1b[2K",
|
|
16
|
+
CURSOR_TO_START: "\x1b[0G",
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Display constants
|
|
20
|
+
*/
|
|
21
|
+
exports.DISPLAY = {
|
|
22
|
+
SEPARATOR_WIDTH: 60,
|
|
23
|
+
SEPARATOR_CHAR: "─",
|
|
24
|
+
MAX_TOOL_ARG_LENGTH: 60,
|
|
25
|
+
MAX_TOOL_RESULT_PREVIEW: 50,
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Create a theme based on color profile
|
|
29
|
+
*/
|
|
30
|
+
function createTheme(profile) {
|
|
31
|
+
switch (profile) {
|
|
32
|
+
case "full":
|
|
33
|
+
return createFullColorTheme();
|
|
34
|
+
case "basic":
|
|
35
|
+
return createBasicColorTheme();
|
|
36
|
+
case "none":
|
|
37
|
+
return createNoColorTheme();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Full color theme with all features
|
|
42
|
+
*/
|
|
43
|
+
function createFullColorTheme() {
|
|
44
|
+
return {
|
|
45
|
+
colors: {
|
|
46
|
+
thinking: chalk_1.default.blue.bold,
|
|
47
|
+
thinkingContent: chalk_1.default.italic.gray.dim,
|
|
48
|
+
toolName: chalk_1.default.cyan,
|
|
49
|
+
toolArgs: chalk_1.default.cyan,
|
|
50
|
+
success: chalk_1.default.green,
|
|
51
|
+
error: chalk_1.default.red,
|
|
52
|
+
warning: chalk_1.default.yellow,
|
|
53
|
+
info: chalk_1.default.blue,
|
|
54
|
+
dim: chalk_1.default.dim,
|
|
55
|
+
highlight: chalk_1.default.bold.white,
|
|
56
|
+
agentName: chalk_1.default.bold.blue,
|
|
57
|
+
},
|
|
58
|
+
icons: {
|
|
59
|
+
thinking: "🧠",
|
|
60
|
+
tool: "🔧",
|
|
61
|
+
success: "✓",
|
|
62
|
+
error: "✗",
|
|
63
|
+
warning: "⚠️",
|
|
64
|
+
info: "ℹ️",
|
|
65
|
+
},
|
|
66
|
+
separatorWidth: exports.DISPLAY.SEPARATOR_WIDTH,
|
|
67
|
+
separatorChar: exports.DISPLAY.SEPARATOR_CHAR,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Basic color theme (16 colors only, no emojis)
|
|
72
|
+
*/
|
|
73
|
+
function createBasicColorTheme() {
|
|
74
|
+
return {
|
|
75
|
+
colors: {
|
|
76
|
+
thinking: chalk_1.default.blue,
|
|
77
|
+
thinkingContent: chalk_1.default.gray,
|
|
78
|
+
toolName: chalk_1.default.cyan,
|
|
79
|
+
toolArgs: chalk_1.default.cyan,
|
|
80
|
+
success: chalk_1.default.green,
|
|
81
|
+
error: chalk_1.default.red,
|
|
82
|
+
warning: chalk_1.default.yellow,
|
|
83
|
+
info: chalk_1.default.blue,
|
|
84
|
+
dim: chalk_1.default.gray,
|
|
85
|
+
highlight: chalk_1.default.white,
|
|
86
|
+
agentName: chalk_1.default.blue,
|
|
87
|
+
},
|
|
88
|
+
icons: {
|
|
89
|
+
thinking: "[*]",
|
|
90
|
+
tool: "[>]",
|
|
91
|
+
success: "[+]",
|
|
92
|
+
error: "[!]",
|
|
93
|
+
warning: "[!]",
|
|
94
|
+
info: "[i]",
|
|
95
|
+
},
|
|
96
|
+
separatorWidth: exports.DISPLAY.SEPARATOR_WIDTH,
|
|
97
|
+
separatorChar: "-",
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* No color theme (accessible mode)
|
|
102
|
+
*/
|
|
103
|
+
function createNoColorTheme() {
|
|
104
|
+
const identity = (text) => text;
|
|
105
|
+
return {
|
|
106
|
+
colors: {
|
|
107
|
+
thinking: identity,
|
|
108
|
+
thinkingContent: identity,
|
|
109
|
+
toolName: identity,
|
|
110
|
+
toolArgs: identity,
|
|
111
|
+
success: identity,
|
|
112
|
+
error: identity,
|
|
113
|
+
warning: identity,
|
|
114
|
+
info: identity,
|
|
115
|
+
dim: identity,
|
|
116
|
+
highlight: identity,
|
|
117
|
+
agentName: identity,
|
|
118
|
+
},
|
|
119
|
+
icons: {
|
|
120
|
+
thinking: "[THINKING]",
|
|
121
|
+
tool: "[TOOL]",
|
|
122
|
+
success: "[OK]",
|
|
123
|
+
error: "[ERROR]",
|
|
124
|
+
warning: "[WARNING]",
|
|
125
|
+
info: "[INFO]",
|
|
126
|
+
},
|
|
127
|
+
separatorWidth: exports.DISPLAY.SEPARATOR_WIDTH,
|
|
128
|
+
separatorChar: "-",
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Detect appropriate color profile based on environment
|
|
133
|
+
*/
|
|
134
|
+
function detectColorProfile() {
|
|
135
|
+
// Check if colors are disabled
|
|
136
|
+
if (process.env['NO_COLOR'] || process.env['NODE_DISABLE_COLORS']) {
|
|
137
|
+
return "none";
|
|
138
|
+
}
|
|
139
|
+
// Check if we're in a TTY
|
|
140
|
+
if (!process.stdout.isTTY) {
|
|
141
|
+
return "none";
|
|
142
|
+
}
|
|
143
|
+
// Check color support level
|
|
144
|
+
const colorLevel = chalk_1.default.level;
|
|
145
|
+
if (colorLevel === 0) {
|
|
146
|
+
return "none";
|
|
147
|
+
}
|
|
148
|
+
if (colorLevel === 1) {
|
|
149
|
+
return "basic";
|
|
150
|
+
}
|
|
151
|
+
// Full color support (256 colors or truecolor)
|
|
152
|
+
return "full";
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=output-theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-theme.js","sourceRoot":"","sources":["../../../src/core/utils/output-theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
/**
|
|
3
|
+
* Output writer interface - abstracts where output goes
|
|
4
|
+
* This enables testing, JSON output, file logging, and other output targets
|
|
5
|
+
*/
|
|
6
|
+
export interface OutputWriter {
|
|
7
|
+
/**
|
|
8
|
+
* Write text without newline
|
|
9
|
+
*/
|
|
10
|
+
write(text: string): Effect.Effect<void, never>;
|
|
11
|
+
/**
|
|
12
|
+
* Write text with newline
|
|
13
|
+
*/
|
|
14
|
+
writeLine(text: string): Effect.Effect<void, never>;
|
|
15
|
+
/**
|
|
16
|
+
* Clear N lines from the terminal (for updating previous content)
|
|
17
|
+
* This is a no-op for non-terminal writers (JSON, file)
|
|
18
|
+
*/
|
|
19
|
+
clearLines(count: number): Effect.Effect<void, never>;
|
|
20
|
+
/**
|
|
21
|
+
* Flush any buffered output
|
|
22
|
+
*/
|
|
23
|
+
flush(): Effect.Effect<void, never>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Terminal writer - writes to stdout/stderr
|
|
27
|
+
*/
|
|
28
|
+
export declare class TerminalWriter implements OutputWriter {
|
|
29
|
+
write(text: string): Effect.Effect<void, never>;
|
|
30
|
+
writeLine(text: string): Effect.Effect<void, never>;
|
|
31
|
+
clearLines(count: number): Effect.Effect<void, never>;
|
|
32
|
+
flush(): Effect.Effect<void, never>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* JSON writer - accumulates structured output for programmatic consumption
|
|
36
|
+
*/
|
|
37
|
+
export declare class JSONWriter implements OutputWriter {
|
|
38
|
+
private events;
|
|
39
|
+
write(text: string): Effect.Effect<void, never>;
|
|
40
|
+
writeLine(text: string): Effect.Effect<void, never>;
|
|
41
|
+
clearLines(_count: number): Effect.Effect<void, never>;
|
|
42
|
+
flush(): Effect.Effect<void, never>;
|
|
43
|
+
/**
|
|
44
|
+
* Get accumulated events without flushing
|
|
45
|
+
*/
|
|
46
|
+
getEvents(): ReadonlyArray<{
|
|
47
|
+
type: string;
|
|
48
|
+
content: string;
|
|
49
|
+
timestamp: number;
|
|
50
|
+
}>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Test writer - captures output for testing
|
|
54
|
+
*/
|
|
55
|
+
export declare class TestWriter implements OutputWriter {
|
|
56
|
+
private buffer;
|
|
57
|
+
write(text: string): Effect.Effect<void, never>;
|
|
58
|
+
writeLine(text: string): Effect.Effect<void, never>;
|
|
59
|
+
clearLines(_count: number): Effect.Effect<void, never>;
|
|
60
|
+
flush(): Effect.Effect<void, never>;
|
|
61
|
+
/**
|
|
62
|
+
* Get all captured output as a single string
|
|
63
|
+
*/
|
|
64
|
+
getOutput(): string;
|
|
65
|
+
/**
|
|
66
|
+
* Clear the buffer
|
|
67
|
+
*/
|
|
68
|
+
clear(): void;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Quiet writer - suppresses all output except errors
|
|
72
|
+
*/
|
|
73
|
+
export declare class QuietWriter implements OutputWriter {
|
|
74
|
+
write(_text: string): Effect.Effect<void, never>;
|
|
75
|
+
writeLine(_text: string): Effect.Effect<void, never>;
|
|
76
|
+
clearLines(_count: number): Effect.Effect<void, never>;
|
|
77
|
+
flush(): Effect.Effect<void, never>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=output-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-writer.d.ts","sourceRoot":"","sources":["../../../src/core/utils/output-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEhD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEpD;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEtD;;OAEG;IACH,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAM/C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAMnD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IASrD,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;CAQpC;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAmE;IAEjF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAU/C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAUnD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAKtD,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAQnC;;OAEG;IACH,SAAS,IAAI,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAGjF;AAED;;GAEG;AACH,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAgB;IAE9B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAM/C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAMnD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAKtD,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAInC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAIhD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAIpD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;IAItD,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;CAGpC"}
|