clawconnect-agent 0.1.6 → 0.1.8

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 (216) hide show
  1. package/README.md +142 -34
  2. package/README.zh-CN.md +152 -44
  3. package/dist/commands/install.js +10 -4
  4. package/dist/commands/install.js.map +1 -1
  5. package/dist/commands/pair.d.ts +6 -0
  6. package/dist/commands/pair.js +78 -10
  7. package/dist/commands/pair.js.map +1 -1
  8. package/dist/commands/run.js +14 -17
  9. package/dist/commands/run.js.map +1 -1
  10. package/dist/commands/send-file.d.ts +3 -24
  11. package/dist/commands/send-file.js +22 -449
  12. package/dist/commands/send-file.js.map +1 -1
  13. package/dist/commands/status.d.ts +13 -1
  14. package/dist/commands/status.js +58 -15
  15. package/dist/commands/status.js.map +1 -1
  16. package/dist/config/config.d.ts +6 -11
  17. package/dist/config/config.js +19 -48
  18. package/dist/config/config.js.map +1 -1
  19. package/dist/config/env.d.ts +1 -1
  20. package/dist/config/env.js +4 -5
  21. package/dist/config/env.js.map +1 -1
  22. package/dist/config/profile.d.ts +11 -0
  23. package/dist/config/profile.js +80 -0
  24. package/dist/config/profile.js.map +1 -0
  25. package/dist/core/command-types.d.ts +18 -0
  26. package/dist/core/command-types.js +2 -0
  27. package/dist/core/command-types.js.map +1 -0
  28. package/dist/core/relay/attachment-staging.js.map +1 -0
  29. package/dist/{relay → core/relay}/chat-payload.js +17 -3
  30. package/dist/core/relay/chat-payload.js.map +1 -0
  31. package/dist/{commands/send-file-utils.js → core/relay/file-upload-utils.js} +1 -1
  32. package/dist/core/relay/file-upload-utils.js.map +1 -0
  33. package/dist/core/relay/file-upload.d.ts +40 -0
  34. package/dist/core/relay/file-upload.js +401 -0
  35. package/dist/core/relay/file-upload.js.map +1 -0
  36. package/dist/core/relay/mobile-chat-run-bridge.d.ts +201 -0
  37. package/dist/core/relay/mobile-chat-run-bridge.js +192 -0
  38. package/dist/core/relay/mobile-chat-run-bridge.js.map +1 -0
  39. package/dist/core/relay/office-payload.js.map +1 -0
  40. package/dist/core/relay/reconnect.js.map +1 -0
  41. package/dist/core/relay/relay-server-connection.d.ts +6 -0
  42. package/dist/core/relay/relay-server-connection.js +32 -0
  43. package/dist/core/relay/relay-server-connection.js.map +1 -0
  44. package/dist/core/relay/slash-command-types.d.ts +7 -0
  45. package/dist/core/relay/slash-command-types.js +2 -0
  46. package/dist/core/relay/slash-command-types.js.map +1 -0
  47. package/dist/core/relay/timeline-event-builder.d.ts +86 -0
  48. package/dist/core/relay/timeline-event-builder.js +199 -0
  49. package/dist/core/relay/timeline-event-builder.js.map +1 -0
  50. package/dist/core/relay/timeline-event-log.d.ts +81 -0
  51. package/dist/core/relay/timeline-event-log.js +254 -0
  52. package/dist/core/relay/timeline-event-log.js.map +1 -0
  53. package/dist/core/relay/voice-input.d.ts +11 -0
  54. package/dist/core/relay/voice-input.js +120 -0
  55. package/dist/core/relay/voice-input.js.map +1 -0
  56. package/dist/gateway-profiles.d.ts +8 -0
  57. package/dist/gateway-profiles.js +24 -0
  58. package/dist/gateway-profiles.js.map +1 -0
  59. package/dist/hermes/hermes-relay-manager.d.ts +59 -0
  60. package/dist/hermes/hermes-relay-manager.js +754 -0
  61. package/dist/hermes/hermes-relay-manager.js.map +1 -0
  62. package/dist/hermes/hermes-runtime.d.ts +9 -0
  63. package/dist/hermes/hermes-runtime.js +9 -0
  64. package/dist/hermes/hermes-runtime.js.map +1 -0
  65. package/dist/hermes/hermes-session-store.d.ts +15 -0
  66. package/dist/hermes/hermes-session-store.js +174 -0
  67. package/dist/hermes/hermes-session-store.js.map +1 -0
  68. package/dist/hermes/hermes-voice-input.d.ts +13 -0
  69. package/dist/hermes/hermes-voice-input.js +27 -0
  70. package/dist/hermes/hermes-voice-input.js.map +1 -0
  71. package/dist/hermes/runtime/hermes-runtime-artifacts.d.ts +3 -0
  72. package/dist/hermes/runtime/hermes-runtime-artifacts.js +65 -0
  73. package/dist/hermes/runtime/hermes-runtime-artifacts.js.map +1 -0
  74. package/dist/hermes/runtime/hermes-runtime-backups.d.ts +5 -0
  75. package/dist/hermes/runtime/hermes-runtime-backups.js +128 -0
  76. package/dist/hermes/runtime/hermes-runtime-backups.js.map +1 -0
  77. package/dist/hermes/runtime/hermes-runtime-chat.d.ts +41 -0
  78. package/dist/hermes/runtime/hermes-runtime-chat.js +723 -0
  79. package/dist/hermes/runtime/hermes-runtime-chat.js.map +1 -0
  80. package/dist/hermes/runtime/hermes-runtime-command-router.d.ts +2 -0
  81. package/dist/hermes/runtime/hermes-runtime-command-router.js +96 -0
  82. package/dist/hermes/runtime/hermes-runtime-command-router.js.map +1 -0
  83. package/dist/hermes/runtime/hermes-runtime-command-utils.d.ts +3 -0
  84. package/dist/hermes/runtime/hermes-runtime-command-utils.js +19 -0
  85. package/dist/hermes/runtime/hermes-runtime-command-utils.js.map +1 -0
  86. package/dist/hermes/runtime/hermes-runtime-cron.d.ts +11 -0
  87. package/dist/hermes/runtime/hermes-runtime-cron.js +301 -0
  88. package/dist/hermes/runtime/hermes-runtime-cron.js.map +1 -0
  89. package/dist/hermes/runtime/hermes-runtime-history.d.ts +2 -0
  90. package/dist/hermes/runtime/hermes-runtime-history.js +249 -0
  91. package/dist/hermes/runtime/hermes-runtime-history.js.map +1 -0
  92. package/dist/hermes/runtime/hermes-runtime-lifecycle.d.ts +9 -0
  93. package/dist/hermes/runtime/hermes-runtime-lifecycle.js +111 -0
  94. package/dist/hermes/runtime/hermes-runtime-lifecycle.js.map +1 -0
  95. package/dist/hermes/runtime/hermes-runtime-models.d.ts +29 -0
  96. package/dist/hermes/runtime/hermes-runtime-models.js +125 -0
  97. package/dist/hermes/runtime/hermes-runtime-models.js.map +1 -0
  98. package/dist/hermes/runtime/hermes-runtime-process.d.ts +24 -0
  99. package/dist/hermes/runtime/hermes-runtime-process.js +147 -0
  100. package/dist/hermes/runtime/hermes-runtime-process.js.map +1 -0
  101. package/dist/hermes/runtime/hermes-runtime-sessions.d.ts +5 -0
  102. package/dist/hermes/runtime/hermes-runtime-sessions.js +88 -0
  103. package/dist/hermes/runtime/hermes-runtime-sessions.js.map +1 -0
  104. package/dist/hermes/runtime/hermes-runtime-skills.d.ts +13 -0
  105. package/dist/hermes/runtime/hermes-runtime-skills.js +322 -0
  106. package/dist/hermes/runtime/hermes-runtime-skills.js.map +1 -0
  107. package/dist/hermes/runtime/hermes-runtime-types.d.ts +19 -0
  108. package/dist/hermes/runtime/hermes-runtime-types.js +2 -0
  109. package/dist/hermes/runtime/hermes-runtime-types.js.map +1 -0
  110. package/dist/hermes/runtime/hermes-runtime-usage.d.ts +22 -0
  111. package/dist/hermes/runtime/hermes-runtime-usage.js +211 -0
  112. package/dist/hermes/runtime/hermes-runtime-usage.js.map +1 -0
  113. package/dist/hermes/runtime/hermes-runtime-values.d.ts +14 -0
  114. package/dist/hermes/runtime/hermes-runtime-values.js +105 -0
  115. package/dist/hermes/runtime/hermes-runtime-values.js.map +1 -0
  116. package/dist/i18n/index.js +4 -0
  117. package/dist/i18n/index.js.map +1 -1
  118. package/dist/index.js +115 -9
  119. package/dist/index.js.map +1 -1
  120. package/dist/openclaw/backups/backup-manager.js.map +1 -0
  121. package/dist/{commands → openclaw/config}/provider-config.js +1 -1
  122. package/dist/openclaw/config/provider-config.js.map +1 -0
  123. package/dist/openclaw/config/provider-registry.js.map +1 -0
  124. package/dist/{relay → openclaw}/gateway-client.js +4 -3
  125. package/dist/openclaw/gateway-client.js.map +1 -0
  126. package/dist/{commands → openclaw/handlers}/local-handlers.d.ts +1 -1
  127. package/dist/{commands → openclaw/handlers}/local-handlers.js +2 -30
  128. package/dist/openclaw/handlers/local-handlers.js.map +1 -0
  129. package/dist/{commands → openclaw/handlers}/provider-handlers.d.ts +1 -1
  130. package/dist/{commands → openclaw/handlers}/provider-handlers.js +3 -3
  131. package/dist/openclaw/handlers/provider-handlers.js.map +1 -0
  132. package/dist/openclaw/relay/chat-history.d.ts +51 -0
  133. package/dist/openclaw/relay/chat-history.js +347 -0
  134. package/dist/openclaw/relay/chat-history.js.map +1 -0
  135. package/dist/{relay → openclaw/relay}/chat-send-attachments.js +12 -1
  136. package/dist/openclaw/relay/chat-send-attachments.js.map +1 -0
  137. package/dist/openclaw/relay/openclaw-voice-input.d.ts +13 -0
  138. package/dist/openclaw/relay/openclaw-voice-input.js +18 -0
  139. package/dist/openclaw/relay/openclaw-voice-input.js.map +1 -0
  140. package/dist/openclaw/relay/outgoing-media-relay.d.ts +11 -0
  141. package/dist/openclaw/relay/outgoing-media-relay.js +120 -0
  142. package/dist/openclaw/relay/outgoing-media-relay.js.map +1 -0
  143. package/dist/{relay → openclaw/relay}/session-context.d.ts +6 -0
  144. package/dist/{relay → openclaw/relay}/session-context.js +53 -3
  145. package/dist/openclaw/relay/session-context.js.map +1 -0
  146. package/dist/openclaw/relay/slash-command-catalog.d.ts +2 -0
  147. package/dist/{relay → openclaw/relay}/slash-command-catalog.generated.d.ts +0 -5
  148. package/dist/{relay → openclaw/relay}/slash-command-catalog.generated.js +0 -6
  149. package/dist/openclaw/relay/slash-command-catalog.generated.js.map +1 -0
  150. package/dist/openclaw/relay/slash-command-catalog.js.map +1 -0
  151. package/dist/openclaw/relay/transcript-dedupe.d.ts +21 -0
  152. package/dist/openclaw/relay/transcript-dedupe.js +211 -0
  153. package/dist/openclaw/relay/transcript-dedupe.js.map +1 -0
  154. package/dist/{relay → openclaw}/relay-manager.d.ts +1 -4
  155. package/dist/openclaw/relay-manager.js +787 -0
  156. package/dist/openclaw/relay-manager.js.map +1 -0
  157. package/dist/{commands → openclaw/runtime}/local-runtime.d.ts +1 -17
  158. package/dist/openclaw/runtime/local-runtime.js.map +1 -0
  159. package/dist/openclaw/session-store.d.ts +1 -0
  160. package/dist/openclaw/session-store.js +70 -0
  161. package/dist/openclaw/session-store.js.map +1 -0
  162. package/dist/platform/service-manager-common.d.ts +5 -2
  163. package/dist/platform/service-manager-common.js +18 -7
  164. package/dist/platform/service-manager-common.js.map +1 -1
  165. package/dist/platform/service-manager.d.ts +16 -5
  166. package/dist/platform/service-manager.js +85 -50
  167. package/dist/platform/service-manager.js.map +1 -1
  168. package/dist/runtime-adapters.d.ts +19 -0
  169. package/dist/runtime-adapters.js +39 -0
  170. package/dist/runtime-adapters.js.map +1 -0
  171. package/package.json +3 -3
  172. package/dist/commands/backup-manager.js.map +0 -1
  173. package/dist/commands/local-handlers.js.map +0 -1
  174. package/dist/commands/local-runtime.js.map +0 -1
  175. package/dist/commands/provider-config.js.map +0 -1
  176. package/dist/commands/provider-handlers.js.map +0 -1
  177. package/dist/commands/provider-registry.js.map +0 -1
  178. package/dist/commands/send-file-utils.js.map +0 -1
  179. package/dist/commands/voice-reply.d.ts +0 -39
  180. package/dist/commands/voice-reply.js +0 -329
  181. package/dist/commands/voice-reply.js.map +0 -1
  182. package/dist/relay/attachment-staging.js.map +0 -1
  183. package/dist/relay/chat-history.d.ts +0 -29
  184. package/dist/relay/chat-history.js +0 -69
  185. package/dist/relay/chat-history.js.map +0 -1
  186. package/dist/relay/chat-payload.js.map +0 -1
  187. package/dist/relay/chat-send-attachments.js.map +0 -1
  188. package/dist/relay/gateway-client.js.map +0 -1
  189. package/dist/relay/office-payload.js.map +0 -1
  190. package/dist/relay/reconnect.js.map +0 -1
  191. package/dist/relay/relay-manager.js +0 -644
  192. package/dist/relay/relay-manager.js.map +0 -1
  193. package/dist/relay/session-context.js.map +0 -1
  194. package/dist/relay/slash-command-catalog.d.ts +0 -8
  195. package/dist/relay/slash-command-catalog.generated.js.map +0 -1
  196. package/dist/relay/slash-command-catalog.js.map +0 -1
  197. package/dist/relay/voice-reply-preference.d.ts +0 -25
  198. package/dist/relay/voice-reply-preference.js +0 -103
  199. package/dist/relay/voice-reply-preference.js.map +0 -1
  200. /package/dist/{relay → core/relay}/attachment-staging.d.ts +0 -0
  201. /package/dist/{relay → core/relay}/attachment-staging.js +0 -0
  202. /package/dist/{relay → core/relay}/chat-payload.d.ts +0 -0
  203. /package/dist/{commands/send-file-utils.d.ts → core/relay/file-upload-utils.d.ts} +0 -0
  204. /package/dist/{relay → core/relay}/office-payload.d.ts +0 -0
  205. /package/dist/{relay → core/relay}/office-payload.js +0 -0
  206. /package/dist/{relay → core/relay}/reconnect.d.ts +0 -0
  207. /package/dist/{relay → core/relay}/reconnect.js +0 -0
  208. /package/dist/{commands → openclaw/backups}/backup-manager.d.ts +0 -0
  209. /package/dist/{commands → openclaw/backups}/backup-manager.js +0 -0
  210. /package/dist/{commands → openclaw/config}/provider-config.d.ts +0 -0
  211. /package/dist/{commands → openclaw/config}/provider-registry.d.ts +0 -0
  212. /package/dist/{commands → openclaw/config}/provider-registry.js +0 -0
  213. /package/dist/{relay → openclaw}/gateway-client.d.ts +0 -0
  214. /package/dist/{relay → openclaw/relay}/chat-send-attachments.d.ts +0 -0
  215. /package/dist/{relay → openclaw/relay}/slash-command-catalog.js +0 -0
  216. /package/dist/{commands → openclaw/runtime}/local-runtime.js +0 -0
