openfox 2.0.122 → 2.0.124

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 (83) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/CHANGELOG.md +27 -0
  3. package/dist/{auto-config-YXNCBYEY.js → auto-config-454YE6KC.js} +24 -17
  4. package/dist/{chat-handler-JQUVSZT3.js → chat-handler-N43TBYLV.js} +29 -28
  5. package/dist/{chunk-DIALH34K.js → chunk-3B232XG4.js} +2 -2
  6. package/dist/{chunk-RMOKNQAS.js → chunk-3NMLSANH.js} +2 -2
  7. package/dist/{chunk-22D7ZR2X.js → chunk-57UCBFBD.js} +50 -37
  8. package/dist/{chunk-SCP5KBNB.js → chunk-5CCM655F.js} +149 -63
  9. package/dist/{chunk-EZ67GBEO.js → chunk-66MG44TF.js} +2 -2
  10. package/dist/{chunk-YBOU4ZFD.js → chunk-7YP4O4XE.js} +3 -3
  11. package/dist/{chunk-UJRWYZHM.js → chunk-A6EZBX62.js} +59 -23
  12. package/dist/{chunk-SLW3KKPP.js → chunk-AQBRI7TM.js} +21 -8
  13. package/dist/{chunk-OXANSWVZ.js → chunk-EHFIUXWZ.js} +2 -2
  14. package/dist/{chunk-AIXVERRI.js → chunk-FAL4WO4V.js} +6 -6
  15. package/dist/{chunk-Y7FGHKBW.js → chunk-GIJUWPRQ.js} +2 -2
  16. package/dist/chunk-ISE55FOR.js +89 -0
  17. package/dist/{chunk-6A2VIV36.js → chunk-JEZN37KV.js} +3 -3
  18. package/dist/{chunk-2N7KFNMY.js → chunk-KBESUA3W.js} +3 -3
  19. package/dist/{chunk-5A4YN6I7.js → chunk-KD4W3I6C.js} +112 -33
  20. package/dist/{chunk-UOEAKQBH.js → chunk-KGFERMCV.js} +15 -15
  21. package/dist/{chunk-FGVMRFDW.js → chunk-N2Q3KYWM.js} +2 -2
  22. package/dist/{chunk-NYQKSKDB.js → chunk-OYBUJIC3.js} +9 -1
  23. package/dist/{chunk-KDC4QHE7.js → chunk-QJNBQCAF.js} +22 -18
  24. package/dist/{chunk-I22B6KWV.js → chunk-RV5G7QQU.js} +3 -3
  25. package/dist/{chunk-ZT7YTM2U.js → chunk-RXLAFEZB.js} +4 -4
  26. package/dist/chunk-SBADOWVC.js +7 -0
  27. package/dist/{chunk-J77SLE3M.js → chunk-SYTEO5LA.js} +3 -2
  28. package/dist/{chunk-STYGFTEB.js → chunk-UGEFD67O.js} +6 -6
  29. package/dist/{chunk-POTCPZJF.js → chunk-VPRB5FNR.js} +2 -2
  30. package/dist/{chunk-WIZUASFY.js → chunk-VUBFPRKT.js} +278 -142
  31. package/dist/{chunk-YDDBPKVP.js → chunk-W4SM4FFZ.js} +15 -15
  32. package/dist/{chunk-J3IJJ55E.js → chunk-YJD5A375.js} +7 -7
  33. package/dist/{chunk-LSEHJ2WI.js → chunk-ZIL6VKLU.js} +3 -3
  34. package/dist/{chunk-LWXLNE6M.js → chunk-ZIYETXOW.js} +2 -2
  35. package/dist/cli/dev.js +1 -1
  36. package/dist/cli/index.js +1 -1
  37. package/dist/{client-JKPDMJ7S.js → client-XHJHOFMU.js} +5 -5
  38. package/dist/{compactor-MKD3CAFM.js → compactor-VTATJTPN.js} +12 -12
  39. package/dist/{dynamic-context-IWFD7U3D.js → dynamic-context-KTQCAPTK.js} +9 -9
  40. package/dist/{events-6P4TDTSD.js → events-GMHRX4LF.js} +8 -8
  41. package/dist/{folding-3LA2WX2B.js → folding-7K2GRPF4.js} +6 -6
  42. package/dist/http-client-N4ASJEKJ.js +11 -0
  43. package/dist/{inspect-proxy-IDLUAQH5.js → inspect-proxy-UKPU3Z64.js} +4 -4
  44. package/dist/launch-Z5D5YFRJ.js +53 -0
  45. package/dist/{manager-NFKTUR64.js → manager-NOKJQTTF.js} +5 -5
  46. package/dist/model-catalog-ZLOWTQA7.js +14 -0
  47. package/dist/{orchestrator-PEXLQK3T.js → orchestrator-BQBBO4US.js} +31 -30
  48. package/dist/package.json +1 -1
  49. package/dist/{path-security-JUF56IB6.js → path-security-YTPZ35SL.js} +14 -12
  50. package/dist/{platform-FM57ZJHA.js → platform-EMKWQTZX.js} +4 -4
  51. package/dist/{processor-2GEVRLJP.js → processor-WTRVYXAO.js} +39 -35
  52. package/dist/{project-creator-J4ITWDZI.js → project-creator-JF3YVQAH.js} +3 -3
  53. package/dist/{projects-FHRTSV6N.js → projects-TPSLCJP2.js} +3 -3
  54. package/dist/{protocol-BLin669D.d.ts → protocol-DCMH9Ufp.d.ts} +1 -1
  55. package/dist/provider/index.d.ts +4 -4
  56. package/dist/{provider-TAFJCWVP.js → provider-LICG53GG.js} +7 -6
  57. package/dist/{provider-manager-EDJN6ARI.js → provider-manager-3QC2MSSR.js} +7 -6
  58. package/dist/{registry-37GL3DAP.js → registry-Z4GVYFTV.js} +5 -5
  59. package/dist/{serve-3BPQGWYE.js → serve-75G5Z7UQ.js} +34 -33
  60. package/dist/server/index.d.ts +27 -6
  61. package/dist/server/index.js +31 -30
  62. package/dist/server-N3VATHIA.js +56 -0
  63. package/dist/{service-2IOCVEXQ.js → service-OURGS2SI.js} +10 -9
  64. package/dist/{session-overrides-EOKSZO2X.js → session-overrides-4WAD3X5Q.js} +7 -7
  65. package/dist/{sessions-XFNU4DZ6.js → sessions-D7VRCHQY.js} +8 -6
  66. package/dist/{settings-SYYDPV43.js → settings-VOWWO4VG.js} +3 -3
  67. package/dist/shared/index.d.ts +3 -3
  68. package/dist/{tasks-G7ACMQM2.js → tasks-4SOLTX6A.js} +11 -10
  69. package/dist/{tools-IKMNLLAY.js → tools-G44LBKD4.js} +24 -23
  70. package/dist/{types-B5_9KtfJ.d.ts → types-Cr4EgGwK.d.ts} +1 -1
  71. package/dist/{types-DeQIEC1U.d.ts → types-PAKlAzp9.d.ts} +16 -0
  72. package/dist/{update-QX6IIUKB.js → update-R2TEHD7V.js} +2 -2
  73. package/dist/web/assets/{index-D9sfxcRH.css → index-DFMllFkv.css} +1 -1
  74. package/dist/web/assets/index-GZTGHRRr.js +324 -0
  75. package/dist/web/index.html +2 -2
  76. package/dist/web/sw.js +1 -1
  77. package/dist/{workspace-ZNZFEONU.js → workspace-J3JEGF6U.js} +4 -4
  78. package/package.json +1 -1
  79. package/dist/chunk-VC3YCHDO.js +0 -7
  80. package/dist/http-client-IKOARXI7.js +0 -11
  81. package/dist/launch-FOUIDMGW.js +0 -52
  82. package/dist/server-HPIR55OH.js +0 -55
  83. package/dist/web/assets/index-CJuw9bwD.js +0 -324
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.124 - 2026-08-19
4
+
5
+ ### Enhancements
6
+
7
+ - **project_tasks list paginates** — capped at 10 results (25 max) to keep agent context lean
8
+ - **Pinned effort chips light up for any model** — the selector highlights a model's pinned effort even when it isn't the active pick
9
+
10
+ ### Bug Fixes
11
+
12
+ - **Reasoning effort options come from a curated catalog** — endpoint probing that collapsed or misdetected levels is gone
13
+ - **Qwen effort presets corrected** — qwen3.8 offers none/low/medium/xhigh (default xhigh), qwen3.5/3.6 offer none/high
14
+ - **maxTokens budget accounts for tool results** — tool-result tokens are subtracted so large outputs no longer overstate the budget
15
+ - **Context-overflow retries halve maxTokens** — retry immediately with a halved budget instead of a doomed backoff retry
16
+ - **`..` paths respect shell cd state** — relative traversals no longer trigger false outside-sandbox confirmations
17
+ - **Division expressions no longer flagged as paths** — 'length / 4' no longer trips the root-path safety check
18
+
19
+ ## 2.0.123 - 2026-08-18
20
+
21
+ ### Features
22
+
23
+ - **Reasoning effort is now a first-class citizen** — switch it per model from the model selector, with curated presets you can customize or override raw; pin it in agent overrides; see it as model:effort in message headers, turn stats and the selector; and have your picks stick as the model's default for future sessions
24
+ - **Switching reasoning effort mid-run may invalidate your cache!** — the model selector asks first, so you can keep the current effort or apply the new one
25
+
26
+ ### Enhancements
27
+
28
+ - **Task prompt auto-resizes** — save with Ctrl/Cmd+Enter, newlines via Enter/Shift+Enter, spellcheck off
29
+
3
30
  ## 2.0.122 - 2026-08-16
