openfox 2.0.117 → 2.0.119

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 (63) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/CHANGELOG.md +42 -0
  3. package/dist/agent-defaults/code-reviewer.agent.md +8 -3
  4. package/dist/{auto-config-AAUO4PKW.js → auto-config-YXNCBYEY.js} +125 -11
  5. package/dist/{chat-handler-URSNELCE.js → chat-handler-M54IWF5Y.js} +15 -14
  6. package/dist/{chunk-HZSKKJHQ.js → chunk-5FAPM2GM.js} +28 -9
  7. package/dist/{chunk-I6MY65LO.js → chunk-6DDB67FN.js} +17 -12
  8. package/dist/{chunk-ZS6MW2WM.js → chunk-AIFZNTUJ.js} +4 -4
  9. package/dist/{chunk-7SDJXHJH.js → chunk-AVQCOSOF.js} +34 -131
  10. package/dist/chunk-EW25UQG3.js +7 -0
  11. package/dist/{chunk-MKWS7TQH.js → chunk-J6KFWVZ3.js} +21 -15
  12. package/dist/{chunk-TGVDUK4N.js → chunk-JOCR4CF4.js} +1 -1
  13. package/dist/chunk-K2QKX4ZJ.js +31 -0
  14. package/dist/{chunk-ZKLE2Q3I.js → chunk-KSDWQ6IZ.js} +1 -1
  15. package/dist/{chunk-TOKQ2UVG.js → chunk-MIPQOHWS.js} +20 -6
  16. package/dist/{chunk-EQ7DK2TG.js → chunk-SE62ZBNX.js} +82 -8
  17. package/dist/{chunk-GZTMCTUS.js → chunk-U6JMRMBW.js} +17 -21
  18. package/dist/{chunk-3PEYTWCS.js → chunk-UNNCD7A3.js} +3 -3
  19. package/dist/{chunk-2PQA3DHY.js → chunk-V5XWUVF5.js} +175 -112
  20. package/dist/{chunk-6XHDNSA3.js → chunk-VFS7TFA7.js} +8 -5
  21. package/dist/{chunk-4GHLULHB.js → chunk-XAAEP5XM.js} +8 -16
  22. package/dist/{chunk-EZD7WFBZ.js → chunk-XB7IXMUI.js} +73 -13
  23. package/dist/{chunk-ECCSVMRT.js → chunk-XZ2WAI66.js} +72 -41
  24. package/dist/{chunk-QQVPUZQB.js → chunk-XZGQZ42D.js} +3 -3
  25. package/dist/{chunk-X3XKYGUN.js → chunk-YHAE2SJI.js} +3 -3
  26. package/dist/cli/dev.js +1 -1
  27. package/dist/cli/index.js +1 -1
  28. package/dist/{client-KCNTDTIR.js → client-R4PI64IL.js} +3 -3
  29. package/dist/{client-pure-B5DHEKQJ.js → client-pure-QSY7TJGK.js} +2 -2
  30. package/dist/{compactor-LAXZLPPA.js → compactor-F6XMYVHL.js} +5 -5
  31. package/dist/{dynamic-context-NNBVVFBT.js → dynamic-context-NXQ2TFAZ.js} +2 -2
  32. package/dist/{events-IVPAMMR5.js → events-KDFMBVP5.js} +2 -2
  33. package/dist/{launch-HSSFGQ5A.js → launch-I5XBYRSJ.js} +15 -14
  34. package/dist/{orchestrator-FVXUJW3K.js → orchestrator-MNON5G7R.js} +14 -13
  35. package/dist/package.json +1 -1
  36. package/dist/{path-security-JTCHWYG3.js → path-security-L4AJJN2V.js} +5 -5
  37. package/dist/{processor-JRVW5QBA.js → processor-OZSK7RUD.js} +25 -13
  38. package/dist/{protocol-CfUkCYxF.d.ts → protocol-D5kJLGWy.d.ts} +16 -9
  39. package/dist/{protocol-HYA5BYVN.js → protocol-TLODRZSB.js} +7 -7
  40. package/dist/provider/index.d.ts +4 -4
  41. package/dist/{provider-Q7J4UFTS.js → provider-7YF42S7C.js} +5 -4
  42. package/dist/{provider-manager-TMBO4DFG.js → provider-manager-FJIPQJMX.js} +5 -4
  43. package/dist/{serve-CW6PR3M2.js → serve-V34QG72C.js} +20 -19
  44. package/dist/server/index.d.ts +5 -3
  45. package/dist/server/index.js +19 -18
  46. package/dist/{server-V46SOIGP.js → server-XZQLWIVD.js} +18 -17
  47. package/dist/{service-M7XJHAK4.js → service-ZKH465DA.js} +6 -5
  48. package/dist/session-status-6Q5B5PEN.js +35 -0
  49. package/dist/shared/index.d.ts +3 -3
  50. package/dist/shared/index.js +1 -1
  51. package/dist/{tasks-X5H5HM4J.js → tasks-I766NBPW.js} +8 -6
  52. package/dist/{tools-2Q3GRECI.js → tools-ZJXDZLRH.js} +12 -11
  53. package/dist/{types-CIVhQMvD.d.ts → types-B5CI_Ql3.d.ts} +3 -1
  54. package/dist/{types-Df7NM9b5.d.ts → types-CZlj7ufS.d.ts} +2 -0
  55. package/dist/{update-YP7IRT6M.js → update-C3YVPKCR.js} +2 -2
  56. package/dist/web/assets/index-BlYcAqzD.js +324 -0
  57. package/dist/web/assets/{index-DTiVSJJu.css → index-D9sfxcRH.css} +1 -1
  58. package/dist/web/index.html +2 -2
  59. package/dist/web/sw.js +1 -1
  60. package/dist/workflow-defaults/default.workflow.json +1 -1
  61. package/package.json +1 -1
  62. package/dist/chunk-NPTI5RCQ.js +0 -7
  63. package/dist/web/assets/index-C58KXxRi.js +0 -324
