@pixelbyte-software/pixcode 1.49.0 → 1.49.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{index-58IIiyST.js → index-B3sFoGyf.js} +161 -161
- package/dist/assets/index-BtdtY_p1.css +32 -0
- package/dist/index.html +2 -2
- package/dist-server/server/gemini-cli.js +5 -1
- package/dist-server/server/gemini-cli.js.map +1 -1
- package/dist-server/server/index.js +114 -16
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/modules/orchestration/hermes/hermes.routes.js +48 -0
- package/dist-server/server/modules/orchestration/hermes/hermes.routes.js.map +1 -1
- package/dist-server/server/qwen-code-cli.js +5 -1
- package/dist-server/server/qwen-code-cli.js.map +1 -1
- package/package.json +1 -1
- package/scripts/smoke/pixcode-workbench-1-48.mjs +21 -0
- package/server/gemini-cli.js +7 -1
- package/server/index.js +124 -16
- package/server/modules/orchestration/hermes/hermes.routes.ts +64 -0
- package/server/qwen-code-cli.js +7 -1
- package/dist/assets/index-BpUexHb8.css +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hermes.routes.js","sourceRoot":"","sources":["../../../../../server/modules/orchestration/hermes/hermes.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"hermes.routes.js","sourceRoot":"","sources":["../../../../../server/modules/orchestration/hermes/hermes.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,7 +88,11 @@ async function spawnQwen(command, options = {}, ws) {
|
|
|
88
88
|
const modelToUse = options.model || 'qwen3-coder-plus';
|
|
89
89
|
args.push('--model', modelToUse);
|
|
90
90
|
args.push('--output-format', 'stream-json');
|
|
91
|
-
if (settings.skipPermissions ||
|
|
91
|
+
if (settings.skipPermissions ||
|
|
92
|
+
options.skipPermissions ||
|
|
93
|
+
permissionMode === 'yolo' ||
|
|
94
|
+
permissionMode === 'bypassPermissions' ||
|
|
95
|
+
permissionMode === 'acceptEdits') {
|
|
92
96
|
args.push('--yolo');
|
|
93
97
|
}
|
|
94
98
|
else if (permissionMode === 'auto_edit') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qwen-code-cli.js","sourceRoot":"","sources":["../../server/qwen-code-cli.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qwen-code-cli.js","sourceRoot":"","sources":["../../server/qwen-code-cli.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelbyte-software/pixcode",
|
|
3
|
-
"version": "1.49.
|
|
3
|
+
"version": "1.49.1",
|
|
4
4
|
"description": "Self-hosted AI coding agent control room for Claude Code, Cursor CLI, OpenAI Codex, Gemini CLI, Qwen Code, and OpenCode with chat, files, shell, Git, orchestration, API keys, Telegram, MCP, plugins, themes, and desktop/server deployment.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist-server/server/index.js",
|
|
@@ -17,6 +17,10 @@ const app = read('src/App.tsx');
|
|
|
17
17
|
const serverIndex = read('server/index.js');
|
|
18
18
|
const hermesRoutes = read('server/modules/orchestration/hermes/hermes.routes.ts');
|
|
19
19
|
const shellTerminal = read('src/components/shell/hooks/useShellTerminal.ts');
|
|
20
|
+
const shellConnection = read('src/components/shell/hooks/useShellConnection.ts');
|
|
21
|
+
const geminiCli = read('server/gemini-cli.js');
|
|
22
|
+
const qwenCli = read('server/qwen-code-cli.js');
|
|
23
|
+
const agentSettings = read('src/components/settings/view/tabs/agents-settings/AgentsSettingsTab.tsx');
|
|
20
24
|
const gitPanelHeader = read('src/components/git-panel/view/GitPanelHeader.tsx');
|
|
21
25
|
const themeContext = read('src/contexts/ThemeContext.jsx');
|
|
22
26
|
|
|
@@ -58,6 +62,7 @@ assert.match(workbench, /isBottomTerminalMinimized/, 'Bottom terminal should sup
|
|
|
58
62
|
assert.match(workbench, /isPlainShell/, 'Bottom terminal should open the selected project folder without starting the selected AI CLI.');
|
|
59
63
|
assert.match(workbench, /HERMES_AGENT_START_COMMAND/, 'Hermes Agent should launch from the bottom terminal through a server-side sentinel.');
|
|
60
64
|
assert.doesNotMatch(workbench, /Project-scoped agent terminal\. Installs Hermes when missing/, 'Right CLI panel should not show the old Hermes card.');
|
|
65
|
+
assert.doesNotMatch(workbench, /vscodeWorkbench\.hermes\.docsShort|HERMES_AGENT_DOCS_URL/, 'Hermes terminal header should not include a docs shortcut.');
|
|
61
66
|
assert.match(workbench, /shrinkCliPanel/, 'Right CLI panel should expose a shrink action.');
|
|
62
67
|
assert.match(workbench, /expandCliPanel/, 'Right CLI panel should expose an expand action.');
|
|
63
68
|
assert.match(workbench, /vscodeWorkbench\.welcome\.openProject/, 'Workbench welcome should expose a simple Open Project action.');
|
|
@@ -72,6 +77,10 @@ assert.match(serverIndex, /\/api\/shell\/sessions\/terminate/, 'Backend should e
|
|
|
72
77
|
assert.match(serverIndex, /isPlainShell && !initialCommand/, 'Backend should spawn an interactive plain shell when no terminal command is provided.');
|
|
73
78
|
assert.match(serverIndex, /pixcode:hermes:start/, 'Backend should expand Hermes terminal sentinels on the server host.');
|
|
74
79
|
assert.doesNotMatch(serverIndex, /iex \(irm https:\/\/raw\.githubusercontent\.com\/NousResearch\/hermes-agent\/main\/scripts\/install\.ps1\)/, 'Windows Hermes install should avoid the old inline iex pattern.');
|
|
80
|
+
assert.doesNotMatch(serverIndex, /scriptblock\]::Create\(\(irm https:\/\/raw\.githubusercontent\.com\/NousResearch\/hermes-agent\/main\/scripts\/install\.ps1\)\)/, 'Windows Hermes install should avoid scriptblock Invoke-RestMethod eval patterns.');
|
|
81
|
+
assert.match(serverIndex, /Invoke-WebRequest[\s\S]+install\.ps1[\s\S]+-OutFile/, 'Windows Hermes install should download the installer to a file before running it.');
|
|
82
|
+
assert.match(serverIndex, /Resolve-HermesCommand|resolveHermesCommand/, 'Hermes start/install should resolve an existing hermes binary before installing.');
|
|
83
|
+
assert.match(serverIndex, /buildProviderShellCommand/, 'Provider terminal launch should centralize provider-specific permission flags.');
|
|
75
84
|
assert.doesNotMatch(shellTerminal, /new WebglAddon\(\)/, 'Workbench terminal should use the stable xterm renderer.');
|
|
76
85
|
assert.match(workbench, /setActivityPanel\('explorer'\)/, 'Selecting a project should return the side panel to Explorer.');
|
|
77
86
|
assert.match(gitPanelHeader, /compact/, 'Workbench Source Control should have compact icon-only controls.');
|
|
@@ -94,7 +103,19 @@ assert.match(serverIndex, /app\.use\('\/hermes', createHermesTaskRouter\(\)\)/,
|
|
|
94
103
|
assert.doesNotMatch(serverIndex, /app\.use\('\/a2a'/, 'Server should not expose the old A2A route.');
|
|
95
104
|
assert.match(hermesRoutes, /createHermesRouter/, 'Hermes should have a dedicated orchestration API router.');
|
|
96
105
|
assert.match(hermesRoutes, /terminal-launches/, 'Hermes MCP should be able to request visible Pixcode CLI terminal launches.');
|
|
106
|
+
assert.match(hermesRoutes, /install-status/, 'Hermes settings and terminal UI should have an install-status endpoint.');
|
|
97
107
|
assert.match(serverIndex, /forceNewSession/, 'Shell backend should support explicit fresh-session launches from the workbench.');
|
|
98
108
|
assert.match(serverIndex, /killProviderPtySessions/, 'Shell backend should terminate old provider PTYs when a fresh CLI session is requested.');
|
|
99
109
|
|
|
110
|
+
assert.match(settingsTypes, /'hermes'/, 'Settings Agents should support Hermes Agent as a first-class agent.');
|
|
111
|
+
assert.match(agentSettings, /'hermes'/, 'Settings Agents should list Hermes Agent.');
|
|
112
|
+
assert.match(workbench, /hermesInstallStatus/, 'Workbench should hide Hermes install actions when Hermes is already installed.');
|
|
113
|
+
assert.match(shellConnection, /cursor-tools-settings/, 'Cursor shell launches should read Cursor permission settings, not Claude settings.');
|
|
114
|
+
assert.match(shellConnection, /permissionMode/, 'Shell websocket init should send provider permission mode to the backend.');
|
|
115
|
+
assert.match(serverIndex, /--dangerously-bypass-approvals-and-sandbox/, 'Codex terminal bypass mode should use the Codex CLI bypass flag.');
|
|
116
|
+
assert.match(serverIndex, /--yolo/, 'Gemini and Qwen terminal bypass mode should use --yolo.');
|
|
117
|
+
assert.match(serverIndex, /--dangerously-skip-permissions/, 'Claude/OpenCode terminal bypass mode should pass the provider bypass flag.');
|
|
118
|
+
assert.match(geminiCli, /permissionMode === 'bypassPermissions'[\s\S]+--yolo|--yolo[\s\S]+permissionMode === 'bypassPermissions'/, 'Gemini chat route should map Pixcode bypassPermissions to --yolo.');
|
|
119
|
+
assert.match(qwenCli, /permissionMode === 'bypassPermissions'[\s\S]+--yolo|--yolo[\s\S]+permissionMode === 'bypassPermissions'/, 'Qwen chat route should map Pixcode bypassPermissions to --yolo.');
|
|
120
|
+
|
|
100
121
|
console.log('pixcode workbench 1.48 smoke passed');
|
package/server/gemini-cli.js
CHANGED
|
@@ -190,7 +190,13 @@ async function spawnGemini(command, options = {}, ws) {
|
|
|
190
190
|
args.push('--output-format', 'stream-json');
|
|
191
191
|
|
|
192
192
|
// Handle approval modes and allowed tools
|
|
193
|
-
if (
|
|
193
|
+
if (
|
|
194
|
+
settings.skipPermissions ||
|
|
195
|
+
options.skipPermissions ||
|
|
196
|
+
permissionMode === 'yolo' ||
|
|
197
|
+
permissionMode === 'bypassPermissions' ||
|
|
198
|
+
permissionMode === 'acceptEdits'
|
|
199
|
+
) {
|
|
194
200
|
args.push('--yolo');
|
|
195
201
|
} else if (permissionMode === 'auto_edit') {
|
|
196
202
|
args.push('--approval-mode', 'auto_edit');
|
package/server/index.js
CHANGED
|
@@ -335,6 +335,64 @@ function shellQuotePowerShell(value) {
|
|
|
335
335
|
return `'${String(value).replace(/'/g, "''")}'`;
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
+
function normalizeShellPermissionMode(value) {
|
|
339
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function shouldBypassShellPermissions(permissionMode, skipPermissions) {
|
|
343
|
+
return Boolean(skipPermissions) || permissionMode === 'bypassPermissions' || permissionMode === 'acceptEdits' || permissionMode === 'yolo';
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
function buildProviderShellPermissionFlags(provider, permissionMode, skipPermissions) {
|
|
347
|
+
const mode = normalizeShellPermissionMode(permissionMode);
|
|
348
|
+
const bypass = shouldBypassShellPermissions(mode, skipPermissions);
|
|
349
|
+
|
|
350
|
+
if (provider === 'codex') {
|
|
351
|
+
if (mode === 'bypassPermissions' || mode === 'yolo') {
|
|
352
|
+
return ['--dangerously-bypass-approvals-and-sandbox'];
|
|
353
|
+
}
|
|
354
|
+
if (mode === 'acceptEdits' || mode === 'auto_edit' || bypass) {
|
|
355
|
+
return ['--sandbox', 'workspace-write', '--ask-for-approval', 'never'];
|
|
356
|
+
}
|
|
357
|
+
return [];
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
if (provider === 'gemini' || provider === 'qwen') {
|
|
361
|
+
if (bypass) {
|
|
362
|
+
return ['--yolo'];
|
|
363
|
+
}
|
|
364
|
+
if (mode === 'auto_edit') {
|
|
365
|
+
return ['--approval-mode', 'auto_edit'];
|
|
366
|
+
}
|
|
367
|
+
if (mode === 'plan') {
|
|
368
|
+
return ['--approval-mode', 'plan'];
|
|
369
|
+
}
|
|
370
|
+
return [];
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
if (provider === 'cursor') {
|
|
374
|
+
return bypass ? ['-f'] : [];
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
if (provider === 'opencode') {
|
|
378
|
+
if (mode === 'plan') {
|
|
379
|
+
return ['--agent', 'plan'];
|
|
380
|
+
}
|
|
381
|
+
return bypass ? ['--dangerously-skip-permissions'] : [];
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
if (provider === 'claude') {
|
|
385
|
+
return bypass ? ['--dangerously-skip-permissions'] : [];
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
return [];
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
function buildProviderShellCommand(command, permissionFlags = []) {
|
|
392
|
+
const flags = Array.isArray(permissionFlags) ? permissionFlags.filter(Boolean) : [];
|
|
393
|
+
return flags.length > 0 ? `${command} ${flags.join(' ')}` : command;
|
|
394
|
+
}
|
|
395
|
+
|
|
338
396
|
function resolvePublicBaseUrl(request) {
|
|
339
397
|
const headers = request?.headers || {};
|
|
340
398
|
const forwardedProto = String(headers['x-forwarded-proto'] || '').split(',')[0].trim();
|
|
@@ -373,11 +431,37 @@ function buildHermesShellCommand(kind, env) {
|
|
|
373
431
|
`$env:PIXCODE_API_KEY=${quote(env.PIXCODE_API_KEY)}`,
|
|
374
432
|
`$env:PIXCODE_APP_ROOT=${quote(env.PIXCODE_APP_ROOT)}`,
|
|
375
433
|
].join('; ');
|
|
376
|
-
const
|
|
434
|
+
const resolveHermesCommand = [
|
|
435
|
+
'function Resolve-HermesCommand {',
|
|
436
|
+
'$cmd = Get-Command hermes -ErrorAction SilentlyContinue;',
|
|
437
|
+
'if ($cmd) { return $cmd.Source; }',
|
|
438
|
+
'$candidates = @(',
|
|
439
|
+
'$env:HERMES_CLI_PATH,',
|
|
440
|
+
'(Join-Path $env:LOCALAPPDATA "hermes\\hermes-agent\\venv\\Scripts\\hermes.exe"),',
|
|
441
|
+
'(Join-Path $env:LOCALAPPDATA "hermes\\hermes-agent\\.venv\\Scripts\\hermes.exe"),',
|
|
442
|
+
'(Join-Path $env:LOCALAPPDATA "hermes\\hermes-agent\\hermes.exe")',
|
|
443
|
+
');',
|
|
444
|
+
'foreach ($candidate in $candidates) { if ($candidate -and (Test-Path $candidate)) { return $candidate; } }',
|
|
445
|
+
'return $null;',
|
|
446
|
+
'}',
|
|
447
|
+
].join(' ');
|
|
448
|
+
const installHermesIfMissing = [
|
|
449
|
+
'function Install-HermesIfMissing {',
|
|
450
|
+
'$script:HermesCmd = Resolve-HermesCommand;',
|
|
451
|
+
'if ($script:HermesCmd) { Write-Host "Hermes already installed:"; & $script:HermesCmd --version; return; }',
|
|
452
|
+
'$installer = Join-Path $env:TEMP "pixcode-hermes-install.ps1";',
|
|
453
|
+
'Invoke-WebRequest -Uri "https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1" -UseBasicParsing -OutFile $installer;',
|
|
454
|
+
'& powershell.exe -NoProfile -ExecutionPolicy Bypass -File $installer -SkipSetup -Branch main;',
|
|
455
|
+
'if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE; }',
|
|
456
|
+
'$env:Path = [Environment]::GetEnvironmentVariable("Path", "User") + ";" + [Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + $env:Path;',
|
|
457
|
+
'$script:HermesCmd = Resolve-HermesCommand;',
|
|
458
|
+
'if (-not $script:HermesCmd) { throw "Hermes installed, but the hermes command could not be found. Restart Pixcode or add Hermes to PATH."; }',
|
|
459
|
+
'}',
|
|
460
|
+
].join(' ');
|
|
377
461
|
if (kind === 'pixcode:hermes:install') {
|
|
378
|
-
return `${setEnv}; ${
|
|
462
|
+
return `${setEnv}; ${resolveHermesCommand}; ${installHermesIfMissing}; Install-HermesIfMissing; ${configure}`;
|
|
379
463
|
}
|
|
380
|
-
return `${setEnv}; ${
|
|
464
|
+
return `${setEnv}; ${resolveHermesCommand}; ${installHermesIfMissing}; Install-HermesIfMissing; ${configure}; & $script:HermesCmd chat --toolsets "hermes-cli,mcp-pixcode"`;
|
|
381
465
|
}
|
|
382
466
|
|
|
383
467
|
const setEnv = [
|
|
@@ -385,11 +469,30 @@ function buildHermesShellCommand(kind, env) {
|
|
|
385
469
|
`PIXCODE_API_KEY=${quote(env.PIXCODE_API_KEY)}`,
|
|
386
470
|
`PIXCODE_APP_ROOT=${quote(env.PIXCODE_APP_ROOT)}`,
|
|
387
471
|
].join(' ');
|
|
472
|
+
const resolveHermesCommand = [
|
|
473
|
+
'resolveHermesCommand() {',
|
|
474
|
+
'if command -v hermes >/dev/null 2>&1; then command -v hermes; return 0; fi;',
|
|
475
|
+
'if [ -n "${HERMES_CLI_PATH:-}" ] && [ -x "$HERMES_CLI_PATH" ]; then printf "%s\\n" "$HERMES_CLI_PATH"; return 0; fi;',
|
|
476
|
+
'if [ -x "$HOME/.local/bin/hermes" ]; then printf "%s\\n" "$HOME/.local/bin/hermes"; return 0; fi;',
|
|
477
|
+
'if [ -x "$HOME/.hermes/hermes-agent/venv/bin/hermes" ]; then printf "%s\\n" "$HOME/.hermes/hermes-agent/venv/bin/hermes"; return 0; fi;',
|
|
478
|
+
'if [ -x "/usr/local/bin/hermes" ]; then printf "%s\\n" "/usr/local/bin/hermes"; return 0; fi;',
|
|
479
|
+
'return 1;',
|
|
480
|
+
'}',
|
|
481
|
+
].join(' ');
|
|
388
482
|
const install = 'curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash';
|
|
483
|
+
const installHermesIfMissing = [
|
|
484
|
+
'installHermesIfMissing() {',
|
|
485
|
+
'HERMES_CMD="$(resolveHermesCommand 2>/dev/null || true)";',
|
|
486
|
+
'if [ -n "$HERMES_CMD" ]; then echo "Hermes already installed:"; "$HERMES_CMD" --version 2>/dev/null || true; return 0; fi;',
|
|
487
|
+
`${install};`,
|
|
488
|
+
'HERMES_CMD="$(resolveHermesCommand 2>/dev/null || true)";',
|
|
489
|
+
'if [ -z "$HERMES_CMD" ]; then echo "Hermes installed, but the hermes command could not be found. Reload PATH and retry." >&2; exit 127; fi;',
|
|
490
|
+
'}',
|
|
491
|
+
].join(' ');
|
|
389
492
|
if (kind === 'pixcode:hermes:install') {
|
|
390
|
-
return `${setEnv} sh -lc ${quote(`${
|
|
493
|
+
return `${setEnv} sh -lc ${quote(`${resolveHermesCommand} ${installHermesIfMissing} installHermesIfMissing && node ${shellQuotePosix(configureScript)}`)}`;
|
|
391
494
|
}
|
|
392
|
-
return `${setEnv} sh -lc ${quote(
|
|
495
|
+
return `${setEnv} sh -lc ${quote(`${resolveHermesCommand} ${installHermesIfMissing} installHermesIfMissing && node ${shellQuotePosix(configureScript)} && "$HERMES_CMD" chat --toolsets "hermes-cli,mcp-pixcode"`)}`;
|
|
393
496
|
}
|
|
394
497
|
|
|
395
498
|
// Single WebSocket server that handles both paths
|
|
@@ -2175,6 +2278,9 @@ function handleShellConnection(ws, request) {
|
|
|
2175
2278
|
}
|
|
2176
2279
|
const isPlainShell = data.isPlainShell || (!!initialCommand && !hasSession) || provider === 'plain-shell';
|
|
2177
2280
|
const forceNewSession = Boolean(data.forceNewSession);
|
|
2281
|
+
const shellPermissionMode = normalizeShellPermissionMode(data.permissionMode);
|
|
2282
|
+
const shellSkipPermissions = Boolean(data.skipPermissions);
|
|
2283
|
+
const shellPermissionFlags = buildProviderShellPermissionFlags(provider, shellPermissionMode, shellSkipPermissions);
|
|
2178
2284
|
urlDetectionBuffer = '';
|
|
2179
2285
|
announcedAuthUrls.clear();
|
|
2180
2286
|
|
|
@@ -2305,25 +2411,27 @@ function handleShellConnection(ws, request) {
|
|
|
2305
2411
|
// Plain shell mode without an initial command must stay interactive.
|
|
2306
2412
|
shellCommand = initialCommand || null;
|
|
2307
2413
|
} else if (provider === 'cursor') {
|
|
2414
|
+
const command = buildProviderShellCommand('cursor-agent', shellPermissionFlags);
|
|
2308
2415
|
if (hasSession && sessionId) {
|
|
2309
|
-
shellCommand =
|
|
2416
|
+
shellCommand = `${command} --resume="${sessionId}"`;
|
|
2310
2417
|
} else {
|
|
2311
|
-
shellCommand =
|
|
2418
|
+
shellCommand = command;
|
|
2312
2419
|
}
|
|
2313
2420
|
} else if (provider === 'codex') {
|
|
2314
2421
|
// Use codex command; attempt to resume and fall back to a new session when the resume fails.
|
|
2422
|
+
const command = buildProviderShellCommand('codex', shellPermissionFlags);
|
|
2315
2423
|
if (hasSession && sessionId) {
|
|
2316
2424
|
if (os.platform() === 'win32') {
|
|
2317
2425
|
// PowerShell syntax for fallback
|
|
2318
|
-
shellCommand =
|
|
2426
|
+
shellCommand = `${command} resume "${sessionId}"; if ($LASTEXITCODE -ne 0) { ${command} }`;
|
|
2319
2427
|
} else {
|
|
2320
|
-
shellCommand =
|
|
2428
|
+
shellCommand = `${command} resume "${sessionId}" || ${command}`;
|
|
2321
2429
|
}
|
|
2322
2430
|
} else {
|
|
2323
|
-
shellCommand =
|
|
2431
|
+
shellCommand = command;
|
|
2324
2432
|
}
|
|
2325
2433
|
} else if (provider === 'gemini') {
|
|
2326
|
-
const command = initialCommand || 'gemini';
|
|
2434
|
+
const command = buildProviderShellCommand(initialCommand || 'gemini', shellPermissionFlags);
|
|
2327
2435
|
let resumeId = sessionId;
|
|
2328
2436
|
if (hasSession && sessionId) {
|
|
2329
2437
|
try {
|
|
@@ -2352,7 +2460,7 @@ function handleShellConnection(ws, request) {
|
|
|
2352
2460
|
// Qwen Code shares Gemini CLI's --resume semantics (it's a fork),
|
|
2353
2461
|
// so the resume path resolves the backend-tracked cliSessionId the
|
|
2354
2462
|
// same way. Falls back to a fresh session when the ID can't be found.
|
|
2355
|
-
const command = initialCommand || 'qwen';
|
|
2463
|
+
const command = buildProviderShellCommand(initialCommand || 'qwen', shellPermissionFlags);
|
|
2356
2464
|
let resumeId = sessionId;
|
|
2357
2465
|
if (hasSession && sessionId) {
|
|
2358
2466
|
try {
|
|
@@ -2380,7 +2488,7 @@ function handleShellConnection(ws, request) {
|
|
|
2380
2488
|
// we pass them straight through without a cliSessionId
|
|
2381
2489
|
// mapping layer — OpenCode doesn't renumber IDs the way
|
|
2382
2490
|
// Gemini does.
|
|
2383
|
-
const command = initialCommand || 'opencode';
|
|
2491
|
+
const command = buildProviderShellCommand(initialCommand || 'opencode', shellPermissionFlags);
|
|
2384
2492
|
if (hasSession && sessionId && safeSessionIdPattern.test(sessionId)) {
|
|
2385
2493
|
shellCommand = `${command} --session "${sessionId}"`;
|
|
2386
2494
|
} else {
|
|
@@ -2388,12 +2496,12 @@ function handleShellConnection(ws, request) {
|
|
|
2388
2496
|
}
|
|
2389
2497
|
} else {
|
|
2390
2498
|
// Claude (default provider)
|
|
2391
|
-
const command = initialCommand || 'claude';
|
|
2499
|
+
const command = buildProviderShellCommand(initialCommand || 'claude', shellPermissionFlags);
|
|
2392
2500
|
if (hasSession && sessionId) {
|
|
2393
2501
|
if (os.platform() === 'win32') {
|
|
2394
|
-
shellCommand =
|
|
2502
|
+
shellCommand = `${command} --resume "${sessionId}"; if ($LASTEXITCODE -ne 0) { ${command} }`;
|
|
2395
2503
|
} else {
|
|
2396
|
-
shellCommand =
|
|
2504
|
+
shellCommand = `${command} --resume "${sessionId}" || ${command}`;
|
|
2397
2505
|
}
|
|
2398
2506
|
} else {
|
|
2399
2507
|
shellCommand = command;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
1
3
|
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
2
5
|
|
|
3
6
|
import express, { type Router } from 'express';
|
|
4
7
|
|
|
@@ -20,6 +23,63 @@ type HermesTerminalLaunchEvent = {
|
|
|
20
23
|
let nextHermesTerminalLaunchId = 1;
|
|
21
24
|
const hermesTerminalLaunches: HermesTerminalLaunchEvent[] = [];
|
|
22
25
|
|
|
26
|
+
function hermesCommandCandidates(): string[] {
|
|
27
|
+
const candidates = [process.env.HERMES_CLI_PATH, 'hermes'].filter((candidate): candidate is string => (
|
|
28
|
+
typeof candidate === 'string' && candidate.trim().length > 0
|
|
29
|
+
));
|
|
30
|
+
|
|
31
|
+
if (process.platform === 'win32') {
|
|
32
|
+
const localAppData = process.env.LOCALAPPDATA;
|
|
33
|
+
if (localAppData) {
|
|
34
|
+
candidates.push(
|
|
35
|
+
path.join(localAppData, 'hermes', 'hermes-agent', 'venv', 'Scripts', 'hermes.exe'),
|
|
36
|
+
path.join(localAppData, 'hermes', 'hermes-agent', '.venv', 'Scripts', 'hermes.exe'),
|
|
37
|
+
path.join(localAppData, 'hermes', 'hermes-agent', 'hermes.exe'),
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
} else {
|
|
41
|
+
candidates.push(
|
|
42
|
+
path.join(os.homedir(), '.local', 'bin', 'hermes'),
|
|
43
|
+
path.join(os.homedir(), '.hermes', 'hermes-agent', 'venv', 'bin', 'hermes'),
|
|
44
|
+
'/usr/local/bin/hermes',
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return [...new Set(candidates)];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function readHermesInstallStatus() {
|
|
52
|
+
for (const candidate of hermesCommandCandidates()) {
|
|
53
|
+
const isBareCommand = candidate === 'hermes';
|
|
54
|
+
if (!isBareCommand && !existsSync(candidate)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const result = spawnSync(candidate, ['--version'], {
|
|
59
|
+
encoding: 'utf8',
|
|
60
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
61
|
+
timeout: 5000,
|
|
62
|
+
shell: false,
|
|
63
|
+
});
|
|
64
|
+
if (!result.error && result.status === 0) {
|
|
65
|
+
const version = `${result.stdout || result.stderr || ''}`.trim() || null;
|
|
66
|
+
return {
|
|
67
|
+
installed: true,
|
|
68
|
+
command: candidate,
|
|
69
|
+
version,
|
|
70
|
+
error: null,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
installed: false,
|
|
77
|
+
command: null,
|
|
78
|
+
version: null,
|
|
79
|
+
error: 'Hermes Agent CLI is not installed or is not on PATH.',
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
23
83
|
export function createHermesRouter(): Router {
|
|
24
84
|
const router = express.Router();
|
|
25
85
|
|
|
@@ -58,6 +118,10 @@ export function createHermesRouter(): Router {
|
|
|
58
118
|
});
|
|
59
119
|
});
|
|
60
120
|
|
|
121
|
+
router.get('/install-status', (_req, res) => {
|
|
122
|
+
res.json(readHermesInstallStatus());
|
|
123
|
+
});
|
|
124
|
+
|
|
61
125
|
router.get('/agents', (_req, res) => {
|
|
62
126
|
res.json({
|
|
63
127
|
agent: 'hermes',
|
package/server/qwen-code-cli.js
CHANGED
|
@@ -102,7 +102,13 @@ async function spawnQwen(command, options = {}, ws) {
|
|
|
102
102
|
args.push('--model', modelToUse);
|
|
103
103
|
args.push('--output-format', 'stream-json');
|
|
104
104
|
|
|
105
|
-
if (
|
|
105
|
+
if (
|
|
106
|
+
settings.skipPermissions ||
|
|
107
|
+
options.skipPermissions ||
|
|
108
|
+
permissionMode === 'yolo' ||
|
|
109
|
+
permissionMode === 'bypassPermissions' ||
|
|
110
|
+
permissionMode === 'acceptEdits'
|
|
111
|
+
) {
|
|
106
112
|
args.push('--yolo');
|
|
107
113
|
} else if (permissionMode === 'auto_edit') {
|
|
108
114
|
args.push('--approval-mode', 'auto_edit');
|