openfox 1.6.76 → 1.6.77

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 (29) hide show
  1. package/README.md +18 -18
  2. package/dist/agent-defaults/code-reviewer.agent.md +1 -0
  3. package/dist/agent-defaults/explorer.agent.md +2 -1
  4. package/dist/agent-defaults/verifier.agent.md +4 -0
  5. package/dist/{auto-compaction-V3PA77WG.js → auto-compaction-GOHNI2R2.js} +4 -4
  6. package/dist/{chat-handler-7DKHGTVO.js → chat-handler-K2RDXBO6.js} +7 -7
  7. package/dist/{chunk-NHJ2GVCF.js → chunk-6SYNGMU4.js} +4 -4
  8. package/dist/{chunk-VAMTEAYI.js → chunk-BBC46FN4.js} +13 -2
  9. package/dist/{chunk-H5EICXF3.js → chunk-EBQYRNNU.js} +45 -23
  10. package/dist/{chunk-LCQ3MPXD.js → chunk-I7JVS7V5.js} +3 -3
  11. package/dist/{chunk-RQ4XSKUR.js → chunk-OJBFC6ER.js} +2 -2
  12. package/dist/{chunk-5ZD3GZTK.js → chunk-UVN6AKIO.js} +2 -2
  13. package/dist/{chunk-K2V7EW5F.js → chunk-XSUQDB6R.js} +21 -21
  14. package/dist/cli/dev.js +1 -1
  15. package/dist/cli/index.js +1 -1
  16. package/dist/{events-BDXQOC7F.js → events-5RIXWI5Y.js} +3 -3
  17. package/dist/{folding-2HW7FIKL.js → folding-JNOUTI5Z.js} +2 -2
  18. package/dist/{orchestrator-KCHEENHK.js → orchestrator-TW5II347.js} +5 -5
  19. package/dist/package.json +1 -1
  20. package/dist/{processor-6TS37IYH.js → processor-MZ3QIUED.js} +5 -5
  21. package/dist/{serve-OLDABBV3.js → serve-FTTLGRAO.js} +6 -6
  22. package/dist/server/index.js +5 -5
  23. package/dist/server/public/__inspect__.js +161 -142
  24. package/dist/{tools-BHYHS3RY.js → tools-QJ5K5IJP.js} +4 -4
  25. package/dist/web/__inspect__.js +178 -155
  26. package/dist/web/assets/{index-DAuZ02-Q.js → index-FjLp1t6r.js} +65 -65
  27. package/dist/web/index.html +2 -2
  28. package/dist/web/sw.js +1 -1
  29. package/package.json +1 -1
package/README.md CHANGED
@@ -4,13 +4,13 @@
4
4
 
5
5
  Autonomous coding agent for local LLMs with contract-driven execution.
6
6
 
7
- *Session — Criteria tracking, tool calls, and streaming responses*
7
+ _Session — Criteria tracking, tool calls, and streaming responses_
8
8
  ![Session](docs/screenshots/session.png)
9
9
 
10
- *Providers — Local LLM backend configuration*
10
+ _Providers — Local LLM backend configuration_
11
11
  ![Providers](docs/screenshots/providers.png)
12
12
 
13
- *Workflows — Contract-driven execution pipeline*
13
+ _Workflows — Contract-driven execution pipeline_
14
14
  ![Workflows](docs/screenshots/workflows.png)
15
15
 
16
16
  ## Quick Start
@@ -46,12 +46,12 @@ openfox provider remove # Remove provider
46
46
 
47
47
  ## CLI Options
48
48
 
49
- | Option | Description | Default |
50
- |--------|-------------|---------|
51
- | `-p, --port <number>` | Specify server port | 10369 |
52
- | `--no-browser` | Don't open browser on start | Opens browser |
53
- | `-h, --help` | Show help message | - |
54
- | `-v, --version` | Show version number | - |
49
+ | Option | Description | Default |
50
+ | --------------------- | --------------------------- | ------------- |
51
+ | `-p, --port <number>` | Specify server port | 10369 |
52
+ | `--no-browser` | Don't open browser on start | Opens browser |
53
+ | `-h, --help` | Show help message | - |
54
+ | `-v, --version` | Show version number | - |
55
55
 
56
56
  ## Requirements
57
57
 
@@ -72,30 +72,30 @@ openfox provider remove # Remove provider
72
72
 
73
73
  ## Screenshots
