openfox 2.0.44 → 2.0.46

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 (39) hide show
  1. package/README.md +20 -19
  2. package/dist/{chat-handler-XAJ2MZRG.js → chat-handler-QSIPCVYT.js} +7 -7
  3. package/dist/{chunk-4EFNO4BV.js → chunk-2DKFKTLY.js} +2 -2
  4. package/dist/{chunk-EZ3BPIUV.js → chunk-C7NO4BBK.js} +22 -143
  5. package/dist/{chunk-SM2PK6TV.js → chunk-CDFPKVOF.js} +2 -2
  6. package/dist/{chunk-JNSSFTVD.js → chunk-CDRQJDSJ.js} +3 -1
  7. package/dist/{chunk-AJDU5GID.js → chunk-EU6XT5ST.js} +6 -6
  8. package/dist/{chunk-ZBLT7MNL.js → chunk-H5AC62SN.js} +2 -2
  9. package/dist/{chunk-33HVSYWA.js → chunk-HSXSRVW2.js} +97 -42
  10. package/dist/{chunk-BSDMJT53.js → chunk-LB3E24TN.js} +5 -3
  11. package/dist/{chunk-YUIR2I64.js → chunk-LNE4QPNW.js} +6 -6
  12. package/dist/{chunk-H72PI4S5.js → chunk-MH73ZSPY.js} +35 -10
  13. package/dist/{chunk-QOZ2DIWF.js → chunk-U62IKLKM.js} +8 -3
  14. package/dist/{chunk-IEDE6VK4.js → chunk-UFFLA4W6.js} +2 -6
  15. package/dist/{chunk-A45RDSCQ.js → chunk-VVBHUTJ5.js} +9 -6
  16. package/dist/cli/dev.js +1 -1
  17. package/dist/cli/index.js +1 -1
  18. package/dist/{client-ZUL4AR4J.js → client-5FOFNUXM.js} +3 -3
  19. package/dist/{compactor-LQ46XQJV.js → compactor-VIN5YWQF.js} +3 -3
  20. package/dist/{config-S5CF4QU4.js → config-G5GNT4UT.js} +2 -6
  21. package/dist/{events-7RIPFG62.js → events-S4EOKSYA.js} +2 -2
  22. package/dist/{http-client-3OLSDU63.js → http-client-JTRLBNJC.js} +2 -2
  23. package/dist/{orchestrator-YNVVDDPW.js → orchestrator-3PQ6KQAG.js} +6 -6
  24. package/dist/package.json +1 -1
  25. package/dist/{processor-QOV6XGBF.js → processor-MHNIP32O.js} +7 -7
  26. package/dist/{protocol-COpRaEpx.d.ts → protocol-A2CLNSAK.d.ts} +2 -0
  27. package/dist/{provider-JDI3LVYF.js → provider-BYKY7BS3.js} +8 -8
  28. package/dist/{provider-manager-5UZXYOZZ.js → provider-manager-7ARKB5FZ.js} +4 -4
  29. package/dist/{serve-6XZEFLFP.js → serve-TKOKRJTR.js} +19 -14
  30. package/dist/server/index.d.ts +5 -1
  31. package/dist/server/index.js +11 -11
  32. package/dist/{server-EJQIYEXN.js → server-KZ3UARRZ.js} +10 -10
  33. package/dist/{settings-L2V4ZUA2.js → settings-X43DCM55.js} +2 -2
  34. package/dist/shared/index.d.ts +2 -2
  35. package/dist/{tools-3LE2M25T.js → tools-UMI2IMYI.js} +5 -5
  36. package/dist/web/assets/{index-D8oQRDLg.js → index-C4UaPDjy.js} +51 -51
  37. package/dist/web/index.html +1 -1
  38. package/dist/web/sw.js +1 -1
  39. package/package.json +1 -1
@@ -12,7 +12,7 @@ import {
12
12
  loadAllAgentsDefault,
13
13
  processEventsForConversation,
14
14
  runTopLevelAgentLoop
15
- } from "./chunk-H72PI4S5.js";
15
+ } from "./chunk-MH73ZSPY.js";
16
16
  import {
17
17
  TurnMetrics,
18
18
  WORKFLOW_KICKOFF_PROMPT,
@@ -26,7 +26,7 @@ import {
26
26
  getCurrentWindowMessageOptions,
27
27
  getEventStore,
28
28
  getRuntimeConfig
29
- } from "./chunk-BSDMJT53.js";
29
+ } from "./chunk-LB3E24TN.js";
30
30
  import {
31
31
  buildSnapshotFromSessionState
32
32
  } from "./chunk-EHYFYQXY.js";
