openfox 2.0.147 → 2.0.149

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 (45) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/CHANGELOG.md +21 -0
  3. package/dist/{auto-continue-FGQ63HHR.js → auto-continue-AZRNVDV5.js} +7 -7
  4. package/dist/{chat-handler-VCED3JYF.js → chat-handler-NJGT2L65.js} +10 -10
  5. package/dist/{chunk-AJMBQMJH.js → chunk-2GIY77DT.js} +191 -14
  6. package/dist/chunk-2IK5KDVV.js +7 -0
  7. package/dist/{chunk-UOBJP4GN.js → chunk-7HNACZXD.js} +10 -10
  8. package/dist/{chunk-2DBWCXAQ.js → chunk-A6YTJZAO.js} +2 -2
  9. package/dist/{chunk-FAN4P45J.js → chunk-BAN2F7TG.js} +18 -2
  10. package/dist/{chunk-P7KUU5VB.js → chunk-E4RD42PU.js} +2 -2
  11. package/dist/{chunk-L2RESXUF.js → chunk-EBMHUSMZ.js} +2 -2
  12. package/dist/{chunk-QHFJRUJV.js → chunk-I46WU3NP.js} +4 -4
  13. package/dist/{chunk-QMU3ZY2C.js → chunk-JRWG4KWV.js} +3 -1
  14. package/dist/{chunk-ESHP42KO.js → chunk-MA4NG3F7.js} +2 -2
  15. package/dist/{chunk-AWBV2VXO.js → chunk-MICSOCCE.js} +3 -3
  16. package/dist/{chunk-ABXERHIY.js → chunk-N342GU3N.js} +19 -8
  17. package/dist/{chunk-YQJ6HEFS.js → chunk-RXKZVMKL.js} +75 -54
  18. package/dist/{chunk-ORIPUMOQ.js → chunk-XWKX5IAU.js} +2 -2
  19. package/dist/{chunk-2V6QL6IW.js → chunk-ZWI4T4WF.js} +5 -5
  20. package/dist/cli/dev.js +1 -1
  21. package/dist/cli/index.js +1 -1
  22. package/dist/{client-L4PANCG4.js → client-WQFM3PDL.js} +3 -3
  23. package/dist/{client-pure-YZ4IGCU4.js → client-pure-EM26AITO.js} +2 -2
  24. package/dist/{compactor-YY7PO2XE.js → compactor-JDR6AGEW.js} +4 -4
  25. package/dist/{dynamic-context-YLRA34WJ.js → dynamic-context-SS3AVCVM.js} +2 -2
  26. package/dist/{export-import-R4E5BUQS.js → export-import-QT7CV7ZU.js} +2 -2
  27. package/dist/{launch-QP2BI3PB.js → launch-2DPUISQR.js} +10 -10
  28. package/dist/{orchestrator-7T62RLDL.js → orchestrator-2BBZC4VH.js} +11 -9
  29. package/dist/package.json +1 -1
  30. package/dist/{processor-LDLRELLS.js → processor-N3EIGT4S.js} +9 -9
  31. package/dist/{provider-QE7XSGYA.js → provider-52J4WIIQ.js} +4 -4
  32. package/dist/{provider-manager-WW2EF76W.js → provider-manager-6EACWIDV.js} +4 -4
  33. package/dist/{serve-A4AJAH2N.js → serve-O44ZIZ7N.js} +15 -15
  34. package/dist/server/index.d.ts +3 -0
  35. package/dist/server/index.js +14 -14
  36. package/dist/{server-A3EGJ6MD.js → server-Q5PTCS4G.js} +13 -13
  37. package/dist/{service-KMOSB6SU.js → service-ALXVEWCE.js} +5 -5
  38. package/dist/{tasks-X5DM553T.js → tasks-LD3VJYFH.js} +5 -5
  39. package/dist/{tools-MRC27SZG.js → tools-SK4EU3D5.js} +7 -7
  40. package/dist/{update-MLDVVG3D.js → update-32UNL44B.js} +2 -2
  41. package/dist/web/assets/{index-CkVmYTBd.js → index-Cith3wH6.js} +55 -55
  42. package/dist/web/index.html +1 -1
  43. package/dist/web/sw.js +1 -1
  44. package/package.json +1 -1
  45. package/dist/chunk-65KDNVRA.js +0 -7
@@ -434,6 +434,8 @@ function mapFinishReason(reason) {
434
434
  }
435
435
 
436
436
  export {
437
+ TEXT_MIME_PREFIXES,
438
+ TEXT_MIME_EXACT,
437
439
  resolveAttachmentsInMessages,
438
440
  parseToolArguments,
439
441
  buildModelParams,
@@ -444,4 +446,4 @@ export {
444
446
  buildStreamingCreateParams,
445
447
  mapFinishReason
446
448
  };
447
- //# sourceMappingURL=chunk-QMU3ZY2C.js.map
449
+ //# sourceMappingURL=chunk-JRWG4KWV.js.map
@@ -329,7 +329,7 @@ function resolveAgentDef(sessionManager, sessionId) {
329
329
  });
330
330
  }
