openfox 1.6.57 → 1.6.60

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-ENY2HSDU.js";
5
+ } from "./chunk-K5THP6KN.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-YFFQCKNN.js.map
26
+ //# sourceMappingURL=auto-compaction-34HBYH7C.js.map
@@ -8,8 +8,8 @@ import {
8
8
  } from "./chunk-5FCZWJS7.js";
9
9
  import {
10
10
  runChatTurn
11
- } from "./chunk-QU2QKOR6.js";
12
- import "./chunk-ENY2HSDU.js";
11
+ } from "./chunk-GDE25PUA.js";
12
+ import "./chunk-K5THP6KN.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-YFFQCKNN.js");
63
+ const { maybeAutoCompactContext } = await import("./auto-compaction-34HBYH7C.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-PSWAJYRK.js.map
172
+ //# sourceMappingURL=chat-handler-OHXGAYE5.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-L2UMDBMB.js");
182
+ const { runServe } = await import("./serve-MOB4AMHT.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-Y5TCZ375.js.map
195
+ //# sourceMappingURL=chunk-DKFXNO3L.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createVerifierNudgeConfig,
3
3
  runBuilderTurn,
4
4
  runChatTurn
5
- } from "./chunk-QU2QKOR6.js";
5
+ } from "./chunk-GDE25PUA.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-ENY2HSDU.js";
41
+ } from "./chunk-K5THP6KN.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.57";
5061
+ var VERSION = "1.6.60";
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-PGSHRMDH.js");
5364
+ const { providePathConfirmation: providePathConfirmation2 } = await import("./tools-Z6YF7JMX.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-PGSHRMDH.js");
5389
+ const { provideAnswer: provideAnswer2 } = await import("./tools-Z6YF7JMX.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-PSWAJYRK.js");
5426
- const { cancelQuestionsForSession: cancelQuestionsForSession2, cancelPathConfirmationsForSession: cancelPathConfirmationsForSession2 } = await import("./tools-PGSHRMDH.js");
5425
+ const { stopSessionExecution } = await import("./chat-handler-OHXGAYE5.js");
5426
+ const { cancelQuestionsForSession: cancelQuestionsForSession2, cancelPathConfirmationsForSession: cancelPathConfirmationsForSession2 } = await import("./tools-Z6YF7JMX.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-GLKDOFWT.js");
5885
+ const { QueueProcessor } = await import("./processor-EU4G3K2T.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-ZHLG2ZTY.js.map
5958
+ //# sourceMappingURL=chunk-DTPVSVAJ.js.map
@@ -13,7 +13,7 @@ import {
13
13
  getToolRegistryForAgent,
14
14
  loadAllAgentsDefault,
15
15
  runTopLevelAgentLoop
16
- } from "./chunk-ENY2HSDU.js";
16
+ } from "./chunk-K5THP6KN.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-QU2QKOR6.js.map
296
+ //# sourceMappingURL=chunk-GDE25PUA.js.map
@@ -3380,7 +3380,7 @@ var callSubAgentTool = {
3380
3380
  };
3381
3381
  }
3382
3382
  try {
3383
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-PGSHRMDH.js");
3383
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-Z6YF7JMX.js");
3384
3384
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3385
3385
  const turnMetrics = new TurnMetrics();
3386
3386
  const result = await executeSubAgent({
@@ -3756,14 +3756,17 @@ function startInspectProxy(target, sessionManager) {
3756
3756
  return;
3757
3757
  }
3758
3758
  if (url === "/__openfox_feedback" && method === "POST") {
3759
- const body = chunk.slice(he + 4).toString("utf8");
3760
- try {
3761
- const { sessionId, element, annotation, pageUrl } = JSON.parse(body);
3762
- if (sessionId) {
3763
- const elementDesc = element ? `${element.tag}${element.id ? "#" + element.id : ""}` : "unknown";
3764
- const htmlSnippet = element?.outerHTML ? `
3759
+ const contentLength = parseInt(headers["content-length"] || "0", 10);
3760
+ let bodyData = chunk.slice(he + 4);
3761
+ let bodyTotal = bodyData.length;
3762
+ const handleFeedback = () => {
3763
+ try {
3764
+ const { sessionId, element, annotation, pageUrl } = JSON.parse(bodyData.toString("utf8"));
3765
+ if (sessionId) {
3766
+ const elementDesc = element ? `${element.tag}${element.id ? "#" + element.id : ""}` : "unknown";
3767
+ const htmlSnippet = element?.outerHTML ? `
3765
3768
  Html: ${element.outerHTML.slice(0, 300)}` : "";
3766
- const content = `# User feedback from page inspection on dev_server
3769
+ const content = `# User feedback from page inspection on dev_server
3767
3770
 
3768
3771
  ## Context
3769
3772
 
@@ -3774,13 +3777,24 @@ xPath: ${element?.xpath || ""}${htmlSnippet}
3774
3777
  ## Feedback
3775
3778
 
3776
3779
  ${annotation || "(none)"}`;
3777
- sessionManager.queueMessage(sessionId, "asap", content, [], "ui_feedback");
3780
+ sessionManager.queueMessage(sessionId, "asap", content, [], "ui_feedback");
3781
+ }
3782
+ client.write(buildResponse(200, { "Content-Type": "application/json" }, Buffer.from('{"success":true}')));
3783
+ } catch {
3784
+ client.write(buildResponse(400, { "Content-Type": "application/json" }, Buffer.from('{"error":"Invalid request"}')));
3778
3785
  }
3779
- client.write(buildResponse(200, { "Content-Type": "application/json" }, Buffer.from('{"success":true}')));
3780
- } catch {
3781
- client.write(buildResponse(400, { "Content-Type": "application/json" }, Buffer.from('{"error":"Invalid request"}')));
3786
+ client.end();
3787
+ };
3788
+ if (bodyTotal >= contentLength) {
3789
+ handleFeedback();
3790
+ return;
3782
3791
  }
3783
- client.end();
3792
+ client.on("data", (more) => {
3793
+ bodyData = Buffer.concat([bodyData, more]);
3794
+ bodyTotal += more.length;
3795
+ if (bodyTotal < contentLength) return;
3796
+ handleFeedback();
3797
+ });
3784
3798
  return;
3785
3799
  }
3786
3800
  const targetParts = target.replace(/^https?:\/\//, "").split(":");
@@ -4791,4 +4805,4 @@ export {
4791
4805
  getToolRegistryForAgent,
4792
4806
  createToolRegistry
4793
4807
  };
4794
- //# sourceMappingURL=chunk-ENY2HSDU.js.map
4808
+ //# sourceMappingURL=chunk-K5THP6KN.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-Y5TCZ375.js";
4
+ } from "../chunk-DKFXNO3L.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-Y5TCZ375.js";
4
+ } from "../chunk-DKFXNO3L.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-QU2QKOR6.js";
6
+ } from "./chunk-GDE25PUA.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-ENY2HSDU.js";
14
+ } from "./chunk-K5THP6KN.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-SCVLRL3O.js.map
42
+ //# sourceMappingURL=orchestrator-4A5KDCZQ.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "1.6.57",
3
+ "version": "1.6.60",
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-SCVLRL3O.js");
176
+ const { runChatTurn } = await import("./orchestrator-4A5KDCZQ.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-GLKDOFWT.js.map
213
+ //# sourceMappingURL=processor-EU4G3K2T.js.map
@@ -6,9 +6,9 @@ import {
6
6
  import {
7
7
  VERSION,
8
8
  createServer
9
- } from "./chunk-ZHLG2ZTY.js";
10
- import "./chunk-QU2QKOR6.js";
11
- import "./chunk-ENY2HSDU.js";
9
+ } from "./chunk-DTPVSVAJ.js";
10
+ import "./chunk-GDE25PUA.js";
11
+ import "./chunk-K5THP6KN.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-L2UMDBMB.js.map
190
+ //# sourceMappingURL=serve-MOB4AMHT.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createServer,
3
3
  createServerHandle
4
- } from "../chunk-ZHLG2ZTY.js";
5
- import "../chunk-QU2QKOR6.js";
6
- import "../chunk-ENY2HSDU.js";
4
+ } from "../chunk-DTPVSVAJ.js";
5
+ import "../chunk-GDE25PUA.js";
6
+ import "../chunk-K5THP6KN.js";
7
7
  import "../chunk-NBU6KIOD.js";
