openfox 2.0.139 → 2.0.141

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 (59) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/CHANGELOG.md +31 -0
  3. package/dist/{backend-24FTDSHF.js → backend-EPISSWLB.js} +2 -2
  4. package/dist/{chat-handler-KGITQAXC.js → chat-handler-F7QRNO2E.js} +16 -16
  5. package/dist/{chunk-JTR3PC5I.js → chunk-2OTUYNXD.js} +2 -2
  6. package/dist/{chunk-AM5FAZJK.js → chunk-BB67GW5P.js} +7 -7
  7. package/dist/{chunk-YIEIVHCQ.js → chunk-CEEBKCGX.js} +5 -4
  8. package/dist/{chunk-7OHSAZLF.js → chunk-DBF5GKZF.js} +14 -16
  9. package/dist/{chunk-LSO3IGJ4.js → chunk-EE6VFEE6.js} +2 -2
  10. package/dist/{chunk-FIEFBRTQ.js → chunk-FBOIDBPA.js} +2 -2
  11. package/dist/{chunk-TG65PHHY.js → chunk-G7BQWMV7.js} +3 -3
  12. package/dist/{chunk-EJ5GFSD4.js → chunk-H7YL7PH3.js} +8 -4
  13. package/dist/{chunk-MAUQ6AW4.js → chunk-IZVIN7XC.js} +3 -3
  14. package/dist/chunk-LDWWVUW7.js +7 -0
  15. package/dist/{chunk-N4RAVCLZ.js → chunk-NDAXMOD2.js} +14 -12
  16. package/dist/{chunk-HEYU7FAY.js → chunk-OA7KBQ2O.js} +7 -5
  17. package/dist/{chunk-TVSIWRKE.js → chunk-PS5CHS7S.js} +11 -11
  18. package/dist/{chunk-CXB4HJAM.js → chunk-RCEGPT57.js} +4 -4
  19. package/dist/{chunk-EXQI5TVW.js → chunk-RHUZLWZV.js} +4 -4
  20. package/dist/{chunk-C543DUKL.js → chunk-SKHU4M6L.js} +78 -72
  21. package/dist/{chunk-VCLAPTWM.js → chunk-SSHXYKW3.js} +34 -9
  22. package/dist/{chunk-22DV5XO7.js → chunk-TJOKDC34.js} +2 -2
  23. package/dist/{chunk-EGF3PREY.js → chunk-UJO67GFD.js} +7 -7
  24. package/dist/{chunk-AKWJMMEJ.js → chunk-VLQ6BMU7.js} +7 -2
  25. package/dist/{chunk-RG326HS4.js → chunk-YFTCFJJM.js} +44 -12
  26. package/dist/cli/dev.js +1 -1
  27. package/dist/cli/index.js +1 -1
  28. package/dist/{client-6KC6SP2U.js → client-KJS7QIIV.js} +4 -4
  29. package/dist/{compactor-T7S4DIR3.js → compactor-QDTK3SZI.js} +6 -6
  30. package/dist/{describe-image-TQOD52IC.js → describe-image-UFOHQIPB.js} +5 -5
  31. package/dist/{dynamic-context-3MAA4AQR.js → dynamic-context-UEC6MMEV.js} +4 -4
  32. package/dist/{events-ZLP5V2YU.js → events-73MLUDTX.js} +3 -3
  33. package/dist/{export-import-ZJFYZJOP.js → export-import-7I7EJKTE.js} +4 -4
  34. package/dist/{http-client-VMRQHMF7.js → http-client-JVJ43TBY.js} +2 -2
  35. package/dist/{launch-73LDMGCT.js → launch-77CO4C7W.js} +16 -16
  36. package/dist/{orchestrator-MMHV6SZY.js → orchestrator-IRUEM4R4.js} +15 -15
  37. package/dist/package.json +1 -1
  38. package/dist/{path-security-V3XALT5E.js → path-security-MQXMTFRU.js} +4 -4
  39. package/dist/{processor-2M7N26QG.js → processor-VMUKAMG6.js} +15 -15
  40. package/dist/provider/index.d.ts +2 -2
  41. package/dist/{provider-MEENS4SB.js → provider-7LNTLWRB.js} +5 -5
  42. package/dist/{provider-manager-3MV7KDAD.js → provider-manager-TV5I5YJH.js} +5 -5
  43. package/dist/{serve-FN5XKUTC.js → serve-HTJREJEC.js} +21 -21
  44. package/dist/server/index.d.ts +4 -4
  45. package/dist/server/index.js +20 -20
  46. package/dist/{server-B4AJ7ETE.js → server-5FECIKQK.js} +19 -19
  47. package/dist/{service-JL55SFPL.js → service-7QKWUNU4.js} +6 -6
  48. package/dist/{session-overrides-7OPGV7CQ.js → session-overrides-WYOY7PVC.js} +3 -3
  49. package/dist/{sessions-VHS47DHO.js → sessions-U6D2T5QP.js} +2 -2
  50. package/dist/{tasks-ZMJCHW7E.js → tasks-E7EG7344.js} +6 -6
  51. package/dist/{tools-LZHSSSK4.js → tools-F4COIAZR.js} +13 -13
  52. package/dist/{types-CmiWoQ7p.d.ts → types-ofYNpiqi.d.ts} +2 -0
  53. package/dist/{update-L2XK6UDC.js → update-5TGZTHLD.js} +2 -2
  54. package/dist/web/assets/{index-D3bx1-1j.css → index-2WvLd7SC.css} +1 -1
  55. package/dist/web/assets/{index-dJREs6rO.js → index-A0-uewf7.js} +79 -79
  56. package/dist/web/index.html +6 -3
  57. package/dist/web/sw.js +1 -1
  58. package/package.json +1 -1
  59. package/dist/chunk-Z7MGLDLK.js +0 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.141 - 2026-09-09
