openfox 1.6.21 → 1.6.25

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 (29) hide show
  1. package/README.md +46 -13
  2. package/dist/{auto-compaction-U75EINMB.js → auto-compaction-7LK3QGPI.js} +4 -3
  3. package/dist/{chat-handler-JEMPI5UF.js → chat-handler-ZU74RXED.js} +6 -5
  4. package/dist/{chunk-HWOYZ245.js → chunk-2V7VPPBP.js} +6 -6
  5. package/dist/{chunk-HZP2V5Z6.js → chunk-4O3C2JMB.js} +5 -9
  6. package/dist/{chunk-SJVEX2NR.js → chunk-7LPL774T.js} +19 -19
  7. package/dist/{chunk-AU33PQAB.js → chunk-BOEXJCOD.js} +2 -2
  8. package/dist/{chunk-6NPMZFMP.js → chunk-CJNQGEYG.js} +2 -2
  9. package/dist/{chunk-XYD5JXRM.js → chunk-D4ZLSV6P.js} +292 -1
  10. package/dist/{chunk-FX4SUY2S.js → chunk-KSASIV4B.js} +10 -287
  11. package/dist/{chunk-XRGMFOVG.js → chunk-P6GUT2QQ.js} +3 -3
  12. package/dist/{chunk-WINI5HX7.js → chunk-PYBB34ZK.js} +3 -3
  13. package/dist/cli/dev.js +1 -1
  14. package/dist/cli/index.js +1 -1
  15. package/dist/{config-SWDAJMQ3.js → config-ACVEHBKG.js} +5 -5
  16. package/dist/{orchestrator-T2IPRZ7B.js → orchestrator-OE7WFEW6.js} +5 -4
  17. package/dist/package.json +3 -3
  18. package/dist/{processor-VKFEOK46.js → processor-GAOK7TPI.js} +2 -2
  19. package/dist/{provider-CDM4LQAC.js → provider-RLQMVV2Z.js} +7 -7
  20. package/dist/{serve-X3PKC27B.js → serve-3L3HLUVT.js} +9 -9
  21. package/dist/server/index.js +7 -7
  22. package/dist/{tools-4ODVFMW7.js → tools-CSV7G554.js} +4 -3
  23. package/dist/{vision-fallback-VXGCQKLA.js → vision-fallback-QJ26DCEF.js} +2 -2
  24. package/dist/web/assets/index-VCGZnpy0.js +153 -0
  25. package/dist/web/assets/{index-B9-lT3Kc.css → index-y9uYQYP-.css} +1 -1
  26. package/dist/web/index.html +2 -2
  27. package/dist/web/sw.js +1 -1
  28. package/package.json +3 -3
  29. package/dist/web/assets/index-DHP3d5Cl.js +0 -151
package/README.md CHANGED
@@ -4,10 +4,20 @@
4
4
 
5
5
  Autonomous coding agent for local LLMs with contract-driven execution.
6
6
 
7
+ *Session — Criteria tracking, tool calls, and streaming responses*
8
+ ![Session](docs/screenshots/session.png)
9
+
10
+ *Providers — Local LLM backend configuration*
11
+ ![Providers](docs/screenshots/providers.png)
12
+
13
+ *Workflows — Contract-driven execution pipeline*
14
+ ![Workflows](docs/screenshots/workflows.png)
15
+
7
16
  ## Quick Start
8
17
 
9
18
  ```bash
10
- npx openfox
19
+ npm i -g openfox
20
+ openfox
11
21
  ```
12
22
 
13
23
  On first run, OpenFox automatically detects your local LLM backend (vLLM, sglang, ollama, llamacpp) and configures itself.
