openfox 2.0.122 → 2.0.124
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 +27 -0
- package/dist/CHANGELOG.md +27 -0
- package/dist/{auto-config-YXNCBYEY.js → auto-config-454YE6KC.js} +24 -17
- package/dist/{chat-handler-JQUVSZT3.js → chat-handler-N43TBYLV.js} +29 -28
- package/dist/{chunk-DIALH34K.js → chunk-3B232XG4.js} +2 -2
- package/dist/{chunk-RMOKNQAS.js → chunk-3NMLSANH.js} +2 -2
- package/dist/{chunk-22D7ZR2X.js → chunk-57UCBFBD.js} +50 -37
- package/dist/{chunk-SCP5KBNB.js → chunk-5CCM655F.js} +149 -63
- package/dist/{chunk-EZ67GBEO.js → chunk-66MG44TF.js} +2 -2
- package/dist/{chunk-YBOU4ZFD.js → chunk-7YP4O4XE.js} +3 -3
- package/dist/{chunk-UJRWYZHM.js → chunk-A6EZBX62.js} +59 -23
- package/dist/{chunk-SLW3KKPP.js → chunk-AQBRI7TM.js} +21 -8
- package/dist/{chunk-OXANSWVZ.js → chunk-EHFIUXWZ.js} +2 -2
- package/dist/{chunk-AIXVERRI.js → chunk-FAL4WO4V.js} +6 -6
- package/dist/{chunk-Y7FGHKBW.js → chunk-GIJUWPRQ.js} +2 -2
- package/dist/chunk-ISE55FOR.js +89 -0
- package/dist/{chunk-6A2VIV36.js → chunk-JEZN37KV.js} +3 -3
- package/dist/{chunk-2N7KFNMY.js → chunk-KBESUA3W.js} +3 -3
- package/dist/{chunk-5A4YN6I7.js → chunk-KD4W3I6C.js} +112 -33
- package/dist/{chunk-UOEAKQBH.js → chunk-KGFERMCV.js} +15 -15
- package/dist/{chunk-FGVMRFDW.js → chunk-N2Q3KYWM.js} +2 -2
- package/dist/{chunk-NYQKSKDB.js → chunk-OYBUJIC3.js} +9 -1
- package/dist/{chunk-KDC4QHE7.js → chunk-QJNBQCAF.js} +22 -18
- package/dist/{chunk-I22B6KWV.js → chunk-RV5G7QQU.js} +3 -3
- package/dist/{chunk-ZT7YTM2U.js → chunk-RXLAFEZB.js} +4 -4
- package/dist/chunk-SBADOWVC.js +7 -0
- package/dist/{chunk-J77SLE3M.js → chunk-SYTEO5LA.js} +3 -2
- package/dist/{chunk-STYGFTEB.js → chunk-UGEFD67O.js} +6 -6
- package/dist/{chunk-POTCPZJF.js → chunk-VPRB5FNR.js} +2 -2
- package/dist/{chunk-WIZUASFY.js → chunk-VUBFPRKT.js} +278 -142
- package/dist/{chunk-YDDBPKVP.js → chunk-W4SM4FFZ.js} +15 -15
- package/dist/{chunk-J3IJJ55E.js → chunk-YJD5A375.js} +7 -7
- package/dist/{chunk-LSEHJ2WI.js → chunk-ZIL6VKLU.js} +3 -3
- package/dist/{chunk-LWXLNE6M.js → chunk-ZIYETXOW.js} +2 -2
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{client-JKPDMJ7S.js → client-XHJHOFMU.js} +5 -5
- package/dist/{compactor-MKD3CAFM.js → compactor-VTATJTPN.js} +12 -12
- package/dist/{dynamic-context-IWFD7U3D.js → dynamic-context-KTQCAPTK.js} +9 -9
- package/dist/{events-6P4TDTSD.js → events-GMHRX4LF.js} +8 -8
- package/dist/{folding-3LA2WX2B.js → folding-7K2GRPF4.js} +6 -6
- package/dist/http-client-N4ASJEKJ.js +11 -0
- package/dist/{inspect-proxy-IDLUAQH5.js → inspect-proxy-UKPU3Z64.js} +4 -4
- package/dist/launch-Z5D5YFRJ.js +53 -0
- package/dist/{manager-NFKTUR64.js → manager-NOKJQTTF.js} +5 -5
- package/dist/model-catalog-ZLOWTQA7.js +14 -0
- package/dist/{orchestrator-PEXLQK3T.js → orchestrator-BQBBO4US.js} +31 -30
- package/dist/package.json +1 -1
- package/dist/{path-security-JUF56IB6.js → path-security-YTPZ35SL.js} +14 -12
- package/dist/{platform-FM57ZJHA.js → platform-EMKWQTZX.js} +4 -4
- package/dist/{processor-2GEVRLJP.js → processor-WTRVYXAO.js} +39 -35
- package/dist/{project-creator-J4ITWDZI.js → project-creator-JF3YVQAH.js} +3 -3
- package/dist/{projects-FHRTSV6N.js → projects-TPSLCJP2.js} +3 -3
- package/dist/{protocol-BLin669D.d.ts → protocol-DCMH9Ufp.d.ts} +1 -1
- package/dist/provider/index.d.ts +4 -4
- package/dist/{provider-TAFJCWVP.js → provider-LICG53GG.js} +7 -6
- package/dist/{provider-manager-EDJN6ARI.js → provider-manager-3QC2MSSR.js} +7 -6
- package/dist/{registry-37GL3DAP.js → registry-Z4GVYFTV.js} +5 -5
- package/dist/{serve-3BPQGWYE.js → serve-75G5Z7UQ.js} +34 -33
- package/dist/server/index.d.ts +27 -6
- package/dist/server/index.js +31 -30
- package/dist/server-N3VATHIA.js +56 -0
- package/dist/{service-2IOCVEXQ.js → service-OURGS2SI.js} +10 -9
- package/dist/{session-overrides-EOKSZO2X.js → session-overrides-4WAD3X5Q.js} +7 -7
- package/dist/{sessions-XFNU4DZ6.js → sessions-D7VRCHQY.js} +8 -6
- package/dist/{settings-SYYDPV43.js → settings-VOWWO4VG.js} +3 -3
- package/dist/shared/index.d.ts +3 -3
- package/dist/{tasks-G7ACMQM2.js → tasks-4SOLTX6A.js} +11 -10
- package/dist/{tools-IKMNLLAY.js → tools-G44LBKD4.js} +24 -23
- package/dist/{types-B5_9KtfJ.d.ts → types-Cr4EgGwK.d.ts} +1 -1
- package/dist/{types-DeQIEC1U.d.ts → types-PAKlAzp9.d.ts} +16 -0
- package/dist/{update-QX6IIUKB.js → update-R2TEHD7V.js} +2 -2
- package/dist/web/assets/{index-D9sfxcRH.css → index-DFMllFkv.css} +1 -1
- package/dist/web/assets/index-GZTGHRRr.js +324 -0
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/dist/{workspace-ZNZFEONU.js → workspace-J3JEGF6U.js} +4 -4
- package/package.json +1 -1
- package/dist/chunk-VC3YCHDO.js +0 -7
- package/dist/http-client-IKOARXI7.js +0 -11
- package/dist/launch-FOUIDMGW.js +0 -52
- package/dist/server-HPIR55OH.js +0 -55
- package/dist/web/assets/index-CJuw9bwD.js +0 -324
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.124 - 2026-08-19
|
|
4
|
+
|
|
5
|
+
### Enhancements
|
|
6
|
+
|
|
7
|
+
- **project_tasks list paginates** — capped at 10 results (25 max) to keep agent context lean
|
|
8
|
+
- **Pinned effort chips light up for any model** — the selector highlights a model's pinned effort even when it isn't the active pick
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
- **Reasoning effort options come from a curated catalog** — endpoint probing that collapsed or misdetected levels is gone
|
|
13
|
+
- **Qwen effort presets corrected** — qwen3.8 offers none/low/medium/xhigh (default xhigh), qwen3.5/3.6 offer none/high
|
|
14
|
+
- **maxTokens budget accounts for tool results** — tool-result tokens are subtracted so large outputs no longer overstate the budget
|
|
15
|
+
- **Context-overflow retries halve maxTokens** — retry immediately with a halved budget instead of a doomed backoff retry
|
|
16
|
+
- **`..` paths respect shell cd state** — relative traversals no longer trigger false outside-sandbox confirmations
|
|
17
|
+
- **Division expressions no longer flagged as paths** — 'length / 4' no longer trips the root-path safety check
|
|
18
|
+
|
|
19
|
+
## 2.0.123 - 2026-08-18
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
- **Reasoning effort is now a first-class citizen** — switch it per model from the model selector, with curated presets you can customize or override raw; pin it in agent overrides; see it as model:effort in message headers, turn stats and the selector; and have your picks stick as the model's default for future sessions
|
|
24
|
+
- **Switching reasoning effort mid-run may invalidate your cache!** — the model selector asks first, so you can keep the current effort or apply the new one
|
|
25
|
+
|
|
26
|
+
### Enhancements
|
|
27
|
+
|
|
28
|
+
- **Task prompt auto-resizes** — save with Ctrl/Cmd+Enter, newlines via Enter/Shift+Enter, spellcheck off
|
|
29
|
+
|
|
3
30
|
## 2.0.122 - 2026-08-16
|
|
4
31
|
|
|
5
32
|
### Features
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.124 - 2026-08-19
|
|
4
|
+
|
|
5
|
+
### Enhancements
|
|
6
|
+
|
|
7
|
+
- **project_tasks list paginates** — capped at 10 results (25 max) to keep agent context lean
|
|
8
|
+
- **Pinned effort chips light up for any model** — the selector highlights a model's pinned effort even when it isn't the active pick
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
- **Reasoning effort options come from a curated catalog** — endpoint probing that collapsed or misdetected levels is gone
|
|
13
|
+
- **Qwen effort presets corrected** — qwen3.8 offers none/low/medium/xhigh (default xhigh), qwen3.5/3.6 offer none/high
|
|
14
|
+
- **maxTokens budget accounts for tool results** — tool-result tokens are subtracted so large outputs no longer overstate the budget
|
|
15
|
+
- **Context-overflow retries halve maxTokens** — retry immediately with a halved budget instead of a doomed backoff retry
|
|
16
|
+
- **`..` paths respect shell cd state** — relative traversals no longer trigger false outside-sandbox confirmations
|
|
17
|
+
- **Division expressions no longer flagged as paths** — 'length / 4' no longer trips the root-path safety check
|
|
18
|
+
|
|
19
|
+
## 2.0.123 - 2026-08-18
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
- **Reasoning effort is now a first-class citizen** — switch it per model from the model selector, with curated presets you can customize or override raw; pin it in agent overrides; see it as model:effort in message headers, turn stats and the selector; and have your picks stick as the model's default for future sessions
|
|
24
|
+
- **Switching reasoning effort mid-run may invalidate your cache!** — the model selector asks first, so you can keep the current effort or apply the new one
|
|
25
|
+
|
|
26
|
+
### Enhancements
|
|
27
|
+
|
|
28
|
+
- **Task prompt auto-resizes** — save with Ctrl/Cmd+Enter, newlines via Enter/Shift+Enter, spellcheck off
|
|
29
|
+
|
|
3
30
|
## 2.0.122 - 2026-08-16
|
|
4
31
|
|
|
5
32
|
### Features
|
|
@@ -4,12 +4,20 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
ensureVersionPrefix
|
|
6
6
|
} from "./chunk-HNCM3D7Y.js";
|
|
7
|
+
import {
|
|
8
|
+
getCatalogEntry
|
|
9
|
+
} from "./chunk-ISE55FOR.js";
|
|
7
10
|
import {
|
|
8
11
|
logger
|
|
9
12
|
} from "./chunk-K44MW7JJ.js";
|
|
10
13
|
import "./chunk-YLJ4XMA6.js";
|
|
11
14
|
|
|
12
15
|
// src/server/providers/auto-config.ts
|
|
16
|
+
function buildAuthHeaders(apiKey) {
|
|
17
|
+
const headers = { "Content-Type": "application/json" };
|
|
18
|
+
if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
|
|
19
|
+
return headers;
|
|
20
|
+
}
|
|
13
21
|
var NON_THINKING_COMBOS = [
|
|
14
22
|
{},
|
|
15
23
|
{ reasoning_effort: "none" },
|
|
@@ -56,9 +64,10 @@ async function detectModelInfo(baseUrl, apiKey, backend, modelId) {
|
|
|
56
64
|
}
|
|
57
65
|
}
|
|
58
66
|
async function detectVllmInfo(baseUrl, apiKey, modelId) {
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
67
|
+
const response = await fetch(`${ensureVersionPrefix(baseUrl)}/models`, {
|
|
68
|
+
headers: buildAuthHeaders(apiKey),
|
|
69
|
+
signal: AbortSignal.timeout(5e3)
|
|
70
|
+
});
|
|
62
71
|
if (!response.ok) throw new Error(`HTTP ${response.status}`);
|
|
63
72
|
const data = await response.json();
|
|
64
73
|
const model = data.data?.find((m) => m.id === modelId);
|
|
@@ -109,8 +118,6 @@ async function detectLmstudioInfo(baseUrl, modelId) {
|
|
|
109
118
|
throw new Error("No context_length in LM Studio response");
|
|
110
119
|
}
|
|
111
120
|
async function probeCombo(baseUrl, apiKey, model, combo, signal) {
|
|
112
|
-
const headers = { "Content-Type": "application/json" };
|
|
113
|
-
if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
|
|
114
121
|
const body = {
|
|
115
122
|
model,
|
|
116
123
|
messages: [{ role: "user", content: "say hi in one word" }],
|
|
@@ -121,7 +128,7 @@ async function probeCombo(baseUrl, apiKey, model, combo, signal) {
|
|
|
121
128
|
try {
|
|
122
129
|
const response = await fetch(`${ensureVersionPrefix(baseUrl)}/chat/completions`, {
|
|
123
130
|
method: "POST",
|
|
124
|
-
headers,
|
|
131
|
+
headers: buildAuthHeaders(apiKey),
|
|
125
132
|
body: JSON.stringify(body),
|
|
126
133
|
signal
|
|
127
134
|
});
|
|
@@ -157,12 +164,10 @@ async function probeCombos(baseUrl, apiKey, model, combos) {
|
|
|
157
164
|
return null;
|
|
158
165
|
}
|
|
159
166
|
async function probeReasoningInMessages(baseUrl, apiKey, model) {
|
|
160
|
-
const headers = { "Content-Type": "application/json" };
|
|
161
|
-
if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
|
|
162
167
|
try {
|
|
163
168
|
const response = await fetch(`${ensureVersionPrefix(baseUrl)}/chat/completions`, {
|
|
164
169
|
method: "POST",
|
|
165
|
-
headers,
|
|
170
|
+
headers: buildAuthHeaders(apiKey),
|
|
166
171
|
body: JSON.stringify({
|
|
167
172
|
model,
|
|
168
173
|
messages: [
|
|
@@ -206,7 +211,7 @@ var DUMMY_TOOL = {
|
|
|
206
211
|
parameters: { type: "object", properties: {}, required: [] }
|
|
207
212
|
}
|
|
208
213
|
};
|
|
209
|
-
async function probeChatCompletions(baseUrl,
|
|
214
|
+
async function probeChatCompletions(baseUrl, apiKey, model, samplingParams) {
|
|
210
215
|
const body = {
|
|
211
216
|
model,
|
|
212
217
|
messages: [{ role: "user", content: "say hi in one word" }],
|
|
@@ -219,7 +224,7 @@ async function probeChatCompletions(baseUrl, headers, model, samplingParams) {
|
|
|
219
224
|
try {
|
|
220
225
|
const response = await fetch(`${ensureVersionPrefix(baseUrl)}/chat/completions`, {
|
|
221
226
|
method: "POST",
|
|
222
|
-
headers,
|
|
227
|
+
headers: buildAuthHeaders(apiKey),
|
|
223
228
|
body: JSON.stringify(body),
|
|
224
229
|
signal: AbortSignal.timeout(15e3)
|
|
225
230
|
});
|
|
@@ -230,14 +235,12 @@ async function probeChatCompletions(baseUrl, headers, model, samplingParams) {
|
|
|
230
235
|
}
|
|
231
236
|
}
|
|
232
237
|
async function probeRejectedParams(baseUrl, apiKey, model, backend) {
|
|
233
|
-
const headers = { "Content-Type": "application/json" };
|
|
234
|
-
if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
|
|
235
238
|
const candidates = [...STANDARD_PARAMS];
|
|
236
239
|
if (["openai", "anthropic", "ollama"].includes(backend)) {
|
|
237
240
|
const idx = candidates.indexOf("top_k");
|
|
238
241
|
if (idx !== -1) candidates.splice(idx, 1);
|
|
239
242
|
}
|
|
240
|
-
const control = await probeChatCompletions(baseUrl,
|
|
243
|
+
const control = await probeChatCompletions(baseUrl, apiKey, model, []);
|
|
241
244
|
if (!control.ok) {
|
|
242
245
|
logger.debug("Auto-config: rejection-probe control failed, skipping param detection", {
|
|
243
246
|
model,
|
|
@@ -248,7 +251,7 @@ async function probeRejectedParams(baseUrl, apiKey, model, backend) {
|
|
|
248
251
|
const rejected = [];
|
|
249
252
|
const remaining = [...candidates];
|
|
250
253
|
while (remaining.length > 0) {
|
|
251
|
-
const probe = await probeChatCompletions(baseUrl,
|
|
254
|
+
const probe = await probeChatCompletions(baseUrl, apiKey, model, remaining);
|
|
252
255
|
if (probe.ok) break;
|
|
253
256
|
if (probe.status === 400) {
|
|
254
257
|
const rejectedParam = extractRejectedParam(probe.errorText);
|
|
@@ -278,6 +281,8 @@ async function autoConfig(input) {
|
|
|
278
281
|
source: contextSource,
|
|
279
282
|
supportsVision
|
|
280
283
|
} = await detectModelInfo(baseUrl, apiKey, backend, model.id);
|
|
284
|
+
const catalog = getCatalogEntry(model.id);
|
|
285
|
+
const reasoningEfforts = catalog?.reasoningEfforts;
|
|
281
286
|
const [thinkingConfig, nonThinkingConfig, rejectedParams] = await Promise.all([
|
|
282
287
|
probeCombos(baseUrl, apiKey, model.id, THINKING_COMBOS),
|
|
283
288
|
probeCombos(baseUrl, apiKey, model.id, NON_THINKING_COMBOS),
|
|
@@ -292,7 +297,9 @@ async function autoConfig(input) {
|
|
|
292
297
|
thinkingConfig,
|
|
293
298
|
nonThinkingConfig,
|
|
294
299
|
...sendReasoningInMessages !== void 0 ? { sendReasoningInMessages } : {},
|
|
295
|
-
...rejectedParams.length > 0 ? { rejectedParams } : {}
|
|
300
|
+
...rejectedParams.length > 0 ? { rejectedParams } : {},
|
|
301
|
+
...reasoningEfforts ? { reasoningEfforts } : {},
|
|
302
|
+
...catalog?.defaultReasoningEffort ? { defaultReasoningEffort: catalog.defaultReasoningEffort } : {}
|
|
296
303
|
});
|
|
297
304
|
}
|
|
298
305
|
return { models: results };
|
|
@@ -300,4 +307,4 @@ async function autoConfig(input) {
|
|
|
300
307
|
export {
|
|
301
308
|
autoConfig
|
|
302
309
|
};
|
|
303
|
-
//# sourceMappingURL=auto-config-
|
|
310
|
+
//# sourceMappingURL=auto-config-454YE6KC.js.map
|
|
@@ -2,52 +2,53 @@ import {
|
|
|
2
2
|
buildRunChatTurnParams,
|
|
3
3
|
finalizeTurnCompletion,
|
|
4
4
|
generateSessionNameForSession
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-W4SM4FFZ.js";
|
|
6
6
|
import {
|
|
7
7
|
runChatTurn
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-QJNBQCAF.js";
|
|
9
|
+
import "./chunk-5CCM655F.js";
|
|
10
|
+
import "./chunk-FAL4WO4V.js";
|
|
11
|
+
import "./chunk-ZIL6VKLU.js";
|
|
12
|
+
import "./chunk-62GUO2EG.js";
|
|
13
|
+
import "./chunk-GIJUWPRQ.js";
|
|
14
|
+
import "./chunk-EHFIUXWZ.js";
|
|
15
|
+
import "./chunk-RV5G7QQU.js";
|
|
14
16
|
import "./chunk-I72ACQ6R.js";
|
|
15
17
|
import "./chunk-JE7LW7Y6.js";
|
|
16
18
|
import "./chunk-OAN4BXEW.js";
|
|
17
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-3NMLSANH.js";
|
|
18
20
|
import "./chunk-J7GAZGZT.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-UGEFD67O.js";
|
|
22
|
+
import "./chunk-7YP4O4XE.js";
|
|
23
|
+
import "./chunk-KD4W3I6C.js";
|
|
24
|
+
import {
|
|
25
|
+
getEventStore
|
|
26
|
+
} from "./chunk-YJD5A375.js";
|
|
27
|
+
import "./chunk-ZIYETXOW.js";
|
|
28
|
+
import "./chunk-AQBRI7TM.js";
|
|
22
29
|
import {
|
|
23
30
|
createChatMessageMessage,
|
|
24
31
|
createPhaseChangedMessage,
|
|
25
32
|
createSessionRunningMessage
|
|
26
33
|
} from "./chunk-XAAEP5XM.js";
|
|
34
|
+
import "./chunk-66MG44TF.js";
|
|
27
35
|
import "./chunk-JURM3RPZ.js";
|
|
28
|
-
import "./chunk-62GUO2EG.js";
|
|
29
|
-
import "./chunk-Y7FGHKBW.js";
|
|
30
|
-
import {
|
|
31
|
-
getEventStore
|
|
32
|
-
} from "./chunk-J3IJJ55E.js";
|
|
33
|
-
import "./chunk-SLW3KKPP.js";
|
|
34
|
-
import "./chunk-EZ67GBEO.js";
|
|
35
|
-
import "./chunk-LWXLNE6M.js";
|
|
36
36
|
import "./chunk-LCLH6ZUL.js";
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-OSXPQSLW.js";
|
|
39
|
-
import "./chunk-DIALH34K.js";
|
|
40
|
-
import "./chunk-UJRWYZHM.js";
|
|
37
|
+
import "./chunk-A6EZBX62.js";
|
|
41
38
|
import "./chunk-K2QKX4ZJ.js";
|
|
42
39
|
import "./chunk-J2GP3J3X.js";
|
|
43
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-KBESUA3W.js";
|
|
41
|
+
import "./chunk-OSXPQSLW.js";
|
|
42
|
+
import "./chunk-3B232XG4.js";
|
|
43
|
+
import "./chunk-SYTEO5LA.js";
|
|
44
44
|
import "./chunk-GJL3QSMP.js";
|
|
45
45
|
import "./chunk-AZHWLLPP.js";
|
|
46
46
|
import "./chunk-HNCM3D7Y.js";
|
|
47
47
|
import "./chunk-MIPQOHWS.js";
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-VPRB5FNR.js";
|
|
49
|
+
import "./chunk-N2Q3KYWM.js";
|
|
50
|
+
import "./chunk-OYBUJIC3.js";
|
|
51
|
+
import "./chunk-ISE55FOR.js";
|
|
51
52
|
import "./chunk-K44MW7JJ.js";
|
|
52
53
|
import "./chunk-KSDWQ6IZ.js";
|
|
53
54
|
import "./chunk-KSXCOHHW.js";
|
|
@@ -173,4 +174,4 @@ export {
|
|
|
173
174
|
startChatSession,
|
|
174
175
|
stopSessionExecution
|
|
175
176
|
};
|
|
176
|
-
//# sourceMappingURL=chat-handler-
|
|
177
|
+
//# sourceMappingURL=chat-handler-N43TBYLV.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDatabase
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OYBUJIC3.js";
|
|
4
4
|
|
|
5
5
|
// src/server/db/projects.ts
|
|
6
6
|
function createProject(name, workdir) {
|
|
@@ -144,4 +144,4 @@ export {
|
|
|
144
144
|
toggleStar,
|
|
145
145
|
getProjectDefaultAgent
|
|
146
146
|
};
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
147
|
+
//# sourceMappingURL=chunk-3B232XG4.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
getProjectByWorkdir,
|
|
6
6
|
updateProject
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3B232XG4.js";
|
|
8
8
|
import {
|
|
9
9
|
logger
|
|
10
10
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -333,4 +333,4 @@ export {
|
|
|
333
333
|
deleteWorkspace,
|
|
334
334
|
isGitRepository
|
|
335
335
|
};
|
|
336
|
-
//# sourceMappingURL=chunk-
|
|
336
|
+
//# sourceMappingURL=chunk-3NMLSANH.js.map
|
|
@@ -2,30 +2,45 @@ import {
|
|
|
2
2
|
generateSessionNameForSession,
|
|
3
3
|
getSessionMessageCount,
|
|
4
4
|
needsNameGeneration
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-W4SM4FFZ.js";
|
|
6
6
|
import {
|
|
7
7
|
launchWorkflowRun
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KGFERMCV.js";
|
|
9
9
|
import {
|
|
10
10
|
runChatTurn
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-QJNBQCAF.js";
|
|
12
|
+
import {
|
|
13
|
+
devServerManager
|
|
14
|
+
} from "./chunk-5CCM655F.js";
|
|
12
15
|
import {
|
|
13
16
|
applyDynamicContext,
|
|
14
17
|
computeSessionHash,
|
|
15
18
|
computeUnifiedDiff
|
|
16
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-FAL4WO4V.js";
|
|
17
20
|
import {
|
|
18
|
-
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
appendCompactionPrompt
|
|
22
|
+
} from "./chunk-JEZN37KV.js";
|
|
23
|
+
import {
|
|
24
|
+
hasRecentLLMFailure,
|
|
25
|
+
interruptLLMRetryWait
|
|
26
|
+
} from "./chunk-62GUO2EG.js";
|
|
20
27
|
import {
|
|
21
28
|
onProcessEvent
|
|
22
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-RV5G7QQU.js";
|
|
23
30
|
import {
|
|
24
31
|
killProcessTree
|
|
25
32
|
} from "./chunk-I72ACQ6R.js";
|
|
26
33
|
import {
|
|
27
34
|
gitSpawnEnv
|
|
28
35
|
} from "./chunk-J7GAZGZT.js";
|
|
36
|
+
import {
|
|
37
|
+
combineEventsWithSnapshot,
|
|
38
|
+
getEventStore
|
|
39
|
+
} from "./chunk-YJD5A375.js";
|
|
40
|
+
import {
|
|
41
|
+
buildMessagesFromStoredEvents,
|
|
42
|
+
foldPendingConfirmations
|
|
43
|
+
} from "./chunk-ZIYETXOW.js";
|
|
29
44
|
import {
|
|
30
45
|
createChatErrorMessage,
|
|
31
46
|
createChatMessageMessage,
|
|
@@ -41,34 +56,19 @@ import {
|
|
|
41
56
|
serializeServerMessage,
|
|
42
57
|
storedEventToServerMessage
|
|
43
58
|
} from "./chunk-XAAEP5XM.js";
|
|
59
|
+
import {
|
|
60
|
+
getPlatformShell
|
|
61
|
+
} from "./chunk-66MG44TF.js";
|
|
44
62
|
import {
|
|
45
63
|
getPendingQuestionsForSession,
|
|
46
64
|
provideAnswer
|
|
47
65
|
} from "./chunk-JURM3RPZ.js";
|
|
48
|
-
import {
|
|
49
|
-
appendCompactionPrompt
|
|
50
|
-
} from "./chunk-6A2VIV36.js";
|
|
51
|
-
import {
|
|
52
|
-
hasRecentLLMFailure,
|
|
53
|
-
interruptLLMRetryWait
|
|
54
|
-
} from "./chunk-62GUO2EG.js";
|
|
55
|
-
import {
|
|
56
|
-
combineEventsWithSnapshot,
|
|
57
|
-
getEventStore
|
|
58
|
-
} from "./chunk-J3IJJ55E.js";
|
|
59
|
-
import {
|
|
60
|
-
getPlatformShell
|
|
61
|
-
} from "./chunk-EZ67GBEO.js";
|
|
62
|
-
import {
|
|
63
|
-
buildMessagesFromStoredEvents,
|
|
64
|
-
foldPendingConfirmations
|
|
65
|
-
} from "./chunk-LWXLNE6M.js";
|
|
66
66
|
import {
|
|
67
67
|
getRuntimeConfig
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-KBESUA3W.js";
|
|
69
69
|
import {
|
|
70
70
|
getMaxVisibleItems
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-N2Q3KYWM.js";
|
|
72
72
|
import {
|
|
73
73
|
logger
|
|
74
74
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -610,11 +610,13 @@ function resolveStatsIdentity(llmClient, getActiveProvider) {
|
|
|
610
610
|
const provider = getActiveProvider?.();
|
|
611
611
|
const model = llmClient.getModel();
|
|
612
612
|
const backend = provider?.backend ?? (llmClient.getBackend() === "unknown" ? "unknown" : llmClient.getBackend());
|
|
613
|
+
const reasoningEffort = llmClient.getReasoningEffort?.();
|
|
613
614
|
return {
|
|
614
615
|
providerId: provider?.id ?? `provider:${model}`,
|
|
615
616
|
providerName: provider?.name ?? "Unknown Provider",
|
|
616
617
|
backend,
|
|
617
|
-
model
|
|
618
|
+
model,
|
|
619
|
+
...reasoningEffort ? { reasoningEffort } : {}
|
|
618
620
|
};
|
|
619
621
|
}
|
|
620
622
|
function addUserMessageAndBroadcast(sessionManager, sessionId, message, broadcastFn) {
|
|
@@ -675,7 +677,7 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
675
677
|
}
|
|
676
678
|
const resolvedModel = providerManager.resolveModel(effective.providerId, effective.model);
|
|
677
679
|
const effectiveModel = resolvedModel ?? effective.model;
|
|
678
|
-
const cacheKey = `${effective.providerId}:${effectiveModel}`;
|
|
680
|
+
const cacheKey = `${effective.providerId}:${effectiveModel}:${effective.reasoningEffort ?? ""}`;
|
|
679
681
|
const cached = sessionLLMClients.get(sessionId);
|
|
680
682
|
if (cached && cached.key === cacheKey) {
|
|
681
683
|
return cached.client;
|
|
@@ -688,13 +690,13 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
688
690
|
});
|
|
689
691
|
const session2 = sessionManager.getSession(sessionId);
|
|
690
692
|
if (session2?.providerId === effective.providerId) {
|
|
691
|
-
sessionManager.setSessionProvider(sessionId, null, null, false);
|
|
693
|
+
sessionManager.setSessionProvider(sessionId, null, null, false, null);
|
|
692
694
|
sessionManager.setSessionProviderActive(sessionId, true);
|
|
693
695
|
}
|
|
694
696
|
sessionLLMClients.delete(sessionId);
|
|
695
697
|
return getLLMClient();
|
|
696
698
|
}
|
|
697
|
-
const client = providerManager.createClient(effective.providerId, effectiveModel);
|
|
699
|
+
const client = providerManager.createClient(effective.providerId, effectiveModel, effective.reasoningEffort);
|
|
698
700
|
if (!client) {
|
|
699
701
|
logger.warn("Could not create session provider client, falling back to global", {
|
|
700
702
|
sessionId,
|
|
@@ -706,9 +708,18 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
706
708
|
const concreteModel = client.getModel();
|
|
707
709
|
const session = sessionManager.getSession(sessionId);
|
|
708
710
|
if (session?.providerId === effective.providerId && session.providerModel === effective.model && session.providerModel !== concreteModel) {
|
|
709
|
-
sessionManager.setSessionProvider(
|
|
711
|
+
sessionManager.setSessionProvider(
|
|
712
|
+
sessionId,
|
|
713
|
+
effective.providerId,
|
|
714
|
+
concreteModel,
|
|
715
|
+
void 0,
|
|
716
|
+
effective.reasoningEffort
|
|
717
|
+
);
|
|
710
718
|
}
|
|
711
|
-
sessionLLMClients.set(sessionId, {
|
|
719
|
+
sessionLLMClients.set(sessionId, {
|
|
720
|
+
key: `${effective.providerId}:${concreteModel}:${effective.reasoningEffort ?? ""}`,
|
|
721
|
+
client
|
|
722
|
+
});
|
|
712
723
|
return client;
|
|
713
724
|
}
|
|
714
725
|
function getSessionStatsIdentity(sessionId) {
|
|
@@ -718,11 +729,13 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
718
729
|
}
|
|
719
730
|
const provider = providerManager.getProviders().find((p) => p.id === effective.providerId);
|
|
720
731
|
const client = getSessionLLMClient(sessionId);
|
|
732
|
+
const reasoningEffort = client.getReasoningEffort?.();
|
|
721
733
|
return {
|
|
722
734
|
providerId: provider?.id ?? effective.providerId,
|
|
723
735
|
providerName: provider?.name ?? "Unknown Provider",
|
|
724
736
|
backend: provider?.backend ?? client.getBackend(),
|
|
725
|
-
model: client.getModel()
|
|
737
|
+
model: client.getModel(),
|
|
738
|
+
...reasoningEffort ? { reasoningEffort } : {}
|
|
726
739
|
};
|
|
727
740
|
}
|
|
728
741
|
const isSubscribedToSession = (client, sessionId) => {
|
|
@@ -1286,8 +1299,8 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1286
1299
|
}
|
|
1287
1300
|
const session = sessionManager.requireSession(sessionId);
|
|
1288
1301
|
try {
|
|
1289
|
-
const { buildCachedPrompt } = await import("./dynamic-context-
|
|
1290
|
-
const allAgents = await import("./registry-
|
|
1302
|
+
const { buildCachedPrompt } = await import("./dynamic-context-KTQCAPTK.js");
|
|
1303
|
+
const allAgents = await import("./registry-Z4GVYFTV.js");
|
|
1291
1304
|
const agentDef = allAgents.findAgentById(session.mode, await allAgents.loadAllAgentsDefault()) ?? allAgents.findAgentById("planner", await allAgents.loadAllAgentsDefault());
|
|
1292
1305
|
const modelName = session.providerModel ?? _providerManager?.getCurrentModel();
|
|
1293
1306
|
const { systemPrompt: newPrompt, hash: newHash } = await buildCachedPrompt(
|
|
@@ -1611,4 +1624,4 @@ export {
|
|
|
1611
1624
|
signalMcpReady,
|
|
1612
1625
|
createWebSocketServer
|
|
1613
1626
|
};
|
|
1614
|
-
//# sourceMappingURL=chunk-
|
|
1627
|
+
//# sourceMappingURL=chunk-57UCBFBD.js.map
|