openfox 1.6.62 → 1.6.64

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.
@@ -2,7 +2,7 @@ import {
2
2
  maybeAutoCompactContext,
3
3
  performManualContextCompaction,
4
4
  resolveCompactionStatsIdentity
5
- } from "./chunk-NKKB55E4.js";
5
+ } from "./chunk-7TMH3MPE.js";
6
6
  import "./chunk-NBU6KIOD.js";
7
7
  import "./chunk-574HZVLE.js";
8
8
  import "./chunk-7JPKRM6M.js";
@@ -23,4 +23,4 @@ export {
23
23
  performManualContextCompaction,
24
24
  resolveCompactionStatsIdentity
25
25
  };
26
- //# sourceMappingURL=auto-compaction-NBRDRLZU.js.map
26
+ //# sourceMappingURL=auto-compaction-XYMFQXXX.js.map
@@ -8,8 +8,8 @@ import {
8
8
  } from "./chunk-ENAZTRCR.js";
9
9
  import {
10
10
  runChatTurn
11
- } from "./chunk-OIDMZVTJ.js";
12
- import "./chunk-NKKB55E4.js";
11
+ } from "./chunk-YF3ERP7E.js";
12
+ import "./chunk-7TMH3MPE.js";
13
13
  import "./chunk-NBU6KIOD.js";
14
14
  import "./chunk-574HZVLE.js";
15
15
  import "./chunk-7JPKRM6M.js";
