centaurus-cli 2.7.3 → 2.8.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 +2 -0
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +46 -4
- package/dist/cli-adapter.js.map +1 -1
- package/dist/context/handlers/wsl-handler.d.ts.map +1 -1
- package/dist/context/handlers/wsl-handler.js +2 -1
- package/dist/context/handlers/wsl-handler.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +20 -0
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/tools/file-ops.d.ts.map +1 -1
- package/dist/tools/file-ops.js +13 -3
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/ui/components/App.d.ts +1 -0
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +73 -74
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/InteractiveShell.d.ts +2 -1
- package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
- package/dist/ui/components/InteractiveShell.js +41 -106
- package/dist/ui/components/InteractiveShell.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +12 -8
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/MessageDisplay.js +10 -2
- package/dist/ui/components/MessageDisplay.js.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.js +5 -5
- package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
- package/dist/utils/editor-utils.d.ts +50 -0
- package/dist/utils/editor-utils.d.ts.map +1 -0
- package/dist/utils/editor-utils.js +501 -0
- package/dist/utils/editor-utils.js.map +1 -0
- package/dist/utils/input-classifier.d.ts.map +1 -1
- package/dist/utils/input-classifier.js +2 -1
- package/dist/utils/input-classifier.js.map +1 -1
- package/dist/utils/shell.d.ts +32 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +97 -161
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-checker.d.ts +24 -0
- package/dist/utils/syntax-checker.d.ts.map +1 -0
- package/dist/utils/syntax-checker.js +320 -0
- package/dist/utils/syntax-checker.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import * as vm from 'vm';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import { spawn } from 'child_process';
|
|
5
|
+
import * as ts from 'typescript';
|
|
6
|
+
/**
|
|
7
|
+
* File extension to language mapping
|
|
8
|
+
*/
|
|
9
|
+
const LANGUAGE_MAP = {
|
|
10
|
+
// JavaScript
|
|
11
|
+
'.js': 'javascript',
|
|
12
|
+
'.mjs': 'javascript',
|
|
13
|
+
'.cjs': 'javascript',
|
|
14
|
+
'.jsx': 'javascript',
|
|
15
|
+
// TypeScript
|
|
16
|
+
'.ts': 'typescript',
|
|
17
|
+
'.tsx': 'typescript',
|
|
18
|
+
'.mts': 'typescript',
|
|
19
|
+
'.cts': 'typescript',
|
|
20
|
+
// Python
|
|
21
|
+
'.py': 'python',
|
|
22
|
+
'.pyw': 'python',
|
|
23
|
+
// JSON
|
|
24
|
+
'.json': 'json',
|
|
25
|
+
'.jsonc': 'json',
|
|
26
|
+
// Skip syntax checking for these (text/markup/config)
|
|
27
|
+
'.txt': 'text',
|
|
28
|
+
'.md': 'markdown',
|
|
29
|
+
'.markdown': 'markdown',
|
|
30
|
+
'.log': 'log',
|
|
31
|
+
'.csv': 'csv',
|
|
32
|
+
'.html': 'html',
|
|
33
|
+
'.htm': 'html',
|
|
34
|
+
'.css': 'css',
|
|
35
|
+
'.scss': 'scss',
|
|
36
|
+
'.sass': 'sass',
|
|
37
|
+
'.less': 'less',
|
|
38
|
+
'.xml': 'xml',
|
|
39
|
+
'.yaml': 'yaml',
|
|
40
|
+
'.yml': 'yaml',
|
|
41
|
+
'.toml': 'toml',
|
|
42
|
+
'.ini': 'ini',
|
|
43
|
+
'.cfg': 'config',
|
|
44
|
+
'.conf': 'config',
|
|
45
|
+
'.env': 'env',
|
|
46
|
+
'.gitignore': 'gitignore',
|
|
47
|
+
'.dockerignore': 'dockerignore',
|
|
48
|
+
'.editorconfig': 'config',
|
|
49
|
+
'.prettierrc': 'config',
|
|
50
|
+
'.eslintrc': 'config',
|
|
51
|
+
'.babelrc': 'config',
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Languages that should skip syntax checking
|
|
55
|
+
*/
|
|
56
|
+
const SKIP_SYNTAX_CHECK = new Set([
|
|
57
|
+
'text',
|
|
58
|
+
'markdown',
|
|
59
|
+
'log',
|
|
60
|
+
'csv',
|
|
61
|
+
'html',
|
|
62
|
+
'css',
|
|
63
|
+
'scss',
|
|
64
|
+
'sass',
|
|
65
|
+
'less',
|
|
66
|
+
'xml',
|
|
67
|
+
'yaml',
|
|
68
|
+
'toml',
|
|
69
|
+
'ini',
|
|
70
|
+
'config',
|
|
71
|
+
'env',
|
|
72
|
+
'gitignore',
|
|
73
|
+
'dockerignore',
|
|
74
|
+
]);
|
|
75
|
+
/**
|
|
76
|
+
* Detect language from file path
|
|
77
|
+
*/
|
|
78
|
+
export function detectLanguage(filePath) {
|
|
79
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
80
|
+
const basename = path.basename(filePath).toLowerCase();
|
|
81
|
+
// Check for special filenames without extensions
|
|
82
|
+
if (!ext) {
|
|
83
|
+
// Common config files without extensions
|
|
84
|
+
if (basename === 'dockerfile')
|
|
85
|
+
return 'dockerfile';
|
|
86
|
+
if (basename === 'makefile')
|
|
87
|
+
return 'makefile';
|
|
88
|
+
if (basename === '.gitignore')
|
|
89
|
+
return 'gitignore';
|
|
90
|
+
if (basename === '.dockerignore')
|
|
91
|
+
return 'dockerignore';
|
|
92
|
+
if (basename === '.env')
|
|
93
|
+
return 'env';
|
|
94
|
+
return 'unknown';
|
|
95
|
+
}
|
|
96
|
+
return LANGUAGE_MAP[ext] || 'unknown';
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Check JavaScript syntax using vm.Script
|
|
100
|
+
*/
|
|
101
|
+
function checkJavaScriptSyntax(content) {
|
|
102
|
+
try {
|
|
103
|
+
// Use vm.Script to parse and check syntax without execution
|
|
104
|
+
new vm.Script(content, { filename: 'syntax-check.js' });
|
|
105
|
+
return {
|
|
106
|
+
success: true,
|
|
107
|
+
language: 'JavaScript',
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
const err = error;
|
|
112
|
+
return {
|
|
113
|
+
success: false,
|
|
114
|
+
language: 'JavaScript',
|
|
115
|
+
error: err.message,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Check TypeScript syntax using the TypeScript compiler API
|
|
121
|
+
*/
|
|
122
|
+
function checkTypeScriptSyntax(content, filePath) {
|
|
123
|
+
try {
|
|
124
|
+
const isTsx = filePath.endsWith('.tsx');
|
|
125
|
+
const compilerOptions = {
|
|
126
|
+
noEmit: true,
|
|
127
|
+
target: ts.ScriptTarget.ESNext,
|
|
128
|
+
module: ts.ModuleKind.ESNext,
|
|
129
|
+
jsx: isTsx ? ts.JsxEmit.React : undefined,
|
|
130
|
+
strict: false, // Don't enforce strict mode for syntax checking
|
|
131
|
+
skipLibCheck: true,
|
|
132
|
+
allowJs: true,
|
|
133
|
+
};
|
|
134
|
+
// Create a simple in-memory source file
|
|
135
|
+
const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.ESNext, true, isTsx ? ts.ScriptKind.TSX : ts.ScriptKind.TS);
|
|
136
|
+
// Check for parse errors (syntax errors)
|
|
137
|
+
const parseErrors = [];
|
|
138
|
+
// Walk through the source file to find syntax errors
|
|
139
|
+
// TypeScript's createSourceFile doesn't throw on syntax errors,
|
|
140
|
+
// but we can check for diagnostic messages
|
|
141
|
+
const parseDiagnostics = sourceFile.parseDiagnostics;
|
|
142
|
+
if (parseDiagnostics && parseDiagnostics.length > 0) {
|
|
143
|
+
for (const diag of parseDiagnostics) {
|
|
144
|
+
const message = ts.flattenDiagnosticMessageText(diag.messageText, '\n');
|
|
145
|
+
const lineAndChar = sourceFile.getLineAndCharacterOfPosition(diag.start || 0);
|
|
146
|
+
parseErrors.push(`Line ${lineAndChar.line + 1}: ${message}`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
if (parseErrors.length > 0) {
|
|
150
|
+
return {
|
|
151
|
+
success: false,
|
|
152
|
+
language: 'TypeScript',
|
|
153
|
+
error: parseErrors.join('\n'),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
success: true,
|
|
158
|
+
language: 'TypeScript',
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
const err = error;
|
|
163
|
+
return {
|
|
164
|
+
success: false,
|
|
165
|
+
language: 'TypeScript',
|
|
166
|
+
error: err.message,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Check Python syntax using the py_compile module
|
|
172
|
+
*/
|
|
173
|
+
async function checkPythonSyntax(filePath) {
|
|
174
|
+
return new Promise((resolve) => {
|
|
175
|
+
// Use python -m py_compile to check syntax
|
|
176
|
+
const pythonCommands = process.platform === 'win32'
|
|
177
|
+
? ['python', 'python3', 'py']
|
|
178
|
+
: ['python3', 'python'];
|
|
179
|
+
let attemptIndex = 0;
|
|
180
|
+
const tryNextCommand = () => {
|
|
181
|
+
if (attemptIndex >= pythonCommands.length) {
|
|
182
|
+
// No Python found
|
|
183
|
+
resolve({
|
|
184
|
+
success: true,
|
|
185
|
+
language: 'Python',
|
|
186
|
+
skipped: true,
|
|
187
|
+
skipReason: 'Python interpreter not found. Syntax check skipped.',
|
|
188
|
+
});
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const pythonCmd = pythonCommands[attemptIndex];
|
|
192
|
+
attemptIndex++;
|
|
193
|
+
const proc = spawn(pythonCmd, ['-m', 'py_compile', filePath], {
|
|
194
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
195
|
+
timeout: 5000, // 5 second timeout
|
|
196
|
+
});
|
|
197
|
+
let stderr = '';
|
|
198
|
+
proc.stderr.on('data', (data) => {
|
|
199
|
+
stderr += data.toString();
|
|
200
|
+
});
|
|
201
|
+
proc.on('error', () => {
|
|
202
|
+
// This python command failed, try next
|
|
203
|
+
tryNextCommand();
|
|
204
|
+
});
|
|
205
|
+
proc.on('close', (code) => {
|
|
206
|
+
if (code === 0) {
|
|
207
|
+
resolve({
|
|
208
|
+
success: true,
|
|
209
|
+
language: 'Python',
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
// Parse the error message
|
|
214
|
+
const errorLines = stderr.trim().split('\n');
|
|
215
|
+
const relevantError = errorLines.length > 0
|
|
216
|
+
? errorLines[errorLines.length - 1]
|
|
217
|
+
: 'Syntax error detected';
|
|
218
|
+
resolve({
|
|
219
|
+
success: false,
|
|
220
|
+
language: 'Python',
|
|
221
|
+
error: relevantError,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
tryNextCommand();
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Check JSON syntax using JSON.parse
|
|
231
|
+
*/
|
|
232
|
+
function checkJsonSyntax(content) {
|
|
233
|
+
try {
|
|
234
|
+
JSON.parse(content);
|
|
235
|
+
return {
|
|
236
|
+
success: true,
|
|
237
|
+
language: 'JSON',
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
catch (error) {
|
|
241
|
+
const err = error;
|
|
242
|
+
return {
|
|
243
|
+
success: false,
|
|
244
|
+
language: 'JSON',
|
|
245
|
+
error: err.message,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Main syntax check function
|
|
251
|
+
* Checks the syntax of a file based on its extension
|
|
252
|
+
*/
|
|
253
|
+
export async function checkSyntax(filePath, content) {
|
|
254
|
+
const language = detectLanguage(filePath);
|
|
255
|
+
// Skip syntax checking for text/config files
|
|
256
|
+
if (SKIP_SYNTAX_CHECK.has(language)) {
|
|
257
|
+
return {
|
|
258
|
+
success: true,
|
|
259
|
+
language: language.charAt(0).toUpperCase() + language.slice(1),
|
|
260
|
+
skipped: true,
|
|
261
|
+
skipReason: `Syntax check skipped for ${language} files`,
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
// Skip unknown file types
|
|
265
|
+
if (language === 'unknown') {
|
|
266
|
+
return {
|
|
267
|
+
success: true,
|
|
268
|
+
language: 'Unknown',
|
|
269
|
+
skipped: true,
|
|
270
|
+
skipReason: 'Syntax check skipped for unknown file type',
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
// Read content from file if not provided
|
|
274
|
+
let fileContent = content;
|
|
275
|
+
if (!fileContent) {
|
|
276
|
+
try {
|
|
277
|
+
fileContent = fs.readFileSync(filePath, 'utf-8');
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
return {
|
|
281
|
+
success: true,
|
|
282
|
+
language: language.charAt(0).toUpperCase() + language.slice(1),
|
|
283
|
+
skipped: true,
|
|
284
|
+
skipReason: 'Could not read file for syntax check',
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
// Perform language-specific syntax check
|
|
289
|
+
switch (language) {
|
|
290
|
+
case 'javascript':
|
|
291
|
+
return checkJavaScriptSyntax(fileContent);
|
|
292
|
+
case 'typescript':
|
|
293
|
+
return checkTypeScriptSyntax(fileContent, filePath);
|
|
294
|
+
case 'python':
|
|
295
|
+
// Python requires the file to be on disk for py_compile
|
|
296
|
+
return await checkPythonSyntax(filePath);
|
|
297
|
+
case 'json':
|
|
298
|
+
return checkJsonSyntax(fileContent);
|
|
299
|
+
default:
|
|
300
|
+
return {
|
|
301
|
+
success: true,
|
|
302
|
+
language: language.charAt(0).toUpperCase() + language.slice(1),
|
|
303
|
+
skipped: true,
|
|
304
|
+
skipReason: `Syntax check not implemented for ${language}`,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Format syntax check result as a human-readable string
|
|
310
|
+
*/
|
|
311
|
+
export function formatSyntaxCheckResult(result) {
|
|
312
|
+
if (result.skipped) {
|
|
313
|
+
return `(${result.skipReason})`;
|
|
314
|
+
}
|
|
315
|
+
if (result.success) {
|
|
316
|
+
return `✓ Syntax check passed (${result.language})`;
|
|
317
|
+
}
|
|
318
|
+
return `✗ Syntax error (${result.language}): ${result.error}`;
|
|
319
|
+
}
|
|
320
|
+
//# sourceMappingURL=syntax-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax-checker.js","sourceRoot":"","sources":["../../src/utils/syntax-checker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "centaurus-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.0",
|
|
4
4
|
"description": "A powerful command-line AI coding assistant with Google Gemini support",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"centaurus": "
|
|
9
|
-
"centaurus-cli": "
|
|
8
|
+
"centaurus": "dist/index.js",
|
|
9
|
+
"centaurus-cli": "dist/index.js"
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "tsc",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"AUTH_FLOW.md"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
+
"@homebridge/node-pty-prebuilt-multiarch": "^0.13.1",
|
|
48
49
|
"@modelcontextprotocol/sdk": "^1.24.2",
|
|
49
50
|
"@types/node": "^24.7.2",
|
|
50
51
|
"@types/react": "^18.3.26",
|