@@ -39,7 +39,7 @@ import {
39
39
 
40
40
  // src/server/chat/orchestrator.ts
41
41
  async function buildRetryPatterns() {
42
- const { getSetting, SETTINGS_KEYS } = await import("./settings-L2V4ZUA2.js");
42
+ const { getSetting, SETTINGS_KEYS } = await import("./settings-X43DCM55.js");
43
43
  const raw = getSetting(SETTINGS_KEYS.RETRY_PATTERNS);
44
44
  if (!raw) {
45
45
  const oldXmlProtection = getSetting("llm.disableXmlProtection");
@@ -206,7 +206,9 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
206
206
  const statsIdentity = resolveStatsIdentity(options);
207
207
  const allAgents = await loadAllAgentsDefault();
208
208
  const agentDef = findAgentById(agentId, allAgents) ?? findAgentById("planner", allAgents);
209
- injectAgentReminder(options.sessionId, agentDef);
209
+ if (!options.warmup) {
210
+ injectAgentReminder(options.sessionId, agentDef);
211
+ }
210
212
  const { content: instructionContent } = await getAllInstructions(
211
213
  options.sessionManager.requireSession(options.sessionId).workdir,
212
214
  options.sessionManager.requireSession(options.sessionId).projectId
@@ -262,7 +264,8 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
262
264
  injectAgentReminder: () => injectAgentReminder(options.sessionId, agentDef),
263
265
  ...options.initialCompacting ? { initialCompacting: true } : {},
264
266
  ...callbacks?.injectKickoff ? { injectKickoff: callbacks.injectKickoff } : {},
265
- ...callbacks?.onToolExecuted ? { onToolExecuted: callbacks.onToolExecuted } : {}
267
+ ...callbacks?.onToolExecuted ? { onToolExecuted: callbacks.onToolExecuted } : {},
268
+ ...options.warmup ? { warmup: true } : {}
266
269
  },
267
270
  turnMetrics
268
271
  );
@@ -310,4 +313,4 @@ export {
310
313
  runAgentTurn,
311
314
  injectWorkflowKickoffIfNeeded
312
315
  };
313
- //# sourceMappingURL=chunk-A45RDSCQ.js.map
316
+ //# sourceMappingURL=chunk-VVBHUTJ5.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-YUIR2I64.js";
4
+ } from "../chunk-LNE4QPNW.js";
5
5
  import "../chunk-XY3LESVZ.js";
6
6
  import {
7
7
  logger
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-YUIR2I64.js";
4
+ } from "../chunk-LNE4QPNW.js";
5
5
  import "../chunk-XY3LESVZ.js";
6
6
  import {
7
7
  logger
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createLLMClient
3
- } from "./chunk-ZBLT7MNL.js";
3
+ } from "./chunk-H5AC62SN.js";
4
4
  import "./chunk-Z4FMBCJO.js";
5
5
  import "./chunk-HNCM3D7Y.js";
6
6
  import "./chunk-Z6W4YHJB.js";
7
- import "./chunk-IEDE6VK4.js";
7
+ import "./chunk-UFFLA4W6.js";
8
8
  import "./chunk-K44MW7JJ.js";
9
9
  import "./chunk-V4IE7HJY.js";
10
10
  import "./chunk-5WRI5ZAA.js";
11
11
  export {
12
12
  createLLMClient
13
13
  };
14
- //# sourceMappingURL=client-ZUL4AR4J.js.map
14
+ //# sourceMappingURL=client-5FOFNUXM.js.map
@@ -2,9 +2,9 @@ import {
2
2
  appendCompactionPrompt,
3
3
  getCompactionTarget,
4
4
  shouldCompact
5
- } from "./chunk-4EFNO4BV.js";
5
+ } from "./chunk-2DKFKTLY.js";
6
6
  import "./chunk-55RWNJBT.js";
7
- import "./chunk-BSDMJT53.js";
7
+ import "./chunk-LB3E24TN.js";
8
8
  import "./chunk-EHYFYQXY.js";
9
9
  import "./chunk-ZPIZLTWU.js";
10
10
  import "./chunk-J2GP3J3X.js";
@@ -18,4 +18,4 @@ export {
18
18
  getCompactionTarget,
19
19
  shouldCompact
20
20
  };
21
- //# sourceMappingURL=compactor-LQ46XQJV.js.map
21
+ //# sourceMappingURL=compactor-VIN5YWQF.js.map
@@ -7,13 +7,11 @@ import {
7
7
  getDefaultVisionFallback,
8
8
  getVisionFallback,
9
9
  loadGlobalConfig,
10
- mergeConfigs,
11
- migrateConfig,
12
10
  removeProvider,
13
11
  saveGlobalConfig,
14
12
  setDefaultModelSelection,
15
13
  updateProvider
16
- } from "./chunk-EZ3BPIUV.js";
14
+ } from "./chunk-C7NO4BBK.js";
17
15
  import "./chunk-CQGTEGKL.js";
18
16
  import "./chunk-5WRI5ZAA.js";
19
17
  export {
@@ -25,11 +23,9 @@ export {
25
23
  getDefaultVisionFallback,
26
24
  getVisionFallback,
27
25
  loadGlobalConfig,
28
- mergeConfigs,
29
- migrateConfig,
30
26
  removeProvider,
31
27
  saveGlobalConfig,
32
28
  setDefaultModelSelection,
33
29
  updateProvider
34
30
  };
35
- //# sourceMappingURL=config-S5CF4QU4.js.map
31
+ //# sourceMappingURL=config-G5GNT4UT.js.map
@@ -38,7 +38,7 @@ import {
38
38
  isStoredEvent,
39
39
  isTurnEvent,
40
40
  truncateSessionMessages
41
- } from "./chunk-BSDMJT53.js";
41
+ } from "./chunk-LB3E24TN.js";
42
42
  import {
43
43
  buildContextMessagesFromEventHistory,
44
44
  buildContextMessagesFromMessages,
@@ -115,4 +115,4 @@ export {
115
115
  isTurnEvent,
116
116
  truncateSessionMessages
117
117
  };
118
- //# sourceMappingURL=events-7RIPFG62.js.map
118
+ //# sourceMappingURL=events-S4EOKSYA.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  OpenAIHttpClient
3
- } from "./chunk-IEDE6VK4.js";
3
+ } from "./chunk-UFFLA4W6.js";
4
4
  import "./chunk-K44MW7JJ.js";
