openfox 2.0.60 → 2.0.62

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.
@@ -7,6 +7,7 @@ color: '#3b82f6'
7
7
  allowedTools:
8
8
  - read_file
9
9
  - web_fetch
10
+ - web_search
10
11
  - write_file
11
12
  - edit_file
12
13
  - run_command
@@ -7,6 +7,7 @@ color: '#a855f7'
7
7
  allowedTools:
8
8
  - read_file
9
9
  - web_fetch
10
+ - web_search
10
11
  - run_command
11
12
  - ask_user
12
13
  - session_metadata
@@ -5,8 +5,8 @@ import {
5
5
  } from "./chunk-NVPVDDQZ.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-NY6IGGKZ.js";
9
- import "./chunk-3JRYK5UG.js";
8
+ } from "./chunk-L4WACPUX.js";
9
+ import "./chunk-WEB4WBUF.js";
10
10
  import "./chunk-LBGHZLLH.js";
11
11
  import "./chunk-BGTEIA2S.js";
12
12
  import "./chunk-PK2RMVMB.js";
@@ -17,7 +17,7 @@ import {
17
17
  createSessionRunningMessage
18
18
  } from "./chunk-F4PMNP7S.js";
19
19
  import "./chunk-EU3WWTFH.js";
20
- import "./chunk-WNSAJCWT.js";
20
+ import "./chunk-SVSKQYFH.js";
21
21
  import "./chunk-YQ3SOPBI.js";
22
22
  import "./chunk-6VDCH5ML.js";
