openfox 2.0.110 → 2.0.111

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 (79) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -0
  3. package/dist/CHANGELOG.md +19 -0
  4. package/dist/{ask-CJMU6EW7.js → ask-ZYPCJKZD.js} +3 -2
  5. package/dist/{chat-handler-UZ7WTT6D.js → chat-handler-BYXZIIV3.js} +23 -22
  6. package/dist/{chunk-VJWWJEBX.js → chunk-3UILDGOO.js} +9 -9
  7. package/dist/{chunk-QRASX3HC.js → chunk-4DTV5JVI.js} +7 -7
  8. package/dist/{chunk-ZJW3KOII.js → chunk-A32COLEZ.js} +293 -98
  9. package/dist/{chunk-GNFDD6LN.js → chunk-BOSKQI62.js} +3 -3
  10. package/dist/{chunk-D6ODGTSZ.js → chunk-C372UH7N.js} +2 -1
  11. package/dist/{chunk-4ZXRERIW.js → chunk-C5NQF2K4.js} +46 -4
  12. package/dist/{chunk-3HS72YIE.js → chunk-ERYUSG5C.js} +2 -2
  13. package/dist/{chunk-PU3IPUSW.js → chunk-FFPCVN5M.js} +45 -8
  14. package/dist/{chunk-KDQJOI2I.js → chunk-FSYRANYR.js} +2 -2
  15. package/dist/chunk-GZOK3FAA.js +7 -0
  16. package/dist/chunk-IJ53Y77N.js +142 -0
  17. package/dist/{chunk-WCQOHRUX.js → chunk-JDT63SSP.js} +2 -2
  18. package/dist/{chunk-VT2X3DMC.js → chunk-JNHKKUGJ.js} +2 -2
  19. package/dist/{chunk-JAX5OEMM.js → chunk-JURM3RPZ.js} +21 -4
  20. package/dist/chunk-LCLH6ZUL.js +43 -0
  21. package/dist/{chunk-6EV7X5MP.js → chunk-N4RTAGFY.js} +2 -2
  22. package/dist/{chunk-LXYNP7LL.js → chunk-NB2D6I64.js} +221 -5
  23. package/dist/{chunk-VKWVPQJ5.js → chunk-OAN4BXEW.js} +3 -1
  24. package/dist/{chunk-4R7G5JB6.js → chunk-P45RJGOT.js} +1 -1
  25. package/dist/{chunk-E5HZKNTY.js → chunk-PCC4DBPF.js} +2 -2
  26. package/dist/{chunk-ACJNRPTO.js → chunk-QGXLZZBS.js} +29 -21
  27. package/dist/{chunk-UCYPPLVR.js → chunk-RAKPI4OE.js} +81 -70
  28. package/dist/{chunk-MM46DJJL.js → chunk-RISQXU32.js} +2 -2
  29. package/dist/{chunk-CQKRZ4WV.js → chunk-RKMP74BB.js} +4 -4
  30. package/dist/chunk-RSB4AR2A.js +108 -0
  31. package/dist/{chunk-VXKPZUCT.js → chunk-RT2A2RRL.js} +4 -2
  32. package/dist/{chunk-HK75Q3EA.js → chunk-SDGNV45R.js} +10 -10
  33. package/dist/{chunk-C5JJM72V.js → chunk-SVJFMZ2Q.js} +49 -5
  34. package/dist/{chunk-B5MH4HQ6.js → chunk-SYJMUIRC.js} +7 -3
  35. package/dist/{chunk-4HIFB7F5.js → chunk-XCK5IBO4.js} +37 -26
  36. package/dist/{chunk-5HMKLHTT.js → chunk-XWNCKIPO.js} +2 -2
  37. package/dist/{chunk-NORNB6IJ.js → chunk-Z56SEG4Z.js} +6 -6
  38. package/dist/cli/dev.js +1 -1
  39. package/dist/cli/index.js +1 -1
  40. package/dist/{client-LPNFUOPV.js → client-QNQTX5EA.js} +4 -4
  41. package/dist/{compactor-OSDLCGRC.js → compactor-X2KZ3XFU.js} +10 -9
  42. package/dist/{config-HX7FDKGJ.js → config-TW5FHQEM.js} +2 -2
  43. package/dist/{dynamic-context-WVA7HTEP.js → dynamic-context-ZRQO2FJN.js} +7 -7
  44. package/dist/{events-26J7BUSY.js → events-Y6XXQYFG.js} +7 -6
  45. package/dist/{folding-ZD4AMFNR.js → folding-Z4GNWRC3.js} +9 -6
  46. package/dist/{http-client-MQARNFY3.js → http-client-2GDKHZIG.js} +3 -3
  47. package/dist/{manager-RJH7EYIG.js → manager-HCMDFEQH.js} +4 -4
  48. package/dist/{model-overrides-BXMFIT47.js → model-overrides-O3ZYKFP7.js} +3 -3
  49. package/dist/oauth-provider-52YILVUJ.js +15 -0
  50. package/dist/oauth-store-XCFXV2VM.js +32 -0
  51. package/dist/{orchestrator-BW27C4K4.js → orchestrator-P5EUMC7E.js} +22 -21
  52. package/dist/package.json +11 -9
  53. package/dist/{path-security-AAZMH33K.js → path-security-525YLND3.js} +11 -9
  54. package/dist/{platform-EZJABX5J.js → platform-MEQUWG6U.js} +3 -3
  55. package/dist/{processor-FTCPHWBM.js → processor-UN4H4V7F.js} +22 -21
  56. package/dist/{protocol-_Gphic7p.d.ts → protocol-D6MISQyz.d.ts} +8 -3
  57. package/dist/{protocol-SPIJPOEN.js → protocol-FTHAR2YL.js} +4 -3
  58. package/dist/{provider-JS5P3HQ2.js → provider-3R4X62LW.js} +7 -7
  59. package/dist/{provider-manager-MWAIOX2A.js → provider-manager-W5N4XRE5.js} +5 -5
  60. package/dist/{registry-JJB5GXOM.js → registry-74KPZ5NV.js} +3 -3
  61. package/dist/{serve-XDZB4EJN.js → serve-V7WQKJ52.js} +32 -29
  62. package/dist/server/index.d.ts +15 -1
  63. package/dist/server/index.js +31 -28
  64. package/dist/server-7MOOJR2N.js +48 -0
  65. package/dist/{session-overrides-T47KXDDS.js → session-overrides-XH6I3COP.js} +5 -5
  66. package/dist/{sessions-YTWCOHI3.js → sessions-D772YTWL.js} +8 -4
  67. package/dist/{settings-2RZBMX5Y.js → settings-KO6DSJLD.js} +2 -2
  68. package/dist/shared/index.d.ts +1 -1
  69. package/dist/shared/index.js +1 -1
  70. package/dist/{tools-KPIYFL5A.js → tools-HTUTYMKI.js} +20 -19
  71. package/dist/{update-75QZJYKD.js → update-MWPQNSEZ.js} +2 -2
  72. package/dist/{update-server-4I6LXE5K.js → update-server-LOOXIXDW.js} +2 -2
  73. package/dist/web/assets/{index-BmjVoqQT.js → index-Dukvfqm-.js} +83 -83
  74. package/dist/web/assets/{index-CyWbbpRP.css → index-nS1p0g8O.css} +1 -1
  75. package/dist/web/index.html +2 -2
  76. package/dist/web/sw.js +1 -1
  77. package/package.json +11 -9
  78. package/dist/chunk-64374FPB.js +0 -7
  79. package/dist/server-R6DDJNF3.js +0 -47
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.111 - 2026-08-03
4
+
5
+ ### Enhancements
6
+
7
+ - **OAuth login for MCP servers** — servers that require OAuth authorization now connect through a browser-based login flow instead of failing
8
+ - **Manual model entry in the provider setup** — if a provider exposes no model list, type the model name directly instead of hitting a dead-end "No models found"
9
+ - **You choose when to restart after an update** — updates download first and restart on your OK; service installs can opt into automatic restart
10
+ - **Homepage loads faster** — the session list shows the five most recent per project up front and fills in the rest lazily
11
+ - **Leaner session storage** — finished tool-call streaming buffers are dropped from snapshots and stale backups auto-prune after 10 days
12
+
13
+ ### Bug Fixes
14
+
15
+ - **Tool calls no longer misread as interrupted** — an output that merely contains the interrupt marker text now shows as successful
16
+ - **Multi-statement shell commands keep their tails** — output is no longer cut at the first line for compound commands
17
+ - **Windows paths shorten to names again** — workspace and file names show their basename instead of the full path
18
+ - **Auto-compaction honors configured thresholds** — the internal cap is raised from 85%, so thresholds up to 95% work as set
19
+ - **Windows path-safety gaps closed** — dangerous commands outside the workdir are confirmed again in edge cases, including under Git Bash
20
+ - **Choice options survive reloads** — structured choices stay stable across page refreshes
21
+
3
22
  ## 2.0.110 - 2026-08-02
