openfox 1.6.90 → 1.6.91

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.
Files changed (31) hide show
  1. package/dist/{auto-compaction-6A34RHDV.js → auto-compaction-I4YS2BN4.js} +5 -5
  2. package/dist/{chat-handler-6ATTKNZT.js → chat-handler-O4FNSVPI.js} +7 -7
  3. package/dist/{chunk-JDDNBK6T.js → chunk-A3YOBYWJ.js} +5 -5
  4. package/dist/{chunk-UEZDAB5X.js → chunk-CL2ZPJAG.js} +18 -8
  5. package/dist/{chunk-TLOL4I7K.js → chunk-H5T34J3H.js} +3 -3
  6. package/dist/{chunk-N7W42N5Y.js → chunk-HKCUSLQ5.js} +2 -2
  7. package/dist/{chunk-6GGYIEBM.js → chunk-II4UCFTE.js} +3 -3
  8. package/dist/{chunk-WSRF5L3S.js → chunk-MOQLMPTA.js} +2 -2
  9. package/dist/{chunk-RCECKE5L.js → chunk-PQCFNTFJ.js} +15 -9
  10. package/dist/{chunk-7WHJUQ4Y.js → chunk-SSGVISQU.js} +7 -7
  11. package/dist/{chunk-YNIAFX24.js → chunk-STUSQVXQ.js} +4 -4
  12. package/dist/{chunk-ZORPFD4C.js → chunk-UQSL65WB.js} +130 -25
  13. package/dist/cli/dev.js +1 -1
  14. package/dist/cli/index.js +1 -1
  15. package/dist/{config-HMMPXQ46.js → config-GEDIDCBM.js} +5 -5
  16. package/dist/{orchestrator-YUAFANFC.js → orchestrator-LLOIG2CR.js} +6 -6
  17. package/dist/package.json +1 -1
  18. package/dist/{processor-4SOP4Q6S.js → processor-XL5NULQN.js} +2 -2
  19. package/dist/{provider-LDZFYLK6.js → provider-EV3KBC7Y.js} +7 -7
  20. package/dist/{serve-YO7HQKUD.js → serve-UWKYNKAO.js} +10 -10
  21. package/dist/server/index.d.ts +1 -0
  22. package/dist/server/index.js +8 -8
  23. package/dist/{service-TU4XSXYJ.js → service-3CLVG2HV.js} +20 -2
  24. package/dist/{settings-VTVOBDYG.js → settings-AYSWDZUI.js} +2 -2
  25. package/dist/{tools-7MGUWXDP.js → tools-ZBAAAOUH.js} +5 -5
  26. package/dist/{vision-fallback-WT66NURB.js → vision-fallback-4TAGWGVS.js} +2 -2
  27. package/dist/web/assets/{index-7tHnjaI4.css → index-CGEQK8Pf.css} +1 -1
  28. package/dist/web/assets/{index-CdF408Qk.js → index-Cb7XVDFv.js} +58 -58
  29. package/dist/web/index.html +2 -2
  30. package/dist/web/sw.js +1 -1
  31. package/package.json +1 -1
