clawconnect-agent 0.1.11 → 0.1.13

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/README.md +16 -0
  2. package/README.zh-CN.md +16 -0
  3. package/dist/commands/install.js +3 -2
  4. package/dist/commands/install.js.map +1 -1
  5. package/dist/commands/pair.js +2 -1
  6. package/dist/commands/pair.js.map +1 -1
  7. package/dist/commands/profile-hints.d.ts +7 -0
  8. package/dist/commands/profile-hints.js +71 -0
  9. package/dist/commands/profile-hints.js.map +1 -0
  10. package/dist/commands/send-file.js +25 -5
  11. package/dist/commands/send-file.js.map +1 -1
  12. package/dist/core/relay/timeline-event-builder.d.ts +5 -1
  13. package/dist/core/relay/timeline-event-builder.js +4 -0
  14. package/dist/core/relay/timeline-event-builder.js.map +1 -1
  15. package/dist/core/relay/timeline-event-log.d.ts +3 -0
  16. package/dist/core/relay/timeline-event-log.js +4 -0
  17. package/dist/core/relay/timeline-event-log.js.map +1 -1
  18. package/dist/hermes/hermes-relay-manager.d.ts +27 -24
  19. package/dist/hermes/hermes-relay-manager.js +126 -343
  20. package/dist/hermes/hermes-relay-manager.js.map +1 -1
  21. package/dist/hermes/hermes-runtime-test-support.d.ts +27 -0
  22. package/dist/hermes/hermes-runtime-test-support.js +703 -0
  23. package/dist/hermes/hermes-runtime-test-support.js.map +1 -0
  24. package/dist/hermes/hermes-runtime.d.ts +1 -2
  25. package/dist/hermes/hermes-runtime.js +1 -2
  26. package/dist/hermes/hermes-runtime.js.map +1 -1
  27. package/dist/hermes/relay/active-hermes-chat-runs.d.ts +12 -0
  28. package/dist/hermes/relay/active-hermes-chat-runs.js +42 -0
  29. package/dist/hermes/relay/active-hermes-chat-runs.js.map +1 -0
  30. package/dist/hermes/relay/hermes-slash-command-catalog.d.ts +22 -0
  31. package/dist/hermes/relay/hermes-slash-command-catalog.js +248 -0
  32. package/dist/hermes/relay/hermes-slash-command-catalog.js.map +1 -0
  33. package/dist/hermes/relay/hermes-state-db-realtime.d.ts +69 -0
  34. package/dist/hermes/relay/hermes-state-db-realtime.js +444 -0
  35. package/dist/hermes/relay/hermes-state-db-realtime.js.map +1 -0
  36. package/dist/hermes/runtime/hermes-runtime-api-client.d.ts +15 -0
  37. package/dist/hermes/runtime/hermes-runtime-api-client.js +510 -0
  38. package/dist/hermes/runtime/hermes-runtime-api-client.js.map +1 -0
  39. package/dist/hermes/runtime/hermes-runtime-chat.d.ts +4 -14
  40. package/dist/hermes/runtime/hermes-runtime-chat.js +205 -436
  41. package/dist/hermes/runtime/hermes-runtime-chat.js.map +1 -1
  42. package/dist/hermes/runtime/hermes-runtime-command-utils.d.ts +1 -0
  43. package/dist/hermes/runtime/hermes-runtime-command-utils.js +10 -1
  44. package/dist/hermes/runtime/hermes-runtime-command-utils.js.map +1 -1
  45. package/dist/hermes/runtime/hermes-runtime-history-completion.d.ts +12 -0
  46. package/dist/hermes/runtime/hermes-runtime-history-completion.js +162 -0
  47. package/dist/hermes/runtime/hermes-runtime-history-completion.js.map +1 -0
  48. package/dist/hermes/runtime/hermes-runtime-history.js +85 -22
  49. package/dist/hermes/runtime/hermes-runtime-history.js.map +1 -1
  50. package/dist/hermes/runtime/hermes-runtime-preloaded-skills.d.ts +11 -0
  51. package/dist/hermes/runtime/hermes-runtime-preloaded-skills.js +67 -0
  52. package/dist/hermes/runtime/hermes-runtime-preloaded-skills.js.map +1 -0
  53. package/dist/hermes/runtime/hermes-runtime-process.d.ts +3 -1
  54. package/dist/hermes/runtime/hermes-runtime-process.js +35 -6
  55. package/dist/hermes/runtime/hermes-runtime-process.js.map +1 -1
  56. package/dist/hermes/runtime/hermes-runtime-sessions.js +28 -3
  57. package/dist/hermes/runtime/hermes-runtime-sessions.js.map +1 -1
  58. package/dist/hermes/runtime/hermes-runtime-slash-command.d.ts +8 -0
  59. package/dist/hermes/runtime/hermes-runtime-slash-command.js +144 -0
  60. package/dist/hermes/runtime/hermes-runtime-slash-command.js.map +1 -0
  61. package/dist/hermes/runtime/hermes-runtime-state-db.d.ts +4 -0
  62. package/dist/hermes/runtime/hermes-runtime-state-db.js +193 -0
  63. package/dist/hermes/runtime/hermes-runtime-state-db.js.map +1 -0
  64. package/dist/hermes/runtime/hermes-runtime-tool-log-watcher.d.ts +8 -0
  65. package/dist/hermes/runtime/hermes-runtime-tool-log-watcher.js +121 -0
  66. package/dist/hermes/runtime/hermes-runtime-tool-log-watcher.js.map +1 -0
  67. package/dist/hermes/runtime/hermes-runtime-usage.d.ts +2 -0
  68. package/dist/hermes/runtime/hermes-runtime-usage.js +59 -5
  69. package/dist/hermes/runtime/hermes-runtime-usage.js.map +1 -1
  70. package/dist/i18n/index.js +4 -0
  71. package/dist/i18n/index.js.map +1 -1
  72. package/dist/index.js +22 -3
  73. package/dist/index.js.map +1 -1
  74. package/dist/openclaw/handlers/local-handlers.js +66 -20
  75. package/dist/openclaw/handlers/local-handlers.js.map +1 -1
  76. package/dist/openclaw/relay/chat-send-dedupe-coordinator.d.ts +20 -0
  77. package/dist/openclaw/relay/chat-send-dedupe-coordinator.js +161 -0
  78. package/dist/openclaw/relay/chat-send-dedupe-coordinator.js.map +1 -0
  79. package/dist/openclaw/relay/relay-manager-hello.d.ts +6 -0
  80. package/dist/openclaw/relay/relay-manager-hello.js +11 -0
  81. package/dist/openclaw/relay/relay-manager-hello.js.map +1 -0
  82. package/dist/openclaw/relay/relay-manager-history-timing.d.ts +5 -0
  83. package/dist/openclaw/relay/relay-manager-history-timing.js +6 -0
  84. package/dist/openclaw/relay/relay-manager-history-timing.js.map +1 -0
  85. package/dist/openclaw/relay/relay-manager-office-events.d.ts +2 -0
  86. package/dist/openclaw/relay/relay-manager-office-events.js +9 -0
  87. package/dist/openclaw/relay/relay-manager-office-events.js.map +1 -0
  88. package/dist/openclaw/relay/relay-manager-payload-helpers.d.ts +18 -0
  89. package/dist/openclaw/relay/relay-manager-payload-helpers.js +213 -0
  90. package/dist/openclaw/relay/relay-manager-payload-helpers.js.map +1 -0
  91. package/dist/openclaw/relay/relay-manager-protocol.d.ts +49 -0
  92. package/dist/openclaw/relay/relay-manager-protocol.js +2 -0
  93. package/dist/openclaw/relay/relay-manager-protocol.js.map +1 -0
  94. package/dist/openclaw/relay-manager.d.ts +3 -27
  95. package/dist/openclaw/relay-manager.js +19 -402
  96. package/dist/openclaw/relay-manager.js.map +1 -1
  97. package/dist/openclaw/session-store.js +42 -1
  98. package/dist/openclaw/session-store.js.map +1 -1
  99. package/package.json +1 -1
  100. package/dist/hermes/runtime/hermes-runtime-artifacts.d.ts +0 -3
  101. package/dist/hermes/runtime/hermes-runtime-artifacts.js +0 -75
  102. package/dist/hermes/runtime/hermes-runtime-artifacts.js.map +0 -1
