openfox 2.0.114 → 2.0.115

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 (85) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/CHANGELOG.md +21 -0
  3. package/dist/{chat-handler-KWXRSWXZ.js → chat-handler-5SP265CR.js} +27 -27
  4. package/dist/{chunk-2XD65L7M.js → chunk-27NABDXB.js} +2 -2
  5. package/dist/{chunk-YGJIK3CG.js → chunk-2FCLCUVR.js} +5 -5
  6. package/dist/{chunk-HV6IALXF.js → chunk-37QLXLML.js} +4 -4
  7. package/dist/{chunk-UTIQ7OO5.js → chunk-3KBRMBTP.js} +2 -2
  8. package/dist/{chunk-FW4NDUBL.js → chunk-3NPLERPQ.js} +13 -13
  9. package/dist/{chunk-SFZGMB2G.js → chunk-3PG65AXG.js} +18 -3
  10. package/dist/{chunk-W77NBJAZ.js → chunk-3QQAIUZI.js} +9 -9
  11. package/dist/{chunk-PBW3YC3G.js → chunk-5PT4UMRR.js} +5 -1
  12. package/dist/chunk-5V3BF67X.js +7 -0
  13. package/dist/{chunk-BZVW77PI.js → chunk-6KPJLELC.js} +3 -3
  14. package/dist/{chunk-OTYAEEX3.js → chunk-6RGACY4E.js} +7 -7
  15. package/dist/{chunk-SA34STZ6.js → chunk-AESOGRFK.js} +2 -2
  16. package/dist/{chunk-MUSPWEBB.js → chunk-BVVCRIVM.js} +3 -3
  17. package/dist/{chunk-VPVLO436.js → chunk-BWVO5WFK.js} +4 -4
  18. package/dist/{chunk-JXLRL5JR.js → chunk-ERNWAKUB.js} +7 -7
  19. package/dist/{chunk-HP5CIB66.js → chunk-HD6Y77RO.js} +2 -2
  20. package/dist/{chunk-K733B5T2.js → chunk-JFK4GKQD.js} +87 -54
  21. package/dist/{chunk-LXYPMFTH.js → chunk-JGWHRYWG.js} +3 -3
  22. package/dist/{chunk-JP7NM545.js → chunk-JLAR2CMV.js} +2 -2
  23. package/dist/{chunk-UPBWEHIL.js → chunk-LNNBLB6G.js} +20 -5
  24. package/dist/{chunk-OXSTNSCF.js → chunk-LTYL6ZGH.js} +2 -2
  25. package/dist/{chunk-P5UANBBX.js → chunk-M6X6AIEG.js} +2 -2
  26. package/dist/{chunk-SBSUDHL4.js → chunk-O6DU226D.js} +2 -2
  27. package/dist/{chunk-QD7MRMCH.js → chunk-OCBBAEMT.js} +144 -128
  28. package/dist/{chunk-L63Q4JQJ.js → chunk-OCSTEGK7.js} +3 -3
  29. package/dist/{chunk-7GWARYQC.js → chunk-OKVHMKE2.js} +15 -15
  30. package/dist/{chunk-GUHHUDNL.js → chunk-TFF5T3K3.js} +10 -10
  31. package/dist/{chunk-NWJLWLKF.js → chunk-TGLVWAFC.js} +10 -10
  32. package/dist/{chunk-L737Y63F.js → chunk-TOKQ2UVG.js} +2 -2
  33. package/dist/{chunk-3O77NT4T.js → chunk-VWEATA7R.js} +4 -4
  34. package/dist/{chunk-NLO64UE3.js → chunk-YX3OQBNX.js} +2 -2
  35. package/dist/{chunk-TKKP56QK.js → chunk-ZTOG6LJD.js} +3 -3
  36. package/dist/cli/dev.js +1 -1
  37. package/dist/cli/index.js +1 -1
  38. package/dist/{client-EM7ISGUP.js → client-KE7EDI2D.js} +6 -6
  39. package/dist/{client-pure-VFZIIK4S.js → client-pure-66Z6FWS6.js} +2 -2
  40. package/dist/command-defaults/mark-done.command.md +14 -0
  41. package/dist/{compactor-V3LR7APW.js → compactor-SKVC2VNL.js} +13 -12
  42. package/dist/{dynamic-context-MVGOF5V2.js → dynamic-context-QNB4ELLP.js} +9 -9
  43. package/dist/{events-PI7IMPHT.js → events-5PLO4QJU.js} +8 -7
  44. package/dist/{folding-FO57K4JM.js → folding-CJWYFUKD.js} +6 -5
  45. package/dist/http-client-KLODRQC2.js +11 -0
  46. package/dist/{inspect-proxy-NHKQQ2CD.js → inspect-proxy-K6QKEYDT.js} +4 -4
  47. package/dist/launch-EOXVWLOP.js +52 -0
  48. package/dist/{manager-66YAEO7K.js → manager-LZ3JQ443.js} +5 -5
  49. package/dist/{model-overrides-L53PZNZA.js → model-overrides-5UVW3KTE.js} +4 -4
  50. package/dist/{orchestrator-XK5K3RPL.js → orchestrator-ED3KFPXO.js} +26 -26
  51. package/dist/package.json +1 -1
  52. package/dist/{path-security-RSEI3YKB.js → path-security-B6EZC63L.js} +10 -9
  53. package/dist/{platform-WA4GK5BO.js → platform-6RPPBHKH.js} +4 -4
  54. package/dist/{processor-WDZSFBVO.js → processor-226ZOTRI.js} +26 -26
  55. package/dist/{project-creator-676WQXVI.js → project-creator-VBFE35NI.js} +3 -3
  56. package/dist/{projects-SSBWIYL4.js → projects-AXHZOBR2.js} +5 -3
  57. package/dist/{protocol-BzHs024-.d.ts → protocol-JdxRpPxM.d.ts} +1 -1
  58. package/dist/provider/index.d.ts +4 -4
  59. package/dist/{provider-PLIWRBCF.js → provider-DL4ZWQY7.js} +7 -7
  60. package/dist/{provider-manager-2QSJTPWS.js → provider-manager-6CLRMGDE.js} +7 -7
  61. package/dist/{registry-ZP4TN2IN.js → registry-5XI5NDBF.js} +5 -4
  62. package/dist/{serve-MZ3BCCWC.js → serve-DARV4NJG.js} +32 -32
  63. package/dist/server/index.d.ts +12 -5
  64. package/dist/server/index.js +31 -31
  65. package/dist/server-LQJ7MBDS.js +55 -0
  66. package/dist/{service-54PGIPDQ.js → service-4JKTGPRG.js} +9 -9
  67. package/dist/{session-overrides-LXN6W7SA.js → session-overrides-AZKV6BRD.js} +7 -6
  68. package/dist/{sessions-CHPVUG6H.js → sessions-752IZIIK.js} +6 -5
  69. package/dist/{settings-NEBM3GQX.js → settings-2AHDKCD7.js} +3 -3
  70. package/dist/shared/index.d.ts +3 -3
  71. package/dist/{tasks-TJXG2V3U.js → tasks-XJXHU623.js} +10 -10
  72. package/dist/{tools-CIM26IFB.js → tools-QYYNFMGU.js} +24 -24
  73. package/dist/{types-CbggXFvR.d.ts → types-CIVhQMvD.d.ts} +1 -1
  74. package/dist/{types-CMtHpDWT.d.ts → types-Df7NM9b5.d.ts} +2 -0
  75. package/dist/{update-UZBBO42X.js → update-2REP2WB6.js} +2 -2
  76. package/dist/web/assets/index-M7ToECa4.js +324 -0
  77. package/dist/web/index.html +1 -1
  78. package/dist/web/sw.js +1 -1
  79. package/dist/{workspace-2XODU4YJ.js → workspace-RMZVTFJD.js} +4 -4
  80. package/package.json +1 -1
  81. package/dist/chunk-NCZRWCJN.js +0 -7
  82. package/dist/http-client-33EZ3BLR.js +0 -11
  83. package/dist/launch-L5ROVNI3.js +0 -52
  84. package/dist/server-EPXODFMB.js +0 -55
  85. package/dist/web/assets/index-rZHXkfMq.js +0 -324
