openfox 2.0.96 → 2.0.98

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 (46) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/CHANGELOG.md +16 -0
  3. package/dist/{chat-handler-5OJMACXB.js → chat-handler-YPWT4MAQ.js} +8 -8
  4. package/dist/{chunk-K2O7JTCX.js → chunk-AY37NB76.js} +2 -2
  5. package/dist/{chunk-URQQOUCS.js → chunk-B56G5OEF.js} +3 -1
  6. package/dist/{chunk-WS7EY4CU.js → chunk-C6QW2IDH.js} +8 -8
  7. package/dist/{chunk-C3XL7X4E.js → chunk-CFTT46KH.js} +4 -4
  8. package/dist/{chunk-BG4EVBLJ.js → chunk-E2CSSHSI.js} +2 -2
  9. package/dist/{chunk-3DAZIZ7E.js → chunk-H5HL36MZ.js} +7 -7
  10. package/dist/{chunk-ML5ZU6VS.js → chunk-HGEDHHTU.js} +41 -37
  11. package/dist/{chunk-LZW5LSVH.js → chunk-IXFEXEUL.js} +3 -3
  12. package/dist/chunk-JYHWOFPM.js +7 -0
  13. package/dist/{chunk-O5YWFX7H.js → chunk-MO3GJIT3.js} +8 -8
  14. package/dist/{chunk-RMXPVQP4.js → chunk-UIK6GA3P.js} +17 -9
  15. package/dist/{chunk-SJJVNSA6.js → chunk-VJILJ22N.js} +52 -10
  16. package/dist/{chunk-YPBV47DH.js → chunk-W77HIJGH.js} +4 -3
  17. package/dist/{chunk-3W6STALV.js → chunk-XTKLA4AK.js} +2 -2
  18. package/dist/cli/dev.js +1 -1
  19. package/dist/cli/index.js +1 -1
  20. package/dist/{client-RENSCJPZ.js → client-CFTJH6BY.js} +3 -3
  21. package/dist/{client-pure-5YE5WFJP.js → client-pure-DCEZBFKW.js} +2 -2
  22. package/dist/{compactor-U7EUKEUE.js → compactor-B4V75Q3A.js} +4 -4
  23. package/dist/{config-M7RDIFC5.js → config-3FKJV3KI.js} +2 -2
  24. package/dist/{dynamic-context-TDB4G5CH.js → dynamic-context-MA5BIJ52.js} +2 -2
  25. package/dist/{orchestrator-MTCF2EPU.js → orchestrator-DHBU7LRB.js} +7 -7
  26. package/dist/package.json +1 -1
  27. package/dist/{processor-HX4FXDDT.js → processor-RC3IBY2J.js} +7 -7
  28. package/dist/{protocol-C5ROb3nH.d.ts → protocol-BXgdUKgZ.d.ts} +1 -1
  29. package/dist/provider/index.d.ts +4 -4
  30. package/dist/{provider-LZ3XMDX6.js → provider-PEJ27FBM.js} +6 -6
  31. package/dist/{provider-manager-PBOF77RQ.js → provider-manager-EJGPSLOZ.js} +4 -4
  32. package/dist/{serve-VGATDJX5.js → serve-H7HR7BWI.js} +14 -14
  33. package/dist/server/index.d.ts +3 -3
  34. package/dist/server/index.js +13 -13
  35. package/dist/{server-4BHDA6PA.js → server-ORYMG5HD.js} +10 -10
  36. package/dist/shared/index.d.ts +3 -3
  37. package/dist/{tools-I3BAXRVD.js → tools-X5FONL4Q.js} +5 -5
  38. package/dist/{types-DHxO1nqw.d.ts → types-7idXD8Bq.d.ts} +4 -0
  39. package/dist/{types-D-dEQIrh.d.ts → types-DBftgbfl.d.ts} +1 -1
  40. package/dist/{update-2Z6TXHFH.js → update-ZOUZYW6Q.js} +2 -2
  41. package/dist/web/assets/index-D8AjFhiw.js +324 -0
  42. package/dist/web/index.html +1 -1
  43. package/dist/web/sw.js +1 -1
  44. package/package.json +1 -1
  45. package/dist/chunk-7B3XSBRL.js +0 -7
  46. package/dist/web/assets/index-CsC_DrIa.js +0 -324
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.98 - 2026-07-27
4
+
5
+ ### Enhancements
6
+
7
+ - **Per-provider toggle to strip reasoning from messages** — a new "Send reasoning in messages" checkbox in the provider defaults panel (gear icon on step 2) lets you disable sending reasoning/thinking content to providers like Mistral that reject the field.
8
+
9
+ ## 2.0.97 - 2026-07-27
10
+
11
+ ### Enhancements
12
+
13
+ - **"esc to interrupt" hint hidden on mobile** — the keyboard shortcut hint no longer clutters the UI on small screens where keyboard shortcuts don't apply.
14
+
15
+ ### Bug Fixes
16
+
17
+ - **Mistral structured content blocks now render correctly** — models with `reasoning_effort` (like `mistral-small-2603`) previously showed `[object Object]` for every streaming chunk. Text and thinking content are now properly extracted and displayed.
18
+
3
19
  ## 2.0.96 - 2026-07-26
