openfox 2.0.124 → 2.0.126

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 (56) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -0
  3. package/dist/CHANGELOG.md +24 -0
  4. package/dist/{backend-67OLCS5O.js → backend-4YPEC3J2.js} +2 -2
  5. package/dist/{chat-handler-N43TBYLV.js → chat-handler-OJ4XBQY4.js} +13 -13
  6. package/dist/{chunk-QJNBQCAF.js → chunk-2UPFWNC4.js} +4 -4
  7. package/dist/{chunk-57UCBFBD.js → chunk-6VW4BQMP.js} +9 -9
  8. package/dist/{chunk-5CCM655F.js → chunk-76A3E4LK.js} +35 -19
  9. package/dist/{chunk-KGFERMCV.js → chunk-77PJWQR7.js} +6 -6
  10. package/dist/chunk-ABCCTPBC.js +7 -0
  11. package/dist/{chunk-UGEFD67O.js → chunk-CTHRGR4O.js} +2 -2
  12. package/dist/{chunk-SYTEO5LA.js → chunk-FNXTJLCZ.js} +197 -8
  13. package/dist/{chunk-RXLAFEZB.js → chunk-H2RZDEVL.js} +4 -4
  14. package/dist/{chunk-W4SM4FFZ.js → chunk-HOSFRPPI.js} +14 -10
  15. package/dist/{chunk-MIPQOHWS.js → chunk-KAZWU73N.js} +26 -2
  16. package/dist/{chunk-62GUO2EG.js → chunk-LJX7KXRU.js} +3 -3
  17. package/dist/{chunk-AZHWLLPP.js → chunk-PBFGJFGC.js} +28 -10
  18. package/dist/{chunk-A6EZBX62.js → chunk-T3JVYO3Z.js} +16 -6
  19. package/dist/{chunk-FAL4WO4V.js → chunk-TP2PGZSE.js} +3 -3
  20. package/dist/{chunk-JEZN37KV.js → chunk-UAAFZEIS.js} +2 -2
  21. package/dist/{chunk-3NMLSANH.js → chunk-Y3BSBKHY.js} +31 -17
  22. package/dist/chunk-ZFNBATE3.js +196 -0
  23. package/dist/{chunk-VUBFPRKT.js → chunk-ZS55MMG6.js} +58 -51
  24. package/dist/cli/dev.js +1 -1
  25. package/dist/cli/index.js +1 -1
  26. package/dist/{client-XHJHOFMU.js → client-YHYIWZY7.js} +5 -5
  27. package/dist/{client-pure-QSY7TJGK.js → client-pure-CJKM3ACP.js} +2 -2
  28. package/dist/{compactor-VTATJTPN.js → compactor-7KPBTFZF.js} +5 -5
  29. package/dist/{dynamic-context-KTQCAPTK.js → dynamic-context-PYAUG2LP.js} +2 -2
  30. package/dist/{http-client-N4ASJEKJ.js → http-client-ROVNSHF6.js} +2 -2
  31. package/dist/{launch-Z5D5YFRJ.js → launch-3F2GCRRF.js} +13 -13
  32. package/dist/{orchestrator-BQBBO4US.js → orchestrator-BRHIA2KE.js} +12 -12
  33. package/dist/package.json +1 -1
  34. package/dist/plugins-registry.json +6 -0
  35. package/dist/{processor-WTRVYXAO.js → processor-2IFXIJXG.js} +12 -12
  36. package/dist/provider/index.d.ts +2 -2
  37. package/dist/{provider-LICG53GG.js → provider-6LUA73HF.js} +6 -6
  38. package/dist/{provider-manager-3QC2MSSR.js → provider-manager-OQTEXZ7X.js} +6 -6
  39. package/dist/{serve-75G5Z7UQ.js → serve-WJKFUMLI.js} +18 -18
  40. package/dist/server/index.d.ts +6 -1
  41. package/dist/server/index.js +17 -17
  42. package/dist/{server-N3VATHIA.js → server-6LDC4HU6.js} +16 -16
  43. package/dist/{service-OURGS2SI.js → service-BRKMLM4C.js} +7 -7
  44. package/dist/{tasks-4SOLTX6A.js → tasks-DEUZ6BNS.js} +7 -7
  45. package/dist/{tools-G44LBKD4.js → tools-AOLICK5U.js} +10 -10
  46. package/dist/{types-Cr4EgGwK.d.ts → types-BWuVnaBw.d.ts} +3 -1
  47. package/dist/{update-R2TEHD7V.js → update-VH75MTCP.js} +2 -2
  48. package/dist/web/assets/index-DQ3Wg2OF.js +324 -0
  49. package/dist/web/index.html +1 -1
  50. package/dist/web/sw.js +1 -1
  51. package/dist/{workspace-J3JEGF6U.js → workspace-6CUE26YA.js} +2 -2
  52. package/package.json +1 -1
  53. package/plugins-registry.json +6 -0
  54. package/dist/chunk-SBADOWVC.js +0 -7
  55. package/dist/chunk-VPRB5FNR.js +0 -167
  56. package/dist/web/assets/index-GZTGHRRr.js +0 -324