@@ -2,24 +2,28 @@ import {
2
2
  generateSessionNameForSession,
3
3
  getSessionMessageCount,
4
4
  needsNameGeneration
5
- } from "./chunk-6XHDNSA3.js";
5
+ } from "./chunk-VFS7TFA7.js";
6
6
  import {
7
7
  launchWorkflowRun
8
- } from "./chunk-7SDJXHJH.js";
8
+ } from "./chunk-AVQCOSOF.js";
9
9
  import {
10
10
  runChatTurn
11
- } from "./chunk-I6MY65LO.js";
11
+ } from "./chunk-6DDB67FN.js";
12
12
  import {
13
13
  devServerManager
14
- } from "./chunk-2PQA3DHY.js";
14
+ } from "./chunk-V5XWUVF5.js";
15
15
  import {
16
16
  applyDynamicContext,
17
17
  computeSessionHash,
18
18
  computeUnifiedDiff
19
- } from "./chunk-3PEYTWCS.js";
19
+ } from "./chunk-UNNCD7A3.js";
20
20
  import {
21
21
  appendCompactionPrompt
22
- } from "./chunk-X3XKYGUN.js";
22
+ } from "./chunk-YHAE2SJI.js";
23
+ import {
24
+ hasRecentLLMFailure,
25
+ interruptLLMRetryWait
26
+ } from "./chunk-SE62ZBNX.js";
23
27
  import {
24
28
  onProcessEvent
25
29
  } from "./chunk-ZTOG6LJD.js";
@@ -32,7 +36,7 @@ import {
32
36
  import {
33
37
  combineEventsWithSnapshot,
34
38
  getEventStore
35
- } from "./chunk-TGVDUK4N.js";
39
+ } from "./chunk-JOCR4CF4.js";
36
40
  import {
37
41
  createChatErrorMessage,
38
42
  createChatMessageMessage,
@@ -47,7 +51,7 @@ import {
47
51
  parseClientMessage,
48
52
  serializeServerMessage,
49
53
  storedEventToServerMessage
50
- } from "./chunk-4GHLULHB.js";
54
+ } from "./chunk-XAAEP5XM.js";
51
55
  import {
52
56
  getPlatformShell
53
57
  } from "./chunk-AESOGRFK.js";
@@ -70,7 +74,7 @@ import {
70
74
  } from "./chunk-K44MW7JJ.js";
71
75
  import {
72
76
  createServerMessage
73
- } from "./chunk-ZKLE2Q3I.js";
77
+ } from "./chunk-KSDWQ6IZ.js";
74
78
 
75
79
  // src/server/ws/server.ts
76
80
  import { WebSocketServer, WebSocket as WebSocket2 } from "ws";