4
23
 
5
24
  ### Bug Fixes
package/README.md CHANGED
@@ -139,6 +139,7 @@ _Vision Fallback — Image processing configuration_
139
139
  | `OPENFOX_LLM_IDLE_TIMEOUT` | `300000` | LLM stream idle timeout in ms |
140
140
  | `OPENFOX_PORT` | `10369` | Server listen port |
141
141
  | `OPENFOX_HOST` | `127.0.0.1` | Server bind host |
142
+ | `OPENFOX_PUBLIC_URL` | — | Public origin used to build the MCP OAuth redirect URI |
142
143
  | `OPENFOX_WORKDIR` | `cwd` | Working directory |
143
144
  | `OPENFOX_DB_PATH` | `./openfox.db` | SQLite database path |
144
145
  | `OPENFOX_LOG_LEVEL` | `info` | Log level: `debug`, `info`, `warn`, `error` |
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.111 - 2026-08-03
4
+
5
+ ### Enhancements
6
+
7
+ - **OAuth login for MCP servers** — servers that require OAuth authorization now connect through a browser-based login flow instead of failing
8
+ - **Manual model entry in the provider setup** — if a provider exposes no model list, type the model name directly instead of hitting a dead-end "No models found"
9
+ - **You choose when to restart after an update** — updates download first and restart on your OK; service installs can opt into automatic restart
10
+ - **Homepage loads faster** — the session list shows the five most recent per project up front and fills in the rest lazily
11
+ - **Leaner session storage** — finished tool-call streaming buffers are dropped from snapshots and stale backups auto-prune after 10 days
12
+
13
+ ### Bug Fixes
14
+
15
+ - **Tool calls no longer misread as interrupted** — an output that merely contains the interrupt marker text now shows as successful
16
+ - **Multi-statement shell commands keep their tails** — output is no longer cut at the first line for compound commands
17
+ - **Windows paths shorten to names again** — workspace and file names show their basename instead of the full path
18
+ - **Auto-compaction honors configured thresholds** — the internal cap is raised from 85%, so thresholds up to 95% work as set
19
+ - **Windows path-safety gaps closed** — dangerous commands outside the workdir are confirmed again in edge cases, including under Git Bash
20
+ - **Choice options survive reloads** — structured choices stay stable across page refreshes
21
+
3
22
  ## 2.0.110 - 2026-08-02
