openfox 1.3.3 → 1.5.0

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 (32) hide show
  1. package/dist/auth-JF2HDJ6P.js +53 -0
  2. package/dist/{auto-compaction-RRFGQDQN.js → auto-compaction-PLUVACIZ.js} +4 -4
  3. package/dist/{chat-handler-34PPF43W.js → chat-handler-WH2DZLWN.js} +6 -6
  4. package/dist/{chunk-O7O3XMWO.js → chunk-CGUR45BP.js} +2 -2
  5. package/dist/{chunk-D3C4Z53N.js → chunk-DGYNNFLS.js} +71 -46
  6. package/dist/{chunk-BNK5N227.js → chunk-ICPQDI4L.js} +3 -3
  7. package/dist/{chunk-IBA3NQAD.js → chunk-LJRH7ICU.js} +2 -2
  8. package/dist/{chunk-YSPC6TQJ.js → chunk-PJRARONG.js} +26 -5
  9. package/dist/{chunk-4JBBQQOD.js → chunk-SDRFMWBP.js} +9 -24
  10. package/dist/{chunk-NGSSEMII.js → chunk-UNCPQRFP.js} +12 -6
  11. package/dist/{chunk-ON2IR3E4.js → chunk-ZY3YGCDZ.js} +130 -28
  12. package/dist/cli/dev.js +1 -1
  13. package/dist/cli/index.js +1 -1
  14. package/dist/{config-ONC2MTDE.js → config-NITYYKDA.js} +4 -4
  15. package/dist/{orchestrator-K6PLFOVY.js → orchestrator-545FRLUM.js} +5 -5
  16. package/dist/package.json +1 -1
  17. package/dist/{processor-V57VGPXZ.js → processor-GFCR73FQ.js} +2 -2
  18. package/dist/{protocol-BZ6OIASP.d.ts → protocol-CLWtTnMd.d.ts} +3 -1
  19. package/dist/{provider-FAO4R2GH.js → provider-ES2JTHXK.js} +8 -8
  20. package/dist/{serve-SK5FZJXJ.js → serve-XX2UY3ID.js} +17 -17
  21. package/dist/server/index.d.ts +2 -2
  22. package/dist/server/index.js +8 -8
  23. package/dist/shared/index.d.ts +2 -2
  24. package/dist/{tools-KTY6SVMF.js → tools-DGYGRPUZ.js} +4 -4
  25. package/dist/{vision-fallback-MGSC5SWE.js → vision-fallback-KM6LRAXF.js} +2 -2
  26. package/dist/web/assets/index-DItewd-V.js +142 -0
  27. package/dist/web/assets/{index-BW3T98H-.css → index-DwL8X9JS.css} +1 -1
  28. package/dist/web/index.html +2 -2
  29. package/dist/web/sw.js +1 -1
  30. package/package.json +1 -1
  31. package/dist/init-TLQQLRGQ.js +0 -294
  32. package/dist/web/assets/index-MxvFVrSK.js +0 -142
