@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.
@@ -1,7 +1,9 @@
1
1
  export interface ProviderEntry {
2
2
  id: string;
3
3
  type: string;
4
+ name: string;
4
5
  baseUrl: string;
6
+ modelId: string | null;
5
7
  keyMasked: string | null;
6
8
  hasKey: boolean;
7
9
  isDefault: boolean;
@@ -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
- // Dig out models.providers
59
- const models = config["models"] ?? {};
60
- const providers = models["providers"] ?? {};
61
- // Determine current default model primary string
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 provider = providerRaw ?? {};
73
- const type = typeof provider["type"] === "string" ? provider["type"] : id;
74
- const baseUrl = typeof provider["baseUrl"] === "string" ? provider["baseUrl"] : "";
75
- // Key lookup: profile key is "<type>:default"
76
- const profileKey = `${type}:default`;
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["apiKey"] === "string"
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({ id, type, baseUrl, keyMasked, hasKey, isDefault });
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
- // --- Update openclaw.json ---
95
- const config = await readJson(OPENCLAW_CONFIG);
96
- const models = getNestedObj(config, ["models"]);
97
- const providers = getNestedObj(models, ["providers"]);
98
- const providerEntry = { type, baseUrl, api, apiKeyEnvName };
99
- if (modelId !== undefined) {
100
- providerEntry["modelId"] = modelId;
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
- const profileKey = `${type}:default`;
116
- profiles[profileKey] = { apiKey };
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
- // --- Update openclaw.json ---
122
- const config = await readJson(OPENCLAW_CONFIG);
123
- const models = getNestedObj(config, ["models"]);
124
- const providers = getNestedObj(models, ["providers"]);
125
- const providerRaw = providers[id];
126
- const type = providerRaw != null &&
127
- typeof providerRaw === "object" &&
128
- !Array.isArray(providerRaw) &&
129
- typeof providerRaw["type"] === "string"
130
- ? providerRaw["type"]
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 = `${type}:default`;
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
- const currentPrimary = typeof model["primary"] === "string" ? model["primary"] : "";
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":"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"}
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: false,
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: false,
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":"AAcA,MAAM,CAAC,MAAM,iBAAiB,GAAqC;IACjE,SAAS,EAAE;QACT,WAAW,EAAE,WAAW;QACxB,cAAc,EAAE,2BAA2B;QAC3C,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,mBAAmB;QAClC,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,wBAAwB;QACxC,GAAG,EAAE,kBAAkB;QACvB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,2CAA2C;QAC3D,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,gBAAgB;QAChC,cAAc,EAAE,oBAAoB;QACpC,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB;IACD,UAAU,EAAE;QACV,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,uBAAuB;QACvC,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,oBAAoB;QACnC,cAAc,EAAE,gBAAgB;QAChC,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB;IACD,GAAG,EAAE;QACH,WAAW,EAAE,iBAAiB;QAC9B,cAAc,EAAE,mCAAmC;QACnD,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,aAAa;QAC5B,cAAc,EAAE,gBAAgB;QAChC,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,iBAAiB;QAC9B,cAAc,EAAE,yBAAyB;QACzC,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,kBAAkB;QACjC,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB;IACD,WAAW,EAAE;QACX,WAAW,EAAE,aAAa;QAC1B,cAAc,EAAE,4BAA4B;QAC5C,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,qBAAqB;QACpC,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,wBAAwB;QACxC,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,KAAK;KACnB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,EAAE;QAClB,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,cAAc;KAC/B;CACF,CAAC"}
1
+ {"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/commands/provider-registry.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,iBAAiB,GAAqC;IACjE,SAAS,EAAE;QACT,WAAW,EAAE,WAAW;QACxB,cAAc,EAAE,2BAA2B;QAC3C,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,mBAAmB;QAClC,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,iBAAiB;QACjC,OAAO,EAAE,IAAI;KACd;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,wBAAwB;QACxC,GAAG,EAAE,kBAAkB;QACvB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,QAAQ;KACzB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,2CAA2C;QAC3D,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,gBAAgB;QAChC,cAAc,EAAE,oBAAoB;QACpC,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,kBAAkB;QAClC,OAAO,EAAE,IAAI;KACd;IACD,UAAU,EAAE;QACV,WAAW,EAAE,YAAY;QACzB,cAAc,EAAE,uBAAuB;QACvC,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,oBAAoB;QACnC,cAAc,EAAE,gBAAgB;QAChC,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,2BAA2B;KAC5C;IACD,GAAG,EAAE;QACH,WAAW,EAAE,iBAAiB;QAC9B,cAAc,EAAE,mCAAmC;QACnD,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,aAAa;QAC5B,cAAc,EAAE,gBAAgB;QAChC,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,IAAI,EAAI,6DAA6D;KACnF;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,iBAAiB;QAC9B,cAAc,EAAE,yBAAyB;QACzC,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,kBAAkB;QACjC,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,WAAW;KAC5B;IACD,WAAW,EAAE;QACX,WAAW,EAAE,aAAa;QAC1B,cAAc,EAAE,4BAA4B;QAC5C,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,qBAAqB;QACpC,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,cAAc;KAC/B;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,wBAAwB;QACxC,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI,EAAI,iDAAiD;KACvE;IACD,MAAM,EAAE;QACN,WAAW,EAAE,QAAQ;QACrB,cAAc,EAAE,EAAE;QAClB,GAAG,EAAE,oBAAoB;QACzB,aAAa,EAAE,gBAAgB;QAC/B,cAAc,EAAE,YAAY;QAC5B,cAAc,EAAE,QAAQ;QACxB,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,cAAc;KAC/B;CACF,CAAC"}
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 version = "1.0.18";
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,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,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,sEAAsE,CAAC;KACnF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,iCAAiC,CAAC;KACnF,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,IAAsC,EAAE,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,kFAAkF,CAAC;KAC/F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,UAAU,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,GAAG,EAAE;IACX,WAAW,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,GAAG,EAAE;IACX,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,GAAG,EAAE;IACX,cAAc,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,GAAG,EAAE;IACX,cAAc,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,GAAG,EAAE;IACX,gBAAgB,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,qEAAqE,CAAC;KAClF,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,oFAAoF,CAAC;KACjG,MAAM,CAAC,GAAG,EAAE;IACX,YAAY,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,8EAA8E;AAC9E,uDAAuD;AACvD,8EAA8E;AAE9E,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;AACzE,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAQ3E,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAoB;IAC7C,MAAM,GAAG,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAW,CAAC;IACnE,IACE,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,GAAG,EAAE;QAC/C,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACxE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B;IACjC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAA0C,CAAC;YACxG,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/G,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,YAAY,GAAI,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAG,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpF,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrF,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;IAE3E,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpI,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAwB,EAAE,IAQpD;IACC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG;QACd,OAAO;QACP,QAAQ,CAAC,QAAQ;QACjB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,IAAI;QACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACvB,IAAI,CAAC,KAAK,IAAI,EAAE;QAChB,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjF,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,QAAQ;QACrB,SAAS,EAAE,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpE,SAAS;QACT,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC;AA4BD,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAe3B,MAAM,OAAO,qBAAqB;IAcH;IAbrB,EAAE,GAAqB,IAAI,CAAC;IAC5B,OAAO,GAAG,IAAI,GAAG,EAA2E,CAAC;IAC7F,SAAS,GAAG,IAAI,CAAC;IACjB,OAAO,GAAG,KAAK,CAAC;IAChB,YAAY,GAAkB,IAAI,CAAC;IACnC,WAAW,GAAG,KAAK,CAAC;IACpB,iBAAiB,GAAkB,IAAI,CAAC;IACxC,YAAY,GAAyC,IAAI,CAAC;IAC1D,SAAS,GAA0C,IAAI,CAAC;IACxD,QAAQ,GAAG,CAAC,CAAC;IACb,cAAc,GAAG,MAAM,CAAC;IACf,QAAQ,CAAiB;IAE1C,YAA6B,IAA0B;QAA1B,SAAI,GAAJ,IAAI,CAAsB;QACrD,IAAI,CAAC,QAAQ,GAAG,0BAA0B,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,+DAA+D;YAC/D,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,QAAQ,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,MAAc,EAAE,MAAgB;QACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,KAAK,GAAa,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1E,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CAAc,MAAc,EAAE,MAAgB;QACzD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QACD,wCAAwC;QACxC,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,MAAa,CAAC;YACxB,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,OAAO,wBAAwB,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YAClI,CAAC;QACH,CAAC;QACD,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,KAAK,GAAa,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5D,MAAM,CAAC,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,4EAA4E;IAEpE,WAAW;QACjB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAAC,CAAC;QAErF,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,MAAM,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAClC,MAAM,UAAU,GAAG,SAAS,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAE5D,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC9C,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU;YAC9C,KAAK,EAAE,SAAS,IAAI,SAAS;YAC7B,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,gBAAgB;YAC7B,IAAI;YACJ,MAAM;YACN,IAAI,EAAE,CAAC,aAAa,CAAC;YACrB,QAAQ,EAAE,CAAC,WAAW,CAAC;YACvB,MAAM,EAAE;gBACN,EAAE,EAAE,QAAQ;gBACZ,WAAW,EAAE,cAAc;gBAC3B,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,IAAI,EAAE,UAAU;aACjB;YACD,MAAM;YACN,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;gBACnC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpD,CAAC,CAAC,SAAS;SACd,CAAC;QAEF,IAAI,CAAC,OAAO,CAA4E,SAAS,EAAE,MAAM,CAAC;aACvG,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC;YAC/C,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;YACvC,CAAC;YACD,IAAI,OAAO,OAAO,EAAE,MAAM,EAAE,cAAc,KAAK,QAAQ,EAAE,CAAC;gBACxD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjE,iFAAiF;YACjF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,8DAA8D;QAC9D,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,OAAO,MAAM,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO;QAE7C,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAkB,CAAC;YAE/B,IAAI,GAAG,CAAC,KAAK,KAAK,mBAAmB,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAI,GAAG,CAAC,OAA2C,EAAE,KAAK,CAAC;gBACtE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;oBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEjE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAM,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,MAAkB,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,EAAE;gBAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;;gBACpC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,SAAS;YAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACtD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAAC,CAAC;QACrF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAAC,CAAC;IAC/E,CAAC;IAEO,YAAY,CAAC,GAAU;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF"}
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,6 @@
1
1
  {
2
2
  "name": "@rethinkingstudio/clawpilot",
3
- "version": "1.0.19",
3
+ "version": "1.1.1",
4
4
  "description": "ClawAI relay client for Mac mini",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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
- keyMasked: string | null; // e.g. "sk-a***xyz", null if no key
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
- // Dig out models.providers
83
- const models = (config["models"] as Record<string, unknown> | undefined) ?? {};
84
- const providers = (models["providers"] as Record<string, unknown> | undefined) ?? {};
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 model primary string
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
- for (const [id, providerRaw] of Object.entries(providers)) {
100
- const provider = (providerRaw as Record<string, unknown>) ?? {};
101
- const type = typeof provider["type"] === "string" ? provider["type"] : id;
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
- // Key lookup: profile key is "<type>:default"
105
- const profileKey = `${type}:default`;
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["apiKey"] === "string"
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({ id, type, baseUrl, keyMasked, hasKey, isDefault });
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
- // --- Update openclaw.json ---
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
- const profileKey = `${type}:default`;
166
- profiles[profileKey] = { apiKey };
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
- // --- Update openclaw.json ---
174
- const config = await readJson(OPENCLAW_CONFIG);
175
- const models = getNestedObj(config, ["models"]);
176
- const providers = getNestedObj(models, ["providers"]);
177
-
178
- const providerRaw = providers[id];
179
- const type = providerRaw != null &&
180
- typeof providerRaw === "object" &&
181
- !Array.isArray(providerRaw) &&
182
- typeof (providerRaw as Record<string, unknown>)["type"] === "string"
183
- ? (providerRaw as Record<string, unknown>)["type"] as string
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 = `${type}:default`;
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 config = await readJson(OPENCLAW_CONFIG);
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
- // Preserve existing model suffix if present
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: false,
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: false,
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 version = "1.0.18";
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