4
31
 
5
32
  ### Features
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.124 - 2026-08-19
4
+
5
+ ### Enhancements
6
+
7
+ - **project_tasks list paginates** — capped at 10 results (25 max) to keep agent context lean
8
+ - **Pinned effort chips light up for any model** — the selector highlights a model's pinned effort even when it isn't the active pick
9
+
10
+ ### Bug Fixes
11
+
12
+ - **Reasoning effort options come from a curated catalog** — endpoint probing that collapsed or misdetected levels is gone
13
+ - **Qwen effort presets corrected** — qwen3.8 offers none/low/medium/xhigh (default xhigh), qwen3.5/3.6 offer none/high
14
+ - **maxTokens budget accounts for tool results** — tool-result tokens are subtracted so large outputs no longer overstate the budget
15
+ - **Context-overflow retries halve maxTokens** — retry immediately with a halved budget instead of a doomed backoff retry
16
+ - **`..` paths respect shell cd state** — relative traversals no longer trigger false outside-sandbox confirmations
17
+ - **Division expressions no longer flagged as paths** — 'length / 4' no longer trips the root-path safety check
18
+
19
+ ## 2.0.123 - 2026-08-18
20
+
21
+ ### Features
22
+
23
+ - **Reasoning effort is now a first-class citizen** — switch it per model from the model selector, with curated presets you can customize or override raw; pin it in agent overrides; see it as model:effort in message headers, turn stats and the selector; and have your picks stick as the model's default for future sessions
24
+ - **Switching reasoning effort mid-run may invalidate your cache!** — the model selector asks first, so you can keep the current effort or apply the new one
25
+
26
+ ### Enhancements
27
+
28
+ - **Task prompt auto-resizes** — save with Ctrl/Cmd+Enter, newlines via Enter/Shift+Enter, spellcheck off
29
+
3
30
  ## 2.0.122 - 2026-08-16
