openfox 2.0.102 → 2.0.104

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 (74) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/CHANGELOG.md +23 -0
  3. package/dist/{ask-TOBEA6KD.js → ask-CJMU6EW7.js} +2 -2
  4. package/dist/{chat-handler-IBFSBSGV.js → chat-handler-G2ZJNAVB.js} +18 -18
  5. package/dist/{chunk-AI27N57J.js → chunk-2COWPTSJ.js} +2 -2
  6. package/dist/{chunk-QL2G5UWE.js → chunk-3NVISPE7.js} +22 -12
  7. package/dist/chunk-4H427UBV.js +1298 -0
  8. package/dist/{chunk-W5FTCTGY.js → chunk-5VKT34HE.js} +2 -2
  9. package/dist/{chunk-FQS7A5M4.js → chunk-6SIX7P6O.js} +2 -2
  10. package/dist/{chunk-MGKS2NG2.js → chunk-B76OP3OE.js} +3 -3
  11. package/dist/{chunk-WPCYFH6X.js → chunk-DMI2BXHA.js} +4 -4
  12. package/dist/{chunk-KKEBXFB3.js → chunk-EF7KGWF6.js} +2 -2
  13. package/dist/{chunk-QGWS2EBU.js → chunk-EFIC3TUX.js} +16 -16
  14. package/dist/{chunk-MR7ZEGOF.js → chunk-ERKPMNC7.js} +5 -2
  15. package/dist/{chunk-ZLCPNTRT.js → chunk-ERTTKKCE.js} +6 -2
  16. package/dist/{chunk-BJDQPILB.js → chunk-F766OIDT.js} +2 -2
  17. package/dist/{chunk-K6VVTE6C.js → chunk-HZXWVD5A.js} +29 -19
  18. package/dist/{chunk-4Z2ARCY3.js → chunk-J27BLIPY.js} +2 -2
  19. package/dist/{chunk-EU3WWTFH.js → chunk-JAX5OEMM.js} +5 -1
  20. package/dist/chunk-MLOCSFIW.js +7 -0
  21. package/dist/{chunk-RZC6DAT2.js → chunk-OUMHR7LR.js} +2 -2
  22. package/dist/{chunk-DPRJYQ5U.js → chunk-PKLWSTDB.js} +17 -17
  23. package/dist/{chunk-2EYTYXWN.js → chunk-S5HDT5RQ.js} +2 -2
  24. package/dist/{chunk-YZSBJUGC.js → chunk-SPA7PQPJ.js} +3 -1
  25. package/dist/{chunk-KLK5N4OX.js → chunk-TFQSCHVU.js} +3 -3
  26. package/dist/{chunk-7HIJP4PC.js → chunk-UADZ2LZJ.js} +2 -2
  27. package/dist/{chunk-Z753S3X7.js → chunk-W2KZ7H55.js} +22 -15
  28. package/dist/{chunk-W5RC44R6.js → chunk-WHJ67MO2.js} +8 -8
  29. package/dist/{chunk-6ZV3NYEE.js → chunk-XWW7LOU4.js} +118 -77
  30. package/dist/{chunk-73EV6QYX.js → chunk-YXIDKMBJ.js} +3 -3
  31. package/dist/cli/dev.js +2 -2
  32. package/dist/cli/index.js +2 -2
  33. package/dist/{client-Q7BHKOCD.js → client-2EAJAGPC.js} +4 -4
  34. package/dist/{compactor-43P3LGDU.js → compactor-IEYTUHYX.js} +9 -9
  35. package/dist/{dynamic-context-AMPVZXUU.js → dynamic-context-Z5BU2RVP.js} +7 -7
  36. package/dist/{events-RCC32JOA.js → events-BGVLDGLK.js} +6 -6
  37. package/dist/{folding-ZNUXPQUD.js → folding-AJMZBHNR.js} +4 -4
  38. package/dist/{http-client-WGNBG7PC.js → http-client-A7A4XWNK.js} +3 -3
  39. package/dist/{manager-HFGJLW7Q.js → manager-GGIIENDX.js} +4 -4
  40. package/dist/{model-overrides-DQDT5Y7R.js → model-overrides-BLEFI7FQ.js} +3 -3
  41. package/dist/{orchestrator-QDXKDLOW.js → orchestrator-SYAYO6NS.js} +17 -17
  42. package/dist/package.json +1 -1
  43. package/dist/{path-security-SUFEIBTC.js → path-security-JCDBLFIE.js} +7 -7
  44. package/dist/{platform-2RLL7RAE.js → platform-GZ2WIDS5.js} +3 -3
  45. package/dist/{processor-YWNLWAZW.js → processor-CBGV2K4E.js} +17 -17
  46. package/dist/{protocol-BXgdUKgZ.d.ts → protocol-rfiBDoXm.d.ts} +1 -1
  47. package/dist/provider/index.d.ts +4 -4
  48. package/dist/{provider-FX3QCGAF.js → provider-XCVHKXPS.js} +68 -68
  49. package/dist/{provider-manager-GLG6BA32.js → provider-manager-AUYP3QAM.js} +5 -5
  50. package/dist/{pwa-SEWCVKZX.js → pwa-XPHP3PY2.js} +35 -35
  51. package/dist/{registry-GBNLVWYQ.js → registry-M2QVGRNK.js} +3 -3
  52. package/dist/{serve-RKHLNGEV.js → serve-NPS4GJWH.js} +25 -25
  53. package/dist/server/index.d.ts +3 -3
  54. package/dist/server/index.js +24 -24
  55. package/dist/{server-QGQGSHW6.js → server-FKM4FQKD.js} +20 -20
  56. package/dist/{session-overrides-MBGBX6TM.js → session-overrides-HA5IQYLI.js} +5 -5
  57. package/dist/{sessions-FEIFYGH7.js → sessions-ZV2WRC6K.js} +4 -4
  58. package/dist/{settings-FT7HF7ZB.js → settings-TGCITCVA.js} +2 -2
  59. package/dist/shared/index.d.ts +3 -3
  60. package/dist/{tools-M5DKWCJJ.js → tools-KKALZLKX.js} +15 -15
  61. package/dist/{types-DBftgbfl.d.ts → types-o-YQ3Bfq.d.ts} +1 -1
  62. package/dist/{types-7idXD8Bq.d.ts → types-o0v5xVxu.d.ts} +1 -1
  63. package/dist/{update-N4GD5IUX.js → update-7BEZMI4R.js} +2 -2
  64. package/dist/web/assets/index-B7wjVPjL.css +40 -0
  65. package/dist/web/assets/index-BoWCT9PC.js +323 -0
  66. package/dist/web/index.html +2 -2
  67. package/dist/web/sw.js +1 -1
  68. package/dist/web/workbox-9c191d2f.js +1 -0
  69. package/package.json +1 -1
  70. package/dist/chunk-SV3I2YNO.js +0 -7
  71. package/dist/chunk-XY3LESVZ.js +0 -1000
  72. package/dist/web/assets/index-B0CNNl1k.css +0 -32
  73. package/dist/web/assets/index-FWViKQkM.js +0 -324
  74. package/dist/web/workbox-8c29f6e4.js +0 -1
