erosolar-cli 1.7.14 → 1.7.16
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/dist/core/responseVerifier.d.ts +79 -0
- package/dist/core/responseVerifier.d.ts.map +1 -0
- package/dist/core/responseVerifier.js +443 -0
- package/dist/core/responseVerifier.js.map +1 -0
- package/dist/shell/interactiveShell.d.ts +10 -0
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +80 -0
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts +3 -0
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +4 -10
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/persistentPrompt.d.ts +4 -0
- package/dist/ui/persistentPrompt.d.ts.map +1 -1
- package/dist/ui/persistentPrompt.js +10 -11
- package/dist/ui/persistentPrompt.js.map +1 -1
- package/package.json +1 -1
- package/dist/bin/core/agent.js +0 -362
- package/dist/bin/core/agentProfileManifest.js +0 -187
- package/dist/bin/core/agentProfiles.js +0 -34
- package/dist/bin/core/agentRulebook.js +0 -135
- package/dist/bin/core/agentSchemaLoader.js +0 -233
- package/dist/bin/core/contextManager.js +0 -412
- package/dist/bin/core/contextWindow.js +0 -122
- package/dist/bin/core/customCommands.js +0 -80
- package/dist/bin/core/errors/apiKeyErrors.js +0 -114
- package/dist/bin/core/errors/errorTypes.js +0 -340
- package/dist/bin/core/errors/safetyValidator.js +0 -304
- package/dist/bin/core/errors.js +0 -32
- package/dist/bin/core/modelDiscovery.js +0 -755
- package/dist/bin/core/preferences.js +0 -224
- package/dist/bin/core/schemaValidator.js +0 -92
- package/dist/bin/core/secretStore.js +0 -199
- package/dist/bin/core/sessionStore.js +0 -187
- package/dist/bin/core/toolRuntime.js +0 -290
- package/dist/bin/core/types.js +0 -1
- package/dist/bin/shell/bracketedPasteManager.js +0 -350
- package/dist/bin/shell/fileChangeTracker.js +0 -65
- package/dist/bin/shell/interactiveShell.js +0 -2908
- package/dist/bin/shell/liveStatus.js +0 -78
- package/dist/bin/shell/shellApp.js +0 -290
- package/dist/bin/shell/systemPrompt.js +0 -60
- package/dist/bin/shell/updateManager.js +0 -108
- package/dist/bin/ui/ShellUIAdapter.js +0 -459
- package/dist/bin/ui/UnifiedUIController.js +0 -183
- package/dist/bin/ui/animation/AnimationScheduler.js +0 -430
- package/dist/bin/ui/codeHighlighter.js +0 -854
- package/dist/bin/ui/designSystem.js +0 -121
- package/dist/bin/ui/display.js +0 -1222
- package/dist/bin/ui/interrupts/InterruptManager.js +0 -437
- package/dist/bin/ui/layout.js +0 -139
- package/dist/bin/ui/orchestration/StatusOrchestrator.js +0 -403
- package/dist/bin/ui/outputMode.js +0 -38
- package/dist/bin/ui/persistentPrompt.js +0 -183
- package/dist/bin/ui/richText.js +0 -338
- package/dist/bin/ui/shortcutsHelp.js +0 -87
- package/dist/bin/ui/telemetry/UITelemetry.js +0 -443
- package/dist/bin/ui/textHighlighter.js +0 -210
- package/dist/bin/ui/theme.js +0 -116
- package/dist/bin/ui/toolDisplay.js +0 -423
- package/dist/bin/ui/toolDisplayAdapter.js +0 -357
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { icons, theme } from './theme.js';
|
|
2
|
-
import { getContentWidth, normalizePanelWidth, renderPanel, wrapParagraph, measure, } from './layout.js';
|
|
3
|
-
import { isPlainOutputMode } from './outputMode.js';
|
|
4
|
-
const toneColors = {
|
|
5
|
-
neutral: theme.ui.text,
|
|
6
|
-
info: theme.info,
|
|
7
|
-
success: theme.success,
|
|
8
|
-
warning: theme.warning,
|
|
9
|
-
danger: theme.error,
|
|
10
|
-
accent: theme.secondary,
|
|
11
|
-
};
|
|
12
|
-
export function renderStatusBar(segments, options = {}) {
|
|
13
|
-
if (!segments.length) {
|
|
14
|
-
return '';
|
|
15
|
-
}
|
|
16
|
-
const width = clampWidth(options.width ?? getContentWidth());
|
|
17
|
-
const divider = theme.ui.muted(` ${icons.bullet} `);
|
|
18
|
-
const chunks = segments
|
|
19
|
-
.filter((segment) => Boolean(segment.label?.trim() && segment.value?.trim()))
|
|
20
|
-
.map((segment) => formatStatusChunk(segment));
|
|
21
|
-
if (!chunks.length) {
|
|
22
|
-
return '';
|
|
23
|
-
}
|
|
24
|
-
const lines = [];
|
|
25
|
-
let current = '';
|
|
26
|
-
const pushChunk = (chunk) => {
|
|
27
|
-
if (!current) {
|
|
28
|
-
current = chunk;
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const candidate = `${current}${divider}${chunk}`;
|
|
32
|
-
if (measure(candidate) > width) {
|
|
33
|
-
lines.push(padLine(current, width));
|
|
34
|
-
current = chunk;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
current = candidate;
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
chunks.forEach(pushChunk);
|
|
41
|
-
if (current) {
|
|
42
|
-
lines.push(padLine(current, width));
|
|
43
|
-
}
|
|
44
|
-
return lines.join('\n');
|
|
45
|
-
}
|
|
46
|
-
export function renderCallout(message, options = {}) {
|
|
47
|
-
const width = options.width ?? getContentWidth();
|
|
48
|
-
const tone = options.tone ?? 'info';
|
|
49
|
-
const icon = options.icon ?? icons.info;
|
|
50
|
-
const title = options.title ?? capitalize(tone);
|
|
51
|
-
const accent = toneColors[tone] ?? toneColors.info;
|
|
52
|
-
const contentWidth = Math.max(24, normalizePanelWidth(width) - 4);
|
|
53
|
-
// Split by newlines to preserve intentional line breaks
|
|
54
|
-
const rawLines = message.split('\n');
|
|
55
|
-
const paragraphs = [];
|
|
56
|
-
for (const line of rawLines) {
|
|
57
|
-
const trimmed = line.trim();
|
|
58
|
-
if (!trimmed) {
|
|
59
|
-
// Empty line - add a blank line to preserve spacing
|
|
60
|
-
paragraphs.push('');
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
// Wrap this line
|
|
64
|
-
const wrapped = wrapParagraph(trimmed, contentWidth);
|
|
65
|
-
paragraphs.push(...wrapped);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return renderPanel(paragraphs, {
|
|
69
|
-
icon,
|
|
70
|
-
title,
|
|
71
|
-
accentColor: accent,
|
|
72
|
-
borderColor: accent,
|
|
73
|
-
width,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
export function renderSectionHeading(title, options = {}) {
|
|
77
|
-
const width = clampWidth(options.width ?? getContentWidth());
|
|
78
|
-
const accent = toneColors[options.tone ?? 'accent'] ?? toneColors.accent;
|
|
79
|
-
const icon = options.icon ? `${options.icon} ` : '';
|
|
80
|
-
const label = `${icon}${title}`.toUpperCase();
|
|
81
|
-
// Plain output mode for clipboard-friendly text
|
|
82
|
-
if (isPlainOutputMode()) {
|
|
83
|
-
const subtitle = options.subtitle?.trim()
|
|
84
|
-
? `: ${theme.ui.muted(options.subtitle.trim())}`
|
|
85
|
-
: '';
|
|
86
|
-
return accent(`${label}${subtitle}`);
|
|
87
|
-
}
|
|
88
|
-
const underline = accent('━'.repeat(width));
|
|
89
|
-
const subtitle = options.subtitle?.trim()
|
|
90
|
-
? `${theme.ui.muted(options.subtitle.trim())}`
|
|
91
|
-
: '';
|
|
92
|
-
const lines = [underline, accent(padLine(label, width))];
|
|
93
|
-
if (subtitle) {
|
|
94
|
-
lines.push(padLine(subtitle, width));
|
|
95
|
-
}
|
|
96
|
-
return lines.join('\n');
|
|
97
|
-
}
|
|
98
|
-
function formatStatusChunk(segment) {
|
|
99
|
-
const tone = toneColors[segment.tone ?? 'neutral'] ?? toneColors.neutral;
|
|
100
|
-
const icon = segment.icon ? `${tone(segment.icon)} ` : '';
|
|
101
|
-
const label = theme.ui.muted(segment.label.trim().toUpperCase());
|
|
102
|
-
const value = tone(segment.value.trim());
|
|
103
|
-
return `${icon}${label} ${value}`;
|
|
104
|
-
}
|
|
105
|
-
function padLine(text, width) {
|
|
106
|
-
const visible = measure(text);
|
|
107
|
-
if (visible >= width) {
|
|
108
|
-
return text;
|
|
109
|
-
}
|
|
110
|
-
return `${text}${' '.repeat(width - visible)}`;
|
|
111
|
-
}
|
|
112
|
-
function clampWidth(value) {
|
|
113
|
-
const normalized = Math.max(32, Math.floor(value));
|
|
114
|
-
return Math.min(120, normalized);
|
|
115
|
-
}
|
|
116
|
-
function capitalize(value) {
|
|
117
|
-
if (!value) {
|
|
118
|
-
return '';
|
|
119
|
-
}
|
|
120
|
-
return value.slice(0, 1).toUpperCase() + value.slice(1);
|
|
121
|
-
}
|