@@ -16,10 +16,10 @@ import {
16
16
  terminalManager,
17
17
  tokenFromPassword,
18
18
  verifyPassword
19
- } from "./chunk-7GWARYQC.js";
19
+ } from "./chunk-OKVHMKE2.js";
20
20
  import {
21
21
  TEMPLATE_VARIABLES
22
- } from "./chunk-W77NBJAZ.js";
22
+ } from "./chunk-3QQAIUZI.js";
23
23
  import {
24
24
  createToolRegistry,
25
25
  devServerManager,
@@ -29,7 +29,7 @@ import {
29
29
  setMcpManagerForTools,
30
30
  setMcpTools,
31
31
  setNotifyMcpServersChanged
32
- } from "./chunk-K733B5T2.js";
32
+ } from "./chunk-JFK4GKQD.js";
33
33
  import {
34
34
  deleteOwnedSkill,
35
35
  deleteProjectSkill,
@@ -48,7 +48,7 @@ import {
48
48
  setSkillEnabled,
49
49
  skillExists,
50
50
  updateOwnedSkill
51
- } from "./chunk-YGJIK3CG.js";
51
+ } from "./chunk-2FCLCUVR.js";
52
52
  import {
53
53
  openFolder
54
54
  } from "./chunk-WLJJRX22.js";
@@ -56,7 +56,7 @@ import {
56
56
  ALWAYS_ALLOWED,
57
57
  ALWAYS_ALLOWED_FOR_SUBAGENTS,
58
58
  TOP_LEVEL_ONLY_TOOLS
59
- } from "./chunk-2XD65L7M.js";
59
+ } from "./chunk-27NABDXB.js";
60
60
  import {
61
61
  createMcpTools
62
62
  } from "./chunk-JE7LW7Y6.js";
@@ -75,7 +75,7 @@ import {
75
75
  validateRef,
76
76
  validateWorkspaceName,
77
77
  workspaceExists
78
- } from "./chunk-SBSUDHL4.js";
78
+ } from "./chunk-O6DU226D.js";
79
79
  import {
80
80
  commandExists,
81
81
  deleteCommand,
@@ -102,11 +102,11 @@ import {
102
102
  saveWorkflow,
103
103
  saveWorkflowToProject,
104
104
  workflowExists
105
- } from "./chunk-OTYAEEX3.js";
105
+ } from "./chunk-6RGACY4E.js";
106
106
  import {
107
107
  getSessionDisabledServers,
108
108
  setSessionDisabledServers
109
- } from "./chunk-L63Q4JQJ.js";
109
+ } from "./chunk-OCSTEGK7.js";
110
110
  import {
111
111
  emitAssistantMessageStart,
112
112
  emitContextState,
@@ -123,32 +123,7 @@ import {
123
123
  getEventStore,
124
124
  getSessionState,
125
125
  initEventStore
126
- } from "./chunk-JXLRL5JR.js";
127
- import {
128
- createContextStateMessage,
129
- toClientSession
130
- } from "./chunk-I7FY2LTR.js";
131
- import {
132
- getPathSeparator,
133
- isAbsolutePath
134
- } from "./chunk-SA34STZ6.js";
135
- import {
136
- EventEmitter
137
- } from "./chunk-JURM3RPZ.js";
138
- import {
139
- getAgentModelOverride,
140
- getAgentModelOverrides,
141
- resolveLLMClientForAgent,
142
- setAgentModelOverride
143
- } from "./chunk-JP7NM545.js";
144
- import {
145
- getProject,
146
- getProjectByWorkdir,
147
- updateProject
148
- } from "./chunk-SFZGMB2G.js";
149
- import {
150
- VERSION
151
- } from "./chunk-NCZRWCJN.js";
126
+ } from "./chunk-ERNWAKUB.js";
152
127
  import {
153
128
  clearWorkflowExecution,
154
129
  createSession,
@@ -171,7 +146,27 @@ import {
171
146
  updateSessionRunning,
172
147
  updateSessionWorkdir,
173
148
  updateWorkflowExecutionStatus
174
- } from "./chunk-3O77NT4T.js";
149
+ } from "./chunk-VWEATA7R.js";
150
+ import {
151
+ createContextStateMessage,
152
+ toClientSession
153
+ } from "./chunk-I7FY2LTR.js";
154
+ import {
155
+ getPathSeparator,
156
+ isAbsolutePath
157
+ } from "./chunk-AESOGRFK.js";
158
+ import {
159
+ EventEmitter
160
+ } from "./chunk-JURM3RPZ.js";
161
+ import {
162
+ getAgentModelOverride,
163
+ getAgentModelOverrides,
164
+ resolveLLMClientForAgent,
165
+ setAgentModelOverride
166
+ } from "./chunk-JLAR2CMV.js";
167
+ import {
168
+ VERSION
169
+ } from "./chunk-5V3BF67X.js";
175
170
  import {
176
171
  agentExists,
177
172
  deleteAgent,
@@ -188,17 +183,22 @@ import {
188
183
  saveAgent,
189
184
  saveAgentToProject,
190
185
  setRuntimeConfig
191
- } from "./chunk-UPBWEHIL.js";
186
+ } from "./chunk-LNNBLB6G.js";
192
187
  import {
193
188
  findFileByInternalId,
194
189
  pathExists
195
190
  } from "./chunk-OSXPQSLW.js";
