@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.
Files changed (102) hide show
  1. package/dist/adapters/claude/ClaudeAdapter.d.ts +60 -1
  2. package/dist/adapters/claude/ClaudeAdapter.d.ts.map +1 -1
  3. package/dist/adapters/claude/ClaudeAdapter.js +404 -84
  4. package/dist/adapters/claude/ClaudeAdapter.js.map +1 -1
  5. package/dist/adapters/claude/ClaudeInvocationUsageTracker.d.ts +17 -0
  6. package/dist/adapters/claude/ClaudeInvocationUsageTracker.d.ts.map +1 -0
  7. package/dist/adapters/claude/ClaudeInvocationUsageTracker.js +79 -0
  8. package/dist/adapters/claude/ClaudeInvocationUsageTracker.js.map +1 -0
  9. package/dist/adapters/claude/ClaudeStreamParser.d.ts +19 -0
  10. package/dist/adapters/claude/ClaudeStreamParser.d.ts.map +1 -1
  11. package/dist/adapters/claude/ClaudeStreamParser.js +92 -0
  12. package/dist/adapters/claude/ClaudeStreamParser.js.map +1 -1
  13. package/dist/adapters/claude/claudeCommand.js +1 -1
  14. package/dist/adapters/claude/claudeCommand.js.map +1 -1
  15. package/dist/adapters/codex/CodexAdapter.d.ts +20 -0
  16. package/dist/adapters/codex/CodexAdapter.d.ts.map +1 -0
  17. package/dist/adapters/codex/CodexAdapter.js +313 -0
  18. package/dist/adapters/codex/CodexAdapter.js.map +1 -0
  19. package/dist/adapters/hermes/HermesAdapter.d.ts +10 -1
  20. package/dist/adapters/hermes/HermesAdapter.d.ts.map +1 -1
  21. package/dist/adapters/hermes/HermesAdapter.js +225 -21
  22. package/dist/adapters/hermes/HermesAdapter.js.map +1 -1
  23. package/dist/adapters/hermes/HermesInvocationUsageReader.d.ts +26 -0
  24. package/dist/adapters/hermes/HermesInvocationUsageReader.d.ts.map +1 -0
  25. package/dist/adapters/hermes/HermesInvocationUsageReader.js +128 -0
  26. package/dist/adapters/hermes/HermesInvocationUsageReader.js.map +1 -0
  27. package/dist/adapters/openclaw/OpenClawAdapter.d.ts +12 -37
  28. package/dist/adapters/openclaw/OpenClawAdapter.d.ts.map +1 -1
  29. package/dist/adapters/openclaw/OpenClawAdapter.js +191 -635
  30. package/dist/adapters/openclaw/OpenClawAdapter.js.map +1 -1
  31. package/dist/core/AgentAdapter.d.ts +75 -1
  32. package/dist/core/AgentAdapter.d.ts.map +1 -1
  33. package/dist/core/AgentAdapter.js +25 -0
  34. package/dist/core/AgentAdapter.js.map +1 -1
  35. package/dist/core/RuntimeDetector.d.ts.map +1 -1
  36. package/dist/core/RuntimeDetector.js +52 -19
  37. package/dist/core/RuntimeDetector.js.map +1 -1
  38. package/dist/core/WinMatrixAgentClient.d.ts +30 -4
  39. package/dist/core/WinMatrixAgentClient.d.ts.map +1 -1
  40. package/dist/core/WinMatrixAgentClient.js +122 -12
  41. package/dist/core/WinMatrixAgentClient.js.map +1 -1
  42. package/dist/index.d.ts +15 -20
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +8 -19
  45. package/dist/index.js.map +1 -1
  46. package/dist/observability/WorkstationTokenUsageRecorder.d.ts +54 -0
  47. package/dist/observability/WorkstationTokenUsageRecorder.d.ts.map +1 -0
  48. package/dist/observability/WorkstationTokenUsageRecorder.js +264 -0
  49. package/dist/observability/WorkstationTokenUsageRecorder.js.map +1 -0
  50. package/dist/utils/envSanitizer.d.ts +38 -0
  51. package/dist/utils/envSanitizer.d.ts.map +1 -0
  52. package/dist/utils/envSanitizer.js +94 -0
  53. package/dist/utils/envSanitizer.js.map +1 -0
  54. package/dist/utils/errorClassification.d.ts +26 -0
  55. package/dist/utils/errorClassification.d.ts.map +1 -0
  56. package/dist/utils/errorClassification.js +52 -0
  57. package/dist/utils/errorClassification.js.map +1 -0
  58. package/dist/utils/processUtils.d.ts +10 -0
  59. package/dist/utils/processUtils.d.ts.map +1 -1
  60. package/dist/utils/processUtils.js +42 -9
  61. package/dist/utils/processUtils.js.map +1 -1
  62. package/dist/utils/resumeFallback.d.ts +4 -0
  63. package/dist/utils/resumeFallback.d.ts.map +1 -0
  64. package/dist/utils/resumeFallback.js +65 -0
  65. package/dist/utils/resumeFallback.js.map +1 -0
  66. package/package.json +8 -4
  67. package/dist/adapters/openclaw/unwrapOpenClawPayloads.d.ts +0 -6
  68. package/dist/adapters/openclaw/unwrapOpenClawPayloads.d.ts.map +0 -1
  69. package/dist/adapters/openclaw/unwrapOpenClawPayloads.js +0 -24
  70. package/dist/adapters/openclaw/unwrapOpenClawPayloads.js.map +0 -1
  71. package/dist/runtime/DualRuntimeBridge.d.ts +0 -38
  72. package/dist/runtime/DualRuntimeBridge.d.ts.map +0 -1
  73. package/dist/runtime/DualRuntimeBridge.js +0 -321
  74. package/dist/runtime/DualRuntimeBridge.js.map +0 -1
  75. package/dist/runtime/bridgeConfigLoader.d.ts +0 -14
  76. package/dist/runtime/bridgeConfigLoader.d.ts.map +0 -1
  77. package/dist/runtime/bridgeConfigLoader.js +0 -133
  78. package/dist/runtime/bridgeConfigLoader.js.map +0 -1
  79. package/dist/runtime/bridgeConfigTypes.d.ts +0 -26
  80. package/dist/runtime/bridgeConfigTypes.d.ts.map +0 -1
  81. package/dist/runtime/bridgeConfigTypes.js +0 -6
  82. package/dist/runtime/bridgeConfigTypes.js.map +0 -1
  83. package/dist/runtime/bridgeHome.d.ts +0 -19
  84. package/dist/runtime/bridgeHome.d.ts.map +0 -1
  85. package/dist/runtime/bridgeHome.js +0 -61
  86. package/dist/runtime/bridgeHome.js.map +0 -1
  87. package/dist/runtime/bridgeReconnectPolicy.d.ts +0 -8
  88. package/dist/runtime/bridgeReconnectPolicy.d.ts.map +0 -1
  89. package/dist/runtime/bridgeReconnectPolicy.js +0 -16
  90. package/dist/runtime/bridgeReconnectPolicy.js.map +0 -1
  91. package/dist/runtime/bridgeTaskJournal.d.ts +0 -7
  92. package/dist/runtime/bridgeTaskJournal.d.ts.map +0 -1
  93. package/dist/runtime/bridgeTaskJournal.js +0 -66
  94. package/dist/runtime/bridgeTaskJournal.js.map +0 -1
  95. package/dist/runtime/localRuntimeAvailabilityMonitor.d.ts +0 -22
  96. package/dist/runtime/localRuntimeAvailabilityMonitor.d.ts.map +0 -1
  97. package/dist/runtime/localRuntimeAvailabilityMonitor.js +0 -81
  98. package/dist/runtime/localRuntimeAvailabilityMonitor.js.map +0 -1
  99. package/dist/runtime/runDualRuntimeBridge.d.ts +0 -2
  100. package/dist/runtime/runDualRuntimeBridge.d.ts.map +0 -1
  101. package/dist/runtime/runDualRuntimeBridge.js +0 -32
  102. 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: false,
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 { type: 'error', message: `Work directory does not exist: ${workDir}` };
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
- args.push('--verbose');
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
- const env = { ...process.env, ...(task.env ?? {}) };
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
- proc = spawn(this.hermesPath, args, {
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 { type: 'error', message: `Failed to spawn hermes: ${err instanceof Error ? err.message : String(err)}` };
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
- // Try to detect session ID from Hermes output
127
- const sessionMatch = trimmed.match(/session[:\s]+([\w-]+)/i);
128
- if (sessionMatch && !extractedSessionId) {
129
- extractedSessionId = sessionMatch[1];
205
+ // 只接受明确的 session 行,避免把 "Session not found: not" 误识别成 sessionId=not。
206
+ const sessionIdFromLine = extractHermesSessionId(trimmed);
207
+ if (sessionIdFromLine && !extractedSessionId) {
208
+ extractedSessionId = sessionIdFromLine;
130
209
  }
131
- // Detect tool use indicators
132
- if (trimmed.startsWith('[TOOL') || trimmed.includes('🔧') || trimmed.includes('🛠')) {
133
- yield { type: 'thinking', content: trimmed };
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
- else {
136
- resultText += trimmed + '\n';
137
- yield { type: 'delta', content: trimmed };
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 { type: 'delta', content: stdoutBuffer.trim() };
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
- yield { type: 'error', message: errMsg };
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 dbPath = join(homedir(), '.hermes', 'state.db');
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,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;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EACL,iCAAiC,EACjC,8BAA8B,GAE/B,MAAM,kCAAkC,CAAC;AAG1C,qDAAqD;AACrD,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,CAAC,KAAK,GAAG;QAAE,OAAO,OAAO,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kFAAkF;AAClF,SAAS,oBAAoB,CAAC,IAAY;IACxC,+FAA+F;IAC/F,IAAI,6EAA6E,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,wBAAwB;IACxB,IAAI,wRAAwR,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxS,OAAO,IAAI,CAAC;IACd,CAAC;IACD,8EAA8E;IAC9E,IAAI,+DAA+D,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,kEAAkE;IAClE,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AA6BD,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,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;SACrB;QACD,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,EAAE;KACnB,CAAC;IAEM,UAAU,CAAS;IACnB,YAAY,CAAU;IACtB,SAAS,CAAU;IACnB,aAAa,CAAU;IACvB,kBAAkB,CAAiC;IAE3D,YAAY,MAAgC;QAC1C,MAAM,IAAI,GAAG,MAA0C,CAAC;QACxD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,IAAI,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,YAAY,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,aAAa,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,EAAE,kBAAkB,CAAC;IACrD,CAAC;IAED,gBAAgB;IAEhB,KAAK,CAAC,CAAC,OAAO,CAAC,IAAsB,EAAE,MAAoB;QACzD,KAAK,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IACnH,CAAC;IAEO,KAAK,CAAC,CAAC,WAAW,CAAC,IAAsB,EAAE,MAAoB;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM;gBACJ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,kCAAkC,OAAO,EAAE;gBACpD,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,KAAK;aACjB,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB;YACrC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,EAAgC;YACxD,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpF,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,wEAAwE;QACxE,wFAAwF;QACxF,oEAAoE;QACpE,oGAAoG;QAEpG,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,kDAAkD;QAClD,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CACV,uBAAuB,YAAY,CAAC,MAAM,yBAAyB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAC;QACJ,CAAC;QACD,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,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;gBACnF,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;YAC3E,IAAI,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB;gBACpF,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;gBAC5B,CAAC,CAAC,IAAI,EAAE;gBACR,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,GAAG;gBACH,GAAG,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;gBAC7B,8CAA8C;gBAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;aACvC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM;gBACJ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACtF,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,KAAK;aACjB,CAAC;YACF,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,+DAA+D;QAC/D,0EAA0E;QAC1E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU;gBAAE,UAAU,GAAG,2BAA2B,GAAG,EAAE,CAAC;YAC/D,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,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,oEAAoE;oBACpE,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;oBAC1D,IAAI,iBAAiB,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC7C,kBAAkB,GAAG,iBAAiB,CAAC;oBACzC,CAAC;oBAED,oGAAoG;oBACpG,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC7F,MAAM;4BACJ,IAAI,EAAE,UAAU;4BAChB,OAAO,EAAE,OAAO;4BAChB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;yBAC/C,CAAC;wBACF,SAAS;oBACX,CAAC;oBAED,2EAA2E;oBAC3E,wEAAwE;oBACxE,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;wBAClC,SAAS;oBACX,CAAC;oBAED,eAAe;oBACf,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC;oBAC7B,MAAM;wBACJ,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,OAAO;wBAChB,WAAW,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;qBACtD,CAAC;gBACJ,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;oBACJ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE;oBAC5B,WAAW,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE;iBAClE,CAAC;YACJ,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,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC5B,MAAM,aAAa,GACjB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;wBACnG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;4BAC3B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;wBACpE,CAAC;wBACD,MAAM,UAAU,GAAG,OAAO;4BACxB,CAAC,CAAC,8BAA8B,CAAC,OAAO,EAAE,kBAAkB,CAAC;4BAC7D,CAAC,CAAC,EAAE,SAAS,EAAE,KAAc,EAAE,MAAM,EAAE,qCAA8C,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;wBACpG,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC1D,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;gCAC9C,aAAa;gCACb,OAAO,EAAE,QAAQ;gCACjB,MAAM,EAAE,qCAAqC;gCAC7C,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gCACpC,qBAAqB,EAAE,IAAI,CAAC,MAAM;6BACnC,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,QAAQ,CAAC;4BAC5F,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gCACpC,MAAM,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC;oCACtD,aAAa;oCACb,OAAO,EAAE,QAAQ;oCACjB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;oCAC5C,QAAQ;oCACR,SAAS,EAAE,KAAK,CAAC,UAAU;oCAC3B,UAAU,EAAE,KAAK,CAAC,UAAU;oCAC5B,UAAU,EAAE,QAAQ;oCACpB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,kBAAkB,IAAI,SAAS;oCAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;oCACnB,WAAW,EAAE,CAAC;4CACZ,kBAAkB,EAAE,GAAG,KAAK,CAAC,kBAAkB,UAAU;4CACzD,KAAK,EAAE,KAAK,CAAC,KAAK;4CAClB,WAAW,EAAE,KAAK,CAAC,WAAW;4CAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;4CAChC,eAAe,EAAE,KAAK,CAAC,eAAe;4CACtC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;4CAC9C,eAAe,EAAE,KAAK,CAAC,eAAe;yCACvC,CAAC;iCACH,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,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,UAAU,GAAG,oBAAoB,CAAC;wBACtC,OAAO,EAAE,MAAM;wBACf,QAAQ,EAAE,UAAU,CAAC,IAAI;wBACzB,OAAO,EAAE,MAAM,EAAE,OAAO;qBACzB,CAAC,CAAC;oBACH,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;gBACnG,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QACrB,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,OAA6B;QAChD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACnF,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;YACnD,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBACjG,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,uBAAuB;YACvB,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;wBAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC1D,CAAC;gBAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAExF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC1C,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,sBAAsB;IAEtB,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,QAA8B;QACnE,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;YACzE,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,mCAAmC,EAAE,SAAS,CAAC,CAAC;YACtF,MAAM,OAAO,GAAG,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACzF,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,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5C,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;IAEO,aAAa,CAAC,EAAW,EAAE,GAAW,EAAE,GAAG,MAAiB;QAClE,IAAI,OAAQ,EAA4B,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,MAAM,GAAG,EAA0F,CAAC;YAC1G,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -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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"}