331
331
  async function getEffectiveToolDefinitions(agentDef, sessionId, modelName) {
332
- const { getToolRegistryForAgent } = await import("./tools-MRC27SZG.js");
332
+ const { getToolRegistryForAgent } = await import("./tools-SK4EU3D5.js");
333
333
  const { isDescribeImageEligible } = await import("./describe-image-Z5WS6YU3.js");
334
334
  const all = getToolRegistryForAgent(agentDef, sessionId).definitions;
335
335
  const eligible = await isDescribeImageEligible(modelName);
@@ -398,4 +398,4 @@ export {
398
398
  computeSessionHash,
399
399
  applyDynamicContext
400
400
  };
401
- //# sourceMappingURL=chunk-ESHP42KO.js.map
401
+ //# sourceMappingURL=chunk-MA4NG3F7.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-OA2FURC3.js";
5
5
  import {
6
6
  createLLMClient
7
- } from "./chunk-L2RESXUF.js";
7
+ } from "./chunk-EBMHUSMZ.js";
8
8
  import {
9
9
  getModelProfile
10
10
  } from "./chunk-TS5WKTFB.js";
@@ -20,7 +20,7 @@ import {
20
20
  } from "./chunk-HNCM3D7Y.js";
21
21
  import {
22
22
  resolveAttachmentsInMessages
23
- } from "./chunk-QMU3ZY2C.js";
23
+ } from "./chunk-JRWG4KWV.js";
24
24
  import {
25
25
  sanitizeToolSchema
26
26
  } from "./chunk-XG3AUMPI.js";
@@ -920,4 +920,4 @@ export {
920
920
  parseDefaultModelSelection,
921
921
  createProviderManager
922
922
  };
