openfox 2.0.78 → 2.0.80

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/README.md +1 -0
  2. package/dist/{chat-handler-5ZHPYU24.js → chat-handler-2ZEI2WBE.js} +8 -8
  3. package/dist/{chunk-NZIYELSQ.js → chunk-4GMRZU7A.js} +2 -2
  4. package/dist/{chunk-TSVFRWSG.js → chunk-A2IZ4PWQ.js} +8 -5
  5. package/dist/{chunk-M7EFXRDS.js → chunk-BUXIESO5.js} +5 -5
  6. package/dist/{chunk-NUR2B4RU.js → chunk-F56O4B67.js} +7 -7
  7. package/dist/{chunk-UIU7OGHP.js → chunk-GBVS4LCP.js} +3 -3
  8. package/dist/{chunk-WUSWNLTV.js → chunk-LYZ3LQRX.js} +11 -8
  9. package/dist/{chunk-SGBXBP3S.js → chunk-MAGDRXHW.js} +48 -15
  10. package/dist/{chunk-YFVSSMA3.js → chunk-NH2PVB6R.js} +19 -20
  11. package/dist/{chunk-DI4SIPFT.js → chunk-PXF4KHAP.js} +6 -6
  12. package/dist/chunk-RJWYZ6KK.js +7 -0
  13. package/dist/{chunk-VGWJFXPR.js → chunk-V77VNKN6.js} +7 -7
  14. package/dist/{chunk-UMX7MMNW.js → chunk-YZUZHWXM.js} +57 -49
  15. package/dist/cli/dev.js +1 -1
  16. package/dist/cli/index.js +1 -1
  17. package/dist/{compactor-G7B3V24F.js → compactor-LJFUIKWB.js} +8 -6
  18. package/dist/{config-MD74ETY5.js → config-EN3WEH4A.js} +2 -2
  19. package/dist/{events-KNOZX7YG.js → events-GF2WNELM.js} +3 -3
  20. package/dist/{folding-OPP2BVUB.js → folding-UACKBHUZ.js} +2 -2
  21. package/dist/{orchestrator-L6LX5BV7.js → orchestrator-SSTGBBOU.js} +7 -7
  22. package/dist/package.json +1 -1
  23. package/dist/{path-security-HUXQHEQ5.js → path-security-EKTUMDJW.js} +4 -4
  24. package/dist/{processor-UQX5KL56.js → processor-YLPZJMXH.js} +8 -8
  25. package/dist/{protocol-BXxJmsOW.d.ts → protocol-9WP7lLec.d.ts} +1 -1
  26. package/dist/provider/index.d.ts +4 -4
  27. package/dist/{provider-PI3RDDE4.js → provider-TIZV4IFE.js} +3 -3
  28. package/dist/{serve-QWC3U5MB.js → serve-U53R54PO.js} +11 -11
  29. package/dist/server/index.d.ts +4 -3
  30. package/dist/server/index.js +10 -10
  31. package/dist/{server-3XUD2NB7.js → server-2TQ3DFYA.js} +9 -9
  32. package/dist/shared/index.d.ts +3 -3
  33. package/dist/{tools-HGKUD327.js → tools-APH5FLYT.js} +6 -6
  34. package/dist/{types-o07LJcLI.d.ts → types-BtY5XChg.d.ts} +1 -1
  35. package/dist/{types-C308SU4B.d.ts → types-ulRvCqQX.d.ts} +1 -0
  36. package/dist/{update-NWZALB5M.js → update-6OFFUWZN.js} +2 -2
  37. package/dist/web/assets/index-CO9RvnPX.css +32 -0
  38. package/dist/web/assets/{index-7_xKqeJc.js → index-DHsXL2KP.js} +57 -57
  39. package/dist/web/index.html +4 -4
  40. package/dist/web/manifest.webmanifest +1 -1
  41. package/dist/web/registerSW.js +1 -1
  42. package/dist/web/sw.js +1 -1
  43. package/package.json +1 -1
  44. package/dist/chunk-64TKWWNF.js +0 -7
  45. package/dist/web/assets/index-DRkTjPo3.css +0 -32
@@ -21,7 +21,7 @@ import {
21
21
  tokenFromPassword,
22
22
  verifyPassword,
23
23
  workflowExists
24
- } from "./chunk-DI4SIPFT.js";
24
+ } from "./chunk-PXF4KHAP.js";
25
25
  import {
26
26
  agentExists,
27
27
  createToolRegistry,
@@ -66,7 +66,7 @@ import {
66
66
  setSkillEnabled,
67
67
  skillExists,
68
68
  updateOwnedSkill
69
- } from "./chunk-SGBXBP3S.js";
69
+ } from "./chunk-MAGDRXHW.js";
70
70
  import {
71
71
  createMcpTools
72
72
  } from "./chunk-NWO6GRYE.js";
@@ -108,7 +108,7 @@ import {
108
108
  } from "./chunk-6AE3JPDJ.js";