23
23
  import {
@@ -154,4 +154,4 @@ export {
154
154
  startChatSession,
155
155
  stopSessionExecution
156
156
  };
157
- //# sourceMappingURL=chat-handler-MBR6ZQTX.js.map
157
+ //# sourceMappingURL=chat-handler-TRAITVLO.js.map
@@ -208,7 +208,7 @@ async function runCli(options) {
208
208
  if (!configExists) {
209
209
  await runNetworkSetup(mode);
210
210
  }
211
- const { runServe } = await import("./serve-GKS55Y2C.js");
211
+ const { runServe } = await import("./serve-CNA5NKOR.js");
212
212
  const serveOptions = { mode };
213
213
  if (values.port) serveOptions.port = parseInt(values.port);
214
214
  if (values["no-browser"] === true) serveOptions.openBrowser = false;
@@ -220,4 +220,4 @@ async function runCli(options) {
220
220
  export {
221
221
  runCli
222
222
  };
223
- //# sourceMappingURL=chunk-MTBQQ5DN.js.map
223
+ //# sourceMappingURL=chunk-3WL5YCP6.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
+ applyDynamicContext,
3
+ computeSessionHash,
2
4
  injectWorkflowKickoffIfNeeded,
3
5
  runAgentTurn,
4
6
  runChatTurn
5
- } from "./chunk-NY6IGGKZ.js";
7
+ } from "./chunk-L4WACPUX.js";
6
8
  import {
7
- applyDynamicContext,
8
9
  checkAborted,
9
- computeSessionHash,
10
10
  deleteItemFromDir,
11
11
  devServerManager,
12
12
  executeSubAgent,
@@ -16,7 +16,7 @@ import {
16
16
  loadAllAgentsDefault,
17
17
  saveItemToDir,
18
18
  spawnShellProcess
19
- } from "./chunk-3JRYK5UG.js";
19
+ } from "./chunk-WEB4WBUF.js";
20
20
  import {
21
21
  getPlatformShell,
22
22
  onProcessEvent
@@ -2102,4 +2102,4 @@ export {
2102
2102
  signalMcpReady,
2103
2103
  createWebSocketServer
2104
2104
  };
2105
- //# sourceMappingURL=chunk-DOJKA4XO.js.map
2105
+ //# sourceMappingURL=chunk-BKTBHEPY.js.map
@@ -1,23 +1,22 @@
1
1
  import {
2
2
  PathAccessDeniedError,
3
- buildCachedPrompt,
4
- computeDynamicContextHash,
5
3
  createAssemblyResult,
6
4
  findAgentById,
7
5
  getAllInstructions,
8
6
  getConversationMessages,
9
7
  getEnabledSkillMetadata,
10
- getToolFingerprint,
8
+ getSubAgents,
11
9
  getToolRegistryForAgent,
12
10
  loadAllAgentsDefault,
13
11
  processEventsForConversation,
14
12
  runTopLevelAgentLoop
15
- } from "./chunk-3JRYK5UG.js";
13
+ } from "./chunk-WEB4WBUF.js";
16
14
  import {
17
15
  TurnMetrics,
18
16
  WORKFLOW_KICKOFF_PROMPT,
19
17
  buildAgentReminder,
20
18
  buildAgentSmallReminder,
19
+ buildTopLevelSystemPrompt,
21
20
  createChatDoneEvent,
22
21
  createMessageStartEvent
23
22
  } from "./chunk-6VDCH5ML.js";
@@ -37,9 +36,67 @@ import {
37
36
  getGlobalConfigDir
38
37
  } from "./chunk-CQGTEGKL.js";
39
38
 
39
+ // src/server/chat/dynamic-context.ts
40
+ import { createHash } from "crypto";
41
+ function computeDynamicContextHash(instructionContent, skills, toolFingerprint) {
42
+ const dynamicInputs = JSON.stringify({
43
+ instructions: instructionContent,
44
+ skills: skills.map((s) => s.id).sort(),
45
+ ...toolFingerprint ? { tools: toolFingerprint } : {}
46
+ });
47
+ return createHash("sha256").update(dynamicInputs).digest("hex");
48
+ }
49
+ function getToolFingerprint(tools) {
50
+ return tools.map((t) => `${t.function.name}:${JSON.stringify(t.function.parameters)}`).sort().join("|");
51
+ }
52
+ async function loadSessionContext(sessionManager, sessionId) {
53
+ const session = sessionManager.requireSession(sessionId);
54
+ const { content: instructionContent } = await getAllInstructions(session.workdir, session.projectId);
55
+ const runtimeConfig = getRuntimeConfig();
56
+ const configDir = getGlobalConfigDir(runtimeConfig.mode ?? "production");
57
+ const skills = await getEnabledSkillMetadata(configDir, runtimeConfig.workdir);
58
+ return { instructionContent: instructionContent ?? "", skills };
59
+ }
60
+ function resolveAgentDef(sessionManager, sessionId) {
61
+ return loadAllAgentsDefault().then((allAgents) => {
62
+ const session = sessionManager.requireSession(sessionId);
63
+ return findAgentById(session.mode, allAgents) ?? findAgentById("planner", allAgents);
64
+ });
65
+ }
66
+ async function buildCachedPrompt(sessionManager, sessionId, agentDef) {
67
+ const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
68
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-33FQNFKC.js");
69
+ const tools = getToolRegistryForAgent2(agentDef).definitions;
70
+ const toolFingerprint = getToolFingerprint(tools);
71
+ const allAgents = await loadAllAgentsDefault();
72
+ const subAgentDefs = getSubAgents(allAgents);
73
+ const session = sessionManager.requireSession(sessionId);
74
+ const systemPrompt = buildTopLevelSystemPrompt(session.workdir, instructionContent || void 0, skills, subAgentDefs);
75
+ const hash = computeDynamicContextHash(instructionContent, skills, toolFingerprint);
76
+ return { systemPrompt, tools, hash };
77
+ }
78
+ async function computeSessionHash(sessionManager, sessionId) {
79
+ const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
80
+ const agentDef = await resolveAgentDef(sessionManager, sessionId);
81
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-33FQNFKC.js");
82
+ const tools = getToolRegistryForAgent2(agentDef).definitions;
83
+ const toolFingerprint = getToolFingerprint(tools);
84
+ return computeDynamicContextHash(instructionContent, skills, toolFingerprint);
85
+ }
86
+ async function applyDynamicContext(sessionManager, sessionId) {
87
+ const session = sessionManager.requireSession(sessionId);
88
+ const allAgents = await loadAllAgentsDefault();
89
+ const agentDef = findAgentById(session.mode, allAgents) ?? findAgentById("planner", allAgents);
90
+ const { systemPrompt, tools, hash } = await buildCachedPrompt(sessionManager, sessionId, agentDef);
91
+ sessionManager.setCachedPrompt(sessionId, systemPrompt, tools, hash);
92
+ sessionManager.setDynamicContextChanged(sessionId, false);
93
+ sessionManager.clearDebugDump(sessionId);
94
+ logger.debug("applyDynamicContext done", { sessionId, hash, toolCount: tools.length });
95
+ }
96
+
40
97
  // src/server/chat/orchestrator.ts
41
98
  async function buildRetryPatterns() {
42
- const { getSetting, SETTINGS_KEYS } = await import("./settings-2TQA7VTP.js");
99
+ const { getSetting, SETTINGS_KEYS } = await import("./settings-ASLTSUE2.js");
43
100
  const raw = getSetting(SETTINGS_KEYS.RETRY_PATTERNS);
44
101
  if (!raw) {
45
102
  const oldXmlProtection = getSetting("llm.disableXmlProtection");
@@ -320,8 +377,10 @@ function buildSnapshot(sessionManager, sessionId, _lastStats) {
320
377
  }
321
378
 
322
379
  export {
380
+ computeSessionHash,
381
+ applyDynamicContext,
323
382
  runChatTurn,
324
383
  runAgentTurn,
325
384
  injectWorkflowKickoffIfNeeded
326
385
  };
327
- //# sourceMappingURL=chunk-NY6IGGKZ.js.map
386
+ //# sourceMappingURL=chunk-L4WACPUX.js.map
@@ -21,7 +21,7 @@ import {
21
21
  tokenFromPassword,
22
22
  verifyPassword,
23
23
  workflowExists
24
- } from "./chunk-DOJKA4XO.js";
24
+ } from "./chunk-BKTBHEPY.js";
25
25
  import {
26
26
  agentExists,
27
27
  createToolRegistry,
@@ -66,7 +66,7 @@ import {
66
66
  setSkillEnabled,
67
67
  skillExists,
68
68
  updateOwnedSkill
69
- } from "./chunk-3JRYK5UG.js";
69
+ } from "./chunk-WEB4WBUF.js";
70
70
  import {
71
71
  getPathSeparator,
72
72
  isAbsolutePath
@@ -84,7 +84,7 @@ import {
84
84
  deleteSetting,
85
85
  getSetting,
86
86
  setSetting
87
- } from "./chunk-WNSAJCWT.js";
87
+ } from "./chunk-SVSKQYFH.js";
88
88
  import {
89
89
  getProject
90
90
  } from "./chunk-YQ3SOPBI.js";
@@ -4078,7 +4078,7 @@ import { Router as Router8 } from "express";
4078
4078
  import { spawn as spawn2 } from "child_process";
4079
4079
 
4080
4080
  // src/constants.ts
4081
- var VERSION = "2.0.60";
4081
+ var VERSION = "2.0.62";
4082
4082
 
4083
4083
  // src/server/routes/auto-update.ts
4084
4084
  var updateInProgress = false;
@@ -4283,7 +4283,7 @@ async function createServerHandle(config3) {
4283
4283
  setMcpTools(mcpTools);
4284
4284
  logger.info("MCP tools registered", { count: mcpTools.length });
4285
4285
  }
4286
- const { signalMcpReady } = await import("./server-LMH7ZH5X.js");
4286
+ const { signalMcpReady } = await import("./server-CI5IEBOC.js");
4287
4287
  signalMcpReady();
4288
4288
  });