@@ -2,7 +2,7 @@ import {
2
2
  createVerifierNudgeConfig,
3
3
  runBuilderTurn,
4
4
  runChatTurn
5
- } from "./chunk-N7W42N5Y.js";
5
+ } from "./chunk-HKCUSLQ5.js";
6
6
  import {
7
7
  TurnMetrics,
8
8
  agentExists,
@@ -21,6 +21,7 @@ import {
21
21
  getDefaultSkillContent,
22
22
  getDefaultSkillIds,
23
23
  getToolRegistryForAgent,
24
+ getTopLevelAgents,
24
25
  isSkillEnabled,
25
26
  loadAllAgents,
26
27
  loadAllAgentsDefault,
@@ -37,7 +38,7 @@ import {
37
38
  setSkillEnabled,
38
39
  skillExists,
39
40
  spawnShellProcess
40
- } from "./chunk-UEZDAB5X.js";
41
+ } from "./chunk-CL2ZPJAG.js";
41
42
  import {
42
43
  getProject
43
44
  } from "./chunk-ZHBL5G5X.js";
@@ -50,18 +51,18 @@ import {
50
51
  import {
51
52
  createProviderManager,
52
53
  parseDefaultModelSelection
53
- } from "./chunk-6GGYIEBM.js";
54
+ } from "./chunk-II4UCFTE.js";
54
55
  import {
55
56
  SessionNotFoundError,
56
57
  createLLMClient,
57
58
  detectModel,
58
59
  getLlmStatus
59
- } from "./chunk-JDDNBK6T.js";
60
+ } from "./chunk-A3YOBYWJ.js";
60
61
  import {
61
62
  detectBackend,
62
63
  getBackendDisplayName,
63
64
  getModelProfile
64
- } from "./chunk-YNIAFX24.js";
65
+ } from "./chunk-STUSQVXQ.js";
65
66
  import {
66
67
  createSession,
67
68
  deleteSession,
@@ -5426,8 +5427,94 @@ function createTerminalRoutes() {
5426
5427
  return router;
5427
5428
  }
5428
5429
 
5430
+ // src/server/routes/auto-update.ts
5431
+ import { Router as Router7 } from "express";
5432
+ import { spawn as spawn4 } from "child_process";
5433
+
5429
5434
  // src/constants.ts
5430
- var VERSION = "1.6.90";
5435
+ var VERSION = "1.6.91";
5436
+
5437
+ // src/server/routes/auto-update.ts
5438
+ var updateInProgress = false;
5439
+ function createAutoUpdateRoutes(options = {}) {
5440
+ const router = Router7();
5441
+ router.get("/check", async (req, res) => {
5442
+ const isTest = req.query["test"] === "1";
5443
+ const current = VERSION;
5444
+ if (isTest) {
5445
+ res.json({ current: "1.0.0", latest: "1.1.0", isUpdateAvailable: true });
5446
+ return;
5447
+ }
5448
+ try {
5449
+ const latest = await new Promise((resolve2, reject) => {
5450
+ const child = spawn4("npm", ["view", "openfox", "version"], {
5451
+ stdio: ["ignore", "pipe", "pipe"]
5452
+ });
5453
+ let stdout = "";
5454
+ child.stdout?.on("data", (data) => {
5455
+ stdout += data.toString();
5456
+ });
5457
+ child.on("close", (code) => {
5458
+ if (code === 0) {
5459
+ resolve2(stdout.trim());
5460
+ } else {
5461
+ reject(new Error(`npm view exited with code ${code}`));
5462
+ }
5463
+ });
5464
+ child.on("error", reject);
5465
+ setTimeout(() => {
5466
+ child.kill();
5467
+ reject(new Error("npm view timed out"));
5468
+ }, 1e4);
5469
+ });
5470
+ const isUpdateAvailable = current !== latest;
5471
+ res.json({ current, latest, isUpdateAvailable });
5472
+ } catch {
5473
+ res.json({ current, latest: current, isUpdateAvailable: false });
5474
+ }
5475
+ });
5476
+ router.post("/", async (req, res) => {
5477
+ if (options.requireAuth) {
5478
+ const authorized = await options.requireAuth(req);
5479
+ if (!authorized) {
5480
+ res.status(401).json({ error: "Unauthorized" });
5481
+ return;
5482
+ }
5483
+ }
5484
+ if (updateInProgress) {
5485
+ res.status(409).json({ error: "Update already in progress" });
5486
+ return;
5487
+ }
5488
+ try {
5489
+ let stderr = "";
5490
+ const child = spawn4("bash", ["-c", "openfox update"], {
5491
+ detached: true,
5492
+ stdio: ["ignore", "ignore", "pipe"]
5493
+ });
5494
+ if (child.stderr) {
5495
+ child.stderr.on("data", (data) => {
5496
+ stderr += data.toString();
5497
+ });
5498
+ }
5499
+ child.unref();
5500
+ updateInProgress = true;
5501
+ child.on("close", () => {
5502
+ updateInProgress = false;
5503
+ });
5504
+ setTimeout(() => {
5505
+ if (stderr) {
5506
+ console.error("[auto-update] subprocess error:", stderr);
5507
+ }
5508
+ updateInProgress = false;
5509
+ }, 3e4);
5510
+ res.json({ success: true });
5511
+ } catch (err) {
5512
+ updateInProgress = false;
5513
+ res.status(500).json({ error: err instanceof Error ? err.message : "Update failed to start" });
5514
+ }
5515
+ });
5516
+ return router;
5517
+ }
5431
5518
 
5432
5519
  // src/server/index.ts
5433
5520
  var __dirname2 = dirname5(fileURLToPath4(import.meta.url));
@@ -5494,7 +5581,7 @@ async function createServerHandle(config) {
5494
5581
  app.use(express.json({ limit: "10mb" }));
5495
5582
  const authMiddleware = async (req, res, next) => {
5496
5583
  const path = req.path;
5497
- const publicPaths = ["/health", "/auth", "/auth/login"];
5584
+ const publicPaths = ["/health", "/auth", "/auth/login", "/auto-update/check"];
5498
5585
  if (publicPaths.includes(path)) {
5499
5586
  return next();
5500
5587
  }
@@ -5718,7 +5805,7 @@ async function createServerHandle(config) {
5718
5805
  return res.status(400).json({ error: "providerId is required" });
5719
5806
  }
5720
5807
  sessionManager.setSessionProvider(sessionId, providerId, model ?? "auto");
5721
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-HMMPXQ46.js");
5808
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-GEDIDCBM.js");
5722
5809
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5723
5810
  const updatedConfig = setDefaultModelSelection(globalConfig, providerId, model ?? "auto");
5724
5811
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -5752,12 +5839,16 @@ async function createServerHandle(config) {
5752
5839
  return res.status(404).json({ error: "Session not found" });
5753
5840
  }
5754
5841
  const { mode } = req.body;
5755
- if (!mode || !["planner", "builder"].includes(mode)) {
5756
- return res.status(400).json({ error: 'mode is required and must be "planner" or "builder"' });
5842
+ if (!mode) {
5843
+ return res.status(400).json({ error: "mode is required" });
5844
+ }
5845
+ const allAgents = await loadAllAgentsDefault();
5846
+ const topLevelIds = getTopLevelAgents(allAgents).map((a) => a.metadata.id);
5847
+ if (!topLevelIds.includes(mode)) {
5848
+ return res.status(400).json({ error: `Invalid mode. Must be one of: ${topLevelIds.join(", ")}` });
5757
5849
  }
5758
5850
  sessionManager.setMode(sessionId, mode);
5759
5851
  const eventStore = getEventStore2();
5760
- eventStore.append(sessionId, { type: "mode.changed", data: { mode, auto: false } });
5761
5852
  const events = eventStore.getEvents(sessionId);
5762
5853
  const messages = buildMessagesFromStoredEvents2(events);
5763
5854
  const updatedSession = sessionManager.getSession(sessionId);
@@ -5797,7 +5888,7 @@ async function createServerHandle(config) {
5797
5888
  if (!callId || approved === void 0) {
5798
5889
  return res.status(400).json({ error: "callId and approved are required" });
5799
5890
  }
5800
- const { providePathConfirmation } = await import("./tools-7MGUWXDP.js");
5891
+ const { providePathConfirmation } = await import("./tools-ZBAAAOUH.js");
5801
5892
  const result = providePathConfirmation(callId, approved, alwaysAllow);
5802
5893
  if (!result.found) {
5803
5894
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -5821,7 +5912,7 @@ async function createServerHandle(config) {
5821
5912
  if (!callId || !answer) {
5822
5913
  return res.status(400).json({ error: "callId and answer are required" });
5823
5914
  }
5824
- const { provideAnswer: provideAnswer2 } = await import("./tools-7MGUWXDP.js");
5915
+ const { provideAnswer: provideAnswer2 } = await import("./tools-ZBAAAOUH.js");
5825
5916
  const found = provideAnswer2(callId, answer);
5826
5917
  if (!found) {
5827
5918
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -5857,8 +5948,8 @@ async function createServerHandle(config) {
5857
5948
  if (!session) {
5858
5949
  return res.status(404).json({ error: "Session not found" });
5859
5950
  }
5860
- const { stopSessionExecution } = await import("./chat-handler-6ATTKNZT.js");
5861
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-7MGUWXDP.js");
5951
+ const { stopSessionExecution } = await import("./chat-handler-O4FNSVPI.js");
5952
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-ZBAAAOUH.js");
5862
5953
  stopSessionExecution(sessionId, sessionManager);
5863
5954
  abortSession(sessionId);
5864
5955
  cancelQuestionsForSession(sessionId, "Session stopped by user");
@@ -5909,13 +6000,13 @@ async function createServerHandle(config) {
5909
6000
  res.json({ accepted: true });
5910
6001
  });
5911
6002
  app.get("/api/settings/:key", async (req, res) => {
5912
- const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-VTVOBDYG.js");
6003
+ const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-AYSWDZUI.js");
5913
6004
  const key = req.params.key;
5914
6005
  const value = getSetting(key) ?? SETTINGS_DEFAULTS[key] ?? null;
5915
6006
  res.json({ key, value });
5916
6007
  });
5917
6008
  app.put("/api/settings/:key", async (req, res) => {
5918
- const { setSetting } = await import("./settings-VTVOBDYG.js");
6009
+ const { setSetting } = await import("./settings-AYSWDZUI.js");
5919
6010
  const key = req.params.key;
5920
6011
  const { value } = req.body;
5921
6012
  if (value === void 0) {
@@ -5930,7 +6021,7 @@ async function createServerHandle(config) {
5930
6021
  let visionFallback;
5931
6022
  let globalWorkdir;
5932
6023
  try {
5933
- const { loadGlobalConfig, getVisionFallback } = await import("./config-HMMPXQ46.js");
6024
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-GEDIDCBM.js");
5934
6025
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5935
6026
  const fallback = getVisionFallback(globalConfig);
5936
6027
  if (fallback) {
@@ -6009,7 +6100,7 @@ async function createServerHandle(config) {
6009
6100
  return res.status(400).json({ error: "name, url, and backend are required" });
6010
6101
  }
6011
6102
  try {
6012
- const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-HMMPXQ46.js");
6103
+ const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-GEDIDCBM.js");
6013
6104
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6014
6105
  const providerBackend = backend;
6015
6106
  const configWithProvider = addProvider(globalConfig, {
@@ -6042,7 +6133,7 @@ async function createServerHandle(config) {
6042
6133
  app.post("/api/init/config", async (req, res) => {
6043
6134
  const { workdir, visionFallback } = req.body;
6044
6135
  try {
6045
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-HMMPXQ46.js");
6136
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-GEDIDCBM.js");
6046
6137
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6047
6138
  const updatedConfig = {
6048
6139
  ...globalConfig,
@@ -6070,7 +6161,7 @@ async function createServerHandle(config) {
6070
6161
  });
6071
6162
  app.delete("/api/providers/:id", async (req, res) => {
6072
6163
  const { id } = req.params;
6073
- const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-HMMPXQ46.js");
6164
+ const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-GEDIDCBM.js");
6074
6165
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6075
6166
  const updatedConfig = removeProvider(globalConfig, id);
6076
6167
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -6090,7 +6181,7 @@ async function createServerHandle(config) {
6090
6181
  return res.status(400).json({ error: result.error });
6091
6182
  }
6092
6183
  const llmClient = getLLMClient();
6093
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-HMMPXQ46.js");
6184
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-GEDIDCBM.js");
6094
6185
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6095
6186
  const updatedConfig = setDefaultModelSelection(globalConfig, id, llmClient.getModel());
6096
6187
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -6121,7 +6212,7 @@ async function createServerHandle(config) {
6121
6212
  if (!result.success) {
6122
6213
  return res.status(400).json({ error: result.error });
6123
6214
  }
6124
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-HMMPXQ46.js");
6215
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-GEDIDCBM.js");
6125
6216
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6126
6217
  const updatedProviders = providerManager.getProviders();
6127
6218
  const updatedConfig = {
@@ -6171,6 +6262,20 @@ async function createServerHandle(config) {
6171
6262
  app.use("/api/workflows", createWorkflowRoutes(configDir, config));
6172
6263
  app.use("/api/dev-server", createDevServerRoutes());
6173
6264
  app.use("/api/terminals", createTerminalRoutes());
6265
+ app.use(
6266
+ "/api/auto-update",
6267
+ createAutoUpdateRoutes({
6268
+ requireAuth: async (req) => {
6269
+ const authConfig = getAuthConfig();
6270
+ if (authConfig?.strategy !== "network" || !authConfig?.encryptedPassword) {
6271
+ return true;
6272
+ }
6273
+ const token = req.headers["x-session-token"];
6274
+ if (!token) return false;
6275
+ return Boolean(await isValidToken(token));
6276
+ }
6277
+ })
6278
+ );
6174
6279
  app.get("/api/sessions/:id/background-processes", async (req, res) => {
6175
6280
  const { getSessionProcesses } = await import("./manager-W7N3XQ4Q.js");
6176
6281
  const sessionId = req.params.id;
@@ -6347,7 +6452,7 @@ async function createServerHandle(config) {
6347
6452
  providerManager
6348
6453
  );
6349
6454
  const wss = wssExports.wss;
6350
- const { QueueProcessor } = await import("./processor-4SOP4Q6S.js");
6455
+ const { QueueProcessor } = await import("./processor-XL5NULQN.js");
6351
6456
  const queueProcessor = new QueueProcessor({
6352
6457
  sessionManager,
6353
6458
  providerManager,
@@ -6422,4 +6527,4 @@ export {
6422
6527
  createServerHandle,
6423
6528
  createServer
6424
6529
  };
6425
- //# sourceMappingURL=chunk-ZORPFD4C.js.map
6530
+ //# sourceMappingURL=chunk-UQSL65WB.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-7WHJUQ4Y.js";
4
+ } from "../chunk-SSGVISQU.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.js";
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-7WHJUQ4Y.js";
4
+ } from "../chunk-SSGVISQU.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.js";
@@ -13,11 +13,11 @@ import {
13
13
  saveGlobalConfig,
14
14
  setDefaultModelSelection,
15
15
  trySmartDefaults
16
- } from "./chunk-TLOL4I7K.js";
17
- import "./chunk-JDDNBK6T.js";
18
- import "./chunk-YNIAFX24.js";
16
+ } from "./chunk-H5T34J3H.js";
17
+ import "./chunk-A3YOBYWJ.js";
18
+ import "./chunk-STUSQVXQ.js";
19
19
  import "./chunk-CQGTEGKL.js";
20
- import "./chunk-WSRF5L3S.js";
20
+ import "./chunk-MOQLMPTA.js";
21
21
  import "./chunk-K44MW7JJ.js";
22
22
  export {
23
23
  activateProvider,
@@ -35,4 +35,4 @@ export {
35
35
  setDefaultModelSelection,
36
36
  trySmartDefaults
37
37
  };
38
- //# sourceMappingURL=config-HMMPXQ46.js.map
38
+ //# sourceMappingURL=config-GEDIDCBM.js.map
@@ -3,7 +3,7 @@ import {
3
3
  runBuilderTurn,
4
4
  runChatTurn,
5
5
  runVerifierTurn
6
- } from "./chunk-N7W42N5Y.js";
6
+ } from "./chunk-HKCUSLQ5.js";
7
7
  import {
8
8
  TurnMetrics,
9
9
  createChatDoneEvent,
@@ -11,13 +11,13 @@ import {
11
11
  createMessageStartEvent,
12
12
  createToolCallEvent,
13
13
  createToolResultEvent
14
- } from "./chunk-UEZDAB5X.js";
15
- import "./chunk-RCECKE5L.js";
14
+ } from "./chunk-CL2ZPJAG.js";
15
+ import "./chunk-PQCFNTFJ.js";
16
16
  import "./chunk-ZHBL5G5X.js";
17
17
  import "./chunk-DL6ZILAF.js";
18
18
  import "./chunk-PBGOZMVY.js";
19
19
  import "./chunk-VRGRAQDG.js";
20
- import "./chunk-YNIAFX24.js";
20
+ import "./chunk-STUSQVXQ.js";
21
21
  import "./chunk-6P5WQP6Y.js";
22
22
  import "./chunk-5GVCNVKV.js";
23
23
  import "./chunk-XVWVAWSG.js";
@@ -26,7 +26,7 @@ import "./chunk-BJYPTN5S.js";
26
26
  import "./chunk-ERFRUQQR.js";
27
27
  import "./chunk-CQGTEGKL.js";
28
28
  import "./chunk-B5AP3RSV.js";
29
- import "./chunk-WSRF5L3S.js";
29
+ import "./chunk-MOQLMPTA.js";
30
30
  import "./chunk-K44MW7JJ.js";
31
31
  export {
32
32
  TurnMetrics,
@@ -40,4 +40,4 @@ export {
40
40
  runChatTurn,
41
41
  runVerifierTurn
42
42
  };
43
- //# sourceMappingURL=orchestrator-YUAFANFC.js.map
43
+ //# sourceMappingURL=orchestrator-LLOIG2CR.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "1.6.90",
3
+ "version": "1.6.91",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -177,7 +177,7 @@ var QueueProcessor = class {
177
177
  backend: provider?.backend ?? llmClient.getBackend(),
178
178
  model: llmClient.getModel()
179
179
  };
180
- const { runChatTurn } = await import("./orchestrator-YUAFANFC.js");
180
+ const { runChatTurn } = await import("./orchestrator-LLOIG2CR.js");
181
181
  const runChatTurnParams = buildRunChatTurnParams({
182
182
  sessionManager,
183
183
  sessionId,
@@ -221,4 +221,4 @@ var QueueProcessor = class {
221
221
  export {
222
222
  QueueProcessor
223
223
  };
224
- //# sourceMappingURL=processor-4SOP4Q6S.js.map
224
+ //# sourceMappingURL=processor-XL5NULQN.js.map
@@ -5,18 +5,18 @@ import {
5
5
  loadGlobalConfig,
6
6
  removeProvider,
7
7
  saveGlobalConfig
8
- } from "./chunk-TLOL4I7K.js";
8
+ } from "./chunk-H5T34J3H.js";
9
9
  import {
10
10
  fetchAvailableModelsFromBackend
11
- } from "./chunk-6GGYIEBM.js";
11
+ } from "./chunk-II4UCFTE.js";
12
12
  import {
13
13
  detectModel
14
- } from "./chunk-JDDNBK6T.js";
14
+ } from "./chunk-A3YOBYWJ.js";
15
15
  import {
16
16
  detectBackend
17
- } from "./chunk-YNIAFX24.js";
17
+ } from "./chunk-STUSQVXQ.js";
18
18
  import "./chunk-CQGTEGKL.js";
19
- import "./chunk-WSRF5L3S.js";
19
+ import "./chunk-MOQLMPTA.js";
20
20
  import "./chunk-K44MW7JJ.js";
21
21
 
22
22
  // src/cli/provider.ts
@@ -248,7 +248,7 @@ async function runProviderAdd(mode) {
248
248
  isActive: makeActive
249
249
  });
250
250
  if (makeActive) {
251
- const { setDefaultModelSelection } = await import("./config-HMMPXQ46.js");
251
+ const { setDefaultModelSelection } = await import("./config-GEDIDCBM.js");
252
252
  newConfig = setDefaultModelSelection(
253
253
  newConfig,
254
254
  newConfig.providers[newConfig.providers.length - 1].id,
@@ -376,4 +376,4 @@ export {
376
376
  runProviderRemove,
377
377
  runProviderUse
378
378
  };
379
- //# sourceMappingURL=provider-LDZFYLK6.js.map
379
+ //# sourceMappingURL=provider-EV3KBC7Y.js.map
@@ -2,21 +2,21 @@ import {
2
2
  getActiveProvider,
3
3
  getDefaultModel,
4
4
  loadGlobalConfig
5
- } from "./chunk-TLOL4I7K.js";
5
+ } from "./chunk-H5T34J3H.js";
6
6
  import {
7
7
  VERSION,
8
8
  createServer
9
- } from "./chunk-ZORPFD4C.js";
10
- import "./chunk-N7W42N5Y.js";
11
- import "./chunk-UEZDAB5X.js";
12
- import "./chunk-RCECKE5L.js";
9
+ } from "./chunk-UQSL65WB.js";
10
+ import "./chunk-HKCUSLQ5.js";
11
+ import "./chunk-CL2ZPJAG.js";
12
+ import "./chunk-PQCFNTFJ.js";
13
13
  import "./chunk-ZHBL5G5X.js";
14
14
  import "./chunk-DL6ZILAF.js";
15
15
  import "./chunk-PBGOZMVY.js";
16
16
  import "./chunk-VRGRAQDG.js";
17
- import "./chunk-6GGYIEBM.js";
18
- import "./chunk-JDDNBK6T.js";
19
- import "./chunk-YNIAFX24.js";
17
+ import "./chunk-II4UCFTE.js";
18
+ import "./chunk-A3YOBYWJ.js";
19
+ import "./chunk-STUSQVXQ.js";
20
20
  import "./chunk-6P5WQP6Y.js";
21
21
  import "./chunk-5GVCNVKV.js";
22
22
  import "./chunk-XVWVAWSG.js";
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  loadConfig
34
34
  } from "./chunk-B5AP3RSV.js";
35
- import "./chunk-WSRF5L3S.js";
35
+ import "./chunk-MOQLMPTA.js";
36
36
  import {
37
37
  logger
38
38
  } from "./chunk-K44MW7JJ.js";
@@ -190,4 +190,4 @@ async function runServe(options) {
190
190
  export {
191
191
  runServe
192
192
  };
193
- //# sourceMappingURL=serve-YO7HQKUD.js.map
193
+ //# sourceMappingURL=serve-UWKYNKAO.js.map
@@ -39,6 +39,7 @@ interface LLMCompletionRequest {
39
39
  maxTokens?: number;
40
40
  supportsVision?: boolean;
41
41
  };
42
+ disableXmlProtection?: boolean;
42
43
  onVisionFallbackStart?: (attachmentId: string, filename?: string) => void;
43
44
  onVisionFallbackDone?: (attachmentId: string, description: string) => void;
44
45
  }
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-ZORPFD4C.js";
5
- import "../chunk-N7W42N5Y.js";
6
- import "../chunk-UEZDAB5X.js";
7
- import "../chunk-RCECKE5L.js";
4
+ } from "../chunk-UQSL65WB.js";
5
+ import "../chunk-HKCUSLQ5.js";
6
+ import "../chunk-CL2ZPJAG.js";
7
+ import "../chunk-PQCFNTFJ.js";
8
8
  import "../chunk-ZHBL5G5X.js";
9
9
  import "../chunk-DL6ZILAF.js";
10
10
  import "../chunk-PBGOZMVY.js";
11
11
  import "../chunk-VRGRAQDG.js";
12
- import "../chunk-6GGYIEBM.js";
13
- import "../chunk-JDDNBK6T.js";
14
- import "../chunk-YNIAFX24.js";
12
+ import "../chunk-II4UCFTE.js";
13
+ import "../chunk-A3YOBYWJ.js";
14
+ import "../chunk-STUSQVXQ.js";
15
15
  import "../chunk-6P5WQP6Y.js";
16
16
  import "../chunk-5GVCNVKV.js";
17
17
  import "../chunk-XVWVAWSG.js";
@@ -21,7 +21,7 @@ import "../chunk-RGRBWDZP.js";
21
21
  import "../chunk-ERFRUQQR.js";
22
22
  import "../chunk-CQGTEGKL.js";
23
23
  import "../chunk-B5AP3RSV.js";
24
- import "../chunk-WSRF5L3S.js";
24
+ import "../chunk-MOQLMPTA.js";
25
25
  import "../chunk-K44MW7JJ.js";
26
26
  export {
27
27
  createServer,
@@ -75,7 +75,25 @@ if [ -z "$DISPLAY" ] || [ -z "$WAYLAND_DISPLAY" ]; then
75
75
  done
76
76
  fi
77
77
 
78
- exec openfox
78
+ # Find openfox - respect user's PATH, fallback to nvm search for non-interactive cases
79
+ if ! openfox_bin=$(which openfox 2>/dev/null); then
80
+ openfox_bindir=""
81
+ for NVMVER in "$HOME"'/versions/node/'*'/bin/'; do
82
+ [ -f "$NVMVER"'openfox' ] && openfox_bindir="$NVMVER" && break
83
+ [ -L "$NVMVER"'openfox' ] && openfox_bindir="$NVMVER" && break
84
+ done
85
+ if [ -n "$openfox_bindir" ]; then
86
+ export PATH="$openfox_bindir:$PATH"
87
+ openfox_bin=$(readlink -f "$openfox_bindir"'openfox')
88
+ fi
89
+ fi
90
+
91
+ if [ -z "$openfox_bin" ]; then
92
+ echo "openfox not found in PATH and no nvm install detected" >&2
93
+ exit 1
94
+ fi
95
+
96
+ exec "$openfox_bin" "$@"
79
97
  `;
80
98
  await writeFile(scriptPath, scriptContent, { encoding: "utf-8" });
81
99
  await exec("chmod", ["+x", scriptPath]);
@@ -257,4 +275,4 @@ async function serviceUninstall() {
257
275
  export {
258
276
  runServiceCommand
259
277
  };
260
- //# sourceMappingURL=service-TU4XSXYJ.js.map
278
+ //# sourceMappingURL=service-3CLVG2HV.js.map
@@ -5,7 +5,7 @@ import {
5
5
  getAllSettings,
6
6
  getSetting,
7
7
  setSetting
8
- } from "./chunk-RCECKE5L.js";
8
+ } from "./chunk-PQCFNTFJ.js";
9
9
  import "./chunk-5GVCNVKV.js";
10
10
  import "./chunk-K44MW7JJ.js";
11
11
  export {
@@ -16,4 +16,4 @@ export {
16
16
  getSetting,
17
17
  setSetting
18
18
  };
19
- //# sourceMappingURL=settings-VTVOBDYG.js.map
19
+ //# sourceMappingURL=settings-AYSWDZUI.js.map
@@ -11,13 +11,13 @@ import {
11
11
  requestPathAccess,
12
12
  stepDoneTool,
13
13
  validateToolAction
14
- } from "./chunk-UEZDAB5X.js";
15
- import "./chunk-RCECKE5L.js";
14
+ } from "./chunk-CL2ZPJAG.js";
15
+ import "./chunk-PQCFNTFJ.js";
16
16
  import "./chunk-ZHBL5G5X.js";
17
17
  import "./chunk-DL6ZILAF.js";
18
18
  import "./chunk-PBGOZMVY.js";
19
19
  import "./chunk-VRGRAQDG.js";
20
- import "./chunk-YNIAFX24.js";
20
+ import "./chunk-STUSQVXQ.js";
21
21
  import "./chunk-6P5WQP6Y.js";
22
22
  import "./chunk-5GVCNVKV.js";
23
23
  import "./chunk-XVWVAWSG.js";
@@ -30,7 +30,7 @@ import {
30
30
  import "./chunk-ERFRUQQR.js";
31
31
  import "./chunk-CQGTEGKL.js";
32
32
  import "./chunk-B5AP3RSV.js";
33
- import "./chunk-WSRF5L3S.js";
33
+ import "./chunk-MOQLMPTA.js";
34
34
  import "./chunk-K44MW7JJ.js";
35
35
  export {
36
36
  AskUserInterrupt,
@@ -49,4 +49,4 @@ export {
49
49
  stepDoneTool,
50
50
  validateToolAction
51
51
  };
52
- //# sourceMappingURL=tools-7MGUWXDP.js.map
52
+ //# sourceMappingURL=tools-ZBAAAOUH.js.map
@@ -7,7 +7,7 @@ import {
7
7
  getVisionFallbackConfig,
8
8
  isVisionFallbackEnabled,
9
9
  setVisionFallbackConfig
10
- } from "./chunk-WSRF5L3S.js";
10
+ } from "./chunk-MOQLMPTA.js";
11
11
  import "./chunk-K44MW7JJ.js";
12
12
  export {
13
13
  clearDescriptionCache,
@@ -19,4 +19,4 @@ export {
19
19
  isVisionFallbackEnabled,
20
20
  setVisionFallbackConfig
21
21
  };
22
- //# sourceMappingURL=vision-fallback-WT66NURB.js.map
22
+ //# sourceMappingURL=vision-fallback-4TAGWGVS.js.map