@@ -5,98 +5,16 @@ import { bindRelayAbortSignal, buildRelayUrl, parseRelayFrame, sendRelayJson, sh
5
5
  import { buildOfficeEventPayload } from "../core/relay/office-payload.js";
6
6
  import { buildMobileAssistantAbortedPayload, buildMobileAssistantErrorPayload, buildMobileAssistantFinalPayload, resolveMobileChatRun, } from "../core/relay/mobile-chat-run-bridge.js";
7
7
  import { voiceInputSetupMessage } from "../core/relay/voice-input.js";
8
- import { buildAttachmentStateChangedEvent, deriveAttachmentId, derivePartId, } from "../core/relay/timeline-event-builder.js";
8
+ import { buildAttachmentStateChangedEvent, buildMessageCompletedEvent, deriveAttachmentId, derivePartId, } from "../core/relay/timeline-event-builder.js";
9
9
  import { gatewayCapabilitiesForType } from "../gateway-profiles.js";
10
- import { runHermesPython } from "./runtime/hermes-runtime-process.js";
11
10
  import { prepareHermesVoiceInputCommand, resolveHermesVoiceInputSessionKey } from "./hermes-voice-input.js";
12
- import { collectHermesUsageSnapshot, handleHermesCommand, readHermesStatusSnapshot, runHermesChat, } from "./hermes-runtime.js";
11
+ import { collectHermesUsageSnapshot, handleHermesCommand, readHermesStatusSnapshotAsync, runHermesChat, } from "./hermes-runtime.js";
12
+ import { forgetActiveHermesChatRun, rememberActiveHermesChatRun, resolveHermesAbortRun, resolveHermesChatPreferredRunId, } from "./relay/active-hermes-chat-runs.js";
13
+ import { readHermesSlashCommandSearchParams, searchHermesSlashCommandCatalog, } from "./relay/hermes-slash-command-catalog.js";
14
+ import { createHermesStateDbRealtimeWatcher, resolveHermesStateDbRealtimePath, } from "./relay/hermes-state-db-realtime.js";
15
+ export { collectHermesSlashCommandCatalog, searchHermesSlashCommandCatalog, } from "./relay/hermes-slash-command-catalog.js";
16
+ export { rememberActiveHermesChatRun, resolveHermesAbortRun, resolveHermesChatPreferredRunId, } from "./relay/active-hermes-chat-runs.js";
13
17
  ;
14
- const HERMES_SLASH_COMMAND_CATALOG_SCRIPT = String.raw `
15
- import json
16
-
17
- items = []
18
-
19
- def add(command, title=None, detail=None):
20
- if not command:
21
- return
22
- command = str(command).strip()
23
- if not command:
24
- return
25
- if not command.startswith("/"):
26
- command = "/" + command
27
- title = str(title or command.lstrip("/") or command).strip()
28
- detail = str(detail or title or command).strip()
29
- items.append({"command": command, "title": title, "detail": detail})
30
-
31
- try:
32
- from hermes_cli.commands import COMMANDS
33
- for command, detail in COMMANDS.items():
34
- add(command, command.lstrip("/"), detail)
35
- except Exception:
36
- pass
37
-
38
- try:
39
- from agent.skill_commands import get_skill_commands
40
- for command, info in get_skill_commands().items():
41
- if not isinstance(info, dict):
42
- info = {}
43
- add(command, info.get("name") or str(command).lstrip("/"), info.get("description") or "Skill command")
44
- except Exception:
45
- pass
46
-
47
- try:
48
- from hermes_cli.plugins import get_plugin_commands
49
- for command, info in get_plugin_commands().items():
50
- if not isinstance(info, dict):
51
- info = {}
52
- add(command, command, info.get("description") or "Plugin command")
53
- except Exception:
54
- pass
55
-
56
- print(json.dumps(items, ensure_ascii=False))
57
- `;
58
- const DEFAULT_HERMES_SLASH_COMMAND_SEARCH_LIMIT = 16;
59
- const MAX_HERMES_SLASH_COMMAND_SEARCH_LIMIT = 50;
60
- const MAX_HERMES_SLASH_COMMAND_SEARCH_OFFSET = 10_000;
61
- let hermesSlashCommandCatalogCache;
62
- export function collectHermesSlashCommandCatalog(runPython = runHermesPython) {
63
- try {
64
- return parseHermesSlashCommandCatalog(runPython(HERMES_SLASH_COMMAND_CATALOG_SCRIPT));
65
- }
66
- catch (error) {
67
- const message = error instanceof Error ? error.message : String(error);
68
- console.warn(`[hermes-relay] failed to load Hermes slash command catalog: ${message}`);
69
- return [];
70
- }
71
- }
72
- export function searchHermesSlashCommandCatalog(opts = {}) {
73
- const query = normalizeHermesSlashCommandQuery(opts.query);
74
- const limit = normalizeHermesSlashCommandSearchLimit(opts.limit);
75
- const offset = normalizeHermesSlashCommandSearchOffset(opts.offset);
76
- const catalog = [...(opts.collect ?? getCachedHermesSlashCommandCatalog)()];
77
- const matches = catalog
78
- .map((command, index) => {
79
- const rank = hermesSlashCommandMatchRank(command, query);
80
- return rank === undefined ? undefined : { command, index, rank };
81
- })
82
- .filter((entry) => entry !== undefined)
83
- .sort((left, right) => {
84
- if (left.rank !== right.rank)
85
- return left.rank - right.rank;
86
- if (left.index !== right.index)
87
- return left.index - right.index;
88
- return left.command.title.localeCompare(right.command.title);
89
- });
90
- const items = matches.slice(offset, offset + limit).map((entry) => entry.command);
91
- const nextOffset = offset + items.length;
92
- const hasMore = nextOffset < matches.length;
93
- return {
94
- items,
95
- hasMore,
96
- ...(hasMore ? { nextOffset } : {}),
97
- total: matches.length,
98
- };
99
- }
100
18
  export function buildHermesRelayHelloMessage(opts) {
101
19
  return {
102
20
  type: "hello",
@@ -106,206 +24,6 @@ export function buildHermesRelayHelloMessage(opts) {
106
24
  ...(opts.slashCommands && opts.slashCommands.length > 0 ? { slashCommands: opts.slashCommands } : {}),
107
25
  };
108
26
  }
109
- function parseHermesSlashCommandCatalog(rawOutput) {
110
- const rawValue = JSON.parse(rawOutput);
111
- if (!Array.isArray(rawValue)) {
112
- return [];
113
- }
114
- const commands = [];
115
- const seen = new Set();
116
- for (const entry of rawValue) {
117
- if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
118
- continue;
119
- }
120
- const record = entry;
121
- const command = normalizeHermesSlashCommandText(record.command ?? record.name ?? record.value ?? record.text);
122
- if (!command) {
123
- continue;
124
- }
125
- const key = command.toLowerCase();
126
- if (seen.has(key)) {
127
- continue;
128
- }
129
- seen.add(key);
130
- const title = readHermesSlashCommandLabel(record.title ?? record.label ?? record.name) ?? command.replace(/^\//, "");
131
- const detail = readHermesSlashCommandLabel(record.detail ?? record.description ?? record.summary) ?? title;
132
- commands.push({
133
- source: "Hermes",
134
- command,
135
- title,
136
- detail,
137
- });
138
- }
139
- return commands;
140
- }
141
- function normalizeHermesSlashCommandText(value) {
142
- if (typeof value !== "string") {
143
- return undefined;
144
- }
145
- const trimmed = value.trim().replace(/\s+/g, " ");
146
- if (!trimmed) {
147
- return undefined;
148
- }
149
- return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
150
- }
151
- function readHermesSlashCommandLabel(value) {
152
- if (typeof value !== "string") {
153
- return undefined;
154
- }
155
- const trimmed = value.trim().replace(/\s+/g, " ");
156
- return trimmed || undefined;
157
- }
158
- function getCachedHermesSlashCommandCatalog() {
159
- if (!hermesSlashCommandCatalogCache) {
160
- hermesSlashCommandCatalogCache = collectHermesSlashCommandCatalog();
161
- }
162
- return hermesSlashCommandCatalogCache;
163
- }
164
- function normalizeHermesSlashCommandQuery(value) {
165
- if (typeof value !== "string") {
166
- return "/";
167
- }
168
- const trimmed = value.trim().replace(/\s+/g, " ").toLowerCase();
169
- if (!trimmed) {
170
- return "/";
171
- }
172
- return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
173
- }
174
- function normalizeHermesSlashCommandSearchLimit(value) {
175
- if (typeof value === "number" && Number.isFinite(value)) {
176
- return Math.max(1, Math.min(MAX_HERMES_SLASH_COMMAND_SEARCH_LIMIT, Math.trunc(value)));
177
- }
178
- if (typeof value === "string" && value.trim()) {
179
- const parsed = Number(value);
180
- if (Number.isFinite(parsed)) {
181
- return Math.max(1, Math.min(MAX_HERMES_SLASH_COMMAND_SEARCH_LIMIT, Math.trunc(parsed)));
182
- }
183
- }
184
- return DEFAULT_HERMES_SLASH_COMMAND_SEARCH_LIMIT;
185
- }
186
- function normalizeHermesSlashCommandSearchOffset(value) {
187
- if (typeof value === "number" && Number.isFinite(value)) {
188
- return Math.max(0, Math.min(MAX_HERMES_SLASH_COMMAND_SEARCH_OFFSET, Math.trunc(value)));
189
- }
190
- if (typeof value === "string" && value.trim()) {
191
- const parsed = Number(value);
192
- if (Number.isFinite(parsed)) {
193
- return Math.max(0, Math.min(MAX_HERMES_SLASH_COMMAND_SEARCH_OFFSET, Math.trunc(parsed)));
194
- }
195
- }
196
- return 0;
197
- }
198
- function hermesSlashCommandMatchRank(command, query) {
199
- const normalizedCommand = command.command.trim().replace(/\s+/g, " ").toLowerCase();
200
- if (!normalizedCommand) {
201
- return undefined;
202
- }
203
- if (query === "/")
204
- return 0;
205
- if (normalizedCommand === query) {
206
- return 0;
207
- }
208
- if (normalizedCommand.startsWith(query)) {
209
- return 1;
210
- }
211
- if (query.startsWith(normalizedCommand)) {
212
- return 2;
213
- }
214
- const compactCommand = compactSlashSearchText(normalizedCommand);
215
- const compactQuery = compactSlashSearchText(query);
216
- if (!compactQuery)
217
- return 0;
218
- if (compactCommand.includes(compactQuery)) {
219
- return 3;
220
- }
221
- if (isSubsequence(compactQuery, compactCommand)) {
222
- return 4;
223
- }
224
- const searchableText = [command.title, command.detail]
225
- .map((value) => compactSlashSearchText(value))
226
- .filter(Boolean)
227
- .join(" ");
228
- if (searchableText.includes(compactQuery)) {
229
- return 5;
230
- }
231
- if (isSubsequence(compactQuery, searchableText)) {
232
- return 6;
233
- }
234
- return undefined;
235
- }
236
- function compactSlashSearchText(value) {
237
- return value
238
- .trim()
239
- .replace(/^\//, "")
240
- .replace(/\s+/g, "")
241
- .toLowerCase();
242
- }
243
- function isSubsequence(needle, haystack) {
244
- if (!needle)
245
- return true;
246
- let needleIndex = 0;
247
- for (const char of haystack) {
248
- if (char === needle[needleIndex]) {
249
- needleIndex += 1;
250
- if (needleIndex === needle.length) {
251
- return true;
252
- }
253
- }
254
- }
255
- return false;
256
- }
257
- function readHermesSlashCommandSearchParams(params) {
258
- if (!params || typeof params !== "object" || Array.isArray(params)) {
259
- return {};
260
- }
261
- const record = params;
262
- return {
263
- query: record.query,
264
- limit: record.limit,
265
- offset: record.offset,
266
- };
267
- }
268
- function readStringParam(params, key) {
269
- if (!params || typeof params !== "object" || Array.isArray(params)) {
270
- return undefined;
271
- }
272
- const value = params[key];
273
- return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
274
- }
275
- export function rememberActiveHermesChatRun(activeChatRuns, run, params, requestId, controller) {
276
- const entry = { controller, run };
277
- for (const key of [run.runId, requestId, readStringParam(params, "idempotencyKey")]) {
278
- if (key) {
279
- activeChatRuns.set(key, entry);
280
- }
281
- }
282
- }
283
- function forgetActiveHermesChatRun(activeChatRuns, run) {
284
- for (const [key, entry] of activeChatRuns) {
285
- if (entry.run.runId === run.runId && entry.run.sessionKey === run.sessionKey) {
286
- activeChatRuns.delete(key);
287
- }
288
- }
289
- }
290
- export function resolveHermesAbortRun(params, activeChatRuns) {
291
- const runId = readStringParam(params, "runId")
292
- ?? readStringParam(params, "run_id")
293
- ?? readStringParam(params, "idempotencyKey");
294
- if (runId) {
295
- return activeChatRuns.get(runId);
296
- }
297
- const sessionKey = readStringParam(params, "sessionKey") ?? readStringParam(params, "session_key");
298
- if (sessionKey) {
299
- return [...activeChatRuns.values()].find((entry) => entry.run.sessionKey === sessionKey);
300
- }
301
- return undefined;
302
- }
303
- export function resolveHermesChatPreferredRunId(params, voiceInputRun) {
304
- return voiceInputRun?.runId
305
- ?? readStringParam(params, "runId")
306
- ?? readStringParam(params, "run_id")
307
- ?? readStringParam(params, "idempotencyKey");
308
- }
309
27
  export async function runHermesRelayManager(opts) {
310
28
  const wsUrl = buildRelayUrl(opts.relayServerUrl, opts.gatewayId, opts.relaySecret);
311
29
  const recentMobileFiles = new Map();
@@ -325,32 +43,49 @@ export async function runHermesRelayManager(opts) {
325
43
  const send = (message) => {
326
44
  sendRelayJson(relayWs, message);
327
45
  };
46
+ const stateDbRealtimePath = resolveHermesStateDbRealtimePath();
47
+ const stateDbRealtimeWatcher = stateDbRealtimePath
48
+ ? createHermesStateDbRealtimeWatcher({
49
+ gatewayId: opts.gatewayId,
50
+ dbPath: stateDbRealtimePath,
51
+ publishPayload: (payload) => {
52
+ send({ type: "event", event: "chat", payload });
53
+ publishHermesOfficeSnapshot(send, "chat", payload);
54
+ },
55
+ onError: (error) => {
56
+ const message = error instanceof Error ? error.message : String(error);
57
+ console.warn(`[hermes-relay] state.db realtime sync failed: ${message}`);
58
+ },
59
+ })
60
+ : undefined;
328
61
  relayWs.on("open", () => {
329
62
  console.log(`Connected to relay server (hermes gatewayId=${opts.gatewayId})`);
330
63
  opts.onConnected?.();
331
- const statusSnapshot = readHermesStatusSnapshot();
332
64
  send(buildHermesRelayHelloMessage({
333
65
  platform: `${process.platform} (Hermes)`,
334
66
  agentVersion: "hermes",
335
67
  capabilities: opts.capabilities ?? [...gatewayCapabilitiesForType("hermes"), "models"],
336
68
  }));
337
69
  send({ type: "gateway_connected" });
338
- send({
339
- type: "event",
340
- event: "office",
341
- payload: {
342
- currentModel: statusSnapshot.currentModel,
343
- provider: statusSnapshot.provider,
344
- office: {
345
- kind: "idle",
346
- title: "Hermes Agent",
347
- detail: opts.displayName ?? "Hermes gateway connected",
348
- phase: "connected",
349
- updatedAt: new Date().toISOString(),
70
+ void readHermesStatusSnapshotAsync().then((statusSnapshot) => {
71
+ send({
72
+ type: "event",
73
+ event: "office",
74
+ payload: {
75
+ currentModel: statusSnapshot.currentModel,
76
+ provider: statusSnapshot.provider,
77
+ office: {
78
+ kind: "idle",
79
+ title: "Hermes Agent",
80
+ detail: opts.displayName ?? "Hermes gateway connected",
81
+ phase: "connected",
82
+ updatedAt: new Date().toISOString(),
83
+ },
350
84
  },
351
- },
85
+ });
352
86
  });
353
87
  void publishHermesUsageSnapshot(send);
88
+ stateDbRealtimeWatcher?.start();
354
89
  });
355
90
  relayWs.on("message", async (raw) => {
356
91
  let requestId;
@@ -463,8 +198,7 @@ export async function runHermesRelayManager(opts) {
463
198
  },
464
199
  });
465
200
  forgetActiveHermesChatRun(activeChatRuns, run);
466
- const artifactContentBlocks = [];
467
- const artifactAttachmentEvents = [];
201
+ const artifactTimelineEvents = [];
468
202
  for (const artifactPath of chat.artifactPaths) {
469
203
  const artifactKey = artifactDeliveryKey(chat.sessionKey, artifactPath);
470
204
  pruneSentArtifacts(sentArtifacts);
@@ -488,29 +222,18 @@ export async function runHermesRelayManager(opts) {
488
222
  contentHash: upload.sha256,
489
223
  });
490
224
  const block = buildHermesArtifactContentBlock(upload, attachmentId);
491
- artifactContentBlocks.push(block);
492
- artifactAttachmentEvents.push(buildAttachmentStateChangedEvent({
493
- gatewayId: opts.gatewayId,
494
- sessionKey: chat.sessionKey,
495
- turnId: runId,
496
- runId,
497
- messageId: `assistant-${runId}`,
498
- partId: derivePartId({
499
- type: block.type,
500
- index: artifactContentBlocks.length - 1,
501
- }),
502
- attachment: {
225
+ const artifactIndex = artifactTimelineEvents.length;
226
+ artifactTimelineEvents.push({
227
+ ...buildHermesArtifactTimelineEvents({
228
+ gatewayId: opts.gatewayId,
229
+ sessionKey: chat.sessionKey,
230
+ runId,
231
+ upload,
503
232
  attachmentId,
504
- state: "available",
505
- fileId: upload.fileId,
506
- name: upload.fileName,
507
- mimeType: upload.mimeType,
508
- sizeBytes: upload.sizeBytes,
509
- url: upload.downloadUrl,
510
- expiresAt: upload.expiresAt,
511
- sha256: upload.sha256,
512
- },
513
- }));
233
+ contentBlock: block,
234
+ artifactIndex,
235
+ }),
236
+ });
514
237
  if (artifactKey) {
515
238
  sentArtifacts.set(artifactKey, Date.now());
516
239
  }
@@ -519,10 +242,24 @@ export async function runHermesRelayManager(opts) {
519
242
  console.warn(`[hermes-relay] failed to upload artifact ${artifactPath}: ${String(error)}`);
520
243
  }
521
244
  }
245
+ for (const artifactEvents of artifactTimelineEvents) {
246
+ const attachmentPayload = {
247
+ runId,
248
+ sessionKey: chat.sessionKey,
249
+ state: "attachment",
250
+ role: "assistant",
251
+ timelineEvents: [artifactEvents.completed, artifactEvents.attachment],
252
+ };
253
+ send({
254
+ type: "event",
255
+ event: "chat",
256
+ payload: attachmentPayload,
257
+ });
258
+ publishHermesOfficeSnapshot(send, "chat", attachmentPayload);
259
+ }
522
260
  const finalChatPayload = buildMobileAssistantFinalPayload({
523
261
  run: { runId, sessionKey: chat.sessionKey },
524
262
  text: chat.output,
525
- contentBlocks: artifactContentBlocks,
526
263
  currentModel: chat.usage?.currentModel,
527
264
  provider: chat.usage?.provider,
528
265
  contextUsage: chat.usage?.contextUsage,
@@ -535,21 +272,6 @@ export async function runHermesRelayManager(opts) {
535
272
  payload: finalChatPayload,
536
273
  });
537
274
  publishHermesOfficeSnapshot(send, "chat", finalChatPayload);
538
- for (const attachmentEvent of artifactAttachmentEvents) {
539
- const attachmentPayload = {
540
- runId,
541
- sessionKey: chat.sessionKey,
542
- state: "attachment",
543
- role: "assistant",
544
- timelineEvents: [attachmentEvent],
545
- };
546
- send({
547
- type: "event",
548
- event: "chat",
549
- payload: attachmentPayload,
550
- });
551
- publishHermesOfficeSnapshot(send, "chat", attachmentPayload);
552
- }
553
275
  if (requestId && !acknowledgedChatRun) {
554
276
  send({ type: "res", id: requestId, ok: true, payload: { runId, sessionKey: chat.sessionKey } });
555
277
  }
@@ -602,6 +324,7 @@ export async function runHermesRelayManager(opts) {
602
324
  relayWs.on("close", (code, reason) => {
603
325
  console.log(`Hermes relay connection closed: ${code} ${reason.toString()}`);
604
326
  opts.onDisconnected?.();
327
+ stateDbRealtimeWatcher?.stop();
605
328
  activeChatRuns.forEach((entry) => entry.controller.abort());
606
329
  activeChatRuns.clear();
607
330
  resolve(shouldRetryRelayClose(code, opts.signal));
@@ -646,6 +369,66 @@ export function buildHermesArtifactContentBlock(upload, attachmentId) {
646
369
  status: "available",
647
370
  });
648
371
  }
372
+ export function buildHermesArtifactCompletedEvent(params) {
373
+ const contentBlock = params.contentBlock ?? buildHermesArtifactContentBlock(params.upload, params.attachmentId);
374
+ // Hermes 产物必须独立成附件消息,不能合进最终文字回答,否则客户端会把图片当作已完成 waiting 行的一部分吞掉。
375
+ return buildMessageCompletedEvent({
376
+ gatewayId: params.gatewayId,
377
+ sessionKey: params.sessionKey,
378
+ turnId: params.runId,
379
+ runId: params.runId,
380
+ role: "assistant",
381
+ messageId: hermesArtifactMessageId(params.upload.fileId),
382
+ partId: derivePartId({
383
+ type: contentBlock.type,
384
+ index: params.artifactIndex ?? 0,
385
+ }),
386
+ content: [contentBlock],
387
+ timelineItemKind: "attachment",
388
+ timelineResolvesWaiting: false,
389
+ now: params.now,
390
+ idFactory: params.idFactory,
391
+ });
392
+ }
393
+ export function buildHermesArtifactTimelineEvents(params) {
394
+ const contentBlock = params.contentBlock ?? buildHermesArtifactContentBlock(params.upload, params.attachmentId);
395
+ const completed = buildHermesArtifactCompletedEvent({
396
+ ...params,
397
+ contentBlock,
398
+ });
399
+ const partId = completed.partId;
400
+ return {
401
+ completed,
402
+ attachment: buildAttachmentStateChangedEvent({
403
+ gatewayId: params.gatewayId,
404
+ sessionKey: params.sessionKey,
405
+ turnId: params.runId,
406
+ runId: params.runId,
407
+ role: "assistant",
408
+ messageId: completed.messageId,
409
+ partId,
410
+ seq: completed.seq + 1,
411
+ now: params.now,
412
+ idFactory: params.idFactory,
413
+ timelineItemKind: "attachment",
414
+ timelineResolvesWaiting: false,
415
+ attachment: {
416
+ attachmentId: params.attachmentId,
417
+ state: "available",
418
+ fileId: params.upload.fileId,
419
+ name: params.upload.fileName,
420
+ mimeType: params.upload.mimeType,
421
+ sizeBytes: params.upload.sizeBytes,
422
+ url: params.upload.downloadUrl,
423
+ expiresAt: params.upload.expiresAt,
424
+ sha256: params.upload.sha256,
425
+ },
426
+ }),
427
+ };
428
+ }
429
+ function hermesArtifactMessageId(fileId) {
430
+ return `file-${fileId}`;
431
+ }
649
432
  function compactTimelineContentBlock(block) {
650
433
  return Object.fromEntries(Object.entries(block).filter(([, value]) => value !== undefined));
651
434
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hermes-relay-manager.js","sourceRoot":"","sources":["../../src/hermes/hermes-relay-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hermes-relay-manager.js","sourceRoot":"","sources":["../../src/hermes/hermes-relay-manager.ts"],"names":[],"mappings":"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"}