@rethinkingstudio/clawpilot 1.1.14-beta.2 → 1.1.14-beta.3
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/local-handlers.js +19 -17
- package/dist/commands/local-handlers.js.map +1 -1
- package/dist/commands/openclaw-cli.d.ts +2 -0
- package/dist/commands/openclaw-cli.js +67 -1
- package/dist/commands/openclaw-cli.js.map +1 -1
- package/dist/commands/provider-config.js +13 -15
- package/dist/commands/provider-config.js.map +1 -1
- package/dist/config/config.js +8 -3
- package/dist/config/config.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/local-handlers.ts +19 -18
- package/src/commands/openclaw-cli.ts +79 -1
- package/src/commands/provider-config.ts +13 -16
- package/src/config/config.ts +8 -3
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { readdirSync, statSync, copyFileSync, existsSync, readFileSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
|
-
import {
|
|
4
|
-
import { execOpenclaw } from "./openclaw-cli.js";
|
|
5
|
-
const OPENCLAW_DIR = join(homedir(), ".openclaw");
|
|
6
|
-
const OPENCLAW_CONFIG = join(OPENCLAW_DIR, "openclaw.json");
|
|
3
|
+
import { execOpenclaw, resolveOpenclawConfigPath, resolveOpenclawDir } from "./openclaw-cli.js";
|
|
7
4
|
// ---------------------------------------------------------------------------
|
|
8
5
|
export function handleLocalCommand(method) {
|
|
9
6
|
switch (method) {
|
|
@@ -79,14 +76,15 @@ function maskString(value) {
|
|
|
79
76
|
// ---------------------------------------------------------------------------
|
|
80
77
|
function readOpenclawConfig() {
|
|
81
78
|
try {
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
const configPath = resolveOpenclawConfigPath();
|
|
80
|
+
if (!existsSync(configPath)) {
|
|
81
|
+
return { ok: false, error: `openclaw config not found: ${configPath}` };
|
|
84
82
|
}
|
|
85
|
-
const raw = readFileSync(
|
|
83
|
+
const raw = readFileSync(configPath, "utf-8");
|
|
86
84
|
const parsed = JSON.parse(raw);
|
|
87
85
|
const masked = maskSensitive(parsed);
|
|
88
86
|
const output = JSON.stringify(masked, null, 2);
|
|
89
|
-
return { ok: true, payload: { output: `[${
|
|
87
|
+
return { ok: true, payload: { output: `[${configPath}]\n${output}` } };
|
|
90
88
|
}
|
|
91
89
|
catch (err) {
|
|
92
90
|
return { ok: false, error: String(err) };
|
|
@@ -128,13 +126,16 @@ function fixToolsPermissions202632() {
|
|
|
128
126
|
}
|
|
129
127
|
function restoreConfig() {
|
|
130
128
|
try {
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
const openclawDir = resolveOpenclawDir();
|
|
130
|
+
const configPath = resolveOpenclawConfigPath();
|
|
131
|
+
if (!existsSync(openclawDir)) {
|
|
132
|
+
return { ok: false, error: `openclaw config dir not found: ${openclawDir}` };
|
|
133
133
|
}
|
|
134
|
-
const
|
|
134
|
+
const configFileName = configPath.split("/").pop() ?? "openclaw.json";
|
|
135
|
+
const bakFiles = readdirSync(openclawDir)
|
|
135
136
|
.filter(name => name.startsWith("openclaw.json.bak"))
|
|
136
137
|
.map(name => {
|
|
137
|
-
const path = join(
|
|
138
|
+
const path = join(openclawDir, name);
|
|
138
139
|
return { name, path, mtime: statSync(path).mtimeMs };
|
|
139
140
|
})
|
|
140
141
|
.sort((a, b) => b.mtime - a.mtime);
|
|
@@ -142,9 +143,9 @@ function restoreConfig() {
|
|
|
142
143
|
return { ok: false, error: "No backup files found in ~/.openclaw/" };
|
|
143
144
|
}
|
|
144
145
|
const latest = bakFiles[0];
|
|
145
|
-
copyFileSync(latest.path,
|
|
146
|
+
copyFileSync(latest.path, configPath);
|
|
146
147
|
console.log(`[clawpilot] Config restored from ${latest.name}`);
|
|
147
|
-
return { ok: true, payload: { restoredFrom: latest.name } };
|
|
148
|
+
return { ok: true, payload: { restoredFrom: latest.name, config: configFileName } };
|
|
148
149
|
}
|
|
149
150
|
catch (err) {
|
|
150
151
|
return { ok: false, error: String(err) };
|
|
@@ -174,7 +175,8 @@ function runDoctor() {
|
|
|
174
175
|
}
|
|
175
176
|
function readLogs() {
|
|
176
177
|
try {
|
|
177
|
-
const
|
|
178
|
+
const openclawDir = resolveOpenclawDir();
|
|
179
|
+
const logsDir = join(openclawDir, "logs");
|
|
178
180
|
let logFiles = [];
|
|
179
181
|
if (existsSync(logsDir)) {
|
|
180
182
|
logFiles = readdirSync(logsDir)
|
|
@@ -182,9 +184,9 @@ function readLogs() {
|
|
|
182
184
|
.map(f => join(logsDir, f));
|
|
183
185
|
}
|
|
184
186
|
else {
|
|
185
|
-
logFiles = readdirSync(
|
|
187
|
+
logFiles = readdirSync(openclawDir)
|
|
186
188
|
.filter(f => f.endsWith(".log"))
|
|
187
|
-
.map(f => join(
|
|
189
|
+
.map(f => join(openclawDir, f));
|
|
188
190
|
}
|
|
189
191
|
if (logFiles.length === 0) {
|
|
190
192
|
return { ok: true, payload: { output: "No log files found." } };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-handlers.js","sourceRoot":"","sources":["../../src/commands/local-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-handlers.js","sourceRoot":"","sources":["../../src/commands/local-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export declare const SUBPROCESS_ENV: NodeJS.ProcessEnv;
|
|
2
2
|
export declare function resolveOpenclawBin(forceRefresh?: boolean): string;
|
|
3
3
|
export declare function execOpenclaw(args: string): Buffer;
|
|
4
|
+
export declare function resolveOpenclawConfigPath(forceRefresh?: boolean): string;
|
|
5
|
+
export declare function resolveOpenclawDir(forceRefresh?: boolean): string;
|
|
@@ -7,6 +7,9 @@ const NODE_BIN_DIR = dirname(process.execPath);
|
|
|
7
7
|
const KNOWN_BIN_DIRS = [
|
|
8
8
|
NODE_BIN_DIR,
|
|
9
9
|
join(HOME_DIR, ".npm-global", "bin"),
|
|
10
|
+
join(HOME_DIR, ".pnpm"),
|
|
11
|
+
join(HOME_DIR, "Library", "pnpm"),
|
|
12
|
+
join(HOME_DIR, ".config", "yarn", "global", "node_modules", ".bin"),
|
|
10
13
|
join(HOME_DIR, ".local", "bin"),
|
|
11
14
|
join(HOME_DIR, ".bun", "bin"),
|
|
12
15
|
join(HOME_DIR, ".volta", "bin"),
|
|
@@ -37,6 +40,7 @@ export const SUBPROCESS_ENV = {
|
|
|
37
40
|
]).join(":"),
|
|
38
41
|
};
|
|
39
42
|
let cachedOpenclawBin = null;
|
|
43
|
+
let cachedOpenclawConfigPath = null;
|
|
40
44
|
function findOpenclawInKnownPaths() {
|
|
41
45
|
for (const dir of KNOWN_BIN_DIRS) {
|
|
42
46
|
const candidate = join(dir, "openclaw");
|
|
@@ -66,6 +70,43 @@ function resolveViaShell() {
|
|
|
66
70
|
}
|
|
67
71
|
return null;
|
|
68
72
|
}
|
|
73
|
+
function readCommandOutput(command) {
|
|
74
|
+
const options = {
|
|
75
|
+
stdio: "pipe",
|
|
76
|
+
env: SUBPROCESS_ENV,
|
|
77
|
+
timeout: 3000,
|
|
78
|
+
encoding: "utf8",
|
|
79
|
+
};
|
|
80
|
+
try {
|
|
81
|
+
const output = execSync(command, options).trim();
|
|
82
|
+
return output || null;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function findOpenclawViaPackageManagers() {
|
|
89
|
+
const candidateDirs = [];
|
|
90
|
+
const npmPrefix = readCommandOutput("npm config get prefix");
|
|
91
|
+
if (npmPrefix && !/^undefined|null$/i.test(npmPrefix)) {
|
|
92
|
+
candidateDirs.push(join(npmPrefix, "bin"));
|
|
93
|
+
}
|
|
94
|
+
const pnpmGlobalBin = readCommandOutput("pnpm config get global-bin-dir");
|
|
95
|
+
if (pnpmGlobalBin && !/^undefined|null$/i.test(pnpmGlobalBin)) {
|
|
96
|
+
candidateDirs.push(pnpmGlobalBin);
|
|
97
|
+
}
|
|
98
|
+
const npmExec = readCommandOutput("npm exec --yes -- which openclaw");
|
|
99
|
+
if (npmExec && existsSync(npmExec)) {
|
|
100
|
+
return npmExec;
|
|
101
|
+
}
|
|
102
|
+
for (const dir of unique(candidateDirs)) {
|
|
103
|
+
const candidate = join(dir, "openclaw");
|
|
104
|
+
if (existsSync(candidate)) {
|
|
105
|
+
return candidate;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
69
110
|
export function resolveOpenclawBin(forceRefresh = false) {
|
|
70
111
|
if (!forceRefresh && cachedOpenclawBin && existsSync(cachedOpenclawBin)) {
|
|
71
112
|
return cachedOpenclawBin;
|
|
@@ -76,7 +117,7 @@ export function resolveOpenclawBin(forceRefresh = false) {
|
|
|
76
117
|
console.log(`[clawpilot] openclaw resolved from OPENCLAW_BIN: ${envOverride}`);
|
|
77
118
|
return envOverride;
|
|
78
119
|
}
|
|
79
|
-
const resolved = resolveViaShell() ?? findOpenclawInKnownPaths();
|
|
120
|
+
const resolved = resolveViaShell() ?? findOpenclawViaPackageManagers() ?? findOpenclawInKnownPaths();
|
|
80
121
|
if (resolved) {
|
|
81
122
|
cachedOpenclawBin = resolved;
|
|
82
123
|
console.log(`[clawpilot] openclaw resolved: ${resolved}`);
|
|
@@ -152,4 +193,29 @@ export function execOpenclaw(args) {
|
|
|
152
193
|
return execFileSync(bin, argv, { stdio: "pipe", env: SUBPROCESS_ENV });
|
|
153
194
|
}
|
|
154
195
|
}
|
|
196
|
+
const DEFAULT_OPENCLAW_CONFIG_PATH = join(HOME_DIR, ".openclaw", "openclaw.json");
|
|
197
|
+
export function resolveOpenclawConfigPath(forceRefresh = false) {
|
|
198
|
+
if (!forceRefresh && cachedOpenclawConfigPath && existsSync(cachedOpenclawConfigPath)) {
|
|
199
|
+
return cachedOpenclawConfigPath;
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
const output = execOpenclaw("config file").toString("utf8").trim();
|
|
203
|
+
const resolved = output
|
|
204
|
+
.split("\n")
|
|
205
|
+
.map(line => line.trim())
|
|
206
|
+
.find(line => line.endsWith(".json"));
|
|
207
|
+
if (resolved) {
|
|
208
|
+
cachedOpenclawConfigPath = resolved;
|
|
209
|
+
return resolved;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
// Fall back to the legacy path search below.
|
|
214
|
+
}
|
|
215
|
+
cachedOpenclawConfigPath = DEFAULT_OPENCLAW_CONFIG_PATH;
|
|
216
|
+
return DEFAULT_OPENCLAW_CONFIG_PATH;
|
|
217
|
+
}
|
|
218
|
+
export function resolveOpenclawDir(forceRefresh = false) {
|
|
219
|
+
return dirname(resolveOpenclawConfigPath(forceRefresh));
|
|
220
|
+
}
|
|
155
221
|
//# sourceMappingURL=openclaw-cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-cli.js","sourceRoot":"","sources":["../../src/commands/openclaw-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,QAAQ,GAET,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;AAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG;IACrB,YAAY;IACZ,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;IAC/B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;IAC7B,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;IAC/B,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;IACxC,mBAAmB;IACnB,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;CAClB,CAAC;AAEF,SAAS,MAAM,CAAC,MAAgB;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,GAAG,OAAO,CAAC,GAAG;IACd,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC;QACX,GAAG,cAAc;QACjB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;KACpD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;CACb,CAAC;AAEF,IAAI,iBAAiB,GAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"openclaw-cli.js","sourceRoot":"","sources":["../../src/commands/openclaw-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { readFile, writeFile, mkdir, readdir } from "fs/promises";
|
|
2
2
|
import { join } from "path";
|
|
3
|
-
import { homedir } from "os";
|
|
4
3
|
import { PROVIDER_REGISTRY } from "./provider-registry.js";
|
|
5
|
-
|
|
6
|
-
const OPENCLAW_CONFIG = join(OPENCLAW_DIR, "openclaw.json");
|
|
7
|
-
const AGENTS_DIR = join(OPENCLAW_DIR, "agents");
|
|
4
|
+
import { resolveOpenclawConfigPath, resolveOpenclawDir } from "./openclaw-cli.js";
|
|
8
5
|
// ---------------------------------------------------------------------------
|
|
9
6
|
// Internal helpers
|
|
10
7
|
// ---------------------------------------------------------------------------
|
|
@@ -14,8 +11,9 @@ function maskKey(key) {
|
|
|
14
11
|
return key.slice(0, 4) + "***" + key.slice(-4);
|
|
15
12
|
}
|
|
16
13
|
async function resolveAgentId() {
|
|
14
|
+
const agentsDir = join(resolveOpenclawDir(), "agents");
|
|
17
15
|
try {
|
|
18
|
-
const entries = await readdir(
|
|
16
|
+
const entries = await readdir(agentsDir, { withFileTypes: true });
|
|
19
17
|
const dirs = entries.filter(e => e.isDirectory()).map(e => e.name);
|
|
20
18
|
if (dirs.length > 0)
|
|
21
19
|
return dirs[0];
|
|
@@ -48,7 +46,7 @@ function getNestedObj(root, keys) {
|
|
|
48
46
|
return cur;
|
|
49
47
|
}
|
|
50
48
|
function authProfilesPath(agentId) {
|
|
51
|
-
return join(
|
|
49
|
+
return join(resolveOpenclawDir(), "agents", agentId, "agent", "auth-profiles.json");
|
|
52
50
|
}
|
|
53
51
|
/** Extract the first model ID from a provider's models array in openclaw.json */
|
|
54
52
|
function extractModelId(providerRaw) {
|
|
@@ -70,7 +68,7 @@ function inferType(id) {
|
|
|
70
68
|
// Public API
|
|
71
69
|
// ---------------------------------------------------------------------------
|
|
72
70
|
export async function listProviderEntries() {
|
|
73
|
-
const config = await readJson(
|
|
71
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
74
72
|
const agentId = await resolveAgentId();
|
|
75
73
|
const authProfiles = await readJson(authProfilesPath(agentId));
|
|
76
74
|
const profiles = authProfiles["profiles"] ?? {};
|
|
@@ -143,7 +141,7 @@ export async function addProvider(params) {
|
|
|
143
141
|
const info = PROVIDER_REGISTRY[type];
|
|
144
142
|
// --- Update openclaw.json (skip for builtIn providers) ---
|
|
145
143
|
if (!info?.builtIn) {
|
|
146
|
-
const config = await readJson(
|
|
144
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
147
145
|
const models = getNestedObj(config, ["models"]);
|
|
148
146
|
const providers = getNestedObj(models, ["providers"]);
|
|
149
147
|
// "apiKey" is the env var name reference (not the actual key value)
|
|
@@ -152,13 +150,13 @@ export async function addProvider(params) {
|
|
|
152
150
|
providerEntry["models"] = [{ id: modelId, name: modelId }];
|
|
153
151
|
}
|
|
154
152
|
providers[id] = providerEntry;
|
|
155
|
-
await writeJson(
|
|
153
|
+
await writeJson(resolveOpenclawConfigPath(), config);
|
|
156
154
|
}
|
|
157
155
|
// --- Update auth-profiles.json (only if apiKey provided) ---
|
|
158
156
|
if (apiKey != null && apiKey.length > 0) {
|
|
159
157
|
const agentId = await resolveAgentId();
|
|
160
158
|
const profilesPath = authProfilesPath(agentId);
|
|
161
|
-
const profilesDir = join(
|
|
159
|
+
const profilesDir = join(resolveOpenclawDir(), "agents", agentId, "agent");
|
|
162
160
|
await mkdir(profilesDir, { recursive: true });
|
|
163
161
|
const authProfiles = await readJson(profilesPath);
|
|
164
162
|
const profiles = getNestedObj(authProfiles, ["profiles"]);
|
|
@@ -173,11 +171,11 @@ export async function deleteProvider(id) {
|
|
|
173
171
|
const info = PROVIDER_REGISTRY[type];
|
|
174
172
|
// --- Update openclaw.json (skip for builtIn) ---
|
|
175
173
|
if (!info?.builtIn) {
|
|
176
|
-
const config = await readJson(
|
|
174
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
177
175
|
const models = getNestedObj(config, ["models"]);
|
|
178
176
|
const providers = getNestedObj(models, ["providers"]);
|
|
179
177
|
delete providers[id];
|
|
180
|
-
await writeJson(
|
|
178
|
+
await writeJson(resolveOpenclawConfigPath(), config);
|
|
181
179
|
}
|
|
182
180
|
// --- Update auth-profiles.json ---
|
|
183
181
|
const agentId = await resolveAgentId();
|
|
@@ -201,18 +199,18 @@ export async function setDefaultProvider(id) {
|
|
|
201
199
|
}
|
|
202
200
|
else {
|
|
203
201
|
// Read from models.providers entry
|
|
204
|
-
const config = await readJson(
|
|
202
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
205
203
|
const models = config["models"] ?? {};
|
|
206
204
|
const providers = models["providers"] ?? {};
|
|
207
205
|
const providerRaw = providers[id] ?? {};
|
|
208
206
|
modelId = extractModelId(providerRaw) ?? info?.defaultModelId ?? null;
|
|
209
207
|
}
|
|
210
208
|
const primary = modelId ? `${id}/${modelId}` : id;
|
|
211
|
-
const config = await readJson(
|
|
209
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
212
210
|
const agents = getNestedObj(config, ["agents"]);
|
|
213
211
|
const defaults = getNestedObj(agents, ["defaults"]);
|
|
214
212
|
const model = getNestedObj(defaults, ["model"]);
|
|
215
213
|
model["primary"] = primary;
|
|
216
|
-
await writeJson(
|
|
214
|
+
await writeJson(resolveOpenclawConfigPath(), config);
|
|
217
215
|
}
|
|
218
216
|
//# 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,
|
|
1
|
+
{"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../../src/commands/provider-config.ts"],"names":[],"mappings":"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"}
|
package/dist/config/config.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { homedir } from "os";
|
|
4
|
+
import { resolveOpenclawConfigPath } from "../commands/openclaw-cli.js";
|
|
4
5
|
const CONFIG_DIR = join(homedir(), ".clawai");
|
|
5
6
|
const CONFIG_PATH = join(CONFIG_DIR, "config.json");
|
|
6
|
-
const
|
|
7
|
+
const LEGACY_OPENCLAW_CONFIG_PATH = join(homedir(), ".openclaw", "openclaw.json");
|
|
7
8
|
export function configExists() {
|
|
8
9
|
return existsSync(CONFIG_PATH);
|
|
9
10
|
}
|
|
@@ -20,7 +21,9 @@ export function writeConfig(config) {
|
|
|
20
21
|
}
|
|
21
22
|
export function readGatewayUrl() {
|
|
22
23
|
try {
|
|
23
|
-
const
|
|
24
|
+
const configPath = resolveOpenclawConfigPath();
|
|
25
|
+
const path = existsSync(configPath) ? configPath : LEGACY_OPENCLAW_CONFIG_PATH;
|
|
26
|
+
const raw = readFileSync(path, "utf-8");
|
|
24
27
|
const json = JSON.parse(raw);
|
|
25
28
|
const port = json?.gateway?.port ?? 18789;
|
|
26
29
|
return `ws://localhost:${port}`;
|
|
@@ -41,7 +44,9 @@ export function readGatewayAuth(cfg) {
|
|
|
41
44
|
}
|
|
42
45
|
// Try to read the token from OpenClaw's own config
|
|
43
46
|
try {
|
|
44
|
-
const
|
|
47
|
+
const configPath = resolveOpenclawConfigPath();
|
|
48
|
+
const path = existsSync(configPath) ? configPath : LEGACY_OPENCLAW_CONFIG_PATH;
|
|
49
|
+
const raw = readFileSync(path, "utf-8");
|
|
45
50
|
const json = JSON.parse(raw);
|
|
46
51
|
const token = json?.gateway?.token ?? json?.gateway?.auth?.token ?? undefined;
|
|
47
52
|
const password = json?.gateway?.password ?? json?.gateway?.auth?.password ?? undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACpD,MAAM,2BAA2B,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AAalF,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,WAAW,4BAA4B,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,yBAAyB,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC/E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC;QAC1C,OAAO,kBAAkB,IAAI,EAAE,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,sBAAsB,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAiB;IAC/C,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QAC5C,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC;IACpE,CAAC;IACD,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,yBAAyB,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC/E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsG,CAAC;QAClI,MAAM,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,IAAI,SAAS,CAAC;QACvF,IAAI,KAAK,IAAI,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,gEAAgE;IAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAC1D,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { readdirSync, statSync, copyFileSync, existsSync, readFileSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
|
-
import { homedir } from "os";
|
|
4
3
|
import { execSync } from "child_process";
|
|
5
|
-
import { execOpenclaw, SUBPROCESS_ENV } from "./openclaw-cli.js";
|
|
6
|
-
|
|
7
|
-
const OPENCLAW_DIR = join(homedir(), ".openclaw");
|
|
8
|
-
const OPENCLAW_CONFIG = join(OPENCLAW_DIR, "openclaw.json");
|
|
4
|
+
import { execOpenclaw, resolveOpenclawConfigPath, resolveOpenclawDir, SUBPROCESS_ENV } from "./openclaw-cli.js";
|
|
9
5
|
|
|
10
6
|
export type LocalResult =
|
|
11
7
|
| { ok: true; payload?: unknown }
|
|
@@ -97,16 +93,17 @@ function maskString(value: string): string {
|
|
|
97
93
|
|
|
98
94
|
function readOpenclawConfig(): LocalResult {
|
|
99
95
|
try {
|
|
100
|
-
|
|
101
|
-
|
|
96
|
+
const configPath = resolveOpenclawConfigPath();
|
|
97
|
+
if (!existsSync(configPath)) {
|
|
98
|
+
return { ok: false, error: `openclaw config not found: ${configPath}` };
|
|
102
99
|
}
|
|
103
100
|
|
|
104
|
-
const raw = readFileSync(
|
|
101
|
+
const raw = readFileSync(configPath, "utf-8");
|
|
105
102
|
const parsed = JSON.parse(raw) as Record<string, unknown>;
|
|
106
103
|
const masked = maskSensitive(parsed);
|
|
107
104
|
const output = JSON.stringify(masked, null, 2);
|
|
108
105
|
|
|
109
|
-
return { ok: true, payload: { output: `[${
|
|
106
|
+
return { ok: true, payload: { output: `[${configPath}]\n${output}` } };
|
|
110
107
|
} catch (err) {
|
|
111
108
|
return { ok: false, error: String(err) };
|
|
112
109
|
}
|
|
@@ -152,13 +149,16 @@ function fixToolsPermissions202632(): LocalResult {
|
|
|
152
149
|
|
|
153
150
|
function restoreConfig(): LocalResult {
|
|
154
151
|
try {
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
const openclawDir = resolveOpenclawDir();
|
|
153
|
+
const configPath = resolveOpenclawConfigPath();
|
|
154
|
+
if (!existsSync(openclawDir)) {
|
|
155
|
+
return { ok: false, error: `openclaw config dir not found: ${openclawDir}` };
|
|
157
156
|
}
|
|
158
|
-
const
|
|
157
|
+
const configFileName = configPath.split("/").pop() ?? "openclaw.json";
|
|
158
|
+
const bakFiles = readdirSync(openclawDir)
|
|
159
159
|
.filter(name => name.startsWith("openclaw.json.bak"))
|
|
160
160
|
.map(name => {
|
|
161
|
-
const path = join(
|
|
161
|
+
const path = join(openclawDir, name);
|
|
162
162
|
return { name, path, mtime: statSync(path).mtimeMs };
|
|
163
163
|
})
|
|
164
164
|
.sort((a, b) => b.mtime - a.mtime);
|
|
@@ -167,9 +167,9 @@ function restoreConfig(): LocalResult {
|
|
|
167
167
|
return { ok: false, error: "No backup files found in ~/.openclaw/" };
|
|
168
168
|
}
|
|
169
169
|
const latest = bakFiles[0];
|
|
170
|
-
copyFileSync(latest.path,
|
|
170
|
+
copyFileSync(latest.path, configPath);
|
|
171
171
|
console.log(`[clawpilot] Config restored from ${latest.name}`);
|
|
172
|
-
return { ok: true, payload: { restoredFrom: latest.name } };
|
|
172
|
+
return { ok: true, payload: { restoredFrom: latest.name, config: configFileName } };
|
|
173
173
|
} catch (err) {
|
|
174
174
|
return { ok: false, error: String(err) };
|
|
175
175
|
}
|
|
@@ -199,7 +199,8 @@ function runDoctor(): LocalResult {
|
|
|
199
199
|
|
|
200
200
|
function readLogs(): LocalResult {
|
|
201
201
|
try {
|
|
202
|
-
const
|
|
202
|
+
const openclawDir = resolveOpenclawDir();
|
|
203
|
+
const logsDir = join(openclawDir, "logs");
|
|
203
204
|
let logFiles: string[] = [];
|
|
204
205
|
|
|
205
206
|
if (existsSync(logsDir)) {
|
|
@@ -207,9 +208,9 @@ function readLogs(): LocalResult {
|
|
|
207
208
|
.filter(f => f.endsWith(".log"))
|
|
208
209
|
.map(f => join(logsDir, f));
|
|
209
210
|
} else {
|
|
210
|
-
logFiles = readdirSync(
|
|
211
|
+
logFiles = readdirSync(openclawDir)
|
|
211
212
|
.filter(f => f.endsWith(".log"))
|
|
212
|
-
.map(f => join(
|
|
213
|
+
.map(f => join(openclawDir, f));
|
|
213
214
|
}
|
|
214
215
|
|
|
215
216
|
if (logFiles.length === 0) {
|
|
@@ -12,6 +12,9 @@ const NODE_BIN_DIR = dirname(process.execPath);
|
|
|
12
12
|
const KNOWN_BIN_DIRS = [
|
|
13
13
|
NODE_BIN_DIR,
|
|
14
14
|
join(HOME_DIR, ".npm-global", "bin"),
|
|
15
|
+
join(HOME_DIR, ".pnpm"),
|
|
16
|
+
join(HOME_DIR, "Library", "pnpm"),
|
|
17
|
+
join(HOME_DIR, ".config", "yarn", "global", "node_modules", ".bin"),
|
|
15
18
|
join(HOME_DIR, ".local", "bin"),
|
|
16
19
|
join(HOME_DIR, ".bun", "bin"),
|
|
17
20
|
join(HOME_DIR, ".volta", "bin"),
|
|
@@ -44,6 +47,7 @@ export const SUBPROCESS_ENV: NodeJS.ProcessEnv = {
|
|
|
44
47
|
};
|
|
45
48
|
|
|
46
49
|
let cachedOpenclawBin: string | null = null;
|
|
50
|
+
let cachedOpenclawConfigPath: string | null = null;
|
|
47
51
|
|
|
48
52
|
function findOpenclawInKnownPaths(): string | null {
|
|
49
53
|
for (const dir of KNOWN_BIN_DIRS) {
|
|
@@ -76,6 +80,50 @@ function resolveViaShell(): string | null {
|
|
|
76
80
|
return null;
|
|
77
81
|
}
|
|
78
82
|
|
|
83
|
+
function readCommandOutput(command: string): string | null {
|
|
84
|
+
const options: ExecSyncOptionsWithStringEncoding = {
|
|
85
|
+
stdio: "pipe",
|
|
86
|
+
env: SUBPROCESS_ENV,
|
|
87
|
+
timeout: 3000,
|
|
88
|
+
encoding: "utf8",
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
try {
|
|
92
|
+
const output = execSync(command, options).trim();
|
|
93
|
+
return output || null;
|
|
94
|
+
} catch {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function findOpenclawViaPackageManagers(): string | null {
|
|
100
|
+
const candidateDirs: string[] = [];
|
|
101
|
+
|
|
102
|
+
const npmPrefix = readCommandOutput("npm config get prefix");
|
|
103
|
+
if (npmPrefix && !/^undefined|null$/i.test(npmPrefix)) {
|
|
104
|
+
candidateDirs.push(join(npmPrefix, "bin"));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const pnpmGlobalBin = readCommandOutput("pnpm config get global-bin-dir");
|
|
108
|
+
if (pnpmGlobalBin && !/^undefined|null$/i.test(pnpmGlobalBin)) {
|
|
109
|
+
candidateDirs.push(pnpmGlobalBin);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const npmExec = readCommandOutput("npm exec --yes -- which openclaw");
|
|
113
|
+
if (npmExec && existsSync(npmExec)) {
|
|
114
|
+
return npmExec;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
for (const dir of unique(candidateDirs)) {
|
|
118
|
+
const candidate = join(dir, "openclaw");
|
|
119
|
+
if (existsSync(candidate)) {
|
|
120
|
+
return candidate;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
|
|
79
127
|
export function resolveOpenclawBin(forceRefresh = false): string {
|
|
80
128
|
if (!forceRefresh && cachedOpenclawBin && existsSync(cachedOpenclawBin)) {
|
|
81
129
|
return cachedOpenclawBin;
|
|
@@ -88,7 +136,7 @@ export function resolveOpenclawBin(forceRefresh = false): string {
|
|
|
88
136
|
return envOverride;
|
|
89
137
|
}
|
|
90
138
|
|
|
91
|
-
const resolved = resolveViaShell() ?? findOpenclawInKnownPaths();
|
|
139
|
+
const resolved = resolveViaShell() ?? findOpenclawViaPackageManagers() ?? findOpenclawInKnownPaths();
|
|
92
140
|
if (resolved) {
|
|
93
141
|
cachedOpenclawBin = resolved;
|
|
94
142
|
console.log(`[clawpilot] openclaw resolved: ${resolved}`);
|
|
@@ -174,3 +222,33 @@ export function execOpenclaw(args: string): Buffer {
|
|
|
174
222
|
return execFileSync(bin, argv, { stdio: "pipe", env: SUBPROCESS_ENV });
|
|
175
223
|
}
|
|
176
224
|
}
|
|
225
|
+
|
|
226
|
+
const DEFAULT_OPENCLAW_CONFIG_PATH = join(HOME_DIR, ".openclaw", "openclaw.json");
|
|
227
|
+
|
|
228
|
+
export function resolveOpenclawConfigPath(forceRefresh = false): string {
|
|
229
|
+
if (!forceRefresh && cachedOpenclawConfigPath && existsSync(cachedOpenclawConfigPath)) {
|
|
230
|
+
return cachedOpenclawConfigPath;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
try {
|
|
234
|
+
const output = execOpenclaw("config file").toString("utf8").trim();
|
|
235
|
+
const resolved = output
|
|
236
|
+
.split("\n")
|
|
237
|
+
.map(line => line.trim())
|
|
238
|
+
.find(line => line.endsWith(".json"));
|
|
239
|
+
|
|
240
|
+
if (resolved) {
|
|
241
|
+
cachedOpenclawConfigPath = resolved;
|
|
242
|
+
return resolved;
|
|
243
|
+
}
|
|
244
|
+
} catch {
|
|
245
|
+
// Fall back to the legacy path search below.
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
cachedOpenclawConfigPath = DEFAULT_OPENCLAW_CONFIG_PATH;
|
|
249
|
+
return DEFAULT_OPENCLAW_CONFIG_PATH;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export function resolveOpenclawDir(forceRefresh = false): string {
|
|
253
|
+
return dirname(resolveOpenclawConfigPath(forceRefresh));
|
|
254
|
+
}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { readFile, writeFile, mkdir, readdir } from "fs/promises";
|
|
2
2
|
import { join } from "path";
|
|
3
|
-
import { homedir } from "os";
|
|
4
3
|
import { PROVIDER_REGISTRY } from "./provider-registry.js";
|
|
5
|
-
|
|
6
|
-
const OPENCLAW_DIR = join(homedir(), ".openclaw");
|
|
7
|
-
const OPENCLAW_CONFIG = join(OPENCLAW_DIR, "openclaw.json");
|
|
8
|
-
const AGENTS_DIR = join(OPENCLAW_DIR, "agents");
|
|
4
|
+
import { resolveOpenclawConfigPath, resolveOpenclawDir } from "./openclaw-cli.js";
|
|
9
5
|
|
|
10
6
|
// ---------------------------------------------------------------------------
|
|
11
7
|
// Types
|
|
@@ -32,8 +28,9 @@ function maskKey(key: string): string {
|
|
|
32
28
|
}
|
|
33
29
|
|
|
34
30
|
async function resolveAgentId(): Promise<string> {
|
|
31
|
+
const agentsDir = join(resolveOpenclawDir(), "agents");
|
|
35
32
|
try {
|
|
36
|
-
const entries = await readdir(
|
|
33
|
+
const entries = await readdir(agentsDir, { withFileTypes: true });
|
|
37
34
|
const dirs = entries.filter(e => e.isDirectory()).map(e => e.name);
|
|
38
35
|
if (dirs.length > 0) return dirs[0];
|
|
39
36
|
} catch {
|
|
@@ -70,7 +67,7 @@ function getNestedObj(
|
|
|
70
67
|
}
|
|
71
68
|
|
|
72
69
|
function authProfilesPath(agentId: string): string {
|
|
73
|
-
return join(
|
|
70
|
+
return join(resolveOpenclawDir(), "agents", agentId, "agent", "auth-profiles.json");
|
|
74
71
|
}
|
|
75
72
|
|
|
76
73
|
/** Extract the first model ID from a provider's models array in openclaw.json */
|
|
@@ -95,7 +92,7 @@ function inferType(id: string): string {
|
|
|
95
92
|
// ---------------------------------------------------------------------------
|
|
96
93
|
|
|
97
94
|
export async function listProviderEntries(): Promise<ProviderEntry[]> {
|
|
98
|
-
const config = await readJson(
|
|
95
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
99
96
|
|
|
100
97
|
const agentId = await resolveAgentId();
|
|
101
98
|
const authProfiles = await readJson(authProfilesPath(agentId));
|
|
@@ -188,7 +185,7 @@ export async function addProvider(params: {
|
|
|
188
185
|
|
|
189
186
|
// --- Update openclaw.json (skip for builtIn providers) ---
|
|
190
187
|
if (!info?.builtIn) {
|
|
191
|
-
const config = await readJson(
|
|
188
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
192
189
|
const models = getNestedObj(config, ["models"]);
|
|
193
190
|
const providers = getNestedObj(models, ["providers"]);
|
|
194
191
|
|
|
@@ -199,14 +196,14 @@ export async function addProvider(params: {
|
|
|
199
196
|
}
|
|
200
197
|
providers[id] = providerEntry;
|
|
201
198
|
|
|
202
|
-
await writeJson(
|
|
199
|
+
await writeJson(resolveOpenclawConfigPath(), config);
|
|
203
200
|
}
|
|
204
201
|
|
|
205
202
|
// --- Update auth-profiles.json (only if apiKey provided) ---
|
|
206
203
|
if (apiKey != null && apiKey.length > 0) {
|
|
207
204
|
const agentId = await resolveAgentId();
|
|
208
205
|
const profilesPath = authProfilesPath(agentId);
|
|
209
|
-
const profilesDir = join(
|
|
206
|
+
const profilesDir = join(resolveOpenclawDir(), "agents", agentId, "agent");
|
|
210
207
|
|
|
211
208
|
await mkdir(profilesDir, { recursive: true });
|
|
212
209
|
|
|
@@ -227,11 +224,11 @@ export async function deleteProvider(id: string): Promise<void> {
|
|
|
227
224
|
|
|
228
225
|
// --- Update openclaw.json (skip for builtIn) ---
|
|
229
226
|
if (!info?.builtIn) {
|
|
230
|
-
const config = await readJson(
|
|
227
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
231
228
|
const models = getNestedObj(config, ["models"]);
|
|
232
229
|
const providers = getNestedObj(models, ["providers"]);
|
|
233
230
|
delete providers[id];
|
|
234
|
-
await writeJson(
|
|
231
|
+
await writeJson(resolveOpenclawConfigPath(), config);
|
|
235
232
|
}
|
|
236
233
|
|
|
237
234
|
// --- Update auth-profiles.json ---
|
|
@@ -259,7 +256,7 @@ export async function setDefaultProvider(id: string): Promise<void> {
|
|
|
259
256
|
modelId = info.defaultModelId ?? null;
|
|
260
257
|
} else {
|
|
261
258
|
// Read from models.providers entry
|
|
262
|
-
const config = await readJson(
|
|
259
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
263
260
|
const models = (config["models"] as Record<string, unknown>) ?? {};
|
|
264
261
|
const providers = (models["providers"] as Record<string, unknown>) ?? {};
|
|
265
262
|
const providerRaw = (providers[id] as Record<string, unknown>) ?? {};
|
|
@@ -268,11 +265,11 @@ export async function setDefaultProvider(id: string): Promise<void> {
|
|
|
268
265
|
|
|
269
266
|
const primary = modelId ? `${id}/${modelId}` : id;
|
|
270
267
|
|
|
271
|
-
const config = await readJson(
|
|
268
|
+
const config = await readJson(resolveOpenclawConfigPath());
|
|
272
269
|
const agents = getNestedObj(config, ["agents"]);
|
|
273
270
|
const defaults = getNestedObj(agents, ["defaults"]);
|
|
274
271
|
const model = getNestedObj(defaults, ["model"]);
|
|
275
272
|
model["primary"] = primary;
|
|
276
273
|
|
|
277
|
-
await writeJson(
|
|
274
|
+
await writeJson(resolveOpenclawConfigPath(), config);
|
|
278
275
|
}
|
package/src/config/config.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
3
|
import { homedir } from "os";
|
|
4
|
+
import { resolveOpenclawConfigPath } from "../commands/openclaw-cli.js";
|
|
4
5
|
|
|
5
6
|
const CONFIG_DIR = join(homedir(), ".clawai");
|
|
6
7
|
const CONFIG_PATH = join(CONFIG_DIR, "config.json");
|
|
7
|
-
const
|
|
8
|
+
const LEGACY_OPENCLAW_CONFIG_PATH = join(homedir(), ".openclaw", "openclaw.json");
|
|
8
9
|
|
|
9
10
|
export interface ClawaiConfig {
|
|
10
11
|
relayServerUrl: string;
|
|
@@ -36,7 +37,9 @@ export function writeConfig(config: ClawaiConfig): void {
|
|
|
36
37
|
|
|
37
38
|
export function readGatewayUrl(): string {
|
|
38
39
|
try {
|
|
39
|
-
const
|
|
40
|
+
const configPath = resolveOpenclawConfigPath();
|
|
41
|
+
const path = existsSync(configPath) ? configPath : LEGACY_OPENCLAW_CONFIG_PATH;
|
|
42
|
+
const raw = readFileSync(path, "utf-8");
|
|
40
43
|
const json = JSON.parse(raw) as { gateway?: { port?: number } };
|
|
41
44
|
const port = json?.gateway?.port ?? 18789;
|
|
42
45
|
return `ws://localhost:${port}`;
|
|
@@ -57,7 +60,9 @@ export function readGatewayAuth(cfg: ClawaiConfig): { token?: string; password?:
|
|
|
57
60
|
}
|
|
58
61
|
// Try to read the token from OpenClaw's own config
|
|
59
62
|
try {
|
|
60
|
-
const
|
|
63
|
+
const configPath = resolveOpenclawConfigPath();
|
|
64
|
+
const path = existsSync(configPath) ? configPath : LEGACY_OPENCLAW_CONFIG_PATH;
|
|
65
|
+
const raw = readFileSync(path, "utf-8");
|
|
61
66
|
const json = JSON.parse(raw) as { gateway?: { token?: string; password?: string; auth?: { token?: string; password?: string } } };
|
|
62
67
|
const token = json?.gateway?.token ?? json?.gateway?.auth?.token ?? undefined;
|
|
63
68
|
const password = json?.gateway?.password ?? json?.gateway?.auth?.password ?? undefined;
|