74
74
 
75
- *Homepage — Project overview and session history*
75
+ _Homepage — Project overview and session history_
76
76
  ![Homepage](docs/screenshots/homepage.png)
77
77
 
78
- *Project Selected — Active session with context stats*
78
+ _Project Selected — Active session with context stats_
79
79
  ![Project Selected](docs/screenshots/project-selected.png)
80
80
 
81
- *Stats — Prefill time, generation speed, token usage*
81
+ _Stats — Prefill time, generation speed, token usage_
82
82
  ![Stats](docs/screenshots/stats.png)
83
83
 
84
- *Terminal — Integrated terminal for running commands*
84
+ _Terminal — Integrated terminal for running commands_
85
85
  ![Terminal](docs/screenshots/terminal.png)
86
86
 
87
- *Notifications — Event log and system messages*
87
+ _Notifications — Event log and system messages_
88
88
  ![Notifications](docs/screenshots/notifications.png)
89
89
 
90
- *Agents — Sub-agent management and execution*
90
+ _Agents — Sub-agent management and execution_
91
91
  ![Agents](docs/screenshots/agents.png)
92
92
 
93
- *General Instructions — Global custom instructions*
93
+ _General Instructions — Global custom instructions_
94
94
  ![General Instructions](docs/screenshots/general-instructions.png)
95
95
 
96
- *Vision Fallback — Image processing configuration*
96
+ _Vision Fallback — Image processing configuration_
97
97
  ![Vision Fallback](docs/screenshots/vision-fallback.png)
98
98
 
99
99
  ## License
100
100
 
101
- MIT
101
+ MIT
@@ -11,6 +11,7 @@ allowedTools:
11
11
 
12
12
  You are a senior code reviewer.
13
13
  Review the provided code changes for:
14
+
14
15
  - Bugs and logic errors
15
16
  - Security vulnerabilities
16
17
  - Performance issues
@@ -15,8 +15,9 @@ You are a codebase exploration expert.
15
15
  Your role is to investigate and map out code structure, find relevant files, and explain how components work together.
16
16
 
17
17
  Guidelines:
18
+
18
19
  - Use run_command with grep/glob to discover code
19
20
  - Trace dependencies and imports to understand relationships
20
21
  - Identify patterns and conventions in the codebase
21
22
  - Report findings clearly with file paths and key observations
22
- - Look for tests, documentation, and configuration to supplement your understanding
23
+ - Look for tests, documentation, and configuration to supplement your understanding
@@ -14,6 +14,7 @@ allowedTools:
14
14
  You are a code reviewer performing independent verification.
15
15
 
16
16
  The user will provide:
17
+
17
18
  - Task summary
18
19
  - Criteria to verify (with status markers)
19
20
  - Modified files
@@ -21,16 +22,19 @@ The user will provide:
21
22
  ## YOUR TASK
22
23
 
23
24
  For each criterion marked [NEEDS VERIFICATION]:
25
+
24
26
  1. Consider the task summary and criterion description
25
27
  2. If the criterion requires code changes, read the modified files and verify the implementation
26
28
  3. If the criterion is conceptual or doesn't require code (e.g., test/placeholder criteria), verify based on the description alone
27
29
  4. Run tests or commands only if applicable to the criterion
28
30
 
29
31
  Then call:
32
+
30
33
  - `criterion` with action "pass" if the criterion is satisfied
31
34
  - `criterion` with action "fail" if it is NOT satisfied (explain why clearly)
32
35
 
33
36
  ## IMPORTANT
37
+
34
38
  - Start by analyzing what each criterion actually requires
35
39
  - For trivial or non-code criteria, pass them immediately without exploring the codebase
36
40
  - For code-related criteria, focus on the modified files provided
@@ -2,16 +2,16 @@ import {
2
2
  maybeAutoCompactContext,
3
3
  performManualContextCompaction,
4
4
  resolveCompactionStatsIdentity
5
- } from "./chunk-H5EICXF3.js";
5
+ } from "./chunk-EBQYRNNU.js";
6
6
  import "./chunk-OXI26S7U.js";
7
7
  import "./chunk-CMQCO27Y.js";
8
8
  import "./chunk-XKIEDGQF.js";
9
9
  import "./chunk-PBGOZMVY.js";
10
10
  import "./chunk-VRGRAQDG.js";
11
11
  import "./chunk-CUDAT6SS.js";
