openfox 2.0.135 → 2.0.136
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/agent-defaults/builder.agent.md +1 -0
- package/dist/agent-defaults/planner.agent.md +1 -0
- package/dist/{ask-UBIRH3SO.js → ask-46J5WYRL.js} +2 -2
- package/dist/{auto-config-5VSNLVNI.js → auto-config-2A7Y2WOK.js} +25 -6
- package/dist/{backend-NDBY3DAQ.js → backend-24FTDSHF.js} +4 -2
- package/dist/{chat-handler-WGDFMOOD.js → chat-handler-SYU4HJMI.js} +30 -26
- package/dist/{chunk-QZOV4OVN.js → chunk-342BKOTE.js} +5 -5
- package/dist/{chunk-7QMWYNVF.js → chunk-4LLGI372.js} +2 -2
- package/dist/chunk-4SBVW4UH.js +24 -0
- package/dist/{chunk-NFEZATSN.js → chunk-5YPHN5NC.js} +8 -8
- package/dist/{chunk-ZMK4VX7V.js → chunk-64YDOCQR.js} +53 -21
- package/dist/{chunk-UV6IH6HK.js → chunk-AKWJMMEJ.js} +15 -1
- package/dist/{chunk-ORCQ3EXQ.js → chunk-BHVR2YS5.js} +2 -2
- package/dist/{chunk-5H5NRWHA.js → chunk-CPVEONNS.js} +12 -10
- package/dist/{chunk-S67WIWUG.js → chunk-DG2YSWMC.js} +40 -6
- package/dist/{chunk-ESZQTFQP.js → chunk-EXLCFEML.js} +86 -1010
- package/dist/chunk-FSSUPWYO.js +336 -0
- package/dist/{chunk-5UQ4CKOA.js → chunk-G5GUQKLS.js} +27 -6
- package/dist/{chunk-GP3CLMPQ.js → chunk-GP5BYQMF.js} +23 -23
- package/dist/{chunk-7ET46SNE.js → chunk-HEYU7FAY.js} +3 -3
- package/dist/{chunk-IAT2LBIX.js → chunk-MILEZY2J.js} +4 -4
- package/dist/{chunk-O3RCSKUH.js → chunk-MOYWDP73.js} +2 -2
- package/dist/{chunk-J3NMNYGM.js → chunk-N5JKVNLH.js} +2 -2
- package/dist/{chunk-I5ODJKYM.js → chunk-PQKLOLGC.js} +162 -6
- package/dist/{chunk-DWA4IE65.js → chunk-Q33DL67W.js} +2 -2
- package/dist/{chunk-OZWHRBDY.js → chunk-QBWJCO5K.js} +12 -29
- package/dist/{chunk-EUOWCVU6.js → chunk-QMU3ZY2C.js} +37 -341
- package/dist/{chunk-BIZFY3QP.js → chunk-QQQBNL7A.js} +212 -148
- package/dist/{chunk-CTWZPN7G.js → chunk-QUAEH3MP.js} +29 -1
- package/dist/{chunk-5UMXFLET.js → chunk-SAGDTQXD.js} +3 -3
- package/dist/chunk-U6FHHT2B.js +1155 -0
- package/dist/{chunk-4R5GV7RW.js → chunk-UL7776XB.js} +21 -21
- package/dist/{chunk-JURM3RPZ.js → chunk-V5AC2TV7.js} +8 -13
- package/dist/{chunk-UKIUQAQZ.js → chunk-VA2TYWQR.js} +4 -4
- package/dist/{chunk-JE7LW7Y6.js → chunk-VIJVLLPT.js} +12 -3
- package/dist/{chunk-2AI7VYPN.js → chunk-VKMPR25F.js} +9 -3
- package/dist/chunk-VWBPQZLO.js +7 -0
- package/dist/{chunk-F2MOHHXB.js → chunk-X4PVR6AW.js} +2 -2
- package/dist/chunk-XG3AUMPI.js +72 -0
- package/dist/{chunk-MEEUXRFL.js → chunk-XGG4XCKP.js} +2 -2
- package/dist/{chunk-VHLD6PCZ.js → chunk-YDPC4FLR.js} +17 -11
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/client-MVI3J7SN.js +18 -0
- package/dist/{client-pure-FLKP6PTI.js → client-pure-YZ4IGCU4.js} +4 -2
- package/dist/{compactor-454UEIEX.js → compactor-LBK53WAK.js} +14 -12
- package/dist/describe-image-4XDLSKAB.js +30 -0
- package/dist/{dynamic-context-LKC6JYLQ.js → dynamic-context-RDBNQPPA.js} +12 -10
- package/dist/{events-335XAKFK.js → events-YTYYT3PR.js} +6 -6
- package/dist/{export-import-3WMRLO4A.js → export-import-GHRCOQHF.js} +7 -7
- package/dist/{folding-H7JTX6KI.js → folding-3MMOPS4W.js} +4 -4
- package/dist/{http-client-A445WYZU.js → http-client-C6UYWVWZ.js} +3 -3
- package/dist/launch-YZ46OEFP.js +58 -0
- package/dist/{manager-ZACEUL5P.js → manager-FSPRJCYT.js} +4 -4
- package/dist/{model-catalog-2PCKTYGW.js → model-catalog-Y5MA5OZP.js} +2 -2
- package/dist/{orchestrator-JGJWTRO5.js → orchestrator-6QGQ55NT.js} +29 -25
- package/dist/package.json +1 -1
- package/dist/{path-security-4LROI7F4.js → path-security-EC4Z2ZZG.js} +8 -8
- package/dist/{platform-XPMZKAUB.js → platform-KPKYBU54.js} +3 -3
- package/dist/{processor-MSQP63ML.js → processor-B2RV7MVC.js} +29 -25
- package/dist/{provider-JWUNG2TD.js → provider-SOC6Z25R.js} +10 -8
- package/dist/{provider-manager-2KKZ37XJ.js → provider-manager-Y53SVVQ3.js} +10 -8
- package/dist/{registry-BEIR7Y5G.js → registry-FMDMGIUB.js} +3 -3
- package/dist/{serve-CW5C3CBZ.js → serve-EWA5HXC7.js} +41 -32
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +34 -30
- package/dist/server-ZAPAB3FS.js +61 -0
- package/dist/{service-XIUNS5XV.js → service-NKLQH647.js} +12 -9
- package/dist/{session-overrides-LYW5PJ3R.js → session-overrides-ANQBKV74.js} +11 -7
- package/dist/{sessions-AOK3AGHY.js → sessions-GLYACE5R.js} +4 -4
- package/dist/{settings-ZJPM6PQV.js → settings-WH6BVQCP.js} +4 -2
- package/dist/{tasks-3JJWJJ3X.js → tasks-GPM3JAE6.js} +14 -10
- package/dist/tool-adapter-ZY4FC4C4.js +9 -0
- package/dist/{tools-E63MOJBO.js → tools-EJOABHVO.js} +27 -23
- package/dist/{update-XVXNSSDK.js → update-IPHJMRQZ.js} +2 -2
- package/dist/web/assets/{index-wTFCxQAw.js → index-CfFwerN2.js} +84 -84
- package/dist/web/assets/{index-Bg_Z8i3F.css → index-ChJjYovg.css} +1 -1
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-WY3PWHWY.js +0 -7
- package/dist/client-VVYOWXRR.js +0 -16
- package/dist/launch-GJ7EHQRI.js +0 -54
- package/dist/server-ZHEB7XS2.js +0 -57
- package/dist/tool-adapter-FJAFLDZA.js +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.136 - 2026-09-02
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- **Model favorites** — heart-toggle any model and pin a Favorites section at the top of the model selector
|
|
8
|
+
- **Model selector display settings** — full-height sizing, and start with providers or favorites collapsed
|
|
9
|
+
- **Describe-image tool for non-vision models** — delegates image questions to a vision-capable fallback
|
|
10
|
+
- **Sync button in the provider editor** — refetch the model catalog without losing current selections
|
|
11
|
+
|
|
12
|
+
### Enhancements
|
|
13
|
+
|
|
14
|
+
- **Hover tooltips for truncated tool-call labels** — reveal the full path or command
|
|
15
|
+
- **Compact provider auth badge** — the Connected/Connect button is smaller and better aligned
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
- **Localized modal footer buttons** — Cancel/Save now translate to French
|
|
20
|
+
- **Tool schemas work with strict providers** — Vertex AI, Antigravity, and Gemini no longer reject tool calls
|
|
21
|
+
- **New sessions inherit project MCP overrides** — forked sessions keep the parent's MCP state too
|
|
22
|
+
- **No more duplicate models after a sync** — merged model families and selections survive a catalog refresh
|
|
23
|
+
- **Deleting a provider cleans up its sessions** — no dead provider pins, wrong context windows, or auto-compaction
|
|
24
|
+
- **Ollama vision images work again** — content arrays are converted to Ollama's native format
|
|
25
|
+
- **grep patterns no longer trigger path confirmations** — only real file operands are checked
|
|
26
|
+
- **Quoted paths can't sneak past path security** — nested quotes are now detected
|
|
27
|
+
- **DeepSeek reasoning preserved** — chain-of-thought is echoed under reasoning_content instead of being dropped
|
|
28
|
+
- **Per-model reasoning efforts accepted** — validation now honors each model's modes and effort lists
|
|
29
|
+
|
|
3
30
|
## 2.0.135 - 2026-09-01
|
|
4
31
|
|
|
5
32
|
### Features
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.136 - 2026-09-02
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- **Model favorites** — heart-toggle any model and pin a Favorites section at the top of the model selector
|
|
8
|
+
- **Model selector display settings** — full-height sizing, and start with providers or favorites collapsed
|
|
9
|
+
- **Describe-image tool for non-vision models** — delegates image questions to a vision-capable fallback
|
|
10
|
+
- **Sync button in the provider editor** — refetch the model catalog without losing current selections
|
|
11
|
+
|
|
12
|
+
### Enhancements
|
|
13
|
+
|
|
14
|
+
- **Hover tooltips for truncated tool-call labels** — reveal the full path or command
|
|
15
|
+
- **Compact provider auth badge** — the Connected/Connect button is smaller and better aligned
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
- **Localized modal footer buttons** — Cancel/Save now translate to French
|
|
20
|
+
- **Tool schemas work with strict providers** — Vertex AI, Antigravity, and Gemini no longer reject tool calls
|
|
21
|
+
- **New sessions inherit project MCP overrides** — forked sessions keep the parent's MCP state too
|
|
22
|
+
- **No more duplicate models after a sync** — merged model families and selections survive a catalog refresh
|
|
23
|
+
- **Deleting a provider cleans up its sessions** — no dead provider pins, wrong context windows, or auto-compaction
|
|
24
|
+
- **Ollama vision images work again** — content arrays are converted to Ollama's native format
|
|
25
|
+
- **grep patterns no longer trigger path confirmations** — only real file operands are checked
|
|
26
|
+
- **Quoted paths can't sneak past path security** — nested quotes are now detected
|
|
27
|
+
- **DeepSeek reasoning preserved** — chain-of-thought is echoed under reasoning_content instead of being dropped
|
|
28
|
+
- **Per-model reasoning efforts accepted** — validation now honors each model's modes and effort lists
|
|
29
|
+
|
|
3
30
|
## 2.0.135 - 2026-09-01
|
|
4
31
|
|
|
5
32
|
### Features
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
getPendingQuestionsForSession,
|
|
8
8
|
hasPendingQuestion,
|
|
9
9
|
provideAnswer
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-V5AC2TV7.js";
|
|
11
11
|
import "./chunk-LCLH6ZUL.js";
|
|
12
12
|
import "./chunk-YLJ4XMA6.js";
|
|
13
13
|
export {
|
|
@@ -20,4 +20,4 @@ export {
|
|
|
20
20
|
hasPendingQuestion,
|
|
21
21
|
provideAnswer
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=ask-
|
|
23
|
+
//# sourceMappingURL=ask-46J5WYRL.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-HNCM3D7Y.js";
|
|
8
8
|
import {
|
|
9
9
|
getCatalogEntry
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VKMPR25F.js";
|
|
11
11
|
import {
|
|
12
12
|
logger
|
|
13
13
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -118,6 +118,14 @@ async function detectLmstudioInfo(baseUrl, modelId) {
|
|
|
118
118
|
}
|
|
119
119
|
throw new Error("No context_length in LM Studio response");
|
|
120
120
|
}
|
|
121
|
+
var REASONING_FIELDS = ["reasoning", "reasoning_content", "thinking"];
|
|
122
|
+
function detectThinkingField(message) {
|
|
123
|
+
for (const field of REASONING_FIELDS) {
|
|
124
|
+
const value = message[field];
|
|
125
|
+
if (typeof value === "string" && value.length > 0) return field;
|
|
126
|
+
}
|
|
127
|
+
return void 0;
|
|
128
|
+
}
|
|
121
129
|
async function probeCombo(baseUrl, apiKey, model, combo, signal) {
|
|
122
130
|
const body = {
|
|
123
131
|
model,
|
|
@@ -139,8 +147,15 @@ async function probeCombo(baseUrl, apiKey, model, combo, signal) {
|
|
|
139
147
|
}
|
|
140
148
|
const data = await response.json();
|
|
141
149
|
const message = data.choices?.[0]?.message ?? {};
|
|
142
|
-
const
|
|
143
|
-
|
|
150
|
+
const thinkingField = detectThinkingField(message);
|
|
151
|
+
const hasContent = !!(message["content"] || thinkingField);
|
|
152
|
+
return {
|
|
153
|
+
combo,
|
|
154
|
+
httpCode: response.status,
|
|
155
|
+
hasContent,
|
|
156
|
+
...thinkingField ? { thinkingField } : {},
|
|
157
|
+
durationMs
|
|
158
|
+
};
|
|
144
159
|
} catch {
|
|
145
160
|
const durationMs = Date.now() - start;
|
|
146
161
|
return { combo, httpCode: 0, hasContent: false, durationMs };
|
|
@@ -159,7 +174,7 @@ async function probeCombos(baseUrl, apiKey, model, combos) {
|
|
|
159
174
|
combo: winner.combo,
|
|
160
175
|
durationMs: winner.durationMs
|
|
161
176
|
});
|
|
162
|
-
return winner.combo;
|
|
177
|
+
return { combo: winner.combo, ...winner.thinkingField ? { thinkingField: winner.thinkingField } : {} };
|
|
163
178
|
}
|
|
164
179
|
logger.debug("Auto-config: no working combo found", { model });
|
|
165
180
|
return null;
|
|
@@ -284,11 +299,14 @@ async function autoConfig(input) {
|
|
|
284
299
|
} = await detectModelInfo(baseUrl, apiKey, backend, model.id);
|
|
285
300
|
const catalog = getCatalogEntry(model.id);
|
|
286
301
|
const reasoningEfforts = catalog?.reasoningEfforts;
|
|
287
|
-
const [
|
|
302
|
+
const [thinkingResult, nonThinkingResult, rejectedParams] = await Promise.all([
|
|
288
303
|
probeCombos(baseUrl, apiKey, model.id, THINKING_COMBOS),
|
|
289
304
|
probeCombos(baseUrl, apiKey, model.id, NON_THINKING_COMBOS),
|
|
290
305
|
probeRejectedParams(baseUrl, apiKey, model.id, backend)
|
|
291
306
|
]);
|
|
307
|
+
const thinkingConfig = thinkingResult?.combo ?? null;
|
|
308
|
+
const nonThinkingConfig = nonThinkingResult?.combo ?? null;
|
|
309
|
+
const thinkingField = thinkingResult?.thinkingField;
|
|
292
310
|
const sendReasoningInMessages = thinkingConfig ? await probeReasoningInMessages(baseUrl, apiKey, model.id) : void 0;
|
|
293
311
|
results.push({
|
|
294
312
|
id: model.id,
|
|
@@ -297,6 +315,7 @@ async function autoConfig(input) {
|
|
|
297
315
|
supportsVision,
|
|
298
316
|
thinkingConfig,
|
|
299
317
|
nonThinkingConfig,
|
|
318
|
+
...thinkingField ? { thinkingField } : {},
|
|
300
319
|
...sendReasoningInMessages !== void 0 ? { sendReasoningInMessages } : {},
|
|
301
320
|
...rejectedParams.length > 0 ? { rejectedParams } : {},
|
|
302
321
|
...reasoningEfforts ? { reasoningEfforts } : {},
|
|
@@ -308,4 +327,4 @@ async function autoConfig(input) {
|
|
|
308
327
|
export {
|
|
309
328
|
autoConfig
|
|
310
329
|
};
|
|
311
|
-
//# sourceMappingURL=auto-config-
|
|
330
|
+
//# sourceMappingURL=auto-config-2A7Y2WOK.js.map
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
detectBackendFromUrl,
|
|
3
|
+
detectProviderDefaultsFromUrl,
|
|
3
4
|
getBackendCapabilities,
|
|
4
5
|
getBackendDisplayName
|
|
5
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AKWJMMEJ.js";
|
|
6
7
|
import "./chunk-YLJ4XMA6.js";
|
|
7
8
|
export {
|
|
8
9
|
detectBackendFromUrl,
|
|
10
|
+
detectProviderDefaultsFromUrl,
|
|
9
11
|
getBackendCapabilities,
|
|
10
12
|
getBackendDisplayName
|
|
11
13
|
};
|
|
12
|
-
//# sourceMappingURL=backend-
|
|
14
|
+
//# sourceMappingURL=backend-24FTDSHF.js.map
|
|
@@ -2,32 +2,34 @@ import {
|
|
|
2
2
|
buildRunChatTurnParams,
|
|
3
3
|
finalizeTurnCompletion,
|
|
4
4
|
generateSessionNameForSession
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5YPHN5NC.js";
|
|
6
6
|
import {
|
|
7
7
|
runChatTurn
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-UL7776XB.js";
|
|
9
|
+
import "./chunk-YDPC4FLR.js";
|
|
10
|
+
import "./chunk-EXLCFEML.js";
|
|
11
|
+
import "./chunk-Q33DL67W.js";
|
|
10
12
|
import "./chunk-XE6UC5Z3.js";
|
|
11
13
|
import "./chunk-J7GAZGZT.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-QBWJCO5K.js";
|
|
15
|
+
import "./chunk-DG2YSWMC.js";
|
|
16
|
+
import "./chunk-U6FHHT2B.js";
|
|
17
|
+
import "./chunk-4SBVW4UH.js";
|
|
18
|
+
import "./chunk-HEYU7FAY.js";
|
|
19
|
+
import "./chunk-4LLGI372.js";
|
|
15
20
|
import "./chunk-LW6MMSTD.js";
|
|
16
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-SAGDTQXD.js";
|
|
17
22
|
import "./chunk-I72ACQ6R.js";
|
|
18
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-VIJVLLPT.js";
|
|
19
24
|
import "./chunk-OAN4BXEW.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-7QMWYNVF.js";
|
|
23
|
-
import "./chunk-JURM3RPZ.js";
|
|
24
|
-
import "./chunk-I5ODJKYM.js";
|
|
25
|
+
import "./chunk-V5AC2TV7.js";
|
|
26
|
+
import "./chunk-PQKLOLGC.js";
|
|
25
27
|
import {
|
|
26
28
|
getEventStore
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-342BKOTE.js";
|
|
30
|
+
import "./chunk-XGG4XCKP.js";
|
|
31
|
+
import "./chunk-X4PVR6AW.js";
|
|
32
|
+
import "./chunk-BHVR2YS5.js";
|
|
31
33
|
import "./chunk-OSXPQSLW.js";
|
|
32
34
|
import {
|
|
33
35
|
createChatMessageMessage,
|
|
@@ -35,20 +37,22 @@ import {
|
|
|
35
37
|
createSessionRunningMessage
|
|
36
38
|
} from "./chunk-AATMPL7S.js";
|
|
37
39
|
import "./chunk-LCLH6ZUL.js";
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-MOYWDP73.js";
|
|
41
|
+
import "./chunk-G5GUQKLS.js";
|
|
40
42
|
import "./chunk-OA2FURC3.js";
|
|
41
43
|
import "./chunk-J2GP3J3X.js";
|
|
42
44
|
import "./chunk-DPFET73G.js";
|
|
43
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-64YDOCQR.js";
|
|
44
46
|
import "./chunk-TS5WKTFB.js";
|
|
45
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-AKWJMMEJ.js";
|
|
46
48
|
import "./chunk-HNCM3D7Y.js";
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-QMU3ZY2C.js";
|
|
50
|
+
import "./chunk-FSSUPWYO.js";
|
|
51
|
+
import "./chunk-XG3AUMPI.js";
|
|
52
|
+
import "./chunk-N5JKVNLH.js";
|
|
53
|
+
import "./chunk-QUAEH3MP.js";
|
|
50
54
|
import "./chunk-JU757HVI.js";
|
|
51
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-VKMPR25F.js";
|
|
52
56
|
import "./chunk-K44MW7JJ.js";
|
|
53
57
|
import "./chunk-HF3NDXB4.js";
|
|
54
58
|
import "./chunk-24YKXKCG.js";
|
|
@@ -175,4 +179,4 @@ export {
|
|
|
175
179
|
startChatSession,
|
|
176
180
|
stopSessionExecution
|
|
177
181
|
};
|
|
178
|
-
//# sourceMappingURL=chat-handler-
|
|
182
|
+
//# sourceMappingURL=chat-handler-SYU4HJMI.js.map
|
|
@@ -6,16 +6,16 @@ import {
|
|
|
6
6
|
foldSessionState,
|
|
7
7
|
spreadOptionalMessageFields,
|
|
8
8
|
trimSnapshotStreamingOutput
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XGG4XCKP.js";
|
|
10
10
|
import {
|
|
11
11
|
updateSessionMessageCount
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-X4PVR6AW.js";
|
|
13
13
|
import {
|
|
14
14
|
getRuntimeConfig
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-BHVR2YS5.js";
|
|
16
16
|
import {
|
|
17
17
|
SETTINGS_KEYS
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-QUAEH3MP.js";
|
|
19
19
|
import {
|
|
20
20
|
logger
|
|
21
21
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -1489,4 +1489,4 @@ export {
|
|
|
1489
1489
|
truncateSessionMessages,
|
|
1490
1490
|
getRecentUserPromptsForSession
|
|
1491
1491
|
};
|
|
1492
|
-
//# sourceMappingURL=chunk-
|
|
1492
|
+
//# sourceMappingURL=chunk-342BKOTE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getPlatformShell
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MOYWDP73.js";
|
|
4
4
|
|
|
5
5
|
// src/server/tools/tool-policy.ts
|
|
6
6
|
var ALWAYS_ALLOWED = /* @__PURE__ */ new Set(["step_done"]);
|
|
@@ -246,4 +246,4 @@ export {
|
|
|
246
246
|
buildAgentSmallReminder,
|
|
247
247
|
COMPACTION_PROMPT
|
|
248
248
|
};
|
|
249
|
-
//# sourceMappingURL=chunk-
|
|
249
|
+
//# sourceMappingURL=chunk-4LLGI372.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SETTINGS_KEYS,
|
|
3
|
+
getSetting
|
|
4
|
+
} from "./chunk-QUAEH3MP.js";
|
|
5
|
+
import {
|
|
6
|
+
getLocale,
|
|
7
|
+
setLocale,
|
|
8
|
+
t
|
|
9
|
+
} from "./chunk-24YKXKCG.js";
|
|
10
|
+
|
|
11
|
+
// src/server/i18n.ts
|
|
12
|
+
function resolveLocale() {
|
|
13
|
+
return getSetting(SETTINGS_KEYS.DISPLAY_LOCALE) === "fr" ? "fr" : "en";
|
|
14
|
+
}
|
|
15
|
+
function serverT(tx, vars) {
|
|
16
|
+
const locale = resolveLocale();
|
|
17
|
+
if (getLocale() !== locale) setLocale(locale);
|
|
18
|
+
return t(tx, vars);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
serverT
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=chunk-4SBVW4UH.js.map
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getPendingQuestionsForSession
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-V5AC2TV7.js";
|
|
4
4
|
import {
|
|
5
5
|
combineEventsWithSnapshot,
|
|
6
6
|
getEventStore
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-342BKOTE.js";
|
|
8
8
|
import {
|
|
9
9
|
buildMessagesFromStoredEvents,
|
|
10
10
|
foldPendingConfirmations
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XGG4XCKP.js";
|
|
12
12
|
import {
|
|
13
13
|
updateSessionMetadata
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-X4PVR6AW.js";
|
|
15
15
|
import {
|
|
16
16
|
getRuntimeConfig
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BHVR2YS5.js";
|
|
18
18
|
import {
|
|
19
19
|
createContextStateMessage,
|
|
20
20
|
createSessionStateMessage
|
|
21
21
|
} from "./chunk-AATMPL7S.js";
|
|
22
22
|
import {
|
|
23
23
|
getMaxVisibleItems
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-QUAEH3MP.js";
|
|
25
25
|
import {
|
|
26
26
|
logger
|
|
27
27
|
} from "./chunk-K44MW7JJ.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-MVI3J7SN.js");
|
|
166
166
|
client = createLLMClient(
|
|
167
167
|
{
|
|
168
168
|
llm: {
|
|
@@ -216,4 +216,4 @@ export {
|
|
|
216
216
|
needsNameGeneration,
|
|
217
217
|
generateSessionNameForSession
|
|
218
218
|
};
|
|
219
|
-
//# sourceMappingURL=chunk-
|
|
219
|
+
//# sourceMappingURL=chunk-5YPHN5NC.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-TS5WKTFB.js";
|
|
4
4
|
import {
|
|
5
5
|
getBackendCapabilities
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AKWJMMEJ.js";
|
|
7
7
|
import {
|
|
8
8
|
ensureVersionPrefix,
|
|
9
9
|
stripVersionPrefix
|
|
@@ -14,13 +14,13 @@ import {
|
|
|
14
14
|
getThinking,
|
|
15
15
|
mapFinishReason,
|
|
16
16
|
parseToolArguments
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QMU3ZY2C.js";
|
|
18
18
|
import {
|
|
19
19
|
ChatHttpClient,
|
|
20
20
|
DONE,
|
|
21
21
|
LLMError,
|
|
22
22
|
OpenAIHttpClient
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-N5JKVNLH.js";
|
|
24
24
|
import {
|
|
25
25
|
logger
|
|
26
26
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -300,27 +300,59 @@ function toOllamaThink(effort) {
|
|
|
300
300
|
if (OLLAMA_THINK_LEVELS.has(effort)) return effort;
|
|
301
301
|
return true;
|
|
302
302
|
}
|
|
303
|
+
function parseToolCalls(toolCalls) {
|
|
304
|
+
if (!Array.isArray(toolCalls) || toolCalls.length === 0) return void 0;
|
|
305
|
+
return toolCalls.map((toolCall) => {
|
|
306
|
+
const fn = toolCall.function;
|
|
307
|
+
if (!fn || typeof fn.arguments !== "string") return toolCall;
|
|
308
|
+
try {
|
|
309
|
+
return {
|
|
310
|
+
...toolCall,
|
|
311
|
+
function: { ...fn, arguments: JSON.parse(fn.arguments) }
|
|
312
|
+
};
|
|
313
|
+
} catch {
|
|
314
|
+
return toolCall;
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
}
|
|
303
318
|
function toNativeMessage(message) {
|
|
304
319
|
const raw = message;
|
|
305
320
|
const toolCalls = raw["tool_calls"];
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
if (
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
};
|
|
319
|
-
} catch {
|
|
320
|
-
return toolCall;
|
|
321
|
+
const content = raw["content"];
|
|
322
|
+
if (Array.isArray(content)) {
|
|
323
|
+
const textParts = [];
|
|
324
|
+
const imageParts = [];
|
|
325
|
+
for (const part of content) {
|
|
326
|
+
if (part.type === "text") {
|
|
327
|
+
textParts.push(part.text);
|
|
328
|
+
} else if (part.type === "image_url") {
|
|
329
|
+
const match = part.image_url.url.match(/^data:image\/[^;]+;base64,(.+)$/);
|
|
330
|
+
if (match && match[1]) {
|
|
331
|
+
imageParts.push(match[1]);
|
|
332
|
+
}
|
|
321
333
|
}
|
|
322
|
-
}
|
|
323
|
-
|
|
334
|
+
}
|
|
335
|
+
const result = {
|
|
336
|
+
...raw,
|
|
337
|
+
content: textParts.join("\n")
|
|
338
|
+
};
|
|
339
|
+
if (imageParts.length > 0) {
|
|
340
|
+
result["images"] = imageParts;
|
|
341
|
+
}
|
|
342
|
+
const parsedToolCalls2 = parseToolCalls(toolCalls);
|
|
343
|
+
if (parsedToolCalls2 !== void 0) {
|
|
344
|
+
result["tool_calls"] = parsedToolCalls2;
|
|
345
|
+
}
|
|
346
|
+
return result;
|
|
347
|
+
}
|
|
348
|
+
const parsedToolCalls = parseToolCalls(toolCalls);
|
|
349
|
+
if (parsedToolCalls !== void 0) {
|
|
350
|
+
return {
|
|
351
|
+
...raw,
|
|
352
|
+
tool_calls: parsedToolCalls
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
return raw;
|
|
324
356
|
}
|
|
325
357
|
function buildOllamaChatRequest(params) {
|
|
326
358
|
const options = {};
|
|
@@ -768,4 +800,4 @@ function createLLMClient(config, initialBackend = config.llm.backend ?? "unknown
|
|
|
768
800
|
export {
|
|
769
801
|
createLLMClient
|
|
770
802
|
};
|
|
771
|
-
//# sourceMappingURL=chunk-
|
|
803
|
+
//# sourceMappingURL=chunk-64YDOCQR.js.map
|
|
@@ -79,6 +79,19 @@ function detectBackendFromUrl(url) {
|
|
|
79
79
|
return void 0;
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
+
var HOST_PROVIDER_DEFAULTS = {
|
|
83
|
+
// DeepSeek's official API requires reasoning echoed under `reasoning_content`
|
|
84
|
+
// (its own output field) — anything else is ignored or 400s on tool calls.
|
|
85
|
+
"api.deepseek.com": { thinkingField: "reasoning_content" }
|
|
86
|
+
};
|
|
87
|
+
function detectProviderDefaultsFromUrl(url) {
|
|
88
|
+
try {
|
|
89
|
+
const host = new URL(url).hostname.toLowerCase();
|
|
90
|
+
return HOST_PROVIDER_DEFAULTS[host];
|
|
91
|
+
} catch {
|
|
92
|
+
return void 0;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
82
95
|
function getBackendDisplayName(backend) {
|
|
83
96
|
switch (backend) {
|
|
84
97
|
case "vllm":
|
|
@@ -105,6 +118,7 @@ function getBackendDisplayName(backend) {
|
|
|
105
118
|
export {
|
|
106
119
|
getBackendCapabilities,
|
|
107
120
|
detectBackendFromUrl,
|
|
121
|
+
detectProviderDefaultsFromUrl,
|
|
108
122
|
getBackendDisplayName
|
|
109
123
|
};
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
124
|
+
//# sourceMappingURL=chunk-AKWJMMEJ.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
SETTINGS_KEYS,
|
|
9
9
|
getSetting
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QUAEH3MP.js";
|
|
11
11
|
import {
|
|
12
12
|
logger
|
|
13
13
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -352,4 +352,4 @@ export {
|
|
|
352
352
|
getOverrideAgentIds,
|
|
353
353
|
resolveDefaultAgentId
|
|
354
354
|
};
|
|
355
|
-
//# sourceMappingURL=chunk-
|
|
355
|
+
//# sourceMappingURL=chunk-BHVR2YS5.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runAgentTurn
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UL7776XB.js";
|
|
4
4
|
import {
|
|
5
5
|
executeSubAgent,
|
|
6
6
|
getToolRegistryForAgent
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EXLCFEML.js";
|
|
8
8
|
import {
|
|
9
9
|
gitSpawnEnv
|
|
10
10
|
} from "./chunk-J7GAZGZT.js";
|
|
@@ -14,38 +14,40 @@ import {
|
|
|
14
14
|
loadDefaultWorkflows,
|
|
15
15
|
loadProjectWorkflows,
|
|
16
16
|
loadUserWorkflows,
|
|
17
|
-
normalizeWorkflowScope
|
|
17
|
+
normalizeWorkflowScope
|
|
18
|
+
} from "./chunk-QBWJCO5K.js";
|
|
19
|
+
import {
|
|
18
20
|
serverT
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4SBVW4UH.js";
|
|
20
22
|
import {
|
|
21
23
|
TurnMetrics,
|
|
22
24
|
createMessageStartEvent
|
|
23
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-HEYU7FAY.js";
|
|
24
26
|
import {
|
|
25
27
|
checkAborted,
|
|
26
28
|
decodeUtf8,
|
|
27
29
|
spawnShellProcess
|
|
28
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-SAGDTQXD.js";
|
|
29
31
|
import {
|
|
30
32
|
terminateProcessTree
|
|
31
33
|
} from "./chunk-I72ACQ6R.js";
|
|
32
34
|
import {
|
|
33
35
|
getCurrentContextWindowId,
|
|
34
36
|
getEventStore
|
|
35
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-342BKOTE.js";
|
|
36
38
|
import {
|
|
37
39
|
findAgentById,
|
|
38
40
|
getRuntimeConfig,
|
|
39
41
|
loadAllAgentsDefault,
|
|
40
42
|
resolveDefaultAgentId
|
|
41
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-BHVR2YS5.js";
|
|
42
44
|
import {
|
|
43
45
|
createChatMessageMessage,
|
|
44
46
|
createSessionRunningMessage
|
|
45
47
|
} from "./chunk-AATMPL7S.js";
|
|
46
48
|
import {
|
|
47
49
|
LLMError
|
|
48
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-N5JKVNLH.js";
|
|
49
51
|
import {
|
|
50
52
|
logger
|
|
51
53
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -1021,4 +1023,4 @@ export {
|
|
|
1021
1023
|
abortRunnerRun,
|
|
1022
1024
|
launchWorkflowRun
|
|
1023
1025
|
};
|
|
1024
|
-
//# sourceMappingURL=chunk-
|
|
1026
|
+
//# sourceMappingURL=chunk-CPVEONNS.js.map
|