@@ -16,10 +16,10 @@ import {
16
16
  terminalManager,
17
17
  tokenFromPassword,
18
18
  verifyPassword
19
- } from "./chunk-57UCBFBD.js";
19
+ } from "./chunk-6VW4BQMP.js";
20
20
  import {
21
21
  TEMPLATE_VARIABLES
22
- } from "./chunk-KGFERMCV.js";
22
+ } from "./chunk-77PJWQR7.js";
23
23
  import {
24
24
  createToolRegistry,
25
25
  devServerManager,
@@ -33,7 +33,7 @@ import {
33
33
  setMcpManagerForTools,
34
34
  setMcpTools,
35
35
  setNotifyMcpServersChanged
36
- } from "./chunk-5CCM655F.js";
36
+ } from "./chunk-76A3E4LK.js";
37
37
  import {
38
38
  deleteOwnedSkill,
39
39
  deleteProjectSkill,
@@ -72,6 +72,7 @@ import {
72
72
  getGitBranch,
73
73
  getGlobalDataDir,
74
74
  getWorkspacesDir,
75
+ isDirectoryEntry,
75
76
  loadWorkspaceConfig,
76
77
  resolveAndValidateSourceBranch,
77
78
  runGit,
@@ -79,7 +80,7 @@ import {
79
80
  validateRef,
80
81
  validateWorkspaceName,
81
82
  workspaceExists
82
- } from "./chunk-3NMLSANH.js";
83
+ } from "./chunk-Y3BSBKHY.js";
83
84
  import {
84
85
  commandExists,
85
86
  deleteCommand,
@@ -106,7 +107,7 @@ import {
106
107
  saveWorkflow,
107
108
  saveWorkflowToProject,
108
109
  workflowExists
109
- } from "./chunk-UGEFD67O.js";
110
+ } from "./chunk-CTHRGR4O.js";
110
111
  import {
111
112
  getSessionDisabledServers,
112
113
  setSessionDisabledServers
@@ -170,10 +171,10 @@ import {
170
171
  detectModel,
171
172
  getLlmStatus,
172
173
  parseDefaultModelSelection
173
- } from "./chunk-A6EZBX62.js";
174
+ } from "./chunk-T3JVYO3Z.js";
174
175
  import {
175
176
  VERSION
176
- } from "./chunk-SBADOWVC.js";
177
+ } from "./chunk-ABCCTPBC.js";
177
178
  import {
178
179
  agentExists,
179
180
  deleteAgent,
@@ -205,14 +206,14 @@ import {
205
206
  } from "./chunk-GJL3QSMP.js";
206
207
  import {
207
208
  getBackendDisplayName
208
- } from "./chunk-AZHWLLPP.js";
209
+ } from "./chunk-PBFGJFGC.js";
209
210
  import {
210
211
  buildModelsUrl
211
212
  } from "./chunk-HNCM3D7Y.js";
