openfox 2.0.73 → 2.0.75
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/dist/{chat-handler-LK5RUAGO.js → chat-handler-QLMBYRDY.js} +15 -14
- package/dist/{chunk-YD6NDTKF.js → chunk-5GOOSZX7.js} +1 -1
- package/dist/chunk-6COWK53A.js +7 -0
- package/dist/{chunk-GMF36EZ3.js → chunk-6ZMGWDOD.js} +87 -506
- package/dist/{chunk-2DCJERYX.js → chunk-CJ2AJ7HU.js} +3 -3
- package/dist/{chunk-O2BE7KVQ.js → chunk-J3VQBVGO.js} +8 -6
- package/dist/chunk-KEVRZWL3.js +495 -0
- package/dist/{chunk-TK4BZIXA.js → chunk-LKUAKQZY.js} +42 -20
- package/dist/{chunk-PYB2UEC3.js → chunk-LTFB2WWE.js} +4 -4
- package/dist/{chunk-CHPRGEY5.js → chunk-LUG5QTFC.js} +2 -2
- package/dist/{chunk-X2Y3AJPP.js → chunk-MF3UW36X.js} +10 -2
- package/dist/{chunk-EYXDM2FY.js → chunk-MIJX54CG.js} +395 -116
- package/dist/{chunk-NOU2QIL5.js → chunk-O3NUNU4H.js} +5 -2
- package/dist/{chunk-KKRLQH6F.js → chunk-PJQW6TYI.js} +17 -7
- package/dist/{chunk-6XKM25OT.js → chunk-YFFP4DR4.js} +4 -4
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{compactor-4UKYWC5F.js → compactor-AERNYEMP.js} +4 -4
- package/dist/{events-AEQ6GQXI.js → events-X353XCPN.js} +3 -3
- package/dist/install-CPOPMCSE.js +120 -0
- package/dist/{manager-24C2AXVF.js → manager-5GILDCVD.js} +3 -3
- package/dist/{orchestrator-RTZVMWQV.js → orchestrator-BIFTALBG.js} +13 -12
- package/dist/package.json +1 -1
- package/dist/path-security-3FAIPJSV.js +50 -0
- package/dist/{processor-3O26I7DO.js → processor-MQ47QSDR.js} +15 -14
- package/dist/{protocol-4QFU7WAI.js → protocol-EWEVW65B.js} +3 -3
- package/dist/{protocol-DGQWVFcP.d.ts → protocol-Sr6Jr4ZS.d.ts} +5 -2
- package/dist/{serve-I6K7A7RL.js → serve-UD27KOL2.js} +18 -17
- package/dist/server/index.d.ts +5 -1
- package/dist/server/index.js +16 -15
- package/dist/{server-G2J4RAXL.js → server-TJ3PP5EW.js} +15 -14
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/{tools-X52DFUS6.js → tools-RZ464GUJ.js} +17 -15
- package/dist/{update-RJB4GPHE.js → update-MWIZH4P2.js} +12 -3
- package/dist/web/assets/{index-CmechlaK.css → index-BNVBxKnB.css} +1 -1
- package/dist/web/assets/{index-C7SW16F7.js → index-Bn4hwZeP.js} +74 -74
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/dist/{workspace-ET3FHZYN.js → workspace-6QTTUMMW.js} +4 -2
- package/package.json +1 -1
- package/dist/chunk-NE7OWIIO.js +0 -7
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
computeSessionHash,
|
|
4
4
|
runAgentTurn,
|
|
5
5
|
runChatTurn
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-J3VQBVGO.js";
|
|
7
7
|
import {
|
|
8
8
|
deleteItemFromDir,
|
|
9
9
|
devServerManager,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
jsonSerializer,
|
|
14
14
|
loadAllAgentsDefault,
|
|
15
15
|
saveItemToDir
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-6ZMGWDOD.js";
|
|
17
17
|
import {
|
|
18
18
|
gitSpawnEnv
|
|
19
19
|
} from "./chunk-WGMJCFCE.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
} from "./chunk-EU3WWTFH.js";
|
|
24
24
|
import {
|
|
25
25
|
appendCompactionPrompt
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-LUG5QTFC.js";
|
|
27
27
|
import {
|
|
28
28
|
TurnMetrics,
|
|
29
29
|
createMessageStartEvent
|
|
@@ -32,7 +32,10 @@ import {
|
|
|
32
32
|
checkAborted,
|
|
33
33
|
onProcessEvent,
|
|
34
34
|
spawnShellProcess
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-LTFB2WWE.js";
|
|
36
|
+
import {
|
|
37
|
+
getPlatformShell
|
|
38
|
+
} from "./chunk-S7O77CVO.js";
|
|
36
39
|
import {
|
|
37
40
|
killProcessTree,
|
|
38
41
|
terminateProcessTree
|
|
@@ -41,7 +44,7 @@ import {
|
|
|
41
44
|
getCurrentContextWindowId,
|
|
42
45
|
getEventStore,
|
|
43
46
|
getRuntimeConfig
|
|
44
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-YFFP4DR4.js";
|
|
45
48
|
import {
|
|
46
49
|
buildMessagesFromStoredEvents,
|
|
47
50
|
foldPendingConfirmations
|
|
@@ -60,10 +63,7 @@ import {
|
|
|
60
63
|
parseClientMessage,
|
|
61
64
|
serializeServerMessage,
|
|
62
65
|
storedEventToServerMessage
|
|
63
|
-
} from "./chunk-
|
|
64
|
-
import {
|
|
65
|
-
getPlatformShell
|
|
66
|
-
} from "./chunk-S7O77CVO.js";
|
|
66
|
+
} from "./chunk-O3NUNU4H.js";
|
|
67
67
|
import {
|
|
68
68
|
logger
|
|
69
69
|
} from "./chunk-K44MW7JJ.js";
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
} from "./chunk-VUQCQXXJ.js";
|
|
73
73
|
import {
|
|
74
74
|
createServerMessage
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-5GOOSZX7.js";
|
|
76
76
|
import {
|
|
77
77
|
getGlobalConfigDir
|
|
78
78
|
} from "./chunk-CQGTEGKL.js";
|
|
@@ -1485,13 +1485,6 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
1485
1485
|
const isSubscribedToSession = (client, sessionId) => {
|
|
1486
1486
|
return client.activeSessionId === sessionId;
|
|
1487
1487
|
};
|
|
1488
|
-
const broadcastForSession = (sessionId, msg) => {
|
|
1489
|
-
for (const [clientWs, client] of clients) {
|
|
1490
|
-
if (isSubscribedToSession(client, sessionId) && clientWs.readyState === WebSocket2.OPEN) {
|
|
1491
|
-
clientWs.send(serializeServerMessage({ ...msg, sessionId }));
|
|
1492
|
-
}
|
|
1493
|
-
}
|
|
1494
|
-
};
|
|
1495
1488
|
function enqueueSend(client, data, seq) {
|
|
1496
1489
|
if (client.sendQueue.length >= MAX_SEND_QUEUE_SIZE) {
|
|
1497
1490
|
logger.warn("WebSocket send queue full, dropping message", {
|
|
@@ -1598,6 +1591,30 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
1598
1591
|
}
|
|
1599
1592
|
}
|
|
1600
1593
|
};
|
|
1594
|
+
const broadcastForSession = (sessionId, msg) => {
|
|
1595
|
+
const session = sessionManager.getSession(sessionId);
|
|
1596
|
+
const projectId = session?.projectId;
|
|
1597
|
+
for (const [clientWs, client] of clients) {
|
|
1598
|
+
if (clientWs.readyState !== WebSocket2.OPEN) continue;
|
|
1599
|
+
if (!isSubscribedToSession(client, sessionId)) continue;
|
|
1600
|
+
const seq = client.lastSentSeq + 1;
|
|
1601
|
+
enqueueSend(client, serializeServerMessage({ ...msg, sessionId }), seq);
|
|
1602
|
+
}
|
|
1603
|
+
if (msg.type === "chat.path_confirmation" && projectId) {
|
|
1604
|
+
for (const [clientWs, client] of clients) {
|
|
1605
|
+
if (clientWs.readyState !== WebSocket2.OPEN) continue;
|
|
1606
|
+
if (isSubscribedToSession(client, sessionId)) continue;
|
|
1607
|
+
const clientProjectId = client.activeSessionId ? sessionManager.getSession(client.activeSessionId)?.projectId : void 0;
|
|
1608
|
+
if (clientProjectId !== projectId) continue;
|
|
1609
|
+
const seq = client.lastSentSeq + 1;
|
|
1610
|
+
enqueueSend(
|
|
1611
|
+
client,
|
|
1612
|
+
serializeServerMessage({ type: "session.confirmation_pending", sessionId, payload: msg.payload }),
|
|
1613
|
+
seq
|
|
1614
|
+
);
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
};
|
|
1601
1618
|
devServerManager.onOutput((workdir, chunk) => {
|
|
1602
1619
|
broadcastAll(
|
|
1603
1620
|
createServerMessage("devServer.output", {
|
|
@@ -1631,7 +1648,12 @@ function createWebSocketServer(httpServer, _config, getLLMClient, getActiveProvi
|
|
|
1631
1648
|
workspaceChanged = true;
|
|
1632
1649
|
const prevWorkdir = client.activeWorkdir;
|
|
1633
1650
|
client.activeWorkdir = effectiveWorkdir;
|
|
1634
|
-
if (prevWorkdir)
|
|
1651
|
+
if (prevWorkdir) {
|
|
1652
|
+
const hasOtherClients = [...clients.values()].some((c) => c !== client && c.activeWorkdir === prevWorkdir);
|
|
1653
|
+
if (!hasOtherClients) {
|
|
1654
|
+
moduleStopGitPolling(prevWorkdir);
|
|
1655
|
+
}
|
|
1656
|
+
}
|
|
1635
1657
|
}
|
|
1636
1658
|
}
|
|
1637
1659
|
if (effectiveWorkdir) moduleStartGitPolling(effectiveWorkdir);
|
|
@@ -2085,7 +2107,7 @@ ${content}` : workflowInfo;
|
|
|
2085
2107
|
}
|
|
2086
2108
|
} : {},
|
|
2087
2109
|
signal: controller.signal,
|
|
2088
|
-
onMessage: (msg) =>
|
|
2110
|
+
onMessage: (msg) => _broadcastForSession(sessionId, msg)
|
|
2089
2111
|
// For path confirmation dialogs
|
|
2090
2112
|
}).catch((error) => {
|
|
2091
2113
|
if (error instanceof Error && error.message === "Aborted") {
|
|
@@ -2172,4 +2194,4 @@ export {
|
|
|
2172
2194
|
signalMcpReady,
|
|
2173
2195
|
createWebSocketServer
|
|
2174
2196
|
};
|
|
2175
|
-
//# sourceMappingURL=chunk-
|
|
2197
|
+
//# sourceMappingURL=chunk-LKUAKQZY.js.map
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getPlatformShell
|
|
3
|
+
} from "./chunk-S7O77CVO.js";
|
|
1
4
|
import {
|
|
2
5
|
appendLog,
|
|
3
6
|
createProcess,
|
|
@@ -9,9 +12,6 @@ import {
|
|
|
9
12
|
startProcess,
|
|
10
13
|
updateStatus
|
|
11
14
|
} from "./chunk-I72ACQ6R.js";
|
|
12
|
-
import {
|
|
13
|
-
getPlatformShell
|
|
14
|
-
} from "./chunk-S7O77CVO.js";
|
|
15
15
|
|
|
16
16
|
// src/server/utils/shell.ts
|
|
17
17
|
import { spawn } from "child_process";
|
|
@@ -153,4 +153,4 @@ export {
|
|
|
153
153
|
getSessionProcesses2 as getSessionProcesses,
|
|
154
154
|
getProcessLogs
|
|
155
155
|
};
|
|
156
|
-
//# sourceMappingURL=chunk-
|
|
156
|
+
//# sourceMappingURL=chunk-LTFB2WWE.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-XWBNYU2L.js";
|
|
5
5
|
import {
|
|
6
6
|
getCurrentWindowMessageOptions
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YFFP4DR4.js";
|
|
8
8
|
|
|
9
9
|
// src/server/context/compactor.ts
|
|
10
10
|
function appendCompactionPrompt(sessionId, append) {
|
|
@@ -31,4 +31,4 @@ export {
|
|
|
31
31
|
shouldCompact,
|
|
32
32
|
getCompactionTarget
|
|
33
33
|
};
|
|
34
|
-
//# sourceMappingURL=chunk-
|
|
34
|
+
//# sourceMappingURL=chunk-LUG5QTFC.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
// src/server/git/workspace.ts
|
|
9
9
|
import { spawn, execSync } from "child_process";
|
|
10
10
|
import { mkdir as mkdir2 } from "fs/promises";
|
|
11
|
-
import { resolve as resolve2, join as join2 } from "path";
|
|
11
|
+
import { resolve as resolve2, join as join2, isAbsolute } from "path";
|
|
12
12
|
import { homedir, platform } from "os";
|
|
13
13
|
|
|
14
14
|
// src/server/git/workspace-config.ts
|
|
@@ -106,6 +106,13 @@ async function getCommitsBehind(cwd, branch) {
|
|
|
106
106
|
function validateRef(cwd, name) {
|
|
107
107
|
return runGit(cwd, ["check-ref-format", `refs/heads/${name}`]);
|
|
108
108
|
}
|
|
109
|
+
function validateWorkspaceName(name) {
|
|
110
|
+
if (!name || typeof name !== "string") throw new Error("Workspace name is required");
|
|
111
|
+
if (name.includes("/") || name.includes("\\")) throw new Error("Workspace name cannot contain path separators");
|
|
112
|
+
if (name === "." || name === "..") throw new Error('Workspace name cannot be "." or ".."');
|
|
113
|
+
if (isAbsolute(name)) throw new Error("Workspace name cannot be an absolute path");
|
|
114
|
+
if (name.length > 255) throw new Error("Workspace name is too long");
|
|
115
|
+
}
|
|
109
116
|
function checkoutBranch(cwd, name) {
|
|
110
117
|
return runGit(cwd, ["checkout", name]);
|
|
111
118
|
}
|
|
@@ -206,6 +213,7 @@ export {
|
|
|
206
213
|
listBranches,
|
|
207
214
|
getCommitsBehind,
|
|
208
215
|
validateRef,
|
|
216
|
+
validateWorkspaceName,
|
|
209
217
|
checkoutBranch,
|
|
210
218
|
createBranch,
|
|
211
219
|
workspaceExists,
|
|
@@ -213,4 +221,4 @@ export {
|
|
|
213
221
|
ensureWorkspace,
|
|
214
222
|
deleteWorkspace
|
|
215
223
|
};
|
|
216
|
-
//# sourceMappingURL=chunk-
|
|
224
|
+
//# sourceMappingURL=chunk-MF3UW36X.js.map
|