openfox 2.0.57 → 2.0.59
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/agent-defaults/explorer.agent.md +4 -0
- package/dist/{auto-config-F5Y6KAQ6.js → auto-config-T5GR2N6X.js} +20 -1
- package/dist/{backend-B23GIKKD.js → backend-P3GHHLHJ.js} +2 -2
- package/dist/{branch.api-5DMEAIBI.js → branch.api-LAN42BA5.js} +3 -2
- package/dist/{chat-handler-QO4XB66I.js → chat-handler-AS44EMQE.js} +9 -9
- package/dist/{chunk-QQ5XY6BH.js → chunk-43UFGATL.js} +16 -6
- package/dist/{chunk-DQCEXCDD.js → chunk-5MDIKIMG.js} +23 -12
- package/dist/{chunk-VZHN46NW.js → chunk-6VDCH5ML.js} +2 -2
- package/dist/{chunk-BIWVYBIE.js → chunk-BGTEIA2S.js} +4 -3
- package/dist/{chunk-WI6HGJ27.js → chunk-EKI5SZC7.js} +3 -3
- package/dist/{chunk-AGXBUC4M.js → chunk-FRU2X3IZ.js} +71 -31
- package/dist/{chunk-4566MTWM.js → chunk-GJU35MDV.js} +2 -2
- package/dist/{chunk-R2QCDYYR.js → chunk-H774GQJW.js} +53 -2
- package/dist/{chunk-ZZLCX7YT.js → chunk-JKLPWTUN.js} +2 -2
- package/dist/{chunk-5HOP4QF7.js → chunk-LQFCQ6PY.js} +107 -79
- package/dist/{chunk-UOKVBO67.js → chunk-NVPVDDQZ.js} +2 -2
- package/dist/{chunk-F7M2W46Q.js → chunk-P7C6KF2H.js} +9 -9
- package/dist/{chunk-ADOXTORQ.js → chunk-PK2RMVMB.js} +2 -2
- package/dist/{chunk-PSJON33Y.js → chunk-YHEQTVFV.js} +7 -1
- package/dist/cli/dev.js +2 -2
- package/dist/cli/index.js +2 -2
- package/dist/{client-Y3ESMMZA.js → client-KRFGMNGN.js} +3 -3
- package/dist/{compactor-ZKZYSNMD.js → compactor-Q33AJPCQ.js} +4 -4
- package/dist/{config-5ZHFKWOW.js → config-GMQUPNBY.js} +2 -2
- package/dist/{manager-CZOVNTSN.js → manager-344C5JLZ.js} +3 -3
- package/dist/{orchestrator-YMNKXVDF.js → orchestrator-MH7J2YVP.js} +8 -8
- package/dist/package.json +1 -1
- package/dist/{permissions-QLHZUEGW.js → permissions-CGEK3DGZ.js} +21 -17
- package/dist/{processor-2BB65JWR.js → processor-34MVJZTD.js} +9 -9
- package/dist/{project-creator-7RBHP6K6.js → project-creator-IDW7RACH.js} +4 -4
- package/dist/{protocol-DRe5K6Id.d.ts → protocol-J7khRG62.d.ts} +3 -1
- package/dist/{provider-V6Q6WJAF.js → provider-LBYBC5AG.js} +6 -6
- package/dist/{provider-manager-PR64DEN2.js → provider-manager-ABEUYU3K.js} +4 -4
- package/dist/{pwa-M6QZ52ZO.js → pwa-T6JRAYJB.js} +11 -10
- package/dist/{serve-WFQT6BP6.js → serve-NHF6B5RQ.js} +13 -13
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +12 -12
- package/dist/{server-V32ZOVU4.js → server-KDGQZNYQ.js} +11 -11
- package/dist/{service-YYJ5Y7CN.js → service-6DL3MJZD.js} +7 -5
- package/dist/shared/index.d.ts +2 -2
- package/dist/{store-NS2RMRA7.js → store-FXTCHBI4.js} +2 -2
- package/dist/{tools-L2SMYKJZ.js → tools-FQ54IAYG.js} +7 -7
- package/dist/web/assets/{index-CvIUuius.css → index-DjfRXOO7.css} +1 -1
- package/dist/web/assets/{index-CRW5qofP.js → index-Dqqp_j-f.js} +71 -71
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
|
@@ -39,7 +39,7 @@ Options:
|
|
|
39
39
|
}
|
|
40
40
|
async function runNetworkSetup(mode) {
|
|
41
41
|
const { loadAuthConfig, saveAuthConfig, encryptPassword } = await import("./auth-YY5PJYSC.js");
|
|
42
|
-
const { saveGlobalConfig } = await import("./config-
|
|
42
|
+
const { saveGlobalConfig } = await import("./config-GMQUPNBY.js");
|
|
43
43
|
const { getAuthKeyPath } = await import("./paths-F27V3S4I.js");
|
|
44
44
|
const existingAuth = await loadAuthConfig(mode);
|
|
45
45
|
if (existingAuth) {
|
|
@@ -106,7 +106,7 @@ async function runNetworkSetup(mode) {
|
|
|
106
106
|
console.log("\u2713 Configuration saved!\n");
|
|
107
107
|
}
|
|
108
108
|
async function runConfig(mode) {
|
|
109
|
-
const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-
|
|
109
|
+
const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-GMQUPNBY.js");
|
|
110
110
|
const { getGlobalConfigPath } = await import("./paths-F27V3S4I.js");
|
|
111
111
|
const config = await loadGlobalConfig(mode);
|
|
112
112
|
const configPath = getGlobalConfigPath(mode);
|
|
@@ -164,13 +164,13 @@ async function runCli(options) {
|
|
|
164
164
|
break;
|
|
165
165
|
}
|
|
166
166
|
case "provider": {
|
|
167
|
-
const { runProviderCommand } = await import("./provider-
|
|
167
|
+
const { runProviderCommand } = await import("./provider-LBYBC5AG.js");
|
|
168
168
|
const [, subcommand] = positionals;
|
|
169
169
|
await runProviderCommand(mode, subcommand);
|
|
170
170
|
break;
|
|
171
171
|
}
|
|
172
172
|
case "service": {
|
|
173
|
-
const { runServiceCommand } = await import("./service-
|
|
173
|
+
const { runServiceCommand } = await import("./service-6DL3MJZD.js");
|
|
174
174
|
const [, subcommand, ...serviceArgs] = positionals;
|
|
175
175
|
if (values.follow) {
|
|
176
176
|
serviceArgs.push("-f");
|
|
@@ -183,7 +183,7 @@ async function runCli(options) {
|
|
|
183
183
|
break;
|
|
184
184
|
}
|
|
185
185
|
case "pwa": {
|
|
186
|
-
const { runPwaCommand, printPwaHelp } = await import("./pwa-
|
|
186
|
+
const { runPwaCommand, printPwaHelp } = await import("./pwa-T6JRAYJB.js");
|
|
187
187
|
const [, subcommand] = positionals;
|
|
188
188
|
if (subcommand === "--help" || subcommand === "-h" || values.help) {
|
|
189
189
|
printPwaHelp();
|
|
@@ -196,19 +196,19 @@ async function runCli(options) {
|
|
|
196
196
|
const __filename = fileURLToPath(import.meta.url);
|
|
197
197
|
const __dirname = dirname(__filename);
|
|
198
198
|
const updateScriptPath = join(__dirname, "cli", "update.sh");
|
|
199
|
-
const result = spawnSync(updateScriptPath, [], { shell: true, stdio: "inherit" });
|
|
199
|
+
const result = spawnSync(updateScriptPath, [], { shell: true, stdio: "inherit", windowsHide: true });
|
|
200
200
|
if (result.status !== 0) {
|
|
201
201
|
process.exit(result.status ?? 1);
|
|
202
202
|
}
|
|
203
203
|
break;
|
|
204
204
|
}
|
|
205
205
|
default: {
|
|
206
|
-
const { configFileExists } = await import("./config-
|
|
206
|
+
const { configFileExists } = await import("./config-GMQUPNBY.js");
|
|
207
207
|
const configExists = await configFileExists(mode);
|
|
208
208
|
if (!configExists) {
|
|
209
209
|
await runNetworkSetup(mode);
|
|
210
210
|
}
|
|
211
|
-
const { runServe } = await import("./serve-
|
|
211
|
+
const { runServe } = await import("./serve-NHF6B5RQ.js");
|
|
212
212
|
const serveOptions = { mode };
|
|
213
213
|
if (values.port) serveOptions.port = parseInt(values.port);
|
|
214
214
|
if (values["no-browser"] === true) serveOptions.openBrowser = false;
|
|
@@ -220,4 +220,4 @@ async function runCli(options) {
|
|
|
220
220
|
export {
|
|
221
221
|
runCli
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-P7C6KF2H.js.map
|
|
@@ -5,7 +5,7 @@ var SIGKILL_TIMEOUT_MS = 200;
|
|
|
5
5
|
async function getDescendantPids(rootPid) {
|
|
6
6
|
try {
|
|
7
7
|
const { stdout } = await new Promise((resolve, reject) => {
|
|
8
|
-
execFile("ps", ["-eo", "pid=,ppid="], { timeout: 5e3 }, (err, stdout2) => {
|
|
8
|
+
execFile("ps", ["-eo", "pid=,ppid="], { timeout: 5e3, windowsHide: true }, (err, stdout2) => {
|
|
9
9
|
if (err) reject(err);
|
|
10
10
|
else resolve({ stdout: stdout2 });
|
|
11
11
|
});
|
|
@@ -224,4 +224,4 @@ export {
|
|
|
224
224
|
getProcessById,
|
|
225
225
|
cleanupAllProcesses
|
|
226
226
|
};
|
|
227
|
-
//# sourceMappingURL=chunk-
|
|
227
|
+
//# sourceMappingURL=chunk-PK2RMVMB.js.map
|
|
@@ -24,6 +24,10 @@ var BACKEND_CAPABILITIES = {
|
|
|
24
24
|
supportsChatTemplateKwargs: false,
|
|
25
25
|
supportsTopK: true
|
|
26
26
|
},
|
|
27
|
+
lmstudio: {
|
|
28
|
+
supportsChatTemplateKwargs: false,
|
|
29
|
+
supportsTopK: true
|
|
30
|
+
},
|
|
27
31
|
"opencode-go": {
|
|
28
32
|
supportsChatTemplateKwargs: false,
|
|
29
33
|
supportsTopK: true
|
|
@@ -46,6 +50,8 @@ function getBackendDisplayName(backend) {
|
|
|
46
50
|
return "Ollama";
|
|
47
51
|
case "llamacpp":
|
|
48
52
|
return "llama.cpp";
|
|
53
|
+
case "lmstudio":
|
|
54
|
+
return "LM Studio";
|
|
49
55
|
case "opencode-go":
|
|
50
56
|
return "OpenCode Go";
|
|
51
57
|
case "openai":
|
|
@@ -61,4 +67,4 @@ export {
|
|
|
61
67
|
getBackendCapabilities,
|
|
62
68
|
getBackendDisplayName
|
|
63
69
|
};
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
70
|
+
//# sourceMappingURL=chunk-YHEQTVFV.js.map
|
package/dist/cli/dev.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runCli
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-P7C6KF2H.js";
|
|
5
5
|
import "../chunk-XY3LESVZ.js";
|
|
6
6
|
import {
|
|
7
7
|
logger
|
|
@@ -30,7 +30,7 @@ if (currentHeap < MIN_HEAP_MB && !process.env["OPENFOX_HEAP_INCREASED"]) {
|
|
|
30
30
|
const result = spawnSync(
|
|
31
31
|
process.execPath,
|
|
32
32
|
["--max-old-space-size=" + heapMB, ...process.execArgv, scriptPath, ...process.argv.slice(2)],
|
|
33
|
-
{ stdio: "inherit", env }
|
|
33
|
+
{ stdio: "inherit", env, windowsHide: true }
|
|
34
34
|
);
|
|
35
35
|
process.exit(result.status ?? 0);
|
|
36
36
|
}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runCli
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-P7C6KF2H.js";
|
|
5
5
|
import "../chunk-XY3LESVZ.js";
|
|
6
6
|
import {
|
|
7
7
|
logger
|
|
@@ -29,7 +29,7 @@ if (currentHeap < MIN_HEAP_MB && !process.env["OPENFOX_HEAP_INCREASED"]) {
|
|
|
29
29
|
const result = spawnSync(
|
|
30
30
|
process.execPath,
|
|
31
31
|
["--max-old-space-size=" + heapMB, ...process.execArgv, scriptPath, ...process.argv.slice(2)],
|
|
32
|
-
{ stdio: "inherit", env }
|
|
32
|
+
{ stdio: "inherit", env, windowsHide: true }
|
|
33
33
|
);
|
|
34
34
|
process.exit(result.status ?? 0);
|
|
35
35
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createLLMClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-JKLPWTUN.js";
|
|
4
|
+
import "./chunk-YHEQTVFV.js";
|
|
5
5
|
import "./chunk-HNCM3D7Y.js";
|
|
6
6
|
import "./chunk-Z6W4YHJB.js";
|
|
7
7
|
import "./chunk-ZO5EXQMG.js";
|
|
@@ -11,4 +11,4 @@ import "./chunk-5WRI5ZAA.js";
|
|
|
11
11
|
export {
|
|
12
12
|
createLLMClient
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=client-
|
|
14
|
+
//# sourceMappingURL=client-KRFGMNGN.js.map
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
appendCompactionPrompt,
|
|
3
3
|
getCompactionTarget,
|
|
4
4
|
shouldCompact
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-GJU35MDV.js";
|
|
6
|
+
import "./chunk-6VDCH5ML.js";
|
|
7
7
|
import "./chunk-AIJE3RYH.js";
|
|
8
8
|
import "./chunk-TMUBLQFC.js";
|
|
9
9
|
import "./chunk-ZPIZLTWU.js";
|
|
10
10
|
import "./chunk-J2GP3J3X.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-YHEQTVFV.js";
|
|
12
12
|
import "./chunk-Z6W4YHJB.js";
|
|
13
13
|
import "./chunk-K44MW7JJ.js";
|
|
14
14
|
import "./chunk-V4IE7HJY.js";
|
|
@@ -18,4 +18,4 @@ export {
|
|
|
18
18
|
getCompactionTarget,
|
|
19
19
|
shouldCompact
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=compactor-
|
|
21
|
+
//# sourceMappingURL=compactor-Q33AJPCQ.js.map
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
saveGlobalConfig,
|
|
12
12
|
setDefaultModelSelection,
|
|
13
13
|
updateProvider
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-43UFGATL.js";
|
|
15
15
|
import "./chunk-CQGTEGKL.js";
|
|
16
16
|
import "./chunk-5WRI5ZAA.js";
|
|
17
17
|
export {
|
|
@@ -28,4 +28,4 @@ export {
|
|
|
28
28
|
setDefaultModelSelection,
|
|
29
29
|
updateProvider
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=config-
|
|
31
|
+
//# sourceMappingURL=config-GMQUPNBY.js.map
|
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
onProcessEvent,
|
|
7
7
|
startProcessCommand,
|
|
8
8
|
stopProcess
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-BGTEIA2S.js";
|
|
10
|
+
import "./chunk-PK2RMVMB.js";
|
|
11
11
|
import "./chunk-5WRI5ZAA.js";
|
|
12
12
|
export {
|
|
13
13
|
createProcess,
|
|
@@ -18,4 +18,4 @@ export {
|
|
|
18
18
|
startProcessCommand,
|
|
19
19
|
stopProcess
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=manager-
|
|
21
|
+
//# sourceMappingURL=manager-344C5JLZ.js.map
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
injectWorkflowKickoffIfNeeded,
|
|
3
3
|
runAgentTurn,
|
|
4
4
|
runChatTurn
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-EKI5SZC7.js";
|
|
6
|
+
import "./chunk-FRU2X3IZ.js";
|
|
7
7
|
import "./chunk-LBGHZLLH.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-BGTEIA2S.js";
|
|
9
|
+
import "./chunk-PK2RMVMB.js";
|
|
10
10
|
import "./chunk-NWO6GRYE.js";
|
|
11
11
|
import "./chunk-F4PMNP7S.js";
|
|
12
12
|
import "./chunk-EU3WWTFH.js";
|
|
@@ -19,16 +19,16 @@ import {
|
|
|
19
19
|
createMessageStartEvent,
|
|
20
20
|
createToolCallEvent,
|
|
21
21
|
createToolResultEvent
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-6VDCH5ML.js";
|
|
23
23
|
import "./chunk-AIJE3RYH.js";
|
|
24
24
|
import "./chunk-TMUBLQFC.js";
|
|
25
25
|
import "./chunk-ZPIZLTWU.js";
|
|
26
26
|
import "./chunk-J2GP3J3X.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-YHEQTVFV.js";
|
|
28
28
|
import "./chunk-Z6W4YHJB.js";
|
|
29
29
|
import "./chunk-K44MW7JJ.js";
|
|
30
30
|
import "./chunk-YD6NDTKF.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-43UFGATL.js";
|
|
32
32
|
import "./chunk-CQGTEGKL.js";
|
|
33
33
|
import "./chunk-V4IE7HJY.js";
|
|
34
34
|
import "./chunk-5WRI5ZAA.js";
|
|
@@ -43,4 +43,4 @@ export {
|
|
|
43
43
|
runAgentTurn,
|
|
44
44
|
runChatTurn
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=orchestrator-
|
|
46
|
+
//# sourceMappingURL=orchestrator-MH7J2YVP.js.map
|
package/dist/package.json
CHANGED
|
@@ -11,6 +11,13 @@ function sanitizeShellArg(arg) {
|
|
|
11
11
|
}
|
|
12
12
|
return arg;
|
|
13
13
|
}
|
|
14
|
+
function addUserToGroup(groupName) {
|
|
15
|
+
const currentUser = execSync("id -un", { encoding: "utf-8", windowsHide: true }).trim();
|
|
16
|
+
execSync(`sudo usermod -aG ${sanitizeShellArg(groupName)} ${sanitizeShellArg(currentUser)}`, {
|
|
17
|
+
stdio: "pipe",
|
|
18
|
+
windowsHide: true
|
|
19
|
+
});
|
|
20
|
+
}
|
|
14
21
|
async function getDirInfo(targetPath) {
|
|
15
22
|
const resolvedPath = resolve(targetPath);
|
|
16
23
|
try {
|
|
@@ -20,19 +27,19 @@ async function getDirInfo(targetPath) {
|
|
|
20
27
|
}
|
|
21
28
|
let sudoAvailable;
|
|
22
29
|
try {
|
|
23
|
-
execSync("sudo -n true", { stdio: "pipe" });
|
|
30
|
+
execSync("sudo -n true", { stdio: "pipe", windowsHide: true });
|
|
24
31
|
sudoAvailable = true;
|
|
25
32
|
} catch {
|
|
26
33
|
sudoAvailable = false;
|
|
27
34
|
}
|
|
28
35
|
const dirStat = await stat(resolvedPath);
|
|
29
36
|
const groupGid = dirStat.gid;
|
|
30
|
-
const currentUser = sanitizeShellArg(execSync("id -un", { encoding: "utf-8" }).trim());
|
|
31
|
-
const groupsOutput = execSync(`id -Gn ${currentUser}`, { encoding: "utf-8" }).trim();
|
|
37
|
+
const currentUser = sanitizeShellArg(execSync("id -un", { encoding: "utf-8", windowsHide: true }).trim());
|
|
38
|
+
const groupsOutput = execSync(`id -Gn ${currentUser}`, { encoding: "utf-8", windowsHide: true }).trim();
|
|
32
39
|
const userGroups = groupsOutput.split(/\s+/);
|
|
33
40
|
let groupName = null;
|
|
34
41
|
try {
|
|
35
|
-
const rawGroupName = execSync(`getent group ${groupGid}`, { encoding: "utf-8" }).split(":")[0]?.trim();
|
|
42
|
+
const rawGroupName = execSync(`getent group ${groupGid}`, { encoding: "utf-8", windowsHide: true }).split(":")[0]?.trim();
|
|
36
43
|
groupName = rawGroupName ? sanitizeShellArg(rawGroupName) : null;
|
|
37
44
|
} catch {
|
|
38
45
|
}
|
|
@@ -69,32 +76,29 @@ async function fixPermissions(targetPath, action) {
|
|
|
69
76
|
error: 'You are not in the group that owns this directory. Use "Join group & extend group permissions" instead.'
|
|
70
77
|
};
|
|
71
78
|
}
|
|
72
|
-
execSync(`sudo chmod g+w "${info.resolvedPath}"`, { stdio: "pipe" });
|
|
79
|
+
execSync(`sudo chmod g+w "${info.resolvedPath}"`, { stdio: "pipe", windowsHide: true });
|
|
73
80
|
return { success: true, sudoAvailable: info.sudoAvailable, method: "group" };
|
|
74
81
|
}
|
|
75
82
|
if (action === "join_group") {
|
|
76
83
|
if (!info.groupName) {
|
|
77
84
|
return { success: false, sudoAvailable: info.sudoAvailable, error: "Could not determine group name" };
|
|
78
85
|
}
|
|
79
|
-
|
|
80
|
-
execSync(`sudo usermod -aG ${sanitizeShellArg(info.groupName)} ${sanitizeShellArg(currentUser)}`, {
|
|
81
|
-
stdio: "pipe"
|
|
82
|
-
});
|
|
86
|
+
addUserToGroup(info.groupName);
|
|
83
87
|
return { success: true, sudoAvailable: info.sudoAvailable, method: "join_group" };
|
|
84
88
|
}
|
|
85
89
|
if (action === "join_group_and_group") {
|
|
86
90
|
if (!info.groupName) {
|
|
87
91
|
return { success: false, sudoAvailable: info.sudoAvailable, error: "Could not determine group name" };
|
|
88
92
|
}
|
|
89
|
-
execSync(`sudo chmod g+w "${info.resolvedPath}"`, { stdio: "pipe" });
|
|
90
|
-
|
|
91
|
-
execSync(`sudo usermod -aG ${sanitizeShellArg(info.groupName)} ${sanitizeShellArg(currentUser)}`, {
|
|
92
|
-
stdio: "pipe"
|
|
93
|
-
});
|
|
93
|
+
execSync(`sudo chmod g+w "${info.resolvedPath}"`, { stdio: "pipe", windowsHide: true });
|
|
94
|
+
addUserToGroup(info.groupName);
|
|
94
95
|
return { success: true, sudoAvailable: info.sudoAvailable, method: "join_group_and_group" };
|
|
95
96
|
}
|
|
96
|
-
const ownerUser = execSync("id -un", { encoding: "utf-8" }).trim();
|
|
97
|
-
execSync(`sudo chown -R ${sanitizeShellArg(ownerUser)} "${info.resolvedPath}"`, {
|
|
97
|
+
const ownerUser = execSync("id -un", { encoding: "utf-8", windowsHide: true }).trim();
|
|
98
|
+
execSync(`sudo chown -R ${sanitizeShellArg(ownerUser)} "${info.resolvedPath}"`, {
|
|
99
|
+
stdio: "pipe",
|
|
100
|
+
windowsHide: true
|
|
101
|
+
});
|
|
98
102
|
return { success: true, sudoAvailable: info.sudoAvailable, method: "ownership" };
|
|
99
103
|
} catch (err) {
|
|
100
104
|
const message = err instanceof Error ? err.message : "Unknown error";
|
|
@@ -108,4 +112,4 @@ export {
|
|
|
108
112
|
checkPermissions,
|
|
109
113
|
fixPermissions
|
|
110
114
|
};
|
|
111
|
-
//# sourceMappingURL=permissions-
|
|
115
|
+
//# sourceMappingURL=permissions-CGEK3DGZ.js.map
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
buildRunChatTurnParams,
|
|
3
3
|
finalizeTurnCompletion,
|
|
4
4
|
generateSessionNameForSession
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-NVPVDDQZ.js";
|
|
6
|
+
import "./chunk-FRU2X3IZ.js";
|
|
7
7
|
import "./chunk-LBGHZLLH.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-BGTEIA2S.js";
|
|
9
|
+
import "./chunk-PK2RMVMB.js";
|
|
10
10
|
import "./chunk-NWO6GRYE.js";
|
|
11
11
|
import {
|
|
12
12
|
createChatMessageMessage,
|
|
@@ -15,20 +15,20 @@ import {
|
|
|
15
15
|
import "./chunk-EU3WWTFH.js";
|
|
16
16
|
import "./chunk-CDRQJDSJ.js";
|
|
17
17
|
import "./chunk-YQ3SOPBI.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-6VDCH5ML.js";
|
|
19
19
|
import {
|
|
20
20
|
getEventStore
|
|
21
21
|
} from "./chunk-AIJE3RYH.js";
|
|
22
22
|
import "./chunk-TMUBLQFC.js";
|
|
23
23
|
import "./chunk-ZPIZLTWU.js";
|
|
24
24
|
import "./chunk-J2GP3J3X.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-YHEQTVFV.js";
|
|
26
26
|
import "./chunk-Z6W4YHJB.js";
|
|
27
27
|
import {
|
|
28
28
|
logger
|
|
29
29
|
} from "./chunk-K44MW7JJ.js";
|
|
30
30
|
import "./chunk-YD6NDTKF.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-43UFGATL.js";
|
|
32
32
|
import "./chunk-CQGTEGKL.js";
|
|
33
33
|
import "./chunk-V4IE7HJY.js";
|
|
34
34
|
import "./chunk-5WRI5ZAA.js";
|
|
@@ -174,7 +174,7 @@ var QueueProcessor = class {
|
|
|
174
174
|
backend: provider?.backend ?? llmClient.getBackend(),
|
|
175
175
|
model: llmClient.getModel()
|
|
176
176
|
};
|
|
177
|
-
const { runChatTurn } = await import("./orchestrator-
|
|
177
|
+
const { runChatTurn } = await import("./orchestrator-MH7J2YVP.js");
|
|
178
178
|
const runChatTurnParams = buildRunChatTurnParams({
|
|
179
179
|
sessionManager,
|
|
180
180
|
sessionId,
|
|
@@ -222,4 +222,4 @@ var QueueProcessor = class {
|
|
|
222
222
|
export {
|
|
223
223
|
QueueProcessor
|
|
224
224
|
};
|
|
225
|
-
//# sourceMappingURL=processor-
|
|
225
|
+
//# sourceMappingURL=processor-34MVJZTD.js.map
|
|
@@ -74,7 +74,7 @@ async function createDirectoryWithGit(projectName, workdir) {
|
|
|
74
74
|
}
|
|
75
75
|
if (!await directoryExists(join(fullPath, ".git"))) {
|
|
76
76
|
try {
|
|
77
|
-
execSync("git init", { cwd: fullPath, stdio: "pipe" });
|
|
77
|
+
execSync("git init", { cwd: fullPath, stdio: "pipe", windowsHide: true });
|
|
78
78
|
} catch (gitErr) {
|
|
79
79
|
const errMsg = gitErr instanceof Error ? gitErr.message : "Unknown";
|
|
80
80
|
const exitCode = gitErr.status ?? gitErr.exitCode;
|
|
@@ -82,8 +82,8 @@ async function createDirectoryWithGit(projectName, workdir) {
|
|
|
82
82
|
let sudoSuccess = false;
|
|
83
83
|
if (isPermission) {
|
|
84
84
|
try {
|
|
85
|
-
const currentUser = execSync("id -un", { encoding: "utf-8" }).trim();
|
|
86
|
-
execSync(`sudo -u ${currentUser} git init`, { cwd: fullPath, stdio: "pipe" });
|
|
85
|
+
const currentUser = execSync("id -un", { encoding: "utf-8", windowsHide: true }).trim();
|
|
86
|
+
execSync(`sudo -u ${currentUser} git init`, { cwd: fullPath, stdio: "pipe", windowsHide: true });
|
|
87
87
|
sudoSuccess = true;
|
|
88
88
|
} catch {
|
|
89
89
|
}
|
|
@@ -109,4 +109,4 @@ export {
|
|
|
109
109
|
createDirectoryWithGit,
|
|
110
110
|
validateProjectName
|
|
111
111
|
};
|
|
112
|
-
//# sourceMappingURL=project-creator-
|
|
112
|
+
//# sourceMappingURL=project-creator-IDW7RACH.js.map
|
|
@@ -394,7 +394,7 @@ interface Diagnostic {
|
|
|
394
394
|
code?: string | number;
|
|
395
395
|
}
|
|
396
396
|
/** Supported LLM inference backends */
|
|
397
|
-
type LlmBackend = 'vllm' | 'sglang' | 'ollama' | 'llamacpp' | 'opencode-go' | 'unknown';
|
|
397
|
+
type LlmBackend = 'vllm' | 'sglang' | 'ollama' | 'llamacpp' | 'lmstudio' | 'opencode-go' | 'unknown';
|
|
398
398
|
/** Extended backend type including cloud providers */
|
|
399
399
|
type ProviderBackend = LlmBackend | 'openai' | 'anthropic';
|
|
400
400
|
/** Model configuration with context window */
|
|
@@ -492,6 +492,8 @@ interface Config {
|
|
|
492
492
|
activeWorkflowId?: string | undefined;
|
|
493
493
|
/** Disable automatic session title generation */
|
|
494
494
|
disableAutoSessionTitle?: boolean;
|
|
495
|
+
/** Override path for the global config file (used for test isolation) */
|
|
496
|
+
globalConfigPath?: string;
|
|
495
497
|
/** MCP server configurations */
|
|
496
498
|
mcpServers?: Record<string, {
|
|
497
499
|
transport: 'stdio' | 'http';
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
} from "./chunk-XY3LESVZ.js";
|
|
11
11
|
import {
|
|
12
12
|
fetchAvailableModelsFromBackend
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-H774GQJW.js";
|
|
14
14
|
import {
|
|
15
15
|
detectModel
|
|
16
16
|
} from "./chunk-M3RB4IF6.js";
|
|
17
17
|
import "./chunk-J2GP3J3X.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-JKLPWTUN.js";
|
|
19
|
+
import "./chunk-YHEQTVFV.js";
|
|
20
20
|
import "./chunk-HNCM3D7Y.js";
|
|
21
21
|
import "./chunk-Z6W4YHJB.js";
|
|
22
22
|
import "./chunk-ZO5EXQMG.js";
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
loadGlobalConfig,
|
|
29
29
|
removeProvider,
|
|
30
30
|
saveGlobalConfig
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-43UFGATL.js";
|
|
32
32
|
import "./chunk-CQGTEGKL.js";
|
|
33
33
|
import "./chunk-V4IE7HJY.js";
|
|
34
34
|
import "./chunk-5WRI5ZAA.js";
|
|
@@ -270,7 +270,7 @@ async function runProviderAdd(mode) {
|
|
|
270
270
|
isActive: makeActive
|
|
271
271
|
});
|
|
272
272
|
if (makeActive) {
|
|
273
|
-
const { setDefaultModelSelection } = await import("./config-
|
|
273
|
+
const { setDefaultModelSelection } = await import("./config-GMQUPNBY.js");
|
|
274
274
|
newConfig = setDefaultModelSelection(
|
|
275
275
|
newConfig,
|
|
276
276
|
newConfig.providers[newConfig.providers.length - 1].id,
|
|
@@ -398,4 +398,4 @@ export {
|
|
|
398
398
|
runProviderRemove,
|
|
399
399
|
runProviderUse
|
|
400
400
|
};
|
|
401
|
-
//# sourceMappingURL=provider-
|
|
401
|
+
//# sourceMappingURL=provider-LBYBC5AG.js.map
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
fetchAvailableModelsFromBackend,
|
|
4
4
|
fetchModelsWithContext,
|
|
5
5
|
parseDefaultModelSelection
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-H774GQJW.js";
|
|
7
7
|
import "./chunk-M3RB4IF6.js";
|
|
8
8
|
import "./chunk-J2GP3J3X.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-JKLPWTUN.js";
|
|
10
|
+
import "./chunk-YHEQTVFV.js";
|
|
11
11
|
import "./chunk-HNCM3D7Y.js";
|
|
12
12
|
import "./chunk-Z6W4YHJB.js";
|
|
13
13
|
import "./chunk-ZO5EXQMG.js";
|
|
@@ -20,4 +20,4 @@ export {
|
|
|
20
20
|
fetchModelsWithContext,
|
|
21
21
|
parseDefaultModelSelection
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=provider-manager-
|
|
23
|
+
//# sourceMappingURL=provider-manager-ABEUYU3K.js.map
|
|
@@ -17,14 +17,14 @@ import { platform } from "os";
|
|
|
17
17
|
var PWA_CONFIG_FILE = "pwa.json";
|
|
18
18
|
function execSyncSilent(cmd) {
|
|
19
19
|
try {
|
|
20
|
-
return execSync(cmd, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
|
|
20
|
+
return execSync(cmd, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], windowsHide: true });
|
|
21
21
|
} catch {
|
|
22
22
|
return "";
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
function execSyncOk(cmd) {
|
|
26
26
|
try {
|
|
27
|
-
execSync(cmd, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
|
|
27
|
+
execSync(cmd, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], windowsHide: true });
|
|
28
28
|
return true;
|
|
29
29
|
} catch {
|
|
30
30
|
return false;
|
|
@@ -86,7 +86,7 @@ function getFirefoxPwaInstallHint() {
|
|
|
86
86
|
}
|
|
87
87
|
function probeInstalledApp(manifestUrl) {
|
|
88
88
|
try {
|
|
89
|
-
const out = execSync("firefoxpwa profile list", { encoding: "utf-8" });
|
|
89
|
+
const out = execSync("firefoxpwa profile list", { encoding: "utf-8", windowsHide: true });
|
|
90
90
|
const lines = out.split("\n");
|
|
91
91
|
let currentProfile = "";
|
|
92
92
|
for (const line of lines) {
|
|
@@ -110,7 +110,8 @@ function isServerReachable(port) {
|
|
|
110
110
|
try {
|
|
111
111
|
const result = execSync(`curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:${port}/manifest.webmanifest`, {
|
|
112
112
|
encoding: "utf-8",
|
|
113
|
-
timeout: 5e3
|
|
113
|
+
timeout: 5e3,
|
|
114
|
+
windowsHide: true
|
|
114
115
|
});
|
|
115
116
|
return result.trim() === "200";
|
|
116
117
|
} catch {
|
|
@@ -179,7 +180,7 @@ See: https://pwasforfirefox.filips.si/installation/`);
|
|
|
179
180
|
if (install) {
|
|
180
181
|
R.info("Running: firefoxpwa runtime install");
|
|
181
182
|
try {
|
|
182
|
-
spawn("firefoxpwa", ["runtime", "install"], { stdio: "inherit" });
|
|
183
|
+
spawn("firefoxpwa", ["runtime", "install"], { stdio: "inherit", windowsHide: true });
|
|
183
184
|
} catch {
|
|
184
185
|
R.error("Failed to install runtime.");
|
|
185
186
|
process.exit(1);
|
|
@@ -219,7 +220,7 @@ Use "openfox pwa launch" to start it, or "openfox pwa uninstall" to remove it.`)
|
|
|
219
220
|
let appId = "";
|
|
220
221
|
let profileId = "00000000000000000000000000";
|
|
221
222
|
try {
|
|
222
|
-
execSync(`firefoxpwa site install ${manifestUrl}`, { encoding: "utf-8" });
|
|
223
|
+
execSync(`firefoxpwa site install ${manifestUrl}`, { encoding: "utf-8", windowsHide: true });
|
|
223
224
|
const detected = probeInstalledApp(manifestUrl);
|
|
224
225
|
if (detected) {
|
|
225
226
|
appId = detected.appId;
|
|
@@ -261,7 +262,7 @@ async function pwaUninstall(mode) {
|
|
|
261
262
|
}
|
|
262
263
|
R.info("Removing OpenFox PWA...");
|
|
263
264
|
try {
|
|
264
|
-
execSync(`firefoxpwa site uninstall ${appId} --quiet`, { encoding: "utf-8" });
|
|
265
|
+
execSync(`firefoxpwa site uninstall ${appId} --quiet`, { encoding: "utf-8", windowsHide: true });
|
|
265
266
|
} catch {
|
|
266
267
|
R.error(`Failed to uninstall PWA (ID: ${appId}).`);
|
|
267
268
|
process.exit(1);
|
|
@@ -289,7 +290,7 @@ async function pwaLaunch(mode) {
|
|
|
289
290
|
return;
|
|
290
291
|
}
|
|
291
292
|
R.info("Launching OpenFox PWA...");
|
|
292
|
-
spawn("firefoxpwa", ["site", "launch", appId], { stdio: "inherit" });
|
|
293
|
+
spawn("firefoxpwa", ["site", "launch", appId], { stdio: "inherit", windowsHide: true });
|
|
293
294
|
}
|
|
294
295
|
async function pwaUpdate(mode) {
|
|
295
296
|
if (!isFirefoxPwaAvailable()) {
|
|
@@ -309,7 +310,7 @@ async function pwaUpdate(mode) {
|
|
|
309
310
|
return;
|
|
310
311
|
}
|
|
311
312
|
try {
|
|
312
|
-
execSync(`firefoxpwa site update ${appId}`, { encoding: "utf-8" });
|
|
313
|
+
execSync(`firefoxpwa site update ${appId}`, { encoding: "utf-8", windowsHide: true });
|
|
313
314
|
} catch {
|
|
314
315
|
R.error("Failed to update PWA metadata.");
|
|
315
316
|
process.exit(1);
|
|
@@ -360,4 +361,4 @@ export {
|
|
|
360
361
|
runPwaCommand,
|
|
361
362
|
savePwaConfig
|
|
362
363
|
};
|
|
363
|
-
//# sourceMappingURL=pwa-
|
|
364
|
+
//# sourceMappingURL=pwa-T6JRAYJB.js.map
|