@@ -21,7 +21,7 @@ import {
21
21
  tokenFromPassword,
22
22
  verifyPassword,
23
23
  workflowExists
24
- } from "./chunk-K6VVTE6C.js";
24
+ } from "./chunk-HZXWVD5A.js";
25
25
  import {
26
26
  openFolder
27
27
  } from "./chunk-62QCBNPE.js";
@@ -34,7 +34,7 @@ import {
34
34
  setMcpManagerForTools,
35
35
  setMcpTools,
36
36
  setNotifyMcpServersChanged
37
- } from "./chunk-DPRJYQ5U.js";
37
+ } from "./chunk-PKLWSTDB.js";
38
38
  import {
39
39
  deleteOwnedSkill,
40
40
  deleteProjectSkill,
@@ -53,12 +53,12 @@ import {
53
53
  setSkillEnabled,
54
54
  skillExists,
55
55
  updateOwnedSkill
56
- } from "./chunk-MGKS2NG2.js";
56
+ } from "./chunk-B76OP3OE.js";
57
57
  import {
58
58
  ALWAYS_ALLOWED,
59
59
  ALWAYS_ALLOWED_FOR_SUBAGENTS,
60
60
  TOP_LEVEL_ONLY_TOOLS
61
- } from "./chunk-4Z2ARCY3.js";
61
+ } from "./chunk-J27BLIPY.js";
62
62
  import {
63
63
  createMcpTools
64
64
  } from "./chunk-JE7LW7Y6.js";
@@ -80,7 +80,7 @@ import {
80
80
  import {
81
81
  getSessionDisabledServers,
82
82
  setSessionDisabledServers
83
- } from "./chunk-7HIJP4PC.js";
83
+ } from "./chunk-UADZ2LZJ.js";
84
84
  import {
85
85
  emitAssistantMessageStart,
86
86
  emitContextState,
@@ -97,23 +97,23 @@ import {
97
97
  getEventStore,
98
98
  getSessionState,
99
99
  initEventStore
100
- } from "./chunk-WPCYFH6X.js";
100
+ } from "./chunk-DMI2BXHA.js";
101
101
  import {
102
102
  createContextStateMessage
103
103
  } from "./chunk-27SDWNKL.js";
104
104
  import {
105
105
  EventEmitter
106
- } from "./chunk-EU3WWTFH.js";
106
+ } from "./chunk-JAX5OEMM.js";
107
107
  import {
108
108
  getPathSeparator,
109
109
  isAbsolutePath
110
- } from "./chunk-KKEBXFB3.js";
110
+ } from "./chunk-EF7KGWF6.js";
111
111
  import {
112
112
  getAgentModelOverride,
113
113
  getAgentModelOverrides,
114
114
  resolveLLMClientForAgent,
115
115
  setAgentModelOverride
116
- } from "./chunk-W5FTCTGY.js";
116
+ } from "./chunk-5VKT34HE.js";
117
117
  import {
118
118
  getProject,
119
119
  getProjectByWorkdir,
@@ -121,7 +121,7 @@ import {
121
121
  } from "./chunk-WWFH5GAR.js";
122
122
  import {
123
123
  VERSION
124
- } from "./chunk-SV3I2YNO.js";
124
+ } from "./chunk-MLOCSFIW.js";
125
125
  import {
126
126
  clearWorkflowExecution,
127
127
  createSession,
@@ -141,7 +141,7 @@ import {
141
141
  updateSessionRunning,
142
142
  updateSessionWorkdir,
143
143
  updateWorkflowExecutionStatus
144
- } from "./chunk-RZC6DAT2.js";
144
+ } from "./chunk-OUMHR7LR.js";
145
145
  import {
146
146
  agentExists,
147
147
  deleteAgent,
@@ -164,13 +164,13 @@ import {
164
164
  saveAgentToProject,
165
165
  saveItemToDir,
166
166
  setRuntimeConfig
167
- } from "./chunk-FQS7A5M4.js";
167
+ } from "./chunk-6SIX7P6O.js";
168
168
  import {
169
169
  createProviderManager,
170
170
  detectModel,
171
171
  getLlmStatus,
172
172
  parseDefaultModelSelection
173
- } from "./chunk-AI27N57J.js";
173
+ } from "./chunk-2COWPTSJ.js";
174
174
  import {
175
175
  getModelProfile
176
176
  } from "./chunk-V4IE7HJY.js";