@@ -16,25 +26,22 @@ On first run, OpenFox automatically detects your local LLM backend (vLLM, sglang
16
26
 
17
27
  ```bash
18
28
  # Start server for current project
19
- npx openfox
29
+ openfox
20
30
 
21
31
  # Start on custom port
22
- npx openfox --port 8080
32
+ openfox --port 8080
23
33
 
24
34
  # Start without opening browser
25
- npx openfox --no-browser
26
-
27
- # Interactive configuration setup
28
- npx openfox init
35
+ openfox --no-browser
29
36
 
30
37
  # Show current configuration
31
- npx openfox config
38
+ openfox config
32
39
 
33
40
  # Manage LLM providers
34
- npx openfox provider add # Add new provider
35
- npx openfox provider list # List configured providers
36
- npx openfox provider use # Switch active provider
37
- npx openfox provider remove # Remove provider
41
+ openfox provider add # Add new provider
42
+ openfox provider list # List configured providers
43
+ openfox provider use # Switch active provider
44
+ openfox provider remove # Remove provider
38
45
  ```
39
46
 
40
47
  ## CLI Options
@@ -63,6 +70,32 @@ npx openfox provider remove # Remove provider
63
70
  - **LSP Integration**: Immediate feedback on code validity
64
71
  - **Real-Time Metrics**: Prefill time, generation speed, context usage
65
72
 
73
+ ## Screenshots
74
+
75
+ *Homepage — Project overview and session history*
76
+ ![Homepage](docs/screenshots/homepage.png)
77
+
78
+ *Project Selected — Active session with context stats*
79
+ ![Project Selected](docs/screenshots/project-selected.png)
80
+
81
+ *Stats — Prefill time, generation speed, token usage*
82
+ ![Stats](docs/screenshots/stats.png)
83
+
84
+ *Terminal — Integrated terminal for running commands*
85
+ ![Terminal](docs/screenshots/terminal.png)
86
+
87
+ *Notifications — Event log and system messages*
88
+ ![Notifications](docs/screenshots/notifications.png)
89
+
90
+ *Agents — Sub-agent management and execution*
91
+ ![Agents](docs/screenshots/agents.png)
92
+
93
+ *General Instructions — Global custom instructions*
94
+ ![General Instructions](docs/screenshots/general-instructions.png)
95
+
96
+ *Vision Fallback — Image processing configuration*
97
+ ![Vision Fallback](docs/screenshots/vision-fallback.png)
98
+
66
99
  ## License
67
100
 
68
- MIT
101
+ MIT
@@ -2,10 +2,10 @@ import {
2
2
  maybeAutoCompactContext,
3
3
  performManualContextCompaction,
4
4
  resolveCompactionStatsIdentity
5
- } from "./chunk-HZP2V5Z6.js";
5
+ } from "./chunk-4O3C2JMB.js";
6
6
  import "./chunk-NBU6KIOD.js";
7
7
  import "./chunk-574HZVLE.js";
8
- import "./chunk-XYD5JXRM.js";
8
+ import "./chunk-D4ZLSV6P.js";
9
9
  import "./chunk-PMDJEJYY.js";
10
10
  import "./chunk-EEPU4INU.js";
11
11
  import "./chunk-DZHZ3UUR.js";
@@ -16,10 +16,11 @@ import "./chunk-3EHGGBWE.js";
16
16
  import "./chunk-Y6HBEACI.js";
17
17
  import "./chunk-R4HADRYO.js";
18
18
  import "./chunk-TVQOONDR.js";
19
+ import "./chunk-CJNQGEYG.js";
19
20
  import "./chunk-PNBH3RAX.js";
20
21
  export {
21
22
  maybeAutoCompactContext,
22
23
  performManualContextCompaction,
23
24
  resolveCompactionStatsIdentity
24
25
  };
25
- //# sourceMappingURL=auto-compaction-U75EINMB.js.map
26
+ //# sourceMappingURL=auto-compaction-7LK3QGPI.js.map
@@ -10,11 +10,11 @@ import {
10
10
  } from "./chunk-AV45GQ7B.js";
11
11
  import {
12
12
  runChatTurn
13
- } from "./chunk-AU33PQAB.js";
14
- import "./chunk-HZP2V5Z6.js";
13
+ } from "./chunk-BOEXJCOD.js";
14
+ import "./chunk-4O3C2JMB.js";
15
15
  import "./chunk-NBU6KIOD.js";