@@ -60,7 +60,7 @@ async function startChatSession(sessionId, content, deps, options) {
60
60
  sessionManager.setRunning(sessionId, true);
61
61
  broadcastForSession(sessionId, createSessionRunningMessage(true));
62
62
  try {
63
- const { maybeAutoCompactContext } = await import("./auto-compaction-NBRDRLZU.js");
63
+ const { maybeAutoCompactContext } = await import("./auto-compaction-XYMFQXXX.js");
64
64
  await maybeAutoCompactContext({
65
65
  sessionManager,
66
66
  sessionId,
@@ -169,4 +169,4 @@ export {
169
169
  startChatSession,
170
170
  stopSessionExecution
171
171
  };
172
- //# sourceMappingURL=chat-handler-3ND7S63I.js.map
172
+ //# sourceMappingURL=chat-handler-24P6R3SB.js.map
@@ -3380,7 +3380,7 @@ var callSubAgentTool = {
3380
3380
  };
3381
3381
  }
3382
3382
  try {
3383
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-PYJRXESR.js");
3383
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-TSGPRFT2.js");
3384
3384
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3385
3385
  const turnMetrics = new TurnMetrics();
3386
3386
  const result = await executeSubAgent({
@@ -3766,13 +3766,15 @@ function startInspectProxy(target, sessionManager) {
3766
3766
  const elementDesc = element ? `${element.tag}${element.id ? "#" + element.id : ""}` : "unknown";
3767
3767
  const htmlSnippet = element?.outerHTML ? `
3768
3768
  Html: ${element.outerHTML.slice(0, 300)}` : "";
3769
+ const textSnippet = element?.textContent ? `
3770
+ Text (SVG-stripped): ${element.textContent.slice(0, 500)}` : "";
3769
3771
  const content = `# User feedback from page inspection on dev_server
3770
3772
 
3771
3773
  ## Context
3772
3774
 
3773
3775
  Page: ${pageUrl || ""}
3774
3776
  Element: ${elementDesc}
3775
- xPath: ${element?.xpath || ""}${htmlSnippet}
3777
+ xPath: ${element?.xpath || ""}${htmlSnippet}${textSnippet}
3776
3778
 
3777
3779
  ## Feedback
3778
3780
 
@@ -3913,7 +3915,10 @@ ${annotation || "(none)"}`;
3913
3915
  // src/server/dev-server/manager.ts
3914
3916
  var MAX_LOG_LINES = 2e3;
3915
3917
  var MAX_LOG_BYTES = 1e5;
3916
- var CONFIG_PATH = ".openfox/dev.json";
3918
+ var getDevServerConfigPath = (workdir) => {
3919
+ const mode = getRuntimeConfig().mode ?? "production";
3920
+ return join6(resolve5(workdir), ".openfox", `${mode === "development" ? "dev-dev" : "dev"}.json`);
3921
+ };
3917
3922
  var ERROR_PATTERNS = [
3918
3923
  /EADDRINUSE/,
3919
3924
  /EACCES/,
@@ -3972,7 +3977,7 @@ var DevServerManager = class {
3972
3977
  }
3973
3978
  async loadConfig(workdir) {
3974
3979
  try {
3975
- const configPath = join6(this.resolveWorkdir(workdir), CONFIG_PATH);
3980
+ const configPath = getDevServerConfigPath(workdir);
3976
3981
  const raw = await readFile7(configPath, "utf-8");
3977
3982
  const parsed = JSON.parse(raw);
3978
3983
  if (!parsed.command || !parsed.url) return null;
@@ -3990,7 +3995,7 @@ var DevServerManager = class {
3990
3995
  const resolved = this.resolveWorkdir(workdir);
3991
3996
  const dirPath = join6(resolved, ".openfox");
3992
3997
  await mkdir4(dirPath, { recursive: true });
3993
- const configPath = join6(resolved, CONFIG_PATH);
3998
+ const configPath = getDevServerConfigPath(workdir);
3994
3999
  await writeFile5(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
3995
4000
  }
3996
4001
  async start(workdir) {
@@ -4151,7 +4156,7 @@ var devServerTool = createTool(
4151
4156
  type: "function",
4152
4157
  function: {
4153
4158
  name: "dev_server",
4154
- description: "Control the project dev server. Start, stop, restart, check status, or fetch logs with optional pagination. The dev server command and URL are configured in .openfox/dev.json.",
4159
+ description: "Control the project dev server. Start, stop, restart, check status, or fetch logs with optional pagination. The dev server command and URL are configured in .openfox/dev-dev.json (dev mode) or .openfox/dev.json (prod).",
4155
4160
  parameters: {
4156
4161
  type: "object",
4157
4162
  properties: {
@@ -4215,7 +4220,7 @@ var devServerTool = createTool(
4215
4220
  }
4216
4221
  if (!status.config) {
4217
4222
  return helpers.error(
4218
- 'No .openfox/dev.json config found. Create one with:\n\n{\n "command": "npm run dev",\n "url": "http://localhost:3000",\n "hotReload": true\n}'
4223
+ 'No .openfox/dev-dev.json (dev mode) or .openfox/dev.json (prod) config found. Create one with:\n\n{\n "command": "npm run dev",\n "url": "http://localhost:3000",\n "hotReload": true\n}'
4219
4224
  );
4220
4225
  }
4221
4226
  return helpers.success(JSON.stringify({
@@ -4805,4 +4810,4 @@ export {
4805
4810
  getToolRegistryForAgent,
4806
4811
  createToolRegistry
4807
4812
  };
4808
- //# sourceMappingURL=chunk-NKKB55E4.js.map
4813
+ //# sourceMappingURL=chunk-7TMH3MPE.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createVerifierNudgeConfig,
3
3
  runBuilderTurn,
4
4
  runChatTurn
5
- } from "./chunk-OIDMZVTJ.js";
5
+ } from "./chunk-YF3ERP7E.js";
6
6
  import {
7
7
  TurnMetrics,
8
8
  agentExists,
@@ -38,7 +38,7 @@ import {
38
38
  setSkillEnabled,
39
39
  skillExists,
40
40
  spawnShellProcess
41
- } from "./chunk-NKKB55E4.js";
41
+ } from "./chunk-7TMH3MPE.js";
42
42
  import {
43
43
  getPathSeparator,
44
44
  getPlatformShell,
@@ -5058,7 +5058,7 @@ function createTerminalRoutes() {
5058
5058
  }
5059
5059
 
5060
5060
  // src/constants.ts
5061
- var VERSION = "1.6.62";
5061
+ var VERSION = "1.6.64";
5062
5062
 
5063
5063
  // src/server/index.ts
5064
5064
  var __dirname2 = dirname5(fileURLToPath4(import.meta.url));
@@ -5361,7 +5361,7 @@ async function createServerHandle(config) {
5361
5361
  if (!callId || approved === void 0) {
5362
5362
  return res.status(400).json({ error: "callId and approved are required" });
5363
5363
  }
5364
- const { providePathConfirmation: providePathConfirmation2 } = await import("./tools-PYJRXESR.js");
5364
+ const { providePathConfirmation: providePathConfirmation2 } = await import("./tools-TSGPRFT2.js");
5365
5365
  const result = providePathConfirmation2(callId, approved, alwaysAllow);
5366
5366
  if (!result.found) {
5367
5367
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
@@ -5386,7 +5386,7 @@ async function createServerHandle(config) {
5386
5386
  if (!callId || !answer) {
5387
5387
  return res.status(400).json({ error: "callId and answer are required" });
5388
5388
  }
5389
- const { provideAnswer: provideAnswer2 } = await import("./tools-PYJRXESR.js");
5389
+ const { provideAnswer: provideAnswer2 } = await import("./tools-TSGPRFT2.js");
5390
5390
  const found = provideAnswer2(callId, answer);
5391
5391
  if (!found) {
5392
5392
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -5422,8 +5422,8 @@ async function createServerHandle(config) {
5422
5422
  if (!session) {
5423
5423
  return res.status(404).json({ error: "Session not found" });
5424
5424
  }
5425
- const { stopSessionExecution } = await import("./chat-handler-3ND7S63I.js");
5426
- const { cancelQuestionsForSession: cancelQuestionsForSession2, cancelPathConfirmationsForSession: cancelPathConfirmationsForSession2 } = await import("./tools-PYJRXESR.js");
5425
+ const { stopSessionExecution } = await import("./chat-handler-24P6R3SB.js");
5426
+ const { cancelQuestionsForSession: cancelQuestionsForSession2, cancelPathConfirmationsForSession: cancelPathConfirmationsForSession2 } = await import("./tools-TSGPRFT2.js");
5427
5427
  stopSessionExecution(sessionId, sessionManager);
5428
5428
  abortSession(sessionId);
5429
5429
  cancelQuestionsForSession2(sessionId, "Session stopped by user");
@@ -5882,7 +5882,7 @@ async function createServerHandle(config) {
5882
5882
  providerManager
5883
5883
  );
5884
5884
  const wss = wssExports.wss;
5885
- const { QueueProcessor } = await import("./processor-NEW6ZPBK.js");
5885
+ const { QueueProcessor } = await import("./processor-GSMNLIRM.js");
5886
5886
  const queueProcessor = new QueueProcessor({
5887
5887
  sessionManager,
5888
5888
  providerManager,
@@ -5955,4 +5955,4 @@ export {
5955
5955
  createServerHandle,
5956
5956
  createServer
5957
5957
  };
5958
- //# sourceMappingURL=chunk-B4UL2NM6.js.map
5958
+ //# sourceMappingURL=chunk-JY7BGPTB.js.map
@@ -179,7 +179,7 @@ async function runCli(options) {
179
179
  if (!configExists) {
180
180
  await runNetworkSetup(mode);
181
181
  }
182
- const { runServe } = await import("./serve-X6T4DMOT.js");
182
+ const { runServe } = await import("./serve-55UYT2JO.js");
183
183
  await runServe({
184
184
  mode,
185
185
  port: values.port ? parseInt(values.port) : void 0,
@@ -192,4 +192,4 @@ async function runCli(options) {
192
192
  export {
193
193
  runCli
194
194
  };
195
- //# sourceMappingURL=chunk-DPCBXLPY.js.map
195
+ //# sourceMappingURL=chunk-OXQGLKLE.js.map
@@ -13,7 +13,7 @@ import {
13
13
  getToolRegistryForAgent,
14
14
  loadAllAgentsDefault,
15
15
  runTopLevelAgentLoop
16
- } from "./chunk-NKKB55E4.js";
16
+ } from "./chunk-7TMH3MPE.js";
17
17
  import {
18
18
  getCurrentContextWindowId,
19
19
  getEventStore
@@ -293,4 +293,4 @@ export {
293
293
  runBuilderTurn,
294
294
  runVerifierTurn
295
295
  };
296
- //# sourceMappingURL=chunk-OIDMZVTJ.js.map
296
+ //# sourceMappingURL=chunk-YF3ERP7E.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-DPCBXLPY.js";
4
+ } from "../chunk-OXQGLKLE.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-DPCBXLPY.js";
4
+ } from "../chunk-OXQGLKLE.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-PNBH3RAX.js";
@@ -3,7 +3,7 @@ import {
3
3
  runBuilderTurn,
4
4
  runChatTurn,
5
5
  runVerifierTurn
6
- } from "./chunk-OIDMZVTJ.js";
6
+ } from "./chunk-YF3ERP7E.js";
7
7
  import {
8
8
  TurnMetrics,
9
9
  createChatDoneEvent,
@@ -11,7 +11,7 @@ import {
11
11
  createMessageStartEvent,
12
12
  createToolCallEvent,
13
13
  createToolResultEvent
14
- } from "./chunk-NKKB55E4.js";
14
+ } from "./chunk-7TMH3MPE.js";
15
15
  import "./chunk-NBU6KIOD.js";
16
16
  import "./chunk-574HZVLE.js";
17
17
  import "./chunk-7JPKRM6M.js";
@@ -39,4 +39,4 @@ export {
39
39
  runChatTurn,
40
40
  runVerifierTurn
41
41
  };
42
- //# sourceMappingURL=orchestrator-6V4V2ODS.js.map
42
+ //# sourceMappingURL=orchestrator-TEL2CUIT.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "1.6.62",
3
+ "version": "1.6.64",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {
@@ -173,7 +173,7 @@ var QueueProcessor = class {
173
173
  backend: provider?.backend ?? llmClient.getBackend(),
174
174
  model: llmClient.getModel()
175
175
  };
176
- const { runChatTurn } = await import("./orchestrator-6V4V2ODS.js");
176
+ const { runChatTurn } = await import("./orchestrator-TEL2CUIT.js");
177
177
  const runChatTurnParams = buildRunChatTurnParams({
178
178
  sessionManager,
179
179
  sessionId,
@@ -210,4 +210,4 @@ var QueueProcessor = class {
210
210
  export {
211
211
  QueueProcessor
212
212
  };
213
- //# sourceMappingURL=processor-NEW6ZPBK.js.map
213
+ //# sourceMappingURL=processor-GSMNLIRM.js.map
@@ -6,9 +6,9 @@ import {
6
6
  import {
7
7
  VERSION,
8
8
  createServer
9
- } from "./chunk-B4UL2NM6.js";
10
- import "./chunk-OIDMZVTJ.js";
11
- import "./chunk-NKKB55E4.js";
9
+ } from "./chunk-JY7BGPTB.js";
10
+ import "./chunk-YF3ERP7E.js";
11
+ import "./chunk-7TMH3MPE.js";
12
12
  import "./chunk-NBU6KIOD.js";
13
13
  import "./chunk-574HZVLE.js";
14
14
  import "./chunk-7JPKRM6M.js";
@@ -187,4 +187,4 @@ async function runServe(options) {
187
187
  export {
188
188
  runServe
189
189
  };
190
- //# sourceMappingURL=serve-X6T4DMOT.js.map
190
+ //# sourceMappingURL=serve-55UYT2JO.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-B4UL2NM6.js";
5
- import "../chunk-OIDMZVTJ.js";
6
- import "../chunk-NKKB55E4.js";
4
+ } from "../chunk-JY7BGPTB.js";
5
+ import "../chunk-YF3ERP7E.js";
6
+ import "../chunk-7TMH3MPE.js";
7
7
  import "../chunk-NBU6KIOD.js";
8
8
  import "../chunk-574HZVLE.js";
9
9
  import "../chunk-7JPKRM6M.js";
@@ -72,6 +72,20 @@
72
72
  return '/' + parts.join('/');
73
73
  }
74
74
 
75
+ function stripSvgAndGetText(el) {
76
+ try {
77
+ var clone = el.cloneNode(true);
78
+ var svgs = clone.querySelectorAll('svg');
79
+ for (var i = 0; i < svgs.length; i++) {
80
+ svgs[i].remove();
81
+ }
82
+ var text = (clone.textContent || '').replace(/\s+/g, ' ').trim();
83
+ return text.slice(0, 500) || null;
84
+ } catch (e) {
85
+ return null;
86
+ }
87
+ }
88
+
75
89
  function buildElementData(el) {
76
90
  var attrs = {};
77
91
  if (el.attributes) {
@@ -97,6 +111,7 @@
97
111
  className: (typeof el.className === 'string' ? el.className : '') || null,
98
112
  xpath: generateXPath(el),
99
113
  text: (el.innerText || '').slice(0, 500) || null,
114
+ textContent: stripSvgAndGetText(el),
100
115
  outerHTML: (el.outerHTML || '').slice(0, 1000) || '',
101
116
  rect: { x: rect.left, y: rect.top, width: rect.width, height: rect.height },
102
117
  attributes: attrs
@@ -11,7 +11,7 @@ import {
11
11
  requestPathAccess,
12
12
  stepDoneTool,
13
13
  validateToolAction
14
- } from "./chunk-NKKB55E4.js";
14
+ } from "./chunk-7TMH3MPE.js";
15
15
  import "./chunk-NBU6KIOD.js";
16
16
  import "./chunk-574HZVLE.js";
17
17
  import "./chunk-7JPKRM6M.js";
@@ -48,4 +48,4 @@ export {
48
48
  stepDoneTool,
49
49
  validateToolAction
50
50
  };
51
- //# sourceMappingURL=tools-PYJRXESR.js.map
51
+ //# sourceMappingURL=tools-TSGPRFT2.js.map