openfox 2.0.95 → 2.0.97

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 (54) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/CHANGELOG.md +23 -0
  3. package/dist/{chat-handler-5FV3TGQD.js → chat-handler-XXXMTO7W.js} +16 -16
  4. package/dist/{chunk-SJJVNSA6.js → chunk-2VJIQEZE.js} +41 -5
  5. package/dist/{chunk-OHBY2673.js → chunk-3LRYZ7R3.js} +46 -3
  6. package/dist/{chunk-W7P5P54O.js → chunk-3W6STALV.js} +2 -2
  7. package/dist/chunk-62QCBNPE.js +15 -0
  8. package/dist/{chunk-OZD247P4.js → chunk-C3XL7X4E.js} +8 -8
  9. package/dist/{chunk-D6T3X22W.js → chunk-CCEG3AFM.js} +14 -14
  10. package/dist/{chunk-YPBV47DH.js → chunk-CSKPPHD3.js} +2 -2
  11. package/dist/{chunk-62X2MPO6.js → chunk-D3SXT3BL.js} +4 -4
  12. package/dist/chunk-DRMYR6BF.js +7 -0
  13. package/dist/{chunk-ZMSHE564.js → chunk-G5JFKTSR.js} +2 -2
  14. package/dist/{chunk-KG2PJVOE.js → chunk-GPGJBDI6.js} +187 -80
  15. package/dist/{chunk-YCPUV7AR.js → chunk-HJEATCSM.js} +7 -7
  16. package/dist/{chunk-7P7OKBYQ.js → chunk-KNYPBXPW.js} +4 -4
  17. package/dist/{chunk-MC3MCMAF.js → chunk-KQPDU65K.js} +2 -2
  18. package/dist/{chunk-MB7STVMR.js → chunk-LZW5LSVH.js} +5 -5
  19. package/dist/{chunk-P637C6X3.js → chunk-O2PLNJIU.js} +2 -2
  20. package/dist/{chunk-6RHMIMID.js → chunk-O5YWFX7H.js} +21 -25
  21. package/dist/{chunk-5UFTFBNW.js → chunk-T3INQCET.js} +6 -6
  22. package/dist/{chunk-OQTLFO4R.js → chunk-URQQOUCS.js} +46 -3
  23. package/dist/{chunk-5N5JXT7R.js → chunk-XLI6PDJG.js} +2 -2
  24. package/dist/{chunk-TSHJW7OC.js → chunk-ZIMGU5ZH.js} +2 -2
  25. package/dist/cli/dev.js +1 -1
  26. package/dist/cli/index.js +1 -1
  27. package/dist/{client-RENSCJPZ.js → client-IK47PLPP.js} +2 -2
  28. package/dist/{compactor-3RXIAIPR.js → compactor-U7EUKEUE.js} +6 -6
  29. package/dist/{config-XIYAPMX3.js → config-M7RDIFC5.js} +4 -2
  30. package/dist/{dynamic-context-CJFDFUJF.js → dynamic-context-TDB4G5CH.js} +4 -4
  31. package/dist/{events-QHZDLHEB.js → events-4THEZWVL.js} +5 -5
  32. package/dist/{folding-O4OYOTPS.js → folding-OYBO2NTH.js} +3 -3
  33. package/dist/openFolder-Z27FEM5M.js +8 -0
  34. package/dist/{orchestrator-LDVMBC23.js → orchestrator-MTCF2EPU.js} +13 -13
  35. package/dist/package.json +1 -1
  36. package/dist/{path-security-72KGHGSV.js → path-security-6GYETPWN.js} +6 -6
  37. package/dist/{processor-32QUVPV6.js → processor-F3EZWNPO.js} +13 -13
  38. package/dist/{provider-A74GHQUO.js → provider-5KFIZM5T.js} +5 -5
  39. package/dist/{provider-manager-PBOF77RQ.js → provider-manager-23O5QVDJ.js} +3 -3
  40. package/dist/{registry-XBEHPY7C.js → registry-QEOTM3IG.js} +2 -2
  41. package/dist/{serve-GL5WUPRP.js → serve-JACH7OQW.js} +21 -20
  42. package/dist/server/index.js +20 -19
  43. package/dist/{server-OYVGQU7O.js → server-KIRPYPP6.js} +16 -16
  44. package/dist/{session-overrides-QWD4V5KW.js → session-overrides-BQSE3V3F.js} +4 -4
  45. package/dist/{sessions-BT4PION7.js → sessions-AUDWMF55.js} +3 -3
  46. package/dist/{tools-UTA3TV7P.js → tools-I3BAXRVD.js} +11 -11
  47. package/dist/{update-VUTN743C.js → update-NZZWLDK7.js} +2 -2
  48. package/dist/web/assets/{index-BlV1FebL.css → index-BG5sD2ez.css} +1 -1
  49. package/dist/web/assets/{index-BUiw9fSe.js → index-C1sXLxiM.js} +80 -73
  50. package/dist/web/index.html +2 -2
  51. package/dist/web/sw.js +1 -1
  52. package/dist/{workspace-IIRKILYL.js → workspace-2NDXTCVR.js} +2 -2
  53. package/package.json +1 -1
  54. package/dist/chunk-VKU7YBLH.js +0 -7
