openfox 2.0.139 → 2.0.141
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.
- package/CHANGELOG.md +31 -0
- package/dist/CHANGELOG.md +31 -0
- package/dist/{backend-24FTDSHF.js → backend-EPISSWLB.js} +2 -2
- package/dist/{chat-handler-KGITQAXC.js → chat-handler-F7QRNO2E.js} +16 -16
- package/dist/{chunk-JTR3PC5I.js → chunk-2OTUYNXD.js} +2 -2
- package/dist/{chunk-AM5FAZJK.js → chunk-BB67GW5P.js} +7 -7
- package/dist/{chunk-YIEIVHCQ.js → chunk-CEEBKCGX.js} +5 -4
- package/dist/{chunk-7OHSAZLF.js → chunk-DBF5GKZF.js} +14 -16
- package/dist/{chunk-LSO3IGJ4.js → chunk-EE6VFEE6.js} +2 -2
- package/dist/{chunk-FIEFBRTQ.js → chunk-FBOIDBPA.js} +2 -2
- package/dist/{chunk-TG65PHHY.js → chunk-G7BQWMV7.js} +3 -3
- package/dist/{chunk-EJ5GFSD4.js → chunk-H7YL7PH3.js} +8 -4
- package/dist/{chunk-MAUQ6AW4.js → chunk-IZVIN7XC.js} +3 -3
- package/dist/chunk-LDWWVUW7.js +7 -0
- package/dist/{chunk-N4RAVCLZ.js → chunk-NDAXMOD2.js} +14 -12
- package/dist/{chunk-HEYU7FAY.js → chunk-OA7KBQ2O.js} +7 -5
- package/dist/{chunk-TVSIWRKE.js → chunk-PS5CHS7S.js} +11 -11
- package/dist/{chunk-CXB4HJAM.js → chunk-RCEGPT57.js} +4 -4
- package/dist/{chunk-EXQI5TVW.js → chunk-RHUZLWZV.js} +4 -4
- package/dist/{chunk-C543DUKL.js → chunk-SKHU4M6L.js} +78 -72
- package/dist/{chunk-VCLAPTWM.js → chunk-SSHXYKW3.js} +34 -9
- package/dist/{chunk-22DV5XO7.js → chunk-TJOKDC34.js} +2 -2
- package/dist/{chunk-EGF3PREY.js → chunk-UJO67GFD.js} +7 -7
- package/dist/{chunk-AKWJMMEJ.js → chunk-VLQ6BMU7.js} +7 -2
- package/dist/{chunk-RG326HS4.js → chunk-YFTCFJJM.js} +44 -12
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{client-6KC6SP2U.js → client-KJS7QIIV.js} +4 -4
- package/dist/{compactor-T7S4DIR3.js → compactor-QDTK3SZI.js} +6 -6
- package/dist/{describe-image-TQOD52IC.js → describe-image-UFOHQIPB.js} +5 -5
- package/dist/{dynamic-context-3MAA4AQR.js → dynamic-context-UEC6MMEV.js} +4 -4
- package/dist/{events-ZLP5V2YU.js → events-73MLUDTX.js} +3 -3
- package/dist/{export-import-ZJFYZJOP.js → export-import-7I7EJKTE.js} +4 -4
- package/dist/{http-client-VMRQHMF7.js → http-client-JVJ43TBY.js} +2 -2
- package/dist/{launch-73LDMGCT.js → launch-77CO4C7W.js} +16 -16
- package/dist/{orchestrator-MMHV6SZY.js → orchestrator-IRUEM4R4.js} +15 -15
- package/dist/package.json +1 -1
- package/dist/{path-security-V3XALT5E.js → path-security-MQXMTFRU.js} +4 -4
- package/dist/{processor-2M7N26QG.js → processor-VMUKAMG6.js} +15 -15
- package/dist/provider/index.d.ts +2 -2
- package/dist/{provider-MEENS4SB.js → provider-7LNTLWRB.js} +5 -5
- package/dist/{provider-manager-3MV7KDAD.js → provider-manager-TV5I5YJH.js} +5 -5
- package/dist/{serve-FN5XKUTC.js → serve-HTJREJEC.js} +21 -21
- package/dist/server/index.d.ts +4 -4
- package/dist/server/index.js +20 -20
- package/dist/{server-B4AJ7ETE.js → server-5FECIKQK.js} +19 -19
- package/dist/{service-JL55SFPL.js → service-7QKWUNU4.js} +6 -6
- package/dist/{session-overrides-7OPGV7CQ.js → session-overrides-WYOY7PVC.js} +3 -3
- package/dist/{sessions-VHS47DHO.js → sessions-U6D2T5QP.js} +2 -2
- package/dist/{tasks-ZMJCHW7E.js → tasks-E7EG7344.js} +6 -6
- package/dist/{tools-LZHSSSK4.js → tools-F4COIAZR.js} +13 -13
- package/dist/{types-CmiWoQ7p.d.ts → types-ofYNpiqi.d.ts} +2 -0
- package/dist/{update-L2XK6UDC.js → update-5TGZTHLD.js} +2 -2
- package/dist/web/assets/{index-D3bx1-1j.css → index-2WvLd7SC.css} +1 -1
- package/dist/web/assets/{index-dJREs6rO.js → index-A0-uewf7.js} +79 -79
- package/dist/web/index.html +6 -3
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-Z7MGLDLK.js +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.141 - 2026-09-09
|
|
4
|
+
|
|
5
|
+
### Enhancements
|
|
6
|
+
|
|
7
|
+
- **Homepage lists your 20 most recent sessions** — flat across all projects, sorted by last activity, with live status dots and links that open in a new tab; running sessions stay pinned so active work never drops off.
|
|
8
|
+
- **Projects section decluttered** — cards now sort starred-first and hold no sessions; tasks and new-session actions stay one click away.
|
|
9
|
+
- **Send and pause stay reachable on mobile** — the send, pause, and stop buttons now show while the agent is running instead of hiding.
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **Git --no-verify confirmation can no longer be skipped** — a semicolon, pipe, or `&&` inside a quoted commit message used to orphan the flag and silently bypass the confirmation; detection is now quote-aware.
|
|
14
|
+
- **Live task-board sync reaches every window** — task updates are now broadcast to all windows, so boards without an active session no longer go stale.
|
|
15
|
+
- **MCP servers connect once the HTTP server is listening** — OpenFox's self-referencing MCP entry no longer races startup and lands in a permanent error state.
|
|
16
|
+
|
|
17
|
+
## 2.0.140 - 2026-09-08
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
- **Authenticated Ollama proxies** — Ollama behind OpenWebUI or any Bearer-auth proxy now works when an API key is configured
|
|
22
|
+
|
|
23
|
+
### Enhancements
|
|
24
|
+
|
|
25
|
+
- **Refined mobile interface** — composer expands full-height with the keyboard, send/stop become icon pills, and the footer rebalances (agent + danger on top, MCP + model below)
|
|
26
|
+
- **Model names truncate on narrow screens** — no more overflowing the composer
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
- **MCP dropdown stays in view** — opens as a centered modal on touch and left-aligns on narrow windows instead of overflowing
|
|
31
|
+
- **iOS no longer auto-zooms into the composer** — input fields keep a comfortable size on focus
|
|
32
|
+
- **opencode.ai providers work reliably** — chain-of-thought is no longer echoed into assistant history (fixing HTTP 400 on multi-turn thinking requests), and stable x-opencode-session headers restore prompt caching
|
|
33
|
+
|
|
3
34
|
## 2.0.139 - 2026-09-06
|
|
4
35
|
|
|
5
36
|
### Features
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.141 - 2026-09-09
|
|
4
|
+
|
|
5
|
+
### Enhancements
|
|
6
|
+
|
|
7
|
+
- **Homepage lists your 20 most recent sessions** — flat across all projects, sorted by last activity, with live status dots and links that open in a new tab; running sessions stay pinned so active work never drops off.
|
|
8
|
+
- **Projects section decluttered** — cards now sort starred-first and hold no sessions; tasks and new-session actions stay one click away.
|
|
9
|
+
- **Send and pause stay reachable on mobile** — the send, pause, and stop buttons now show while the agent is running instead of hiding.
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **Git --no-verify confirmation can no longer be skipped** — a semicolon, pipe, or `&&` inside a quoted commit message used to orphan the flag and silently bypass the confirmation; detection is now quote-aware.
|
|
14
|
+
- **Live task-board sync reaches every window** — task updates are now broadcast to all windows, so boards without an active session no longer go stale.
|
|
15
|
+
- **MCP servers connect once the HTTP server is listening** — OpenFox's self-referencing MCP entry no longer races startup and lands in a permanent error state.
|
|
16
|
+
|
|
17
|
+
## 2.0.140 - 2026-09-08
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
- **Authenticated Ollama proxies** — Ollama behind OpenWebUI or any Bearer-auth proxy now works when an API key is configured
|
|
22
|
+
|
|
23
|
+
### Enhancements
|
|
24
|
+
|
|
25
|
+
- **Refined mobile interface** — composer expands full-height with the keyboard, send/stop become icon pills, and the footer rebalances (agent + danger on top, MCP + model below)
|
|
26
|
+
- **Model names truncate on narrow screens** — no more overflowing the composer
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
- **MCP dropdown stays in view** — opens as a centered modal on touch and left-aligns on narrow windows instead of overflowing
|
|
31
|
+
- **iOS no longer auto-zooms into the composer** — input fields keep a comfortable size on focus
|
|
32
|
+
- **opencode.ai providers work reliably** — chain-of-thought is no longer echoed into assistant history (fixing HTTP 400 on multi-turn thinking requests), and stable x-opencode-session headers restore prompt caching
|
|
33
|
+
|
|
3
34
|
## 2.0.139 - 2026-09-06
|
|
4
35
|
|
|
5
36
|
### Features
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
detectProviderDefaultsFromUrl,
|
|
4
4
|
getBackendCapabilities,
|
|
5
5
|
getBackendDisplayName
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VLQ6BMU7.js";
|
|
7
7
|
import "./chunk-YLJ4XMA6.js";
|
|
8
8
|
export {
|
|
9
9
|
detectBackendFromUrl,
|
|
@@ -11,4 +11,4 @@ export {
|
|
|
11
11
|
getBackendCapabilities,
|
|
12
12
|
getBackendDisplayName
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=backend-
|
|
14
|
+
//# sourceMappingURL=backend-EPISSWLB.js.map
|
|
@@ -2,20 +2,20 @@ import {
|
|
|
2
2
|
buildRunChatTurnParams,
|
|
3
3
|
finalizeTurnCompletion,
|
|
4
4
|
generateSessionNameForSession
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CEEBKCGX.js";
|
|
6
6
|
import {
|
|
7
7
|
runChatTurn
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-BB67GW5P.js";
|
|
9
|
+
import "./chunk-RCEGPT57.js";
|
|
10
|
+
import "./chunk-NDAXMOD2.js";
|
|
11
11
|
import "./chunk-CRJ5J7U5.js";
|
|
12
12
|
import "./chunk-XE6UC5Z3.js";
|
|
13
13
|
import "./chunk-J7GAZGZT.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-TJOKDC34.js";
|
|
15
|
+
import "./chunk-FBOIDBPA.js";
|
|
16
|
+
import "./chunk-IZVIN7XC.js";
|
|
17
17
|
import "./chunk-JLHYB445.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-OA7KBQ2O.js";
|
|
19
19
|
import "./chunk-GKRYQ56N.js";
|
|
20
20
|
import "./chunk-LW6MMSTD.js";
|
|
21
21
|
import "./chunk-UA2ATO3B.js";
|
|
@@ -23,12 +23,12 @@ import "./chunk-I72ACQ6R.js";
|
|
|
23
23
|
import "./chunk-VIJVLLPT.js";
|
|
24
24
|
import "./chunk-OAN4BXEW.js";
|
|
25
25
|
import "./chunk-V5AC2TV7.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-YFTCFJJM.js";
|
|
27
27
|
import {
|
|
28
28
|
getEventStore
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-2OTUYNXD.js";
|
|
30
30
|
import "./chunk-AE2IBEUH.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-DBF5GKZF.js";
|
|
32
32
|
import "./chunk-4F4ARGAM.js";
|
|
33
33
|
import "./chunk-OSXPQSLW.js";
|
|
34
34
|
import {
|
|
@@ -38,18 +38,18 @@ import {
|
|
|
38
38
|
} from "./chunk-OVAHNEFG.js";
|
|
39
39
|
import "./chunk-LCLH6ZUL.js";
|
|
40
40
|
import "./chunk-46Q2SHGJ.js";
|
|
41
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-H7YL7PH3.js";
|
|
42
42
|
import "./chunk-OA2FURC3.js";
|
|
43
43
|
import "./chunk-J2GP3J3X.js";
|
|
44
44
|
import "./chunk-DPFET73G.js";
|
|
45
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-SSHXYKW3.js";
|
|
46
46
|
import "./chunk-TS5WKTFB.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-VLQ6BMU7.js";
|
|
48
48
|
import "./chunk-HNCM3D7Y.js";
|
|
49
49
|
import "./chunk-QMU3ZY2C.js";
|
|
50
50
|
import "./chunk-FSSUPWYO.js";
|
|
51
51
|
import "./chunk-XG3AUMPI.js";
|
|
52
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-EE6VFEE6.js";
|
|
53
53
|
import "./chunk-EMXMTCSY.js";
|
|
54
54
|
import "./chunk-JU757HVI.js";
|
|
55
55
|
import "./chunk-VKMPR25F.js";
|
|
@@ -180,4 +180,4 @@ export {
|
|
|
180
180
|
startChatSession,
|
|
181
181
|
stopSessionExecution
|
|
182
182
|
};
|
|
183
|
-
//# sourceMappingURL=chat-handler-
|
|
183
|
+
//# sourceMappingURL=chat-handler-F7QRNO2E.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-AE2IBEUH.js";
|
|
10
10
|
import {
|
|
11
11
|
updateSessionMessageCount
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DBF5GKZF.js";
|
|
13
13
|
import {
|
|
14
14
|
getRuntimeConfig
|
|
15
15
|
} from "./chunk-4F4ARGAM.js";
|
|
@@ -1489,4 +1489,4 @@ export {
|
|
|
1489
1489
|
truncateSessionMessages,
|
|
1490
1490
|
getRecentUserPromptsForSession
|
|
1491
1491
|
};
|
|
1492
|
-
//# sourceMappingURL=chunk-
|
|
1492
|
+
//# sourceMappingURL=chunk-2OTUYNXD.js.map
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
checkToolChangesAndInject,
|
|
4
4
|
computeDynamicContextHash,
|
|
5
5
|
getToolFingerprint
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RCEGPT57.js";
|
|
7
7
|
import {
|
|
8
8
|
createAssemblyResult,
|
|
9
9
|
getConversationMessages,
|
|
10
10
|
getToolRegistryForAgent,
|
|
11
11
|
processEventsForConversation,
|
|
12
12
|
runTopLevelAgentLoop
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-NDAXMOD2.js";
|
|
14
14
|
import {
|
|
15
15
|
getAllInstructions,
|
|
16
16
|
getEnabledSkillMetadata
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
TurnMetrics,
|
|
23
23
|
createChatDoneEvent,
|
|
24
24
|
createMessageStartEvent
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-OA7KBQ2O.js";
|
|
26
26
|
import {
|
|
27
27
|
buildAgentReminder,
|
|
28
28
|
buildAgentSmallReminder,
|
|
@@ -30,12 +30,12 @@ import {
|
|
|
30
30
|
} from "./chunk-GKRYQ56N.js";
|
|
31
31
|
import {
|
|
32
32
|
PathAccessDeniedError
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-YFTCFJJM.js";
|
|
34
34
|
import {
|
|
35
35
|
getCurrentContextWindowId,
|
|
36
36
|
getCurrentWindowMessageOptions,
|
|
37
37
|
getEventStore
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-2OTUYNXD.js";
|
|
39
39
|
import {
|
|
40
40
|
buildSnapshotFromSessionState
|
|
41
41
|
} from "./chunk-AE2IBEUH.js";
|
|
@@ -355,7 +355,7 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
|
|
|
355
355
|
getConversationMessages: buildGetConversationMessages(options.sessionId, resolveAgentClient, append),
|
|
356
356
|
injectAgentReminder: () => injectAgentReminder(options.sessionId, agentDef),
|
|
357
357
|
rebuildCachedContext: async () => {
|
|
358
|
-
const { applyDynamicContext } = await import("./dynamic-context-
|
|
358
|
+
const { applyDynamicContext } = await import("./dynamic-context-UEC6MMEV.js");
|
|
359
359
|
await applyDynamicContext(options.sessionManager, options.sessionId, agentLlmClient.getModel());
|
|
360
360
|
},
|
|
361
361
|
...options.initialCompacting ? { initialCompacting: true } : {},
|
|
@@ -385,4 +385,4 @@ export {
|
|
|
385
385
|
runChatTurn,
|
|
386
386
|
runAgentTurn
|
|
387
387
|
};
|
|
388
|
-
//# sourceMappingURL=chunk-
|
|
388
|
+
//# sourceMappingURL=chunk-BB67GW5P.js.map
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
combineEventsWithSnapshot,
|
|
6
6
|
getEventStore
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2OTUYNXD.js";
|
|
8
8
|
import {
|
|
9
9
|
buildMessagesFromStoredEvents,
|
|
10
10
|
foldPendingConfirmations
|
|
11
11
|
} from "./chunk-AE2IBEUH.js";
|
|
12
12
|
import {
|
|
13
13
|
updateSessionMetadata
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-DBF5GKZF.js";
|
|
15
15
|
import {
|
|
16
16
|
getRuntimeConfig
|
|
17
17
|
} from "./chunk-4F4ARGAM.js";
|
|
@@ -162,7 +162,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
|
|
|
162
162
|
client = deps.getLLMClient();
|
|
163
163
|
client.setModel(providerConfig.model);
|
|
164
164
|
} else if (providerConfig) {
|
|
165
|
-
const { createLLMClient } = await import("./client-
|
|
165
|
+
const { createLLMClient } = await import("./client-KJS7QIIV.js");
|
|
166
166
|
client = createLLMClient(
|
|
167
167
|
{
|
|
168
168
|
llm: {
|
|
@@ -182,6 +182,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
|
|
|
182
182
|
const timeoutSignal = AbortSignal.timeout(12e4);
|
|
183
183
|
const composedSignal = signal ? AbortSignal.any([timeoutSignal, signal]) : timeoutSignal;
|
|
184
184
|
const response = await client.complete({
|
|
185
|
+
sessionId,
|
|
185
186
|
messages: [{ role: "user", content: prompt }],
|
|
186
187
|
tools: [],
|
|
187
188
|
...modelSettings ? { modelSettings } : {},
|
|
@@ -216,4 +217,4 @@ export {
|
|
|
216
217
|
needsNameGeneration,
|
|
217
218
|
generateSessionNameForSession
|
|
218
219
|
};
|
|
219
|
-
//# sourceMappingURL=chunk-
|
|
220
|
+
//# sourceMappingURL=chunk-CEEBKCGX.js.map
|
|
@@ -324,10 +324,9 @@ function listSessionsPaged(projectId, limit, offset) {
|
|
|
324
324
|
const sessions = rows.slice(0, limit).map(mapSessionSummaryRow);
|
|
325
325
|
return { sessions, hasMore };
|
|
326
326
|
}
|
|
327
|
-
function listHomeSessions(
|
|
327
|
+
function listHomeSessions(limit = 20) {
|
|
328
328
|
const db = getDatabase();
|
|
329
|
-
const
|
|
330
|
-
`
|
|
329
|
+
const select = `
|
|
331
330
|
SELECT
|
|
332
331
|
s.id,
|
|
333
332
|
s.project_id,
|
|
@@ -345,18 +344,17 @@ function listHomeSessions(sessionsPerProject = 5) {
|
|
|
345
344
|
s.provider_model,
|
|
346
345
|
s.message_count
|
|
347
346
|
FROM sessions s
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
return result;
|
|
347
|
+
`;
|
|
348
|
+
const rows = db.prepare(`${select} ORDER BY s.updated_at DESC LIMIT ?`).all(limit);
|
|
349
|
+
const pinned = db.prepare(
|
|
350
|
+
`${select}
|
|
351
|
+
WHERE (s.is_running = 1 OR s.workflow_phase IN ('waiting', 'blocked'))
|
|
352
|
+
AND s.id NOT IN (SELECT id FROM sessions ORDER BY updated_at DESC LIMIT ?)`
|
|
353
|
+
).all(limit);
|
|
354
|
+
const merged = [...rows, ...pinned].sort(
|
|
355
|
+
(a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime()
|
|
356
|
+
);
|
|
357
|
+
return merged.map(mapSessionSummaryRow);
|
|
360
358
|
}
|
|
361
359
|
function updateSessionWorkdir(id, workdir, workspace, branch) {
|
|
362
360
|
const db = getDatabase();
|
|
@@ -484,4 +482,4 @@ export {
|
|
|
484
482
|
getLatestWorkflowExecution,
|
|
485
483
|
clearWorkflowExecution
|
|
486
484
|
};
|
|
487
|
-
//# sourceMappingURL=chunk-
|
|
485
|
+
//# sourceMappingURL=chunk-DBF5GKZF.js.map
|
|
@@ -44,7 +44,7 @@ var ChatHttpClient = class {
|
|
|
44
44
|
async post(params, options) {
|
|
45
45
|
const { url, headers, body } = this.buildRequest(params);
|
|
46
46
|
logger.debug("HTTP request to LLM", { url, bodyKeys: Object.keys(params) });
|
|
47
|
-
return postJson(url, headers, body, options);
|
|
47
|
+
return postJson(url, { ...headers, ...options?.headers }, body, options);
|
|
48
48
|
}
|
|
49
49
|
async createChatCompletion(params, options, returnRaw) {
|
|
50
50
|
const response = await this.post(params, options);
|
|
@@ -194,4 +194,4 @@ export {
|
|
|
194
194
|
ChatHttpClient,
|
|
195
195
|
OpenAIHttpClient
|
|
196
196
|
};
|
|
197
|
-
//# sourceMappingURL=chunk-
|
|
197
|
+
//# sourceMappingURL=chunk-EE6VFEE6.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
updateSessionMcpDisabledServers
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DBF5GKZF.js";
|
|
4
4
|
import {
|
|
5
5
|
getProject
|
|
6
6
|
} from "./chunk-DPFET73G.js";
|
|
@@ -96,4 +96,4 @@ export {
|
|
|
96
96
|
computeDisabledServersForProject,
|
|
97
97
|
initSessionMcpOverrides
|
|
98
98
|
};
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-FBOIDBPA.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createMessageStartEvent
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OA7KBQ2O.js";
|
|
4
4
|
import {
|
|
5
5
|
COMPACTION_PROMPT
|
|
6
6
|
} from "./chunk-GKRYQ56N.js";
|
|
7
7
|
import {
|
|
8
8
|
getCurrentWindowMessageOptions
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2OTUYNXD.js";
|
|
10
10
|
|
|
11
11
|
// src/server/context/compactor.ts
|
|
12
12
|
function appendCompactionPrompt(sessionId, append) {
|
|
@@ -36,4 +36,4 @@ export {
|
|
|
36
36
|
COMPACTION_MAX_RATIO,
|
|
37
37
|
shouldCompact
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=chunk-
|
|
39
|
+
//# sourceMappingURL=chunk-G7BQWMV7.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-OA2FURC3.js";
|
|
5
5
|
import {
|
|
6
6
|
createLLMClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SSHXYKW3.js";
|
|
8
8
|
import {
|
|
9
9
|
getModelProfile
|
|
10
10
|
} from "./chunk-TS5WKTFB.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
detectBackendFromUrl,
|
|
13
13
|
detectProviderDefaultsFromUrl,
|
|
14
14
|
getBackendCapabilities
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-VLQ6BMU7.js";
|
|
16
16
|
import {
|
|
17
17
|
buildModelsUrl,
|
|
18
18
|
ensureVersionPrefix,
|
|
@@ -467,6 +467,9 @@ function createProviderManager(config, options = {}) {
|
|
|
467
467
|
if (provider.thinkingField) return provider.thinkingField;
|
|
468
468
|
return detectProviderDefaultsFromUrl(provider.url)?.thinkingField;
|
|
469
469
|
}
|
|
470
|
+
function resolveSendReasoningInMessages(provider) {
|
|
471
|
+
return detectProviderDefaultsFromUrl(provider.url)?.sendReasoningInMessages ?? provider.sendReasoningInMessages;
|
|
472
|
+
}
|
|
470
473
|
function createConfigForProvider(provider, model, reasoningEffort) {
|
|
471
474
|
const modelThinking = resolveModelThinkingConfig(provider, model, reasoningEffort);
|
|
472
475
|
const configureModel = provider.models.find((m) => m.id === model);
|
|
@@ -477,6 +480,7 @@ function createProviderManager(config, options = {}) {
|
|
|
477
480
|
model
|
|
478
481
|
);
|
|
479
482
|
const thinkingField = resolveThinkingField(provider);
|
|
483
|
+
const sendReasoningInMessages = resolveSendReasoningInMessages(provider);
|
|
480
484
|
return {
|
|
481
485
|
...config,
|
|
482
486
|
llm: {
|
|
@@ -486,7 +490,7 @@ function createProviderManager(config, options = {}) {
|
|
|
486
490
|
backend: resolveBackend(provider),
|
|
487
491
|
...provider.apiKey && { apiKey: provider.apiKey },
|
|
488
492
|
...thinkingField ? { thinkingField } : {},
|
|
489
|
-
...
|
|
493
|
+
...sendReasoningInMessages !== void 0 ? { sendReasoningInMessages } : {},
|
|
490
494
|
...modelThinking.reasoningEffort && !send.suppressEffort && { reasoningEffort: modelThinking.reasoningEffort }
|
|
491
495
|
}
|
|
492
496
|
};
|
|
@@ -916,4 +920,4 @@ export {
|
|
|
916
920
|
parseDefaultModelSelection,
|
|
917
921
|
createProviderManager
|
|
918
922
|
};
|
|
919
|
-
//# sourceMappingURL=chunk-
|
|
923
|
+
//# sourceMappingURL=chunk-H7YL7PH3.js.map
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
PathAccessDeniedError,
|
|
9
9
|
registerPathConfirmation,
|
|
10
10
|
requestPathAccess
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YFTCFJJM.js";
|
|
12
12
|
import {
|
|
13
13
|
getEventStore
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2OTUYNXD.js";
|
|
15
15
|
import {
|
|
16
16
|
getRuntimeConfig
|
|
17
17
|
} from "./chunk-4F4ARGAM.js";
|
|
@@ -1152,4 +1152,4 @@ export {
|
|
|
1152
1152
|
isDescribeImageEligible,
|
|
1153
1153
|
describeImageTool
|
|
1154
1154
|
};
|
|
1155
|
-
//# sourceMappingURL=chunk-
|
|
1155
|
+
//# sourceMappingURL=chunk-IZVIN7XC.js.map
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
getGateConfig,
|
|
15
15
|
isTaskConflictError,
|
|
16
16
|
isTaskGateError
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-TJOKDC34.js";
|
|
18
18
|
import {
|
|
19
19
|
getSessionDisabledServers
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-FBOIDBPA.js";
|
|
21
21
|
import {
|
|
22
22
|
buildSignal,
|
|
23
23
|
computeFileHash,
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
requireSession,
|
|
34
34
|
validateActionWithPermission,
|
|
35
35
|
validateFileForWrite
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-IZVIN7XC.js";
|
|
37
37
|
import {
|
|
38
38
|
serverT
|
|
39
39
|
} from "./chunk-JLHYB445.js";
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
recordLLMFailure,
|
|
51
51
|
sleepThroughRetryBackoff,
|
|
52
52
|
streamLLMPure
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-OA7KBQ2O.js";
|
|
54
54
|
import {
|
|
55
55
|
COMPACTION_PROMPT,
|
|
56
56
|
buildBasePrompt,
|
|
@@ -93,12 +93,12 @@ import {
|
|
|
93
93
|
extractAbsolutePathsFromCommand,
|
|
94
94
|
extractSensitivePathsFromCommand,
|
|
95
95
|
resolveRelativeTraversals
|
|
96
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-YFTCFJJM.js";
|
|
97
97
|
import {
|
|
98
98
|
getCurrentContextWindowId,
|
|
99
99
|
getCurrentWindowMessageOptions,
|
|
100
100
|
getEventStore
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-2OTUYNXD.js";
|
|
102
102
|
import {
|
|
103
103
|
buildContextMessagesFromEventHistory,
|
|
104
104
|
foldContextState,
|
|
@@ -1498,6 +1498,7 @@ async function runTopLevelAgentLoop(config, turnMetrics) {
|
|
|
1498
1498
|
});
|
|
1499
1499
|
const modelSettings = sessionManager.getCurrentModelSettings(sessionId, config.mode);
|
|
1500
1500
|
await resolveClient().complete({
|
|
1501
|
+
sessionId,
|
|
1501
1502
|
messages: [{ role: "system", content: assembledRequest.systemPrompt }],
|
|
1502
1503
|
tools: assembledRequest.tools,
|
|
1503
1504
|
maxTokens: 1,
|
|
@@ -1598,6 +1599,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
|
|
|
1598
1599
|
messageId: assistantMsgId,
|
|
1599
1600
|
systemPrompt: assembledRequest.systemPrompt,
|
|
1600
1601
|
llmClient: attemptClient,
|
|
1602
|
+
sessionId,
|
|
1601
1603
|
messages: assembledRequest.messages,
|
|
1602
1604
|
tools: assembledRequest.tools,
|
|
1603
1605
|
toolChoice: "auto",
|
|
@@ -1729,7 +1731,7 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
|
|
|
1729
1731
|
currentMaxTokensOverride = void 0;
|
|
1730
1732
|
if (!compacting) {
|
|
1731
1733
|
const contextState = sessionManager.getContextState(sessionId);
|
|
1732
|
-
const { shouldCompact, appendCompactionPrompt } = await import("./compactor-
|
|
1734
|
+
const { shouldCompact, appendCompactionPrompt } = await import("./compactor-QDTK3SZI.js");
|
|
1733
1735
|
if (shouldCompact(
|
|
1734
1736
|
contextState.currentTokens,
|
|
1735
1737
|
contextState.maxTokens,
|
|
@@ -2445,7 +2447,7 @@ var callSubAgentTool = {
|
|
|
2445
2447
|
};
|
|
2446
2448
|
}
|
|
2447
2449
|
try {
|
|
2448
|
-
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-
|
|
2450
|
+
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-F4COIAZR.js");
|
|
2449
2451
|
const toolRegistry = getToolRegistryForAgent2(agentDef);
|
|
2450
2452
|
const turnMetrics = new TurnMetrics();
|
|
2451
2453
|
const result = await executeSubAgent({
|
|
@@ -3549,11 +3551,11 @@ var mcpConfigTool = createTool(
|
|
|
3549
3551
|
async function notifyContextChanged(sessionId) {
|
|
3550
3552
|
context.sessionManager.setDynamicContextChanged(sessionId, true);
|
|
3551
3553
|
mcpNotifyChanged?.(sessionId);
|
|
3552
|
-
const { injectContextDriftReminders } = await import("./dynamic-context-
|
|
3554
|
+
const { injectContextDriftReminders } = await import("./dynamic-context-UEC6MMEV.js");
|
|
3553
3555
|
await injectContextDriftReminders(context.sessionManager, sessionId);
|
|
3554
3556
|
}
|
|
3555
3557
|
async function rebuildTools() {
|
|
3556
|
-
const { setMcpTools: setMcpTools2 } = await import("./tools-
|
|
3558
|
+
const { setMcpTools: setMcpTools2 } = await import("./tools-F4COIAZR.js");
|
|
3557
3559
|
const mcpTools = createMcpTools(mcpManagerForTools);
|
|
3558
3560
|
setMcpTools2(mcpTools);
|
|
3559
3561
|
}
|
|
@@ -3562,7 +3564,7 @@ var mcpConfigTool = createTool(
|
|
|
3562
3564
|
if (servers.length === 0) {
|
|
3563
3565
|
return helpers.success(serverT({ en: "No MCP servers configured.", fr: "Aucun serveur MCP configur\xE9." }));
|
|
3564
3566
|
}
|
|
3565
|
-
const { getSessionDisabledServers: getSessionDisabledServers2 } = await import("./session-overrides-
|
|
3567
|
+
const { getSessionDisabledServers: getSessionDisabledServers2 } = await import("./session-overrides-WYOY7PVC.js");
|
|
3566
3568
|
const disabledForSession = new Set(context.sessionId ? getSessionDisabledServers2(context.sessionId) : []);
|
|
3567
3569
|
const visibleServers = servers.filter((server) => !disabledForSession.has(server.name));
|
|
3568
3570
|
if (visibleServers.length === 0) {
|
|
@@ -4695,4 +4697,4 @@ export {
|
|
|
4695
4697
|
getToolRegistryForAgent,
|
|
4696
4698
|
createToolRegistry
|
|
4697
4699
|
};
|
|
4698
|
-
//# sourceMappingURL=chunk-
|
|
4700
|
+
//# sourceMappingURL=chunk-NDAXMOD2.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-TS5WKTFB.js";
|
|
7
7
|
import {
|
|
8
8
|
getBackendCapabilities
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VLQ6BMU7.js";
|
|
10
10
|
import {
|
|
11
11
|
buildModelParams
|
|
12
12
|
} from "./chunk-QMU3ZY2C.js";
|
|
@@ -39,14 +39,15 @@ function matchRetryPatterns(content, thinking, patterns) {
|
|
|
39
39
|
|
|
40
40
|
// src/server/chat/stream-utils.ts
|
|
41
41
|
function buildStreamRequestObject(params) {
|
|
42
|
-
const { messages, tools, toolChoice, reasoningEffort, signal, modelSettings } = params;
|
|
42
|
+
const { messages, tools, toolChoice, reasoningEffort, signal, modelSettings, sessionId } = params;
|
|
43
43
|
return {
|
|
44
44
|
messages,
|
|
45
45
|
...tools && { tools },
|
|
46
46
|
...toolChoice && { toolChoice },
|
|
47
47
|
...reasoningEffort && { reasoningEffort },
|
|
48
48
|
...signal && { signal },
|
|
49
|
-
...modelSettings && { modelSettings }
|
|
49
|
+
...modelSettings && { modelSettings },
|
|
50
|
+
...sessionId && { sessionId }
|
|
50
51
|
};
|
|
51
52
|
}
|
|
52
53
|
function buildStreamRequest(client, options) {
|
|
@@ -140,7 +141,8 @@ async function* streamLLMPure(options) {
|
|
|
140
141
|
toolChoice,
|
|
141
142
|
reasoningEffort,
|
|
142
143
|
signal: combinedSignal,
|
|
143
|
-
modelSettings: options.modelSettings
|
|
144
|
+
modelSettings: options.modelSettings,
|
|
145
|
+
sessionId: options.sessionId
|
|
144
146
|
});
|
|
145
147
|
const seenToolIndices = /* @__PURE__ */ new Set();
|
|
146
148
|
const toolNames = /* @__PURE__ */ new Map();
|
|
@@ -518,4 +520,4 @@ export {
|
|
|
518
520
|
createChatDoneEvent,
|
|
519
521
|
consumeStreamGenerator
|
|
520
522
|
};
|
|
521
|
-
//# sourceMappingURL=chunk-
|
|
523
|
+
//# sourceMappingURL=chunk-OA7KBQ2O.js.map
|