@@ -489,13 +493,13 @@ function hashContent(content) {
489
493
  function moduleGitDiff(cwd) {
490
494
  return new Promise((resolve) => {
491
495
  const env = gitSpawnEnv();
492
- const diffProc = spawn2("git", ["diff", "--name-status", "HEAD"], {
496
+ const diffProc = spawn2("git", ["diff", "--ignore-submodules=none", "--name-status", "HEAD"], {
493
497
  cwd,
494
498
  env,
495
499
  stdio: ["ignore", "pipe", "pipe"],
496
500
  windowsHide: true
497
501
  });
498
- const statusProc = spawn2("git", ["status", "--porcelain"], {
502
+ const statusProc = spawn2("git", ["status", "--porcelain", "--ignore-submodules=none"], {
499
503
  cwd,
500
504
  env,
501
505
  stdio: ["ignore", "pipe", "pipe"],
@@ -801,6 +805,7 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
801
805
  sessionManager,
802
806
  sessionId,
803
807
  llmClient: llmForSession(sessionId),
808
+ getSessionLLMClient: () => llmForSession(sessionId),
804
809
  statsIdentity: statsForSession(sessionId),
805
810
  signal: controller.signal,
806
811
  onMessage: (msg) => broadcastForSession(sessionId, msg)
@@ -1192,6 +1197,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1192
1197
  sessionManager,
1193
1198
  sessionId,
1194
1199
  llmClient: llmForSession(sessionId),
1200
+ getSessionLLMClient: () => llmForSession(sessionId),
1195
1201
  statsIdentity: statsForSession(sessionId),
1196
1202
  signal: controller.signal,
1197
1203
  onMessage: (msg) => _broadcastForSession(sessionId, msg),
@@ -1275,7 +1281,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
1275
1281
  }
1276
1282
  const session = sessionManager.requireSession(sessionId);
1277
1283
  try {
1278
- const { buildCachedPrompt } = await import("./dynamic-context-NNBVVFBT.js");
1284
+ const { buildCachedPrompt } = await import("./dynamic-context-NXQ2TFAZ.js");
1279
1285
  const allAgents = await import("./registry-5QL3BOWN.js");
1280
1286
  const agentDef = allAgents.findAgentById(session.mode, await allAgents.loadAllAgentsDefault()) ?? allAgents.findAgentById("planner", await allAgents.loadAllAgentsDefault());
1281
1287
  const modelName = session.providerModel ?? _providerManager?.getCurrentModel();
@@ -1431,6 +1437,7 @@ ${content}` : workflowInfo;
1431
1437
  sessionId,
1432
1438
  controller,
1433
1439
  llmClient: llmForSession(sessionId),
1440
+ getSessionLLMClient: () => llmForSession(sessionId),
1434
1441
  statsIdentity: statsForSession(sessionId),
1435
1442
  broadcastForSession: (sid, msg) => _broadcastForSession(sid, msg),
1436
1443
  onFinished: () => cleanupAfterTurn(sessionId, controller, sendForSession, true)
@@ -1528,6 +1535,59 @@ ${content}` : workflowInfo;
1528
1535
  send({ type: "ack", payload: {}, id: message.id });
1529
1536
  break;
1530
1537
  }
1538
+ // =========================================================================
1539
+ // LLM Retry
1540
+ // =========================================================================
1541
+ case "chat.llm_retry_now": {
1542
+ const payload = message.payload;
1543
+ const retrySessionId = payload?.sessionId ?? client.activeSessionId;
1544
+ if (!retrySessionId) {
1545
+ send(createErrorMessage("NO_SESSION", "No active session", message.id));
1546
+ return;
1547
+ }
1548
+ const interrupted = interruptLLMRetryWait(retrySessionId);
1549
+ send({ type: "ack", payload: { interrupted }, id: message.id });
1550
+ break;
1551
+ }
1552
+ case "chat.retry": {
1553
+ const payload = message.payload;
1554
+ const retrySessionId = payload?.sessionId ?? client.activeSessionId;
1555
+ if (!retrySessionId) {
1556
+ send(createErrorMessage("NO_SESSION", "No active session", message.id));
1557
+ return;
1558
+ }
1559
+ const retrySession = sessionManager.getSession(retrySessionId);
1560
+ if (!retrySession) {
1561
+ send(createErrorMessage("NOT_FOUND", "Session not found", message.id));
1562
+ return;
1563
+ }
1564
+ if (retrySession.isRunning) {
1565
+ send(createErrorMessage("SESSION_RUNNING", "Session is already running", message.id));
1566
+ return;
1567
+ }
1568
+ if (!hasRecentLLMFailure(retrySessionId, 30 * 6e4)) {
1569
+ send(createErrorMessage("NO_FAILED_TURN", "No failed turn to retry", message.id));
1570
+ return;
1571
+ }
1572
+ const latestExec = sessionManager.getLatestWorkflowExecution(retrySessionId);
1573
+ if (latestExec && (latestExec.status === "blocked" || latestExec.status === "running" || latestExec.status === "waiting")) {
1574
+ send(createErrorMessage("WORKFLOW_ACTIVE", "A workflow run is active", message.id));
1575
+ return;
1576
+ }
1577
+ if (retrySession.phase === "blocked") {
1578
+ sessionManager.setPhase(retrySessionId, "build");
1579
+ }
1580
+ const controller = new AbortController();
1581
+ const existingController = activeAgents.get(retrySessionId);
1582
+ if (existingController) {
1583
+ logger.warn("Aborting existing agent before retrying turn", { sessionId: retrySessionId });
1584
+ existingController.abort();
1585
+ }
1586
+ activeAgents.set(retrySessionId, controller);
1587
+ send({ type: "ack", payload: {}, id: message.id });
1588
+ _startTurnWithCompletionChain(retrySessionId, controller);
1589
+ break;
1590
+ }
1531
1591
  default: {
1532
1592
  send(createErrorMessage("UNKNOWN_MESSAGE", `Unknown message type: ${message.type}`, message.id));
1533
1593
  }
@@ -1546,4 +1606,4 @@ export {
1546
1606
  signalMcpReady,
1547
1607
  createWebSocketServer
1548
1608
  };
1549
- //# sourceMappingURL=chunk-EZD7WFBZ.js.map
1609
+ //# sourceMappingURL=chunk-XB7IXMUI.js.map
@@ -16,10 +16,10 @@ import {
16
16
  terminalManager,
17
17
  tokenFromPassword,
18
18
  verifyPassword
19
- } from "./chunk-EZD7WFBZ.js";
19
+ } from "./chunk-XB7IXMUI.js";
20
20
  import {
21
21
  TEMPLATE_VARIABLES
22
- } from "./chunk-7SDJXHJH.js";
22
+ } from "./chunk-AVQCOSOF.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-2PQA3DHY.js";
32
+ } from "./chunk-V5XWUVF5.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-HZSKKJHQ.js";
105
+ } from "./chunk-5FAPM2GM.js";
106
106
  import {
107
107
  getSessionDisabledServers,
108
108
  setSessionDisabledServers
@@ -123,7 +123,7 @@ import {
123
123
  getEventStore,
124
124
  getSessionState,
125
125
  initEventStore
126
- } from "./chunk-TGVDUK4N.js";
126
+ } from "./chunk-JOCR4CF4.js";
127
127
  import {
128
128
  clearWorkflowExecution,
129
129
  createSession,
@@ -151,7 +151,7 @@ import {
151
151
  import {
152
152
  createContextStateMessage,
153
153
  toClientSession
154
- } from "./chunk-4GHLULHB.js";
154
+ } from "./chunk-XAAEP5XM.js";
155
155
  import {
156
156
  getPathSeparator,
157
157
  isAbsolutePath
@@ -167,7 +167,7 @@ import {
167
167
  } from "./chunk-JLAR2CMV.js";
168
168
  import {
169
169
  VERSION
170
- } from "./chunk-NPTI5RCQ.js";
170
+ } from "./chunk-EW25UQG3.js";
171
171
  import {
172
172
  agentExists,
173
173
  deleteAgent,
@@ -199,7 +199,7 @@ import {
199
199
  detectModel,
200
200
  getLlmStatus,
201
201
  parseDefaultModelSelection
202
- } from "./chunk-GZTMCTUS.js";
202
+ } from "./chunk-U6JMRMBW.js";
203
203
  import {
204
204
  getModelProfile
205
205
  } from "./chunk-W7VIYHPQ.js";
@@ -227,7 +227,7 @@ import {
227
227
  } from "./chunk-K44MW7JJ.js";
228
228
  import {
229
229
  createServerMessage
230
- } from "./chunk-ZKLE2Q3I.js";
230
+ } from "./chunk-KSDWQ6IZ.js";
231
231
  import {
232
232
  getGlobalConfigDir
233
233
  } from "./chunk-CQGTEGKL.js";
@@ -5947,7 +5947,7 @@ async function createServerHandle(config3) {
5947
5947
  toolRegistry = createToolRegistry();
5948
5948
  logger.info("MCP tools registered", { count: mcpTools.length });
5949
5949
  }
5950
- const { signalMcpReady } = await import("./server-V46SOIGP.js");
5950
+ const { signalMcpReady } = await import("./server-XZQLWIVD.js");
5951
5951
  signalMcpReady();
5952
5952
  });
5953
5953
  const app = express();
@@ -6143,9 +6143,9 @@ async function createServerHandle(config3) {
6143
6143
  const sessionFavoriteRouter = express.Router();
6144
6144
  registerSessionFavoriteRoute(sessionFavoriteRouter, sessionManager);
6145
6145
  app.use("/api", sessionFavoriteRouter);
6146
- const { createTasksService } = await import("./service-M7XJHAK4.js");
6147
- const { registerTaskRoutes } = await import("./tasks-X5H5HM4J.js");
6148
- const { setTasksService } = await import("./tools-2Q3GRECI.js");
6146
+ const { createTasksService } = await import("./service-ZKH465DA.js");
6147
+ const { registerTaskRoutes } = await import("./tasks-I766NBPW.js");
6148
+ const { setTasksService } = await import("./tools-ZJXDZLRH.js");
6149
6149
  const tasksService = createTasksService({
6150
6150
  sessionManager,
6151
6151
  config: config3,
@@ -6343,8 +6343,8 @@ All file and git operations should use this branch.
6343
6343
  res.json({ workspaces: workspacesList });
6344
6344
  });
6345
6345
  app.get("/api/sessions", async (req, res) => {
6346
- const { getRecentUserPromptsForSession } = await import("./events-IVPAMMR5.js");
6347
- const { getPendingConfirmationsBySession } = await import("./path-security-JTCHWYG3.js");
6346
+ const { getRecentUserPromptsForSession } = await import("./events-KDFMBVP5.js");
6347
+ const { getPendingConfirmationsBySession } = await import("./path-security-L4AJJN2V.js");
6348
6348
  const projectId = req.query["projectId"];
6349
6349
  const rawLimit = req.query["limit"];
6350
6350
  const offset = parseInt(req.query["offset"]) || 0;
@@ -6472,9 +6472,9 @@ All file and git operations should use this branch.
6472
6472
  }
6473
6473
  });
6474
6474
  app.get("/api/sessions/:id", async (req, res) => {
6475
- const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-IVPAMMR5.js");
6475
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-KDFMBVP5.js");
6476
6476
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-RTGU63BW.js");
6477
- const { getPendingQuestionsForSession } = await import("./tools-2Q3GRECI.js");
6477
+ const { getPendingQuestionsForSession } = await import("./tools-ZJXDZLRH.js");
6478
6478
  const { getMaxVisibleItems } = await import("./settings-FGXQHKUH.js");
6479
6479
  const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-7F2EOA4U.js");
6480
6480
  const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-I7ELDIIP.js");
@@ -6510,14 +6510,42 @@ All file and git operations should use this branch.
6510
6510
  activeWorkflowExecution
6511
6511
  });
6512
6512
  });
6513
+ app.get("/api/sessions/:id/status", async (req, res) => {
6514
+ const { projectSessionStatus } = await import("./session-status-6Q5B5PEN.js");
6515
+ const { getPendingQuestionsForSession } = await import("./tools-ZJXDZLRH.js");
6516
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-KDFMBVP5.js");
6517
+ const { foldPendingConfirmations } = await import("./folding-RTGU63BW.js");
6518
+ const sessionId = req.params["id"];
6519
+ if (!sessionId) {
6520
+ return res.status(400).json({ error: "Session id is required" });
6521
+ }
6522
+ const session = sessionManager.getSession(sessionId);
6523
+ if (!session) {
6524
+ return res.status(404).json({ error: "Session not found" });
6525
+ }
6526
+ const activeWorkflowExecution = sessionManager.getActiveWorkflowExecution(sessionId);
6527
+ const activeWorkflowStepName = activeWorkflowExecution?.currentStepName ?? null;
6528
+ const pendingQuestions = getPendingQuestionsForSession(sessionId);
6529
+ const eventStore = getEventStore2();
6530
+ const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
6531
+ const events = combineEventsWithSnapshot(sessionId, snapshot, eventsSinceSnapshot);
6532
+ const pendingConfirmations = foldPendingConfirmations(events);
6533
+ const status = projectSessionStatus({
6534
+ session,
6535
+ pendingQuestionsCount: pendingQuestions.length,
6536
+ pendingConfirmationsCount: pendingConfirmations.length,
6537
+ activeWorkflowStepName
6538
+ });
6539
+ res.json(status);
6540
+ });
6513
6541
  app.delete("/api/sessions/:id", async (req, res) => {
6514
6542
  const sessionId = req.params["id"];
6515
6543
  const session = sessionManager.getSession(sessionId);
6516
6544
  if (!session) {
6517
6545
  return res.status(404).json({ error: "Session not found" });
6518
6546
  }
6519
- const { stopSessionExecution } = await import("./chat-handler-URSNELCE.js");
6520
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-2Q3GRECI.js");
6547
+ const { stopSessionExecution } = await import("./chat-handler-M54IWF5Y.js");
6548
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-ZJXDZLRH.js");
6521
6549
  sessionManager.clearMessageQueue(sessionId);
6522
6550
  stopSessionExecution(sessionId, sessionManager);
6523
6551
  abortSession(sessionId);
@@ -6546,7 +6574,7 @@ All file and git operations should use this branch.
6546
6574
  res.json({ success: true });
6547
6575
  });
6548
6576
  app.post("/api/sessions/:id/provider", async (req, res) => {
6549
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-IVPAMMR5.js");
6577
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-KDFMBVP5.js");
6550
6578
  const { buildMessagesFromStoredEvents } = await import("./folding-RTGU63BW.js");
6551
6579
  const { getMaxVisibleItems } = await import("./settings-FGXQHKUH.js");
6552
6580
  const sessionId = req.params.id;
@@ -6661,7 +6689,7 @@ All file and git operations should use this branch.
6661
6689
  res.json({ success: true });
6662
6690
  });
6663
6691
  app.put("/api/sessions/:id/mode", async (req, res) => {
6664
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-IVPAMMR5.js");
6692
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-KDFMBVP5.js");
6665
6693
  const { buildMessagesFromStoredEvents } = await import("./folding-RTGU63BW.js");
6666
6694
  const { getMaxVisibleItems } = await import("./settings-FGXQHKUH.js");
6667
6695
  const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-7F2EOA4U.js");
@@ -6767,7 +6795,7 @@ All file and git operations should use this branch.
6767
6795
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6768
6796
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6769
6797
  }
6770
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-2Q3GRECI.js");
6798
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-ZJXDZLRH.js");
6771
6799
  const pendingSessionId = getConfirmationSessionId(callId);
6772
6800
  if (!pendingSessionId) {
6773
6801
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6779,10 +6807,10 @@ All file and git operations should use this branch.
6779
6807
  if (!result.found) {
6780
6808
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
6781
6809
  }
6782
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-IVPAMMR5.js");
6810
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-KDFMBVP5.js");
6783
6811
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-RTGU63BW.js");
6784
- const { createSessionStateMessage } = await import("./protocol-HYA5BYVN.js");
6785
- const { getPendingQuestionsForSession } = await import("./tools-2Q3GRECI.js");
6812
+ const { createSessionStateMessage } = await import("./protocol-TLODRZSB.js");
6813
+ const { getPendingQuestionsForSession } = await import("./tools-ZJXDZLRH.js");
6786
6814
  const { getMaxVisibleItems } = await import("./settings-FGXQHKUH.js");
6787
6815
  const eventStore = getEventStore2();
6788
6816
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
@@ -6800,7 +6828,8 @@ All file and git operations should use this branch.
6800
6828
  pendingQuestions,
6801
6829
  void 0,
6802
6830
  void 0,
6803
- hiddenCount
6831
+ hiddenCount,
6832
+ sessionManager.getDisplayWorkflowExecution(sessionId) ?? void 0
6804
6833
  );
6805
6834
  wssExports.broadcastForSession(sessionId, { ...stateMsg, sessionId });
6806
6835
  }
@@ -6819,7 +6848,7 @@ All file and git operations should use this branch.
6819
6848
  if (!skip && typeof answer !== "string") {
6820
6849
  return res.status(400).json({ error: "answer is required when not skipping" });
6821
6850
  }
6822
- const { provideAnswer } = await import("./tools-2Q3GRECI.js");
6851
+ const { provideAnswer } = await import("./tools-ZJXDZLRH.js");
6823
6852
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6824
6853
  if (!found) {
6825
6854
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -6884,7 +6913,7 @@ All file and git operations should use this branch.
6884
6913
  backend: activeProvider?.backend ?? llmClient.getBackend(),
6885
6914
  model: llmClient.getModel()
6886
6915
  };
6887
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-FVXUJW3K.js");
6916
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-MNON5G7R.js");
6888
6917
  runAgentTurn(
6889
6918
  {
6890
6919
  sessionManager,
@@ -6922,15 +6951,15 @@ All file and git operations should use this branch.
6922
6951
  if (!session) {
6923
6952
  return res.status(404).json({ error: "Session not found" });
6924
6953
  }
6925
- const { stopSessionExecution } = await import("./chat-handler-URSNELCE.js");
6926
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-2Q3GRECI.js");
6954
+ const { stopSessionExecution } = await import("./chat-handler-M54IWF5Y.js");
6955
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-ZJXDZLRH.js");
6927
6956
  const queuedMessages = sessionManager.getQueueState(sessionId);
6928
6957
  sessionManager.clearMessageQueue(sessionId);
6929
6958
  stopSessionExecution(sessionId, sessionManager);
6930
6959
  abortSession(sessionId);
6931
6960
  cancelQuestionsForSession(sessionId, "Session stopped by user");
6932
6961
  cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
6933
- const eventStore = (await import("./events-IVPAMMR5.js")).getEventStore();
6962
+ const eventStore = (await import("./events-KDFMBVP5.js")).getEventStore();
6934
6963
  eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
6935
6964
  res.json({ success: true, queuedMessages });
6936
6965
  });
@@ -6944,7 +6973,7 @@ All file and git operations should use this branch.
6944
6973
  if (typeof messageIndex !== "number" || messageIndex < 0) {
6945
6974
  return res.status(400).json({ error: "messageIndex must be a non-negative number" });
6946
6975
  }
6947
- const { truncateSessionMessages } = await import("./events-IVPAMMR5.js");
6976
+ const { truncateSessionMessages } = await import("./events-KDFMBVP5.js");
6948
6977
  truncateSessionMessages(sessionId, messageIndex);
6949
6978
  res.json({ success: true });
6950
6979
  });
