@winmatrix/agent-sdk 1.0.3 → 1.0.5
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/adapters/claude/ClaudeAdapter.d.ts +60 -1
- package/dist/adapters/claude/ClaudeAdapter.d.ts.map +1 -1
- package/dist/adapters/claude/ClaudeAdapter.js +404 -84
- package/dist/adapters/claude/ClaudeAdapter.js.map +1 -1
- package/dist/adapters/claude/ClaudeInvocationUsageTracker.d.ts +17 -0
- package/dist/adapters/claude/ClaudeInvocationUsageTracker.d.ts.map +1 -0
- package/dist/adapters/claude/ClaudeInvocationUsageTracker.js +79 -0
- package/dist/adapters/claude/ClaudeInvocationUsageTracker.js.map +1 -0
- package/dist/adapters/claude/ClaudeStreamParser.d.ts +19 -0
- package/dist/adapters/claude/ClaudeStreamParser.d.ts.map +1 -1
- package/dist/adapters/claude/ClaudeStreamParser.js +92 -0
- package/dist/adapters/claude/ClaudeStreamParser.js.map +1 -1
- package/dist/adapters/claude/claudeCommand.js +1 -1
- package/dist/adapters/claude/claudeCommand.js.map +1 -1
- package/dist/adapters/codex/CodexAdapter.d.ts +20 -0
- package/dist/adapters/codex/CodexAdapter.d.ts.map +1 -0
- package/dist/adapters/codex/CodexAdapter.js +313 -0
- package/dist/adapters/codex/CodexAdapter.js.map +1 -0
- package/dist/adapters/hermes/HermesAdapter.d.ts +10 -1
- package/dist/adapters/hermes/HermesAdapter.d.ts.map +1 -1
- package/dist/adapters/hermes/HermesAdapter.js +225 -21
- package/dist/adapters/hermes/HermesAdapter.js.map +1 -1
- package/dist/adapters/hermes/HermesInvocationUsageReader.d.ts +26 -0
- package/dist/adapters/hermes/HermesInvocationUsageReader.d.ts.map +1 -0
- package/dist/adapters/hermes/HermesInvocationUsageReader.js +128 -0
- package/dist/adapters/hermes/HermesInvocationUsageReader.js.map +1 -0
- package/dist/adapters/openclaw/OpenClawAdapter.d.ts +12 -37
- package/dist/adapters/openclaw/OpenClawAdapter.d.ts.map +1 -1
- package/dist/adapters/openclaw/OpenClawAdapter.js +191 -635
- package/dist/adapters/openclaw/OpenClawAdapter.js.map +1 -1
- package/dist/core/AgentAdapter.d.ts +75 -1
- package/dist/core/AgentAdapter.d.ts.map +1 -1
- package/dist/core/AgentAdapter.js +25 -0
- package/dist/core/AgentAdapter.js.map +1 -1
- package/dist/core/RuntimeDetector.d.ts.map +1 -1
- package/dist/core/RuntimeDetector.js +52 -19
- package/dist/core/RuntimeDetector.js.map +1 -1
- package/dist/core/WinMatrixAgentClient.d.ts +30 -4
- package/dist/core/WinMatrixAgentClient.d.ts.map +1 -1
- package/dist/core/WinMatrixAgentClient.js +122 -12
- package/dist/core/WinMatrixAgentClient.js.map +1 -1
- package/dist/index.d.ts +15 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -19
- package/dist/index.js.map +1 -1
- package/dist/observability/WorkstationTokenUsageRecorder.d.ts +54 -0
- package/dist/observability/WorkstationTokenUsageRecorder.d.ts.map +1 -0
- package/dist/observability/WorkstationTokenUsageRecorder.js +264 -0
- package/dist/observability/WorkstationTokenUsageRecorder.js.map +1 -0
- package/dist/utils/envSanitizer.d.ts +38 -0
- package/dist/utils/envSanitizer.d.ts.map +1 -0
- package/dist/utils/envSanitizer.js +94 -0
- package/dist/utils/envSanitizer.js.map +1 -0
- package/dist/utils/errorClassification.d.ts +26 -0
- package/dist/utils/errorClassification.d.ts.map +1 -0
- package/dist/utils/errorClassification.js +52 -0
- package/dist/utils/errorClassification.js.map +1 -0
- package/dist/utils/processUtils.d.ts +10 -0
- package/dist/utils/processUtils.d.ts.map +1 -1
- package/dist/utils/processUtils.js +42 -9
- package/dist/utils/processUtils.js.map +1 -1
- package/dist/utils/resumeFallback.d.ts +4 -0
- package/dist/utils/resumeFallback.d.ts.map +1 -0
- package/dist/utils/resumeFallback.js +65 -0
- package/dist/utils/resumeFallback.js.map +1 -0
- package/package.json +8 -4
- package/dist/adapters/openclaw/unwrapOpenClawPayloads.d.ts +0 -6
- package/dist/adapters/openclaw/unwrapOpenClawPayloads.d.ts.map +0 -1
- package/dist/adapters/openclaw/unwrapOpenClawPayloads.js +0 -24
- package/dist/adapters/openclaw/unwrapOpenClawPayloads.js.map +0 -1
- package/dist/runtime/DualRuntimeBridge.d.ts +0 -38
- package/dist/runtime/DualRuntimeBridge.d.ts.map +0 -1
- package/dist/runtime/DualRuntimeBridge.js +0 -321
- package/dist/runtime/DualRuntimeBridge.js.map +0 -1
- package/dist/runtime/bridgeConfigLoader.d.ts +0 -14
- package/dist/runtime/bridgeConfigLoader.d.ts.map +0 -1
- package/dist/runtime/bridgeConfigLoader.js +0 -133
- package/dist/runtime/bridgeConfigLoader.js.map +0 -1
- package/dist/runtime/bridgeConfigTypes.d.ts +0 -26
- package/dist/runtime/bridgeConfigTypes.d.ts.map +0 -1
- package/dist/runtime/bridgeConfigTypes.js +0 -6
- package/dist/runtime/bridgeConfigTypes.js.map +0 -1
- package/dist/runtime/bridgeHome.d.ts +0 -19
- package/dist/runtime/bridgeHome.d.ts.map +0 -1
- package/dist/runtime/bridgeHome.js +0 -61
- package/dist/runtime/bridgeHome.js.map +0 -1
- package/dist/runtime/bridgeReconnectPolicy.d.ts +0 -8
- package/dist/runtime/bridgeReconnectPolicy.d.ts.map +0 -1
- package/dist/runtime/bridgeReconnectPolicy.js +0 -16
- package/dist/runtime/bridgeReconnectPolicy.js.map +0 -1
- package/dist/runtime/bridgeTaskJournal.d.ts +0 -7
- package/dist/runtime/bridgeTaskJournal.d.ts.map +0 -1
- package/dist/runtime/bridgeTaskJournal.js +0 -66
- package/dist/runtime/bridgeTaskJournal.js.map +0 -1
- package/dist/runtime/localRuntimeAvailabilityMonitor.d.ts +0 -22
- package/dist/runtime/localRuntimeAvailabilityMonitor.d.ts.map +0 -1
- package/dist/runtime/localRuntimeAvailabilityMonitor.js +0 -81
- package/dist/runtime/localRuntimeAvailabilityMonitor.js.map +0 -1
- package/dist/runtime/runDualRuntimeBridge.d.ts +0 -2
- package/dist/runtime/runDualRuntimeBridge.d.ts.map +0 -1
- package/dist/runtime/runDualRuntimeBridge.js +0 -32
- package/dist/runtime/runDualRuntimeBridge.js.map +0 -1
|
@@ -5,11 +5,46 @@
|
|
|
5
5
|
* 会话数据存储在 ~/.hermes/state.db SQLite 中。
|
|
6
6
|
*/
|
|
7
7
|
import { spawn } from 'node:child_process';
|
|
8
|
-
import { existsSync, readdirSync } from 'node:fs';
|
|
8
|
+
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
9
9
|
import { join } from 'node:path';
|
|
10
10
|
import { homedir } from 'node:os';
|
|
11
11
|
import { parseSkillMd } from '../../utils/parseSkillMd.js';
|
|
12
12
|
import { waitForExit, killProcess } from '../../utils/processUtils.js';
|
|
13
|
+
import { sanitizeTaskEnv } from '../../utils/envSanitizer.js';
|
|
14
|
+
import { executeWithResumeFallback } from '../../utils/resumeFallback.js';
|
|
15
|
+
import { classifyAdapterError } from '../../utils/errorClassification.js';
|
|
16
|
+
import { captureHermesMessageHighWatermark, readHermesInvocationUsageAfter, } from './HermesInvocationUsageReader.js';
|
|
17
|
+
/** 展开路径中的 `~`(Node spawn 不自动展开,字面 `~` 会导致 ENOENT) */
|
|
18
|
+
function expandHome(p) {
|
|
19
|
+
if (p === '~')
|
|
20
|
+
return homedir();
|
|
21
|
+
if (p.startsWith('~/'))
|
|
22
|
+
return join(homedir(), p.slice(2));
|
|
23
|
+
return p;
|
|
24
|
+
}
|
|
25
|
+
/** hermes --verbose 的启动/工具加载/python logging 噪声,不应推给前端 content(否则一屏工具列表 + 日志刷屏) */
|
|
26
|
+
function isHermesStartupNoise(line) {
|
|
27
|
+
// python logging 格式(HH:MM:SS - logger - LEVEL - msg)—— hermes --verbose 把内部日志全输出到 stdout,最大噪声源
|
|
28
|
+
if (/^\d{2}:\d{2}:\d{2}\s+-\s+\S+\s+-\s+(DEBUG|INFO|WARNING|ERROR|CRITICAL)\s+-/i.test(line)) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
// 启动/工具加载/session 统计关键词
|
|
32
|
+
if (/^(Initializing|Enabled toolset|Final tool selection|Loaded \d+ tools|Using (custom base URL|API key)|Starting conversation|Context limit|Some tools may work|AI Agent initialized|Executing|Query:|Selected |Resume this session|hermes --resume |Session:\s|Duration:\s|Messages:\s)/i.test(line)) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
// emoji / 符号开头(各种状态/工具/思考 emoji,Unicode 范围覆盖 🔑🤖🔗✅⚠️📊💬🤔📋🔧🛠 等,避免逐个枚举漏)
|
|
36
|
+
if (/^[\u{1F300}-\u{1FAFF}\u{2600}-\u{27BF}✅⚠️📊💬🤔🤖🔗🔑📋🔧🛠]/u.test(line)) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
// 逗号分隔的工具名列表行(如 "browser_back, browser_click, mcp_winmatrix_...")
|
|
40
|
+
if (/^[a-z0-9_]+(,\s*[a-z0-9_]+){8,}/.test(line)) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
function extractHermesSessionId(line) {
|
|
46
|
+
return line.match(/^session(?:\s+id)?[:=]\s*([\w-]+)$/i)?.[1];
|
|
47
|
+
}
|
|
13
48
|
export class HermesAdapter {
|
|
14
49
|
meta = {
|
|
15
50
|
agentType: 'hermes',
|
|
@@ -18,7 +53,9 @@ export class HermesAdapter {
|
|
|
18
53
|
streaming: true,
|
|
19
54
|
toolCall: true,
|
|
20
55
|
session: true,
|
|
21
|
-
cancellation:
|
|
56
|
+
cancellation: true,
|
|
57
|
+
supportsCancel: true,
|
|
58
|
+
supportsResume: true,
|
|
22
59
|
},
|
|
23
60
|
tools: [],
|
|
24
61
|
skills: [],
|
|
@@ -27,20 +64,36 @@ export class HermesAdapter {
|
|
|
27
64
|
hermesPath;
|
|
28
65
|
mcpBridgeUrl;
|
|
29
66
|
mcpApiKey;
|
|
67
|
+
workstationId;
|
|
68
|
+
tokenUsageRecorder;
|
|
30
69
|
constructor(config) {
|
|
31
70
|
const opts = config;
|
|
32
|
-
this.hermesPath = opts?.hermesPath ?? 'hermes';
|
|
71
|
+
this.hermesPath = expandHome(opts?.hermesPath ?? 'hermes');
|
|
33
72
|
this.mcpBridgeUrl = opts?.mcpBridgeUrl;
|
|
34
73
|
this.mcpApiKey = opts?.mcpApiKey;
|
|
74
|
+
this.workstationId = opts?.workstationId;
|
|
75
|
+
this.tokenUsageRecorder = opts?.tokenUsageRecorder;
|
|
35
76
|
}
|
|
36
77
|
// ── execute ──
|
|
37
78
|
async *execute(task, signal) {
|
|
79
|
+
yield* executeWithResumeFallback(task, signal, (nextTask, nextSignal) => this.executeOnce(nextTask, nextSignal));
|
|
80
|
+
}
|
|
81
|
+
async *executeOnce(task, signal) {
|
|
38
82
|
const workDir = task.workDir;
|
|
39
83
|
if (workDir && !existsSync(workDir)) {
|
|
40
|
-
yield {
|
|
84
|
+
yield {
|
|
85
|
+
type: 'error',
|
|
86
|
+
message: `Work directory does not exist: ${workDir}`,
|
|
87
|
+
code: 'cli_crash',
|
|
88
|
+
retryable: false,
|
|
89
|
+
};
|
|
41
90
|
return;
|
|
42
91
|
}
|
|
43
92
|
const args = ['chat'];
|
|
93
|
+
const usageDb = this.tokenUsageRecorder
|
|
94
|
+
? await this.openStateDb()
|
|
95
|
+
: null;
|
|
96
|
+
const usageHighWatermark = usageDb ? captureHermesMessageHighWatermark(usageDb) : 0;
|
|
44
97
|
// Non-interactive prompt:systemPrompt 拼接到 input 前方(Hermes 不支持独立 system prompt 参数)
|
|
45
98
|
const queryInput = task.systemPrompt
|
|
46
99
|
? `${task.systemPrompt}\n\n---\n\n${task.input}`
|
|
@@ -48,7 +101,10 @@ export class HermesAdapter {
|
|
|
48
101
|
if (queryInput) {
|
|
49
102
|
args.push('--query', queryInput);
|
|
50
103
|
}
|
|
51
|
-
|
|
104
|
+
// 不加 --verbose(会输出 python logging + 工具列表刷屏)也不加 -Q/--quiet(只最终回答,丢中间过程)。
|
|
105
|
+
// 用 hermes 默认 quiet mode:有工具执行 feed(┊ 💻 preparing terminal / ┊ 💻 $ cmd)+ 思考动画 + 最终回答,
|
|
106
|
+
// 且抑制 verbose logging(无 python logging / 工具列表噪声)。这是中间过程 + 无噪声的理想模式。
|
|
107
|
+
// (详见 https://hermes-agent.nousresearch.com/docs/user-guide/cli § Quiet Mode / Tool execution feed)
|
|
52
108
|
// Session management
|
|
53
109
|
let sessionId;
|
|
54
110
|
const isOneshot = task.mode === 'oneshot';
|
|
@@ -73,7 +129,11 @@ export class HermesAdapter {
|
|
|
73
129
|
args.push('--model', task.hermes.model);
|
|
74
130
|
}
|
|
75
131
|
// Build env with MCP bridge config(per-task token 优先)
|
|
76
|
-
|
|
132
|
+
// 先剥凭据后显式加(harden-external-computer-daemon P1/D3)
|
|
133
|
+
const { env, strippedKeys } = sanitizeTaskEnv(task.env);
|
|
134
|
+
if (strippedKeys.length > 0) {
|
|
135
|
+
console.warn(`[HermesAdapter] 已剥离 ${strippedKeys.length} 个凭据形态环境变量(仅列 key 名): ${strippedKeys.join(', ')}`);
|
|
136
|
+
}
|
|
77
137
|
if (this.mcpBridgeUrl) {
|
|
78
138
|
env.HERMES_MCP_SERVER_URL = this.mcpBridgeUrl;
|
|
79
139
|
const effectiveToken = task.mcpToken ?? this.mcpApiKey;
|
|
@@ -84,14 +144,25 @@ export class HermesAdapter {
|
|
|
84
144
|
// Spawn
|
|
85
145
|
let proc;
|
|
86
146
|
try {
|
|
87
|
-
|
|
147
|
+
const nodeShebangScript = process.platform === 'win32' && existsSync(this.hermesPath) &&
|
|
148
|
+
readFileSync(this.hermesPath, 'utf-8').startsWith('#!/usr/bin/env node');
|
|
149
|
+
proc = spawn(nodeShebangScript ? process.execPath : this.hermesPath, nodeShebangScript
|
|
150
|
+
? [this.hermesPath, ...args]
|
|
151
|
+
: args, {
|
|
88
152
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
89
153
|
env,
|
|
90
154
|
cwd: workDir ?? process.cwd(),
|
|
155
|
+
// POSIX 下独立进程组,killProcess 才能 kill(-pid) 杀整棵树
|
|
156
|
+
detached: process.platform !== 'win32',
|
|
91
157
|
});
|
|
92
158
|
}
|
|
93
159
|
catch (err) {
|
|
94
|
-
yield {
|
|
160
|
+
yield {
|
|
161
|
+
type: 'error',
|
|
162
|
+
message: `Failed to spawn hermes: ${err instanceof Error ? err.message : String(err)}`,
|
|
163
|
+
code: 'cli_crash',
|
|
164
|
+
retryable: false,
|
|
165
|
+
};
|
|
95
166
|
return;
|
|
96
167
|
}
|
|
97
168
|
proc.stdin?.end();
|
|
@@ -104,6 +175,14 @@ export class HermesAdapter {
|
|
|
104
175
|
}
|
|
105
176
|
};
|
|
106
177
|
signal?.addEventListener('abort', onAbort, { once: true });
|
|
178
|
+
// spawn 的 ENOENT 等错误以异步 'error' 事件触发(非同步 throw,try/catch 抓不到)。
|
|
179
|
+
// 必须监听,否则成为 Unhandled 'error' 事件,直接崩掉整个 daemon 进程(影响同 computer 其它 agent)。
|
|
180
|
+
proc.on('error', (err) => {
|
|
181
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
182
|
+
if (!resultText)
|
|
183
|
+
resultText = `Failed to spawn hermes: ${msg}`;
|
|
184
|
+
completed = true;
|
|
185
|
+
});
|
|
107
186
|
try {
|
|
108
187
|
let stdoutBuffer = '';
|
|
109
188
|
let stderrBuffer = '';
|
|
@@ -123,30 +202,90 @@ export class HermesAdapter {
|
|
|
123
202
|
const trimmed = line.trim();
|
|
124
203
|
if (!trimmed)
|
|
125
204
|
continue;
|
|
126
|
-
//
|
|
127
|
-
const
|
|
128
|
-
if (
|
|
129
|
-
extractedSessionId =
|
|
205
|
+
// 只接受明确的 session 行,避免把 "Session not found: not" 误识别成 sessionId=not。
|
|
206
|
+
const sessionIdFromLine = extractHermesSessionId(trimmed);
|
|
207
|
+
if (sessionIdFromLine && !extractedSessionId) {
|
|
208
|
+
extractedSessionId = sessionIdFromLine;
|
|
130
209
|
}
|
|
131
|
-
//
|
|
132
|
-
if (
|
|
133
|
-
yield {
|
|
210
|
+
// [thinking] / 工具执行 feed(┊ 💻 preparing terminal / ┊ 💻 $ cmd)/ 工具指示 → thinking(中间过程,不混进正文 content)
|
|
211
|
+
if (/^\[thinking\]/i.test(trimmed) || trimmed.startsWith('[TOOL') || /┊|🔧|🛠/.test(trimmed)) {
|
|
212
|
+
yield {
|
|
213
|
+
type: 'thinking',
|
|
214
|
+
content: trimmed,
|
|
215
|
+
engineEvent: { type: 'status', text: trimmed },
|
|
216
|
+
};
|
|
217
|
+
continue;
|
|
134
218
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
219
|
+
// 启动/工具加载噪声(--verbose 的 Initializing/Enabled toolset/Final tool selection/
|
|
220
|
+
// Loaded N tools/Using .../✅/⚠️/📊/💬 等,以及逗号分隔的工具名列表)→ 不推 content delta
|
|
221
|
+
if (isHermesStartupNoise(trimmed)) {
|
|
222
|
+
continue;
|
|
138
223
|
}
|
|
224
|
+
// 实际回答 → delta
|
|
225
|
+
resultText += trimmed + '\n';
|
|
226
|
+
yield {
|
|
227
|
+
type: 'delta',
|
|
228
|
+
content: trimmed,
|
|
229
|
+
engineEvent: { type: 'content_delta', text: trimmed },
|
|
230
|
+
};
|
|
139
231
|
}
|
|
140
232
|
}
|
|
141
233
|
// Flush remaining buffer
|
|
142
234
|
if (stdoutBuffer.trim()) {
|
|
143
235
|
resultText += stdoutBuffer.trim() + '\n';
|
|
144
|
-
yield {
|
|
236
|
+
yield {
|
|
237
|
+
type: 'delta',
|
|
238
|
+
content: stdoutBuffer.trim(),
|
|
239
|
+
engineEvent: { type: 'content_delta', text: stdoutBuffer.trim() },
|
|
240
|
+
};
|
|
145
241
|
}
|
|
146
242
|
const exitResult = await waitForExit(proc);
|
|
147
243
|
if (!completed) {
|
|
148
244
|
completed = true;
|
|
149
245
|
if (exitResult.code === 0 || resultText.length > 0) {
|
|
246
|
+
if (this.tokenUsageRecorder) {
|
|
247
|
+
const workstationId = this.workstationId ?? task.env?.WINMATRIX_WORKSTATION_ID ?? process.env.WINMATRIX_WORKSTATION_ID;
|
|
248
|
+
if (!workstationId?.trim()) {
|
|
249
|
+
throw new Error('WORKSTATION_TOKEN_USAGE_WORKSTATION_ID_MISSING');
|
|
250
|
+
}
|
|
251
|
+
const readResult = usageDb
|
|
252
|
+
? readHermesInvocationUsageAfter(usageDb, usageHighWatermark)
|
|
253
|
+
: { supported: false, reason: 'HERMES_INVOCATION_USAGE_UNAVAILABLE', rows: [] };
|
|
254
|
+
if (!readResult.supported || readResult.rows.length === 0) {
|
|
255
|
+
await this.tokenUsageRecorder.recordCoverageGap({
|
|
256
|
+
workstationId,
|
|
257
|
+
runtime: 'hermes',
|
|
258
|
+
reason: 'HERMES_INVOCATION_USAGE_UNAVAILABLE',
|
|
259
|
+
occurredAt: new Date().toISOString(),
|
|
260
|
+
stableSourceReference: task.taskId,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
const provider = task.hermes?.provider ?? process.env.HERMES_INFERENCE_PROVIDER ?? 'hermes';
|
|
265
|
+
for (const usage of readResult.rows) {
|
|
266
|
+
await this.tokenUsageRecorder.recordCompletedInvocation({
|
|
267
|
+
workstationId,
|
|
268
|
+
runtime: 'hermes',
|
|
269
|
+
sourceInvocationId: usage.sourceInvocationId,
|
|
270
|
+
provider,
|
|
271
|
+
startedAt: usage.occurredAt,
|
|
272
|
+
occurredAt: usage.occurredAt,
|
|
273
|
+
timeSource: 'source',
|
|
274
|
+
sessionId: usage.sessionId ?? extractedSessionId ?? sessionId,
|
|
275
|
+
taskId: task.taskId,
|
|
276
|
+
modelUsages: [{
|
|
277
|
+
sourceModelUsageId: `${usage.sourceInvocationId}:model:0`,
|
|
278
|
+
model: usage.model,
|
|
279
|
+
inputTokens: usage.inputTokens,
|
|
280
|
+
outputTokens: usage.outputTokens,
|
|
281
|
+
cacheReadTokens: usage.cacheReadTokens,
|
|
282
|
+
cacheCreationTokens: usage.cacheCreationTokens,
|
|
283
|
+
reasoningTokens: usage.reasoningTokens,
|
|
284
|
+
}],
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
150
289
|
yield {
|
|
151
290
|
type: 'result',
|
|
152
291
|
content: resultText.trim(),
|
|
@@ -155,13 +294,19 @@ export class HermesAdapter {
|
|
|
155
294
|
}
|
|
156
295
|
else {
|
|
157
296
|
const errMsg = stderrBuffer.trim() || exitResult.error || `Hermes exited with code ${exitResult.code}`;
|
|
158
|
-
|
|
297
|
+
const classified = classifyAdapterError({
|
|
298
|
+
message: errMsg,
|
|
299
|
+
exitCode: exitResult.code,
|
|
300
|
+
aborted: signal?.aborted,
|
|
301
|
+
});
|
|
302
|
+
yield { type: 'error', message: errMsg, code: classified.code, retryable: classified.retryable };
|
|
159
303
|
}
|
|
160
304
|
}
|
|
161
305
|
}
|
|
162
306
|
finally {
|
|
163
307
|
signal?.removeEventListener('abort', onAbort);
|
|
164
308
|
killProcess(proc);
|
|
309
|
+
usageDb?.close?.();
|
|
165
310
|
}
|
|
166
311
|
}
|
|
167
312
|
// ── healthCheck ──
|
|
@@ -270,6 +415,52 @@ export class HermesAdapter {
|
|
|
270
415
|
};
|
|
271
416
|
}
|
|
272
417
|
}
|
|
418
|
+
// ── searchSessions ──
|
|
419
|
+
async searchSessions(options) {
|
|
420
|
+
try {
|
|
421
|
+
const listResult = await this.listSessions({ dir: options.dir ?? '', limit: 800 });
|
|
422
|
+
if (listResult.error) {
|
|
423
|
+
return { sessions: [], error: listResult.error };
|
|
424
|
+
}
|
|
425
|
+
const query = options.query.toLowerCase().trim();
|
|
426
|
+
let entries = listResult.sessions.filter((s) => {
|
|
427
|
+
const haystack = [s.id, s.summary, s.projectName, s.cwd].filter(Boolean).join(' ').toLowerCase();
|
|
428
|
+
return haystack.includes(query);
|
|
429
|
+
});
|
|
430
|
+
// Simple offset cursor
|
|
431
|
+
let offset = 0;
|
|
432
|
+
if (options.cursor) {
|
|
433
|
+
try {
|
|
434
|
+
const parsed = Number.parseInt(options.cursor, 10);
|
|
435
|
+
if (!Number.isNaN(parsed))
|
|
436
|
+
offset = Math.max(0, parsed);
|
|
437
|
+
}
|
|
438
|
+
catch { /* ignore invalid cursor */ }
|
|
439
|
+
}
|
|
440
|
+
const limit = Math.min(options.limit ?? 50, 100);
|
|
441
|
+
const sliced = entries.slice(offset, offset + limit);
|
|
442
|
+
const nextCursor = entries.length > offset + limit ? String(offset + limit) : undefined;
|
|
443
|
+
return { sessions: sliced, nextCursor };
|
|
444
|
+
}
|
|
445
|
+
catch (err) {
|
|
446
|
+
return { sessions: [], error: err instanceof Error ? err.message : String(err) };
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
// ── deleteSession ──
|
|
450
|
+
async deleteSession(sessionId, _request) {
|
|
451
|
+
try {
|
|
452
|
+
const db = await this.openStateDb();
|
|
453
|
+
if (!db) {
|
|
454
|
+
return { status: 'rejected', error: 'Cannot open ~/.hermes/state.db' };
|
|
455
|
+
}
|
|
456
|
+
const result = this.mutateStateDb(db, 'DELETE FROM sessions WHERE id = ?', sessionId);
|
|
457
|
+
const changes = typeof result?.changes === 'number' ? result.changes : 0;
|
|
458
|
+
return { status: changes > 0 ? 'deleted' : 'already_deleted' };
|
|
459
|
+
}
|
|
460
|
+
catch (err) {
|
|
461
|
+
return { status: 'rejected', error: err instanceof Error ? err.message : String(err) };
|
|
462
|
+
}
|
|
463
|
+
}
|
|
273
464
|
// ── discoverSkills ──
|
|
274
465
|
async discoverSkills(_context) {
|
|
275
466
|
const result = [];
|
|
@@ -302,7 +493,8 @@ export class HermesAdapter {
|
|
|
302
493
|
}
|
|
303
494
|
// ── state.db helpers ──
|
|
304
495
|
async openStateDb() {
|
|
305
|
-
const
|
|
496
|
+
const hermesHome = process.env.HERMES_HOME?.trim() || join(homedir(), '.hermes');
|
|
497
|
+
const dbPath = join(hermesHome, 'state.db');
|
|
306
498
|
if (!existsSync(dbPath))
|
|
307
499
|
return null;
|
|
308
500
|
// Try node:sqlite (Node >= 22.5)
|
|
@@ -338,5 +530,17 @@ export class HermesAdapter {
|
|
|
338
530
|
}
|
|
339
531
|
return [];
|
|
340
532
|
}
|
|
533
|
+
mutateStateDb(db, sql, ...params) {
|
|
534
|
+
if (typeof db.prepare === 'function') {
|
|
535
|
+
const nodeDb = db;
|
|
536
|
+
try {
|
|
537
|
+
return nodeDb.prepare(sql).run(...params);
|
|
538
|
+
}
|
|
539
|
+
catch {
|
|
540
|
+
return undefined;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
return undefined;
|
|
544
|
+
}
|
|
341
545
|
}
|
|
342
546
|
//# sourceMappingURL=HermesAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HermesAdapter.js","sourceRoot":"","sources":["../../../src/adapters/hermes/HermesAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAgB,WAAW,EAAY,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAuBvE,MAAM,OAAO,aAAa;IACf,IAAI,GAAgB;QAC3B,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,QAAQ;QACjB,YAAY,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,KAAK;SACpB;QACD,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,EAAE;KACnB,CAAC;IAEM,UAAU,CAAS;IACnB,YAAY,CAAU;IACtB,SAAS,CAAU;IAE3B,YAAY,MAAgC;QAC1C,MAAM,IAAI,GAAG,MAA0C,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,QAAQ,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;IACnC,CAAC;IAED,gBAAgB;IAEhB,KAAK,CAAC,CAAC,OAAO,CAAC,IAAsB,EAAE,MAAoB;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,kCAAkC,OAAO,EAAE,EAAE,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAEtB,kFAAkF;QAClF,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY;YAClC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,cAAc,IAAI,CAAC,KAAK,EAAE;YAChD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACf,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvB,qBAAqB;QACrB,IAAI,SAA6B,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;QAE1C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,iEAAiE;YACnE,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,sDAAsD;QACtD,MAAM,GAAG,GAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QACvE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC;YAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;YACvD,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,kBAAkB,GAAG,cAAc,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,IAAkB,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;gBAClC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,GAAG;gBACH,GAAG,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;aAC9B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YAChH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAElB,IAAI,kBAAsC,CAAC;QAC3C,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,4BAA4B;YAC5B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxC,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAO,EAAE,CAAC;gBACvC,IAAI,MAAM,EAAE,OAAO;oBAAE,MAAM;gBAE3B,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACzE,YAAY,IAAI,IAAI,CAAC;gBAErB,yCAAyC;gBACzC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAI,CAAC,OAAO;wBAAE,SAAS;oBAEvB,8CAA8C;oBAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;oBAC7D,IAAI,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxC,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBACvC,CAAC;oBAED,6BAA6B;oBAC7B,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;oBAC/C,CAAC;yBAAM,CAAC;wBACN,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC;wBAC7B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxB,UAAU,IAAI,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;gBACzC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBAEjB,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnD,MAAM;wBACJ,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE;wBAC1B,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,SAAS,CAAC;qBACrE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,KAAK,IAAI,2BAA2B,UAAU,CAAC,IAAI,EAAE,CAAC;oBACvG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,oBAAoB;IAEpB,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,EAAE;gBACjD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,OAAO,EAAE,MAAM;aAChB,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3E,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACvB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAqC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IAErB,KAAK,CAAC,YAAY,CAAC,OAA2B;QAC5C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;YACnE,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,OAAO,GAAoB,IAAuC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACrF,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC1C,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAClE,SAAS,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC1E,cAAc,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;gBAC/E,YAAY,EAAE,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gBACnF,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aAChE,CAAC,CAAC,CAAC;YAEJ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpB,MAAM,EAAE,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;gBAClD,OAAO,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACnF,CAAC;IACH,CAAC;IAED,mBAAmB;IAEnB,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,UAAgC,EAAE;QACpE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO;oBACL,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;oBAC1B,YAAY,EAAE,CAAC;oBACf,SAAS,EAAE,KAAK;oBAChB,WAAW,EAAE,EAAE;oBACf,aAAa,EAAE,EAAE;oBACjB,iBAAiB,EAAE,EAAE;oBACrB,KAAK,EAAE,gCAAgC;iBACxC,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAsC,CAAC;YACxD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC;YACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC;YAE/C,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,iBAAiB,GAAG,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAa,EAAE,CAAC;YAEjC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACpC,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5F,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,aAAa,IAAI,OAAO,GAAG,IAAI,CAAC;oBAChC,iBAAiB,GAAG,OAAO,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBAC1B,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,SAAS,EAAE,QAAQ,CAAC,MAAM,IAAI,YAAY;gBAC1C,WAAW;gBACX,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE;gBACnC,iBAAiB;gBACjB,WAAW,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC9D,mBAAmB,EAAE,OAAO,CAAC,kBAAkB,KAAK,IAAI;aACzD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBAC1B,YAAY,EAAE,CAAC;gBACf,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,EAAE;gBACf,aAAa,EAAE,EAAE;gBACjB,iBAAiB,EAAE,EAAE;gBACrB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uBAAuB;IAEvB,KAAK,CAAC,cAAc,CAAC,QAA8B;QACjD,MAAM,MAAM,GAAsF,EAAE,CAAC;QACrG,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB,CAC3B,GAAW,EACX,GAAsF;QAEtF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC5C,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACvD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACtC,IAAI,MAAM,EAAE,CAAC;wBACX,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACjC,CAAC;IAED,yBAAyB;IAEjB,KAAK,CAAC,WAAW;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAErC,iCAAiC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAC3C,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EAAW,EAAE,IAAyB,EAAE,SAAkB;QACnF,kCAAkC;QAClC,IAAI,OAAQ,EAA4B,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,MAAM,GAAG,EAAgF,CAAC;YAChG,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,OAAO,MAAM,CAAC,OAAO,CACnB,0GAA0G,CAC3G,CAAC,GAAG,EAAE,CAAC;gBACV,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,MAAM,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,OAAO,MAAM,CAAC,OAAO,CACnB,6EAA6E,CAC9E,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"HermesAdapter.js","sourceRoot":"","sources":["../../../src/adapters/hermes/HermesAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface HermesStateDatabase {
|
|
2
|
+
prepare(sql: string): {
|
|
3
|
+
all(...params: unknown[]): unknown[];
|
|
4
|
+
get(...params: unknown[]): unknown;
|
|
5
|
+
};
|
|
6
|
+
close?(): void;
|
|
7
|
+
}
|
|
8
|
+
export interface HermesInvocationUsageRow {
|
|
9
|
+
sourceInvocationId: string;
|
|
10
|
+
sessionId?: string;
|
|
11
|
+
model: string;
|
|
12
|
+
occurredAt: string;
|
|
13
|
+
inputTokens: number;
|
|
14
|
+
outputTokens: number;
|
|
15
|
+
cacheReadTokens: number;
|
|
16
|
+
cacheCreationTokens: number;
|
|
17
|
+
reasoningTokens: number;
|
|
18
|
+
}
|
|
19
|
+
export interface HermesInvocationUsageReadResult {
|
|
20
|
+
supported: boolean;
|
|
21
|
+
reason?: 'HERMES_INVOCATION_USAGE_UNAVAILABLE';
|
|
22
|
+
rows: HermesInvocationUsageRow[];
|
|
23
|
+
}
|
|
24
|
+
export declare function captureHermesMessageHighWatermark(db: HermesStateDatabase): number;
|
|
25
|
+
export declare function readHermesInvocationUsageAfter(db: HermesStateDatabase, afterRowId: number): HermesInvocationUsageReadResult;
|
|
26
|
+
//# sourceMappingURL=HermesInvocationUsageReader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HermesInvocationUsageReader.d.ts","sourceRoot":"","sources":["../../../src/adapters/hermes/HermesInvocationUsageReader.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAAC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;IACnG,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,qCAAqC,CAAC;IAC/C,IAAI,EAAE,wBAAwB,EAAE,CAAC;CAClC;AAgED,wBAAgB,iCAAiC,CAAC,EAAE,EAAE,mBAAmB,GAAG,MAAM,CASjF;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,mBAAmB,EACvB,UAAU,EAAE,MAAM,GACjB,+BAA+B,CA2DjC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
function pick(columns, ...candidates) {
|
|
2
|
+
return candidates.find((candidate) => columns.has(candidate));
|
|
3
|
+
}
|
|
4
|
+
function quoteIdentifier(identifier) {
|
|
5
|
+
return `"${identifier.replaceAll('"', '""')}"`;
|
|
6
|
+
}
|
|
7
|
+
function readNonNegativeInteger(value) {
|
|
8
|
+
if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0)
|
|
9
|
+
return null;
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
function readTimestamp(value) {
|
|
13
|
+
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
14
|
+
const millis = value < 10_000_000_000 ? value * 1000 : value;
|
|
15
|
+
const date = new Date(millis);
|
|
16
|
+
return Number.isFinite(date.getTime()) ? date.toISOString() : null;
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === 'string' && Number.isFinite(Date.parse(value))) {
|
|
19
|
+
return new Date(value).toISOString();
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
function resolveColumns(db) {
|
|
24
|
+
let rows;
|
|
25
|
+
try {
|
|
26
|
+
rows = db.prepare('PRAGMA table_info(messages)').all();
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const columns = new Set(rows.flatMap((row) => {
|
|
32
|
+
if (!row || typeof row !== 'object' || Array.isArray(row))
|
|
33
|
+
return [];
|
|
34
|
+
const name = row.name;
|
|
35
|
+
return typeof name === 'string' ? [name] : [];
|
|
36
|
+
}));
|
|
37
|
+
const mapping = {
|
|
38
|
+
id: pick(columns, 'id', 'message_id'),
|
|
39
|
+
sessionId: pick(columns, 'session_id'),
|
|
40
|
+
role: pick(columns, 'role'),
|
|
41
|
+
model: pick(columns, 'model', 'model_name'),
|
|
42
|
+
occurredAt: pick(columns, 'completed_at', 'created_at', 'timestamp'),
|
|
43
|
+
inputTokens: pick(columns, 'input_tokens'),
|
|
44
|
+
outputTokens: pick(columns, 'output_tokens'),
|
|
45
|
+
cacheReadTokens: pick(columns, 'cache_read_tokens'),
|
|
46
|
+
cacheCreationTokens: pick(columns, 'cache_write_tokens', 'cache_creation_tokens'),
|
|
47
|
+
reasoningTokens: pick(columns, 'reasoning_tokens'),
|
|
48
|
+
};
|
|
49
|
+
if (!mapping.id || !mapping.role || !mapping.model || !mapping.occurredAt ||
|
|
50
|
+
!mapping.inputTokens || !mapping.outputTokens) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
return Object.fromEntries(Object.entries(mapping).filter((entry) => typeof entry[1] === 'string'));
|
|
54
|
+
}
|
|
55
|
+
export function captureHermesMessageHighWatermark(db) {
|
|
56
|
+
try {
|
|
57
|
+
const row = db.prepare('SELECT COALESCE(MAX(rowid), 0) AS max_row_id FROM messages').get();
|
|
58
|
+
if (!row || typeof row !== 'object' || Array.isArray(row))
|
|
59
|
+
return 0;
|
|
60
|
+
const value = row.max_row_id;
|
|
61
|
+
return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0 ? value : 0;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return 0;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export function readHermesInvocationUsageAfter(db, afterRowId) {
|
|
68
|
+
const columns = resolveColumns(db);
|
|
69
|
+
if (!columns) {
|
|
70
|
+
return { supported: false, reason: 'HERMES_INVOCATION_USAGE_UNAVAILABLE', rows: [] };
|
|
71
|
+
}
|
|
72
|
+
const select = [
|
|
73
|
+
'rowid AS source_row_id',
|
|
74
|
+
`${quoteIdentifier(columns.id)} AS source_invocation_id`,
|
|
75
|
+
columns.sessionId ? `${quoteIdentifier(columns.sessionId)} AS session_id` : 'NULL AS session_id',
|
|
76
|
+
`${quoteIdentifier(columns.model)} AS model`,
|
|
77
|
+
`${quoteIdentifier(columns.occurredAt)} AS occurred_at`,
|
|
78
|
+
`${quoteIdentifier(columns.inputTokens)} AS input_tokens`,
|
|
79
|
+
`${quoteIdentifier(columns.outputTokens)} AS output_tokens`,
|
|
80
|
+
columns.cacheReadTokens ? `${quoteIdentifier(columns.cacheReadTokens)} AS cache_read_tokens` : '0 AS cache_read_tokens',
|
|
81
|
+
columns.cacheCreationTokens ? `${quoteIdentifier(columns.cacheCreationTokens)} AS cache_creation_tokens` : '0 AS cache_creation_tokens',
|
|
82
|
+
columns.reasoningTokens ? `${quoteIdentifier(columns.reasoningTokens)} AS reasoning_tokens` : '0 AS reasoning_tokens',
|
|
83
|
+
].join(', ');
|
|
84
|
+
let rawRows;
|
|
85
|
+
try {
|
|
86
|
+
rawRows = db.prepare(`SELECT ${select}
|
|
87
|
+
FROM messages
|
|
88
|
+
WHERE rowid > ? AND ${quoteIdentifier(columns.role)} = 'assistant'
|
|
89
|
+
ORDER BY rowid ASC`).all(afterRowId);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return { supported: false, reason: 'HERMES_INVOCATION_USAGE_UNAVAILABLE', rows: [] };
|
|
93
|
+
}
|
|
94
|
+
const rows = rawRows.flatMap((raw) => {
|
|
95
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
96
|
+
return [];
|
|
97
|
+
const row = raw;
|
|
98
|
+
const sourceInvocationId = typeof row.source_invocation_id === 'string'
|
|
99
|
+
? row.source_invocation_id.trim()
|
|
100
|
+
: String(row.source_invocation_id ?? '').trim();
|
|
101
|
+
const model = typeof row.model === 'string' ? row.model.trim() : '';
|
|
102
|
+
const occurredAt = readTimestamp(row.occurred_at);
|
|
103
|
+
const inputTokens = readNonNegativeInteger(row.input_tokens);
|
|
104
|
+
const outputTokens = readNonNegativeInteger(row.output_tokens);
|
|
105
|
+
const cacheReadTokens = readNonNegativeInteger(row.cache_read_tokens) ?? 0;
|
|
106
|
+
const cacheCreationTokens = readNonNegativeInteger(row.cache_creation_tokens) ?? 0;
|
|
107
|
+
const reasoningTokens = readNonNegativeInteger(row.reasoning_tokens) ?? 0;
|
|
108
|
+
if (!sourceInvocationId || !model || !occurredAt || inputTokens === null || outputTokens === null)
|
|
109
|
+
return [];
|
|
110
|
+
if (inputTokens + outputTokens + cacheReadTokens + cacheCreationTokens + reasoningTokens === 0)
|
|
111
|
+
return [];
|
|
112
|
+
return [{
|
|
113
|
+
sourceInvocationId,
|
|
114
|
+
sessionId: typeof row.session_id === 'string' && row.session_id.trim()
|
|
115
|
+
? row.session_id.trim()
|
|
116
|
+
: undefined,
|
|
117
|
+
model,
|
|
118
|
+
occurredAt,
|
|
119
|
+
inputTokens,
|
|
120
|
+
outputTokens,
|
|
121
|
+
cacheReadTokens,
|
|
122
|
+
cacheCreationTokens,
|
|
123
|
+
reasoningTokens,
|
|
124
|
+
}];
|
|
125
|
+
});
|
|
126
|
+
return { supported: true, rows };
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=HermesInvocationUsageReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HermesInvocationUsageReader.js","sourceRoot":"","sources":["../../../src/adapters/hermes/HermesInvocationUsageReader.ts"],"names":[],"mappings":"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"}
|