openfox 2.0.127 → 2.0.128

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 (42) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/CHANGELOG.md +11 -0
  3. package/dist/{chat-handler-63VGKLM5.js → chat-handler-3O6AIOID.js} +10 -10
  4. package/dist/{chunk-TZJU6F6Z.js → chunk-4MXY7ELN.js} +28 -28
  5. package/dist/{chunk-IQYI7TWF.js → chunk-53R7QNZG.js} +14 -11
  6. package/dist/{chunk-GJL3QSMP.js → chunk-7ZMOP5LS.js} +16 -1
  7. package/dist/{chunk-T3JVYO3Z.js → chunk-B2RPFZ3U.js} +3 -3
  8. package/dist/{chunk-GKDJW4VP.js → chunk-BQNQJE57.js} +3 -3
  9. package/dist/{chunk-FGK6KPJ5.js → chunk-CQW4QASE.js} +4 -4
  10. package/dist/{chunk-FNXTJLCZ.js → chunk-D5QVV3LT.js} +2 -2
  11. package/dist/chunk-ES5635OP.js +7 -0
  12. package/dist/{chunk-CTHRGR4O.js → chunk-FYXZRVOL.js} +2 -2
  13. package/dist/{chunk-HOSFRPPI.js → chunk-JEMPUHAA.js} +2 -2
  14. package/dist/{chunk-TY3ONJE4.js → chunk-LWDL7HWL.js} +4 -4
  15. package/dist/{chunk-IE2OMJIH.js → chunk-OWCJRSOU.js} +9 -9
  16. package/dist/{chunk-UAAFZEIS.js → chunk-S6ATKIT2.js} +2 -2
  17. package/dist/{chunk-7CBVJAN5.js → chunk-VHMZBKWY.js} +5 -5
  18. package/dist/{chunk-LJX7KXRU.js → chunk-VJRLIKLE.js} +2 -2
  19. package/dist/cli/dev.js +1 -1
  20. package/dist/cli/index.js +1 -1
  21. package/dist/{client-YHYIWZY7.js → client-VDXO7IIV.js} +3 -3
  22. package/dist/{compactor-7KPBTFZF.js → compactor-B6IVMDES.js} +4 -4
  23. package/dist/{dynamic-context-KXZ6VJDE.js → dynamic-context-4WVMNJTZ.js} +2 -2
  24. package/dist/{launch-DYWJD6L5.js → launch-AKIMGAGC.js} +10 -10
  25. package/dist/{orchestrator-LBQWRAXC.js → orchestrator-WLNW7TS7.js} +9 -9
  26. package/dist/package.json +1 -1
  27. package/dist/{processor-WP2LQOEV.js → processor-ZMXU5MOT.js} +9 -9
  28. package/dist/{profiles-3YLLEJ2B.js → profiles-HXGJIPF2.js} +2 -2
  29. package/dist/{provider-726LD2KU.js → provider-QIOTESLB.js} +4 -4
  30. package/dist/{provider-manager-OQTEXZ7X.js → provider-manager-FVI22EWM.js} +4 -4
  31. package/dist/{serve-OY3Y5PXK.js → serve-7M4HCERR.js} +15 -15
  32. package/dist/server/index.js +14 -14
  33. package/dist/{server-DMHNVEW4.js → server-RX5JM7IT.js} +13 -13
  34. package/dist/{service-BRKMLM4C.js → service-F4TWYTKE.js} +5 -5
  35. package/dist/{tasks-DEUZ6BNS.js → tasks-36WHYN3H.js} +5 -5
  36. package/dist/{tools-CZHV2FAD.js → tools-WAUWG4PE.js} +7 -7
  37. package/dist/{update-RCNZQCFG.js → update-AIVWCRXR.js} +2 -2
  38. package/dist/web/assets/{index-B63UkA7X.js → index-DtQsFnyQ.js} +1 -1
  39. package/dist/web/index.html +1 -1
  40. package/dist/web/sw.js +1 -1
  41. package/package.json +1 -1
  42. package/dist/chunk-QDO3BEGW.js +0 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.128 - 2026-08-24
4
+
5
+ ### Enhancements
6
+
7
+ - **Qwen3.8 defaults match its model card** — temperature 1.0, top_p 0.95, top_k 20, and vision support
8
+ - **Qwen3.8's default output budget is now 50k** — up from 16k, clamped to the context window
9
+
10
+ ### Bug Fixes
11
+
12
+ - **"Time since last prompt" hidden in terminal states** — no counter on completed or blocked sessions
13
+
3
14
  ## 2.0.127 - 2026-08-22
4
15
 