4
20
 
5
21
  ### Features
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.98 - 2026-07-27
4
+
5
+ ### Enhancements
6
+
7
+ - **Per-provider toggle to strip reasoning from messages** — a new "Send reasoning in messages" checkbox in the provider defaults panel (gear icon on step 2) lets you disable sending reasoning/thinking content to providers like Mistral that reject the field.
8
+
9
+ ## 2.0.97 - 2026-07-27
10
+
11
+ ### Enhancements
12
+
13
+ - **"esc to interrupt" hint hidden on mobile** — the keyboard shortcut hint no longer clutters the UI on small screens where keyboard shortcuts don't apply.
14
+
15
+ ### Bug Fixes
16
+
17
+ - **Mistral structured content blocks now render correctly** — models with `reasoning_effort` (like `mistral-small-2603`) previously showed `[object Object]` for every streaming chunk. Text and thinking content are now properly extracted and displayed.
18
+
3
19
  ## 2.0.96 - 2026-07-26
4
20
 
5
21
  ### Features
@@ -2,11 +2,11 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-BG4EVBLJ.js";
5
+ } from "./chunk-E2CSSHSI.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-C3XL7X4E.js";
9
- import "./chunk-O5YWFX7H.js";
8
+ } from "./chunk-CFTT46KH.js";
9
+ import "./chunk-MO3GJIT3.js";
10
10
  import "./chunk-ZASSAZ73.js";
11
11
  import "./chunk-HAFRPV7I.js";
12
12
  import "./chunk-I72ACQ6R.js";
@@ -14,7 +14,7 @@ import "./chunk-NWO6GRYE.js";
14
14
  import "./chunk-VKWVPQJ5.js";
15
15
  import "./chunk-D3SXT3BL.js";
16
16
  import "./chunk-J7GAZGZT.js";
17
- import "./chunk-LZW5LSVH.js";
17
+ import "./chunk-IXFEXEUL.js";
18
18
  import "./chunk-KQPDU65K.js";
19
19
  import "./chunk-XLI6PDJG.js";
20
20
  import "./chunk-G5JFKTSR.js";
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-27SDWNKL.js";
26
26
  import "./chunk-EU3WWTFH.js";
27
27
  import "./chunk-WWFH5GAR.js";
28
- import "./chunk-K2O7JTCX.js";
28
+ import "./chunk-AY37NB76.js";
29
29
  import "./chunk-MRWR3SIT.js";
30
30
  import {
31
31
  getEventStore
@@ -37,12 +37,12 @@ import "./chunk-3LRYZ7R3.js";
37
37
  import "./chunk-J2GP3J3X.js";
38
38
  import "./chunk-V4IE7HJY.js";
39
39
  import "./chunk-YHEQTVFV.js";
40
- import "./chunk-RMXPVQP4.js";
40
+ import "./chunk-UIK6GA3P.js";
41
41
  import "./chunk-UEOEA6BB.js";
42
42
  import "./chunk-GLF65XDS.js";
43
43
  import "./chunk-K44MW7JJ.js";
44
44
  import "./chunk-4R7G5JB6.js";
45
- import "./chunk-URQQOUCS.js";
45
+ import "./chunk-B56G5OEF.js";
46
46
  import "./chunk-CQGTEGKL.js";
47
47
  import "./chunk-5WRI5ZAA.js";
48
48
 
@@ -165,4 +165,4 @@ export {
165
165
  startChatSession,
166
166
  stopSessionExecution
167
167
  };
168
- //# sourceMappingURL=chat-handler-5OJMACXB.js.map
168
+ //# sourceMappingURL=chat-handler-YPWT4MAQ.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-YHEQTVFV.js";
10
10
  import {
11
11
  buildModelParams
12
- } from "./chunk-RMXPVQP4.js";
12
+ } from "./chunk-UIK6GA3P.js";
13
13
  import {
14
14
  logger
15
15
  } from "./chunk-K44MW7JJ.js";
@@ -438,4 +438,4 @@ export {
438
438
  createChatDoneEvent,
439
439
  consumeStreamGenerator
440
440
  };