4289
4289
  const app = express();
@@ -4476,7 +4476,7 @@ async function createServerHandle(config3) {
4476
4476
  app.get("/api/sessions/:id", async (req, res) => {
4477
4477
  const { getEventStore: getEventStore2 } = await import("./events-52XADT6Y.js");
4478
4478
  const { buildMessagesFromStoredEvents } = await import("./folding-2BGFLV5J.js");
4479
- const { getPendingQuestionsForSession } = await import("./tools-WGAZKL56.js");
4479
+ const { getPendingQuestionsForSession } = await import("./tools-33FQNFKC.js");
4480
4480
  const session = sessionManager.getSession(req.params.id);
4481
4481
  if (!session) {
4482
4482
  return res.status(404).json({ error: "Session not found" });
@@ -4495,8 +4495,8 @@ async function createServerHandle(config3) {
4495
4495
  if (!session) {
4496
4496
  return res.status(404).json({ error: "Session not found" });
4497
4497
  }
4498
- const { stopSessionExecution } = await import("./chat-handler-MBR6ZQTX.js");
4499
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-WGAZKL56.js");
4498
+ const { stopSessionExecution } = await import("./chat-handler-TRAITVLO.js");
4499
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-33FQNFKC.js");
4500
4500
  sessionManager.clearMessageQueue(sessionId);
4501
4501
  stopSessionExecution(sessionId, sessionManager);
4502
4502
  abortSession(sessionId);
@@ -4650,7 +4650,7 @@ async function createServerHandle(config3) {
4650
4650
  if (!callId || approved === void 0) {
4651
4651
  return res.status(400).json({ error: "callId and approved are required" });
4652
4652
  }
4653
- const { providePathConfirmation } = await import("./tools-WGAZKL56.js");
4653
+ const { providePathConfirmation } = await import("./tools-33FQNFKC.js");
4654
4654
  const result = providePathConfirmation(callId, approved, alwaysAllow);
4655
4655
  if (!result.found) {
4656
4656
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -4658,7 +4658,7 @@ async function createServerHandle(config3) {
4658
4658
  const { getEventStore: getEventStore2 } = await import("./events-52XADT6Y.js");
4659
4659
  const { buildMessagesFromStoredEvents, foldPendingConfirmations } = await import("./folding-2BGFLV5J.js");
4660
4660
  const { createSessionStateMessage } = await import("./protocol-CTNE3ANP.js");
4661
- const { getPendingQuestionsForSession } = await import("./tools-WGAZKL56.js");
4661
+ const { getPendingQuestionsForSession } = await import("./tools-33FQNFKC.js");
4662
4662
  const eventStore = getEventStore2();
4663
4663
  const events = eventStore.getEvents(sessionId);
4664
4664
  const messages = buildMessagesFromStoredEvents(events);
@@ -4679,7 +4679,7 @@ async function createServerHandle(config3) {
4679
4679
  if (!skip && typeof answer !== "string") {
4680
4680
  return res.status(400).json({ error: "answer is required when not skipping" });
4681
4681
  }
4682
- const { provideAnswer } = await import("./tools-WGAZKL56.js");
4682
+ const { provideAnswer } = await import("./tools-33FQNFKC.js");
4683
4683
  const found = provideAnswer(callId, answer ?? "", skip ?? false);
4684
4684
  if (!found) {
4685
4685
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -4707,7 +4707,7 @@ async function createServerHandle(config3) {
4707
4707
  if (!session) {
4708
4708
  return res.status(404).json({ error: "Session not found" });
4709
4709
  }
4710
- const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-2TQA7VTP.js");
4710
+ const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-ASLTSUE2.js");
4711
4711
  if (getSetting2(SETTINGS_KEYS.CACHE_WARMING) !== "true") {
4712
4712
  return res.json({ success: false, reason: "disabled" });
4713
4713
  }
@@ -4739,7 +4739,7 @@ async function createServerHandle(config3) {
4739
4739
  backend: activeProvider?.backend ?? llmClient.getBackend(),
4740
4740
  model: llmClient.getModel()
4741
4741
  };
4742
- const { runAgentTurn, TurnMetrics } = await import("./orchestrator-PIZJ42J2.js");
4742
+ const { runAgentTurn, TurnMetrics } = await import("./orchestrator-TQ23BAFQ.js");
4743
4743
  runAgentTurn(
4744
4744
  {
4745
4745
  sessionManager,
@@ -4777,8 +4777,8 @@ async function createServerHandle(config3) {
4777
4777
  if (!session) {
4778
4778
  return res.status(404).json({ error: "Session not found" });
4779
4779
  }
4780
- const { stopSessionExecution } = await import("./chat-handler-MBR6ZQTX.js");
4781
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-WGAZKL56.js");
4780
+ const { stopSessionExecution } = await import("./chat-handler-TRAITVLO.js");
4781
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-33FQNFKC.js");
4782
4782
  const queuedMessages = sessionManager.getQueueState(sessionId);
4783
4783
  sessionManager.clearMessageQueue(sessionId);
4784
4784
  stopSessionExecution(sessionId, sessionManager);
@@ -4858,7 +4858,7 @@ async function createServerHandle(config3) {
4858
4858
  res.json({ accepted: true });
4859
4859
  });
4860
4860
  app.get("/api/settings", async (req, res) => {
4861
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-2TQA7VTP.js");
4861
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-ASLTSUE2.js");
4862
4862
  const keysParam = req.query["keys"];
4863
4863
  if (!keysParam) {
4864
4864
  return res.status(400).json({ error: "keys query parameter is required" });
@@ -4871,19 +4871,19 @@ async function createServerHandle(config3) {
4871
4871
  res.json(result);
4872
4872
  });
4873
4873
  app.get("/api/settings/:key", async (req, res) => {
4874
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-2TQA7VTP.js");
4874
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-ASLTSUE2.js");
4875
4875
  const key = req.params.key;
4876
4876
  const value = getSetting2(key) ?? SETTINGS_DEFAULTS[key] ?? null;
4877
4877
  res.json({ key, value });
4878
4878
  });
4879
4879
  app.get("/api/settings/:key", async (req, res) => {
4880
- const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-2TQA7VTP.js");
4880
+ const { getSetting: getSetting2, SETTINGS_DEFAULTS } = await import("./settings-ASLTSUE2.js");
4881
4881
  const key = req.params.key;
4882
4882
  const value = getSetting2(key) ?? SETTINGS_DEFAULTS[key] ?? null;
4883
4883
  res.json({ key, value });
4884
4884
  });
4885
4885
  app.put("/api/settings/:key", async (req, res) => {
4886
- const { setSetting: setSetting2 } = await import("./settings-2TQA7VTP.js");
4886
+ const { setSetting: setSetting2 } = await import("./settings-ASLTSUE2.js");
4887
4887
  const key = req.params.key;
4888
4888
  const { value } = req.body;
4889
4889
  if (value === void 0) {
@@ -4991,6 +4991,56 @@ async function createServerHandle(config3) {
4991
4991
  });
4992
4992
  }
4993
4993
  });
4994
+ app.post("/api/search/test", async (req, res) => {
4995
+ const { engine, tavilyApiKey, searxngUrl, searxngApiKey } = req.body;
4996
+ try {
4997
+ if (engine === "tavily") {
4998
+ const key = tavilyApiKey || process.env["TAVILY_API_KEY"];
4999
+ if (!key) {
5000
+ return res.status(400).json({ success: false, error: "Tavily API key is required" });
5001
+ }
5002
+ const response = await fetch("https://api.tavily.com/search", {
5003
+ method: "POST",
5004
+ headers: { "Content-Type": "application/json" },
5005
+ body: JSON.stringify({ api_key: key, query: "test", max_results: 1 }),
5006
+ signal: AbortSignal.timeout(1e4)
5007
+ });
5008
+ if (!response.ok) {
5009
+ const body = await response.text().catch(() => "");
5010
+ return res.status(400).json({ success: false, error: `Tavily error (${response.status}): ${body}` });
5011
+ }
5012
+ return res.json({ success: true, message: "Tavily connection OK" });
5013
+ }
5014
+ if (engine === "searxng") {
5015
+ const url = searxngUrl || process.env["SEARXNG_URL"];
5016
+ if (!url) {
5017
+ return res.status(400).json({ success: false, error: "SearXNG URL is required" });
5018
+ }
5019
+ const searchUrl = new URL(`${url.replace(/\/+$/, "")}/search`);
5020
+ searchUrl.searchParams.set("format", "json");
5021
+ searchUrl.searchParams.set("q", "test");
5022
+ const apiKey = searxngApiKey || process.env["SEARXNG_API_KEY"] || void 0;
5023
+ const headers = {};
5024
+ if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
5025
+ const response = await fetch(searchUrl.toString(), {
5026
+ headers,
5027
+ signal: AbortSignal.timeout(1e4)
5028
+ });
5029
+ if (!response.ok) {
5030
+ const body = await response.text().catch(() => "");
5031
+ return res.status(400).json({ success: false, error: `SearXNG error (${response.status}): ${body}` });
5032
+ }
5033
+ return res.json({ success: true, message: "SearXNG connection OK" });
5034
+ }
5035
+ return res.status(400).json({ success: false, error: "Invalid engine" });
5036
+ } catch (error) {
5037
+ const message = error instanceof Error ? error.message : "Connection failed";
5038
+ if (error instanceof DOMException && error.name === "AbortError") {
5039
+ return res.status(400).json({ success: false, error: "Connection timed out" });
5040
+ }
5041
+ return res.status(400).json({ success: false, error: message });
5042
+ }
5043
+ });
4994
5044
  app.get("/api/providers/models", async (req, res) => {
4995
5045
  const url = req.query["url"];
4996
5046
  const apiKey = req.query["apiKey"];
@@ -5293,7 +5343,7 @@ async function createServerHandle(config3) {
5293
5343
  });
5294
5344
  async function rebuildMcpTools() {
5295
5345
  const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-MOGEI6TP.js");
5296
- const { setMcpTools: setMcpTools2 } = await import("./tools-WGAZKL56.js");
5346
+ const { setMcpTools: setMcpTools2 } = await import("./tools-33FQNFKC.js");
5297
5347
  const mcpTools = createMcpTools2(mcpManager);
5298
5348
  setMcpTools2(mcpTools);
5299
5349
  }
@@ -5613,7 +5663,7 @@ async function createServerHandle(config3) {
5613
5663
  const state = sessionManager.getContextState(sessionId);
5614
5664
  wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
5615
5665
  });
5616
- const { QueueProcessor } = await import("./processor-PKKTNKWY.js");
5666
+ const { QueueProcessor } = await import("./processor-3ZOFGZP5.js");
5617
5667
  const queueProcessor = new QueueProcessor({
5618
5668
  sessionManager,
5619
5669
  providerManager,
@@ -5693,4 +5743,4 @@ export {
5693
5743
  createServerHandle,
5694
5744
  createServer
5695
5745
  };
5696
- //# sourceMappingURL=chunk-DEWNWF2P.js.map
5746
+ //# sourceMappingURL=chunk-QZRS2RF5.js.map
@@ -20,7 +20,11 @@ var SETTINGS_KEYS = {
20
20
  CACHE_WARMING: "cache.warming",
21
21
  KEYBINDINGS: "keybindings",
22
22
  RETRY_PATTERNS: "agent.retryPatterns",
23
- SKILLS_DIRECTORIES: "skills.directories"
23
+ SKILLS_DIRECTORIES: "skills.directories",
24
+ SEARCH_ENGINE: "search.engine",
25
+ SEARCH_TAVILY_API_KEY: "search.tavilyApiKey",
26
+ SEARCH_SEARXNG_URL: "search.searxngUrl",
27
+ SEARCH_SEARXNG_API_KEY: "search.searxngApiKey"
24
28
  };
25
29
  var SETTINGS_DEFAULTS = {
26
30
  [SETTINGS_KEYS.DISPLAY_SHOW_THINKING]: "true",
@@ -93,4 +97,4 @@ export {
93
97
  deleteSetting,
94
98
  getAllSettings
95
99
  };
96
- //# sourceMappingURL=chunk-WNSAJCWT.js.map
100
+ //# sourceMappingURL=chunk-SVSKQYFH.js.map