centaurus-cli 2.8.8 → 2.9.0
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/cli-adapter.d.ts +82 -2
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +622 -94
- package/dist/cli-adapter.js.map +1 -1
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +6 -5
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/config/build-config.d.ts +42 -0
- package/dist/config/build-config.d.ts.map +1 -0
- package/dist/config/build-config.js +44 -0
- package/dist/config/build-config.js.map +1 -0
- package/dist/config/manager.d.ts +2 -2
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js +9 -12
- package/dist/config/manager.js.map +1 -1
- package/dist/config/mcp-config-manager.d.ts +5 -0
- package/dist/config/mcp-config-manager.d.ts.map +1 -1
- package/dist/config/mcp-config-manager.js +8 -0
- package/dist/config/mcp-config-manager.js.map +1 -1
- package/dist/config/models.d.ts +48 -42
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +148 -133
- package/dist/config/models.js.map +1 -1
- package/dist/config/slash-commands.d.ts +2 -0
- package/dist/config/slash-commands.d.ts.map +1 -1
- package/dist/config/slash-commands.js +34 -1
- package/dist/config/slash-commands.js.map +1 -1
- package/dist/context/context-manager.d.ts.map +1 -1
- package/dist/context/context-manager.js +6 -6
- package/dist/context/context-manager.js.map +1 -1
- package/dist/hooks/useConnectivity.d.ts +2 -0
- package/dist/hooks/useConnectivity.d.ts.map +1 -0
- package/dist/hooks/useConnectivity.js +12 -0
- package/dist/hooks/useConnectivity.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -23
- package/dist/index.js.map +1 -1
- package/dist/mcp/mcp-command-handler.d.ts.map +1 -1
- package/dist/mcp/mcp-command-handler.js +2 -5
- package/dist/mcp/mcp-command-handler.js.map +1 -1
- package/dist/mcp/mcp-tool-wrapper.d.ts.map +1 -1
- package/dist/mcp/mcp-tool-wrapper.js +8 -0
- package/dist/mcp/mcp-tool-wrapper.js.map +1 -1
- package/dist/services/ai-service-client.d.ts +1 -0
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +8 -6
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/services/api-client.d.ts +46 -34
- package/dist/services/api-client.d.ts.map +1 -1
- package/dist/services/api-client.js +47 -37
- package/dist/services/api-client.js.map +1 -1
- package/dist/services/background-task-manager.d.ts +114 -0
- package/dist/services/background-task-manager.d.ts.map +1 -0
- package/dist/services/background-task-manager.js +301 -0
- package/dist/services/background-task-manager.js.map +1 -0
- package/dist/services/connectivity-manager.d.ts +18 -0
- package/dist/services/connectivity-manager.d.ts.map +1 -0
- package/dist/services/connectivity-manager.js +72 -0
- package/dist/services/connectivity-manager.js.map +1 -0
- package/dist/services/local-chat-storage.d.ts +5 -0
- package/dist/services/local-chat-storage.d.ts.map +1 -1
- package/dist/services/local-chat-storage.js +38 -4
- package/dist/services/local-chat-storage.js.map +1 -1
- package/dist/tools/background-command.d.ts +11 -0
- package/dist/tools/background-command.d.ts.map +1 -0
- package/dist/tools/background-command.js +162 -0
- package/dist/tools/background-command.js.map +1 -0
- package/dist/tools/command.d.ts.map +1 -1
- package/dist/tools/command.js +6 -3
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/create-image.d.ts +10 -0
- package/dist/tools/create-image.d.ts.map +1 -0
- package/dist/tools/create-image.js +189 -0
- package/dist/tools/create-image.js.map +1 -0
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +8 -6
- package/dist/tools/web-search.js.map +1 -1
- package/dist/ui/components/App.d.ts +34 -2
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +403 -67
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/ContextWindowIndicator.d.ts.map +1 -1
- package/dist/ui/components/ContextWindowIndicator.js +43 -22
- package/dist/ui/components/ContextWindowIndicator.js.map +1 -1
- package/dist/ui/components/ErrorBoundary.d.ts.map +1 -1
- package/dist/ui/components/ErrorBoundary.js +2 -1
- package/dist/ui/components/ErrorBoundary.js.map +1 -1
- package/dist/ui/components/InputBox.d.ts +4 -0
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +289 -207
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/MessageDisplay.js +8 -15
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/SlashCommandAutocomplete.d.ts +2 -0
- package/dist/ui/components/SlashCommandAutocomplete.d.ts.map +1 -1
- package/dist/ui/components/SlashCommandAutocomplete.js +19 -10
- package/dist/ui/components/SlashCommandAutocomplete.js.map +1 -1
- package/dist/ui/components/StatusBar.d.ts.map +1 -1
- package/dist/ui/components/StatusBar.js +4 -0
- package/dist/ui/components/StatusBar.js.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +155 -41
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/ui/components/ToolExecutionStatus.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionStatus.js +1 -0
- package/dist/ui/components/ToolExecutionStatus.js.map +1 -1
- package/dist/utils/chat-formatter.d.ts +12 -0
- package/dist/utils/chat-formatter.d.ts.map +1 -0
- package/dist/utils/chat-formatter.js +326 -0
- package/dist/utils/chat-formatter.js.map +1 -0
- package/dist/utils/command-history.d.ts.map +1 -1
- package/dist/utils/command-history.js +2 -1
- package/dist/utils/command-history.js.map +1 -1
- package/dist/utils/conversation-logger.d.ts +15 -0
- package/dist/utils/conversation-logger.d.ts.map +1 -1
- package/dist/utils/conversation-logger.js +56 -2
- package/dist/utils/conversation-logger.js.map +1 -1
- package/dist/utils/editor-utils.d.ts.map +1 -1
- package/dist/utils/editor-utils.js +3 -2
- package/dist/utils/editor-utils.js.map +1 -1
- package/dist/utils/input-classifier.d.ts.map +1 -1
- package/dist/utils/input-classifier.js +140 -20
- package/dist/utils/input-classifier.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +31 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/text-clipboard.d.ts +12 -0
- package/dist/utils/text-clipboard.d.ts.map +1 -0
- package/dist/utils/text-clipboard.js +63 -0
- package/dist/utils/text-clipboard.js.map +1 -0
- package/package.json +1 -2
- package/models-config.json +0 -126
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat Formatter Utility
|
|
3
|
+
*
|
|
4
|
+
* Formats chat messages into human-readable text for clipboard sharing.
|
|
5
|
+
* Converts internal tool call JSON and execution data into readable descriptions.
|
|
6
|
+
*/
|
|
7
|
+
import stripAnsi from 'strip-ansi';
|
|
8
|
+
/**
|
|
9
|
+
* Clean Unicode characters that might get corrupted in clipboard.
|
|
10
|
+
* Removes emojis, box-drawing characters, and other problematic Unicode.
|
|
11
|
+
*/
|
|
12
|
+
function cleanUnicode(text) {
|
|
13
|
+
return text
|
|
14
|
+
// Remove box-drawing characters (used in UI borders)
|
|
15
|
+
.replace(/[\u2500-\u257F]/g, '')
|
|
16
|
+
// Remove block elements
|
|
17
|
+
.replace(/[\u2580-\u259F]/g, '')
|
|
18
|
+
// Remove emojis and pictographs (replace with text equivalents)
|
|
19
|
+
.replace(/✓/g, '[OK]')
|
|
20
|
+
.replace(/✗/g, '[FAIL]')
|
|
21
|
+
.replace(/📖/g, '[READ]')
|
|
22
|
+
.replace(/📁/g, '[DIR]')
|
|
23
|
+
.replace(/📂/g, '[DIR]')
|
|
24
|
+
.replace(/📄/g, '[FILE]')
|
|
25
|
+
.replace(/✅/g, '[DONE]')
|
|
26
|
+
.replace(/❌/g, '[ERROR]')
|
|
27
|
+
.replace(/📭/g, '[EMPTY]')
|
|
28
|
+
.replace(/📋/g, '[CLIPBOARD]')
|
|
29
|
+
.replace(/🔗/g, '[LINK]')
|
|
30
|
+
.replace(/🔌/g, '[DISCONNECT]')
|
|
31
|
+
.replace(/⚠️/g, '[WARNING]')
|
|
32
|
+
.replace(/🆕/g, '[NEW]')
|
|
33
|
+
// Remove remaining emojis (broad Unicode ranges)
|
|
34
|
+
.replace(/[\u{1F300}-\u{1F9FF}]/gu, '')
|
|
35
|
+
.replace(/[\u{2600}-\u{26FF}]/gu, '')
|
|
36
|
+
.replace(/[\u{2700}-\u{27BF}]/gu, '')
|
|
37
|
+
// Remove common corrupted sequences (Γ, ≡, etc.)
|
|
38
|
+
.replace(/Γ[^\s]*/g, '')
|
|
39
|
+
.replace(/≡[^\s]*/g, '')
|
|
40
|
+
// Clean up extra whitespace from removals
|
|
41
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
42
|
+
.trim();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Format a tool execution into human-readable text.
|
|
46
|
+
*/
|
|
47
|
+
function formatToolExecution(toolExecution) {
|
|
48
|
+
const { toolName, status, result, error, arguments: args } = toolExecution;
|
|
49
|
+
// Only format completed or error executions
|
|
50
|
+
if (status !== 'completed' && status !== 'error') {
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
const statusLabel = status === 'completed' ? '✓' : '✗';
|
|
54
|
+
// Clean result output (remove ANSI codes)
|
|
55
|
+
const cleanResult = result ? stripAnsi(result).trim() : '';
|
|
56
|
+
// Helper to truncate long content
|
|
57
|
+
const truncate = (text, maxLen = 3000) => {
|
|
58
|
+
if (text.length <= maxLen)
|
|
59
|
+
return text;
|
|
60
|
+
return text.substring(0, maxLen) + '\n... (content truncated)';
|
|
61
|
+
};
|
|
62
|
+
// Handle different tool types
|
|
63
|
+
switch (toolName) {
|
|
64
|
+
case 'execute_command': {
|
|
65
|
+
const command = args?.command || args?.CommandLine || args?.commandLine || 'unknown command';
|
|
66
|
+
const cwd = args?.cwd || '';
|
|
67
|
+
let output = `${statusLabel} The assistant ran a shell command: \`${command}\``;
|
|
68
|
+
if (cwd) {
|
|
69
|
+
output += ` (in directory: ${cwd})`;
|
|
70
|
+
}
|
|
71
|
+
if (cleanResult) {
|
|
72
|
+
output += `\n\nOutput:\n\`\`\`\n${truncate(cleanResult, 2000)}\n\`\`\``;
|
|
73
|
+
}
|
|
74
|
+
if (status === 'error' && error) {
|
|
75
|
+
output += `\n\nError: ${error}`;
|
|
76
|
+
}
|
|
77
|
+
return output;
|
|
78
|
+
}
|
|
79
|
+
case 'view_file': {
|
|
80
|
+
const filePath = args?.AbsolutePath || args?.file_path || 'unknown file';
|
|
81
|
+
const startLine = args?.StartLine;
|
|
82
|
+
const endLine = args?.EndLine;
|
|
83
|
+
let output = `${statusLabel} The assistant read file: \`${filePath}\``;
|
|
84
|
+
if (startLine && endLine) {
|
|
85
|
+
output += ` (lines ${startLine}-${endLine})`;
|
|
86
|
+
}
|
|
87
|
+
// Include the file contents from the result
|
|
88
|
+
if (cleanResult) {
|
|
89
|
+
output += `\n\nFile contents:\n\`\`\`\n${truncate(cleanResult)}\n\`\`\``;
|
|
90
|
+
}
|
|
91
|
+
return output;
|
|
92
|
+
}
|
|
93
|
+
case 'write_to_file': {
|
|
94
|
+
const filePath = args?.TargetFile || args?.file_path || 'unknown file';
|
|
95
|
+
const content = args?.CodeContent || '';
|
|
96
|
+
const lines = content ? content.split('\n').length : 0;
|
|
97
|
+
let output = `${statusLabel} The assistant wrote to file: \`${filePath}\` (${lines} lines)`;
|
|
98
|
+
// Include the content that was written
|
|
99
|
+
if (content) {
|
|
100
|
+
output += `\n\nNew file contents:\n\`\`\`\n${truncate(content)}\n\`\`\``;
|
|
101
|
+
}
|
|
102
|
+
return output;
|
|
103
|
+
}
|
|
104
|
+
case 'edit_file':
|
|
105
|
+
case 'replace_file_content': {
|
|
106
|
+
const filePath = args?.file_path || args?.TargetFile || 'unknown file';
|
|
107
|
+
const targetContent = args?.TargetContent || args?.target_content || '';
|
|
108
|
+
const replacementContent = args?.ReplacementContent || args?.replacement_content || '';
|
|
109
|
+
let output = `${statusLabel} The assistant edited file: \`${filePath}\``;
|
|
110
|
+
// Include the edit details
|
|
111
|
+
if (targetContent || replacementContent) {
|
|
112
|
+
output += `\n\nEdit made:`;
|
|
113
|
+
if (targetContent) {
|
|
114
|
+
output += `\n\nOriginal:\n\`\`\`\n${truncate(targetContent, 500)}\n\`\`\``;
|
|
115
|
+
}
|
|
116
|
+
if (replacementContent) {
|
|
117
|
+
output += `\n\nReplaced with:\n\`\`\`\n${truncate(replacementContent, 500)}\n\`\`\``;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return output;
|
|
121
|
+
}
|
|
122
|
+
case 'multi_edit_file':
|
|
123
|
+
case 'multi_replace_file_content': {
|
|
124
|
+
const filePath = args?.file_path || args?.TargetFile || 'unknown file';
|
|
125
|
+
const chunks = args?.ReplacementChunks || args?.edits || [];
|
|
126
|
+
let output = `${statusLabel} The assistant made ${chunks.length || 'multiple'} edits to file: \`${filePath}\``;
|
|
127
|
+
// Include each edit
|
|
128
|
+
if (Array.isArray(chunks) && chunks.length > 0) {
|
|
129
|
+
output += `\n\nEdits made:`;
|
|
130
|
+
chunks.slice(0, 5).forEach((chunk, i) => {
|
|
131
|
+
const target = chunk.TargetContent || chunk.target_content || '';
|
|
132
|
+
const replacement = chunk.ReplacementContent || chunk.replacement_content || '';
|
|
133
|
+
output += `\n\n**Edit ${i + 1}:**`;
|
|
134
|
+
if (target) {
|
|
135
|
+
output += `\nOriginal:\n\`\`\`\n${truncate(target, 300)}\n\`\`\``;
|
|
136
|
+
}
|
|
137
|
+
if (replacement) {
|
|
138
|
+
output += `\nReplaced with:\n\`\`\`\n${truncate(replacement, 300)}\n\`\`\``;
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
if (chunks.length > 5) {
|
|
142
|
+
output += `\n\n... and ${chunks.length - 5} more edits`;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return output;
|
|
146
|
+
}
|
|
147
|
+
case 'list_dir': {
|
|
148
|
+
const dirPath = args?.DirectoryPath || args?.directory || 'unknown directory';
|
|
149
|
+
let output = `${statusLabel} The assistant listed directory: \`${dirPath}\``;
|
|
150
|
+
if (cleanResult) {
|
|
151
|
+
output += `\n\nContents:\n\`\`\`\n${truncate(cleanResult, 1000)}\n\`\`\``;
|
|
152
|
+
}
|
|
153
|
+
return output;
|
|
154
|
+
}
|
|
155
|
+
case 'grep_search': {
|
|
156
|
+
const query = args?.Query || args?.query || 'unknown query';
|
|
157
|
+
let output = `${statusLabel} The assistant searched for: "${query}"`;
|
|
158
|
+
if (cleanResult) {
|
|
159
|
+
output += `\n\nSearch results:\n\`\`\`\n${truncate(cleanResult, 1500)}\n\`\`\``;
|
|
160
|
+
}
|
|
161
|
+
return output;
|
|
162
|
+
}
|
|
163
|
+
case 'find_files':
|
|
164
|
+
case 'find_by_name': {
|
|
165
|
+
const pattern = args?.pattern || args?.Pattern || '*';
|
|
166
|
+
let output = `${statusLabel} The assistant searched for files matching: "${pattern}"`;
|
|
167
|
+
if (cleanResult) {
|
|
168
|
+
output += `\n\nFiles found:\n\`\`\`\n${truncate(cleanResult, 1000)}\n\`\`\``;
|
|
169
|
+
}
|
|
170
|
+
return output;
|
|
171
|
+
}
|
|
172
|
+
case 'web_search':
|
|
173
|
+
case 'search_web': {
|
|
174
|
+
const query = args?.query || 'unknown query';
|
|
175
|
+
let output = `${statusLabel} The assistant searched the web for: "${query}"`;
|
|
176
|
+
if (cleanResult) {
|
|
177
|
+
output += `\n\nSearch results:\n${truncate(cleanResult, 2000)}`;
|
|
178
|
+
}
|
|
179
|
+
return output;
|
|
180
|
+
}
|
|
181
|
+
case 'fetch_url':
|
|
182
|
+
case 'read_url_content': {
|
|
183
|
+
const url = args?.url || args?.Url || 'unknown URL';
|
|
184
|
+
let output = `${statusLabel} The assistant fetched URL: ${url}`;
|
|
185
|
+
if (cleanResult) {
|
|
186
|
+
output += `\n\nContent:\n${truncate(cleanResult, 2000)}`;
|
|
187
|
+
}
|
|
188
|
+
return output;
|
|
189
|
+
}
|
|
190
|
+
case 'view_code_item':
|
|
191
|
+
case 'inspect_symbol': {
|
|
192
|
+
const filePath = args?.filePath || args?.File || 'unknown file';
|
|
193
|
+
const nodePaths = args?.NodePaths || args?.symbols || [];
|
|
194
|
+
let output = `${statusLabel} The assistant inspected code in: \`${filePath}\``;
|
|
195
|
+
if (Array.isArray(nodePaths) && nodePaths.length > 0) {
|
|
196
|
+
output += ` (symbols: ${nodePaths.join(', ')})`;
|
|
197
|
+
}
|
|
198
|
+
if (cleanResult) {
|
|
199
|
+
output += `\n\nCode:\n\`\`\`\n${truncate(cleanResult)}\n\`\`\``;
|
|
200
|
+
}
|
|
201
|
+
return output;
|
|
202
|
+
}
|
|
203
|
+
case 'view_file_outline': {
|
|
204
|
+
const filePath = args?.AbsolutePath || 'unknown file';
|
|
205
|
+
let output = `${statusLabel} The assistant viewed outline of: \`${filePath}\``;
|
|
206
|
+
if (cleanResult) {
|
|
207
|
+
output += `\n\nOutline:\n\`\`\`\n${truncate(cleanResult, 1500)}\n\`\`\``;
|
|
208
|
+
}
|
|
209
|
+
return output;
|
|
210
|
+
}
|
|
211
|
+
case 'read_binary_file': {
|
|
212
|
+
const filePath = args?.file_path || 'unknown file';
|
|
213
|
+
return `${statusLabel} The assistant uploaded binary file: \`${filePath}\``;
|
|
214
|
+
}
|
|
215
|
+
case 'create_image':
|
|
216
|
+
case 'generate_image': {
|
|
217
|
+
const outputPath = args?.output_path || args?.ImageName || 'unknown path';
|
|
218
|
+
const prompt = args?.Prompt || args?.image_prompt || '';
|
|
219
|
+
let output = `${statusLabel} The assistant generated an image: \`${outputPath}\``;
|
|
220
|
+
if (prompt) {
|
|
221
|
+
output += `\n\nPrompt used: "${truncate(prompt, 500)}"`;
|
|
222
|
+
}
|
|
223
|
+
return output;
|
|
224
|
+
}
|
|
225
|
+
default: {
|
|
226
|
+
// Check for MCP tools (mcp_servername_toolname)
|
|
227
|
+
if (toolName.startsWith('mcp_')) {
|
|
228
|
+
const parts = toolName.slice(4).split('_');
|
|
229
|
+
const serverName = parts[0] || 'unknown';
|
|
230
|
+
const mcpToolName = parts.slice(1).join('_') || 'unknown';
|
|
231
|
+
let output = `${statusLabel} The assistant used MCP tool: ${serverName}.${mcpToolName}`;
|
|
232
|
+
// Include the full MCP result
|
|
233
|
+
if (cleanResult) {
|
|
234
|
+
output += `\n\nResult:\n\`\`\`\n${truncate(cleanResult)}\n\`\`\``;
|
|
235
|
+
}
|
|
236
|
+
return output;
|
|
237
|
+
}
|
|
238
|
+
// Generic tool formatting
|
|
239
|
+
let output = `${statusLabel} The assistant used tool: ${toolName}`;
|
|
240
|
+
if (cleanResult) {
|
|
241
|
+
output += `\n\nResult:\n\`\`\`\n${truncate(cleanResult, 1000)}\n\`\`\``;
|
|
242
|
+
}
|
|
243
|
+
return output;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Format a single message into human-readable text.
|
|
249
|
+
*/
|
|
250
|
+
function formatMessage(message) {
|
|
251
|
+
const { role, content, toolExecution, isCommandMode, taskCompletion, planAccepted, connectionStatus } = message;
|
|
252
|
+
// Skip system messages
|
|
253
|
+
if (role === 'system') {
|
|
254
|
+
return '';
|
|
255
|
+
}
|
|
256
|
+
// Handle connection status messages
|
|
257
|
+
if (connectionStatus) {
|
|
258
|
+
const { type, status, connectionString, error: connError } = connectionStatus;
|
|
259
|
+
if (status === 'connected') {
|
|
260
|
+
return `🔗 Connected to ${type.toUpperCase()}: ${connectionString || 'session'}`;
|
|
261
|
+
}
|
|
262
|
+
else if (status === 'disconnected') {
|
|
263
|
+
return `🔌 Disconnected from ${type.toUpperCase()} session`;
|
|
264
|
+
}
|
|
265
|
+
else if (status === 'error') {
|
|
266
|
+
return `❌ ${type.toUpperCase()} connection error: ${connError || 'unknown error'}`;
|
|
267
|
+
}
|
|
268
|
+
return '';
|
|
269
|
+
}
|
|
270
|
+
// Handle plan accepted messages
|
|
271
|
+
if (planAccepted) {
|
|
272
|
+
const { planTitle, totalTasks } = planAccepted;
|
|
273
|
+
return `📋 Plan accepted: "${planTitle || 'Implementation Plan'}" with ${totalTasks || 0} tasks`;
|
|
274
|
+
}
|
|
275
|
+
// Handle task completion messages
|
|
276
|
+
if (taskCompletion) {
|
|
277
|
+
const { taskNumber, totalTasks, taskDescription, completionNote } = taskCompletion;
|
|
278
|
+
let output = `✅ Task ${taskNumber}/${totalTasks} completed: ${taskDescription}`;
|
|
279
|
+
if (completionNote) {
|
|
280
|
+
output += `\nNote: ${completionNote}`;
|
|
281
|
+
}
|
|
282
|
+
return output;
|
|
283
|
+
}
|
|
284
|
+
// Handle tool execution messages
|
|
285
|
+
if (toolExecution) {
|
|
286
|
+
return formatToolExecution(toolExecution);
|
|
287
|
+
}
|
|
288
|
+
// Handle user messages
|
|
289
|
+
if (role === 'user') {
|
|
290
|
+
if (isCommandMode) {
|
|
291
|
+
return `## User (Terminal Command)\n\`\`\`\n${content}\n\`\`\``;
|
|
292
|
+
}
|
|
293
|
+
return `## User\n${content}`;
|
|
294
|
+
}
|
|
295
|
+
// Handle assistant messages
|
|
296
|
+
if (role === 'assistant') {
|
|
297
|
+
if (content && content.trim()) {
|
|
298
|
+
return `## Assistant\n${content}`;
|
|
299
|
+
}
|
|
300
|
+
return '';
|
|
301
|
+
}
|
|
302
|
+
// Handle tool result messages (usually internal, skip)
|
|
303
|
+
if (role === 'tool') {
|
|
304
|
+
return '';
|
|
305
|
+
}
|
|
306
|
+
return '';
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Format entire chat history into human-readable text for clipboard sharing.
|
|
310
|
+
*/
|
|
311
|
+
export function formatChatForClipboard(messages) {
|
|
312
|
+
const header = `# Chat Session Export
|
|
313
|
+
Generated: ${new Date().toLocaleString()}
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
`;
|
|
317
|
+
const formattedMessages = messages
|
|
318
|
+
.map(formatMessage)
|
|
319
|
+
.filter(text => text.trim() !== '')
|
|
320
|
+
.join('\n\n---\n\n');
|
|
321
|
+
if (!formattedMessages) {
|
|
322
|
+
return cleanUnicode(header + 'No messages in this chat session.');
|
|
323
|
+
}
|
|
324
|
+
return cleanUnicode(header + formattedMessages);
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=chat-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-formatter.js","sourceRoot":"","sources":["../../src/utils/chat-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-history.d.ts","sourceRoot":"","sources":["../../src/utils/command-history.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-history.d.ts","sourceRoot":"","sources":["../../src/utils/command-history.ts"],"names":[],"mappings":"AAmBA,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAwB;IAC/C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO;IAKP,MAAM,CAAC,WAAW,IAAI,qBAAqB;IAOrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBrB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwClE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAW,GAAG,MAAM,EAAE;IAyCtD,UAAU,IAAI,MAAM,EAAE;CAIzB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from 'fs/promises';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import * as os from 'os';
|
|
4
|
+
import { logError } from './logger.js';
|
|
4
5
|
const HISTORY_FILE = 'history.json';
|
|
5
6
|
const MAX_HISTORY_SIZE = 200;
|
|
6
7
|
export class CommandHistoryManager {
|
|
@@ -67,7 +68,7 @@ export class CommandHistoryManager {
|
|
|
67
68
|
await fs.writeFile(this.historyPath, JSON.stringify(this.data, null, 2), 'utf-8');
|
|
68
69
|
}
|
|
69
70
|
catch (error) {
|
|
70
|
-
|
|
71
|
+
logError('Failed to save command history', error);
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
async addCommand(command, cwd = '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-history.js","sourceRoot":"","sources":["../../src/utils/command-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"command-history.js","sourceRoot":"","sources":["../../src/utils/command-history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAa7B,MAAM,OAAO,qBAAqB;IACtB,MAAM,CAAC,QAAQ,CAAwB;IACvC,WAAW,CAAS;IACpB,IAAI,GAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACjD,MAAM,GAAY,KAAK,CAAC;IAEhC;QACI,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YAClC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,qBAAqB,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAEvC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,2DAA2D;gBAC3D,IAAI,CAAC,IAAI,GAAG;oBACR,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE,EAAE;iBACf,CAAC;gBACF,2DAA2D;gBAC3D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACjB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;4BACtB,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;4BACxB,WAAW,EAAE,CAAC;4BACd,SAAS,EAAE,EAAE;yBAChB,CAAC;oBACN,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,qCAAqC;gBACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;gBACnB,6BAA6B;gBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACrD,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,yCAAyC;YACzC,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,CAAC;gBACD,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACL,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CACd,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAClC,OAAO,CACV,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,QAAQ,CAAC,gCAAgC,EAAE,KAAc,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc,EAAE;QAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO;QAExC,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG;gBACjC,YAAY,EAAE,GAAG;gBACjB,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,EAAE;aAChB,CAAC;QACN,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACjD,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC;QACzB,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QAEvB,IAAI,GAAG,EAAE,CAAC;YACN,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QAED,mEAAmE;QACnE,0EAA0E;QAC1E,mFAAmF;QACnF,2CAA2C;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACrB,6CAA6C;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAC1E,CAAC;YACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,MAAc,EAAE;QACvC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAEzC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjD,iBAAiB;QACjB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAClC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,MAAM,CAC9D,CAAC;QAEF,gBAAgB;QAChB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEtC,+BAA+B;YAC/B,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;YAE9B,oCAAoC;YACpC,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACvC,CAAC;YAED,kFAAkF;YAClF,6CAA6C;YAE7C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,iFAAiF;IACjF,UAAU;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACjG,CAAC;CACJ"}
|
|
@@ -5,6 +5,21 @@
|
|
|
5
5
|
* Logs all messages, tool calls, thoughts, and feedback to help
|
|
6
6
|
* debug issues like hallucination, looping, or getting stuck.
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Get the log file path based on build mode (determined at compile time).
|
|
10
|
+
* - In development builds: logs are written to the current directory
|
|
11
|
+
* - In production builds: logs are written to ~/.centaurus/
|
|
12
|
+
*/
|
|
13
|
+
export declare function getConversationLogFilePath(filename?: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Get the cached log file path (caches on first call for performance)
|
|
16
|
+
*/
|
|
17
|
+
export declare function getCachedLogFilePath(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Quick log function for direct logging without using the ConversationLogger class.
|
|
20
|
+
* This should be used instead of direct fs.appendFileSync calls.
|
|
21
|
+
*/
|
|
22
|
+
export declare function quickLog(message: string): void;
|
|
8
23
|
export declare enum LogLevel {
|
|
9
24
|
DEBUG = "DEBUG",
|
|
10
25
|
INFO = "INFO",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-logger.d.ts","sourceRoot":"","sources":["../../src/utils/conversation-logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"conversation-logger.d.ts","sourceRoot":"","sources":["../../src/utils/conversation-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,60 @@
|
|
|
6
6
|
* debug issues like hallucination, looping, or getting stuck.
|
|
7
7
|
*/
|
|
8
8
|
import * as fs from 'fs';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import * as os from 'os';
|
|
11
|
+
// Import build config - values frozen at compile time for security
|
|
12
|
+
// SECURITY: This prevents malicious .env files from overriding production settings
|
|
13
|
+
import { IS_DEV_BUILD } from '../config/build-config.js';
|
|
14
|
+
/**
|
|
15
|
+
* Get the log file path based on build mode (determined at compile time).
|
|
16
|
+
* - In development builds: logs are written to the current directory
|
|
17
|
+
* - In production builds: logs are written to ~/.centaurus/
|
|
18
|
+
*/
|
|
19
|
+
export function getConversationLogFilePath(filename = 'cli_frontend_logs.txt') {
|
|
20
|
+
if (IS_DEV_BUILD) {
|
|
21
|
+
// Development mode: log in the current directory
|
|
22
|
+
return filename;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// Production mode: log in the .centaurus directory
|
|
26
|
+
const configDir = path.join(os.homedir(), '.centaurus');
|
|
27
|
+
// Ensure directory exists
|
|
28
|
+
if (!fs.existsSync(configDir)) {
|
|
29
|
+
try {
|
|
30
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
// Fall back to current directory if we can't create the config dir
|
|
34
|
+
return filename;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return path.join(configDir, filename);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Cached log file path to avoid repeated lookups
|
|
41
|
+
let _cachedLogPath = null;
|
|
42
|
+
/**
|
|
43
|
+
* Get the cached log file path (caches on first call for performance)
|
|
44
|
+
*/
|
|
45
|
+
export function getCachedLogFilePath() {
|
|
46
|
+
if (_cachedLogPath === null) {
|
|
47
|
+
_cachedLogPath = getConversationLogFilePath();
|
|
48
|
+
}
|
|
49
|
+
return _cachedLogPath;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Quick log function for direct logging without using the ConversationLogger class.
|
|
53
|
+
* This should be used instead of direct fs.appendFileSync calls.
|
|
54
|
+
*/
|
|
55
|
+
export function quickLog(message) {
|
|
56
|
+
try {
|
|
57
|
+
fs.appendFileSync(getCachedLogFilePath(), message);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
// Silently fail if we can't write logs
|
|
61
|
+
}
|
|
62
|
+
}
|
|
9
63
|
// Log levels
|
|
10
64
|
export var LogLevel;
|
|
11
65
|
(function (LogLevel) {
|
|
@@ -39,8 +93,8 @@ export class ConversationLogger {
|
|
|
39
93
|
accumulatedThought = '';
|
|
40
94
|
accumulatedAIText = '';
|
|
41
95
|
enabled = true;
|
|
42
|
-
constructor(logFilePath
|
|
43
|
-
this.logFilePath = logFilePath;
|
|
96
|
+
constructor(logFilePath) {
|
|
97
|
+
this.logFilePath = getConversationLogFilePath(logFilePath || 'cli_frontend_logs.txt');
|
|
44
98
|
}
|
|
45
99
|
/**
|
|
46
100
|
* Enable or disable logging
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-logger.js","sourceRoot":"","sources":["../../src/utils/conversation-logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-logger.js","sourceRoot":"","sources":["../../src/utils/conversation-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-utils.d.ts","sourceRoot":"","sources":["../../src/utils/editor-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"editor-utils.d.ts","sourceRoot":"","sources":["../../src/utils/editor-utils.ts"],"names":[],"mappings":"AA2BA;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAwBnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAWrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA2BrD;AAwKD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA6GtB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA6BtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CACzB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC,aAAa,CAoEf;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC,aAAa,CAqEf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA8BtB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CACxB,SAAS,EAAE,GAAG,EAAE,cAAc;AAC9B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAwGtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CACzB,SAAS,EAAE,GAAG,EAAE,cAAc;AAC9B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnC,aAAa,CAgFf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as os from 'os';
|
|
2
2
|
import { createRequire } from 'module';
|
|
3
|
+
import { logError } from './logger.js';
|
|
3
4
|
// Use createRequire for ESM compatibility with native modules
|
|
4
5
|
const require = createRequire(import.meta.url);
|
|
5
6
|
const nodePty = require('@homebridge/node-pty-prebuilt-multiarch');
|
|
@@ -564,7 +565,7 @@ command, cwd, onExit) {
|
|
|
564
565
|
rows,
|
|
565
566
|
}, (err, shellStream) => {
|
|
566
567
|
if (err) {
|
|
567
|
-
|
|
568
|
+
logError('Failed to open SSH shell', err);
|
|
568
569
|
onExit(1);
|
|
569
570
|
return;
|
|
570
571
|
}
|
|
@@ -666,7 +667,7 @@ command, cwd, onData, onExit) {
|
|
|
666
667
|
}
|
|
667
668
|
}, (err, execStream) => {
|
|
668
669
|
if (err) {
|
|
669
|
-
|
|
670
|
+
logError('Failed to execute SSH command', err);
|
|
670
671
|
onExit(1);
|
|
671
672
|
return;
|
|
672
673
|
}
|