4
+
5
+ ### Enhancements
6
+
7
+ - **Homepage lists your 20 most recent sessions** — flat across all projects, sorted by last activity, with live status dots and links that open in a new tab; running sessions stay pinned so active work never drops off.
8
+ - **Projects section decluttered** — cards now sort starred-first and hold no sessions; tasks and new-session actions stay one click away.
9
+ - **Send and pause stay reachable on mobile** — the send, pause, and stop buttons now show while the agent is running instead of hiding.
10
+
11
+ ### Bug Fixes
12
+
13
+ - **Git --no-verify confirmation can no longer be skipped** — a semicolon, pipe, or `&&` inside a quoted commit message used to orphan the flag and silently bypass the confirmation; detection is now quote-aware.
14
+ - **Live task-board sync reaches every window** — task updates are now broadcast to all windows, so boards without an active session no longer go stale.
15
+ - **MCP servers connect once the HTTP server is listening** — OpenFox's self-referencing MCP entry no longer races startup and lands in a permanent error state.
16
+
17
+ ## 2.0.140 - 2026-09-08
18
+
19
+ ### Features
20
+
21
+ - **Authenticated Ollama proxies** — Ollama behind OpenWebUI or any Bearer-auth proxy now works when an API key is configured
22
+
23
+ ### Enhancements
24
+
25
+ - **Refined mobile interface** — composer expands full-height with the keyboard, send/stop become icon pills, and the footer rebalances (agent + danger on top, MCP + model below)
26
+ - **Model names truncate on narrow screens** — no more overflowing the composer
27
+
28
+ ### Bug Fixes
29
+
30
+ - **MCP dropdown stays in view** — opens as a centered modal on touch and left-aligns on narrow windows instead of overflowing
31
+ - **iOS no longer auto-zooms into the composer** — input fields keep a comfortable size on focus
32
+ - **opencode.ai providers work reliably** — chain-of-thought is no longer echoed into assistant history (fixing HTTP 400 on multi-turn thinking requests), and stable x-opencode-session headers restore prompt caching
33
+
3
34
  ## 2.0.139 - 2026-09-06
4
35
 
5
36
  ### Features
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.141 - 2026-09-09
4
+
5
+ ### Enhancements
6
+
7
+ - **Homepage lists your 20 most recent sessions** — flat across all projects, sorted by last activity, with live status dots and links that open in a new tab; running sessions stay pinned so active work never drops off.
8
+ - **Projects section decluttered** — cards now sort starred-first and hold no sessions; tasks and new-session actions stay one click away.
9
+ - **Send and pause stay reachable on mobile** — the send, pause, and stop buttons now show while the agent is running instead of hiding.
10
+
11
+ ### Bug Fixes
12
+
13
+ - **Git --no-verify confirmation can no longer be skipped** — a semicolon, pipe, or `&&` inside a quoted commit message used to orphan the flag and silently bypass the confirmation; detection is now quote-aware.
14
+ - **Live task-board sync reaches every window** — task updates are now broadcast to all windows, so boards without an active session no longer go stale.
15
+ - **MCP servers connect once the HTTP server is listening** — OpenFox's self-referencing MCP entry no longer races startup and lands in a permanent error state.
16
+
17
+ ## 2.0.140 - 2026-09-08
18
+
19
+ ### Features
20
+
21
+ - **Authenticated Ollama proxies** — Ollama behind OpenWebUI or any Bearer-auth proxy now works when an API key is configured
22
+
23
+ ### Enhancements
24
+
25
+ - **Refined mobile interface** — composer expands full-height with the keyboard, send/stop become icon pills, and the footer rebalances (agent + danger on top, MCP + model below)
26
+ - **Model names truncate on narrow screens** — no more overflowing the composer
27
+
28
+ ### Bug Fixes
29
+
30
+ - **MCP dropdown stays in view** — opens as a centered modal on touch and left-aligns on narrow windows instead of overflowing
31
+ - **iOS no longer auto-zooms into the composer** — input fields keep a comfortable size on focus
32
+ - **opencode.ai providers work reliably** — chain-of-thought is no longer echoed into assistant history (fixing HTTP 400 on multi-turn thinking requests), and stable x-opencode-session headers restore prompt caching
33
+
3
34
  ## 2.0.139 - 2026-09-06