16
16
  import "./chunk-574HZVLE.js";
17
- import "./chunk-XYD5JXRM.js";
17
+ import "./chunk-D4ZLSV6P.js";
18
18
  import {
19
19
  getEventStore
20
20
  } from "./chunk-PMDJEJYY.js";
@@ -31,6 +31,7 @@ import "./chunk-3EHGGBWE.js";
31
31
  import "./chunk-Y6HBEACI.js";
32
32
  import "./chunk-R4HADRYO.js";
33
33
  import "./chunk-TVQOONDR.js";
34
+ import "./chunk-CJNQGEYG.js";
34
35
  import {
35
36
  logger
36
37
  } from "./chunk-PNBH3RAX.js";
@@ -61,7 +62,7 @@ async function startChatSession(sessionId, content, deps, options) {
61
62
  sessionManager.setRunning(sessionId, true);
62
63
  broadcastForSession(sessionId, createSessionRunningMessage(true));
63
64
  try {
64
- const { maybeAutoCompactContext } = await import("./auto-compaction-U75EINMB.js");
65
+ const { maybeAutoCompactContext } = await import("./auto-compaction-7LK3QGPI.js");
65
66
  await maybeAutoCompactContext({
66
67
  sessionManager,
67
68
  sessionId,
@@ -170,4 +171,4 @@ export {
170
171
  startChatSession,
171
172
  stopSessionExecution
172
173
  };
173
- //# sourceMappingURL=chat-handler-JEMPI5UF.js.map
174
+ //# sourceMappingURL=chat-handler-ZU74RXED.js.map
@@ -27,7 +27,7 @@ Options:
27
27
  }
28
28
  async function runNetworkSetup(mode) {
29
29
  const { loadAuthConfig, saveAuthConfig, encryptPassword } = await import("./auth-JF2HDJ6P.js");
30
- const { saveGlobalConfig } = await import("./config-SWDAJMQ3.js");
30
+ const { saveGlobalConfig } = await import("./config-ACVEHBKG.js");
31
31
  const { getAuthKeyPath } = await import("./paths-ZRI56O63.js");
32
32
  const existingAuth = await loadAuthConfig(mode);
33
33
  if (existingAuth) {
@@ -88,7 +88,7 @@ async function runNetworkSetup(mode) {
88
88
  console.log("\u2713 Configuration saved!\n");
89
89
  }
90
90
  async function runConfig(mode) {
91
- const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-SWDAJMQ3.js");
91
+ const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-ACVEHBKG.js");
92
92
  const { getGlobalConfigPath } = await import("./paths-ZRI56O63.js");
93
93
  const config = await loadGlobalConfig(mode);
94
94
  const configPath = getGlobalConfigPath(mode);
@@ -143,18 +143,18 @@ async function runCli(options) {
143
143
  break;
144
144
  }
145
145
  case "provider": {
146
- const { runProviderCommand } = await import("./provider-CDM4LQAC.js");
146
+ const { runProviderCommand } = await import("./provider-RLQMVV2Z.js");
147
147
  const [, subcommand] = positionals;
148
148
  await runProviderCommand(mode, subcommand);
149
149
  break;
150
150
  }
151
151
  default: {
152
- const { configFileExists } = await import("./config-SWDAJMQ3.js");
152
+ const { configFileExists } = await import("./config-ACVEHBKG.js");
153
153
  const configExists = await configFileExists(mode);
154
154
  if (!configExists) {
155
155
  await runNetworkSetup(mode);
156
156
  }
157
- const { runServe } = await import("./serve-X3PKC27B.js");
157
+ const { runServe } = await import("./serve-3L3HLUVT.js");
158
158
  await runServe({
159
159
  mode,
160
160
  port: values.port ? parseInt(values.port) : void 0,
@@ -167,4 +167,4 @@ async function runCli(options) {
167
167
  export {
168
168
  runCli
169
169
  };
170
- //# sourceMappingURL=chunk-HWOYZ245.js.map
170
+ //# sourceMappingURL=chunk-2V7VPPBP.js.map
@@ -12,10 +12,11 @@ import {
12
12
  getSessionProcessCount
13
13
  } from "./chunk-574HZVLE.js";
14
14
  import {
15
+ buildModelParams,
15
16
  getBackendCapabilities,
16
17
  getModelProfile,
17
18
  streamWithSegments
18
- } from "./chunk-XYD5JXRM.js";
19
+ } from "./chunk-D4ZLSV6P.js";
19
20
  import {
20
21
  getContextMessages,
21
22
  getCurrentContextWindowId,
@@ -542,12 +543,7 @@ async function* streamLLMPure(options) {
542
543
  const maxTokens = userMaxTokens ?? profile.defaultMaxTokens;
543
544
  const topP = userTopP ?? profile.topP;
544
545
  const topK = userTopK ?? (backend.supportsTopK ? profile.topK : void 0);
545
- const modelParams = {
546
- ...temperature !== void 0 && { temperature },
547
- ...topP !== void 0 && { topP },
548
- ...topK !== void 0 && { topK },
549
- ...maxTokens !== void 0 && { maxTokens }
550
- };
546
+ const modelParams = buildModelParams({ temperature, topP, topK, maxTokens });
551
547
  logger.debug("LLM request settings", {
552
548
  model: llmClient.getModel(),
553
549
  profile: profile.name,
@@ -3351,7 +3347,7 @@ var callSubAgentTool = {
3351
3347
  };
3352
3348
  }
3353
3349
  try {
3354
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-4ODVFMW7.js");
3350
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-CSV7G554.js");
3355
3351
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3356
3352
  const turnMetrics = new TurnMetrics();
3357
3353
  const result = await executeSubAgent({
@@ -4480,4 +4476,4 @@ export {
4480
4476
  getToolRegistryForAgent,
4481
4477
  createToolRegistry
4482
4478
  };
4483
- //# sourceMappingURL=chunk-HZP2V5Z6.js.map
4479
+ //# sourceMappingURL=chunk-4O3C2JMB.js.map
@@ -6,7 +6,7 @@ import {
6
6
  createVerifierNudgeConfig,
7
7
  runBuilderTurn,
8
8
  runChatTurn
9
- } from "./chunk-AU33PQAB.js";
9
+ } from "./chunk-BOEXJCOD.js";
10
10
  import {
11
11
  TurnMetrics,
12
12
  agentExists,
@@ -47,7 +47,7 @@ import {
47
47
  setSkillEnabled,
48
48
  skillExists,
49
49
  spawnShellProcess
50
- } from "./chunk-HZP2V5Z6.js";
50
+ } from "./chunk-4O3C2JMB.js";
51
51
  import {
52
52
  getPathSeparator,
53
53
  getPlatformShell,
@@ -57,18 +57,18 @@ import {
57
57
  import {
58
58
  createProviderManager,
59
59
  parseDefaultModelSelection
60
- } from "./chunk-WINI5HX7.js";
60
+ } from "./chunk-PYBB34ZK.js";
61
61
  import {
62
62
  SessionNotFoundError,
63
63
  createLLMClient,
64
64
  detectModel,
65
65
  getLlmStatus
66
- } from "./chunk-FX4SUY2S.js";
66
+ } from "./chunk-KSASIV4B.js";
67
67
  import {
68
68
  detectBackend,
69
69
  getBackendDisplayName,
70
70
  getModelProfile
71
- } from "./chunk-XYD5JXRM.js";
71
+ } from "./chunk-D4ZLSV6P.js";
72
72
  import {
73
73
  createSession,
74
74
  deleteSession,
@@ -5479,7 +5479,7 @@ function createTerminalRoutes() {
5479
5479
  }
5480
5480
 
5481
5481
  // src/constants.ts
5482
- var VERSION = "1.6.21";
5482
+ var VERSION = "1.6.25";
5483
5483
 
5484
5484
  // src/server/index.ts
5485
5485
  var __dirname2 = dirname5(fileURLToPath4(import.meta.url));
@@ -5716,7 +5716,7 @@ async function createServerHandle(config) {
5716
5716
  return res.status(400).json({ error: "providerId is required" });
5717
5717
  }
5718
5718
  sessionManager.setSessionProvider(sessionId, providerId, model ?? "auto");
5719
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-SWDAJMQ3.js");
5719
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-ACVEHBKG.js");
5720
5720
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5721
5721
  const updatedConfig = setDefaultModelSelection(globalConfig, providerId, model ?? "auto");
5722
5722
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -5781,7 +5781,7 @@ async function createServerHandle(config) {
5781
5781
  if (!callId || approved === void 0) {
5782
5782
  return res.status(400).json({ error: "callId and approved are required" });
5783
5783
  }
5784
- const { providePathConfirmation: providePathConfirmation2 } = await import("./tools-4ODVFMW7.js");
5784
+ const { providePathConfirmation: providePathConfirmation2 } = await import("./tools-CSV7G554.js");
5785
5785
  const result = providePathConfirmation2(callId, approved, alwaysAllow);
5786
5786
  if (!result.found) {
5787
5787
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -5806,7 +5806,7 @@ async function createServerHandle(config) {
5806
5806
  if (!callId || !answer) {
5807
5807
  return res.status(400).json({ error: "callId and answer are required" });
5808
5808
  }
5809
- const { provideAnswer: provideAnswer2 } = await import("./tools-4ODVFMW7.js");
5809
+ const { provideAnswer: provideAnswer2 } = await import("./tools-CSV7G554.js");
5810
5810
  const found = provideAnswer2(callId, answer);
5811
5811
  if (!found) {
5812
5812
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -5842,8 +5842,8 @@ async function createServerHandle(config) {
5842
5842
  if (!session) {
5843
5843
  return res.status(404).json({ error: "Session not found" });
5844
5844
  }
5845
- const { stopSessionExecution } = await import("./chat-handler-JEMPI5UF.js");
5846
- const { cancelQuestionsForSession: cancelQuestionsForSession2, cancelPathConfirmationsForSession: cancelPathConfirmationsForSession2 } = await import("./tools-4ODVFMW7.js");
5845
+ const { stopSessionExecution } = await import("./chat-handler-ZU74RXED.js");
5846
+ const { cancelQuestionsForSession: cancelQuestionsForSession2, cancelPathConfirmationsForSession: cancelPathConfirmationsForSession2 } = await import("./tools-CSV7G554.js");
5847
5847
  stopSessionExecution(sessionId, sessionManager);
5848
5848
  abortSession(sessionId);
5849
5849
  cancelQuestionsForSession2(sessionId, "Session stopped by user");
@@ -5901,7 +5901,7 @@ async function createServerHandle(config) {
5901
5901
  let visionFallback;
5902
5902
  let globalWorkdir;
5903
5903
  try {
5904
- const { loadGlobalConfig, getVisionFallback } = await import("./config-SWDAJMQ3.js");
5904
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-ACVEHBKG.js");
5905
5905
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5906
5906
  const fallback = getVisionFallback(globalConfig);
5907
5907
  if (fallback) {
@@ -5980,7 +5980,7 @@ async function createServerHandle(config) {
5980
5980
  return res.status(400).json({ error: "name, url, and backend are required" });
5981
5981
  }
5982
5982
  try {
5983
- const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-SWDAJMQ3.js");
5983
+ const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-ACVEHBKG.js");
5984
5984
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5985
5985
  const providerBackend = backend;
5986
5986
  const configWithProvider = addProvider(globalConfig, {
@@ -6013,7 +6013,7 @@ async function createServerHandle(config) {
6013
6013
  app.post("/api/init/config", async (req, res) => {
6014
6014
  const { workdir, visionFallback } = req.body;
6015
6015
  try {
6016
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-SWDAJMQ3.js");
6016
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-ACVEHBKG.js");
6017
6017
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6018
6018
  const updatedConfig = {
6019
6019
  ...globalConfig,
@@ -6041,7 +6041,7 @@ async function createServerHandle(config) {
6041
6041
  });
6042
6042
  app.delete("/api/providers/:id", async (req, res) => {
6043
6043
  const { id } = req.params;
6044
- const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-SWDAJMQ3.js");
6044
+ const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-ACVEHBKG.js");
6045
6045
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6046
6046
  const updatedConfig = removeProvider(globalConfig, id);
6047
6047
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -6061,7 +6061,7 @@ async function createServerHandle(config) {
6061
6061
  return res.status(400).json({ error: result.error });
6062
6062
  }
6063
6063
  const llmClient = getLLMClient();
6064
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-SWDAJMQ3.js");
6064
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-ACVEHBKG.js");
6065
6065
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6066
6066
  const updatedConfig = setDefaultModelSelection(globalConfig, id, llmClient.getModel());
6067
6067
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -6092,7 +6092,7 @@ async function createServerHandle(config) {
6092
6092
  if (!result.success) {
6093
6093
  return res.status(400).json({ error: result.error });
6094
6094
  }
6095
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-SWDAJMQ3.js");
6095
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-ACVEHBKG.js");
6096
6096
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6097
6097
  const updatedProviders = providerManager.getProviders();
6098
6098
  const updatedConfig = {
@@ -6302,7 +6302,7 @@ async function createServerHandle(config) {
6302
6302
  providerManager
6303
6303
  );
6304
6304
  const wss = wssExports.wss;
6305
- const { QueueProcessor } = await import("./processor-VKFEOK46.js");
6305
+ const { QueueProcessor } = await import("./processor-GAOK7TPI.js");
6306
6306
  const queueProcessor = new QueueProcessor({
6307
6307
  sessionManager,
6308
6308
  providerManager,
@@ -6375,4 +6375,4 @@ export {
6375
6375
  createServerHandle,
6376
6376
  createServer
6377
6377
  };
6378
- //# sourceMappingURL=chunk-SJVEX2NR.js.map
6378
+ //# sourceMappingURL=chunk-7LPL774T.js.map
@@ -13,7 +13,7 @@ import {
13
13
  getToolRegistryForAgent,
14
14
  loadAllAgentsDefault,
15
15
  runTopLevelAgentLoop
16
- } from "./chunk-HZP2V5Z6.js";
16
+ } from "./chunk-4O3C2JMB.js";
17
17
  import {
18
18
  getCurrentContextWindowId,
19
19
  getEventStore
@@ -293,4 +293,4 @@ export {
293
293
  runBuilderTurn,
294
294
  runVerifierTurn
295
295
  };
296
- //# sourceMappingURL=chunk-AU33PQAB.js.map
296
+ //# sourceMappingURL=chunk-BOEXJCOD.js.map
@@ -29,7 +29,7 @@ function isVisionFallbackEnabled() {
29
29
  async function ensureVisionFallbackConfigLoaded() {
30
30
  if (configLoaded) return;
31
31
  try {
32
- const { loadGlobalConfig, getVisionFallback } = await import("./config-SWDAJMQ3.js");
32
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-ACVEHBKG.js");
33
33
  const { getRuntimeConfig } = await import("./runtime-config-2XJJIMSC.js");
34
34
  const runtimeConfig = getRuntimeConfig();
35
35
  const mode = runtimeConfig.mode ?? "production";
@@ -135,4 +135,4 @@ export {
135
135
  describeImage,
136
136
  describeImageFromDataUrl
137
137
  };
138
- //# sourceMappingURL=chunk-6NPMZFMP.js.map
138
+ //# sourceMappingURL=chunk-CJNQGEYG.js.map