openfox 2.0.133 → 2.0.135
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 +30 -0
- package/dist/CHANGELOG.md +30 -0
- package/dist/{chat-handler-T47GATL5.js → chat-handler-WGDFMOOD.js} +23 -22
- package/dist/chunk-24YKXKCG.js +35 -0
- package/dist/chunk-2OMGR7LN.js +45 -0
- package/dist/{chunk-GFW2HWJ6.js → chunk-4R5GV7RW.js} +37 -16
- package/dist/{chunk-P5MSY7ZI.js → chunk-5H5NRWHA.js} +22 -17
- package/dist/{chunk-MQMPIXON.js → chunk-5UMXFLET.js} +3 -3
- package/dist/{chunk-5JWJEZJ3.js → chunk-5UQ4CKOA.js} +2 -2
- package/dist/{chunk-7JVBDBXE.js → chunk-7QMWYNVF.js} +2 -2
- package/dist/{chunk-P57IBMK4.js → chunk-AATMPL7S.js} +4 -4
- package/dist/{chunk-OUQZZEIQ.js → chunk-BIZFY3QP.js} +487 -210
- package/dist/{chunk-LQKXJPKP.js → chunk-CTWZPN7G.js} +5 -1
- package/dist/{chunk-BKMWZTNO.js → chunk-DWA4IE65.js} +14 -2
- package/dist/{chunk-HXHPKGJE.js → chunk-ESZQTFQP.js} +614 -157
- package/dist/{chunk-KWAHD2JA.js → chunk-F2MOHHXB.js} +15 -2
- package/dist/{chunk-A7CB4USC.js → chunk-GP3CLMPQ.js} +132 -45
- package/dist/{chunk-HCYSGLY2.js → chunk-HF3NDXB4.js} +1 -1
- package/dist/{chunk-Y6ZGHOKM.js → chunk-I5ODJKYM.js} +4 -4
- package/dist/{chunk-OMMPTN6X.js → chunk-IAT2LBIX.js} +69 -27
- package/dist/{chunk-6EZDW4JS.js → chunk-J3NMNYGM.js} +2 -2
- package/dist/{chunk-M5T4RDPJ.js → chunk-MEEUXRFL.js} +2 -2
- package/dist/{chunk-RRUSYVQD.js → chunk-NFEZATSN.js} +8 -8
- package/dist/{chunk-MGEYAYGU.js → chunk-O3RCSKUH.js} +2 -2
- package/dist/{chunk-ELYHHEYL.js → chunk-ORCQ3EXQ.js} +2 -2
- package/dist/{chunk-FEIRWXLX.js → chunk-OZWHRBDY.js} +64 -17
- package/dist/{chunk-FGNJMKDV.js → chunk-QZOV4OVN.js} +29 -5
- package/dist/{chunk-TACWRDDC.js → chunk-S67WIWUG.js} +2 -2
- package/dist/{chunk-ZL4IAFF3.js → chunk-UKIUQAQZ.js} +3 -3
- package/dist/{chunk-VXG3AFFY.js → chunk-VHLD6PCZ.js} +8 -8
- package/dist/chunk-WY3PWHWY.js +7 -0
- package/dist/{chunk-CLDCHOEA.js → chunk-ZMK4VX7V.js} +2 -2
- package/dist/cli/dev.js +4 -1
- package/dist/cli/index.js +4 -1
- package/dist/{client-2K6PPPJJ.js → client-VVYOWXRR.js} +4 -4
- package/dist/{compactor-OEJAA2YP.js → compactor-454UEIEX.js} +9 -9
- package/dist/{dynamic-context-NJZKAZE3.js → dynamic-context-LKC6JYLQ.js} +10 -10
- package/dist/{events-ZJPRGVL2.js → events-335XAKFK.js} +6 -6
- package/dist/export-import-3WMRLO4A.js +137 -0
- package/dist/{folding-QRZOHY2I.js → folding-H7JTX6KI.js} +4 -4
- package/dist/{http-client-P4XTKAZA.js → http-client-A445WYZU.js} +3 -3
- package/dist/{install-VA2F6X6Z.js → install-AVTFA344.js} +64 -15
- package/dist/{launch-UKXVO37B.js → launch-GJ7EHQRI.js} +23 -22
- package/dist/{manager-TMBFBCQL.js → manager-ZACEUL5P.js} +4 -4
- package/dist/{mcp-YU7AM3UV.js → mcp-SQ4DOGPT.js} +22 -9
- package/dist/{orchestrator-GX22Y5EM.js → orchestrator-JGJWTRO5.js} +22 -21
- package/dist/package.json +3 -1
- package/dist/{path-security-CBACXAMS.js → path-security-4LROI7F4.js} +10 -10
- package/dist/{platform-5LQXOZO3.js → platform-XPMZKAUB.js} +3 -3
- package/dist/{processor-V35OLKRV.js → processor-MSQP63ML.js} +22 -21
- package/dist/{project-creator-6AGQTNXB.js → project-creator-T3A4H3YV.js} +42 -29
- package/dist/{protocol-BMUoqwYH.d.ts → protocol-Nr_H1_oC.d.ts} +3 -1
- package/dist/{protocol-Y7MRKRUO.js → protocol-XO4ZROAU.js} +3 -3
- package/dist/provider/index.d.ts +4 -4
- package/dist/provider-JWUNG2TD.js +507 -0
- package/dist/{provider-manager-BO5ZBG3T.js → provider-manager-2KKZ37XJ.js} +5 -5
- package/dist/pwa-V5PFB4OQ.js +502 -0
- package/dist/{registry-CMSSZHDC.js → registry-BEIR7Y5G.js} +3 -3
- package/dist/{serve-XRVT3D7Z.js → serve-CW5C3CBZ.js} +47 -36
- package/dist/server/index.d.ts +18 -3
- package/dist/server/index.js +27 -26
- package/dist/{server-GXMZMPXI.js → server-ZHEB7XS2.js} +26 -25
- package/dist/{service-WKABQHKL.js → service-M77VWL2M.js} +97 -32
- package/dist/{service-O3LCO3TQ.js → service-XIUNS5XV.js} +7 -6
- package/dist/{session-overrides-OECQYRDK.js → session-overrides-LYW5PJ3R.js} +5 -5
- package/dist/{sessions-NMPX5ICI.js → sessions-AOK3AGHY.js} +6 -4
- package/dist/{settings-MDCRNQBY.js → settings-ZJPM6PQV.js} +2 -2
- package/dist/shared/index.d.ts +31 -4
- package/dist/shared/index.js +16 -2
- package/dist/{tasks-WOC3QUFA.js → tasks-3JJWJJ3X.js} +34 -18
- package/dist/{tools-CW6POKUL.js → tools-E63MOJBO.js} +20 -19
- package/dist/{types-CoY8Ka1C.d.ts → types-BlQjLBui.d.ts} +1 -1
- package/dist/{types-BIkpxjaj.d.ts → types-G10ho8PT.d.ts} +1 -1
- package/dist/update-XVXNSSDK.js +76 -0
- package/dist/web/assets/{index-Y300llHY.css → index-Bg_Z8i3F.css} +1 -1
- package/dist/web/assets/index-wTFCxQAw.js +313 -0
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/package.json +3 -1
- package/dist/chunk-JKGHTBEV.js +0 -7
- package/dist/provider-NWRGNGS3.js +0 -403
- package/dist/pwa-2GRFSXD7.js +0 -363
- package/dist/update-VC3Y3EOP.js +0 -49
- package/dist/web/assets/index-ATAQvBwl.js +0 -312
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveDefaultAgentId
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ORCQ3EXQ.js";
|
|
4
4
|
import {
|
|
5
5
|
getDatabase
|
|
6
6
|
} from "./chunk-JU757HVI.js";
|
|
@@ -240,6 +240,18 @@ function updateSessionMessageCount(id, delta) {
|
|
|
240
240
|
} catch {
|
|
241
241
|
}
|
|
242
242
|
}
|
|
243
|
+
function setSessionMessageCount(id, count) {
|
|
244
|
+
try {
|
|
245
|
+
const db = getDatabase();
|
|
246
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
247
|
+
db.prepare(
|
|
248
|
+
`
|
|
249
|
+
UPDATE sessions SET message_count = ?, updated_at = ? WHERE id = ?
|
|
250
|
+
`
|
|
251
|
+
).run(count, now, id);
|
|
252
|
+
} catch {
|
|
253
|
+
}
|
|
254
|
+
}
|
|
243
255
|
function getSessionMessageCount(id) {
|
|
244
256
|
try {
|
|
245
257
|
const db = getDatabase();
|
|
@@ -456,6 +468,7 @@ export {
|
|
|
456
468
|
updateSessionCachedPrompt,
|
|
457
469
|
getSessionCachedPrompt,
|
|
458
470
|
updateSessionMessageCount,
|
|
471
|
+
setSessionMessageCount,
|
|
459
472
|
getSessionMessageCount,
|
|
460
473
|
listSessions,
|
|
461
474
|
listSessionsByProject,
|
|
@@ -471,4 +484,4 @@ export {
|
|
|
471
484
|
getLatestWorkflowExecution,
|
|
472
485
|
clearWorkflowExecution
|
|
473
486
|
};
|
|
474
|
-
//# sourceMappingURL=chunk-
|
|
487
|
+
//# sourceMappingURL=chunk-F2MOHHXB.js.map
|
|
@@ -2,29 +2,32 @@ import {
|
|
|
2
2
|
generateSessionNameForSession,
|
|
3
3
|
getSessionMessageCount,
|
|
4
4
|
needsNameGeneration
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-NFEZATSN.js";
|
|
6
6
|
import {
|
|
7
7
|
launchWorkflowRun
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5H5NRWHA.js";
|
|
9
9
|
import {
|
|
10
10
|
runChatTurn
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4R5GV7RW.js";
|
|
12
12
|
import {
|
|
13
13
|
devServerManager
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ESZQTFQP.js";
|
|
15
15
|
import {
|
|
16
16
|
gitSpawnEnv
|
|
17
17
|
} from "./chunk-J7GAZGZT.js";
|
|
18
|
+
import {
|
|
19
|
+
serverT
|
|
20
|
+
} from "./chunk-OZWHRBDY.js";
|
|
18
21
|
import {
|
|
19
22
|
appendCompactionPrompt
|
|
20
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-UKIUQAQZ.js";
|
|
21
24
|
import {
|
|
22
25
|
hasRecentLLMFailure,
|
|
23
26
|
interruptLLMRetryWait
|
|
24
27
|
} from "./chunk-7ET46SNE.js";
|
|
25
28
|
import {
|
|
26
29
|
onProcessEvent
|
|
27
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-5UMXFLET.js";
|
|
28
31
|
import {
|
|
29
32
|
killProcessTree
|
|
30
33
|
} from "./chunk-I72ACQ6R.js";
|
|
@@ -32,7 +35,7 @@ import {
|
|
|
32
35
|
applyDynamicContext,
|
|
33
36
|
computeSessionHash,
|
|
34
37
|
computeUnifiedDiff
|
|
35
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-VHLD6PCZ.js";
|
|
36
39
|
import {
|
|
37
40
|
getPendingQuestionsForSession,
|
|
38
41
|
provideAnswer
|
|
@@ -40,14 +43,14 @@ import {
|
|
|
40
43
|
import {
|
|
41
44
|
combineEventsWithSnapshot,
|
|
42
45
|
getEventStore
|
|
43
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-QZOV4OVN.js";
|
|
44
47
|
import {
|
|
45
48
|
buildMessagesFromStoredEvents,
|
|
46
49
|
foldPendingConfirmations
|
|
47
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-MEEUXRFL.js";
|
|
48
51
|
import {
|
|
49
52
|
getRuntimeConfig
|
|
50
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-ORCQ3EXQ.js";
|
|
51
54
|
import {
|
|
52
55
|
createChatErrorMessage,
|
|
53
56
|
createChatMessageMessage,
|
|
@@ -62,19 +65,19 @@ import {
|
|
|
62
65
|
parseClientMessage,
|
|
63
66
|
serializeServerMessage,
|
|
64
67
|
storedEventToServerMessage
|
|
65
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-AATMPL7S.js";
|
|
66
69
|
import {
|
|
67
70
|
getPlatformShell
|
|
68
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-O3RCSKUH.js";
|
|
69
72
|
import {
|
|
70
73
|
getMaxVisibleItems
|
|
71
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-CTWZPN7G.js";
|
|
72
75
|
import {
|
|
73
76
|
logger
|
|
74
77
|
} from "./chunk-K44MW7JJ.js";
|
|
75
78
|
import {
|
|
76
79
|
createServerMessage
|
|
77
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-HF3NDXB4.js";
|
|
78
81
|
|
|
79
82
|
// src/server/ws/server.ts
|
|
80
83
|
import { WebSocketServer, WebSocket as WebSocket2 } from "ws";
|
|
@@ -472,6 +475,14 @@ async function isValidToken(token) {
|
|
|
472
475
|
}
|
|
473
476
|
|
|
474
477
|
// src/server/ws/server.ts
|
|
478
|
+
var MSG_INVALID_MESSAGE_FORMAT = { en: "Invalid message format", fr: "Format de message invalide" };
|
|
479
|
+
var MSG_NO_ACTIVE_SESSION = { en: "No active session", fr: "Aucune session active" };
|
|
480
|
+
var MSG_SESSION_NOT_FOUND = { en: "Session not found", fr: "Session introuvable" };
|
|
481
|
+
var MSG_SESSION_IS_RUNNING = {
|
|
482
|
+
en: "Session is already running",
|
|
483
|
+
fr: "La session est d\xE9j\xE0 en cours d\u2019ex\xE9cution"
|
|
484
|
+
};
|
|
485
|
+
var MSG_UNKNOWN_ERROR = { en: "Unknown error", fr: "Erreur inconnue" };
|
|
475
486
|
var resolveMcpReady = null;
|
|
476
487
|
var mcpReadyPromise = new Promise((resolve) => {
|
|
477
488
|
resolveMcpReady = resolve;
|
|
@@ -1023,7 +1034,7 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
1023
1034
|
const seq = client2.lastSentSeq + 1;
|
|
1024
1035
|
enqueueSend(
|
|
1025
1036
|
client2,
|
|
1026
|
-
serializeServerMessage(createErrorMessage("INVALID_MESSAGE",
|
|
1037
|
+
serializeServerMessage(createErrorMessage("INVALID_MESSAGE", serverT(MSG_INVALID_MESSAGE_FORMAT))),
|
|
1027
1038
|
seq
|
|
1028
1039
|
);
|
|
1029
1040
|
return;
|
|
@@ -1059,7 +1070,11 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
1059
1070
|
enqueueSend(
|
|
1060
1071
|
client2,
|
|
1061
1072
|
serializeServerMessage(
|
|
1062
|
-
createErrorMessage(
|
|
1073
|
+
createErrorMessage(
|
|
1074
|
+
"INTERNAL_ERROR",
|
|
1075
|
+
error instanceof Error ? error.message : serverT(MSG_UNKNOWN_ERROR),
|
|
1076
|
+
message.id
|
|
1077
|
+
)
|
|
1063
1078
|
),
|
|
1064
1079
|
seq
|
|
1065
1080
|
);
|
|
@@ -1150,12 +1165,18 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1150
1165
|
// =========================================================================
|
|
1151
1166
|
case "session.load": {
|
|
1152
1167
|
if (!isSessionLoadPayload(message.payload)) {
|
|
1153
|
-
send(
|
|
1168
|
+
send(
|
|
1169
|
+
createErrorMessage(
|
|
1170
|
+
"INVALID_PAYLOAD",
|
|
1171
|
+
serverT({ en: "Invalid session.load payload", fr: "Payload de session.load invalide" }),
|
|
1172
|
+
message.id
|
|
1173
|
+
)
|
|
1174
|
+
);
|
|
1154
1175
|
return;
|
|
1155
1176
|
}
|
|
1156
1177
|
const session = sessionManager.getSession(message.payload.sessionId);
|
|
1157
1178
|
if (!session) {
|
|
1158
|
-
send(createErrorMessage("NOT_FOUND",
|
|
1179
|
+
send(createErrorMessage("NOT_FOUND", serverT(MSG_SESSION_NOT_FOUND), message.id));
|
|
1159
1180
|
return;
|
|
1160
1181
|
}
|
|
1161
1182
|
client.activeSessionId = session.id;
|
|
@@ -1208,12 +1229,21 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1208
1229
|
const payload = message.payload;
|
|
1209
1230
|
const sessionId = payload?.sessionId ?? client.activeSessionId;
|
|
1210
1231
|
if (!sessionId) {
|
|
1211
|
-
send(createErrorMessage("NO_SESSION",
|
|
1232
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1212
1233
|
return;
|
|
1213
1234
|
}
|
|
1214
1235
|
const session = sessionManager.requireSession(sessionId);
|
|
1215
1236
|
if (session.isRunning) {
|
|
1216
|
-
send(
|
|
1237
|
+
send(
|
|
1238
|
+
createErrorMessage(
|
|
1239
|
+
"SESSION_RUNNING",
|
|
1240
|
+
serverT({
|
|
1241
|
+
en: "Cannot compact while session is running",
|
|
1242
|
+
fr: "Impossible de compacter pendant que la session est en cours"
|
|
1243
|
+
}),
|
|
1244
|
+
message.id
|
|
1245
|
+
)
|
|
1246
|
+
);
|
|
1217
1247
|
return;
|
|
1218
1248
|
}
|
|
1219
1249
|
send({ type: "ack", payload: {}, id: message.id });
|
|
@@ -1240,10 +1270,11 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1240
1270
|
}).catch((error) => {
|
|
1241
1271
|
if (error instanceof Error && error.message === "Aborted") return;
|
|
1242
1272
|
logger.error("Compaction failed", { error, sessionId });
|
|
1273
|
+
const reason = error instanceof Error ? error.message : serverT(MSG_UNKNOWN_ERROR);
|
|
1243
1274
|
sendForSession(
|
|
1244
1275
|
sessionId,
|
|
1245
1276
|
createChatErrorMessage(
|
|
1246
|
-
|
|
1277
|
+
serverT({ en: "Compaction failed: {{reason}}", fr: "\xC9chec de la compaction : {{reason}}" }, { reason }),
|
|
1247
1278
|
true
|
|
1248
1279
|
)
|
|
1249
1280
|
);
|
|
@@ -1267,7 +1298,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1267
1298
|
}
|
|
1268
1299
|
case "context.checkDynamic": {
|
|
1269
1300
|
if (!client.activeSessionId) {
|
|
1270
|
-
send(createErrorMessage("NO_SESSION",
|
|
1301
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1271
1302
|
return;
|
|
1272
1303
|
}
|
|
1273
1304
|
const sessionId = client.activeSessionId;
|
|
@@ -1308,13 +1339,13 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1308
1339
|
const payload = message.payload;
|
|
1309
1340
|
const sessionId = payload?.sessionId ?? client.activeSessionId;
|
|
1310
1341
|
if (!sessionId) {
|
|
1311
|
-
send(createErrorMessage("NO_SESSION",
|
|
1342
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1312
1343
|
return;
|
|
1313
1344
|
}
|
|
1314
1345
|
const session = sessionManager.requireSession(sessionId);
|
|
1315
1346
|
try {
|
|
1316
|
-
const { buildCachedPrompt, computePreviewToolDiff } = await import("./dynamic-context-
|
|
1317
|
-
const allAgents = await import("./registry-
|
|
1347
|
+
const { buildCachedPrompt, computePreviewToolDiff } = await import("./dynamic-context-LKC6JYLQ.js");
|
|
1348
|
+
const allAgents = await import("./registry-BEIR7Y5G.js");
|
|
1318
1349
|
const agentDef = allAgents.findAgentById(session.mode, await allAgents.loadAllAgentsDefault()) ?? allAgents.findAgentById("planner", await allAgents.loadAllAgentsDefault());
|
|
1319
1350
|
const modelName = session.providerModel ?? _providerManager?.getCurrentModel();
|
|
1320
1351
|
const {
|
|
@@ -1325,7 +1356,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1325
1356
|
const oldCached = sessionManager.getCachedPrompt(sessionId);
|
|
1326
1357
|
const oldPrompt = oldCached?.systemPrompt;
|
|
1327
1358
|
const diff = oldPrompt ? computeUnifiedDiff(oldPrompt, newPrompt) : [];
|
|
1328
|
-
const { getToolRegistryForAgent } = await import("./tools-
|
|
1359
|
+
const { getToolRegistryForAgent } = await import("./tools-E63MOJBO.js");
|
|
1329
1360
|
const unfilteredTools = getToolRegistryForAgent(agentDef).definitions;
|
|
1330
1361
|
const toolDiff = computePreviewToolDiff(oldCached?.tools, unfilteredTools, newTools);
|
|
1331
1362
|
send({
|
|
@@ -1345,10 +1376,11 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1345
1376
|
error: error instanceof Error ? error.message : "Unknown error",
|
|
1346
1377
|
sessionId
|
|
1347
1378
|
});
|
|
1379
|
+
const reason = error instanceof Error ? error.message : serverT(MSG_UNKNOWN_ERROR);
|
|
1348
1380
|
send(
|
|
1349
1381
|
createErrorMessage(
|
|
1350
1382
|
"ERROR",
|
|
1351
|
-
|
|
1383
|
+
serverT({ en: "Failed to preview: {{reason}}", fr: "\xC9chec de l\u2019aper\xE7u : {{reason}}" }, { reason }),
|
|
1352
1384
|
message.id
|
|
1353
1385
|
)
|
|
1354
1386
|
);
|
|
@@ -1359,12 +1391,21 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1359
1391
|
const payload = message.payload;
|
|
1360
1392
|
const sessionId = payload?.sessionId ?? client.activeSessionId;
|
|
1361
1393
|
if (!sessionId) {
|
|
1362
|
-
send(createErrorMessage("NO_SESSION",
|
|
1394
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1363
1395
|
return;
|
|
1364
1396
|
}
|
|
1365
1397
|
const session = sessionManager.requireSession(sessionId);
|
|
1366
1398
|
if (session.isRunning) {
|
|
1367
|
-
send(
|
|
1399
|
+
send(
|
|
1400
|
+
createErrorMessage(
|
|
1401
|
+
"SESSION_RUNNING",
|
|
1402
|
+
serverT({
|
|
1403
|
+
en: "Cannot apply dynamic context while session is running",
|
|
1404
|
+
fr: "Impossible d\u2019appliquer le contexte dynamique pendant que la session est en cours"
|
|
1405
|
+
}),
|
|
1406
|
+
message.id
|
|
1407
|
+
)
|
|
1408
|
+
);
|
|
1368
1409
|
return;
|
|
1369
1410
|
}
|
|
1370
1411
|
;
|
|
@@ -1377,10 +1418,17 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1377
1418
|
send({ type: "ack", payload: {}, id: message.id });
|
|
1378
1419
|
} catch (error) {
|
|
1379
1420
|
logger.error("Failed to apply dynamic context", { error, sessionId });
|
|
1421
|
+
const reason = error instanceof Error ? error.message : serverT(MSG_UNKNOWN_ERROR);
|
|
1380
1422
|
sendForSession(
|
|
1381
1423
|
sessionId,
|
|
1382
1424
|
createChatErrorMessage(
|
|
1383
|
-
|
|
1425
|
+
serverT(
|
|
1426
|
+
{
|
|
1427
|
+
en: "Failed to apply dynamic context: {{reason}}",
|
|
1428
|
+
fr: "\xC9chec d\u2019application du contexte dynamique : {{reason}}"
|
|
1429
|
+
},
|
|
1430
|
+
{ reason }
|
|
1431
|
+
),
|
|
1384
1432
|
true
|
|
1385
1433
|
)
|
|
1386
1434
|
);
|
|
@@ -1396,7 +1444,7 @@ async function handleClientMessage(ws, client, message, _getLLMClient, _getActiv
|
|
|
1396
1444
|
const launchPayloadEarly = message.payload;
|
|
1397
1445
|
const sessionId = launchPayloadEarly?.sessionId ?? client.activeSessionId;
|
|
1398
1446
|
if (!sessionId) {
|
|
1399
|
-
send(createErrorMessage("NO_SESSION",
|
|
1447
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1400
1448
|
return;
|
|
1401
1449
|
}
|
|
1402
1450
|
const session = sessionManager.requireSession(sessionId);
|
|
@@ -1424,7 +1472,13 @@ ${content}` : workflowInfo;
|
|
|
1424
1472
|
if (!launchPayloadEarly?.resumeFrom) {
|
|
1425
1473
|
const pendingCriteria = session.criteria.filter((c) => c.status.type !== "passed");
|
|
1426
1474
|
if (!launchPayloadEarly?.workflowId && pendingCriteria.length === 0) {
|
|
1427
|
-
send(
|
|
1475
|
+
send(
|
|
1476
|
+
createErrorMessage(
|
|
1477
|
+
"NO_WORK",
|
|
1478
|
+
serverT({ en: "No pending criteria to work on", fr: "Aucun crit\xE8re en attente sur lequel travailler" }),
|
|
1479
|
+
message.id
|
|
1480
|
+
)
|
|
1481
|
+
);
|
|
1428
1482
|
return;
|
|
1429
1483
|
}
|
|
1430
1484
|
}
|
|
@@ -1511,17 +1565,29 @@ ${content}` : workflowInfo;
|
|
|
1511
1565
|
// =========================================================================
|
|
1512
1566
|
case "ask.answer": {
|
|
1513
1567
|
if (!client.activeSessionId) {
|
|
1514
|
-
send(createErrorMessage("NO_SESSION",
|
|
1568
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1515
1569
|
return;
|
|
1516
1570
|
}
|
|
1517
1571
|
if (!isAskAnswerPayload(message.payload)) {
|
|
1518
|
-
send(
|
|
1572
|
+
send(
|
|
1573
|
+
createErrorMessage(
|
|
1574
|
+
"INVALID_PAYLOAD",
|
|
1575
|
+
serverT({ en: "Invalid ask.answer payload", fr: "Payload ask.answer invalide" }),
|
|
1576
|
+
message.id
|
|
1577
|
+
)
|
|
1578
|
+
);
|
|
1519
1579
|
return;
|
|
1520
1580
|
}
|
|
1521
1581
|
const { callId, answer, skip } = message.payload;
|
|
1522
1582
|
const found = provideAnswer(callId, answer, skip);
|
|
1523
1583
|
if (!found) {
|
|
1524
|
-
send(
|
|
1584
|
+
send(
|
|
1585
|
+
createErrorMessage(
|
|
1586
|
+
"NOT_FOUND",
|
|
1587
|
+
serverT({ en: "No pending question with that ID", fr: "Aucune question en attente avec cet ID" }),
|
|
1588
|
+
message.id
|
|
1589
|
+
)
|
|
1590
|
+
);
|
|
1525
1591
|
return;
|
|
1526
1592
|
}
|
|
1527
1593
|
logger.debug("Ask user answer received", {
|
|
@@ -1539,12 +1605,12 @@ ${content}` : workflowInfo;
|
|
|
1539
1605
|
const payload = message.payload;
|
|
1540
1606
|
const exitSessionId = payload?.sessionId ?? client.activeSessionId;
|
|
1541
1607
|
if (!exitSessionId) {
|
|
1542
|
-
send(createErrorMessage("NO_SESSION",
|
|
1608
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1543
1609
|
return;
|
|
1544
1610
|
}
|
|
1545
1611
|
const exitSession = sessionManager.getSession(exitSessionId);
|
|
1546
1612
|
if (!exitSession) {
|
|
1547
|
-
send(createErrorMessage("NOT_FOUND",
|
|
1613
|
+
send(createErrorMessage("NOT_FOUND", serverT(MSG_SESSION_NOT_FOUND), message.id));
|
|
1548
1614
|
return;
|
|
1549
1615
|
}
|
|
1550
1616
|
const activeExec = sessionManager.getActiveWorkflowExecution(exitSessionId);
|
|
@@ -1577,7 +1643,7 @@ ${content}` : workflowInfo;
|
|
|
1577
1643
|
const payload = message.payload;
|
|
1578
1644
|
const retrySessionId = payload?.sessionId ?? client.activeSessionId;
|
|
1579
1645
|
if (!retrySessionId) {
|
|
1580
|
-
send(createErrorMessage("NO_SESSION",
|
|
1646
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1581
1647
|
return;
|
|
1582
1648
|
}
|
|
1583
1649
|
const interrupted = interruptLLMRetryWait(retrySessionId);
|
|
@@ -1588,25 +1654,37 @@ ${content}` : workflowInfo;
|
|
|
1588
1654
|
const payload = message.payload;
|
|
1589
1655
|
const retrySessionId = payload?.sessionId ?? client.activeSessionId;
|
|
1590
1656
|
if (!retrySessionId) {
|
|
1591
|
-
send(createErrorMessage("NO_SESSION",
|
|
1657
|
+
send(createErrorMessage("NO_SESSION", serverT(MSG_NO_ACTIVE_SESSION), message.id));
|
|
1592
1658
|
return;
|
|
1593
1659
|
}
|
|
1594
1660
|
const retrySession = sessionManager.getSession(retrySessionId);
|
|
1595
1661
|
if (!retrySession) {
|
|
1596
|
-
send(createErrorMessage("NOT_FOUND",
|
|
1662
|
+
send(createErrorMessage("NOT_FOUND", serverT(MSG_SESSION_NOT_FOUND), message.id));
|
|
1597
1663
|
return;
|
|
1598
1664
|
}
|
|
1599
1665
|
if (retrySession.isRunning) {
|
|
1600
|
-
send(createErrorMessage("SESSION_RUNNING",
|
|
1666
|
+
send(createErrorMessage("SESSION_RUNNING", serverT(MSG_SESSION_IS_RUNNING), message.id));
|
|
1601
1667
|
return;
|
|
1602
1668
|
}
|
|
1603
1669
|
if (!hasRecentLLMFailure(retrySessionId, 30 * 6e4)) {
|
|
1604
|
-
send(
|
|
1670
|
+
send(
|
|
1671
|
+
createErrorMessage(
|
|
1672
|
+
"NO_FAILED_TURN",
|
|
1673
|
+
serverT({ en: "No failed turn to retry", fr: "Aucun tour \xE9chou\xE9 \xE0 relancer" }),
|
|
1674
|
+
message.id
|
|
1675
|
+
)
|
|
1676
|
+
);
|
|
1605
1677
|
return;
|
|
1606
1678
|
}
|
|
1607
1679
|
const latestExec = sessionManager.getLatestWorkflowExecution(retrySessionId);
|
|
1608
1680
|
if (latestExec && (latestExec.status === "blocked" || latestExec.status === "running" || latestExec.status === "waiting")) {
|
|
1609
|
-
send(
|
|
1681
|
+
send(
|
|
1682
|
+
createErrorMessage(
|
|
1683
|
+
"WORKFLOW_ACTIVE",
|
|
1684
|
+
serverT({ en: "A workflow run is active", fr: "Un run de workflow est actif" }),
|
|
1685
|
+
message.id
|
|
1686
|
+
)
|
|
1687
|
+
);
|
|
1610
1688
|
return;
|
|
1611
1689
|
}
|
|
1612
1690
|
if (retrySession.phase === "blocked") {
|
|
@@ -1624,7 +1702,16 @@ ${content}` : workflowInfo;
|
|
|
1624
1702
|
break;
|
|
1625
1703
|
}
|
|
1626
1704
|
default: {
|
|
1627
|
-
send(
|
|
1705
|
+
send(
|
|
1706
|
+
createErrorMessage(
|
|
1707
|
+
"UNKNOWN_MESSAGE",
|
|
1708
|
+
serverT(
|
|
1709
|
+
{ en: "Unknown message type: {{type}}", fr: "Type de message inconnu : {{type}}" },
|
|
1710
|
+
{ type: message.type }
|
|
1711
|
+
),
|
|
1712
|
+
message.id
|
|
1713
|
+
)
|
|
1714
|
+
);
|
|
1628
1715
|
}
|
|
1629
1716
|
}
|
|
1630
1717
|
}
|
|
@@ -1642,4 +1729,4 @@ export {
|
|
|
1642
1729
|
signalMcpReady,
|
|
1643
1730
|
createWebSocketServer
|
|
1644
1731
|
};
|
|
1645
|
-
//# sourceMappingURL=chunk-
|
|
1732
|
+
//# sourceMappingURL=chunk-GP3CLMPQ.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getEventStore
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QZOV4OVN.js";
|
|
4
4
|
import {
|
|
5
5
|
createChatPathConfirmationMessage
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AATMPL7S.js";
|
|
7
7
|
import {
|
|
8
8
|
getPlatformShell
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-O3RCSKUH.js";
|
|
10
10
|
|
|
11
11
|
// src/server/tools/path-security.ts
|
|
12
12
|
import { realpath } from "fs/promises";
|
|
@@ -782,4 +782,4 @@ export {
|
|
|
782
782
|
getConfirmationSessionId,
|
|
783
783
|
getPendingConfirmationsBySession
|
|
784
784
|
};
|
|
785
|
-
//# sourceMappingURL=chunk-
|
|
785
|
+
//# sourceMappingURL=chunk-I5ODJKYM.js.map
|