openfox 2.0.55 → 2.0.57

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.
@@ -5,11 +5,11 @@ import {
5
5
  } from "./chunk-UOKVBO67.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-JQ4FVPIM.js";
9
- import "./chunk-ZIW47U5D.js";
8
+ } from "./chunk-WI6HGJ27.js";
9
+ import "./chunk-AGXBUC4M.js";
10
10
  import "./chunk-LBGHZLLH.js";
11
- import "./chunk-OCILP3SJ.js";
12
- import "./chunk-CYJEQF7U.js";
11
+ import "./chunk-BIWVYBIE.js";
12
+ import "./chunk-ADOXTORQ.js";
13
13
  import "./chunk-NWO6GRYE.js";
14
14
  import {
15
15
  createChatMessageMessage,
@@ -154,4 +154,4 @@ export {
154
154
  startChatSession,
155
155
  stopSessionExecution
156
156
  };
157
- //# sourceMappingURL=chat-handler-C3NO5RY3.js.map
157
+ //# sourceMappingURL=chat-handler-QO4XB66I.js.map
@@ -21,7 +21,7 @@ import {
21
21
  tokenFromPassword,
22
22
  verifyPassword,
23
23
  workflowExists
24
- } from "./chunk-PRYVRROH.js";
24
+ } from "./chunk-DQCEXCDD.js";
25
25
  import {
26
26
  agentExists,
27
27
  createToolRegistry,
@@ -61,11 +61,11 @@ import {
61
61
  setMcpTools,
62
62
  setNotifyMcpServersChanged,
63
63
  skillExists
64
- } from "./chunk-ZIW47U5D.js";
64
+ } from "./chunk-AGXBUC4M.js";
65
65
  import {
66
66
  getPathSeparator,
67
67
  isAbsolutePath
68
- } from "./chunk-OCILP3SJ.js";
68
+ } from "./chunk-BIWVYBIE.js";
69
69
  import {
70
70
  createMcpTools
71
71
  } from "./chunk-NWO6GRYE.js";
