openfox 2.0.83 → 2.0.84

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,12 +5,12 @@ import {
5
5
  } from "./chunk-WL6AOKRD.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-D324ULDG.js";
9
- import "./chunk-OBQN5ATP.js";
8
+ } from "./chunk-G4PVYDVM.js";
9
+ import "./chunk-CKWD5V4W.js";
10
10
  import "./chunk-JKZPMRH2.js";
11
11
  import "./chunk-NWO6GRYE.js";
12
12
  import "./chunk-VPFUXGMM.js";
13
- import "./chunk-JXTHW3YX.js";
13
+ import "./chunk-7PZBCATU.js";
14
14
  import "./chunk-J7GAZGZT.js";
15
15
  import "./chunk-3D3N2PXI.js";
16
16
  import {
@@ -160,4 +160,4 @@ export {
160
160
  startChatSession,
161
161
  stopSessionExecution
162
162
  };
163
- //# sourceMappingURL=chat-handler-6KBOE4YA.js.map
163
+ //# sourceMappingURL=chat-handler-377ZHEDW.js.map
@@ -200,7 +200,7 @@ async function runCli(options) {
200
200
  break;
201
201
  }
202
202
  case "update": {
203
- const { runUpdate } = await import("./update-MFOCAROI.js");
203
+ const { runUpdate } = await import("./update-VHU2XFPH.js");
204
204
  const code = await runUpdate();
205
205
  if (code !== 0) {
206
206
  process.exit(code);
@@ -213,7 +213,7 @@ async function runCli(options) {
213
213
  if (!configExists) {
214
214
  await runNetworkSetup(mode);
215
215
  }
216
- const { runServe } = await import("./serve-HXV2RX3Q.js");
216
+ const { runServe } = await import("./serve-SYGARZPL.js");
217
217
  const serveOptions = { mode };
218
218
  if (values.port) serveOptions.port = parseInt(values.port);
219
219
  if (values["no-browser"] === true) serveOptions.openBrowser = false;
@@ -225,4 +225,4 @@ async function runCli(options) {
225
225
  export {
226
226
  runCli
227
227
  };
228
- //# sourceMappingURL=chunk-HLZUN7OR.js.map
228
+ //# sourceMappingURL=chunk-55L4SHCO.js.map
@@ -129,8 +129,11 @@ async function getDefaultBranch(projectDir) {
129
129
  const branch = originHead.trim().replace("refs/remotes/origin/", "");
130
130
  if (branch) return branch;
131
131
  }
132
- const current = await getGitBranch(projectDir);
133
- if (current) return current;
132
+ const remoteHead = await captureStdout(projectDir, ["ls-remote", "--symref", "origin", "HEAD"]);
133
+ if (remoteHead) {
134
+ const match = remoteHead.match(/^ref: refs\/heads\/(\S+)\tHEAD$/m);
135
+ if (match?.[1]) return match[1];
136
+ }
134
137
  return "main";
135
138
  }
136
139
  async function resolveAndValidateSourceBranch(cwd, sourceBranch, projectDir) {
@@ -256,6 +259,16 @@ async function deleteWorkspace(projectName, name, projectDir) {
256
259
  }
257
260
  logger.info("Deleted workspace", { projectName, name, path: wsPath });
258
261
  }
262
+ async function isGitRepository(cwd) {
263
+ const { stat } = await import("fs/promises");
264
+ try {
265
+ const st = await stat(join2(cwd, ".git"));
266
+ if (st.isDirectory()) return true;
267
+ } catch {
268
+ }
269
+ const result = await captureStdout(cwd, ["rev-parse", "--git-dir"]);
270
+ return result !== null;
271
+ }
259
272
  async function statSafe(p) {
260
273
  try {
261
274
  const { stat } = await import("fs/promises");
@@ -286,6 +299,7 @@ export {
286
299
  workspaceExists,
287
300
  listWorkspaces,
288
301
  ensureWorkspace,
289
- deleteWorkspace
302
+ deleteWorkspace,
303
+ isGitRepository
290
304
  };
291
- //# sourceMappingURL=chunk-JXTHW3YX.js.map
305
+ //# sourceMappingURL=chunk-7PZBCATU.js.map
@@ -17,8 +17,9 @@ import {
17
17
  } from "./chunk-VPFUXGMM.js";
18
18
  import {
19
19
  getGitBranch,
20
+ isGitRepository,
20
21
  listWorkspaces
21
- } from "./chunk-JXTHW3YX.js";
22
+ } from "./chunk-7PZBCATU.js";
22
23
  import {
23
24
  PathAccessDeniedError,
24
25
  extractAbsolutePathsFromCommand,
@@ -3515,7 +3516,7 @@ var callSubAgentTool = {
3515
3516
  };
3516
3517
  }
3517
3518
  try {
3518
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-X4YLRR2Y.js");
3519
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-6NVILBHW.js");
3519
3520
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3520
3521
  const turnMetrics = new TurnMetrics();
3521
3522
  const result = await executeSubAgent({
@@ -4518,7 +4519,7 @@ var mcpConfigTool = createTool(
4518
4519
  mcpNotifyChanged?.(sessionId);
4519
4520
  }
4520
4521
  async function rebuildTools() {
4521
- const { setMcpTools: setMcpTools2 } = await import("./tools-X4YLRR2Y.js");
4522
+ const { setMcpTools: setMcpTools2 } = await import("./tools-6NVILBHW.js");
4522
4523
  const mcpTools = createMcpTools(mcpManagerForTools);
4523
4524
  setMcpTools2(mcpTools);
4524
4525
  }
@@ -4834,6 +4835,9 @@ var workspaceTool = createTool(
4834
4835
  if (!args.target || typeof args.target !== "string") {
4835
4836
  return helpers.error('Parameter "target" is required for action=switch ("original" or a workspace name)');
4836
4837
  }
4838
+ if (await isGitRepository(context.workdir) === false) {
4839
+ return helpers.error("Project is not a git repository");
4840
+ }
4837
4841
  const currentSession = sessionManager.getSession(sessionId);
4838
4842
  const isBranchChange = args.branch !== void 0 && currentSession != null && args.target !== "original" && currentSession.workspace?.split("/").pop() === args.target;
4839
4843
  const label = args.target === "original" ? "original project" : `workspace "${args.target}"`;
@@ -4879,6 +4883,9 @@ var workspaceTool = createTool(
4879
4883
  return helpers.error('Parameter "target" is required for action=delete (the workspace name)');
4880
4884
  }
4881
4885
  if (args.target === "original") return helpers.error("Cannot delete the original workspace");
4886
+ if (await isGitRepository(context.workdir) === false) {
4887
+ return helpers.error("Project is not a git repository");
4888
+ }
4882
4889
  const approved = await requestUserConfirmation(context, "workspace", `Delete workspace "${args.target}"`);
4883
4890
  if (!approved) return helpers.error(`User denied: delete workspace "${args.target}"`);
4884
4891
  await sessionManager.deleteWorkspace(sessionId, args.target);
@@ -5181,4 +5188,4 @@ export {
5181
5188
  getToolRegistryForAgent,
5182
5189
  createToolRegistry
5183
5190
  };
5184
- //# sourceMappingURL=chunk-OBQN5ATP.js.map
5191
+ //# sourceMappingURL=chunk-CKWD5V4W.js.map
@@ -9,7 +9,7 @@ import {
9
9
  loadAllAgentsDefault,
10
10
  processEventsForConversation,
11
11
  runTopLevelAgentLoop
12
- } from "./chunk-OBQN5ATP.js";
12
+ } from "./chunk-CKWD5V4W.js";
13
13
  import {
14
14
  PathAccessDeniedError
15
15
  } from "./chunk-3D3N2PXI.js";
@@ -66,7 +66,7 @@ function resolveAgentDef(sessionManager, sessionId) {
66
66
  }
67
67
  async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
68
68
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
69
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-X4YLRR2Y.js");
69
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-6NVILBHW.js");
70
70
  const tools = getToolRegistryForAgent2(agentDef).definitions;
71
71
  const toolFingerprint = getToolFingerprint(tools);
72
72
  const allAgents = await loadAllAgentsDefault();
@@ -79,7 +79,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
79
79
  async function computeSessionHash(sessionManager, sessionId) {
80
80
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
81
81
  const agentDef = await resolveAgentDef(sessionManager, sessionId);
82
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-X4YLRR2Y.js");
82
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-6NVILBHW.js");
83
83
  const tools = getToolRegistryForAgent2(agentDef).definitions;
84
84
  const toolFingerprint = getToolFingerprint(tools);
85
85
  return computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -359,4 +359,4 @@ export {
359
359
  runChatTurn,
360
360
  runAgentTurn
361
361
  };
362
- //# sourceMappingURL=chunk-D324ULDG.js.map
362
+ //# sourceMappingURL=chunk-G4PVYDVM.js.map
@@ -21,7 +21,7 @@ import {
21
21
  tokenFromPassword,
22
22
  verifyPassword,
23
23
  workflowExists
24
- } from "./chunk-KMGVUOLT.js";
24
+ } from "./chunk-XIVQNOXU.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-OBQN5ATP.js";
69
+ } from "./chunk-CKWD5V4W.js";
70
70
  import {
71
71
  createMcpTools
72
72
  } from "./chunk-NWO6GRYE.js";
@@ -85,7 +85,7 @@ import {
85
85
  validateRef,
86
86
  validateWorkspaceName,
87
87
  workspaceExists
88
- } from "./chunk-JXTHW3YX.js";
88
+ } from "./chunk-7PZBCATU.js";
89
89
  import {
90
90
  createContextStateMessage
91
91
  } from "./chunk-SJTG56CH.js";
@@ -106,7 +106,7 @@ import {
106
106
  } from "./chunk-6AE3JPDJ.js";
107
107
  import {
108
108
  VERSION
109
- } from "./chunk-2X3V4SQC.js";
109
+ } from "./chunk-YWBJRUDI.js";
110
110
  import {
111
111
  emitAssistantMessageStart,
112
112
  emitContextState,
@@ -5396,7 +5396,7 @@ async function createServerHandle(config3) {
5396
5396
  setMcpTools(mcpTools);
5397
5397
  logger.info("MCP tools registered", { count: mcpTools.length });
5398
5398
  }
5399
- const { signalMcpReady } = await import("./server-V4VA4A2E.js");
5399
+ const { signalMcpReady } = await import("./server-ZU3IU7WH.js");
5400
5400
  signalMcpReady();
5401
5401
  });
5402
5402
  const app = express();
@@ -5557,7 +5557,7 @@ async function createServerHandle(config3) {
5557
5557
  const { getProject: getProject2 } = await import("./projects-ZGJGICGT.js");
5558
5558
  const project = getProject2(req.params.id);
5559
5559
  if (!project) return res.status(404).json({ error: "Project not found" });
5560
- const { listBranches } = await import("./workspace-N2PIBOJV.js");
5560
+ const { listBranches } = await import("./workspace-MMV6V5P4.js");
5561
5561
  const branches = await listBranches(project.workdir);
5562
5562
  res.json({ branches });
5563
5563
  });
@@ -5567,7 +5567,10 @@ async function createServerHandle(config3) {
5567
5567
  if (!project) return res.status(404).json({ error: "Project not found" });
5568
5568
  const { branch } = req.body;
5569
5569
  if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
5570
- const { checkoutBranch } = await import("./workspace-N2PIBOJV.js");
5570
+ const { checkoutBranch, isGitRepository } = await import("./workspace-MMV6V5P4.js");
5571
+ if (!await isGitRepository(project.workdir)) {
5572
+ return res.status(400).json({ error: "Project is not a git repository" });
5573
+ }
5571
5574
  try {
5572
5575
  await checkoutBranch(project.workdir, branch);
5573
5576
  const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-SFG42M4W.js");
@@ -5589,12 +5592,21 @@ async function createServerHandle(config3) {
5589
5592
  if (!project) return res.status(404).json({ error: "Project not found" });
5590
5593
  const { name, sourceBranch } = req.body;
5591
5594
  if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
5592
- const { createBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, validateRef: validateRef2 } = await import("./workspace-N2PIBOJV.js");
5595
+ const { createBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, validateRef: validateRef2, getDefaultBranch: getDefaultBranch2, isGitRepository } = await import("./workspace-MMV6V5P4.js");
5596
+ if (!await isGitRepository(project.workdir)) {
5597
+ return res.status(400).json({ error: "Project is not a git repository" });
5598
+ }
5593
5599
  try {
5594
5600
  await validateRef2(project.workdir, name);
5595
5601
  let sb;
5596
5602
  if (sourceBranch) {
5597
5603
  sb = await resolveAndValidateSourceBranch2(project.workdir, sourceBranch, project.workdir);
5604
+ } else {
5605
+ sb = await resolveAndValidateSourceBranch2(
5606
+ project.workdir,
5607
+ await getDefaultBranch2(project.workdir),
5608
+ project.workdir
5609
+ );
5598
5610
  }
5599
5611
  await createBranch(project.workdir, name, sb);
5600
5612
  const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-SFG42M4W.js");
@@ -5614,7 +5626,7 @@ async function createServerHandle(config3) {
5614
5626
  const session = sessionManager.getSession(req.params.id);
5615
5627
  if (!session) return res.status(404).json({ error: "Session not found" });
5616
5628
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
5617
- const { listBranches, getDefaultBranch: getDefaultBranch2 } = await import("./workspace-N2PIBOJV.js");
5629
+ const { listBranches, getDefaultBranch: getDefaultBranch2 } = await import("./workspace-MMV6V5P4.js");
5618
5630
  const [branches, defaultBranch] = await Promise.all([
5619
5631
  listBranches(effectiveWorkdir),
5620
5632
  getDefaultBranch2(session.workdir)
@@ -5628,7 +5640,7 @@ async function createServerHandle(config3) {
5628
5640
  const { branch } = req.body;
5629
5641
  if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
5630
5642
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
5631
- const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-N2PIBOJV.js");
5643
+ const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-MMV6V5P4.js");
5632
5644
  const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-SFG42M4W.js");
5633
5645
  try {
5634
5646
  await validateRef2(effectiveWorkdir, branch);
@@ -5671,17 +5683,19 @@ All file and git operations should use this branch.
5671
5683
  const { name, sourceBranch } = req.body;
5672
5684
  if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
5673
5685
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
5674
- const { validateRef: validateRef2 } = await import("./workspace-N2PIBOJV.js");
5686
+ const { validateRef: validateRef2 } = await import("./workspace-MMV6V5P4.js");
5675
5687
  const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-SFG42M4W.js");
5676
5688
  try {
5677
5689
  await validateRef2(effectiveWorkdir, name);
5678
5690
  if (sourceBranch) {
5679
- const { resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, createBranch } = await import("./workspace-N2PIBOJV.js");
5691
+ const { resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, createBranch } = await import("./workspace-MMV6V5P4.js");
5680
5692
  const sb = await resolveAndValidateSourceBranch2(effectiveWorkdir, sourceBranch, session.workdir);
5681
5693
  await createBranch(effectiveWorkdir, name, sb);
5682
5694
  } else {
5683
- const { createBranch } = await import("./workspace-N2PIBOJV.js");
5684
- await createBranch(effectiveWorkdir, name);
5695
+ const { createBranch, getDefaultBranch: getDefaultBranch2, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2 } = await import("./workspace-MMV6V5P4.js");
5696
+ const defaultBranch = await getDefaultBranch2(session.workdir);
5697
+ const sb = await resolveAndValidateSourceBranch2(effectiveWorkdir, defaultBranch, session.workdir);
5698
+ await createBranch(effectiveWorkdir, name, sb);
5685
5699
  }
5686
5700
  updateSessionBranch2(req.params.id, name);
5687
5701
  if (session.workspace) {
@@ -5719,7 +5733,7 @@ All file and git operations should use this branch.
5719
5733
  const { getProject: getProject2 } = await import("./projects-ZGJGICGT.js");
5720
5734
  const project = getProject2(req.params.id);
5721
5735
  if (!project) return res.status(404).json({ error: "Project not found" });
5722
- const { listWorkspaces } = await import("./workspace-N2PIBOJV.js");
5736
+ const { listWorkspaces } = await import("./workspace-MMV6V5P4.js");
5723
5737
  const all = await listWorkspaces(project.name, project.workdir);
5724
5738
  const workspacesList = all.filter((ws) => ws.path !== project.workdir);
5725
5739
  res.json({ workspaces: workspacesList });
@@ -5794,6 +5808,12 @@ All file and git operations should use this branch.
5794
5808
  if (!session) return res.status(404).json({ error: "Session not found" });
5795
5809
  const { target, branch, sourceBranch } = req.body;
5796
5810
  if (!target || typeof target !== "string") return res.status(400).json({ error: "target is required" });
5811
+ const project = sessionManager.getProject(session.projectId);
5812
+ if (!project) return res.status(404).json({ error: "Project not found" });
5813
+ const { isGitRepository } = await import("./workspace-MMV6V5P4.js");
5814
+ if (!await isGitRepository(project.workdir)) {
5815
+ return res.status(400).json({ error: "Project is not a git repository" });
5816
+ }
5797
5817
  try {
5798
5818
  const updated = await sessionManager.switchWorkspace(req.params.id, target, branch, sourceBranch);
5799
5819
  res.json({ session: updated });
@@ -5806,6 +5826,12 @@ All file and git operations should use this branch.
5806
5826
  if (!session) return res.status(404).json({ error: "Session not found" });
5807
5827
  const { target } = req.body;
5808
5828
  if (!target || typeof target !== "string") return res.status(400).json({ error: "target is required" });
5829
+ const project = sessionManager.getProject(session.projectId);
5830
+ if (!project) return res.status(404).json({ error: "Project not found" });
5831
+ const { isGitRepository } = await import("./workspace-MMV6V5P4.js");
5832
+ if (!await isGitRepository(project.workdir)) {
5833
+ return res.status(400).json({ error: "Project is not a git repository" });
5834
+ }
5809
5835
  try {
5810
5836
  const updated = await sessionManager.deleteWorkspace(req.params.id, target);
5811
5837
  res.json({ session: updated });
@@ -5816,7 +5842,7 @@ All file and git operations should use this branch.
5816
5842
  app.get("/api/sessions/:id", async (req, res) => {
5817
5843
  const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-GF2WNELM.js");
5818
5844
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-UACKBHUZ.js");
5819
- const { getPendingQuestionsForSession } = await import("./tools-X4YLRR2Y.js");
5845
+ const { getPendingQuestionsForSession } = await import("./tools-6NVILBHW.js");
5820
5846
  const { getMaxVisibleItems } = await import("./settings-6TJIHDVX.js");
5821
5847
  const session = sessionManager.getSession(req.params.id);
5822
5848
  if (!session) {
@@ -5847,8 +5873,8 @@ All file and git operations should use this branch.
5847
5873
  if (!session) {
5848
5874
  return res.status(404).json({ error: "Session not found" });
5849
5875
  }
5850
- const { stopSessionExecution } = await import("./chat-handler-6KBOE4YA.js");
5851
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-X4YLRR2Y.js");
5876
+ const { stopSessionExecution } = await import("./chat-handler-377ZHEDW.js");
5877
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-6NVILBHW.js");
5852
5878
  sessionManager.clearMessageQueue(sessionId);
5853
5879
  stopSessionExecution(sessionId, sessionManager);
5854
5880
  abortSession(sessionId);
@@ -6055,7 +6081,7 @@ All file and git operations should use this branch.
6055
6081
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6056
6082
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6057
6083
  }
6058
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-X4YLRR2Y.js");
6084
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-6NVILBHW.js");
6059
6085
  const pendingSessionId = getConfirmationSessionId(callId);
6060
6086
  if (!pendingSessionId) {
6061
6087
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6070,7 +6096,7 @@ All file and git operations should use this branch.
6070
6096
  const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-GF2WNELM.js");
6071
6097
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-UACKBHUZ.js");
6072
6098
  const { createSessionStateMessage } = await import("./protocol-Q7X4NEME.js");
6073
- const { getPendingQuestionsForSession } = await import("./tools-X4YLRR2Y.js");
6099
+ const { getPendingQuestionsForSession } = await import("./tools-6NVILBHW.js");
6074
6100
  const { getMaxVisibleItems } = await import("./settings-6TJIHDVX.js");
6075
6101
  const eventStore = getEventStore2();
6076
6102
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
@@ -6107,7 +6133,7 @@ All file and git operations should use this branch.
6107
6133
  if (!skip && typeof answer !== "string") {
6108
6134
  return res.status(400).json({ error: "answer is required when not skipping" });
6109
6135
  }
6110
- const { provideAnswer } = await import("./tools-X4YLRR2Y.js");
6136
+ const { provideAnswer } = await import("./tools-6NVILBHW.js");
6111
6137
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6112
6138
  if (!found) {
6113
6139
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -6167,7 +6193,7 @@ All file and git operations should use this branch.
6167
6193
  backend: activeProvider?.backend ?? llmClient.getBackend(),
6168
6194
  model: llmClient.getModel()
6169
6195
  };
6170
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-BO62JYFM.js");
6196
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-LRKFV4MN.js");
6171
6197
  runAgentTurn(
6172
6198
  {
6173
6199
  sessionManager,
@@ -6205,8 +6231,8 @@ All file and git operations should use this branch.
6205
6231
  if (!session) {
6206
6232
  return res.status(404).json({ error: "Session not found" });
6207
6233
  }
6208
- const { stopSessionExecution } = await import("./chat-handler-6KBOE4YA.js");
6209
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-X4YLRR2Y.js");
6234
+ const { stopSessionExecution } = await import("./chat-handler-377ZHEDW.js");
6235
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-6NVILBHW.js");
6210
6236
  const queuedMessages = sessionManager.getQueueState(sessionId);
6211
6237
  sessionManager.clearMessageQueue(sessionId);
6212
6238
  stopSessionExecution(sessionId, sessionManager);
@@ -6856,7 +6882,7 @@ All file and git operations should use this branch.
6856
6882
  });
6857
6883
  async function rebuildMcpTools() {
6858
6884
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-MOGEI6TP.js");
6859
- const { setMcpTools: setMcpTools2 } = await import("./tools-X4YLRR2Y.js");
6885
+ const { setMcpTools: setMcpTools2 } = await import("./tools-6NVILBHW.js");
6860
6886
  const mcpTools = createMcpTools2(mcpManager);
6861
6887
  setMcpTools2(mcpTools);
6862
6888
  }
@@ -7252,7 +7278,7 @@ All file and git operations should use this branch.
7252
7278
  const state = sessionManager.getContextState(sessionId);
7253
7279
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
7254
7280
  });
7255
- const { QueueProcessor } = await import("./processor-BLGEVOPK.js");
7281
+ const { QueueProcessor } = await import("./processor-LXVRVPBN.js");
7256
7282
  const queueProcessor = new QueueProcessor({
7257
7283
  sessionManager,
7258
7284
  providerManager,
@@ -7332,4 +7358,4 @@ export {
7332
7358
  createServerHandle,
7333
7359
  createServer
7334
7360
  };
7335
- //# sourceMappingURL=chunk-7ROIY3QN.js.map
7361
+ //# sourceMappingURL=chunk-J5E6ZE7O.js.map
@@ -3,7 +3,7 @@ import {
3
3
  computeSessionHash,
4
4
  runAgentTurn,
5
5
  runChatTurn
6
- } from "./chunk-D324ULDG.js";
6
+ } from "./chunk-G4PVYDVM.js";
7
7
  import {
8
8
  deleteItemFromDir,
9
9
  devServerManager,
@@ -13,7 +13,7 @@ import {
13
13
  jsonSerializer,
14
14
  loadAllAgentsDefault,
15
15
  saveItemToDir
16
- } from "./chunk-OBQN5ATP.js";
16
+ } from "./chunk-CKWD5V4W.js";
17
17
  import {
18
18
  checkAborted,
19
19
  onProcessEvent,
@@ -2217,4 +2217,4 @@ export {
2217
2217
  signalMcpReady,
2218
2218
  createWebSocketServer
2219
2219
  };
2220
- //# sourceMappingURL=chunk-KMGVUOLT.js.map
2220
+ //# sourceMappingURL=chunk-XIVQNOXU.js.map
@@ -0,0 +1,7 @@
1
+ // src/constants.ts
2
+ var VERSION = "2.0.84";
3
+
4
+ export {
5
+ VERSION
6
+ };
7
+ //# sourceMappingURL=chunk-YWBJRUDI.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-HLZUN7OR.js";
4
+ } from "../chunk-55L4SHCO.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-HLZUN7OR.js";
4
+ } from "../chunk-55L4SHCO.js";
5
5
  import "../chunk-XY3LESVZ.js";
6
6
  import {
7
7
  logger
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  runAgentTurn,
3
3
  runChatTurn
4
- } from "./chunk-D324ULDG.js";
5
- import "./chunk-OBQN5ATP.js";
4
+ } from "./chunk-G4PVYDVM.js";
5
+ import "./chunk-CKWD5V4W.js";
6
6
  import "./chunk-JKZPMRH2.js";
7
7
  import "./chunk-NWO6GRYE.js";
8
8
  import "./chunk-VPFUXGMM.js";
9
- import "./chunk-JXTHW3YX.js";
9
+ import "./chunk-7PZBCATU.js";
10
10
  import "./chunk-J7GAZGZT.js";
11
11
  import "./chunk-3D3N2PXI.js";
12
12
  import "./chunk-SJTG56CH.js";
@@ -47,4 +47,4 @@ export {
47
47
  runAgentTurn,
48
48
  runChatTurn
49
49
  };
50
- //# sourceMappingURL=orchestrator-BO62JYFM.js.map
50
+ //# sourceMappingURL=orchestrator-LRKFV4MN.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.83",
3
+ "version": "2.0.84",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -3,11 +3,11 @@ import {
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
5
  } from "./chunk-WL6AOKRD.js";
6
- import "./chunk-OBQN5ATP.js";
6
+ import "./chunk-CKWD5V4W.js";
7
7
  import "./chunk-JKZPMRH2.js";
8
8
  import "./chunk-NWO6GRYE.js";
9
9
  import "./chunk-VPFUXGMM.js";
10
- import "./chunk-JXTHW3YX.js";
10
+ import "./chunk-7PZBCATU.js";
11
11
  import "./chunk-J7GAZGZT.js";
12
12
  import "./chunk-3D3N2PXI.js";
13
13
  import {
@@ -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-BO62JYFM.js");
184
+ const { runChatTurn } = await import("./orchestrator-LRKFV4MN.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-BLGEVOPK.js.map
232
+ //# sourceMappingURL=processor-LXVRVPBN.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createServer
3
- } from "./chunk-7ROIY3QN.js";
4
- import "./chunk-KMGVUOLT.js";
5
- import "./chunk-D324ULDG.js";
6
- import "./chunk-OBQN5ATP.js";
3
+ } from "./chunk-J5E6ZE7O.js";
4
+ import "./chunk-XIVQNOXU.js";
5
+ import "./chunk-G4PVYDVM.js";
6
+ import "./chunk-CKWD5V4W.js";
7
7
  import "./chunk-JKZPMRH2.js";
8
8
  import "./chunk-NWO6GRYE.js";
9
9
  import "./chunk-VPFUXGMM.js";
10
- import "./chunk-JXTHW3YX.js";
10
+ import "./chunk-7PZBCATU.js";
11
11
  import "./chunk-J7GAZGZT.js";
12
12
  import "./chunk-3D3N2PXI.js";
13
13
  import "./chunk-SJTG56CH.js";
@@ -20,7 +20,7 @@ import "./chunk-6AE3JPDJ.js";
20
20
  import "./chunk-I72ACQ6R.js";
21
21
  import {
22
22
  VERSION
23
- } from "./chunk-2X3V4SQC.js";
23
+ } from "./chunk-YWBJRUDI.js";
24
24
  import {
25
25
  loadConfig
26
26
  } from "./chunk-BUXIESO5.js";
@@ -212,4 +212,4 @@ async function runServe(options) {
212
212
  export {
213
213
  runServe
214
214
  };
215
- //# sourceMappingURL=serve-HXV2RX3Q.js.map
215
+ //# sourceMappingURL=serve-SYGARZPL.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-7ROIY3QN.js";
5
- import "../chunk-KMGVUOLT.js";
6
- import "../chunk-D324ULDG.js";
7
- import "../chunk-OBQN5ATP.js";
4
+ } from "../chunk-J5E6ZE7O.js";
5
+ import "../chunk-XIVQNOXU.js";
6
+ import "../chunk-G4PVYDVM.js";
7
+ import "../chunk-CKWD5V4W.js";
8
8
  import "../chunk-JKZPMRH2.js";
9
9
  import "../chunk-NWO6GRYE.js";
10
10
  import "../chunk-VPFUXGMM.js";
11
- import "../chunk-JXTHW3YX.js";
11
+ import "../chunk-7PZBCATU.js";
12
12
  import "../chunk-J7GAZGZT.js";
13
13
  import "../chunk-3D3N2PXI.js";
14
14
  import "../chunk-SJTG56CH.js";
@@ -19,7 +19,7 @@ import "../chunk-5ZHVQOI3.js";
19
19
  import "../chunk-EYIWUONA.js";
20
20
  import "../chunk-6AE3JPDJ.js";
21
21
  import "../chunk-I72ACQ6R.js";
22
- import "../chunk-2X3V4SQC.js";
22
+ import "../chunk-YWBJRUDI.js";
23
23
  import "../chunk-BUXIESO5.js";
24
24
  import "../chunk-A2IZ4PWQ.js";
25
25
  import "../chunk-AANVMTYU.js";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  createWebSocketServer,
3
3
  signalMcpReady
4
- } from "./chunk-KMGVUOLT.js";
5
- import "./chunk-D324ULDG.js";
6
- import "./chunk-OBQN5ATP.js";
4
+ } from "./chunk-XIVQNOXU.js";
5
+ import "./chunk-G4PVYDVM.js";
6
+ import "./chunk-CKWD5V4W.js";
7
7
  import "./chunk-JKZPMRH2.js";
8
8
  import "./chunk-NWO6GRYE.js";
9
9
  import "./chunk-VPFUXGMM.js";
10
- import "./chunk-JXTHW3YX.js";
10
+ import "./chunk-7PZBCATU.js";
11
11
  import "./chunk-J7GAZGZT.js";
12
12
  import "./chunk-3D3N2PXI.js";
13
13
  import "./chunk-SJTG56CH.js";
@@ -37,4 +37,4 @@ export {
37
37
  createWebSocketServer,
38
38
  signalMcpReady
39
39
  };
40
- //# sourceMappingURL=server-V4VA4A2E.js.map
40
+ //# sourceMappingURL=server-ZU3IU7WH.js.map
@@ -8,11 +8,11 @@ import {
8
8
  setMcpTools,
9
9
  stepDoneTool,
10
10
  validateToolAction
11
- } from "./chunk-OBQN5ATP.js";
11
+ } from "./chunk-CKWD5V4W.js";
12
12
  import "./chunk-JKZPMRH2.js";
13
13
  import "./chunk-NWO6GRYE.js";
14
14
  import "./chunk-VPFUXGMM.js";
15
- import "./chunk-JXTHW3YX.js";
15
+ import "./chunk-7PZBCATU.js";
16
16
  import "./chunk-J7GAZGZT.js";
17
17
  import {
18
18
  PathAccessDeniedError,
@@ -67,4 +67,4 @@ export {
67
67
  stepDoneTool,
68
68
  validateToolAction
69
69
  };
70
- //# sourceMappingURL=tools-X4YLRR2Y.js.map
70
+ //# sourceMappingURL=tools-6NVILBHW.js.map