@@ -6964,7 +6993,7 @@ All file and git operations should use this branch.
6964
6993
  if (attachments !== void 0 && !Array.isArray(attachments)) {
6965
6994
  return res.status(400).json({ error: "attachments must be an array if provided" });
6966
6995
  }
6967
- const { getEventStore: getEventStore2 } = await import("./events-IVPAMMR5.js");
6996
+ const { getEventStore: getEventStore2 } = await import("./events-KDFMBVP5.js");
6968
6997
  const { buildMessagesFromStoredEvents } = await import("./folding-RTGU63BW.js");
6969
6998
  const eventStore = getEventStore2();
6970
6999
  const events = eventStore.getEvents(sessionId);
@@ -6977,7 +7006,7 @@ All file and git operations should use this branch.
6977
7006
  if (msg.role !== "user" || msg.isSystemGenerated) {
6978
7007
  return res.status(400).json({ error: "Can only replay user messages" });
6979
7008
  }
6980
- const { truncateSessionMessages } = await import("./events-IVPAMMR5.js");
7009
+ const { truncateSessionMessages } = await import("./events-KDFMBVP5.js");
6981
7010
  truncateSessionMessages(sessionId, msgIndex - 1);
6982
7011
  sessionManager.queueMessage(
6983
7012
  sessionId,
@@ -7172,6 +7201,7 @@ All file and git operations should use this branch.
7172
7201
  ...m.nonThinkingExtraKwargs !== void 0 && { nonThinkingExtraKwargs: m.nonThinkingExtraKwargs },
7173
7202
  ...m.thinkingQueryParams !== void 0 && { thinkingQueryParams: m.thinkingQueryParams },
7174
7203
  ...m.nonThinkingQueryParams !== void 0 && { nonThinkingQueryParams: m.nonThinkingQueryParams },
7204
+ ...m.omitParams !== void 0 && { omitParams: m.omitParams },
7175
7205
  ...m.temperature !== void 0 && { temperature: m.temperature },
7176
7206
  ...m.topP !== void 0 && { topP: m.topP },
7177
7207
  ...m.topK !== void 0 && { topK: m.topK },
@@ -7300,7 +7330,7 @@ All file and git operations should use this branch.
7300
7330
  const backend = req.query["backend"];
7301
7331
  if (!url) return res.status(400).json({ error: "url is required" });
7302
7332
  try {
7303
- const { fetchModelsWithContext } = await import("./provider-manager-TMBO4DFG.js");
7333
+ const { fetchModelsWithContext } = await import("./provider-manager-FJIPQJMX.js");
7304
7334
  const { getModelProfile: getModelProfile2 } = await import("./profiles-GYHXBWPV.js");
7305
7335
  const models = await fetchModelsWithContext(
7306
7336
  url,
@@ -7336,7 +7366,7 @@ All file and git operations should use this branch.
7336
7366
  if (!url) return res.status(400).json({ error: "url is required" });
7337
7367
  if (!models?.length) return res.status(400).json({ error: "models is required" });
7338
7368
  try {
7339
- const { autoConfig } = await import("./auto-config-AAUO4PKW.js");
7369
+ const { autoConfig } = await import("./auto-config-YXNCBYEY.js");
7340
7370
  const result = await autoConfig({
7341
7371
  url,
7342
7372
  ...apiKey ? { apiKey } : {},
@@ -7370,7 +7400,7 @@ All file and git operations should use this branch.
7370
7400
  }
7371
7401
  const { getModelProfile: getModelProfile2 } = await import("./profiles-GYHXBWPV.js");
7372
7402
  const { getBackendCapabilities } = await import("./backend-67OLCS5O.js");
7373
- const { buildNonStreamingCreateParams } = await import("./client-pure-B5DHEKQJ.js");
7403
+ const { buildNonStreamingCreateParams } = await import("./client-pure-QSY7TJGK.js");
7374
7404
  const { OpenAIHttpClient } = await import("./http-client-IPUW2MSW.js");
7375
7405
  const { ensureVersionPrefix } = await import("./url-utils-C5BM7NF7.js");
7376
7406
  const profile = getModelProfile2(model);
@@ -7381,6 +7411,7 @@ All file and git operations should use this branch.
7381
7411
  if (modelConfig?.topK !== void 0) modelSettings["topK"] = modelConfig.topK;
7382
7412
  if (modelConfig?.maxTokens !== void 0) modelSettings["maxTokens"] = modelConfig.maxTokens;
7383
7413
  if (modelConfig?.supportsVision !== void 0) modelSettings["supportsVision"] = modelConfig.supportsVision;
7414
+ if (modelConfig?.omitParams !== void 0) modelSettings["omitParams"] = modelConfig.omitParams;
7384
7415
  const rawQP = mode === "thinking" ? modelConfig?.thinkingQueryParams : modelConfig?.nonThinkingQueryParams;
7385
7416
  if (rawQP) {
7386
7417
  modelSettings["queryParams"] = JSON.parse(rawQP);
@@ -7723,7 +7754,7 @@ All file and git operations should use this branch.
7723
7754
  });
7724
7755
  async function rebuildMcpTools() {
7725
7756
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-FJAFLDZA.js");
7726
- const { setMcpTools: setMcpTools2 } = await import("./tools-2Q3GRECI.js");
7757
+ const { setMcpTools: setMcpTools2 } = await import("./tools-ZJXDZLRH.js");
7727
7758
  const mcpTools = createMcpTools2(mcpManager);
7728
7759
  setMcpTools2(mcpTools);
7729
7760
  toolRegistry = createToolRegistry();
@@ -8277,7 +8308,7 @@ All file and git operations should use this branch.
8277
8308
  );
8278
8309
  const wss = wssExports.wss;
8279
8310
  deferTasksBroadcast = (projectId, payload) => wssExports.broadcastForProject(projectId, "", { type: "tasks.update", payload });
8280
- const { launchWorkflowRun, abortRunnerRun } = await import("./launch-HSSFGQ5A.js");
8311
+ const { launchWorkflowRun, abortRunnerRun } = await import("./launch-I5XBYRSJ.js");
8281
8312
  deferTasksLaunchWorkflow = (sessionId, launch) => {
8282
8313
  const session = sessionManager.getSession(sessionId);
8283
8314
  let llmClient = getLLMClient();
@@ -8315,7 +8346,7 @@ All file and git operations should use this branch.
8315
8346
  const state = sessionManager.getContextState(sessionId);
8316
8347
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
8317
8348
  });
8318
- const { QueueProcessor } = await import("./processor-JRVW5QBA.js");
8349
+ const { QueueProcessor } = await import("./processor-OZSK7RUD.js");
8319
8350
  const queueProcessor = new QueueProcessor({
8320
8351
  sessionManager,
8321
8352
  providerManager,
@@ -8401,4 +8432,4 @@ export {
8401
8432
  createServerHandle,
8402
8433
  createServer
8403
8434
  };
8404
- //# sourceMappingURL=chunk-ECCSVMRT.js.map
8435
+ //# sourceMappingURL=chunk-XZ2WAI66.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getEventStore
3
- } from "./chunk-TGVDUK4N.js";
3
+ } from "./chunk-JOCR4CF4.js";
4
4
  import {
5
5
  createChatPathConfirmationMessage
6
- } from "./chunk-4GHLULHB.js";
6
+ } from "./chunk-XAAEP5XM.js";
7
7
  import {
8
8
  getPlatformShell
9
9
  } from "./chunk-AESOGRFK.js";
@@ -671,4 +671,4 @@ export {
671
671
  getConfirmationSessionId,
672
672
  getPendingConfirmationsBySession
673
673
  };
674
- //# sourceMappingURL=chunk-QQVPUZQB.js.map
674
+ //# sourceMappingURL=chunk-XZGQZ42D.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  createMessageStartEvent
3
- } from "./chunk-EQ7DK2TG.js";
3
+ } from "./chunk-SE62ZBNX.js";
4
4
  import {
5
5
  COMPACTION_PROMPT
6
6
  } from "./chunk-27NABDXB.js";