212
213
  import {
213
214
  SessionNotFoundError,
214
215
  WorkspaceInUseError
215
- } from "./chunk-VPRB5FNR.js";
216
+ } from "./chunk-ZFNBATE3.js";
216
217
  import {
217
218
  deleteSetting,
218
219
  getSetting,
@@ -369,14 +370,14 @@ var RULES = [
369
370
  tools: [
370
371
  {
371
372
  name: "session_metadata",
372
- arguments: { action: "update", key: "criteria", id: "0", description: "Updated description" }
373
+ arguments: { action: "update", key: "criteria", id: "1", description: "Updated description" }
373
374
  }
374
375
  ],
375
376
  response: "Updated the criterion."
376
377
  },
377
378
  {
378
379
  match: /session_metadata.*action\s*["']remove["']/i,
379
- tools: [{ name: "session_metadata", arguments: { action: "remove", key: "criteria", id: "0" } }],
380
+ tools: [{ name: "session_metadata", arguments: { action: "remove", key: "criteria", id: "1" } }],
380
381
  response: "Removed the criterion."
381
382
  },
382
383
  {
@@ -2848,17 +2849,21 @@ var SessionManager = class {
2848
2849
  getCurrentModelSettings(sessionId, agentId) {
2849
2850
  let providerId;
2850
2851
  let model;
2852
+ let reasoningEffort;
2851
2853
  if (sessionId) {
2852
2854
  const effective = this.resolveEffectiveProviderModel(sessionId, agentId);
2853
2855
  providerId = effective.providerId ?? void 0;
2854
2856
  model = effective.model ?? void 0;
2857
+ reasoningEffort = effective.reasoningEffort;
2855
2858
  }
2856
2859
  if (!providerId || !model) {
2857
2860
  model = this.providerManager.getCurrentModel();
2858
2861
  providerId = this.providerManager.getActiveProviderId();
2859
2862
  }
2860
2863
  if (!model || !providerId) return void 0;
2861
- return this.providerManager.getModelSettings(providerId, model);
2864
+ const effort = this.providerManager.resolveModelEffort(providerId, model, reasoningEffort);
2865
+ const mode = effort === "none" ? "non-thinking" : "thinking";
2866
+ return this.providerManager.getModelSettings(providerId, model, mode);
2862
2867
  }
2863
2868
  getCurrentModelContext(sessionId, agentId) {
2864
2869
  if (sessionId) {
@@ -4916,7 +4921,7 @@ async function findOrphanedWorkspaces(dir) {
4916
4921
  try {
4917
4922
  const entries = await readdir(dir, { withFileTypes: true });
4918
4923
  for (const entry of entries) {
4919
- if (entry.isDirectory()) {
4924
+ if (await isDirectoryEntry(dir, entry)) {
4920
4925
  try {
4921
4926
  const gitStat = await stat2(join5(dir, entry.name, ".git"));
4922
4927
  if (gitStat.isDirectory()) {
@@ -5120,10 +5125,12 @@ function createDirectoryRoutes() {
5120
5125
  try {
5121
5126
  const resolvedPath = resolve5(path);
5122
5127
  const entries = await readdir2(resolvedPath, { withFileTypes: true });
5123
- const directories = entries.filter((entry) => entry.isDirectory()).map((entry) => ({
5124
- name: entry.name,
5125
- path: join6(resolvedPath, entry.name)
5126
- })).sort((a, b) => a.name.localeCompare(b.name));
5128
+ const dirs = await Promise.all(
5129
+ entries.map(
5130
+ async (entry) => await isDirectoryEntry(resolvedPath, entry) ? { name: entry.name, path: join6(resolvedPath, entry.name) } : null
5131
+ )
5132
+ );
5133
+ const directories = dirs.filter((d) => d !== null).sort((a, b) => a.name.localeCompare(b.name));
5127
5134
  const parent = dirname4(resolvedPath);
5128
5135
  const hasParent = parent !== resolvedPath;
5129
5136
  res.json({
@@ -5843,7 +5850,7 @@ function createPluginRoutes(options) {
5843
5850
  const entries = await readdir4(pluginsDir, { withFileTypes: true });
5844
5851
  const installed = [];
5845
5852
  for (const entry of entries) {
5846
- if (!entry.isDirectory()) continue;
5853
+ if (!await isDirectoryEntry(pluginsDir, entry)) continue;
5847
5854
  const pkgPath = join8(pluginsDir, entry.name, "package.json");
5848
5855
  let version = null;
5849
5856
  try {
@@ -6058,7 +6065,7 @@ async function createServerHandle(config3) {
6058
6065
  toolRegistry = createToolRegistry();
6059
6066
  logger.info("MCP tools registered", { count: mcpTools.length });
6060
6067
  }
6061
- const { signalMcpReady } = await import("./server-N3VATHIA.js");
6068
+ const { signalMcpReady } = await import("./server-6LDC4HU6.js");
6062
6069
  signalMcpReady();
6063
6070
  });
6064
6071
  const app = express();
@@ -6254,9 +6261,9 @@ async function createServerHandle(config3) {
6254
6261
  const sessionFavoriteRouter = express.Router();
6255
6262
  registerSessionFavoriteRoute(sessionFavoriteRouter, sessionManager);
6256
6263
  app.use("/api", sessionFavoriteRouter);
6257
- const { createTasksService } = await import("./service-OURGS2SI.js");
6258
- const { registerTaskRoutes } = await import("./tasks-4SOLTX6A.js");
6259
- const { setTasksService } = await import("./tools-G44LBKD4.js");
6264
+ const { createTasksService } = await import("./service-BRKMLM4C.js");
6265
+ const { registerTaskRoutes } = await import("./tasks-DEUZ6BNS.js");
6266
+ const { setTasksService } = await import("./tools-AOLICK5U.js");
6260
6267
  const tasksService = createTasksService({
6261
6268
  sessionManager,
6262
6269
  config: config3,
@@ -6272,7 +6279,7 @@ async function createServerHandle(config3) {
6272
6279
  const { getProject: getProject2 } = await import("./projects-TPSLCJP2.js");
6273
6280
  const project = getProject2(req.params.id);
6274
6281
  if (!project) return res.status(404).json({ error: "Project not found" });
6275
- const { listBranches } = await import("./workspace-J3JEGF6U.js");
6282
+ const { listBranches } = await import("./workspace-6CUE26YA.js");
6276
6283
  const branches = await listBranches(project.workdir);
6277
6284
  res.json({ branches });
6278
6285
  });
@@ -6282,7 +6289,7 @@ async function createServerHandle(config3) {
6282
6289
  if (!project) return res.status(404).json({ error: "Project not found" });
6283
6290
  const { branch } = req.body;
6284
6291
  if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
6285
- const { checkoutBranch, isGitRepository } = await import("./workspace-J3JEGF6U.js");
6292
+ const { checkoutBranch, isGitRepository } = await import("./workspace-6CUE26YA.js");
6286
6293
  if (!await isGitRepository(project.workdir)) {
6287
6294
  return res.status(400).json({ error: "Project is not a git repository" });
6288
6295
  }
@@ -6307,7 +6314,7 @@ async function createServerHandle(config3) {
6307
6314
  if (!project) return res.status(404).json({ error: "Project not found" });
6308
6315
  const { name, sourceBranch } = req.body;
6309
6316
  if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
6310
- const { createBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, validateRef: validateRef2, getDefaultBranch, isGitRepository } = await import("./workspace-J3JEGF6U.js");
6317
+ const { createBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, validateRef: validateRef2, getDefaultBranch, isGitRepository } = await import("./workspace-6CUE26YA.js");
6311
6318
  if (!await isGitRepository(project.workdir)) {
6312
6319
  return res.status(400).json({ error: "Project is not a git repository" });
6313
6320
  }
@@ -6341,7 +6348,7 @@ async function createServerHandle(config3) {
6341
6348
  const session = sessionManager.getSession(req.params.id);
6342
6349
  if (!session) return res.status(404).json({ error: "Session not found" });
6343
6350
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
6344
- const { listBranches, getDefaultBranch } = await import("./workspace-J3JEGF6U.js");
6351
+ const { listBranches, getDefaultBranch } = await import("./workspace-6CUE26YA.js");
6345
6352
  const [branches, defaultBranch] = await Promise.all([
6346
6353
  listBranches(effectiveWorkdir),
6347
6354
  getDefaultBranch(session.workdir)
@@ -6355,7 +6362,7 @@ async function createServerHandle(config3) {
6355
6362
  const { branch } = req.body;
6356
6363
  if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
6357
6364
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
6358
- const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-J3JEGF6U.js");
6365
+ const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-6CUE26YA.js");
6359
6366
  const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-D7VRCHQY.js");
6360
6367
  try {
6361
6368
  await validateRef2(effectiveWorkdir, branch);
@@ -6398,16 +6405,16 @@ All file and git operations should use this branch.
6398
6405
  const { name, sourceBranch } = req.body;
6399
6406
  if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
6400
6407
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
6401
- const { validateRef: validateRef2 } = await import("./workspace-J3JEGF6U.js");
6408
+ const { validateRef: validateRef2 } = await import("./workspace-6CUE26YA.js");
6402
6409
  const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-D7VRCHQY.js");
6403
6410
  try {
6404
6411
  await validateRef2(effectiveWorkdir, name);
6405
6412
  if (sourceBranch) {
6406
- const { resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, createBranch } = await import("./workspace-J3JEGF6U.js");
6413
+ const { resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, createBranch } = await import("./workspace-6CUE26YA.js");
6407
6414
  const sb = await resolveAndValidateSourceBranch2(effectiveWorkdir, sourceBranch, session.workdir);
6408
6415
  await createBranch(effectiveWorkdir, name, sb);
6409
6416
  } else {
6410
- const { createBranch, getDefaultBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2 } = await import("./workspace-J3JEGF6U.js");
6417
+ const { createBranch, getDefaultBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2 } = await import("./workspace-6CUE26YA.js");
6411
6418
  const defaultBranch = await getDefaultBranch(session.workdir);
6412
6419
  const sb = await resolveAndValidateSourceBranch2(effectiveWorkdir, defaultBranch, session.workdir);
6413
6420
  await createBranch(effectiveWorkdir, name, sb);
@@ -6448,7 +6455,7 @@ All file and git operations should use this branch.
6448
6455
  const { getProject: getProject2 } = await import("./projects-TPSLCJP2.js");
6449
6456
  const project = getProject2(req.params.id);
6450
6457
  if (!project) return res.status(404).json({ error: "Project not found" });
6451
- const { listWorkspaces } = await import("./workspace-J3JEGF6U.js");
6458
+ const { listWorkspaces } = await import("./workspace-6CUE26YA.js");
6452
6459
  const all = await listWorkspaces(project.name, project.workdir);
6453
6460
  const workspacesList = all.filter((ws) => ws.path !== project.workdir);
6454
6461
  res.json({ workspaces: workspacesList });
@@ -6547,7 +6554,7 @@ All file and git operations should use this branch.
6547
6554
  if (!target || typeof target !== "string") return res.status(400).json({ error: "target is required" });
6548
6555
  const project = sessionManager.getProject(session.projectId);
6549
6556
  if (!project) return res.status(404).json({ error: "Project not found" });
6550
- const { isGitRepository } = await import("./workspace-J3JEGF6U.js");
6557
+ const { isGitRepository } = await import("./workspace-6CUE26YA.js");
6551
6558
  if (!await isGitRepository(project.workdir)) {
6552
6559
  return res.status(400).json({ error: "Project is not a git repository" });
6553
6560
  }
@@ -6565,7 +6572,7 @@ All file and git operations should use this branch.
6565
6572
  if (!target || typeof target !== "string") return res.status(400).json({ error: "target is required" });
6566
6573
  const project = sessionManager.getProject(session.projectId);
6567
6574
  if (!project) return res.status(404).json({ error: "Project not found" });
6568
- const { isGitRepository } = await import("./workspace-J3JEGF6U.js");
6575
+ const { isGitRepository } = await import("./workspace-6CUE26YA.js");
6569
6576
  if (!await isGitRepository(project.workdir)) {
6570
6577
  return res.status(400).json({ error: "Project is not a git repository" });
6571
6578
  }
@@ -6585,7 +6592,7 @@ All file and git operations should use this branch.
6585
6592
  app.get("/api/sessions/:id", async (req, res) => {
6586
6593
  const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-GMHRX4LF.js");
6587
6594
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-7K2GRPF4.js");
6588
- const { getPendingQuestionsForSession } = await import("./tools-G44LBKD4.js");
6595
+ const { getPendingQuestionsForSession } = await import("./tools-AOLICK5U.js");
6589
6596
  const { getMaxVisibleItems } = await import("./settings-VOWWO4VG.js");
6590
6597
  const session = sessionManager.getSession(req.params.id);
6591
6598
  if (!session) {
@@ -6614,7 +6621,7 @@ All file and git operations should use this branch.
6614
6621
  });
6615
6622
  app.get("/api/sessions/:id/status", async (req, res) => {
6616
6623
  const { projectSessionStatus } = await import("./session-status-6Q5B5PEN.js");
6617
- const { getPendingQuestionsForSession } = await import("./tools-G44LBKD4.js");
6624
+ const { getPendingQuestionsForSession } = await import("./tools-AOLICK5U.js");
6618
6625
  const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-GMHRX4LF.js");
6619
6626
  const { foldPendingConfirmations } = await import("./folding-7K2GRPF4.js");
6620
6627
  const sessionId = req.params["id"];
@@ -6646,8 +6653,8 @@ All file and git operations should use this branch.
6646
6653
  if (!session) {
6647
6654
  return res.status(404).json({ error: "Session not found" });
6648
6655
  }
6649
- const { stopSessionExecution } = await import("./chat-handler-N43TBYLV.js");
6650
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-G44LBKD4.js");
6656
+ const { stopSessionExecution } = await import("./chat-handler-OJ4XBQY4.js");
6657
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-AOLICK5U.js");
6651
6658
  sessionManager.clearMessageQueue(sessionId);
6652
6659
  stopSessionExecution(sessionId, sessionManager);
6653
6660
  abortSession(sessionId);
@@ -6924,7 +6931,7 @@ All file and git operations should use this branch.
6924
6931
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6925
6932
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6926
6933
  }
6927
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-G44LBKD4.js");
6934
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-AOLICK5U.js");
6928
6935
  const pendingSessionId = getConfirmationSessionId(callId);
6929
6936
  if (!pendingSessionId) {
6930
6937
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6939,7 +6946,7 @@ All file and git operations should use this branch.
6939
6946
  const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-GMHRX4LF.js");
6940
6947
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-7K2GRPF4.js");
6941
6948
  const { createSessionStateMessage } = await import("./protocol-TLODRZSB.js");
6942
- const { getPendingQuestionsForSession } = await import("./tools-G44LBKD4.js");
6949
+ const { getPendingQuestionsForSession } = await import("./tools-AOLICK5U.js");
6943
6950
  const { getMaxVisibleItems } = await import("./settings-VOWWO4VG.js");
6944
6951
  const eventStore = getEventStore2();
6945
6952
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
@@ -6977,7 +6984,7 @@ All file and git operations should use this branch.
6977
6984
  if (!skip && typeof answer !== "string") {
6978
6985
  return res.status(400).json({ error: "answer is required when not skipping" });
6979
6986
  }
6980
- const { provideAnswer } = await import("./tools-G44LBKD4.js");
6987
+ const { provideAnswer } = await import("./tools-AOLICK5U.js");
6981
6988
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6982
6989
  if (!found) {
6983
6990
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -7043,7 +7050,7 @@ All file and git operations should use this branch.
7043
7050
  backend: activeProvider?.backend ?? llmClient.getBackend(),
7044
7051
  model: llmClient.getModel()
7045
7052
  };
7046
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-BQBBO4US.js");
7053
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-BRHIA2KE.js");
7047
7054
  runAgentTurn(
7048
7055
  {
7049
7056
  sessionManager,
@@ -7081,8 +7088,8 @@ All file and git operations should use this branch.
7081
7088
  if (!session) {
7082
7089
  return res.status(404).json({ error: "Session not found" });
7083
7090
  }
7084
- const { stopSessionExecution } = await import("./chat-handler-N43TBYLV.js");
7085
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-G44LBKD4.js");
7091
+ const { stopSessionExecution } = await import("./chat-handler-OJ4XBQY4.js");
7092
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-AOLICK5U.js");
7086
7093
  const queuedMessages = sessionManager.getQueueState(sessionId);
7087
7094
  sessionManager.clearMessageQueue(sessionId);
7088
7095
  stopSessionExecution(sessionId, sessionManager);
@@ -7461,7 +7468,7 @@ All file and git operations should use this branch.
7461
7468
  const backend = req.query["backend"];
7462
7469
  if (!url) return res.status(400).json({ error: "url is required" });
7463
7470
  try {
7464
- const { fetchModelsWithContext } = await import("./provider-manager-3QC2MSSR.js");
7471
+ const { fetchModelsWithContext } = await import("./provider-manager-OQTEXZ7X.js");
7465
7472
  const { getModelProfile: getModelProfile2 } = await import("./profiles-3YLLEJ2B.js");
7466
7473
  const { getCatalogEntry } = await import("./model-catalog-ZLOWTQA7.js");
7467
7474
  const models = await fetchModelsWithContext(
@@ -7533,9 +7540,9 @@ All file and git operations should use this branch.
7533
7540
  return res.json({ success: true, message: { content: response2.content }, raw: response2 });
7534
7541
  }
7535
7542
  const { getModelProfile: getModelProfile2 } = await import("./profiles-3YLLEJ2B.js");
7536
- const { getBackendCapabilities } = await import("./backend-67OLCS5O.js");
7537
- const { buildNonStreamingCreateParams } = await import("./client-pure-QSY7TJGK.js");
7538
- const { OpenAIHttpClient } = await import("./http-client-N4ASJEKJ.js");
7543
+ const { getBackendCapabilities } = await import("./backend-4YPEC3J2.js");
7544
+ const { buildNonStreamingCreateParams } = await import("./client-pure-CJKM3ACP.js");
7545
+ const { OpenAIHttpClient } = await import("./http-client-ROVNSHF6.js");
7539
7546
  const { ensureVersionPrefix } = await import("./url-utils-C5BM7NF7.js");
7540
7547
  const profile = getModelProfile2(model);
7541
7548
  const capabilities = getBackendCapabilities(backend || "unknown");
@@ -7926,7 +7933,7 @@ All file and git operations should use this branch.
7926
7933
  });
7927
7934
  async function rebuildMcpTools() {
7928
7935
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-FJAFLDZA.js");
7929
- const { setMcpTools: setMcpTools2 } = await import("./tools-G44LBKD4.js");
7936
+ const { setMcpTools: setMcpTools2 } = await import("./tools-AOLICK5U.js");
7930
7937
  const mcpTools = createMcpTools2(mcpManager);
7931
7938
  setMcpTools2(mcpTools);
7932
7939
  toolRegistry = createToolRegistry();
@@ -8480,7 +8487,7 @@ All file and git operations should use this branch.
8480
8487
  );
8481
8488
  const wss = wssExports.wss;
8482
8489
  deferTasksBroadcast = (projectId, payload) => wssExports.broadcastForProject(projectId, "", { type: "tasks.update", payload });
8483
- const { launchWorkflowRun, abortRunnerRun } = await import("./launch-Z5D5YFRJ.js");
8490
+ const { launchWorkflowRun, abortRunnerRun } = await import("./launch-3F2GCRRF.js");
8484
8491
  deferTasksLaunchWorkflow = (sessionId, launch) => {
8485
8492
  const effective = sessionManager.resolveEffectiveProviderModel(sessionId);
8486
8493
  let llmClient = getLLMClient();
@@ -8520,7 +8527,7 @@ All file and git operations should use this branch.
8520
8527
  const state = sessionManager.getContextState(sessionId);
8521
8528
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
8522
8529
  });
8523
- const { QueueProcessor } = await import("./processor-WTRVYXAO.js");
8530
+ const { QueueProcessor } = await import("./processor-2IFXIJXG.js");
8524
8531
  const queueProcessor = new QueueProcessor({
8525
8532
  sessionManager,
8526
8533
  providerManager,
@@ -8606,4 +8613,4 @@ export {
8606
8613
  createServerHandle,
8607
8614
  createServer
8608
8615
  };
8609
- //# sourceMappingURL=chunk-VUBFPRKT.js.map
8616
+ //# sourceMappingURL=chunk-ZS55MMG6.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-RXLAFEZB.js";
4
+ } from "../chunk-H2RZDEVL.js";
5
5
  import "../chunk-AGXJ5O63.js";
6
6
  import {
7
7
  logger
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-RXLAFEZB.js";
4
+ } from "../chunk-H2RZDEVL.js";
5
5
  import "../chunk-AGXJ5O63.js";
6
6
  import {
7
7
  logger
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createLLMClient
3
- } from "./chunk-SYTEO5LA.js";
3
+ } from "./chunk-FNXTJLCZ.js";
4
4
  import "./chunk-GJL3QSMP.js";
5
- import "./chunk-AZHWLLPP.js";
5
+ import "./chunk-PBFGJFGC.js";
6
6
  import "./chunk-HNCM3D7Y.js";
7
- import "./chunk-MIPQOHWS.js";
8
- import "./chunk-VPRB5FNR.js";
7
+ import "./chunk-KAZWU73N.js";
8
+ import "./chunk-ZFNBATE3.js";
9
9
  import "./chunk-N2Q3KYWM.js";
10
10
  import "./chunk-OYBUJIC3.js";
11
11
  import "./chunk-K44MW7JJ.js";
@@ -13,4 +13,4 @@ import "./chunk-YLJ4XMA6.js";
13
13
  export {
14
14
  createLLMClient
15
15
  };
16
- //# sourceMappingURL=client-XHJHOFMU.js.map
16
+ //# sourceMappingURL=client-YHYIWZY7.js.map
@@ -8,7 +8,7 @@ import {
8
8
  mapFinishReason,
9
9
  parseToolArguments,
10
10
  resolveAttachmentsInMessages
11
- } from "./chunk-MIPQOHWS.js";
11
+ } from "./chunk-KAZWU73N.js";
12
12
  import "./chunk-YLJ4XMA6.js";
13
13
  export {
14
14
  buildModelParams,
@@ -21,4 +21,4 @@ export {
21
21
  parseToolArguments,
22
22
  resolveAttachmentsInMessages
23
23
  };
24
- //# sourceMappingURL=client-pure-QSY7TJGK.js.map
24
+ //# sourceMappingURL=client-pure-CJKM3ACP.js.map
@@ -3,8 +3,8 @@ import {
3
3
  COMPACTION_MAX_RATIO,
4
4
  appendCompactionPrompt,
5
5
  shouldCompact
6
- } from "./chunk-JEZN37KV.js";
7
- import "./chunk-62GUO2EG.js";
6
+ } from "./chunk-UAAFZEIS.js";
7
+ import "./chunk-LJX7KXRU.js";
8
8
  import "./chunk-GIJUWPRQ.js";
9
9
  import "./chunk-YJD5A375.js";
10
10
  import "./chunk-ZIYETXOW.js";
@@ -16,8 +16,8 @@ import "./chunk-KBESUA3W.js";
16
16
  import "./chunk-OSXPQSLW.js";
17
17
  import "./chunk-3B232XG4.js";
18
18
  import "./chunk-GJL3QSMP.js";
19
- import "./chunk-AZHWLLPP.js";
20
- import "./chunk-MIPQOHWS.js";
19
+ import "./chunk-PBFGJFGC.js";
20
+ import "./chunk-KAZWU73N.js";
21
21
  import "./chunk-N2Q3KYWM.js";
22
22
  import "./chunk-OYBUJIC3.js";
23
23
  import "./chunk-K44MW7JJ.js";
@@ -29,4 +29,4 @@ export {
29
29
  appendCompactionPrompt,
30
30
  shouldCompact
31
31
  };
32
- //# sourceMappingURL=compactor-VTATJTPN.js.map
32
+ //# sourceMappingURL=compactor-7KPBTFZF.js.map
@@ -5,7 +5,7 @@ import {
5
5
  computeSessionHash,
6
6
  computeUnifiedDiff,
7
7
  getToolFingerprint
8
- } from "./chunk-FAL4WO4V.js";
8
+ } from "./chunk-TP2PGZSE.js";
9
9
  import "./chunk-ZIL6VKLU.js";
10
10
  import "./chunk-GIJUWPRQ.js";
11
11
  import "./chunk-66MG44TF.js";
@@ -25,4 +25,4 @@ export {
25
25
  computeUnifiedDiff,
26
26
  getToolFingerprint
27
27
  };
28
- //# sourceMappingURL=dynamic-context-KTQCAPTK.js.map
28
+ //# sourceMappingURL=dynamic-context-PYAUG2LP.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  OpenAIHttpClient
3
- } from "./chunk-VPRB5FNR.js";
3
+ } from "./chunk-ZFNBATE3.js";
4
4
  import "./chunk-N2Q3KYWM.js";
5
5
  import "./chunk-OYBUJIC3.js";
6
6
  import "./chunk-K44MW7JJ.js";
@@ -8,4 +8,4 @@ import "./chunk-YLJ4XMA6.js";
8
8
  export {
9
9
  OpenAIHttpClient
10
10
  };
11
- //# sourceMappingURL=http-client-N4ASJEKJ.js.map
11
+ //# sourceMappingURL=http-client-ROVNSHF6.js.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  abortRunnerRun,
3
3
  launchWorkflowRun
4
- } from "./chunk-KGFERMCV.js";
5
- import "./chunk-QJNBQCAF.js";
6
- import "./chunk-5CCM655F.js";
7
- import "./chunk-FAL4WO4V.js";
4
+ } from "./chunk-77PJWQR7.js";
5
+ import "./chunk-2UPFWNC4.js";
6
+ import "./chunk-76A3E4LK.js";
7
+ import "./chunk-TP2PGZSE.js";
8
8
  import "./chunk-ZIL6VKLU.js";
9
- import "./chunk-62GUO2EG.js";
9
+ import "./chunk-LJX7KXRU.js";
10
10
  import "./chunk-GIJUWPRQ.js";
11
11
  import "./chunk-EHFIUXWZ.js";
12
12
  import "./chunk-RV5G7QQU.js";
13
13
  import "./chunk-I72ACQ6R.js";
14
14
  import "./chunk-JE7LW7Y6.js";
15
15
  import "./chunk-OAN4BXEW.js";
16
- import "./chunk-3NMLSANH.js";
16
+ import "./chunk-Y3BSBKHY.js";
17
17
  import "./chunk-J7GAZGZT.js";
18
- import "./chunk-UGEFD67O.js";
18
+ import "./chunk-CTHRGR4O.js";
19
19
  import "./chunk-7YP4O4XE.js";
20
20
  import "./chunk-KD4W3I6C.js";
21
21
  import "./chunk-YJD5A375.js";
@@ -25,18 +25,18 @@ import "./chunk-XAAEP5XM.js";
25
25
  import "./chunk-66MG44TF.js";
26
26
  import "./chunk-JURM3RPZ.js";
27
27
  import "./chunk-LCLH6ZUL.js";
28
- import "./chunk-A6EZBX62.js";
28
+ import "./chunk-T3JVYO3Z.js";
29
29
  import "./chunk-K2QKX4ZJ.js";
30
30
  import "./chunk-J2GP3J3X.js";
31
31
  import "./chunk-KBESUA3W.js";
32
32
  import "./chunk-OSXPQSLW.js";
33
33
  import "./chunk-3B232XG4.js";
34
- import "./chunk-SYTEO5LA.js";
34
+ import "./chunk-FNXTJLCZ.js";
35
35
  import "./chunk-GJL3QSMP.js";
36
- import "./chunk-AZHWLLPP.js";
36
+ import "./chunk-PBFGJFGC.js";
37
37
  import "./chunk-HNCM3D7Y.js";
38
- import "./chunk-MIPQOHWS.js";
39
- import "./chunk-VPRB5FNR.js";
38
+ import "./chunk-KAZWU73N.js";
39
+ import "./chunk-ZFNBATE3.js";
40
40
  import "./chunk-N2Q3KYWM.js";
41
41
  import "./chunk-OYBUJIC3.js";
42
42
  import "./chunk-ISE55FOR.js";
@@ -50,4 +50,4 @@ export {
50
50
  abortRunnerRun,
51
51
  launchWorkflowRun
52
52
  };
53
- //# sourceMappingURL=launch-Z5D5YFRJ.js.map
53
+ //# sourceMappingURL=launch-3F2GCRRF.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  runAgentTurn,
3
3
  runChatTurn
4
- } from "./chunk-QJNBQCAF.js";
5
- import "./chunk-5CCM655F.js";
6
- import "./chunk-FAL4WO4V.js";
4
+ } from "./chunk-2UPFWNC4.js";
5
+ import "./chunk-76A3E4LK.js";
6
+ import "./chunk-TP2PGZSE.js";
7
7
  import "./chunk-ZIL6VKLU.js";
8
8
  import {
9
9
  TurnMetrics,
@@ -12,16 +12,16 @@ import {
12
12
  createMessageStartEvent,
13
13
  createToolCallEvent,
14
14
  createToolResultEvent
15
- } from "./chunk-62GUO2EG.js";
15
+ } from "./chunk-LJX7KXRU.js";
16
16
  import "./chunk-GIJUWPRQ.js";
17
17
  import "./chunk-EHFIUXWZ.js";
18
18
  import "./chunk-RV5G7QQU.js";
19
19
  import "./chunk-I72ACQ6R.js";
20
20
  import "./chunk-JE7LW7Y6.js";
21
21
  import "./chunk-OAN4BXEW.js";
22
- import "./chunk-3NMLSANH.js";
22
+ import "./chunk-Y3BSBKHY.js";
23
23
  import "./chunk-J7GAZGZT.js";
24
- import "./chunk-UGEFD67O.js";
24
+ import "./chunk-CTHRGR4O.js";
25
25
  import "./chunk-7YP4O4XE.js";
26
26
  import "./chunk-KD4W3I6C.js";
27
27
  import "./chunk-YJD5A375.js";
@@ -31,18 +31,18 @@ import "./chunk-XAAEP5XM.js";
31
31
  import "./chunk-66MG44TF.js";
32
32
  import "./chunk-JURM3RPZ.js";
33
33
  import "./chunk-LCLH6ZUL.js";
34
- import "./chunk-A6EZBX62.js";
34
+ import "./chunk-T3JVYO3Z.js";
35
35
  import "./chunk-K2QKX4ZJ.js";
36
36
  import "./chunk-J2GP3J3X.js";
37
37
  import "./chunk-KBESUA3W.js";
38
38
  import "./chunk-OSXPQSLW.js";
39
39
  import "./chunk-3B232XG4.js";
40
- import "./chunk-SYTEO5LA.js";
40
+ import "./chunk-FNXTJLCZ.js";
41
41
  import "./chunk-GJL3QSMP.js";
42
- import "./chunk-AZHWLLPP.js";
42
+ import "./chunk-PBFGJFGC.js";
43
43
  import "./chunk-HNCM3D7Y.js";
44
- import "./chunk-MIPQOHWS.js";
45
- import "./chunk-VPRB5FNR.js";
44
+ import "./chunk-KAZWU73N.js";
45
+ import "./chunk-ZFNBATE3.js";
46
46
  import "./chunk-N2Q3KYWM.js";
47
47
  import "./chunk-OYBUJIC3.js";
48
48
  import "./chunk-ISE55FOR.js";
@@ -61,4 +61,4 @@ export {
61
61
  runAgentTurn,
62
62
  runChatTurn
63
63
  };
64
- //# sourceMappingURL=orchestrator-BQBBO4US.js.map
64
+ //# sourceMappingURL=orchestrator-BRHIA2KE.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.124",
3
+ "version": "2.0.126",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,5 +16,11 @@
16
16
  "displayName": "Google Antigravity",
17
17
  "description": "Authenticate with a Google Antigravity account via browser-based OAuth | ⚠️ Using this plugin violates Google's Terms of Service.",
18
18
  "githubUrl": "https://github.com/JamesDAdams/openfox-google-antigravity"
19
+ },
20
+ {
21
+ "name": "openfox-xai-supergrok",
22
+ "displayName": "xAI Grok (SuperGrok)",
23
+ "description": "Authenticate with an X (xAI) SuperGrok subscription via OAuth. No API key required. | ⚠️ Using this plugin may violate xAI's Terms of Service.",
24
+ "githubUrl": "https://github.com/Olgean-Group/openfox-xai-supergrok"
19
25
  }
20
26
  ]