@rethinkingstudio/clawpilot 2.1.2 → 2.1.3-beta.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.
@@ -0,0 +1,28 @@
1
+ export interface RunHermesAgentTurnOptions {
2
+ sessionId?: string;
3
+ model?: string;
4
+ provider?: string;
5
+ userMessage: string;
6
+ signal?: AbortSignal;
7
+ onText: (fullText: string) => void;
8
+ onToolStart?: (event: HermesBridgeToolStartEvent) => void;
9
+ onToolComplete?: (event: HermesBridgeToolCompleteEvent) => void;
10
+ }
11
+ export interface RunHermesAgentTurnResult {
12
+ sessionId?: string;
13
+ fullText: string;
14
+ }
15
+ export type HermesBridgeToolStartEvent = {
16
+ type: "tool_start";
17
+ toolCallId: string;
18
+ name: string;
19
+ args?: Record<string, unknown>;
20
+ };
21
+ export type HermesBridgeToolCompleteEvent = {
22
+ type: "tool_complete";
23
+ toolCallId: string;
24
+ name: string;
25
+ args?: Record<string, unknown>;
26
+ result?: string;
27
+ };
28
+ export declare function runHermesAgentTurn(options: RunHermesAgentTurnOptions): Promise<RunHermesAgentTurnResult>;
@@ -0,0 +1,135 @@
1
+ import { homedir } from "os";
2
+ import { createInterface } from "readline";
3
+ import { spawn } from "child_process";
4
+ import { join } from "path";
5
+ import { fileURLToPath } from "url";
6
+ function resolveHermesBridgePython() {
7
+ return join(homedir(), ".hermes", "hermes-agent", "venv", "bin", "python");
8
+ }
9
+ function resolveHermesBridgeScript() {
10
+ return fileURLToPath(new URL("../../scripts/hermes_agent_bridge.py", import.meta.url));
11
+ }
12
+ export async function runHermesAgentTurn(options) {
13
+ const pythonPath = resolveHermesBridgePython();
14
+ const scriptPath = resolveHermesBridgeScript();
15
+ const child = spawn(pythonPath, [scriptPath], {
16
+ stdio: ["pipe", "pipe", "pipe"],
17
+ });
18
+ let fullText = "";
19
+ let sessionId = options.sessionId?.trim() || undefined;
20
+ let explicitError = null;
21
+ let stderr = "";
22
+ let abortedBySignal = false;
23
+ let killTimer = null;
24
+ const cleanupAbortTimer = () => {
25
+ if (killTimer) {
26
+ clearTimeout(killTimer);
27
+ killTimer = null;
28
+ }
29
+ };
30
+ const abortHandler = () => {
31
+ abortedBySignal = true;
32
+ cleanupAbortTimer();
33
+ child.kill("SIGTERM");
34
+ killTimer = setTimeout(() => {
35
+ if (!child.killed) {
36
+ child.kill("SIGKILL");
37
+ }
38
+ }, 2_000);
39
+ killTimer.unref();
40
+ };
41
+ if (options.signal) {
42
+ if (options.signal.aborted) {
43
+ abortHandler();
44
+ }
45
+ else {
46
+ options.signal.addEventListener("abort", abortHandler, { once: true });
47
+ }
48
+ }
49
+ const stdoutLines = createInterface({ input: child.stdout });
50
+ stdoutLines.on("line", (line) => {
51
+ const trimmed = line.trim();
52
+ if (!trimmed)
53
+ return;
54
+ let event;
55
+ try {
56
+ event = JSON.parse(trimmed);
57
+ }
58
+ catch {
59
+ return;
60
+ }
61
+ switch (event.type) {
62
+ case "session":
63
+ sessionId = event.sessionId?.trim() || sessionId;
64
+ break;
65
+ case "assistant_delta": {
66
+ const chunk = event.text ?? "";
67
+ if (chunk) {
68
+ fullText += chunk;
69
+ options.onText(fullText);
70
+ }
71
+ break;
72
+ }
73
+ case "assistant_final":
74
+ sessionId = event.sessionId?.trim() || sessionId;
75
+ if (typeof event.text === "string" && event.text.length > 0) {
76
+ fullText = event.text;
77
+ options.onText(fullText);
78
+ }
79
+ break;
80
+ case "tool_start":
81
+ options.onToolStart?.(event);
82
+ break;
83
+ case "tool_complete":
84
+ options.onToolComplete?.(event);
85
+ break;
86
+ case "error":
87
+ explicitError = new Error(event.message || "Hermes agent bridge failed");
88
+ break;
89
+ case "aborted":
90
+ abortedBySignal = true;
91
+ break;
92
+ case "reasoning":
93
+ case "done":
94
+ break;
95
+ }
96
+ });
97
+ child.stderr.on("data", (chunk) => {
98
+ stderr += chunk.toString();
99
+ });
100
+ const payload = {
101
+ sessionId: options.sessionId?.trim() || null,
102
+ model: options.model?.trim() || null,
103
+ provider: options.provider?.trim() || null,
104
+ userMessage: options.userMessage,
105
+ };
106
+ child.stdin.write(`${JSON.stringify(payload)}\n`);
107
+ child.stdin.end();
108
+ try {
109
+ const exitCode = await new Promise((resolve, reject) => {
110
+ child.once("error", reject);
111
+ child.once("close", (code) => resolve(code ?? 0));
112
+ });
113
+ if (abortedBySignal) {
114
+ throw new Error("Hermes agent turn aborted");
115
+ }
116
+ if (explicitError) {
117
+ throw explicitError;
118
+ }
119
+ if (exitCode !== 0) {
120
+ throw new Error(stderr.trim() || `Hermes agent bridge exited with code ${exitCode}`);
121
+ }
122
+ return {
123
+ sessionId,
124
+ fullText,
125
+ };
126
+ }
127
+ finally {
128
+ cleanupAbortTimer();
129
+ stdoutLines.close();
130
+ if (options.signal) {
131
+ options.signal.removeEventListener("abort", abortHandler);
132
+ }
133
+ }
134
+ }
135
+ //# sourceMappingURL=agent-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-bridge.js","sourceRoot":"","sources":["../../src/hermes/agent-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type HermesModelDescriptor = {
2
+ id: string;
3
+ name: string;
4
+ provider: string;
5
+ contextWindow?: number;
6
+ reasoning?: boolean;
7
+ };
8
+ export type HermesModelCatalog = {
9
+ activeProvider?: string;
10
+ defaultModel?: string;
11
+ models: HermesModelDescriptor[];
12
+ };
13
+ export declare function loadHermesModelCatalog(): HermesModelCatalog;
14
+ export declare function readHermesSessionConfiguredModel(sessionId?: string): string | undefined;
@@ -0,0 +1,118 @@
1
+ import { existsSync, readFileSync } from "fs";
2
+ import { homedir } from "os";
3
+ import { join } from "path";
4
+ import { load } from "js-yaml";
5
+ const HERMES_HOME_DIR = join(homedir(), ".hermes");
6
+ const HERMES_CONFIG_PATH = join(HERMES_HOME_DIR, "config.yaml");
7
+ const HERMES_SESSIONS_DIR = join(HERMES_HOME_DIR, "sessions");
8
+ const DEFAULT_CONTEXT_WINDOW = 200_000;
9
+ const PROVIDER_MODEL_CATALOG = {
10
+ anthropic: ["claude-opus-4-6", "claude-sonnet-4-6", "claude-haiku-4-5"],
11
+ "openai-codex": ["gpt-5.4", "gpt-5.4-mini", "o4-mini", "o3"],
12
+ openai: ["gpt-5.4", "gpt-5.4-mini", "o4-mini", "o3", "gpt-4o"],
13
+ google: ["gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-2.5-flash"],
14
+ openrouter: ["openrouter/auto"],
15
+ deepseek: ["deepseek-chat", "deepseek-reasoner"],
16
+ xai: ["grok-4-fast", "grok-4-1-fast"],
17
+ mistral: ["mistral-large-latest", "codestral-latest"],
18
+ groq: ["llama-3.3-70b-versatile", "qwen-qwq-32b"],
19
+ moonshot: ["kimi-k2.5", "kimi-k2-thinking"],
20
+ siliconflow: [],
21
+ minimax: ["MiniMax-M2.7", "MiniMax-M2.7-highspeed"],
22
+ alibaba: ["qwen3.5-plus", "qwen3.6-plus", "qwen3-coder-plus"],
23
+ ollama: [],
24
+ custom: [],
25
+ };
26
+ function normalizeProvider(raw) {
27
+ const value = raw?.trim();
28
+ if (!value)
29
+ return undefined;
30
+ return value.toLowerCase();
31
+ }
32
+ function parseHermesConfig() {
33
+ if (!existsSync(HERMES_CONFIG_PATH))
34
+ return {};
35
+ try {
36
+ const raw = readFileSync(HERMES_CONFIG_PATH, "utf8");
37
+ const parsed = load(raw);
38
+ return typeof parsed === "object" && parsed ? parsed : {};
39
+ }
40
+ catch {
41
+ return {};
42
+ }
43
+ }
44
+ function displayNameForModel(modelId) {
45
+ switch (modelId) {
46
+ case "gpt-5.4":
47
+ return "GPT-5.4";
48
+ case "gpt-5.4-mini":
49
+ return "GPT-5.4 Mini";
50
+ case "o4-mini":
51
+ return "o4-mini";
52
+ case "o3":
53
+ return "o3";
54
+ case "gpt-4o":
55
+ return "GPT-4o";
56
+ case "claude-opus-4-6":
57
+ return "Claude Opus 4.6";
58
+ case "claude-sonnet-4-6":
59
+ return "Claude Sonnet 4.6";
60
+ case "claude-haiku-4-5":
61
+ return "Claude Haiku 4.5";
62
+ default:
63
+ return modelId;
64
+ }
65
+ }
66
+ function reasoningForModel(modelId) {
67
+ return /(^o\d)|thinking|reasoner|sonnet|opus|gpt-5/i.test(modelId);
68
+ }
69
+ function dedupeModels(models) {
70
+ const seen = new Set();
71
+ const output = [];
72
+ for (const model of models) {
73
+ const key = `${model.provider}::${model.id}`;
74
+ if (seen.has(key))
75
+ continue;
76
+ seen.add(key);
77
+ output.push(model);
78
+ }
79
+ return output;
80
+ }
81
+ export function loadHermesModelCatalog() {
82
+ const config = parseHermesConfig();
83
+ const activeProvider = normalizeProvider(config.model?.provider);
84
+ const defaultModel = config.model?.default?.trim() || undefined;
85
+ const curatedModels = activeProvider ? (PROVIDER_MODEL_CATALOG[activeProvider] ?? []) : [];
86
+ const candidates = dedupeModels([...curatedModels, ...(defaultModel ? [defaultModel] : [])]
87
+ .filter((value, index, arr) => value && arr.indexOf(value) === index)
88
+ .map((modelId) => ({
89
+ id: modelId,
90
+ name: displayNameForModel(modelId),
91
+ provider: activeProvider ?? "hermes",
92
+ contextWindow: DEFAULT_CONTEXT_WINDOW,
93
+ reasoning: reasoningForModel(modelId),
94
+ })));
95
+ return {
96
+ activeProvider,
97
+ defaultModel,
98
+ models: candidates,
99
+ };
100
+ }
101
+ export function readHermesSessionConfiguredModel(sessionId) {
102
+ const trimmed = sessionId?.trim();
103
+ if (!trimmed)
104
+ return undefined;
105
+ const sessionPath = join(HERMES_SESSIONS_DIR, `session_${trimmed}.json`);
106
+ if (!existsSync(sessionPath))
107
+ return undefined;
108
+ try {
109
+ const raw = readFileSync(sessionPath, "utf8");
110
+ const parsed = JSON.parse(raw);
111
+ const model = parsed.model?.trim();
112
+ return model || undefined;
113
+ }
114
+ catch {
115
+ return undefined;
116
+ }
117
+ }
118
+ //# sourceMappingURL=model-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-catalog.js","sourceRoot":"","sources":["../../src/hermes/model-catalog.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ type HermesSessionRecord = {
2
2
  hermesSessionId?: string;
