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.
- package/README.md +142 -34
- package/README.zh-CN.md +152 -44
- package/dist/commands/install.js +10 -4
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/pair.d.ts +6 -0
- package/dist/commands/pair.js +78 -10
- package/dist/commands/pair.js.map +1 -1
- package/dist/commands/run.js +14 -17
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/send-file.d.ts +3 -24
- package/dist/commands/send-file.js +22 -449
- package/dist/commands/send-file.js.map +1 -1
- package/dist/commands/status.d.ts +13 -1
- package/dist/commands/status.js +58 -15
- package/dist/commands/status.js.map +1 -1
- package/dist/config/config.d.ts +6 -11
- package/dist/config/config.js +19 -48
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.js +4 -5
- package/dist/config/env.js.map +1 -1
- package/dist/config/profile.d.ts +11 -0
- package/dist/config/profile.js +80 -0
- package/dist/config/profile.js.map +1 -0
- package/dist/core/command-types.d.ts +18 -0
- package/dist/core/command-types.js +2 -0
- package/dist/core/command-types.js.map +1 -0
- package/dist/core/relay/attachment-staging.js.map +1 -0
- package/dist/{relay → core/relay}/chat-payload.js +17 -3
- package/dist/core/relay/chat-payload.js.map +1 -0
- package/dist/{commands/send-file-utils.js → core/relay/file-upload-utils.js} +1 -1
- package/dist/core/relay/file-upload-utils.js.map +1 -0
- package/dist/core/relay/file-upload.d.ts +40 -0
- package/dist/core/relay/file-upload.js +401 -0
- package/dist/core/relay/file-upload.js.map +1 -0
- package/dist/core/relay/mobile-chat-run-bridge.d.ts +201 -0
- package/dist/core/relay/mobile-chat-run-bridge.js +192 -0
- package/dist/core/relay/mobile-chat-run-bridge.js.map +1 -0
- package/dist/core/relay/office-payload.js.map +1 -0
- package/dist/core/relay/reconnect.js.map +1 -0
- package/dist/core/relay/relay-server-connection.d.ts +6 -0
- package/dist/core/relay/relay-server-connection.js +32 -0
- package/dist/core/relay/relay-server-connection.js.map +1 -0
- package/dist/core/relay/slash-command-types.d.ts +7 -0
- package/dist/core/relay/slash-command-types.js +2 -0
- package/dist/core/relay/slash-command-types.js.map +1 -0
- package/dist/core/relay/timeline-event-builder.d.ts +86 -0
- package/dist/core/relay/timeline-event-builder.js +199 -0
- package/dist/core/relay/timeline-event-builder.js.map +1 -0
- package/dist/core/relay/timeline-event-log.d.ts +81 -0
- package/dist/core/relay/timeline-event-log.js +254 -0
- package/dist/core/relay/timeline-event-log.js.map +1 -0
- package/dist/core/relay/voice-input.d.ts +11 -0
- package/dist/core/relay/voice-input.js +120 -0
- package/dist/core/relay/voice-input.js.map +1 -0
- package/dist/gateway-profiles.d.ts +8 -0
- package/dist/gateway-profiles.js +24 -0
- package/dist/gateway-profiles.js.map +1 -0
- package/dist/hermes/hermes-relay-manager.d.ts +59 -0
- package/dist/hermes/hermes-relay-manager.js +754 -0
- package/dist/hermes/hermes-relay-manager.js.map +1 -0
- package/dist/hermes/hermes-runtime.d.ts +9 -0
- package/dist/hermes/hermes-runtime.js +9 -0
- package/dist/hermes/hermes-runtime.js.map +1 -0
- package/dist/hermes/hermes-session-store.d.ts +15 -0
- package/dist/hermes/hermes-session-store.js +174 -0
- package/dist/hermes/hermes-session-store.js.map +1 -0
- package/dist/hermes/hermes-voice-input.d.ts +13 -0
- package/dist/hermes/hermes-voice-input.js +27 -0
- package/dist/hermes/hermes-voice-input.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-artifacts.d.ts +3 -0
- package/dist/hermes/runtime/hermes-runtime-artifacts.js +65 -0
- package/dist/hermes/runtime/hermes-runtime-artifacts.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-backups.d.ts +5 -0
- package/dist/hermes/runtime/hermes-runtime-backups.js +128 -0
- package/dist/hermes/runtime/hermes-runtime-backups.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-chat.d.ts +41 -0
- package/dist/hermes/runtime/hermes-runtime-chat.js +723 -0
- package/dist/hermes/runtime/hermes-runtime-chat.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-command-router.d.ts +2 -0
- package/dist/hermes/runtime/hermes-runtime-command-router.js +96 -0
- package/dist/hermes/runtime/hermes-runtime-command-router.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-command-utils.d.ts +3 -0
- package/dist/hermes/runtime/hermes-runtime-command-utils.js +19 -0
- package/dist/hermes/runtime/hermes-runtime-command-utils.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-cron.d.ts +11 -0
- package/dist/hermes/runtime/hermes-runtime-cron.js +301 -0
- package/dist/hermes/runtime/hermes-runtime-cron.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-history.d.ts +2 -0
- package/dist/hermes/runtime/hermes-runtime-history.js +249 -0
- package/dist/hermes/runtime/hermes-runtime-history.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-lifecycle.d.ts +9 -0
- package/dist/hermes/runtime/hermes-runtime-lifecycle.js +111 -0
- package/dist/hermes/runtime/hermes-runtime-lifecycle.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-models.d.ts +29 -0
- package/dist/hermes/runtime/hermes-runtime-models.js +125 -0
- package/dist/hermes/runtime/hermes-runtime-models.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-process.d.ts +24 -0
- package/dist/hermes/runtime/hermes-runtime-process.js +147 -0
- package/dist/hermes/runtime/hermes-runtime-process.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-sessions.d.ts +5 -0
- package/dist/hermes/runtime/hermes-runtime-sessions.js +88 -0
- package/dist/hermes/runtime/hermes-runtime-sessions.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-skills.d.ts +13 -0
- package/dist/hermes/runtime/hermes-runtime-skills.js +322 -0
- package/dist/hermes/runtime/hermes-runtime-skills.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-types.d.ts +19 -0
- package/dist/hermes/runtime/hermes-runtime-types.js +2 -0
- package/dist/hermes/runtime/hermes-runtime-types.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-usage.d.ts +22 -0
- package/dist/hermes/runtime/hermes-runtime-usage.js +211 -0
- package/dist/hermes/runtime/hermes-runtime-usage.js.map +1 -0
- package/dist/hermes/runtime/hermes-runtime-values.d.ts +14 -0
- package/dist/hermes/runtime/hermes-runtime-values.js +105 -0
- package/dist/hermes/runtime/hermes-runtime-values.js.map +1 -0
- package/dist/i18n/index.js +4 -0
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.js +115 -9
- package/dist/index.js.map +1 -1
- package/dist/openclaw/backups/backup-manager.js.map +1 -0
- package/dist/{commands → openclaw/config}/provider-config.js +1 -1
- package/dist/openclaw/config/provider-config.js.map +1 -0
- package/dist/openclaw/config/provider-registry.js.map +1 -0
- package/dist/{relay → openclaw}/gateway-client.js +4 -3
- package/dist/openclaw/gateway-client.js.map +1 -0
- package/dist/{commands → openclaw/handlers}/local-handlers.d.ts +1 -1
- package/dist/{commands → openclaw/handlers}/local-handlers.js +2 -30
- package/dist/openclaw/handlers/local-handlers.js.map +1 -0
- package/dist/{commands → openclaw/handlers}/provider-handlers.d.ts +1 -1
- package/dist/{commands → openclaw/handlers}/provider-handlers.js +3 -3
- package/dist/openclaw/handlers/provider-handlers.js.map +1 -0
- package/dist/openclaw/relay/chat-history.d.ts +51 -0
- package/dist/openclaw/relay/chat-history.js +347 -0
- package/dist/openclaw/relay/chat-history.js.map +1 -0
- package/dist/{relay → openclaw/relay}/chat-send-attachments.js +12 -1
- package/dist/openclaw/relay/chat-send-attachments.js.map +1 -0
- package/dist/openclaw/relay/openclaw-voice-input.d.ts +13 -0
- package/dist/openclaw/relay/openclaw-voice-input.js +18 -0
- package/dist/openclaw/relay/openclaw-voice-input.js.map +1 -0
- package/dist/openclaw/relay/outgoing-media-relay.d.ts +11 -0
- package/dist/openclaw/relay/outgoing-media-relay.js +120 -0
- package/dist/openclaw/relay/outgoing-media-relay.js.map +1 -0
- package/dist/{relay → openclaw/relay}/session-context.d.ts +6 -0
- package/dist/{relay → openclaw/relay}/session-context.js +53 -3
- package/dist/openclaw/relay/session-context.js.map +1 -0
- package/dist/openclaw/relay/slash-command-catalog.d.ts +2 -0
- package/dist/{relay → openclaw/relay}/slash-command-catalog.generated.d.ts +0 -5
- package/dist/{relay → openclaw/relay}/slash-command-catalog.generated.js +0 -6
- package/dist/openclaw/relay/slash-command-catalog.generated.js.map +1 -0
- package/dist/openclaw/relay/slash-command-catalog.js.map +1 -0
- package/dist/openclaw/relay/transcript-dedupe.d.ts +21 -0
- package/dist/openclaw/relay/transcript-dedupe.js +211 -0
- package/dist/openclaw/relay/transcript-dedupe.js.map +1 -0
- package/dist/{relay → openclaw}/relay-manager.d.ts +1 -4
- package/dist/openclaw/relay-manager.js +787 -0
- package/dist/openclaw/relay-manager.js.map +1 -0
- package/dist/{commands → openclaw/runtime}/local-runtime.d.ts +1 -17
- package/dist/openclaw/runtime/local-runtime.js.map +1 -0
- package/dist/openclaw/session-store.d.ts +1 -0
- package/dist/openclaw/session-store.js +70 -0
- package/dist/openclaw/session-store.js.map +1 -0
- package/dist/platform/service-manager-common.d.ts +5 -2
- package/dist/platform/service-manager-common.js +18 -7
- package/dist/platform/service-manager-common.js.map +1 -1
- package/dist/platform/service-manager.d.ts +16 -5
- package/dist/platform/service-manager.js +85 -50
- package/dist/platform/service-manager.js.map +1 -1
- package/dist/runtime-adapters.d.ts +19 -0
- package/dist/runtime-adapters.js +39 -0
- package/dist/runtime-adapters.js.map +1 -0
- package/package.json +3 -3
- package/dist/commands/backup-manager.js.map +0 -1
- package/dist/commands/local-handlers.js.map +0 -1
- package/dist/commands/local-runtime.js.map +0 -1
- package/dist/commands/provider-config.js.map +0 -1
- package/dist/commands/provider-handlers.js.map +0 -1
- package/dist/commands/provider-registry.js.map +0 -1
- package/dist/commands/send-file-utils.js.map +0 -1
- package/dist/commands/voice-reply.d.ts +0 -39
- package/dist/commands/voice-reply.js +0 -329
- package/dist/commands/voice-reply.js.map +0 -1
- package/dist/relay/attachment-staging.js.map +0 -1
- package/dist/relay/chat-history.d.ts +0 -29
- package/dist/relay/chat-history.js +0 -69
- package/dist/relay/chat-history.js.map +0 -1
- package/dist/relay/chat-payload.js.map +0 -1
- package/dist/relay/chat-send-attachments.js.map +0 -1
- package/dist/relay/gateway-client.js.map +0 -1
- package/dist/relay/office-payload.js.map +0 -1
- package/dist/relay/reconnect.js.map +0 -1
- package/dist/relay/relay-manager.js +0 -644
- package/dist/relay/relay-manager.js.map +0 -1
- package/dist/relay/session-context.js.map +0 -1
- package/dist/relay/slash-command-catalog.d.ts +0 -8
- package/dist/relay/slash-command-catalog.generated.js.map +0 -1
- package/dist/relay/slash-command-catalog.js.map +0 -1
- package/dist/relay/voice-reply-preference.d.ts +0 -25
- package/dist/relay/voice-reply-preference.js +0 -103
- package/dist/relay/voice-reply-preference.js.map +0 -1
- /package/dist/{relay → core/relay}/attachment-staging.d.ts +0 -0
- /package/dist/{relay → core/relay}/attachment-staging.js +0 -0
- /package/dist/{relay → core/relay}/chat-payload.d.ts +0 -0
- /package/dist/{commands/send-file-utils.d.ts → core/relay/file-upload-utils.d.ts} +0 -0
- /package/dist/{relay → core/relay}/office-payload.d.ts +0 -0
- /package/dist/{relay → core/relay}/office-payload.js +0 -0
- /package/dist/{relay → core/relay}/reconnect.d.ts +0 -0
- /package/dist/{relay → core/relay}/reconnect.js +0 -0
- /package/dist/{commands → openclaw/backups}/backup-manager.d.ts +0 -0
- /package/dist/{commands → openclaw/backups}/backup-manager.js +0 -0
- /package/dist/{commands → openclaw/config}/provider-config.d.ts +0 -0
- /package/dist/{commands → openclaw/config}/provider-registry.d.ts +0 -0
- /package/dist/{commands → openclaw/config}/provider-registry.js +0 -0
- /package/dist/{relay → openclaw}/gateway-client.d.ts +0 -0
- /package/dist/{relay → openclaw/relay}/chat-send-attachments.d.ts +0 -0
- /package/dist/{relay → openclaw/relay}/slash-command-catalog.js +0 -0
- /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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"}
|
package/dist/i18n/index.js
CHANGED
|
@@ -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}`,
|
package/dist/i18n/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAM7C,MAAM,EAAE,GAA6B;IACnC,OAAO;IACP,wBAAwB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,kCAAkC,EAAE,4BAA4B;IAClG,yBAAyB,EAAE,iIAAiI;IAC5J,oBAAoB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,kCAAkC,MAAM,IAAI,IAAI,EAAE;IAC1F,kBAAkB,EAAE,gCAAgC;IACpD,yBAAyB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,MAAM,IAAI,IAAI,EAAE;IACrF,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,2BAA2B,EAAE,EAAE;IAC1D,aAAa,EAAE,wDAAwD;IACvE,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAiC,IAAI,EAAE;IACpE,wBAAwB,EAAE,iDAAiD;IAE3E,MAAM;IACN,cAAc,EAAE,kCAAkC;IAClD,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,EAAE,EAAE;IAChD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,GAAG,EAAE;IACpD,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,GAAG,EAAE;IACnD,eAAe,EAAE,kBAAkB;IACnC,kBAAkB,EAAE,mCAAmC;IACvD,WAAW,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,OAAO,aAAa,KAAK,KAAK;IAEhF,UAAU;IACV,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,qCAAqC,OAAO,GAAG;IACtF,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,kCAAkC,OAAO,GAAG;IAClF,4BAA4B,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,4BAA4B,IAAI,EAAE;IAC1E,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,mBAAmB,OAAO,EAAE;IAClE,oBAAoB,EAAE,2BAA2B;IACjD,0BAA0B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,OAAO,GAAG;IAC5E,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iCAAiC,OAAO,GAAG;IACjF,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,4BAA4B,OAAO,GAAG;IACtE,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,yCAAyC,OAAO,GAAG;IAC7F,mBAAmB,EAAE,iCAAiC;IACtD,qBAAqB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,+DAA+D,QAAQ,EAAE;IAC9G,uBAAuB,EAAE,2DAA2D;IACpF,uBAAuB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,IAAI,EAAE;IAC5D,4BAA4B,EAAE,0BAA0B;IACxD,kBAAkB,EAAE,uBAAuB;IAC3C,uBAAuB,EAAE,0DAA0D;IAEnF,SAAS;IACT,4BAA4B,EAAE,0GAA0G;IACxI,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,IAAI,EAAE;IACzD,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,OAAO,EAAE;IACtE,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAuB,OAAO,EAAE;IACrE,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,GAAG,GAAG;IAC9C,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,4BAA4B;IAC7D,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,GAAG,GAAG;IACpD,qBAAqB,EAAE,0EAA0E;IACjG,wBAAwB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,gDAAgD,MAAM,eAAe,QAAQ,GAAG;IAChI,yBAAyB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iDAAiD,IAAI,EAAE;IAC5F,4BAA4B,EAAE,+DAA+D;IAC7F,0BAA0B,EAAE,4DAA4D;IACxF,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,oCAAoC,OAAO,GAAG;IACxF,+BAA+B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,0EAA0E,OAAO,4BAA4B;IAC3J,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,oCAAoC,OAAO,GAAG;IACtF,6BAA6B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,0EAA0E,OAAO,GAAG;IAChI,+BAA+B,EAAE,iHAAiH;IAClJ,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,iBAAiB,OAAO,EAAE;IAE5D,SAAS;IACT,cAAc,EAAE,kCAAkC;IAClD,kBAAkB,EAAE,wDAAwD;IAC5E,eAAe,EAAE,qBAAqB;IACtC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,IAAI,EAAE;IAC1D,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,EAAE,EAAE;IACpD,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,GAAG,EAAE;IACxD,wBAAwB,EAAE,2CAA2C;IACrE,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,GAAG,EAAE;IAC/C,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,sBAAsB,OAAO,EAAE;IACtE,4BAA4B,EAAE,0DAA0D;IACxF,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,OAAO,GAAG;IAC3E,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;IAChD,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,IAAI,KAAK,MAAM,EAAE;IACxE,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,IAAI,KAAK,MAAM,EAAE;IAC1E,0BAA0B,EAAE,0CAA0C;IACtE,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,IAAI,EAAE;IAC1D,qBAAqB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,OAAO,EAAE;IAC1D,2BAA2B,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,0CAA0C,QAAQ,EAAE;IAE/F,YAAY;IACZ,oBAAoB,EAAE,wDAAwD;IAC9E,sBAAsB,EAAE,qCAAqC;IAC7D,kBAAkB,EAAE,wEAAwE;IAC5F,kBAAkB,EAAE,wBAAwB;IAC5C,qBAAqB,EAAE,qDAAqD;IAC5E,kBAAkB,EAAE,8EAA8E;IAClG,iBAAiB,EAAE,wCAAwC;IAC3D,gBAAgB,EAAE,8CAA8C;IAChE,kBAAkB,EAAE,kDAAkD;IACtE,kBAAkB,EAAE,kDAAkD;CACvE,CAAC;AAEF,MAAM,EAAE,GAA6B;IACnC,OAAO;IACP,wBAAwB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,EAAE,YAAY;IAC7D,yBAAyB,EAAE,4DAA4D;IACvF,oBAAoB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE;IACnE,kBAAkB,EAAE,aAAa;IACjC,yBAAyB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE;IACrE,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE;IAC7C,aAAa,EAAE,gCAAgC;IAC/C,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,IAAI,EAAE;IACnD,wBAAwB,EAAE,kBAAkB;IAE5C,MAAM;IACN,cAAc,EAAE,wBAAwB;IACxC,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE;IAC5C,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE;IAC5C,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE;IAC5C,eAAe,EAAE,QAAQ;IACzB,kBAAkB,EAAE,aAAa;IACjC,WAAW,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,OAAO,WAAW,KAAK,KAAK;IAElE,UAAU;IACV,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,OAAO,SAAS;IAChE,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,OAAO,UAAU;IAC7D,4BAA4B,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;IACzD,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,OAAO,EAAE;IACxD,oBAAoB,EAAE,WAAW;IACjC,0BAA0B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,OAAO,MAAM;IAC/D,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,OAAO,UAAU;IAC7D,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,WAAW;IACzD,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,OAAO,MAAM;IACrE,mBAAmB,EAAE,eAAe;IACpC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,QAAQ,aAAa;IAClE,uBAAuB,EAAE,6BAA6B;IACtD,uBAAuB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;IACpD,4BAA4B,EAAE,WAAW;IACzC,kBAAkB,EAAE,UAAU;IAC9B,uBAAuB,EAAE,qCAAqC;IAE9D,SAAS;IACT,4BAA4B,EAAE,uDAAuD;IACrF,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,IAAI,EAAE;IACrD,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,OAAO,EAAE;IAC5D,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,OAAO,EAAE;IAC3D,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,GAAG;IAC1C,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS;IAC1C,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,MAAM;IACzC,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,yBAAyB,MAAM,WAAW,QAAQ,GAAG;IACrG,yBAAyB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,oCAAoC,IAAI,EAAE;IAC/E,4BAA4B,EAAE,wBAAwB;IACtD,0BAA0B,EAAE,iBAAiB;IAC7C,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,OAAO,MAAM;IAClE,+BAA+B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,OAAO,oBAAoB;IACrF,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,OAAO,MAAM;IAChE,6BAA6B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,OAAO,YAAY;IAC3E,+BAA+B,EAAE,0CAA0C;IAC3E,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,OAAO,EAAE;IAEpD,SAAS;IACT,cAAc,EAAE,4BAA4B;IAC5C,kBAAkB,EAAE,qCAAqC;IACzD,eAAe,EAAE,WAAW;IAC5B,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE;IAChD,kBAAkB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,EAAE,EAAE;IAC7C,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE;IAC/C,wBAAwB,EAAE,gBAAgB;IAC1C,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE;IAC1C,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,OAAO,EAAE;IAC3D,4BAA4B,EAAE,yCAAyC;IACvE,uBAAuB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,OAAO,GAAG;IAChE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,EAAE;IAC7C,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,IAAI,KAAK,MAAM,EAAE;IACnE,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,IAAI,KAAK,MAAM,EAAE;IACrE,0BAA0B,EAAE,iBAAiB;IAC7C,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE;IAChD,qBAAqB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,OAAO,EAAE;IACvD,2BAA2B,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,QAAQ,OAAO;IAExE,YAAY;IACZ,oBAAoB,EAAE,kCAAkC;IACxD,sBAAsB,EAAE,uBAAuB;IAC/C,kBAAkB,EAAE,+CAA+C;IACnE,kBAAkB,EAAE,aAAa;IACjC,qBAAqB,EAAE,qDAAqD;IAC5E,kBAAkB,EAAE,kDAAkD;IACtE,iBAAiB,EAAE,uBAAuB;IAC1C,gBAAgB,EAAE,0CAA0C;IAC5D,kBAAkB,EAAE,2CAA2C;IAC/D,kBAAkB,EAAE,oCAAoC;CACzD,CAAC;AAEF,SAAS,YAAY;IACnB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IAClF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAErD,+EAA+E;IAC/E,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CACzB,YAAY,EACZ,CAAC,YAAY,EAAE,UAAU,EAAE,oBAAoB,CAAC,EAChD,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CACjC;iBACE,QAAQ,EAAE;iBACV,IAAI,EAAE;iBACN,WAAW,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,MAAM,GAAW,YAAY,EAAE,CAAC;AACtC,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAEvC,MAAM,UAAU,CAAC,CAAC,GAAW,EAAE,GAAG,IAAc;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACxC,IAAI,OAAO,GAAG,KAAK,UAAU;QAAE,OAAQ,GAAa,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9D,OAAO,GAAa,CAAC;AACvB,CAAC"}
|
|
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
|
|
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
|
-
.
|
|
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
|
-
.
|
|
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
|
-
|
|
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
|
-
.
|
|
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
|
-
.
|
|
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
|
-
.
|
|
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
|
-
.
|
|
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
|
-
.
|
|
220
|
+
.option(...profileOption)
|
|
221
|
+
.action((opts) => {
|
|
222
|
+
setActiveProfile(opts.profile);
|
|
117
223
|
resetCommand();
|
|
118
224
|
});
|
|
119
225
|
program
|