12
- import "./chunk-5ZD3GZTK.js";
12
+ import "./chunk-UVN6AKIO.js";
13
13
  import "./chunk-KIOUKC3Z.js";
14
- import "./chunk-VAMTEAYI.js";
14
+ import "./chunk-BBC46FN4.js";
15
15
  import "./chunk-STYHKCG7.js";
16
16
  import "./chunk-BJYPTN5S.js";
17
17
  import "./chunk-NDJ6FKSP.js";
@@ -24,4 +24,4 @@ export {
24
24
  performManualContextCompaction,
25
25
  resolveCompactionStatsIdentity
26
26
  };
27
- //# sourceMappingURL=auto-compaction-V3PA77WG.js.map
27
+ //# sourceMappingURL=auto-compaction-GOHNI2R2.js.map
@@ -5,11 +5,11 @@ import {
5
5
  generateSessionName,
6
6
  getSessionMessageCount,
7
7
  needsNameGenerationCheck
8
- } from "./chunk-LCQ3MPXD.js";
8
+ } from "./chunk-I7JVS7V5.js";
9
9
  import {
10
10
  runChatTurn
11
- } from "./chunk-NHJ2GVCF.js";
12
- import "./chunk-H5EICXF3.js";
11
+ } from "./chunk-6SYNGMU4.js";
12
+ import "./chunk-EBQYRNNU.js";
13
13
  import "./chunk-OXI26S7U.js";
14
14
  import "./chunk-CMQCO27Y.js";
15
15
  import "./chunk-XKIEDGQF.js";
@@ -18,9 +18,9 @@ import "./chunk-VRGRAQDG.js";
18
18
  import "./chunk-CUDAT6SS.js";
19
19
  import {
20
20
  getEventStore
21
- } from "./chunk-5ZD3GZTK.js";
21
+ } from "./chunk-UVN6AKIO.js";
22
22
  import "./chunk-KIOUKC3Z.js";