5
5
  import "./chunk-5WRI5ZAA.js";
6
6
  export {
7
7
  OpenAIHttpClient
8
8
  };
9
- //# sourceMappingURL=http-client-3OLSDU63.js.map
9
+ //# sourceMappingURL=http-client-JTRLBNJC.js.map
@@ -2,15 +2,15 @@ import {
2
2
  injectWorkflowKickoffIfNeeded,
3
3
  runAgentTurn,
4
4
  runChatTurn
5
- } from "./chunk-A45RDSCQ.js";
6
- import "./chunk-H72PI4S5.js";
5
+ } from "./chunk-VVBHUTJ5.js";
6
+ import "./chunk-MH73ZSPY.js";
7
7
  import "./chunk-LBGHZLLH.js";
8
8
  import "./chunk-PBGOZMVY.js";
9
9
  import "./chunk-VRGRAQDG.js";
10
10
  import "./chunk-NWO6GRYE.js";
11
11
  import "./chunk-F4PMNP7S.js";
12
12
  import "./chunk-EU3WWTFH.js";
13
- import "./chunk-JNSSFTVD.js";
13
+ import "./chunk-CDRQJDSJ.js";
14
14
  import "./chunk-YQ3SOPBI.js";
15
15
  import {
16
16
  TurnMetrics,
@@ -20,7 +20,7 @@ import {
20
20
  createToolCallEvent,
21
21
  createToolResultEvent
22
22
  } from "./chunk-55RWNJBT.js";
23
- import "./chunk-BSDMJT53.js";
23
+ import "./chunk-LB3E24TN.js";
24
24
  import "./chunk-EHYFYQXY.js";
25
25
  import "./chunk-ZPIZLTWU.js";
26
26
  import "./chunk-J2GP3J3X.js";
@@ -28,7 +28,7 @@ import "./chunk-Z4FMBCJO.js";
28
28
  import "./chunk-Z6W4YHJB.js";
29
29
  import "./chunk-K44MW7JJ.js";
30
30
  import "./chunk-YD6NDTKF.js";
31
- import "./chunk-EZ3BPIUV.js";
31
+ import "./chunk-C7NO4BBK.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-YNVVDDPW.js.map
46
+ //# sourceMappingURL=orchestrator-3PQ6KQAG.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.44",
3
+ "version": "2.0.46",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -2,8 +2,8 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-QOZ2DIWF.js";
6
- import "./chunk-H72PI4S5.js";
5
+ } from "./chunk-U62IKLKM.js";
6
+ import "./chunk-MH73ZSPY.js";
7
7
  import "./chunk-LBGHZLLH.js";
8
8
  import "./chunk-PBGOZMVY.js";
9
9
  import "./chunk-VRGRAQDG.js";
@@ -13,12 +13,12 @@ import {
13
13
  createSessionRunningMessage
14
14
  } from "./chunk-F4PMNP7S.js";
15
15
  import "./chunk-EU3WWTFH.js";
16
- import "./chunk-JNSSFTVD.js";
16
+ import "./chunk-CDRQJDSJ.js";
17
17
  import "./chunk-YQ3SOPBI.js";
18
18
  import "./chunk-55RWNJBT.js";
19
19
  import {
20
20
  getEventStore
21
- } from "./chunk-BSDMJT53.js";
21
+ } from "./chunk-LB3E24TN.js";
22
22
  import "./chunk-EHYFYQXY.js";
23
23
  import "./chunk-ZPIZLTWU.js";
24
24
  import "./chunk-J2GP3J3X.js";
@@ -28,7 +28,7 @@ import {
28
28
  logger
29
29
  } from "./chunk-K44MW7JJ.js";
30
30
  import "./chunk-YD6NDTKF.js";