7
7
  import {
8
8
  getCurrentWindowMessageOptions
9
- } from "./chunk-TGVDUK4N.js";
9
+ } from "./chunk-JOCR4CF4.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-X3XKYGUN.js.map
39
+ //# sourceMappingURL=chunk-YHAE2SJI.js.map
package/dist/cli/dev.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-ZS6MW2WM.js";
4
+ } from "../chunk-AIFZNTUJ.js";
5
5
  import "../chunk-AGXJ5O63.js";
6
6
  import {
7
7
  logger
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-ZS6MW2WM.js";
4
+ } from "../chunk-AIFZNTUJ.js";
5
5
  import "../chunk-AGXJ5O63.js";
6
6
  import {
7
7
  logger
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createLLMClient
3
- } from "./chunk-MKWS7TQH.js";
3
+ } from "./chunk-J6KFWVZ3.js";
4
4
  import "./chunk-W7VIYHPQ.js";
5
5
  import "./chunk-AZHWLLPP.js";
6
6
  import "./chunk-HNCM3D7Y.js";
7
- import "./chunk-TOKQ2UVG.js";
7
+ import "./chunk-MIPQOHWS.js";
8
8
  import "./chunk-LTYL6ZGH.js";
9
9
  import "./chunk-HD6Y77RO.js";