5
16
  ### Features
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.128 - 2026-08-24
4
+
5
+ ### Enhancements
6
+
7
+ - **Qwen3.8 defaults match its model card** — temperature 1.0, top_p 0.95, top_k 20, and vision support
8
+ - **Qwen3.8's default output budget is now 50k** — up from 16k, clamped to the context window
9
+
10
+ ### Bug Fixes
11
+
12
+ - **"Time since last prompt" hidden in terminal states** — no counter on completed or blocked sessions
13
+
3
14
  ## 2.0.127 - 2026-08-22
4
15
 
5
16
  ### Features
@@ -2,14 +2,14 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-HOSFRPPI.js";
5
+ } from "./chunk-JEMPUHAA.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-FGK6KPJ5.js";
9
- import "./chunk-IQYI7TWF.js";
10
- import "./chunk-GKDJW4VP.js";
8
+ } from "./chunk-CQW4QASE.js";
9
+ import "./chunk-53R7QNZG.js";
10
+ import "./chunk-BQNQJE57.js";
11
11
  import "./chunk-ZIL6VKLU.js";
12
- import "./chunk-LJX7KXRU.js";
12
+ import "./chunk-VJRLIKLE.js";
13
13
  import "./chunk-GIJUWPRQ.js";
14
14
  import "./chunk-EHFIUXWZ.js";
15
15
  import "./chunk-RV5G7QQU.js";
@@ -18,7 +18,7 @@ import "./chunk-JE7LW7Y6.js";
18
18
  import "./chunk-OAN4BXEW.js";
19
19
  import "./chunk-Y3BSBKHY.js";
20
20
  import "./chunk-J7GAZGZT.js";
21
- import "./chunk-CTHRGR4O.js";
21
+ import "./chunk-FYXZRVOL.js";
22
22
  import "./chunk-7YP4O4XE.js";
23
23
  import "./chunk-KD4W3I6C.js";
24
24
  import {
@@ -34,14 +34,14 @@ import {
34
34
  import "./chunk-66MG44TF.js";
35
35
  import "./chunk-JURM3RPZ.js";
36
36
  import "./chunk-LCLH6ZUL.js";
37
- import "./chunk-T3JVYO3Z.js";
37
+ import "./chunk-B2RPFZ3U.js";
38
38
  import "./chunk-K2QKX4ZJ.js";
39
39
  import "./chunk-J2GP3J3X.js";
40
40
  import "./chunk-KBESUA3W.js";
41
41
  import "./chunk-OSXPQSLW.js";
42
42
  import "./chunk-3B232XG4.js";
43
- import "./chunk-FNXTJLCZ.js";
44
- import "./chunk-GJL3QSMP.js";
43
+ import "./chunk-D5QVV3LT.js";
44
+ import "./chunk-7ZMOP5LS.js";
45
45
  import "./chunk-PBFGJFGC.js";
46
46
  import "./chunk-HNCM3D7Y.js";
47
47
  import "./chunk-KAZWU73N.js";
@@ -174,4 +174,4 @@ export {
174
174
  startChatSession,
175
175
  stopSessionExecution
176
176
  };
177
- //# sourceMappingURL=chat-handler-63VGKLM5.js.map
177
+ //# sourceMappingURL=chat-handler-3O6AIOID.js.map
@@ -16,10 +16,10 @@ import {
16
16
  terminalManager,
17
17
  tokenFromPassword,
18
18
  verifyPassword
19
- } from "./chunk-IE2OMJIH.js";
19
+ } from "./chunk-OWCJRSOU.js";
20
20
  import {
21
21
  TEMPLATE_VARIABLES
22
- } from "./chunk-7CBVJAN5.js";
22
+ } from "./chunk-VHMZBKWY.js";
23
23
  import {
24
24
  createToolRegistry,
25
25
  devServerManager,
@@ -33,7 +33,7 @@ import {
33
33
  setMcpManagerForTools,
34
34
  setMcpTools,
35
35
  setNotifyMcpServersChanged
36
- } from "./chunk-IQYI7TWF.js";
36
+ } from "./chunk-53R7QNZG.js";
37
37
  import {
38
38
  deleteOwnedSkill,
39
39
  deleteProjectSkill,
@@ -107,7 +107,7 @@ import {
107
107
  saveWorkflow,
108
108
  saveWorkflowToProject,
109
109
  workflowExists
110
- } from "./chunk-CTHRGR4O.js";
110
+ } from "./chunk-FYXZRVOL.js";
111
111
  import {
112
112
  getSessionDisabledServers,
113
113
  setSessionDisabledServers
@@ -171,10 +171,10 @@ import {
171
171
  detectModel,
172
172
  getLlmStatus,
173
173
  parseDefaultModelSelection
174
- } from "./chunk-T3JVYO3Z.js";
174
+ } from "./chunk-B2RPFZ3U.js";
175
175
  import {
176
176
  VERSION
177
- } from "./chunk-QDO3BEGW.js";
177
+ } from "./chunk-ES5635OP.js";
178
178
  import {
179
179
  agentExists,
180
180
  deleteAgent,
@@ -203,7 +203,7 @@ import {
203
203
  } from "./chunk-3B232XG4.js";
204
204
  import {
205
205
  getModelProfile
206
- } from "./chunk-GJL3QSMP.js";
206
+ } from "./chunk-7ZMOP5LS.js";
207
207
  import {
208
208
  getBackendDisplayName
209
209
  } from "./chunk-PBFGJFGC.js";