191
+ import {
192
+ getProject,
193
+ getProjectByWorkdir,
194
+ updateProject
195
+ } from "./chunk-3PG65AXG.js";
196
196
  import {
197
197
  createProviderManager,
198
198
  detectModel,
199
199
  getLlmStatus,
200
200
  parseDefaultModelSelection
201
- } from "./chunk-MUSPWEBB.js";
201
+ } from "./chunk-BVVCRIVM.js";
202
202
  import {
203
203
  getModelProfile
204
204
  } from "./chunk-V4IE7HJY.js";
@@ -211,15 +211,15 @@ import {
211
211
  import {
212
212
  SessionNotFoundError,
213
213
  WorkspaceInUseError
214
- } from "./chunk-OXSTNSCF.js";
214
+ } from "./chunk-LTYL6ZGH.js";
215
215
  import {
216
216
  deleteSetting,
217
217
  getSetting,
218
218
  setSetting
219
- } from "./chunk-HP5CIB66.js";
219
+ } from "./chunk-HD6Y77RO.js";
220
220
  import {
221
221
  initDatabase
222
- } from "./chunk-PBW3YC3G.js";
222
+ } from "./chunk-5PT4UMRR.js";
223
223
  import {
224
224
  logger,
225
225
  setLogLevel
@@ -2816,6 +2816,16 @@ var SessionManager = class {
2816
2816
  const session = this.requireSession(sessionId);
2817
2817
  return session.workspace ?? session.workdir;
2818
2818
  }
2819
+ /**
2820
+ * Get the project root working directory for a session.
2821
+ * Ignores any active workspace — session.workdir is always the project root,
2822
+ * which is where project-scoped .openfox/ content (agents, skills, commands,
2823
+ * workflows) lives and is managed from.
2824
+ */
2825
+ getProjectWorkdir(sessionId) {
2826
+ const session = this.requireSession(sessionId);
2827
+ return session.workdir;
2828
+ }
2819
2829
  // ============================================================================
2820
2830
  // Session Lifecycle
2821
2831
  // ============================================================================
@@ -3587,9 +3597,13 @@ var SessionManager = class {
3587
3597
  /**
3588
3598
  * Record that a file was read.
3589
3599
  */
3590
- recordFileRead(sessionId, filePath, contentHash) {
3600
+ recordFileRead(sessionId, filePath, contentHash, relPath) {
3591
3601
  const cache = this.readFilesCache.get(sessionId) ?? {};
3592
- cache[filePath] = { hash: contentHash, readAt: (/* @__PURE__ */ new Date()).toISOString() };
3602
+ cache[filePath] = {
3603
+ hash: contentHash,
3604
+ readAt: (/* @__PURE__ */ new Date()).toISOString(),
3605
+ ...relPath ? { relPath } : {}
3606
+ };
3593
3607
  this.readFilesCache.set(sessionId, cache);
3594
3608
  }
3595
3609
  /**
@@ -3601,12 +3615,13 @@ var SessionManager = class {
3601
3615
  /**
3602
3616
  * Update file hash after write.
3603
3617
  */
3604
- updateFileHash(sessionId, filePath, contentHash) {
3618
+ updateFileHash(sessionId, filePath, contentHash, relPath) {
3605
3619
  const cache = this.readFilesCache.get(sessionId) ?? {};
3606
3620
  const existingEntry = cache[filePath];
3607
3621
  cache[filePath] = {
3608
3622
  hash: contentHash,
3609
- readAt: existingEntry?.readAt ?? (/* @__PURE__ */ new Date()).toISOString()
3623
+ readAt: existingEntry?.readAt ?? (/* @__PURE__ */ new Date()).toISOString(),
3624
+ ...relPath ? { relPath } : {}
3610
3625
  };
3611
3626
  this.readFilesCache.set(sessionId, cache);
3612
3627
  }
@@ -5892,7 +5907,7 @@ async function createServerHandle(config3) {
5892
5907
  toolRegistry = createToolRegistry();
5893
5908
  logger.info("MCP tools registered", { count: mcpTools.length });
5894
5909
  }
5895
- const { signalMcpReady } = await import("./server-EPXODFMB.js");
5910
+ const { signalMcpReady } = await import("./server-LQJ7MBDS.js");
5896
5911
  signalMcpReady();
5897
5912
  });
5898
5913
  const app = express();
@@ -5973,7 +5988,7 @@ async function createServerHandle(config3) {
5973
5988
  res.json({ tools });
5974
5989
  });
5975
5990
  app.get("/api/projects", async (_req, res) => {
5976
- const { listProjects: listProjects2 } = await import("./projects-SSBWIYL4.js");
5991
+ const { listProjects: listProjects2 } = await import("./projects-AXHZOBR2.js");
5977
5992
  const projects = listProjects2();
5978
5993
  res.json({ projects });
5979
5994
  });
@@ -5982,7 +5997,7 @@ async function createServerHandle(config3) {
5982
5997
  if (!name || !workdir) {
5983
5998
  return res.status(400).json({ error: "name and workdir are required" });
5984
5999
  }
5985
- const { createDirectoryWithGit } = await import("./project-creator-676WQXVI.js");
6000
+ const { createDirectoryWithGit } = await import("./project-creator-VBFE35NI.js");
5986
6001
  try {
5987
6002
  const project = await createDirectoryWithGit(name, workdir);
5988
6003
  res.status(201).json({ project });
@@ -6027,7 +6042,7 @@ async function createServerHandle(config3) {
6027
6042
  }
6028
6043
  });
6029
6044
  app.get("/api/projects/:id", async (req, res) => {
6030
- const { getProject: getProject2 } = await import("./projects-SSBWIYL4.js");
6045
+ const { getProject: getProject2 } = await import("./projects-AXHZOBR2.js");
6031
6046
  const project = getProject2(req.params.id);
6032
6047
  if (!project) {
6033
6048
  return res.status(404).json({ error: "Project not found" });
@@ -6035,7 +6050,7 @@ async function createServerHandle(config3) {
6035
6050
  res.json({ project });
6036
6051
  });
6037
6052
  app.get("/api/projects/:id/open-folder", async (req, res) => {
6038
- const { getProject: getProject2 } = await import("./projects-SSBWIYL4.js");
6053
+ const { getProject: getProject2 } = await import("./projects-AXHZOBR2.js");
6039
6054
  const project = getProject2(req.params.id);
6040
6055
  if (!project) {
6041
6056
  return res.status(404).json({ error: "Project not found" });
@@ -6049,12 +6064,13 @@ async function createServerHandle(config3) {
6049
6064
  }
6050
6065
  });
6051
6066
  app.put("/api/projects/:id", async (req, res) => {
6052
- const { updateProject: updateProject2 } = await import("./projects-SSBWIYL4.js");
6053
- const { name, customInstructions, dangerLevel } = req.body;
6067
+ const { updateProject: updateProject2 } = await import("./projects-AXHZOBR2.js");
6068
+ const { name, customInstructions, dangerLevel, defaultAgent } = req.body;
6054
6069
  const updates = {};
6055
6070
  if (name !== void 0) updates.name = name;
6056
6071
  if (customInstructions !== void 0) updates.customInstructions = customInstructions;
6057
6072
  if (dangerLevel !== void 0) updates.dangerLevel = dangerLevel;
6073
+ if (defaultAgent !== void 0) updates.defaultAgent = defaultAgent;
6058
6074
  const updated = updateProject2(req.params.id, updates);
6059
6075
  if (!updated) {
6060
6076
  return res.status(404).json({ error: "Project not found" });
@@ -6062,7 +6078,7 @@ async function createServerHandle(config3) {
6062
6078
  res.json({ project: updated });
6063
6079
  });
6064
6080
  app.delete("/api/projects/:id", async (req, res) => {
6065
- const { getProject: getProject2, deleteProject } = await import("./projects-SSBWIYL4.js");
6081
+ const { getProject: getProject2, deleteProject } = await import("./projects-AXHZOBR2.js");
6066
6082
  const project = getProject2(req.params.id);
6067
6083
  if (!project) {
6068
6084
  return res.status(404).json({ error: "Project not found" });
@@ -6071,7 +6087,7 @@ async function createServerHandle(config3) {
6071
6087
  res.json({ success: true });
6072
6088
  });
6073
6089
  app.put("/api/projects/:id/star", async (req, res) => {
6074
- const { toggleStar } = await import("./projects-SSBWIYL4.js");
6090
+ const { toggleStar } = await import("./projects-AXHZOBR2.js");
6075
6091
  const { isStarred } = req.body;
6076
6092
  if (typeof isStarred !== "boolean") {
6077
6093
  return res.status(400).json({ error: "isStarred is required and must be a boolean" });
@@ -6085,9 +6101,9 @@ async function createServerHandle(config3) {
6085
6101
  const sessionFavoriteRouter = express.Router();
6086
6102
  registerSessionFavoriteRoute(sessionFavoriteRouter, sessionManager);
6087
6103
  app.use("/api", sessionFavoriteRouter);
6088
- const { createTasksService } = await import("./service-54PGIPDQ.js");
6089
- const { registerTaskRoutes } = await import("./tasks-TJXG2V3U.js");
6090
- const { setTasksService } = await import("./tools-CIM26IFB.js");
6104
+ const { createTasksService } = await import("./service-4JKTGPRG.js");
6105
+ const { registerTaskRoutes } = await import("./tasks-XJXHU623.js");
6106
+ const { setTasksService } = await import("./tools-QYYNFMGU.js");
6091
6107
  const tasksService = createTasksService({
6092
6108
  sessionManager,
6093
6109
  config: config3,
@@ -6100,26 +6116,26 @@ async function createServerHandle(config3) {
6100
6116
  registerTaskRoutes(tasksRouter, tasksService);
6101
6117
  app.use("/api", tasksRouter);
6102
6118
  app.get("/api/projects/:id/branches", async (req, res) => {
6103
- const { getProject: getProject2 } = await import("./projects-SSBWIYL4.js");
6119
+ const { getProject: getProject2 } = await import("./projects-AXHZOBR2.js");
6104
6120
  const project = getProject2(req.params.id);
6105
6121
  if (!project) return res.status(404).json({ error: "Project not found" });
6106
- const { listBranches } = await import("./workspace-2XODU4YJ.js");
6122
+ const { listBranches } = await import("./workspace-RMZVTFJD.js");
6107
6123
  const branches = await listBranches(project.workdir);
6108
6124
  res.json({ branches });
6109
6125
  });
6110
6126
  app.post("/api/projects/:id/checkout", async (req, res) => {
6111
- const { getProject: getProject2 } = await import("./projects-SSBWIYL4.js");
6127
+ const { getProject: getProject2 } = await import("./projects-AXHZOBR2.js");
6112
6128
  const project = getProject2(req.params.id);
6113
6129
  if (!project) return res.status(404).json({ error: "Project not found" });
6114
6130
  const { branch } = req.body;
6115
6131
  if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
6116
- const { checkoutBranch, isGitRepository } = await import("./workspace-2XODU4YJ.js");
6132
+ const { checkoutBranch, isGitRepository } = await import("./workspace-RMZVTFJD.js");
6117
6133
  if (!await isGitRepository(project.workdir)) {
6118
6134
  return res.status(400).json({ error: "Project is not a git repository" });
6119
6135
  }
6120
6136
  try {
6121
6137
  await checkoutBranch(project.workdir, branch);
6122
- const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-CHPVUG6H.js");
6138
+ const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-752IZIIK.js");
6123
6139
  const allSessions = sessionManager.listSessions();
6124
6140
  for (const s of allSessions) {
6125
6141
  if (sessionManager.getEffectiveWorkdir(s.id) === project.workdir) {
@@ -6133,12 +6149,12 @@ async function createServerHandle(config3) {
6133
6149
  }
6134
6150
  });
6135
6151
  app.post("/api/projects/:id/checkout-new", async (req, res) => {
6136
- const { getProject: getProject2 } = await import("./projects-SSBWIYL4.js");
6152
+ const { getProject: getProject2 } = await import("./projects-AXHZOBR2.js");
6137
6153
  const project = getProject2(req.params.id);
6138
6154
  if (!project) return res.status(404).json({ error: "Project not found" });
6139
6155
  const { name, sourceBranch } = req.body;
6140
6156
  if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
6141
- const { createBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, validateRef: validateRef2, getDefaultBranch, isGitRepository } = await import("./workspace-2XODU4YJ.js");
6157
+ const { createBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, validateRef: validateRef2, getDefaultBranch, isGitRepository } = await import("./workspace-RMZVTFJD.js");
6142
6158
  if (!await isGitRepository(project.workdir)) {
6143
6159
  return res.status(400).json({ error: "Project is not a git repository" });
6144
6160
  }
@@ -6155,7 +6171,7 @@ async function createServerHandle(config3) {
6155
6171
  );
6156
6172
  }
6157
6173
  await createBranch(project.workdir, name, sb);
6158
- const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-CHPVUG6H.js");
6174
+ const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-752IZIIK.js");
6159
6175
  const allSessions = sessionManager.listSessions();
6160
6176
  for (const s of allSessions) {
6161
6177
  if (sessionManager.getEffectiveWorkdir(s.id) === project.workdir) {
@@ -6172,7 +6188,7 @@ async function createServerHandle(config3) {
6172
6188
  const session = sessionManager.getSession(req.params.id);
6173
6189
  if (!session) return res.status(404).json({ error: "Session not found" });
6174
6190
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
6175
- const { listBranches, getDefaultBranch } = await import("./workspace-2XODU4YJ.js");
6191
+ const { listBranches, getDefaultBranch } = await import("./workspace-RMZVTFJD.js");
6176
6192
  const [branches, defaultBranch] = await Promise.all([
6177
6193
  listBranches(effectiveWorkdir),
6178
6194
  getDefaultBranch(session.workdir)
@@ -6186,8 +6202,8 @@ async function createServerHandle(config3) {
6186
6202
  const { branch } = req.body;
6187
6203
  if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
6188
6204
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
6189
- const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-2XODU4YJ.js");
6190
- const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-CHPVUG6H.js");
6205
+ const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-RMZVTFJD.js");
6206
+ const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-752IZIIK.js");
6191
6207
  try {
6192
6208
  await validateRef2(effectiveWorkdir, branch);
6193
6209
  await checkoutBranch(effectiveWorkdir, branch);
@@ -6229,16 +6245,16 @@ All file and git operations should use this branch.
6229
6245
  const { name, sourceBranch } = req.body;
6230
6246
  if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
6231
6247
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
6232
- const { validateRef: validateRef2 } = await import("./workspace-2XODU4YJ.js");
6233
- const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-CHPVUG6H.js");
6248
+ const { validateRef: validateRef2 } = await import("./workspace-RMZVTFJD.js");
6249
+ const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-752IZIIK.js");
6234
6250
  try {
6235
6251
  await validateRef2(effectiveWorkdir, name);
6236
6252
  if (sourceBranch) {
6237
- const { resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, createBranch } = await import("./workspace-2XODU4YJ.js");
6253
+ const { resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2, createBranch } = await import("./workspace-RMZVTFJD.js");
6238
6254
  const sb = await resolveAndValidateSourceBranch2(effectiveWorkdir, sourceBranch, session.workdir);
6239
6255
  await createBranch(effectiveWorkdir, name, sb);
6240
6256
  } else {
6241
- const { createBranch, getDefaultBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2 } = await import("./workspace-2XODU4YJ.js");
6257
+ const { createBranch, getDefaultBranch, resolveAndValidateSourceBranch: resolveAndValidateSourceBranch2 } = await import("./workspace-RMZVTFJD.js");
6242
6258
  const defaultBranch = await getDefaultBranch(session.workdir);
6243
6259
  const sb = await resolveAndValidateSourceBranch2(effectiveWorkdir, defaultBranch, session.workdir);
6244
6260
  await createBranch(effectiveWorkdir, name, sb);
@@ -6276,17 +6292,17 @@ All file and git operations should use this branch.
6276
6292
  }
6277
6293
  });
6278
6294
  app.get("/api/projects/:id/workspaces", async (req, res) => {
6279
- const { getProject: getProject2 } = await import("./projects-SSBWIYL4.js");
6295
+ const { getProject: getProject2 } = await import("./projects-AXHZOBR2.js");
6280
6296
  const project = getProject2(req.params.id);
6281
6297
  if (!project) return res.status(404).json({ error: "Project not found" });
6282
- const { listWorkspaces } = await import("./workspace-2XODU4YJ.js");
6298
+ const { listWorkspaces } = await import("./workspace-RMZVTFJD.js");
6283
6299
  const all = await listWorkspaces(project.name, project.workdir);
6284
6300
  const workspacesList = all.filter((ws) => ws.path !== project.workdir);
6285
6301
  res.json({ workspaces: workspacesList });
6286
6302
  });
6287
6303
  app.get("/api/sessions", async (req, res) => {
6288
- const { getRecentUserPromptsForSession } = await import("./events-PI7IMPHT.js");
6289
- const { getPendingConfirmationsBySession } = await import("./path-security-RSEI3YKB.js");
6304
+ const { getRecentUserPromptsForSession } = await import("./events-5PLO4QJU.js");
6305
+ const { getPendingConfirmationsBySession } = await import("./path-security-B6EZC63L.js");
6290
6306
  const projectId = req.query["projectId"];
6291
6307
  const rawLimit = req.query["limit"];
6292
6308
  const offset = parseInt(req.query["offset"]) || 0;
@@ -6341,7 +6357,7 @@ All file and git operations should use this branch.
6341
6357
  disabledServers = mcpManager.getAllServers().filter((s) => s.config.disabled).map((s) => s.name);
6342
6358
  }
6343
6359
  if (disabledServers.length > 0) {
6344
- const { setSessionDisabledServers: setSessionDisabledServers2 } = await import("./session-overrides-LXN6W7SA.js");
6360
+ const { setSessionDisabledServers: setSessionDisabledServers2 } = await import("./session-overrides-AZKV6BRD.js");
6345
6361
  setSessionDisabledServers2(session.id, disabledServers);
6346
6362
  }
6347
6363
  } catch {
@@ -6378,7 +6394,7 @@ All file and git operations should use this branch.
6378
6394
  if (!target || typeof target !== "string") return res.status(400).json({ error: "target is required" });
6379
6395
  const project = sessionManager.getProject(session.projectId);
6380
6396
  if (!project) return res.status(404).json({ error: "Project not found" });
6381
- const { isGitRepository } = await import("./workspace-2XODU4YJ.js");
6397
+ const { isGitRepository } = await import("./workspace-RMZVTFJD.js");
6382
6398
  if (!await isGitRepository(project.workdir)) {
6383
6399
  return res.status(400).json({ error: "Project is not a git repository" });
6384
6400
  }
@@ -6396,7 +6412,7 @@ All file and git operations should use this branch.
6396
6412
  if (!target || typeof target !== "string") return res.status(400).json({ error: "target is required" });
6397
6413
  const project = sessionManager.getProject(session.projectId);
6398
6414
  if (!project) return res.status(404).json({ error: "Project not found" });
6399
- const { isGitRepository } = await import("./workspace-2XODU4YJ.js");
6415
+ const { isGitRepository } = await import("./workspace-RMZVTFJD.js");
6400
6416
  if (!await isGitRepository(project.workdir)) {
6401
6417
  return res.status(400).json({ error: "Project is not a git repository" });
6402
6418
  }
@@ -6414,12 +6430,12 @@ All file and git operations should use this branch.
6414
6430
  }
6415
6431
  });
6416
6432
  app.get("/api/sessions/:id", async (req, res) => {
6417
- const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-PI7IMPHT.js");
6418
- const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-FO57K4JM.js");
6419
- const { getPendingQuestionsForSession } = await import("./tools-CIM26IFB.js");
6420
- const { getMaxVisibleItems } = await import("./settings-NEBM3GQX.js");
6421
- const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-L53PZNZA.js");
6422
- const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-CHPVUG6H.js");
6433
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-5PLO4QJU.js");
6434
+ const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-CJWYFUKD.js");
6435
+ const { getPendingQuestionsForSession } = await import("./tools-QYYNFMGU.js");
6436
+ const { getMaxVisibleItems } = await import("./settings-2AHDKCD7.js");
6437
+ const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-5UVW3KTE.js");
6438
+ const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-752IZIIK.js");
6423
6439
  let session = sessionManager.getSession(req.params.id);
6424
6440
  if (!session) {
6425
6441
  return res.status(404).json({ error: "Session not found" });
@@ -6458,8 +6474,8 @@ All file and git operations should use this branch.
6458
6474
  if (!session) {
6459
6475
  return res.status(404).json({ error: "Session not found" });
6460
6476
  }
6461
- const { stopSessionExecution } = await import("./chat-handler-KWXRSWXZ.js");
6462
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-CIM26IFB.js");
6477
+ const { stopSessionExecution } = await import("./chat-handler-5SP265CR.js");
6478
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-QYYNFMGU.js");
6463
6479
  sessionManager.clearMessageQueue(sessionId);
6464
6480
  stopSessionExecution(sessionId, sessionManager);
6465
6481
  abortSession(sessionId);
@@ -6488,9 +6504,9 @@ All file and git operations should use this branch.
6488
6504
  res.json({ success: true });
6489
6505
  });
6490
6506
  app.post("/api/sessions/:id/provider", async (req, res) => {
6491
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-PI7IMPHT.js");
6492
- const { buildMessagesFromStoredEvents } = await import("./folding-FO57K4JM.js");
6493
- const { getMaxVisibleItems } = await import("./settings-NEBM3GQX.js");
6507
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-5PLO4QJU.js");
6508
+ const { buildMessagesFromStoredEvents } = await import("./folding-CJWYFUKD.js");
6509
+ const { getMaxVisibleItems } = await import("./settings-2AHDKCD7.js");
6494
6510
  const sessionId = req.params.id;
6495
6511
  const session = sessionManager.getSession(sessionId);
6496
6512
  if (!session) {
@@ -6603,11 +6619,11 @@ All file and git operations should use this branch.
6603
6619
  res.json({ success: true });
6604
6620
  });
6605
6621
  app.put("/api/sessions/:id/mode", async (req, res) => {
6606
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-PI7IMPHT.js");
6607
- const { buildMessagesFromStoredEvents } = await import("./folding-FO57K4JM.js");
6608
- const { getMaxVisibleItems } = await import("./settings-NEBM3GQX.js");
6609
- const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-L53PZNZA.js");
6610
- const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-CHPVUG6H.js");
6622
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-5PLO4QJU.js");
6623
+ const { buildMessagesFromStoredEvents } = await import("./folding-CJWYFUKD.js");
6624
+ const { getMaxVisibleItems } = await import("./settings-2AHDKCD7.js");
6625
+ const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-5UVW3KTE.js");
6626
+ const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-752IZIIK.js");
6611
6627
  const sessionId = req.params.id;
6612
6628
  const session = sessionManager.getSession(sessionId);
6613
6629
  if (!session) {
@@ -6617,7 +6633,7 @@ All file and git operations should use this branch.
6617
6633
  if (!mode) {
6618
6634
  return res.status(400).json({ error: "mode is required" });
6619
6635
  }
6620
- const allAgents = await loadAllAgentsDefault();
6636
+ const allAgents = await loadAllAgentsDefault(sessionManager.getProjectWorkdir(sessionId));
6621
6637
  const topLevelIds = getTopLevelAgents(allAgents).map((a) => a.metadata.id);
6622
6638
  if (!topLevelIds.includes(mode)) {
6623
6639
  return res.status(400).json({ error: `Invalid mode. Must be one of: ${topLevelIds.join(", ")}` });
@@ -6709,7 +6725,7 @@ All file and git operations should use this branch.
6709
6725
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6710
6726
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6711
6727
  }
6712
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-CIM26IFB.js");
6728
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-QYYNFMGU.js");
6713
6729
  const pendingSessionId = getConfirmationSessionId(callId);
6714
6730
  if (!pendingSessionId) {
6715
6731
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6721,11 +6737,11 @@ All file and git operations should use this branch.
6721
6737
  if (!result.found) {
6722
6738
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
6723
6739
  }
6724
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-PI7IMPHT.js");
6725
- const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-FO57K4JM.js");
6740
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-5PLO4QJU.js");
6741
+ const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-CJWYFUKD.js");
6726
6742
  const { createSessionStateMessage } = await import("./protocol-RKSWKNXI.js");
6727
- const { getPendingQuestionsForSession } = await import("./tools-CIM26IFB.js");
6728
- const { getMaxVisibleItems } = await import("./settings-NEBM3GQX.js");
6743
+ const { getPendingQuestionsForSession } = await import("./tools-QYYNFMGU.js");
6744
+ const { getMaxVisibleItems } = await import("./settings-2AHDKCD7.js");
6729
6745
  const eventStore = getEventStore2();
6730
6746
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
6731
6747
  const events = combineEvents(sessionId, snapshot, eventsSinceSnapshot);
@@ -6761,7 +6777,7 @@ All file and git operations should use this branch.
6761
6777
  if (!skip && typeof answer !== "string") {
6762
6778
  return res.status(400).json({ error: "answer is required when not skipping" });
6763
6779
  }
6764
- const { provideAnswer } = await import("./tools-CIM26IFB.js");
6780
+ const { provideAnswer } = await import("./tools-QYYNFMGU.js");
6765
6781
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6766
6782
  if (!found) {
6767
6783
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -6794,7 +6810,7 @@ All file and git operations should use this branch.
6794
6810
  if (!session) {
6795
6811
  return res.status(404).json({ error: "Session not found" });
6796
6812
  }
6797
- const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-NEBM3GQX.js");
6813
+ const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-2AHDKCD7.js");
6798
6814
  if (getSetting2(SETTINGS_KEYS.CACHE_WARMING) !== "true") {
6799
6815
  return res.json({ success: false, reason: "disabled" });
6800
6816
  }
@@ -6826,7 +6842,7 @@ All file and git operations should use this branch.
6826
6842
  backend: activeProvider?.backend ?? llmClient.getBackend(),
6827
6843
  model: llmClient.getModel()
6828
6844
  };
6829
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-XK5K3RPL.js");
6845
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-ED3KFPXO.js");
6830
6846
  runAgentTurn(
6831
6847
  {
6832
6848
  sessionManager,
@@ -6864,15 +6880,15 @@ All file and git operations should use this branch.
6864
6880
  if (!session) {
6865
6881
  return res.status(404).json({ error: "Session not found" });
6866
6882
  }
6867
- const { stopSessionExecution } = await import("./chat-handler-KWXRSWXZ.js");
6868
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-CIM26IFB.js");
6883
+ const { stopSessionExecution } = await import("./chat-handler-5SP265CR.js");
6884
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-QYYNFMGU.js");
6869
6885
  const queuedMessages = sessionManager.getQueueState(sessionId);
6870
6886
  sessionManager.clearMessageQueue(sessionId);
6871
6887
  stopSessionExecution(sessionId, sessionManager);
6872
6888
  abortSession(sessionId);
6873
6889
  cancelQuestionsForSession(sessionId, "Session stopped by user");
6874
6890
  cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
6875
- const eventStore = (await import("./events-PI7IMPHT.js")).getEventStore();
6891
+ const eventStore = (await import("./events-5PLO4QJU.js")).getEventStore();
6876
6892
  eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
6877
6893
  res.json({ success: true, queuedMessages });
6878
6894
  });
@@ -6886,7 +6902,7 @@ All file and git operations should use this branch.
6886
6902
  if (typeof messageIndex !== "number" || messageIndex < 0) {
6887
6903
  return res.status(400).json({ error: "messageIndex must be a non-negative number" });
6888
6904
  }
6889
- const { truncateSessionMessages } = await import("./events-PI7IMPHT.js");
6905
+ const { truncateSessionMessages } = await import("./events-5PLO4QJU.js");
6890
6906
  truncateSessionMessages(sessionId, messageIndex);
6891
6907
  res.json({ success: true });
6892
6908
  });
@@ -6906,8 +6922,8 @@ All file and git operations should use this branch.
6906
6922
  if (attachments !== void 0 && !Array.isArray(attachments)) {
6907
6923
  return res.status(400).json({ error: "attachments must be an array if provided" });
6908
6924
  }
6909
- const { getEventStore: getEventStore2 } = await import("./events-PI7IMPHT.js");
6910
- const { buildMessagesFromStoredEvents } = await import("./folding-FO57K4JM.js");
6925
+ const { getEventStore: getEventStore2 } = await import("./events-5PLO4QJU.js");
6926
+ const { buildMessagesFromStoredEvents } = await import("./folding-CJWYFUKD.js");
6911
6927
  const eventStore = getEventStore2();
6912
6928
  const events = eventStore.getEvents(sessionId);
6913
6929
  const { messages } = buildMessagesFromStoredEvents(events);
@@ -6919,7 +6935,7 @@ All file and git operations should use this branch.
6919
6935
  if (msg.role !== "user" || msg.isSystemGenerated) {
6920
6936
  return res.status(400).json({ error: "Can only replay user messages" });
6921
6937
  }
6922
- const { truncateSessionMessages } = await import("./events-PI7IMPHT.js");
6938
+ const { truncateSessionMessages } = await import("./events-5PLO4QJU.js");
6923
6939
  truncateSessionMessages(sessionId, msgIndex - 1);
6924
6940
  sessionManager.queueMessage(
6925
6941
  sessionId,
@@ -6981,7 +6997,7 @@ All file and git operations should use this branch.
6981
6997
  res.json({ accepted: true });
6982
6998
  });
6983
6999
  app.get("/api/settings", async (req, res) => {
6984
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-NEBM3GQX.js");
7000
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-2AHDKCD7.js");
6985
7001
  const keysParam = req.query["keys"];
6986
7002
  if (!keysParam) {
6987
7003
  return res.status(400).json({ error: "keys query parameter is required" });
@@ -6994,19 +7010,19 @@ All file and git operations should use this branch.
6994
7010
  res.json(result);
6995
7011
  });
6996
7012
  app.get("/api/settings/:key", async (req, res) => {
6997
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-NEBM3GQX.js");
7013
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-2AHDKCD7.js");
6998
7014
  const key = req.params.key;
6999
7015
  const value = getSetting2(key) ?? SETTINGS_DEFAULTS[key] ?? null;
7000
7016
  res.json({ key, value });
7001
7017
  });
7002
7018
  app.get("/api/settings/:key", async (req, res) => {
7003
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-NEBM3GQX.js");
7019
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-2AHDKCD7.js");
7004
7020
  const key = req.params.key;
7005
7021
  const value = getSetting2(key) ?? SETTINGS_DEFAULTS[key] ?? null;
7006
7022
  res.json({ key, value });
7007
7023
  });
7008
7024
  app.put("/api/settings/:key", async (req, res) => {
7009
- const { setSetting: setSetting2 } = await import("./settings-NEBM3GQX.js");
7025
+ const { setSetting: setSetting2 } = await import("./settings-2AHDKCD7.js");
7010
7026
  const key = req.params.key;
7011
7027
  const { value } = req.body;
7012
7028
  if (value === void 0) {
@@ -7033,7 +7049,7 @@ All file and git operations should use this branch.
7033
7049
  }
7034
7050
  });
7035
7051
  app.get("/api/tools/shells", async (_req, res) => {
7036
- const { listAvailableShells } = await import("./platform-WA4GK5BO.js");
7052
+ const { listAvailableShells } = await import("./platform-6RPPBHKH.js");
7037
7053
  res.json({ shells: listAvailableShells() });
7038
7054
  });
7039
7055
  app.get("/api/config", async (_req, res) => {
@@ -7123,7 +7139,7 @@ All file and git operations should use this branch.
7123
7139
  }));
7124
7140
  }
7125
7141
  app.post("/api/proxy/test", async (_req, res) => {
7126
- const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-NEBM3GQX.js");
7142
+ const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-2AHDKCD7.js");
7127
7143
  const proxyUrl = getSetting2(SETTINGS_KEYS.PROXY_URL);
7128
7144
  if (!proxyUrl) {
7129
7145
  return res.status(400).json({ success: false, error: "No proxy URL configured" });
@@ -7215,7 +7231,7 @@ All file and git operations should use this branch.
7215
7231
  }
7216
7232
  });
7217
7233
  app.post("/api/proxy/test", async (_req, res) => {
7218
- const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-NEBM3GQX.js");
7234
+ const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-2AHDKCD7.js");
7219
7235
  const proxyUrl = getSetting2(SETTINGS_KEYS.PROXY_URL);
7220
7236
  if (!proxyUrl) {
7221
7237
  return res.status(400).json({ success: false, error: "No proxy URL configured" });
@@ -7242,7 +7258,7 @@ All file and git operations should use this branch.
7242
7258
  const backend = req.query["backend"];
7243
7259
  if (!url) return res.status(400).json({ error: "url is required" });
7244
7260
  try {
7245
- const { fetchModelsWithContext } = await import("./provider-manager-2QSJTPWS.js");
7261
+ const { fetchModelsWithContext } = await import("./provider-manager-6CLRMGDE.js");
7246
7262
  const { getModelProfile: getModelProfile2 } = await import("./profiles-5J7F4BML.js");
7247
7263
  const models = await fetchModelsWithContext(
7248
7264
  url,
@@ -7312,8 +7328,8 @@ All file and git operations should use this branch.
7312
7328
  }
7313
7329
  const { getModelProfile: getModelProfile2 } = await import("./profiles-5J7F4BML.js");
7314
7330
  const { getBackendCapabilities } = await import("./backend-LVYHLGQJ.js");
7315
- const { buildNonStreamingCreateParams } = await import("./client-pure-VFZIIK4S.js");
7316
- const { OpenAIHttpClient } = await import("./http-client-33EZ3BLR.js");
7331
+ const { buildNonStreamingCreateParams } = await import("./client-pure-66Z6FWS6.js");
7332
+ const { OpenAIHttpClient } = await import("./http-client-KLODRQC2.js");
7317
7333
  const { ensureVersionPrefix } = await import("./url-utils-SAJP7AEX.js");
7318
7334
  const profile = getModelProfile2(model);
7319
7335
  const capabilities = getBackendCapabilities(backend || "unknown");
@@ -7665,7 +7681,7 @@ All file and git operations should use this branch.
7665
7681
  });
7666
7682
  async function rebuildMcpTools() {
7667
7683
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-FEAHWU5C.js");
7668
- const { setMcpTools: setMcpTools2 } = await import("./tools-CIM26IFB.js");
7684
+ const { setMcpTools: setMcpTools2 } = await import("./tools-QYYNFMGU.js");
7669
7685
  const mcpTools = createMcpTools2(mcpManager);
7670
7686
  setMcpTools2(mcpTools);
7671
7687
  toolRegistry = createToolRegistry();
@@ -8046,7 +8062,7 @@ All file and git operations should use this branch.
8046
8062
  res.status(400).json({ error: error instanceof Error ? error.message : String(error) });
8047
8063
  }
8048
8064
  });
8049
- const { listProjects } = await import("./projects-SSBWIYL4.js");
8065
+ const { listProjects } = await import("./projects-AXHZOBR2.js");
8050
8066
  const allProjects = listProjects();
8051
8067
  const projectDir = allProjects.find(
8052
8068
  (p) => p.workdir === config3.workdir || config3.workdir && p.workdir.startsWith(config3.workdir + "/")
@@ -8073,13 +8089,13 @@ All file and git operations should use this branch.
8073
8089
  })
8074
8090
  );
8075
8091
  app.get("/api/sessions/:id/background-processes", async (req, res) => {
8076
- const { getSessionProcesses } = await import("./manager-66YAEO7K.js");
8092
+ const { getSessionProcesses } = await import("./manager-LZ3JQ443.js");
8077
8093
  const sessionId = req.params.id;
8078
8094
  const processes = getSessionProcesses(sessionId);
8079
8095
  res.json({ processes });
8080
8096
  });
8081
8097
  app.post("/api/sessions/:id/background-process/:processId/stop", async (req, res) => {
8082
- const { stopProcess } = await import("./manager-66YAEO7K.js");
8098
+ const { stopProcess } = await import("./manager-LZ3JQ443.js");
8083
8099
  const sessionId = req.params.id;
8084
8100
  const processId = req.params.processId;
8085
8101
  const session = sessionManager.getSession(sessionId);
@@ -8219,7 +8235,7 @@ All file and git operations should use this branch.
8219
8235
  );
8220
8236
  const wss = wssExports.wss;
8221
8237
  deferTasksBroadcast = (projectId, payload) => wssExports.broadcastForProject(projectId, "", { type: "tasks.update", payload });
8222
- const { launchWorkflowRun, abortRunnerRun } = await import("./launch-L5ROVNI3.js");
8238
+ const { launchWorkflowRun, abortRunnerRun } = await import("./launch-EOXVWLOP.js");
8223
8239
  deferTasksLaunchWorkflow = (sessionId, launch) => {
8224
8240
  const session = sessionManager.getSession(sessionId);
8225
8241
  let llmClient = getLLMClient();
@@ -8257,7 +8273,7 @@ All file and git operations should use this branch.
8257
8273
  const state = sessionManager.getContextState(sessionId);
8258
8274
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
8259
8275
  });
8260
- const { QueueProcessor } = await import("./processor-WDZSFBVO.js");
8276
+ const { QueueProcessor } = await import("./processor-226ZOTRI.js");
8261
8277
  const queueProcessor = new QueueProcessor({
8262
8278
  sessionManager,
8263
8279
  providerManager,
@@ -8301,7 +8317,7 @@ All file and git operations should use this branch.
8301
8317
  void (async () => {
8302
8318
  await devServerManager.stopAll();
8303
8319
  await mcpManager.disconnectAll();
8304
- const { stopAllInspectProxies } = await import("./inspect-proxy-NHKQQ2CD.js");
8320
+ const { stopAllInspectProxies } = await import("./inspect-proxy-K6QKEYDT.js");
8305
8321
  stopAllInspectProxies();
8306
8322
  const { cleanupAllProcesses } = await import("./store-SARB6V2N.js");
8307
8323
  cleanupAllProcesses();
@@ -8343,4 +8359,4 @@ export {
8343
8359
  createServerHandle,
8344
8360
  createServer
8345
8361
  };
8346
- //# sourceMappingURL=chunk-QD7MRMCH.js.map
8362
+ //# sourceMappingURL=chunk-OCBBAEMT.js.map