openfox 2.0.147 → 2.0.149
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 +21 -0
- package/dist/CHANGELOG.md +21 -0
- package/dist/{auto-continue-FGQ63HHR.js → auto-continue-AZRNVDV5.js} +7 -7
- package/dist/{chat-handler-VCED3JYF.js → chat-handler-NJGT2L65.js} +10 -10
- package/dist/{chunk-AJMBQMJH.js → chunk-2GIY77DT.js} +191 -14
- package/dist/chunk-2IK5KDVV.js +7 -0
- package/dist/{chunk-UOBJP4GN.js → chunk-7HNACZXD.js} +10 -10
- package/dist/{chunk-2DBWCXAQ.js → chunk-A6YTJZAO.js} +2 -2
- package/dist/{chunk-FAN4P45J.js → chunk-BAN2F7TG.js} +18 -2
- package/dist/{chunk-P7KUU5VB.js → chunk-E4RD42PU.js} +2 -2
- package/dist/{chunk-L2RESXUF.js → chunk-EBMHUSMZ.js} +2 -2
- package/dist/{chunk-QHFJRUJV.js → chunk-I46WU3NP.js} +4 -4
- package/dist/{chunk-QMU3ZY2C.js → chunk-JRWG4KWV.js} +3 -1
- package/dist/{chunk-ESHP42KO.js → chunk-MA4NG3F7.js} +2 -2
- package/dist/{chunk-AWBV2VXO.js → chunk-MICSOCCE.js} +3 -3
- package/dist/{chunk-ABXERHIY.js → chunk-N342GU3N.js} +19 -8
- package/dist/{chunk-YQJ6HEFS.js → chunk-RXKZVMKL.js} +75 -54
- package/dist/{chunk-ORIPUMOQ.js → chunk-XWKX5IAU.js} +2 -2
- package/dist/{chunk-2V6QL6IW.js → chunk-ZWI4T4WF.js} +5 -5
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{client-L4PANCG4.js → client-WQFM3PDL.js} +3 -3
- package/dist/{client-pure-YZ4IGCU4.js → client-pure-EM26AITO.js} +2 -2
- package/dist/{compactor-YY7PO2XE.js → compactor-JDR6AGEW.js} +4 -4
- package/dist/{dynamic-context-YLRA34WJ.js → dynamic-context-SS3AVCVM.js} +2 -2
- package/dist/{export-import-R4E5BUQS.js → export-import-QT7CV7ZU.js} +2 -2
- package/dist/{launch-QP2BI3PB.js → launch-2DPUISQR.js} +10 -10
- package/dist/{orchestrator-7T62RLDL.js → orchestrator-2BBZC4VH.js} +11 -9
- package/dist/package.json +1 -1
- package/dist/{processor-LDLRELLS.js → processor-N3EIGT4S.js} +9 -9
- package/dist/{provider-QE7XSGYA.js → provider-52J4WIIQ.js} +4 -4
- package/dist/{provider-manager-WW2EF76W.js → provider-manager-6EACWIDV.js} +4 -4
- package/dist/{serve-A4AJAH2N.js → serve-O44ZIZ7N.js} +15 -15
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.js +14 -14
- package/dist/{server-A3EGJ6MD.js → server-Q5PTCS4G.js} +13 -13
- package/dist/{service-KMOSB6SU.js → service-ALXVEWCE.js} +5 -5
- package/dist/{tasks-X5DM553T.js → tasks-LD3VJYFH.js} +5 -5
- package/dist/{tools-MRC27SZG.js → tools-SK4EU3D5.js} +7 -7
- package/dist/{update-MLDVVG3D.js → update-32UNL44B.js} +2 -2
- package/dist/web/assets/{index-CkVmYTBd.js → index-Cith3wH6.js} +55 -55
- package/dist/web/index.html +1 -1
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-65KDNVRA.js +0 -7
|
@@ -434,6 +434,8 @@ function mapFinishReason(reason) {
|
|
|
434
434
|
}
|
|
435
435
|
|
|
436
436
|
export {
|
|
437
|
+
TEXT_MIME_PREFIXES,
|
|
438
|
+
TEXT_MIME_EXACT,
|
|
437
439
|
resolveAttachmentsInMessages,
|
|
438
440
|
parseToolArguments,
|
|
439
441
|
buildModelParams,
|
|
@@ -444,4 +446,4 @@ export {
|
|
|
444
446
|
buildStreamingCreateParams,
|
|
445
447
|
mapFinishReason
|
|
446
448
|
};
|
|
447
|
-
//# sourceMappingURL=chunk-
|
|
449
|
+
//# sourceMappingURL=chunk-JRWG4KWV.js.map
|
|
@@ -329,7 +329,7 @@ function resolveAgentDef(sessionManager, sessionId) {
|
|
|
329
329
|
});
|
|
330
330
|
}
|
|
331
331
|
async function getEffectiveToolDefinitions(agentDef, sessionId, modelName) {
|
|
332
|
-
const { getToolRegistryForAgent } = await import("./tools-
|
|
332
|
+
const { getToolRegistryForAgent } = await import("./tools-SK4EU3D5.js");
|
|
333
333
|
const { isDescribeImageEligible } = await import("./describe-image-Z5WS6YU3.js");
|
|
334
334
|
const all = getToolRegistryForAgent(agentDef, sessionId).definitions;
|
|
335
335
|
const eligible = await isDescribeImageEligible(modelName);
|
|
@@ -398,4 +398,4 @@ export {
|
|
|
398
398
|
computeSessionHash,
|
|
399
399
|
applyDynamicContext
|
|
400
400
|
};
|
|
401
|
-
//# sourceMappingURL=chunk-
|
|
401
|
+
//# sourceMappingURL=chunk-MA4NG3F7.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-OA2FURC3.js";
|
|
5
5
|
import {
|
|
6
6
|
createLLMClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EBMHUSMZ.js";
|
|
8
8
|
import {
|
|
9
9
|
getModelProfile
|
|
10
10
|
} from "./chunk-TS5WKTFB.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from "./chunk-HNCM3D7Y.js";
|
|
21
21
|
import {
|
|
22
22
|
resolveAttachmentsInMessages
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-JRWG4KWV.js";
|
|
24
24
|
import {
|
|
25
25
|
sanitizeToolSchema
|
|
26
26
|
} from "./chunk-XG3AUMPI.js";
|
|
@@ -920,4 +920,4 @@ export {
|
|
|
920
920
|
parseDefaultModelSelection,
|
|
921
921
|
createProviderManager
|
|
922
922
|
};
|
|
923
|
-
//# sourceMappingURL=chunk-
|
|
923
|
+
//# sourceMappingURL=chunk-MICSOCCE.js.map
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
checkToolChangesAndInject,
|
|
4
4
|
computeDynamicContextHash,
|
|
5
5
|
getToolFingerprint
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MA4NG3F7.js";
|
|
7
7
|
import {
|
|
8
8
|
createAssemblyResult,
|
|
9
9
|
getConversationMessages,
|
|
10
10
|
getToolRegistryForAgent,
|
|
11
11
|
processEventsForConversation,
|
|
12
12
|
runTopLevelAgentLoop
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2GIY77DT.js";
|
|
14
14
|
import {
|
|
15
15
|
getAllInstructions,
|
|
16
16
|
getEnabledSkillMetadata
|
|
@@ -24,8 +24,9 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
TurnMetrics,
|
|
26
26
|
createChatDoneEvent,
|
|
27
|
-
createMessageStartEvent
|
|
28
|
-
|
|
27
|
+
createMessageStartEvent,
|
|
28
|
+
sanitizeRetryPatterns
|
|
29
|
+
} from "./chunk-BAN2F7TG.js";
|
|
29
30
|
import {
|
|
30
31
|
buildAgentReminder,
|
|
31
32
|
buildAgentSmallReminder,
|
|
@@ -64,7 +65,16 @@ async function buildRetryPatterns() {
|
|
|
64
65
|
if (oldXmlProtection !== null) {
|
|
65
66
|
const disabled = oldXmlProtection === "true";
|
|
66
67
|
return {
|
|
67
|
-
retryPatterns:
|
|
68
|
+
retryPatterns: sanitizeRetryPatterns(
|
|
69
|
+
disabled ? [] : [
|
|
70
|
+
{
|
|
71
|
+
field: "both",
|
|
72
|
+
pattern: "<(tool_call|function=|/tool_call|parameter=)",
|
|
73
|
+
action: "retry",
|
|
74
|
+
active: true
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
),
|
|
68
78
|
maxRetriesPerTurn: 10
|
|
69
79
|
};
|
|
70
80
|
}
|
|
@@ -73,7 +83,7 @@ async function buildRetryPatterns() {
|
|
|
73
83
|
try {
|
|
74
84
|
const parsed = JSON.parse(raw);
|
|
75
85
|
return {
|
|
76
|
-
retryPatterns: Array.isArray(parsed.patterns) ? parsed.patterns : [],
|
|
86
|
+
retryPatterns: sanitizeRetryPatterns(Array.isArray(parsed.patterns) ? parsed.patterns : []),
|
|
77
87
|
maxRetriesPerTurn: typeof parsed.maxRetriesPerTurn === "number" ? parsed.maxRetriesPerTurn : 10
|
|
78
88
|
};
|
|
79
89
|
} catch {
|
|
@@ -357,7 +367,7 @@ async function runAgentTurn(options, turnMetrics, agentId, append, callbacks) {
|
|
|
357
367
|
getConversationMessages: buildGetConversationMessages(options.sessionId, resolveAgentClient, append),
|
|
358
368
|
injectAgentReminder: () => injectAgentReminder(options.sessionId, agentDef),
|
|
359
369
|
rebuildCachedContext: async () => {
|
|
360
|
-
const { applyDynamicContext } = await import("./dynamic-context-
|
|
370
|
+
const { applyDynamicContext } = await import("./dynamic-context-SS3AVCVM.js");
|
|
361
371
|
await applyDynamicContext(options.sessionManager, options.sessionId, agentLlmClient.getModel());
|
|
362
372
|
},
|
|
363
373
|
...options.initialCompacting ? { initialCompacting: true } : {},
|
|
@@ -384,7 +394,8 @@ function buildSnapshot(sessionManager, sessionId, _lastStats) {
|
|
|
384
394
|
}
|
|
385
395
|
|
|
386
396
|
export {
|
|
397
|
+
buildRetryPatterns,
|
|
387
398
|
runChatTurn,
|
|
388
399
|
runAgentTurn
|
|
389
400
|
};
|
|
390
|
-
//# sourceMappingURL=chunk-
|
|
401
|
+
//# sourceMappingURL=chunk-N342GU3N.js.map
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
terminalManager,
|
|
10
10
|
tokenFromPassword,
|
|
11
11
|
verifyPassword
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7HNACZXD.js";
|
|
13
13
|
import {
|
|
14
14
|
TEMPLATE_VARIABLES
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZWI4T4WF.js";
|
|
16
16
|
import {
|
|
17
17
|
projectSessionStatus
|
|
18
18
|
} from "./chunk-T3S5MTMD.js";
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
setMcpManagerForTools,
|
|
43
43
|
setMcpTools,
|
|
44
44
|
setNotifyMcpServersChanged
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-2GIY77DT.js";
|
|
46
46
|
import {
|
|
47
47
|
deleteOwnedSkill,
|
|
48
48
|
deleteProjectSkill,
|
|
@@ -106,7 +106,7 @@ import {
|
|
|
106
106
|
saveWorkflow,
|
|
107
107
|
saveWorkflowToProject,
|
|
108
108
|
workflowExists
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-A6YTJZAO.js";
|
|
110
110
|
import {
|
|
111
111
|
clearSessionOverrides,
|
|
112
112
|
computeDisabledServersForProject,
|
|
@@ -218,13 +218,13 @@ import {
|
|
|
218
218
|
detectModel,
|
|
219
219
|
getLlmStatus,
|
|
220
220
|
parseDefaultModelSelection
|
|
221
|
-
} from "./chunk-
|
|
221
|
+
} from "./chunk-MICSOCCE.js";
|
|
222
222
|
import {
|
|
223
223
|
buildOpenFoxMcpBootstrap
|
|
224
224
|
} from "./chunk-YNMP647F.js";
|
|
225
225
|
import {
|
|
226
226
|
VERSION
|
|
227
|
-
} from "./chunk-
|
|
227
|
+
} from "./chunk-2IK5KDVV.js";
|
|
228
228
|
import {
|
|
229
229
|
deleteProject,
|
|
230
230
|
getProject,
|
|
@@ -1576,6 +1576,17 @@ function createMockLLMClient() {
|
|
|
1576
1576
|
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
1577
1577
|
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
1578
1578
|
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
1579
|
+
var TOOL_CALL_TIMEOUT_MARGIN_SECONDS = 30;
|
|
1580
|
+
var TOOL_CALL_TIMEOUT_DEFAULT_SECONDS = 60;
|
|
1581
|
+
var TOOL_CALL_TIMEOUT_MAX_SECONDS = 3600;
|
|
1582
|
+
function effectiveRequestTimeoutSeconds(configTimeout, args) {
|
|
1583
|
+
const configSeconds = typeof configTimeout === "number" && Number.isFinite(configTimeout) && configTimeout > 0 ? configTimeout : 0;
|
|
1584
|
+
const arg = args["timeout"];
|
|
1585
|
+
const argSeconds = typeof arg === "number" && Number.isFinite(arg) && arg > 0 ? arg : 0;
|
|
1586
|
+
const argCandidate = argSeconds > 0 ? Math.min(argSeconds + TOOL_CALL_TIMEOUT_MARGIN_SECONDS, TOOL_CALL_TIMEOUT_MAX_SECONDS) : 0;
|
|
1587
|
+
const effective = Math.max(configSeconds, argCandidate);
|
|
1588
|
+
return effective > 0 ? effective : TOOL_CALL_TIMEOUT_DEFAULT_SECONDS;
|
|
1589
|
+
}
|
|
1579
1590
|
function withoutAuthorizationHeader(headers) {
|
|
1580
1591
|
if (!headers) return void 0;
|
|
1581
1592
|
const kept = Object.entries(headers).filter(([key]) => key.trim().toLowerCase() !== "authorization");
|
|
@@ -1766,27 +1777,29 @@ var McpManager = class {
|
|
|
1766
1777
|
const entry = this.servers.get(serverName);
|
|
1767
1778
|
if (!entry) return { success: false, error: `MCP server '${serverName}' not found` };
|
|
1768
1779
|
if (!entry.client) return { success: false, error: `MCP server '${serverName}' is not connected` };
|
|
1780
|
+
const timeoutSeconds = effectiveRequestTimeoutSeconds(entry.config.timeout, args);
|
|
1781
|
+
const timeoutMs = timeoutSeconds * 1e3;
|
|
1782
|
+
const controller = new AbortController();
|
|
1783
|
+
let timer;
|
|
1784
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
1785
|
+
timer = setTimeout(() => {
|
|
1786
|
+
const reason = new Error(`MCP tool call timed out after ${timeoutSeconds} seconds`);
|
|
1787
|
+
controller.abort(reason);
|
|
1788
|
+
reject(reason);
|
|
1789
|
+
}, timeoutMs);
|
|
1790
|
+
});
|
|
1769
1791
|
try {
|
|
1770
|
-
const timeout = entry.config.timeout;
|
|
1771
|
-
const requestOptions = timeout !== void 0 && timeout > 0 ? { timeout: timeout * 1e3 } : void 0;
|
|
1772
1792
|
let result;
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
},
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
timeoutPromise
|
|
1784
|
-
]);
|
|
1785
|
-
} finally {
|
|
1786
|
-
if (timer) clearTimeout(timer);
|
|
1787
|
-
}
|
|
1788
|
-
} else {
|
|
1789
|
-
result = await entry.client.callTool({ name: toolName, arguments: args });
|
|
1793
|
+
try {
|
|
1794
|
+
result = await Promise.race([
|
|
1795
|
+
entry.client.callTool({ name: toolName, arguments: args }, void 0, {
|
|
1796
|
+
timeout: timeoutMs,
|
|
1797
|
+
signal: controller.signal
|
|
1798
|
+
}),
|
|
1799
|
+
timeoutPromise
|
|
1800
|
+
]);
|
|
1801
|
+
} finally {
|
|
1802
|
+
if (timer) clearTimeout(timer);
|
|
1790
1803
|
}
|
|
1791
1804
|
const content = result.content;
|
|
1792
1805
|
const textParts = content.filter((c) => c.type === "text").map((c) => c.text);
|
|
@@ -2849,6 +2862,7 @@ var SessionManager = class {
|
|
|
2849
2862
|
// Sessions already warned about an unresolvable provider — getContextState runs on every
|
|
2850
2863
|
// turn, and the warning is only worth one line per session.
|
|
2851
2864
|
unknownProviderWarned = /* @__PURE__ */ new Set();
|
|
2865
|
+
subAgentContextSizes = /* @__PURE__ */ new Map();
|
|
2852
2866
|
switchLocks = /* @__PURE__ */ new Map();
|
|
2853
2867
|
workspaceCreationLocks = /* @__PURE__ */ new Map();
|
|
2854
2868
|
// Cooperative pause: in-memory only (a pause is only meaningful for a live,
|
|
@@ -3147,8 +3161,8 @@ var SessionManager = class {
|
|
|
3147
3161
|
* @throws Error for invalid payloads or unknown project
|
|
3148
3162
|
*/
|
|
3149
3163
|
async importSession(projectId, rawPayload) {
|
|
3150
|
-
const { parseSessionExport, IMPORTED_SESSION_REMINDER, SESSION_EXPORT_VERSION } = await import("./export-import-
|
|
3151
|
-
const { injectContextDriftReminders, getToolSetFingerprint } = await import("./dynamic-context-
|
|
3164
|
+
const { parseSessionExport, IMPORTED_SESSION_REMINDER, SESSION_EXPORT_VERSION } = await import("./export-import-QT7CV7ZU.js");
|
|
3165
|
+
const { injectContextDriftReminders, getToolSetFingerprint } = await import("./dynamic-context-SS3AVCVM.js");
|
|
3152
3166
|
const { loadAllAgentsDefault: loadAllAgentsDefault2, resolveDefaultAgentId } = await import("./registry-24U5BZAJ.js");
|
|
3153
3167
|
const payload = parseSessionExport(rawPayload);
|
|
3154
3168
|
if (payload.version !== SESSION_EXPORT_VERSION) {
|
|
@@ -3901,6 +3915,9 @@ var SessionManager = class {
|
|
|
3901
3915
|
const currentTokens = promptTokens + completionTokens;
|
|
3902
3916
|
const compactionCount = subAgentId ? 0 : state?.contextState.compactionCount ?? 0;
|
|
3903
3917
|
const dynamicContextChanged = this.getDynamicContextChanged(sessionId);
|
|
3918
|
+
if (subAgentId) {
|
|
3919
|
+
this.subAgentContextSizes.set(subAgentId, currentTokens);
|
|
3920
|
+
}
|
|
3904
3921
|
emitContextState(
|
|
3905
3922
|
sessionId,
|
|
3906
3923
|
currentTokens,
|
|
@@ -3913,6 +3930,10 @@ var SessionManager = class {
|
|
|
3913
3930
|
);
|
|
3914
3931
|
logger.debug("Context state updated", { sessionId, promptTokens, maxTokens, subAgentId });
|
|
3915
3932
|
}
|
|
3933
|
+
/** Tokens used by a sub-agent's own scoped context (fresh, never-compacted). */
|
|
3934
|
+
getSubAgentContextTokens(subAgentId) {
|
|
3935
|
+
return this.subAgentContextSizes.get(subAgentId);
|
|
3936
|
+
}
|
|
3916
3937
|
// ============================================================================
|
|
3917
3938
|
// Criteria Operations (delegates to EventStore)
|
|
3918
3939
|
// ============================================================================
|
|
@@ -7248,7 +7269,7 @@ function detectWsl() {
|
|
|
7248
7269
|
// src/server/index.ts
|
|
7249
7270
|
var __dirname3 = dirname7(fileURLToPath6(import.meta.url));
|
|
7250
7271
|
async function announceContextDrift(sessionManager, sessionIds) {
|
|
7251
|
-
const { injectContextDriftRemindersForSessions } = await import("./dynamic-context-
|
|
7272
|
+
const { injectContextDriftRemindersForSessions } = await import("./dynamic-context-SS3AVCVM.js");
|
|
7252
7273
|
await injectContextDriftRemindersForSessions(sessionManager, sessionIds);
|
|
7253
7274
|
}
|
|
7254
7275
|
async function createServerHandle(config3) {
|
|
@@ -7364,7 +7385,7 @@ async function createServerHandle(config3) {
|
|
|
7364
7385
|
toolRegistry = createToolRegistry();
|
|
7365
7386
|
logger.info("MCP tools registered", { count: mcpTools.length });
|
|
7366
7387
|
}
|
|
7367
|
-
const { signalMcpReady } = await import("./server-
|
|
7388
|
+
const { signalMcpReady } = await import("./server-Q5PTCS4G.js");
|
|
7368
7389
|
signalMcpReady();
|
|
7369
7390
|
}
|
|
7370
7391
|
const app = express();
|
|
@@ -7579,9 +7600,9 @@ async function createServerHandle(config3) {
|
|
|
7579
7600
|
const sessionFavoriteRouter = express.Router();
|
|
7580
7601
|
registerSessionFavoriteRoute(sessionFavoriteRouter, sessionManager);
|
|
7581
7602
|
app.use("/api", sessionFavoriteRouter);
|
|
7582
|
-
const { createTasksService } = await import("./service-
|
|
7583
|
-
const { registerTaskRoutes } = await import("./tasks-
|
|
7584
|
-
const { setTasksService } = await import("./tools-
|
|
7603
|
+
const { createTasksService } = await import("./service-ALXVEWCE.js");
|
|
7604
|
+
const { registerTaskRoutes } = await import("./tasks-LD3VJYFH.js");
|
|
7605
|
+
const { setTasksService } = await import("./tools-SK4EU3D5.js");
|
|
7585
7606
|
const tasksService = createTasksService({
|
|
7586
7607
|
sessionManager,
|
|
7587
7608
|
config: config3,
|
|
@@ -7904,7 +7925,7 @@ All file and git operations should use this branch.
|
|
|
7904
7925
|
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEventsWithSnapshot2 } = await import("./events-FTS5W6FX.js");
|
|
7905
7926
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, buildSessionStatsMessages, foldPendingConfirmations } = await import("./folding-VWRMYZ5T.js");
|
|
7906
7927
|
const { computeSessionStatsSummary } = await import("./stats-2QMXP6G4.js");
|
|
7907
|
-
const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-
|
|
7928
|
+
const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-SK4EU3D5.js");
|
|
7908
7929
|
const { getMaxVisibleItems } = await import("./settings-FQUDSGZF.js");
|
|
7909
7930
|
const session = sessionManager.getSession(req.params.id);
|
|
7910
7931
|
if (!session) {
|
|
@@ -7935,7 +7956,7 @@ All file and git operations should use this branch.
|
|
|
7935
7956
|
});
|
|
7936
7957
|
app.get("/api/sessions/:id/status", async (req, res) => {
|
|
7937
7958
|
const { projectSessionStatus: projectSessionStatus2 } = await import("./session-status-UFO5IFI7.js");
|
|
7938
|
-
const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-
|
|
7959
|
+
const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-SK4EU3D5.js");
|
|
7939
7960
|
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEventsWithSnapshot2 } = await import("./events-FTS5W6FX.js");
|
|
7940
7961
|
const { foldPendingConfirmations } = await import("./folding-VWRMYZ5T.js");
|
|
7941
7962
|
const sessionId = req.params["id"];
|
|
@@ -7971,8 +7992,8 @@ All file and git operations should use this branch.
|
|
|
7971
7992
|
if (!session) {
|
|
7972
7993
|
return res.status(404).json({ error: "Session not found" });
|
|
7973
7994
|
}
|
|
7974
|
-
const { stopSessionExecution } = await import("./chat-handler-
|
|
7975
|
-
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-
|
|
7995
|
+
const { stopSessionExecution } = await import("./chat-handler-NJGT2L65.js");
|
|
7996
|
+
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-SK4EU3D5.js");
|
|
7976
7997
|
sessionManager.clearMessageQueue(sessionId);
|
|
7977
7998
|
stopSessionExecution(sessionId, sessionManager);
|
|
7978
7999
|
abortSession(sessionId);
|
|
@@ -8204,7 +8225,7 @@ All file and git operations should use this branch.
|
|
|
8204
8225
|
}
|
|
8205
8226
|
sessionManager.setDangerLevel(sessionId, dangerLevel);
|
|
8206
8227
|
if (dangerLevel === "dangerous") {
|
|
8207
|
-
const { autoApprovePendingConfirmationsForSession } = await import("./tools-
|
|
8228
|
+
const { autoApprovePendingConfirmationsForSession } = await import("./tools-SK4EU3D5.js");
|
|
8208
8229
|
const approvedCallIds = autoApprovePendingConfirmationsForSession(sessionId);
|
|
8209
8230
|
for (const callId of approvedCallIds) {
|
|
8210
8231
|
wssExports.broadcastForSession(sessionId, {
|
|
@@ -8239,7 +8260,7 @@ All file and git operations should use this branch.
|
|
|
8239
8260
|
setSessionDisabledServers(sessionId, disabledServers);
|
|
8240
8261
|
const messages = session.messages ?? [];
|
|
8241
8262
|
if (messages.length === 0) {
|
|
8242
|
-
const { applyDynamicContext } = await import("./dynamic-context-
|
|
8263
|
+
const { applyDynamicContext } = await import("./dynamic-context-SS3AVCVM.js");
|
|
8243
8264
|
const modelName = session.providerModel ?? providerManager.getCurrentModel();
|
|
8244
8265
|
await applyDynamicContext(sessionManager, sessionId, modelName);
|
|
8245
8266
|
} else {
|
|
@@ -8273,7 +8294,7 @@ All file and git operations should use this branch.
|
|
|
8273
8294
|
if (alwaysAllow !== void 0 && typeof alwaysAllow !== "boolean") {
|
|
8274
8295
|
return res.status(400).json({ error: "alwaysAllow must be a boolean if provided" });
|
|
8275
8296
|
}
|
|
8276
|
-
const { providePathConfirmation: providePathConfirmation2, getConfirmationSessionId } = await import("./tools-
|
|
8297
|
+
const { providePathConfirmation: providePathConfirmation2, getConfirmationSessionId } = await import("./tools-SK4EU3D5.js");
|
|
8277
8298
|
const pendingSessionId = getConfirmationSessionId(callId);
|
|
8278
8299
|
if (!pendingSessionId) {
|
|
8279
8300
|
return res.status(404).json({ error: "No pending path confirmation with that ID" });
|
|
@@ -8288,7 +8309,7 @@ All file and git operations should use this branch.
|
|
|
8288
8309
|
const { getEventStore: getEventStore2, combineEventsWithSnapshot: combineEvents } = await import("./events-FTS5W6FX.js");
|
|
8289
8310
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, foldPendingConfirmations } = await import("./folding-VWRMYZ5T.js");
|
|
8290
8311
|
const { createSessionStateMessage } = await import("./protocol-M4DFHA32.js");
|
|
8291
|
-
const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-
|
|
8312
|
+
const { getPendingQuestionsForSession: getPendingQuestionsForSession2 } = await import("./tools-SK4EU3D5.js");
|
|
8292
8313
|
const { getMaxVisibleItems } = await import("./settings-FQUDSGZF.js");
|
|
8293
8314
|
const eventStore = getEventStore2();
|
|
8294
8315
|
const { snapshot, events: eventsSinceSnapshot } = eventStore.getEventsSinceSnapshot(sessionId);
|
|
@@ -8326,7 +8347,7 @@ All file and git operations should use this branch.
|
|
|
8326
8347
|
if (!skip && typeof answer !== "string") {
|
|
8327
8348
|
return res.status(400).json({ error: "answer is required when not skipping" });
|
|
8328
8349
|
}
|
|
8329
|
-
const { provideAnswer: provideAnswer2 } = await import("./tools-
|
|
8350
|
+
const { provideAnswer: provideAnswer2 } = await import("./tools-SK4EU3D5.js");
|
|
8330
8351
|
const found = provideAnswer2(callId, answer ?? "", skip ?? false);
|
|
8331
8352
|
if (!found) {
|
|
8332
8353
|
return res.status(404).json({ error: "No pending question with that ID" });
|
|
@@ -8392,7 +8413,7 @@ All file and git operations should use this branch.
|
|
|
8392
8413
|
backend: activeProvider?.backend ?? llmClient.getBackend(),
|
|
8393
8414
|
model: llmClient.getModel()
|
|
8394
8415
|
};
|
|
8395
|
-
const { runAgentTurn, TurnMetrics } = await import("./orchestrator-
|
|
8416
|
+
const { runAgentTurn, TurnMetrics } = await import("./orchestrator-2BBZC4VH.js");
|
|
8396
8417
|
runAgentTurn(
|
|
8397
8418
|
{
|
|
8398
8419
|
sessionManager,
|
|
@@ -8430,8 +8451,8 @@ All file and git operations should use this branch.
|
|
|
8430
8451
|
if (!session) {
|
|
8431
8452
|
return res.status(404).json({ error: "Session not found" });
|
|
8432
8453
|
}
|
|
8433
|
-
const { stopSessionExecution } = await import("./chat-handler-
|
|
8434
|
-
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-
|
|
8454
|
+
const { stopSessionExecution } = await import("./chat-handler-NJGT2L65.js");
|
|
8455
|
+
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-SK4EU3D5.js");
|
|
8435
8456
|
const queuedMessages = sessionManager.getQueueState(sessionId);
|
|
8436
8457
|
sessionManager.clearMessageQueue(sessionId);
|
|
8437
8458
|
stopSessionExecution(sessionId, sessionManager);
|
|
@@ -8554,7 +8575,7 @@ All file and git operations should use this branch.
|
|
|
8554
8575
|
return res.status(404).json({ error: "Session not found" });
|
|
8555
8576
|
}
|
|
8556
8577
|
try {
|
|
8557
|
-
const { buildSessionExport } = await import("./export-import-
|
|
8578
|
+
const { buildSessionExport } = await import("./export-import-QT7CV7ZU.js");
|
|
8558
8579
|
const payload = buildSessionExport(sessionManager, sessionId);
|
|
8559
8580
|
const filename = `${(payload.session.title ?? "session").replace(/[^a-zA-Z0-9-_]/g, "_")}.openfox-session.json`;
|
|
8560
8581
|
res.setHeader("Content-Disposition", `attachment; filename="${filename}"`);
|
|
@@ -8876,7 +8897,7 @@ All file and git operations should use this branch.
|
|
|
8876
8897
|
const backend = req.query["backend"];
|
|
8877
8898
|
if (!url) return res.status(400).json({ error: "url is required" });
|
|
8878
8899
|
try {
|
|
8879
|
-
const { fetchModelsWithContext } = await import("./provider-manager-
|
|
8900
|
+
const { fetchModelsWithContext } = await import("./provider-manager-6EACWIDV.js");
|
|
8880
8901
|
const { getModelProfile: getModelProfile2 } = await import("./profiles-EBCVFYG7.js");
|
|
8881
8902
|
const { getCatalogEntry } = await import("./model-catalog-Y5MA5OZP.js");
|
|
8882
8903
|
const models = await fetchModelsWithContext(
|
|
@@ -8950,7 +8971,7 @@ All file and git operations should use this branch.
|
|
|
8950
8971
|
}
|
|
8951
8972
|
const { getModelProfile: getModelProfile2 } = await import("./profiles-EBCVFYG7.js");
|
|
8952
8973
|
const { getBackendCapabilities } = await import("./backend-2VSDPCWS.js");
|
|
8953
|
-
const { buildNonStreamingCreateParams } = await import("./client-pure-
|
|
8974
|
+
const { buildNonStreamingCreateParams } = await import("./client-pure-EM26AITO.js");
|
|
8954
8975
|
const { OpenAIHttpClient } = await import("./http-client-SZZBSL4U.js");
|
|
8955
8976
|
const { ensureVersionPrefix } = await import("./url-utils-C5BM7NF7.js");
|
|
8956
8977
|
const profile = getModelProfile2(model);
|
|
@@ -9377,7 +9398,7 @@ All file and git operations should use this branch.
|
|
|
9377
9398
|
});
|
|
9378
9399
|
async function rebuildMcpTools() {
|
|
9379
9400
|
const { createMcpTools: createMcpTools2 } = await import("./tool-adapter-ZY4FC4C4.js");
|
|
9380
|
-
const { setMcpTools: setMcpTools2 } = await import("./tools-
|
|
9401
|
+
const { setMcpTools: setMcpTools2 } = await import("./tools-SK4EU3D5.js");
|
|
9381
9402
|
const mcpTools = createMcpTools2(mcpManager);
|
|
9382
9403
|
setMcpTools2(mcpTools);
|
|
9383
9404
|
toolRegistry = createToolRegistry();
|
|
@@ -9953,7 +9974,7 @@ All file and git operations should use this branch.
|
|
|
9953
9974
|
);
|
|
9954
9975
|
const wss = wssExports.wss;
|
|
9955
9976
|
deferTasksBroadcast = (_projectId, payload) => wssExports.broadcastAll({ type: "tasks.update", payload });
|
|
9956
|
-
const { launchWorkflowRun, abortRunnerRun } = await import("./launch-
|
|
9977
|
+
const { launchWorkflowRun, abortRunnerRun } = await import("./launch-2DPUISQR.js");
|
|
9957
9978
|
deferTasksLaunchWorkflow = (sessionId, launch) => {
|
|
9958
9979
|
const effective = sessionManager.resolveEffectiveProviderModel(sessionId);
|
|
9959
9980
|
let llmClient = getLLMClient();
|
|
@@ -9998,7 +10019,7 @@ All file and git operations should use this branch.
|
|
|
9998
10019
|
const state = sessionManager.getContextState(sessionId);
|
|
9999
10020
|
wssExports.broadcastForSession(sessionId, createContextStateMessage(state));
|
|
10000
10021
|
});
|
|
10001
|
-
const { QueueProcessor } = await import("./processor-
|
|
10022
|
+
const { QueueProcessor } = await import("./processor-N3EIGT4S.js");
|
|
10002
10023
|
const queueProcessor = new QueueProcessor({
|
|
10003
10024
|
sessionManager,
|
|
10004
10025
|
providerManager,
|
|
@@ -10011,7 +10032,7 @@ All file and git operations should use this branch.
|
|
|
10011
10032
|
const { getSetting: getSetting2, SETTINGS_KEYS } = await import("./settings-FQUDSGZF.js");
|
|
10012
10033
|
if (getSetting2(SETTINGS_KEYS.AUTO_CONTINUE_ON_BOOT) === "true") {
|
|
10013
10034
|
const { getStaleRunningSessionIds } = await import("./store-OWOLXB74.js");
|
|
10014
|
-
const { runBootAutoContinuations } = await import("./auto-continue-
|
|
10035
|
+
const { runBootAutoContinuations } = await import("./auto-continue-AZRNVDV5.js");
|
|
10015
10036
|
const staleIds = getStaleRunningSessionIds();
|
|
10016
10037
|
if (staleIds.length > 0) {
|
|
10017
10038
|
const continued = runBootAutoContinuations(staleIds, {
|
|
@@ -10055,8 +10076,8 @@ All file and git operations should use this branch.
|
|
|
10055
10076
|
launchWorkflow: (sessionId, launch) => deferTasksLaunchWorkflow(sessionId, launch),
|
|
10056
10077
|
stopSession: (sessionId) => {
|
|
10057
10078
|
void (async () => {
|
|
10058
|
-
const { stopSessionExecution } = await import("./chat-handler-
|
|
10059
|
-
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-
|
|
10079
|
+
const { stopSessionExecution } = await import("./chat-handler-NJGT2L65.js");
|
|
10080
|
+
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-SK4EU3D5.js");
|
|
10060
10081
|
sessionManager.clearMessageQueue(sessionId);
|
|
10061
10082
|
stopSessionExecution(sessionId, sessionManager);
|
|
10062
10083
|
abortSession(sessionId);
|
|
@@ -10183,4 +10204,4 @@ export {
|
|
|
10183
10204
|
createServerHandle,
|
|
10184
10205
|
createServer
|
|
10185
10206
|
};
|
|
10186
|
-
//# sourceMappingURL=chunk-
|
|
10207
|
+
//# sourceMappingURL=chunk-RXKZVMKL.js.map
|
|
@@ -164,7 +164,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
|
|
|
164
164
|
client = deps.getLLMClient();
|
|
165
165
|
client.setModel(providerConfig.model);
|
|
166
166
|
} else if (providerConfig) {
|
|
167
|
-
const { createLLMClient } = await import("./client-
|
|
167
|
+
const { createLLMClient } = await import("./client-WQFM3PDL.js");
|
|
168
168
|
client = createLLMClient(
|
|
169
169
|
{
|
|
170
170
|
llm: {
|
|
@@ -219,4 +219,4 @@ export {
|
|
|
219
219
|
needsNameGeneration,
|
|
220
220
|
generateSessionNameForSession
|
|
221
221
|
};
|
|
222
|
-
//# sourceMappingURL=chunk-
|
|
222
|
+
//# sourceMappingURL=chunk-XWKX5IAU.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runAgentTurn
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-N342GU3N.js";
|
|
4
4
|
import {
|
|
5
5
|
buildAgentOverrideStatsIdentity,
|
|
6
6
|
executeSubAgent,
|
|
7
7
|
getToolRegistryForAgent,
|
|
8
8
|
resolveLLMClientForAgent
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2GIY77DT.js";
|
|
10
10
|
import {
|
|
11
11
|
gitSpawnEnv
|
|
12
12
|
} from "./chunk-J7GAZGZT.js";
|
|
@@ -17,14 +17,14 @@ import {
|
|
|
17
17
|
loadProjectWorkflows,
|
|
18
18
|
loadUserWorkflows,
|
|
19
19
|
normalizeWorkflowScope
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-A6YTJZAO.js";
|
|
21
21
|
import {
|
|
22
22
|
serverT
|
|
23
23
|
} from "./chunk-X7ZAP6YW.js";
|
|
24
24
|
import {
|
|
25
25
|
TurnMetrics,
|
|
26
26
|
createMessageStartEvent
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-BAN2F7TG.js";
|
|
28
28
|
import {
|
|
29
29
|
checkAborted,
|
|
30
30
|
decodeUtf8,
|
|
@@ -1196,4 +1196,4 @@ export {
|
|
|
1196
1196
|
abortRunnerRun,
|
|
1197
1197
|
launchWorkflowRun
|
|
1198
1198
|
};
|
|
1199
|
-
//# sourceMappingURL=chunk-
|
|
1199
|
+
//# sourceMappingURL=chunk-ZWI4T4WF.js.map
|
package/dist/cli/dev.js
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createLLMClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EBMHUSMZ.js";
|
|
4
4
|
import "./chunk-TS5WKTFB.js";
|
|
5
5
|
import "./chunk-FTPQI5TA.js";
|
|
6
6
|
import "./chunk-HNCM3D7Y.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-JRWG4KWV.js";
|
|
8
8
|
import "./chunk-FSSUPWYO.js";
|
|
9
9
|
import "./chunk-XG3AUMPI.js";
|
|
10
10
|
import "./chunk-GZ4EK4LZ.js";
|
|
@@ -15,4 +15,4 @@ import "./chunk-YLJ4XMA6.js";
|
|
|
15
15
|
export {
|
|
16
16
|
createLLMClient
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=client-
|
|
18
|
+
//# sourceMappingURL=client-WQFM3PDL.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
mapFinishReason,
|
|
9
9
|
parseToolArguments,
|
|
10
10
|
resolveAttachmentsInMessages
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-JRWG4KWV.js";
|
|
12
12
|
import "./chunk-FSSUPWYO.js";
|
|
13
13
|
import "./chunk-XG3AUMPI.js";
|
|
14
14
|
import "./chunk-YLJ4XMA6.js";
|
|
@@ -23,4 +23,4 @@ export {
|
|
|
23
23
|
parseToolArguments,
|
|
24
24
|
resolveAttachmentsInMessages
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=client-pure-
|
|
26
|
+
//# sourceMappingURL=client-pure-EM26AITO.js.map
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
COMPACTION_MAX_RATIO,
|
|
4
4
|
appendCompactionPrompt,
|
|
5
5
|
shouldCompact
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-E4RD42PU.js";
|
|
7
|
+
import "./chunk-BAN2F7TG.js";
|
|
8
8
|
import "./chunk-ZONLEX2F.js";
|
|
9
9
|
import "./chunk-5JGRKNMS.js";
|
|
10
10
|
import "./chunk-NZBO3A3W.js";
|
|
@@ -18,7 +18,7 @@ import "./chunk-J2GP3J3X.js";
|
|
|
18
18
|
import "./chunk-JYYBSODN.js";
|
|
19
19
|
import "./chunk-TS5WKTFB.js";
|
|
20
20
|
import "./chunk-FTPQI5TA.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-JRWG4KWV.js";
|
|
22
22
|
import "./chunk-FSSUPWYO.js";
|
|
23
23
|
import "./chunk-XG3AUMPI.js";
|
|
24
24
|
import "./chunk-X6SWZEK7.js";
|
|
@@ -32,4 +32,4 @@ export {
|
|
|
32
32
|
appendCompactionPrompt,
|
|
33
33
|
shouldCompact
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=compactor-
|
|
35
|
+
//# sourceMappingURL=compactor-JDR6AGEW.js.map
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
injectContextDriftRemindersForSessions,
|
|
17
17
|
renderSystemPromptDiff,
|
|
18
18
|
renderToolChangeReminder
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-MA4NG3F7.js";
|
|
20
20
|
import "./chunk-DJH6LMBT.js";
|
|
21
21
|
import "./chunk-ZONLEX2F.js";
|
|
22
22
|
import "./chunk-5JGRKNMS.js";
|
|
@@ -52,4 +52,4 @@ export {
|
|
|
52
52
|
renderSystemPromptDiff,
|
|
53
53
|
renderToolChangeReminder
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=dynamic-context-
|
|
55
|
+
//# sourceMappingURL=dynamic-context-SS3AVCVM.js.map
|
|
@@ -11,7 +11,7 @@ import "./chunk-OSXPQSLW.js";
|
|
|
11
11
|
import "./chunk-LCLH6ZUL.js";
|
|
12
12
|
import {
|
|
13
13
|
VERSION
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2IK5KDVV.js";
|
|
15
15
|
import {
|
|
16
16
|
getProject
|
|
17
17
|
} from "./chunk-JYYBSODN.js";
|
|
@@ -136,4 +136,4 @@ export {
|
|
|
136
136
|
buildSessionExport,
|
|
137
137
|
parseSessionExport
|
|
138
138
|
};
|
|
139
|
-
//# sourceMappingURL=export-import-
|
|
139
|
+
//# sourceMappingURL=export-import-QT7CV7ZU.js.map
|