10
10
  import "./chunk-5PT4UMRR.js";
@@ -13,4 +13,4 @@ import "./chunk-YLJ4XMA6.js";
13
13
  export {
14
14
  createLLMClient
15
15
  };
16
- //# sourceMappingURL=client-KCNTDTIR.js.map
16
+ //# sourceMappingURL=client-R4PI64IL.js.map
@@ -8,7 +8,7 @@ import {
8
8
  mapFinishReason,
9
9
  parseToolArguments,
10
10
  resolveAttachmentsInMessages
11
- } from "./chunk-TOKQ2UVG.js";
11
+ } from "./chunk-MIPQOHWS.js";
12
12
  import "./chunk-YLJ4XMA6.js";
13
13
  export {
14
14
  buildModelParams,
@@ -21,4 +21,4 @@ export {
21
21
  parseToolArguments,
22
22
  resolveAttachmentsInMessages
23
23
  };
24
- //# sourceMappingURL=client-pure-B5DHEKQJ.js.map
24
+ //# sourceMappingURL=client-pure-QSY7TJGK.js.map
@@ -3,10 +3,10 @@ import {
3
3
  COMPACTION_MAX_RATIO,
4
4
  appendCompactionPrompt,
5
5
  shouldCompact
6
- } from "./chunk-X3XKYGUN.js";
7
- import "./chunk-EQ7DK2TG.js";
6
+ } from "./chunk-YHAE2SJI.js";
7
+ import "./chunk-SE62ZBNX.js";
8
8
  import "./chunk-27NABDXB.js";