@@ -37,7 +37,7 @@ Options:
37
37
  }
38
38
  async function runNetworkSetup(mode) {
39
39
  const { loadAuthConfig, saveAuthConfig, encryptPassword } = await import("./auth-YY5PJYSC.js");
40
- const { saveGlobalConfig } = await import("./config-XIYAPMX3.js");
40
+ const { saveGlobalConfig } = await import("./config-M7RDIFC5.js");
41
41
  const { getAuthKeyPath } = await import("./paths-F27V3S4I.js");
42
42
  const existingAuth = await loadAuthConfig(mode);
43
43
  if (existingAuth) {
@@ -104,7 +104,7 @@ async function runNetworkSetup(mode) {
104
104
  console.log("\u2713 Configuration saved!\n");
105
105
  }
106
106
  async function runConfig(mode) {
107
- const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-XIYAPMX3.js");
107
+ const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-M7RDIFC5.js");
108
108
  const { getGlobalConfigPath } = await import("./paths-F27V3S4I.js");
109
109
  const config = await loadGlobalConfig(mode);
110
110
  const configPath = getGlobalConfigPath(mode);
@@ -163,7 +163,7 @@ async function runCli(options) {
163
163
  break;
164
164
  }
165
165
  case "provider": {
166
- const { runProviderCommand } = await import("./provider-A74GHQUO.js");
166
+ const { runProviderCommand } = await import("./provider-5KFIZM5T.js");
167
167
  const [, subcommand] = positionals;
168
168
  await runProviderCommand(mode, subcommand);
169
169
  break;
@@ -200,7 +200,7 @@ async function runCli(options) {
200
200
  break;
201
201
  }
202
202
  case "update": {
203
- const { runUpdate } = await import("./update-VUTN743C.js");
203
+ const { runUpdate } = await import("./update-NZZWLDK7.js");
204
204
  const code = await runUpdate();
205
205
  if (code !== 0) {
206
206
  process.exit(code);
@@ -208,12 +208,12 @@ async function runCli(options) {
208
208
  break;
209
209
  }
210
210
  default: {
211
- const { configFileExists } = await import("./config-XIYAPMX3.js");
211
+ const { configFileExists } = await import("./config-M7RDIFC5.js");
212
212
  const configExists = await configFileExists(mode);
213
213
  if (!configExists) {
214
214
  await runNetworkSetup(mode);
215
215
  }
216
- const { runServe } = await import("./serve-GL5WUPRP.js");
216
+ const { runServe } = await import("./serve-JACH7OQW.js");
217
217
  const serveOptions = { mode };
218
218
  if (values.port) serveOptions.port = parseInt(values.port);
219
219
  if (values["no-browser"] === true) serveOptions.openBrowser = false;
@@ -225,4 +225,4 @@ async function runCli(options) {
225
225
  export {
226
226
  runCli
227
227
  };
228
- //# sourceMappingURL=chunk-YCPUV7AR.js.map
228
+ //# sourceMappingURL=chunk-HJEATCSM.js.map
@@ -5,13 +5,13 @@ import {
5
5
  foldContextState,
6
6
  foldSessionState,
7
7
  spreadOptionalMessageFields
8
- } from "./chunk-P637C6X3.js";
8
+ } from "./chunk-O2PLNJIU.js";
9
9
  import {
10
10
  updateSessionMessageCount
11
- } from "./chunk-TSHJW7OC.js";
11
+ } from "./chunk-ZIMGU5ZH.js";
12
12
  import {
13
13
  getRuntimeConfig
14
- } from "./chunk-OHBY2673.js";
14
+ } from "./chunk-3LRYZ7R3.js";
15
15
  import {
16
16
  logger
17
17
  } from "./chunk-K44MW7JJ.js";
@@ -1175,4 +1175,4 @@ export {
1175
1175
  truncateSessionMessages,
1176
1176
  getRecentUserPromptsForSession
1177
1177
  };
1178
- //# sourceMappingURL=chunk-7P7OKBYQ.js.map
1178
+ //# sourceMappingURL=chunk-KNYPBXPW.js.map
@@ -5,7 +5,7 @@ import {
5
5
  deleteItemFromDir,
6
6
  loadItemsFromDir,
7
7
  pathExists
8
- } from "./chunk-OHBY2673.js";
8
+ } from "./chunk-3LRYZ7R3.js";
9
9
  import {
10
10
  SETTINGS_KEYS,
11
11
  deleteSetting,
@@ -440,4 +440,4 @@ export {
440
440
  deleteSkill,
441
441
  deleteProjectSkill
442
442
  };
443
- //# sourceMappingURL=chunk-MC3MCMAF.js.map
443
+ //# sourceMappingURL=chunk-KQPDU65K.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getAllInstructions,
3
3
  getEnabledSkillMetadata
4
- } from "./chunk-MC3MCMAF.js";
4
+ } from "./chunk-KQPDU65K.js";
5
5
  import {
6
6
  buildTopLevelSystemPrompt
7
7
  } from "./chunk-MRWR3SIT.js";
@@ -11,7 +11,7 @@ import {
11
11
  getSubAgents,
12
12
  loadAllAgentsDefault,
13
13
  resolveDefaultAgentId
14
- } from "./chunk-OHBY2673.js";
14
+ } from "./chunk-3LRYZ7R3.js";
15
15
  import {
16
16
  logger
17
17
  } from "./chunk-K44MW7JJ.js";
@@ -104,7 +104,7 @@ function resolveAgentDef(sessionManager, sessionId) {
104
104
  }
105
105
  async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
106
106
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
107
- const { getToolRegistryForAgent } = await import("./tools-UTA3TV7P.js");
107
+ const { getToolRegistryForAgent } = await import("./tools-I3BAXRVD.js");
108
108
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
109
109
  const toolFingerprint = getToolFingerprint(tools);
110
110
  const allAgents = await loadAllAgentsDefault();
@@ -117,7 +117,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
117
117
  async function computeSessionHash(sessionManager, sessionId) {
118
118
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
119
119
  const agentDef = await resolveAgentDef(sessionManager, sessionId);
120
- const { getToolRegistryForAgent } = await import("./tools-UTA3TV7P.js");
120
+ const { getToolRegistryForAgent } = await import("./tools-I3BAXRVD.js");
121
121
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
122
122
  const toolFingerprint = getToolFingerprint(tools);
123
123
  return computeDynamicContextHash(instructionContent, skills, toolFingerprint);
@@ -141,4 +141,4 @@ export {
141
141
  computeSessionHash,
142
142
  applyDynamicContext
143
143
  };
144
- //# sourceMappingURL=chunk-MB7STVMR.js.map
144
+ //# sourceMappingURL=chunk-LZW5LSVH.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveDefaultAgentId
3
- } from "./chunk-OHBY2673.js";
3
+ } from "./chunk-3LRYZ7R3.js";
4
4
 
5
5
  // src/server/events/apply-events.ts
6
6
  function markComplete(msg, reason) {
@@ -929,4 +929,4 @@ export {
929
929
  buildSnapshot,
930
930
  buildSnapshotFromSessionState
931
931
  };
932
- //# sourceMappingURL=chunk-P637C6X3.js.map
932
+ //# sourceMappingURL=chunk-O2PLNJIU.js.map
@@ -27,24 +27,24 @@ import {
27
27
  getGitBranch,
28
28
  isGitRepository,
29
29
  listWorkspaces
30
- } from "./chunk-62X2MPO6.js";
30
+ } from "./chunk-D3SXT3BL.js";
31
31
  import {
32
32
  findSkillById,
33
33
  getAllInstructions,
34
34
  getEnabledSkillMetadata,
35
35
  isSkillEnabled,
36
36
  loadAllSkills
37
- } from "./chunk-MC3MCMAF.js";
37
+ } from "./chunk-KQPDU65K.js";
38
38
  import {
39
39
  getSessionDisabledServers
40
- } from "./chunk-5N5JXT7R.js";
40
+ } from "./chunk-XLI6PDJG.js";
41
41
  import {
42
42
  PathAccessDeniedError,
43
43
  extractAbsolutePathsFromCommand,
44
44
  extractSensitivePathsFromCommand,
45
45
  registerPathConfirmation,
46
46
  requestPathAccess
47
- } from "./chunk-ZMSHE564.js";
47
+ } from "./chunk-G5JFKTSR.js";
48
48
  import {
49
49
  createChatDoneMessage,
50
50
  createChatMessageMessage,
@@ -75,7 +75,7 @@ import {
75
75
  getCurrentContextWindowId,
76
76
  getCurrentWindowMessageOptions,
77
77
  getEventStore
78
- } from "./chunk-7P7OKBYQ.js";
78
+ } from "./chunk-KNYPBXPW.js";
79
79
  import {
80
80
  buildContextMessagesFromEventHistory,
81
81
  foldContextState,
@@ -85,13 +85,13 @@ import {
85
85
  handleToolResult,
86
86
  reorderToolMessages,
87
87
  stripOrphanedToolCalls
88
- } from "./chunk-P637C6X3.js";
88
+ } from "./chunk-O2PLNJIU.js";
89
89
  import {
90
90
  findAgentById,
91
91
  getRuntimeConfig,
92
92
  getSubAgents,
93
93
  loadAllAgentsDefault
94
- } from "./chunk-OHBY2673.js";
94
+ } from "./chunk-3LRYZ7R3.js";
95
95
  import {
96
96
  modelSupportsVision
97
97
  } from "./chunk-V4IE7HJY.js";
