openfox 2.0.0-beta.13 → 2.0.0-beta.14

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 (43) hide show
  1. package/dist/{ask-5SSOA6SZ.js → ask-BRLFZKEW.js} +2 -1
  2. package/dist/{auth-56SIRACI.js → auth-OGGBJFJQ.js} +2 -1
  3. package/dist/{branch.api-PWFW26KC.js → branch.api-TCWNJXYA.js} +2 -1
  4. package/dist/{chat-handler-DKX2XFHA.js → chat-handler-ZFQIJIJT.js} +4 -3
  5. package/dist/chunk-7D4SUZUM.js +38 -0
  6. package/dist/{chunk-HZODNSSV.js → chunk-BURBTNDG.js} +2 -2
  7. package/dist/{chunk-YLQGD5SE.js → chunk-BZJAO4VY.js} +21 -13
  8. package/dist/{chunk-BNFQMAH6.js → chunk-EYE2JMLA.js} +64 -57
  9. package/dist/{chunk-5RP2ZU2G.js → chunk-IONKVOSF.js} +6 -6
  10. package/dist/chunk-QD6U3BDD.js +25277 -0
  11. package/dist/{chunk-DBDMMSCM.js → chunk-RUWSVV7U.js} +3 -3
  12. package/dist/{chunk-LDHRZRCP.js → chunk-YWYYRA2P.js} +11 -11
  13. package/dist/cli/dev.js +2 -1
  14. package/dist/cli/index.js +2 -1
  15. package/dist/{compactor-TDNRM3A7.js → compactor-WL33VHUF.js} +2 -1
  16. package/dist/{config-FAT5XRFB.js → config-MFKBDOOT.js} +4 -3
  17. package/dist/{events-R7FRQEBE.js → events-6UJR2NH4.js} +2 -1
  18. package/dist/{folding-YOCGTZYH.js → folding-GMO644G3.js} +2 -1
  19. package/dist/{inspect-proxy-42ZXL2R5.js → inspect-proxy-JZ54RBUN.js} +2 -1
  20. package/dist/{manager-W7N3XQ4Q.js → manager-NTL3MLGN.js} +2 -1
  21. package/dist/{orchestrator-NNYZC7AY.js → orchestrator-HHF4UC3K.js} +4 -3
  22. package/dist/package.json +1 -1
  23. package/dist/{paths-X46PPOI2.js → paths-D7BBTOO5.js} +2 -1
  24. package/dist/{permissions-Z2IIV2V7.js → permissions-YGAJ47F5.js} +3 -1
  25. package/dist/{processor-5T3CXD5I.js → processor-EJJTSLRL.js} +3 -2
  26. package/dist/{project-creator-6DU7E75S.js → project-creator-GMS5YKEF.js} +2 -1
  27. package/dist/{projects-2HYIZC4Y.js → projects-QHGMUKWH.js} +2 -1
  28. package/dist/{protocol-CN24IKQN.js → protocol-QQNATDFM.js} +2 -1
  29. package/dist/{provider-2JYU6KGH.js → provider-APFZV234.js} +6 -5
  30. package/dist/{provider-manager-IP3HOGNB.js → provider-manager-2NFFVCX5.js} +4 -3
  31. package/dist/{pwa-76XP2DY2.js → pwa-WYVG3NLS.js} +2 -1
  32. package/dist/{serve-NSTNUQ2K.js → serve-GTH76EDG.js} +8 -7
  33. package/dist/server/index.js +6 -5
  34. package/dist/{service-GB7AIOG5.js → service-W43DAQ5K.js} +3 -1
  35. package/dist/{settings-6XX56F3F.js → settings-OAISIQVV.js} +2 -1
  36. package/dist/shared/index.js +1 -0
  37. package/dist/{store-OQ45KONN.js → store-JZW6VPEK.js} +2 -1
  38. package/dist/{tools-TJGSHOAR.js → tools-2X2FC6W7.js} +3 -2
  39. package/dist/web/assets/{index-DIY3E8K9.js → index-DCu8wsRj.js} +61 -61
  40. package/dist/web/index.html +1 -1
  41. package/dist/web/sw.js +1 -1
  42. package/package.json +1 -1
  43. package/dist/chunk-SW7MQGY3.js +0 -378
@@ -7,6 +7,7 @@ import {
7
7
  hasPendingQuestion,
8
8
  provideAnswer
9
9
  } from "./chunk-BJYPTN5S.js";
10
+ import "./chunk-7D4SUZUM.js";
10
11
  export {
11
12
  AskUserInterrupt,
12
13
  askUserTool,
@@ -16,4 +17,4 @@ export {
16
17
  hasPendingQuestion,
17
18
  provideAnswer
18
19
  };
19
- //# sourceMappingURL=ask-5SSOA6SZ.js.map
20
+ //# sourceMappingURL=ask-BRLFZKEW.js.map
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  getAuthConfigPath
3
3
  } from "./chunk-CQGTEGKL.js";
