@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.
@@ -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.error || `Hermes gateway exited with code ${gateway.exitCode ?? 'unknown'}.`);
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":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EACH,kBAAkB,EAClB,uBAAuB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;AAE3B,SAAS,MAAM;IACX,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAW;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK;IAC5C,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5D,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAO;IAC7B,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI;IAC9B,OAAO,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB;IACrB,OAAO,kBAAkB,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,KAAK,CAAC,EAAE;IACb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IAClD,OAAO,kBAAkB,CAAC,OAAO,EAAE;QAC/B,kBAAkB,EAAE,MAAM;QAC1B,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,OAAO,CAAC,YAAY,IAAI,gBAAgB,EAAE;QAC1D,uBAAuB,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,cAAc,IAAI,EAAE;QAC5E,gBAAgB,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;QAC9C,eAAe,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;QAC5C,gBAAgB,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;QAClD,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;QACrC,kBAAkB,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;KAC/C,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,IAAI,EAAE,IAAI;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,aAAa,EAAE,IAAI;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5E,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;QAC5B,IAAI,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,KAAK,OAAO,KAAK,GAAG,eAAe,GAAG,CAAC,GAAG,CAAC,CAAC;AAClH,CAAC;AAED,SAAS,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE;IAChC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,CAAC;IAC5F,OAAO,KAAK,CAAC,GAAG,EAAE;QACd,GAAG,OAAO;QACV,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,OAAO,EAAE;YACL,MAAM,EAAE,kBAAkB;YAC1B,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SAC7B;KACJ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACL,IAAI,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,OAAO;YACH,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI;SACP,CAAC;IACN,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE;IACtD,OAAO,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE;QAC9C,GAAG,OAAO;QACV,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,OAAO,CAAC,YAAY,EAAE;YAC/C,cAAc,EAAE,kBAAkB;YAClC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SAC7B;KACJ,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,IAAI;IACtB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC;AACxE,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAI;IAC1B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;AACpF,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAK;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK;aACP,GAAG,CAAC,oBAAoB,CAAC;aACzB,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,IAAI,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YACxF,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAI;IAC1B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEnD,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QAC1G,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAI;IACrC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;eACpD,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;eAC5C,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IAC1B,CAAC;IACD,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;WACtC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;WACjC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;WAClC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;WACnC,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAO;IACjC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,OAAO,CAAC,IAAI;SACd,KAAK,CAAC,CAAC,EAAE,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAChD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,gCAAgC;IAC5E,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU;QAC3B,CAAC,CAAC,qCAAqC,OAAO,CAAC,UAAU,GAAG;QAC5D,CAAC,CAAC,mCAAmC,OAAO,CAAC,QAAQ,IAAI,SAAS,GAAG,CAAC;IAC1E,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,cAAc,CAAC,OAAO;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,OAAO;QACH,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,uBAAuB,IAAI,CAAC,GAAG,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACtG,KAAK;QACL,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI;YAClC,8CAA8C;YAC9C,mGAAmG;YACnG,4EAA4E;SAC/E,CAAC,IAAI,CAAC,GAAG,CAAC;KACd,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAO;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE;YACI,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO,CAAC,YAAY,IAAI;gBAC7B,8CAA8C;gBAC9C,mGAAmG;gBACnG,4EAA4E;aAC/E,CAAC,IAAI,CAAC,GAAG,CAAC;SACd;QACD;YACI,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK;SACjB;KACJ,CAAC;IACF,OAAO;QACH,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,cAAc;QACtC,QAAQ;QACR,MAAM,EAAE,KAAK;KAChB,CAAC;AACN,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,OAAO;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAG,IAAI,CAAC;IAErB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,kBAAkB,EAAE,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YACtF,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,uBAAuB,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,8CAA8C,kBAAkB,GAAG,IAAI,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;AAC/H,CAAC;AAED,SAAS,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YAC/B,GAAG,OAAO;YACV,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC/B,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,OAAO,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO;YACX,CAAC;YACD,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;IACxD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,2BAA2B,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,EAAE;QAC/D,GAAG,EAAE,OAAO;QACZ,GAAG;KACN,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,OAAO;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO;YACH,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,IAAI;YACT,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,EAAE;SACX,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI;QAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAW;IAC9C,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACtE,OAAO;QACH,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;QAC1B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;KAC/D,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAO,GAAG,EAAE;IAClD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5F,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC,CAAC,CAAC;QACJ,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACX,OAAO;gBACH,GAAG,eAAe,CAAC,QAAQ,CAAC;gBAC5B,KAAK;aACR,CAAC;QACN,CAAC;QACD,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IACvH,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,gBAAgB,EAAE,CAAC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,GAAG,GAAG,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3C,GAAG,OAAO;QACV,IAAI;QACJ,IAAI;QACJ,YAAY;QACZ,OAAO;KACV,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACnD,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,oCAAoC,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,OAAO,GAAG;QACZ,EAAE,EAAE,GAAG,WAAW,IAAI,IAAI,EAAE;QAC5B,WAAW;QACX,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;QACnC,YAAY;QACZ,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,MAAM,EAAE;QACnB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,EAAE;KACX,CAAC;IACF,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnC,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;QACpD,GAAG,EAAE,WAAW;QAChB,GAAG;QACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,WAAW,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,CAAC,OAAO,YAAY,CAAC,CAAC;IAE1E,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC;QAC5B,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,mCAAmC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAClH,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO;QACH,GAAG,eAAe,CAAC,OAAO,CAAC;QAC3B,KAAK;KACR,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAW,EAAE,OAAO,GAAG,EAAE;IAC9D,MAAM,OAAO,GAAG,WAAW;QACvB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE3D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG;YACX,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,gCAAgC;YACvC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;YACnE,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;SACb,CAAC;QACF,IAAI,OAAO,CAAC,cAAc;YAAE,OAAO,MAAM,CAAC;QAC1C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,SAAS,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5G,CAAC;IAED,IAAI,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,YAAY,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAClH,CAAC;IAED,IAAI,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5G,CAAC;IAED,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5D,IAAI,CAAC;YACD,MAAM,CAAC,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;gBAChD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACjB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;oBAC3B,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE;oBACxD,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,uDAAuD;iBAChG,CAAC;gBACF,SAAS,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;aAC3C,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzG,CAAC;IACL,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,CACd,MAAM,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,CAAC,YAAY,EAAE,EAAE;QACvB,MAAM,CAAC,MAAM,EAAE,EAAE;QACjB,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CACjC,CAAC;IACF,MAAM,MAAM,GAAG;QACX,EAAE;QACF,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,MAAM,EAAE;QACnB,MAAM;QACN,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAwC;KAC9D,CAAC;IACF,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;IAC3B,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAW,EAAE,OAAO,GAAG,EAAE;IAClE,MAAM,OAAO,GAAG,WAAW;QACvB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE3D,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,WAAW,GAAG,yBAAyB,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,sBAAsB,EAAE;QAC5D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QACjC,SAAS,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,IAAI,cAAc;KAC1E,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO;YACH,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,WAAW;YACnB,OAAO;YACP,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,SAAS,EAAE,kBAAkB;SAChC,CAAC;IACN,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;QAClD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC7B,SAAS,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;KAC9C,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO;YACH,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,aAAa,IAAI,WAAW;YACpC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;YACtC,GAAG,EAAE,MAAM,CAAC,IAAI;YAChB,SAAS,EAAE,MAAM;SACpB,CAAC;IACN,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,MAAM,GAAG,aAAa,IAAI,QAAQ,CAAC;IAEvC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,cAAc,CAAC,EAAE,CAAC;QAC3G,MAAM,KAAK,CAAC,OAAO,CAAC,cAAc,IAAI,oBAAoB,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,YAAY,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;YAC7E,SAAS,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,qBAAqB,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,cAAc,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;IAC/H,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO;QACH,EAAE,EAAE,MAAM,KAAK,WAAW;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,OAAO,IAAI,oBAAoB;QAC7G,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,MAAM;KACpB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,WAAW;IACzC,MAAM,OAAO,GAAG,WAAW;QACvB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACnE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAAE,SAAS;QACzC,IAAI,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelbyte-software/pixcode",
3
- "version": "1.49.8",
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:', hermesCommand ? hermesCommand : initialCommand);
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:', hermesCommand ? hermesCommand : (shellCommand || 'interactive shell'));
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.error || `Hermes gateway exited with code ${gateway.exitCode ?? 'unknown'}.`);
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