@@ -116,7 +116,7 @@ import {
116
116
  import {
117
117
  loadGlobalConfig,
118
118
  saveGlobalConfig
119
- } from "./chunk-OQTLFO4R.js";
119
+ } from "./chunk-URQQOUCS.js";
120
120
  import {
121
121
  getGlobalConfigDir
122
122
  } from "./chunk-CQGTEGKL.js";
@@ -1913,7 +1913,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
1913
1913
  sessionManager.setCurrentContextSize(sessionId, result.usage.promptTokens, config.subAgentMetadata?.subAgentId);
1914
1914
  if (!compacting) {
1915
1915
  const contextState2 = sessionManager.getContextState(sessionId);
1916
- const { shouldCompact, appendCompactionPrompt } = await import("./compactor-3RXIAIPR.js");
1916
+ const { shouldCompact, appendCompactionPrompt } = await import("./compactor-U7EUKEUE.js");
1917
1917
  if (shouldCompact(
1918
1918
  contextState2.currentTokens,
1919
1919
  contextState2.maxTokens,
@@ -2235,11 +2235,15 @@ async function describeImage(base64Data, visionModel, options) {
2235
2235
  const timeoutController = new AbortController();
2236
2236
  const timeoutId = setTimeout(() => timeoutController.abort(), timeout);
2237
2237
  const signal = options?.signal ? AbortSignal.any([timeoutController.signal, options.signal]) : timeoutController.signal;
2238
+ const headers = {
2239
+ "Content-Type": "application/json"
2240
+ };
2241
+ if (isOpenAI && visionModel.apiKey) {
2242
+ headers["Authorization"] = `Bearer ${visionModel.apiKey}`;
2243
+ }
2238
2244
  const response = await fetch(url, {
2239
2245
  method: "POST",
2240
- headers: {
2241
- "Content-Type": "application/json"
2242
- },
2246
+ headers,
2243
2247
  body: JSON.stringify(requestBody),
2244
2248
  signal
2245
2249
  });
@@ -2276,19 +2280,11 @@ async function describeImageFromDataUrl(dataUrl, visionModel, options) {
2276
2280
  // src/server/context/image-processor.ts
2277
2281
  async function loadVisionModelFromGlobalConfig() {
2278
2282
  try {
2279
- const { loadGlobalConfig: loadGlobalConfig2, getVisionFallback } = await import("./config-XIYAPMX3.js");
2283
+ const { loadGlobalConfig: loadGlobalConfig2, resolveVisionFallback } = await import("./config-M7RDIFC5.js");
2280
2284
  const runtimeConfig = getRuntimeConfig();
2281
2285
  const mode = runtimeConfig.mode ?? "production";
2282
2286
  const globalConfig = await loadGlobalConfig2(mode);
2283
- const fallback = getVisionFallback(globalConfig);
2284
- if (fallback?.enabled && fallback.model) {
2285
- return {
2286
- baseUrl: fallback.url,
2287
- model: fallback.model,
2288
- timeout: fallback.timeout * 1e3,
2289
- backend: fallback.backend ?? "ollama"
2290
- };
2291
- }
2287
+ return resolveVisionFallback(globalConfig);
2292
2288
  } catch {
2293
2289
  }
2294
2290
  return void 0;
@@ -2852,7 +2848,7 @@ var callSubAgentTool = {
2852
2848
  };
2853
2849
  }
2854
2850
  try {
2855
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-UTA3TV7P.js");
2851
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-I3BAXRVD.js");
2856
2852
  const toolRegistry = getToolRegistryForAgent2(agentDef);
2857
2853
  const turnMetrics = new TurnMetrics();
2858
2854
  const result = await executeSubAgent({
@@ -3873,7 +3869,7 @@ var mcpConfigTool = createTool(
3873
3869
  mcpNotifyChanged?.(sessionId);
3874
3870
  }
3875
3871
  async function rebuildTools() {
3876
- const { setMcpTools: setMcpTools2 } = await import("./tools-UTA3TV7P.js");
3872
+ const { setMcpTools: setMcpTools2 } = await import("./tools-I3BAXRVD.js");
3877
3873
  const mcpTools = createMcpTools(mcpManagerForTools);
3878
3874
  setMcpTools2(mcpTools);
3879
3875
  }
@@ -4519,4 +4515,4 @@ export {
4519
4515
  getToolRegistryForAgent,
4520
4516
  createToolRegistry
4521
4517
  };
4522
- //# sourceMappingURL=chunk-6RHMIMID.js.map
4518
+ //# sourceMappingURL=chunk-O5YWFX7H.js.map
@@ -8,17 +8,17 @@ import {
8
8
  import {
9
9
  combineEventsWithSnapshot,
10
10
  getEventStore
11
- } from "./chunk-7P7OKBYQ.js";
11
+ } from "./chunk-KNYPBXPW.js";
12
12
  import {
13
13
  buildMessagesFromStoredEvents,
14
14
  foldPendingConfirmations
15
- } from "./chunk-P637C6X3.js";
15
+ } from "./chunk-O2PLNJIU.js";
16
16
  import {
17
17
  updateSessionMetadata
18
- } from "./chunk-TSHJW7OC.js";
18
+ } from "./chunk-ZIMGU5ZH.js";
19
19
  import {
20
20
  getRuntimeConfig
21
- } from "./chunk-OHBY2673.js";
21
+ } from "./chunk-3LRYZ7R3.js";
22
22
  import {
23
23
  getMaxVisibleItems
24
24
  } from "./chunk-UEOEA6BB.js";
@@ -153,7 +153,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
153
153
  client = deps.getLLMClient();
154
154
  client.setModel(providerConfig.model);
155
155
  } else if (providerConfig) {
156
- const { createLLMClient } = await import("./client-RENSCJPZ.js");
156
+ const { createLLMClient } = await import("./client-IK47PLPP.js");
157
157
  client = createLLMClient({
158
158
  llm: {
159
159
  baseUrl: providerConfig.baseUrl,
@@ -204,4 +204,4 @@ export {
204
204
  needsNameGeneration,
205
205
  generateSessionNameForSession
206
206
  };
207
- //# sourceMappingURL=chunk-5UFTFBNW.js.map
207
+ //# sourceMappingURL=chunk-T3INQCET.js.map
@@ -89,7 +89,8 @@ var visionFallbackSchema = z.object({
89
89
  url: z.string().default("http://localhost:11434"),
90
90
  model: z.string().default("qwen3.5:0.8b"),
91
91
  timeout: z.number().default(120),
92
- backend: z.enum(["ollama", "openai"]).default("ollama")
92
+ backend: z.enum(["ollama", "openai"]).default("ollama"),
93
+ providerModelRef: z.string().optional()
93
94
  });
94
95
  var cachedToolSchema = z.object({
95
96
  name: z.string(),
@@ -163,7 +164,48 @@ async function loadGlobalConfig(mode, configPathOverride) {
163
164
  }
164
165
  }
165
166
  function getDefaultVisionFallback() {
166
- return { enabled: false, url: "http://localhost:11434", model: "qwen3.5:0.8b", timeout: 120 };
167
+ return {
168
+ enabled: false,
169
+ url: "http://localhost:11434",
170
+ model: "qwen3.5:0.8b",
171
+ timeout: 120,
172
+ backend: "ollama"
173
+ };
174
+ }
175
+ function resolveVisionFallback(config) {
176
+ const fallback = config.visionFallback;
177
+ if (!fallback?.enabled) return void 0;
178
+ if (fallback.providerModelRef) {
179
+ const slashIndex = fallback.providerModelRef.indexOf("/");
180
+ if (slashIndex !== -1) {
181
+ const providerId = fallback.providerModelRef.substring(0, slashIndex);
182
+ const modelId = fallback.providerModelRef.substring(slashIndex + 1);
183
+ const provider = config.providers?.find((p) => p.id === providerId);
184
+ if (provider) {
185
+ const exactModel = provider.models?.find((m) => m.id === modelId);
186
+ const model = exactModel?.supportsVision ? exactModel : provider.models?.find((m) => m.supportsVision);
187
+ if (model?.supportsVision) {
188
+ const backend = provider.backend === "ollama" ? "ollama" : "openai";
189
+ return {
190
+ baseUrl: provider.url || fallback.url || "http://localhost:11434",
191
+ model: model.id,
192
+ timeout: (fallback.timeout ?? 120) * 1e3,
193
+ backend,
194
+ ...provider.apiKey ? { apiKey: provider.apiKey } : {}
195
+ };
196
+ }
197
+ }
198
+ }
199
+ }
200
+ if (fallback.url && fallback.model) {
201
+ return {
202
+ baseUrl: fallback.url,
203
+ model: fallback.model,
204
+ timeout: (fallback.timeout ?? 120) * 1e3,
205
+ backend: fallback.backend ?? "ollama"
206
+ };
207
+ }
208
+ return void 0;
167
209
  }
168
210
  async function saveGlobalConfig(mode, config, configPathOverride) {
169
211
  const configPath = configPathOverride ?? getGlobalConfigPath(mode);
@@ -314,6 +356,7 @@ export {
314
356
  getVisionFallback,
315
357
  loadGlobalConfig,
316
358
  getDefaultVisionFallback,
359
+ resolveVisionFallback,
317
360
  saveGlobalConfig,
318
361
  getActiveProvider,
319
362
  getDefaultModel,
@@ -323,4 +366,4 @@ export {
323
366
  removeProvider,
324
367
  activateProvider
325
368
  };
326
- //# sourceMappingURL=chunk-OQTLFO4R.js.map
369
+ //# sourceMappingURL=chunk-URQQOUCS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  updateSessionMcpDisabledServers
3
- } from "./chunk-TSHJW7OC.js";
3
+ } from "./chunk-ZIMGU5ZH.js";
4
4
  import {
5
5
  getDatabase
6
6
  } from "./chunk-GLF65XDS.js";
@@ -62,4 +62,4 @@ export {
62
62
  clearSessionOverrides,
63
63
  getAllSessionOverrides
64
64
  };
65
- //# sourceMappingURL=chunk-5N5JXT7R.js.map
65
+ //# sourceMappingURL=chunk-XLI6PDJG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveDefaultAgentId
3
- } from "./chunk-OHBY2673.js";
3
+ } from "./chunk-3LRYZ7R3.js";
4
4
  import {
5
5
  getDatabase
6
6
  } from "./chunk-GLF65XDS.js";
@@ -367,4 +367,4 @@ export {
367
367
  getActiveWorkflowExecution,
368
368
  clearWorkflowExecution
369
369
  };
370
- //# sourceMappingURL=chunk-TSHJW7OC.js.map
370
+ //# sourceMappingURL=chunk-ZIMGU5ZH.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-YCPUV7AR.js";
4
+ } from "../chunk-HJEATCSM.js";
5
5
  import "../chunk-XY3LESVZ.js";
6
6
  import {
7
7
  logger
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCli
4
- } from "../chunk-YCPUV7AR.js";
4
+ } from "../chunk-HJEATCSM.js";
5
5
  import "../chunk-XY3LESVZ.js";
6
6
  import {
7
7
  logger
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createLLMClient
3
- } from "./chunk-SJJVNSA6.js";
3
+ } from "./chunk-2VJIQEZE.js";
4
4
  import "./chunk-V4IE7HJY.js";
5
5
  import "./chunk-YHEQTVFV.js";
6
6
  import "./chunk-HNCM3D7Y.js";
@@ -13,4 +13,4 @@ import "./chunk-5WRI5ZAA.js";
13
13
  export {
14
14
  createLLMClient
15
15
  };
16
- //# sourceMappingURL=client-RENSCJPZ.js.map
16
+ //# sourceMappingURL=client-IK47PLPP.js.map
@@ -3,14 +3,14 @@ import {
3
3
  COMPACTION_MAX_RATIO,
4
4
  appendCompactionPrompt,
5
5
  shouldCompact
6
- } from "./chunk-W7P5P54O.js";
6
+ } from "./chunk-3W6STALV.js";
7
7
  import "./chunk-K2O7JTCX.js";
8
8
  import "./chunk-MRWR3SIT.js";
9
- import "./chunk-7P7OKBYQ.js";
9
+ import "./chunk-KNYPBXPW.js";
10
10
  import "./chunk-NLN5LPQ4.js";
11
- import "./chunk-P637C6X3.js";
12
- import "./chunk-TSHJW7OC.js";
13
- import "./chunk-OHBY2673.js";
11
+ import "./chunk-O2PLNJIU.js";
12
+ import "./chunk-ZIMGU5ZH.js";
13
+ import "./chunk-3LRYZ7R3.js";
14
14
  import "./chunk-J2GP3J3X.js";
15
15
  import "./chunk-V4IE7HJY.js";
16
16
  import "./chunk-YHEQTVFV.js";
@@ -26,4 +26,4 @@ export {
26
26
  appendCompactionPrompt,
27
27
  shouldCompact
28
28
  };
29
- //# sourceMappingURL=compactor-3RXIAIPR.js.map
29
+ //# sourceMappingURL=compactor-U7EUKEUE.js.map
@@ -8,10 +8,11 @@ import {
8
8
  getVisionFallback,
9
9
  loadGlobalConfig,
10
10
  removeProvider,
11
+ resolveVisionFallback,
11
12
  saveGlobalConfig,
12
13
  setDefaultModelSelection,
13
14
  updateProvider
14
- } from "./chunk-OQTLFO4R.js";
15
+ } from "./chunk-URQQOUCS.js";
15
16
  import "./chunk-CQGTEGKL.js";
16
17
  import "./chunk-5WRI5ZAA.js";
17
18
  export {
@@ -24,8 +25,9 @@ export {
24
25
  getVisionFallback,
25
26
  loadGlobalConfig,
26
27
  removeProvider,
28
+ resolveVisionFallback,
27
29
  saveGlobalConfig,
28
30
  setDefaultModelSelection,
29
31
  updateProvider
30
32
  };
31
- //# sourceMappingURL=config-XIYAPMX3.js.map
33
+ //# sourceMappingURL=config-M7RDIFC5.js.map
@@ -5,12 +5,12 @@ import {
5
5
  computeSessionHash,
6
6
  computeUnifiedDiff,
7
7
  getToolFingerprint
8
- } from "./chunk-MB7STVMR.js";
9
- import "./chunk-MC3MCMAF.js";
8
+ } from "./chunk-LZW5LSVH.js";
9
+ import "./chunk-KQPDU65K.js";
10
10
  import "./chunk-WWFH5GAR.js";
11
11
  import "./chunk-MRWR3SIT.js";
12
12
  import "./chunk-NLN5LPQ4.js";
13
- import "./chunk-OHBY2673.js";
13
+ import "./chunk-3LRYZ7R3.js";
14
14
  import "./chunk-UEOEA6BB.js";
15
15
  import "./chunk-GLF65XDS.js";
16
16
  import "./chunk-K44MW7JJ.js";
@@ -24,4 +24,4 @@ export {
24
24
  computeUnifiedDiff,
25
25
  getToolFingerprint
26
26
  };
27
- //# sourceMappingURL=dynamic-context-CJFDFUJF.js.map
27
+ //# sourceMappingURL=dynamic-context-TDB4G5CH.js.map
@@ -40,7 +40,7 @@ import {
40
40
  isStoredEvent,
41
41
  isTurnEvent,
42
42
  truncateSessionMessages
43
- } from "./chunk-7P7OKBYQ.js";
43
+ } from "./chunk-KNYPBXPW.js";
44
44
  import {
45
45
  buildContextMessagesFromEventHistory,
46
46
  buildContextMessagesFromMessages,
@@ -57,9 +57,9 @@ import {
57
57
  foldTodos,
58
58
  foldTurnEventsToSnapshotMessages,
59
59
  getMessagesForWindow
60
- } from "./chunk-P637C6X3.js";
61
- import "./chunk-TSHJW7OC.js";
62
- import "./chunk-OHBY2673.js";
60
+ } from "./chunk-O2PLNJIU.js";
61
+ import "./chunk-ZIMGU5ZH.js";
62
+ import "./chunk-3LRYZ7R3.js";
63
63
  import "./chunk-UEOEA6BB.js";
64
64
  import "./chunk-GLF65XDS.js";
65
65
  import "./chunk-K44MW7JJ.js";
@@ -123,4 +123,4 @@ export {
123
123
  isTurnEvent,
124
124
  truncateSessionMessages
125
125
  };
126
- //# sourceMappingURL=events-QHZDLHEB.js.map
126
+ //# sourceMappingURL=events-4THEZWVL.js.map
@@ -25,8 +25,8 @@ import {
25
25
  reorderToolMessages,
26
26
  spreadOptionalMessageFields,
27
27
  stripOrphanedToolCalls
28
- } from "./chunk-P637C6X3.js";
29
- import "./chunk-OHBY2673.js";
28
+ } from "./chunk-O2PLNJIU.js";
29
+ import "./chunk-3LRYZ7R3.js";
30
30
  import "./chunk-UEOEA6BB.js";