8
8
  import "../chunk-574HZVLE.js";
9
9
  import "../chunk-7JPKRM6M.js";
@@ -3,6 +3,7 @@
3
3
 
4
4
  window.__foxInspectMode = false;
5
5
  window.__foxSessionId = null;
6
+ window.__foxSessionTitle = null;
6
7
  window.__foxInspectEnabled = true;
7
8
  window.__foxSentPending = false;
8
9
 
@@ -26,7 +27,8 @@
26
27
  '#__fox-popup button.__fox-send{background:#3b82f6;color:#fff;border:none;padding:6px 14px;border-radius:4px;cursor:pointer;font-size:12px;font-family:inherit}',
27
28
  '#__fox-popup button.__fox-send:hover{background:#2563eb}',
28
29
  '#__fox-popup button.__fox-cancel{background:transparent;color:#888;border:1px solid #444;padding:6px 14px;border-radius:4px;cursor:pointer;font-size:12px;font-family:inherit}',
29
- '#__fox-popup button.__fox-cancel:hover{color:#aaa;border-color:#666}'
30
+ '#__fox-popup button.__fox-cancel:hover{color:#aaa;border-color:#666}',
31
+ '#__fox-popup .__fox-hint{font-size:11px;color:#666;margin-top:6px;line-height:1.4}'
30
32
  ].join('\n');
31
33
 
32
34
  var overlay = document.createElement('div');
@@ -119,6 +121,7 @@
119
121
  '<div class="__fox-tag">Element: <span>' + tagDisplay + '</span></div>' +
120
122
  '<div class="__fox-selector">' + data.xpath + '</div>' +
121
123
  '<textarea placeholder="What\'s wrong with this element?"></textarea>' +
124
+ '<div class="__fox-hint">Sending to: ' + (window.__foxSessionTitle || window.__foxSessionId || 'none') + '. To target a different session, close this, navigate to that session in OpenFox, and reopen the inspect window.</div>' +
122
125
  '<div class="__fox-actions">' +
123
126
  '<button class="__fox-cancel">Cancel</button>' +
124
127
  '<button class="__fox-send">Send to Agent</button>' +
@@ -208,6 +211,9 @@
208
211
  if (e.data && e.data.type === 'setFoxSessionId') {
209
212
  window.__foxSessionId = e.data.sessionId;
210
213
  }
214
+ if (e.data && e.data.type === 'setFoxSessionTitle') {
215
+ window.__foxSessionTitle = e.data.sessionTitle;
216
+ }
211
217
  if (e.data && e.data.type === 'setFoxInspectEnabled') {
212
218
  window.__foxInspectEnabled = e.data.enabled;
213
219
  overlay.style.display = e.data.enabled ? '' : 'none';
@@ -11,7 +11,7 @@ import {
11
11
  requestPathAccess,
12
12
  stepDoneTool,
13
13
  validateToolAction
14
- } from "./chunk-ENY2HSDU.js";
14
+ } from "./chunk-K5THP6KN.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-PGSHRMDH.js.map
51
+ //# sourceMappingURL=tools-Z6YF7JMX.js.map