openfox 2.0.25 → 2.0.27

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/{chat-handler-XH3QUXIC.js → chat-handler-7YZPQHI6.js} +6 -6
  2. package/dist/{chunk-SNQT7LNU.js → chunk-BW6DQC2L.js} +5 -23
  3. package/dist/{chunk-GZOYGODG.js → chunk-DHOOJDHX.js} +15 -18
  4. package/dist/{chunk-Y6STCE5Z.js → chunk-DTZZ6GEI.js} +8 -8
  5. package/dist/{chunk-WEXW7ZXJ.js → chunk-FMI362TD.js} +2 -2
  6. package/dist/{chunk-WCPFR6ZP.js → chunk-LU3I4FWR.js} +15 -9
  7. package/dist/{chunk-YBWY4DKY.js → chunk-M7M2VH45.js} +2 -2
  8. package/dist/{chunk-64NCACBV.js → chunk-NWMTGGVL.js} +3 -3
  9. package/dist/{chunk-2ELCWCO3.js → chunk-QYP6MOB5.js} +2 -2
  10. package/dist/{chunk-L5FBH2YX.js → chunk-S2QN73UJ.js} +47 -39
  11. package/dist/{chunk-AYJTMZVU.js → chunk-UHWRWFLE.js} +4 -4
  12. package/dist/{chunk-LP5RXQW5.js → chunk-Z3GCVOXC.js} +6 -6
  13. package/dist/cli/dev.js +1 -1
  14. package/dist/cli/index.js +1 -1
  15. package/dist/{client-725U6BTX.js → client-X6BVH4Q4.js} +2 -2
  16. package/dist/{compactor-JMGSZ4DQ.js → compactor-G4QIY6PV.js} +3 -3
  17. package/dist/{config-Z66BQTNX.js → config-OV5OLKOC.js} +2 -2
  18. package/dist/{events-JKPHAR5W.js → events-F5IURVXP.js} +2 -2
  19. package/dist/{orchestrator-FRFKYO77.js → orchestrator-B5XMOEFI.js} +5 -5
  20. package/dist/package.json +1 -1
  21. package/dist/{processor-YAMVUA7K.js → processor-DJW5WIZO.js} +6 -6
  22. package/dist/{provider-KB7GB2O2.js → provider-AHIVZZI5.js} +5 -5
  23. package/dist/{provider-manager-5VAVOKHC.js → provider-manager-5742XBEI.js} +3 -3
  24. package/dist/{serve-XBIN2DEU.js → serve-LQ4DULNW.js} +11 -11
  25. package/dist/server/index.js +9 -9
  26. package/dist/{server-VXOP7JUX.js → server-WFXWONOK.js} +8 -8
  27. package/dist/{tools-JDYXXX2N.js → tools-B6HIABTH.js} +4 -4
  28. package/dist/web/assets/{index-CtG8oo36.js → index-DnJlePbY.js} +30 -30
  29. package/dist/web/index.html +1 -1
  30. package/dist/web/sw.js +1 -1
  31. package/package.json +1 -1
@@ -2,11 +2,11 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-AYJTMZVU.js";
5
+ } from "./chunk-UHWRWFLE.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-64NCACBV.js";
9
- import "./chunk-WCPFR6ZP.js";
8
+ } from "./chunk-NWMTGGVL.js";
9
+ import "./chunk-LU3I4FWR.js";
10
10
  import "./chunk-DL6ZILAF.js";
11
11
  import "./chunk-PBGOZMVY.js";
12
12
  import "./chunk-VRGRAQDG.js";
@@ -22,7 +22,7 @@ import "./chunk-O4TED6AJ.js";
22
22
  import "./chunk-YGSBVKFU.js";
23
23
  import {
24
24
  getEventStore
25
- } from "./chunk-YBWY4DKY.js";
25
+ } from "./chunk-M7M2VH45.js";
26
26
  import "./chunk-6PLAWCHQ.js";
27
27
  import "./chunk-FBGWG4N6.js";
28
28
  import "./chunk-J2GP3J3X.js";
@@ -30,7 +30,7 @@ import "./chunk-Z4FMBCJO.js";
30
30
  import "./chunk-ZJ4FP6RS.js";
31
31
  import "./chunk-K44MW7JJ.js";
32
32
  import "./chunk-YD6NDTKF.js";
33
- import "./chunk-SNQT7LNU.js";
33
+ import "./chunk-BW6DQC2L.js";
34
34
  import "./chunk-CQGTEGKL.js";
35
35
  import "./chunk-V4IE7HJY.js";
36
36
 
@@ -145,4 +145,4 @@ export {
145
145
  startChatSession,
146
146
  stopSessionExecution
147
147
  };
148
- //# sourceMappingURL=chat-handler-XH3QUXIC.js.map
148
+ //# sourceMappingURL=chat-handler-7YZPQHI6.js.map
@@ -145,29 +145,10 @@ function migrateConfig(raw) {
145
145
  if (migrationOccurred) {
146
146
  console.warn("Migrating legacy maxContext to model-specific config");
147
147
  }
148
- if (obj.defaultModelSelection) {
149
- return {
150
- config: configSchema.parse({
151
- ...obj,
152
- providers
153
- }),
154
- migrated: migrationOccurred
155
- };
156
- }
157
- let defaultModelSelection;
158
- if (obj.activeProviderId) {
159
- const activeProvider = obj.providers.find((p) => p.id === obj.activeProviderId);
160
- if (activeProvider?.model) {
161
- defaultModelSelection = `${obj.activeProviderId}/${activeProvider.model}`;
162
- } else {
163
- defaultModelSelection = `${obj.activeProviderId}/auto`;
164
- }
165
- }
166
148
  return {
167
149
  config: configSchema.parse({
168
150
  ...obj,
169
- providers,
170
- defaultModelSelection
151
+ providers
171
152
  }),
172
153
  migrated: migrationOccurred
173
154
  };
@@ -301,7 +282,7 @@ function addProvider(config, provider) {
301
282
  { ...newProvider, isActive: shouldActivate }
302
283
  ],
303
284
  mcpServers: config.mcpServers,
304
- defaultModelSelection: shouldActivate ? `${newProvider.id}/auto` : config.defaultModelSelection,
285
+ defaultModelSelection: shouldActivate ? `${newProvider.id}/${newProvider.models?.[0]?.id ?? "auto"}` : config.defaultModelSelection,
305
286
  activeProviderId: shouldActivate ? newProvider.id : config.activeProviderId,
306
287
  activeWorkflowId: config.activeWorkflowId,
307
288
  server: config.server ?? { port: 10369, host: "127.0.0.1", openBrowser: true },
@@ -330,7 +311,8 @@ function removeProvider(config, providerId) {
330
311
  const slashIndex = config.defaultModelSelection.indexOf("/");
331
312
  const selectedProviderId = slashIndex === -1 ? config.defaultModelSelection : config.defaultModelSelection.substring(0, slashIndex);
332
313
  if (selectedProviderId === providerId) {
333
- newDefaultModelSelection = filtered.length > 0 ? `${filtered[0].id}/auto` : void 0;
314
+ const firstModelId = filtered[0]?.models?.[0]?.id ?? "auto";
315
+ newDefaultModelSelection = filtered.length > 0 ? `${filtered[0].id}/${firstModelId}` : void 0;
334
316
  }
335
317
  }
336
318
  const wasActive = config.activeProviderId === providerId;
@@ -436,4 +418,4 @@ export {
436
418
  activateProvider,
437
419
  mergeConfigs
438
420
  };
439
- //# sourceMappingURL=chunk-SNQT7LNU.js.map
421
+ //# sourceMappingURL=chunk-BW6DQC2L.js.map
@@ -1,10 +1,9 @@
1
1
  import {
2
- clearModelCache,
3
- detectModel
2
+ clearModelCache
4
3
  } from "./chunk-M3RB4IF6.js";
5
4
  import {
6
5
  createLLMClient
7
- } from "./chunk-2ELCWCO3.js";
6
+ } from "./chunk-QYP6MOB5.js";
8
7
  import {
9
8
  buildModelsUrl,
10
9
  ensureVersionPrefix,
@@ -158,7 +157,7 @@ async function fetchOllamaModelsWithContext(baseUrl, _apiKey) {
158
157
  function parseDefaultModelSelection(selection) {
159
158
  if (!selection) return { providerId: void 0, model: void 0 };
160
159
  const slashIndex = selection.indexOf("/");
161
- if (slashIndex === -1) return { providerId: selection, model: "auto" };
160
+ if (slashIndex === -1) return { providerId: selection, model: void 0 };
162
161
  return {
163
162
  providerId: selection.substring(0, slashIndex),
164
163
  model: selection.substring(slashIndex + 1)
@@ -237,8 +236,11 @@ function createProviderManager(config) {
237
236
  if (!provider) {
238
237
  return { success: false, error: "Provider not found" };
239
238
  }
240
- const currentModel = parseDefaultModelSelection(defaultModelSelection).model ?? "auto";
241
- const targetModel = options?.model ?? currentModel;
239
+ const currentModel = parseDefaultModelSelection(defaultModelSelection).model;
240
+ let targetModel = options?.model ?? currentModel;
241
+ if (!targetModel || targetModel === "auto") {
242
+ targetModel = provider.models?.[0]?.id ?? "auto";
243
+ }
242
244
  const isModelSwitch = providerId === parseDefaultModelSelection(defaultModelSelection).providerId && options?.model && options.model !== currentModel;
243
245
  if (providerId === parseDefaultModelSelection(defaultModelSelection).providerId && !isModelSwitch) {
244
246
  return { success: true };
@@ -280,14 +282,7 @@ function createProviderManager(config) {
280
282
  providers = providers.map((p) => p.id === providerId ? { ...p, models: userModels } : p);
281
283
  }
282
284
  newClient.setBackend(provider.backend);
283
- if (targetModel === "auto") {
284
- const detected = await detectModel(provider.url);
285
- if (detected) {
286
- newClient.setModel(detected);
287
- }
288
- } else {
289
- newClient.setModel(targetModel);
290
- }
285
+ newClient.setModel(targetModel);
291
286
  providerStatus.set(providerId, "connected");
292
287
  } catch (err) {
293
288
  logger.warn("Could not connect to provider", {
@@ -320,7 +315,8 @@ function createProviderManager(config) {
320
315
  if (providerData.isActive || providers.length === 0) {
321
316
  providers = providers.map((p) => ({ ...p, isActive: false }));
322
317
  provider.isActive = true;
323
- defaultModelSelection = `${id}/auto`;
318
+ const firstModelId = provider.models?.[0]?.id ?? "auto";
319
+ defaultModelSelection = `${id}/${firstModelId}`;
324
320
  }
325
321
  providers.push(provider);
326
322
  providerStatus.set(id, "unknown");
@@ -334,7 +330,8 @@ function createProviderManager(config) {
334
330
  providerStatus.delete(providerId);
335
331
  if (wasActive && providers.length > 0) {
336
332
  providers[0].isActive = true;
337
- defaultModelSelection = `${providers[0].id}/auto`;
333
+ const firstModelId = providers[0]?.models?.[0]?.id ?? "auto";
334
+ defaultModelSelection = `${providers[0].id}/${firstModelId}`;
338
335
  } else if (providers.length === 0) {
339
336
  defaultModelSelection = void 0;
340
337
  }
@@ -351,7 +348,7 @@ function createProviderManager(config) {
351
348
  const newActiveProviderId = this.getActiveProviderId();
352
349
  if (newActiveProviderId && newActiveProviderId !== wasActiveProviderId) {
353
350
  const activeProvider = providers.find((p) => p.id === newActiveProviderId);
354
- if (activeProvider && activeProvider.apiKey) {
351
+ if (activeProvider) {
355
352
  const providerConfig = createConfigForProvider(activeProvider, this.getCurrentModel() ?? "auto");
356
353
  llmClient = createLLMClient(providerConfig);
357
354
  logger.info("setProviders: recreated LLM client for new active provider", {
@@ -554,4 +551,4 @@ export {
554
551
  parseDefaultModelSelection,
555
552
  createProviderManager
556
553
  };
557
- //# sourceMappingURL=chunk-GZOYGODG.js.map
554
+ //# sourceMappingURL=chunk-DHOOJDHX.js.map
@@ -2,7 +2,7 @@ import {
2
2
  injectWorkflowKickoffIfNeeded,
3
3
  runAgentTurn,
4
4
  runChatTurn
5
- } from "./chunk-64NCACBV.js";
5
+ } from "./chunk-NWMTGGVL.js";
6
6
  import {
7
7
  applyDynamicContext,
8
8
  checkAborted,
@@ -19,7 +19,7 @@ import {
19
19
  loadAllAgentsDefault,
20
20
  saveItemToDir,
21
21
  spawnShellProcess
22
- } from "./chunk-WCPFR6ZP.js";
22
+ } from "./chunk-LU3I4FWR.js";
23
23
  import {
24
24
  getPlatformShell,
25
25
  onProcessEvent
@@ -43,7 +43,7 @@ import {
43
43
  } from "./chunk-EU3WWTFH.js";
44
44
  import {
45
45
  appendCompactionPrompt
46
- } from "./chunk-WEXW7ZXJ.js";
46
+ } from "./chunk-FMI362TD.js";
47
47
  import {
48
48
  TurnMetrics,
49
49
  createMessageStartEvent
@@ -52,10 +52,10 @@ import {
52
52
  getCurrentContextWindowId,
53
53
  getEventStore,
54
54
  getRuntimeConfig
55
- } from "./chunk-YBWY4DKY.js";
55
+ } from "./chunk-M7M2VH45.js";
56
56
  import {
57
57
  createLLMClient
58
- } from "./chunk-2ELCWCO3.js";
58
+ } from "./chunk-QYP6MOB5.js";
59
59
  import {
60
60
  ensureVersionPrefix
61
61
  } from "./chunk-HNCM3D7Y.js";
@@ -1777,7 +1777,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1777
1777
  const runtimeConfig = getRuntimeConfig();
1778
1778
  const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
1779
1779
  const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
1780
- const { createToolRegistry } = await import("./tools-JDYXXX2N.js");
1780
+ const { createToolRegistry } = await import("./tools-B6HIABTH.js");
1781
1781
  const allTools = createToolRegistry().definitions;
1782
1782
  const toolFingerprint = getToolFingerprint(allTools);
1783
1783
  const currentHash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -1850,7 +1850,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1850
1850
  const runtimeConfig = getRuntimeConfig();
1851
1851
  const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
1852
1852
  const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
1853
- const { createToolRegistry } = await import("./tools-JDYXXX2N.js");
1853
+ const { createToolRegistry } = await import("./tools-B6HIABTH.js");
1854
1854
  const allTools = createToolRegistry().definitions;
1855
1855
  const toolFingerprint = getToolFingerprint(allTools);
1856
1856
  const currentHash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -2071,4 +2071,4 @@ export {
2071
2071
  signalMcpReady,
2072
2072
  createWebSocketServer
2073
2073
  };
2074
- //# sourceMappingURL=chunk-Y6STCE5Z.js.map
2074
+ //# sourceMappingURL=chunk-DTZZ6GEI.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-YGSBVKFU.js";
5
5
  import {
6
6
  getCurrentWindowMessageOptions
7
- } from "./chunk-YBWY4DKY.js";
7
+ } from "./chunk-M7M2VH45.js";
8
8
 
9
9
  // src/server/context/compactor.ts
10
10
  function appendCompactionPrompt(sessionId, append) {
@@ -31,4 +31,4 @@ export {
31
31
  shouldCompact,
32
32
  getCompactionTarget
33
33
  };
34
- //# sourceMappingURL=chunk-WEXW7ZXJ.js.map
34
+ //# sourceMappingURL=chunk-FMI362TD.js.map
@@ -56,7 +56,7 @@ import {
56
56
  getCurrentWindowMessageOptions,
57
57
  getEventStore,
58
58
  getRuntimeConfig
59
- } from "./chunk-YBWY4DKY.js";
59
+ } from "./chunk-M7M2VH45.js";
60
60
  import {
61
61
  buildContextMessagesFromEventHistory,
62
62
  foldContextState,
@@ -72,7 +72,7 @@ import {
72
72
  import {
73
73
  loadGlobalConfig,
74
74
  saveGlobalConfig
75
- } from "./chunk-SNQT7LNU.js";
75
+ } from "./chunk-BW6DQC2L.js";
76
76
  import {
77
77
  getGlobalConfigDir
78
78
  } from "./chunk-CQGTEGKL.js";
@@ -205,6 +205,9 @@ async function isPathWithinSandbox(path, workdir, sessionId) {
205
205
  }
206
206
  return { allowed: false, resolvedPath };
207
207
  }
208
+ function looksLikeRegex(str) {
209
+ return /[*?+[\]\\]/.test(str);
210
+ }
208
211
  function extractAbsolutePathsFromCommand(command) {
209
212
  if (!command.trim()) {
210
213
  return [];
@@ -239,6 +242,9 @@ function extractAbsolutePathsFromCommand(command) {
239
242
  if (content.startsWith("/") && content.endsWith("/")) {
240
243
  continue;
241
244
  }
245
+ if (content.startsWith("/") && looksLikeRegex(content)) {
246
+ continue;
247
+ }
242
248
  if (content.startsWith("/")) {
243
249
  const resolved = normalize(content);
244
250
  if (!isSafePath(resolved)) {
@@ -259,7 +265,7 @@ function extractAbsolutePathsFromCommand(command) {
259
265
  if (pathCandidate.includes("__URL__") || pathCandidate.includes("__FILEURL__")) {
260
266
  continue;
261
267
  }
262
- if (pathCandidate.endsWith("/") && pathCandidate.split("/").length <= 2) {
268
+ if (looksLikeRegex(pathCandidate)) {
263
269
  continue;
264
270
  }
265
271
  const resolved = normalize(pathCandidate);
@@ -2557,7 +2563,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2557
2563
  sessionManager.setCurrentContextSize(sessionId, result.usage.promptTokens);
2558
2564
  if (!compacting) {
2559
2565
  const contextState2 = sessionManager.getContextState(sessionId);
2560
- const { shouldCompact, appendCompactionPrompt } = await import("./compactor-JMGSZ4DQ.js");
2566
+ const { shouldCompact, appendCompactionPrompt } = await import("./compactor-G4QIY6PV.js");
2561
2567
  if (shouldCompact(contextState2.currentTokens, contextState2.maxTokens, runtimeConfig.context.compactionThreshold)) {
2562
2568
  appendCompactionPrompt(sessionId, append);
2563
2569
  compacting = true;
@@ -2907,7 +2913,7 @@ async function describeImageFromDataUrl(dataUrl, visionModel, options) {
2907
2913
  import { createHash as createHash2 } from "crypto";
2908
2914
  async function loadVisionModelFromGlobalConfig() {
2909
2915
  try {
2910
- const { loadGlobalConfig: loadGlobalConfig2, getVisionFallback } = await import("./config-Z66BQTNX.js");
2916
+ const { loadGlobalConfig: loadGlobalConfig2, getVisionFallback } = await import("./config-OV5OLKOC.js");
2911
2917
  const runtimeConfig = getRuntimeConfig();
2912
2918
  const mode = runtimeConfig.mode ?? "production";
2913
2919
  const globalConfig = await loadGlobalConfig2(mode);
@@ -3362,7 +3368,7 @@ var callSubAgentTool = {
3362
3368
  };
3363
3369
  }
3364
3370
  try {
3365
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-JDYXXX2N.js");
3371
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-B6HIABTH.js");
3366
3372
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3367
3373
  const turnMetrics = new TurnMetrics();
3368
3374
  const result = await executeSubAgent({
@@ -4168,7 +4174,7 @@ async function computeContextHash(sessionManager, sessionId) {
4168
4174
  const runtimeConfig = getRuntimeConfig();
4169
4175
  const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
4170
4176
  const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
4171
- const { createToolRegistry: createToolRegistry2 } = await import("./tools-JDYXXX2N.js");
4177
+ const { createToolRegistry: createToolRegistry2 } = await import("./tools-B6HIABTH.js");
4172
4178
  const allTools = createToolRegistry2().definitions;
4173
4179
  const toolFingerprint = getToolFingerprint(allTools);
4174
4180
  const hash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -4281,7 +4287,7 @@ var mcpConfigTool = createTool(
4281
4287
  await saveGlobalConfig(mcpConfigMode, { ...globalConfig, mcpServers: updated });
4282
4288
  }
4283
4289
  async function rebuildTools() {
4284
- const { setMcpTools: setMcpTools2 } = await import("./tools-JDYXXX2N.js");
4290
+ const { setMcpTools: setMcpTools2 } = await import("./tools-B6HIABTH.js");
4285
4291
  const mcpTools = createMcpTools(mcpManagerForTools);
4286
4292
  setMcpTools2(mcpTools);
4287
4293
  }
@@ -4685,4 +4691,4 @@ export {
4685
4691
  getToolRegistryForAgent,
4686
4692
  createToolRegistry
4687
4693
  };
4688
- //# sourceMappingURL=chunk-WCPFR6ZP.js.map
4694
+ //# sourceMappingURL=chunk-LU3I4FWR.js.map
@@ -888,7 +888,7 @@ var envSchema = z.object({
888
888
  OPENFOX_LLM_URL: z.string().url().optional(),
889
889
  OPENFOX_VLLM_URL: z.string().url().optional(),
890
890
  OPENFOX_BACKEND: backendSchema,
891
- OPENFOX_MODEL_NAME: z.string().default("qwen3.5-122b-int4-autoround"),
891
+ OPENFOX_MODEL_NAME: z.string().default(""),
892
892
  OPENFOX_MAX_CONTEXT: z.coerce.number().default(2e5),
893
893
  OPENFOX_PORT: z.coerce.number().default(10369),
894
894
  OPENFOX_HOST: z.string().optional(),
@@ -1397,4 +1397,4 @@ export {
1397
1397
  truncateSessionMessages,
1398
1398
  getRecentUserPromptsForSession
1399
1399
  };
1400
- //# sourceMappingURL=chunk-YBWY4DKY.js.map
1400
+ //# sourceMappingURL=chunk-M7M2VH45.js.map
@@ -14,7 +14,7 @@ import {
14
14
  loadAllAgentsDefault,
15
15
  processEventsForConversation,
16
16
  runTopLevelAgentLoop
17
- } from "./chunk-WCPFR6ZP.js";
17
+ } from "./chunk-LU3I4FWR.js";
18
18
  import {
19
19
  TurnMetrics,
20
20
  WORKFLOW_KICKOFF_PROMPT,
@@ -28,7 +28,7 @@ import {
28
28
  getCurrentWindowMessageOptions,
29
29
  getEventStore,
30
30
  getRuntimeConfig
31
- } from "./chunk-YBWY4DKY.js";
31
+ } from "./chunk-M7M2VH45.js";
32
32
  import {
33
33
  buildSnapshotFromSessionState
34
34
  } from "./chunk-6PLAWCHQ.js";
@@ -320,4 +320,4 @@ export {
320
320
  runAgentTurn,
321
321
  injectWorkflowKickoffIfNeeded
322
322
  };
323
- //# sourceMappingURL=chunk-64NCACBV.js.map
323
+ //# sourceMappingURL=chunk-NWMTGGVL.js.map
@@ -34,7 +34,7 @@ function createLLMClient(config, initialBackend = "unknown") {
34
34
  let capabilities = getBackendCapabilities(backend);
35
35
  const reasoningEffort = config.llm.reasoningEffort;
36
36
  const thinkingField = config.llm.thinkingField;
37
- const idleTimeout = config.llm.idleTimeout ?? 3e4;
37
+ const idleTimeout = config.llm.idleTimeout ?? 12e4;
38
38
  return {
39
39
  getModel() {
40
40
  return model;
@@ -259,4 +259,4 @@ function createLLMClient(config, initialBackend = "unknown") {
259
259
  export {
260
260
  createLLMClient
261
261
  };
262
- //# sourceMappingURL=chunk-2ELCWCO3.js.map
262
+ //# sourceMappingURL=chunk-QYP6MOB5.js.map