31
31
  import "./chunk-GLF65XDS.js";
32
32
  import "./chunk-K44MW7JJ.js";
@@ -60,4 +60,4 @@ export {
60
60
  spreadOptionalMessageFields,
61
61
  stripOrphanedToolCalls
62
62
  };
63
- //# sourceMappingURL=folding-O4OYOTPS.js.map
63
+ //# sourceMappingURL=folding-OYBO2NTH.js.map
@@ -0,0 +1,8 @@
1
+ import {
2
+ openFolder
3
+ } from "./chunk-62QCBNPE.js";
4
+ import "./chunk-5WRI5ZAA.js";
5
+ export {
6
+ openFolder
7
+ };
8
+ //# sourceMappingURL=openFolder-Z27FEM5M.js.map
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  runAgentTurn,
3
3
  runChatTurn
4
- } from "./chunk-OZD247P4.js";
5
- import "./chunk-6RHMIMID.js";
4
+ } from "./chunk-C3XL7X4E.js";
5
+ import "./chunk-O5YWFX7H.js";
6
6
  import "./chunk-ZASSAZ73.js";
7
7
  import "./chunk-HAFRPV7I.js";
8
8
  import "./chunk-I72ACQ6R.js";
9
9
  import "./chunk-NWO6GRYE.js";