4
35
 
5
36
  ### Features
@@ -3,7 +3,7 @@ import {
3
3
  detectProviderDefaultsFromUrl,
4
4
  getBackendCapabilities,
5
5
  getBackendDisplayName
6
- } from "./chunk-AKWJMMEJ.js";
6
+ } from "./chunk-VLQ6BMU7.js";
7
7
  import "./chunk-YLJ4XMA6.js";
8
8
  export {
9
9
  detectBackendFromUrl,
@@ -11,4 +11,4 @@ export {
11
11
  getBackendCapabilities,
12
12
  getBackendDisplayName
13
13
  };
14
- //# sourceMappingURL=backend-24FTDSHF.js.map
14
+ //# sourceMappingURL=backend-EPISSWLB.js.map
@@ -2,20 +2,20 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-YIEIVHCQ.js";
5
+ } from "./chunk-CEEBKCGX.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-AM5FAZJK.js";
9
- import "./chunk-CXB4HJAM.js";
10
- import "./chunk-N4RAVCLZ.js";
8
+ } from "./chunk-BB67GW5P.js";
9
+ import "./chunk-RCEGPT57.js";
10
+ import "./chunk-NDAXMOD2.js";
11
11
  import "./chunk-CRJ5J7U5.js";
12
12
  import "./chunk-XE6UC5Z3.js";
13
13
  import "./chunk-J7GAZGZT.js";
14
- import "./chunk-22DV5XO7.js";
15
- import "./chunk-FIEFBRTQ.js";
16
- import "./chunk-MAUQ6AW4.js";
14
+ import "./chunk-TJOKDC34.js";
15
+ import "./chunk-FBOIDBPA.js";
16
+ import "./chunk-IZVIN7XC.js";
17
17
  import "./chunk-JLHYB445.js";
18
- import "./chunk-HEYU7FAY.js";
18
+ import "./chunk-OA7KBQ2O.js";
19
19
  import "./chunk-GKRYQ56N.js";
20
20
  import "./chunk-LW6MMSTD.js";
21
21
  import "./chunk-UA2ATO3B.js";
@@ -23,12 +23,12 @@ import "./chunk-I72ACQ6R.js";
23
23
  import "./chunk-VIJVLLPT.js";
24
24
  import "./chunk-OAN4BXEW.js";
25
25
  import "./chunk-V5AC2TV7.js";
26
- import "./chunk-RG326HS4.js";
26
+ import "./chunk-YFTCFJJM.js";
27
27
  import {
28
28
  getEventStore
29
- } from "./chunk-JTR3PC5I.js";
29
+ } from "./chunk-2OTUYNXD.js";
30
30
  import "./chunk-AE2IBEUH.js";
31
- import "./chunk-7OHSAZLF.js";
31
+ import "./chunk-DBF5GKZF.js";
32
32
  import "./chunk-4F4ARGAM.js";
33
33
  import "./chunk-OSXPQSLW.js";