109
109
  import {
110
110
  VERSION
111
- } from "./chunk-64TKWWNF.js";
111
+ } from "./chunk-RJWYZ6KK.js";
112
112
  import {
113
113
  emitAssistantMessageStart,
114
114
  emitContextState,
@@ -124,7 +124,7 @@ import {
124
124
  getSessionState,
125
125
  initEventStore,
126
126
  setRuntimeConfig
127
- } from "./chunk-M7EFXRDS.js";
127
+ } from "./chunk-BUXIESO5.js";
128
128
  import {
129
129
  createSession,
130
130
  deleteSession,
@@ -2630,6 +2630,13 @@ var SessionManager = class {
2630
2630
  getCurrentModelContext() {
2631
2631
  return this.providerManager.getCurrentModelContext();
2632
2632
  }
2633
+ getModelCompactionThreshold(sessionId) {
2634
+ const session = this.getSession(sessionId);
2635
+ const providerId = session?.providerId ?? this.providerManager.getActiveProviderId();
2636
+ const modelId = session?.providerModel ?? this.providerManager.getCurrentModel();
2637
+ if (!providerId || !modelId) return void 0;
2638
+ return this.providerManager.getProviders().find((provider) => provider.id === providerId)?.models.find((model) => model.id === modelId)?.compactionThreshold;
2639
+ }
2633
2640
  /**
2634
2641
  * Get the effective working directory for a session.
2635
2642
  * Uses workspace path when active, otherwise the project workdir.
@@ -3527,11 +3534,11 @@ All file and git operations should use this directory.
3527
3534
  */
3528
3535
  buildSessionFromDb(dbSession) {
3529
3536
  const maxTokens = this.providerManager.getCurrentModelContext();
3530
- const eventState = getSessionState(dbSession.id, maxTokens);
3537
+ const eventState = getSessionState(dbSession.id, maxTokens, dbSession.mode);
3531
3538
  if (!eventState) {
3532
3539
  return {
3533
3540
  ...dbSession,
3534
- mode: "planner",
3541
+ mode: dbSession.mode,
3535
3542
  phase: "plan",
3536
3543
  isRunning: dbSession.isRunning,
3537
3544
  messages: [],
@@ -4857,7 +4864,7 @@ function createProviderAuthRoutes(config3, providerManager, registry) {
4857
4864
  try {
4858
4865
  const { challenge, completion } = await adapter.beginLogin({ providerId: provider.id });
4859
4866
  void completion.then(async ({ credentialRef }) => {
4860
- const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-MD74ETY5.js");
4867
+ const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-EN3WEH4A.js");
4861
4868
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
4862
4869
  const updatedConfig = updateProvider(globalConfig, provider.id, { credentialRef, authAdapter: adapter.id });
4863
4870
  await saveGlobalConfig(config3.mode ?? "production", updatedConfig, config3.globalConfigPath);
@@ -4891,7 +4898,7 @@ function createProviderAuthRoutes(config3, providerManager, registry) {
4891
4898
  if (!context) return;
4892
4899
  const { provider, adapter } = context;
4893
4900
  if (provider.credentialRef && adapter) await adapter.logout(provider.credentialRef);
4894
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MD74ETY5.js");
4901
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-EN3WEH4A.js");
4895
4902
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
4896
4903
  const updatedConfig = {
4897
4904
  ...globalConfig,
@@ -5371,7 +5378,7 @@ async function createServerHandle(config3) {
5371
5378
  const mcpManager = new McpManager({
5372
5379
  onToolsDiscovered: async (name, tools) => {
5373
5380
  try {
5374
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MD74ETY5.js");
5381
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-EN3WEH4A.js");
5375
5382
  const mode = config3.mode ?? "production";
5376
5383
  const globalConfig = await loadGlobalConfig(mode, config3.globalConfigPath);
5377
5384
  const mcpServers2 = {
@@ -5402,7 +5409,7 @@ async function createServerHandle(config3) {
5402
5409
  setMcpTools(mcpTools);
5403
5410
  logger.info("MCP tools registered", { count: mcpTools.length });
5404
5411
  }
5405
- const { signalMcpReady } = await import("./server-3XUD2NB7.js");
5412
+ const { signalMcpReady } = await import("./server-2TQ3DFYA.js");
5406
5413
  signalMcpReady();
5407
5414
  });
5408
5415
  const app = express();
@@ -5699,8 +5706,8 @@ async function createServerHandle(config3) {
5699
5706
  res.json({ workspaces: workspacesList });
5700
5707
  });
5701
5708
  app.get("/api/sessions", async (req, res) => {
5702
- const { getRecentUserPromptsForSession } = await import("./events-KNOZX7YG.js");
5703
- const { getPendingConfirmationsBySession } = await import("./path-security-HUXQHEQ5.js");
5709
+ const { getRecentUserPromptsForSession } = await import("./events-GF2WNELM.js");
5710
+ const { getPendingConfirmationsBySession } = await import("./path-security-EKTUMDJW.js");
5704
5711
  const projectId = req.query["projectId"];
5705
5712
  const limit = Math.min(parseInt(req.query["limit"]) || 20, 100);
5706
5713
  const offset = parseInt(req.query["offset"]) || 0;
@@ -5788,9 +5795,9 @@ async function createServerHandle(config3) {
5788
5795
  }
5789
5796
  });
5790
5797
  app.get("/api/sessions/:id", async (req, res) => {
5791
- const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-KNOZX7YG.js");
5792
- const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-OPP2BVUB.js");
5793
- const { getPendingQuestionsForSession } = await import("./tools-HGKUD327.js");
5798
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-GF2WNELM.js");
5799
+ const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-UACKBHUZ.js");
5800
+ const { getPendingQuestionsForSession } = await import("./tools-APH5FLYT.js");
5794
5801
  const { getMaxVisibleItems } = await import("./settings-6M55N4Q2.js");
5795
5802
  const session = sessionManager.getSession(req.params.id);
5796
5803
  if (!session) {
@@ -5821,8 +5828,8 @@ async function createServerHandle(config3) {
5821
5828
  if (!session) {
5822
5829
  return res.status(404).json({ error: "Session not found" });
5823
5830
  }
5824
- const { stopSessionExecution } = await import("./chat-handler-5ZHPYU24.js");
5825
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-HGKUD327.js");
5831
+ const { stopSessionExecution } = await import("./chat-handler-2ZEI2WBE.js");
5832
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-APH5FLYT.js");
5826
5833
  sessionManager.clearMessageQueue(sessionId);
5827
5834
  stopSessionExecution(sessionId, sessionManager);
5828
5835
  abortSession(sessionId);
@@ -5851,8 +5858,8 @@ async function createServerHandle(config3) {
5851
5858
  res.json({ success: true });
5852
5859
  });
5853
5860
  app.post("/api/sessions/:id/provider", async (req, res) => {
5854
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-KNOZX7YG.js");
5855
- const { buildMessagesFromStoredEvents } = await import("./folding-OPP2BVUB.js");
5861
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-GF2WNELM.js");
5862
+ const { buildMessagesFromStoredEvents } = await import("./folding-UACKBHUZ.js");
5856
5863
  const { getMaxVisibleItems } = await import("./settings-6M55N4Q2.js");
5857
5864
  const sessionId = req.params.id;
5858
5865
  const session = sessionManager.getSession(sessionId);
@@ -5888,7 +5895,7 @@ async function createServerHandle(config3) {
5888
5895
  if (!result.success) {
5889
5896
  return res.status(500).json({ error: result.error ?? "Failed to set default model" });
5890
5897
  }
5891
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-MD74ETY5.js");
5898
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-EN3WEH4A.js");
5892
5899
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
5893
5900
  const updatedConfig = setDefaultModelSelection(globalConfig, providerId, model);
5894
5901
  await saveGlobalConfig(config3.mode ?? "production", updatedConfig, config3.globalConfigPath);
@@ -5966,8 +5973,8 @@ async function createServerHandle(config3) {
5966
5973
  res.json({ success: true });
5967
5974
  });
5968
5975
  app.put("/api/sessions/:id/mode", async (req, res) => {
5969
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-KNOZX7YG.js");
5970
- const { buildMessagesFromStoredEvents } = await import("./folding-OPP2BVUB.js");
5976
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-GF2WNELM.js");
5977
+ const { buildMessagesFromStoredEvents } = await import("./folding-UACKBHUZ.js");
5971
5978
  const { getMaxVisibleItems } = await import("./settings-6M55N4Q2.js");
5972
5979
  const sessionId = req.params.id;
5973
5980
  const session = sessionManager.getSession(sessionId);
@@ -6029,7 +6036,7 @@ async function createServerHandle(config3) {
6029
6036
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6030
6037
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6031
6038
  }
6032
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-HGKUD327.js");
6039
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-APH5FLYT.js");
6033
6040
  const pendingSessionId = getConfirmationSessionId(callId);
6034
6041
  if (!pendingSessionId) {
6035
6042
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6041,10 +6048,10 @@ async function createServerHandle(config3) {
6041
6048
  if (!result.found) {
6042
6049
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
6043
6050
  }
6044
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-KNOZX7YG.js");
6045
- const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-OPP2BVUB.js");
6051
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-GF2WNELM.js");
6052
+ const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-UACKBHUZ.js");
6046
6053
  const { createSessionStateMessage } = await import("./protocol-Q7X4NEME.js");
6047
- const { getPendingQuestionsForSession } = await import("./tools-HGKUD327.js");
6054
+ const { getPendingQuestionsForSession } = await import("./tools-APH5FLYT.js");
6048
6055
  const { getMaxVisibleItems } = await import("./settings-6M55N4Q2.js");
6049
6056
  const eventStore = getEventStore2();
6050
6057
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
@@ -6081,7 +6088,7 @@ async function createServerHandle(config3) {
6081
6088
  if (!skip && typeof answer !== "string") {
6082
6089
  return res.status(400).json({ error: "answer is required when not skipping" });
6083
6090
  }
6084
- const { provideAnswer } = await import("./tools-HGKUD327.js");
6091
+ const { provideAnswer } = await import("./tools-APH5FLYT.js");
6085
6092
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6086
6093
  if (!found) {
6087
6094
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -6141,7 +6148,7 @@ async function createServerHandle(config3) {
6141
6148
  backend: activeProvider?.backend ?? llmClient.getBackend(),
6142
6149
  model: llmClient.getModel()
6143
6150
  };
6144
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-L6LX5BV7.js");
6151
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-SSTGBBOU.js");
6145
6152
  runAgentTurn(
6146
6153
  {
6147
6154
  sessionManager,
@@ -6179,15 +6186,15 @@ async function createServerHandle(config3) {
6179
6186
  if (!session) {
6180
6187
  return res.status(404).json({ error: "Session not found" });
6181
6188
  }
6182
- const { stopSessionExecution } = await import("./chat-handler-5ZHPYU24.js");
6183
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-HGKUD327.js");
6189
+ const { stopSessionExecution } = await import("./chat-handler-2ZEI2WBE.js");
6190
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-APH5FLYT.js");
6184
6191
  const queuedMessages = sessionManager.getQueueState(sessionId);
6185
6192
  sessionManager.clearMessageQueue(sessionId);
6186
6193
  stopSessionExecution(sessionId, sessionManager);
6187
6194
  abortSession(sessionId);
6188
6195
  cancelQuestionsForSession(sessionId, "Session stopped by user");
6189
6196
  cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
6190
- const eventStore = (await import("./events-KNOZX7YG.js")).getEventStore();
6197
+ const eventStore = (await import("./events-GF2WNELM.js")).getEventStore();
6191
6198
  eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
6192
6199
  res.json({ success: true, queuedMessages });
6193
6200
  });
@@ -6201,7 +6208,7 @@ async function createServerHandle(config3) {
6201
6208
  if (typeof messageIndex !== "number" || messageIndex < 0) {
6202
6209
  return res.status(400).json({ error: "messageIndex must be a non-negative number" });
6203
6210
  }
6204
- const { truncateSessionMessages } = await import("./events-KNOZX7YG.js");
6211
+ const { truncateSessionMessages } = await import("./events-GF2WNELM.js");
6205
6212
  truncateSessionMessages(sessionId, messageIndex);
6206
6213
  res.json({ success: true });
6207
6214
  });
@@ -6218,8 +6225,8 @@ async function createServerHandle(config3) {
6218
6225
  if (content !== void 0 && (typeof content !== "string" || !content.trim())) {
6219
6226
  return res.status(400).json({ error: "content must be a non-empty string if provided" });
6220
6227
  }
6221
- const { getEventStore: getEventStore2 } = await import("./events-KNOZX7YG.js");
6222
- const { buildMessagesFromStoredEvents } = await import("./folding-OPP2BVUB.js");
6228
+ const { getEventStore: getEventStore2 } = await import("./events-GF2WNELM.js");
6229
+ const { buildMessagesFromStoredEvents } = await import("./folding-UACKBHUZ.js");
6223
6230
  const eventStore = getEventStore2();
6224
6231
  const events = eventStore.getEvents(sessionId);
6225
6232
  const { messages } = buildMessagesFromStoredEvents(events);
@@ -6231,7 +6238,7 @@ async function createServerHandle(config3) {
6231
6238
  if (msg.role !== "user" || msg.isSystemGenerated) {
6232
6239
  return res.status(400).json({ error: "Can only replay user messages" });
6233
6240
  }
6234
- const { truncateSessionMessages } = await import("./events-KNOZX7YG.js");
6241
+ const { truncateSessionMessages } = await import("./events-GF2WNELM.js");
6235
6242
  truncateSessionMessages(sessionId, msgIndex - 1);
6236
6243
  sessionManager.queueMessage(sessionId, "asap", content ?? msg.content, msg.attachments, msg.messageKind);
6237
6244
  res.json({ success: true });
@@ -6324,7 +6331,7 @@ async function createServerHandle(config3) {
6324
6331
  let visionFallback;
6325
6332
  let globalWorkdir;
6326
6333
  try {
6327
- const { loadGlobalConfig, getVisionFallback } = await import("./config-MD74ETY5.js");
6334
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-EN3WEH4A.js");
6328
6335
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6329
6336
  const fallback = getVisionFallback(globalConfig);
6330
6337
  if (fallback) {
@@ -6399,6 +6406,7 @@ async function createServerHandle(config3) {
6399
6406
  ...m.topP !== void 0 && { topP: m.topP },
6400
6407
  ...m.topK !== void 0 && { topK: m.topK },
6401
6408
  ...m.maxTokens !== void 0 && { maxTokens: m.maxTokens },
6409
+ ...m.compactionThreshold !== void 0 && { compactionThreshold: m.compactionThreshold },
6402
6410
  ...m.selected !== void 0 && { selected: m.selected }
6403
6411
  }));
6404
6412
  }
@@ -6618,7 +6626,7 @@ async function createServerHandle(config3) {
6618
6626
  return res.status(400).json({ error: "name, url, and backend are required" });
6619
6627
  }
6620
6628
  try {
6621
- const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-MD74ETY5.js");
6629
+ const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-EN3WEH4A.js");
6622
6630
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6623
6631
  const providerBackend = backend;
6624
6632
  const providerModels = modelConfigs?.length ? buildModelConfigs(modelConfigs) : model ? [{ id: model, contextWindow: 2e5, source: "user" }] : [];
@@ -6658,7 +6666,7 @@ async function createServerHandle(config3) {
6658
6666
  app.post("/api/init/config", async (req, res) => {
6659
6667
  const { workdir, visionFallback } = req.body;
6660
6668
  try {
6661
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MD74ETY5.js");
6669
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-EN3WEH4A.js");
6662
6670
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6663
6671
  const updatedConfig = {
6664
6672
  ...globalConfig,
@@ -6697,7 +6705,7 @@ async function createServerHandle(config3) {
6697
6705
  });
6698
6706
  app.delete("/api/providers/:id", async (req, res) => {
6699
6707
  const { id } = req.params;
6700
- const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-MD74ETY5.js");
6708
+ const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-EN3WEH4A.js");
6701
6709
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6702
6710
  const updatedConfig = removeProvider(globalConfig, id);
6703
6711
  await saveGlobalConfig(config3.mode ?? "production", updatedConfig, config3.globalConfigPath);
@@ -6709,7 +6717,7 @@ async function createServerHandle(config3) {
6709
6717
  const { id } = req.params;
6710
6718
  const { isLocal } = req.body;
6711
6719
  try {
6712
- const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-MD74ETY5.js");
6720
+ const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-EN3WEH4A.js");
6713
6721
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6714
6722
  const provider = globalConfig.providers.find((p) => p.id === id);
6715
6723
  if (!provider) {
@@ -6740,7 +6748,7 @@ async function createServerHandle(config3) {
6740
6748
  transportAdapter
6741
6749
  } = req.body;
6742
6750
  try {
6743
- const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-MD74ETY5.js");
6751
+ const { loadGlobalConfig, saveGlobalConfig, updateProvider } = await import("./config-EN3WEH4A.js");
6744
6752
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6745
6753
  const provider = globalConfig.providers.find((p) => p.id === id);
6746
6754
  if (!provider) {
@@ -6780,7 +6788,7 @@ async function createServerHandle(config3) {
6780
6788
  return res.status(400).json({ error: result.error });
6781
6789
  }
6782
6790
  const llmClient = getLLMClient();
6783
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-MD74ETY5.js");
6791
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-EN3WEH4A.js");
6784
6792
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6785
6793
  const updatedConfig = setDefaultModelSelection(globalConfig, id, llmClient.getModel());
6786
6794
  await saveGlobalConfig(config3.mode ?? "production", updatedConfig, config3.globalConfigPath);
@@ -6807,7 +6815,7 @@ async function createServerHandle(config3) {
6807
6815
  });
6808
6816
  async function rebuildMcpTools() {
6809
6817
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-MOGEI6TP.js");
6810
- const { setMcpTools: setMcpTools2 } = await import("./tools-HGKUD327.js");
6818
+ const { setMcpTools: setMcpTools2 } = await import("./tools-APH5FLYT.js");
6811
6819
  const mcpTools = createMcpTools2(mcpManager);
6812
6820
  setMcpTools2(mcpTools);
6813
6821
  }
@@ -6877,7 +6885,7 @@ async function createServerHandle(config3) {
6877
6885
  };
6878
6886
  await mcpManager.addServer(name, serverCfg);
6879
6887
  const server = mcpManager.getServer(name);
6880
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MD74ETY5.js");
6888
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-EN3WEH4A.js");
6881
6889
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6882
6890
  const updatedMcpServers = { ...globalConfig.mcpServers ?? {}, [name]: serverCfg };
6883
6891
  await saveGlobalConfig(
@@ -6930,7 +6938,7 @@ async function createServerHandle(config3) {
6930
6938
  return res.status(400).json({ error: "timeout must be a positive number" });
6931
6939
  }
6932
6940
  try {
6933
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MD74ETY5.js");
6941
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-EN3WEH4A.js");
6934
6942
  const { applyMcpServerUpdate } = await import("./update-server-V6GJ43WH.js");
6935
6943
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6936
6944
  const mcpServers2 = { ...globalConfig.mcpServers ?? {} };
@@ -6974,7 +6982,7 @@ async function createServerHandle(config3) {
6974
6982
  return res.status(404).json({ error: `MCP server '${name}' not found` });
6975
6983
  }
6976
6984
  mcpManager.removeServer(name);
6977
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MD74ETY5.js");
6985
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-EN3WEH4A.js");
6978
6986
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
6979
6987
  const updatedMcpServers = { ...globalConfig.mcpServers ?? {} };
6980
6988
  delete updatedMcpServers[name];
@@ -7003,7 +7011,7 @@ async function createServerHandle(config3) {
7003
7011
  await mcpManager.setToolEnabled(name, toolName, enabled);
7004
7012
  const server = mcpManager.getServer(name);
7005
7013
  if (server) {
7006
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-MD74ETY5.js");
7014
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-EN3WEH4A.js");
7007
7015
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
7008
7016
  const mcpServers2 = { ...globalConfig.mcpServers ?? {} };
7009
7017
  const serverCfg = mcpServers2[name];
@@ -7203,7 +7211,7 @@ async function createServerHandle(config3) {
7203
7211
  const state = sessionManager.getContextState(sessionId);
7204
7212
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
7205
7213
  });
7206
- const { QueueProcessor } = await import("./processor-UQX5KL56.js");
7214
+ const { QueueProcessor } = await import("./processor-YLPZJMXH.js");
7207
7215
  const queueProcessor = new QueueProcessor({
7208
7216
  sessionManager,
7209
7217
  providerManager,
@@ -7283,4 +7291,4 @@ export {
7283
7291
  createServerHandle,
7284
7292
  createServer
7285
7293
  };
7286
- //# sourceMappingURL=chunk-UMX7MMNW.js.map
7294
+ //# sourceMappingURL=chunk-YZUZHWXM.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-NUR2B4RU.js";
4
+ } from "../chunk-F56O4B67.js";
5
5
  import "../chunk-XY3LESVZ.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-NUR2B4RU.js";
4
+ } from "../chunk-F56O4B67.js";
5
5
  import "../chunk-XY3LESVZ.js";
6
6
  import {
7
7
  logger
@@ -1,13 +1,14 @@
1
1
  import {
2
+ COMPACTION_HEADROOM_TOKENS,
3
+ COMPACTION_MAX_RATIO,
2
4
  appendCompactionPrompt,
3
- getCompactionTarget,
4
5
  shouldCompact
5
- } from "./chunk-WUSWNLTV.js";
6
+ } from "./chunk-LYZ3LQRX.js";
6
7
  import "./chunk-EHVDAVYG.js";
7
8
  import "./chunk-MTUYDBSL.js";
8
9
  import "./chunk-AFJLY43Z.js";
9
- import "./chunk-M7EFXRDS.js";
10
- import "./chunk-TSVFRWSG.js";
10
+ import "./chunk-BUXIESO5.js";
11
+ import "./chunk-A2IZ4PWQ.js";
11
12
  import "./chunk-AANVMTYU.js";
12
13
  import "./chunk-RGUUZD5B.js";
13
14
  import "./chunk-J2GP3J3X.js";
@@ -17,8 +18,9 @@ import "./chunk-RMXPVQP4.js";
17
18
  import "./chunk-K44MW7JJ.js";
18
19
  import "./chunk-5WRI5ZAA.js";
19
20
  export {
21
+ COMPACTION_HEADROOM_TOKENS,
22
+ COMPACTION_MAX_RATIO,
20
23
  appendCompactionPrompt,
21
- getCompactionTarget,
22
24
  shouldCompact
23
25
  };
24
- //# sourceMappingURL=compactor-G7B3V24F.js.map
26
+ //# sourceMappingURL=compactor-LJFUIKWB.js.map
@@ -11,7 +11,7 @@ import {
11
11
  saveGlobalConfig,
12
12
  setDefaultModelSelection,
13
13
  updateProvider
14
- } from "./chunk-YFVSSMA3.js";
14
+ } from "./chunk-NH2PVB6R.js";
15
15
  import "./chunk-CQGTEGKL.js";
16
16
  import "./chunk-5WRI5ZAA.js";
17
17
  export {
@@ -28,4 +28,4 @@ export {
28
28
  setDefaultModelSelection,
29
29
  updateProvider
30
30
  };
31
- //# sourceMappingURL=config-MD74ETY5.js.map
31
+ //# sourceMappingURL=config-EN3WEH4A.js.map
@@ -39,7 +39,7 @@ import {
39
39
  isStoredEvent,
40
40
  isTurnEvent,
41
41
  truncateSessionMessages
42
- } from "./chunk-M7EFXRDS.js";
42
+ } from "./chunk-BUXIESO5.js";
43
43
  import {
44
44
  buildContextMessagesFromEventHistory,
45
45
  buildContextMessagesFromMessages,
@@ -56,7 +56,7 @@ import {
56
56
  foldTodos,
57
57
  foldTurnEventsToSnapshotMessages,
58
58
  getMessagesForWindow
59
- } from "./chunk-TSVFRWSG.js";
59
+ } from "./chunk-A2IZ4PWQ.js";
60
60
  import "./chunk-AANVMTYU.js";
61
61
  import "./chunk-RGUUZD5B.js";
62
62
  import "./chunk-K44MW7JJ.js";
@@ -118,4 +118,4 @@ export {
118
118
  isTurnEvent,
119
119
  truncateSessionMessages
120
120
  };
121
- //# sourceMappingURL=events-KNOZX7YG.js.map
121
+ //# sourceMappingURL=events-GF2WNELM.js.map
@@ -24,7 +24,7 @@ import {
24
24
  reorderToolMessages,
25
25
  spreadOptionalMessageFields,
26
26
  stripOrphanedToolCalls
27
- } from "./chunk-TSVFRWSG.js";
27
+ } from "./chunk-A2IZ4PWQ.js";
28
28
  import "./chunk-5WRI5ZAA.js";
29
29
  export {
30
30
  buildContextMessagesFromEventHistory,
@@ -53,4 +53,4 @@ export {
53
53
  spreadOptionalMessageFields,
54
54
  stripOrphanedToolCalls
55
55
  };
56
- //# sourceMappingURL=folding-OPP2BVUB.js.map
56
+ //# sourceMappingURL=folding-UACKBHUZ.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  runAgentTurn,
3
3
  runChatTurn
4
- } from "./chunk-VGWJFXPR.js";
5
- import "./chunk-SGBXBP3S.js";
4
+ } from "./chunk-V77VNKN6.js";
5
+ import "./chunk-MAGDRXHW.js";
6
6
  import "./chunk-5CQRB7AD.js";
7
7
  import "./chunk-NWO6GRYE.js";
8
8
  import "./chunk-VPFUXGMM.js";
9
9
  import "./chunk-37WF2Z3T.js";
10
10
  import "./chunk-WGMJCFCE.js";
11
- import "./chunk-NZIYELSQ.js";
11
+ import "./chunk-4GMRZU7A.js";
12
12
  import "./chunk-EU3WWTFH.js";
13
13
  import {
14
14
  TurnMetrics,
@@ -23,8 +23,8 @@ import "./chunk-AFJLY43Z.js";
23
23
  import "./chunk-EYIWUONA.js";
24
24
  import "./chunk-6AE3JPDJ.js";
25
25
  import "./chunk-I72ACQ6R.js";
26
- import "./chunk-M7EFXRDS.js";
27
- import "./chunk-TSVFRWSG.js";
26
+ import "./chunk-BUXIESO5.js";
27
+ import "./chunk-A2IZ4PWQ.js";
28
28
  import "./chunk-AANVMTYU.js";
29
29
  import "./chunk-RGUUZD5B.js";
30
30
  import "./chunk-SJTG56CH.js";
@@ -34,7 +34,7 @@ import "./chunk-YHEQTVFV.js";
34
34
  import "./chunk-RMXPVQP4.js";
35
35
  import "./chunk-K44MW7JJ.js";
36
36
  import "./chunk-X6BXZFO7.js";
37
- import "./chunk-YFVSSMA3.js";
37
+ import "./chunk-NH2PVB6R.js";
38
38
  import "./chunk-CQGTEGKL.js";
39
39
  import "./chunk-5WRI5ZAA.js";
40
40
  export {
@@ -47,4 +47,4 @@ export {
47
47
  runAgentTurn,
48
48
  runChatTurn
49
49
  };
50
- //# sourceMappingURL=orchestrator-L6LX5BV7.js.map
50
+ //# sourceMappingURL=orchestrator-SSTGBBOU.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.78",
3
+ "version": "2.0.80",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,9 +19,9 @@ import {
19
19
  providePathConfirmation,
20
20
  registerPathConfirmation,
21
21
  requestPathAccess
22
- } from "./chunk-NZIYELSQ.js";
23
- import "./chunk-M7EFXRDS.js";
24
- import "./chunk-TSVFRWSG.js";
22
+ } from "./chunk-4GMRZU7A.js";
23
+ import "./chunk-BUXIESO5.js";
24
+ import "./chunk-A2IZ4PWQ.js";
25
25
  import "./chunk-AANVMTYU.js";
26
26
  import "./chunk-RGUUZD5B.js";
27
27
  import "./chunk-SJTG56CH.js";
@@ -50,4 +50,4 @@ export {
50
50
  registerPathConfirmation,
51
51
  requestPathAccess
52
52
  };
53
- //# sourceMappingURL=path-security-HUXQHEQ5.js.map
53
+ //# sourceMappingURL=path-security-EKTUMDJW.js.map
@@ -2,14 +2,14 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-UIU7OGHP.js";
6
- import "./chunk-SGBXBP3S.js";
5
+ } from "./chunk-GBVS4LCP.js";
6
+ import "./chunk-MAGDRXHW.js";
7
7
  import "./chunk-5CQRB7AD.js";
8
8
  import "./chunk-NWO6GRYE.js";
9
9
  import "./chunk-VPFUXGMM.js";
10
10
  import "./chunk-37WF2Z3T.js";
11
11
  import "./chunk-WGMJCFCE.js";
12
- import "./chunk-NZIYELSQ.js";
12
+ import "./chunk-4GMRZU7A.js";
13
13
  import "./chunk-EU3WWTFH.js";
14
14
  import "./chunk-EHVDAVYG.js";
15
15
  import "./chunk-MTUYDBSL.js";
@@ -19,8 +19,8 @@ import "./chunk-6AE3JPDJ.js";
19
19
  import "./chunk-I72ACQ6R.js";
20
20
  import {
21
21
  getEventStore
22
- } from "./chunk-M7EFXRDS.js";
23
- import "./chunk-TSVFRWSG.js";
22
+ } from "./chunk-BUXIESO5.js";
23
+ import "./chunk-A2IZ4PWQ.js";
24
24
  import "./chunk-AANVMTYU.js";
25
25
  import "./chunk-RGUUZD5B.js";
26
26
  import {
@@ -35,7 +35,7 @@ import {
35
35
  logger
36
36
  } from "./chunk-K44MW7JJ.js";
37
37
  import "./chunk-X6BXZFO7.js";
38
- import "./chunk-YFVSSMA3.js";
38
+ import "./chunk-NH2PVB6R.js";
39
39
  import "./chunk-CQGTEGKL.js";
40
40
  import "./chunk-5WRI5ZAA.js";
41
41
 
@@ -181,7 +181,7 @@ var QueueProcessor = class {
181
181
  backend: provider?.backend ?? llmClient.getBackend(),
182
182
  model: llmClient.getModel()
183
183
  };
184
- const { runChatTurn } = await import("./orchestrator-L6LX5BV7.js");
184
+ const { runChatTurn } = await import("./orchestrator-SSTGBBOU.js");
185
185
  const runChatTurnParams = buildRunChatTurnParams({
186
186
  sessionManager,
187
187
  sessionId,
@@ -229,4 +229,4 @@ var QueueProcessor = class {
229
229
  export {
230
230
  QueueProcessor
231
231
  };
232
- //# sourceMappingURL=processor-UQX5KL56.js.map
232
+ //# sourceMappingURL=processor-YLPZJMXH.js.map
@@ -1,4 +1,4 @@
1
- import { A as Attachment, K as ToolMode, O as ToolResult, M as Message, T as Todo, b as ContextState, d as Criterion, h as Diagnostic, q as MetadataEntry, y as SessionMode, z as SessionPhase, t as Project, B as SessionSummary, w as Session } from './types-C308SU4B.js';
1
+ import { A as Attachment, K as ToolMode, O as ToolResult, M as Message, T as Todo, b as ContextState, d as Criterion, h as Diagnostic, q as MetadataEntry, y as SessionMode, z as SessionPhase, t as Project, B as SessionSummary, w as Session } from './types-ulRvCqQX.js';
2
2
 
3
3
  type ClientMessageType = 'session.load' | 'context.compact' | 'context.checkDynamic' | 'context.applyDynamic' | 'runner.launch' | 'path.confirm' | 'ask.answer';
4
4
  interface ClientMessage<T = unknown> {
@@ -1,7 +1,7 @@
1
- import { r as ModelConfig } from '../types-C308SU4B.js';
2
- export { J as ToolCall } from '../types-C308SU4B.js';
3
- import { L as LLMCompletionRequest, a as LLMCompletionResponse, b as LLMStreamEvent } from '../types-o07LJcLI.js';
4
- export { c as LLMMessage, d as LLMToolDefinition } from '../types-o07LJcLI.js';
1
+ import { r as ModelConfig } from '../types-ulRvCqQX.js';
2
+ export { J as ToolCall } from '../types-ulRvCqQX.js';
3
+ import { L as LLMCompletionRequest, a as LLMCompletionResponse, b as LLMStreamEvent } from '../types-BtY5XChg.js';
4
+ export { c as LLMMessage, d as LLMToolDefinition } from '../types-BtY5XChg.js';
5
5
 
6
6
  type ProviderAuthState = 'disconnected' | 'pending' | 'connected' | 'expired' | 'error';
7
7
  interface ProviderAuthStatus {
@@ -27,7 +27,7 @@ import {
27
27
  loadGlobalConfig,
28
28
  removeProvider,
29
29
  saveGlobalConfig
30
- } from "./chunk-YFVSSMA3.js";
30
+ } from "./chunk-NH2PVB6R.js";
31
31
  import "./chunk-CQGTEGKL.js";
32
32
  import "./chunk-5WRI5ZAA.js";
33
33
 
@@ -268,7 +268,7 @@ async function runProviderAdd(mode) {
268
268
  isActive: makeActive
269
269
  });
270
270
  if (makeActive) {
271
- const { setDefaultModelSelection } = await import("./config-MD74ETY5.js");
271
+ const { setDefaultModelSelection } = await import("./config-EN3WEH4A.js");
272
272
  newConfig = setDefaultModelSelection(
273
273
  newConfig,
274
274
  newConfig.providers[newConfig.providers.length - 1].id,
@@ -396,4 +396,4 @@ export {
396
396
  runProviderRemove,
397
397
  runProviderUse
398
398
  };
399
- //# sourceMappingURL=provider-PI3RDDE4.js.map
399
+ //# sourceMappingURL=provider-TIZV4IFE.js.map