@clappstore/connect 0.7.6 → 0.7.7

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.
@@ -2,8 +2,57 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { spawnSync } from "node:child_process";
3
3
  import { dirname, resolve } from "node:path";
4
4
  import { homedir } from "node:os";
5
- const authProfilesPath = resolve(homedir(), ".openclaw", "agents", "main", "agent", "auth-profiles.json");
6
- // --- Helper functions (closures over ctx) ---
5
+ // --- CLI helpers ---
6
+ function runCli(args) {
7
+ try {
8
+ const result = spawnSync("openclaw", args, {
9
+ encoding: "utf-8",
10
+ timeout: 15_000,
11
+ });
12
+ if (result.status !== 0)
13
+ return null;
14
+ return JSON.parse(result.stdout);
15
+ }
16
+ catch {
17
+ return null;
18
+ }
19
+ }
20
+ let _modelsStatusCache = null;
21
+ function getModelsStatus() {
22
+ const now = Date.now();
23
+ if (_modelsStatusCache && now - _modelsStatusCache.ts < 5_000) {
24
+ return _modelsStatusCache.data;
25
+ }
26
+ const result = runCli(["models", "status", "--json"]);
27
+ if (result && typeof result === "object") {
28
+ _modelsStatusCache = { data: result, ts: now };
29
+ return _modelsStatusCache.data;
30
+ }
31
+ return null;
32
+ }
33
+ let _modelCatalogCache = null;
34
+ function getModelCatalog() {
35
+ const now = Date.now();
36
+ if (_modelCatalogCache && now - _modelCatalogCache.ts < 30_000) {
37
+ return _modelCatalogCache.data;
38
+ }
39
+ const result = runCli(["models", "list", "--json"]);
40
+ if (Array.isArray(result)) {
41
+ _modelCatalogCache = { data: result, ts: now };
42
+ return result;
43
+ }
44
+ return null;
45
+ }
46
+ function getAuthStorePath() {
47
+ const status = getModelsStatus();
48
+ const auth = status?.auth;
49
+ if (typeof auth?.storePath === "string" && auth.storePath.length > 0) {
50
+ return auth.storePath;
51
+ }
52
+ // Fallback to default path
53
+ return resolve(homedir(), ".openclaw", "agents", "main", "agent", "auth-profiles.json");
54
+ }
55
+ // --- Helper functions ---
7
56
  function generateProfileId(provider, customName) {
8
57
  const suffix = customName
9
58
  ? customName.toLowerCase().replace(/[^a-z0-9]/g, "-").replace(/-+/g, "-")
@@ -28,12 +77,6 @@ function formatProviderName(provider) {
28
77
  };
29
78
  return names[provider] ?? provider.charAt(0).toUpperCase() + provider.slice(1);
30
79
  }