34
34
  import {
@@ -38,18 +38,18 @@ import {
38
38
  } from "./chunk-OVAHNEFG.js";
39
39
  import "./chunk-LCLH6ZUL.js";
40
40
  import "./chunk-46Q2SHGJ.js";
41
- import "./chunk-EJ5GFSD4.js";
41
+ import "./chunk-H7YL7PH3.js";
42
42
  import "./chunk-OA2FURC3.js";
43
43
  import "./chunk-J2GP3J3X.js";
44
44
  import "./chunk-DPFET73G.js";
45
- import "./chunk-VCLAPTWM.js";
45
+ import "./chunk-SSHXYKW3.js";
46
46
  import "./chunk-TS5WKTFB.js";
47
- import "./chunk-AKWJMMEJ.js";
47
+ import "./chunk-VLQ6BMU7.js";
48
48
  import "./chunk-HNCM3D7Y.js";
49
49
  import "./chunk-QMU3ZY2C.js";
50
50
  import "./chunk-FSSUPWYO.js";
51
51
  import "./chunk-XG3AUMPI.js";
52
- import "./chunk-LSO3IGJ4.js";
52
+ import "./chunk-EE6VFEE6.js";
53
53
  import "./chunk-EMXMTCSY.js";
54
54
  import "./chunk-JU757HVI.js";
55
55
  import "./chunk-VKMPR25F.js";
@@ -180,4 +180,4 @@ export {
180
180
  startChatSession,
181
181
  stopSessionExecution
182
182
  };
183
- //# sourceMappingURL=chat-handler-KGITQAXC.js.map
183
+ //# sourceMappingURL=chat-handler-F7QRNO2E.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-AE2IBEUH.js";
10
10
  import {
11
11
  updateSessionMessageCount
12
- } from "./chunk-7OHSAZLF.js";
12
+ } from "./chunk-DBF5GKZF.js";
13
13
  import {
14
14
  getRuntimeConfig
15
15
  } from "./chunk-4F4ARGAM.js";
@@ -1489,4 +1489,4 @@ export {
1489
1489
  truncateSessionMessages,
1490
1490
  getRecentUserPromptsForSession
1491
1491
  };
1492
- //# sourceMappingURL=chunk-JTR3PC5I.js.map
1492
+ //# sourceMappingURL=chunk-2OTUYNXD.js.map
@@ -3,14 +3,14 @@ import {
3
3
  checkToolChangesAndInject,
4
4
  computeDynamicContextHash,
5
5
  getToolFingerprint
6
- } from "./chunk-CXB4HJAM.js";
6
+ } from "./chunk-RCEGPT57.js";
7
7
  import {
8
8
  createAssemblyResult,
9
9
  getConversationMessages,
10
10
  getToolRegistryForAgent,
11
11
  processEventsForConversation,
12
12
  runTopLevelAgentLoop
13
- } from "./chunk-N4RAVCLZ.js";
13
+ } from "./chunk-NDAXMOD2.js";
14
14
  import {
15
15
  getAllInstructions,
16
16
  getEnabledSkillMetadata
@@ -22,7 +22,7 @@ import {
22
22
  TurnMetrics,
23
23
  createChatDoneEvent,
24
24
  createMessageStartEvent
25
- } from "./chunk-HEYU7FAY.js";
25
+ } from "./chunk-OA7KBQ2O.js";
26
26
  import {
27
27
  buildAgentReminder,
28
28
  buildAgentSmallReminder,
@@ -30,12 +30,12 @@ import {
30
30
  } from "./chunk-GKRYQ56N.js";
31
31
  import {
32
32
  PathAccessDeniedError
33
- } from "./chunk-RG326HS4.js";
33
+ } from "./chunk-YFTCFJJM.js";
34
34
  import {
35
35
  getCurrentContextWindowId,
36
36
  getCurrentWindowMessageOptions,
37
37
  getEventStore
38
- } from "./chunk-JTR3PC5I.js";
38
+ } from "./chunk-2OTUYNXD.js";
39
39
  import {
40
40
  buildSnapshotFromSessionState
41
41
  } from "./chunk-AE2IBEUH.js";
@@ -355,7 +355,7 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
355
355
  getConversationMessages: buildGetConversationMessages(options.sessionId, resolveAgentClient, append),
356
356
  injectAgentReminder: () => injectAgentReminder(options.sessionId, agentDef),
357
357
  rebuildCachedContext: async () => {
358
- const { applyDynamicContext } = await import("./dynamic-context-3MAA4AQR.js");
358
+ const { applyDynamicContext } = await import("./dynamic-context-UEC6MMEV.js");
359
359
  await applyDynamicContext(options.sessionManager, options.sessionId, agentLlmClient.getModel());
360
360
  },
361
361
  ...options.initialCompacting ? { initialCompacting: true } : {},
@@ -385,4 +385,4 @@ export {
385
385
  runChatTurn,
386
386
  runAgentTurn
387
387
  };