@@ -183,12 +183,12 @@ import {
183
183
  import {
184
184
  SessionNotFoundError,
185
185
  WorkspaceInUseError
186
- } from "./chunk-MR7ZEGOF.js";
186
+ } from "./chunk-ERKPMNC7.js";
187
187
  import {
188
188
  deleteSetting,
189
189
  getSetting,
190
190
  setSetting
191
- } from "./chunk-YZSBJUGC.js";
191
+ } from "./chunk-SPA7PQPJ.js";
192
192
  import {
193
193
  initDatabase
194
194
  } from "./chunk-GLF65XDS.js";
@@ -1732,7 +1732,30 @@ var DiagnosticSeverity = {
1732
1732
  function hoverInfo(contents, range) {
1733
1733
  return range ? { contents, range } : { contents };
1734
1734
  }
1735
+ function withTimeout(promise, ms, label) {
1736
+ const outer = new Promise((resolve9, reject) => {
1737
+ const timer = setTimeout(() => {
1738
+ reject(new Error(`${label} timed out after ${ms}ms`));
1739
+ }, ms);
1740
+ promise.then(
1741
+ (val) => {
1742
+ clearTimeout(timer);
1743
+ resolve9(val);
1744
+ },
1745
+ (err) => {
1746
+ clearTimeout(timer);
1747
+ reject(err);
1748
+ }
1749
+ );
1750
+ promise.catch(() => {
1751
+ });
1752
+ });
1753
+ outer.catch(() => {
1754
+ });
1755
+ return outer;
1756
+ }
1735
1757
  var DIAGNOSTIC_WAIT_MS = 2e3;
1758
+ var DEFAULT_INIT_TIMEOUT_MS = 5e3;
1736
1759
  var SYMBOL_KIND_NAMES = {
1737
1760
  1: "File",
1738
1761
  2: "Module",
@@ -1795,10 +1818,12 @@ var LspServer = class {
1795
1818
  // resolving the waiter so all waves are captured.
1796
1819
  pendingDiagnosticDebounce = /* @__PURE__ */ new Map();
1797
1820
  commandPath;
1798
- constructor(config3, workdir, commandPath) {
1821
+ initTimeoutMs;
1822
+ constructor(config3, workdir, commandPath, initTimeoutMs) {
1799
1823
  this.config = config3;
1800
1824
  this.workdir = workdir;
1801
1825
  this.commandPath = commandPath ?? config3.serverCommand;
1826
+ this.initTimeoutMs = initTimeoutMs ?? DEFAULT_INIT_TIMEOUT_MS;
1802
1827
  }
1803
1828
  // ============================================================================
1804
1829
  // Lifecycle
@@ -1822,10 +1847,23 @@ var LspServer = class {
1822
1847
  windowsHide: true,
1823
1848
  shell: needsShell
1824
1849
  });
1850
+ this.process.on("exit", (code) => {
1851
+ if (this.state === "running" || this.state === "starting") {
1852
+ logger.warn("LSP server exited unexpectedly", {
1853
+ language: this.config.id,
1854
+ code,
1855
+ state: this.state
1856
+ });
1857
+ this.handleProcessExit();
1858
+ }
1859
+ });
1825
1860
  await new Promise((resolve9, reject) => {
1826
1861
  this.process.once("spawn", resolve9);
1827
1862
  this.process.once("error", reject);
1828
1863
  });
1864
+ if (this.state !== "starting") {
1865
+ throw new Error(`LSP server process exited during startup (state: ${this.state})`);
1866
+ }
1829
1867
  if (!this.process.stdin || !this.process.stdout) {
1830
1868
  throw new Error("Failed to get stdio streams from language server process");
1831
1869
  }
@@ -1845,12 +1883,6 @@ var LspServer = class {
1845
1883
  logger.error("LSP server process error", { language: this.config.id, error: err.message });
1846
1884
  this.handleProcessExit();
1847
1885
  });
1848
- this.process.on("exit", (code) => {
1849
- if (this.state === "running") {
1850
- logger.warn("LSP server exited unexpectedly", { language: this.config.id, code });
1851
- this.handleProcessExit();
1852
- }
1853
- });
1854
1886
  this.process.stderr?.on("data", (data) => {
1855
1887
  const msg = data.toString().trim();
1856
1888
  if (msg) {
@@ -1878,7 +1910,11 @@ var LspServer = class {
1878
1910
  },
1879
1911
  initializationOptions: this.config.initOptions
1880
1912
  };
1881
- const result = await this.connection.sendRequest(LSP.initialize, initParams);
1913
+ const result = await withTimeout(
1914
+ this.connection.sendRequest(LSP.initialize, initParams),
1915
+ this.initTimeoutMs,
1916
+ "LSP initialize"
1917
+ );
1882
1918
  logger.debug("LSP server initialized", {
1883
1919
  language: this.config.id,
1884
1920
  capabilities: result
@@ -3923,6 +3959,7 @@ var SkillInstallError = class extends Error {
3923
3959
  super(message);
3924
3960
  this.status = status;
3925
3961
  }
3962
+ status;
3926
3963
  };
3927
3964
  function validateRelativePath(path) {
3928
3965
  if (!path || isAbsolute(path) || path.includes("\\") || path.includes("\0") || path.split("/").some((part) => !part || part === "." || part === "..")) {
@@ -5303,7 +5340,10 @@ function createProviderAuthRoutes(config3, providerManager, registry) {
5303
5340
  const context = resolveAuthContext(req.params.providerId, res);
5304
5341
  if (!context) return;
5305
5342
  const { provider, adapter } = context;
5306
- if (provider.credentialRef && adapter) await adapter.logout(provider.credentialRef);
5343
+ if (adapter) {
5344
+ const ref = provider.credentialRef ?? provider.id;
5345
+ await adapter.logout(ref);
5346
+ }
5307
5347
  const { loadGlobalConfig, saveGlobalConfig } = await import("./config-3FKJV3KI.js");
5308
5348
  const globalConfig = await loadGlobalConfig(config3.mode ?? "production", config3.globalConfigPath);
5309
5349
  const updatedConfig = {
@@ -5327,6 +5367,7 @@ var ProviderRegistry = class {
5327
5367
  constructor(runtime) {
5328
5368
  this.runtime = runtime;
5329
5369
  }
5370
+ runtime;
5330
5371
  authAdapters = /* @__PURE__ */ new Map();
5331
5372
  transportAdapters = /* @__PURE__ */ new Map();
5332
5373
  presets = /* @__PURE__ */ new Map();
@@ -5813,7 +5854,7 @@ async function createServerHandle(config3) {
5813
5854
  toolRegistry = createToolRegistry();
5814
5855
  logger.info("MCP tools registered", { count: mcpTools.length });
5815
5856
  }
5816
- const { signalMcpReady } = await import("./server-QGQGSHW6.js");
5857
+ const { signalMcpReady } = await import("./server-FKM4FQKD.js");
5817
5858
  signalMcpReady();
5818
5859
  });
5819
5860
  const app = express();
@@ -6023,7 +6064,7 @@ async function createServerHandle(config3) {
6023
6064
  }
6024
6065
  try {
6025
6066
  await checkoutBranch(project.workdir, branch);
6026
- const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-FEIFYGH7.js");
6067
+ const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-ZV2WRC6K.js");
6027
6068
  const allSessions = sessionManager.listSessions();
6028
6069
  for (const s of allSessions) {
6029
6070
  if (sessionManager.getEffectiveWorkdir(s.id) === project.workdir) {
@@ -6059,7 +6100,7 @@ async function createServerHandle(config3) {
6059
6100
  );
6060
6101
  }
6061
6102
  await createBranch(project.workdir, name, sb);
6062
- const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-FEIFYGH7.js");
6103
+ const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-ZV2WRC6K.js");
6063
6104
  const allSessions = sessionManager.listSessions();
6064
6105
  for (const s of allSessions) {
6065
6106
  if (sessionManager.getEffectiveWorkdir(s.id) === project.workdir) {
@@ -6091,7 +6132,7 @@ async function createServerHandle(config3) {
6091
6132
  if (!branch || typeof branch !== "string") return res.status(400).json({ error: "branch is required" });
6092
6133
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
6093
6134
  const { checkoutBranch, validateRef: validateRef2 } = await import("./workspace-2NDXTCVR.js");
6094
- const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-FEIFYGH7.js");
6135
+ const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-ZV2WRC6K.js");
6095
6136
  try {
6096
6137
  await validateRef2(effectiveWorkdir, branch);
6097
6138
  await checkoutBranch(effectiveWorkdir, branch);
@@ -6134,7 +6175,7 @@ All file and git operations should use this branch.
6134
6175
  if (!name || typeof name !== "string") return res.status(400).json({ error: "name is required" });
6135
6176
  const effectiveWorkdir = sessionManager.getEffectiveWorkdir(req.params.id);
6136
6177
  const { validateRef: validateRef2 } = await import("./workspace-2NDXTCVR.js");
6137
- const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-FEIFYGH7.js");
6178
+ const { updateSessionBranch: updateSessionBranch2 } = await import("./sessions-ZV2WRC6K.js");
6138
6179
  try {
6139
6180
  await validateRef2(effectiveWorkdir, name);
6140
6181
  if (sourceBranch) {
@@ -6189,8 +6230,8 @@ All file and git operations should use this branch.
6189
6230
  res.json({ workspaces: workspacesList });
6190
6231
  });
6191
6232
  app.get("/api/sessions", async (req, res) => {
6192
- const { getRecentUserPromptsForSession } = await import("./events-RCC32JOA.js");
6193
- const { getPendingConfirmationsBySession } = await import("./path-security-SUFEIBTC.js");
6233
+ const { getRecentUserPromptsForSession } = await import("./events-BGVLDGLK.js");
6234
+ const { getPendingConfirmationsBySession } = await import("./path-security-JCDBLFIE.js");
6194
6235
  const projectId = req.query["projectId"];
6195
6236
  const limit = Math.min(parseInt(req.query["limit"]) || 20, 100);
6196
6237
  const offset = parseInt(req.query["offset"]) || 0;
@@ -6236,7 +6277,7 @@ All file and git operations should use this branch.
6236
6277
  disabledServers = mcpManager.getAllServers().filter((s) => s.config.disabled).map((s) => s.name);
6237
6278
  }
6238
6279
  if (disabledServers.length > 0) {
6239
- const { setSessionDisabledServers: setSessionDisabledServers2 } = await import("./session-overrides-MBGBX6TM.js");
6280
+ const { setSessionDisabledServers: setSessionDisabledServers2 } = await import("./session-overrides-HA5IQYLI.js");
6240
6281
  setSessionDisabledServers2(session.id, disabledServers);
6241
6282
  }
6242
6283
  } catch {
@@ -6309,12 +6350,12 @@ All file and git operations should use this branch.
6309
6350
  }
6310
6351
  });
6311
6352
  app.get("/api/sessions/:id", async (req, res) => {
6312
- const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-RCC32JOA.js");
6313
- const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-ZNUXPQUD.js");
6314
- const { getPendingQuestionsForSession } = await import("./tools-M5DKWCJJ.js");
6315
- const { getMaxVisibleItems } = await import("./settings-FT7HF7ZB.js");
6316
- const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-DQDT5Y7R.js");
6317
- const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-FEIFYGH7.js");
6353
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot } = await import("./events-BGVLDGLK.js");
6354
+ const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-AJMZBHNR.js");
6355
+ const { getPendingQuestionsForSession } = await import("./tools-KKALZLKX.js");
6356
+ const { getMaxVisibleItems } = await import("./settings-TGCITCVA.js");
6357
+ const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-BLEFI7FQ.js");
6358
+ const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-ZV2WRC6K.js");
6318
6359
  let session = sessionManager.getSession(req.params.id);
6319
6360
  if (!session) {
6320
6361
  return res.status(404).json({ error: "Session not found" });
@@ -6353,8 +6394,8 @@ All file and git operations should use this branch.
6353
6394
  if (!session) {
6354
6395
  return res.status(404).json({ error: "Session not found" });
6355
6396
  }
6356
- const { stopSessionExecution } = await import("./chat-handler-IBFSBSGV.js");
6357
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-M5DKWCJJ.js");
6397
+ const { stopSessionExecution } = await import("./chat-handler-G2ZJNAVB.js");
6398
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-KKALZLKX.js");
6358
6399
  sessionManager.clearMessageQueue(sessionId);
6359
6400
  stopSessionExecution(sessionId, sessionManager);
6360
6401
  abortSession(sessionId);
@@ -6383,9 +6424,9 @@ All file and git operations should use this branch.
6383
6424
  res.json({ success: true });
6384
6425
  });
6385
6426
  app.post("/api/sessions/:id/provider", async (req, res) => {
6386
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-RCC32JOA.js");
6387
- const { buildMessagesFromStoredEvents } = await import("./folding-ZNUXPQUD.js");
6388
- const { getMaxVisibleItems } = await import("./settings-FT7HF7ZB.js");
6427
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-BGVLDGLK.js");
6428
+ const { buildMessagesFromStoredEvents } = await import("./folding-AJMZBHNR.js");
6429
+ const { getMaxVisibleItems } = await import("./settings-TGCITCVA.js");
6389
6430
  const sessionId = req.params.id;
6390
6431
  const session = sessionManager.getSession(sessionId);
6391
6432
  if (!session) {
@@ -6498,11 +6539,11 @@ All file and git operations should use this branch.
6498
6539
  res.json({ success: true });
6499
6540
  });
6500
6541
  app.put("/api/sessions/:id/mode", async (req, res) => {
6501
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-RCC32JOA.js");
6502
- const { buildMessagesFromStoredEvents } = await import("./folding-ZNUXPQUD.js");
6503
- const { getMaxVisibleItems } = await import("./settings-FT7HF7ZB.js");
6504
- const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-DQDT5Y7R.js");
6505
- const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-FEIFYGH7.js");
6542
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEv } = await import("./events-BGVLDGLK.js");
6543
+ const { buildMessagesFromStoredEvents } = await import("./folding-AJMZBHNR.js");
6544
+ const { getMaxVisibleItems } = await import("./settings-TGCITCVA.js");
6545
+ const { getAgentModelOverride: getAgentModelOverride2 } = await import("./model-overrides-BLEFI7FQ.js");
6546
+ const { updateSessionProvider: updateSessionProvider2 } = await import("./sessions-ZV2WRC6K.js");
6506
6547
  const sessionId = req.params.id;
6507
6548
  const session = sessionManager.getSession(sessionId);
6508
6549
  if (!session) {
@@ -6604,7 +6645,7 @@ All file and git operations should use this branch.
6604
6645
  if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
6605
6646
  return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
6606
6647
  }
6607
- const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-M5DKWCJJ.js");
6648
+ const { providePathConfirmation, getConfirmationSessionId } = await import("./tools-KKALZLKX.js");
6608
6649
  const pendingSessionId = getConfirmationSessionId(callId);
6609
6650
  if (!pendingSessionId) {
6610
6651
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -6616,11 +6657,11 @@ All file and git operations should use this branch.
6616
6657
  if (!result.found) {
6617
6658
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
6618
6659
  }
6619
- const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-RCC32JOA.js");
6620
- const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-ZNUXPQUD.js");
6660
+ const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-BGVLDGLK.js");
6661
+ const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-AJMZBHNR.js");
6621
6662
  const { createSessionStateMessage } = await import("./protocol-YDNGGADL.js");
6622
- const { getPendingQuestionsForSession } = await import("./tools-M5DKWCJJ.js");
6623
- const { getMaxVisibleItems } = await import("./settings-FT7HF7ZB.js");
6663
+ const { getPendingQuestionsForSession } = await import("./tools-KKALZLKX.js");
6664
+ const { getMaxVisibleItems } = await import("./settings-TGCITCVA.js");
6624
6665
  const eventStore = getEventStore2();
6625
6666
  const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
6626
6667
  const events = combineEvents(sessionId, snapshot, eventsSinceSnapshot);
@@ -6656,7 +6697,7 @@ All file and git operations should use this branch.
6656
6697
  if (!skip && typeof answer !== "string") {
6657
6698
  return res.status(400).json({ error: "answer is required when not skipping" });
6658
6699
  }
6659
- const { provideAnswer } = await import("./tools-M5DKWCJJ.js");
6700
+ const { provideAnswer } = await import("./tools-KKALZLKX.js");
6660
6701
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
6661
6702
  if (!found) {
6662
6703
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -6689,7 +6730,7 @@ All file and git operations should use this branch.
6689
6730
  if (!session) {
6690
6731
  return res.status(404).json({ error: "Session not found" });
6691
6732
  }
6692
- const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-FT7HF7ZB.js");
6733
+ const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-TGCITCVA.js");
6693
6734
  if (getSetting2(SETTINGS_KEYS.CACHE_WARMING) !== "true") {
6694
6735
  return res.json({ success: false, reason: "disabled" });
6695
6736
  }
@@ -6721,7 +6762,7 @@ All file and git operations should use this branch.
6721
6762
  backend: activeProvider?.backend ?? llmClient.getBackend(),
6722
6763
  model: llmClient.getModel()
6723
6764
  };
6724
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-QDXKDLOW.js");
6765
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-SYAYO6NS.js");
6725
6766
  runAgentTurn(
6726
6767
  {
6727
6768
  sessionManager,
@@ -6759,15 +6800,15 @@ All file and git operations should use this branch.
6759
6800
  if (!session) {
6760
6801
  return res.status(404).json({ error: "Session not found" });
6761
6802
  }
6762
- const { stopSessionExecution } = await import("./chat-handler-IBFSBSGV.js");
6763
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-M5DKWCJJ.js");
6803
+ const { stopSessionExecution } = await import("./chat-handler-G2ZJNAVB.js");
6804
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-KKALZLKX.js");
6764
6805
  const queuedMessages = sessionManager.getQueueState(sessionId);
6765
6806
  sessionManager.clearMessageQueue(sessionId);
6766
6807
  stopSessionExecution(sessionId, sessionManager);
6767
6808
  abortSession(sessionId);
6768
6809
  cancelQuestionsForSession(sessionId, "Session stopped by user");
6769
6810
  cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
6770
- const eventStore = (await import("./events-RCC32JOA.js")).getEventStore();
6811
+ const eventStore = (await import("./events-BGVLDGLK.js")).getEventStore();
6771
6812
  eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
6772
6813
  res.json({ success: true, queuedMessages });
6773
6814
  });
@@ -6781,7 +6822,7 @@ All file and git operations should use this branch.
6781
6822
  if (typeof messageIndex !== "number" || messageIndex < 0) {
6782
6823
  return res.status(400).json({ error: "messageIndex must be a non-negative number" });
6783
6824
  }
6784
- const { truncateSessionMessages } = await import("./events-RCC32JOA.js");
6825
+ const { truncateSessionMessages } = await import("./events-BGVLDGLK.js");
6785
6826
  truncateSessionMessages(sessionId, messageIndex);
6786
6827
  res.json({ success: true });
6787
6828
  });
@@ -6798,8 +6839,8 @@ All file and git operations should use this branch.
6798
6839
  if (content !== void 0 && (typeof content !== "string" || !content.trim())) {
6799
6840
  return res.status(400).json({ error: "content must be a non-empty string if provided" });
6800
6841
  }
6801
- const { getEventStore: getEventStore2 } = await import("./events-RCC32JOA.js");
6802
- const { buildMessagesFromStoredEvents } = await import("./folding-ZNUXPQUD.js");
6842
+ const { getEventStore: getEventStore2 } = await import("./events-BGVLDGLK.js");
6843
+ const { buildMessagesFromStoredEvents } = await import("./folding-AJMZBHNR.js");
6803
6844
  const eventStore = getEventStore2();
6804
6845
  const events = eventStore.getEvents(sessionId);
6805
6846
  const { messages } = buildMessagesFromStoredEvents(events);
@@ -6811,7 +6852,7 @@ All file and git operations should use this branch.
6811
6852
  if (msg.role !== "user" || msg.isSystemGenerated) {
6812
6853
  return res.status(400).json({ error: "Can only replay user messages" });
6813
6854
  }
6814
- const { truncateSessionMessages } = await import("./events-RCC32JOA.js");
6855
+ const { truncateSessionMessages } = await import("./events-BGVLDGLK.js");
6815
6856
  truncateSessionMessages(sessionId, msgIndex - 1);
6816
6857
  sessionManager.queueMessage(sessionId, "asap", content ?? msg.content, msg.attachments, msg.messageKind);
6817
6858
  res.json({ success: true });
@@ -6867,7 +6908,7 @@ All file and git operations should use this branch.
6867
6908
  res.json({ accepted: true });
6868
6909
  });
6869
6910
  app.get("/api/settings", async (req, res) => {
6870
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-FT7HF7ZB.js");
6911
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-TGCITCVA.js");
6871
6912
  const keysParam = req.query["keys"];
6872
6913
  if (!keysParam) {
6873
6914
  return res.status(400).json({ error: "keys query parameter is required" });
@@ -6880,19 +6921,19 @@ All file and git operations should use this branch.
6880
6921
  res.json(result);
6881
6922
  });
6882
6923
  app.get("/api/settings/:key", async (req, res) => {
6883
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-FT7HF7ZB.js");
6924
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-TGCITCVA.js");
6884
6925
  const key = req.params.key;
6885
6926
  const value = getSetting2(key) ?? SETTINGS_DEFAULTS[key] ?? null;
6886
6927
  res.json({ key, value });
6887
6928
  });
6888
6929
  app.get("/api/settings/:key", async (req, res) => {
6889
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-FT7HF7ZB.js");
6930
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-TGCITCVA.js");
6890
6931
  const key = req.params.key;
6891
6932
  const value = getSetting2(key) ?? SETTINGS_DEFAULTS[key] ?? null;
6892
6933
  res.json({ key, value });
6893
6934
  });
6894
6935
  app.put("/api/settings/:key", async (req, res) => {
6895
- const { setSetting: setSetting2 } = await import("./settings-FT7HF7ZB.js");
6936
+ const { setSetting: setSetting2 } = await import("./settings-TGCITCVA.js");
6896
6937
  const key = req.params.key;
6897
6938
  const { value } = req.body;
6898
6939
  if (value === void 0) {
@@ -6919,7 +6960,7 @@ All file and git operations should use this branch.
6919
6960
  }
6920
6961
  });
6921
6962
  app.get("/api/tools/shells", async (_req, res) => {
6922
- const { listAvailableShells } = await import("./platform-2RLL7RAE.js");
6963
+ const { listAvailableShells } = await import("./platform-GZ2WIDS5.js");
6923
6964
  res.json({ shells: listAvailableShells() });
6924
6965
  });
6925
6966
  app.get("/api/config", async (_req, res) => {
@@ -7009,7 +7050,7 @@ All file and git operations should use this branch.
7009
7050
  }));
7010
7051
  }
7011
7052
  app.post("/api/proxy/test", async (_req, res) => {
7012
- const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-FT7HF7ZB.js");
7053
+ const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-TGCITCVA.js");
7013
7054
  const proxyUrl = getSetting2(SETTINGS_KEYS.PROXY_URL);
7014
7055
  if (!proxyUrl) {
7015
7056
  return res.status(400).json({ success: false, error: "No proxy URL configured" });
@@ -7101,7 +7142,7 @@ All file and git operations should use this branch.
7101
7142
  }
7102
7143
  });
7103
7144
  app.post("/api/proxy/test", async (_req, res) => {
7104
- const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-FT7HF7ZB.js");
7145
+ const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-TGCITCVA.js");
7105
7146
  const proxyUrl = getSetting2(SETTINGS_KEYS.PROXY_URL);
7106
7147
  if (!proxyUrl) {
7107
7148
  return res.status(400).json({ success: false, error: "No proxy URL configured" });
@@ -7128,7 +7169,7 @@ All file and git operations should use this branch.
7128
7169
  const backend = req.query["backend"];
7129
7170
  if (!url) return res.status(400).json({ error: "url is required" });
7130
7171
  try {
7131
- const { fetchModelsWithContext } = await import("./provider-manager-GLG6BA32.js");
7172
+ const { fetchModelsWithContext } = await import("./provider-manager-AUYP3QAM.js");
7132
7173
  const { getModelProfile: getModelProfile2 } = await import("./profiles-5J7F4BML.js");
7133
7174
  const models = await fetchModelsWithContext(
7134
7175
  url,
@@ -7199,7 +7240,7 @@ All file and git operations should use this branch.
7199
7240
  const { getModelProfile: getModelProfile2 } = await import("./profiles-5J7F4BML.js");
7200
7241
  const { getBackendCapabilities } = await import("./backend-P3GHHLHJ.js");
7201
7242
  const { buildNonStreamingCreateParams } = await import("./client-pure-ONSVWEG5.js");
7202
- const { OpenAIHttpClient } = await import("./http-client-WGNBG7PC.js");
7243
+ const { OpenAIHttpClient } = await import("./http-client-A7A4XWNK.js");
7203
7244
  const { ensureVersionPrefix } = await import("./url-utils-SAJP7AEX.js");
7204
7245
  const profile = getModelProfile2(model);
7205
7246
  const capabilities = getBackendCapabilities(backend || "unknown");
@@ -7549,7 +7590,7 @@ All file and git operations should use this branch.
7549
7590
  });
7550
7591
  async function rebuildMcpTools() {
7551
7592
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-FEAHWU5C.js");
7552
- const { setMcpTools: setMcpTools2 } = await import("./tools-M5DKWCJJ.js");
7593
+ const { setMcpTools: setMcpTools2 } = await import("./tools-KKALZLKX.js");
7553
7594
  const mcpTools = createMcpTools2(mcpManager);
7554
7595
  setMcpTools2(mcpTools);
7555
7596
  toolRegistry = createToolRegistry();
@@ -7810,13 +7851,13 @@ All file and git operations should use this branch.
7810
7851
  })
7811
7852
  );
7812
7853
  app.get("/api/sessions/:id/background-processes", async (req, res) => {
7813
- const { getSessionProcesses } = await import("./manager-HFGJLW7Q.js");
7854
+ const { getSessionProcesses } = await import("./manager-GGIIENDX.js");
7814
7855
  const sessionId = req.params.id;
7815
7856
  const processes = getSessionProcesses(sessionId);
7816
7857
  res.json({ processes });
7817
7858
  });
7818
7859
  app.post("/api/sessions/:id/background-process/:processId/stop", async (req, res) => {
7819
- const { stopProcess } = await import("./manager-HFGJLW7Q.js");
7860
+ const { stopProcess } = await import("./manager-GGIIENDX.js");
7820
7861
  const sessionId = req.params.id;
7821
7862
  const processId = req.params.processId;
7822
7863
  const session = sessionManager.getSession(sessionId);
@@ -7961,7 +8002,7 @@ All file and git operations should use this branch.
7961
8002
  const state = sessionManager.getContextState(sessionId);
7962
8003
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
7963
8004
  });
7964
- const { QueueProcessor } = await import("./processor-YWNLWAZW.js");
8005
+ const { QueueProcessor } = await import("./processor-CBGV2K4E.js");
7965
8006
  const queueProcessor = new QueueProcessor({
7966
8007
  sessionManager,
7967
8008
  providerManager,
@@ -8045,4 +8086,4 @@ export {
8045
8086
  createServerHandle,
8046
8087
  createServer
8047
8088
  };
8048
- //# sourceMappingURL=chunk-6ZV3NYEE.js.map
8089
+ //# sourceMappingURL=chunk-XWW7LOU4.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-5ZJYEINJ.js";
4
4
  import {
5
5
  COMPACTION_PROMPT
6
- } from "./chunk-4Z2ARCY3.js";
6
+ } from "./chunk-J27BLIPY.js";
7
7
  import {
8
8
  getCurrentWindowMessageOptions
9
- } from "./chunk-WPCYFH6X.js";
9
+ } from "./chunk-DMI2BXHA.js";
10
10
 
11
11
  // src/server/context/compactor.ts
12
12
  function appendCompactionPrompt(sessionId, append) {
@@ -36,4 +36,4 @@ export {
36
36
  COMPACTION_MAX_RATIO,
37
37
  shouldCompact
38
38
  };
39
- //# sourceMappingURL=chunk-73EV6QYX.js.map
39
+ //# sourceMappingURL=chunk-YXIDKMBJ.js.map
package/dist/cli/dev.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-QGWS2EBU.js";
5
- import "../chunk-XY3LESVZ.js";
4
+ } from "../chunk-EFIC3TUX.js";
5
+ import "../chunk-4H427UBV.js";
6
6
  import {
7
7
  logger
8
8
  } from "../chunk-K44MW7JJ.js";
package/dist/cli/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-QGWS2EBU.js";
5
- import "../chunk-XY3LESVZ.js";
4
+ } from "../chunk-EFIC3TUX.js";
5
+ import "../chunk-4H427UBV.js";
6
6
  import {
7
7
  logger
8
8
  } from "../chunk-K44MW7JJ.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  createLLMClient
3
- } from "./chunk-BJDQPILB.js";
3
+ } from "./chunk-F766OIDT.js";
4
4
  import "./chunk-V4IE7HJY.js";
5
5
  import "./chunk-YHEQTVFV.js";
6
6
  import "./chunk-HNCM3D7Y.js";
7
7
  import "./chunk-KCED2X4H.js";
8
- import "./chunk-MR7ZEGOF.js";
9
- import "./chunk-YZSBJUGC.js";
8
+ import "./chunk-ERKPMNC7.js";
9
+ import "./chunk-SPA7PQPJ.js";
10
10
  import "./chunk-GLF65XDS.js";
11
11
  import "./chunk-K44MW7JJ.js";
12
12
  import "./chunk-5WRI5ZAA.js";
13
13
  export {
14
14
  createLLMClient
15
15
  };
16
- //# sourceMappingURL=client-Q7BHKOCD.js.map
16
+ //# sourceMappingURL=client-2EAJAGPC.js.map