31
- import "./chunk-EZ3BPIUV.js";
31
+ import "./chunk-C7NO4BBK.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-YNVVDDPW.js");
177
+ const { runChatTurn } = await import("./orchestrator-3PQ6KQAG.js");
178
178
  const runChatTurnParams = buildRunChatTurnParams({
179
179
  sessionManager,
180
180
  sessionId,
@@ -224,4 +224,4 @@ var QueueProcessor = class {
224
224
  export {
225
225
  QueueProcessor
226
226
  };
227
- //# sourceMappingURL=processor-QOV6XGBF.js.map
227
+ //# sourceMappingURL=processor-MHNIP32O.js.map
@@ -489,6 +489,8 @@ interface Config {
489
489
  workdir: string;
490
490
  /** Active workflow ID (defaults to "default") */
491
491
  activeWorkflowId?: string | undefined;
492
+ /** Disable automatic session title generation */
493
+ disableAutoSessionTitle?: boolean;
492
494
  /** MCP server configurations */
493
495
  mcpServers?: Record<string, {
494
496
  transport: 'stdio' | 'http';
@@ -10,16 +10,16 @@ import {
10
10
  } from "./chunk-XY3LESVZ.js";
11
11
  import {
12
12
  fetchAvailableModelsFromBackend
13
- } from "./chunk-SM2PK6TV.js";
13
+ } from "./chunk-CDFPKVOF.js";
14
14
  import {
15
15
  detectModel
16
16
  } from "./chunk-M3RB4IF6.js";
17
17
  import "./chunk-J2GP3J3X.js";
18
- import "./chunk-ZBLT7MNL.js";
18
+ import "./chunk-H5AC62SN.js";
19
19
  import "./chunk-Z4FMBCJO.js";
20
20
  import "./chunk-HNCM3D7Y.js";
21
21
  import "./chunk-Z6W4YHJB.js";
22
- import "./chunk-IEDE6VK4.js";
22
+ import "./chunk-UFFLA4W6.js";
23
23
  import "./chunk-K44MW7JJ.js";
24
24
  import {
25
25
  activateProvider,
@@ -28,7 +28,7 @@ import {
28
28
  loadGlobalConfig,
29
29
  removeProvider,
30
30
  saveGlobalConfig
31
- } from "./chunk-EZ3BPIUV.js";
31
+ } from "./chunk-C7NO4BBK.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-S5CF4QU4.js");
273
+ const { setDefaultModelSelection } = await import("./config-G5GNT4UT.js");
274
274
  newConfig = setDefaultModelSelection(
275
275
  newConfig,
276
276
  newConfig.providers[newConfig.providers.length - 1].id,
@@ -293,7 +293,7 @@ async function runProviderList(mode) {
293
293
  const marker = provider.isActive ? "\u25B8" : " ";
294
294
  const name = provider.name.padEnd(18);
295
295
  const url = provider.url.padEnd(32);
296
- const model = (provider.model || "auto").padEnd(18);
296
+ const model = (provider.models?.[0]?.id || "auto").padEnd(18);
297
297
  const backend = provider.backend;
298
298
  console.log(`${marker} ${name} ${url} ${model} ${backend}`);
299
299
  }
@@ -315,7 +315,7 @@ async function runProviderUse(mode) {
315
315
  options: config.providers.map((p) => ({
316
316
  value: p.id,
317
317
  label: `${p.name}${p.isActive ? " (current)" : ""}`,
318
- hint: `${p.url} - ${p.model}`
318
+ hint: `${p.url} - ${p.models?.[0]?.id ?? "auto"}`
319
319
  })),
320
320
  initialValue: activeProvider?.id
321
321
  });
@@ -398,4 +398,4 @@ export {
398
398
  runProviderRemove,
399
399
  runProviderUse
400
400
  };
401
- //# sourceMappingURL=provider-JDI3LVYF.js.map
401
+ //# sourceMappingURL=provider-BYKY7BS3.js.map
@@ -3,14 +3,14 @@ import {
3
3
  fetchAvailableModelsFromBackend,
4
4
  fetchModelsWithContext,
5
5
  parseDefaultModelSelection
6
- } from "./chunk-SM2PK6TV.js";
6
+ } from "./chunk-CDFPKVOF.js";
7
7
  import "./chunk-M3RB4IF6.js";
8
8
  import "./chunk-J2GP3J3X.js";
9
- import "./chunk-ZBLT7MNL.js";
9
+ import "./chunk-H5AC62SN.js";
10
10
  import "./chunk-Z4FMBCJO.js";
11
11
  import "./chunk-HNCM3D7Y.js";
12
12
  import "./chunk-Z6W4YHJB.js";
13
- import "./chunk-IEDE6VK4.js";
13
+ import "./chunk-UFFLA4W6.js";
14
14
  import "./chunk-K44MW7JJ.js";
15
15
  import "./chunk-V4IE7HJY.js";
16
16
  import "./chunk-5WRI5ZAA.js";
@@ -20,4 +20,4 @@ export {
20
20
  fetchModelsWithContext,
21
21
  parseDefaultModelSelection
22
22
  };
23
- //# sourceMappingURL=provider-manager-5UZXYOZZ.js.map
23
+ //# sourceMappingURL=provider-manager-7ARKB5FZ.js.map
@@ -1,33 +1,33 @@
1
1
  import {
2
2
  VERSION,
3
3
  createServer
4
- } from "./chunk-33HVSYWA.js";
5
- import "./chunk-AJDU5GID.js";
6
- import "./chunk-A45RDSCQ.js";
7
- import "./chunk-H72PI4S5.js";
4
+ } from "./chunk-HSXSRVW2.js";
5
+ import "./chunk-EU6XT5ST.js";
6
+ import "./chunk-VVBHUTJ5.js";
7
+ import "./chunk-MH73ZSPY.js";
8
8
  import "./chunk-LBGHZLLH.js";
9
9
  import "./chunk-PBGOZMVY.js";
10
10
  import "./chunk-VRGRAQDG.js";
11
11
  import "./chunk-NWO6GRYE.js";
12
12
  import "./chunk-F4PMNP7S.js";
13
13
  import "./chunk-EU3WWTFH.js";
14
- import "./chunk-JNSSFTVD.js";
14
+ import "./chunk-CDRQJDSJ.js";
15
15
  import "./chunk-YQ3SOPBI.js";
16
- import "./chunk-4EFNO4BV.js";
16
+ import "./chunk-2DKFKTLY.js";
17
17
  import "./chunk-55RWNJBT.js";
18
18
  import {
19
19
  loadConfig
20
- } from "./chunk-BSDMJT53.js";
20
+ } from "./chunk-LB3E24TN.js";
21
21
  import "./chunk-EHYFYQXY.js";