388
- //# sourceMappingURL=chunk-AM5FAZJK.js.map
388
+ //# sourceMappingURL=chunk-BB67GW5P.js.map
@@ -4,14 +4,14 @@ import {
4
4
  import {
5
5
  combineEventsWithSnapshot,
6
6
  getEventStore
7
- } from "./chunk-JTR3PC5I.js";
7
+ } from "./chunk-2OTUYNXD.js";
8
8
  import {
9
9
  buildMessagesFromStoredEvents,
10
10
  foldPendingConfirmations
11
11
  } from "./chunk-AE2IBEUH.js";
12
12
  import {
13
13
  updateSessionMetadata
14
- } from "./chunk-7OHSAZLF.js";
14
+ } from "./chunk-DBF5GKZF.js";
15
15
  import {
16
16
  getRuntimeConfig
17
17
  } from "./chunk-4F4ARGAM.js";
@@ -162,7 +162,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
162
162
  client = deps.getLLMClient();
163
163
  client.setModel(providerConfig.model);
164
164
  } else if (providerConfig) {
165
- const { createLLMClient } = await import("./client-6KC6SP2U.js");
165
+ const { createLLMClient } = await import("./client-KJS7QIIV.js");
166
166
  client = createLLMClient(
167
167
  {
168
168
  llm: {
@@ -182,6 +182,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
182
182
  const timeoutSignal = AbortSignal.timeout(12e4);
183
183
  const composedSignal = signal ? AbortSignal.any([timeoutSignal, signal]) : timeoutSignal;
184
184
  const response = await client.complete({
185
+ sessionId,
185
186
  messages: [{ role: "user", content: prompt }],
186
187
  tools: [],
187
188
  ...modelSettings ? { modelSettings } : {},
@@ -216,4 +217,4 @@ export {
216
217
  needsNameGeneration,
217
218
  generateSessionNameForSession
218
219
  };
219
- //# sourceMappingURL=chunk-YIEIVHCQ.js.map
220
+ //# sourceMappingURL=chunk-CEEBKCGX.js.map
@@ -324,10 +324,9 @@ function listSessionsPaged(projectId, limit, offset) {
324
324
  const sessions = rows.slice(0, limit).map(mapSessionSummaryRow);
325
325
  return { sessions, hasMore };
326
326
  }
327
- function listHomeSessions(sessionsPerProject = 5) {
327
+ function listHomeSessions(limit = 20) {
328
328
  const db = getDatabase();
329
- const rows = db.prepare(
330
- `
329
+ const select = `
331
330
  SELECT
332
331
  s.id,
333
332
  s.project_id,
@@ -345,18 +344,17 @@ function listHomeSessions(sessionsPerProject = 5) {
345
344
  s.provider_model,
346
345
  s.message_count
347
346
  FROM sessions s
348
- ORDER BY s.updated_at DESC
349
- `
350
- ).all();
351
- const seen = /* @__PURE__ */ new Map();
352
- const result = [];
353
- for (const row of rows) {
354
- const count = seen.get(row.project_id) ?? 0;
355
- if (count >= sessionsPerProject) continue;
356
- seen.set(row.project_id, count + 1);
357
- result.push(mapSessionSummaryRow(row));
358
- }
359
- return result;
347
+ `;
348
+ const rows = db.prepare(`${select} ORDER BY s.updated_at DESC LIMIT ?`).all(limit);
349
+ const pinned = db.prepare(
350
+ `${select}
351
+ WHERE (s.is_running = 1 OR s.workflow_phase IN ('waiting', 'blocked'))
352
+ AND s.id NOT IN (SELECT id FROM sessions ORDER BY updated_at DESC LIMIT ?)`
353
+ ).all(limit);
354
+ const merged = [...rows, ...pinned].sort(
355
+ (a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime()
356
+ );
357
+ return merged.map(mapSessionSummaryRow);
360
358
  }
361
359
  function updateSessionWorkdir(id, workdir, workspace, branch) {
362
360
  const db = getDatabase();
@@ -484,4 +482,4 @@ export {
484
482
  getLatestWorkflowExecution,
485
483
  clearWorkflowExecution
486
484
  };
487
- //# sourceMappingURL=chunk-7OHSAZLF.js.map
485
+ //# sourceMappingURL=chunk-DBF5GKZF.js.map
@@ -44,7 +44,7 @@ var ChatHttpClient = class {
44
44
  async post(params, options) {
45
45
  const { url, headers, body } = this.buildRequest(params);
46
46
  logger.debug("HTTP request to LLM", { url, bodyKeys: Object.keys(params) });
47
- return postJson(url, headers, body, options);
47
+ return postJson(url, { ...headers, ...options?.headers }, body, options);
48
48
  }
49
49
  async createChatCompletion(params, options, returnRaw) {
50
50
  const response = await this.post(params, options);
@@ -194,4 +194,4 @@ export {
194
194
  ChatHttpClient,
195
195
  OpenAIHttpClient
196
196
  };
197
- //# sourceMappingURL=chunk-LSO3IGJ4.js.map
197
+ //# sourceMappingURL=chunk-EE6VFEE6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  updateSessionMcpDisabledServers
3
- } from "./chunk-7OHSAZLF.js";
3
+ } from "./chunk-DBF5GKZF.js";
4
4
  import {
5
5
  getProject
6
6
  } from "./chunk-DPFET73G.js";
@@ -96,4 +96,4 @@ export {
96
96
  computeDisabledServersForProject,
97
97
  initSessionMcpOverrides
98
98
  };
99
- //# sourceMappingURL=chunk-FIEFBRTQ.js.map
99
+ //# sourceMappingURL=chunk-FBOIDBPA.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  createMessageStartEvent
3
- } from "./chunk-HEYU7FAY.js";
3
+ } from "./chunk-OA7KBQ2O.js";
4
4
  import {
5
5
  COMPACTION_PROMPT
6
6
  } from "./chunk-GKRYQ56N.js";
7
7
  import {
8
8
  getCurrentWindowMessageOptions
9
- } from "./chunk-JTR3PC5I.js";
9
+ } from "./chunk-2OTUYNXD.js";
10
10
 
11
11
  // src/server/context/compactor.ts
12
12
  function appendCompactionPrompt(sessionId, append) {
@@ -36,4 +36,4 @@ export {
36
36
  COMPACTION_MAX_RATIO,
37
37
  shouldCompact
38
38
  };
39
- //# sourceMappingURL=chunk-TG65PHHY.js.map
39
+ //# sourceMappingURL=chunk-G7BQWMV7.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-OA2FURC3.js";
5
5
  import {
6
6
  createLLMClient
7
- } from "./chunk-VCLAPTWM.js";
7
+ } from "./chunk-SSHXYKW3.js";
8
8
  import {
9
9
  getModelProfile
10
10
  } from "./chunk-TS5WKTFB.js";
@@ -12,7 +12,7 @@ import {
12
12
  detectBackendFromUrl,
13
13
  detectProviderDefaultsFromUrl,
14
14
  getBackendCapabilities
15
- } from "./chunk-AKWJMMEJ.js";
15
+ } from "./chunk-VLQ6BMU7.js";
16
16
  import {
17
17
  buildModelsUrl,
18
18
  ensureVersionPrefix,
@@ -467,6 +467,9 @@ function createProviderManager(config, options = {}) {
467
467
  if (provider.thinkingField) return provider.thinkingField;
468
468
  return detectProviderDefaultsFromUrl(provider.url)?.thinkingField;
469
469
  }
470
+ function resolveSendReasoningInMessages(provider) {
471
+ return detectProviderDefaultsFromUrl(provider.url)?.sendReasoningInMessages ?? provider.sendReasoningInMessages;
472
+ }
470
473
  function createConfigForProvider(provider, model, reasoningEffort) {
471
474
  const modelThinking = resolveModelThinkingConfig(provider, model, reasoningEffort);
472
475
  const configureModel = provider.models.find((m) => m.id === model);
@@ -477,6 +480,7 @@ function createProviderManager(config, options = {}) {
477
480
  model
478
481
  );
479
482
  const thinkingField = resolveThinkingField(provider);
483
+ const sendReasoningInMessages = resolveSendReasoningInMessages(provider);
480
484
  return {
481
485
  ...config,
482
486
  llm: {
@@ -486,7 +490,7 @@ function createProviderManager(config, options = {}) {
486
490
  backend: resolveBackend(provider),
487
491
  ...provider.apiKey && { apiKey: provider.apiKey },
488
492
  ...thinkingField ? { thinkingField } : {},
489
- ...provider.sendReasoningInMessages !== void 0 ? { sendReasoningInMessages: provider.sendReasoningInMessages } : {},
493
+ ...sendReasoningInMessages !== void 0 ? { sendReasoningInMessages } : {},
490
494
  ...modelThinking.reasoningEffort && !send.suppressEffort && { reasoningEffort: modelThinking.reasoningEffort }
491
495
  }
492
496
  };
@@ -916,4 +920,4 @@ export {
916
920
  parseDefaultModelSelection,
917
921
  createProviderManager
918
922
  };
919
- //# sourceMappingURL=chunk-EJ5GFSD4.js.map
923
+ //# sourceMappingURL=chunk-H7YL7PH3.js.map
@@ -8,10 +8,10 @@ import {
8
8
  PathAccessDeniedError,
9
9
  registerPathConfirmation,
10
10
  requestPathAccess
11
- } from "./chunk-RG326HS4.js";
11
+ } from "./chunk-YFTCFJJM.js";
12
12
  import {
13
13
  getEventStore
14
- } from "./chunk-JTR3PC5I.js";
14
+ } from "./chunk-2OTUYNXD.js";
15
15
  import {
16
16
  getRuntimeConfig
17
17
  } from "./chunk-4F4ARGAM.js";
@@ -1152,4 +1152,4 @@ export {
1152
1152
  isDescribeImageEligible,
1153
1153
  describeImageTool
1154
1154
  };
1155
- //# sourceMappingURL=chunk-MAUQ6AW4.js.map
1155
+ //# sourceMappingURL=chunk-IZVIN7XC.js.map
@@ -0,0 +1,7 @@
1
+ // src/constants.ts
2
+ var VERSION = "2.0.141";
3
+
4
+ export {
5
+ VERSION
6
+ };
7
+ //# sourceMappingURL=chunk-LDWWVUW7.js.map
@@ -14,10 +14,10 @@ import {
14
14
  getGateConfig,
15
15
  isTaskConflictError,
16
16
  isTaskGateError
17
- } from "./chunk-22DV5XO7.js";
17
+ } from "./chunk-TJOKDC34.js";
18
18
  import {
19
19
  getSessionDisabledServers
20
- } from "./chunk-FIEFBRTQ.js";
20
+ } from "./chunk-FBOIDBPA.js";
21
21
  import {
22
22
  buildSignal,
23
23
  computeFileHash,
@@ -33,7 +33,7 @@ import {
33
33
  requireSession,
34
34
  validateActionWithPermission,
35
35
  validateFileForWrite
36
- } from "./chunk-MAUQ6AW4.js";
36
+ } from "./chunk-IZVIN7XC.js";
37
37
  import {
38
38
  serverT
39
39
  } from "./chunk-JLHYB445.js";
@@ -50,7 +50,7 @@ import {
50
50
  recordLLMFailure,
51
51
  sleepThroughRetryBackoff,
52
52
  streamLLMPure
53
- } from "./chunk-HEYU7FAY.js";
53
+ } from "./chunk-OA7KBQ2O.js";
54
54
  import {
55
55
  COMPACTION_PROMPT,
56
56
  buildBasePrompt,
@@ -93,12 +93,12 @@ import {
93
93
  extractAbsolutePathsFromCommand,
94
94
  extractSensitivePathsFromCommand,
95
95
  resolveRelativeTraversals
96
- } from "./chunk-RG326HS4.js";
96
+ } from "./chunk-YFTCFJJM.js";
97
97
  import {
98
98
  getCurrentContextWindowId,
99
99
  getCurrentWindowMessageOptions,
100
100
  getEventStore
101
- } from "./chunk-JTR3PC5I.js";
101
+ } from "./chunk-2OTUYNXD.js";
102
102
  import {
103
103
  buildContextMessagesFromEventHistory,
104
104
  foldContextState,
@@ -1498,6 +1498,7 @@ async function runTopLevelAgentLoop(config, turnMetrics) {
1498
1498
  });
1499
1499
  const modelSettings = sessionManager.getCurrentModelSettings(sessionId, config.mode);
1500
1500
  await resolveClient().complete({
1501
+ sessionId,
1501
1502
  messages: [{ role: "system", content: assembledRequest.systemPrompt }],
1502
1503
  tools: assembledRequest.tools,
1503
1504
  maxTokens: 1,
@@ -1598,6 +1599,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
1598
1599
  messageId: assistantMsgId,
1599
1600
  systemPrompt: assembledRequest.systemPrompt,
1600
1601
  llmClient: attemptClient,
1602
+ sessionId,
1601
1603
  messages: assembledRequest.messages,
1602
1604
  tools: assembledRequest.tools,
1603
1605
  toolChoice: "auto",
@@ -1729,7 +1731,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
1729
1731
  currentMaxTokensOverride = void 0;
1730
1732
  if (!compacting) {
1731
1733
  const contextState = sessionManager.getContextState(sessionId);
1732
- const { shouldCompact, appendCompactionPrompt } = await import("./compactor-T7S4DIR3.js");
1734
+ const { shouldCompact, appendCompactionPrompt } = await import("./compactor-QDTK3SZI.js");
1733
1735
  if (shouldCompact(
1734
1736
  contextState.currentTokens,
1735
1737
  contextState.maxTokens,
@@ -2445,7 +2447,7 @@ var callSubAgentTool = {
2445
2447
  };
2446
2448
  }
2447
2449
  try {
2448
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-LZHSSSK4.js");
2450
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-F4COIAZR.js");
2449
2451
  const toolRegistry = getToolRegistryForAgent2(agentDef);
2450
2452
  const turnMetrics = new TurnMetrics();
2451
2453
  const result = await executeSubAgent({
@@ -3549,11 +3551,11 @@ var mcpConfigTool = createTool(
3549
3551
  async function notifyContextChanged(sessionId) {
3550
3552
  context.sessionManager.setDynamicContextChanged(sessionId, true);
3551
3553
  mcpNotifyChanged?.(sessionId);
3552
- const { injectContextDriftReminders } = await import("./dynamic-context-3MAA4AQR.js");
3554
+ const { injectContextDriftReminders } = await import("./dynamic-context-UEC6MMEV.js");
3553
3555
  await injectContextDriftReminders(context.sessionManager, sessionId);
3554
3556
  }
3555
3557
  async function rebuildTools() {
3556
- const { setMcpTools: setMcpTools2 } = await import("./tools-LZHSSSK4.js");
3558
+ const { setMcpTools: setMcpTools2 } = await import("./tools-F4COIAZR.js");
3557
3559
  const mcpTools = createMcpTools(mcpManagerForTools);
3558
3560
  setMcpTools2(mcpTools);
3559
3561
  }
@@ -3562,7 +3564,7 @@ var mcpConfigTool = createTool(
3562
3564
  if (servers.length === 0) {
3563
3565
  return helpers.success(serverT({ en: "No MCP servers configured.", fr: "Aucun serveur MCP configur\xE9." }));
3564
3566
  }
3565
- const { getSessionDisabledServers: getSessionDisabledServers2 } = await import("./session-overrides-7OPGV7CQ.js");
3567
+ const { getSessionDisabledServers: getSessionDisabledServers2 } = await import("./session-overrides-WYOY7PVC.js");
3566
3568
  const disabledForSession = new Set(context.sessionId ? getSessionDisabledServers2(context.sessionId) : []);
3567
3569
  const visibleServers = servers.filter((server) => !disabledForSession.has(server.name));
3568
3570
  if (visibleServers.length === 0) {
@@ -4695,4 +4697,4 @@ export {
4695
4697
  getToolRegistryForAgent,
4696
4698
  createToolRegistry
4697
4699
  };
4698
- //# sourceMappingURL=chunk-N4RAVCLZ.js.map
4700
+ //# sourceMappingURL=chunk-NDAXMOD2.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-TS5WKTFB.js";
7
7
  import {
8
8
  getBackendCapabilities
9
- } from "./chunk-AKWJMMEJ.js";
9
+ } from "./chunk-VLQ6BMU7.js";
10
10
  import {
11
11
  buildModelParams
12
12
  } from "./chunk-QMU3ZY2C.js";
@@ -39,14 +39,15 @@ function matchRetryPatterns(content, thinking, patterns) {
39
39
 
40
40
  // src/server/chat/stream-utils.ts
41
41
  function buildStreamRequestObject(params) {
42
- const { messages, tools, toolChoice, reasoningEffort, signal, modelSettings } = params;
42
+ const { messages, tools, toolChoice, reasoningEffort, signal, modelSettings, sessionId } = params;
43
43
  return {
44
44
  messages,
45
45
  ...tools && { tools },
46
46
  ...toolChoice && { toolChoice },
47
47
  ...reasoningEffort && { reasoningEffort },
48
48
  ...signal && { signal },
49
- ...modelSettings && { modelSettings }
49
+ ...modelSettings && { modelSettings },
50
+ ...sessionId && { sessionId }
50
51
  };
51
52
  }
52
53
  function buildStreamRequest(client, options) {
@@ -140,7 +141,8 @@ async function* streamLLMPure(options) {
140
141
  toolChoice,
141
142
  reasoningEffort,
142
143
  signal: combinedSignal,
143
- modelSettings: options.modelSettings
144
+ modelSettings: options.modelSettings,
145
+ sessionId: options.sessionId
144
146
  });
145
147
  const seenToolIndices = /* @__PURE__ */ new Set();
146
148
  const toolNames = /* @__PURE__ */ new Map();
@@ -518,4 +520,4 @@ export {
518
520
  createChatDoneEvent,
519
521
  consumeStreamGenerator
520
522
  };
521
- //# sourceMappingURL=chunk-HEYU7FAY.js.map
523
+ //# sourceMappingURL=chunk-OA7KBQ2O.js.map