4
23
 
5
24
  ### Bug Fixes
@@ -7,7 +7,8 @@ import {
7
7
  getPendingQuestionsForSession,
8
8
  hasPendingQuestion,
9
9
  provideAnswer
10
- } from "./chunk-JAX5OEMM.js";
10
+ } from "./chunk-JURM3RPZ.js";
11
+ import "./chunk-LCLH6ZUL.js";
11
12
  import "./chunk-5WRI5ZAA.js";
12
13
  export {
13
14
  AskUserInterrupt,
@@ -19,4 +20,4 @@ export {
19
20
  hasPendingQuestion,
20
21
  provideAnswer
21
22
  };
22
- //# sourceMappingURL=ask-CJMU6EW7.js.map
23
+ //# sourceMappingURL=ask-ZYPCJKZD.js.map
@@ -2,48 +2,49 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-VJWWJEBX.js";
5
+ } from "./chunk-3UILDGOO.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-HK75Q3EA.js";
9
- import "./chunk-NORNB6IJ.js";
10
- import "./chunk-UCYPPLVR.js";
11
- import "./chunk-GNFDD6LN.js";
8
+ } from "./chunk-SDGNV45R.js";
9
+ import "./chunk-Z56SEG4Z.js";
10
+ import "./chunk-RAKPI4OE.js";
11
+ import "./chunk-BOSKQI62.js";
12
12
  import "./chunk-JR54MDZI.js";
13
- import "./chunk-5HMKLHTT.js";
13
+ import "./chunk-XWNCKIPO.js";
14
14
  import "./chunk-33Q7LCVD.js";
15
- import "./chunk-C5JJM72V.js";
15
+ import "./chunk-SVJFMZ2Q.js";
16
16
  import "./chunk-I72ACQ6R.js";
17
17
  import "./chunk-JE7LW7Y6.js";
18
- import "./chunk-VKWVPQJ5.js";
18
+ import "./chunk-OAN4BXEW.js";
19
19
  import "./chunk-FR5LUTLQ.js";
20
20
  import "./chunk-J7GAZGZT.js";