@@ -2506,9 +2506,20 @@ var SessionManager = class {
2506
2506
  constructor(providerManager) {
2507
2507
  this.providerManager = providerManager;
2508
2508
  }
2509
- getCurrentModelSettings() {
2510
- const model = this.providerManager.getCurrentModel();
2511
- const providerId = this.providerManager.getActiveProviderId();
2509
+ getCurrentModelSettings(sessionId) {
2510
+ let providerId;
2511
+ let model;
2512
+ if (sessionId) {
2513
+ const session = this.getSession(sessionId);
2514
+ if (session?.providerId && session?.providerModel) {
2515
+ providerId = session.providerId;
2516
+ model = session.providerModel;
2517
+ }
2518
+ }
2519
+ if (!providerId || !model) {
2520
+ model = this.providerManager.getCurrentModel();
2521
+ providerId = this.providerManager.getActiveProviderId();
2522
+ }
2512
2523
  if (!model || !providerId) return void 0;
2513
2524
  return this.providerManager.getModelSettings(providerId, model);
2514
2525
  }
@@ -2948,14 +2959,14 @@ var SessionManager = class {
2948
2959
  const msg = {
2949
2960
  queueId: crypto.randomUUID(),
2950
2961
  mode,
2951
- content,
2962
+ content: content ?? "",
2952
2963
  ...attachments ? { attachments } : {},
2953
2964
  ...messageKind ? { messageKind } : {},
2954
2965
  queuedAt: (/* @__PURE__ */ new Date()).toISOString()
2955
2966
  };
2956
2967
  queue.push(msg);
2957
2968
  this.messageQueues.set(sessionId, queue);
2958
- this.emit({ type: "queue_added", sessionId, queueId: msg.queueId, mode, content });
2969
+ this.emit({ type: "queue_added", sessionId, queueId: msg.queueId, mode, content: content ?? "" });
2959
2970
  return msg;
2960
2971
  }
2961
2972
  cancelQueuedMessage(sessionId, queueId) {
@@ -3849,7 +3860,7 @@ import { Router as Router7 } from "express";
3849
3860
  import { spawn as spawn2 } from "child_process";
3850
3861
 
3851
3862
  // src/constants.ts
3852
- var VERSION = "2.0.55";
3863
+ var VERSION = "2.0.57";
3853
3864
 
3854
3865
  // src/server/routes/auto-update.ts
3855
3866
  var updateInProgress = false;
@@ -4050,7 +4061,7 @@ async function createServerHandle(config4) {
4050
4061
  setMcpTools(mcpTools);
4051
4062
  logger.info("MCP tools registered", { count: mcpTools.length });
4052
4063
  }
4053
- const { signalMcpReady } = await import("./server-ILO7GYZE.js");
4064
+ const { signalMcpReady } = await import("./server-V32ZOVU4.js");
4054
4065
  signalMcpReady();
4055
4066
  });
4056
4067
  const app = express();
@@ -4243,7 +4254,7 @@ async function createServerHandle(config4) {
4243
4254
  app.get("/api/sessions/:id", async (req, res) => {
4244
4255
  const { getEventStore: getEventStore2 } = await import("./events-52XADT6Y.js");
4245
4256
  const { buildMessagesFromStoredEvents } = await import("./folding-2BGFLV5J.js");
4246
- const { getPendingQuestionsForSession } = await import("./tools-32PBXC2S.js");
4257
+ const { getPendingQuestionsForSession } = await import("./tools-L2SMYKJZ.js");
4247
4258
  const session = sessionManager.getSession(req.params.id);
4248
4259
  if (!session) {
4249
4260
  return res.status(404).json({ error: "Session not found" });
@@ -4262,8 +4273,8 @@ async function createServerHandle(config4) {
4262
4273
  if (!session) {
4263
4274
  return res.status(404).json({ error: "Session not found" });
4264
4275
  }
4265
- const { stopSessionExecution } = await import("./chat-handler-C3NO5RY3.js");
4266
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-32PBXC2S.js");
4276
+ const { stopSessionExecution } = await import("./chat-handler-QO4XB66I.js");
4277
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-L2SMYKJZ.js");
4267
4278
  sessionManager.clearMessageQueue(sessionId);
4268
4279
  stopSessionExecution(sessionId, sessionManager);
4269
4280
  abortSession(sessionId);
@@ -4417,7 +4428,7 @@ async function createServerHandle(config4) {
4417
4428
  if (!callId || approved === void 0) {
4418
4429
  return res.status(400).json({ error: "callId and approved are required" });
4419
4430
  }
4420
- const { providePathConfirmation } = await import("./tools-32PBXC2S.js");
4431
+ const { providePathConfirmation } = await import("./tools-L2SMYKJZ.js");
4421
4432
  const result = providePathConfirmation(callId, approved, alwaysAllow);
4422
4433
  if (!result.found) {
4423
4434
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -4425,7 +4436,7 @@ async function createServerHandle(config4) {
4425
4436
  const { getEventStore: getEventStore2 } = await import("./events-52XADT6Y.js");
4426
4437
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-2BGFLV5J.js");
4427
4438
  const { createSessionStateMessage } = await import("./protocol-CTNE3ANP.js");
4428
- const { getPendingQuestionsForSession } = await import("./tools-32PBXC2S.js");
4439
+ const { getPendingQuestionsForSession } = await import("./tools-L2SMYKJZ.js");
4429
4440
  const eventStore = getEventStore2();
4430
4441
  const events = eventStore.getEvents(sessionId);
4431
4442
  const messages = buildMessagesFromStoredEvents(events);
@@ -4446,7 +4457,7 @@ async function createServerHandle(config4) {
4446
4457
  if (!skip && typeof answer !== "string") {
4447
4458
  return res.status(400).json({ error: "answer is required when not skipping" });
4448
4459
  }
4449
- const { provideAnswer } = await import("./tools-32PBXC2S.js");
4460
+ const { provideAnswer } = await import("./tools-L2SMYKJZ.js");
4450
4461
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
4451
4462
  if (!found) {
4452
4463
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -4460,8 +4471,10 @@ async function createServerHandle(config4) {
4460
4471
  return res.status(404).json({ error: "Session not found" });
4461
4472
  }
4462
4473
  const { content, attachments, messageKind } = req.body;
4463
- if (!content?.trim()) {
4464
- return res.status(400).json({ error: "content is required" });
4474
+ const hasContent = content?.trim();
4475
+ const hasAttachments = Array.isArray(attachments) && attachments.length > 0;
4476
+ if (!hasContent && !hasAttachments) {
4477
+ return res.status(400).json({ error: "content or attachments is required" });
4465
4478
  }
4466
4479
  sessionManager.queueMessage(sessionId, "asap", content, attachments, messageKind);
4467
4480
  res.json({ success: true, queueState: sessionManager.getQueueState(sessionId) });
@@ -4482,18 +4495,35 @@ async function createServerHandle(config4) {
4482
4495
  if (sessionManager.isWarmedUp(sessionId)) {
4483
4496
  return res.json({ success: false, reason: "already_warmed" });
4484
4497
  }
4485
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-2OPDGKLZ.js");
4498
+ if (session.providerId && session.providerModel) {
4499
+ const currentActiveProviderId = providerManager.getActiveProviderId();
4500
+ const currentModel = providerManager.getCurrentModel();
4501
+ if (currentActiveProviderId !== session.providerId || currentModel !== session.providerModel) {
4502
+ const result = await providerManager.activateProvider(session.providerId, { model: session.providerModel });
4503
+ if (!result.success) {
4504
+ logger.error("Failed to activate session provider for warmup", {
4505
+ sessionId,
4506
+ providerId: session.providerId,
4507
+ error: result.error
4508
+ });
4509
+ }
4510
+ }
4511
+ }
4512
+ const llmClient = getLLMClient();
4513
+ const activeProvider = providerManager.getActiveProvider();
4514
+ const statsIdentity = {
4515
+ providerId: activeProvider?.id ?? `provider:${llmClient.getModel()}`,
4516
+ providerName: activeProvider?.name ?? "Unknown Provider",
4517
+ backend: activeProvider?.backend ?? llmClient.getBackend(),
4518
+ model: llmClient.getModel()
4519
+ };
4520
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-YMNKXVDF.js");
4486
4521
  runAgentTurn(
4487
4522
  {
4488
4523
  sessionManager,
4489
4524
  sessionId,
4490
- llmClient: getLLMClient(),
4491
- statsIdentity: {
4492
- providerId: "warmup",
4493
- providerName: "Warmup",
4494
- backend: getLLMClient().getBackend(),
4495
- model: getLLMClient().getModel()
4496
- },
4525
+ llmClient,
4526
+ statsIdentity,
4497
4527
  onMessage: () => {
4498
4528
  },
4499
4529
  warmup: true
@@ -4525,8 +4555,8 @@ async function createServerHandle(config4) {
4525
4555
  if (!session) {
4526
4556
  return res.status(404).json({ error: "Session not found" });
4527
4557
  }
4528
- const { stopSessionExecution } = await import("./chat-handler-C3NO5RY3.js");
4529
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-32PBXC2S.js");
4558
+ const { stopSessionExecution } = await import("./chat-handler-QO4XB66I.js");
4559
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-L2SMYKJZ.js");
4530
4560
  const queuedMessages = sessionManager.getQueueState(sessionId);
4531
4561
  sessionManager.clearMessageQueue(sessionId);
4532
4562
  stopSessionExecution(sessionId, sessionManager);
@@ -5036,7 +5066,7 @@ async function createServerHandle(config4) {
5036
5066
  });
5037
5067
  async function rebuildMcpTools() {
5038
5068
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-MOGEI6TP.js");
5039
- const { setMcpTools: setMcpTools2 } = await import("./tools-32PBXC2S.js");
5069
+ const { setMcpTools: setMcpTools2 } = await import("./tools-L2SMYKJZ.js");
5040
5070
  const mcpTools = createMcpTools2(mcpManager);
5041
5071
  setMcpTools2(mcpTools);
5042
5072
  }
@@ -5195,13 +5225,13 @@ async function createServerHandle(config4) {
5195
5225
  })
5196
5226
  );
5197
5227
  app.get("/api/sessions/:id/background-processes", async (req, res) => {
5198
- const { getSessionProcesses } = await import("./manager-FV4BDEVU.js");
5228
+ const { getSessionProcesses } = await import("./manager-CZOVNTSN.js");
5199
5229
  const sessionId = req.params.id;
5200
5230
  const processes = getSessionProcesses(sessionId);
5201
5231
  res.json({ processes });
5202
5232
  });
5203
5233
  app.post("/api/sessions/:id/background-process/:processId/stop", async (req, res) => {
5204
- const { stopProcess } = await import("./manager-FV4BDEVU.js");
5234
+ const { stopProcess } = await import("./manager-CZOVNTSN.js");
5205
5235
  const sessionId = req.params.id;
5206
5236
  const processId = req.params.processId;
5207
5237
  const session = sessionManager.getSession(sessionId);
@@ -5344,7 +5374,7 @@ async function createServerHandle(config4) {
5344
5374
  const state = sessionManager.getContextState(sessionId);
5345
5375
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
5346
5376
  });
5347
- const { QueueProcessor } = await import("./processor-VUAIB4Z6.js");
5377
+ const { QueueProcessor } = await import("./processor-2BB65JWR.js");
5348
5378
  const queueProcessor = new QueueProcessor({
5349
5379
  sessionManager,
5350
5380
  providerManager,
@@ -5387,7 +5417,7 @@ async function createServerHandle(config4) {
5387
5417
  await mcpManager.disconnectAll();
5388
5418
  const { stopAllInspectProxies } = await import("./inspect-proxy-BV25JERQ.js");
5389
5419
  stopAllInspectProxies();
5390
- const { cleanupAllProcesses } = await import("./store-TTU4UQQ7.js");
5420
+ const { cleanupAllProcesses } = await import("./store-NS2RMRA7.js");
5391
5421
  cleanupAllProcesses();
5392
5422
  viteServer?.close();
5393
5423
  for (const client of wss.clients) {
@@ -5419,4 +5449,4 @@ export {
5419
5449
  createServerHandle,
5420
5450
  createServer
5421
5451
  };
5422
- //# sourceMappingURL=chunk-7V3JBKYK.js.map
5452
+ //# sourceMappingURL=chunk-5HOP4QF7.js.map
@@ -70,6 +70,14 @@ async function terminateProcessTree(proc, options) {
70
70
  if (!pid || options?.exited?.()) {
71
71
  return;
72
72
  }
73
+ if (options?.immediate) {
74
+ const allPids = await getDescendantPids(pid);
75
+ allPids.push(pid);
76
+ for (const p of allPids) {
77
+ killProcess(p, "SIGKILL");
78
+ }
79
+ return;
80
+ }
73
81
  await killProcessTree(pid);
74
82
  }
75
83
 
@@ -216,4 +224,4 @@ export {
216
224
  getProcessById,
217
225
  cleanupAllProcesses
218
226
  };
219
- //# sourceMappingURL=chunk-CYJEQF7U.js.map
227
+ //# sourceMappingURL=chunk-ADOXTORQ.js.map
@@ -9,12 +9,12 @@ import {
9
9
  getSessionProcesses,
10
10
  startProcessCommand,
11
11
  stopProcess
12
- } from "./chunk-OCILP3SJ.js";
12
+ } from "./chunk-BIWVYBIE.js";
13
13
  import {
14
14
  getMaxPerSession,
15
15
  getSessionProcessCount,
16
16
  terminateProcessTree
17
- } from "./chunk-CYJEQF7U.js";
17
+ } from "./chunk-ADOXTORQ.js";
18
18
  import {
19
19
  createMcpTools
20
20
  } from "./chunk-NWO6GRYE.js";
@@ -170,10 +170,23 @@ function isPathAllowed(sessionId, path) {
170
170
  return allowed.has(normalize(path));
171
171
  }
172
172
  async function safeRealpath(path) {
173
+ const absolutePath = normalize(resolve(path));
173
174
  try {
174
- return await realpath(path);
175
+ return await realpath(absolutePath);
175
176
  } catch {
176
- return normalize(resolve(path));
177
+ const missingSegments = [];
178
+ let current = absolutePath;
179
+ while (true) {
180
+ try {
181
+ const canonicalParent = await realpath(current);
182
+ return normalize(join(canonicalParent, ...missingSegments.reverse()));
183
+ } catch {
184
+ const parent = resolve(current, "..");
185
+ if (parent === current) return absolutePath;
186
+ missingSegments.push(basename(current));
187
+ current = parent;
188
+ }
189
+ }
177
190
  }
178
191
  }
179
192
  async function isPathWithinSandbox(path, workdir, sessionId) {
@@ -186,9 +199,9 @@ async function isPathWithinSandbox(path, workdir, sessionId) {
186
199
  const { readlink } = await import("fs/promises");
187
200
  const linkTarget = await readlink(path);
188
201
  const linkDir = resolve(path, "..");
189
- resolvedPath = normalize(resolve(linkDir, linkTarget));
202
+ resolvedPath = await safeRealpath(resolve(linkDir, linkTarget));
190
203
  } catch {
191
- resolvedPath = normalize(resolve(path));
204
+ resolvedPath = await safeRealpath(path);
192
205
  }
193
206
  }
194
207
  resolvedPath = resolvedPath.replace(/\/+$/, "");
@@ -196,12 +209,12 @@ async function isPathWithinSandbox(path, workdir, sessionId) {
196
209
  return { allowed: true, resolvedPath };
197
210
  }
198
211
  for (const root of ALLOWED_ROOTS) {
199
- const normalizedRoot = normalize(root);
212
+ const normalizedRoot = normalize((await safeRealpath(root)).replace(/\/+$/, ""));
200
213
  if (resolvedPath === normalizedRoot || resolvedPath.startsWith(normalizedRoot + sep)) {
201
214
  return { allowed: true, resolvedPath };
202
215
  }
203
216
  }
204
- if (sessionId && isPathAllowed(sessionId, resolvedPath)) {
217
+ if (sessionId && (isPathAllowed(sessionId, path) || isPathAllowed(sessionId, resolvedPath))) {
205
218
  return { allowed: true, resolvedPath };
206
219
  }
207
220
  return { allowed: false, resolvedPath };
@@ -1450,7 +1463,7 @@ function executeCommand(command, cwd, timeout, signal, onProgress) {
1450
1463
  const onAbort = () => {
1451
1464
  if (!timedOut && !aborted) {
1452
1465
  aborted = true;
1453
- void terminateProcessTree(proc, { exited: () => exited });
1466
+ void terminateProcessTree(proc, { exited: () => exited, immediate: true });
1454
1467
  }
1455
1468
  };
1456
1469
  signal?.addEventListener("abort", onAbort);
@@ -2404,12 +2417,13 @@ async function runTopLevelAgentLoop(config, turnMetrics) {
2404
2417
  ...instructionContent2 ? { customInstructions: instructionContent2 } : {},
2405
2418
  ...skills2.length > 0 ? { skills: skills2 } : {}
2406
2419
  });
2420
+ const modelSettings2 = sessionManager.getCurrentModelSettings(sessionId);
2407
2421
  await llmClient.complete({
2408
2422
  messages: [{ role: "system", content: assembledRequest2.systemPrompt }],
2409
2423
  tools: assembledRequest2.tools,
2410
2424
  maxTokens: 1,
2411
2425
  temperature: 0,
2412
- skipClientReasoningEffort: true
2426
+ ...modelSettings2 ? { modelSettings: modelSettings2 } : {}
2413
2427
  });
2414
2428
  return {};
2415
2429
  }
@@ -2468,7 +2482,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
2468
2482
  const previousContextTokens = contextState.currentTokens;
2469
2483
  const contextWindow = sessionManager.getCurrentModelContext();
2470
2484
  const availableForOutput = Math.max(256, contextWindow - contextState.currentTokens);
2471
- let modelSettings = currentMaxTokensOverride !== void 0 ? { ...sessionManager.getCurrentModelSettings(), maxTokens: currentMaxTokensOverride } : sessionManager.getCurrentModelSettings();
2485
+ let modelSettings = currentMaxTokensOverride !== void 0 ? { ...sessionManager.getCurrentModelSettings(sessionId), maxTokens: currentMaxTokensOverride } : sessionManager.getCurrentModelSettings(sessionId);
2472
2486
  if (modelSettings) {
2473
2487
  const requestedMaxTokens = modelSettings.maxTokens ?? 16384;
2474
2488
  modelSettings = { ...modelSettings, maxTokens: Math.min(requestedMaxTokens, availableForOutput) };
@@ -3411,7 +3425,7 @@ var callSubAgentTool = {
3411
3425
  };
3412
3426
  }
3413
3427
  try {
3414
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-32PBXC2S.js");
3428
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-L2SMYKJZ.js");
3415
3429
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3416
3430
  const turnMetrics = new TurnMetrics();
3417
3431
  const result = await executeSubAgent({
@@ -4227,7 +4241,7 @@ function resolveAgentDef2(sessionManager, sessionId) {
4227
4241
  }
4228
4242
  async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
4229
4243
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
4230
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-32PBXC2S.js");
4244
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-L2SMYKJZ.js");
4231
4245
  const tools = getToolRegistryForAgent2(agentDef).definitions;
4232
4246
  const toolFingerprint = getToolFingerprint(tools);
4233
4247
  const allAgents = await loadAllAgentsDefault();
@@ -4240,7 +4254,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
4240
4254
  async function computeSessionHash(sessionManager, sessionId) {
4241
4255
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
4242
4256
  const agentDef = await resolveAgentDef2(sessionManager, sessionId);
4243
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-32PBXC2S.js");
4257
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-L2SMYKJZ.js");
4244
4258
  const tools = getToolRegistryForAgent2(agentDef).definitions;
4245
4259
  const toolFingerprint = getToolFingerprint(tools);
4246
4260
  return computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -4347,7 +4361,7 @@ var mcpConfigTool = createTool(
4347
4361
  await saveGlobalConfig(mcpConfigMode, { ...globalConfig, mcpServers: updated });
4348
4362
  }
4349
4363
  async function rebuildTools() {
4350
- const { setMcpTools: setMcpTools2 } = await import("./tools-32PBXC2S.js");
4364
+ const { setMcpTools: setMcpTools2 } = await import("./tools-L2SMYKJZ.js");
4351
4365
  const mcpTools = createMcpTools(mcpManagerForTools);
4352
4366
  setMcpTools2(mcpTools);
4353
4367
  }
@@ -5017,4 +5031,4 @@ export {
5017
5031
  getToolRegistryForAgent,
5018
5032
  createToolRegistry
5019
5033
  };
5020
- //# sourceMappingURL=chunk-ZIW47U5D.js.map
5034
+ //# sourceMappingURL=chunk-AGXBUC4M.js.map
@@ -8,7 +8,7 @@ import {
8
8
  removeProcess,
9
9
  startProcess,
10
10
  updateStatus
11
- } from "./chunk-CYJEQF7U.js";
11
+ } from "./chunk-ADOXTORQ.js";
12
12
 
13
13
  // src/server/tools/background-process/manager.ts
14
14
  import { spawn } from "child_process";
@@ -153,4 +153,4 @@ export {
153
153
  getSessionProcesses2 as getSessionProcesses,
154
154
  getProcessLogs
155
155
  };
156
- //# sourceMappingURL=chunk-OCILP3SJ.js.map
156
+ //# sourceMappingURL=chunk-BIWVYBIE.js.map
@@ -2,7 +2,7 @@ import {
2
2
  injectWorkflowKickoffIfNeeded,
3
3
  runAgentTurn,
4
4
  runChatTurn
5
- } from "./chunk-JQ4FVPIM.js";
5
+ } from "./chunk-WI6HGJ27.js";
6
6
  import {
7
7
  applyDynamicContext,
8
8
  checkAborted,
@@ -16,11 +16,11 @@ import {
16
16
  loadAllAgentsDefault,
17
17
  saveItemToDir,
18
18
  spawnShellProcess
19
- } from "./chunk-ZIW47U5D.js";
19
+ } from "./chunk-AGXBUC4M.js";
20
20
  import {
21
21
  getPlatformShell,
22
22
  onProcessEvent
23
- } from "./chunk-OCILP3SJ.js";
23
+ } from "./chunk-BIWVYBIE.js";
24
24
  import {
25
25
  createChatErrorMessage,
26
26
  createChatMessageMessage,
@@ -2091,4 +2091,4 @@ export {
2091
2091
  signalMcpReady,
2092
2092
  createWebSocketServer
2093
2093
  };
2094
- //# sourceMappingURL=chunk-PRYVRROH.js.map
2094
+ //# sourceMappingURL=chunk-DQCEXCDD.js.map
@@ -208,7 +208,7 @@ async function runCli(options) {
208
208
  if (!configExists) {
209
209
  await runNetworkSetup(mode);
210
210
  }
211
- const { runServe } = await import("./serve-UX6YYIMR.js");
211
+ const { runServe } = await import("./serve-WFQT6BP6.js");
212
212
  const serveOptions = { mode };
213
213
  if (values.port) serveOptions.port = parseInt(values.port);
214
214
  if (values["no-browser"] === true) serveOptions.openBrowser = false;
@@ -220,4 +220,4 @@ async function runCli(options) {
220
220
  export {
221
221
  runCli
222
222
  };
223
- //# sourceMappingURL=chunk-5UHSEVAP.js.map
223
+ //# sourceMappingURL=chunk-F7M2W46Q.js.map
@@ -12,7 +12,7 @@ import {
12
12
  loadAllAgentsDefault,
13
13
  processEventsForConversation,
14
14
  runTopLevelAgentLoop
15
- } from "./chunk-ZIW47U5D.js";
15
+ } from "./chunk-AGXBUC4M.js";
16
16
  import {
17
17
  TurnMetrics,
18
18
  WORKFLOW_KICKOFF_PROMPT,
@@ -324,4 +324,4 @@ export {
324
324
  runAgentTurn,
325
325
  injectWorkflowKickoffIfNeeded
326
326
  };
327
- //# sourceMappingURL=chunk-JQ4FVPIM.js.map
327
+ //# sourceMappingURL=chunk-WI6HGJ27.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-5UHSEVAP.js";
4
+ } from "../chunk-F7M2W46Q.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-5UHSEVAP.js";
4
+ } from "../chunk-F7M2W46Q.js";
5
5
  import "../chunk-XY3LESVZ.js";
6
6
  import {
7
7
  logger
@@ -6,8 +6,8 @@ import {
6
6
  onProcessEvent,
7
7
  startProcessCommand,
8
8
  stopProcess
9
- } from "./chunk-OCILP3SJ.js";
10
- import "./chunk-CYJEQF7U.js";
9
+ } from "./chunk-BIWVYBIE.js";
10
+ import "./chunk-ADOXTORQ.js";
11
11
  import "./chunk-5WRI5ZAA.js";
12
12
  export {
13
13
  createProcess,
@@ -18,4 +18,4 @@ export {
18
18
  startProcessCommand,
19
19
  stopProcess
20
20
  };
21
- //# sourceMappingURL=manager-FV4BDEVU.js.map
21
+ //# sourceMappingURL=manager-CZOVNTSN.js.map
@@ -2,11 +2,11 @@ import {
2
2
  injectWorkflowKickoffIfNeeded,
3
3
  runAgentTurn,
4
4
  runChatTurn
5
- } from "./chunk-JQ4FVPIM.js";
6
- import "./chunk-ZIW47U5D.js";
5
+ } from "./chunk-WI6HGJ27.js";
6
+ import "./chunk-AGXBUC4M.js";
7
7
  import "./chunk-LBGHZLLH.js";
8
- import "./chunk-OCILP3SJ.js";
9
- import "./chunk-CYJEQF7U.js";
8
+ import "./chunk-BIWVYBIE.js";
9
+ import "./chunk-ADOXTORQ.js";
10
10
  import "./chunk-NWO6GRYE.js";
11
11
  import "./chunk-F4PMNP7S.js";
12
12
  import "./chunk-EU3WWTFH.js";
@@ -43,4 +43,4 @@ export {
43
43
  runAgentTurn,
44
44
  runChatTurn
45
45
  };
46
- //# sourceMappingURL=orchestrator-2OPDGKLZ.js.map
46
+ //# sourceMappingURL=orchestrator-YMNKXVDF.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.55",
3
+ "version": "2.0.57",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -3,10 +3,10 @@ import {
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
5
  } from "./chunk-UOKVBO67.js";
6
- import "./chunk-ZIW47U5D.js";
6
+ import "./chunk-AGXBUC4M.js";
7
7
  import "./chunk-LBGHZLLH.js";
8
- import "./chunk-OCILP3SJ.js";
9
- import "./chunk-CYJEQF7U.js";
8
+ import "./chunk-BIWVYBIE.js";
9
+ import "./chunk-ADOXTORQ.js";
10
10
  import "./chunk-NWO6GRYE.js";
11
11
  import {
12
12
  createChatMessageMessage,
@@ -174,7 +174,7 @@ var QueueProcessor = class {
174
174
  backend: provider?.backend ?? llmClient.getBackend(),
175
175
  model: llmClient.getModel()
176
176
  };
177
- const { runChatTurn } = await import("./orchestrator-2OPDGKLZ.js");
177
+ const { runChatTurn } = await import("./orchestrator-YMNKXVDF.js");
178
178
  const runChatTurnParams = buildRunChatTurnParams({
179
179
  sessionManager,
180
180
  sessionId,
@@ -222,4 +222,4 @@ var QueueProcessor = class {
222
222
  export {
223
223
  QueueProcessor
224
224
  };
225
- //# sourceMappingURL=processor-VUAIB4Z6.js.map
225
+ //# sourceMappingURL=processor-2BB65JWR.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  VERSION,
3
3
  createServer
4
- } from "./chunk-7V3JBKYK.js";
5
- import "./chunk-PRYVRROH.js";
6
- import "./chunk-JQ4FVPIM.js";
7
- import "./chunk-ZIW47U5D.js";
4
+ } from "./chunk-5HOP4QF7.js";
5
+ import "./chunk-DQCEXCDD.js";
6
+ import "./chunk-WI6HGJ27.js";
7
+ import "./chunk-AGXBUC4M.js";
8
8
  import "./chunk-LBGHZLLH.js";
9
- import "./chunk-OCILP3SJ.js";
10
- import "./chunk-CYJEQF7U.js";
9
+ import "./chunk-BIWVYBIE.js";
10
+ import "./chunk-ADOXTORQ.js";
11
11
  import "./chunk-NWO6GRYE.js";
12
12
  import "./chunk-F4PMNP7S.js";
13
13
  import "./chunk-EU3WWTFH.js";
@@ -205,4 +205,4 @@ async function runServe(options) {
205
205
  export {
206
206
  runServe
207
207
  };
208
- //# sourceMappingURL=serve-UX6YYIMR.js.map
208
+ //# sourceMappingURL=serve-WFQT6BP6.js.map
@@ -401,7 +401,7 @@ declare class SessionManager {
401
401
  private debugDumpStore;
402
402
  private warmedUpSessions;
403
403
  constructor(providerManager: ProviderManager);
404
- getCurrentModelSettings(): {
404
+ getCurrentModelSettings(sessionId?: string): {
405
405
  temperature?: number;
406
406
  topP?: number;
407
407
  topK?: number;
@@ -544,7 +544,7 @@ declare class SessionManager {
544
544
  removeCriterion(sessionId: string, criterionId: string): Criterion[];
545
545
  setMetadataEntries(sessionId: string, key: string, entries: MetadataEntry[]): void;
546
546
  private messageQueues;
547
- queueMessage(sessionId: string, mode: 'asap' | 'completion', content: string, attachments?: Attachment[], messageKind?: string): QueuedMessage;
547
+ queueMessage(sessionId: string, mode: 'asap' | 'completion', content?: string, attachments?: Attachment[], messageKind?: string): QueuedMessage;
548
548
  cancelQueuedMessage(sessionId: string, queueId: string): boolean;
549
549
  drainAsapMessages(sessionId: string): QueuedMessage[];
550
550
  drainCompletionMessages(sessionId: string): QueuedMessage[];