openfox 1.6.0 → 1.6.2

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.
@@ -54,7 +54,7 @@ import {
54
54
  import {
55
55
  createProviderManager,
56
56
  parseDefaultModelSelection
57
- } from "./chunk-PJRARONG.js";
57
+ } from "./chunk-AE5GO5GZ.js";
58
58
  import {
59
59
  SessionNotFoundError,
60
60
  createLLMClient,
@@ -63,7 +63,7 @@ import {
63
63
  getBackendDisplayName,
64
64
  getLlmStatus,
65
65
  getModelProfile
66
- } from "./chunk-UNCPQRFP.js";
66
+ } from "./chunk-XCJPBJCE.js";
67
67
  import {
68
68
  createSession,
69
69
  deleteSession,
@@ -5567,6 +5567,9 @@ function createTerminalRoutes() {
5567
5567
  return router;
5568
5568
  }
5569
5569
 
5570
+ // src/constants.ts
5571
+ var VERSION = "1.6.2";
5572
+
5570
5573
  // src/server/index.ts
5571
5574
  var __dirname2 = dirname5(fileURLToPath4(import.meta.url));
5572
5575
  async function createServerHandle(config) {
@@ -5806,7 +5809,7 @@ async function createServerHandle(config) {
5806
5809
  return res.status(400).json({ error: "providerId is required" });
5807
5810
  }
5808
5811
  sessionManager.setSessionProvider(sessionId, providerId, model ?? "auto");
5809
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-NITYYKDA.js");
5812
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-XKBVKU2N.js");
5810
5813
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5811
5814
  const updatedConfig = setDefaultModelSelection(globalConfig, providerId, model ?? "auto");
5812
5815
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -5991,7 +5994,7 @@ async function createServerHandle(config) {
5991
5994
  let visionFallback;
5992
5995
  let globalWorkdir;
5993
5996
  try {
5994
- const { loadGlobalConfig, getVisionFallback } = await import("./config-NITYYKDA.js");
5997
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-XKBVKU2N.js");
5995
5998
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5996
5999
  const fallback = getVisionFallback(globalConfig);
5997
6000
  if (fallback) {
@@ -6006,6 +6009,7 @@ async function createServerHandle(config) {
6006
6009
  } catch {
6007
6010
  }
6008
6011
  res.json({
6012
+ version: VERSION,
6009
6013
  model: llmClient.getModel(),
6010
6014
  maxContext: providerManager.getCurrentModelContext(),
6011
6015
  llmUrl: activeProvider?.url ?? config.llm.baseUrl,
@@ -6069,7 +6073,7 @@ async function createServerHandle(config) {
6069
6073
  return res.status(400).json({ error: "name, url, and backend are required" });
6070
6074
  }
6071
6075
  try {
6072
- const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-NITYYKDA.js");
6076
+ const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-XKBVKU2N.js");
6073
6077
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6074
6078
  const providerBackend = backend;
6075
6079
  const configWithProvider = addProvider(globalConfig, {
@@ -6102,7 +6106,7 @@ async function createServerHandle(config) {
6102
6106
  app.post("/api/init/config", async (req, res) => {
6103
6107
  const { workdir, visionFallback } = req.body;
6104
6108
  try {
6105
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-NITYYKDA.js");
6109
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-XKBVKU2N.js");
6106
6110
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6107
6111
  const updatedConfig = {
6108
6112
  ...globalConfig,
@@ -6130,7 +6134,7 @@ async function createServerHandle(config) {
6130
6134
  });
6131
6135
  app.delete("/api/providers/:id", async (req, res) => {
6132
6136
  const { id } = req.params;
6133
- const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-NITYYKDA.js");
6137
+ const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-XKBVKU2N.js");
6134
6138
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6135
6139
  const updatedConfig = removeProvider(globalConfig, id);
6136
6140
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -6150,7 +6154,7 @@ async function createServerHandle(config) {
6150
6154
  return res.status(400).json({ error: result.error });
6151
6155
  }
6152
6156
  const llmClient = getLLMClient();
6153
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-NITYYKDA.js");
6157
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-XKBVKU2N.js");
6154
6158
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6155
6159
  const updatedConfig = setDefaultModelSelection(globalConfig, id, llmClient.getModel());
6156
6160
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -6171,7 +6175,7 @@ async function createServerHandle(config) {
6171
6175
  if (!result.success) {
6172
6176
  return res.status(400).json({ error: result.error });
6173
6177
  }
6174
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-NITYYKDA.js");
6178
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-XKBVKU2N.js");
6175
6179
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6176
6180
  const updatedProviders = providerManager.getProviders();
6177
6181
  const updatedConfig = {
@@ -6449,7 +6453,8 @@ function basename2(path) {
6449
6453
  }
6450
6454
 
6451
6455
  export {
6456
+ VERSION,
6452
6457
  createServerHandle,
6453
6458
  createServer
6454
6459
  };
6455
- //# sourceMappingURL=chunk-WZJLCOV3.js.map
6460
+ //# sourceMappingURL=chunk-3B2E5PIQ.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-NITYYKDA.js");
30
+ const { saveGlobalConfig } = await import("./config-XKBVKU2N.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-NITYYKDA.js");
91
+ const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-XKBVKU2N.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-ES2JTHXK.js");
146
+ const { runProviderCommand } = await import("./provider-ZTY6IQXX.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-NITYYKDA.js");
152
+ const { configFileExists } = await import("./config-XKBVKU2N.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-SDBFDRNJ.js");
157
+ const { runServe } = await import("./serve-3Z4Q6BWP.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-TKWJ665A.js.map
170
+ //# sourceMappingURL=chunk-4NKDXE5Q.js.map
@@ -2,8 +2,9 @@ import {
2
2
  clearModelCache,
3
3
  createLLMClient,
4
4
  detectBackend,
5
- detectModel
6
- } from "./chunk-UNCPQRFP.js";
5
+ detectModel,
6
+ setLlmStatus
7
+ } from "./chunk-XCJPBJCE.js";
7
8
  import {
8
9
  logger
9
10
  } from "./chunk-PNBH3RAX.js";
@@ -407,6 +408,7 @@ function createProviderManager(config) {
407
408
  const allModelsBefore = provider.models.map((m) => ({ id: m.id, contextWindow: m.contextWindow, source: m.source }));
408
409
  logger.info("refreshProviderModels", { providerId, userModelsCount: userModels.length, backendModelsCount: modelsWithContext.length, userModels: userModels.map((m) => ({ id: m.id, contextWindow: m.contextWindow, source: m.source })), allModelsBefore, backendModels: modelsWithContext });
409
410
  if (modelsWithContext.length === 0) {
411
+ setLlmStatus("disconnected");
410
412
  if (userModels.length > 0) {
411
413
  logger.debug("Backend unavailable, preserving user models", { providerId, userModels: userModels.map((m) => ({ id: m.id, contextWindow: m.contextWindow })) });
412
414
  providers = providers.map((p) => p.id === providerId ? { ...p, models: userModels } : p);
@@ -416,6 +418,7 @@ function createProviderManager(config) {
416
418
  }
417
419
  return { success: false, error: "No models returned from backend" };
418
420
  }
421
+ setLlmStatus("connected");
419
422
  const updatedModels = modelsWithContext.map((m) => {
420
423
  let existingModel = provider.models.find((pm) => pm.id === m.id);
421
424
  if (!existingModel) {
@@ -462,4 +465,4 @@ export {
462
465
  parseDefaultModelSelection,
463
466
  createProviderManager
464
467
  };
465
- //# sourceMappingURL=chunk-PJRARONG.js.map
468
+ //# sourceMappingURL=chunk-AE5GO5GZ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  detectBackend,
3
3
  detectModel
4
- } from "./chunk-UNCPQRFP.js";
4
+ } from "./chunk-XCJPBJCE.js";
5
5
  import {
6
6
  getGlobalConfigPath
7
7
  } from "./chunk-R4HADRYO.js";
@@ -380,4 +380,4 @@ export {
380
380
  activateProvider,
381
381
  mergeConfigs
382
382
  };
383
- //# sourceMappingURL=chunk-ICPQDI4L.js.map
383
+ //# sourceMappingURL=chunk-DBHXJXY4.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-NITYYKDA.js");
32
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-XKBVKU2N.js");
33
33
  const { getRuntimeConfig } = await import("./runtime-config-2XJJIMSC.js");
34
34
  const runtimeConfig = getRuntimeConfig();
35
35
  const mode = runtimeConfig.mode ?? "production";
@@ -134,4 +134,4 @@ export {
134
134
  describeImage,
135
135
  describeImageFromDataUrl
136
136
  };
137
- //# sourceMappingURL=chunk-LJRH7ICU.js.map
137
+ //# sourceMappingURL=chunk-T3CIBJDW.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  describeImageFromDataUrl,
3
3
  ensureVisionFallbackConfigLoaded
4
- } from "./chunk-LJRH7ICU.js";
4
+ } from "./chunk-T3CIBJDW.js";
5
5
  import {
6
6
  logger
7
7
  } from "./chunk-PNBH3RAX.js";
@@ -258,6 +258,9 @@ async function detectModel(llmBaseUrl, retries = 3, silent = false) {
258
258
  function getLlmStatus() {
259
259
  return llmStatus;
260
260
  }
261
+ function setLlmStatus(status) {
262
+ llmStatus = status;
263
+ }
261
264
  function clearModelCache(url) {
262
265
  if (url) {
263
266
  modelCache.delete(getCacheKey(url));
@@ -824,7 +827,7 @@ function createLLMClient(config, initialBackend = "unknown") {
824
827
  try {
825
828
  const shouldDisableThinking = disableThinking || request.disableThinking === true;
826
829
  await ensureVisionFallbackConfigLoaded();
827
- const { isVisionFallbackEnabled } = await import("./vision-fallback-KM6LRAXF.js");
830
+ const { isVisionFallbackEnabled } = await import("./vision-fallback-4IAAGQGD.js");
828
831
  const paramsOptions = {
829
832
  model,
830
833
  request,
@@ -902,7 +905,7 @@ function createLLMClient(config, initialBackend = "unknown") {
902
905
  });
903
906
  try {
904
907
  await ensureVisionFallbackConfigLoaded();
905
- const { isVisionFallbackEnabled } = await import("./vision-fallback-KM6LRAXF.js");
908
+ const { isVisionFallbackEnabled } = await import("./vision-fallback-4IAAGQGD.js");
906
909
  const shouldDisableThinking = disableThinking || request.disableThinking === true;
907
910
  const createParams = await buildStreamingCreateParams({
908
911
  model,
@@ -1115,6 +1118,7 @@ export {
1115
1118
  createLLMClient,
1116
1119
  detectModel,
1117
1120
  getLlmStatus,
1121
+ setLlmStatus,
1118
1122
  clearModelCache
1119
1123
  };
1120
- //# sourceMappingURL=chunk-UNCPQRFP.js.map
1124
+ //# sourceMappingURL=chunk-XCJPBJCE.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-TKWJ665A.js";
4
+ } from "../chunk-4NKDXE5Q.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-PNBH3RAX.js";
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-TKWJ665A.js";
4
+ } from "../chunk-4NKDXE5Q.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-PNBH3RAX.js";
@@ -13,11 +13,11 @@ import {
13
13
  saveGlobalConfig,
14
14
  setDefaultModelSelection,
15
15
  trySmartDefaults
16
- } from "./chunk-ICPQDI4L.js";
17
- import "./chunk-UNCPQRFP.js";
16
+ } from "./chunk-DBHXJXY4.js";
17
+ import "./chunk-XCJPBJCE.js";
18
18
  import "./chunk-XFXOSPYH.js";
19
19
  import "./chunk-R4HADRYO.js";
20
- import "./chunk-LJRH7ICU.js";
20
+ import "./chunk-T3CIBJDW.js";
21
21
  import "./chunk-PNBH3RAX.js";
22
22
  export {
23
23
  activateProvider,
@@ -35,4 +35,4 @@ export {
35
35
  setDefaultModelSelection,
36
36
  trySmartDefaults
37
37
  };
38
- //# sourceMappingURL=config-NITYYKDA.js.map
38
+ //# sourceMappingURL=config-XKBVKU2N.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -123,5 +123,9 @@
123
123
  "engines": {
124
124
  "node": ">=24.0.0"
125
125
  },
126
- "license": "MIT"
126
+ "license": "MIT",
127
+ "repository": {
128
+ "type": "git",
129
+ "url": "git@github.com:co-l/openfox.git"
130
+ }
127
131
  }
@@ -5,17 +5,17 @@ import {
5
5
  loadGlobalConfig,
6
6
  removeProvider,
7
7
  saveGlobalConfig
8
- } from "./chunk-ICPQDI4L.js";
8
+ } from "./chunk-DBHXJXY4.js";
9
9
  import {
10
10
  fetchAvailableModelsFromBackend
11
- } from "./chunk-PJRARONG.js";
11
+ } from "./chunk-AE5GO5GZ.js";
12
12
  import {
13
13
  detectBackend,
14
14
  detectModel
15
- } from "./chunk-UNCPQRFP.js";
15
+ } from "./chunk-XCJPBJCE.js";
16
16
  import "./chunk-XFXOSPYH.js";
17
17
  import "./chunk-R4HADRYO.js";
18
- import "./chunk-LJRH7ICU.js";
18
+ import "./chunk-T3CIBJDW.js";
19
19
  import "./chunk-PNBH3RAX.js";
20
20
 
21
21
  // src/cli/provider.ts
@@ -248,7 +248,7 @@ async function runProviderAdd(mode) {
248
248
  isActive: makeActive
249
249
  });
250
250
  if (makeActive) {
251
- const { setDefaultModelSelection } = await import("./config-NITYYKDA.js");
251
+ const { setDefaultModelSelection } = await import("./config-XKBVKU2N.js");
252
252
  newConfig = setDefaultModelSelection(newConfig, newConfig.providers[newConfig.providers.length - 1].id, selectedModel);
253
253
  }
254
254
  await saveGlobalConfig(mode, newConfig);
@@ -372,4 +372,4 @@ export {
372
372
  runProviderRemove,
373
373
  runProviderUse
374
374
  };
375
- //# sourceMappingURL=provider-ES2JTHXK.js.map
375
+ //# sourceMappingURL=provider-ZTY6IQXX.js.map
@@ -2,17 +2,18 @@ import {
2
2
  getActiveProvider,
3
3
  getDefaultModel,
4
4
  loadGlobalConfig
5
- } from "./chunk-ICPQDI4L.js";
5
+ } from "./chunk-DBHXJXY4.js";
6
6
  import {
7
+ VERSION,
7
8
  createServer
8
- } from "./chunk-WZJLCOV3.js";
9
+ } from "./chunk-3B2E5PIQ.js";
9
10
  import "./chunk-QDEKU5RL.js";
10
11
  import "./chunk-S73ATBSR.js";
11
12
  import "./chunk-GBBTJ6ND.js";
12
13
  import "./chunk-NBU6KIOD.js";
13
14
  import "./chunk-574HZVLE.js";
14
- import "./chunk-PJRARONG.js";
15
- import "./chunk-UNCPQRFP.js";
15
+ import "./chunk-AE5GO5GZ.js";
16
+ import "./chunk-XCJPBJCE.js";
16
17
  import "./chunk-XFXOSPYH.js";
17
18
  import "./chunk-CIXMZ73F.js";
18
19
  import "./chunk-WQ4W5H6A.js";
@@ -31,7 +32,7 @@ import {
31
32
  import {
32
33
  loadConfig
33
34
  } from "./chunk-TVQOONDR.js";
34
- import "./chunk-LJRH7ICU.js";
35
+ import "./chunk-T3CIBJDW.js";
35
36
  import {
36
37
  logger
37
38
  } from "./chunk-PNBH3RAX.js";
@@ -39,11 +40,6 @@ import {
39
40
  // src/server/utils/network.ts
40
41
  import os from "os";
41
42
  import { statSync } from "fs";
42
-
43
- // src/constants.ts
44
- var VERSION = "1.6.0";
45
-
46
- // src/server/utils/network.ts
47
43
  function getNetworkInterfaces() {
48
44
  const interfaces = os.networkInterfaces();
49
45
  const result = [];
@@ -192,4 +188,4 @@ async function runServe(options) {
192
188
  export {
193
189
  runServe
194
190
  };
195
- //# sourceMappingURL=serve-SDBFDRNJ.js.map
191
+ //# sourceMappingURL=serve-3Z4Q6BWP.js.map
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-WZJLCOV3.js";
4
+ } from "../chunk-3B2E5PIQ.js";
5
5
  import "../chunk-QDEKU5RL.js";
6
6
  import "../chunk-S73ATBSR.js";
7
7
  import "../chunk-GBBTJ6ND.js";
8
8
  import "../chunk-NBU6KIOD.js";
9
9
  import "../chunk-574HZVLE.js";
10
- import "../chunk-PJRARONG.js";
11
- import "../chunk-UNCPQRFP.js";
10
+ import "../chunk-AE5GO5GZ.js";
11
+ import "../chunk-XCJPBJCE.js";
12
12
  import "../chunk-XFXOSPYH.js";
13
13
  import "../chunk-CIXMZ73F.js";
14
14
  import "../chunk-WQ4W5H6A.js";
@@ -21,7 +21,7 @@ import "../chunk-QY7BMXWT.js";
21
21
  import "../chunk-XQQ2BRJA.js";
22
22
  import "../chunk-R4HADRYO.js";
23
23
  import "../chunk-TVQOONDR.js";
24
- import "../chunk-LJRH7ICU.js";
24
+ import "../chunk-T3CIBJDW.js";
25
25
  import "../chunk-PNBH3RAX.js";
26
26
  export {
27
27
  createServer,
@@ -7,7 +7,7 @@ import {
7
7
  getVisionFallbackConfig,
8
8
  isVisionFallbackEnabled,
9
9
  setVisionFallbackConfig
10
- } from "./chunk-LJRH7ICU.js";
10
+ } from "./chunk-T3CIBJDW.js";
11
11
  import "./chunk-PNBH3RAX.js";
12
12
  export {
13
13
  clearDescriptionCache,
@@ -19,4 +19,4 @@ export {
19
19
  isVisionFallbackEnabled,
20
20
  setVisionFallbackConfig
21
21
  };
22
- //# sourceMappingURL=vision-fallback-KM6LRAXF.js.map
22
+ //# sourceMappingURL=vision-fallback-4IAAGQGD.js.map