4
+ import "./chunk-7D4SUZUM.js";
4
5
 
5
6
  // src/cli/auth.ts
6
7
  import { readFile, writeFile, mkdir, access } from "fs/promises";
@@ -47,4 +48,4 @@ export {
47
48
  saveAuthConfig,
48
49
  verifyPassword
49
50
  };
50
- //# sourceMappingURL=auth-56SIRACI.js.map
51
+ //# sourceMappingURL=auth-OGGBJFJQ.js.map
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  logger
3
3
  } from "./chunk-K44MW7JJ.js";
4
+ import "./chunk-7D4SUZUM.js";
4
5
 
5
6
  // src/server/branch.api.ts
6
7
  import { spawn } from "child_process";
@@ -45,4 +46,4 @@ function getGitBranch(cwd) {
45
46
  export {
46
47
  getCurrentBranch
47
48
  };
48
- //# sourceMappingURL=branch.api-PWFW26KC.js.map
49
+ //# sourceMappingURL=branch.api-TCWNJXYA.js.map
@@ -8,8 +8,8 @@ import {
8
8
  } from "./chunk-OKLV3ZNN.js";
9
9
  import {
10
10
  runChatTurn
11
- } from "./chunk-DBDMMSCM.js";
12
- import "./chunk-5RP2ZU2G.js";
11
+ } from "./chunk-RUWSVV7U.js";
12
+ import "./chunk-IONKVOSF.js";
13
13
  import "./chunk-DL6ZILAF.js";
14
14
  import "./chunk-PBGOZMVY.js";
15
15
  import "./chunk-VRGRAQDG.js";
@@ -32,6 +32,7 @@ import "./chunk-LXX2CPM5.js";
32
32
  import {
33
33
  logger
34
34
  } from "./chunk-K44MW7JJ.js";
35
+ import "./chunk-7D4SUZUM.js";
35
36
 
36
37
  // src/server/session/chat-handler.ts
37
38
  var activeAgents = /* @__PURE__ */ new Map();
@@ -161,4 +162,4 @@ export {
161
162
  startChatSession,
162
163
  stopSessionExecution
163
164
  };
164
- //# sourceMappingURL=chat-handler-DKX2XFHA.js.map
165
+ //# sourceMappingURL=chat-handler-ZFQIJIJT.js.map
@@ -0,0 +1,38 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
8
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
9
+ }) : x)(function(x) {
10
+ if (typeof require !== "undefined") return require.apply(this, arguments);
11
+ throw Error('Dynamic require of "' + x + '" is not supported');
12
+ });
13
+ var __commonJS = (cb, mod) => function __require2() {
14
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
30
+ mod
31
+ ));
32
+
33
+ export {
34
+ __require,
35
+ __commonJS,
36
+ __toESM
37
+ };
38
+ //# sourceMappingURL=chunk-7D4SUZUM.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-CQGTEGKL.js";
4
4
  import {
5
5
  detectModel
6
- } from "./chunk-SW7MQGY3.js";
6
+ } from "./chunk-QD6U3BDD.js";
7
7
  import {
8
8
  detectBackend
9
9
  } from "./chunk-LXX2CPM5.js";
@@ -449,4 +449,4 @@ export {
449
449
  activateProvider,
450
450
  mergeConfigs
451
451
  };