9
- import "./chunk-TGVDUK4N.js";
9
+ import "./chunk-JOCR4CF4.js";
10
10
  import "./chunk-KLQEL2DZ.js";
11
11
  import "./chunk-AESOGRFK.js";
12
12
  import "./chunk-3KBRMBTP.js";
@@ -17,7 +17,7 @@ import "./chunk-3PG65AXG.js";
17
17
  import "./chunk-J2GP3J3X.js";
18
18
  import "./chunk-W7VIYHPQ.js";
19
19
  import "./chunk-AZHWLLPP.js";
20
- import "./chunk-TOKQ2UVG.js";
20
+ import "./chunk-MIPQOHWS.js";
21
21
  import "./chunk-HD6Y77RO.js";
22
22
  import "./chunk-5PT4UMRR.js";
23
23
  import "./chunk-K44MW7JJ.js";
@@ -29,4 +29,4 @@ export {
29
29
  appendCompactionPrompt,
30
30
  shouldCompact
31
31
  };
32
- //# sourceMappingURL=compactor-LAXZLPPA.js.map
32
+ //# sourceMappingURL=compactor-F6XMYVHL.js.map
@@ -5,7 +5,7 @@ import {
5
5
  computeSessionHash,
6
6
  computeUnifiedDiff,
7
7
  getToolFingerprint
8
- } from "./chunk-3PEYTWCS.js";
8
+ } from "./chunk-UNNCD7A3.js";
9
9
  import "./chunk-2FCLCUVR.js";
10
10
  import "./chunk-27NABDXB.js";
11
11
  import "./chunk-AESOGRFK.js";
@@ -25,4 +25,4 @@ export {
25
25
  computeUnifiedDiff,
26
26
  getToolFingerprint
27
27
  };
28
- //# sourceMappingURL=dynamic-context-NNBVVFBT.js.map
28
+ //# sourceMappingURL=dynamic-context-NXQ2TFAZ.js.map