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
|
@@ -4,10 +4,29 @@ import {
|
|
|
4
4
|
getEnabledSkillMetadata,
|
|
5
5
|
isSkillEnabled,
|
|
6
6
|
loadAllSkills
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZIL6VKLU.js";
|
|
8
|
+
import {
|
|
9
|
+
TurnMetrics,
|
|
10
|
+
clearLLMFailure,
|
|
11
|
+
consumeStreamGenerator,
|
|
12
|
+
createChatDoneEvent,
|
|
13
|
+
createMessageDoneEvent,
|
|
14
|
+
createMessageStartEvent,
|
|
15
|
+
createToolCallEvent,
|
|
16
|
+
createToolResultEvent,
|
|
17
|
+
evaluateLLMRetry,
|
|
18
|
+
recordLLMFailure,
|
|
19
|
+
sleepThroughRetryBackoff,
|
|
20
|
+
streamLLMPure
|
|
21
|
+
} from "./chunk-62GUO2EG.js";
|
|
22
|
+
import {
|
|
23
|
+
COMPACTION_PROMPT,
|
|
24
|
+
buildBasePrompt,
|
|
25
|
+
computeEffectiveTools
|
|
26
|
+
} from "./chunk-GIJUWPRQ.js";
|
|
8
27
|
import {
|
|
9
28
|
startInspectProxy
|
|
10
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-EHFIUXWZ.js";
|
|
11
30
|
import {
|
|
12
31
|
checkAborted,
|
|
13
32
|
createProcess,
|
|
@@ -21,7 +40,7 @@ import {
|
|
|
21
40
|
spawnShellProcess,
|
|
22
41
|
startProcessCommand,
|
|
23
42
|
stopProcess
|
|
24
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-RV5G7QQU.js";
|
|
25
44
|
import {
|
|
26
45
|
getMaxPerSession,
|
|
27
46
|
getSessionProcessCount,
|
|
@@ -37,59 +56,28 @@ import {
|
|
|
37
56
|
getGitBranch,
|
|
38
57
|
isGitRepository,
|
|
39
58
|
listWorkspaces
|
|
40
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-3NMLSANH.js";
|
|
41
60
|
import {
|
|
42
61
|
getGateConfig,
|
|
43
62
|
isTaskConflictError,
|
|
44
63
|
isTaskGateError
|
|
45
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-UGEFD67O.js";
|
|
46
65
|
import {
|
|
47
66
|
getSessionDisabledServers
|
|
48
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-7YP4O4XE.js";
|
|
49
68
|
import {
|
|
50
69
|
PathAccessDeniedError,
|
|
51
70
|
extractAbsolutePathsFromCommand,
|
|
52
71
|
extractSensitivePathsFromCommand,
|
|
53
72
|
registerPathConfirmation,
|
|
54
|
-
requestPathAccess
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
createChatDoneMessage,
|
|
58
|
-
createChatLLMRetryFailedMessage,
|
|
59
|
-
createChatLLMRetryMessage,
|
|
60
|
-
createChatMessageMessage,
|
|
61
|
-
createChatMessageUpdatedMessage,
|
|
62
|
-
createChatPathConfirmationMessage,
|
|
63
|
-
createQueueStateMessage
|
|
64
|
-
} from "./chunk-XAAEP5XM.js";
|
|
65
|
-
import {
|
|
66
|
-
AskUserInterrupt,
|
|
67
|
-
askUserTool
|
|
68
|
-
} from "./chunk-JURM3RPZ.js";
|
|
69
|
-
import {
|
|
70
|
-
TurnMetrics,
|
|
71
|
-
clearLLMFailure,
|
|
72
|
-
consumeStreamGenerator,
|
|
73
|
-
createChatDoneEvent,
|
|
74
|
-
createMessageDoneEvent,
|
|
75
|
-
createMessageStartEvent,
|
|
76
|
-
createToolCallEvent,
|
|
77
|
-
createToolResultEvent,
|
|
78
|
-
evaluateLLMRetry,
|
|
79
|
-
recordLLMFailure,
|
|
80
|
-
sleepThroughRetryBackoff,
|
|
81
|
-
streamLLMPure
|
|
82
|
-
} from "./chunk-62GUO2EG.js";
|
|
83
|
-
import {
|
|
84
|
-
COMPACTION_PROMPT,
|
|
85
|
-
buildBasePrompt,
|
|
86
|
-
computeEffectiveTools
|
|
87
|
-
} from "./chunk-Y7FGHKBW.js";
|
|
73
|
+
requestPathAccess,
|
|
74
|
+
resolveRelativeTraversals
|
|
75
|
+
} from "./chunk-KD4W3I6C.js";
|
|
88
76
|
import {
|
|
89
77
|
getCurrentContextWindowId,
|
|
90
78
|
getCurrentWindowMessageOptions,
|
|
91
79
|
getEventStore
|
|
92
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-YJD5A375.js";
|
|
93
81
|
import {
|
|
94
82
|
buildContextMessagesFromEventHistory,
|
|
95
83
|
foldContextState,
|
|
@@ -99,13 +87,26 @@ import {
|
|
|
99
87
|
handleToolResult,
|
|
100
88
|
reorderToolMessages,
|
|
101
89
|
stripOrphanedToolCalls
|
|
102
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-ZIYETXOW.js";
|
|
91
|
+
import {
|
|
92
|
+
createChatDoneMessage,
|
|
93
|
+
createChatLLMRetryFailedMessage,
|
|
94
|
+
createChatLLMRetryMessage,
|
|
95
|
+
createChatMessageMessage,
|
|
96
|
+
createChatMessageUpdatedMessage,
|
|
97
|
+
createChatPathConfirmationMessage,
|
|
98
|
+
createQueueStateMessage
|
|
99
|
+
} from "./chunk-XAAEP5XM.js";
|
|
100
|
+
import {
|
|
101
|
+
AskUserInterrupt,
|
|
102
|
+
askUserTool
|
|
103
|
+
} from "./chunk-JURM3RPZ.js";
|
|
103
104
|
import {
|
|
104
105
|
findAgentById,
|
|
105
106
|
getRuntimeConfig,
|
|
106
107
|
getSubAgents,
|
|
107
108
|
loadAllAgentsDefault
|
|
108
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-KBESUA3W.js";
|
|
109
110
|
import {
|
|
110
111
|
modelSupportsVision
|
|
111
112
|
} from "./chunk-GJL3QSMP.js";
|
|
@@ -124,7 +125,7 @@ import {
|
|
|
124
125
|
SETTINGS_KEYS,
|
|
125
126
|
getSetting,
|
|
126
127
|
setSetting
|
|
127
|
-
} from "./chunk-
|
|
128
|
+
} from "./chunk-N2Q3KYWM.js";
|
|
128
129
|
import {
|
|
129
130
|
logger
|
|
130
131
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -148,7 +149,7 @@ async function requestUserConfirmation(context, toolLabel, desc) {
|
|
|
148
149
|
if (context.dangerLevel === "dangerous") return Promise.resolve(true);
|
|
149
150
|
if (toolLabel === "workspace" || toolLabel === "command") {
|
|
150
151
|
try {
|
|
151
|
-
const { getSetting: getSetting2, SETTINGS_KEYS: SETTINGS_KEYS2 } = await import("./settings-
|
|
152
|
+
const { getSetting: getSetting2, SETTINGS_KEYS: SETTINGS_KEYS2 } = await import("./settings-VOWWO4VG.js");
|
|
152
153
|
if (getSetting2(SETTINGS_KEYS2.CONFIRM_ON_WORKSPACE_ACTIONS) !== "true") {
|
|
153
154
|
return Promise.resolve(true);
|
|
154
155
|
}
|
|
@@ -1218,9 +1219,11 @@ var runCommandTool = createTool(
|
|
|
1218
1219
|
const pathsToCheck = [workingDir];
|
|
1219
1220
|
const commandPaths = extractAbsolutePathsFromCommand(args.command);
|
|
1220
1221
|
for (const cmdPath of commandPaths) {
|
|
1221
|
-
|
|
1222
|
-
|
|
1222
|
+
if (isAbsolute(cmdPath)) {
|
|
1223
|
+
pathsToCheck.push(cmdPath);
|
|
1224
|
+
}
|
|
1223
1225
|
}
|
|
1226
|
+
pathsToCheck.push(...resolveRelativeTraversals(args.command, workingDir));
|
|
1224
1227
|
const sensitivePaths = extractSensitivePathsFromCommand(args.command);
|
|
1225
1228
|
for (const sensitivePath of sensitivePaths) {
|
|
1226
1229
|
const resolved = isAbsolute(sensitivePath) ? sensitivePath : resolve3(workingDir, sensitivePath);
|
|
@@ -1531,7 +1534,8 @@ import { z } from "zod";
|
|
|
1531
1534
|
var AGENT_MODEL_OVERRIDES_KEY = SETTINGS_KEYS.AGENT_MODEL_OVERRIDES;
|
|
1532
1535
|
var overrideSchema = z.object({
|
|
1533
1536
|
providerId: z.string().min(1),
|
|
1534
|
-
model: z.string().min(1)
|
|
1537
|
+
model: z.string().min(1),
|
|
1538
|
+
reasoningEffort: z.string().min(1).optional()
|
|
1535
1539
|
});
|
|
1536
1540
|
function parseAgentModelOverrides(raw) {
|
|
1537
1541
|
if (!raw) return {};
|
|
@@ -1566,12 +1570,13 @@ function setAgentModelOverride(agentId, override) {
|
|
|
1566
1570
|
}
|
|
1567
1571
|
setSetting(AGENT_MODEL_OVERRIDES_KEY, JSON.stringify(overrides));
|
|
1568
1572
|
}
|
|
1569
|
-
function resolveLLMClientForAgent(agentId, fallbackClient, providerManager) {
|
|
1573
|
+
function resolveLLMClientForAgent(agentId, fallbackClient, providerManager, pinnedEffort) {
|
|
1570
1574
|
const override = getAgentModelOverride(agentId);
|
|
1571
1575
|
if (!override) {
|
|
1572
1576
|
return { client: fallbackClient, usedOverride: false };
|
|
1573
1577
|
}
|
|
1574
|
-
const
|
|
1578
|
+
const effectiveEffort = pinnedEffort ?? override.reasoningEffort;
|
|
1579
|
+
const client = providerManager.createClient(override.providerId, override.model, effectiveEffort);
|
|
1575
1580
|
if (!client) {
|
|
1576
1581
|
return {
|
|
1577
1582
|
client: fallbackClient,
|
|
@@ -1580,7 +1585,11 @@ function resolveLLMClientForAgent(agentId, fallbackClient, providerManager) {
|
|
|
1580
1585
|
warning: `Agent '${agentId}' is configured to use model '${override.model}' from provider '${override.providerId}', but it is no longer available. Falling back to the session model.`
|
|
1581
1586
|
};
|
|
1582
1587
|
}
|
|
1583
|
-
return {
|
|
1588
|
+
return {
|
|
1589
|
+
client,
|
|
1590
|
+
usedOverride: true,
|
|
1591
|
+
override: effectiveEffort ? { ...override, reasoningEffort: effectiveEffort } : override
|
|
1592
|
+
};
|
|
1584
1593
|
}
|
|
1585
1594
|
|
|
1586
1595
|
// src/server/chat/tool-streaming.ts
|
|
@@ -1777,6 +1786,21 @@ Error: ${toolResult.error}` : `Error: ${toolResult.error}`
|
|
|
1777
1786
|
return { toolMessages, criteriaChanged: false, returnValueContent, returnValueResult, stepDoneCalled };
|
|
1778
1787
|
}
|
|
1779
1788
|
|
|
1789
|
+
// src/server/chat/token-budget.ts
|
|
1790
|
+
var CHARS_PER_TOKEN = 4;
|
|
1791
|
+
var TOOL_MESSAGE_OVERHEAD_TOKENS = 16;
|
|
1792
|
+
function estimateToolResultTokens(toolMessages) {
|
|
1793
|
+
return toolMessages.reduce(
|
|
1794
|
+
(sum, message) => sum + TOOL_MESSAGE_OVERHEAD_TOKENS + Math.ceil(message.content.length / CHARS_PER_TOKEN),
|
|
1795
|
+
0
|
|
1796
|
+
);
|
|
1797
|
+
}
|
|
1798
|
+
var CONTEXT_LENGTH_ERROR_PATTERN = /context\s*length|context_length|context window|prompt (?:is )?too long/i;
|
|
1799
|
+
function isContextLengthError(message) {
|
|
1800
|
+
if (!message) return false;
|
|
1801
|
+
return CONTEXT_LENGTH_ERROR_PATTERN.test(message);
|
|
1802
|
+
}
|
|
1803
|
+
|
|
1780
1804
|
// src/server/chat/retry-limiter.ts
|
|
1781
1805
|
function createRetryLimiter(max) {
|
|
1782
1806
|
let current = 0;
|
|
@@ -1860,6 +1884,7 @@ function emitDoneAndBreak(assistantMsgId, segments, statsIdentity, mode, turnMet
|
|
|
1860
1884
|
}
|
|
1861
1885
|
}
|
|
1862
1886
|
var MAX_TRUNCATION_RETRIES = 3;
|
|
1887
|
+
var MAX_CONTEXT_LENGTH_RETRIES = 3;
|
|
1863
1888
|
var OUTPUT_RESERVE_TOKENS = 2048;
|
|
1864
1889
|
var CONTINUE_PROMPT = "Continue your previous response. Do NOT repeat what you already wrote.";
|
|
1865
1890
|
var CONTINUE_AFTER_STREAM_ERROR_PROMPT = "The LLM stream was interrupted mid-response. Continue exactly where you left off \u2014 do not repeat what was already written.";
|
|
@@ -1870,6 +1895,8 @@ async function runTopLevelAgentLoop(config, turnMetrics) {
|
|
|
1870
1895
|
const resolveClient = () => config.getLLMClient?.() ?? llmClient;
|
|
1871
1896
|
const retryLimiter = createRetryLimiter(config.maxRetriesPerTurn ?? 10);
|
|
1872
1897
|
let truncationRetryCount = 0;
|
|
1898
|
+
let contextRetryCount = 0;
|
|
1899
|
+
let pendingToolResultTokens = 0;
|
|
1873
1900
|
let returnValueContent;
|
|
1874
1901
|
let returnValueResult;
|
|
1875
1902
|
let currentMaxTokensOverride;
|
|
@@ -1972,8 +1999,14 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
|
|
|
1972
1999
|
const contextState = sessionManager.getContextState(sessionId);
|
|
1973
2000
|
previousContextTokens = contextState.currentTokens;
|
|
1974
2001
|
const contextWindow = sessionManager.getCurrentModelContext(sessionId, config.mode);
|
|
1975
|
-
const availableForOutput = Math.max(
|
|
1976
|
-
|
|
2002
|
+
const availableForOutput = Math.max(
|
|
2003
|
+
256,
|
|
2004
|
+
contextWindow - contextState.currentTokens - pendingToolResultTokens - OUTPUT_RESERVE_TOKENS
|
|
2005
|
+
);
|
|
2006
|
+
let modelSettings = config.modelSettings ?? sessionManager.getCurrentModelSettings(sessionId, config.mode);
|
|
2007
|
+
if (modelSettings && currentMaxTokensOverride !== void 0) {
|
|
2008
|
+
modelSettings = { ...modelSettings, maxTokens: currentMaxTokensOverride };
|
|
2009
|
+
}
|
|
1977
2010
|
if (modelSettings) {
|
|
1978
2011
|
const requestedMaxTokens = modelSettings.maxTokens ?? 16384;
|
|
1979
2012
|
modelSettings = { ...modelSettings, maxTokens: Math.min(requestedMaxTokens, availableForOutput) };
|
|
@@ -2015,6 +2048,12 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
|
|
|
2015
2048
|
continuationAppended = true;
|
|
2016
2049
|
}
|
|
2017
2050
|
if (signal?.aborted) throw new Error("Aborted");
|
|
2051
|
+
if (isContextLengthError(attemptResult.error) && contextRetryCount < MAX_CONTEXT_LENGTH_RETRIES) {
|
|
2052
|
+
contextRetryCount += 1;
|
|
2053
|
+
const currentMax = modelSettings?.maxTokens ?? currentMaxTokensOverride ?? 16384;
|
|
2054
|
+
currentMaxTokensOverride = Math.max(256, Math.floor(currentMax / 2));
|
|
2055
|
+
continue;
|
|
2056
|
+
}
|
|
2018
2057
|
requestFailures += 1;
|
|
2019
2058
|
if (requestFirstFailureAt === 0) {
|
|
2020
2059
|
requestFirstFailureAt = Date.now();
|
|
@@ -2093,9 +2132,11 @@ ${CONTINUE_PROMPT}` : CONTINUE_PROMPT;
|
|
|
2093
2132
|
result.usage.completionTokens,
|
|
2094
2133
|
config.subAgentMetadata?.subAgentId
|
|
2095
2134
|
);
|
|
2135
|
+
pendingToolResultTokens = 0;
|
|
2136
|
+
currentMaxTokensOverride = void 0;
|
|
2096
2137
|
if (!compacting) {
|
|
2097
2138
|
const contextState = sessionManager.getContextState(sessionId);
|
|
2098
|
-
const { shouldCompact, appendCompactionPrompt } = await import("./compactor-
|
|
2139
|
+
const { shouldCompact, appendCompactionPrompt } = await import("./compactor-VTATJTPN.js");
|
|
2099
2140
|
if (shouldCompact(
|
|
2100
2141
|
contextState.currentTokens,
|
|
2101
2142
|
contextState.maxTokens,
|
|
@@ -2202,6 +2243,7 @@ ${COMPACTION_PROMPT}`,
|
|
|
2202
2243
|
}
|
|
2203
2244
|
batchContext.agentTimeout = getRuntimeConfig().agent.toolTimeout;
|
|
2204
2245
|
const batchResult = await executeTools(assistantMsgId, result.toolCalls, batchContext, append);
|
|
2246
|
+
pendingToolResultTokens = estimateToolResultTokens(batchResult.toolMessages);
|
|
2205
2247
|
if (batchResult.stepDoneCalled) {
|
|
2206
2248
|
emitDoneAndBreak(
|
|
2207
2249
|
assistantMsgId,
|
|
@@ -2880,7 +2922,8 @@ async function executeSubAgent(options) {
|
|
|
2880
2922
|
let hasOverride = false;
|
|
2881
2923
|
let overrideModelSettings;
|
|
2882
2924
|
if (providerManager) {
|
|
2883
|
-
const
|
|
2925
|
+
const pinnedEffort = session.providerPinnedEffort ?? void 0;
|
|
2926
|
+
const resolved = resolveLLMClientForAgent(subAgentType, parentLlmClient, providerManager, pinnedEffort);
|
|
2884
2927
|
if (resolved.usedOverride && resolved.override) {
|
|
2885
2928
|
hasOverride = true;
|
|
2886
2929
|
llmClient = resolved.client;
|
|
@@ -2889,7 +2932,8 @@ async function executeSubAgent(options) {
|
|
|
2889
2932
|
providerId: resolved.override.providerId,
|
|
2890
2933
|
providerName: provider?.name ?? resolved.override.providerId,
|
|
2891
2934
|
backend: provider?.backend ?? resolved.client.getBackend(),
|
|
2892
|
-
model: resolved.override.model
|
|
2935
|
+
model: resolved.override.model,
|
|
2936
|
+
...resolved.override.reasoningEffort ? { reasoningEffort: resolved.override.reasoningEffort } : {}
|
|
2893
2937
|
};
|
|
2894
2938
|
overrideModelSettings = providerManager.getModelSettings(resolved.override.providerId, resolved.override.model);
|
|
2895
2939
|
logger.info("Sub-agent using model override", { subAgentType, ...resolved.override });
|
|
@@ -2922,7 +2966,11 @@ async function executeSubAgent(options) {
|
|
|
2922
2966
|
} else {
|
|
2923
2967
|
const effective = sessionManager.resolveEffectiveProviderModel(sessionId, subAgentType);
|
|
2924
2968
|
if (effective.providerId && effective.model) {
|
|
2925
|
-
const effectiveClient = providerManager.createClient(
|
|
2969
|
+
const effectiveClient = providerManager.createClient(
|
|
2970
|
+
effective.providerId,
|
|
2971
|
+
effective.model,
|
|
2972
|
+
effective.reasoningEffort
|
|
2973
|
+
);
|
|
2926
2974
|
if (effectiveClient) {
|
|
2927
2975
|
llmClient = effectiveClient;
|
|
2928
2976
|
const provider = providerManager.getProviders().find((p) => p.id === effective.providerId);
|
|
@@ -2930,7 +2978,8 @@ async function executeSubAgent(options) {
|
|
|
2930
2978
|
providerId: effective.providerId,
|
|
2931
2979
|
providerName: provider?.name ?? effective.providerId,
|
|
2932
2980
|
backend: provider?.backend ?? effectiveClient.getBackend(),
|
|
2933
|
-
model: effective.model
|
|
2981
|
+
model: effective.model,
|
|
2982
|
+
...effective.reasoningEffort ? { reasoningEffort: effective.reasoningEffort } : {}
|
|
2934
2983
|
};
|
|
2935
2984
|
}
|
|
2936
2985
|
}
|
|
@@ -3103,7 +3152,7 @@ var callSubAgentTool = {
|
|
|
3103
3152
|
};
|
|
3104
3153
|
}
|
|
3105
3154
|
try {
|
|
3106
|
-
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-
|
|
3155
|
+
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-G44LBKD4.js");
|
|
3107
3156
|
const toolRegistry = getToolRegistryForAgent2(agentDef);
|
|
3108
3157
|
const turnMetrics = new TurnMetrics();
|
|
3109
3158
|
const result = await executeSubAgent({
|
|
@@ -4125,7 +4174,7 @@ var mcpConfigTool = createTool(
|
|
|
4125
4174
|
mcpNotifyChanged?.(sessionId);
|
|
4126
4175
|
}
|
|
4127
4176
|
async function rebuildTools() {
|
|
4128
|
-
const { setMcpTools: setMcpTools2 } = await import("./tools-
|
|
4177
|
+
const { setMcpTools: setMcpTools2 } = await import("./tools-G44LBKD4.js");
|
|
4129
4178
|
const mcpTools = createMcpTools(mcpManagerForTools);
|
|
4130
4179
|
setMcpTools2(mcpTools);
|
|
4131
4180
|
}
|
|
@@ -4552,13 +4601,15 @@ function getTasksService() {
|
|
|
4552
4601
|
}
|
|
4553
4602
|
var VALID_ACTIONS = ["list", "create", "edit", "move", "set_gate_value", "delete"];
|
|
4554
4603
|
var LIST_STATUSES = ["todo", "in_progress", "done", "all"];
|
|
4604
|
+
var LIST_DEFAULT_LIMIT = 10;
|
|
4605
|
+
var LIST_MAX_LIMIT = 25;
|
|
4555
4606
|
var projectTasksTool = createTool(
|
|
4556
4607
|
"project_tasks",
|
|
4557
4608
|
{
|
|
4558
4609
|
type: "function",
|
|
4559
4610
|
function: {
|
|
4560
4611
|
name: "project_tasks",
|
|
4561
|
-
description: "Kanban task board for this project. Core loop: list \u2192 move \u2192 set_gate_value.\n\nRules:\n- Moving to in_progress binds the task to YOUR current session.\n- Do not move tasks or fill gate values without explicit user approval or a system instruction \u2014 complete the work, then let the user review before the task advances.\n- Moving to done is blocked by unmet gates: the error names the missing fields \u2014 fill them only with user approval, then retry the move.\n- Stale writes fail with CONFLICT \u2014 re-list and retry.\n\nActions:\n- list: tasks (status, gate values, queue position, bound session, audit trail); defaults to open tasks, filter via status (todo | in_progress | done | all)\n- create: add a task to To Do (prompt required)\n- edit: update prompt/attachments/agent/model (taskId + fields)\n- move: change column (to: todo | in_progress | done; optional reason)\n- set_gate_value: fill a gate field (taskId, gateId, value)\n- delete: remove a task (taskId)",
|
|
4612
|
+
description: "Kanban task board for this project. Core loop: list \u2192 move \u2192 set_gate_value.\n\nRules:\n- Moving to in_progress binds the task to YOUR current session.\n- Do not move tasks or fill gate values without explicit user approval or a system instruction \u2014 complete the work, then let the user review before the task advances.\n- Moving to done is blocked by unmet gates: the error names the missing fields \u2014 fill them only with user approval, then retry the move.\n- Stale writes fail with CONFLICT \u2014 re-list and retry.\n\nActions:\n- list: tasks (status, gate values, queue position, bound session, audit trail); defaults to open tasks, filter via status (todo | in_progress | done | all); paginated \u2014 limit 10 max 25, page with offset\n- create: add a task to To Do (prompt required)\n- edit: update prompt/attachments/agent/model (taskId + fields)\n- move: change column (to: todo | in_progress | done; optional reason)\n- set_gate_value: fill a gate field (taskId, gateId, value)\n- delete: remove a task (taskId)",
|
|
4562
4613
|
parameters: {
|
|
4563
4614
|
type: "object",
|
|
4564
4615
|
properties: {
|
|
@@ -4578,6 +4629,14 @@ var projectTasksTool = createTool(
|
|
|
4578
4629
|
enum: ["todo", "in_progress", "done", "all"],
|
|
4579
4630
|
description: "Column filter for action=list (default: open tasks)"
|
|
4580
4631
|
},
|
|
4632
|
+
limit: {
|
|
4633
|
+
type: "number",
|
|
4634
|
+
description: "Max tasks to return for action=list (default: 10, max: 25)"
|
|
4635
|
+
},
|
|
4636
|
+
offset: {
|
|
4637
|
+
type: "number",
|
|
4638
|
+
description: "Number of tasks to skip for action=list pagination (default: 0). Pages are snapshots \u2014 re-list after mutations."
|
|
4639
|
+
},
|
|
4581
4640
|
expectedVersion: {
|
|
4582
4641
|
type: "number",
|
|
4583
4642
|
description: "Task version from your last read; stale writes fail with CONFLICT"
|
|
@@ -4605,10 +4664,26 @@ var projectTasksTool = createTool(
|
|
|
4605
4664
|
`Invalid "status" filter for action=list: "${String(status)}". Expected one of: todo, in_progress, done, all.`
|
|
4606
4665
|
);
|
|
4607
4666
|
}
|
|
4667
|
+
const page = parseListPage(args.limit, args.offset);
|
|
4668
|
+
if (!page.ok) return helpers.error(page.error);
|
|
4608
4669
|
const tasks = svc.list(projectId);
|
|
4609
4670
|
const filtered = status === "all" ? tasks : tasks.filter((t) => status === void 0 ? t.status !== "done" : t.status === status);
|
|
4671
|
+
const pageTasks = filtered.slice(page.offset, page.offset + page.limit);
|
|
4610
4672
|
const gates = getGateConfig(projectId);
|
|
4611
|
-
return helpers.success(
|
|
4673
|
+
return helpers.success(
|
|
4674
|
+
JSON.stringify(
|
|
4675
|
+
{
|
|
4676
|
+
gates,
|
|
4677
|
+
tasks: pageTasks.map((t) => taskForAgent(t)),
|
|
4678
|
+
total: filtered.length,
|
|
4679
|
+
limit: page.limit,
|
|
4680
|
+
offset: page.offset,
|
|
4681
|
+
hasMore: page.offset + page.limit < filtered.length
|
|
4682
|
+
},
|
|
4683
|
+
null,
|
|
4684
|
+
2
|
|
4685
|
+
)
|
|
4686
|
+
);
|
|
4612
4687
|
}
|
|
4613
4688
|
case "create": {
|
|
4614
4689
|
const task = svc.create(
|
|
@@ -4701,6 +4776,17 @@ var projectTasksTool = createTool(
|
|
|
4701
4776
|
}
|
|
4702
4777
|
}
|
|
4703
4778
|
);
|
|
4779
|
+
function parseListPage(limit, offset) {
|
|
4780
|
+
const pageSize = limit ?? LIST_DEFAULT_LIMIT;
|
|
4781
|
+
const skip = offset ?? 0;
|
|
4782
|
+
if (!Number.isInteger(pageSize) || pageSize < 1 || pageSize > LIST_MAX_LIMIT) {
|
|
4783
|
+
return { ok: false, error: `Invalid "limit" for action=list: must be an integer between 1 and ${LIST_MAX_LIMIT}.` };
|
|
4784
|
+
}
|
|
4785
|
+
if (!Number.isInteger(skip) || skip < 0) {
|
|
4786
|
+
return { ok: false, error: 'Invalid "offset" for action=list: must be a non-negative integer.' };
|
|
4787
|
+
}
|
|
4788
|
+
return { ok: true, limit: pageSize, offset: skip };
|
|
4789
|
+
}
|
|
4704
4790
|
function taskForAgent(task) {
|
|
4705
4791
|
return {
|
|
4706
4792
|
id: task.id,
|
|
@@ -5013,4 +5099,4 @@ export {
|
|
|
5013
5099
|
getToolRegistryForAgent,
|
|
5014
5100
|
createToolRegistry
|
|
5015
5101
|
};
|
|
5016
|
-
//# sourceMappingURL=chunk-
|
|
5102
|
+
//# sourceMappingURL=chunk-5CCM655F.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SETTINGS_KEYS,
|
|
3
3
|
getSetting
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-N2Q3KYWM.js";
|
|
5
5
|
|
|
6
6
|
// src/server/utils/platform.ts
|
|
7
7
|
import os from "os";
|
|
@@ -63,4 +63,4 @@ export {
|
|
|
63
63
|
isWindowsPath,
|
|
64
64
|
isAbsolutePath
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=chunk-
|
|
66
|
+
//# sourceMappingURL=chunk-66MG44TF.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
updateSessionMcpDisabledServers
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AQBRI7TM.js";
|
|
4
4
|
import {
|
|
5
5
|
getDatabase
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-OYBUJIC3.js";
|
|
7
7
|
|
|
8
8
|
// src/server/mcp/session-overrides.ts
|
|
9
9
|
var sessionOverrides = /* @__PURE__ */ new Map();
|
|
@@ -62,4 +62,4 @@ export {
|
|
|
62
62
|
clearSessionOverrides,
|
|
63
63
|
getAllSessionOverrides
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
65
|
+
//# sourceMappingURL=chunk-7YP4O4XE.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-K2QKX4ZJ.js";
|
|
4
4
|
import {
|
|
5
5
|
createLLMClient
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SYTEO5LA.js";
|
|
7
7
|
import {
|
|
8
8
|
getModelProfile
|
|
9
9
|
} from "./chunk-GJL3QSMP.js";
|
|
@@ -18,13 +18,18 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
resolveAttachmentsInMessages
|
|
20
20
|
} from "./chunk-MIPQOHWS.js";
|
|
21
|
+
import {
|
|
22
|
+
getCatalogEntry,
|
|
23
|
+
resolveEffortForModel
|
|
24
|
+
} from "./chunk-ISE55FOR.js";
|
|
21
25
|
import {
|
|
22
26
|
logger
|
|
23
27
|
} from "./chunk-K44MW7JJ.js";
|
|
24
28
|
|
|
25
29
|
// src/server/providers/adapters/transport-client.ts
|
|
26
|
-
function createTransportLLMClient(provider, modelId, transport) {
|
|
30
|
+
function createTransportLLMClient(provider, modelId, transport, reasoningEffort) {
|
|
27
31
|
let model = modelId;
|
|
32
|
+
const effort = reasoningEffort;
|
|
28
33
|
let backend = provider.backend;
|
|
29
34
|
const profileFor = (id) => {
|
|
30
35
|
const base = getModelProfile(id);
|
|
@@ -50,6 +55,26 @@ function createTransportLLMClient(provider, modelId, transport) {
|
|
|
50
55
|
...provider.credentialRef && { credentialRef: provider.credentialRef }
|
|
51
56
|
};
|
|
52
57
|
};
|
|
58
|
+
const resolveEffort = (request) => {
|
|
59
|
+
if (request.skipClientReasoningEffort) return void 0;
|
|
60
|
+
const configured = provider.models.find((item) => item.id === model);
|
|
61
|
+
const candidate = request.reasoningEffort ?? effort;
|
|
62
|
+
return resolveEffortForModel({
|
|
63
|
+
...configured?.reasoningEfforts?.length ? { reasoningEfforts: configured.reasoningEfforts } : {},
|
|
64
|
+
...candidate ? { candidate } : {},
|
|
65
|
+
...configured?.thinkingEnabled && configured.thinkingLevel ? { defaultEffort: configured.thinkingLevel } : {},
|
|
66
|
+
...configured?.reasoningEffortOverride ? { override: configured.reasoningEffortOverride } : {}
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
const resolveRequest = async (request) => {
|
|
70
|
+
const supportsVision = request.modelSettings?.supportsVision ?? profile.supportsVision ?? false;
|
|
71
|
+
const resolvedEffort = resolveEffort(request);
|
|
72
|
+
return {
|
|
73
|
+
...request,
|
|
74
|
+
messages: await resolveAttachmentsInMessages(request.messages, supportsVision),
|
|
75
|
+
...resolvedEffort ? { reasoningEffort: resolvedEffort } : {}
|
|
76
|
+
};
|
|
77
|
+
};
|
|
53
78
|
return {
|
|
54
79
|
getModel: () => model,
|
|
55
80
|
setModel(next) {
|
|
@@ -61,15 +86,10 @@ function createTransportLLMClient(provider, modelId, transport) {
|
|
|
61
86
|
setBackend(next) {
|
|
62
87
|
backend = next;
|
|
63
88
|
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const resolved = { ...request, messages: await resolveAttachmentsInMessages(request.messages, supportsVision) };
|
|
67
|
-
return transport.complete(resolved, context());
|
|
68
|
-
},
|
|
89
|
+
getReasoningEffort: () => resolveEffort({}),
|
|
90
|
+
complete: async (request) => transport.complete(await resolveRequest(request), context()),
|
|
69
91
|
stream: async function* (request) {
|
|
70
|
-
|
|
71
|
-
const resolved = { ...request, messages: await resolveAttachmentsInMessages(request.messages, supportsVision) };
|
|
72
|
-
yield* transport.stream(resolved, context());
|
|
92
|
+
yield* transport.stream(await resolveRequest(request), context());
|
|
73
93
|
}
|
|
74
94
|
};
|
|
75
95
|
}
|
|
@@ -212,6 +232,16 @@ function enrichWithProfileDefaults(model) {
|
|
|
212
232
|
defaultMaxTokens: profile.defaultMaxTokens
|
|
213
233
|
};
|
|
214
234
|
}
|
|
235
|
+
function enrichWithCatalogDefaults(model) {
|
|
236
|
+
const entry = getCatalogEntry(model.id);
|
|
237
|
+
if (!entry) return model;
|
|
238
|
+
return {
|
|
239
|
+
...model,
|
|
240
|
+
// Only fill a genuinely-unset list. An explicitly-empty list (user cleared
|
|
241
|
+
// all presets) is preserved so the model shows no chips.
|
|
242
|
+
...model.reasoningEfforts !== void 0 ? {} : { reasoningEfforts: entry.reasoningEfforts }
|
|
243
|
+
};
|
|
244
|
+
}
|
|
215
245
|
function mergeModelsWithUserOverrides(backendModels, userModels, preserveMissingUserModels = true) {
|
|
216
246
|
const normalizedUserIdMap = new Map(userModels.map((m) => [normalizeModelId(m.id), m]));
|
|
217
247
|
const updatedModels = backendModels.map((backendModel) => {
|
|
@@ -378,16 +408,19 @@ function createProviderManager(config, options = {}) {
|
|
|
378
408
|
for (const p of providers) {
|
|
379
409
|
providerStatus.set(p.id, "unknown");
|
|
380
410
|
}
|
|
381
|
-
function resolveModelThinkingConfig(provider, modelId) {
|
|
411
|
+
function resolveModelThinkingConfig(provider, modelId, explicitEffort) {
|
|
382
412
|
const modelConfig = provider.models.find((m) => m.id === modelId);
|
|
383
413
|
if (!modelConfig) return {};
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
414
|
+
const effort = resolveEffortForModel({
|
|
415
|
+
...modelConfig.reasoningEfforts?.length ? { reasoningEfforts: modelConfig.reasoningEfforts } : {},
|
|
416
|
+
...explicitEffort ? { candidate: explicitEffort } : {},
|
|
417
|
+
...modelConfig.thinkingEnabled && modelConfig.thinkingLevel ? { defaultEffort: modelConfig.thinkingLevel } : {},
|
|
418
|
+
...modelConfig.reasoningEffortOverride ? { override: modelConfig.reasoningEffortOverride } : {}
|
|
419
|
+
});
|
|
420
|
+
return effort ? { reasoningEffort: effort } : {};
|
|
388
421
|
}
|
|
389
|
-
function createConfigForProvider(provider, model) {
|
|
390
|
-
const modelThinking = resolveModelThinkingConfig(provider, model);
|
|
422
|
+
function createConfigForProvider(provider, model, reasoningEffort) {
|
|
423
|
+
const modelThinking = resolveModelThinkingConfig(provider, model, reasoningEffort);
|
|
391
424
|
return {
|
|
392
425
|
...config,
|
|
393
426
|
llm: {
|
|
@@ -420,10 +453,10 @@ function createProviderManager(config, options = {}) {
|
|
|
420
453
|
}
|
|
421
454
|
return provider.models.find((m) => m.selected)?.id ?? provider.models[0]?.id ?? requestedModel ?? "auto";
|
|
422
455
|
}
|
|
423
|
-
function createClientForProvider(provider, model) {
|
|
456
|
+
function createClientForProvider(provider, model, reasoningEffort) {
|
|
424
457
|
const resolvedModel = resolveProviderModel(provider, model);
|
|
425
458
|
const transport = options.adapters?.getTransport(resolveTransportAdapter(provider));
|
|
426
|
-
return transport ? createTransportLLMClient(provider, resolvedModel, transport) : createLLMClient(createConfigForProvider(provider, resolvedModel));
|
|
459
|
+
return transport ? createTransportLLMClient(provider, resolvedModel, transport, reasoningEffort) : createLLMClient(createConfigForProvider(provider, resolvedModel, reasoningEffort));
|
|
427
460
|
}
|
|
428
461
|
async function fetchProviderModels(provider) {
|
|
429
462
|
const transport = options.adapters?.getTransport(resolveTransportAdapter(provider));
|
|
@@ -444,9 +477,9 @@ function createProviderManager(config, options = {}) {
|
|
|
444
477
|
}
|
|
445
478
|
}
|
|
446
479
|
return {
|
|
447
|
-
createClient(providerId, model) {
|
|
480
|
+
createClient(providerId, model, reasoningEffort) {
|
|
448
481
|
const provider = providers.find((p) => p.id === providerId);
|
|
449
|
-
return provider ? createClientForProvider(provider, model) : void 0;
|
|
482
|
+
return provider ? createClientForProvider(provider, model, reasoningEffort) : void 0;
|
|
450
483
|
},
|
|
451
484
|
resolveModel(providerId, model) {
|
|
452
485
|
const provider = providers.find((p) => p.id === providerId);
|
|
@@ -455,7 +488,8 @@ function createProviderManager(config, options = {}) {
|
|
|
455
488
|
getProviders() {
|
|
456
489
|
return providers.map((p) => ({
|
|
457
490
|
...p,
|
|
458
|
-
status: providerStatus.get(p.id) ?? "unknown"
|
|
491
|
+
status: providerStatus.get(p.id) ?? "unknown",
|
|
492
|
+
models: p.models.map(enrichWithCatalogDefaults)
|
|
459
493
|
}));
|
|
460
494
|
},
|
|
461
495
|
getActiveProvider() {
|
|
@@ -697,6 +731,8 @@ function createProviderManager(config, options = {}) {
|
|
|
697
731
|
...finalSupportsVision !== void 0 && { supportsVision: finalSupportsVision },
|
|
698
732
|
...settings.thinkingEnabled !== void 0 ? { thinkingEnabled: settings.thinkingEnabled } : existingModel?.thinkingEnabled !== void 0 ? { thinkingEnabled: existingModel.thinkingEnabled } : {},
|
|
699
733
|
...settings.thinkingLevel !== void 0 ? { thinkingLevel: settings.thinkingLevel } : existingModel?.thinkingLevel !== void 0 ? { thinkingLevel: existingModel.thinkingLevel } : {},
|
|
734
|
+
...settings.reasoningEfforts !== void 0 ? { reasoningEfforts: settings.reasoningEfforts } : existingModel?.reasoningEfforts !== void 0 ? { reasoningEfforts: existingModel.reasoningEfforts } : {},
|
|
735
|
+
...settings.reasoningEffortOverride !== void 0 ? { reasoningEffortOverride: settings.reasoningEffortOverride } : existingModel?.reasoningEffortOverride !== void 0 ? { reasoningEffortOverride: existingModel.reasoningEffortOverride } : {},
|
|
700
736
|
...settings.nonThinkingEnabled !== void 0 ? { nonThinkingEnabled: settings.nonThinkingEnabled } : existingModel?.nonThinkingEnabled !== void 0 ? { nonThinkingEnabled: existingModel.nonThinkingEnabled } : {},
|
|
701
737
|
...settings.thinkingExtraKwargs !== void 0 ? { thinkingExtraKwargs: settings.thinkingExtraKwargs } : existingModel?.thinkingExtraKwargs !== void 0 ? { thinkingExtraKwargs: existingModel.thinkingExtraKwargs } : {},
|
|
702
738
|
...settings.nonThinkingExtraKwargs !== void 0 ? { nonThinkingExtraKwargs: settings.nonThinkingExtraKwargs } : existingModel?.nonThinkingExtraKwargs !== void 0 ? { nonThinkingExtraKwargs: existingModel.nonThinkingExtraKwargs } : {},
|
|
@@ -805,4 +841,4 @@ export {
|
|
|
805
841
|
parseDefaultModelSelection,
|
|
806
842
|
createProviderManager
|
|
807
843
|
};
|
|
808
|
-
//# sourceMappingURL=chunk-
|
|
844
|
+
//# sourceMappingURL=chunk-A6EZBX62.js.map
|