3
3
  updatedAtMs: number;
4
4
  modelId?: string;
5
+ agentBridgeVersion?: number;
5
6
  };
6
7
  export declare class HermesSessionStore {
7
8
  private cache;
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/hermes/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/hermes/session-store.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
File without changes
@@ -5,9 +5,10 @@ import { WebSocket } from "ws";
5
5
  import { handleLocalCommand } from "../commands/local-handlers.js";
6
6
  import { handleProviderCommand } from "../commands/provider-handlers.js";
7
7
  import { getServicePlatform } from "../platform/service-manager.js";
8
- import { checkHermesHealth, createHermesJob, deleteHermesJob, listHermesJobs, listHermesModels, pauseHermesJob, resumeHermesJob, runHermesJob, streamHermesChat, updateHermesJob, } from "../hermes/api-client.js";
8
+ import { checkHermesHealth, createHermesJob, deleteHermesJob, listHermesJobs, pauseHermesJob, resumeHermesJob, runHermesJob, updateHermesJob, } from "../hermes/api-client.js";
9
+ import { runHermesAgentTurn } from "../hermes/agent-bridge.js";
10
+ import { loadHermesModelCatalog, readHermesSessionConfiguredModel, } from "../hermes/model-catalog.js";
9
11
  import { HermesSessionStore } from "../hermes/session-store.js";
10
- const DEFAULT_HERMES_MODEL = "hermes-agent";
11
12
  const DEFAULT_CONTEXT_TOKENS = 200_000;
12
13
  const HERMES_CRON_OUTPUT_DIR = join(homedir(), ".hermes", "cron", "output");
13
14
  const HERMES_HOME_DIR = join(homedir(), ".hermes");
@@ -15,6 +16,7 @@ const HERMES_SOUL_PATH = join(HERMES_HOME_DIR, "SOUL.md");
15
16
  const HERMES_HEALTHCHECK_FAST_INTERVAL_MS = 5_000;
16
17
  const HERMES_HEALTHCHECK_SLOW_INTERVAL_MS = 30_000;
17
18
  const HERMES_HEALTHCHECK_MAX_BACKOFF_MS = 30_000;
19
+ const HERMES_AGENT_BRIDGE_VERSION = 1;
18
20
  export async function runHermesRelayManager(opts) {
19
21
  const wsUrl = buildRelayUrl(opts.relayServerUrl, opts.gatewayId, opts.relaySecret);
20
22
  const sessionStore = new HermesSessionStore();
@@ -108,13 +110,15 @@ export async function runHermesRelayManager(opts) {
108
110
  return next;
109
111
  }
110
112
  async function respondModels(requestId) {
111
- const models = await listHermesModels(opts.hermesApiBaseUrl, opts.hermesApiKey);
113
+ const catalog = loadHermesModelCatalog();
112
114
  send({
113
115
  type: "res",
114
116
  id: requestId,
115
117
  ok: true,
116
118
  payload: {
117
- models: models.map((model) => ({
119
+ activeProvider: catalog.activeProvider,
120
+ defaultModel: catalog.defaultModel,
121
+ models: catalog.models.map((model) => ({
118
122
  id: model.id,
119
123
  name: model.name,
120
124
  provider: model.provider,
@@ -153,16 +157,44 @@ export async function runHermesRelayManager(opts) {
153
157
  },
154
158
  });
155
159
  }
160
+ function resolveSessionModelId(sessionKey) {
161
+ const existing = sessionStore.get(sessionKey);
162
+ const fromStore = existing?.modelId?.trim();
163
+ if (fromStore)
164
+ return fromStore;
165
+ const fromSessionFile = readHermesSessionConfiguredModel(existing?.hermesSessionId);
166
+ if (fromSessionFile)
167
+ return fromSessionFile;
168
+ return loadHermesModelCatalog().defaultModel;
169
+ }
170
+ function shouldReuseHermesSessionId(sessionKey) {
171
+ const existing = sessionStore.get(sessionKey);
172
+ const sessionId = existing?.hermesSessionId?.trim();
173
+ if (!sessionId)
174
+ return false;
175
+ if (existing?.agentBridgeVersion === HERMES_AGENT_BRIDGE_VERSION)
176
+ return true;
177
+ if (sessionId.startsWith("api-")) {
178
+ console.log(`[runtime:hermes] resetting legacy API session for ${sessionKey}: ${sessionId}`);
179
+ }
180
+ else {
181
+ console.log(`[runtime:hermes] resetting unversioned Hermes session for ${sessionKey}: ${sessionId}`);
182
+ }
183
+ return false;
184
+ }
156
185
  function respondSessions(requestId) {
157
186
  const sessions = sessionStore.list().map(({ sessionKey, record }) => {
187
+ const resolvedModel = resolveSessionModelId(sessionKey);
158
188
  const snapshot = upsertSessionSnapshot(sessionKey, {
159
- model: record.modelId,
189
+ model: resolvedModel,
160
190
  updatedAt: record.updatedAtMs,
161
191
  });
162
192
  return snapshot;
163
193
  });
164
194
  if (!sessions.some((session) => session.key === "agent:main:main")) {
165
- sessions.unshift(upsertSessionSnapshot("agent:main:main"));
195
+ sessions.unshift(upsertSessionSnapshot("agent:main:main", {
196
+ model: resolveSessionModelId("agent:main:main"),
197
+ }));
166
198
  }
167
199
  send({
168
200
  type: "res",
@@ -178,6 +210,31 @@ export async function runHermesRelayManager(opts) {
178
210
  },
179
211
  });
180
212
  }
213
+ function respondSessionModelSet(requestId, params) {
214
+ const payload = (params ?? {});
215
+ const sessionKey = payload.sessionKey?.trim();
216
+ const modelId = payload.modelId?.trim();
217
+ if (!sessionKey) {
218
+ throw new Error("missing sessionKey");
219
+ }
220
+ const nextRecord = sessionStore.set(sessionKey, {
221
+ modelId: modelId || undefined,
222
+ });
223
+ const resolvedModel = modelId || resolveSessionModelId(sessionKey);
224
+ const snapshot = upsertSessionSnapshot(sessionKey, {
225
+ model: resolvedModel,
226
+ updatedAt: nextRecord.updatedAtMs,
227
+ });
228
+ send({
229
+ type: "res",
230
+ id: requestId,
231
+ ok: true,
232
+ payload: {
233
+ ok: true,
234
+ session: snapshot,
235
+ },
236
+ });
237
+ }
181
238
  async function respondTodayCronMessages(requestId) {
182
239
  const now = new Date();
183
240
  const jobs = await listHermesJobs(opts.hermesApiBaseUrl, opts.hermesApiKey);
@@ -331,17 +388,21 @@ export async function runHermesRelayManager(opts) {
331
388
  activeRuns.set(runId, controller);
332
389
  activeRunBySessionKey.set(sessionKey, runId);
333
390
  const existing = sessionStore.get(sessionKey);
334
- const nextModel = existing?.modelId ?? DEFAULT_HERMES_MODEL;
391
+ const reusableSessionId = shouldReuseHermesSessionId(sessionKey)
392
+ ? existing?.hermesSessionId
393
+ : undefined;
394
+ const nextModel = resolveSessionModelId(sessionKey);
335
395
  upsertSessionSnapshot(sessionKey, { state: "running", model: nextModel });
396
+ let accumulatedText = "";
336
397
  try {
337
- const result = await streamHermesChat({
338
- baseUrl: opts.hermesApiBaseUrl,
339
- apiKey: opts.hermesApiKey,
340
- sessionId: existing?.hermesSessionId,
398
+ const result = await runHermesAgentTurn({
399
+ sessionId: reusableSessionId,
341
400
  model: nextModel,
401
+ provider: loadHermesModelCatalog().activeProvider,
342
402
  userMessage: message,
343
403
  signal: controller.signal,
344
404
  onText: (fullText) => {
405
+ accumulatedText = fullText;
345
406
  const deltaState = "delta";
346
407
  send({
347
408
  type: "event",
@@ -361,10 +422,46 @@ export async function runHermesRelayManager(opts) {
361
422
  },
362
423
  });
363
424
  },
425
+ onToolStart: (event) => {
426
+ send({
427
+ type: "event",
428
+ event: "agent",
429
+ payload: {
430
+ stream: "tool",
431
+ runId,
432
+ sessionKey,
433
+ data: {
434
+ toolCallId: event.toolCallId,
435
+ name: event.name,
436
+ phase: "started",
437
+ args: event.args ?? {},
438
+ },
439
+ },
440
+ });
441
+ },
442
+ onToolComplete: (event) => {
443
+ send({
444
+ type: "event",
445
+ event: "agent",
446
+ payload: {
447
+ stream: "tool",
448
+ runId,
449
+ sessionKey,
450
+ data: {
451
+ toolCallId: event.toolCallId,
452
+ name: event.name,
453
+ phase: "result",
454
+ args: event.args ?? {},
455
+ result: event.result ?? "",
456
+ },
457
+ },
458
+ });
459
+ },
364
460
  });
365
461
  sessionStore.set(sessionKey, {
366
462
  hermesSessionId: result.sessionId,
367
- modelId: nextModel,
463
+ modelId: nextModel || undefined,
464
+ agentBridgeVersion: HERMES_AGENT_BRIDGE_VERSION,
368
465
  });
369
466
  upsertSessionSnapshot(sessionKey, { state: "idle", model: nextModel });
370
467
  const finalState = "final";
@@ -379,7 +476,7 @@ export async function runHermesRelayManager(opts) {
379
476
  content: [
380
477
  {
381
478
  type: "text",
382
- text: result.fullText,
479
+ text: result.fullText || accumulatedText,
383
480
  },
384
481
  ],
385
482
  },
@@ -478,6 +575,10 @@ export async function runHermesRelayManager(opts) {
478
575
  if (requestId)
479
576
  respondSessions(requestId);
480
577
  return;
578
+ case "session.model.set":
579
+ if (requestId)
580
+ respondSessionModelSet(requestId, msg.params ?? {});
581
+ return;
481
582
  case "cron.list":
482
583
  if (requestId)
483
584
  await respondCronList(requestId);
@@ -1 +1 @@
1
- {"version":3,"file":"hermes-relay-manager.js","sourceRoot":"","sources":["../../src/relay/hermes-relay-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hermes-relay-manager.js","sourceRoot":"","sources":["../../src/relay/hermes-relay-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rethinkingstudio/clawpilot",
3
- "version": "2.1.2",
3
+ "version": "2.1.3-beta.1",
4
4
  "description": "ClawAI relay client for Mac mini",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,12 +24,14 @@
24
24
  "dependencies": {
25
25
  "commander": "^12.1.0",
26
26
  "execa": "^9.6.1",
27
+ "js-yaml": "^4.1.1",
27
28
  "node-windows": "^1.0.0-beta.8",
28
29
  "pm2": "^6.0.14",
29
30
  "qrcode-terminal": "^0.12.0",
30
31
  "ws": "^8.18.0"
31
32
  },
32
33
  "devDependencies": {
34
+ "@types/js-yaml": "^4.0.9",
33
35
  "@types/node": "^22.0.0",
34
36
  "@types/qrcode-terminal": "^0.12.1",
35
37
  "@types/ws": "^8.5.12",
@@ -0,0 +1,239 @@
1
+ #!/usr/bin/env python3
2
+ """Run a single Hermes AIAgent turn and emit NDJSON events on stdout."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import json
7
+ import sys
8
+ import traceback
9
+ from pathlib import Path
10
+ from typing import Any, Dict, List, Optional
11
+
12
+ from hermes_cli.config import load_config
13
+ from hermes_cli.runtime_provider import resolve_runtime_provider
14
+ from hermes_cli.tools_config import _get_platform_tools
15
+ from hermes_state import SessionDB
16
+ from run_agent import AIAgent
17
+
18
+
19
+ _API_SAFE_MSG_KEYS = {"role", "content", "tool_calls", "tool_call_id", "name", "refusal"}
20
+ _HERMES_HOME = Path.home() / ".hermes"
21
+ _SESSIONS_DIR = _HERMES_HOME / "sessions"
22
+
23
+
24
+ def emit(event: Dict[str, Any]) -> None:
25
+ sys.stdout.write(json.dumps(event, ensure_ascii=False) + "\n")
26
+ sys.stdout.flush()
27
+
28
+
29
+ def read_input() -> Dict[str, Any]:
30
+ raw = sys.stdin.read()
31
+ if not raw.strip():
32
+ raise ValueError("missing bridge payload")
33
+ payload = json.loads(raw)
34
+ if not isinstance(payload, dict):
35
+ raise ValueError("bridge payload must be a JSON object")
36
+ return payload
37
+
38
+
39
+ def sanitize_messages_for_api(messages: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
40
+ valid_tool_call_ids: set[str] = set()
41
+ for msg in messages:
42
+ if not isinstance(msg, dict):
43
+ continue
44
+ if msg.get("role") == "assistant":
45
+ for tc in msg.get("tool_calls") or []:
46
+ if isinstance(tc, dict):
47
+ tid = tc.get("id") or tc.get("call_id") or ""
48
+ if tid:
49
+ valid_tool_call_ids.add(str(tid))
50
+
51
+ clean: List[Dict[str, Any]] = []
52
+ for msg in messages:
53
+ if not isinstance(msg, dict):
54
+ continue
55
+ role = msg.get("role")
56
+ if role == "tool":
57
+ tid = str(msg.get("tool_call_id") or "")
58
+ if not tid or tid not in valid_tool_call_ids:
59
+ continue
60
+ sanitized = {k: v for k, v in msg.items() if k in _API_SAFE_MSG_KEYS}
61
+ if sanitized.get("role"):
62
+ clean.append(sanitized)
63
+ return clean
64
+
65
+
66
+ def read_session_history(session_id: Optional[str]) -> List[Dict[str, Any]]:
67
+ trimmed = str(session_id or "").strip()
68
+ if not trimmed:
69
+ return []
70
+ session_path = _SESSIONS_DIR / f"session_{trimmed}.json"
71
+ if not session_path.exists():
72
+ return []
73
+ try:
74
+ payload = json.loads(session_path.read_text(encoding="utf-8"))
75
+ except Exception:
76
+ return []
77
+ raw_messages = payload.get("messages")
78
+ if not isinstance(raw_messages, list):
79
+ return []
80
+ return sanitize_messages_for_api(raw_messages)
81
+
82
+
83
+ def resolve_runtime(requested_provider: Optional[str]) -> Dict[str, Any]:
84
+ requested = str(requested_provider or "").strip() or None
85
+ return resolve_runtime_provider(requested=requested)
86
+
87
+
88
+ def derive_agent_inputs(payload: Dict[str, Any]) -> Dict[str, Any]:
89
+ user_message = str(payload.get("userMessage") or "").strip()
90
+ if not user_message:
91
+ raise ValueError("missing userMessage")
92
+
93
+ session_id = str(payload.get("sessionId") or "").strip() or None
94
+ model = str(payload.get("model") or "").strip() or None
95
+ provider = str(payload.get("provider") or "").strip() or None
96
+
97
+ cfg = load_config()
98
+ model_cfg = cfg.get("model", {}) if isinstance(cfg, dict) else {}
99
+ default_model = model or str(model_cfg.get("default") or "").strip() or None
100
+ if not default_model:
101
+ raise ValueError("missing model")
102
+
103
+ runtime = resolve_runtime(provider or model_cfg.get("provider"))
104
+ toolsets = list(_get_platform_tools(cfg, "cli"))
105
+
106
+ history = read_session_history(session_id)
107
+ return {
108
+ "user_message": user_message,
109
+ "session_id": session_id,
110
+ "model": default_model,
111
+ "provider": runtime.get("provider"),
112
+ "base_url": runtime.get("base_url"),
113
+ "api_key": runtime.get("api_key"),
114
+ "api_mode": runtime.get("api_mode"),
115
+ "acp_command": runtime.get("command"),
116
+ "acp_args": runtime.get("args"),
117
+ "credential_pool": runtime.get("credential_pool"),
118
+ "toolsets": toolsets,
119
+ "history": history,
120
+ }
121
+
122
+
123
+ def extract_final_text(result: Dict[str, Any], accumulated: str) -> str:
124
+ final_text = str(result.get("final_response") or "").strip()
125
+ if final_text:
126
+ return final_text
127
+ messages = result.get("messages")
128
+ if isinstance(messages, list):
129
+ for msg in reversed(messages):
130
+ if isinstance(msg, dict) and msg.get("role") == "assistant":
131
+ content = str(msg.get("content") or "").strip()
132
+ if content:
133
+ return content
134
+ return accumulated
135
+
136
+
137
+ def main() -> int:
138
+ try:
139
+ payload = read_input()
140
+ agent_inputs = derive_agent_inputs(payload)
141
+ accumulated_text = ""
142
+
143
+ def on_token(text: Optional[str]) -> None:
144
+ nonlocal accumulated_text
145
+ if text is None:
146
+ return
147
+ chunk = str(text)
148
+ accumulated_text += chunk
149
+ emit({"type": "assistant_delta", "text": chunk})
150
+
151
+ def on_reasoning(text: Optional[str]) -> None:
152
+ if text is None:
153
+ return
154
+ emit({"type": "reasoning", "text": str(text)})
155
+
156
+ def on_tool_start(tool_call_id: str, name: str, args: Dict[str, Any]) -> None:
157
+ emit(
158
+ {
159
+ "type": "tool_start",
160
+ "toolCallId": tool_call_id,
161
+ "name": name,
162
+ "args": args,
163
+ }
164
+ )
165
+
166
+ def on_tool_complete(
167
+ tool_call_id: str, name: str, args: Dict[str, Any], result: Any
168
+ ) -> None:
169
+ emit(
170
+ {
171
+ "type": "tool_complete",
172
+ "toolCallId": tool_call_id,
173
+ "name": name,
174
+ "args": args,
175
+ "result": "" if result is None else str(result),
176
+ }
177
+ )
178
+
179
+ agent = AIAgent(
180
+ model=agent_inputs["model"],
181
+ provider=agent_inputs["provider"],
182
+ base_url=agent_inputs["base_url"],
183
+ api_key=agent_inputs["api_key"],
184
+ api_mode=agent_inputs["api_mode"],
185
+ acp_command=agent_inputs["acp_command"],
186
+ acp_args=agent_inputs["acp_args"],
187
+ credential_pool=agent_inputs["credential_pool"],
188
+ platform="cli",
189
+ quiet_mode=True,
190
+ enabled_toolsets=agent_inputs["toolsets"],
191
+ session_id=agent_inputs["session_id"],
192
+ session_db=SessionDB(),
193
+ stream_delta_callback=on_token,
194
+ reasoning_callback=on_reasoning,
195
+ tool_start_callback=on_tool_start,
196
+ tool_complete_callback=on_tool_complete,
197
+ )
198
+
199
+ emit(
200
+ {
201
+ "type": "session",
202
+ "sessionId": agent.session_id,
203
+ "model": agent.model,
204
+ "provider": agent.provider,
205
+ }
206
+ )
207
+
208
+ result = agent.run_conversation(
209
+ user_message=agent_inputs["user_message"],
210
+ conversation_history=agent_inputs["history"],
211
+ task_id=agent.session_id,
212
+ persist_user_message=agent_inputs["user_message"],
213
+ )
214
+ final_text = extract_final_text(result, accumulated_text)
215
+ emit(
216
+ {
217
+ "type": "assistant_final",
218
+ "sessionId": agent.session_id,
219
+ "text": final_text,
220
+ }
221
+ )
222
+ emit({"type": "done", "sessionId": agent.session_id})
223
+ return 0
224
+ except KeyboardInterrupt:
225
+ emit({"type": "aborted", "message": "Hermes agent bridge interrupted"})
226
+ return 130
227
+ except Exception as exc:
228
+ emit(
229
+ {
230
+ "type": "error",
231
+ "message": str(exc),
232
+ "traceback": traceback.format_exc(),
233
+ }
234
+ )
235
+ return 1
236
+
237
+
238
+ if __name__ == "__main__":
239
+ raise SystemExit(main())