@rethinkingstudio/clawpilot 1.0.19 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/provider-config.d.ts +2 -0
- package/dist/commands/provider-config.js +114 -58
- package/dist/commands/provider-config.js.map +1 -1
- package/dist/commands/provider-registry.d.ts +5 -0
- package/dist/commands/provider-registry.js +10 -2
- package/dist/commands/provider-registry.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/relay/gateway-client.js +17 -0
- package/dist/relay/gateway-client.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/provider-config.ts +128 -74
- package/src/commands/provider-registry.ts +15 -2
- package/src/index.ts +3 -1
- package/src/relay/gateway-client.ts +18 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFile, writeFile, mkdir, readdir } from "fs/promises";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { homedir } from "os";
|
|
4
|
+
import { PROVIDER_REGISTRY } from "./provider-registry.js";
|
|
4
5
|
const OPENCLAW_DIR = join(homedir(), ".openclaw");
|
|
5
6
|
const OPENCLAW_CONFIG = join(OPENCLAW_DIR, "openclaw.json");
|
|
6
7
|
const AGENTS_DIR = join(OPENCLAW_DIR, "agents");
|
|
@@ -16,9 +17,8 @@ async function resolveAgentId() {
|
|
|
16
17
|
try {
|
|
17
18
|
const entries = await readdir(AGENTS_DIR, { withFileTypes: true });
|
|
18
19
|
const dirs = entries.filter(e => e.isDirectory()).map(e => e.name);
|
|
19
|
-
if (dirs.length > 0)
|
|
20
|
+
if (dirs.length > 0)
|
|
20
21
|
return dirs[0];
|
|
21
|
-
}
|
|
22
22
|
}
|
|
23
23
|
catch {
|
|
24
24
|
// agents dir missing or unreadable
|
|
@@ -50,60 +50,110 @@ function getNestedObj(root, keys) {
|
|
|
50
50
|
function authProfilesPath(agentId) {
|
|
51
51
|
return join(AGENTS_DIR, agentId, "agent", "auth-profiles.json");
|
|
52
52
|
}
|
|
53
|
+
/** Extract the first model ID from a provider's models array in openclaw.json */
|
|
54
|
+
function extractModelId(providerRaw) {
|
|
55
|
+
const models = providerRaw["models"];
|
|
56
|
+
if (Array.isArray(models) && models.length > 0) {
|
|
57
|
+
const first = models[0];
|
|
58
|
+
return typeof first["id"] === "string" ? first["id"] : null;
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
/** Infer provider type from its id in models.providers */
|
|
63
|
+
function inferType(id) {
|
|
64
|
+
// custom providers have ids like "custom-<uuid>"
|
|
65
|
+
if (id.startsWith("custom-"))
|
|
66
|
+
return "custom";
|
|
67
|
+
return id;
|
|
68
|
+
}
|
|
53
69
|
// ---------------------------------------------------------------------------
|
|
54
70
|
// Public API
|
|
55
71
|
// ---------------------------------------------------------------------------
|
|
56
72
|
export async function listProviderEntries() {
|
|
57
73
|
const config = await readJson(OPENCLAW_CONFIG);
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
const
|
|
61
|
-
// Determine current default
|
|
74
|
+
const agentId = await resolveAgentId();
|
|
75
|
+
const authProfiles = await readJson(authProfilesPath(agentId));
|
|
76
|
+
const profiles = authProfiles["profiles"] ?? {};
|
|
77
|
+
// Determine current default
|
|
62
78
|
const agents = config["agents"] ?? {};
|
|
63
79
|
const defaults = agents["defaults"] ?? {};
|
|
64
80
|
const model = defaults["model"] ?? {};
|
|
65
81
|
const primaryModel = typeof model["primary"] === "string" ? model["primary"] : "";
|
|
66
|
-
// Read auth profiles for key lookup
|
|
67
|
-
const agentId = await resolveAgentId();
|
|
68
|
-
const authProfiles = await readJson(authProfilesPath(agentId));
|
|
69
|
-
const profiles = authProfiles["profiles"] ?? {};
|
|
70
82
|
const entries = [];
|
|
83
|
+
// --- Providers from models.providers (non-builtIn) ---
|
|
84
|
+
const models = config["models"] ?? {};
|
|
85
|
+
const providers = models["providers"] ?? {};
|
|
71
86
|
for (const [id, providerRaw] of Object.entries(providers)) {
|
|
72
|
-
const
|
|
73
|
-
const type =
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
const
|
|
87
|
+
const p = providerRaw ?? {};
|
|
88
|
+
const type = inferType(id);
|
|
89
|
+
const info = PROVIDER_REGISTRY[type];
|
|
90
|
+
const baseUrl = typeof p["baseUrl"] === "string" ? p["baseUrl"] : "";
|
|
91
|
+
const modelId = extractModelId(p);
|
|
92
|
+
// auth-profiles key is "${id}:default"
|
|
93
|
+
const profileKey = `${id}:default`;
|
|
77
94
|
const profileRaw = profiles[profileKey];
|
|
78
95
|
const profile = profileRaw != null && typeof profileRaw === "object" && !Array.isArray(profileRaw)
|
|
79
96
|
? profileRaw
|
|
80
97
|
: null;
|
|
81
|
-
const apiKey = profile != null && typeof profile["
|
|
82
|
-
? profile["apiKey"]
|
|
83
|
-
: null;
|
|
98
|
+
const apiKey = profile != null && typeof profile["key"] === "string" ? profile["key"] : null;
|
|
84
99
|
const hasKey = apiKey != null && apiKey.length > 0;
|
|
85
100
|
const keyMasked = hasKey ? maskKey(apiKey) : null;
|
|
86
|
-
// isDefault: primary model string starts with "<id>/"
|
|
87
101
|
const isDefault = primaryModel === id || primaryModel.startsWith(`${id}/`);
|
|
88
|
-
entries.push({
|
|
102
|
+
entries.push({
|
|
103
|
+
id,
|
|
104
|
+
type,
|
|
105
|
+
name: info?.displayName ?? type,
|
|
106
|
+
baseUrl,
|
|
107
|
+
modelId,
|
|
108
|
+
keyMasked,
|
|
109
|
+
hasKey,
|
|
110
|
+
isDefault,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
// --- Built-in providers (anthropic, google) — detected via auth-profiles ---
|
|
114
|
+
for (const [type, info] of Object.entries(PROVIDER_REGISTRY)) {
|
|
115
|
+
if (!info.builtIn)
|
|
116
|
+
continue;
|
|
117
|
+
const profileKey = `${type}:default`;
|
|
118
|
+
const profileRaw = profiles[profileKey];
|
|
119
|
+
if (profileRaw == null)
|
|
120
|
+
continue; // not configured
|
|
121
|
+
const profile = typeof profileRaw === "object" && !Array.isArray(profileRaw)
|
|
122
|
+
? profileRaw
|
|
123
|
+
: null;
|
|
124
|
+
const apiKey = profile != null && typeof profile["key"] === "string" ? profile["key"] : null;
|
|
125
|
+
const hasKey = apiKey != null && apiKey.length > 0;
|
|
126
|
+
const keyMasked = hasKey ? maskKey(apiKey) : null;
|
|
127
|
+
const isDefault = primaryModel === type || primaryModel.startsWith(`${type}/`);
|
|
128
|
+
entries.push({
|
|
129
|
+
id: type,
|
|
130
|
+
type,
|
|
131
|
+
name: info.displayName,
|
|
132
|
+
baseUrl: info.defaultBaseUrl,
|
|
133
|
+
modelId: info.defaultModelId ?? null,
|
|
134
|
+
keyMasked,
|
|
135
|
+
hasKey,
|
|
136
|
+
isDefault,
|
|
137
|
+
});
|
|
89
138
|
}
|
|
90
139
|
return entries;
|
|
91
140
|
}
|
|
92
141
|
export async function addProvider(params) {
|
|
93
142
|
const { id, type, apiKey, baseUrl, api, apiKeyEnvName, modelId } = params;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
143
|
+
const info = PROVIDER_REGISTRY[type];
|
|
144
|
+
// --- Update openclaw.json (skip for builtIn providers) ---
|
|
145
|
+
if (!info?.builtIn) {
|
|
146
|
+
const config = await readJson(OPENCLAW_CONFIG);
|
|
147
|
+
const models = getNestedObj(config, ["models"]);
|
|
148
|
+
const providers = getNestedObj(models, ["providers"]);
|
|
149
|
+
// "apiKey" is the env var name reference (not the actual key value)
|
|
150
|
+
const providerEntry = { type, baseUrl, api, apiKey: apiKeyEnvName };
|
|
151
|
+
if (modelId !== undefined && modelId.length > 0) {
|
|
152
|
+
providerEntry["models"] = [{ id: modelId, name: modelId }];
|
|
153
|
+
}
|
|
154
|
+
providers[id] = providerEntry;
|
|
155
|
+
await writeJson(OPENCLAW_CONFIG, config);
|
|
101
156
|
}
|
|
102
|
-
providers[id] = providerEntry;
|
|
103
|
-
await writeJson(OPENCLAW_CONFIG, config);
|
|
104
|
-
// Note: writes are not atomic. openclaw.json is updated first, then auth-profiles.json.
|
|
105
|
-
// If auth-profiles write fails, the provider will appear in the list without a key.
|
|
106
|
-
// This is acceptable since config files are user-owned and easily recoverable.
|
|
107
157
|
// --- Update auth-profiles.json (only if apiKey provided) ---
|
|
108
158
|
if (apiKey != null && apiKey.length > 0) {
|
|
109
159
|
const agentId = await resolveAgentId();
|
|
@@ -112,51 +162,57 @@ export async function addProvider(params) {
|
|
|
112
162
|
await mkdir(profilesDir, { recursive: true });
|
|
113
163
|
const authProfiles = await readJson(profilesPath);
|
|
114
164
|
const profiles = getNestedObj(authProfiles, ["profiles"]);
|
|
115
|
-
|
|
116
|
-
|
|
165
|
+
// Profile key is "${id}:default" — for builtIn, id === type
|
|
166
|
+
const profileKey = `${id}:default`;
|
|
167
|
+
profiles[profileKey] = { type: "api_key", provider: type, key: apiKey };
|
|
117
168
|
await writeJson(profilesPath, authProfiles);
|
|
118
169
|
}
|
|
119
170
|
}
|
|
120
171
|
export async function deleteProvider(id) {
|
|
121
|
-
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
: id;
|
|
132
|
-
delete providers[id];
|
|
133
|
-
// Note: writes are not atomic. openclaw.json is updated first, then auth-profiles.json.
|
|
134
|
-
// If auth-profiles write fails, the provider will appear in the list without a key.
|
|
135
|
-
// This is acceptable since config files are user-owned and easily recoverable.
|
|
136
|
-
await writeJson(OPENCLAW_CONFIG, config);
|
|
172
|
+
const type = inferType(id);
|
|
173
|
+
const info = PROVIDER_REGISTRY[type];
|
|
174
|
+
// --- Update openclaw.json (skip for builtIn) ---
|
|
175
|
+
if (!info?.builtIn) {
|
|
176
|
+
const config = await readJson(OPENCLAW_CONFIG);
|
|
177
|
+
const models = getNestedObj(config, ["models"]);
|
|
178
|
+
const providers = getNestedObj(models, ["providers"]);
|
|
179
|
+
delete providers[id];
|
|
180
|
+
await writeJson(OPENCLAW_CONFIG, config);
|
|
181
|
+
}
|
|
137
182
|
// --- Update auth-profiles.json ---
|
|
138
183
|
const agentId = await resolveAgentId();
|
|
139
184
|
const profilesPath = authProfilesPath(agentId);
|
|
140
185
|
const authProfiles = await readJson(profilesPath);
|
|
141
186
|
const profiles = getNestedObj(authProfiles, ["profiles"]);
|
|
142
|
-
const profileKey = `${
|
|
187
|
+
const profileKey = `${id}:default`;
|
|
143
188
|
if (profileKey in profiles) {
|
|
144
189
|
delete profiles[profileKey];
|
|
145
190
|
await writeJson(profilesPath, authProfiles);
|
|
146
191
|
}
|
|
147
192
|
}
|
|
148
193
|
export async function setDefaultProvider(id) {
|
|
194
|
+
const type = inferType(id);
|
|
195
|
+
const info = PROVIDER_REGISTRY[type];
|
|
196
|
+
// Determine the model ID for this provider
|
|
197
|
+
let modelId = null;
|
|
198
|
+
if (info?.builtIn) {
|
|
199
|
+
// Built-in providers: use registry default, no models.providers entry
|
|
200
|
+
modelId = info.defaultModelId ?? null;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
// Read from models.providers entry
|
|
204
|
+
const config = await readJson(OPENCLAW_CONFIG);
|
|
205
|
+
const models = config["models"] ?? {};
|
|
206
|
+
const providers = models["providers"] ?? {};
|
|
207
|
+
const providerRaw = providers[id] ?? {};
|
|
208
|
+
modelId = extractModelId(providerRaw) ?? info?.defaultModelId ?? null;
|
|
209
|
+
}
|
|
210
|
+
const primary = modelId ? `${id}/${modelId}` : id;
|
|
149
211
|
const config = await readJson(OPENCLAW_CONFIG);
|
|
150
|
-
// Preserve existing model suffix if present
|
|
151
212
|
const agents = getNestedObj(config, ["agents"]);
|
|
152
213
|
const defaults = getNestedObj(agents, ["defaults"]);
|
|
153
214
|
const model = getNestedObj(defaults, ["model"]);
|
|
154
|
-
|
|
155
|
-
let modelSuffix = "default";
|
|
156
|
-
if (currentPrimary.includes("/")) {
|
|
157
|
-
modelSuffix = currentPrimary.split("/").slice(1).join("/");
|
|
158
|
-
}
|
|
159
|
-
model["primary"] = `${id}/${modelSuffix}`;
|
|
215
|
+
model["primary"] = primary;
|
|
160
216
|
await writeJson(OPENCLAW_CONFIG, config);
|
|
161
217
|
}
|
|
162
218
|
//# sourceMappingURL=provider-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/commands/provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/commands/provider-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,10 @@ export interface ProviderTypeInfo {
|
|
|
10
10
|
showBaseUrl: boolean;
|
|
11
11
|
showModelId: boolean;
|
|
12
12
|
defaultModelId?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Built-in OpenClaw providers (anthropic, google) — do NOT write a
|
|
15
|
+
* models.providers entry; only write to auth-profiles.json.
|
|
16
|
+
*/
|
|
17
|
+
builtIn?: boolean;
|
|
13
18
|
}
|
|
14
19
|
export declare const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo>;
|
|
@@ -10,6 +10,8 @@ export const PROVIDER_REGISTRY = {
|
|
|
10
10
|
allowMultiple: false,
|
|
11
11
|
showBaseUrl: false,
|
|
12
12
|
showModelId: false,
|
|
13
|
+
defaultModelId: "claude-opus-4-6",
|
|
14
|
+
builtIn: true,
|
|
13
15
|
},
|
|
14
16
|
openai: {
|
|
15
17
|
displayName: "OpenAI",
|
|
@@ -22,6 +24,7 @@ export const PROVIDER_REGISTRY = {
|
|
|
22
24
|
allowMultiple: false,
|
|
23
25
|
showBaseUrl: false,
|
|
24
26
|
showModelId: false,
|
|
27
|
+
defaultModelId: "gpt-4o",
|
|
25
28
|
},
|
|
26
29
|
google: {
|
|
27
30
|
displayName: "Google",
|
|
@@ -34,6 +37,8 @@ export const PROVIDER_REGISTRY = {
|
|
|
34
37
|
allowMultiple: false,
|
|
35
38
|
showBaseUrl: false,
|
|
36
39
|
showModelId: false,
|
|
40
|
+
defaultModelId: "gemini-2.0-flash",
|
|
41
|
+
builtIn: true,
|
|
37
42
|
},
|
|
38
43
|
openrouter: {
|
|
39
44
|
displayName: "OpenRouter",
|
|
@@ -46,6 +51,7 @@ export const PROVIDER_REGISTRY = {
|
|
|
46
51
|
allowMultiple: false,
|
|
47
52
|
showBaseUrl: false,
|
|
48
53
|
showModelId: false,
|
|
54
|
+
defaultModelId: "anthropic/claude-opus-4-6",
|
|
49
55
|
},
|
|
50
56
|
ark: {
|
|
51
57
|
displayName: "ByteDance (Ark)",
|
|
@@ -57,7 +63,7 @@ export const PROVIDER_REGISTRY = {
|
|
|
57
63
|
requiresApiKey: true,
|
|
58
64
|
allowMultiple: false,
|
|
59
65
|
showBaseUrl: false,
|
|
60
|
-
showModelId:
|
|
66
|
+
showModelId: true, // Ark is a platform; user must specify the model endpoint ID
|
|
61
67
|
},
|
|
62
68
|
moonshot: {
|
|
63
69
|
displayName: "Moonshot (Kimi)",
|
|
@@ -70,6 +76,7 @@ export const PROVIDER_REGISTRY = {
|
|
|
70
76
|
allowMultiple: false,
|
|
71
77
|
showBaseUrl: false,
|
|
72
78
|
showModelId: false,
|
|
79
|
+
defaultModelId: "kimi-k2.5",
|
|
73
80
|
},
|
|
74
81
|
siliconflow: {
|
|
75
82
|
displayName: "SiliconFlow",
|
|
@@ -82,6 +89,7 @@ export const PROVIDER_REGISTRY = {
|
|
|
82
89
|
allowMultiple: false,
|
|
83
90
|
showBaseUrl: false,
|
|
84
91
|
showModelId: false,
|
|
92
|
+
defaultModelId: "Qwen/QwQ-32B",
|
|
85
93
|
},
|
|
86
94
|
ollama: {
|
|
87
95
|
displayName: "Ollama",
|
|
@@ -93,7 +101,7 @@ export const PROVIDER_REGISTRY = {
|
|
|
93
101
|
requiresApiKey: false,
|
|
94
102
|
allowMultiple: false,
|
|
95
103
|
showBaseUrl: true,
|
|
96
|
-
showModelId:
|
|
104
|
+
showModelId: true, // User must specify which model they have pulled
|
|
97
105
|
},
|
|
98
106
|
custom: {
|
|
99
107
|
displayName: "Custom",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/commands/provider-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/commands/provider-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
+
import { createRequire } from "module";
|
|
3
4
|
import { pairCommand } from "./commands/pair.js";
|
|
4
5
|
import { runCommand } from "./commands/run.js";
|
|
5
6
|
import { installCommand, uninstallCommand, stopCommand, restartCommand, resetCommand } from "./commands/install.js";
|
|
6
7
|
import { statusCommand } from "./commands/status.js";
|
|
7
8
|
import { setTokenCommand } from "./commands/set-token.js";
|
|
8
|
-
const
|
|
9
|
+
const require = createRequire(import.meta.url);
|
|
10
|
+
const { version } = require("../package.json");
|
|
9
11
|
const program = new Command();
|
|
10
12
|
program
|
|
11
13
|
.name("clawpilot")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -237,6 +237,23 @@ export class OpenClawGatewayClient {
|
|
|
237
237
|
pending.resolve(res.payload);
|
|
238
238
|
else
|
|
239
239
|
pending.reject(new Error(res.error?.message ?? "gateway error"));
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
// Handle incoming req frames from OpenClaw (e.g. chat.push in OpenClaw 2026.3.2+)
|
|
243
|
+
if (parsed.type === "req") {
|
|
244
|
+
const id = parsed.id;
|
|
245
|
+
const method = parsed.method;
|
|
246
|
+
const params = parsed.params;
|
|
247
|
+
console.log(`[gateway-client] incoming req: method=${method} params=${JSON.stringify(params).slice(0, 300)}`);
|
|
248
|
+
// Ack immediately so OpenClaw doesn't retry
|
|
249
|
+
if (id && this.ws?.readyState === WebSocket.OPEN) {
|
|
250
|
+
this.ws.send(JSON.stringify({ type: "res", id, ok: true }));
|
|
251
|
+
}
|
|
252
|
+
// Forward chat.push as a "chat" event so the relay server can broadcast it to iOS
|
|
253
|
+
if (method === "chat.push" && params != null) {
|
|
254
|
+
this.opts.onEvent("chat", params);
|
|
255
|
+
}
|
|
256
|
+
return;
|
|
240
257
|
}
|
|
241
258
|
}
|
|
242
259
|
startTickWatch() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../../src/relay/gateway-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../../src/relay/gateway-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFile, writeFile, mkdir, readdir } from "fs/promises";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { homedir } from "os";
|
|
4
|
+
import { PROVIDER_REGISTRY } from "./provider-registry.js";
|
|
4
5
|
|
|
5
6
|
const OPENCLAW_DIR = join(homedir(), ".openclaw");
|
|
6
7
|
const OPENCLAW_CONFIG = join(OPENCLAW_DIR, "openclaw.json");
|
|
@@ -13,8 +14,10 @@ const AGENTS_DIR = join(OPENCLAW_DIR, "agents");
|
|
|
13
14
|
export interface ProviderEntry {
|
|
14
15
|
id: string; // e.g. "anthropic", "custom-<uuid>"
|
|
15
16
|
type: string; // provider type key
|
|
17
|
+
name: string; // display name from registry
|
|
16
18
|
baseUrl: string;
|
|
17
|
-
|
|
19
|
+
modelId: string | null; // model used for this provider
|
|
20
|
+
keyMasked: string | null; // e.g. "sk-a***xyz", null if no key
|
|
18
21
|
hasKey: boolean;
|
|
19
22
|
isDefault: boolean;
|
|
20
23
|
}
|
|
@@ -32,9 +35,7 @@ async function resolveAgentId(): Promise<string> {
|
|
|
32
35
|
try {
|
|
33
36
|
const entries = await readdir(AGENTS_DIR, { withFileTypes: true });
|
|
34
37
|
const dirs = entries.filter(e => e.isDirectory()).map(e => e.name);
|
|
35
|
-
if (dirs.length > 0)
|
|
36
|
-
return dirs[0];
|
|
37
|
-
}
|
|
38
|
+
if (dirs.length > 0) return dirs[0];
|
|
38
39
|
} catch {
|
|
39
40
|
// agents dir missing or unreadable
|
|
40
41
|
}
|
|
@@ -72,6 +73,23 @@ function authProfilesPath(agentId: string): string {
|
|
|
72
73
|
return join(AGENTS_DIR, agentId, "agent", "auth-profiles.json");
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
/** Extract the first model ID from a provider's models array in openclaw.json */
|
|
77
|
+
function extractModelId(providerRaw: Record<string, unknown>): string | null {
|
|
78
|
+
const models = providerRaw["models"];
|
|
79
|
+
if (Array.isArray(models) && models.length > 0) {
|
|
80
|
+
const first = models[0] as Record<string, unknown>;
|
|
81
|
+
return typeof first["id"] === "string" ? first["id"] : null;
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Infer provider type from its id in models.providers */
|
|
87
|
+
function inferType(id: string): string {
|
|
88
|
+
// custom providers have ids like "custom-<uuid>"
|
|
89
|
+
if (id.startsWith("custom-")) return "custom";
|
|
90
|
+
return id;
|
|
91
|
+
}
|
|
92
|
+
|
|
75
93
|
// ---------------------------------------------------------------------------
|
|
76
94
|
// Public API
|
|
77
95
|
// ---------------------------------------------------------------------------
|
|
@@ -79,45 +97,78 @@ function authProfilesPath(agentId: string): string {
|
|
|
79
97
|
export async function listProviderEntries(): Promise<ProviderEntry[]> {
|
|
80
98
|
const config = await readJson(OPENCLAW_CONFIG);
|
|
81
99
|
|
|
82
|
-
|
|
83
|
-
const
|
|
84
|
-
const
|
|
100
|
+
const agentId = await resolveAgentId();
|
|
101
|
+
const authProfiles = await readJson(authProfilesPath(agentId));
|
|
102
|
+
const profiles = (authProfiles["profiles"] as Record<string, unknown> | undefined) ?? {};
|
|
85
103
|
|
|
86
|
-
// Determine current default
|
|
104
|
+
// Determine current default
|
|
87
105
|
const agents = (config["agents"] as Record<string, unknown> | undefined) ?? {};
|
|
88
106
|
const defaults = (agents["defaults"] as Record<string, unknown> | undefined) ?? {};
|
|
89
107
|
const model = (defaults["model"] as Record<string, unknown> | undefined) ?? {};
|
|
90
108
|
const primaryModel = typeof model["primary"] === "string" ? model["primary"] : "";
|
|
91
109
|
|
|
92
|
-
// Read auth profiles for key lookup
|
|
93
|
-
const agentId = await resolveAgentId();
|
|
94
|
-
const authProfiles = await readJson(authProfilesPath(agentId));
|
|
95
|
-
const profiles = (authProfiles["profiles"] as Record<string, unknown> | undefined) ?? {};
|
|
96
|
-
|
|
97
110
|
const entries: ProviderEntry[] = [];
|
|
98
111
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const baseUrl = typeof provider["baseUrl"] === "string" ? provider["baseUrl"] : "";
|
|
112
|
+
// --- Providers from models.providers (non-builtIn) ---
|
|
113
|
+
const models = (config["models"] as Record<string, unknown> | undefined) ?? {};
|
|
114
|
+
const providers = (models["providers"] as Record<string, unknown> | undefined) ?? {};
|
|
103
115
|
|
|
104
|
-
|
|
105
|
-
const
|
|
116
|
+
for (const [id, providerRaw] of Object.entries(providers)) {
|
|
117
|
+
const p = (providerRaw as Record<string, unknown>) ?? {};
|
|
118
|
+
const type = inferType(id);
|
|
119
|
+
const info = PROVIDER_REGISTRY[type];
|
|
120
|
+
const baseUrl = typeof p["baseUrl"] === "string" ? p["baseUrl"] : "";
|
|
121
|
+
const modelId = extractModelId(p);
|
|
122
|
+
|
|
123
|
+
// auth-profiles key is "${id}:default"
|
|
124
|
+
const profileKey = `${id}:default`;
|
|
106
125
|
const profileRaw = profiles[profileKey];
|
|
107
126
|
const profile = profileRaw != null && typeof profileRaw === "object" && !Array.isArray(profileRaw)
|
|
108
127
|
? (profileRaw as Record<string, unknown>)
|
|
109
128
|
: null;
|
|
110
|
-
const apiKey = profile != null && typeof profile["
|
|
111
|
-
? profile["apiKey"]
|
|
112
|
-
: null;
|
|
129
|
+
const apiKey = profile != null && typeof profile["key"] === "string" ? profile["key"] : null;
|
|
113
130
|
|
|
114
131
|
const hasKey = apiKey != null && apiKey.length > 0;
|
|
115
132
|
const keyMasked = hasKey ? maskKey(apiKey!) : null;
|
|
116
|
-
|
|
117
|
-
// isDefault: primary model string starts with "<id>/"
|
|
118
133
|
const isDefault = primaryModel === id || primaryModel.startsWith(`${id}/`);
|
|
119
134
|
|
|
120
|
-
entries.push({
|
|
135
|
+
entries.push({
|
|
136
|
+
id,
|
|
137
|
+
type,
|
|
138
|
+
name: info?.displayName ?? type,
|
|
139
|
+
baseUrl,
|
|
140
|
+
modelId,
|
|
141
|
+
keyMasked,
|
|
142
|
+
hasKey,
|
|
143
|
+
isDefault,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// --- Built-in providers (anthropic, google) — detected via auth-profiles ---
|
|
148
|
+
for (const [type, info] of Object.entries(PROVIDER_REGISTRY)) {
|
|
149
|
+
if (!info.builtIn) continue;
|
|
150
|
+
const profileKey = `${type}:default`;
|
|
151
|
+
const profileRaw = profiles[profileKey];
|
|
152
|
+
if (profileRaw == null) continue; // not configured
|
|
153
|
+
|
|
154
|
+
const profile = typeof profileRaw === "object" && !Array.isArray(profileRaw)
|
|
155
|
+
? (profileRaw as Record<string, unknown>)
|
|
156
|
+
: null;
|
|
157
|
+
const apiKey = profile != null && typeof profile["key"] === "string" ? profile["key"] : null;
|
|
158
|
+
const hasKey = apiKey != null && apiKey.length > 0;
|
|
159
|
+
const keyMasked = hasKey ? maskKey(apiKey!) : null;
|
|
160
|
+
const isDefault = primaryModel === type || primaryModel.startsWith(`${type}/`);
|
|
161
|
+
|
|
162
|
+
entries.push({
|
|
163
|
+
id: type,
|
|
164
|
+
type,
|
|
165
|
+
name: info.displayName,
|
|
166
|
+
baseUrl: info.defaultBaseUrl,
|
|
167
|
+
modelId: info.defaultModelId ?? null,
|
|
168
|
+
keyMasked,
|
|
169
|
+
hasKey,
|
|
170
|
+
isDefault,
|
|
171
|
+
});
|
|
121
172
|
}
|
|
122
173
|
|
|
123
174
|
return entries;
|
|
@@ -129,27 +180,27 @@ export async function addProvider(params: {
|
|
|
129
180
|
apiKey: string | null;
|
|
130
181
|
baseUrl: string;
|
|
131
182
|
api: string;
|
|
132
|
-
apiKeyEnvName: string;
|
|
183
|
+
apiKeyEnvName: string; // env var name, written as "apiKey" in openclaw.json
|
|
133
184
|
modelId?: string;
|
|
134
185
|
}): Promise<void> {
|
|
135
186
|
const { id, type, apiKey, baseUrl, api, apiKeyEnvName, modelId } = params;
|
|
187
|
+
const info = PROVIDER_REGISTRY[type];
|
|
188
|
+
|
|
189
|
+
// --- Update openclaw.json (skip for builtIn providers) ---
|
|
190
|
+
if (!info?.builtIn) {
|
|
191
|
+
const config = await readJson(OPENCLAW_CONFIG);
|
|
192
|
+
const models = getNestedObj(config, ["models"]);
|
|
193
|
+
const providers = getNestedObj(models, ["providers"]);
|
|
194
|
+
|
|
195
|
+
// "apiKey" is the env var name reference (not the actual key value)
|
|
196
|
+
const providerEntry: Record<string, unknown> = { type, baseUrl, api, apiKey: apiKeyEnvName };
|
|
197
|
+
if (modelId !== undefined && modelId.length > 0) {
|
|
198
|
+
providerEntry["models"] = [{ id: modelId, name: modelId }];
|
|
199
|
+
}
|
|
200
|
+
providers[id] = providerEntry;
|
|
136
201
|
|
|
137
|
-
|
|
138
|
-
const config = await readJson(OPENCLAW_CONFIG);
|
|
139
|
-
const models = getNestedObj(config, ["models"]);
|
|
140
|
-
const providers = getNestedObj(models, ["providers"]);
|
|
141
|
-
|
|
142
|
-
const providerEntry: Record<string, unknown> = { type, baseUrl, api, apiKeyEnvName };
|
|
143
|
-
if (modelId !== undefined) {
|
|
144
|
-
providerEntry["modelId"] = modelId;
|
|
202
|
+
await writeJson(OPENCLAW_CONFIG, config);
|
|
145
203
|
}
|
|
146
|
-
providers[id] = providerEntry;
|
|
147
|
-
|
|
148
|
-
await writeJson(OPENCLAW_CONFIG, config);
|
|
149
|
-
|
|
150
|
-
// Note: writes are not atomic. openclaw.json is updated first, then auth-profiles.json.
|
|
151
|
-
// If auth-profiles write fails, the provider will appear in the list without a key.
|
|
152
|
-
// This is acceptable since config files are user-owned and easily recoverable.
|
|
153
204
|
|
|
154
205
|
// --- Update auth-profiles.json (only if apiKey provided) ---
|
|
155
206
|
if (apiKey != null && apiKey.length > 0) {
|
|
@@ -162,34 +213,26 @@ export async function addProvider(params: {
|
|
|
162
213
|
const authProfiles = await readJson(profilesPath);
|
|
163
214
|
const profiles = getNestedObj(authProfiles, ["profiles"]);
|
|
164
215
|
|
|
165
|
-
|
|
166
|
-
|
|
216
|
+
// Profile key is "${id}:default" — for builtIn, id === type
|
|
217
|
+
const profileKey = `${id}:default`;
|
|
218
|
+
profiles[profileKey] = { type: "api_key", provider: type, key: apiKey };
|
|
167
219
|
|
|
168
220
|
await writeJson(profilesPath, authProfiles);
|
|
169
221
|
}
|
|
170
222
|
}
|
|
171
223
|
|
|
172
224
|
export async function deleteProvider(id: string): Promise<void> {
|
|
173
|
-
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
: id;
|
|
185
|
-
|
|
186
|
-
delete providers[id];
|
|
187
|
-
|
|
188
|
-
// Note: writes are not atomic. openclaw.json is updated first, then auth-profiles.json.
|
|
189
|
-
// If auth-profiles write fails, the provider will appear in the list without a key.
|
|
190
|
-
// This is acceptable since config files are user-owned and easily recoverable.
|
|
191
|
-
|
|
192
|
-
await writeJson(OPENCLAW_CONFIG, config);
|
|
225
|
+
const type = inferType(id);
|
|
226
|
+
const info = PROVIDER_REGISTRY[type];
|
|
227
|
+
|
|
228
|
+
// --- Update openclaw.json (skip for builtIn) ---
|
|
229
|
+
if (!info?.builtIn) {
|
|
230
|
+
const config = await readJson(OPENCLAW_CONFIG);
|
|
231
|
+
const models = getNestedObj(config, ["models"]);
|
|
232
|
+
const providers = getNestedObj(models, ["providers"]);
|
|
233
|
+
delete providers[id];
|
|
234
|
+
await writeJson(OPENCLAW_CONFIG, config);
|
|
235
|
+
}
|
|
193
236
|
|
|
194
237
|
// --- Update auth-profiles.json ---
|
|
195
238
|
const agentId = await resolveAgentId();
|
|
@@ -197,7 +240,7 @@ export async function deleteProvider(id: string): Promise<void> {
|
|
|
197
240
|
const authProfiles = await readJson(profilesPath);
|
|
198
241
|
const profiles = getNestedObj(authProfiles, ["profiles"]);
|
|
199
242
|
|
|
200
|
-
const profileKey = `${
|
|
243
|
+
const profileKey = `${id}:default`;
|
|
201
244
|
if (profileKey in profiles) {
|
|
202
245
|
delete profiles[profileKey];
|
|
203
246
|
await writeJson(profilesPath, authProfiles);
|
|
@@ -205,20 +248,31 @@ export async function deleteProvider(id: string): Promise<void> {
|
|
|
205
248
|
}
|
|
206
249
|
|
|
207
250
|
export async function setDefaultProvider(id: string): Promise<void> {
|
|
208
|
-
const
|
|
251
|
+
const type = inferType(id);
|
|
252
|
+
const info = PROVIDER_REGISTRY[type];
|
|
253
|
+
|
|
254
|
+
// Determine the model ID for this provider
|
|
255
|
+
let modelId: string | null = null;
|
|
256
|
+
|
|
257
|
+
if (info?.builtIn) {
|
|
258
|
+
// Built-in providers: use registry default, no models.providers entry
|
|
259
|
+
modelId = info.defaultModelId ?? null;
|
|
260
|
+
} else {
|
|
261
|
+
// Read from models.providers entry
|
|
262
|
+
const config = await readJson(OPENCLAW_CONFIG);
|
|
263
|
+
const models = (config["models"] as Record<string, unknown>) ?? {};
|
|
264
|
+
const providers = (models["providers"] as Record<string, unknown>) ?? {};
|
|
265
|
+
const providerRaw = (providers[id] as Record<string, unknown>) ?? {};
|
|
266
|
+
modelId = extractModelId(providerRaw) ?? info?.defaultModelId ?? null;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
const primary = modelId ? `${id}/${modelId}` : id;
|
|
209
270
|
|
|
210
|
-
|
|
271
|
+
const config = await readJson(OPENCLAW_CONFIG);
|
|
211
272
|
const agents = getNestedObj(config, ["agents"]);
|
|
212
273
|
const defaults = getNestedObj(agents, ["defaults"]);
|
|
213
274
|
const model = getNestedObj(defaults, ["model"]);
|
|
214
|
-
|
|
215
|
-
const currentPrimary = typeof model["primary"] === "string" ? model["primary"] : "";
|
|
216
|
-
let modelSuffix = "default";
|
|
217
|
-
if (currentPrimary.includes("/")) {
|
|
218
|
-
modelSuffix = currentPrimary.split("/").slice(1).join("/");
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
model["primary"] = `${id}/${modelSuffix}`;
|
|
275
|
+
model["primary"] = primary;
|
|
222
276
|
|
|
223
277
|
await writeJson(OPENCLAW_CONFIG, config);
|
|
224
278
|
}
|
|
@@ -10,6 +10,11 @@ export interface ProviderTypeInfo {
|
|
|
10
10
|
showBaseUrl: boolean;
|
|
11
11
|
showModelId: boolean;
|
|
12
12
|
defaultModelId?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Built-in OpenClaw providers (anthropic, google) — do NOT write a
|
|
15
|
+
* models.providers entry; only write to auth-profiles.json.
|
|
16
|
+
*/
|
|
17
|
+
builtIn?: boolean;
|
|
13
18
|
}
|
|
14
19
|
|
|
15
20
|
export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
@@ -24,6 +29,8 @@ export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
|
24
29
|
allowMultiple: false,
|
|
25
30
|
showBaseUrl: false,
|
|
26
31
|
showModelId: false,
|
|
32
|
+
defaultModelId: "claude-opus-4-6",
|
|
33
|
+
builtIn: true,
|
|
27
34
|
},
|
|
28
35
|
openai: {
|
|
29
36
|
displayName: "OpenAI",
|
|
@@ -36,6 +43,7 @@ export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
|
36
43
|
allowMultiple: false,
|
|
37
44
|
showBaseUrl: false,
|
|
38
45
|
showModelId: false,
|
|
46
|
+
defaultModelId: "gpt-4o",
|
|
39
47
|
},
|
|
40
48
|
google: {
|
|
41
49
|
displayName: "Google",
|
|
@@ -48,6 +56,8 @@ export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
|
48
56
|
allowMultiple: false,
|
|
49
57
|
showBaseUrl: false,
|
|
50
58
|
showModelId: false,
|
|
59
|
+
defaultModelId: "gemini-2.0-flash",
|
|
60
|
+
builtIn: true,
|
|
51
61
|
},
|
|
52
62
|
openrouter: {
|
|
53
63
|
displayName: "OpenRouter",
|
|
@@ -60,6 +70,7 @@ export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
|
60
70
|
allowMultiple: false,
|
|
61
71
|
showBaseUrl: false,
|
|
62
72
|
showModelId: false,
|
|
73
|
+
defaultModelId: "anthropic/claude-opus-4-6",
|
|
63
74
|
},
|
|
64
75
|
ark: {
|
|
65
76
|
displayName: "ByteDance (Ark)",
|
|
@@ -71,7 +82,7 @@ export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
|
71
82
|
requiresApiKey: true,
|
|
72
83
|
allowMultiple: false,
|
|
73
84
|
showBaseUrl: false,
|
|
74
|
-
showModelId:
|
|
85
|
+
showModelId: true, // Ark is a platform; user must specify the model endpoint ID
|
|
75
86
|
},
|
|
76
87
|
moonshot: {
|
|
77
88
|
displayName: "Moonshot (Kimi)",
|
|
@@ -84,6 +95,7 @@ export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
|
84
95
|
allowMultiple: false,
|
|
85
96
|
showBaseUrl: false,
|
|
86
97
|
showModelId: false,
|
|
98
|
+
defaultModelId: "kimi-k2.5",
|
|
87
99
|
},
|
|
88
100
|
siliconflow: {
|
|
89
101
|
displayName: "SiliconFlow",
|
|
@@ -96,6 +108,7 @@ export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
|
96
108
|
allowMultiple: false,
|
|
97
109
|
showBaseUrl: false,
|
|
98
110
|
showModelId: false,
|
|
111
|
+
defaultModelId: "Qwen/QwQ-32B",
|
|
99
112
|
},
|
|
100
113
|
ollama: {
|
|
101
114
|
displayName: "Ollama",
|
|
@@ -107,7 +120,7 @@ export const PROVIDER_REGISTRY: Record<string, ProviderTypeInfo> = {
|
|
|
107
120
|
requiresApiKey: false,
|
|
108
121
|
allowMultiple: false,
|
|
109
122
|
showBaseUrl: true,
|
|
110
|
-
showModelId:
|
|
123
|
+
showModelId: true, // User must specify which model they have pulled
|
|
111
124
|
},
|
|
112
125
|
custom: {
|
|
113
126
|
displayName: "Custom",
|
package/src/index.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
+
import { createRequire } from "module";
|
|
3
4
|
import { pairCommand } from "./commands/pair.js";
|
|
4
5
|
import { runCommand } from "./commands/run.js";
|
|
5
6
|
import { installCommand, uninstallCommand, stopCommand, restartCommand, resetCommand } from "./commands/install.js";
|
|
6
7
|
import { statusCommand } from "./commands/status.js";
|
|
7
8
|
import { setTokenCommand } from "./commands/set-token.js";
|
|
8
9
|
|
|
9
|
-
const
|
|
10
|
+
const require = createRequire(import.meta.url);
|
|
11
|
+
const { version } = require("../package.json") as { version: string };
|
|
10
12
|
|
|
11
13
|
const program = new Command();
|
|
12
14
|
|
|
@@ -309,6 +309,24 @@ export class OpenClawGatewayClient {
|
|
|
309
309
|
this.pending.delete(res.id);
|
|
310
310
|
if (res.ok) pending.resolve(res.payload);
|
|
311
311
|
else pending.reject(new Error(res.error?.message ?? "gateway error"));
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// Handle incoming req frames from OpenClaw (e.g. chat.push in OpenClaw 2026.3.2+)
|
|
316
|
+
if (parsed.type === "req") {
|
|
317
|
+
const id: string | undefined = parsed.id;
|
|
318
|
+
const method: string | undefined = parsed.method;
|
|
319
|
+
const params: unknown = parsed.params;
|
|
320
|
+
console.log(`[gateway-client] incoming req: method=${method} params=${JSON.stringify(params).slice(0, 300)}`);
|
|
321
|
+
// Ack immediately so OpenClaw doesn't retry
|
|
322
|
+
if (id && this.ws?.readyState === WebSocket.OPEN) {
|
|
323
|
+
this.ws.send(JSON.stringify({ type: "res", id, ok: true }));
|
|
324
|
+
}
|
|
325
|
+
// Forward chat.push as a "chat" event so the relay server can broadcast it to iOS
|
|
326
|
+
if (method === "chat.push" && params != null) {
|
|
327
|
+
this.opts.onEvent("chat", params);
|
|
328
|
+
}
|
|
329
|
+
return;
|
|
312
330
|
}
|
|
313
331
|
}
|
|
314
332
|
|