@@ -6072,7 +6072,7 @@ async function createServerHandle(config3) {
6072
6072
  toolRegistry = createToolRegistry();
6073
6073
  logger.info("MCP tools registered", { count: mcpTools.length });
6074
6074
  }
6075
- const { signalMcpReady } = await import("./server-DMHNVEW4.js");
6075
+ const { signalMcpReady } = await import("./server-RX5JM7IT.js");
6076
6076
  signalMcpReady();
6077
6077
  });
6078
6078
  const app = express();
@@ -6268,9 +6268,9 @@ async function createServerHandle(config3) {
6268
6268
  const sessionFavoriteRouter = express.Router();
6269
6269
  registerSessionFavoriteRoute(sessionFavoriteRouter, sessionManager);
6270
6270
  app.use("/api", sessionFavoriteRouter);
6271
- const { createTasksService } = await import("./service-BRKMLM4C.js");
6272
- const { registerTaskRoutes } = await import("./tasks-DEUZ6BNS.js");
6273
- const { setTasksService } = await import("./tools-CZHV2FAD.js");
6271
+ const { createTasksService } = await import("./service-F4TWYTKE.js");
6272
+ const { registerTaskRoutes } = await import("./tasks-36WHYN3H.js");
6273
+ const { setTasksService } = await import("./tools-WAUWG4PE.js");
6274
6274
  const tasksService = createTasksService({
6275
6275
  sessionManager,
6276
6276
  config: config3,
@@ -6599,7 +6599,7 @@ All file and git operations should use this branch.
6599
6599
  app.get("/api/sessions/:id", async (req, res) => {
6600
6600
  const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-GMHRX4LF.js");
6601
6601
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-7K2GRPF4.js");
6602
- const { getPendingQuestionsForSession } = await import("./tools-CZHV2FAD.js");
6602
+ const { getPendingQuestionsForSession } = await import("./tools-WAUWG4PE.js");
6603
6603
  const { getMaxVisibleItems } = await import("./settings-VOWWO4VG.js");
6604
6604
  const session = sessionManager.getSession(req.params.id);
6605
6605
  if (!session) {
@@ -6628,7 +6628,7 @@ All file and git operations should use this branch.
6628
6628
  });
6629
6629
  app.get("/api/sessions/:id/status", async (req, res) => {
6630
6630
  const { projectSessionStatus } = await import("./session-status-6Q5B5PEN.js");
6631
- const { getPendingQuestionsForSession } = await import("./tools-CZHV2FAD.js");
6631
+ const { getPendingQuestionsForSession } = await import("./tools-WAUWG4PE.js");
6632
6632
  const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-GMHRX4LF.js");
6633
6633
  const { foldPendingConfirmations } = await import("./folding-7K2GRPF4.js");
6634
6634
  const sessionId = req.params["id"];
@@ -6660,8 +6660,8 @@ All file and git operations should use this branch.
6660
6660
  if (!session) {
6661
6661
  return res.status(404).json({ error: "Session not found" });
6662
6662
  }
6663
- const { stopSessionExecution } = await import("./chat-handler-63VGKLM5.js");
6664
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-CZHV2FAD.js");
6663
+ const { stopSessionExecution } = await import("./chat-handler-3O6AIOID.js");
6664
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-WAUWG4PE.js");
6665
6665
  sessionManager.clearMessageQueue(sessionId);
6666
6666
  stopSessionExecution(sessionId, sessionManager);
6667
6667
  abortSession(sessionId);
@@ -6938,7 +6938,7 @@ All file and git operations should use this branch.
6938
6938
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6939
6939
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6940
6940
  }
6941
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-CZHV2FAD.js");
6941
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-WAUWG4PE.js");
6942
6942
  const pendingSessionId = getConfirmationSessionId(callId);
6943
6943
  if (!pendingSessionId) {
6944
6944
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6953,7 +6953,7 @@ All file and git operations should use this branch.
6953
6953
  const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-GMHRX4LF.js");
6954
6954
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-7K2GRPF4.js");
6955
6955
  const { createSessionStateMessage } = await import("./protocol-TLODRZSB.js");
6956
- const { getPendingQuestionsForSession } = await import("./tools-CZHV2FAD.js");
6956
+ const { getPendingQuestionsForSession } = await import("./tools-WAUWG4PE.js");
6957
6957
  const { getMaxVisibleItems } = await import("./settings-VOWWO4VG.js");
6958
6958
  const eventStore = getEventStore2();
6959
6959
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
@@ -6991,7 +6991,7 @@ All file and git operations should use this branch.
6991
6991
  if (!skip && typeof answer !== "string") {
6992
6992
  return res.status(400).json({ error: "answer is required when not skipping" });
6993
6993
  }
6994
- const { provideAnswer } = await import("./tools-CZHV2FAD.js");
6994
+ const { provideAnswer } = await import("./tools-WAUWG4PE.js");
6995
6995
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6996
6996
  if (!found) {
6997
6997
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -7057,7 +7057,7 @@ All file and git operations should use this branch.
7057
7057
  backend: activeProvider?.backend ?? llmClient.getBackend(),
7058
7058
  model: llmClient.getModel()
7059
7059
  };
7060
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-LBQWRAXC.js");
7060
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-WLNW7TS7.js");
7061
7061
  runAgentTurn(
7062
7062
  {
7063
7063
  sessionManager,
@@ -7095,8 +7095,8 @@ All file and git operations should use this branch.
7095
7095
  if (!session) {
7096
7096
  return res.status(404).json({ error: "Session not found" });
7097
7097
  }
7098
- const { stopSessionExecution } = await import("./chat-handler-63VGKLM5.js");
7099
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-CZHV2FAD.js");
7098
+ const { stopSessionExecution } = await import("./chat-handler-3O6AIOID.js");
7099
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-WAUWG4PE.js");
7100
7100
  const queuedMessages = sessionManager.getQueueState(sessionId);
7101
7101
  sessionManager.clearMessageQueue(sessionId);
7102
7102
  stopSessionExecution(sessionId, sessionManager);
@@ -7475,8 +7475,8 @@ All file and git operations should use this branch.
7475
7475
  const backend = req.query["backend"];
7476
7476
  if (!url) return res.status(400).json({ error: "url is required" });
7477
7477
  try {
7478
- const { fetchModelsWithContext } = await import("./provider-manager-OQTEXZ7X.js");
7479
- const { getModelProfile: getModelProfile2 } = await import("./profiles-3YLLEJ2B.js");
7478
+ const { fetchModelsWithContext } = await import("./provider-manager-FVI22EWM.js");
7479
+ const { getModelProfile: getModelProfile2 } = await import("./profiles-HXGJIPF2.js");
7480
7480
  const { getCatalogEntry } = await import("./model-catalog-ZLOWTQA7.js");
7481
7481
  const models = await fetchModelsWithContext(
7482
7482
  url,
@@ -7546,7 +7546,7 @@ All file and git operations should use this branch.
7546
7546
  });
7547
7547
  return res.json({ success: true, message: { content: response2.content }, raw: response2 });
7548
7548
  }
7549
- const { getModelProfile: getModelProfile2 } = await import("./profiles-3YLLEJ2B.js");
7549
+ const { getModelProfile: getModelProfile2 } = await import("./profiles-HXGJIPF2.js");
7550
7550
  const { getBackendCapabilities } = await import("./backend-4YPEC3J2.js");
7551
7551
  const { buildNonStreamingCreateParams } = await import("./client-pure-CJKM3ACP.js");
7552
7552
  const { OpenAIHttpClient } = await import("./http-client-ROVNSHF6.js");
@@ -7966,7 +7966,7 @@ All file and git operations should use this branch.
7966
7966
  });
7967
7967
  async function rebuildMcpTools() {
7968
7968
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-FJAFLDZA.js");
7969
- const { setMcpTools: setMcpTools2 } = await import("./tools-CZHV2FAD.js");
7969
+ const { setMcpTools: setMcpTools2 } = await import("./tools-WAUWG4PE.js");
7970
7970
  const mcpTools = createMcpTools2(mcpManager);
7971
7971
  setMcpTools2(mcpTools);
7972
7972
  toolRegistry = createToolRegistry();
@@ -8520,7 +8520,7 @@ All file and git operations should use this branch.
8520
8520
  );
8521
8521
  const wss = wssExports.wss;
8522
8522
  deferTasksBroadcast = (projectId, payload) => wssExports.broadcastForProject(projectId, "", { type: "tasks.update", payload });
8523
- const { launchWorkflowRun, abortRunnerRun } = await import("./launch-DYWJD6L5.js");
8523
+ const { launchWorkflowRun, abortRunnerRun } = await import("./launch-AKIMGAGC.js");
8524
8524
  deferTasksLaunchWorkflow = (sessionId, launch) => {
8525
8525
  const effective = sessionManager.resolveEffectiveProviderModel(sessionId);
8526
8526
  let llmClient = getLLMClient();
@@ -8560,7 +8560,7 @@ All file and git operations should use this branch.
8560
8560
  const state = sessionManager.getContextState(sessionId);
8561
8561
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
8562
8562
  });
8563
- const { QueueProcessor } = await import("./processor-WP2LQOEV.js");
8563
+ const { QueueProcessor } = await import("./processor-ZMXU5MOT.js");
8564
8564
  const queueProcessor = new QueueProcessor({
8565
8565
  sessionManager,
8566
8566
  providerManager,
@@ -8646,4 +8646,4 @@ export {
8646
8646
  createServerHandle,
8647
8647
  createServer
8648
8648
  };
8649
- //# sourceMappingURL=chunk-TZJU6F6Z.js.map
8649
+ //# sourceMappingURL=chunk-4MXY7ELN.js.map
@@ -18,7 +18,7 @@ import {
18
18
  recordLLMFailure,
19
19
  sleepThroughRetryBackoff,
20
20
  streamLLMPure
21
- } from "./chunk-LJX7KXRU.js";
21
+ } from "./chunk-VJRLIKLE.js";
22
22
  import {
23
23
  COMPACTION_PROMPT,
24
24
  buildBasePrompt,
@@ -61,7 +61,7 @@ import {
61
61
  getGateConfig,
62
62
  isTaskConflictError,
63
63
  isTaskGateError
64
- } from "./chunk-CTHRGR4O.js";
64
+ } from "./chunk-FYXZRVOL.js";
65
65
  import {
66
66
  getSessionDisabledServers
67
67
  } from "./chunk-7YP4O4XE.js";
@@ -108,8 +108,9 @@ import {
108
108
  loadAllAgentsDefault
109
109
  } from "./chunk-KBESUA3W.js";
110
110
  import {
111
+ getModelProfile,
111
112
  modelSupportsVision
112
- } from "./chunk-GJL3QSMP.js";
113
+ } from "./chunk-7ZMOP5LS.js";
113
114
  import {
114
115
  OUTPUT_LIMITS,
115
116
  cacheSet,
@@ -1961,6 +1962,8 @@ async function runTopLevelAgentLoop(config, turnMetrics) {
1961
1962
  let assistantMsgId;
1962
1963
  let assistantMessageStarted = false;
1963
1964
  for (; ; ) {
1965
+ const attemptClient = resolveClient();
1966
+ const profileDefaultMaxTokens = getModelProfile(attemptClient.getModel()).defaultMaxTokens;
1964
1967
  const requestMessages = await config.getConversationMessages();
1965
1968
  if (requestFailures === 0 && retryLimiter.count() > 0) {
1966
1969
  const continueMsgId = crypto.randomUUID();
@@ -2015,7 +2018,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2015
2018
  modelSettings = { ...modelSettings, maxTokens: currentMaxTokensOverride };
2016
2019
  }
2017
2020
  if (modelSettings) {
2018
- const requestedMaxTokens = modelSettings.maxTokens ?? 16384;
2021
+ const requestedMaxTokens = modelSettings.maxTokens ?? profileDefaultMaxTokens;
2019
2022
  modelSettings = { ...modelSettings, maxTokens: Math.min(requestedMaxTokens, availableForOutput) };
2020
2023
  }
2021
2024
  const allAgents = await loadAllAgentsDefault(sessionManager.getProjectWorkdir(sessionId));
@@ -2023,7 +2026,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2023
2026
  const streamGen = streamLLMPure({
2024
2027
  messageId: assistantMsgId,
2025
2028
  systemPrompt: assembledRequest.systemPrompt,
2026
- llmClient: resolveClient(),
2029
+ llmClient: attemptClient,
2027
2030
  messages: assembledRequest.messages,
2028
2031
  tools: assembledRequest.tools,
2029
2032
  toolChoice: "auto",
@@ -2057,7 +2060,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2057
2060
  if (signal?.aborted) throw new Error("Aborted");
2058
2061
  if (isContextLengthError(attemptResult.error) && contextRetryCount < MAX_CONTEXT_LENGTH_RETRIES) {
2059
2062
  contextRetryCount += 1;
2060
- const currentMax = modelSettings?.maxTokens ?? currentMaxTokensOverride ?? 16384;
2063
+ const currentMax = modelSettings?.maxTokens ?? currentMaxTokensOverride ?? profileDefaultMaxTokens;
2061
2064
  currentMaxTokensOverride = Math.max(256, Math.floor(currentMax / 2));
2062
2065
  continue;
2063
2066
  }
@@ -2143,7 +2146,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2143
2146
  currentMaxTokensOverride = void 0;
2144
2147
  if (!compacting) {
2145
2148
  const contextState = sessionManager.getContextState(sessionId);
2146
- const { shouldCompact, appendCompactionPrompt } = await import("./compactor-7KPBTFZF.js");
2149
+ const { shouldCompact, appendCompactionPrompt } = await import("./compactor-B6IVMDES.js");
2147
2150
  if (shouldCompact(
2148
2151
  contextState.currentTokens,
2149
2152
  contextState.maxTokens,
@@ -2157,7 +2160,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2157
2160
  if (!compacting && result.finishReason === "length" && result.toolCalls.length === 0) {
2158
2161
  if (truncationRetryCount < MAX_TRUNCATION_RETRIES) {
2159
2162
  truncationRetryCount += 1;
2160
- const currentMaxTokens = result.modelParams?.maxTokens ?? 16384;
2163
+ const currentMaxTokens = result.modelParams?.maxTokens ?? getModelProfile(resolveClient().getModel()).defaultMaxTokens;
2161
2164
  const promptTokens = result.usage.promptTokens;
2162
2165
  const contextWindow = sessionManager.getCurrentModelContext(sessionId, config.mode);
2163
2166
  const newMaxTokens = Math.min(
@@ -3168,7 +3171,7 @@ var callSubAgentTool = {
3168
3171
  };
3169
3172
  }
3170
3173
  try {
3171
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-CZHV2FAD.js");
3174
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-WAUWG4PE.js");
3172
3175
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3173
3176
  const turnMetrics = new TurnMetrics();
3174
3177
  const result = await executeSubAgent({
@@ -4190,7 +4193,7 @@ var mcpConfigTool = createTool(
4190
4193
  mcpNotifyChanged?.(sessionId);
4191
4194
  }
4192
4195
  async function rebuildTools() {
4193
- const { setMcpTools: setMcpTools2 } = await import("./tools-CZHV2FAD.js");
4196
+ const { setMcpTools: setMcpTools2 } = await import("./tools-WAUWG4PE.js");
4194
4197
  const mcpTools = createMcpTools(mcpManagerForTools);
4195
4198
  setMcpTools2(mcpTools);
4196
4199
  }
@@ -5115,4 +5118,4 @@ export {
5115
5118
  getToolRegistryForAgent,
5116
5119
  createToolRegistry
5117
5120
  };
5118
- //# sourceMappingURL=chunk-IQYI7TWF.js.map
5121
+ //# sourceMappingURL=chunk-53R7QNZG.js.map
@@ -37,6 +37,21 @@ var MODEL_PROFILES = [
37
37
  supportsVision: false
38
38
  }
39
39
  },
40
+ {
41
+ pattern: "qwen3.8",
42
+ profile: {
43
+ name: "Qwen3.8",
44
+ // Per Qwen3.8-27B model card (thinking mode — the default for coding
45
+ // sessions): "temperature=1.0, top_p=0.95, top_k=20"
46
+ temperature: 1,
47
+ topP: 0.95,
48
+ topK: 20,
49
+ // Qwen3.8 over-thinks; keep a large output budget (clamped to the
50
+ // model's context window at request time).
51
+ defaultMaxTokens: 5e4,
52
+ supportsVision: true
53
+ }
54
+ },
40
55
  {
41
56
  pattern: "qwen3",
42
57
  profile: {
@@ -173,4 +188,4 @@ export {
173
188
  getModelProfile,
174
189
  modelSupportsVision
175
190
  };
176
- //# sourceMappingURL=chunk-GJL3QSMP.js.map
191
+ //# sourceMappingURL=chunk-7ZMOP5LS.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-K2QKX4ZJ.js";
4
4
  import {
5
5
  createLLMClient
6
- } from "./chunk-FNXTJLCZ.js";
6
+ } from "./chunk-D5QVV3LT.js";
7
7
  import {
8
8
  getModelProfile
9
- } from "./chunk-GJL3QSMP.js";
9
+ } from "./chunk-7ZMOP5LS.js";
10
10
  import {
11
11
  getBackendCapabilities
12
12
  } from "./chunk-PBFGJFGC.js";
@@ -851,4 +851,4 @@ export {
851
851
  parseDefaultModelSelection,
852
852
  createProviderManager
853
853
  };
854
- //# sourceMappingURL=chunk-T3JVYO3Z.js.map
854
+ //# sourceMappingURL=chunk-B2RPFZ3U.js.map
@@ -105,7 +105,7 @@ function resolveAgentDef(sessionManager, sessionId) {
105
105
  }
106
106
  async function buildCachedPrompt(sessionManager, sessionId, agentDef, modelName) {
107
107
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
108
- const { getToolRegistryForAgent } = await import("./tools-CZHV2FAD.js");
108
+ const { getToolRegistryForAgent } = await import("./tools-WAUWG4PE.js");
109
109
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
110
110
  const toolFingerprint = getToolFingerprint(tools);
111
111
  const allAgents = await loadAllAgentsDefault(sessionManager.getProjectWorkdir(sessionId));
@@ -124,7 +124,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef, modelName)
124
124
  async function computeSessionHash(sessionManager, sessionId, modelName) {
125
125
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
126
126
  const agentDef = await resolveAgentDef(sessionManager, sessionId);
127
- const { getToolRegistryForAgent } = await import("./tools-CZHV2FAD.js");
127
+ const { getToolRegistryForAgent } = await import("./tools-WAUWG4PE.js");
128
128
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
129
129
  const toolFingerprint = getToolFingerprint(tools);
130
130
  return computeDynamicContextHash(instructionContent, skills, toolFingerprint, modelName);
@@ -148,4 +148,4 @@ export {
148
148
  computeSessionHash,
149
149
  applyDynamicContext
150
150
  };
151
- //# sourceMappingURL=chunk-GKDJW4VP.js.map
151
+ //# sourceMappingURL=chunk-BQNQJE57.js.map
@@ -4,12 +4,12 @@ import {
4
4
  getToolRegistryForAgent,
5
5
  processEventsForConversation,
6
6
  runTopLevelAgentLoop
7
- } from "./chunk-IQYI7TWF.js";
7
+ } from "./chunk-53R7QNZG.js";
8
8
  import {
9
9
  buildCachedPrompt,
10
10
  computeDynamicContextHash,
11
11
  getToolFingerprint
12
- } from "./chunk-GKDJW4VP.js";
12
+ } from "./chunk-BQNQJE57.js";
13
13
  import {
14
14
  getAllInstructions,
15
15
  getEnabledSkillMetadata
@@ -18,7 +18,7 @@ import {
18
18
  TurnMetrics,
19
19
  createChatDoneEvent,
20
20
  createMessageStartEvent
21
- } from "./chunk-LJX7KXRU.js";
21
+ } from "./chunk-VJRLIKLE.js";
22
22
  import {
23
23
  buildAgentReminder,
24
24
  buildAgentSmallReminder
@@ -329,4 +329,4 @@ export {
329
329
  runChatTurn,
330
330
  runAgentTurn
331
331
  };
332
- //# sourceMappingURL=chunk-FGK6KPJ5.js.map
332
+ //# sourceMappingURL=chunk-CQW4QASE.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getModelProfile
3
- } from "./chunk-GJL3QSMP.js";
3
+ } from "./chunk-7ZMOP5LS.js";
4
4
  import {
5
5
  getBackendCapabilities
6
6
  } from "./chunk-PBFGJFGC.js";
@@ -506,4 +506,4 @@ function createLLMClient(config, initialBackend = config.llm.backend ?? "unknown
506
506
  export {
507
507
  createLLMClient
508
508
  };
509
- //# sourceMappingURL=chunk-FNXTJLCZ.js.map
509
+ //# sourceMappingURL=chunk-D5QVV3LT.js.map
@@ -0,0 +1,7 @@
1
+ // src/constants.ts
2
+ var VERSION = "2.0.128";
3
+
4
+ export {
5
+ VERSION
6
+ };
7
+ //# sourceMappingURL=chunk-ES5635OP.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseDefaultModelSelection
3
- } from "./chunk-T3JVYO3Z.js";
3
+ } from "./chunk-B2RPFZ3U.js";
4
4
  import {
5
5
  deleteItemFromDir,
6
6
  getDefaultIds,
@@ -1099,4 +1099,4 @@ export {
1099
1099
  isTaskGateError,
1100
1100
  createTasksService
1101
1101
  };
1102
- //# sourceMappingURL=chunk-CTHRGR4O.js.map
1102
+ //# sourceMappingURL=chunk-FYXZRVOL.js.map
@@ -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-YHYIWZY7.js");
165
+ const { createLLMClient } = await import("./client-VDXO7IIV.js");
166
166
  client = createLLMClient(
167
167
  {
168
168
  llm: {
@@ -216,4 +216,4 @@ export {
216
216
  needsNameGeneration,
217
217
  generateSessionNameForSession
218
218
  };
219
- //# sourceMappingURL=chunk-HOSFRPPI.js.map
219
+ //# sourceMappingURL=chunk-JEMPUHAA.js.map
@@ -163,7 +163,7 @@ async function runCli(options) {
163
163
  break;
164
164
  }
165
165
  case "provider": {
166
- const { runProviderCommand } = await import("./provider-726LD2KU.js");
166
+ const { runProviderCommand } = await import("./provider-QIOTESLB.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-RCNZQCFG.js");
203
+ const { runUpdate } = await import("./update-AIVWCRXR.js");
204
204
  const code = await runUpdate();
205
205
  if (code !== 0) {
206
206
  process.exit(code);
@@ -213,7 +213,7 @@ async function runCli(options) {
213
213
  if (!configExists) {
214
214
  await runNetworkSetup(mode);
215
215
  }
216
- const { runServe } = await import("./serve-OY3Y5PXK.js");
216
+ const { runServe } = await import("./serve-7M4HCERR.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-TY3ONJE4.js.map
228
+ //# sourceMappingURL=chunk-LWDL7HWL.js.map
@@ -2,28 +2,28 @@ import {
2
2
  generateSessionNameForSession,
3
3
  getSessionMessageCount,
4
4
  needsNameGeneration
5
- } from "./chunk-HOSFRPPI.js";
5
+ } from "./chunk-JEMPUHAA.js";
6
6
  import {
7
7
  launchWorkflowRun
8
- } from "./chunk-7CBVJAN5.js";
8
+ } from "./chunk-VHMZBKWY.js";
9
9
  import {
10
10
  runChatTurn
11
- } from "./chunk-FGK6KPJ5.js";
11
+ } from "./chunk-CQW4QASE.js";
12
12
  import {
13
13
  devServerManager
14
- } from "./chunk-IQYI7TWF.js";
14
+ } from "./chunk-53R7QNZG.js";
15
15
  import {
16
16
  applyDynamicContext,
17
17
  computeSessionHash,
18
18
  computeUnifiedDiff
19
- } from "./chunk-GKDJW4VP.js";
19
+ } from "./chunk-BQNQJE57.js";
20
20
  import {
21
21
  appendCompactionPrompt
22
- } from "./chunk-UAAFZEIS.js";
22
+ } from "./chunk-S6ATKIT2.js";
23
23
  import {
24
24
  hasRecentLLMFailure,
25
25
  interruptLLMRetryWait
26
- } from "./chunk-LJX7KXRU.js";
26
+ } from "./chunk-VJRLIKLE.js";
27
27
  import {
28
28
  onProcessEvent
29
29
  } from "./chunk-RV5G7QQU.js";
@@ -1299,7 +1299,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1299
1299
  }
1300
1300
  const session = sessionManager.requireSession(sessionId);
1301
1301
  try {
1302
- const { buildCachedPrompt } = await import("./dynamic-context-KXZ6VJDE.js");
1302
+ const { buildCachedPrompt } = await import("./dynamic-context-4WVMNJTZ.js");
1303
1303
  const allAgents = await import("./registry-Z4GVYFTV.js");
1304
1304
  const agentDef = allAgents.findAgentById(session.mode, await allAgents.loadAllAgentsDefault()) ?? allAgents.findAgentById("planner", await allAgents.loadAllAgentsDefault());
1305
1305
  const modelName = session.providerModel ?? _providerManager?.getCurrentModel();
@@ -1624,4 +1624,4 @@ export {
1624
1624
  signalMcpReady,
1625
1625
  createWebSocketServer
1626
1626
  };
1627
- //# sourceMappingURL=chunk-IE2OMJIH.js.map
1627
+ //# sourceMappingURL=chunk-OWCJRSOU.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createMessageStartEvent
3
- } from "./chunk-LJX7KXRU.js";
3
+ } from "./chunk-VJRLIKLE.js";
4
4
  import {
5
5
  COMPACTION_PROMPT
6
6
  } from "./chunk-GIJUWPRQ.js";
@@ -36,4 +36,4 @@ export {
36
36
  COMPACTION_MAX_RATIO,
37
37
  shouldCompact
38
38
  };
39
- //# sourceMappingURL=chunk-UAAFZEIS.js.map
39
+ //# sourceMappingURL=chunk-S6ATKIT2.js.map