22
22
  import "./chunk-ZPIZLTWU.js";
23
- import "./chunk-SM2PK6TV.js";
23
+ import "./chunk-CDFPKVOF.js";
24
24
  import "./chunk-M3RB4IF6.js";
25
25
  import "./chunk-J2GP3J3X.js";
26
- import "./chunk-ZBLT7MNL.js";
26
+ import "./chunk-H5AC62SN.js";
27
27
  import "./chunk-Z4FMBCJO.js";
28
28
  import "./chunk-HNCM3D7Y.js";
29
29
  import "./chunk-Z6W4YHJB.js";
30
- import "./chunk-IEDE6VK4.js";
30
+ import "./chunk-UFFLA4W6.js";
31
31
  import {
32
32
  logger
33
33
  } from "./chunk-K44MW7JJ.js";
@@ -37,7 +37,7 @@ import {
37
37
  getActiveProvider,
38
38
  getDefaultModel,
39
39
  loadGlobalConfig
40
- } from "./chunk-EZ3BPIUV.js";
40
+ } from "./chunk-C7NO4BBK.js";
41
41
  import {
42
42
  ensureDataDirExists,
43
43
  getDatabasePath,
@@ -147,6 +147,8 @@ async function runServe(options) {
147
147
  const isEnvBackendExplicit = envBackend !== "unknown";
148
148
  const isEnvModelExplicit = !!envModel;
149
149
  const isEnvUrlExplicit = envUrl !== "http://localhost:8000/v1";
150
+ const isEnvTimeoutExplicit = env.llm.timeout !== 3e5;
151
+ const isEnvIdleTimeoutExplicit = env.llm.idleTimeout !== 3e5;
150
152
  const providerUrl = activeProvider?.url ?? envUrl;
151
153
  const defaultModel = getDefaultModel(globalConfig) ?? envModel;
152
154
  const providerBackend = activeProvider?.backend ?? envBackend;
@@ -156,7 +158,9 @@ async function runServe(options) {
156
158
  ...env.llm,
157
159
  baseUrl: isEnvUrlExplicit ? envUrl : providerUrl,
158
160
  model: isEnvModelExplicit ? envModel : defaultModel,
159
- backend: isEnvBackendExplicit ? envBackend : providerBackend
161
+ backend: isEnvBackendExplicit ? envBackend : providerBackend,
162
+ timeout: isEnvTimeoutExplicit ? env.llm.timeout : globalConfig.llm?.timeout ?? env.llm.timeout,
163
+ idleTimeout: isEnvIdleTimeoutExplicit ? env.llm.idleTimeout : globalConfig.llm?.idleTimeout ?? env.llm.idleTimeout
160
164
  },
161
165
  server: {
162
166
  ...env.server,
@@ -180,7 +184,8 @@ async function runServe(options) {
180
184
  mcpServers: globalConfig.mcpServers,
181
185
  // Workdir precedence: .env override → global config → process.cwd()
182
186
  // Normalize: remove trailing slash to prevent double slashes in paths
183
- workdir: (process.env["OPENFOX_WORKDIR"] ?? globalConfig.workspace?.workdir ?? process.cwd()).replace(/\/$/, "")
187
+ workdir: (process.env["OPENFOX_WORKDIR"] ?? globalConfig.workspace?.workdir ?? process.cwd()).replace(/\/$/, ""),
188
+ ...(env.disableAutoSessionTitle ?? globalConfig.disableAutoSessionTitle) !== void 0 ? { disableAutoSessionTitle: env.disableAutoSessionTitle ?? globalConfig.disableAutoSessionTitle } : {}
184
189
  };
185
190
  await createServer(merged);
186
191
  displayStartupBanner({
@@ -200,4 +205,4 @@ async function runServe(options) {
200
205
  export {
201
206
  runServe
202
207
  };
203
- //# sourceMappingURL=serve-6XZEFLFP.js.map
208
+ //# sourceMappingURL=serve-TKOKRJTR.js.map
@@ -1,4 +1,4 @@
1
- import { aO as ToolCall, c as Attachment, R as Diagnostic, an as Provider, ab as ModelConfig, aA as Session, aJ as SessionSummary, aj as Project, aE as SessionMode, aG as SessionPhase, M as Message, J as Criterion, L as CriterionStatus, a8 as MetadataEntry, aw as QueuedMessage, F as ContextState, O as DangerLevel$1, ay as ServerMessage, aL as StatsIdentity, aR as ToolResult, D as Config } from '../protocol-COpRaEpx.js';
1
+ import { aO as ToolCall, c as Attachment, R as Diagnostic, an as Provider, ab as ModelConfig, aA as Session, aJ as SessionSummary, aj as Project, aE as SessionMode, aG as SessionPhase, M as Message, J as Criterion, L as CriterionStatus, a8 as MetadataEntry, aw as QueuedMessage, F as ContextState, O as DangerLevel$1, ay as ServerMessage, aL as StatsIdentity, aR as ToolResult, D as Config } from '../protocol-A2CLNSAK.js';
2
2
  import { Server } from 'node:http';
3
3
 
4
4
  interface LLMMessage {
@@ -399,6 +399,7 @@ declare class SessionManager {
399
399
  private providerManager;
400
400
  private dynamicContextChangedStore;
401
401
  private debugDumpStore;
402
+ private warmedUpSessions;
402
403
  constructor(providerManager: ProviderManager);
403
404
  getCurrentModelSettings(): {
404
405
  temperature?: number;
@@ -578,6 +579,9 @@ declare class SessionManager {
578
579
  * Update execution state.
579
580
  */
580
581
  updateExecutionState(sessionId: string, updates: Record<string, unknown>): void;
582
+ isWarmedUp(sessionId: string): boolean;
583
+ markWarmedUp(sessionId: string): void;
584
+ resetWarmup(sessionId: string): void;
581
585
  setCachedPrompt(sessionId: string, systemPrompt: string, tools: LLMToolDefinition[], hash: string): void;
582
586
  getCachedPrompt(sessionId: string): {
583
587
  systemPrompt: string;
@@ -1,35 +1,35 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-33HVSYWA.js";
5
- import "../chunk-AJDU5GID.js";
6
- import "../chunk-A45RDSCQ.js";
7
- import "../chunk-H72PI4S5.js";
4
+ } from "../chunk-HSXSRVW2.js";
5
+ import "../chunk-EU6XT5ST.js";
6
+ import "../chunk-VVBHUTJ5.js";
7
+ import "../chunk-MH73ZSPY.js";
8
8
  import "../chunk-LBGHZLLH.js";
9
9
  import "../chunk-PBGOZMVY.js";
10
10
  import "../chunk-VRGRAQDG.js";
11
11
  import "../chunk-NWO6GRYE.js";
12
12
  import "../chunk-F4PMNP7S.js";
13
13
  import "../chunk-EU3WWTFH.js";
14
- import "../chunk-JNSSFTVD.js";
14
+ import "../chunk-CDRQJDSJ.js";
15
15
  import "../chunk-YQ3SOPBI.js";
16
- import "../chunk-4EFNO4BV.js";
16
+ import "../chunk-2DKFKTLY.js";
17
17
  import "../chunk-55RWNJBT.js";
18
- import "../chunk-BSDMJT53.js";
18
+ import "../chunk-LB3E24TN.js";
19
19
  import "../chunk-EHYFYQXY.js";
20
20
  import "../chunk-ZPIZLTWU.js";
21
- import "../chunk-SM2PK6TV.js";
21
+ import "../chunk-CDFPKVOF.js";
22
22
  import "../chunk-M3RB4IF6.js";
23
23
  import "../chunk-J2GP3J3X.js";
24
- import "../chunk-ZBLT7MNL.js";
24
+ import "../chunk-H5AC62SN.js";
25
25
  import "../chunk-Z4FMBCJO.js";
26
26
  import "../chunk-HNCM3D7Y.js";
27
27
  import "../chunk-Z6W4YHJB.js";
28
- import "../chunk-IEDE6VK4.js";
28
+ import "../chunk-UFFLA4W6.js";
29
29
  import "../chunk-K44MW7JJ.js";
30
30
  import "../chunk-VUQCQXXJ.js";
31
31
  import "../chunk-YD6NDTKF.js";
32
- import "../chunk-EZ3BPIUV.js";
32
+ import "../chunk-C7NO4BBK.js";
33
33
  import "../chunk-CQGTEGKL.js";
34
34
  import "../chunk-V4IE7HJY.js";
35
35
  import "../chunk-5WRI5ZAA.js";
@@ -1,33 +1,33 @@
1
1
  import {
2
2
  createWebSocketServer,
3
3
  signalMcpReady
4
- } from "./chunk-AJDU5GID.js";
5
- import "./chunk-A45RDSCQ.js";
6
- import "./chunk-H72PI4S5.js";
4
+ } from "./chunk-EU6XT5ST.js";
5
+ import "./chunk-VVBHUTJ5.js";
6
+ import "./chunk-MH73ZSPY.js";
7
7
  import "./chunk-LBGHZLLH.js";
8
8
  import "./chunk-PBGOZMVY.js";
9
9
  import "./chunk-VRGRAQDG.js";
10
10
  import "./chunk-NWO6GRYE.js";
11
11
  import "./chunk-F4PMNP7S.js";
12
12
  import "./chunk-EU3WWTFH.js";
13
- import "./chunk-JNSSFTVD.js";
13
+ import "./chunk-CDRQJDSJ.js";
14
14
  import "./chunk-YQ3SOPBI.js";
15
- import "./chunk-4EFNO4BV.js";
15
+ import "./chunk-2DKFKTLY.js";
16
16
  import "./chunk-55RWNJBT.js";
17
- import "./chunk-BSDMJT53.js";
17
+ import "./chunk-LB3E24TN.js";
18
18
  import "./chunk-EHYFYQXY.js";
19
19
  import "./chunk-ZPIZLTWU.js";
20
20
  import "./chunk-M3RB4IF6.js";
21
21
  import "./chunk-J2GP3J3X.js";
22
- import "./chunk-ZBLT7MNL.js";
22
+ import "./chunk-H5AC62SN.js";
23
23
  import "./chunk-Z4FMBCJO.js";
24
24
  import "./chunk-HNCM3D7Y.js";
25
25
  import "./chunk-Z6W4YHJB.js";
26
- import "./chunk-IEDE6VK4.js";
26
+ import "./chunk-UFFLA4W6.js";
27
27
  import "./chunk-K44MW7JJ.js";
28
28
  import "./chunk-VUQCQXXJ.js";
29
29
  import "./chunk-YD6NDTKF.js";
30
- import "./chunk-EZ3BPIUV.js";
30
+ import "./chunk-C7NO4BBK.js";
31
31
  import "./chunk-CQGTEGKL.js";
32
32
  import "./chunk-V4IE7HJY.js";
33
33
  import "./chunk-5WRI5ZAA.js";
@@ -35,4 +35,4 @@ export {
35
35
  createWebSocketServer,
36
36
  signalMcpReady
37
37
  };
38
- //# sourceMappingURL=server-EJQIYEXN.js.map
38
+ //# sourceMappingURL=server-KZ3UARRZ.js.map
@@ -5,7 +5,7 @@ import {
5
5
  getAllSettings,
6
6
  getSetting,
7
7
  setSetting
8
- } from "./chunk-JNSSFTVD.js";
8
+ } from "./chunk-CDRQJDSJ.js";
9
9
  import "./chunk-ZPIZLTWU.js";
10
10
  import "./chunk-K44MW7JJ.js";
11
11
  import "./chunk-5WRI5ZAA.js";
@@ -17,4 +17,4 @@ export {
17
17
  getSetting,
18
18
  setSetting
19
19
  };
20
- //# sourceMappingURL=settings-L2V4ZUA2.js.map
20
+ //# sourceMappingURL=settings-X43DCM55.js.map
@@ -1,5 +1,5 @@
1
- import { M as Message, S as SessionStats } from '../protocol-COpRaEpx.js';
2
- export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, c as Attachment, B as BackgroundProcess, d as BackgroundProcessExitedPayload, e as BackgroundProcessOutputPayload, f as BackgroundProcessRemovedPayload, g as BackgroundProcessStartedPayload, h as BackgroundProcessStatus, C as CallStatsDataPoint, i as ChatAskUserPayload, j as ChatDeltaPayload, k as ChatDonePayload, l as ChatErrorPayload, m as ChatFormatRetryPayload, n as ChatMessagePayload, o as ChatMessageUpdatedPayload, p as ChatPathConfirmationPayload, q as ChatProgressPayload, r as ChatThinkingPayload, s as ChatTodoPayload, t as ChatToolCallPayload, u as ChatToolOutputPayload, v as ChatToolPreparingPayload, w as ChatToolResultPayload, x as ChatVisionFallbackPayload, y as ClientMessage, z as ClientMessageType, D as Config, E as ContextCompactionEvent, F as ContextState, G as ContextStatePayload, H as ContextWindow, I as CriteriaUpdatedPayload, J as Criterion, K as CriterionAttempt, L as CriterionStatus, N as CriterionValidation, O as DangerLevel, P as DevServerOutputPayload, Q as DevServerStatePayload, R as Diagnostic, T as EditContextEdit, U as EditContextLine, V as EditContextRegion, W as ElementData, X as ErrorPayload, Y as ExecutionState, Z as FileReadEntry, _ as GitDiffFile, $ as GitStatusPayload, a0 as InjectedFile, a1 as LLMCallStats, a2 as LlmBackend, a3 as LogLine, a4 as LspDiagnosticsPayload, a5 as MessageRole, a6 as MessageSegment, a7 as MessageStats, a8 as MetadataEntry, a9 as MetadataUpdatedPayload, aa as ModeChangedPayload, ab as ModelConfig, ac as ModelSessionStats, ad as PathConfirmPayload, ae as PathConfirmationReason, af as PendingPathConfirmationPayload, ag as PendingQuestionPayload, ah as PhaseChangedPayload, ai as PreparingToolCall, aj as Project, ak as ProjectDeletedPayload, al as ProjectListPayload, am as ProjectStatePayload, an as Provider, ao as ProviderBackend, ap as ProviderChangedPayload, aq as QueueAddedEvent, ar as QueueCancelledEvent, as as QueueDrainedEvent, at as QueueEvent, au as QueueEventType, av as QueueStatePayload, aw as QueuedMessage, ax as RecentUserPrompt, ay as ServerMessage, az as ServerMessageType, aA as Session, aB as SessionListPayload, aC as SessionLoadPayload, aD as SessionMetadata, aE as SessionMode, aF as SessionNameGeneratedPayload, aG as SessionPhase, aH as SessionRunningPayload, aI as SessionStatePayload, aJ as SessionSummary, aK as StatsDataPoint, aL as StatsIdentity, aM as TaskCompletedPayload, aN as Todo, aO as ToolCall, aP as ToolMode, aQ as ToolName, aR as ToolResult, aS as ValidationResult, aT as createClientMessage, aU as createServerMessage, aV as isClientMessage, aW as isServerMessage } from '../protocol-COpRaEpx.js';
1
+ import { M as Message, S as SessionStats } from '../protocol-A2CLNSAK.js';
2
+ export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, c as Attachment, B as BackgroundProcess, d as BackgroundProcessExitedPayload, e as BackgroundProcessOutputPayload, f as BackgroundProcessRemovedPayload, g as BackgroundProcessStartedPayload, h as BackgroundProcessStatus, C as CallStatsDataPoint, i as ChatAskUserPayload, j as ChatDeltaPayload, k as ChatDonePayload, l as ChatErrorPayload, m as ChatFormatRetryPayload, n as ChatMessagePayload, o as ChatMessageUpdatedPayload, p as ChatPathConfirmationPayload, q as ChatProgressPayload, r as ChatThinkingPayload, s as ChatTodoPayload, t as ChatToolCallPayload, u as ChatToolOutputPayload, v as ChatToolPreparingPayload, w as ChatToolResultPayload, x as ChatVisionFallbackPayload, y as ClientMessage, z as ClientMessageType, D as Config, E as ContextCompactionEvent, F as ContextState, G as ContextStatePayload, H as ContextWindow, I as CriteriaUpdatedPayload, J as Criterion, K as CriterionAttempt, L as CriterionStatus, N as CriterionValidation, O as DangerLevel, P as DevServerOutputPayload, Q as DevServerStatePayload, R as Diagnostic, T as EditContextEdit, U as EditContextLine, V as EditContextRegion, W as ElementData, X as ErrorPayload, Y as ExecutionState, Z as FileReadEntry, _ as GitDiffFile, $ as GitStatusPayload, a0 as InjectedFile, a1 as LLMCallStats, a2 as LlmBackend, a3 as LogLine, a4 as LspDiagnosticsPayload, a5 as MessageRole, a6 as MessageSegment, a7 as MessageStats, a8 as MetadataEntry, a9 as MetadataUpdatedPayload, aa as ModeChangedPayload, ab as ModelConfig, ac as ModelSessionStats, ad as PathConfirmPayload, ae as PathConfirmationReason, af as PendingPathConfirmationPayload, ag as PendingQuestionPayload, ah as PhaseChangedPayload, ai as PreparingToolCall, aj as Project, ak as ProjectDeletedPayload, al as ProjectListPayload, am as ProjectStatePayload, an as Provider, ao as ProviderBackend, ap as ProviderChangedPayload, aq as QueueAddedEvent, ar as QueueCancelledEvent, as as QueueDrainedEvent, at as QueueEvent, au as QueueEventType, av as QueueStatePayload, aw as QueuedMessage, ax as RecentUserPrompt, ay as ServerMessage, az as ServerMessageType, aA as Session, aB as SessionListPayload, aC as SessionLoadPayload, aD as SessionMetadata, aE as SessionMode, aF as SessionNameGeneratedPayload, aG as SessionPhase, aH as SessionRunningPayload, aI as SessionStatePayload, aJ as SessionSummary, aK as StatsDataPoint, aL as StatsIdentity, aM as TaskCompletedPayload, aN as Todo, aO as ToolCall, aP as ToolMode, aQ as ToolName, aR as ToolResult, aS as ValidationResult, aT as createClientMessage, aU as createServerMessage, aV as isClientMessage, aW as isServerMessage } from '../protocol-A2CLNSAK.js';
3
3
 
4
4
  /**
5
5
  * Session stats computation - aggregates response-level MessageStats from
@@ -12,7 +12,7 @@ import {
12
12
  setMcpTools,
13
13
  stepDoneTool,
14
14
  validateToolAction
15
- } from "./chunk-H72PI4S5.js";
15
+ } from "./chunk-MH73ZSPY.js";
16
16
  import "./chunk-LBGHZLLH.js";
17
17
  import "./chunk-PBGOZMVY.js";
18
18
  import "./chunk-VRGRAQDG.js";
@@ -24,10 +24,10 @@ import {
24
24
  getPendingQuestionsForSession,
25
25
  provideAnswer
26
26
  } from "./chunk-EU3WWTFH.js";
27
- import "./chunk-JNSSFTVD.js";
27
+ import "./chunk-CDRQJDSJ.js";
28
28
  import "./chunk-YQ3SOPBI.js";
29
29
  import "./chunk-55RWNJBT.js";
30
- import "./chunk-BSDMJT53.js";
30
+ import "./chunk-LB3E24TN.js";
31
31
  import "./chunk-EHYFYQXY.js";
32
32
  import "./chunk-ZPIZLTWU.js";
33
33
  import "./chunk-J2GP3J3X.js";
@@ -35,7 +35,7 @@ import "./chunk-Z4FMBCJO.js";
35
35
  import "./chunk-Z6W4YHJB.js";
36
36
  import "./chunk-K44MW7JJ.js";
37
37
  import "./chunk-YD6NDTKF.js";
38
- import "./chunk-EZ3BPIUV.js";
38
+ import "./chunk-C7NO4BBK.js";
39
39
  import "./chunk-CQGTEGKL.js";
40
40
  import "./chunk-V4IE7HJY.js";
41
41
  import "./chunk-5WRI5ZAA.js";
@@ -58,4 +58,4 @@ export {
58
58
  stepDoneTool,
59
59
  validateToolAction
60
60
  };
61
- //# sourceMappingURL=tools-3LE2M25T.js.map
61
+ //# sourceMappingURL=tools-UMI2IMYI.js.map