@@ -2,7 +2,7 @@ import {
2
2
  createVerifierNudgeConfig,
3
3
  runBuilderTurn,
4
4
  runChatTurn
5
- } from "./chunk-O7O3XMWO.js";
5
+ } from "./chunk-CGUR45BP.js";
6
6
  import {
7
7
  TurnMetrics,
8
8
  agentExists,
@@ -40,7 +40,7 @@ import {
40
40
  saveSkill,
41
41
  setSkillEnabled,
42
42
  skillExists
43
- } from "./chunk-4JBBQQOD.js";
43
+ } from "./chunk-SDRFMWBP.js";
44
44
  import {
45
45
  generateSessionName,
46
46
  needsNameGeneration
@@ -48,7 +48,16 @@ import {
48
48
  import {
49
49
  createProviderManager,
50
50
  parseDefaultModelSelection
51
- } from "./chunk-YSPC6TQJ.js";
51
+ } from "./chunk-PJRARONG.js";
52
+ import {
53
+ SessionNotFoundError,
54
+ createLLMClient,
55
+ detectBackend,
56
+ detectModel,
57
+ getBackendDisplayName,
58
+ getLlmStatus,
59
+ getModelProfile
60
+ } from "./chunk-UNCPQRFP.js";
52
61
  import {
53
62
  createSession,
54
63
  deleteSession,
@@ -112,22 +121,13 @@ import {
112
121
  import {
113
122
  createServerMessage
114
123
  } from "./chunk-TPT6HP4H.js";
124
+ import {
125
+ getGlobalConfigDir
126
+ } from "./chunk-R4HADRYO.js";
115
127
  import {
116
128
  getRuntimeConfig,
117
129
  setRuntimeConfig
118
130
  } from "./chunk-TVQOONDR.js";
119
- import {
120
- SessionNotFoundError,
121
- createLLMClient,
122
- detectBackend,
123
- detectModel,
124
- getBackendDisplayName,
125
- getLlmStatus,
126
- getModelProfile
127
- } from "./chunk-NGSSEMII.js";
128
- import {
129
- getGlobalConfigDir
130
- } from "./chunk-R4HADRYO.js";
131
131
  import {
132
132
  logger,
133
133
  setLogLevel
@@ -5788,7 +5788,7 @@ async function createServerHandle(config) {
5788
5788
  return res.status(400).json({ error: "providerId is required" });
5789
5789
  }
5790
5790
  sessionManager.setSessionProvider(sessionId, providerId, model ?? "auto");
5791
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-ONC2MTDE.js");
5791
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-NITYYKDA.js");
5792
5792
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5793
5793
  const updatedConfig = setDefaultModelSelection(globalConfig, providerId, model ?? "auto");
5794
5794
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -5853,7 +5853,7 @@ async function createServerHandle(config) {
5853
5853
  if (!callId || approved === void 0) {
5854
5854
  return res.status(400).json({ error: "callId and approved are required" });
5855
5855
  }
5856
- const { providePathConfirmation: providePathConfirmation2 } = await import("./tools-KTY6SVMF.js");
5856
+ const { providePathConfirmation: providePathConfirmation2 } = await import("./tools-DGYGRPUZ.js");
5857
5857
  const result = providePathConfirmation2(callId, approved, alwaysAllow);
5858
5858
  if (!result.found) {
5859
5859
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -5878,7 +5878,7 @@ async function createServerHandle(config) {
5878
5878
  if (!callId || !answer) {
5879
5879
  return res.status(400).json({ error: "callId and answer are required" });
5880
5880
  }
5881
- const { provideAnswer: provideAnswer2 } = await import("./tools-KTY6SVMF.js");
5881
+ const { provideAnswer: provideAnswer2 } = await import("./tools-DGYGRPUZ.js");
5882
5882
  const found = provideAnswer2(callId, answer);
5883
5883
  if (!found) {
5884
5884
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -5914,8 +5914,8 @@ async function createServerHandle(config) {
5914
5914
  if (!session) {
5915
5915
  return res.status(404).json({ error: "Session not found" });
5916
5916
  }
5917
- const { stopSessionExecution } = await import("./chat-handler-34PPF43W.js");
5918
- const { cancelQuestionsForSession: cancelQuestionsForSession2, cancelPathConfirmationsForSession: cancelPathConfirmationsForSession2 } = await import("./tools-KTY6SVMF.js");
5917
+ const { stopSessionExecution } = await import("./chat-handler-WH2DZLWN.js");
5918
+ const { cancelQuestionsForSession: cancelQuestionsForSession2, cancelPathConfirmationsForSession: cancelPathConfirmationsForSession2 } = await import("./tools-DGYGRPUZ.js");
5919
5919
  stopSessionExecution(sessionId, sessionManager);
5920
5920
  abortSession(sessionId);
5921
5921
  cancelQuestionsForSession2(sessionId, "Session stopped by user");
@@ -5967,20 +5967,37 @@ async function createServerHandle(config) {
5967
5967
  setSetting(key, value);
5968
5968
  res.json({ key, value });
5969
5969
  });
5970
- app.get("/api/config", (_req, res) => {
5970
+ app.get("/api/config", async (_req, res) => {
5971
5971
  const llmClient = getLLMClient();
5972
5972
  const activeProvider = providerManager.getActiveProvider();
5973
+ let visionFallback;
5974
+ let globalWorkdir;
5975
+ try {
5976
+ const { loadGlobalConfig, getVisionFallback } = await import("./config-NITYYKDA.js");
5977
+ const globalConfig = await loadGlobalConfig(config.mode ?? "production");
5978
+ const fallback = getVisionFallback(globalConfig);
5979
+ if (fallback) {
5980
+ visionFallback = {
5981
+ enabled: fallback.enabled ?? false,
5982
+ url: fallback.url ?? "http://localhost:11434",
5983
+ model: fallback.model ?? "qwen3-vl:2b",
5984
+ timeout: fallback.timeout ?? 120
5985
+ };
5986
+ }
5987
+ globalWorkdir = globalConfig.workspace?.workdir;
5988
+ } catch {
5989
+ }
5973
5990
  res.json({
5974
5991
  model: llmClient.getModel(),
5975
5992
  maxContext: providerManager.getCurrentModelContext(),
5976
5993
  llmUrl: activeProvider?.url ?? config.llm.baseUrl,
5977
5994
  llmStatus: getLlmStatus(),
5978
5995
  backend: llmClient.getBackend(),
5979
- workdir: config.workdir,
5980
- // Include provider info
5996
+ workdir: globalWorkdir ?? config.workdir,
5981
5997
  providers: providerManager.getProviders(),
5982
5998
  activeProviderId: providerManager.getActiveProviderId(),
5983
- defaultModelSelection: config.defaultModelSelection
5999
+ defaultModelSelection: config.defaultModelSelection,
6000
+ visionFallback
5984
6001
  });
5985
6002
  });
5986
6003
  app.post("/api/model/refresh", async (_req, res) => {
@@ -6007,6 +6024,82 @@ async function createServerHandle(config) {
6007
6024
  backend: llmClient.getBackend()
6008
6025
  });
6009
6026
  });
6027
+ app.post("/api/providers/test", async (req, res) => {
6028
+ const { url, skipBackendDetection } = req.body;
6029
+ if (!url) {
6030
+ return res.status(400).json({ error: "url is required" });
6031
+ }
6032
+ try {
6033
+ const backend = skipBackendDetection ? "auto" : await detectBackend(url);
6034
+ const model = await detectModel(url);
6035
+ res.json({
6036
+ success: true,
6037
+ url,
6038
+ backend,
6039
+ model
6040
+ });
6041
+ } catch (error) {
6042
+ res.status(400).json({
6043
+ success: false,
6044
+ error: error instanceof Error ? error.message : "Connection failed"
6045
+ });
6046
+ }
6047
+ });
6048
+ app.post("/api/providers", async (req, res) => {
6049
+ const { name, url, backend, apiKey, model } = req.body;
6050
+ if (!name || !url || !backend) {
6051
+ return res.status(400).json({ error: "name, url, and backend are required" });
6052
+ }
6053
+ try {
6054
+ const { loadGlobalConfig, saveGlobalConfig, addProvider, setDefaultModelSelection } = await import("./config-NITYYKDA.js");
6055
+ const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6056
+ const providerBackend = backend;
6057
+ const configWithProvider = addProvider(globalConfig, {
6058
+ name,
6059
+ url,
6060
+ backend: providerBackend,
6061
+ apiKey,
6062
+ models: model ? [{ id: model, contextWindow: 2e5, source: "user" }] : [],
6063
+ isActive: true
6064
+ });
6065
+ const finalConfig = setDefaultModelSelection(
6066
+ configWithProvider,
6067
+ configWithProvider.providers[configWithProvider.providers.length - 1].id,
6068
+ model ?? "auto"
6069
+ );
6070
+ await saveGlobalConfig(config.mode ?? "production", finalConfig);
6071
+ providerManager.setProviders(finalConfig.providers, finalConfig.defaultModelSelection ?? void 0);
6072
+ const newProvider = finalConfig.providers[finalConfig.providers.length - 1];
6073
+ res.status(201).json({
6074
+ success: true,
6075
+ provider: newProvider
6076
+ });
6077
+ } catch (error) {
6078
+ res.status(500).json({
6079
+ success: false,
6080
+ error: error instanceof Error ? error.message : "Failed to create provider"
6081
+ });
6082
+ }
6083
+ });
6084
+ app.post("/api/init/config", async (req, res) => {
6085
+ const { workdir, visionFallback } = req.body;
6086
+ try {
6087
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-NITYYKDA.js");
6088
+ const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6089
+ const updatedConfig = {
6090
+ ...globalConfig,
6091
+ workspace: workdir ? { workdir } : globalConfig.workspace,
6092
+ visionFallback: visionFallback ?? globalConfig.visionFallback
6093
+ };
6094
+ await saveGlobalConfig(config.mode ?? "production", updatedConfig);
6095
+ res.json({ success: true });
6096
+ } catch (error) {
6097
+ res.status(500).json({
6098
+ success: false,
6099
+ error: error instanceof Error ? error.message : "Failed to save config"
6100
+ });
6101
+ }
6102
+ });
6010
6103
  app.get("/api/providers", (_req, res) => {
6011
6104
  const providers = providerManager.getProviders().map((p) => ({
6012
6105
  ...p,
@@ -6017,6 +6110,15 @@ async function createServerHandle(config) {
6017
6110
  activeProviderId: providerManager.getActiveProviderId()
6018
6111
  });
6019
6112
  });
6113
+ app.delete("/api/providers/:id", async (req, res) => {
6114
+ const { id } = req.params;
6115
+ const { loadGlobalConfig, saveGlobalConfig, removeProvider } = await import("./config-NITYYKDA.js");
6116
+ const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6117
+ const updatedConfig = removeProvider(globalConfig, id);
6118
+ await saveGlobalConfig(config.mode ?? "production", updatedConfig);
6119
+ providerManager.setProviders(updatedConfig.providers, updatedConfig.defaultModelSelection ?? void 0);
6120
+ res.json({ success: true });
6121
+ });
6020
6122
  app.get("/api/providers/:id/models", async (req, res) => {
6021
6123
  const { id } = req.params;
6022
6124
  const models = await providerManager.getProviderModels(id);
@@ -6030,7 +6132,7 @@ async function createServerHandle(config) {
6030
6132
  return res.status(400).json({ error: result.error });
6031
6133
  }
6032
6134
  const llmClient = getLLMClient();
6033
- const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-ONC2MTDE.js");
6135
+ const { loadGlobalConfig, saveGlobalConfig, setDefaultModelSelection } = await import("./config-NITYYKDA.js");
6034
6136
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6035
6137
  const updatedConfig = setDefaultModelSelection(globalConfig, id, llmClient.getModel());
6036
6138
  await saveGlobalConfig(config.mode ?? "production", updatedConfig);
@@ -6051,7 +6153,7 @@ async function createServerHandle(config) {
6051
6153
  if (!result.success) {
6052
6154
  return res.status(400).json({ error: result.error });
6053
6155
  }
6054
- const { loadGlobalConfig, saveGlobalConfig } = await import("./config-ONC2MTDE.js");
6156
+ const { loadGlobalConfig, saveGlobalConfig } = await import("./config-NITYYKDA.js");
6055
6157
  const globalConfig = await loadGlobalConfig(config.mode ?? "production");
6056
6158
  const updatedProviders = providerManager.getProviders();
6057
6159
  const updatedConfig = {
@@ -6239,7 +6341,7 @@ async function createServerHandle(config) {
6239
6341
  providerManager
6240
6342
  );
6241
6343
  const wss = wssExports.wss;
6242
- const { QueueProcessor } = await import("./processor-V57VGPXZ.js");
6344
+ const { QueueProcessor } = await import("./processor-GFCR73FQ.js");
6243
6345
  const queueProcessor = new QueueProcessor({
6244
6346
  sessionManager,
6245
6347
  providerManager,
@@ -6309,4 +6411,4 @@ export {
6309
6411
  createServerHandle,
6310
6412
  createServer
6311
6413
  };
6312
- //# sourceMappingURL=chunk-ON2IR3E4.js.map
6414
+ //# sourceMappingURL=chunk-ZY3YGCDZ.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-D3C4Z53N.js";
4
+ } from "../chunk-DGYNNFLS.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-D3C4Z53N.js";
4
+ } from "../chunk-DGYNNFLS.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-BNK5N227.js";
17
- import "./chunk-NGSSEMII.js";
16
+ } from "./chunk-ICPQDI4L.js";
17
+ import "./chunk-UNCPQRFP.js";
18
18
  import "./chunk-XFXOSPYH.js";
19
19
  import "./chunk-R4HADRYO.js";
20
- import "./chunk-IBA3NQAD.js";
20
+ import "./chunk-LJRH7ICU.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-ONC2MTDE.js.map
38
+ //# sourceMappingURL=config-NITYYKDA.js.map
@@ -3,7 +3,7 @@ import {
3
3
  runBuilderTurn,
4
4
  runChatTurn,
5
5
  runVerifierTurn
6
- } from "./chunk-O7O3XMWO.js";
6
+ } from "./chunk-CGUR45BP.js";
7
7
  import {
8
8
  TurnMetrics,
9
9
  createChatDoneEvent,
@@ -11,7 +11,8 @@ import {
11
11
  createMessageStartEvent,
12
12
  createToolCallEvent,
13
13
  createToolResultEvent
14
- } from "./chunk-4JBBQQOD.js";
14
+ } from "./chunk-SDRFMWBP.js";
15
+ import "./chunk-XFXOSPYH.js";
15
16
  import "./chunk-NW7PIZH3.js";
16
17
  import "./chunk-WQ4W5H6A.js";
17
18
  import "./chunk-S4QKTRGJ.js";
@@ -20,9 +21,8 @@ import "./chunk-7IOZFJBW.js";
20
21
  import "./chunk-XKFPU2FA.js";
21
22
  import "./chunk-3EHGGBWE.js";
22
23
  import "./chunk-TPT6HP4H.js";
23
- import "./chunk-TVQOONDR.js";
24
- import "./chunk-XFXOSPYH.js";
25
24
  import "./chunk-R4HADRYO.js";
25
+ import "./chunk-TVQOONDR.js";
26
26
  import "./chunk-PNBH3RAX.js";
27
27
  export {
28
28
  TurnMetrics,
@@ -36,4 +36,4 @@ export {
36
36
  runChatTurn,
37
37
  runVerifierTurn
38
38
  };
39
- //# sourceMappingURL=orchestrator-K6PLFOVY.js.map
39
+ //# sourceMappingURL=orchestrator-545FRLUM.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "1.3.3",
3
+ "version": "1.5.0",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -188,7 +188,7 @@ var QueueProcessor = class {
188
188
  backend: provider?.backend ?? llmClient.getBackend(),
189
189
  model: llmClient.getModel()
190
190
  };
191
- const { runChatTurn } = await import("./orchestrator-K6PLFOVY.js");
191
+ const { runChatTurn } = await import("./orchestrator-545FRLUM.js");
192
192
  runChatTurn({
193
193
  sessionManager,
194
194
  sessionId,
@@ -233,4 +233,4 @@ var QueueProcessor = class {
233
233
  export {
234
234
  QueueProcessor
235
235
  };
236
- //# sourceMappingURL=processor-V57VGPXZ.js.map
236
+ //# sourceMappingURL=processor-GFCR73FQ.js.map
@@ -397,7 +397,7 @@ interface Diagnostic {
397
397
  code?: string | number;
398
398
  }
399
399
  /** Supported LLM inference backends */
400
- type LlmBackend = 'vllm' | 'sglang' | 'ollama' | 'llamacpp' | 'unknown';
400
+ type LlmBackend = 'vllm' | 'sglang' | 'ollama' | 'llamacpp' | 'opencode-go' | 'unknown';
401
401
  /** Extended backend type including cloud providers */
402
402
  type ProviderBackend = LlmBackend | 'openai' | 'anthropic' | 'auto';
403
403
  /** Model configuration with context window */
@@ -425,6 +425,8 @@ interface Config {
425
425
  idleTimeout: number;
426
426
  /** Backend type - 'auto' for auto-detection, or explicit backend name */
427
427
  backend: LlmBackend | 'auto';
428
+ /** API key for cloud providers */
429
+ apiKey?: string;
428
430
  /** Disable thinking/reasoning globally (for e2e tests) */
429
431
  disableThinking?: boolean;
430
432
  };
@@ -1,6 +1,3 @@
1
- import {
2
- fetchAvailableModelsFromBackend
3
- } from "./chunk-YSPC6TQJ.js";
4
1
  import {
5
2
  activateProvider,
6
3
  addProvider,
@@ -8,14 +5,17 @@ import {
8
5
  loadGlobalConfig,
9
6
  removeProvider,
10
7
  saveGlobalConfig
11
- } from "./chunk-BNK5N227.js";
8
+ } from "./chunk-ICPQDI4L.js";
9
+ import {
10
+ fetchAvailableModelsFromBackend
11
+ } from "./chunk-PJRARONG.js";
12
12
  import {
13
13
  detectBackend,
14
14
  detectModel
15
- } from "./chunk-NGSSEMII.js";
15
+ } from "./chunk-UNCPQRFP.js";
16
16
  import "./chunk-XFXOSPYH.js";
17
17
  import "./chunk-R4HADRYO.js";
18
- import "./chunk-IBA3NQAD.js";
18
+ import "./chunk-LJRH7ICU.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-ONC2MTDE.js");
251
+ const { setDefaultModelSelection } = await import("./config-NITYYKDA.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-FAO4R2GH.js.map
375
+ //# sourceMappingURL=provider-ES2JTHXK.js.map
@@ -1,10 +1,17 @@
1
+ import {
2
+ getActiveProvider,
3
+ getDefaultModel,
4
+ loadGlobalConfig
5
+ } from "./chunk-ICPQDI4L.js";
1
6
  import {
2
7
  createServer
3
- } from "./chunk-ON2IR3E4.js";
4
- import "./chunk-O7O3XMWO.js";
5
- import "./chunk-4JBBQQOD.js";
8
+ } from "./chunk-ZY3YGCDZ.js";
9
+ import "./chunk-CGUR45BP.js";
10
+ import "./chunk-SDRFMWBP.js";
6
11
  import "./chunk-QDEKU5RL.js";
7
- import "./chunk-YSPC6TQJ.js";
12
+ import "./chunk-PJRARONG.js";
13
+ import "./chunk-UNCPQRFP.js";
14
+ import "./chunk-XFXOSPYH.js";
8
15
  import "./chunk-NW7PIZH3.js";
9
16
  import "./chunk-WQ4W5H6A.js";
10
17
  import "./chunk-S4QKTRGJ.js";
@@ -14,22 +21,15 @@ import "./chunk-XKFPU2FA.js";
14
21
  import "./chunk-3EHGGBWE.js";
15
22
  import "./chunk-QY7BMXWT.js";
16
23
  import "./chunk-TPT6HP4H.js";
17
- import {
18
- loadConfig
19
- } from "./chunk-TVQOONDR.js";
20
- import {
21
- getActiveProvider,
22
- getDefaultModel,
23
- loadGlobalConfig
24
- } from "./chunk-BNK5N227.js";
25
- import "./chunk-NGSSEMII.js";
26
- import "./chunk-XFXOSPYH.js";
27
24
  import {
28
25
  ensureDataDirExists,
29
26
  getDatabasePath,
30
27
  getGlobalConfigPath
31
28
  } from "./chunk-R4HADRYO.js";
32
- import "./chunk-IBA3NQAD.js";
29
+ import {
30
+ loadConfig
31
+ } from "./chunk-TVQOONDR.js";
32
+ import "./chunk-LJRH7ICU.js";
33
33
  import {
34
34
  logger
35
35
  } from "./chunk-PNBH3RAX.js";
@@ -39,7 +39,7 @@ import os from "os";
39
39
  import { statSync } from "fs";
40
40
 
41
41
  // src/constants.ts
42
- var VERSION = "1.3.3";
42
+ var VERSION = "1.5.0";
43
43
 
44
44
  // src/server/utils/network.ts
45
45
  function getNetworkInterfaces() {
@@ -190,4 +190,4 @@ async function runServe(options) {
190
190
  export {
191
191
  runServe
192
192
  };
193
- //# sourceMappingURL=serve-SK5FZJXJ.js.map
193
+ //# sourceMappingURL=serve-XX2UY3ID.js.map
@@ -1,4 +1,4 @@
1
- import { aM as ToolCall, c as Attachment, O as Diagnostic, ai as Provider, a3 as ModelConfig, ay as Session, aH as SessionSummary, aa as Project, aC as SessionMode, aE as SessionPhase, M as Message, G as Criterion, I as CriterionStatus, au as QueuedMessage, z as ContextState, K as DangerLevel$1, aw as ServerMessage, aJ as StatsIdentity, aP as ToolResult, x as Config } from '../protocol-BZ6OIASP.js';
1
+ import { aM as ToolCall, c as Attachment, O as Diagnostic, ai as Provider, a3 as ModelConfig, ay as Session, aH as SessionSummary, aa as Project, aC as SessionMode, aE as SessionPhase, M as Message, G as Criterion, I as CriterionStatus, au as QueuedMessage, z as ContextState, K as DangerLevel$1, aw as ServerMessage, aJ as StatsIdentity, aP as ToolResult, x as Config } from '../protocol-CLWtTnMd.js';
2
2
  import { Server } from 'node:http';
3
3
 
4
4
  interface LLMMessage {
@@ -96,7 +96,7 @@ interface ModelProfile {
96
96
  * LLM Backend detection and capabilities.
97
97
  * Supports vLLM, SGLang, Ollama, and llama.cpp inference engines.
98
98
  */
99
- type Backend = 'vllm' | 'sglang' | 'ollama' | 'llamacpp' | 'unknown';
99
+ type Backend = 'vllm' | 'sglang' | 'ollama' | 'llamacpp' | 'opencode-go' | 'unknown';
100
100
 
101
101
  interface LLMClientWithModel extends LLMClient {
102
102
  getModel(): string;
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-ON2IR3E4.js";
5
- import "../chunk-O7O3XMWO.js";
6
- import "../chunk-4JBBQQOD.js";
4
+ } from "../chunk-ZY3YGCDZ.js";
5
+ import "../chunk-CGUR45BP.js";
6
+ import "../chunk-SDRFMWBP.js";
7
7
  import "../chunk-QDEKU5RL.js";
8
- import "../chunk-YSPC6TQJ.js";
8
+ import "../chunk-PJRARONG.js";
9
+ import "../chunk-UNCPQRFP.js";
10
+ import "../chunk-XFXOSPYH.js";
9
11
  import "../chunk-NW7PIZH3.js";
10
12
  import "../chunk-WQ4W5H6A.js";
11
13
  import "../chunk-S4QKTRGJ.js";
@@ -15,11 +17,9 @@ import "../chunk-XKFPU2FA.js";
15
17
  import "../chunk-3EHGGBWE.js";
16
18
  import "../chunk-QY7BMXWT.js";
17
19
  import "../chunk-TPT6HP4H.js";
18
- import "../chunk-TVQOONDR.js";
19
- import "../chunk-NGSSEMII.js";
20
- import "../chunk-XFXOSPYH.js";
21
20
  import "../chunk-R4HADRYO.js";
22
- import "../chunk-IBA3NQAD.js";
21
+ import "../chunk-TVQOONDR.js";
22
+ import "../chunk-LJRH7ICU.js";
23
23
  import "../chunk-PNBH3RAX.js";
24
24
  export {
25
25
  createServer,
@@ -1,5 +1,5 @@
1
- import { M as Message, S as SessionStats } from '../protocol-BZ6OIASP.js';
2
- export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, c as Attachment, C as CallStatsDataPoint, d as ChatAskUserPayload, e as ChatDeltaPayload, f as ChatDonePayload, g as ChatErrorPayload, h as ChatFormatRetryPayload, i as ChatMessagePayload, j as ChatMessageUpdatedPayload, k as ChatPathConfirmationPayload, l as ChatProgressPayload, m as ChatSendPayload, n as ChatSummaryPayload, o as ChatThinkingPayload, p as ChatTodoPayload, q as ChatToolCallPayload, r as ChatToolOutputPayload, s as ChatToolPreparingPayload, t as ChatToolResultPayload, u as ChatVisionFallbackPayload, v as ClientMessage, w as ClientMessageType, x as Config, y as ContextCompactionEvent, z as ContextState, B as ContextStatePayload, D as ContextWindow, E as CriteriaEditPayload, F as CriteriaUpdatedPayload, G as Criterion, H as CriterionAttempt, I as CriterionStatus, J as CriterionValidation, K as DangerLevel, L as DevServerOutputPayload, N as DevServerStatePayload, O as Diagnostic, P as EditContextEdit, Q as EditContextLine, R as EditContextRegion, T as ErrorPayload, U as ExecutionState, V as FileReadEntry, W as InjectedFile, X as LLMCallStats, Y as LlmBackend, Z as LspDiagnosticsPayload, _ as MessageRole, $ as MessageSegment, a0 as MessageStats, a1 as ModeChangedPayload, a2 as ModeSwitchPayload, a3 as ModelConfig, a4 as ModelSessionStats, a5 as PathConfirmPayload, a6 as PathConfirmationReason, a7 as PendingPathConfirmationPayload, a8 as PhaseChangedPayload, a9 as PreparingToolCall, aa as Project, ab as ProjectDeletedPayload, ac as ProjectListPayload, ad as ProjectStatePayload, ae as PromptContext, af as PromptContextMessage, ag as PromptContextTool, ah as PromptRequestOptions, ai as Provider, aj as ProviderBackend, ak as ProviderChangedPayload, al as QueueAddedEvent, am as QueueAsapPayload, an as QueueCancelPayload, ao as QueueCancelledEvent, ap as QueueCompletionPayload, aq as QueueDrainedEvent, ar as QueueEvent, as as QueueEventType, at as QueueStatePayload, au as QueuedMessage, av as RecentUserPrompt, aw as ServerMessage, ax as ServerMessageType, ay as Session, az as SessionListPayload, aA as SessionLoadPayload, aB as SessionMetadata, aC as SessionMode, aD as SessionNameGeneratedPayload, aE as SessionPhase, aF as SessionRunningPayload, aG as SessionStatePayload, aH as SessionSummary, aI as StatsDataPoint, aJ as StatsIdentity, aK as TaskCompletedPayload, aL as Todo, aM as ToolCall, aN as ToolMode, aO as ToolName, aP as ToolResult, aQ as ValidationResult, aR as createClientMessage, aS as createServerMessage, aT as isClientMessage, aU as isServerMessage } from '../protocol-BZ6OIASP.js';
1
+ import { M as Message, S as SessionStats } from '../protocol-CLWtTnMd.js';
2
+ export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, c as Attachment, C as CallStatsDataPoint, d as ChatAskUserPayload, e as ChatDeltaPayload, f as ChatDonePayload, g as ChatErrorPayload, h as ChatFormatRetryPayload, i as ChatMessagePayload, j as ChatMessageUpdatedPayload, k as ChatPathConfirmationPayload, l as ChatProgressPayload, m as ChatSendPayload, n as ChatSummaryPayload, o as ChatThinkingPayload, p as ChatTodoPayload, q as ChatToolCallPayload, r as ChatToolOutputPayload, s as ChatToolPreparingPayload, t as ChatToolResultPayload, u as ChatVisionFallbackPayload, v as ClientMessage, w as ClientMessageType, x as Config, y as ContextCompactionEvent, z as ContextState, B as ContextStatePayload, D as ContextWindow, E as CriteriaEditPayload, F as CriteriaUpdatedPayload, G as Criterion, H as CriterionAttempt, I as CriterionStatus, J as CriterionValidation, K as DangerLevel, L as DevServerOutputPayload, N as DevServerStatePayload, O as Diagnostic, P as EditContextEdit, Q as EditContextLine, R as EditContextRegion, T as ErrorPayload, U as ExecutionState, V as FileReadEntry, W as InjectedFile, X as LLMCallStats, Y as LlmBackend, Z as LspDiagnosticsPayload, _ as MessageRole, $ as MessageSegment, a0 as MessageStats, a1 as ModeChangedPayload, a2 as ModeSwitchPayload, a3 as ModelConfig, a4 as ModelSessionStats, a5 as PathConfirmPayload, a6 as PathConfirmationReason, a7 as PendingPathConfirmationPayload, a8 as PhaseChangedPayload, a9 as PreparingToolCall, aa as Project, ab as ProjectDeletedPayload, ac as ProjectListPayload, ad as ProjectStatePayload, ae as PromptContext, af as PromptContextMessage, ag as PromptContextTool, ah as PromptRequestOptions, ai as Provider, aj as ProviderBackend, ak as ProviderChangedPayload, al as QueueAddedEvent, am as QueueAsapPayload, an as QueueCancelPayload, ao as QueueCancelledEvent, ap as QueueCompletionPayload, aq as QueueDrainedEvent, ar as QueueEvent, as as QueueEventType, at as QueueStatePayload, au as QueuedMessage, av as RecentUserPrompt, aw as ServerMessage, ax as ServerMessageType, ay as Session, az as SessionListPayload, aA as SessionLoadPayload, aB as SessionMetadata, aC as SessionMode, aD as SessionNameGeneratedPayload, aE as SessionPhase, aF as SessionRunningPayload, aG as SessionStatePayload, aH as SessionSummary, aI as StatsDataPoint, aJ as StatsIdentity, aK as TaskCompletedPayload, aL as Todo, aM as ToolCall, aN as ToolMode, aO as ToolName, aP as ToolResult, aQ as ValidationResult, aR as createClientMessage, aS as createServerMessage, aT as isClientMessage, aU as isServerMessage } from '../protocol-CLWtTnMd.js';
3
3
 
4
4
  /**
5
5
  * Session stats computation - aggregates response-level MessageStats from
@@ -11,7 +11,8 @@ import {
11
11
  requestPathAccess,
12
12
  stepDoneTool,
13
13
  validateToolAction
14
- } from "./chunk-4JBBQQOD.js";
14
+ } from "./chunk-SDRFMWBP.js";
15
+ import "./chunk-XFXOSPYH.js";
15
16
  import "./chunk-NW7PIZH3.js";
16
17
  import "./chunk-WQ4W5H6A.js";
17
18
  import "./chunk-S4QKTRGJ.js";
@@ -24,9 +25,8 @@ import "./chunk-7IOZFJBW.js";
24
25
  import "./chunk-XKFPU2FA.js";
25
26
  import "./chunk-3EHGGBWE.js";
26
27
  import "./chunk-TPT6HP4H.js";
27
- import "./chunk-TVQOONDR.js";
28
- import "./chunk-XFXOSPYH.js";
29
28
  import "./chunk-R4HADRYO.js";
29
+ import "./chunk-TVQOONDR.js";
30
30
  import "./chunk-PNBH3RAX.js";
31
31
  export {
32
32
  AskUserInterrupt,
@@ -45,4 +45,4 @@ export {
45
45
  stepDoneTool,
46
46
  validateToolAction
47
47
  };
48
- //# sourceMappingURL=tools-KTY6SVMF.js.map
48
+ //# sourceMappingURL=tools-DGYGRPUZ.js.map
@@ -7,7 +7,7 @@ import {
7
7
  getVisionFallbackConfig,
8
8
  isVisionFallbackEnabled,
9
9
  setVisionFallbackConfig
10
- } from "./chunk-IBA3NQAD.js";
10
+ } from "./chunk-LJRH7ICU.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-MGSC5SWE.js.map
22
+ //# sourceMappingURL=vision-fallback-KM6LRAXF.js.map