452
- //# sourceMappingURL=chunk-HZODNSSV.js.map
452
+ //# sourceMappingURL=chunk-BURBTNDG.js.map
@@ -2,7 +2,7 @@ import {
2
2
  clearModelCache,
3
3
  createLLMClient,
4
4
  detectModel
5
- } from "./chunk-SW7MQGY3.js";
5
+ } from "./chunk-QD6U3BDD.js";
6
6
  import {
7
7
  buildModelsUrl,
8
8
  detectBackend,
@@ -250,11 +250,16 @@ function createProviderManager(config) {
250
250
  const providerConfig = createConfigForProvider(provider, targetModel);
251
251
  const newClient = createLLMClient(providerConfig);
252
252
  try {
253
- const url = stripVersionPrefix(provider.url);
254
- clearModelCache(url);
253
+ const cacheUrl = stripVersionPrefix(provider.url);
254
+ clearModelCache(cacheUrl);
255
255
  const backend = provider.backend;
256
- logger.info("activateProvider fetching models", { providerId, providerName: provider.name, url, backend });
257
- const modelsWithContext = await fetchModelsWithContext(url, provider.apiKey, backend);
256
+ logger.info("activateProvider fetching models", {
257
+ providerId,
258
+ providerName: provider.name,
259
+ url: provider.url,
260
+ backend
261
+ });
262
+ const modelsWithContext = await fetchModelsWithContext(provider.url, provider.apiKey, backend);
258
263
  const userModels = provider.models.filter((m) => m.source === "user");
259
264
  logger.debug("activateProvider", {
260
265
  providerId,
@@ -272,13 +277,13 @@ function createProviderManager(config) {
272
277
  providers = providers.map((p) => p.id === providerId ? { ...p, models: userModels } : p);
273
278
  }
274
279
  if (provider.backend === "auto") {
275
- const detected = await detectBackend(url);
280
+ const detected = await detectBackend(provider.url);
276
281
  newClient.setBackend(detected);
277
282
  } else {
278
283
  newClient.setBackend(provider.backend);
279
284
  }
280
285
  if (targetModel === "auto") {
281
- const detected = await detectModel(url);
286
+ const detected = await detectModel(provider.url);
282
287
  if (detected) {
283
288
  newClient.setModel(detected);
284
289
  }
@@ -370,9 +375,8 @@ function createProviderManager(config) {
370
375
  if (provider.models && provider.models.length > 0) {
371
376
  return provider.models;
372
377
  }
373
- const url = stripVersionPrefix(provider.url);
374
378
  const backend = provider.backend;
375
- return fetchModelsWithContext(url, provider.apiKey, backend);
379
+ return fetchModelsWithContext(provider.url, provider.apiKey, backend);
376
380
  },
377
381
  async setDefaultModelSelection(providerId, model) {
378
382
  const provider = providers.find((p) => p.id === providerId);
@@ -488,10 +492,14 @@ function createProviderManager(config) {
488
492
  if (!provider) {
489
493
  return { success: false, error: "Provider not found" };
490
494
  }
491
- const url = stripVersionPrefix(provider.url);
492
495
  const backend = provider.backend;
493
- logger.info("refreshProviderModels fetching models", { providerId, providerName: provider.name, url, backend });
494
- const modelsWithContext = await fetchModelsWithContext(url, provider.apiKey, backend);
496
+ logger.info("refreshProviderModels fetching models", {
497
+ providerId,
498
+ providerName: provider.name,
499
+ url: provider.url,
500
+ backend
501
+ });
502
+ const modelsWithContext = await fetchModelsWithContext(provider.url, provider.apiKey, backend);
495
503
  const userModels = provider.models.filter((m) => m.source === "user");
496
504
  logger.info("refreshProviderModels", {
497
505
  providerId,
@@ -534,4 +542,4 @@ export {
534
542
  parseDefaultModelSelection,
535
543
  createProviderManager
536
544
  };
537
- //# sourceMappingURL=chunk-YLQGD5SE.js.map
545
+ //# sourceMappingURL=chunk-BZJAO4VY.js.map
@@ -3,7 +3,7 @@ import {
3
3
  injectWorkflowKickoffIfNeeded,
4
4
  runAgentTurn,
5
5
  runChatTurn
6
- } from "./chunk-DBDMMSCM.js";
6
+ } from "./chunk-RUWSVV7U.js";
7
7
  import {
8
8
  COMPACTION_PROMPT,
9
9
  TurnMetrics,
@@ -59,7 +59,7 @@ import {
59
59
  skillExists,
60
60
  spawnShellProcess,
61
61
  streamLLMPure
62
- } from "./chunk-5RP2ZU2G.js";
62
+ } from "./chunk-IONKVOSF.js";
63
63
  import {
64
64
  getPathSeparator,
65
65
  getPlatformShell,
@@ -136,14 +136,15 @@ import {
136
136
  import {
137
137
  createProviderManager,
138
138
  parseDefaultModelSelection
139
- } from "./chunk-YLQGD5SE.js";
139
+ } from "./chunk-BZJAO4VY.js";
140
140
  import {
141
141
  SessionNotFoundError,
142
142
  createLLMClient,
143
143
  detectModel,
144
144
  getLlmStatus
145
- } from "./chunk-SW7MQGY3.js";
145
+ } from "./chunk-QD6U3BDD.js";
146
146
  import {
147
+ buildModelsUrl,
147
148
  detectBackend,
148
149
  ensureVersionPrefix,
149
150
  getBackendDisplayName,
@@ -2844,6 +2845,8 @@ function createWebSocketServer(httpServer, config4, getLLMClient, getActiveProvi
2844
2845
  sessionLLMClients.delete(sessionId);
2845
2846
  return getLLMClient();
2846
2847
  }
2848
+ const modelConfig = provider.models.find((m) => m.id === session.providerModel);
2849
+ const reasoningEffort = modelConfig?.thinkingEnabled && modelConfig?.thinkingLevel ? modelConfig.thinkingLevel : void 0;
2847
2850
  const baseUrl = ensureVersionPrefix(provider.url);
2848
2851
  const sessionConfig = {
2849
2852
  ...config4,
@@ -2852,7 +2855,8 @@ function createWebSocketServer(httpServer, config4, getLLMClient, getActiveProvi
2852
2855
  baseUrl,
2853
2856
  model: session.providerModel,
2854
2857
  ...provider.apiKey && { apiKey: provider.apiKey },
2855
- ...provider.thinkingField && { thinkingField: provider.thinkingField }
2858
+ ...provider.thinkingField && { thinkingField: provider.thinkingField },
2859
+ ...reasoningEffort && { reasoningEffort }
2856
2860
  }
2857
2861
  };
2858
2862
  const client = createLLMClient(sessionConfig);
@@ -5831,7 +5835,7 @@ import { Router as Router6 } from "express";
5831
5835
  import { spawn as spawn5 } from "child_process";
5832
5836
 
5833
5837
  // src/constants.ts
5834
- var VERSION = "2.0.0-beta.13";
5838
+ var VERSION = "2.0.0-beta.14";
5835
5839
 
5836
5840
  // src/server/routes/auto-update.ts
5837
5841
  var updateInProgress = false;
@@ -6038,7 +6042,7 @@ async function createServerHandle(config4) {
6038
6042
  res.json({ tools });
6039
6043
  });
6040
6044
  app.get("/api/projects", async (_req, res) => {
6041
- const { listProjects } = await import("./projects-2HYIZC4Y.js");
6045
+ const { listProjects } = await import("./projects-QHGMUKWH.js");
6042
6046
  const projects = listProjects();
6043
6047
  res.json({ projects });
6044
6048
  });
@@ -6047,7 +6051,7 @@ async function createServerHandle(config4) {
6047
6051
  if (!name || !workdir) {
6048
6052
  return res.status(400).json({ error: "name and workdir are required" });
6049
6053
  }
6050
- const { createDirectoryWithGit } = await import("./project-creator-6DU7E75S.js");
6054
+ const { createDirectoryWithGit } = await import("./project-creator-GMS5YKEF.js");
6051
6055
  try {
6052
6056
  const project = await createDirectoryWithGit(name, workdir);
6053
6057
  res.status(201).json({ project });
@@ -6065,7 +6069,7 @@ async function createServerHandle(config4) {
6065
6069
  if (!targetPath) {
6066
6070
  return res.status(400).json({ error: "path is required" });
6067
6071
  }
6068
- const { checkPermissions } = await import("./permissions-Z2IIV2V7.js");
6072
+ const { checkPermissions } = await import("./permissions-YGAJ47F5.js");
6069
6073
  const result = await checkPermissions(targetPath);
6070
6074
  if (result.success) {
6071
6075
  res.json(result);
@@ -6082,7 +6086,7 @@ async function createServerHandle(config4) {
6082
6086
  if (!["group", "ownership", "join_group", "join_group_and_group"].includes(action)) {
6083
6087
  return res.status(400).json({ error: 'action must be "group", "ownership", "join_group", or "join_group_and_group"' });
6084
6088
  }
6085
- const { fixPermissions } = await import("./permissions-Z2IIV2V7.js");
6089
+ const { fixPermissions } = await import("./permissions-YGAJ47F5.js");
6086
6090
  const result = await fixPermissions(targetPath, action);
6087
6091
  if (result.success) {
6088
6092
  res.json(result);
@@ -6092,7 +6096,7 @@ async function createServerHandle(config4) {
6092
6096
  }
6093
6097
  });
6094
6098
  app.get("/api/projects/:id", async (req, res) => {
6095
- const { getProject: getProject2 } = await import("./projects-2HYIZC4Y.js");
6099
+ const { getProject: getProject2 } = await import("./projects-QHGMUKWH.js");
6096
6100
  const project = getProject2(req.params.id);
6097
6101
  if (!project) {
6098
6102
  return res.status(404).json({ error: "Project not found" });
@@ -6100,7 +6104,7 @@ async function createServerHandle(config4) {
6100
6104
  res.json({ project });
6101
6105
  });
6102
6106
  app.put("/api/projects/:id", async (req, res) => {
6103
- const { updateProject } = await import("./projects-2HYIZC4Y.js");
6107
+ const { updateProject } = await import("./projects-QHGMUKWH.js");
6104
6108
  const { name, customInstructions, dangerLevel } = req.body;
6105
6109
  const updates = {};
6106
6110
  if (name !== void 0) updates.name = name;
@@ -6113,7 +6117,7 @@ async function createServerHandle(config4) {
6113
6117
  res.json({ project: updated });
6114
6118
  });
6115
6119
  app.delete("/api/projects/:id", async (req, res) => {
6116
- const { getProject: getProject2, deleteProject } = await import("./projects-2HYIZC4Y.js");
6120
+ const { getProject: getProject2, deleteProject } = await import("./projects-QHGMUKWH.js");
6117
6121
  const project = getProject2(req.params.id);
6118
6122
  if (!project) {
6119
6123
  return res.status(404).json({ error: "Project not found" });
@@ -6122,7 +6126,7 @@ async function createServerHandle(config4) {
6122
6126
  res.json({ success: true });
6123
6127
  });
6124
6128
  app.put("/api/projects/:id/star", async (req, res) => {
6125
- const { toggleStar } = await import("./projects-2HYIZC4Y.js");
6129
+ const { toggleStar } = await import("./projects-QHGMUKWH.js");
6126
6130
  const { isStarred } = req.body;
6127
6131
  if (typeof isStarred !== "boolean") {
6128
6132
  return res.status(400).json({ error: "isStarred is required and must be a boolean" });
@@ -6134,7 +6138,7 @@ async function createServerHandle(config4) {
6134
6138
  res.json({ project });
6135
6139
  });
6136
6140
  app.get("/api/sessions", async (req, res) => {
6137
- const { getRecentUserPromptsForSession } = await import("./events-R7FRQEBE.js");
6141
+ const { getRecentUserPromptsForSession } = await import("./events-6UJR2NH4.js");
6138
6142
  const projectId = req.query["projectId"];
6139
6143
  const limit = Math.min(parseInt(req.query["limit"]) || 20, 100);
6140
6144
  const offset = parseInt(req.query["offset"]) || 0;
@@ -6167,8 +6171,8 @@ async function createServerHandle(config4) {
6167
6171
  res.status(201).json({ session });
6168
6172
  });
6169
6173
  app.get("/api/sessions/:id", async (req, res) => {
6170
- const { getEventStore: getEventStore2 } = await import("./events-R7FRQEBE.js");
6171
- const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-YOCGTZYH.js");
6174
+ const { getEventStore: getEventStore2 } = await import("./events-6UJR2NH4.js");
6175
+ const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-GMO644G3.js");
6172
6176
  const session = sessionManager.getSession(req.params.id);
6173
6177
  if (!session) {
6174
6178
  return res.status(404).json({ error: "Session not found" });
@@ -6198,8 +6202,8 @@ async function createServerHandle(config4) {
6198
6202
  res.json({ success: true });
6199
6203
  });
6200
6204
  app.post("/api/sessions/:id/provider", async (req, res) => {
6201
- const { getEventStore: getEventStore2 } = await import("./events-R7FRQEBE.js");
6202
- const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-YOCGTZYH.js");
6205
+ const { getEventStore: getEventStore2 } = await import("./events-6UJR2NH4.js");
6206
+ const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-GMO644G3.js");
6203
6207
  const sessionId = req.params.id;
6204
6208
  const session = sessionManager.getSession(sessionId);
6205
6209
  if (!session) {
@@ -6210,7 +6214,7 @@ async function createServerHandle(config4) {
6210
6214
  return res.status(400).json({ error: "providerId is required" });
6211
6215
  }
6212
6216
  sessionManager.setSessionProvider(sessionId, providerId, model ?? "auto");
6213
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-FAT5XRFB.js");
6217
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-MFKBDOOT.js");
6214
6218
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6215
6219
  const updatedConfig = setDefaultModelSelection(globalConfig, providerId, model ?? "auto");
6216
6220
  await saveGlobalConfig(config4.mode ?? "production", updatedConfig);
@@ -6241,8 +6245,8 @@ async function createServerHandle(config4) {
6241
6245
  res.json({ success: true });
6242
6246
  });
6243
6247
  app.put("/api/sessions/:id/mode", async (req, res) => {
6244
- const { getEventStore: getEventStore2 } = await import("./events-R7FRQEBE.js");
6245
- const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-YOCGTZYH.js");
6248
+ const { getEventStore: getEventStore2 } = await import("./events-6UJR2NH4.js");
6249
+ const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-GMO644G3.js");
6246
6250
  const sessionId = req.params.id;
6247
6251
  const session = sessionManager.getSession(sessionId);
6248
6252
  if (!session) {
@@ -6298,14 +6302,14 @@ async function createServerHandle(config4) {
6298
6302
  if (!callId || approved === void 0) {
6299
6303
  return res.status(400).json({ error: "callId and approved are required" });
6300
6304
  }
6301
- const { providePathConfirmation } = await import("./tools-TJGSHOAR.js");
6305
+ const { providePathConfirmation } = await import("./tools-2X2FC6W7.js");
6302
6306
  const result = providePathConfirmation(callId, approved, alwaysAllow);
6303
6307
  if (!result.found) {
6304
6308
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
6305
6309
  }
6306
- const { getEventStore: getEventStore2 } = await import("./events-R7FRQEBE.js");
6307
- const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, foldPendingConfirmations: foldPendingConfirmations2 } = await import("./folding-YOCGTZYH.js");
6308
- const { createSessionStateMessage: createSessionStateMessage2 } = await import("./protocol-CN24IKQN.js");
6310
+ const { getEventStore: getEventStore2 } = await import("./events-6UJR2NH4.js");
6311
+ const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, foldPendingConfirmations: foldPendingConfirmations2 } = await import("./folding-GMO644G3.js");
6312
+ const { createSessionStateMessage: createSessionStateMessage2 } = await import("./protocol-QQNATDFM.js");
6309
6313
  const eventStore = getEventStore2();
6310
6314
  const events = eventStore.getEvents(sessionId);
6311
6315
  const messages = buildMessagesFromStoredEvents2(events);
@@ -6322,7 +6326,7 @@ async function createServerHandle(config4) {
6322
6326
  if (!callId || !answer) {
6323
6327
  return res.status(400).json({ error: "callId and answer are required" });
6324
6328
  }
6325
- const { provideAnswer: provideAnswer2 } = await import("./tools-TJGSHOAR.js");
6329
+ const { provideAnswer: provideAnswer2 } = await import("./tools-2X2FC6W7.js");
6326
6330
  const found = provideAnswer2(callId, answer);
6327
6331
  if (!found) {
6328
6332
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -6358,14 +6362,14 @@ async function createServerHandle(config4) {
6358
6362
  if (!session) {
6359
6363
  return res.status(404).json({ error: "Session not found" });
6360
6364
  }
6361
- const { stopSessionExecution } = await import("./chat-handler-DKX2XFHA.js");
6362
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-TJGSHOAR.js");
6365
+ const { stopSessionExecution } = await import("./chat-handler-ZFQIJIJT.js");
6366
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-2X2FC6W7.js");
6363
6367
  stopSessionExecution(sessionId, sessionManager);
6364
6368
  abortSession(sessionId);
6365
6369
  cancelQuestionsForSession(sessionId, "Session stopped by user");
6366
6370
  cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
6367
6371
  sessionManager.clearMessageQueue(sessionId);
6368
- const eventStore = (await import("./events-R7FRQEBE.js")).getEventStore();
6372
+ const eventStore = (await import("./events-6UJR2NH4.js")).getEventStore();
6369
6373
  eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
6370
6374
  res.json({ success: true });
6371
6375
  });
@@ -6379,7 +6383,7 @@ async function createServerHandle(config4) {
6379
6383
  if (typeof messageIndex !== "number" || messageIndex < 0) {
6380
6384
  return res.status(400).json({ error: "messageIndex must be a non-negative number" });
6381
6385
  }
6382
- const { truncateSessionMessages } = await import("./events-R7FRQEBE.js");
6386
+ const { truncateSessionMessages } = await import("./events-6UJR2NH4.js");
6383
6387
  truncateSessionMessages(sessionId, messageIndex);
6384
6388
  res.json({ success: true });
6385
6389
  });
@@ -6397,7 +6401,7 @@ async function createServerHandle(config4) {
6397
6401
  if (!msg) {
6398
6402
  return res.status(400).json({ error: "Message not found at this index" });
6399
6403
  }
6400
- const { truncateSessionMessages } = await import("./events-R7FRQEBE.js");
6404
+ const { truncateSessionMessages } = await import("./events-6UJR2NH4.js");
6401
6405
  truncateSessionMessages(sessionId, messageIndex - 1);
6402
6406
  sessionManager.queueMessage(sessionId, "asap", msg.content, msg.attachments, msg.messageKind);
6403
6407
  res.json({ success: true });
@@ -6429,7 +6433,7 @@ async function createServerHandle(config4) {
6429
6433
  res.json({ accepted: true });
6430
6434
  });
6431
6435
  app.get("/api/settings", async (req, res) => {
6432
- const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-6XX56F3F.js");
6436
+ const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-OAISIQVV.js");
6433
6437
  const keysParam = req.query["keys"];
6434
6438
  if (!keysParam) {
6435
6439
  return res.status(400).json({ error: "keys query parameter is required" });
@@ -6442,19 +6446,19 @@ async function createServerHandle(config4) {
6442
6446
  res.json(result);
6443
6447
  });
6444
6448
  app.get("/api/settings/:key", async (req, res) => {
6445
- const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-6XX56F3F.js");
6449
+ const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-OAISIQVV.js");
6446
6450
  const key = req.params.key;
6447
6451
  const value = getSetting(key) ?? SETTINGS_DEFAULTS[key] ?? null;
6448
6452
  res.json({ key, value });
6449
6453
  });
6450
6454
  app.get("/api/settings/:key", async (req, res) => {
6451
- const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-6XX56F3F.js");
6455
+ const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-OAISIQVV.js");
6452
6456
  const key = req.params.key;
6453
6457
  const value = getSetting(key) ?? SETTINGS_DEFAULTS[key] ?? null;
6454
6458
  res.json({ key, value });
6455
6459
  });
6456
6460
  app.put("/api/settings/:key", async (req, res) => {
6457
- const { setSetting } = await import("./settings-6XX56F3F.js");
6461
+ const { setSetting } = await import("./settings-OAISIQVV.js");
6458
6462
  const key = req.params.key;
6459
6463
  const { value } = req.body;
6460
6464
  if (value === void 0) {
@@ -6469,7 +6473,7 @@ async function createServerHandle(config4) {
6469
6473
  let visionFallback;
6470
6474
  let globalWorkdir;
6471
6475
  try {
6472
- const { loadGlobalConfig, getVisionFallback } = await import("./config-FAT5XRFB.js");
6476
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-MFKBDOOT.js");
6473
6477
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6474
6478
  const fallback = getVisionFallback(globalConfig);
6475
6479
  if (fallback) {
@@ -6546,10 +6550,10 @@ async function createServerHandle(config4) {
6546
6550
  const url = req.query["url"];
6547
6551
  if (!url) return res.status(400).json({ error: "url is required" });
6548
6552
  try {
6549
- const { fetchModelsWithContext } = await import("./provider-manager-IP3HOGNB.js");
6553
+ const { fetchModelsWithContext } = await import("./provider-manager-2NFFVCX5.js");
6550
6554
  const models = await fetchModelsWithContext(url);
6551
6555
  if (models.length === 0) {
6552
- return res.status(404).json({ error: `No models found at ${url}/v1/models`, url });
6556
+ return res.status(404).json({ error: `No models found at ${buildModelsUrl(url)}`, url });
6553
6557
  }
6554
6558
  res.json({
6555
6559
  models: models.map((m) => ({
@@ -6570,18 +6574,19 @@ async function createServerHandle(config4) {
6570
6574
  }
6571
6575
  });
6572
6576
  app.post("/api/providers/test-params", async (req, res) => {
6573
- const { url, params, apiKey } = req.body;
6577
+ const { url, model, params, apiKey } = req.body;
6574
6578
  if (!url) return res.status(400).json({ error: "url is required" });
6579
+ if (!model) return res.status(400).json({ error: "model is required" });
6575
6580
  try {
6576
6581
  const headers = { "Content-Type": "application/json" };
6577
6582
  if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
6578
6583
  const body = {
6579
- model: "deepseek-v4-flash",
6584
+ model,
6580
6585
  messages: [{ role: "user", content: "say hi in one word" }],
6581
6586
  max_tokens: 8e3,
6582
6587
  ...params
6583
6588
  };
6584
- const response = await fetch(`${url}/v1/chat/completions`, {
6589
+ const response = await fetch(`${ensureVersionPrefix(url)}/chat/completions`, {
6585
6590
  method: "POST",
6586
6591
  headers,
6587
6592
  body: JSON.stringify(body),
@@ -6613,7 +6618,7 @@ async function createServerHandle(config4) {
6613
6618
  return res.status(400).json({ error: "name, url, and backend are required" });
6614
6619
  }
6615
6620
  try {
6616
- const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-FAT5XRFB.js");
6621
+ const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-MFKBDOOT.js");
6617
6622
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6618
6623
  const providerBackend = backend;
6619
6624
  const configWithProvider = addProvider(globalConfig, {
@@ -6630,7 +6635,9 @@ async function createServerHandle(config4) {
6630
6635
  ...m.supportsVision !== void 0 ? { supportsVision: m.supportsVision } : {},
6631
6636
  ...m.thinkingEnabled !== void 0 ? { thinkingEnabled: m.thinkingEnabled } : {},
6632
6637
  ...m.thinkingLevel ? { thinkingLevel: m.thinkingLevel } : {},
6633
- ...m.nonThinkingEnabled !== void 0 ? { nonThinkingEnabled: m.nonThinkingEnabled } : {}
6638
+ ...m.nonThinkingEnabled !== void 0 ? { nonThinkingEnabled: m.nonThinkingEnabled } : {},
6639
+ ...m.thinkingExtraKwargs ? { thinkingExtraKwargs: m.thinkingExtraKwargs } : {},
6640
+ ...m.nonThinkingExtraKwargs ? { nonThinkingExtraKwargs: m.nonThinkingExtraKwargs } : {}
6634
6641
  })) : model ? [{ id: model, contextWindow: 2e5, source: "user" }] : [],
6635
6642
  isActive: true
6636
6643
  });
@@ -6656,7 +6663,7 @@ async function createServerHandle(config4) {
6656
6663
  app.post("/api/init/config", async (req, res) => {
6657
6664
  const { workdir, visionFallback } = req.body;
6658
6665
  try {
6659
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-FAT5XRFB.js");
6666
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MFKBDOOT.js");
6660
6667
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6661
6668
  const updatedConfig = {
6662
6669
  ...globalConfig,
@@ -6684,7 +6691,7 @@ async function createServerHandle(config4) {
6684
6691
  });
6685
6692
  app.delete("/api/providers/:id", async (req, res) => {
6686
6693
  const { id } = req.params;
6687
- const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-FAT5XRFB.js");
6694
+ const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-MFKBDOOT.js");
6688
6695
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6689
6696
  const updatedConfig = removeProvider(globalConfig, id);
6690
6697
  await saveGlobalConfig(config4.mode ?? "production", updatedConfig);
@@ -6695,7 +6702,7 @@ async function createServerHandle(config4) {
6695
6702
  const { id } = req.params;
6696
6703
  const { isLocal } = req.body;
6697
6704
  try {
6698
- const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-FAT5XRFB.js");
6705
+ const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-MFKBDOOT.js");
6699
6706
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6700
6707
  const provider = globalConfig.providers.find((p) => p.id === id);
6701
6708
  if (!provider) {
@@ -6723,7 +6730,7 @@ async function createServerHandle(config4) {
6723
6730
  models: modelConfigs
6724
6731
  } = req.body;
6725
6732
  try {
6726
- const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-FAT5XRFB.js");
6733
+ const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-MFKBDOOT.js");
6727
6734
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6728
6735
  const provider = globalConfig.providers.find((p) => p.id === id);
6729
6736
  if (!provider) {
@@ -6770,7 +6777,7 @@ async function createServerHandle(config4) {
6770
6777
  return res.status(400).json({ error: result.error });
6771
6778
  }
6772
6779
  const llmClient = getLLMClient();
6773
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-FAT5XRFB.js");
6780
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-MFKBDOOT.js");
6774
6781
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6775
6782
  const updatedConfig = setDefaultModelSelection(globalConfig, id, llmClient.getModel());
6776
6783
  await saveGlobalConfig(config4.mode ?? "production", updatedConfig);
@@ -6801,7 +6808,7 @@ async function createServerHandle(config4) {
6801
6808
  if (!result.success) {
6802
6809
  return res.status(400).json({ error: result.error });
6803
6810
  }
6804
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-FAT5XRFB.js");
6811
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MFKBDOOT.js");
6805
6812
  const globalConfig = await loadGlobalConfig(config4.mode ?? "production");
6806
6813
  const updatedProviders = providerManager.getProviders();
6807
6814
  const updatedConfig = {
@@ -6867,13 +6874,13 @@ async function createServerHandle(config4) {
6867
6874
  })
6868
6875
  );
6869
6876
  app.get("/api/sessions/:id/background-processes", async (req, res) => {
6870
- const { getSessionProcesses } = await import("./manager-W7N3XQ4Q.js");
6877
+ const { getSessionProcesses } = await import("./manager-NTL3MLGN.js");
6871
6878
  const sessionId = req.params.id;
6872
6879
  const processes = getSessionProcesses(sessionId);
6873
6880
  res.json({ processes });
6874
6881
  });
6875
6882
  app.post("/api/sessions/:id/background-process/:processId/stop", async (req, res) => {
6876
- const { stopProcess } = await import("./manager-W7N3XQ4Q.js");
6883
+ const { stopProcess } = await import("./manager-NTL3MLGN.js");
6877
6884
  const sessionId = req.params.id;
6878
6885
  const processId = req.params.processId;
6879
6886
  const session = sessionManager.getSession(sessionId);
@@ -6887,7 +6894,7 @@ async function createServerHandle(config4) {
6887
6894
  res.status(500).json({ error: err instanceof Error ? err.message : "Failed to stop process" });
6888
6895
  }
6889
6896
  });
6890
- const { getCurrentBranch } = await import("./branch.api-PWFW26KC.js");
6897
+ const { getCurrentBranch } = await import("./branch.api-TCWNJXYA.js");
6891
6898
  app.get("/api/branch", async (req, res) => {
6892
6899
  await getCurrentBranch(req, res);
6893
6900
  });
@@ -7015,7 +7022,7 @@ async function createServerHandle(config4) {
7015
7022
  providerManager
7016
7023
  );
7017
7024
  const wss = wssExports.wss;
7018
- const { QueueProcessor } = await import("./processor-5T3CXD5I.js");
7025
+ const { QueueProcessor } = await import("./processor-EJJTSLRL.js");
7019
7026
  const queueProcessor = new QueueProcessor({
7020
7027
  sessionManager,
7021
7028
  providerManager,
@@ -7053,9 +7060,9 @@ async function createServerHandle(config4) {
7053
7060
  logger.info("Shutting down...");
7054
7061
  void (async () => {
7055
7062
  await devServerManager.stopAll();
7056
- const { stopAllInspectProxies } = await import("./inspect-proxy-42ZXL2R5.js");
7063
+ const { stopAllInspectProxies } = await import("./inspect-proxy-JZ54RBUN.js");
7057
7064
  stopAllInspectProxies();
7058
- const { cleanupAllProcesses } = await import("./store-OQ45KONN.js");
7065
+ const { cleanupAllProcesses } = await import("./store-JZW6VPEK.js");
7059
7066
  cleanupAllProcesses();
7060
7067
  viteServer?.close();
7061
7068
  for (const client of wss.clients) {
@@ -7087,4 +7094,4 @@ export {
7087
7094
  createServerHandle,
7088
7095
  createServer
7089
7096
  };
7090
- //# sourceMappingURL=chunk-BNFQMAH6.js.map
7097
+ //# sourceMappingURL=chunk-EYE2JMLA.js.map