4
31
 
5
32
  ### Features
@@ -4,12 +4,20 @@ import {
4
4
  import {
5
5
  ensureVersionPrefix
6
6
  } from "./chunk-HNCM3D7Y.js";
7
+ import {
8
+ getCatalogEntry
9
+ } from "./chunk-ISE55FOR.js";
7
10
  import {
8
11
  logger
9
12
  } from "./chunk-K44MW7JJ.js";
10
13
  import "./chunk-YLJ4XMA6.js";
11
14
 
12
15
  // src/server/providers/auto-config.ts
16
+ function buildAuthHeaders(apiKey) {
17
+ const headers = { "Content-Type": "application/json" };
18
+ if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
19
+ return headers;
20
+ }
13
21
  var NON_THINKING_COMBOS = [
14
22
  {},
15
23
  { reasoning_effort: "none" },
@@ -56,9 +64,10 @@ async function detectModelInfo(baseUrl, apiKey, backend, modelId) {
56
64
  }
57
65
  }
58
66
  async function detectVllmInfo(baseUrl, apiKey, modelId) {
59
- const headers = { "Content-Type": "application/json" };
60
- if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
61
- const response = await fetch(`${ensureVersionPrefix(baseUrl)}/models`, { headers, signal: AbortSignal.timeout(5e3) });
67
+ const response = await fetch(`${ensureVersionPrefix(baseUrl)}/models`, {
68
+ headers: buildAuthHeaders(apiKey),
69
+ signal: AbortSignal.timeout(5e3)
70
+ });
62
71
  if (!response.ok) throw new Error(`HTTP ${response.status}`);
63
72
  const data = await response.json();
64
73
  const model = data.data?.find((m) => m.id === modelId);
@@ -109,8 +118,6 @@ async function detectLmstudioInfo(baseUrl, modelId) {
109
118
  throw new Error("No context_length in LM Studio response");
110
119
  }
111
120
  async function probeCombo(baseUrl, apiKey, model, combo, signal) {
112
- const headers = { "Content-Type": "application/json" };
113
- if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
114
121
  const body = {
115
122
  model,
116
123
  messages: [{ role: "user", content: "say hi in one word" }],
@@ -121,7 +128,7 @@ async function probeCombo(baseUrl, apiKey, model, combo, signal) {
121
128
  try {
122
129
  const response = await fetch(`${ensureVersionPrefix(baseUrl)}/chat/completions`, {
123
130
  method: "POST",
124
- headers,
131
+ headers: buildAuthHeaders(apiKey),
125
132
  body: JSON.stringify(body),
126
133
  signal
127
134
  });
@@ -157,12 +164,10 @@ async function probeCombos(baseUrl, apiKey, model, combos) {
157
164
  return null;
158
165
  }
159
166
  async function probeReasoningInMessages(baseUrl, apiKey, model) {
160
- const headers = { "Content-Type": "application/json" };
161
- if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
162
167
  try {
163
168
  const response = await fetch(`${ensureVersionPrefix(baseUrl)}/chat/completions`, {
164
169
  method: "POST",
165
- headers,
170
+ headers: buildAuthHeaders(apiKey),
166
171
  body: JSON.stringify({
167
172
  model,
168
173
  messages: [
@@ -206,7 +211,7 @@ var DUMMY_TOOL = {
206
211
  parameters: { type: "object", properties: {}, required: [] }
207
212
  }
208
213
  };
209
- async function probeChatCompletions(baseUrl, headers, model, samplingParams) {
214
+ async function probeChatCompletions(baseUrl, apiKey, model, samplingParams) {
210
215
  const body = {
211
216
  model,
212
217
  messages: [{ role: "user", content: "say hi in one word" }],
@@ -219,7 +224,7 @@ async function probeChatCompletions(baseUrl, headers, model, samplingParams) {
219
224
  try {
220
225
  const response = await fetch(`${ensureVersionPrefix(baseUrl)}/chat/completions`, {
221
226
  method: "POST",
222
- headers,
227
+ headers: buildAuthHeaders(apiKey),
223
228
  body: JSON.stringify(body),
224
229
  signal: AbortSignal.timeout(15e3)
225
230
  });
@@ -230,14 +235,12 @@ async function probeChatCompletions(baseUrl, headers, model, samplingParams) {
230
235
  }
231
236
  }
232
237
  async function probeRejectedParams(baseUrl, apiKey, model, backend) {
233
- const headers = { "Content-Type": "application/json" };
234
- if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
235
238
  const candidates = [...STANDARD_PARAMS];
236
239
  if (["openai", "anthropic", "ollama"].includes(backend)) {
237
240
  const idx = candidates.indexOf("top_k");
238
241
  if (idx !== -1) candidates.splice(idx, 1);
239
242
  }
240
- const control = await probeChatCompletions(baseUrl, headers, model, []);
243
+ const control = await probeChatCompletions(baseUrl, apiKey, model, []);
241
244
  if (!control.ok) {
242
245
  logger.debug("Auto-config: rejection-probe control failed, skipping param detection", {
243
246
  model,
@@ -248,7 +251,7 @@ async function probeRejectedParams(baseUrl, apiKey, model, backend) {
248
251
  const rejected = [];
249
252
  const remaining = [...candidates];
250
253
  while (remaining.length > 0) {
251
- const probe = await probeChatCompletions(baseUrl, headers, model, remaining);
254
+ const probe = await probeChatCompletions(baseUrl, apiKey, model, remaining);
252
255
  if (probe.ok) break;
253
256
  if (probe.status === 400) {
254
257
  const rejectedParam = extractRejectedParam(probe.errorText);
@@ -278,6 +281,8 @@ async function autoConfig(input) {
278
281
  source: contextSource,
279
282
  supportsVision
280
283
  } = await detectModelInfo(baseUrl, apiKey, backend, model.id);
284
+ const catalog = getCatalogEntry(model.id);
285
+ const reasoningEfforts = catalog?.reasoningEfforts;
281
286
  const [thinkingConfig, nonThinkingConfig, rejectedParams] = await Promise.all([
282
287
  probeCombos(baseUrl, apiKey, model.id, THINKING_COMBOS),
283
288
  probeCombos(baseUrl, apiKey, model.id, NON_THINKING_COMBOS),
@@ -292,7 +297,9 @@ async function autoConfig(input) {
292
297
  thinkingConfig,
293
298
  nonThinkingConfig,
294
299
  ...sendReasoningInMessages !== void 0 ? { sendReasoningInMessages } : {},
295
- ...rejectedParams.length > 0 ? { rejectedParams } : {}
300
+ ...rejectedParams.length > 0 ? { rejectedParams } : {},
301
+ ...reasoningEfforts ? { reasoningEfforts } : {},
302
+ ...catalog?.defaultReasoningEffort ? { defaultReasoningEffort: catalog.defaultReasoningEffort } : {}
296
303
  });
297
304
  }
298
305
  return { models: results };
@@ -300,4 +307,4 @@ async function autoConfig(input) {
300
307
  export {
301
308
  autoConfig
302
309
  };
303
- //# sourceMappingURL=auto-config-YXNCBYEY.js.map
310
+ //# sourceMappingURL=auto-config-454YE6KC.js.map
@@ -2,52 +2,53 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-YDDBPKVP.js";
5
+ } from "./chunk-W4SM4FFZ.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-KDC4QHE7.js";
9
- import "./chunk-AIXVERRI.js";
10
- import "./chunk-SCP5KBNB.js";
11
- import "./chunk-LSEHJ2WI.js";
12
- import "./chunk-OXANSWVZ.js";
13
- import "./chunk-I22B6KWV.js";
8
+ } from "./chunk-QJNBQCAF.js";
9
+ import "./chunk-5CCM655F.js";
10
+ import "./chunk-FAL4WO4V.js";
11
+ import "./chunk-ZIL6VKLU.js";
12
+ import "./chunk-62GUO2EG.js";
13
+ import "./chunk-GIJUWPRQ.js";
14
+ import "./chunk-EHFIUXWZ.js";
15
+ import "./chunk-RV5G7QQU.js";
14
16
  import "./chunk-I72ACQ6R.js";
15
17
  import "./chunk-JE7LW7Y6.js";
16
18
  import "./chunk-OAN4BXEW.js";
17
- import "./chunk-RMOKNQAS.js";
19
+ import "./chunk-3NMLSANH.js";
18
20
  import "./chunk-J7GAZGZT.js";
19
- import "./chunk-STYGFTEB.js";
20
- import "./chunk-YBOU4ZFD.js";
21
- import "./chunk-5A4YN6I7.js";
21
+ import "./chunk-UGEFD67O.js";
22
+ import "./chunk-7YP4O4XE.js";
23
+ import "./chunk-KD4W3I6C.js";
24
+ import {
25
+ getEventStore
26
+ } from "./chunk-YJD5A375.js";
27
+ import "./chunk-ZIYETXOW.js";
28
+ import "./chunk-AQBRI7TM.js";
22
29
  import {
23
30
  createChatMessageMessage,
24
31
  createPhaseChangedMessage,
25
32
  createSessionRunningMessage
26
33
  } from "./chunk-XAAEP5XM.js";
34
+ import "./chunk-66MG44TF.js";
27
35
  import "./chunk-JURM3RPZ.js";
28
- import "./chunk-62GUO2EG.js";
29
- import "./chunk-Y7FGHKBW.js";
30
- import {
31
- getEventStore
32
- } from "./chunk-J3IJJ55E.js";
33
- import "./chunk-SLW3KKPP.js";
34
- import "./chunk-EZ67GBEO.js";
35
- import "./chunk-LWXLNE6M.js";
36
36
  import "./chunk-LCLH6ZUL.js";
37
- import "./chunk-2N7KFNMY.js";
38
- import "./chunk-OSXPQSLW.js";
39
- import "./chunk-DIALH34K.js";
40
- import "./chunk-UJRWYZHM.js";
37
+ import "./chunk-A6EZBX62.js";
41
38
  import "./chunk-K2QKX4ZJ.js";
42
39
  import "./chunk-J2GP3J3X.js";
43
- import "./chunk-J77SLE3M.js";
40
+ import "./chunk-KBESUA3W.js";
41
+ import "./chunk-OSXPQSLW.js";
42
+ import "./chunk-3B232XG4.js";
43
+ import "./chunk-SYTEO5LA.js";
44
44
  import "./chunk-GJL3QSMP.js";
45
45
  import "./chunk-AZHWLLPP.js";
46
46
  import "./chunk-HNCM3D7Y.js";
47
47
  import "./chunk-MIPQOHWS.js";
48
- import "./chunk-POTCPZJF.js";
49
- import "./chunk-FGVMRFDW.js";
50
- import "./chunk-NYQKSKDB.js";
48
+ import "./chunk-VPRB5FNR.js";
49
+ import "./chunk-N2Q3KYWM.js";
50
+ import "./chunk-OYBUJIC3.js";
51
+ import "./chunk-ISE55FOR.js";
51
52
  import "./chunk-K44MW7JJ.js";
52
53
  import "./chunk-KSDWQ6IZ.js";
53
54
  import "./chunk-KSXCOHHW.js";
@@ -173,4 +174,4 @@ export {
173
174
  startChatSession,
174
175
  stopSessionExecution
175
176
  };
176
- //# sourceMappingURL=chat-handler-JQUVSZT3.js.map
177
+ //# sourceMappingURL=chat-handler-N43TBYLV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getDatabase
3
- } from "./chunk-NYQKSKDB.js";
3
+ } from "./chunk-OYBUJIC3.js";
4
4
 
5
5
  // src/server/db/projects.ts
6
6
  function createProject(name, workdir) {
@@ -144,4 +144,4 @@ export {
144
144
  toggleStar,
145
145
  getProjectDefaultAgent
146
146
  };
147
- //# sourceMappingURL=chunk-DIALH34K.js.map
147
+ //# sourceMappingURL=chunk-3B232XG4.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getProjectByWorkdir,
6
6
  updateProject
7
- } from "./chunk-DIALH34K.js";
7
+ } from "./chunk-3B232XG4.js";
8
8
  import {
9
9
  logger
10
10
  } from "./chunk-K44MW7JJ.js";
@@ -333,4 +333,4 @@ export {
333
333
  deleteWorkspace,
334
334
  isGitRepository
335
335
  };
336
- //# sourceMappingURL=chunk-RMOKNQAS.js.map
336
+ //# sourceMappingURL=chunk-3NMLSANH.js.map
@@ -2,30 +2,45 @@ import {
2
2
  generateSessionNameForSession,
3
3
  getSessionMessageCount,
4
4
  needsNameGeneration
5
- } from "./chunk-YDDBPKVP.js";
5
+ } from "./chunk-W4SM4FFZ.js";
6
6
  import {
7
7
  launchWorkflowRun
8
- } from "./chunk-UOEAKQBH.js";
8
+ } from "./chunk-KGFERMCV.js";
9
9
  import {
10
10
  runChatTurn
11
- } from "./chunk-KDC4QHE7.js";
11
+ } from "./chunk-QJNBQCAF.js";
12
+ import {
13
+ devServerManager
14
+ } from "./chunk-5CCM655F.js";
12
15
  import {
13
16
  applyDynamicContext,
14
17
  computeSessionHash,
15
18
  computeUnifiedDiff
16
- } from "./chunk-AIXVERRI.js";
19
+ } from "./chunk-FAL4WO4V.js";
17
20
  import {
18
- devServerManager
19
- } from "./chunk-SCP5KBNB.js";
21
+ appendCompactionPrompt
22
+ } from "./chunk-JEZN37KV.js";
23
+ import {
24
+ hasRecentLLMFailure,
25
+ interruptLLMRetryWait
26
+ } from "./chunk-62GUO2EG.js";
20
27
  import {
21
28
  onProcessEvent
22
- } from "./chunk-I22B6KWV.js";
29
+ } from "./chunk-RV5G7QQU.js";
23
30
  import {
24
31
  killProcessTree
25
32
  } from "./chunk-I72ACQ6R.js";
26
33
  import {
27
34
  gitSpawnEnv
28
35
  } from "./chunk-J7GAZGZT.js";
36
+ import {
37
+ combineEventsWithSnapshot,
38
+ getEventStore
39
+ } from "./chunk-YJD5A375.js";
40
+ import {
41
+ buildMessagesFromStoredEvents,
42
+ foldPendingConfirmations
43
+ } from "./chunk-ZIYETXOW.js";
29
44
  import {
30
45
  createChatErrorMessage,
31
46
  createChatMessageMessage,
@@ -41,34 +56,19 @@ import {
41
56
  serializeServerMessage,
42
57
  storedEventToServerMessage
43
58
  } from "./chunk-XAAEP5XM.js";
59
+ import {
60
+ getPlatformShell
61
+ } from "./chunk-66MG44TF.js";
44
62
  import {
45
63
  getPendingQuestionsForSession,
46
64
  provideAnswer
47
65
  } from "./chunk-JURM3RPZ.js";
48
- import {
49
- appendCompactionPrompt
50
- } from "./chunk-6A2VIV36.js";
51
- import {
52
- hasRecentLLMFailure,
53
- interruptLLMRetryWait
54
- } from "./chunk-62GUO2EG.js";
55
- import {
56
- combineEventsWithSnapshot,
57
- getEventStore
58
- } from "./chunk-J3IJJ55E.js";
59
- import {
60
- getPlatformShell
61
- } from "./chunk-EZ67GBEO.js";
62
- import {
63
- buildMessagesFromStoredEvents,
64
- foldPendingConfirmations
65
- } from "./chunk-LWXLNE6M.js";
66
66
  import {
67
67
  getRuntimeConfig
68
- } from "./chunk-2N7KFNMY.js";
68
+ } from "./chunk-KBESUA3W.js";
69
69
  import {
70
70
  getMaxVisibleItems
71
- } from "./chunk-FGVMRFDW.js";
71
+ } from "./chunk-N2Q3KYWM.js";
72
72
  import {
73
73
  logger
74
74
  } from "./chunk-K44MW7JJ.js";
@@ -610,11 +610,13 @@ function resolveStatsIdentity(llmClient, getActiveProvider) {
610
610
  const provider = getActiveProvider?.();
611
611
  const model = llmClient.getModel();
612
612
  const backend = provider?.backend ?? (llmClient.getBackend() === "unknown" ? "unknown" : llmClient.getBackend());
613
+ const reasoningEffort = llmClient.getReasoningEffort?.();
613
614
  return {
614
615
  providerId: provider?.id ?? `provider:${model}`,
615
616
  providerName: provider?.name ?? "Unknown Provider",
616
617
  backend,
617
- model
618
+ model,
619
+ ...reasoningEffort ? { reasoningEffort } : {}
618
620
  };
619
621
  }
620
622
  function addUserMessageAndBroadcast(sessionManager, sessionId, message, broadcastFn) {
@@ -675,7 +677,7 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
675
677
  }
676
678
  const resolvedModel = providerManager.resolveModel(effective.providerId, effective.model);
677
679
  const effectiveModel = resolvedModel ?? effective.model;
678
- const cacheKey = `${effective.providerId}:${effectiveModel}`;
680
+ const cacheKey = `${effective.providerId}:${effectiveModel}:${effective.reasoningEffort ?? ""}`;
679
681
  const cached = sessionLLMClients.get(sessionId);
680
682
  if (cached && cached.key === cacheKey) {
681
683
  return cached.client;
@@ -688,13 +690,13 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
688
690
  });
689
691
  const session2 = sessionManager.getSession(sessionId);
690
692
  if (session2?.providerId === effective.providerId) {
691
- sessionManager.setSessionProvider(sessionId, null, null, false);
693
+ sessionManager.setSessionProvider(sessionId, null, null, false, null);
692
694
  sessionManager.setSessionProviderActive(sessionId, true);
693
695
  }
694
696
  sessionLLMClients.delete(sessionId);
695
697
  return getLLMClient();
696
698
  }
697
- const client = providerManager.createClient(effective.providerId, effectiveModel);
699
+ const client = providerManager.createClient(effective.providerId, effectiveModel, effective.reasoningEffort);
698
700
  if (!client) {
699
701
  logger.warn("Could not create session provider client, falling back to global", {
700
702
  sessionId,
@@ -706,9 +708,18 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
706
708
  const concreteModel = client.getModel();
707
709
  const session = sessionManager.getSession(sessionId);
708
710
  if (session?.providerId === effective.providerId && session.providerModel === effective.model && session.providerModel !== concreteModel) {
709
- sessionManager.setSessionProvider(sessionId, effective.providerId, concreteModel);
711
+ sessionManager.setSessionProvider(
712
+ sessionId,
713
+ effective.providerId,
714
+ concreteModel,
715
+ void 0,
716
+ effective.reasoningEffort
717
+ );
710
718
  }
711
- sessionLLMClients.set(sessionId, { key: `${effective.providerId}:${concreteModel}`, client });
719
+ sessionLLMClients.set(sessionId, {
720
+ key: `${effective.providerId}:${concreteModel}:${effective.reasoningEffort ?? ""}`,
721
+ client
722
+ });
712
723
  return client;
713
724
  }
714
725
  function getSessionStatsIdentity(sessionId) {
@@ -718,11 +729,13 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
718
729
  }
719
730
  const provider = providerManager.getProviders().find((p) => p.id === effective.providerId);
720
731
  const client = getSessionLLMClient(sessionId);
732
+ const reasoningEffort = client.getReasoningEffort?.();
721
733
  return {
722
734
  providerId: provider?.id ?? effective.providerId,
723
735
  providerName: provider?.name ?? "Unknown Provider",
724
736
  backend: provider?.backend ?? client.getBackend(),
725
- model: client.getModel()
737
+ model: client.getModel(),
738
+ ...reasoningEffort ? { reasoningEffort } : {}
726
739
  };
727
740
  }
728
741
  const isSubscribedToSession = (client, sessionId) => {
@@ -1286,8 +1299,8 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1286
1299
  }
1287
1300
  const session = sessionManager.requireSession(sessionId);
1288
1301
  try {
1289
- const { buildCachedPrompt } = await import("./dynamic-context-IWFD7U3D.js");
1290
- const allAgents = await import("./registry-37GL3DAP.js");
1302
+ const { buildCachedPrompt } = await import("./dynamic-context-KTQCAPTK.js");
1303
+ const allAgents = await import("./registry-Z4GVYFTV.js");
1291
1304
  const agentDef = allAgents.findAgentById(session.mode, await allAgents.loadAllAgentsDefault()) ?? allAgents.findAgentById("planner", await allAgents.loadAllAgentsDefault());
1292
1305
  const modelName = session.providerModel ?? _providerManager?.getCurrentModel();
1293
1306
  const { systemPrompt: newPrompt, hash: newHash } = await buildCachedPrompt(
@@ -1611,4 +1624,4 @@ export {
1611
1624
  signalMcpReady,
1612
1625
  createWebSocketServer
1613
1626
  };
1614
- //# sourceMappingURL=chunk-22D7ZR2X.js.map
1627
+ //# sourceMappingURL=chunk-57UCBFBD.js.map