openfox 2.0.0-beta.5 → 2.0.0-beta.7

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 (48) hide show
  1. package/dist/{chat-handler-BM6EBFKS.js → chat-handler-XIAY7O5X.js} +14 -27
  2. package/dist/{chunk-NNEHZT3V.js → chunk-2ZS2B5HW.js} +11 -3
  3. package/dist/{chunk-HGAMIPFO.js → chunk-7FDY3EOH.js} +18 -176
  4. package/dist/{chunk-V6DYJV5R.js → chunk-7TTEGAO6.js} +12 -10
  5. package/dist/{chunk-T4HV6GS5.js → chunk-BVHFMAVN.js} +1 -1
  6. package/dist/{chunk-OBD6D5ZO.js → chunk-CDDMHSZF.js} +4 -4
  7. package/dist/{chunk-X36JIWSF.js → chunk-DFITQ75T.js} +135 -147
  8. package/dist/{chunk-HHAJ3QF6.js → chunk-EMJGF3A7.js} +9 -24
  9. package/dist/{chunk-RF2JGDSS.js → chunk-IGSZUXQP.js} +3 -3
  10. package/dist/{chunk-I67T2E5K.js → chunk-KAYUPVHQ.js} +6 -6
  11. package/dist/{chunk-CLGRPDZT.js → chunk-LN22TXNK.js} +196 -91
  12. package/dist/{chunk-UH27FDT7.js → chunk-NPHYEUYE.js} +124 -12
  13. package/dist/{chunk-DFWGWULB.js → chunk-QN5ST54E.js} +2935 -3127
  14. package/dist/{chunk-PSJIT5LZ.js → chunk-RFNEDBVO.js} +4 -4
  15. package/dist/chunk-RI6GAMNP.js +13 -0
  16. package/dist/{chunk-XL7SW5B4.js → chunk-XJEOP6XU.js} +5 -4
  17. package/dist/cli/dev.js +1 -1
  18. package/dist/cli/index.js +1 -1
  19. package/dist/compactor-TDNRM3A7.js +9 -0
  20. package/dist/{config-YU7NYZYG.js → config-QUT7YZQ7.js} +9 -8
  21. package/dist/{events-T37KTNCX.js → events-PQ3KTI5H.js} +8 -7
  22. package/dist/{folding-IIKWAGG2.js → folding-CXORTBAU.js} +2 -2
  23. package/dist/{orchestrator-JTUHXF7C.js → orchestrator-GAOENX5Q.js} +18 -22
  24. package/dist/package.json +1 -1
  25. package/dist/{processor-66YBBQ6B.js → processor-6VIYGURD.js} +8 -9
  26. package/dist/{protocol-CiYlonA5.d.ts → protocol-CDOV1pyc.d.ts} +11 -0
  27. package/dist/{protocol-ALBHLBBF.js → protocol-CN24IKQN.js} +3 -5
  28. package/dist/{provider-HTJEB3ON.js → provider-4T6BVPMD.js} +25 -10
  29. package/dist/{serve-EUEQ6ERI.js → serve-W3ETJJP3.js} +25 -26
  30. package/dist/server/index.d.ts +1 -6
  31. package/dist/server/index.js +15 -16
  32. package/dist/{settings-VRAOAPLA.js → settings-6XX56F3F.js} +2 -2
  33. package/dist/shared/index.d.ts +2 -2
  34. package/dist/shared/index.js +1 -1
  35. package/dist/{tools-56LACLKH.js → tools-SDXWIYSA.js} +11 -13
  36. package/dist/web/assets/index-Dm6t3VVB.js +299 -0
  37. package/dist/web/assets/{index-C5gaXnFj.css → index-aa3jRAZ9.css} +2 -2
  38. package/dist/web/index.html +2 -2
  39. package/dist/web/sw.js +1 -1
  40. package/dist/workflow-defaults/default.workflow.json +3 -3
  41. package/package.json +1 -1
  42. package/dist/auto-compaction-2ZAYDXGF.js +0 -27
  43. package/dist/chunk-CGZHLM3K.js +0 -70
  44. package/dist/chunk-SZKEGZIB.js +0 -140
  45. package/dist/runtime-config-NPSPMRDA.js +0 -9
  46. package/dist/vision-fallback-3MIZZ6NQ.js +0 -22
  47. package/dist/web/assets/index-DQ2Vv-Yl.js +0 -317
  48. /package/dist/web/{workbox-7fc22fbe.js → workbox-8c29f6e4.js} +0 -0
@@ -15,9 +15,9 @@ var SETTINGS_KEYS = {
15
15
  DISPLAY_USER_PRESETS: "display.userPresets",
16
16
  DISPLAY_FOLLOW_SYSTEM_THEME: "display.followSystemTheme",
17
17
  DISPLAY_SHOW_OPEN_IN_EDITOR: "display.showOpenInEditorLinks",
18
- LLM_DISABLE_XML_PROTECTION: "llm.disableXmlProtection",
19
18
  LLM_DYNAMIC_SYSTEM_PROMPT: "llm.dynamicSystemPrompt",
20
- KEYBINDINGS: "keybindings"
19
+ KEYBINDINGS: "keybindings",
20
+ RETRY_PATTERNS: "agent.retryPatterns"
21
21
  };
