@pixelbyte-software/pixcode 1.49.8 → 1.49.9
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-Cwsu2tLq.js → index-DzGkH0cd.js} +1 -1
- package/dist/index.html +1 -1
- package/dist-server/server/index.js +2 -2
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/services/hermes-gateway.js +103 -1
- package/dist-server/server/services/hermes-gateway.js.map +1 -1
- package/package.json +1 -1
- package/scripts/smoke/hermes-rest-chat-api.mjs +109 -0
- package/scripts/smoke/hermes-rest-chat-live.mjs +41 -0
- package/scripts/smoke/hermes-rest-gateway.mjs +2 -0
- package/scripts/smoke/pixcode-workbench-1-48.mjs +1 -0
- package/server/index.js +2 -2
- package/server/services/hermes-gateway.js +108 -1
|
@@ -151,6 +151,42 @@ function extractRunOutput(body) {
|
|
|
151
151
|
}
|
|
152
152
|
return null;
|
|
153
153
|
}
|
|
154
|
+
function extractChatCompletionOutput(body) {
|
|
155
|
+
if (!body || typeof body !== 'object')
|
|
156
|
+
return null;
|
|
157
|
+
const choices = Array.isArray(body.choices) ? body.choices : [];
|
|
158
|
+
for (const choice of choices) {
|
|
159
|
+
const text = extractTextFromValue(choice?.message?.content)
|
|
160
|
+
|| extractTextFromValue(choice?.delta?.content)
|
|
161
|
+
|| extractTextFromValue(choice?.text);
|
|
162
|
+
if (text)
|
|
163
|
+
return text;
|
|
164
|
+
}
|
|
165
|
+
return extractTextFromValue(body.output_text)
|
|
166
|
+
|| extractTextFromValue(body.output)
|
|
167
|
+
|| extractTextFromValue(body.message)
|
|
168
|
+
|| extractTextFromValue(body.response)
|
|
169
|
+
|| null;
|
|
170
|
+
}
|
|
171
|
+
function recentGatewayLogText(gateway) {
|
|
172
|
+
if (!gateway?.logs?.length)
|
|
173
|
+
return '';
|
|
174
|
+
return gateway.logs
|
|
175
|
+
.slice(-16)
|
|
176
|
+
.map((entry) => String(entry.chunk || '').trim())
|
|
177
|
+
.filter(Boolean)
|
|
178
|
+
.join('\n')
|
|
179
|
+
.trim();
|
|
180
|
+
}
|
|
181
|
+
function gatewayExitMessage(gateway, fallback = 'Hermes gateway is not running.') {
|
|
182
|
+
if (!gateway)
|
|
183
|
+
return fallback;
|
|
184
|
+
const exit = gateway.exitSignal
|
|
185
|
+
? `Hermes gateway exited with signal ${gateway.exitSignal}.`
|
|
186
|
+
: `Hermes gateway exited with code ${gateway.exitCode ?? 'unknown'}.`;
|
|
187
|
+
const logs = recentGatewayLogText(gateway);
|
|
188
|
+
return logs ? `${exit}\n${logs}` : (gateway.error || exit);
|
|
189
|
+
}
|
|
154
190
|
function makeRunRequest(options) {
|
|
155
191
|
const input = String(options.input || '').trim();
|
|
156
192
|
return {
|
|
@@ -163,12 +199,34 @@ function makeRunRequest(options) {
|
|
|
163
199
|
].join(' '),
|
|
164
200
|
};
|
|
165
201
|
}
|
|
202
|
+
function makeChatCompletionRequest(options) {
|
|
203
|
+
const input = String(options.input || '').trim();
|
|
204
|
+
const messages = Array.isArray(options.messages) ? options.messages : [
|
|
205
|
+
{
|
|
206
|
+
role: 'system',
|
|
207
|
+
content: options.instructions || [
|
|
208
|
+
'You are Hermes Agent running inside Pixcode.',
|
|
209
|
+
'Use Pixcode MCP tools when they help inspect projects, launch CLIs, or perform workspace actions.',
|
|
210
|
+
'Keep answers concise and include concrete next steps when work is blocked.',
|
|
211
|
+
].join(' '),
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
role: 'user',
|
|
215
|
+
content: input,
|
|
216
|
+
},
|
|
217
|
+
];
|
|
218
|
+
return {
|
|
219
|
+
model: options.model || 'hermes-agent',
|
|
220
|
+
messages,
|
|
221
|
+
stream: false,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
166
224
|
async function waitForGatewayReady(gateway) {
|
|
167
225
|
const started = Date.now();
|
|
168
226
|
let lastError = null;
|
|
169
227
|
while (Date.now() - started < STARTUP_TIMEOUT_MS) {
|
|
170
228
|
if (!isGatewayRunning(gateway)) {
|
|
171
|
-
throw new Error(gateway
|
|
229
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
172
230
|
}
|
|
173
231
|
try {
|
|
174
232
|
const probe = await probeHermesGateway(gateway.projectPath, { requireRunning: true });
|
|
@@ -410,12 +468,51 @@ export async function runHermesGatewayPrompt(projectPath, options = {}) {
|
|
|
410
468
|
if (!input) {
|
|
411
469
|
throw new Error('Hermes prompt is required.');
|
|
412
470
|
}
|
|
471
|
+
const chatRequest = makeChatCompletionRequest({ ...options, input });
|
|
472
|
+
const chat = await callGateway(gateway, '/v1/chat/completions', {
|
|
473
|
+
method: 'POST',
|
|
474
|
+
body: JSON.stringify(chatRequest),
|
|
475
|
+
timeoutMs: options.chatTimeoutMs || options.timeoutMs || RUN_TIMEOUT_MS,
|
|
476
|
+
}).catch((error) => {
|
|
477
|
+
if (!isGatewayRunning(gateway)) {
|
|
478
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
479
|
+
}
|
|
480
|
+
throw error;
|
|
481
|
+
});
|
|
482
|
+
if (!isGatewayRunning(gateway)) {
|
|
483
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
484
|
+
}
|
|
485
|
+
if (chat.ok) {
|
|
486
|
+
const message = extractChatCompletionOutput(chat.body);
|
|
487
|
+
return {
|
|
488
|
+
ok: true,
|
|
489
|
+
projectPath: gateway.projectPath,
|
|
490
|
+
baseUrl: gateway.baseUrl,
|
|
491
|
+
sessionId: options.sessionId || null,
|
|
492
|
+
runId: null,
|
|
493
|
+
status: 'completed',
|
|
494
|
+
message,
|
|
495
|
+
raw: chat.body,
|
|
496
|
+
transport: 'chat.completions',
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
if (chat.status && chat.status !== 404 && chat.status !== 405) {
|
|
500
|
+
throw new Error(`Hermes /v1/chat/completions failed with HTTP ${chat.status}: ${JSON.stringify(chat.body)}`);
|
|
501
|
+
}
|
|
413
502
|
const request = makeRunRequest({ ...options, input });
|
|
414
503
|
const create = await callGateway(gateway, '/v1/runs', {
|
|
415
504
|
method: 'POST',
|
|
416
505
|
body: JSON.stringify(request),
|
|
417
506
|
timeoutMs: options.createTimeoutMs || 15000,
|
|
507
|
+
}).catch((error) => {
|
|
508
|
+
if (!isGatewayRunning(gateway)) {
|
|
509
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
510
|
+
}
|
|
511
|
+
throw error;
|
|
418
512
|
});
|
|
513
|
+
if (!isGatewayRunning(gateway)) {
|
|
514
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
515
|
+
}
|
|
419
516
|
if (!create.ok) {
|
|
420
517
|
throw new Error(`Hermes /v1/runs failed with HTTP ${create.status}: ${JSON.stringify(create.body)}`);
|
|
421
518
|
}
|
|
@@ -431,6 +528,7 @@ export async function runHermesGatewayPrompt(projectPath, options = {}) {
|
|
|
431
528
|
status: initialStatus || 'completed',
|
|
432
529
|
message: extractRunOutput(create.body),
|
|
433
530
|
raw: create.body,
|
|
531
|
+
transport: 'runs',
|
|
434
532
|
};
|
|
435
533
|
}
|
|
436
534
|
const terminalStatuses = new Set(['completed', 'failed', 'cancelled', 'canceled']);
|
|
@@ -445,6 +543,9 @@ export async function runHermesGatewayPrompt(projectPath, options = {}) {
|
|
|
445
543
|
if (!poll.ok) {
|
|
446
544
|
throw new Error(`Hermes /v1/runs/${runId} failed with HTTP ${poll.status}: ${JSON.stringify(poll.body)}`);
|
|
447
545
|
}
|
|
546
|
+
if (!isGatewayRunning(gateway)) {
|
|
547
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
548
|
+
}
|
|
448
549
|
latest = poll.body;
|
|
449
550
|
status = extractRunStatus(latest) || status;
|
|
450
551
|
}
|
|
@@ -462,6 +563,7 @@ export async function runHermesGatewayPrompt(projectPath, options = {}) {
|
|
|
462
563
|
message,
|
|
463
564
|
error: status === 'completed' ? null : extractTextFromValue(latest?.error) || message || 'Hermes run failed.',
|
|
464
565
|
raw: latest,
|
|
566
|
+
transport: 'runs',
|
|
465
567
|
};
|
|
466
568
|
}
|
|
467
569
|
export function stopHermesGateway(projectPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hermes-gateway.js","sourceRoot":"","sources":["../../../server/services/hermes-gateway.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hermes-gateway.js","sourceRoot":"","sources":["../../../server/services/hermes-gateway.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.9",
|
|
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",
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
ensureHermesGateway,
|
|
8
|
+
runHermesGatewayPrompt,
|
|
9
|
+
stopHermesGateway,
|
|
10
|
+
} from '../../server/services/hermes-gateway.js';
|
|
11
|
+
|
|
12
|
+
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
13
|
+
const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'pixcode-hermes-chat-api-'));
|
|
14
|
+
const fakeHermes = path.join(tempRoot, 'hermes');
|
|
15
|
+
const projectPath = path.join(tempRoot, 'project');
|
|
16
|
+
const hermesHome = path.join(tempRoot, 'home');
|
|
17
|
+
|
|
18
|
+
await fs.mkdir(projectPath, { recursive: true });
|
|
19
|
+
await fs.writeFile(fakeHermes, `#!/usr/bin/env node
|
|
20
|
+
import http from 'node:http';
|
|
21
|
+
|
|
22
|
+
if (process.argv.includes('--version')) {
|
|
23
|
+
console.log('Hermes Agent v0.0.0 smoke');
|
|
24
|
+
process.exit(0);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (!process.argv.includes('gateway')) {
|
|
28
|
+
console.error('expected gateway');
|
|
29
|
+
process.exit(2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const host = process.env.API_SERVER_HOST || '127.0.0.1';
|
|
33
|
+
const port = Number(process.env.API_SERVER_PORT || 8642);
|
|
34
|
+
const key = process.env.API_SERVER_KEY || '';
|
|
35
|
+
const server = http.createServer(async (req, res) => {
|
|
36
|
+
const url = new URL(req.url || '/', 'http://127.0.0.1');
|
|
37
|
+
res.setHeader('content-type', 'application/json');
|
|
38
|
+
if (url.pathname !== '/health' && req.headers.authorization !== \`Bearer \${key}\`) {
|
|
39
|
+
res.statusCode = 401;
|
|
40
|
+
res.end(JSON.stringify({ error: 'bad auth' }));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (req.method === 'GET' && url.pathname === '/health') {
|
|
44
|
+
res.end(JSON.stringify({ ok: true }));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (req.method === 'GET' && url.pathname === '/v1/capabilities') {
|
|
48
|
+
res.end(JSON.stringify({ capabilities: ['chat'] }));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (req.method === 'GET' && url.pathname === '/v1/models') {
|
|
52
|
+
res.end(JSON.stringify({ data: [{ id: 'hermes-agent' }] }));
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (req.method === 'POST' && url.pathname === '/v1/chat/completions') {
|
|
56
|
+
let body = '';
|
|
57
|
+
for await (const chunk of req) body += chunk.toString();
|
|
58
|
+
const parsed = body ? JSON.parse(body) : {};
|
|
59
|
+
res.end(JSON.stringify({
|
|
60
|
+
id: 'chatcmpl-smoke',
|
|
61
|
+
choices: [{
|
|
62
|
+
index: 0,
|
|
63
|
+
message: {
|
|
64
|
+
role: 'assistant',
|
|
65
|
+
content: \`pixcode-hermes-chat-ok via \${parsed.model}\`,
|
|
66
|
+
},
|
|
67
|
+
finish_reason: 'stop',
|
|
68
|
+
}],
|
|
69
|
+
}));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
res.statusCode = 404;
|
|
73
|
+
res.end(JSON.stringify({ error: url.pathname }));
|
|
74
|
+
});
|
|
75
|
+
server.listen(port, host);
|
|
76
|
+
`, { mode: 0o755 });
|
|
77
|
+
|
|
78
|
+
process.env.HERMES_CLI_PATH = fakeHermes;
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
const gateway = await ensureHermesGateway({
|
|
82
|
+
appRoot: repoRoot,
|
|
83
|
+
projectPath,
|
|
84
|
+
hermesHome,
|
|
85
|
+
pixcodeBaseUrl: 'http://127.0.0.1:9',
|
|
86
|
+
pixcodeApiKey: 'px_chat_api_smoke_key',
|
|
87
|
+
port: 18752,
|
|
88
|
+
});
|
|
89
|
+
if (!gateway.running || !gateway.probe?.ok) {
|
|
90
|
+
throw new Error(`Fake Hermes gateway did not start cleanly: ${JSON.stringify(gateway)}`);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const run = await runHermesGatewayPrompt(projectPath, {
|
|
94
|
+
input: 'selam',
|
|
95
|
+
timeoutMs: 10000,
|
|
96
|
+
});
|
|
97
|
+
if (!run.ok || run.transport !== 'chat.completions' || !String(run.message || '').includes('pixcode-hermes-chat-ok')) {
|
|
98
|
+
throw new Error(`Hermes REST chat did not use chat completions: ${JSON.stringify(run)}`);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
console.log(JSON.stringify({
|
|
102
|
+
ok: true,
|
|
103
|
+
transport: run.transport,
|
|
104
|
+
message: run.message,
|
|
105
|
+
}, null, 2));
|
|
106
|
+
} finally {
|
|
107
|
+
stopHermesGateway(projectPath);
|
|
108
|
+
delete process.env.HERMES_CLI_PATH;
|
|
109
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
ensureHermesGateway,
|
|
6
|
+
runHermesGatewayPrompt,
|
|
7
|
+
stopHermesGateway,
|
|
8
|
+
} from '../../server/services/hermes-gateway.js';
|
|
9
|
+
|
|
10
|
+
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
11
|
+
const projectPath = path.resolve(process.argv[2] || repoRoot);
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
const gateway = await ensureHermesGateway({
|
|
15
|
+
appRoot: repoRoot,
|
|
16
|
+
projectPath,
|
|
17
|
+
pixcodeBaseUrl: 'http://127.0.0.1:9',
|
|
18
|
+
pixcodeApiKey: 'px_live_chat_smoke_key',
|
|
19
|
+
port: Number(process.env.PIXCODE_HERMES_LIVE_CHAT_PORT || 18652),
|
|
20
|
+
});
|
|
21
|
+
if (!gateway.running || !gateway.probe?.ok) {
|
|
22
|
+
throw new Error(`Hermes gateway did not start cleanly: ${JSON.stringify(gateway)}`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const run = await runHermesGatewayPrompt(projectPath, {
|
|
26
|
+
input: 'Reply with exactly: pixcode-hermes-chat-ok',
|
|
27
|
+
timeoutMs: 90000,
|
|
28
|
+
});
|
|
29
|
+
if (!run.ok || !String(run.message || '').includes('pixcode-hermes-chat-ok')) {
|
|
30
|
+
throw new Error(`Hermes chat did not return the expected response: ${JSON.stringify(run)}`);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
console.log(JSON.stringify({
|
|
34
|
+
ok: true,
|
|
35
|
+
transport: run.transport,
|
|
36
|
+
status: run.status,
|
|
37
|
+
message: run.message,
|
|
38
|
+
}, null, 2));
|
|
39
|
+
} finally {
|
|
40
|
+
stopHermesGateway(projectPath);
|
|
41
|
+
}
|
|
@@ -13,6 +13,8 @@ assert.match(service, /export async function ensureHermesGateway/, 'Pixcode shou
|
|
|
13
13
|
assert.match(service, /export async function probeHermesGateway/, 'Pixcode should probe Hermes through its REST API.');
|
|
14
14
|
assert.match(service, /export async function runHermesGatewayPrompt/, 'Pixcode should submit Hermes prompts through the managed REST gateway.');
|
|
15
15
|
assert.match(service, /export function stopHermesGateway/, 'Pixcode should be able to stop a managed Hermes gateway process.');
|
|
16
|
+
assert.match(service, /\/v1\/chat\/completions/, 'Hermes UI chat should use the documented OpenAI-compatible chat completions endpoint first.');
|
|
17
|
+
assert.match(service, /gatewayExitMessage/, 'Hermes gateway failures should include recent stderr/stdout instead of only exit code 1.');
|
|
16
18
|
assert.match(service, /API_SERVER_ENABLED:\s*'true'/, 'Hermes gateway env should enable the API server.');
|
|
17
19
|
assert.match(service, /API_SERVER_KEY/, 'Hermes gateway env should set a bearer key.');
|
|
18
20
|
assert.match(service, /API_SERVER_PORT/, 'Hermes gateway env should choose a REST port.');
|
|
@@ -85,6 +85,7 @@ assert.doesNotMatch(workbench, /suspendAutoConnect/, 'Right CLI provider starts
|
|
|
85
85
|
assert.match(serverIndex, /\/api\/shell\/sessions\/terminate/, 'Backend should expose an authenticated endpoint to terminate cached provider PTYs immediately.');
|
|
86
86
|
assert.match(serverIndex, /isPlainShell && !initialCommand/, 'Backend should spawn an interactive plain shell when no terminal command is provided.');
|
|
87
87
|
assert.doesNotMatch(serverIndex, /pixcode:hermes:start/, 'Backend should not need a Hermes terminal sentinel for the workbench Hermes panel.');
|
|
88
|
+
assert.doesNotMatch(serverIndex, /hermesCommand/, 'Provider shell starts should not reference the removed Hermes sentinel variable.');
|
|
88
89
|
assert.doesNotMatch(hermesInstallJobs, /iex \(irm https:\/\/raw\.githubusercontent\.com\/NousResearch\/hermes-agent\/main\/scripts\/install\.ps1\)/, 'Windows Hermes install should avoid the old inline iex pattern.');
|
|
89
90
|
assert.doesNotMatch(hermesInstallJobs, /scriptblock\]::Create\(\(irm https:\/\/raw\.githubusercontent\.com\/NousResearch\/hermes-agent\/main\/scripts\/install\.ps1\)\)/, 'Windows Hermes install should avoid scriptblock Invoke-RestMethod eval patterns.');
|
|
90
91
|
assert.match(hermesInstallJobs, /downloadHermesInstaller/, 'Windows Hermes install should download the installer through backend API code before running it.');
|
package/server/index.js
CHANGED
|
@@ -2266,7 +2266,7 @@ function handleShellConnection(ws, request) {
|
|
|
2266
2266
|
console.log('📋 Session info:', hasSession ? `Resume session ${sessionId}` : (isPlainShell ? 'Plain shell mode' : 'New session'));
|
|
2267
2267
|
console.log('🤖 Provider:', isPlainShell ? 'plain-shell' : provider);
|
|
2268
2268
|
if (initialCommand) {
|
|
2269
|
-
console.log('⚡ Initial command:',
|
|
2269
|
+
console.log('⚡ Initial command:', initialCommand || 'interactive shell');
|
|
2270
2270
|
}
|
|
2271
2271
|
|
|
2272
2272
|
// First send a welcome message
|
|
@@ -2413,7 +2413,7 @@ function handleShellConnection(ws, request) {
|
|
|
2413
2413
|
}
|
|
2414
2414
|
}
|
|
2415
2415
|
|
|
2416
|
-
console.log('🔧 Executing shell command:',
|
|
2416
|
+
console.log('🔧 Executing shell command:', shellCommand || 'interactive shell');
|
|
2417
2417
|
|
|
2418
2418
|
// Use appropriate shell based on platform
|
|
2419
2419
|
const shell = os.platform() === 'win32' ? 'powershell.exe' : 'bash';
|
|
@@ -173,6 +173,41 @@ function extractRunOutput(body) {
|
|
|
173
173
|
return null;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
+
function extractChatCompletionOutput(body) {
|
|
177
|
+
if (!body || typeof body !== 'object') return null;
|
|
178
|
+
const choices = Array.isArray(body.choices) ? body.choices : [];
|
|
179
|
+
for (const choice of choices) {
|
|
180
|
+
const text = extractTextFromValue(choice?.message?.content)
|
|
181
|
+
|| extractTextFromValue(choice?.delta?.content)
|
|
182
|
+
|| extractTextFromValue(choice?.text);
|
|
183
|
+
if (text) return text;
|
|
184
|
+
}
|
|
185
|
+
return extractTextFromValue(body.output_text)
|
|
186
|
+
|| extractTextFromValue(body.output)
|
|
187
|
+
|| extractTextFromValue(body.message)
|
|
188
|
+
|| extractTextFromValue(body.response)
|
|
189
|
+
|| null;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function recentGatewayLogText(gateway) {
|
|
193
|
+
if (!gateway?.logs?.length) return '';
|
|
194
|
+
return gateway.logs
|
|
195
|
+
.slice(-16)
|
|
196
|
+
.map((entry) => String(entry.chunk || '').trim())
|
|
197
|
+
.filter(Boolean)
|
|
198
|
+
.join('\n')
|
|
199
|
+
.trim();
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
function gatewayExitMessage(gateway, fallback = 'Hermes gateway is not running.') {
|
|
203
|
+
if (!gateway) return fallback;
|
|
204
|
+
const exit = gateway.exitSignal
|
|
205
|
+
? `Hermes gateway exited with signal ${gateway.exitSignal}.`
|
|
206
|
+
: `Hermes gateway exited with code ${gateway.exitCode ?? 'unknown'}.`;
|
|
207
|
+
const logs = recentGatewayLogText(gateway);
|
|
208
|
+
return logs ? `${exit}\n${logs}` : (gateway.error || exit);
|
|
209
|
+
}
|
|
210
|
+
|
|
176
211
|
function makeRunRequest(options) {
|
|
177
212
|
const input = String(options.input || '').trim();
|
|
178
213
|
return {
|
|
@@ -186,13 +221,36 @@ function makeRunRequest(options) {
|
|
|
186
221
|
};
|
|
187
222
|
}
|
|
188
223
|
|
|
224
|
+
function makeChatCompletionRequest(options) {
|
|
225
|
+
const input = String(options.input || '').trim();
|
|
226
|
+
const messages = Array.isArray(options.messages) ? options.messages : [
|
|
227
|
+
{
|
|
228
|
+
role: 'system',
|
|
229
|
+
content: options.instructions || [
|
|
230
|
+
'You are Hermes Agent running inside Pixcode.',
|
|
231
|
+
'Use Pixcode MCP tools when they help inspect projects, launch CLIs, or perform workspace actions.',
|
|
232
|
+
'Keep answers concise and include concrete next steps when work is blocked.',
|
|
233
|
+
].join(' '),
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
role: 'user',
|
|
237
|
+
content: input,
|
|
238
|
+
},
|
|
239
|
+
];
|
|
240
|
+
return {
|
|
241
|
+
model: options.model || 'hermes-agent',
|
|
242
|
+
messages,
|
|
243
|
+
stream: false,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
|
|
189
247
|
async function waitForGatewayReady(gateway) {
|
|
190
248
|
const started = Date.now();
|
|
191
249
|
let lastError = null;
|
|
192
250
|
|
|
193
251
|
while (Date.now() - started < STARTUP_TIMEOUT_MS) {
|
|
194
252
|
if (!isGatewayRunning(gateway)) {
|
|
195
|
-
throw new Error(gateway
|
|
253
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
196
254
|
}
|
|
197
255
|
|
|
198
256
|
try {
|
|
@@ -458,13 +516,57 @@ export async function runHermesGatewayPrompt(projectPath, options = {}) {
|
|
|
458
516
|
throw new Error('Hermes prompt is required.');
|
|
459
517
|
}
|
|
460
518
|
|
|
519
|
+
const chatRequest = makeChatCompletionRequest({ ...options, input });
|
|
520
|
+
const chat = await callGateway(gateway, '/v1/chat/completions', {
|
|
521
|
+
method: 'POST',
|
|
522
|
+
body: JSON.stringify(chatRequest),
|
|
523
|
+
timeoutMs: options.chatTimeoutMs || options.timeoutMs || RUN_TIMEOUT_MS,
|
|
524
|
+
}).catch((error) => {
|
|
525
|
+
if (!isGatewayRunning(gateway)) {
|
|
526
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
527
|
+
}
|
|
528
|
+
throw error;
|
|
529
|
+
});
|
|
530
|
+
|
|
531
|
+
if (!isGatewayRunning(gateway)) {
|
|
532
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
if (chat.ok) {
|
|
536
|
+
const message = extractChatCompletionOutput(chat.body);
|
|
537
|
+
return {
|
|
538
|
+
ok: true,
|
|
539
|
+
projectPath: gateway.projectPath,
|
|
540
|
+
baseUrl: gateway.baseUrl,
|
|
541
|
+
sessionId: options.sessionId || null,
|
|
542
|
+
runId: null,
|
|
543
|
+
status: 'completed',
|
|
544
|
+
message,
|
|
545
|
+
raw: chat.body,
|
|
546
|
+
transport: 'chat.completions',
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
if (chat.status && chat.status !== 404 && chat.status !== 405) {
|
|
551
|
+
throw new Error(`Hermes /v1/chat/completions failed with HTTP ${chat.status}: ${JSON.stringify(chat.body)}`);
|
|
552
|
+
}
|
|
553
|
+
|
|
461
554
|
const request = makeRunRequest({ ...options, input });
|
|
462
555
|
const create = await callGateway(gateway, '/v1/runs', {
|
|
463
556
|
method: 'POST',
|
|
464
557
|
body: JSON.stringify(request),
|
|
465
558
|
timeoutMs: options.createTimeoutMs || 15000,
|
|
559
|
+
}).catch((error) => {
|
|
560
|
+
if (!isGatewayRunning(gateway)) {
|
|
561
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
562
|
+
}
|
|
563
|
+
throw error;
|
|
466
564
|
});
|
|
467
565
|
|
|
566
|
+
if (!isGatewayRunning(gateway)) {
|
|
567
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
568
|
+
}
|
|
569
|
+
|
|
468
570
|
if (!create.ok) {
|
|
469
571
|
throw new Error(`Hermes /v1/runs failed with HTTP ${create.status}: ${JSON.stringify(create.body)}`);
|
|
470
572
|
}
|
|
@@ -481,6 +583,7 @@ export async function runHermesGatewayPrompt(projectPath, options = {}) {
|
|
|
481
583
|
status: initialStatus || 'completed',
|
|
482
584
|
message: extractRunOutput(create.body),
|
|
483
585
|
raw: create.body,
|
|
586
|
+
transport: 'runs',
|
|
484
587
|
};
|
|
485
588
|
}
|
|
486
589
|
|
|
@@ -497,6 +600,9 @@ export async function runHermesGatewayPrompt(projectPath, options = {}) {
|
|
|
497
600
|
if (!poll.ok) {
|
|
498
601
|
throw new Error(`Hermes /v1/runs/${runId} failed with HTTP ${poll.status}: ${JSON.stringify(poll.body)}`);
|
|
499
602
|
}
|
|
603
|
+
if (!isGatewayRunning(gateway)) {
|
|
604
|
+
throw new Error(gatewayExitMessage(gateway));
|
|
605
|
+
}
|
|
500
606
|
latest = poll.body;
|
|
501
607
|
status = extractRunStatus(latest) || status;
|
|
502
608
|
}
|
|
@@ -516,6 +622,7 @@ export async function runHermesGatewayPrompt(projectPath, options = {}) {
|
|
|
516
622
|
message,
|
|
517
623
|
error: status === 'completed' ? null : extractTextFromValue(latest?.error) || message || 'Hermes run failed.',
|
|
518
624
|
raw: latest,
|
|
625
|
+
transport: 'runs',
|
|
519
626
|
};
|
|
520
627
|
}
|
|
521
628
|
|