@@ -0,0 +1,22 @@
1
+ import type { HermesUsageSnapshot } from "./hermes-runtime-types.js";
2
+ import { parseHermesSessionsList } from "../hermes-session-store.js";
3
+ export declare function listHermesSessions(): Promise<ReturnType<typeof parseHermesSessionsList>>;
4
+ export declare function readHermesStatusSnapshot(): HermesUsageSnapshot;
5
+ export declare function collectHermesUsageSnapshot(hermesSessionId?: string): Promise<HermesUsageSnapshot>;
6
+ export declare function parseHermesStatusSnapshot(output: string): HermesUsageSnapshot;
7
+ export declare function parseHermesSessionUsageSnapshot(output: string): HermesUsageSnapshot;
8
+ export declare function readHermesConfigSnapshot(): {
9
+ model?: string;
10
+ provider?: string;
11
+ providers: string[];
12
+ };
13
+ export declare function hermesConfiguredProviderIds(config: {
14
+ provider?: string;
15
+ providers: string[];
16
+ }, currentProvider?: string): string[];
17
+ export declare function isHermesChatModel(modelId: string, modelRecord: Record<string, unknown>): boolean;
18
+ export declare function readHermesContextLimit(model: string, provider?: string): number | undefined;
19
+ export declare function hermesModelsDevProviderId(provider?: string): string | undefined;
20
+ export declare function normalizeModelId(model: string | undefined): string;
21
+ export declare function normalizeProviderId(provider: string | undefined): string;
22
+ export declare function normalizedProviderMatches(left: string | undefined, right: string | undefined): boolean;
@@ -0,0 +1,211 @@
1
+ import { readFileSync, readdirSync, statSync } from "fs";
2
+ import { join } from "path";
3
+ import { HERMES_HOME_DIR, HERMES_LOG_DIR, HERMES_MODELS_DEV_CACHE_FILE, runHermes, stripAnsi, } from "./hermes-runtime-process.js";
4
+ import { firstNonNegativeInteger, firstPositiveInteger, mergeHermesUsageSnapshots, nonNegativeInteger, parseJsonObject, parseMaybeJsonObject, stringValue, toRecord, } from "./hermes-runtime-values.js";
5
+ import { listStoredHermesSessions, mergeLiveHermesSessionsWithStoredAliases, parseHermesSessionsList, } from "../hermes-session-store.js";
6
+ export async function listHermesSessions() {
7
+ const output = runHermes(["sessions", "list"]);
8
+ const parsed = parseHermesSessionsList(output);
9
+ const stored = await listStoredHermesSessions();
10
+ return mergeLiveHermesSessionsWithStoredAliases(parsed, stored);
11
+ }
12
+ export function readHermesStatusSnapshot() {
13
+ try {
14
+ return enrichHermesUsageSnapshot(parseHermesStatusSnapshot(runHermes(["status"], 10_000)));
15
+ }
16
+ catch {
17
+ return {};
18
+ }
19
+ }
20
+ export async function collectHermesUsageSnapshot(hermesSessionId) {
21
+ const status = readHermesStatusSnapshot();
22
+ const sessionId = hermesSessionId ?? (await latestHermesSessionId());
23
+ if (!sessionId) {
24
+ return status;
25
+ }
26
+ try {
27
+ const output = runHermes(["sessions", "export", "-", "--session-id", sessionId], 10 * 60_000);
28
+ return enrichHermesUsageSnapshot(mergeHermesUsageSnapshots(status, parseHermesSessionUsageSnapshot(output), { hermesSessionId: sessionId }));
29
+ }
30
+ catch {
31
+ return {
32
+ ...status,
33
+ hermesSessionId: sessionId,
34
+ };
35
+ }
36
+ }
37
+ export function parseHermesStatusSnapshot(output) {
38
+ const snapshot = {};
39
+ for (const rawLine of stripAnsi(output).split(/\r?\n/)) {
40
+ const line = rawLine.trim();
41
+ const model = line.match(/^Model:\s*(.+)$/i)?.[1]?.trim();
42
+ if (model && model !== "--") {
43
+ snapshot.currentModel = model;
44
+ continue;
45
+ }
46
+ const provider = line.match(/^Provider:\s*(.+)$/i)?.[1]?.trim();
47
+ if (provider && provider !== "--") {
48
+ snapshot.provider = provider;
49
+ }
50
+ }
51
+ return snapshot;
52
+ }
53
+ export function parseHermesSessionUsageSnapshot(output) {
54
+ const record = parseJsonObject(output);
55
+ if (!record) {
56
+ return {};
57
+ }
58
+ const modelConfig = parseMaybeJsonObject(record.model_config);
59
+ return mergeHermesUsageSnapshots({
60
+ currentModel: stringValue(record.model) ?? stringValue(record.currentModel) ?? stringValue(record.current_model),
61
+ contextUsage: firstNonNegativeInteger(record.input_tokens, record.prompt_tokens, record.contextUsage, record.context_usage),
62
+ contextLimit: firstPositiveInteger(record.contextLimit, record.context_limit, record.maxInputTokens, record.max_input_tokens, record.contextWindow, record.context_window, record.contextTokens, record.context_tokens, modelConfig?.contextLimit, modelConfig?.context_limit, modelConfig?.maxInputTokens, modelConfig?.max_input_tokens, modelConfig?.contextWindow, modelConfig?.context_window, modelConfig?.contextTokens, modelConfig?.context_tokens, modelConfig?.maxContextTokens, modelConfig?.max_context_tokens),
63
+ });
64
+ }
65
+ export function readHermesConfigSnapshot() {
66
+ try {
67
+ const raw = readFileSync(join(HERMES_HOME_DIR, "config.yaml"), "utf8");
68
+ const model = raw.match(/^\s{2}default:\s*(.+)\s*$/m)?.[1]?.trim().replace(/^['"]|['"]$/g, "");
69
+ const provider = raw.match(/^\s{2}provider:\s*(.+)\s*$/m)?.[1]?.trim().replace(/^['"]|['"]$/g, "");
70
+ const providers = [];
71
+ const providerBlock = raw.match(/^providers:\s*\n([\s\S]*?)(?=^[^\s#][^:\n]*:|\Z)/m)?.[1] ?? "";
72
+ for (const match of providerBlock.matchAll(/^\s{2}([^:\s][^:]*):\s*$/gm)) {
73
+ providers.push(match[1].trim());
74
+ }
75
+ return { model, provider, providers };
76
+ }
77
+ catch {
78
+ return { providers: [] };
79
+ }
80
+ }
81
+ export function hermesConfiguredProviderIds(config, currentProvider) {
82
+ const ids = [];
83
+ for (const candidate of [config.provider, ...config.providers]) {
84
+ if (candidate && candidate.trim().length > 0 && !ids.some((id) => normalizedProviderMatches(id, candidate))) {
85
+ ids.push(candidate.trim());
86
+ }
87
+ }
88
+ if (currentProvider && !ids.some((id) => normalizedProviderMatches(id, currentProvider))) {
89
+ ids.push(currentProvider.trim());
90
+ }
91
+ return ids;
92
+ }
93
+ export function isHermesChatModel(modelId, modelRecord) {
94
+ const family = stringValue(modelRecord.family)?.toLowerCase() ?? "";
95
+ const normalizedId = modelId.toLowerCase();
96
+ if (family.includes("embedding") || normalizedId.includes("embedding")) {
97
+ return false;
98
+ }
99
+ const modalities = toRecord(modelRecord.modalities);
100
+ const output = Array.isArray(modalities.output) ? modalities.output : undefined;
101
+ return !output || output.includes("text");
102
+ }
103
+ async function latestHermesSessionId() {
104
+ const sessions = await listHermesSessions();
105
+ return sessions[0]?.hermesSessionId;
106
+ }
107
+ function enrichHermesUsageSnapshot(snapshot) {
108
+ if (!snapshot.currentModel || snapshot.contextLimit !== undefined) {
109
+ return snapshot;
110
+ }
111
+ const contextLimit = readHermesContextLimit(snapshot.currentModel, snapshot.provider);
112
+ return contextLimit !== undefined ? { ...snapshot, contextLimit } : snapshot;
113
+ }
114
+ export function readHermesContextLimit(model, provider) {
115
+ return readHermesContextLimitFromLogs(model)
116
+ ?? readHermesContextLimitFromModelsDevCache(model, provider);
117
+ }
118
+ function readHermesContextLimitFromLogs(model) {
119
+ const normalizedModel = normalizeModelId(model);
120
+ try {
121
+ const logFiles = readdirSync(HERMES_LOG_DIR)
122
+ .filter((name) => name.endsWith(".log"))
123
+ .map((name) => join(HERMES_LOG_DIR, name))
124
+ .sort((left, right) => statSync(left).mtimeMs - statSync(right).mtimeMs);
125
+ let latest;
126
+ for (const filePath of logFiles) {
127
+ const content = readFileSync(filePath, "utf8");
128
+ const pattern = /Cached context length\s+([^\s@]+)@[^\n]*?->\s*([\d,]+)\s*tokens/gi;
129
+ for (const match of content.matchAll(pattern)) {
130
+ if (normalizeModelId(match[1]) !== normalizedModel) {
131
+ continue;
132
+ }
133
+ const parsed = nonNegativeInteger(match[2]?.replace(/,/g, ""));
134
+ if (parsed !== undefined && parsed > 0) {
135
+ latest = parsed;
136
+ }
137
+ }
138
+ }
139
+ return latest;
140
+ }
141
+ catch {
142
+ return undefined;
143
+ }
144
+ }
145
+ function readHermesContextLimitFromModelsDevCache(model, provider) {
146
+ try {
147
+ const raw = readFileSync(HERMES_MODELS_DEV_CACHE_FILE, "utf8");
148
+ const cache = JSON.parse(raw);
149
+ if (!cache || typeof cache !== "object" || Array.isArray(cache)) {
150
+ return undefined;
151
+ }
152
+ const providerId = hermesModelsDevProviderId(provider);
153
+ if (!providerId) {
154
+ return undefined;
155
+ }
156
+ const providerRecord = toRecord(cache[providerId]);
157
+ const models = toRecord(providerRecord.models);
158
+ const normalizedModel = normalizeModelId(model);
159
+ for (const [candidate, entry] of Object.entries(models)) {
160
+ if (normalizeModelId(candidate) !== normalizedModel) {
161
+ continue;
162
+ }
163
+ const limit = toRecord(toRecord(entry).limit);
164
+ const parsed = firstPositiveInteger(limit.context, limit.input, toRecord(entry).context_window, toRecord(entry).contextWindow);
165
+ if (parsed !== undefined) {
166
+ return parsed;
167
+ }
168
+ }
169
+ }
170
+ catch {
171
+ return undefined;
172
+ }
173
+ return undefined;
174
+ }
175
+ export function hermesModelsDevProviderId(provider) {
176
+ const normalized = provider?.toLowerCase() ?? "";
177
+ if (normalized.includes("openai")) {
178
+ return "openai";
179
+ }
180
+ if (normalized.includes("minimax")) {
181
+ return "minimax";
182
+ }
183
+ if (normalized.includes("anthropic")) {
184
+ return "anthropic";
185
+ }
186
+ if (normalized.includes("google") || normalized.includes("gemini")) {
187
+ return "google";
188
+ }
189
+ if (normalized.includes("deepseek")) {
190
+ return "deepseek";
191
+ }
192
+ if (normalized.includes("openrouter")) {
193
+ return "openrouter";
194
+ }
195
+ const explicitProvider = provider?.trim().toLowerCase();
196
+ return explicitProvider || undefined;
197
+ }
198
+ export function normalizeModelId(model) {
199
+ const normalized = model?.trim().toLowerCase() ?? "";
200
+ const slashIndex = normalized.lastIndexOf("/");
201
+ return slashIndex >= 0 ? normalized.slice(slashIndex + 1) : normalized;
202
+ }
203
+ export function normalizeProviderId(provider) {
204
+ return provider?.trim().toLowerCase().replace(/[^a-z0-9]+/g, "") ?? "";
205
+ }
206
+ export function normalizedProviderMatches(left, right) {
207
+ const normalizedLeft = normalizeProviderId(left);
208
+ const normalizedRight = normalizeProviderId(right);
209
+ return normalizedLeft.length > 0 && normalizedLeft === normalizedRight;
210
+ }
211
+ //# sourceMappingURL=hermes-runtime-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-runtime-usage.js","sourceRoot":"","sources":["../../../src/hermes/runtime/hermes-runtime-usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { HermesUsageSnapshot } from "./hermes-runtime-types.js";
2
+ export declare function sanitizeFileName(fileName: string): string;
3
+ export declare function toRecord(value: unknown): Record<string, unknown>;
4
+ export declare function stringParam(record: Record<string, unknown>, ...keys: string[]): string | undefined;
5
+ export declare function numberParam(record: Record<string, unknown>, key: string): number | undefined;
6
+ export declare function stringValue(value: unknown): string | undefined;
7
+ export declare function booleanValue(value: unknown): boolean;
8
+ export declare function compactStringArray(values: Array<string | undefined>): string[];
9
+ export declare function nonNegativeInteger(value: unknown): number | undefined;
10
+ export declare function firstNonNegativeInteger(...values: unknown[]): number | undefined;
11
+ export declare function firstPositiveInteger(...values: unknown[]): number | undefined;
12
+ export declare function mergeHermesUsageSnapshots(...snapshots: HermesUsageSnapshot[]): HermesUsageSnapshot;
13
+ export declare function parseJsonObject(output: string): Record<string, unknown> | undefined;
14
+ export declare function parseMaybeJsonObject(value: unknown): Record<string, unknown> | undefined;
@@ -0,0 +1,105 @@
1
+ import { randomUUID } from "crypto";
2
+ import { basename } from "path";
3
+ import { stripAnsi } from "./hermes-runtime-process.js";
4
+ export function sanitizeFileName(fileName) {
5
+ const base = basename(fileName).replace(/[^\w.\- ()[\]]/g, "_").slice(0, 160);
6
+ return base || `attachment-${randomUUID()}`;
7
+ }
8
+ export function toRecord(value) {
9
+ return value && typeof value === "object" && !Array.isArray(value) ? value : {};
10
+ }
11
+ export function stringParam(record, ...keys) {
12
+ for (const key of keys) {
13
+ const value = record[key];
14
+ if (typeof value === "string" && value.trim()) {
15
+ return value.trim();
16
+ }
17
+ }
18
+ return undefined;
19
+ }
20
+ export function numberParam(record, key) {
21
+ const value = record[key];
22
+ const parsed = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN;
23
+ return Number.isFinite(parsed) ? Math.round(parsed) : undefined;
24
+ }
25
+ export function stringValue(value) {
26
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
27
+ }
28
+ export function booleanValue(value) {
29
+ return value === true;
30
+ }
31
+ export function compactStringArray(values) {
32
+ return values.filter((value) => typeof value === "string" && value.trim().length > 0);
33
+ }
34
+ export function nonNegativeInteger(value) {
35
+ const parsed = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN;
36
+ if (!Number.isFinite(parsed) || parsed < 0) {
37
+ return undefined;
38
+ }
39
+ return Math.floor(parsed);
40
+ }
41
+ export function firstNonNegativeInteger(...values) {
42
+ for (const value of values) {
43
+ const parsed = nonNegativeInteger(value);
44
+ if (parsed !== undefined) {
45
+ return parsed;
46
+ }
47
+ }
48
+ return undefined;
49
+ }
50
+ export function firstPositiveInteger(...values) {
51
+ for (const value of values) {
52
+ const parsed = nonNegativeInteger(value);
53
+ if (parsed !== undefined && parsed > 0) {
54
+ return parsed;
55
+ }
56
+ }
57
+ return undefined;
58
+ }
59
+ export function mergeHermesUsageSnapshots(...snapshots) {
60
+ const merged = {};
61
+ for (const snapshot of snapshots) {
62
+ if (snapshot.currentModel !== undefined)
63
+ merged.currentModel = snapshot.currentModel;
64
+ if (snapshot.provider !== undefined)
65
+ merged.provider = snapshot.provider;
66
+ if (snapshot.contextUsage !== undefined)
67
+ merged.contextUsage = snapshot.contextUsage;
68
+ if (snapshot.contextLimit !== undefined)
69
+ merged.contextLimit = snapshot.contextLimit;
70
+ if (snapshot.hermesSessionId !== undefined)
71
+ merged.hermesSessionId = snapshot.hermesSessionId;
72
+ }
73
+ return merged;
74
+ }
75
+ export function parseJsonObject(output) {
76
+ const clean = stripAnsi(output).trim();
77
+ const candidates = [clean];
78
+ const firstBrace = clean.indexOf("{");
79
+ const lastBrace = clean.lastIndexOf("}");
80
+ if (firstBrace >= 0 && lastBrace > firstBrace) {
81
+ candidates.push(clean.slice(firstBrace, lastBrace + 1));
82
+ }
83
+ for (const candidate of candidates) {
84
+ try {
85
+ const parsed = JSON.parse(candidate);
86
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
87
+ return parsed;
88
+ }
89
+ }
90
+ catch {
91
+ // try next candidate
92
+ }
93
+ }
94
+ return undefined;
95
+ }
96
+ export function parseMaybeJsonObject(value) {
97
+ if (value && typeof value === "object" && !Array.isArray(value)) {
98
+ return value;
99
+ }
100
+ if (typeof value === "string" && value.trim().startsWith("{")) {
101
+ return parseJsonObject(value);
102
+ }
103
+ return undefined;
104
+ }
105
+ //# sourceMappingURL=hermes-runtime-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes-runtime-values.js","sourceRoot":"","sources":["../../../src/hermes/runtime/hermes-runtime-values.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,7 @@ const en = {
60
60
  "status.paired": "Config: ✓ Paired",
61
61
  "status.displayName": (name) => ` Display name : ${name}`,
62
62
  "status.gatewayId": (id) => ` Gateway ID : ${id}`,
63
+ "status.gatewayType": (type) => ` Gateway type : ${type}`,
63
64
  "status.relayServer": (url) => ` Relay server : ${url}`,
64
65
  "status.configCorrupted": "Config: ✗ File exists but is corrupted",
65
66
  "status.gateway": (url) => `\nGateway: ${url}`,
@@ -69,6 +70,7 @@ const en = {
69
70
  "status.serviceLog": (path) => ` Log : ${path}`,
70
71
  "status.relayHealth": (icon, detail) => ` Relay : ${icon} ${detail}`,
71
72
  "status.gatewayHealth": (icon, detail) => ` Gateway : ${icon} ${detail}`,
73
+ "status.agentHealth": (icon, detail) => ` Agent : ${icon} ${detail}`,
72
74
  "status.serviceNotRunning": "\nService: ⚠ Installed but not running",
73
75
  "status.serviceFile": (path) => ` Service file : ${path}`,
74
76
  "status.serviceStart": (command) => ` Start : ${command}`,
@@ -146,6 +148,7 @@ const zh = {
146
148
  "status.paired": "配置:✓ 已配对",
147
149
  "status.displayName": (name) => ` 显示名称:${name}`,
148
150
  "status.gatewayId": (id) => ` 网关 ID: ${id}`,
151
+ "status.gatewayType": (type) => ` 网关类型:${type}`,
149
152
  "status.relayServer": (url) => ` 中继服务器:${url}`,
150
153
  "status.configCorrupted": "配置:✗ 文件存在但已损坏",
151
154
  "status.gateway": (url) => `\n网关地址:${url}`,
@@ -155,6 +158,7 @@ const zh = {
155
158
  "status.serviceLog": (path) => ` 日志:${path}`,
156
159
  "status.relayHealth": (icon, detail) => ` 中继连接:${icon} ${detail}`,
157
160
  "status.gatewayHealth": (icon, detail) => ` 网关连接:${icon} ${detail}`,
161
+ "status.agentHealth": (icon, detail) => ` 代理连接:${icon} ${detail}`,
158
162
  "status.serviceNotRunning": "\n服务:⚠ 已安装但未运行",
159
163
  "status.serviceFile": (path) => ` 服务文件:${path}`,
160
164
  "status.serviceStart": (command) => ` 启动命令:${command}`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,12 +10,26 @@ import { installCommand, uninstallCommand, stopCommand, restartCommand, resetCom
10
10
  import { statusCommand } from "./commands/status.js";
11
11
  import { setTokenCommand } from "./commands/set-token.js";
12
12
  import { updateCommand } from "./commands/update.js";
13
+ import { setActiveProfile } from "./config/profile.js";
13
14
  const require = createRequire(import.meta.url);
14
15
  const { version } = require("../package.json");
15
16
  ensureUserEnvFile();
16
17
  loadAgentEnv();
17
18
  ensureWindowsConsoleUtf8();
18
19
  const program = new Command();
20
+ const profileOption = ["-p, --profile <name>", "Profile name (for example: hermes, openclaw)"];
21
+ const LOCAL_RELAY_SERVER_URL = "http://127.0.0.1:8080";
22
+ async function runPairCommand(opts) {
23
+ setActiveProfile(opts.profile);
24
+ await pairCommand({
25
+ ...opts,
26
+ server: opts.local ? LOCAL_RELAY_SERVER_URL : opts.server,
27
+ });
28
+ }
29
+ function runWithProfile(profile, action) {
30
+ setActiveProfile(profile);
31
+ action();
32
+ }
19
33
  program
20
34
  .name("clawconnect")
21
35
  .description("ClawConnect host agent — connects OpenClaw gateway hosts to your relay server")
@@ -25,10 +39,53 @@ program
25
39
  .description("Register with relay server and display QR code for iOS pairing")
26
40
  .option("-s, --server <url>", `Relay server URL (default: CLAWCONNECT_RELAY_SERVER_URL or ${DEFAULT_RELAY_SERVER_URL})`)
27
41
  .option("-n, --name <name>", "Display name for this host")
42
+ .option("--gateway-type <type>", "Gateway type: openclaw or hermes", "openclaw")
43
+ .option(...profileOption)
44
+ .option("--local", `Use local relay server (${LOCAL_RELAY_SERVER_URL})`, false)
28
45
  .option("--code-only", "Print only the access code and skip QR code output", false)
29
46
  .action(async (opts) => {
30
47
  try {
31
- await pairCommand(opts);
48
+ await runPairCommand(opts);
49
+ }
50
+ catch (err) {
51
+ console.error("Error:", err instanceof Error ? err.message : err);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ program
56
+ .command("pair-openclaw")
57
+ .description("Shortcut: pair an OpenClaw gateway using profile 'openclaw'")
58
+ .option("-s, --server <url>", `Relay server URL (default: CLAWCONNECT_RELAY_SERVER_URL or ${DEFAULT_RELAY_SERVER_URL})`)
59
+ .option("-n, --name <name>", "Display name for this host", "Mac OpenClaw")
60
+ .option("--local", `Use local relay server (${LOCAL_RELAY_SERVER_URL})`, false)
61
+ .option("--code-only", "Print only the access code and skip QR code output", false)
62
+ .action(async (opts) => {
63
+ try {
64
+ await runPairCommand({
65
+ ...opts,
66
+ profile: "openclaw",
67
+ gatewayType: "openclaw",
68
+ });
69
+ }
70
+ catch (err) {
71
+ console.error("Error:", err instanceof Error ? err.message : err);
72
+ process.exit(1);
73
+ }
74
+ });
75
+ program
76
+ .command("pair-hermes")
77
+ .description("Shortcut: pair a Hermes Agent gateway using profile 'hermes'")
78
+ .option("-s, --server <url>", `Relay server URL (default: CLAWCONNECT_RELAY_SERVER_URL or ${DEFAULT_RELAY_SERVER_URL})`)
79
+ .option("-n, --name <name>", "Display name for this host", "Mac Hermes Agent")
80
+ .option("--local", `Use local relay server (${LOCAL_RELAY_SERVER_URL})`, false)
81
+ .option("--code-only", "Print only the access code and skip QR code output", false)
82
+ .action(async (opts) => {
83
+ try {
84
+ await runPairCommand({
85
+ ...opts,
86
+ profile: "hermes",
87
+ gatewayType: "hermes",
88
+ });
32
89
  }
33
90
  catch (err) {
34
91
  console.error("Error:", err instanceof Error ? err.message : err);
@@ -41,9 +98,11 @@ program
41
98
  .argument("<path>", "Path to the local file")
42
99
  .option("-g, --gateway <id>", "Override gateway ID from local config")
43
100
  .option("-s, --session <key>", "Target chat session key (defaults to the latest active session)")
101
+ .option(...profileOption)
44
102
  .option("--json", "Print the upload result as JSON", false)
45
103
  .action(async (filePath, opts) => {
46
104
  try {
105
+ setActiveProfile(opts.profile);
47
106
  await sendFileCommand({
48
107
  filePath,
49
108
  gateway: opts.gateway,
@@ -59,8 +118,10 @@ program
59
118
  program
60
119
  .command("run")
61
120
  .description("Run relay client in foreground (used by the background service manager)")
62
- .action(async () => {
121
+ .option(...profileOption)
122
+ .action(async (opts) => {
63
123
  try {
124
+ setActiveProfile(opts.profile);
64
125
  await runCommand();
65
126
  }
66
127
  catch (err) {
@@ -71,38 +132,81 @@ program
71
132
  program
72
133
  .command("stop")
73
134
  .description("Stop relay client background service")
74
- .action(() => {
135
+ .option(...profileOption)
136
+ .action((opts) => {
137
+ setActiveProfile(opts.profile);
75
138
  stopCommand();
76
139
  });
140
+ program
141
+ .command("stop-openclaw")
142
+ .description("Shortcut: stop the OpenClaw profile service")
143
+ .action(() => {
144
+ runWithProfile("openclaw", stopCommand);
145
+ });
146
+ program
147
+ .command("stop-hermes")
148
+ .description("Shortcut: stop the Hermes Agent profile service")
149
+ .action(() => {
150
+ runWithProfile("hermes", stopCommand);
151
+ });
77
152
  program
78
153
  .command("status")
79
154
  .description("Show pairing config, gateway URL, and background service status")
155
+ .option(...profileOption)
156
+ .action((opts) => {
157
+ setActiveProfile(opts.profile === "all" ? undefined : opts.profile);
158
+ statusCommand(opts);
159
+ });
160
+ program
161
+ .command("status-all")
162
+ .description("Shortcut: show all paired ClawConnect profiles")
80
163
  .action(() => {
81
- statusCommand();
164
+ setActiveProfile(undefined);
165
+ statusCommand({ profile: "all" });
82
166
  });
83
167
  program
84
168
  .command("install")
85
169
  .description("Register as a background service (launchd on macOS, systemd --user on Linux, Startup on Windows)")
86
- .action(() => {
170
+ .option(...profileOption)
171
+ .action((opts) => {
172
+ setActiveProfile(opts.profile);
87
173
  installCommand();
88
174
  });
89
175
  program
90
176
  .command("restart")
91
177
  .description("Restart the relay background service")
92
- .action(() => {
178
+ .option(...profileOption)
179
+ .action((opts) => {
180
+ setActiveProfile(opts.profile);
93
181
  restartCommand();
94
182
  });
183
+ program
184
+ .command("restart-openclaw")
185
+ .description("Shortcut: restart the OpenClaw profile service")
186
+ .action(() => {
187
+ runWithProfile("openclaw", restartCommand);
188
+ });
189
+ program
190
+ .command("restart-hermes")
191
+ .description("Shortcut: restart the Hermes Agent profile service")
192
+ .action(() => {
193
+ runWithProfile("hermes", restartCommand);
194
+ });
95
195
  program
96
196
  .command("uninstall")
97
197
  .description("Remove background service")
98
- .action(() => {
198
+ .option(...profileOption)
199
+ .action((opts) => {
200
+ setActiveProfile(opts.profile);
99
201
  uninstallCommand();
100
202
  });
101
203
  program
102
204
  .command("set-token")
103
205
  .description("Set the local OpenClaw gateway token (needed when using token auth)")
104
- .action(async () => {
206
+ .option(...profileOption)
207
+ .action(async (opts) => {
105
208
  try {
209
+ setActiveProfile(opts.profile);
106
210
  await setTokenCommand();
107
211
  }
108
212
  catch (err) {
@@ -113,7 +217,9 @@ program
113
217
  program
114
218
  .command("reset")
115
219
  .description("Clear saved config and stop service — use when switching servers or on auth errors")
116
- .action(() => {
220
+ .option(...profileOption)
221
+ .action((opts) => {
222
+ setActiveProfile(opts.profile);
117
223
  resetCommand();
118
224
  });
119
225
  program