21
- import "./chunk-WCQOHRUX.js";
22
- import "./chunk-PU3IPUSW.js";
21
+ import "./chunk-JDT63SSP.js";
22
+ import "./chunk-FFPCVN5M.js";
23
23
  import {
24
24
  getEventStore
25
- } from "./chunk-LXYNP7LL.js";
25
+ } from "./chunk-NB2D6I64.js";
26
26
  import {
27
27
  createChatMessageMessage,
28
28
  createPhaseChangedMessage,
29
29
  createSessionRunningMessage
30
- } from "./chunk-B5MH4HQ6.js";
31
- import "./chunk-JAX5OEMM.js";
32
- import "./chunk-6EV7X5MP.js";
33
- import "./chunk-MM46DJJL.js";
30
+ } from "./chunk-SYJMUIRC.js";
31
+ import "./chunk-N4RTAGFY.js";
32
+ import "./chunk-JURM3RPZ.js";
33
+ import "./chunk-RISQXU32.js";
34
34
  import "./chunk-6FPGJR7O.js";
35
- import "./chunk-ACJNRPTO.js";
36
- import "./chunk-4ZXRERIW.js";
37
- import "./chunk-VT2X3DMC.js";
35
+ import "./chunk-QGXLZZBS.js";
36
+ import "./chunk-LCLH6ZUL.js";
37
+ import "./chunk-C5NQF2K4.js";
38
+ import "./chunk-JNHKKUGJ.js";
38
39
  import "./chunk-J2GP3J3X.js";
39
40
  import "./chunk-V4IE7HJY.js";
40
41
  import "./chunk-YHEQTVFV.js";
41
42
  import "./chunk-L737Y63F.js";
42
- import "./chunk-VXKPZUCT.js";
43
+ import "./chunk-RT2A2RRL.js";
43
44
  import "./chunk-LCQ5AN6Y.js";
44
45
  import "./chunk-K44MW7JJ.js";
45
- import "./chunk-4R7G5JB6.js";
46
- import "./chunk-D6ODGTSZ.js";
46
+ import "./chunk-P45RJGOT.js";
47
+ import "./chunk-C372UH7N.js";
47
48
  import "./chunk-CQGTEGKL.js";
48
49
  import "./chunk-5WRI5ZAA.js";
49
50
 
@@ -166,4 +167,4 @@ export {
166
167
  startChatSession,
167
168
  stopSessionExecution
168
169
  };
169
- //# sourceMappingURL=chat-handler-UZ7WTT6D.js.map
170
+ //# sourceMappingURL=chat-handler-BYXZIIV3.js.map
@@ -1,27 +1,27 @@
1
1
  import {
2
2
  combineEventsWithSnapshot,
3
3
  getEventStore
4
- } from "./chunk-LXYNP7LL.js";
4
+ } from "./chunk-NB2D6I64.js";
5
5
  import {
6
6
  createContextStateMessage,
7
7
  createSessionStateMessage
8
- } from "./chunk-B5MH4HQ6.js";
8
+ } from "./chunk-SYJMUIRC.js";
9
9
  import {
10
10
  getPendingQuestionsForSession
11
- } from "./chunk-JAX5OEMM.js";
11
+ } from "./chunk-JURM3RPZ.js";
12
12
  import {
13
13
  buildMessagesFromStoredEvents,
14
14
  foldPendingConfirmations
15
- } from "./chunk-ACJNRPTO.js";
15
+ } from "./chunk-QGXLZZBS.js";
16
16
  import {
17
17
  updateSessionMetadata
18
- } from "./chunk-4ZXRERIW.js";
18
+ } from "./chunk-C5NQF2K4.js";
19
19
  import {
20
20
  getRuntimeConfig
21
- } from "./chunk-VT2X3DMC.js";
21
+ } from "./chunk-JNHKKUGJ.js";
22
22
  import {
23
23
  getMaxVisibleItems
24
- } from "./chunk-VXKPZUCT.js";
24
+ } from "./chunk-RT2A2RRL.js";
25
25
  import {
26
26
  logger
27
27
  } from "./chunk-K44MW7JJ.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-LPNFUOPV.js");
156
+ const { createLLMClient } = await import("./client-QNQTX5EA.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-VJWWJEBX.js.map
207
+ //# sourceMappingURL=chunk-3UILDGOO.js.map
@@ -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-HX7FDKGJ.js");
40
+ const { saveGlobalConfig } = await import("./config-TW5FHQEM.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-HX7FDKGJ.js");
107
+ const { loadGlobalConfig, getActiveProvider, getDefaultModel } = await import("./config-TW5FHQEM.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-JS5P3HQ2.js");
166
+ const { runProviderCommand } = await import("./provider-3R4X62LW.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-75QZJYKD.js");
203
+ const { runUpdate } = await import("./update-MWPQNSEZ.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-HX7FDKGJ.js");
211
+ const { configFileExists } = await import("./config-TW5FHQEM.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-XDZB4EJN.js");
216
+ const { runServe } = await import("./serve-V7WQKJ52.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-QRASX3HC.js.map
228
+ //# sourceMappingURL=chunk-4DTV5JVI.js.map