441
- //# sourceMappingURL=chunk-K2O7JTCX.js.map
441
+ //# sourceMappingURL=chunk-AY37NB76.js.map
@@ -49,6 +49,7 @@ var providerSchema = z.object({
49
49
  createdAt: z.string().optional(),
50
50
  isLocal: z.boolean().optional(),
51
51
  thinkingField: z.string().optional(),
52
+ sendReasoningInMessages: z.boolean().optional(),
52
53
  authAdapter: z.string().optional(),
53
54
  transportAdapter: z.string().optional(),
54
55
  credentialRef: z.string().optional()
@@ -65,6 +66,7 @@ var providerSchema = z.object({
65
66
  createdAt: provider.createdAt ?? (/* @__PURE__ */ new Date()).toISOString(),
66
67
  ...provider.isLocal !== void 0 ? { isLocal: provider.isLocal } : {},
67
68
  ...provider.thinkingField ? { thinkingField: provider.thinkingField } : {},
69
+ ...provider.sendReasoningInMessages !== void 0 ? { sendReasoningInMessages: provider.sendReasoningInMessages } : {},
68
70
  ...provider.authAdapter ? { authAdapter: provider.authAdapter } : {},
69
71
  ...provider.transportAdapter ? { transportAdapter: provider.transportAdapter } : {},
70
72
  ...provider.credentialRef ? { credentialRef: provider.credentialRef } : {}
@@ -366,4 +368,4 @@ export {
366
368
  removeProvider,
367
369
  activateProvider
368
370
  };
369
- //# sourceMappingURL=chunk-URQQOUCS.js.map
371
+ //# sourceMappingURL=chunk-B56G5OEF.js.map
@@ -2,16 +2,16 @@ import {
2
2
  generateSessionNameForSession,
3
3
  getSessionMessageCount,
4
4
  needsNameGeneration
5
- } from "./chunk-BG4EVBLJ.js";
5
+ } from "./chunk-E2CSSHSI.js";
6
6
  import {
7
7
  runAgentTurn,
8
8
  runChatTurn
9
- } from "./chunk-C3XL7X4E.js";
9
+ } from "./chunk-CFTT46KH.js";
10
10
  import {
11
11
  devServerManager,
12
12
  executeSubAgent,
13
13
  getToolRegistryForAgent
14
- } from "./chunk-O5YWFX7H.js";
14
+ } from "./chunk-MO3GJIT3.js";
15
15
  import {
16
16
  checkAborted,
17
17
  onProcessEvent,
@@ -28,7 +28,7 @@ import {
28
28
  applyDynamicContext,
29
29
  computeSessionHash,
30
30
  computeUnifiedDiff
31
- } from "./chunk-LZW5LSVH.js";
31
+ } from "./chunk-IXFEXEUL.js";
32
32
  import {
33
33
  createChatErrorMessage,
34
34
  createChatMessageMessage,
@@ -50,11 +50,11 @@ import {
50
50
  } from "./chunk-EU3WWTFH.js";
51
51
  import {
52
52
  appendCompactionPrompt
53
- } from "./chunk-3W6STALV.js";
53
+ } from "./chunk-XTKLA4AK.js";
54
54
  import {
55
55
  TurnMetrics,
56
56
  createMessageStartEvent
57
- } from "./chunk-K2O7JTCX.js";
57
+ } from "./chunk-AY37NB76.js";
58
58
  import {
59
59
  combineEventsWithSnapshot,
60
60
  getCurrentContextWindowId,
@@ -2161,7 +2161,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
2161
2161
  const sessionId = client.activeSessionId;
2162
2162
  const session = sessionManager.requireSession(sessionId);
2163
2163
  try {
2164
- const { buildCachedPrompt } = await import("./dynamic-context-TDB4G5CH.js");
2164
+ const { buildCachedPrompt } = await import("./dynamic-context-MA5BIJ52.js");
2165
2165
  const allAgents = await import("./registry-QEOTM3IG.js");
2166
2166
  const agentDef = allAgents.findAgentById(session.mode, await allAgents.loadAllAgentsDefault()) ?? allAgents.findAgentById("planner", await allAgents.loadAllAgentsDefault());
2167
2167
  const { systemPrompt: newPrompt, hash: newHash } = await buildCachedPrompt(sessionManager, sessionId, agentDef);
@@ -2477,4 +2477,4 @@ export {
2477
2477
  signalMcpReady,
2478
2478
  createWebSocketServer
2479
2479
  };
2480
- //# sourceMappingURL=chunk-WS7EY4CU.js.map
2480
+ //# sourceMappingURL=chunk-C6QW2IDH.js.map
@@ -4,12 +4,12 @@ import {
4
4
  getToolRegistryForAgent,
5
5
  processEventsForConversation,
6
6
  runTopLevelAgentLoop
7
- } from "./chunk-O5YWFX7H.js";
7
+ } from "./chunk-MO3GJIT3.js";
8
8
  import {
9
9
  buildCachedPrompt,
10
10
  computeDynamicContextHash,
11
11
  getToolFingerprint
12
- } from "./chunk-LZW5LSVH.js";
12
+ } from "./chunk-IXFEXEUL.js";
13
13
  import {
14
14
  getAllInstructions,
15
15
  getEnabledSkillMetadata
@@ -21,7 +21,7 @@ import {
21
21
  TurnMetrics,
22
22
  createChatDoneEvent,
23
23
  createMessageStartEvent
24
- } from "./chunk-K2O7JTCX.js";
24
+ } from "./chunk-AY37NB76.js";
25
25
  import {
26
26
  buildAgentReminder,
27
27
  buildAgentSmallReminder
@@ -309,4 +309,4 @@ export {
309
309
  runChatTurn,
310
310
  runAgentTurn
311
311
  };
312
- //# sourceMappingURL=chunk-C3XL7X4E.js.map
312
+ //# sourceMappingURL=chunk-CFTT46KH.js.map
@@ -153,7 +153,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
153
153
  client = deps.getLLMClient();
154
154
  client.setModel(providerConfig.model);
155
155
  } else if (providerConfig) {
156
- const { createLLMClient } = await import("./client-RENSCJPZ.js");
156
+ const { createLLMClient } = await import("./client-CFTJH6BY.js");
157
157
  client = createLLMClient({
158
158
  llm: {
159
159
  baseUrl: providerConfig.baseUrl,
@@ -204,4 +204,4 @@ export {
204
204
  needsNameGeneration,
205
205
  generateSessionNameForSession
206
206
  };
207
- //# sourceMappingURL=chunk-BG4EVBLJ.js.map
207
+ //# sourceMappingURL=chunk-E2CSSHSI.js.map
@@ -37,7 +37,7 @@ Options:
37
37
  }
38
38
  async function runNetworkSetup(mode) {
39
39
  const { loadAuthConfig, saveAuthConfig, encryptPassword } = await import("./auth-YY5PJYSC.js");
40
- const { saveGlobalConfig } = await import("./config-M7RDIFC5.js");
40
+ const { saveGlobalConfig } = await import("./config-3FKJV3KI.js");
41
41
  const { getAuthKeyPath } = await import("./paths-F27V3S4I.js");
42
42
  const existingAuth = await loadAuthConfig(mode);
43
43
  if (existingAuth) {
@@ -104,7 +104,7 @@ async function runNetworkSetup(mode) {
104
104
  console.log("\u2713 Configuration saved!\n");
105
105
  }
106
106
  async function runConfig(mode) {
107
- const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-M7RDIFC5.js");
107
+ const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-3FKJV3KI.js");
108
108
  const { getGlobalConfigPath } = await import("./paths-F27V3S4I.js");
109
109
  const config = await loadGlobalConfig(mode);
110
110
  const configPath = getGlobalConfigPath(mode);
@@ -163,7 +163,7 @@ async function runCli(options) {
163
163
  break;
164
164
  }
165
165
  case "provider": {
166
- const { runProviderCommand } = await import("./provider-LZ3XMDX6.js");
166
+ const { runProviderCommand } = await import("./provider-PEJ27FBM.js");
167
167
  const [, subcommand] = positionals;
168
168
  await runProviderCommand(mode, subcommand);
169
169
  break;
@@ -200,7 +200,7 @@ async function runCli(options) {
200
200
  break;
201
201
  }
202
202
  case "update": {
203
- const { runUpdate } = await import("./update-2Z6TXHFH.js");
203
+ const { runUpdate } = await import("./update-ZOUZYW6Q.js");
204
204
  const code = await runUpdate();
205
205
  if (code !== 0) {
206
206
  process.exit(code);
@@ -208,12 +208,12 @@ async function runCli(options) {
208
208
  break;
209
209
  }
210
210
  default: {
211
- const { configFileExists } = await import("./config-M7RDIFC5.js");
211
+ const { configFileExists } = await import("./config-3FKJV3KI.js");
212
212
  const configExists = await configFileExists(mode);
213
213
  if (!configExists) {
214
214
  await runNetworkSetup(mode);
215
215
  }
216
- const { runServe } = await import("./serve-VGATDJX5.js");
216
+ const { runServe } = await import("./serve-H7HR7BWI.js");
217
217
  const serveOptions = { mode };
218
218
  if (values.port) serveOptions.port = parseInt(values.port);
219
219
  if (values["no-browser"] === true) serveOptions.openBrowser = false;
@@ -225,4 +225,4 @@ async function runCli(options) {
225
225
  export {
226
226
  runCli
227
227
  };
228
- //# sourceMappingURL=chunk-3DAZIZ7E.js.map
228
+ //# sourceMappingURL=chunk-H5HL36MZ.js.map
@@ -21,7 +21,7 @@ import {
21
21
  tokenFromPassword,
22
22
  verifyPassword,
23
23
  workflowExists
24
- } from "./chunk-WS7EY4CU.js";
24
+ } from "./chunk-C6QW2IDH.js";
25
25
  import {
26
26
  openFolder
27
27
  } from "./chunk-62QCBNPE.js";
@@ -33,7 +33,7 @@ import {
33
33
  setMcpManagerForTools,
34
34
  setMcpTools,
35
35
  setNotifyMcpServersChanged
36
- } from "./chunk-O5YWFX7H.js";
36
+ } from "./chunk-MO3GJIT3.js";
37
37
  import {
38
38
  createMcpTools
39
39
  } from "./chunk-NWO6GRYE.js";
@@ -114,7 +114,7 @@ import {
114
114
  } from "./chunk-NLN5LPQ4.js";
115
115
  import {
116
116
  VERSION
117
- } from "./chunk-7B3XSBRL.js";
117
+ } from "./chunk-JYHWOFPM.js";
118
118
  import {
119
119
  clearWorkflowExecution,
120
120
  createSession,
@@ -163,7 +163,7 @@ import {
163
163
  detectModel,
164
164
  getLlmStatus,
165
165
  parseDefaultModelSelection
166
- } from "./chunk-YPBV47DH.js";
166
+ } from "./chunk-W77HIJGH.js";
167
167
  import {
168
168
  getModelProfile
169
169
  } from "./chunk-V4IE7HJY.js";
@@ -5173,7 +5173,7 @@ function createProviderAuthRoutes(config3, providerManager, registry) {
5173
5173
  try {
5174
5174
  const { challenge, completion } = await adapter.beginLogin({ providerId: provider.id });
5175
5175
  void completion.then(async ({ credentialRef }) => {
5176
- const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-M7RDIFC5.js");
5176
+ const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-3FKJV3KI.js");
5177
5177
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
5178
5178
  const updatedConfig = updateProvider(globalConfig, provider.id, { credentialRef, authAdapter: adapter.id });
5179
5179
  await saveGlobalConfig(config3.mode ?? "production", updatedConfig, config3.globalConfigPath);
@@ -5207,7 +5207,7 @@ function createProviderAuthRoutes(config3, providerManager, registry) {
5207
5207
  if (!context) return;
5208
5208
  const { provider, adapter } = context;
5209
5209
  if (provider.credentialRef && adapter) await adapter.logout(provider.credentialRef);
5210
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-M7RDIFC5.js");
5210
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
5211
5211
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
5212
5212
  const updatedConfig = {
5213
5213
  ...globalConfig,
@@ -5684,7 +5684,7 @@ async function createServerHandle(config3) {
5684
5684
  const mcpManager = new McpManager({
5685
5685
  onToolsDiscovered: async (name, tools) => {
5686
5686
  try {
5687
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-M7RDIFC5.js");
5687
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
5688
5688
  const mode = config3.mode ?? "production";
5689
5689
  const globalConfig = await loadGlobalConfig(mode, config3.globalConfigPath);
5690
5690
  const mcpServers2 = {
@@ -5715,7 +5715,7 @@ async function createServerHandle(config3) {
5715
5715
  setMcpTools(mcpTools);
5716
5716
  logger.info("MCP tools registered", { count: mcpTools.length });
5717
5717
  }
5718
- const { signalMcpReady } = await import("./server-4BHDA6PA.js");
5718
+ const { signalMcpReady } = await import("./server-ORYMG5HD.js");
5719
5719
  signalMcpReady();
5720
5720
  });
5721
5721
  const app = express();
@@ -6210,7 +6210,7 @@ All file and git operations should use this branch.
6210
6210
  app.get("/api/sessions/:id", async (req, res) => {
6211
6211
  const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-4THEZWVL.js");
6212
6212
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-OYBO2NTH.js");
6213
- const { getPendingQuestionsForSession } = await import("./tools-I3BAXRVD.js");
6213
+ const { getPendingQuestionsForSession } = await import("./tools-X5FONL4Q.js");
6214
6214
  const { getMaxVisibleItems } = await import("./settings-2WVGUPYV.js");
6215
6215
  const session = sessionManager.getSession(req.params.id);
6216
6216
  if (!session) {
@@ -6243,8 +6243,8 @@ All file and git operations should use this branch.
6243
6243
  if (!session) {
6244
6244
  return res.status(404).json({ error: "Session not found" });
6245
6245
  }
6246
- const { stopSessionExecution } = await import("./chat-handler-5OJMACXB.js");
6247
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-I3BAXRVD.js");
6246
+ const { stopSessionExecution } = await import("./chat-handler-YPWT4MAQ.js");
6247
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-X5FONL4Q.js");
6248
6248
  sessionManager.clearMessageQueue(sessionId);
6249
6249
  stopSessionExecution(sessionId, sessionManager);
6250
6250
  abortSession(sessionId);
@@ -6310,7 +6310,7 @@ All file and git operations should use this branch.
6310
6310
  if (!result.success) {
6311
6311
  return res.status(500).json({ error: result.error ?? "Failed to set default model" });
6312
6312
  }
6313
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-M7RDIFC5.js");
6313
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-3FKJV3KI.js");
6314
6314
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6315
6315
  const updatedConfig = setDefaultModelSelection(globalConfig, providerId, model);
6316
6316
  await saveGlobalConfig(config3.mode ?? "production", updatedConfig, config3.globalConfigPath);
@@ -6476,7 +6476,7 @@ All file and git operations should use this branch.
6476
6476
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6477
6477
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6478
6478
  }
6479
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-I3BAXRVD.js");
6479
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-X5FONL4Q.js");
6480
6480
  const pendingSessionId = getConfirmationSessionId(callId);
6481
6481
  if (!pendingSessionId) {
6482
6482
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6491,7 +6491,7 @@ All file and git operations should use this branch.
6491
6491
  const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-4THEZWVL.js");
6492
6492
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-OYBO2NTH.js");
6493
6493
  const { createSessionStateMessage } = await import("./protocol-YDNGGADL.js");
6494
- const { getPendingQuestionsForSession } = await import("./tools-I3BAXRVD.js");
6494
+ const { getPendingQuestionsForSession } = await import("./tools-X5FONL4Q.js");
6495
6495
  const { getMaxVisibleItems } = await import("./settings-2WVGUPYV.js");
6496
6496
  const eventStore = getEventStore2();
6497
6497
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
@@ -6528,7 +6528,7 @@ All file and git operations should use this branch.
6528
6528
  if (!skip && typeof answer !== "string") {
6529
6529
  return res.status(400).json({ error: "answer is required when not skipping" });
6530
6530
  }
6531
- const { provideAnswer } = await import("./tools-I3BAXRVD.js");
6531
+ const { provideAnswer } = await import("./tools-X5FONL4Q.js");
6532
6532
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6533
6533
  if (!found) {
6534
6534
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -6593,7 +6593,7 @@ All file and git operations should use this branch.
6593
6593
  backend: activeProvider?.backend ?? llmClient.getBackend(),
6594
6594
  model: llmClient.getModel()
6595
6595
  };
6596
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-MTCF2EPU.js");
6596
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-DHBU7LRB.js");
6597
6597
  runAgentTurn(
6598
6598
  {
6599
6599
  sessionManager,
@@ -6631,8 +6631,8 @@ All file and git operations should use this branch.
6631
6631
  if (!session) {
6632
6632
  return res.status(404).json({ error: "Session not found" });
6633
6633
  }
6634
- const { stopSessionExecution } = await import("./chat-handler-5OJMACXB.js");
6635
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-I3BAXRVD.js");
6634
+ const { stopSessionExecution } = await import("./chat-handler-YPWT4MAQ.js");
6635
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-X5FONL4Q.js");
6636
6636
  const queuedMessages = sessionManager.getQueueState(sessionId);
6637
6637
  sessionManager.clearMessageQueue(sessionId);
6638
6638
  stopSessionExecution(sessionId, sessionManager);
@@ -6800,7 +6800,7 @@ All file and git operations should use this branch.
6800
6800
  let visionFallback;
6801
6801
  let globalWorkdir;
6802
6802
  try {
6803
- const { loadGlobalConfig, getVisionFallback } = await import("./config-M7RDIFC5.js");
6803
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-3FKJV3KI.js");
6804
6804
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6805
6805
  const fallback = getVisionFallback(globalConfig);
6806
6806
  if (fallback) {
@@ -7000,7 +7000,7 @@ All file and git operations should use this branch.
7000
7000
  const backend = req.query["backend"];
7001
7001
  if (!url) return res.status(400).json({ error: "url is required" });
7002
7002
  try {
7003
- const { fetchModelsWithContext } = await import("./provider-manager-PBOF77RQ.js");
7003
+ const { fetchModelsWithContext } = await import("./provider-manager-EJGPSLOZ.js");
7004
7004
  const { getModelProfile: getModelProfile2 } = await import("./profiles-5J7F4BML.js");
7005
7005
  const models = await fetchModelsWithContext(
7006
7006
  url,
@@ -7070,7 +7070,7 @@ All file and git operations should use this branch.
7070
7070
  }
7071
7071
  const { getModelProfile: getModelProfile2 } = await import("./profiles-5J7F4BML.js");
7072
7072
  const { getBackendCapabilities } = await import("./backend-P3GHHLHJ.js");
7073
- const { buildNonStreamingCreateParams } = await import("./client-pure-5YE5WFJP.js");
7073
+ const { buildNonStreamingCreateParams } = await import("./client-pure-DCEZBFKW.js");
7074
7074
  const { OpenAIHttpClient } = await import("./http-client-U6DVFL7F.js");
7075
7075
  const { ensureVersionPrefix } = await import("./url-utils-SAJP7AEX.js");
7076
7076
  const profile = getModelProfile2(model);
@@ -7132,6 +7132,7 @@ All file and git operations should use this branch.
7132
7132
  model,
7133
7133
  isLocal,
7134
7134
  thinkingField,
7135
+ sendReasoningInMessages,
7135
7136
  models: modelConfigs,
7136
7137
  authAdapter,
7137
7138
  transportAdapter
@@ -7140,7 +7141,7 @@ All file and git operations should use this branch.
7140
7141
  return res.status(400).json({ error: "name, url, and backend are required" });
7141
7142
  }
7142
7143
  try {
7143
- const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-M7RDIFC5.js");
7144
+ const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-3FKJV3KI.js");
7144
7145
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7145
7146
  const providerBackend = backend;
7146
7147
  const providerModels = modelConfigs?.length ? buildModelConfigs(modelConfigs) : model ? [{ id: model, contextWindow: 2e5, source: "user" }] : [];
@@ -7151,6 +7152,7 @@ All file and git operations should use this branch.
7151
7152
  apiKey,
7152
7153
  ...isLocal !== void 0 ? { isLocal } : {},
7153
7154
  ...thinkingField ? { thinkingField } : {},
7155
+ ...sendReasoningInMessages !== void 0 ? { sendReasoningInMessages } : {},
7154
7156
  ...authAdapter ? { authAdapter } : {},
7155
7157
  ...transportAdapter ? { transportAdapter } : {},
7156
7158
  models: providerModels,
@@ -7180,7 +7182,7 @@ All file and git operations should use this branch.
7180
7182
  app.post("/api/init/config", async (req, res) => {
7181
7183
  const { workdir, visionFallback } = req.body;
7182
7184
  try {
7183
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-M7RDIFC5.js");
7185
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
7184
7186
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7185
7187
  const updatedVf = visionFallback ? { ...globalConfig.visionFallback, ...visionFallback } : globalConfig.visionFallback;
7186
7188
  const updatedConfig = {
@@ -7214,7 +7216,7 @@ All file and git operations should use this branch.
7214
7216
  }
7215
7217
  const updates = parsed.data;
7216
7218
  try {
7217
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-M7RDIFC5.js");
7219
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
7218
7220
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7219
7221
  const filteredUpdates = Object.fromEntries(Object.entries(updates).filter(([, v]) => v !== void 0));
7220
7222
  const updatedConfig = {
@@ -7255,8 +7257,8 @@ All file and git operations should use this branch.
7255
7257
  }
7256
7258
  const testConfig = parsed.data;
7257
7259
  try {
7258
- const { resolveVisionFallback } = await import("./config-M7RDIFC5.js");
7259
- const { loadGlobalConfig } = await import("./config-M7RDIFC5.js");
7260
+ const { resolveVisionFallback } = await import("./config-3FKJV3KI.js");
7261
+ const { loadGlobalConfig } = await import("./config-3FKJV3KI.js");
7260
7262
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7261
7263
  const filteredTestConfig = Object.fromEntries(Object.entries(testConfig).filter(([, v]) => v !== void 0));
7262
7264
  const testVisionFallback = {
@@ -7307,7 +7309,7 @@ All file and git operations should use this branch.
7307
7309
  });
7308
7310
  app.delete("/api/providers/:id", async (req, res) => {
7309
7311
  const { id } = req.params;
7310
- const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-M7RDIFC5.js");
7312
+ const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-3FKJV3KI.js");
7311
7313
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7312
7314
  const updatedConfig = removeProvider(globalConfig, id);
7313
7315
  await saveGlobalConfig(config3.mode ?? "production", updatedConfig, config3.globalConfigPath);
@@ -7319,7 +7321,7 @@ All file and git operations should use this branch.
7319
7321
  const { id } = req.params;
7320
7322
  const { isLocal } = req.body;
7321
7323
  try {
7322
- const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-M7RDIFC5.js");
7324
+ const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-3FKJV3KI.js");
7323
7325
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7324
7326
  const provider = globalConfig.providers.find((p) => p.id === id);
7325
7327
  if (!provider) {
@@ -7345,12 +7347,13 @@ All file and git operations should use this branch.
7345
7347
  apiKey,
7346
7348
  isLocal,
7347
7349
  thinkingField,
7350
+ sendReasoningInMessages,
7348
7351
  models: modelConfigs,
7349
7352
  authAdapter,
7350
7353
  transportAdapter
7351
7354
  } = req.body;
7352
7355
  try {
7353
- const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-M7RDIFC5.js");
7356
+ const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-3FKJV3KI.js");
7354
7357
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7355
7358
  const provider = globalConfig.providers.find((p) => p.id === id);
7356
7359
  if (!provider) {
@@ -7363,6 +7366,7 @@ All file and git operations should use this branch.
7363
7366
  if (apiKey !== void 0) updates["apiKey"] = apiKey || void 0;
7364
7367
  if (isLocal !== void 0) updates["isLocal"] = isLocal;
7365
7368
  if (thinkingField !== void 0) updates["thinkingField"] = thinkingField || void 0;
7369
+ if (sendReasoningInMessages !== void 0) updates["sendReasoningInMessages"] = sendReasoningInMessages;
7366
7370
  if (authAdapter !== void 0) updates["authAdapter"] = authAdapter || void 0;
7367
7371
  if (transportAdapter !== void 0) updates["transportAdapter"] = transportAdapter || void 0;
7368
7372
  if (modelConfigs !== void 0) {
@@ -7390,7 +7394,7 @@ All file and git operations should use this branch.
7390
7394
  return res.status(400).json({ error: result.error });
7391
7395
  }
7392
7396
  const llmClient = getLLMClient();
7393
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-M7RDIFC5.js");
7397
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-3FKJV3KI.js");
7394
7398
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7395
7399
  const updatedConfig = setDefaultModelSelection(globalConfig, id, llmClient.getModel());
7396
7400
  await saveGlobalConfig(config3.mode ?? "production", updatedConfig, config3.globalConfigPath);
@@ -7417,7 +7421,7 @@ All file and git operations should use this branch.
7417
7421
  });
7418
7422
  async function rebuildMcpTools() {
7419
7423
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-MOGEI6TP.js");
7420
- const { setMcpTools: setMcpTools2 } = await import("./tools-I3BAXRVD.js");
7424
+ const { setMcpTools: setMcpTools2 } = await import("./tools-X5FONL4Q.js");
7421
7425
  const mcpTools = createMcpTools2(mcpManager);
7422
7426
  setMcpTools2(mcpTools);
7423
7427
  }
@@ -7487,7 +7491,7 @@ All file and git operations should use this branch.
7487
7491
  };
7488
7492
  await mcpManager.addServer(name, serverCfg);
7489
7493
  const server = mcpManager.getServer(name);
7490
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-M7RDIFC5.js");
7494
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
7491
7495
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7492
7496
  const updatedMcpServers = { ...globalConfig.mcpServers ?? {}, [name]: serverCfg };
7493
7497
  await saveGlobalConfig(
@@ -7545,7 +7549,7 @@ All file and git operations should use this branch.
7545
7549
  return res.status(400).json({ error: "disabled must be a boolean" });
7546
7550
  }
7547
7551
  try {
7548
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-M7RDIFC5.js");
7552
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
7549
7553
  const { applyMcpServerUpdate } = await import("./update-server-4I6LXE5K.js");
7550
7554
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7551
7555
  const mcpServers2 = { ...globalConfig.mcpServers ?? {} };
@@ -7591,7 +7595,7 @@ All file and git operations should use this branch.
7591
7595
  return res.status(404).json({ error: `MCP server '${name}' not found` });
7592
7596
  }
7593
7597
  mcpManager.removeServer(name);
7594
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-M7RDIFC5.js");
7598
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
7595
7599
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7596
7600
  const updatedMcpServers = { ...globalConfig.mcpServers ?? {} };
7597
7601
  delete updatedMcpServers[name];
@@ -7621,7 +7625,7 @@ All file and git operations should use this branch.
7621
7625
  await mcpManager.setToolEnabled(name, toolName, enabled);
7622
7626
  const server = mcpManager.getServer(name);
7623
7627
  if (server) {
7624
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-M7RDIFC5.js");
7628
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
7625
7629
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7626
7630
  const mcpServers2 = { ...globalConfig.mcpServers ?? {} };
7627
7631
  const serverCfg = mcpServers2[name];
@@ -7824,7 +7828,7 @@ All file and git operations should use this branch.
7824
7828
  const state = sessionManager.getContextState(sessionId);
7825
7829
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
7826
7830
  });
7827
- const { QueueProcessor } = await import("./processor-HX4FXDDT.js");
7831
+ const { QueueProcessor } = await import("./processor-RC3IBY2J.js");
7828
7832
  const queueProcessor = new QueueProcessor({
7829
7833
  sessionManager,
7830
7834
  providerManager,
@@ -7908,4 +7912,4 @@ export {
7908
7912
  createServerHandle,
7909
7913
  createServer
7910
7914
  };
7911
- //# sourceMappingURL=chunk-ML5ZU6VS.js.map
7915
+ //# sourceMappingURL=chunk-HGEDHHTU.js.map
@@ -104,7 +104,7 @@ function resolveAgentDef(sessionManager, sessionId) {
104
104
  }
105
105
  async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
106
106
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
107
- const { getToolRegistryForAgent } = await import("./tools-I3BAXRVD.js");
107
+ const { getToolRegistryForAgent } = await import("./tools-X5FONL4Q.js");
108
108
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
109
109
  const toolFingerprint = getToolFingerprint(tools);
110
110
  const allAgents = await loadAllAgentsDefault();
@@ -117,7 +117,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
117
117
  async function computeSessionHash(sessionManager, sessionId) {
118
118
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
119
119
  const agentDef = await resolveAgentDef(sessionManager, sessionId);
120
- const { getToolRegistryForAgent } = await import("./tools-I3BAXRVD.js");
120
+ const { getToolRegistryForAgent } = await import("./tools-X5FONL4Q.js");
121
121
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
122
122
  const toolFingerprint = getToolFingerprint(tools);
123
123
  return computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -141,4 +141,4 @@ export {
141
141
  computeSessionHash,
142
142
  applyDynamicContext
143
143
  };
144
- //# sourceMappingURL=chunk-LZW5LSVH.js.map
144
+ //# sourceMappingURL=chunk-IXFEXEUL.js.map
@@ -0,0 +1,7 @@
1
+ // src/constants.ts
2
+ var VERSION = "2.0.98";
3
+
4
+ export {
5
+ VERSION
6
+ };
7
+ //# sourceMappingURL=chunk-JYHWOFPM.js.map