31
- function formatModelLabel(modelId, meta) {
32
- const alias = typeof meta?.alias === "string" ? meta.alias : "";
33
- const [, ...rest] = modelId.split("/");
34
- const shortId = rest.join("/") || modelId;
35
- return alias ? `${alias} (${shortId})` : shortId;
36
- }
37
80
  function formatModelLabelFromId(modelId) {
38
81
  if (!modelId)
39
82
  return "Unknown";
@@ -86,48 +129,33 @@ function detectAuthType(profileId, profile) {
86
129
  return "api-key";
87
130
  }
88
131
  function getActiveModel() {
89
- try {
90
- const configPath = resolve(homedir(), ".openclaw", "openclaw.json");
91
- if (!existsSync(configPath))
92
- return null;
93
- const config = JSON.parse(readFileSync(configPath, "utf-8"));
94
- const primary = config?.agents?.defaults?.model?.primary;
95
- if (typeof primary === "string" && primary.includes("/")) {
96
- const [provider, ...rest] = primary.split("/");
97
- return { provider, model: rest.join("/") };
98
- }
99
- }
100
- catch {
101
- // Ignore
132
+ const status = getModelsStatus();
133
+ if (typeof status?.defaultModel === "string") {
134
+ return status.defaultModel;
102
135
  }
103
136
  return null;
104
137
  }
105
138
  function getModelCatalogByProvider() {
106
139
  const map = new Map();
107
- try {
108
- const configPath = resolve(homedir(), ".openclaw", "openclaw.json");
109
- if (!existsSync(configPath))
110
- return map;
111
- const config = JSON.parse(readFileSync(configPath, "utf-8"));
112
- const models = config?.agents?.defaults?.models ?? {};
113
- for (const [modelId, meta] of Object.entries(models)) {
114
- if (typeof modelId !== "string" || !modelId.includes("/"))
115
- continue;
116
- const [provider] = modelId.split("/");
117
- if (!provider)
118
- continue;
119
- const label = formatModelLabel(modelId, meta);
120
- const existing = map.get(provider) ?? [];
121
- existing.push({ id: modelId, label });
122
- map.set(provider, existing);
123
- }
124
- for (const [provider, entries] of map) {
125
- entries.sort((a, b) => a.label.localeCompare(b.label));
126
- map.set(provider, entries);
127
- }
140
+ const catalog = getModelCatalog();
141
+ if (!catalog)
142
+ return map;
143
+ for (const entry of catalog) {
144
+ const m = entry;
145
+ const key = m.key;
146
+ if (typeof key !== "string" || !key.includes("/"))
147
+ continue;
148
+ const [provider] = key.split("/");
149
+ if (!provider)
150
+ continue;
151
+ const name = typeof m.name === "string" ? m.name : key.split("/").slice(1).join("/");
152
+ const existing = map.get(provider) ?? [];
153
+ existing.push({ id: key, label: name });
154
+ map.set(provider, existing);
128
155
  }
129
- catch {
130
- // Ignore
156
+ for (const [provider, entries] of map) {
157
+ entries.sort((a, b) => a.label.localeCompare(b.label));
158
+ map.set(provider, entries);
131
159
  }
132
160
  return map;
133
161
  }
@@ -146,12 +174,13 @@ function getFirstModelForProvider(provider) {
146
174
  }
147
175
  function getConfiguredProviders() {
148
176
  const providers = [];
149
- const activeModel = getActiveModel();
177
+ const activeModelId = getActiveModel();
150
178
  const modelsByProvider = getModelCatalogByProvider();
179
+ const authPath = getAuthStorePath();
151
180
  try {
152
- if (!existsSync(authProfilesPath))
181
+ if (!existsSync(authPath))
153
182
  return providers;
154
- const data = JSON.parse(readFileSync(authProfilesPath, "utf-8"));
183
+ const data = JSON.parse(readFileSync(authPath, "utf-8"));
155
184
  for (const [profileId, profile] of Object.entries(data.profiles)) {
156
185
  let maskedCred = "";
157
186
  let mode = profile.type;
@@ -172,7 +201,8 @@ function getConfiguredProviders() {
172
201
  authType = "subscription";
173
202
  }
174
203
  if (maskedCred) {
175
- const isActive = activeModel?.provider === profile.provider;
204
+ const activeProvider = activeModelId?.split("/")[0];
205
+ const isActive = activeProvider === profile.provider;
176
206
  const profileIdentifier = profileId.includes(":") ? profileId.split(":")[1] : profileId;
177
207
  const baseName = formatProviderName(profile.provider);
178
208
  const displayName = profile.customName || `${baseName} · ${profileIdentifier}`;
@@ -201,26 +231,22 @@ function getConfiguredProviders() {
201
231
  }
202
232
  return providers;
203
233
  }
204
- function setEnvVar(key, value) {
234
+ function readAuthProfiles() {
235
+ const authPath = getAuthStorePath();
205
236
  try {
206
- const configPath = resolve(homedir(), ".openclaw", "openclaw.json");
207
- let config = {};
208
- if (existsSync(configPath)) {
209
- config = JSON.parse(readFileSync(configPath, "utf-8"));
210
- }
211
- if (!config.env || typeof config.env !== "object") {
212
- config.env = {};
237
+ if (existsSync(authPath)) {
238
+ return JSON.parse(readFileSync(authPath, "utf-8"));
213
239
  }
214
- config.env[key] = value;
215
- if (config.meta && typeof config.meta === "object") {
216
- config.meta.lastTouchedAt = new Date().toISOString();
217
- }
218
- writeFileSync(configPath, JSON.stringify(config, null, 2), "utf-8");
219
- console.log(`[settings] Set ${key} in openclaw.json`);
220
240
  }
221
- catch (err) {
222
- console.warn(`[settings] Failed to set env var ${key}: ${err}`);
241
+ catch {
242
+ // Start fresh
223
243
  }
244
+ return { version: 1, profiles: {} };
245
+ }
246
+ function writeAuthProfiles(profiles) {
247
+ const authPath = getAuthStorePath();
248
+ mkdirSync(dirname(authPath), { recursive: true });
249
+ writeFileSync(authPath, JSON.stringify(profiles, null, 2), "utf-8");
224
250
  }
225
251
  function getSessionsData() {
226
252
  try {
@@ -235,10 +261,7 @@ function getSessionsData() {
235
261
  catch {
236
262
  return { sessions: [], globalModel: null };
237
263
  }
238
- const globalDefault = getActiveModel();
239
- const globalModelId = globalDefault
240
- ? `${globalDefault.provider}/${globalDefault.model}`
241
- : null;
264
+ const globalModelId = getActiveModel();
242
265
  const sessions = rawSessions
243
266
  .filter((s) => s.kind === "direct")
244
267
  .map((s) => {
@@ -273,7 +296,7 @@ export default function createSettingsHandler(ctx) {
273
296
  function writeSettingsState() {
274
297
  const providers = getConfiguredProviders();
275
298
  const isConfigured = providers.length > 0;
276
- const activeModel = getActiveModel();
299
+ const activeModelId = getActiveModel();
277
300
  const activeProvider = providers.find((p) => p.active);
278
301
  const sessionsData = getSessionsData();
279
302
  const state = {
@@ -283,7 +306,7 @@ export default function createSettingsHandler(ctx) {
283
306
  active: {
284
307
  isConfigured,
285
308
  provider: activeProvider?.name ?? null,
286
- model: activeModel ? `${activeModel.provider}/${activeModel.model}` : null,
309
+ model: activeModelId,
287
310
  },
288
311
  configuredProviders: providers,
289
312
  sessions: sessionsData,
@@ -305,6 +328,8 @@ export default function createSettingsHandler(ctx) {
305
328
  }
306
329
  }
307
330
  function afterCredentialChange() {
331
+ // Invalidate caches so next read picks up changes
332
+ _modelsStatusCache = null;
308
333
  writeSettingsState();
309
334
  pushSettingsState();
310
335
  ctx.checkAuthStatus();
@@ -396,10 +421,7 @@ export default function createSettingsHandler(ctx) {
396
421
  console.warn(`[settings] Failed to parse sessions list`);
397
422
  return;
398
423
  }
399
- const globalDefault = getActiveModel();
400
- const globalModelId = globalDefault
401
- ? `${globalDefault.provider}/${globalDefault.model}`
402
- : null;
424
+ const globalModelId = getActiveModel();
403
425
  const sessions = rawSessions
404
426
  .filter((s) => s.kind === "direct")
405
427
  .map((s) => {
@@ -438,15 +460,7 @@ export default function createSettingsHandler(ctx) {
438
460
  }
439
461
  // --- Credential setters ---
440
462
  function setAnthropicKey(apiKey, customName, existingProfileId) {
441
- let profiles = { version: 1, profiles: {} };
442
- try {
443
- if (existsSync(authProfilesPath)) {
444
- profiles = JSON.parse(readFileSync(authProfilesPath, "utf-8"));
445
- }
446
- }
447
- catch {
448
- // Start fresh
449
- }
463
+ const profiles = readAuthProfiles();
450
464
  const profileId = existingProfileId ?? generateProfileId("anthropic", customName);
451
465
  profiles.profiles[profileId] = {
452
466
  type: "token",
@@ -454,48 +468,25 @@ export default function createSettingsHandler(ctx) {
454
468
  token: apiKey,
455
469
  customName: customName || "Anthropic API",
456
470
  };
457
- mkdirSync(dirname(authProfilesPath), { recursive: true });
458
- writeFileSync(authProfilesPath, JSON.stringify(profiles, null, 2), "utf-8");
459
- console.log(`✅ Anthropic API key saved to ${authProfilesPath} (profile: ${profileId})`);
471
+ writeAuthProfiles(profiles);
472
+ console.log(`[settings] Anthropic API key saved (profile: ${profileId})`);
460
473
  afterCredentialChange();
461
474
  }
462
475
  function setClaudeToken(token, customName) {
463
- const result = spawnSync("openclaw", ["models", "auth", "paste-token", "--provider", "anthropic"], { input: token, encoding: "utf-8", timeout: 15_000 });
464
- if (result.status !== 0) {
465
- const msg = (result.stderr || result.error?.message || "unknown error").toString().trim();
466
- console.error(`[settings] openclaw paste-token failed: ${msg}`);
467
- return;
468
- }
469
- if (customName) {
470
- try {
471
- if (existsSync(authProfilesPath)) {
472
- const profiles = JSON.parse(readFileSync(authProfilesPath, "utf-8"));
473
- for (const [_key, profile] of Object.entries(profiles.profiles)) {
474
- if (profile.provider === "anthropic" && (profile.access || profile.refresh)) {
475
- profile.customName = customName;
476
- break;
477
- }
478
- }
479
- writeFileSync(authProfilesPath, JSON.stringify(profiles, null, 2), "utf-8");
480
- }
481
- }
482
- catch {
483
- // Ignore
484
- }
485
- }
486
- console.log("✅ Claude subscription token saved via openclaw");
476
+ const profiles = readAuthProfiles();
477
+ const profileId = generateProfileId("anthropic", customName || "claude-sub");
478
+ profiles.profiles[profileId] = {
479
+ type: "token",
480
+ provider: "anthropic",
481
+ token,
482
+ customName: customName || "Claude Subscription",
483
+ };
484
+ writeAuthProfiles(profiles);
485
+ console.log(`[settings] Claude subscription token saved (profile: ${profileId})`);
487
486
  afterCredentialChange();
488
487
  }
489
488
  function setOpenAIKey(apiKey, customName, existingProfileId) {
490
- let profiles = { version: 1, profiles: {} };
491
- try {
492
- if (existsSync(authProfilesPath)) {
493
- profiles = JSON.parse(readFileSync(authProfilesPath, "utf-8"));
494
- }
495
- }
496
- catch {
497
- // Start fresh
498
- }
489
+ const profiles = readAuthProfiles();
499
490
  const profileId = existingProfileId ?? generateProfileId("openai", customName);
500
491
  profiles.profiles[profileId] = {
501
492
  type: "token",
@@ -503,22 +494,12 @@ export default function createSettingsHandler(ctx) {
503
494
  token: apiKey,
504
495
  customName: customName || "OpenAI API",
505
496
  };
506
- setEnvVar("OPENAI_API_KEY", apiKey);
507
- mkdirSync(dirname(authProfilesPath), { recursive: true });
508
- writeFileSync(authProfilesPath, JSON.stringify(profiles, null, 2), "utf-8");
509
- console.log(`✅ OpenAI API key saved to ${authProfilesPath} (profile: ${profileId})`);
497
+ writeAuthProfiles(profiles);
498
+ console.log(`[settings] OpenAI API key saved (profile: ${profileId})`);
510
499
  afterCredentialChange();
511
500
  }
512
501
  function setKimiCodingKey(apiKey, customName, existingProfileId) {
513
- let profiles = { version: 1, profiles: {} };
514
- try {
515
- if (existsSync(authProfilesPath)) {
516
- profiles = JSON.parse(readFileSync(authProfilesPath, "utf-8"));
517
- }
518
- }
519
- catch {
520
- // Start fresh
521
- }
502
+ const profiles = readAuthProfiles();
522
503
  const profileId = existingProfileId ?? generateProfileId("kimi-coding", customName);
523
504
  profiles.profiles[profileId] = {
524
505
  type: "token",
@@ -526,10 +507,8 @@ export default function createSettingsHandler(ctx) {
526
507
  token: apiKey,
527
508
  customName: customName || "Kimi Coding",
528
509
  };
529
- setEnvVar("KIMI_API_KEY", apiKey);
530
- mkdirSync(dirname(authProfilesPath), { recursive: true });
531
- writeFileSync(authProfilesPath, JSON.stringify(profiles, null, 2), "utf-8");
532
- console.log(`✅ Kimi Coding API key saved to ${authProfilesPath} (profile: ${profileId})`);
510
+ writeAuthProfiles(profiles);
511
+ console.log(`[settings] Kimi Coding API key saved (profile: ${profileId})`);
533
512
  afterCredentialChange();
534
513
  }
535
514
  function startOAuth(provider, customName) {
@@ -540,38 +519,40 @@ export default function createSettingsHandler(ctx) {
540
519
  }
541
520
  if (customName) {
542
521
  try {
543
- if (existsSync(authProfilesPath)) {
544
- const profiles = JSON.parse(readFileSync(authProfilesPath, "utf-8"));
522
+ const authPath = getAuthStorePath();
523
+ if (existsSync(authPath)) {
524
+ const profiles = JSON.parse(readFileSync(authPath, "utf-8"));
545
525
  for (const [_key, profile] of Object.entries(profiles.profiles)) {
546
526
  if (profile.provider === provider && (profile.access || profile.refresh)) {
547
527
  profile.customName = customName;
548
528
  break;
549
529
  }
550
530
  }
551
- writeFileSync(authProfilesPath, JSON.stringify(profiles, null, 2), "utf-8");
531
+ writeFileSync(authPath, JSON.stringify(profiles, null, 2), "utf-8");
552
532
  }
553
533
  }
554
534
  catch {
555
535
  // Ignore
556
536
  }
557
537
  }
558
- console.log(`✅ OAuth login completed for ${provider}`);
538
+ console.log(`[settings] OAuth login completed for ${provider}`);
559
539
  afterCredentialChange();
560
540
  }
561
541
  function deleteProvider(profileId) {
562
542
  try {
563
- if (!existsSync(authProfilesPath)) {
543
+ const authPath = getAuthStorePath();
544
+ if (!existsSync(authPath)) {
564
545
  console.warn(`[settings] No auth-profiles.json found`);
565
546
  return;
566
547
  }
567
- const profiles = JSON.parse(readFileSync(authProfilesPath, "utf-8"));
548
+ const profiles = JSON.parse(readFileSync(authPath, "utf-8"));
568
549
  if (!profiles.profiles[profileId]) {
569
550
  console.warn(`[settings] Profile "${profileId}" not found`);
570
551
  return;
571
552
  }
572
553
  delete profiles.profiles[profileId];
573
- writeFileSync(authProfilesPath, JSON.stringify(profiles, null, 2), "utf-8");
574
- console.log(`✅ Deleted provider profile: ${profileId}`);
554
+ writeFileSync(authPath, JSON.stringify(profiles, null, 2), "utf-8");
555
+ console.log(`[settings] Deleted provider profile: ${profileId}`);
575
556
  afterCredentialChange();
576
557
  }
577
558
  catch (err) {
@@ -596,18 +577,18 @@ export default function createSettingsHandler(ctx) {
596
577
  console.error(`[settings] Failed to set default model: ${msg}`);
597
578
  return;
598
579
  }
580
+ _modelsStatusCache = null;
599
581
  clearAgentModelOverrides(modelId);
600
- console.log(`✅ Active model set system-wide to ${modelId}`);
582
+ console.log(`[settings] Active model set system-wide to ${modelId}`);
601
583
  writeSettingsState();
602
584
  pushSettingsState();
603
585
  }
604
586
  function resetSessionModel(sessionKey) {
605
- const globalDefault = getActiveModel();
606
- if (!globalDefault) {
587
+ const globalModelId = getActiveModel();
588
+ if (!globalModelId) {
607
589
  console.warn(`[settings] No global default model configured`);
608
590
  return;
609
591
  }
610
- const modelId = `${globalDefault.provider}/${globalDefault.model}`;
611
592
  const result = spawnSync("openclaw", [
612
593
  "gateway",
613
594
  "call",
@@ -615,7 +596,7 @@ export default function createSettingsHandler(ctx) {
615
596
  "--params",
616
597
  JSON.stringify({
617
598
  sessionKey,
618
- message: `/model ${modelId}`,
599
+ message: `/model ${globalModelId}`,
619
600
  idempotencyKey: `clapps-reset-${sessionKey}-${Date.now()}`,
620
601
  }),
621
602
  ], { encoding: "utf-8", timeout: 10_000 });
@@ -628,16 +609,17 @@ export default function createSettingsHandler(ctx) {
628
609
  setTimeout(() => listSessions(), 1000);
629
610
  }
630
611
  function applyDefaultToAllSessions() {
631
- const globalDefault = getActiveModel();
632
- if (!globalDefault) {
612
+ const globalModelId = getActiveModel();
613
+ if (!globalModelId) {
633
614
  console.warn(`[settings] No global default model configured`);
634
615
  return;
635
616
  }
636
- const modelId = `${globalDefault.provider}/${globalDefault.model}`;
637
- patchAllSessionModels(modelId);
617
+ patchAllSessionModels(globalModelId);
638
618
  setTimeout(() => listSessions(), 2000);
639
619
  }
640
620
  function refreshSettingsState() {
621
+ _modelsStatusCache = null;
622
+ _modelCatalogCache = null;
641
623
  writeSettingsState();
642
624
  pushSettingsState();
643
625
  listSessions();
@@ -7,5 +7,5 @@ export declare function installDefaultClapps(): void;
7
7
  /** Seed default views and apps registry */
8
8
  export declare function seedDefaults(viewsDir: string, stateDir: string): void;
9
9
  /** Check if the agent has an AI provider configured and write _status.json */
10
- export declare function checkAuthStatus(stateDir: string, authProfilesPath?: string): void;
10
+ export declare function checkAuthStatus(stateDir: string): void;
11
11
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAsJA,sCAAsC;AACtC,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AA6BD,8DAA8D;AAC9D,wBAAgB,oBAAoB,IAAI,IAAI,CAwB3C;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CA2CrE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAyDjF"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAuJA,sCAAsC;AACtC,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AA6BD,8DAA8D;AAC9D,wBAAgB,oBAAoB,IAAI,IAAI,CAwB3C;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CA2CrE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAsCtD"}
package/dist/defaults.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { existsSync, readFileSync, writeFileSync, mkdirSync, cpSync } from "node:fs";
2
+ import { spawnSync } from "node:child_process";
2
3
  import { resolve, dirname } from "node:path";
3
4
  import { homedir } from "node:os";
4
5
  import { fileURLToPath } from "node:url";
@@ -222,35 +223,26 @@ export function seedDefaults(viewsDir, stateDir) {
222
223
  }
223
224
  }
224
225
  /** Check if the agent has an AI provider configured and write _status.json */
225
- export function checkAuthStatus(stateDir, authProfilesPath) {
226
- const defaultAuthProfilesPath = resolve(homedir(), ".openclaw", "agents", "main", "agent", "auth-profiles.json");
227
- const targetPath = authProfilesPath ?? defaultAuthProfilesPath;
226
+ export function checkAuthStatus(stateDir) {
228
227
  let setupRequired = true;
229
228
  let message = "Your agent needs an AI provider key to respond to messages. Run:\n" +
230
229
  "`openclaw models auth` to configure authentication.";
231
230
  try {
232
- if (existsSync(targetPath)) {
233
- const raw = readFileSync(targetPath, "utf-8");
234
- const data = JSON.parse(raw);
235
- // Check if any profile has actual credentials
236
- const profiles = data.profiles ?? data;
237
- const hasCredentials = Object.values(profiles).some((profile) => {
238
- if (typeof profile === "object" && profile !== null) {
239
- const p = profile;
240
- return ((typeof p.token === "string" && p.token.length > 0) ||
241
- (typeof p.key === "string" && p.key.length > 0) ||
242
- (typeof p.access === "string" && p.access.length > 0));
243
- }
244
- return false;
245
- });
246
- if (hasCredentials) {
231
+ const result = spawnSync("openclaw", ["models", "status", "--json"], {
232
+ encoding: "utf-8",
233
+ timeout: 10_000,
234
+ });
235
+ if (result.status === 0) {
236
+ const status = JSON.parse(result.stdout);
237
+ const hasProviders = (status.auth?.providers ?? []).some((p) => p.profiles > 0);
238
+ if (hasProviders) {
247
239
  setupRequired = false;
248
240
  message = "";
249
241
  }
250
242
  }
251
243
  }
252
244
  catch {
253
- // If we can't read auth-profiles.json, assume setup is required
245
+ // If CLI unavailable, assume setup is required
254
246
  }
255
247
  const statusPath = resolve(stateDir, "_status.json");
256
248
  writeFileSync(statusPath, JSON.stringify({
@@ -259,7 +251,7 @@ export function checkAuthStatus(stateDir, authProfilesPath) {
259
251
  state: { setupRequired, message },
260
252
  }, null, 2), "utf-8");
261
253
  if (setupRequired) {
262
- console.warn("⚠️ No AI provider configured — _status.json written with setupRequired: true");
254
+ console.warn("No AI provider configured — _status.json written with setupRequired: true");
263
255
  }
264
256
  }
265
257
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clappstore/connect",
3
- "version": "0.7.6",
3
+ "version": "0.7.7",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "clapps-connect": "./dist/index.js"