923
- //# sourceMappingURL=chunk-AWBV2VXO.js.map
923
+ //# sourceMappingURL=chunk-MICSOCCE.js.map
@@ -3,14 +3,14 @@ import {
3
3
  checkToolChangesAndInject,
4
4
  computeDynamicContextHash,
5
5
  getToolFingerprint
6
- } from "./chunk-ESHP42KO.js";
6
+ } from "./chunk-MA4NG3F7.js";
7
7
  import {
8
8
  createAssemblyResult,
9
9
  getConversationMessages,
10
10
  getToolRegistryForAgent,
11
11
  processEventsForConversation,
12
12
  runTopLevelAgentLoop
13
- } from "./chunk-AJMBQMJH.js";
13
+ } from "./chunk-2GIY77DT.js";
14
14
  import {
15
15
  getAllInstructions,
16
16
  getEnabledSkillMetadata
@@ -24,8 +24,9 @@ import {
24
24
  import {
25
25
  TurnMetrics,
26
26
  createChatDoneEvent,
27
- createMessageStartEvent
28
- } from "./chunk-FAN4P45J.js";
27
+ createMessageStartEvent,
28
+ sanitizeRetryPatterns
29
+ } from "./chunk-BAN2F7TG.js";
29
30
  import {
30
31
  buildAgentReminder,
31
32
  buildAgentSmallReminder,
@@ -64,7 +65,16 @@ async function buildRetryPatterns() {
64
65
  if (oldXmlProtection !== null) {
65
66
  const disabled = oldXmlProtection === "true";
66
67
  return {
67
- retryPatterns: disabled ? [] : [{ field: "both", pattern: "<(tool_call|function=|/tool_call|parameter=)", action: "retry", active: true }],
68
+ retryPatterns: sanitizeRetryPatterns(
69
+ disabled ? [] : [
70
+ {
71
+ field: "both",
72
+ pattern: "<(tool_call|function=|/tool_call|parameter=)",
73
+ action: "retry",
74
+ active: true
75
+ }
76
+ ]
77
+ ),
68
78
  maxRetriesPerTurn: 10
69
79
  };
70
80
  }
@@ -73,7 +83,7 @@ async function buildRetryPatterns() {
73
83
  try {
74
84
  const parsed = JSON.parse(raw);
75
85
  return {
76
- retryPatterns: Array.isArray(parsed.patterns) ? parsed.patterns : [],
86
+ retryPatterns: sanitizeRetryPatterns(Array.isArray(parsed.patterns) ? parsed.patterns : []),
77
87
  maxRetriesPerTurn: typeof parsed.maxRetriesPerTurn === "number" ? parsed.maxRetriesPerTurn : 10
78
88
  };
79
89
  } catch {
@@ -357,7 +367,7 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
357
367
  getConversationMessages: buildGetConversationMessages(options.sessionId, resolveAgentClient, append),
358
368
  injectAgentReminder: () => injectAgentReminder(options.sessionId, agentDef),
359
369
  rebuildCachedContext: async () => {
360
- const { applyDynamicContext } = await import("./dynamic-context-YLRA34WJ.js");
370
+ const { applyDynamicContext } = await import("./dynamic-context-SS3AVCVM.js");
361
371
  await applyDynamicContext(options.sessionManager, options.sessionId, agentLlmClient.getModel());
362
372
  },
363
373
  ...options.initialCompacting ? { initialCompacting: true } : {},
@@ -384,7 +394,8 @@ function buildSnapshot(sessionManager, sessionId, _lastStats) {
384
394
  }
385
395
 
386
396
  export {
397
+ buildRetryPatterns,
387
398
  runChatTurn,
388
399
  runAgentTurn
389
400
  };
390
- //# sourceMappingURL=chunk-ABXERHIY.js.map
401
+ //# sourceMappingURL=chunk-N342GU3N.js.map
@@ -9,10 +9,10 @@ import {
9
9
  terminalManager,
10
10
  tokenFromPassword,
11
11
  verifyPassword
12
- } from "./chunk-UOBJP4GN.js";
12
+ } from "./chunk-7HNACZXD.js";
13
13
  import {
14
14
  TEMPLATE_VARIABLES
15
- } from "./chunk-2V6QL6IW.js";
15
+ } from "./chunk-ZWI4T4WF.js";
16
16
  import {
17
17
  projectSessionStatus
18
18
  } from "./chunk-T3S5MTMD.js";
@@ -42,7 +42,7 @@ import {
42
42
  setMcpManagerForTools,
43
43
  setMcpTools,
44
44
  setNotifyMcpServersChanged
45
- } from "./chunk-AJMBQMJH.js";
45
+ } from "./chunk-2GIY77DT.js";
46
46
  import {
47
47
  deleteOwnedSkill,
48
48
  deleteProjectSkill,
@@ -106,7 +106,7 @@ import {
106
106
  saveWorkflow,
107
107
  saveWorkflowToProject,
108
108
  workflowExists
109
- } from "./chunk-2DBWCXAQ.js";
109
+ } from "./chunk-A6YTJZAO.js";
110
110
  import {
111
111
  clearSessionOverrides,
112
112
  computeDisabledServersForProject,
@@ -218,13 +218,13 @@ import {
218
218
  detectModel,
219
219
  getLlmStatus,
220
220
  parseDefaultModelSelection
221
- } from "./chunk-AWBV2VXO.js";
221
+ } from "./chunk-MICSOCCE.js";
222
222
  import {
223
223
  buildOpenFoxMcpBootstrap
224
224
  } from "./chunk-YNMP647F.js";
225
225
  import {
226
226
  VERSION
227
- } from "./chunk-65KDNVRA.js";
227
+ } from "./chunk-2IK5KDVV.js";
228
228
  import {
229
229
  deleteProject,
230
230
  getProject,
@@ -1576,6 +1576,17 @@ function createMockLLMClient() {
1576
1576
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
1577
1577
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
1578
1578
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
1579
+ var TOOL_CALL_TIMEOUT_MARGIN_SECONDS = 30;
1580
+ var TOOL_CALL_TIMEOUT_DEFAULT_SECONDS = 60;
1581
+ var TOOL_CALL_TIMEOUT_MAX_SECONDS = 3600;
1582
+ function effectiveRequestTimeoutSeconds(configTimeout, args) {
1583
+ const configSeconds = typeof configTimeout === "number" && Number.isFinite(configTimeout) && configTimeout > 0 ? configTimeout : 0;
1584
+ const arg = args["timeout"];
1585
+ const argSeconds = typeof arg === "number" && Number.isFinite(arg) && arg > 0 ? arg : 0;
1586
+ const argCandidate = argSeconds > 0 ? Math.min(argSeconds + TOOL_CALL_TIMEOUT_MARGIN_SECONDS, TOOL_CALL_TIMEOUT_MAX_SECONDS) : 0;
1587
+ const effective = Math.max(configSeconds, argCandidate);
1588
+ return effective > 0 ? effective : TOOL_CALL_TIMEOUT_DEFAULT_SECONDS;
1589
+ }
1579
1590
  function withoutAuthorizationHeader(headers) {
1580
1591
  if (!headers) return void 0;
1581
1592
  const kept = Object.entries(headers).filter(([key]) => key.trim().toLowerCase() !== "authorization");
@@ -1766,27 +1777,29 @@ var McpManager = class {
1766
1777
  const entry = this.servers.get(serverName);
1767
1778
  if (!entry) return { success: false, error: `MCP server '${serverName}' not found` };
1768
1779
  if (!entry.client) return { success: false, error: `MCP server '${serverName}' is not connected` };
1780
+ const timeoutSeconds = effectiveRequestTimeoutSeconds(entry.config.timeout, args);
1781
+ const timeoutMs = timeoutSeconds * 1e3;
1782
+ const controller = new AbortController();
1783
+ let timer;
1784
+ const timeoutPromise = new Promise((_, reject) => {
1785
+ timer = setTimeout(() => {
1786
+ const reason = new Error(`MCP tool call timed out after ${timeoutSeconds} seconds`);
1787
+ controller.abort(reason);
1788
+ reject(reason);
1789
+ }, timeoutMs);
1790
+ });
1769
1791
  try {
1770
- const timeout = entry.config.timeout;
1771
- const requestOptions = timeout !== void 0 && timeout > 0 ? { timeout: timeout * 1e3 } : void 0;
1772
1792
  let result;
1773
- if (timeout !== void 0 && timeout > 0) {
1774
- let timer;
1775
- const timeoutPromise = new Promise((_, reject) => {
1776
- timer = setTimeout(() => {
1777
- reject(new Error(`MCP tool call timed out after ${timeout} seconds`));
1778
- }, timeout * 1e3);
1779
- });
1780
- try {
1781
- result = await Promise.race([
1782
- entry.client.callTool({ name: toolName, arguments: args }, void 0, requestOptions),
1783
- timeoutPromise
1784
- ]);
1785
- } finally {
1786
- if (timer) clearTimeout(timer);
1787
- }
1788
- } else {
1789
- result = await entry.client.callTool({ name: toolName, arguments: args });
1793
+ try {
1794
+ result = await Promise.race([
1795
+ entry.client.callTool({ name: toolName, arguments: args }, void 0, {
1796
+ timeout: timeoutMs,
1797
+ signal: controller.signal
1798
+ }),
1799
+ timeoutPromise
1800
+ ]);
1801
+ } finally {
1802
+ if (timer) clearTimeout(timer);
1790
1803
  }
1791
1804
  const content = result.content;
1792
1805
  const textParts = content.filter((c) => c.type === "text").map((c) => c.text);
@@ -2849,6 +2862,7 @@ var SessionManager = class {
2849
2862
  // Sessions already warned about an unresolvable provider — getContextState runs on every
2850
2863
  // turn, and the warning is only worth one line per session.
2851
2864
  unknownProviderWarned = /* @__PURE__ */ new Set();
2865
+ subAgentContextSizes = /* @__PURE__ */ new Map();
2852
2866
  switchLocks = /* @__PURE__ */ new Map();
2853
2867
  workspaceCreationLocks = /* @__PURE__ */ new Map();
2854
2868
  // Cooperative pause: in-memory only (a pause is only meaningful for a live,
@@ -3147,8 +3161,8 @@ var SessionManager = class {
3147
3161
  * @throws Error for invalid payloads or unknown project
3148
3162
  */
3149
3163
  async importSession(projectId, rawPayload) {
3150
- const { parseSessionExport, IMPORTED_SESSION_REMINDER, SESSION_EXPORT_VERSION } = await import("./export-import-R4E5BUQS.js");
3151
- const { injectContextDriftReminders, getToolSetFingerprint } = await import("./dynamic-context-YLRA34WJ.js");
3164
+ const { parseSessionExport, IMPORTED_SESSION_REMINDER, SESSION_EXPORT_VERSION } = await import("./export-import-QT7CV7ZU.js");
3165
+ const { injectContextDriftReminders, getToolSetFingerprint } = await import("./dynamic-context-SS3AVCVM.js");
3152
3166
  const { loadAllAgentsDefault: loadAllAgentsDefault2, resolveDefaultAgentId } = await import("./registry-24U5BZAJ.js");
3153
3167
  const payload = parseSessionExport(rawPayload);
3154
3168
  if (payload.version !== SESSION_EXPORT_VERSION) {
@@ -3901,6 +3915,9 @@ var SessionManager = class {
3901
3915
  const currentTokens = promptTokens + completionTokens;
3902
3916
  const compactionCount = subAgentId ? 0 : state?.contextState.compactionCount ?? 0;
3903
3917
  const dynamicContextChanged = this.getDynamicContextChanged(sessionId);
3918
+ if (subAgentId) {
3919
+ this.subAgentContextSizes.set(subAgentId, currentTokens);
3920
+ }
3904
3921
  emitContextState(
3905
3922
  sessionId,
3906
3923
  currentTokens,
@@ -3913,6 +3930,10 @@ var SessionManager = class {
3913
3930
  );
3914
3931
  logger.debug("Context state updated", { sessionId, promptTokens, maxTokens, subAgentId });
3915
3932
  }
3933
+ /** Tokens used by a sub-agent's own scoped context (fresh, never-compacted). */
3934
+ getSubAgentContextTokens(subAgentId) {
3935
+ return this.subAgentContextSizes.get(subAgentId);
3936
+ }
3916
3937
  // ============================================================================
3917
3938
  // Criteria Operations (delegates to EventStore)
3918
3939
  // ============================================================================
@@ -7248,7 +7269,7 @@ function detectWsl() {
7248
7269
  // src/server/index.ts
7249
7270
  var __dirname3 = dirname7(fileURLToPath6(import.meta.url));
7250
7271
  async function announceContextDrift(sessionManager, sessionIds) {
7251
- const { injectContextDriftRemindersForSessions } = await import("./dynamic-context-YLRA34WJ.js");
7272
+ const { injectContextDriftRemindersForSessions } = await import("./dynamic-context-SS3AVCVM.js");
7252
7273
  await injectContextDriftRemindersForSessions(sessionManager, sessionIds);
7253
7274
  }
7254
7275
  async function createServerHandle(config3) {
@@ -7364,7 +7385,7 @@ async function createServerHandle(config3) {
7364
7385
  toolRegistry = createToolRegistry();
7365
7386
  logger.info("MCP tools registered", { count: mcpTools.length });
7366
7387
  }
7367
- const { signalMcpReady } = await import("./server-A3EGJ6MD.js");
7388
+ const { signalMcpReady } = await import("./server-Q5PTCS4G.js");
7368
7389
  signalMcpReady();
7369
7390
  }
7370
7391
  const app = express();
@@ -7579,9 +7600,9 @@ async function createServerHandle(config3) {
7579
7600
  const sessionFavoriteRouter = express.Router();
7580
7601
  registerSessionFavoriteRoute(sessionFavoriteRouter, sessionManager);
7581
7602
  app.use("/api", sessionFavoriteRouter);
7582
- const { createTasksService } = await import("./service-KMOSB6SU.js");
7583
- const { registerTaskRoutes } = await import("./tasks-X5DM553T.js");
7584
- const { setTasksService } = await import("./tools-MRC27SZG.js");
7603
+ const { createTasksService } = await import("./service-ALXVEWCE.js");
7604
+ const { registerTaskRoutes } = await import("./tasks-LD3VJYFH.js");
7605
+ const { setTasksService } = await import("./tools-SK4EU3D5.js");
7585
7606
  const tasksService = createTasksService({
7586
7607
  sessionManager,
7587
7608
  config: config3,
@@ -7904,7 +7925,7 @@ All file and git operations should use this branch.
7904
7925
  const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEventsWithSnapshot2 } = await import("./events-FTS5W6FX.js");
7905
7926
  const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, buildSessionStatsMessages, foldPendingConfirmations } = await import("./folding-VWRMYZ5T.js");
7906
7927
  const { computeSessionStatsSummary } = await import("./stats-2QMXP6G4.js");
7907
- const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-MRC27SZG.js");
7928
+ const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-SK4EU3D5.js");
7908
7929
  const { getMaxVisibleItems } = await import("./settings-FQUDSGZF.js");
7909
7930
  const session = sessionManager.getSession(req.params.id);
7910
7931
  if (!session) {
@@ -7935,7 +7956,7 @@ All file and git operations should use this branch.
7935
7956
  });
7936
7957
  app.get("/api/sessions/:id/status", async (req, res) => {
7937
7958
  const { projectSessionStatus: projectSessionStatus2 } = await import("./session-status-UFO5IFI7.js");
7938
- const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-MRC27SZG.js");
7959
+ const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-SK4EU3D5.js");
7939
7960
  const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEventsWithSnapshot2 } = await import("./events-FTS5W6FX.js");
7940
7961
  const { foldPendingConfirmations } = await import("./folding-VWRMYZ5T.js");
7941
7962
  const sessionId = req.params["id"];
@@ -7971,8 +7992,8 @@ All file and git operations should use this branch.
7971
7992
  if (!session) {
7972
7993
  return res.status(404).json({ error: "Session not found" });
7973
7994
  }
7974
- const { stopSessionExecution } = await import("./chat-handler-VCED3JYF.js");
7975
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-MRC27SZG.js");
7995
+ const { stopSessionExecution } = await import("./chat-handler-NJGT2L65.js");
7996
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-SK4EU3D5.js");
7976
7997
  sessionManager.clearMessageQueue(sessionId);
7977
7998
  stopSessionExecution(sessionId, sessionManager);
7978
7999
  abortSession(sessionId);
@@ -8204,7 +8225,7 @@ All file and git operations should use this branch.
8204
8225
  }
8205
8226
  sessionManager.setDangerLevel(sessionId, dangerLevel);
8206
8227
  if (dangerLevel === "dangerous") {
8207
- const { autoApprovePendingConfirmationsForSession } = await import("./tools-MRC27SZG.js");
8228
+ const { autoApprovePendingConfirmationsForSession } = await import("./tools-SK4EU3D5.js");
8208
8229
  const approvedCallIds = autoApprovePendingConfirmationsForSession(sessionId);
8209
8230
  for (const callId of approvedCallIds) {
8210
8231
  wssExports.broadcastForSession(sessionId, {
@@ -8239,7 +8260,7 @@ All file and git operations should use this branch.
8239
8260
  setSessionDisabledServers(sessionId, disabledServers);
8240
8261
  const messages = session.messages ?? [];
8241
8262
  if (messages.length === 0) {
8242
- const { applyDynamicContext } = await import("./dynamic-context-YLRA34WJ.js");
8263
+ const { applyDynamicContext } = await import("./dynamic-context-SS3AVCVM.js");
8243
8264
  const modelName = session.providerModel ?? providerManager.getCurrentModel();
8244
8265
  await applyDynamicContext(sessionManager, sessionId, modelName);
8245
8266
  } else {
@@ -8273,7 +8294,7 @@ All file and git operations should use this branch.
8273
8294
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
8274
8295
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
8275
8296
  }
8276
- const { providePathConfirmation: providePathConfirmation2, getConfirmationSessionId } = await import("./tools-MRC27SZG.js");
8297
+ const { providePathConfirmation: providePathConfirmation2, getConfirmationSessionId } = await import("./tools-SK4EU3D5.js");
8277
8298
  const pendingSessionId = getConfirmationSessionId(callId);
8278
8299
  if (!pendingSessionId) {
8279
8300
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -8288,7 +8309,7 @@ All file and git operations should use this branch.
8288
8309
  const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-FTS5W6FX.js");
8289
8310
  const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, foldPendingConfirmations } = await import("./folding-VWRMYZ5T.js");
8290
8311
  const { createSessionStateMessage } = await import("./protocol-M4DFHA32.js");
8291
- const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-MRC27SZG.js");
8312
+ const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-SK4EU3D5.js");
8292
8313
  const { getMaxVisibleItems } = await import("./settings-FQUDSGZF.js");
8293
8314
  const eventStore = getEventStore2();
8294
8315
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
@@ -8326,7 +8347,7 @@ All file and git operations should use this branch.
8326
8347
  if (!skip && typeof answer !== "string") {
8327
8348
  return res.status(400).json({ error: "answer is required when not skipping" });
8328
8349
  }
8329
- const { provideAnswer: provideAnswer2 } = await import("./tools-MRC27SZG.js");
8350
+ const { provideAnswer: provideAnswer2 } = await import("./tools-SK4EU3D5.js");
8330
8351
  const found = provideAnswer2(callId, answer ?? "", skip ?? false);
8331
8352
  if (!found) {
8332
8353
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -8392,7 +8413,7 @@ All file and git operations should use this branch.
8392
8413
  backend: activeProvider?.backend ?? llmClient.getBackend(),
8393
8414
  model: llmClient.getModel()
8394
8415
  };
8395
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-7T62RLDL.js");
8416
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-2BBZC4VH.js");
8396
8417
  runAgentTurn(
8397
8418
  {
8398
8419
  sessionManager,
@@ -8430,8 +8451,8 @@ All file and git operations should use this branch.
8430
8451
  if (!session) {
8431
8452
  return res.status(404).json({ error: "Session not found" });
8432
8453
  }
8433
- const { stopSessionExecution } = await import("./chat-handler-VCED3JYF.js");
8434
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-MRC27SZG.js");
8454
+ const { stopSessionExecution } = await import("./chat-handler-NJGT2L65.js");
8455
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-SK4EU3D5.js");
8435
8456
  const queuedMessages = sessionManager.getQueueState(sessionId);
8436
8457
  sessionManager.clearMessageQueue(sessionId);
8437
8458
  stopSessionExecution(sessionId, sessionManager);
@@ -8554,7 +8575,7 @@ All file and git operations should use this branch.
8554
8575
  return res.status(404).json({ error: "Session not found" });
8555
8576
  }
8556
8577
  try {
8557
- const { buildSessionExport } = await import("./export-import-R4E5BUQS.js");
8578
+ const { buildSessionExport } = await import("./export-import-QT7CV7ZU.js");
8558
8579
  const payload = buildSessionExport(sessionManager, sessionId);
8559
8580
  const filename = `${(payload.session.title ?? "session").replace(/[^a-zA-Z0-9-_]/g, "_")}.openfox-session.json`;
8560
8581
  res.setHeader("Content-Disposition", `attachment; filename="${filename}"`);
@@ -8876,7 +8897,7 @@ All file and git operations should use this branch.
8876
8897
  const backend = req.query["backend"];
8877
8898
  if (!url) return res.status(400).json({ error: "url is required" });
8878
8899
  try {
8879
- const { fetchModelsWithContext } = await import("./provider-manager-WW2EF76W.js");
8900
+ const { fetchModelsWithContext } = await import("./provider-manager-6EACWIDV.js");
8880
8901
  const { getModelProfile: getModelProfile2 } = await import("./profiles-EBCVFYG7.js");
8881
8902
  const { getCatalogEntry } = await import("./model-catalog-Y5MA5OZP.js");
8882
8903
  const models = await fetchModelsWithContext(
@@ -8950,7 +8971,7 @@ All file and git operations should use this branch.
8950
8971
  }
8951
8972
  const { getModelProfile: getModelProfile2 } = await import("./profiles-EBCVFYG7.js");
8952
8973
  const { getBackendCapabilities } = await import("./backend-2VSDPCWS.js");
8953
- const { buildNonStreamingCreateParams } = await import("./client-pure-YZ4IGCU4.js");
8974
+ const { buildNonStreamingCreateParams } = await import("./client-pure-EM26AITO.js");
8954
8975
  const { OpenAIHttpClient } = await import("./http-client-SZZBSL4U.js");
8955
8976
  const { ensureVersionPrefix } = await import("./url-utils-C5BM7NF7.js");
8956
8977
  const profile = getModelProfile2(model);
@@ -9377,7 +9398,7 @@ All file and git operations should use this branch.
9377
9398
  });
9378
9399
  async function rebuildMcpTools() {
9379
9400
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-ZY4FC4C4.js");
9380
- const { setMcpTools: setMcpTools2 } = await import("./tools-MRC27SZG.js");
9401
+ const { setMcpTools: setMcpTools2 } = await import("./tools-SK4EU3D5.js");
9381
9402
  const mcpTools = createMcpTools2(mcpManager);
9382
9403
  setMcpTools2(mcpTools);
9383
9404
  toolRegistry = createToolRegistry();
@@ -9953,7 +9974,7 @@ All file and git operations should use this branch.
9953
9974
  );
9954
9975
  const wss = wssExports.wss;
9955
9976
  deferTasksBroadcast = (_projectId, payload) => wssExports.broadcastAll({ type: "tasks.update", payload });
9956
- const { launchWorkflowRun, abortRunnerRun } = await import("./launch-QP2BI3PB.js");
9977
+ const { launchWorkflowRun, abortRunnerRun } = await import("./launch-2DPUISQR.js");
9957
9978
  deferTasksLaunchWorkflow = (sessionId, launch) => {
9958
9979
  const effective = sessionManager.resolveEffectiveProviderModel(sessionId);
9959
9980
  let llmClient = getLLMClient();
@@ -9998,7 +10019,7 @@ All file and git operations should use this branch.
9998
10019
  const state = sessionManager.getContextState(sessionId);
9999
10020
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
10000
10021
  });
10001
- const { QueueProcessor } = await import("./processor-LDLRELLS.js");
10022
+ const { QueueProcessor } = await import("./processor-N3EIGT4S.js");
10002
10023
  const queueProcessor = new QueueProcessor({
10003
10024
  sessionManager,
10004
10025
  providerManager,
@@ -10011,7 +10032,7 @@ All file and git operations should use this branch.
10011
10032
  const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-FQUDSGZF.js");
10012
10033
  if (getSetting2(SETTINGS_KEYS.AUTO_CONTINUE_ON_BOOT) === "true") {
10013
10034
  const { getStaleRunningSessionIds } = await import("./store-OWOLXB74.js");
10014
- const { runBootAutoContinuations } = await import("./auto-continue-FGQ63HHR.js");
10035
+ const { runBootAutoContinuations } = await import("./auto-continue-AZRNVDV5.js");
10015
10036
  const staleIds = getStaleRunningSessionIds();
10016
10037
  if (staleIds.length > 0) {
10017
10038
  const continued = runBootAutoContinuations(staleIds, {
@@ -10055,8 +10076,8 @@ All file and git operations should use this branch.
10055
10076
  launchWorkflow: (sessionId, launch) => deferTasksLaunchWorkflow(sessionId, launch),
10056
10077
  stopSession: (sessionId) => {
10057
10078
  void (async () => {
10058
- const { stopSessionExecution } = await import("./chat-handler-VCED3JYF.js");
10059
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-MRC27SZG.js");
10079
+ const { stopSessionExecution } = await import("./chat-handler-NJGT2L65.js");
10080
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-SK4EU3D5.js");
10060
10081
  sessionManager.clearMessageQueue(sessionId);
10061
10082
  stopSessionExecution(sessionId, sessionManager);
10062
10083
  abortSession(sessionId);
@@ -10183,4 +10204,4 @@ export {
10183
10204
  createServerHandle,
10184
10205
  createServer
10185
10206
  };
10186
- //# sourceMappingURL=chunk-YQJ6HEFS.js.map
10207
+ //# sourceMappingURL=chunk-RXKZVMKL.js.map
@@ -164,7 +164,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
164
164
  client = deps.getLLMClient();
165
165
  client.setModel(providerConfig.model);
166
166
  } else if (providerConfig) {
167
- const { createLLMClient } = await import("./client-L4PANCG4.js");
167
+ const { createLLMClient } = await import("./client-WQFM3PDL.js");
168
168
  client = createLLMClient(
169
169
  {
170
170
  llm: {
@@ -219,4 +219,4 @@ export {
219
219
  needsNameGeneration,
220
220
  generateSessionNameForSession
221
221
  };
222
- //# sourceMappingURL=chunk-ORIPUMOQ.js.map
222
+ //# sourceMappingURL=chunk-XWKX5IAU.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  runAgentTurn
3
- } from "./chunk-ABXERHIY.js";
3
+ } from "./chunk-N342GU3N.js";
4
4
  import {
5
5
  buildAgentOverrideStatsIdentity,
6
6
  executeSubAgent,
7
7
  getToolRegistryForAgent,
8
8
  resolveLLMClientForAgent
9
- } from "./chunk-AJMBQMJH.js";
9
+ } from "./chunk-2GIY77DT.js";
10
10
  import {
11
11
  gitSpawnEnv
12
12
  } from "./chunk-J7GAZGZT.js";
@@ -17,14 +17,14 @@ import {
17
17
  loadProjectWorkflows,
18
18
  loadUserWorkflows,
19
19
  normalizeWorkflowScope
20
- } from "./chunk-2DBWCXAQ.js";
20
+ } from "./chunk-A6YTJZAO.js";
21
21
  import {
22
22
  serverT
23
23
  } from "./chunk-X7ZAP6YW.js";
24
24
  import {
25
25
  TurnMetrics,
26
26
  createMessageStartEvent
27
- } from "./chunk-FAN4P45J.js";
27
+ } from "./chunk-BAN2F7TG.js";
28
28
  import {
29
29
  checkAborted,
30
30
  decodeUtf8,
@@ -1196,4 +1196,4 @@ export {
1196
1196
  abortRunnerRun,
1197
1197
  launchWorkflowRun
1198
1198
  };
1199
- //# sourceMappingURL=chunk-2V6QL6IW.js.map
1199
+ //# sourceMappingURL=chunk-ZWI4T4WF.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-QHFJRUJV.js";
4
+ } from "../chunk-I46WU3NP.js";
5
5
  import "../chunk-AGXJ5O63.js";
6
6
  import "../chunk-2OMGR7LN.js";
7
7
  import {
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-QHFJRUJV.js";
4
+ } from "../chunk-I46WU3NP.js";
5
5
  import "../chunk-AGXJ5O63.js";
6
6
  import "../chunk-2OMGR7LN.js";
7
7
  import {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createLLMClient
3
- } from "./chunk-L2RESXUF.js";
3
+ } from "./chunk-EBMHUSMZ.js";
4
4
  import "./chunk-TS5WKTFB.js";
5
5
  import "./chunk-FTPQI5TA.js";
6
6
  import "./chunk-HNCM3D7Y.js";
7
- import "./chunk-QMU3ZY2C.js";
7
+ import "./chunk-JRWG4KWV.js";
8
8
  import "./chunk-FSSUPWYO.js";
9
9
  import "./chunk-XG3AUMPI.js";
10
10
  import "./chunk-GZ4EK4LZ.js";
@@ -15,4 +15,4 @@ import "./chunk-YLJ4XMA6.js";
15
15
  export {
16
16
  createLLMClient
17
17
  };
18
- //# sourceMappingURL=client-L4PANCG4.js.map
18
+ //# sourceMappingURL=client-WQFM3PDL.js.map
@@ -8,7 +8,7 @@ import {
8
8
  mapFinishReason,
9
9
  parseToolArguments,
10
10
  resolveAttachmentsInMessages
11
- } from "./chunk-QMU3ZY2C.js";
11
+ } from "./chunk-JRWG4KWV.js";
12
12
  import "./chunk-FSSUPWYO.js";
13
13
  import "./chunk-XG3AUMPI.js";
14
14
  import "./chunk-YLJ4XMA6.js";
@@ -23,4 +23,4 @@ export {
23
23
  parseToolArguments,
24
24
  resolveAttachmentsInMessages
25
25
  };
26
- //# sourceMappingURL=client-pure-YZ4IGCU4.js.map
26
+ //# sourceMappingURL=client-pure-EM26AITO.js.map
@@ -3,8 +3,8 @@ import {
3
3
  COMPACTION_MAX_RATIO,
4
4
  appendCompactionPrompt,
5
5
  shouldCompact
6
- } from "./chunk-P7KUU5VB.js";
7
- import "./chunk-FAN4P45J.js";
6
+ } from "./chunk-E4RD42PU.js";
7
+ import "./chunk-BAN2F7TG.js";
8
8
  import "./chunk-ZONLEX2F.js";
9
9
  import "./chunk-5JGRKNMS.js";
10
10
  import "./chunk-NZBO3A3W.js";
@@ -18,7 +18,7 @@ import "./chunk-J2GP3J3X.js";
18
18
  import "./chunk-JYYBSODN.js";
19
19
  import "./chunk-TS5WKTFB.js";
20
20
  import "./chunk-FTPQI5TA.js";
21
- import "./chunk-QMU3ZY2C.js";
21
+ import "./chunk-JRWG4KWV.js";
22
22
  import "./chunk-FSSUPWYO.js";
23
23
  import "./chunk-XG3AUMPI.js";
24
24
  import "./chunk-X6SWZEK7.js";
@@ -32,4 +32,4 @@ export {
32
32
  appendCompactionPrompt,
33
33
  shouldCompact
34
34
  };
35
- //# sourceMappingURL=compactor-YY7PO2XE.js.map
35
+ //# sourceMappingURL=compactor-JDR6AGEW.js.map
@@ -16,7 +16,7 @@ import {
16
16
  injectContextDriftRemindersForSessions,
17
17
  renderSystemPromptDiff,
18
18
  renderToolChangeReminder
19
- } from "./chunk-ESHP42KO.js";
19
+ } from "./chunk-MA4NG3F7.js";
20
20
  import "./chunk-DJH6LMBT.js";
21
21
  import "./chunk-ZONLEX2F.js";
22
22
  import "./chunk-5JGRKNMS.js";
@@ -52,4 +52,4 @@ export {
52
52
  renderSystemPromptDiff,
53
53
  renderToolChangeReminder
54
54
  };
55
- //# sourceMappingURL=dynamic-context-YLRA34WJ.js.map
55
+ //# sourceMappingURL=dynamic-context-SS3AVCVM.js.map
@@ -11,7 +11,7 @@ import "./chunk-OSXPQSLW.js";
11
11
  import "./chunk-LCLH6ZUL.js";
12
12
  import {
13
13
  VERSION
14
- } from "./chunk-65KDNVRA.js";
14
+ } from "./chunk-2IK5KDVV.js";
15
15
  import {
16
16
  getProject
17
17
  } from "./chunk-JYYBSODN.js";
@@ -136,4 +136,4 @@ export {
136
136
  buildSessionExport,
137
137
  parseSessionExport
138
138
  };
139
- //# sourceMappingURL=export-import-R4E5BUQS.js.map
139
+ //# sourceMappingURL=export-import-QT7CV7ZU.js.map