23
- import "./chunk-VAMTEAYI.js";
23
+ import "./chunk-BBC46FN4.js";
24
24
  import {
25
25
  createChatMessageMessage,
26
26
  createPhaseChangedMessage,
@@ -61,7 +61,7 @@ async function startChatSession(sessionId, content, deps, options) {
61
61
  sessionManager.setRunning(sessionId, true);
62
62
  broadcastForSession(sessionId, createSessionRunningMessage(true));
63
63
  try {
64
- const { maybeAutoCompactContext } = await import("./auto-compaction-V3PA77WG.js");
64
+ const { maybeAutoCompactContext } = await import("./auto-compaction-GOHNI2R2.js");
65
65
  await maybeAutoCompactContext({
66
66
  sessionManager,
67
67
  sessionId,
@@ -172,4 +172,4 @@ export {
172
172
  startChatSession,
173
173
  stopSessionExecution
174
174
  };
175
- //# sourceMappingURL=chat-handler-7DKHGTVO.js.map
175
+ //# sourceMappingURL=chat-handler-K2RDXBO6.js.map
@@ -13,14 +13,14 @@ import {
13
13
  getToolRegistryForAgent,
14
14
  loadAllAgentsDefault,
15
15
  runTopLevelAgentLoop
16
- } from "./chunk-H5EICXF3.js";
16
+ } from "./chunk-EBQYRNNU.js";
17
17
  import {
18
18
  getCurrentContextWindowId,
19
19
  getEventStore
20
- } from "./chunk-5ZD3GZTK.js";
20
+ } from "./chunk-UVN6AKIO.js";
21
21
  import {
22
22
  buildSnapshotFromSessionState
23
- } from "./chunk-VAMTEAYI.js";
23
+ } from "./chunk-BBC46FN4.js";
24
24
  import {
25
25
  logger
26
26
  } from "./chunk-K44MW7JJ.js";
@@ -327,4 +327,4 @@ export {
327
327
  runBuilderTurn,
328
328
  runVerifierTurn
329
329
  };
330
- //# sourceMappingURL=chunk-NHJ2GVCF.js.map
330
+ //# sourceMappingURL=chunk-6SYNGMU4.js.map
@@ -99,7 +99,18 @@ function applyEvents(initialMessages, events, options) {
99
99
  const msg = messages.get(data.messageId);
100
100
  if (msg) {
101
101
  const preparing = msg.preparingToolCalls ?? [];
102
- preparing.push({ index: data.index, name: data.name });
102
+ const existingIndex = preparing.findIndex((p) => p.index === data.index);
103
+ const entry = {
104
+ index: data.index,
105
+ name: data.name,
106
+ ...data.arguments ? { arguments: data.arguments } : {}
107
+ };
108
+ if (existingIndex >= 0) {
109
+ preparing[existingIndex] = entry;
110
+ } else {
111
+ preparing.push(entry);
112
+ }
113
+ ;
103
114
  msg.preparingToolCalls = preparing;
104
115
  }
105
116
  break;
@@ -829,4 +840,4 @@ export {
829
840
  getMessagesForWindow,
830
841
  buildContextMessagesFromMessages
831
842
  };
832
- //# sourceMappingURL=chunk-VAMTEAYI.js.map
843
+ //# sourceMappingURL=chunk-BBC46FN4.js.map
@@ -33,7 +33,7 @@ import {
33
33
  getContextMessages,
34
34
  getCurrentContextWindowId,
35
35
  getEventStore
36
- } from "./chunk-5ZD3GZTK.js";
36
+ } from "./chunk-UVN6AKIO.js";
37
37
  import {
38
38
  createChatDoneMessage,
39
39
  createChatMessageMessage,
@@ -553,6 +553,25 @@ function computeAggregatedStats(input) {
553
553
  }
554
554
 
555
555
  // src/server/chat/stream-pure.ts
556
+ function toStreamMessages(messages) {
557
+ return messages.map((m) => ({
558
+ role: m.role,
559
+ content: m.content,
560
+ ...m.thinkingContent ? { thinkingContent: m.thinkingContent } : {},
561
+ ...m.toolCalls?.length ? { toolCalls: m.toolCalls.map((tc) => ({ id: tc.id, name: tc.name, arguments: tc.arguments })) } : {},
562
+ ...m.toolCallId ? { toolCallId: m.toolCallId } : {},
563
+ ...m.attachments?.length ? { attachments: m.attachments } : {}
564
+ }));
565
+ }
566
+ function createAssistantMessage(content, thinkingContent, toolCalls) {
567
+ return {
568
+ role: "assistant",
569
+ content,
570
+ source: "history",
571
+ ...thinkingContent ? { thinkingContent } : {},
572
+ ...toolCalls.length > 0 ? { toolCalls } : {}
573
+ };
574
+ }
556
575
  function createEmptyStreamResult(aborted, xmlFormatError, modelParams) {
557
576
  return {
558
577
  content: "",
@@ -672,13 +691,15 @@ async function* streamLLMPure(options) {
672
691
  }
673
692
  };
674
693
  } else if (seenToolIndices.has(value.index) && value.arguments) {
675
- const accumulatedArgs = toolArgs.get(value.index);
676
694
  const name = toolNames.get(value.index);
677
- if (accumulatedArgs && name) {
678
- yield {
679
- type: "tool.preparing",
680
- data: { messageId, index: value.index, name, arguments: accumulatedArgs }
681
- };
695
+ if (name === "run_command" || name === "return_value") {
696
+ const accumulatedArgs = toolArgs.get(value.index);
697
+ if (accumulatedArgs) {
698
+ yield {
699
+ type: "tool.preparing",
700
+ data: { messageId, index: value.index, name, arguments: accumulatedArgs }
701
+ };
702
+ }
682
703
  }
683
704
  }
684
705
  if (fullName === "return_value" && value.arguments) {
@@ -1434,9 +1455,20 @@ function extractDangerousPatterns(command) {
1434
1455
  }
1435
1456
  return dangerous;
1436
1457
  }
1437
- var GIT_NO_VERIFY_PATTERN = /\bgit\s+\w+\s+.*(?:--no-verify|-n)/;
1438
1458
  function extractGitNoVerify(command) {
1439
- return GIT_NO_VERIFY_PATTERN.test(command);
1459
+ const parts = command.split(/\s+/);
1460
+ for (let i = 0; i < parts.length - 1; i++) {
1461
+ if (parts[i] === "git") {
1462
+ const sub = parts[i + 1];
1463
+ if (sub && !sub.startsWith("-")) {
1464
+ const args = parts.slice(i + 2);
1465
+ if (args.includes("--no-verify") || args.includes("-n")) {
1466
+ return true;
1467
+ }
1468
+ }
1469
+ }
1470
+ }
1471
+ return false;
1440
1472
  }
1441
1473
  async function requestPathAccess(paths, workdir, sessionId, callId, tool, onEvent, dangerLevel, command) {
1442
1474
  const emitPendingEvent = (confirmationPaths, confirmationReason) => {
@@ -3351,12 +3383,7 @@ async function executeSubAgent(options) {
3351
3383
  messageId: assistantMsgId,
3352
3384
  systemPrompt: systemPrompt + RETURN_VALUE_INSTRUCTION,
3353
3385
  llmClient,
3354
- messages: customMessages.map((m) => ({
3355
- role: m.role,
3356
- content: m.content,
3357
- ...m.toolCalls ? { toolCalls: m.toolCalls.map((tc) => ({ id: tc.id, name: tc.name, arguments: tc.arguments })) } : {},
3358
- ...m.toolCallId ? { toolCallId: m.toolCallId } : {}
3359
- })),
3386
+ messages: toStreamMessages(customMessages),
3360
3387
  tools: toolRegistry.definitions,
3361
3388
  toolChoice: "auto",
3362
3389
  signal,
@@ -3381,12 +3408,7 @@ async function executeSubAgent(options) {
3381
3408
  turnMetrics.addLLMCall(result.timing, result.usage.promptTokens, result.usage.completionTokens, result.modelParams);
3382
3409
  sessionManager.setCurrentContextSize(sessionId, result.usage.promptTokens, subAgentId);
3383
3410
  finalContent = result.content;
3384
- customMessages.push({
3385
- role: "assistant",
3386
- content: result.content,
3387
- source: "history",
3388
- ...result.toolCalls.length > 0 && { toolCalls: result.toolCalls }
3389
- });
3411
+ customMessages.push(createAssistantMessage(result.content, result.thinkingContent, result.toolCalls));
3390
3412
  session = sessionManager.requireSession(sessionId);
3391
3413
  if (result.toolCalls.length === 0) {
3392
3414
  if (nudgeConfig) {
@@ -3575,7 +3597,7 @@ var callSubAgentTool = {
3575
3597
  };
3576
3598
  }
3577
3599
  try {
3578
- const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-BHYHS3RY.js");
3600
+ const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-QJ5K5IJP.js");
3579
3601
  const toolRegistry = getToolRegistryForAgent2(agentDef);
3580
3602
  const turnMetrics = new TurnMetrics();
3581
3603
  const result = await executeSubAgent({
@@ -4767,4 +4789,4 @@ export {
4767
4789
  getToolRegistryForAgent,
4768
4790
  createToolRegistry
4769
4791
  };
4770
- //# sourceMappingURL=chunk-H5EICXF3.js.map
4792
+ //# sourceMappingURL=chunk-EBQYRNNU.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getEventStore,
3
3
  updateSessionMetadata
4
- } from "./chunk-5ZD3GZTK.js";
4
+ } from "./chunk-UVN6AKIO.js";
5
5
  import {
6
6
  buildMessagesFromStoredEvents,
7
7
  foldPendingConfirmations
8
- } from "./chunk-VAMTEAYI.js";
8
+ } from "./chunk-BBC46FN4.js";
9
9
  import {
10
10
  createContextStateMessage,
11
11
  createSessionStateMessage
@@ -143,4 +143,4 @@ export {
143
143
  needsNameGenerationCheck,
144
144
  applyGeneratedSessionName
145
145
  };
146
- //# sourceMappingURL=chunk-LCQ3MPXD.js.map
146
+ //# sourceMappingURL=chunk-I7JVS7V5.js.map
@@ -190,7 +190,7 @@ async function runCli(options) {
190
190
  if (!configExists) {
191
191
  await runNetworkSetup(mode);
192
192
  }
193
- const { runServe } = await import("./serve-OLDABBV3.js");
193
+ const { runServe } = await import("./serve-FTTLGRAO.js");
194
194
  const serveOptions = { mode };
195
195
  if (values.port) serveOptions.port = parseInt(values.port);
196
196
  if (values["no-browser"] === true) serveOptions.openBrowser = false;
@@ -202,4 +202,4 @@ async function runCli(options) {
202
202
  export {
203
203
  runCli
204
204
  };
205
- //# sourceMappingURL=chunk-RQ4XSKUR.js.map
205
+ //# sourceMappingURL=chunk-OJBFC6ER.js.map
@@ -9,7 +9,7 @@ import {
9
9
  foldSessionState,
10
10
  spreadOptionalMessageFields,
11
11
  stripPromptContextMessages
12
- } from "./chunk-VAMTEAYI.js";
12
+ } from "./chunk-BBC46FN4.js";
13
13
  import {
14
14
  getRuntimeConfig
15
15
  } from "./chunk-B5AP3RSV.js";
@@ -1221,4 +1221,4 @@ export {
1221
1221
  compactContext,
1222
1222
  getRecentUserPromptsForSession
1223
1223
  };
1224
- //# sourceMappingURL=chunk-5ZD3GZTK.js.map
1224
+ //# sourceMappingURL=chunk-UVN6AKIO.js.map
@@ -2,7 +2,7 @@ import {
2
2
  createVerifierNudgeConfig,
3
3
  runBuilderTurn,
4
4
  runChatTurn
5
- } from "./chunk-NHJ2GVCF.js";
5
+ } from "./chunk-6SYNGMU4.js";
6
6
  import {
7
7
  TurnMetrics,
8
8
  agentExists,
@@ -37,7 +37,7 @@ import {
37
37
  setSkillEnabled,
38
38
  skillExists,
39
39
  spawnShellProcess
40
- } from "./chunk-H5EICXF3.js";
40
+ } from "./chunk-EBQYRNNU.js";
41
41
  import {
42
42
  getProject
43
43
  } from "./chunk-CMQCO27Y.js";
@@ -87,14 +87,14 @@ import {
87
87
  updateSessionProvider,
88
88
  updateSessionRunning,
89
89
  updateSessionSummary
90
- } from "./chunk-5ZD3GZTK.js";
90
+ } from "./chunk-UVN6AKIO.js";
91
91
  import {
92
92
  initDatabase
93
93
  } from "./chunk-KIOUKC3Z.js";
94
94
  import {
95
95
  buildMessagesFromStoredEvents,
96
96
  foldPendingConfirmations
97
- } from "./chunk-VAMTEAYI.js";
97
+ } from "./chunk-BBC46FN4.js";
98
98
  import {
99
99
  createChatErrorMessage,
100
100
  createChatMessageMessage,
@@ -5242,7 +5242,7 @@ function createTerminalRoutes() {
5242
5242
  }
5243
5243
 
5244
5244
  // src/constants.ts
5245
- var VERSION = "1.6.76";
5245
+ var VERSION = "1.6.77";
5246
5246
 
5247
5247
  // src/server/index.ts
5248
5248
  var __dirname2 = dirname5(fileURLToPath4(import.meta.url));
@@ -5404,7 +5404,7 @@ async function createServerHandle(config) {
5404
5404
  res.json({ success: true });
5405
5405
  });
5406
5406
  app.get("/api/sessions", async (req, res) => {
5407
- const { getRecentUserPromptsForSession } = await import("./events-BDXQOC7F.js");
5407
+ const { getRecentUserPromptsForSession } = await import("./events-5RIXWI5Y.js");
5408
5408
  const projectId = req.query["projectId"];
5409
5409
  const limit = Math.min(parseInt(req.query["limit"]) || 20, 100);
5410
5410
  const offset = parseInt(req.query["offset"]) || 0;
@@ -5437,8 +5437,8 @@ async function createServerHandle(config) {
5437
5437
  res.status(201).json({ session });
5438
5438
  });
5439
5439
  app.get("/api/sessions/:id", async (req, res) => {
5440
- const { getEventStore: getEventStore2 } = await import("./events-BDXQOC7F.js");
5441
- const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-2HW7FIKL.js");
5440
+ const { getEventStore: getEventStore2 } = await import("./events-5RIXWI5Y.js");
5441
+ const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-JNOUTI5Z.js");
5442
5442
  const session = sessionManager.getSession(req.params.id);
5443
5443
  if (!session) {
5444
5444
  return res.status(404).json({ error: "Session not found" });
@@ -5468,8 +5468,8 @@ async function createServerHandle(config) {
5468
5468
  res.json({ success: true });
5469
5469
  });
5470
5470
  app.post("/api/sessions/:id/provider", async (req, res) => {
5471
- const { getEventStore: getEventStore2 } = await import("./events-BDXQOC7F.js");
5472
- const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-2HW7FIKL.js");
5471
+ const { getEventStore: getEventStore2 } = await import("./events-5RIXWI5Y.js");
5472
+ const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-JNOUTI5Z.js");
5473
5473
  const sessionId = req.params.id;
5474
5474
  const session = sessionManager.getSession(sessionId);
5475
5475
  if (!session) {
@@ -5506,8 +5506,8 @@ async function createServerHandle(config) {
5506
5506
  res.json({ success: true });
5507
5507
  });
5508
5508
  app.put("/api/sessions/:id/mode", async (req, res) => {
5509
- const { getEventStore: getEventStore2 } = await import("./events-BDXQOC7F.js");
5510
- const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-2HW7FIKL.js");
5509
+ const { getEventStore: getEventStore2 } = await import("./events-5RIXWI5Y.js");
5510
+ const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-JNOUTI5Z.js");
5511
5511
  const sessionId = req.params.id;
5512
5512
  const session = sessionManager.getSession(sessionId);
5513
5513
  if (!session) {
@@ -5559,13 +5559,13 @@ async function createServerHandle(config) {
5559
5559
  if (!callId || approved === void 0) {
5560
5560
  return res.status(400).json({ error: "callId and approved are required" });
5561
5561
  }
5562
- const { providePathConfirmation } = await import("./tools-BHYHS3RY.js");
5562
+ const { providePathConfirmation } = await import("./tools-QJ5K5IJP.js");
5563
5563
  const result = providePathConfirmation(callId, approved, alwaysAllow);
5564
5564
  if (!result.found) {
5565
5565
  return res.status(404).json({ error: "No pending path confirmation with that ID" });
5566
5566
  }
5567
- const { getEventStore: getEventStore2 } = await import("./events-BDXQOC7F.js");
5568
- const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, foldPendingConfirmations: foldPendingConfirmations2 } = await import("./folding-2HW7FIKL.js");
5567
+ const { getEventStore: getEventStore2 } = await import("./events-5RIXWI5Y.js");
5568
+ const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, foldPendingConfirmations: foldPendingConfirmations2 } = await import("./folding-JNOUTI5Z.js");
5569
5569
  const { createSessionStateMessage: createSessionStateMessage2 } = await import("./protocol-4CTV7OZC.js");
5570
5570
  const eventStore = getEventStore2();
5571
5571
  const events = eventStore.getEvents(sessionId);
@@ -5583,7 +5583,7 @@ async function createServerHandle(config) {
5583
5583
  if (!callId || !answer) {
5584
5584
  return res.status(400).json({ error: "callId and answer are required" });
5585
5585
  }
5586
- const { provideAnswer: provideAnswer2 } = await import("./tools-BHYHS3RY.js");
5586
+ const { provideAnswer: provideAnswer2 } = await import("./tools-QJ5K5IJP.js");
5587
5587
  const found = provideAnswer2(callId, answer);
5588
5588
  if (!found) {
5589
5589
  return res.status(404).json({ error: "No pending question with that ID" });
@@ -5619,14 +5619,14 @@ async function createServerHandle(config) {
5619
5619
  if (!session) {
5620
5620
  return res.status(404).json({ error: "Session not found" });
5621
5621
  }
5622
- const { stopSessionExecution } = await import("./chat-handler-7DKHGTVO.js");
5623
- const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-BHYHS3RY.js");
5622
+ const { stopSessionExecution } = await import("./chat-handler-K2RDXBO6.js");
5623
+ const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-QJ5K5IJP.js");
5624
5624
  stopSessionExecution(sessionId, sessionManager);
5625
5625
  abortSession(sessionId);
5626
5626
  cancelQuestionsForSession(sessionId, "Session stopped by user");
5627
5627
  cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
5628
5628
  sessionManager.clearMessageQueue(sessionId);
5629
- const eventStore = (await import("./events-BDXQOC7F.js")).getEventStore();
5629
+ const eventStore = (await import("./events-5RIXWI5Y.js")).getEventStore();
5630
5630
  eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
5631
5631
  res.json({ success: true });
5632
5632
  });
@@ -6094,7 +6094,7 @@ async function createServerHandle(config) {
6094
6094
  providerManager
6095
6095
  );
6096
6096
  const wss = wssExports.wss;
6097
- const { QueueProcessor } = await import("./processor-6TS37IYH.js");
6097
+ const { QueueProcessor } = await import("./processor-MZ3QIUED.js");
6098
6098
  const queueProcessor = new QueueProcessor({
6099
6099
  sessionManager,
6100
6100
  providerManager,
@@ -6169,4 +6169,4 @@ export {
6169
6169
  createServerHandle,
6170
6170
  createServer
6171
6171
  };
6172
- //# sourceMappingURL=chunk-K2V7EW5F.js.map
6172
+ //# sourceMappingURL=chunk-XSUQDB6R.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-RQ4XSKUR.js";
4
+ } from "../chunk-OJBFC6ER.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-RQ4XSKUR.js";
4
+ } from "../chunk-OJBFC6ER.js";
5
5
  import {
6
6
  logger
7
7
  } from "../chunk-K44MW7JJ.js";
@@ -36,7 +36,7 @@ import {
36
36
  isFileInCache,
37
37
  isStoredEvent,
38
38
  isTurnEvent
39
- } from "./chunk-5ZD3GZTK.js";
39
+ } from "./chunk-UVN6AKIO.js";
40
40
  import "./chunk-KIOUKC3Z.js";
41
41
  import {
42
42
  buildContextMessagesFromEventHistory,
@@ -54,7 +54,7 @@ import {
54
54
  foldTodos,
55
55
  foldTurnEventsToSnapshotMessages,
56
56
  getMessagesForWindow
57
- } from "./chunk-VAMTEAYI.js";
57
+ } from "./chunk-BBC46FN4.js";
58
58
  import "./chunk-B5AP3RSV.js";
59
59
  import "./chunk-K44MW7JJ.js";
60
60
  export {
@@ -111,4 +111,4 @@ export {
111
111
  isStoredEvent,
112
112
  isTurnEvent
113
113
  };
114
- //# sourceMappingURL=events-BDXQOC7F.js.map
114
+ //# sourceMappingURL=events-5RIXWI5Y.js.map
@@ -17,7 +17,7 @@ import {
17
17
  foldTurnEventsToSnapshotMessagesFromInitial,
18
18
  getMessagesForWindow,
19
19
  spreadOptionalMessageFields
20
- } from "./chunk-VAMTEAYI.js";
20
+ } from "./chunk-BBC46FN4.js";
21
21
  export {
22
22
  buildContextMessagesFromEventHistory,
23
23
  buildContextMessagesFromMessages,
@@ -38,4 +38,4 @@ export {
38
38
  getMessagesForWindow,
39
39
  spreadOptionalMessageFields
40
40
  };
41
- //# sourceMappingURL=folding-2HW7FIKL.js.map
41
+ //# sourceMappingURL=folding-JNOUTI5Z.js.map
@@ -3,7 +3,7 @@ import {
3
3
  runBuilderTurn,
4
4
  runChatTurn,
5
5
  runVerifierTurn
6
- } from "./chunk-NHJ2GVCF.js";
6
+ } from "./chunk-6SYNGMU4.js";
7
7
  import {
8
8
  TurnMetrics,
9
9
  createChatDoneEvent,
@@ -11,16 +11,16 @@ import {
11
11
  createMessageStartEvent,
12
12
  createToolCallEvent,
13
13
  createToolResultEvent
14
- } from "./chunk-H5EICXF3.js";
14
+ } from "./chunk-EBQYRNNU.js";
15
15
  import "./chunk-OXI26S7U.js";
16
16
  import "./chunk-CMQCO27Y.js";
17
17
  import "./chunk-XKIEDGQF.js";
18
18
  import "./chunk-PBGOZMVY.js";
19
19
  import "./chunk-VRGRAQDG.js";
20
20
  import "./chunk-CUDAT6SS.js";
21
- import "./chunk-5ZD3GZTK.js";
21
+ import "./chunk-UVN6AKIO.js";
22
22
  import "./chunk-KIOUKC3Z.js";
23
- import "./chunk-VAMTEAYI.js";
23
+ import "./chunk-BBC46FN4.js";
24
24
  import "./chunk-STYHKCG7.js";
25
25
  import "./chunk-BJYPTN5S.js";
26
26
  import "./chunk-NDJ6FKSP.js";
@@ -40,4 +40,4 @@ export {
40
40
  runChatTurn,
41
41
  runVerifierTurn
42
42
  };
43
- //# sourceMappingURL=orchestrator-KCHEENHK.js.map
43
+ //# sourceMappingURL=orchestrator-TW5II347.js.map
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfox",
3
- "version": "1.6.76",
3
+ "version": "1.6.77",
4
4
  "description": "Local-LLM-first agentic coding assistant",
5
5
  "type": "module",
6
6
  "bin": {