10
10
  import "./chunk-VKWVPQJ5.js";
11
- import "./chunk-62X2MPO6.js";
11
+ import "./chunk-D3SXT3BL.js";
12
12
  import "./chunk-J7GAZGZT.js";
13
- import "./chunk-MB7STVMR.js";
14
- import "./chunk-MC3MCMAF.js";
15
- import "./chunk-5N5JXT7R.js";
16
- import "./chunk-ZMSHE564.js";
13
+ import "./chunk-LZW5LSVH.js";
14
+ import "./chunk-KQPDU65K.js";
15
+ import "./chunk-XLI6PDJG.js";
16
+ import "./chunk-G5JFKTSR.js";
17
17
  import "./chunk-27SDWNKL.js";
18
18
  import "./chunk-EU3WWTFH.js";
19
19
  import "./chunk-WWFH5GAR.js";
@@ -26,11 +26,11 @@ import {
26
26
  createToolResultEvent
27
27
  } from "./chunk-K2O7JTCX.js";
28
28
  import "./chunk-MRWR3SIT.js";
29
- import "./chunk-7P7OKBYQ.js";
29
+ import "./chunk-KNYPBXPW.js";
30
30
  import "./chunk-NLN5LPQ4.js";
31
- import "./chunk-P637C6X3.js";
32
- import "./chunk-TSHJW7OC.js";
33
- import "./chunk-OHBY2673.js";
31
+ import "./chunk-O2PLNJIU.js";
32
+ import "./chunk-ZIMGU5ZH.js";
33
+ import "./chunk-3LRYZ7R3.js";
34
34
  import "./chunk-J2GP3J3X.js";
35
35
  import "./chunk-V4IE7HJY.js";
36
36
  import "./chunk-YHEQTVFV.js";
@@ -39,7 +39,7 @@ import "./chunk-UEOEA6BB.js";
39
39
  import "./chunk-GLF65XDS.js";
40
40
  import "./chunk-K44MW7JJ.js";
41
41
  import "./chunk-4R7G5JB6.js";
42
- import "./chunk-OQTLFO4R.js";
42
+ import "./chunk-URQQOUCS.js";
43
43
  import "./chunk-CQGTEGKL.js";
44
44
  import "./chunk-5WRI5ZAA.js";
45
45
  export {
@@ -52,4 +52,4 @@ export {
52
52
  runAgentTurn,
53
53
  runChatTurn
54
54
  };
55
- //# sourceMappingURL=orchestrator-LDVMBC23.js.map
55
+ //# sourceMappingURL=orchestrator-MTCF2EPU.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.95",
3
+ "version": "2.0.97",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {