openfox 2.0.119 → 2.0.120

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 (40) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/CHANGELOG.md +8 -0
  3. package/dist/{chat-handler-M54IWF5Y.js → chat-handler-TIR5CMWE.js} +10 -10
  4. package/dist/{chunk-XZ2WAI66.js → chunk-54FTLSWS.js} +71 -54
  5. package/dist/{chunk-YHAE2SJI.js → chunk-A5JAVQKG.js} +2 -2
  6. package/dist/{chunk-5FAPM2GM.js → chunk-AS7KAH66.js} +2 -2
  7. package/dist/{chunk-AIFZNTUJ.js → chunk-CYXAMXN5.js} +4 -4
  8. package/dist/{chunk-W7VIYHPQ.js → chunk-GJL3QSMP.js} +3 -2
  9. package/dist/{chunk-6DDB67FN.js → chunk-HWHWXLM5.js} +4 -4
  10. package/dist/{chunk-SE62ZBNX.js → chunk-IQFPRQWM.js} +2 -2
  11. package/dist/{chunk-UNNCD7A3.js → chunk-IW46BUOP.js} +3 -3
  12. package/dist/{chunk-AVQCOSOF.js → chunk-JDBIR2J7.js} +5 -5
  13. package/dist/{chunk-V5XWUVF5.js → chunk-JDWJ2PJJ.js} +10 -10
  14. package/dist/{chunk-J6KFWVZ3.js → chunk-KFQKBXLO.js} +2 -2
  15. package/dist/{chunk-XB7IXMUI.js → chunk-PI4X3Y6H.js} +9 -9
  16. package/dist/chunk-PXEWE5YP.js +7 -0
  17. package/dist/{chunk-VFS7TFA7.js → chunk-USNG72WA.js} +2 -2
  18. package/dist/{chunk-U6JMRMBW.js → chunk-WN76RDRU.js} +3 -3
  19. package/dist/cli/dev.js +1 -1
  20. package/dist/cli/index.js +1 -1
  21. package/dist/{client-R4PI64IL.js → client-GXRHODRQ.js} +3 -3
  22. package/dist/{compactor-F6XMYVHL.js → compactor-TI352G7B.js} +4 -4
  23. package/dist/{dynamic-context-NXQ2TFAZ.js → dynamic-context-C6HGUQTR.js} +2 -2
  24. package/dist/{launch-I5XBYRSJ.js → launch-SRSMTDEM.js} +10 -10
  25. package/dist/{orchestrator-MNON5G7R.js → orchestrator-SCH2T4JB.js} +9 -9
  26. package/dist/package.json +1 -1
  27. package/dist/{processor-OZSK7RUD.js → processor-GM4D26E6.js} +9 -9
  28. package/dist/{profiles-GYHXBWPV.js → profiles-3YLLEJ2B.js} +2 -2
  29. package/dist/{provider-7YF42S7C.js → provider-5V6RDVU2.js} +4 -4
  30. package/dist/{provider-manager-FJIPQJMX.js → provider-manager-7QD5HAOL.js} +4 -4
  31. package/dist/{serve-V34QG72C.js → serve-M7I3HWVQ.js} +15 -15
  32. package/dist/server/index.d.ts +17 -2
  33. package/dist/server/index.js +14 -14
  34. package/dist/{server-XZQLWIVD.js → server-F72WN4KP.js} +13 -13
  35. package/dist/{service-ZKH465DA.js → service-A3YLLXW3.js} +5 -5
  36. package/dist/{tasks-I766NBPW.js → tasks-X5U7DWZR.js} +5 -5
  37. package/dist/{tools-ZJXDZLRH.js → tools-GCBDO7TU.js} +7 -7
  38. package/dist/{update-C3YVPKCR.js → update-TUGN3JJE.js} +2 -2
  39. package/package.json +1 -1
  40. package/dist/chunk-EW25UQG3.js +0 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.120 - 2026-08-15
4
+
5
+ ### Bug Fixes
6
+
7
+ - **DeepSeek default temperature matches the model card** — DeepSeek models now sample at 1.0 by default instead of 0.6
8
+ - **Max tokens follow the session's model** — clamping and truncation retry budgets now use the active model's context window, not a global default
9
+ - **Truncation retries no longer send negative max_tokens** — retry budget is floored at 256 tokens, preventing HTTP 400 errors
10
+
3
11
  ## 2.0.119 - 2026-08-14
4
12
 
5
13
  ### Features
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.120 - 2026-08-15
4
+
5
+ ### Bug Fixes
6
+
7
+ - **DeepSeek default temperature matches the model card** — DeepSeek models now sample at 1.0 by default instead of 0.6
8
+ - **Max tokens follow the session's model** — clamping and truncation retry budgets now use the active model's context window, not a global default
9
+ - **Truncation retries no longer send negative max_tokens** — retry budget is floored at 256 tokens, preventing HTTP 400 errors
10
+
3
11
  ## 2.0.119 - 2026-08-14
4
12
 
5
13
  ### Features
@@ -2,14 +2,14 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-VFS7TFA7.js";
5
+ } from "./chunk-USNG72WA.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-6DDB67FN.js";
9
- import "./chunk-V5XWUVF5.js";
10
- import "./chunk-UNNCD7A3.js";
8
+ } from "./chunk-HWHWXLM5.js";
9
+ import "./chunk-JDWJ2PJJ.js";
10
+ import "./chunk-IW46BUOP.js";
11
11
  import "./chunk-2FCLCUVR.js";
12
- import "./chunk-SE62ZBNX.js";
12
+ import "./chunk-IQFPRQWM.js";
13
13
  import "./chunk-27NABDXB.js";
14
14
  import "./chunk-M6X6AIEG.js";
15
15
  import "./chunk-ZTOG6LJD.js";
@@ -18,7 +18,7 @@ import "./chunk-JE7LW7Y6.js";
18
18
  import "./chunk-OAN4BXEW.js";
19
19
  import "./chunk-O6DU226D.js";
20
20
  import "./chunk-J7GAZGZT.js";
21
- import "./chunk-5FAPM2GM.js";
21
+ import "./chunk-AS7KAH66.js";
22
22
  import "./chunk-EQ5CGNOT.js";
23
23
  import "./chunk-XZGQZ42D.js";
24
24
  import {
@@ -38,11 +38,11 @@ import "./chunk-LCLH6ZUL.js";
38
38
  import "./chunk-LNNBLB6G.js";
39
39
  import "./chunk-OSXPQSLW.js";
40
40
  import "./chunk-3PG65AXG.js";
41
- import "./chunk-U6JMRMBW.js";
41
+ import "./chunk-WN76RDRU.js";
42
42
  import "./chunk-K2QKX4ZJ.js";
43
43
  import "./chunk-J2GP3J3X.js";
44
- import "./chunk-J6KFWVZ3.js";
45
- import "./chunk-W7VIYHPQ.js";
44
+ import "./chunk-KFQKBXLO.js";
45
+ import "./chunk-GJL3QSMP.js";
46
46
  import "./chunk-AZHWLLPP.js";
47
47
  import "./chunk-HNCM3D7Y.js";
48
48
  import "./chunk-MIPQOHWS.js";
@@ -174,4 +174,4 @@ export {
174
174
  startChatSession,
175
175
  stopSessionExecution
176
176
  };
177
- //# sourceMappingURL=chat-handler-M54IWF5Y.js.map
177
+ //# sourceMappingURL=chat-handler-TIR5CMWE.js.map
@@ -16,10 +16,10 @@ import {
16
16
  terminalManager,
17
17
  tokenFromPassword,
18
18
  verifyPassword
19
- } from "./chunk-XB7IXMUI.js";
19
+ } from "./chunk-PI4X3Y6H.js";
20
20
  import {
21
21
  TEMPLATE_VARIABLES
22
- } from "./chunk-AVQCOSOF.js";
22
+ } from "./chunk-JDBIR2J7.js";
23
23
  import {
24
24
  createToolRegistry,
25
25
  devServerManager,
@@ -29,7 +29,7 @@ import {
29
29
  setMcpManagerForTools,
30
30
  setMcpTools,
31
31
  setNotifyMcpServersChanged
32
- } from "./chunk-V5XWUVF5.js";
32
+ } from "./chunk-JDWJ2PJJ.js";
33
33
  import {
34
34
  deleteOwnedSkill,
35
35
  deleteProjectSkill,
@@ -102,7 +102,7 @@ import {
102
102
  saveWorkflow,
103
103
  saveWorkflowToProject,
104
104
  workflowExists
105
- } from "./chunk-5FAPM2GM.js";
105
+ } from "./chunk-AS7KAH66.js";
106
106
  import {
107
107
  getSessionDisabledServers,
108
108
  setSessionDisabledServers
@@ -167,7 +167,7 @@ import {
167
167
  } from "./chunk-JLAR2CMV.js";
168
168
  import {
169
169
  VERSION
170
- } from "./chunk-EW25UQG3.js";
170
+ } from "./chunk-PXEWE5YP.js";
171
171
  import {
172
172
  agentExists,
173
173
  deleteAgent,
@@ -199,10 +199,10 @@ import {
199
199
  detectModel,
200
200
  getLlmStatus,
201
201
  parseDefaultModelSelection
202
- } from "./chunk-U6JMRMBW.js";
202
+ } from "./chunk-WN76RDRU.js";
203
203
  import {
204
204
  getModelProfile
205
- } from "./chunk-W7VIYHPQ.js";
205
+ } from "./chunk-GJL3QSMP.js";
206
206
  import {
207
207
  getBackendDisplayName
208
208
  } from "./chunk-AZHWLLPP.js";
@@ -2799,9 +2799,45 @@ var SessionManager = class {
2799
2799
  if (!model || !providerId) return void 0;
2800
2800
  return this.providerManager.getModelSettings(providerId, model);
2801
2801
  }
2802
- getCurrentModelContext() {
2802
+ getCurrentModelContext(sessionId) {
2803
+ if (sessionId) {
2804
+ const sessionContext = this.getSessionModelContext(sessionId);
2805
+ if (sessionContext !== void 0) return sessionContext;
2806
+ }
2803
2807
  return this.providerManager.getCurrentModelContext();
2804
2808
  }
2809
+ /**
2810
+ * Resolve the context window for a session's own provider/model, if set.
2811
+ * Exact match first, then fuzzy match (spaces/dashes/underscores variations).
2812
+ * Returns undefined when the session has no model or no matching config —
2813
+ * callers fall back to the global default context.
2814
+ */
2815
+ getSessionModelContext(sessionId) {
2816
+ const session = this.getSession(sessionId);
2817
+ if (!session?.providerId || !session.providerModel) return void 0;
2818
+ return this.resolveModelContext(session.providerId, session.providerModel);
2819
+ }
2820
+ /**
2821
+ * Resolve a provider/model pair's context window (exact, then fuzzy match).
2822
+ * Takes provider/model directly so callers with a raw DB session (e.g.
2823
+ * buildSessionFromDb) can use it without going through getSession, which
2824
+ * would recurse back into this class's session building.
2825
+ */
2826
+ resolveModelContext(providerId, providerModel) {
2827
+ if (!providerId || !providerModel) return void 0;
2828
+ const provider = this.providerManager.getProviders().find((p) => p.id === providerId);
2829
+ if (!provider) return void 0;
2830
+ let modelConfig = provider.models.find((m) => m.id === providerModel);
2831
+ if (!modelConfig) {
2832
+ const normalize = (s) => s.toLowerCase().replace(/[-_\s]+/g, "");
2833
+ const sessionModelNormalized = normalize(providerModel);
2834
+ modelConfig = provider.models.find((m) => {
2835
+ const modelIdNormalized = normalize(m.id);
2836
+ return modelIdNormalized === sessionModelNormalized || modelIdNormalized.includes(sessionModelNormalized) || sessionModelNormalized.includes(modelIdNormalized);
2837
+ });
2838
+ }
2839
+ return modelConfig?.contextWindow;
2840
+ }
2805
2841
  getModelCompactionThreshold(sessionId) {
2806
2842
  const session = this.getSession(sessionId);
2807
2843
  const providerId = session?.providerId ?? this.providerManager.getActiveProviderId();
@@ -3447,11 +3483,12 @@ var SessionManager = class {
3447
3483
  * Stores promptTokens + completionTokens so the tracked size reflects the
3448
3484
  * true context occupancy — the last call's output is re-fed into the next
3449
3485
  * request as an assistant message, so it must count toward the budget.
3450
- * maxTokens comes from providerManager.getCurrentModelContext() - the currently selected model's limit.
3486
+ * maxTokens comes from the session model's context window (falling back to
3487
+ * the currently selected model's limit).
3451
3488
  */
3452
3489
  setCurrentContextSize(sessionId, promptTokens, completionTokens = 0, subAgentId) {
3453
- const state = getSessionState(sessionId, this.providerManager.getCurrentModelContext());
3454
- const maxTokens = this.providerManager.getCurrentModelContext();
3490
+ const state = getSessionState(sessionId, this.getCurrentModelContext(sessionId));
3491
+ const maxTokens = this.getCurrentModelContext(sessionId);
3455
3492
  const currentTokens = promptTokens + completionTokens;
3456
3493
  const compactionCount = state?.contextState.compactionCount ?? 0;
3457
3494
  const dynamicContextChanged = this.getDynamicContextChanged(sessionId);
@@ -3727,27 +3764,7 @@ var SessionManager = class {
3727
3764
  getContextState(sessionId) {
3728
3765
  const session = this.getSession(sessionId);
3729
3766
  const providerManager = this.providerManager;
3730
- let maxTokens;
3731
- if (session?.providerId && session.providerModel) {
3732
- const providers = providerManager.getProviders();
3733
- const provider = providers.find((p) => p.id === session.providerId);
3734
- if (provider) {
3735
- let modelConfig = provider.models.find((m) => m.id === session.providerModel);
3736
- if (!modelConfig && session.providerModel) {
3737
- const normalize = (s) => s.toLowerCase().replace(/[-_\s]+/g, "");
3738
- const sessionModelNormalized = normalize(session.providerModel);
3739
- modelConfig = provider.models.find((m) => {
3740
- const modelIdNormalized = normalize(m.id);
3741
- return modelIdNormalized === sessionModelNormalized || modelIdNormalized.includes(sessionModelNormalized) || sessionModelNormalized.includes(modelIdNormalized);
3742
- });
3743
- }
3744
- maxTokens = modelConfig?.contextWindow ?? providerManager.getCurrentModelContext();
3745
- } else {
3746
- maxTokens = providerManager.getCurrentModelContext();
3747
- }
3748
- } else {
3749
- maxTokens = providerManager.getCurrentModelContext();
3750
- }
3767
+ const maxTokens = session?.providerId && session.providerModel ? this.getSessionModelContext(sessionId) ?? providerManager.getCurrentModelContext() : providerManager.getCurrentModelContext();
3751
3768
  const state = getSessionState(sessionId, maxTokens);
3752
3769
  const dynamicContextChanged = this.getDynamicContextChanged(sessionId);
3753
3770
  const debugDump = this.debugDumpStore.get(sessionId);
@@ -4016,7 +4033,7 @@ All file and git operations should use this directory.
4016
4033
  * Build a full Session object from DB session + EventStore state
4017
4034
  */
4018
4035
  buildSessionFromDb(dbSession) {
4019
- const maxTokens = this.providerManager.getCurrentModelContext();
4036
+ const maxTokens = this.resolveModelContext(dbSession.providerId, dbSession.providerModel) ?? this.providerManager.getCurrentModelContext();
4020
4037
  const eventState = getSessionState(dbSession.id, maxTokens, dbSession.mode);
4021
4038
  if (!eventState) {
4022
4039
  return {
@@ -5947,7 +5964,7 @@ async function createServerHandle(config3) {
5947
5964
  toolRegistry = createToolRegistry();
5948
5965
  logger.info("MCP tools registered", { count: mcpTools.length });
5949
5966
  }
5950
- const { signalMcpReady } = await import("./server-XZQLWIVD.js");
5967
+ const { signalMcpReady } = await import("./server-F72WN4KP.js");
5951
5968
  signalMcpReady();
5952
5969
  });
5953
5970
  const app = express();
@@ -6143,9 +6160,9 @@ async function createServerHandle(config3) {
6143
6160
  const sessionFavoriteRouter = express.Router();
6144
6161
  registerSessionFavoriteRoute(sessionFavoriteRouter, sessionManager);
6145
6162
  app.use("/api", sessionFavoriteRouter);
6146
- const { createTasksService } = await import("./service-ZKH465DA.js");
6147
- const { registerTaskRoutes } = await import("./tasks-I766NBPW.js");
6148
- const { setTasksService } = await import("./tools-ZJXDZLRH.js");
6163
+ const { createTasksService } = await import("./service-A3YLLXW3.js");
6164
+ const { registerTaskRoutes } = await import("./tasks-X5U7DWZR.js");
6165
+ const { setTasksService } = await import("./tools-GCBDO7TU.js");
6149
6166
  const tasksService = createTasksService({
6150
6167
  sessionManager,
6151
6168
  config: config3,
@@ -6474,7 +6491,7 @@ All file and git operations should use this branch.
6474
6491
  app.get("/api/sessions/:id", async (req, res) => {
6475
6492
  const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-KDFMBVP5.js");
6476
6493
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-RTGU63BW.js");
6477
- const { getPendingQuestionsForSession } = await import("./tools-ZJXDZLRH.js");
6494
+ const { getPendingQuestionsForSession } = await import("./tools-GCBDO7TU.js");
6478
6495
  const { getMaxVisibleItems } = await import("./settings-FGXQHKUH.js");
6479
6496
  const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-7F2EOA4U.js");
6480
6497
  const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-I7ELDIIP.js");
@@ -6512,7 +6529,7 @@ All file and git operations should use this branch.
6512
6529
  });
6513
6530
  app.get("/api/sessions/:id/status", async (req, res) => {
6514
6531
  const { projectSessionStatus } = await import("./session-status-6Q5B5PEN.js");
6515
- const { getPendingQuestionsForSession } = await import("./tools-ZJXDZLRH.js");
6532
+ const { getPendingQuestionsForSession } = await import("./tools-GCBDO7TU.js");
6516
6533
  const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-KDFMBVP5.js");
6517
6534
  const { foldPendingConfirmations } = await import("./folding-RTGU63BW.js");
6518
6535
  const sessionId = req.params["id"];
@@ -6544,8 +6561,8 @@ All file and git operations should use this branch.
6544
6561
  if (!session) {
6545
6562
  return res.status(404).json({ error: "Session not found" });
6546
6563
  }
6547
- const { stopSessionExecution } = await import("./chat-handler-M54IWF5Y.js");
6548
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-ZJXDZLRH.js");
6564
+ const { stopSessionExecution } = await import("./chat-handler-TIR5CMWE.js");
6565
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-GCBDO7TU.js");
6549
6566
  sessionManager.clearMessageQueue(sessionId);
6550
6567
  stopSessionExecution(sessionId, sessionManager);
6551
6568
  abortSession(sessionId);
@@ -6795,7 +6812,7 @@ All file and git operations should use this branch.
6795
6812
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6796
6813
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6797
6814
  }
6798
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-ZJXDZLRH.js");
6815
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-GCBDO7TU.js");
6799
6816
  const pendingSessionId = getConfirmationSessionId(callId);
6800
6817
  if (!pendingSessionId) {
6801
6818
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6810,7 +6827,7 @@ All file and git operations should use this branch.
6810
6827
  const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-KDFMBVP5.js");
6811
6828
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-RTGU63BW.js");
6812
6829
  const { createSessionStateMessage } = await import("./protocol-TLODRZSB.js");
6813
- const { getPendingQuestionsForSession } = await import("./tools-ZJXDZLRH.js");
6830
+ const { getPendingQuestionsForSession } = await import("./tools-GCBDO7TU.js");
6814
6831
  const { getMaxVisibleItems } = await import("./settings-FGXQHKUH.js");
6815
6832
  const eventStore = getEventStore2();
6816
6833
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
@@ -6848,7 +6865,7 @@ All file and git operations should use this branch.
6848
6865
  if (!skip && typeof answer !== "string") {
6849
6866
  return res.status(400).json({ error: "answer is required when not skipping" });
6850
6867
  }
6851
- const { provideAnswer } = await import("./tools-ZJXDZLRH.js");
6868
+ const { provideAnswer } = await import("./tools-GCBDO7TU.js");
6852
6869
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6853
6870
  if (!found) {
6854
6871
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -6913,7 +6930,7 @@ All file and git operations should use this branch.
6913
6930
  backend: activeProvider?.backend ?? llmClient.getBackend(),
6914
6931
  model: llmClient.getModel()
6915
6932
  };
6916
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-MNON5G7R.js");
6933
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-SCH2T4JB.js");
6917
6934
  runAgentTurn(
6918
6935
  {
6919
6936
  sessionManager,
@@ -6951,8 +6968,8 @@ All file and git operations should use this branch.
6951
6968
  if (!session) {
6952
6969
  return res.status(404).json({ error: "Session not found" });
6953
6970
  }
6954
- const { stopSessionExecution } = await import("./chat-handler-M54IWF5Y.js");
6955
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-ZJXDZLRH.js");
6971
+ const { stopSessionExecution } = await import("./chat-handler-TIR5CMWE.js");
6972
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-GCBDO7TU.js");
6956
6973
  const queuedMessages = sessionManager.getQueueState(sessionId);
6957
6974
  sessionManager.clearMessageQueue(sessionId);
6958
6975
  stopSessionExecution(sessionId, sessionManager);
@@ -7330,8 +7347,8 @@ All file and git operations should use this branch.
7330
7347
  const backend = req.query["backend"];
7331
7348
  if (!url) return res.status(400).json({ error: "url is required" });
7332
7349
  try {
7333
- const { fetchModelsWithContext } = await import("./provider-manager-FJIPQJMX.js");
7334
- const { getModelProfile: getModelProfile2 } = await import("./profiles-GYHXBWPV.js");
7350
+ const { fetchModelsWithContext } = await import("./provider-manager-7QD5HAOL.js");
7351
+ const { getModelProfile: getModelProfile2 } = await import("./profiles-3YLLEJ2B.js");
7335
7352
  const models = await fetchModelsWithContext(
7336
7353
  url,
7337
7354
  apiKey,
@@ -7398,7 +7415,7 @@ All file and git operations should use this branch.
7398
7415
  });
7399
7416
  return res.json({ success: true, message: { content: response2.content }, raw: response2 });
7400
7417
  }
7401
- const { getModelProfile: getModelProfile2 } = await import("./profiles-GYHXBWPV.js");
7418
+ const { getModelProfile: getModelProfile2 } = await import("./profiles-3YLLEJ2B.js");
7402
7419
  const { getBackendCapabilities } = await import("./backend-67OLCS5O.js");
7403
7420
  const { buildNonStreamingCreateParams } = await import("./client-pure-QSY7TJGK.js");
7404
7421
  const { OpenAIHttpClient } = await import("./http-client-IPUW2MSW.js");
@@ -7754,7 +7771,7 @@ All file and git operations should use this branch.
7754
7771
  });
7755
7772
  async function rebuildMcpTools() {
7756
7773
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-FJAFLDZA.js");
7757
- const { setMcpTools: setMcpTools2 } = await import("./tools-ZJXDZLRH.js");
7774
+ const { setMcpTools: setMcpTools2 } = await import("./tools-GCBDO7TU.js");
7758
7775
  const mcpTools = createMcpTools2(mcpManager);
7759
7776
  setMcpTools2(mcpTools);
7760
7777
  toolRegistry = createToolRegistry();
@@ -8308,7 +8325,7 @@ All file and git operations should use this branch.
8308
8325
  );
8309
8326
  const wss = wssExports.wss;
8310
8327
  deferTasksBroadcast = (projectId, payload) => wssExports.broadcastForProject(projectId, "", { type: "tasks.update", payload });
8311
- const { launchWorkflowRun, abortRunnerRun } = await import("./launch-I5XBYRSJ.js");
8328
+ const { launchWorkflowRun, abortRunnerRun } = await import("./launch-SRSMTDEM.js");
8312
8329
  deferTasksLaunchWorkflow = (sessionId, launch) => {
8313
8330
  const session = sessionManager.getSession(sessionId);
8314
8331
  let llmClient = getLLMClient();
@@ -8346,7 +8363,7 @@ All file and git operations should use this branch.
8346
8363
  const state = sessionManager.getContextState(sessionId);
8347
8364
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
8348
8365
  });
8349
- const { QueueProcessor } = await import("./processor-OZSK7RUD.js");
8366
+ const { QueueProcessor } = await import("./processor-GM4D26E6.js");
8350
8367
  const queueProcessor = new QueueProcessor({
8351
8368
  sessionManager,
8352
8369
  providerManager,
@@ -8432,4 +8449,4 @@ export {
8432
8449
  createServerHandle,
8433
8450
  createServer
8434
8451
  };
8435
- //# sourceMappingURL=chunk-XZ2WAI66.js.map
8452
+ //# sourceMappingURL=chunk-54FTLSWS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createMessageStartEvent
3
- } from "./chunk-SE62ZBNX.js";
3
+ } from "./chunk-IQFPRQWM.js";
4
4
  import {
5
5
  COMPACTION_PROMPT
6
6
  } from "./chunk-27NABDXB.js";
@@ -36,4 +36,4 @@ export {
36
36
  COMPACTION_MAX_RATIO,
37
37
  shouldCompact
38
38
  };
39
- //# sourceMappingURL=chunk-YHAE2SJI.js.map
39
+ //# sourceMappingURL=chunk-A5JAVQKG.js.map
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-3PG65AXG.js";
12
12
  import {
13
13
  parseDefaultModelSelection
14
- } from "./chunk-U6JMRMBW.js";
14
+ } from "./chunk-WN76RDRU.js";
15
15
  import {
16
16
  getDatabase
17
17
  } from "./chunk-5PT4UMRR.js";
@@ -1098,4 +1098,4 @@ export {
1098
1098
  isTaskGateError,
1099
1099
  createTasksService
1100
1100
  };
1101
- //# sourceMappingURL=chunk-5FAPM2GM.js.map
1101
+ //# sourceMappingURL=chunk-AS7KAH66.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-7YF42S7C.js");
166
+ const { runProviderCommand } = await import("./provider-5V6RDVU2.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-C3YVPKCR.js");
203
+ const { runUpdate } = await import("./update-TUGN3JJE.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-V34QG72C.js");
216
+ const { runServe } = await import("./serve-M7I3HWVQ.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-AIFZNTUJ.js.map
228
+ //# sourceMappingURL=chunk-CYXAMXN5.js.map
@@ -61,7 +61,8 @@ var MODEL_PROFILES = [
61
61
  pattern: "deepseek",
62
62
  profile: {
63
63
  name: "DeepSeek",
64
- temperature: 0.6,
64
+ // Per DeepSeek API docs: default temperature is 1.0
65
+ temperature: 1,
65
66
  topP: 0.95,
66
67
  defaultMaxTokens: 16384,
67
68
  supportsVision: false
@@ -172,4 +173,4 @@ export {
172
173
  getModelProfile,
173
174
  modelSupportsVision
174
175
  };
175
- //# sourceMappingURL=chunk-W7VIYHPQ.js.map
176
+ //# sourceMappingURL=chunk-GJL3QSMP.js.map
@@ -4,12 +4,12 @@ import {
4
4
  getToolRegistryForAgent,
5
5
  processEventsForConversation,
6
6
  runTopLevelAgentLoop
7
- } from "./chunk-V5XWUVF5.js";
7
+ } from "./chunk-JDWJ2PJJ.js";
8
8
  import {
9
9
  buildCachedPrompt,
10
10
  computeDynamicContextHash,
11
11
  getToolFingerprint
12
- } from "./chunk-UNNCD7A3.js";
12
+ } from "./chunk-IW46BUOP.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-SE62ZBNX.js";
21
+ } from "./chunk-IQFPRQWM.js";
22
22
  import {
23
23
  buildAgentReminder,
24
24
  buildAgentSmallReminder
@@ -325,4 +325,4 @@ export {
325
325
  runChatTurn,
326
326
  runAgentTurn
327
327
  };
328
- //# sourceMappingURL=chunk-6DDB67FN.js.map
328
+ //# sourceMappingURL=chunk-HWHWXLM5.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-J2GP3J3X.js";
4
4
  import {
5
5
  getModelProfile
6
- } from "./chunk-W7VIYHPQ.js";
6
+ } from "./chunk-GJL3QSMP.js";
7
7
  import {
8
8
  getBackendCapabilities
9
9
  } from "./chunk-AZHWLLPP.js";
@@ -516,4 +516,4 @@ export {
516
516
  createChatDoneEvent,
517
517
  consumeStreamGenerator
518
518
  };
519
- //# sourceMappingURL=chunk-SE62ZBNX.js.map
519
+ //# sourceMappingURL=chunk-IQFPRQWM.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-ZJXDZLRH.js");
108
+ const { getToolRegistryForAgent } = await import("./tools-GCBDO7TU.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-ZJXDZLRH.js");
127
+ const { getToolRegistryForAgent } = await import("./tools-GCBDO7TU.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-UNNCD7A3.js.map
151
+ //# sourceMappingURL=chunk-IW46BUOP.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  runAgentTurn
3
- } from "./chunk-6DDB67FN.js";
3
+ } from "./chunk-HWHWXLM5.js";
4
4
  import {
5
5
  executeSubAgent,
6
6
  getToolRegistryForAgent
7
- } from "./chunk-V5XWUVF5.js";
7
+ } from "./chunk-JDWJ2PJJ.js";
8
8
  import {
9
9
  TurnMetrics,
10
10
  createMessageStartEvent
11
- } from "./chunk-SE62ZBNX.js";
11
+ } from "./chunk-IQFPRQWM.js";
12
12
  import {
13
13
  checkAborted,
14
14
  decodeUtf8,
@@ -27,7 +27,7 @@ import {
27
27
  loadProjectWorkflows,
28
28
  loadUserWorkflows,
29
29
  normalizeWorkflowScope
30
- } from "./chunk-5FAPM2GM.js";
30
+ } from "./chunk-AS7KAH66.js";
31
31
  import {
32
32
  getCurrentContextWindowId,
33
33
  getEventStore
@@ -1002,4 +1002,4 @@ export {
1002
1002
  abortRunnerRun,
1003
1003
  launchWorkflowRun
1004
1004
  };
1005
- //# sourceMappingURL=chunk-AVQCOSOF.js.map
1005
+ //# sourceMappingURL=chunk-JDBIR2J7.js.map
@@ -18,7 +18,7 @@ import {
18
18
  recordLLMFailure,
19
19
  sleepThroughRetryBackoff,
20
20
  streamLLMPure
21
- } from "./chunk-SE62ZBNX.js";
21
+ } from "./chunk-IQFPRQWM.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-5FAPM2GM.js";
64
+ } from "./chunk-AS7KAH66.js";
65
65
  import {
66
66
  getSessionDisabledServers
67
67
  } from "./chunk-EQ5CGNOT.js";
@@ -111,7 +111,7 @@ import {
111
111
  } from "./chunk-LNNBLB6G.js";
112
112
  import {
113
113
  modelSupportsVision
114
- } from "./chunk-W7VIYHPQ.js";
114
+ } from "./chunk-GJL3QSMP.js";
115
115
  import {
116
116
  OUTPUT_LIMITS,
117
117
  cacheSet,
@@ -1916,7 +1916,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
1916
1916
  };
1917
1917
  const contextState = sessionManager.getContextState(sessionId);
1918
1918
  previousContextTokens = contextState.currentTokens;
1919
- const contextWindow = sessionManager.getCurrentModelContext();
1919
+ const contextWindow = sessionManager.getCurrentModelContext(sessionId);
1920
1920
  const availableForOutput = Math.max(256, contextWindow - contextState.currentTokens - OUTPUT_RESERVE_TOKENS);
1921
1921
  let modelSettings = config.modelSettings ?? (currentMaxTokensOverride !== void 0 ? { ...sessionManager.getCurrentModelSettings(sessionId), maxTokens: currentMaxTokensOverride } : sessionManager.getCurrentModelSettings(sessionId));
1922
1922
  if (modelSettings) {
@@ -2040,7 +2040,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2040
2040
  );
2041
2041
  if (!compacting) {
2042
2042
  const contextState = sessionManager.getContextState(sessionId);
2043
- const { shouldCompact, appendCompactionPrompt } = await import("./compactor-F6XMYVHL.js");
2043
+ const { shouldCompact, appendCompactionPrompt } = await import("./compactor-TI352G7B.js");
2044
2044
  if (shouldCompact(
2045
2045
  contextState.currentTokens,
2046
2046
  contextState.maxTokens,
@@ -2056,10 +2056,10 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2056
2056
  truncationRetryCount += 1;
2057
2057
  const currentMaxTokens = result.modelParams?.maxTokens ?? 16384;
2058
2058
  const promptTokens = result.usage.promptTokens;
2059
- const contextWindow = sessionManager.getCurrentModelContext();
2059
+ const contextWindow = sessionManager.getCurrentModelContext(sessionId);
2060
2060
  const newMaxTokens = Math.min(
2061
2061
  Math.floor(currentMaxTokens * 1.5),
2062
- contextWindow - promptTokens - OUTPUT_RESERVE_TOKENS
2062
+ Math.max(256, contextWindow - promptTokens - OUTPUT_RESERVE_TOKENS)
2063
2063
  );
2064
2064
  currentMaxTokensOverride = newMaxTokens;
2065
2065
  const interimStats = turnMetrics.buildStats(statsIdentity, mode);
@@ -3033,7 +3033,7 @@ var callSubAgentTool = {
3033
3033
  };
3034
3034
  }
3035
3035
  try {
3036
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-ZJXDZLRH.js");
3036
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-GCBDO7TU.js");
3037
3037
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3038
3038
  const turnMetrics = new TurnMetrics();
3039
3039
  const result = await executeSubAgent({
@@ -4055,7 +4055,7 @@ var mcpConfigTool = createTool(
4055
4055
  mcpNotifyChanged?.(sessionId);
4056
4056
  }
4057
4057
  async function rebuildTools() {
4058
- const { setMcpTools: setMcpTools2 } = await import("./tools-ZJXDZLRH.js");
4058
+ const { setMcpTools: setMcpTools2 } = await import("./tools-GCBDO7TU.js");
4059
4059
  const mcpTools = createMcpTools(mcpManagerForTools);
4060
4060
  setMcpTools2(mcpTools);
4061
4061
  }
@@ -4939,4 +4939,4 @@ export {
4939
4939
  getToolRegistryForAgent,
4940
4940
  createToolRegistry
4941
4941
  };
4942
- //# sourceMappingURL=chunk-V5XWUVF5.js.map
4942
+ //# sourceMappingURL=chunk-JDWJ2PJJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getModelProfile
3
- } from "./chunk-W7VIYHPQ.js";
3
+ } from "./chunk-GJL3QSMP.js";
4
4
  import {
5
5
  getBackendCapabilities
6
6
  } from "./chunk-AZHWLLPP.js";
@@ -316,4 +316,4 @@ function createLLMClient(config, initialBackend = "unknown") {
316
316
  export {
317
317
  createLLMClient
318
318
  };
319
- //# sourceMappingURL=chunk-J6KFWVZ3.js.map
319
+ //# sourceMappingURL=chunk-KFQKBXLO.js.map