22
22
  var SETTINGS_DEFAULTS = {
23
23
  [SETTINGS_KEYS.DISPLAY_SHOW_THINKING]: "true",
@@ -29,8 +29,8 @@ var SETTINGS_DEFAULTS = {
29
29
  [SETTINGS_KEYS.DISPLAY_THEME]: JSON.stringify({ preset: "dark" }),
30
30
  [SETTINGS_KEYS.DISPLAY_FOLLOW_SYSTEM_THEME]: "true",
31
31
  [SETTINGS_KEYS.DISPLAY_SHOW_OPEN_IN_EDITOR]: "false",
32
- [SETTINGS_KEYS.LLM_DISABLE_XML_PROTECTION]: "false",
33
32
  [SETTINGS_KEYS.LLM_DYNAMIC_SYSTEM_PROMPT]: "false",
33
+ [SETTINGS_KEYS.RETRY_PATTERNS]: JSON.stringify({ patterns: [], maxRetriesPerTurn: 10 }),
34
34
  [SETTINGS_KEYS.KEYBINDINGS]: JSON.stringify({
35
35
  terminalToggle: { type: "double-press", key: "Control", threshold: 300 },
36
36
  quickAction: { type: "double-press", key: "Shift", threshold: 300 },
@@ -88,4 +88,4 @@ export {
88
88
  deleteSetting,
89
89
  getAllSettings
90
90
  };
91
- //# sourceMappingURL=chunk-PSJIT5LZ.js.map
91
+ //# sourceMappingURL=chunk-RFNEDBVO.js.map
@@ -0,0 +1,13 @@
1
+ // src/server/context/compactor.ts
2
+ function shouldCompact(currentTokens, maxTokens, threshold) {
3
+ return currentTokens > maxTokens * threshold;
4
+ }
5
+ function getCompactionTarget(maxTokens, targetRatio) {
6
+ return Math.floor(maxTokens * targetRatio);
7
+ }
8
+
9
+ export {
10
+ shouldCompact,
11
+ getCompactionTarget
12
+ };
13
+ //# sourceMappingURL=chunk-RI6GAMNP.js.map
@@ -134,9 +134,10 @@ function applyEvents(initialMessages, events, options) {
134
134
  }
135
135
  break;
136
136
  }
137
- case "format.retry": {
137
+ case "pattern.retry": {
138
138
  const data = event.data;
139
- for (const msg of messages.values()) {
139
+ const msg = messages.get(data.messageId);
140
+ if (msg) {
140
141
  const retries = msg.formatRetries ?? [];
141
142
  retries.push({ attempt: data.attempt, maxAttempts: data.maxAttempts, timestamp: event.timestamp });
142
143
  msg.formatRetries = retries;
@@ -708,7 +709,7 @@ function foldSessionState(events, initialWindowId, maxTokens, initialMessages) {
708
709
  }
709
710
  break;
710
711
  }
711
- case "format.retry": {
712
+ case "pattern.retry": {
712
713
  const data = event.data;
713
714
  formatRetries.push({
714
715
  attempt: data.attempt,
@@ -884,4 +885,4 @@ export {
884
885
  getMessagesForWindow,
885
886
  buildContextMessagesFromMessages
886
887
  };
887
- //# sourceMappingURL=chunk-XL7SW5B4.js.map
888
+ //# sourceMappingURL=chunk-XJEOP6XU.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-I67T2E5K.js";
4
+ } from "../chunk-KAYUPVHQ.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.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-I67T2E5K.js";
4
+ } from "../chunk-KAYUPVHQ.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.js";
@@ -0,0 +1,9 @@
1
+ import {
2
+ getCompactionTarget,
3
+ shouldCompact
4
+ } from "./chunk-RI6GAMNP.js";
5
+ export {
6
+ getCompactionTarget,
7
+ shouldCompact
8
+ };
9
+ //# sourceMappingURL=compactor-TDNRM3A7.js.map
@@ -12,13 +12,13 @@ import {
12
12
  removeProvider,
13
13
  saveGlobalConfig,
14
14
  setDefaultModelSelection,
15
- trySmartDefaults
16
- } from "./chunk-NNEHZT3V.js";
17
- import "./chunk-HHAJ3QF6.js";
18
- import "./chunk-HGAMIPFO.js";
19
- import "./chunk-CQGTEGKL.js";
20
- import "./chunk-SZKEGZIB.js";
15
+ trySmartDefaults,
16
+ updateProvider
17
+ } from "./chunk-2ZS2B5HW.js";
18
+ import "./chunk-EMJGF3A7.js";
19
+ import "./chunk-7FDY3EOH.js";
21
20
  import "./chunk-K44MW7JJ.js";
21
+ import "./chunk-CQGTEGKL.js";
22
22
  export {
23
23
  activateProvider,
24
24
  addProvider,
@@ -33,6 +33,7 @@ export {
33
33
  removeProvider,
34
34
  saveGlobalConfig,
35
35
  setDefaultModelSelection,
36
- trySmartDefaults
36
+ trySmartDefaults,
37
+ updateProvider
37
38
  };
38
- //# sourceMappingURL=config-YU7NYZYG.js.map
39
+ //# sourceMappingURL=config-QUT7YZQ7.js.map
@@ -10,12 +10,12 @@ import {
10
10
  emitCriteriaSet,
11
11
  emitCriterionUpdated,
12
12
  emitFileRead,
13
- emitFormatRetry,
14
13
  emitMessageDelta,
15
14
  emitMessageDone,
16
15
  emitMessageThinking,
17
16
  emitMetadataSet,
18
17
  emitModeChanged,
18
+ emitPatternRetry,
19
19
  emitPhaseChanged,
20
20
  emitRunningChanged,
21
21
  emitSessionInitialized,
@@ -28,6 +28,7 @@ import {
28
28
  emitUserMessage,
29
29
  getContextMessages,
30
30
  getCurrentContextWindowId,
31
+ getCurrentWindowMessageOptions,
31
32
  getCurrentWindowMessages,
32
33
  getEventStore,
33
34
  getReadFilesCache,
@@ -38,8 +39,7 @@ import {
38
39
  isStoredEvent,
39
40
  isTurnEvent,
40
41
  truncateSessionMessages
41
- } from "./chunk-UH27FDT7.js";
42
- import "./chunk-FBGWG4N6.js";
42
+ } from "./chunk-NPHYEUYE.js";
43
43
  import {
44
44
  buildContextMessagesFromEventHistory,
45
45
  buildContextMessagesFromMessages,
@@ -56,8 +56,8 @@ import {
56
56
  foldTodos,
57
57
  foldTurnEventsToSnapshotMessages,
58
58
  getMessagesForWindow
59
- } from "./chunk-XL7SW5B4.js";
60
- import "./chunk-CGZHLM3K.js";
59
+ } from "./chunk-XJEOP6XU.js";
60
+ import "./chunk-FBGWG4N6.js";
61
61
  import "./chunk-K44MW7JJ.js";
62
62
  export {
63
63
  EventStore,
@@ -77,12 +77,12 @@ export {
77
77
  emitCriteriaSet,
78
78
  emitCriterionUpdated,
79
79
  emitFileRead,
80
- emitFormatRetry,
81
80
  emitMessageDelta,
82
81
  emitMessageDone,
83
82
  emitMessageThinking,
84
83
  emitMetadataSet,
85
84
  emitModeChanged,
85
+ emitPatternRetry,
86
86
  emitPhaseChanged,
87
87
  emitRunningChanged,
88
88
  emitSessionInitialized,
@@ -103,6 +103,7 @@ export {
103
103
  foldTurnEventsToSnapshotMessages,
104
104
  getContextMessages,
105
105
  getCurrentContextWindowId,
106
+ getCurrentWindowMessageOptions,
106
107
  getCurrentWindowMessages,
107
108
  getEventStore,
108
109
  getMessagesForWindow,
@@ -115,4 +116,4 @@ export {
115
116
  isTurnEvent,
116
117
  truncateSessionMessages
117
118
  };
118
- //# sourceMappingURL=events-T37KTNCX.js.map
119
+ //# sourceMappingURL=events-PQ3KTI5H.js.map
@@ -23,7 +23,7 @@ import {
23
23
  handleToolResult,
24
24
  spreadOptionalMessageFields,
25
25
  stripOrphanedToolCalls
26
- } from "./chunk-XL7SW5B4.js";
26
+ } from "./chunk-XJEOP6XU.js";
27
27
  export {
28
28
  buildContextMessagesFromEventHistory,
29
29
  buildContextMessagesFromMessages,
@@ -50,4 +50,4 @@ export {
50
50
  spreadOptionalMessageFields,
51
51
  stripOrphanedToolCalls
52
52
  };
53
- //# sourceMappingURL=folding-IIKWAGG2.js.map
53
+ //# sourceMappingURL=folding-CXORTBAU.js.map
@@ -1,9 +1,8 @@
1
1
  import {
2
- filterToolRegistryForStepDone,
3
- runBuilderTurn,
4
- runChatTurn,
5
- runVerifierTurn
6
- } from "./chunk-X36JIWSF.js";
2
+ injectWorkflowKickoffIfNeeded,
3
+ runAgentTurn,
4
+ runChatTurn
5
+ } from "./chunk-DFITQ75T.js";
7
6
  import {
8
7
  TurnMetrics,
9
8
  createChatDoneEvent,
@@ -11,23 +10,21 @@ import {
11
10
  createMessageStartEvent,
12
11
  createToolCallEvent,
13
12
  createToolResultEvent
14
- } from "./chunk-DFWGWULB.js";
15
- import "./chunk-PSJIT5LZ.js";
16
- import "./chunk-XAMAYRDA.js";
13
+ } from "./chunk-QN5ST54E.js";
17
14
  import "./chunk-DL6ZILAF.js";
18
15
  import "./chunk-PBGOZMVY.js";
19
16
  import "./chunk-VRGRAQDG.js";
20
- import "./chunk-HGAMIPFO.js";
21
- import "./chunk-UH27FDT7.js";
22
- import "./chunk-FBGWG4N6.js";
23
- import "./chunk-XL7SW5B4.js";
24
- import "./chunk-V6DYJV5R.js";
17
+ import "./chunk-NPHYEUYE.js";
18
+ import "./chunk-XJEOP6XU.js";
19
+ import "./chunk-7TTEGAO6.js";
25
20
  import "./chunk-BJYPTN5S.js";
26
- import "./chunk-T4HV6GS5.js";
27
- import "./chunk-CQGTEGKL.js";
28
- import "./chunk-CGZHLM3K.js";
29
- import "./chunk-SZKEGZIB.js";
21
+ import "./chunk-RFNEDBVO.js";
22
+ import "./chunk-XAMAYRDA.js";
23
+ import "./chunk-FBGWG4N6.js";
24
+ import "./chunk-BVHFMAVN.js";
25
+ import "./chunk-7FDY3EOH.js";
30
26
  import "./chunk-K44MW7JJ.js";
27
+ import "./chunk-CQGTEGKL.js";
31
28
  export {
32
29
  TurnMetrics,
33
30
  createChatDoneEvent,
@@ -35,9 +32,8 @@ export {
35
32
  createMessageStartEvent,
36
33
  createToolCallEvent,
37
34
  createToolResultEvent,
38
- filterToolRegistryForStepDone,
39
- runBuilderTurn,
40
- runChatTurn,
41
- runVerifierTurn
35
+ injectWorkflowKickoffIfNeeded,
36
+ runAgentTurn,
37
+ runChatTurn
42
38
  };
43
- //# sourceMappingURL=orchestrator-JTUHXF7C.js.map
39
+ //# sourceMappingURL=orchestrator-GAOENX5Q.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "2.0.0-beta.5",
3
+ "version": "2.0.0-beta.7",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -5,18 +5,17 @@ import {
5
5
  generateSessionName,
6
6
  getSessionMessageCount,
7
7
  needsNameGenerationCheck
8
- } from "./chunk-OBD6D5ZO.js";
8
+ } from "./chunk-CDDMHSZF.js";
9
9
  import {
10
10
  getEventStore
11
- } from "./chunk-UH27FDT7.js";
12
- import "./chunk-FBGWG4N6.js";
13
- import "./chunk-XL7SW5B4.js";
11
+ } from "./chunk-NPHYEUYE.js";
12
+ import "./chunk-XJEOP6XU.js";
14
13
  import {
15
14
  createChatMessageMessage,
16
15
  createSessionRunningMessage
17
- } from "./chunk-V6DYJV5R.js";
18
- import "./chunk-T4HV6GS5.js";
19
- import "./chunk-CGZHLM3K.js";
16
+ } from "./chunk-7TTEGAO6.js";
17
+ import "./chunk-FBGWG4N6.js";
18
+ import "./chunk-BVHFMAVN.js";
20
19
  import {
21
20
  logger
22
21
  } from "./chunk-K44MW7JJ.js";
@@ -177,7 +176,7 @@ var QueueProcessor = class {
177
176
  backend: provider?.backend ?? llmClient.getBackend(),
178
177
  model: llmClient.getModel()
179
178
  };
180
- const { runChatTurn } = await import("./orchestrator-JTUHXF7C.js");
179
+ const { runChatTurn } = await import("./orchestrator-GAOENX5Q.js");
181
180
  const runChatTurnParams = buildRunChatTurnParams({
182
181
  sessionManager,
183
182
  sessionId,
@@ -221,4 +220,4 @@ var QueueProcessor = class {
221
220
  export {
222
221
  QueueProcessor
223
222
  };
224
- //# sourceMappingURL=processor-66YBBQ6B.js.map
223
+ //# sourceMappingURL=processor-6VIYGURD.js.map
@@ -417,6 +417,7 @@ interface Provider {
417
417
  isActive: boolean;
418
418
  createdAt: string;
419
419
  status?: 'connected' | 'disconnected' | 'unknown';
420
+ isLocal?: boolean | undefined;
420
421
  }
421
422
  interface Config {
422
423
  llm: {
@@ -430,6 +431,8 @@ interface Config {
430
431
  apiKey?: string;
431
432
  /** Disable thinking/reasoning globally (for e2e tests) */
432
433
  disableThinking?: boolean;
434
+ /** Vision model for image description fallback when primary model lacks vision support */
435
+ visionModel?: string;
433
436
  };
434
437
  context: {
435
438
  maxTokens: number;
@@ -440,6 +443,11 @@ interface Config {
440
443
  maxIterations: number;
441
444
  maxConsecutiveFailures: number;
442
445
  toolTimeout: number;
446
+ /** Auto-loop patterns: when LLM response matches, auto-inject a response */
447
+ autoPatterns?: Array<{
448
+ pattern: string;
449
+ response: string;
450
+ }>;
443
451
  };
444
452
  server: {
445
453
  port: number;
@@ -585,6 +593,9 @@ interface ChatProgressPayload {
585
593
  interface ChatFormatRetryPayload {
586
594
  attempt: number;
587
595
  maxAttempts: number;
596
+ pattern?: string;
597
+ field?: string;
598
+ matchedContent?: string;
588
599
  }
589
600
  interface ChatVisionFallbackPayload {
590
601
  type: 'start' | 'done';
@@ -14,7 +14,6 @@ import {
14
14
  createChatToolOutputMessage,
15
15
  createChatToolPreparingMessage,
16
16
  createChatToolResultMessage,
17
- createChatVisionFallbackMessage,
18
17
  createContextStateMessage,
19
18
  createCriteriaUpdatedMessage,
20
19
  createErrorMessage,
@@ -36,8 +35,8 @@ import {
36
35
  parseClientMessage,
37
36
  serializeServerMessage,
38
37
  storedEventToServerMessage
39
- } from "./chunk-V6DYJV5R.js";
40
- import "./chunk-T4HV6GS5.js";
38
+ } from "./chunk-7TTEGAO6.js";
39
+ import "./chunk-BVHFMAVN.js";
41
40
  export {
42
41
  createChatAskUserMessage,
43
42
  createChatDeltaMessage,
@@ -54,7 +53,6 @@ export {
54
53
  createChatToolOutputMessage,
55
54
  createChatToolPreparingMessage,
56
55
  createChatToolResultMessage,
57
- createChatVisionFallbackMessage,
58
56
  createContextStateMessage,
59
57
  createCriteriaUpdatedMessage,
60
58
  createErrorMessage,
@@ -77,4 +75,4 @@ export {
77
75
  serializeServerMessage,
78
76
  storedEventToServerMessage
79
77
  };
80
- //# sourceMappingURL=protocol-ALBHLBBF.js.map
78
+ //# sourceMappingURL=protocol-CN24IKQN.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ fetchAvailableModelsFromBackend
3
+ } from "./chunk-IGSZUXQP.js";
1
4
  import {
2
5
  activateProvider,
3
6
  addProvider,
@@ -5,19 +8,15 @@ import {
5
8
  loadGlobalConfig,
6
9
  removeProvider,
7
10
  saveGlobalConfig
8
- } from "./chunk-NNEHZT3V.js";
9
- import {
10
- fetchAvailableModelsFromBackend
11
- } from "./chunk-RF2JGDSS.js";
11
+ } from "./chunk-2ZS2B5HW.js";
12
12
  import {
13
13
  detectModel
14
- } from "./chunk-HHAJ3QF6.js";
14
+ } from "./chunk-EMJGF3A7.js";
15
15
  import {
16
16
  detectBackend
17
- } from "./chunk-HGAMIPFO.js";
18
- import "./chunk-CQGTEGKL.js";
19
- import "./chunk-SZKEGZIB.js";
17
+ } from "./chunk-7FDY3EOH.js";
20
18
  import "./chunk-K44MW7JJ.js";
19
+ import "./chunk-CQGTEGKL.js";
21
20
 
22
21
  // src/cli/provider.ts
23
22
  import { select, text, password, spinner, log, outro, isCancel, cancel } from "@clack/prompts";
@@ -138,6 +137,21 @@ async function runProviderAdd(mode) {
138
137
  }
139
138
  }
140
139
  }
140
+ const localBackends = /* @__PURE__ */ new Set(["vllm", "sglang", "ollama", "llamacpp", "opencode-go"]);
141
+ const defaultIsLocal = localBackends.has(backend);
142
+ const isLocalChoice = await select({
143
+ message: "Is this a local provider?",
144
+ options: [
145
+ { value: "yes", label: "Yes" },
146
+ { value: "no", label: "No" }
147
+ ],
148
+ initialValue: defaultIsLocal ? "yes" : "no"
149
+ });
150
+ if (isCancel(isLocalChoice)) {
151
+ cancel("Cancelled");
152
+ return;
153
+ }
154
+ const isLocal = isLocalChoice === "yes";
141
155
  let apiKey;
142
156
  if (backend === "openai" || backend === "anthropic") {
143
157
  const key = await password({
@@ -244,11 +258,12 @@ async function runProviderAdd(mode) {
244
258
  url,
245
259
  backend: finalBackend,
246
260
  apiKey,
261
+ isLocal,
247
262
  models,
248
263
  isActive: makeActive
249
264
  });
250
265
  if (makeActive) {
251
- const { setDefaultModelSelection } = await import("./config-YU7NYZYG.js");
266
+ const { setDefaultModelSelection } = await import("./config-QUT7YZQ7.js");
252
267
  newConfig = setDefaultModelSelection(
253
268
  newConfig,
254
269
  newConfig.providers[newConfig.providers.length - 1].id,
@@ -376,4 +391,4 @@ export {
376
391
  runProviderRemove,
377
392
  runProviderUse
378
393
  };
379
- //# sourceMappingURL=provider-HTJEB3ON.js.map
394
+ //# sourceMappingURL=provider-4T6BVPMD.js.map
@@ -1,41 +1,40 @@
1
- import {
2
- getActiveProvider,
3
- getDefaultModel,
4
- loadGlobalConfig
5
- } from "./chunk-NNEHZT3V.js";
6
1
  import {
7
2
  VERSION,
8
3
  createServer
9
- } from "./chunk-CLGRPDZT.js";
10
- import "./chunk-X36JIWSF.js";
11
- import "./chunk-DFWGWULB.js";
12
- import "./chunk-PSJIT5LZ.js";
13
- import "./chunk-XAMAYRDA.js";
4
+ } from "./chunk-LN22TXNK.js";
5
+ import "./chunk-RI6GAMNP.js";
6
+ import "./chunk-DFITQ75T.js";
7
+ import "./chunk-QN5ST54E.js";
14
8
  import "./chunk-DL6ZILAF.js";
15
9
  import "./chunk-PBGOZMVY.js";
16
10
  import "./chunk-VRGRAQDG.js";
17
- import "./chunk-RF2JGDSS.js";
18
- import "./chunk-HHAJ3QF6.js";
19
- import "./chunk-HGAMIPFO.js";
20
- import "./chunk-UH27FDT7.js";
21
- import "./chunk-FBGWG4N6.js";
22
- import "./chunk-XL7SW5B4.js";
23
- import "./chunk-V6DYJV5R.js";
11
+ import {
12
+ loadConfig
13
+ } from "./chunk-NPHYEUYE.js";
14
+ import "./chunk-XJEOP6XU.js";
15
+ import "./chunk-7TTEGAO6.js";
24
16
  import "./chunk-BJYPTN5S.js";
17
+ import "./chunk-RFNEDBVO.js";
18
+ import "./chunk-XAMAYRDA.js";
19
+ import "./chunk-FBGWG4N6.js";
25
20
  import "./chunk-VUQCQXXJ.js";
26
- import "./chunk-T4HV6GS5.js";
21
+ import "./chunk-BVHFMAVN.js";
22
+ import "./chunk-IGSZUXQP.js";
23
+ import {
24
+ getActiveProvider,
25
+ getDefaultModel,
26
+ loadGlobalConfig
27
+ } from "./chunk-2ZS2B5HW.js";
28
+ import "./chunk-EMJGF3A7.js";
29
+ import "./chunk-7FDY3EOH.js";
30
+ import {
31
+ logger
32
+ } from "./chunk-K44MW7JJ.js";
27
33
  import {
28
34
  ensureDataDirExists,
29
35
  getDatabasePath,
30
36
  getGlobalConfigPath
31
37
  } from "./chunk-CQGTEGKL.js";
32
- import {
33
- loadConfig
34
- } from "./chunk-CGZHLM3K.js";
35
- import "./chunk-SZKEGZIB.js";
36
- import {
37
- logger
38
- } from "./chunk-K44MW7JJ.js";
39
38
 
40
39
  // src/server/utils/network.ts
41
40
  import os from "os";
@@ -190,4 +189,4 @@ async function runServe(options) {
190
189
  export {
191
190
  runServe
192
191
  };
193
- //# sourceMappingURL=serve-EUEQ6ERI.js.map
192
+ //# sourceMappingURL=serve-W3ETJJP3.js.map
@@ -1,4 +1,4 @@
1
- import { aN as ToolCall, c as Attachment, R as Diagnostic, am as Provider, ab as ModelConfig, az as Session, aI as SessionSummary, ai as Project, aD as SessionMode, aF as SessionPhase, M as Message, J as Criterion, L as CriterionStatus, a8 as MetadataEntry, av as QueuedMessage, F as ContextState, O as DangerLevel$1, ax as ServerMessage, aK as StatsIdentity, aQ as ToolResult, D as Config } from '../protocol-CiYlonA5.js';
1
+ import { aN as ToolCall, c as Attachment, R as Diagnostic, am as Provider, ab as ModelConfig, az as Session, aI as SessionSummary, ai as Project, aD as SessionMode, aF as SessionPhase, M as Message, J as Criterion, L as CriterionStatus, a8 as MetadataEntry, av as QueuedMessage, F as ContextState, O as DangerLevel$1, ax as ServerMessage, aK as StatsIdentity, aQ as ToolResult, D as Config } from '../protocol-CDOV1pyc.js';
2
2
  import { Server } from 'node:http';
3
3
 
4
4
  interface LLMMessage {
@@ -39,9 +39,6 @@ interface LLMCompletionRequest {
39
39
  maxTokens?: number;
40
40
  supportsVision?: boolean;
41
41
  };
42
- disableXmlProtection?: boolean;
43
- onVisionFallbackStart?: (attachmentId: string, filename?: string) => void;
44
- onVisionFallbackDone?: (attachmentId: string, description: string) => void;
45
42
  }
46
43
  interface LLMCompletionResponse {
47
44
  id: string;
@@ -74,8 +71,6 @@ type LLMStreamEvent = {
74
71
  } | {
75
72
  type: 'error';
76
73
  error: string;
77
- } | {
78
- type: 'xml_tool_abort';
79
74
  };
80
75
  interface LLMClient {
81
76
  complete(request: LLMCompletionRequest): Promise<LLMCompletionResponse>;
@@ -1,28 +1,27 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-CLGRPDZT.js";
5
- import "../chunk-X36JIWSF.js";
6
- import "../chunk-DFWGWULB.js";
7
- import "../chunk-PSJIT5LZ.js";
8
- import "../chunk-XAMAYRDA.js";
4
+ } from "../chunk-LN22TXNK.js";
5
+ import "../chunk-RI6GAMNP.js";
6
+ import "../chunk-DFITQ75T.js";
7
+ import "../chunk-QN5ST54E.js";
9
8
  import "../chunk-DL6ZILAF.js";
10
9
  import "../chunk-PBGOZMVY.js";
11
10
  import "../chunk-VRGRAQDG.js";
12
- import "../chunk-RF2JGDSS.js";
13
- import "../chunk-HHAJ3QF6.js";
14
- import "../chunk-HGAMIPFO.js";
15
- import "../chunk-UH27FDT7.js";
16
- import "../chunk-FBGWG4N6.js";
17
- import "../chunk-XL7SW5B4.js";
18
- import "../chunk-V6DYJV5R.js";
11
+ import "../chunk-NPHYEUYE.js";
12
+ import "../chunk-XJEOP6XU.js";
13
+ import "../chunk-7TTEGAO6.js";
19
14
  import "../chunk-BJYPTN5S.js";
15
+ import "../chunk-RFNEDBVO.js";
16
+ import "../chunk-XAMAYRDA.js";
17
+ import "../chunk-FBGWG4N6.js";
20
18
  import "../chunk-VUQCQXXJ.js";
21
- import "../chunk-T4HV6GS5.js";
22
- import "../chunk-CQGTEGKL.js";
23
- import "../chunk-CGZHLM3K.js";
24
- import "../chunk-SZKEGZIB.js";
19
+ import "../chunk-BVHFMAVN.js";
20
+ import "../chunk-IGSZUXQP.js";
21
+ import "../chunk-EMJGF3A7.js";
22
+ import "../chunk-7FDY3EOH.js";
25
23
  import "../chunk-K44MW7JJ.js";
24
+ import "../chunk-CQGTEGKL.js";
26
25
  export {
27
26
  createServer,
28
27
  createServerHandle
@@ -5,7 +5,7 @@ import {
5
5
  getAllSettings,
6
6
  getSetting,
7
7
  setSetting
8
- } from "./chunk-PSJIT5LZ.js";
8
+ } from "./chunk-RFNEDBVO.js";
9
9
  import "./chunk-FBGWG4N6.js";
10
10
  import "./chunk-K44MW7JJ.js";
11
11
  export {
@@ -16,4 +16,4 @@ export {
16
16
  getSetting,
17
17
  setSetting
18
18
  };
19
- //# sourceMappingURL=settings-VRAOAPLA.js.map
19
+ //# sourceMappingURL=settings-6XX56F3F.js.map
@@ -1,5 +1,5 @@
1
- import { M as Message, S as SessionStats } from '../protocol-CiYlonA5.js';
2
- export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, c as Attachment, B as BackgroundProcess, d as BackgroundProcessExitedPayload, e as BackgroundProcessOutputPayload, f as BackgroundProcessRemovedPayload, g as BackgroundProcessStartedPayload, h as BackgroundProcessStatus, C as CallStatsDataPoint, i as ChatAskUserPayload, j as ChatDeltaPayload, k as ChatDonePayload, l as ChatErrorPayload, m as ChatFormatRetryPayload, n as ChatMessagePayload, o as ChatMessageUpdatedPayload, p as ChatPathConfirmationPayload, q as ChatProgressPayload, r as ChatThinkingPayload, s as ChatTodoPayload, t as ChatToolCallPayload, u as ChatToolOutputPayload, v as ChatToolPreparingPayload, w as ChatToolResultPayload, x as ChatVisionFallbackPayload, y as ClientMessage, z as ClientMessageType, D as Config, E as ContextCompactionEvent, F as ContextState, G as ContextStatePayload, H as ContextWindow, I as CriteriaUpdatedPayload, J as Criterion, K as CriterionAttempt, L as CriterionStatus, N as CriterionValidation, O as DangerLevel, P as DevServerOutputPayload, Q as DevServerStatePayload, R as Diagnostic, T as EditContextEdit, U as EditContextLine, V as EditContextRegion, W as ElementData, X as ErrorPayload, Y as ExecutionState, Z as FileReadEntry, _ as GitDiffFile, $ as GitStatusPayload, a0 as InjectedFile, a1 as LLMCallStats, a2 as LlmBackend, a3 as LogLine, a4 as LspDiagnosticsPayload, a5 as MessageRole, a6 as MessageSegment, a7 as MessageStats, a8 as MetadataEntry, a9 as MetadataUpdatedPayload, aa as ModeChangedPayload, ab as ModelConfig, ac as ModelSessionStats, ad as PathConfirmPayload, ae as PathConfirmationReason, af as PendingPathConfirmationPayload, ag as PhaseChangedPayload, ah as PreparingToolCall, ai as Project, aj as ProjectDeletedPayload, ak as ProjectListPayload, al as ProjectStatePayload, am as Provider, an as ProviderBackend, ao as ProviderChangedPayload, ap as QueueAddedEvent, aq as QueueCancelledEvent, ar as QueueDrainedEvent, as as QueueEvent, at as QueueEventType, au as QueueStatePayload, av as QueuedMessage, aw as RecentUserPrompt, ax as ServerMessage, ay as ServerMessageType, az as Session, aA as SessionListPayload, aB as SessionLoadPayload, aC as SessionMetadata, aD as SessionMode, aE as SessionNameGeneratedPayload, aF as SessionPhase, aG as SessionRunningPayload, aH as SessionStatePayload, aI as SessionSummary, aJ as StatsDataPoint, aK as StatsIdentity, aL as TaskCompletedPayload, aM as Todo, aN as ToolCall, aO as ToolMode, aP as ToolName, aQ as ToolResult, aR as ValidationResult, aS as createClientMessage, aT as createServerMessage, aU as isClientMessage, aV as isServerMessage } from '../protocol-CiYlonA5.js';
1
+ import { M as Message, S as SessionStats } from '../protocol-CDOV1pyc.js';
2
+ export { A as AgentEvent, a as AskAnswerPayload, b as AskUserEvent, c as Attachment, B as BackgroundProcess, d as BackgroundProcessExitedPayload, e as BackgroundProcessOutputPayload, f as BackgroundProcessRemovedPayload, g as BackgroundProcessStartedPayload, h as BackgroundProcessStatus, C as CallStatsDataPoint, i as ChatAskUserPayload, j as ChatDeltaPayload, k as ChatDonePayload, l as ChatErrorPayload, m as ChatFormatRetryPayload, n as ChatMessagePayload, o as ChatMessageUpdatedPayload, p as ChatPathConfirmationPayload, q as ChatProgressPayload, r as ChatThinkingPayload, s as ChatTodoPayload, t as ChatToolCallPayload, u as ChatToolOutputPayload, v as ChatToolPreparingPayload, w as ChatToolResultPayload, x as ChatVisionFallbackPayload, y as ClientMessage, z as ClientMessageType, D as Config, E as ContextCompactionEvent, F as ContextState, G as ContextStatePayload, H as ContextWindow, I as CriteriaUpdatedPayload, J as Criterion, K as CriterionAttempt, L as CriterionStatus, N as CriterionValidation, O as DangerLevel, P as DevServerOutputPayload, Q as DevServerStatePayload, R as Diagnostic, T as EditContextEdit, U as EditContextLine, V as EditContextRegion, W as ElementData, X as ErrorPayload, Y as ExecutionState, Z as FileReadEntry, _ as GitDiffFile, $ as GitStatusPayload, a0 as InjectedFile, a1 as LLMCallStats, a2 as LlmBackend, a3 as LogLine, a4 as LspDiagnosticsPayload, a5 as MessageRole, a6 as MessageSegment, a7 as MessageStats, a8 as MetadataEntry, a9 as MetadataUpdatedPayload, aa as ModeChangedPayload, ab as ModelConfig, ac as ModelSessionStats, ad as PathConfirmPayload, ae as PathConfirmationReason, af as PendingPathConfirmationPayload, ag as PhaseChangedPayload, ah as PreparingToolCall, ai as Project, aj as ProjectDeletedPayload, ak as ProjectListPayload, al as ProjectStatePayload, am as Provider, an as ProviderBackend, ao as ProviderChangedPayload, ap as QueueAddedEvent, aq as QueueCancelledEvent, ar as QueueDrainedEvent, as as QueueEvent, at as QueueEventType, au as QueueStatePayload, av as QueuedMessage, aw as RecentUserPrompt, ax as ServerMessage, ay as ServerMessageType, az as Session, aA as SessionListPayload, aB as SessionLoadPayload, aC as SessionMetadata, aD as SessionMode, aE as SessionNameGeneratedPayload, aF as SessionPhase, aG as SessionRunningPayload, aH as SessionStatePayload, aI as SessionSummary, aJ as StatsDataPoint, aK as StatsIdentity, aL as TaskCompletedPayload, aM as Todo, aN as ToolCall, aO as ToolMode, aP as ToolName, aQ as ToolResult, aR as ValidationResult, aS as createClientMessage, aT as createServerMessage, aU as isClientMessage, aV as isServerMessage } from '../protocol-CDOV1pyc.js';
3
3
 
4
4
  /**
5
5
  * Session stats computation - aggregates response-level MessageStats from
@@ -6,7 +6,7 @@ import {
6
6
  createServerMessage,
7
7
  isClientMessage,
8
8
  isServerMessage
9
- } from "../chunk-T4HV6GS5.js";
9
+ } from "../chunk-BVHFMAVN.js";
10
10
  export {
11
11
  computeSessionStats,
12
12
  createClientMessage,