openfox 1.6.83 → 1.6.85
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/{auto-compaction-YKNSXB3B.js → auto-compaction-LI6J3L5Y.js} +6 -6
- package/dist/{chat-handler-XORXAICJ.js → chat-handler-2J457X35.js} +9 -9
- package/dist/{chunk-3Y3HDOT3.js → chunk-2XCN5AUU.js} +28 -27
- package/dist/{chunk-6THJULLK.js → chunk-67LWZEDE.js} +15 -5
- package/dist/{chunk-6GH2PJJC.js → chunk-7FVEX6UG.js} +2 -2
- package/dist/{chunk-AET6LELP.js → chunk-EBPKXVOF.js} +2 -2
- package/dist/{chunk-NAONQLLT.js → chunk-FBQWGH6N.js} +49 -13
- package/dist/{chunk-KIOUKC3Z.js → chunk-HEQ3V5SW.js} +5 -1
- package/dist/{chunk-ZSTL3GO6.js → chunk-MNRVSEGN.js} +3 -3
- package/dist/{chunk-OXI26S7U.js → chunk-PI7L2SEU.js} +2 -2
- package/dist/{chunk-CMQCO27Y.js → chunk-X4VMSNLI.js} +7 -2
- package/dist/cli/dev.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/{events-H563T5M5.js → events-BKR4RUU3.js} +3 -3
- package/dist/{orchestrator-4YKFENVV.js → orchestrator-Y2YGSF4I.js} +7 -7
- package/dist/package.json +1 -1
- package/dist/{processor-I2NXOFPC.js → processor-KULEUD7B.js} +5 -5
- package/dist/{project-creator-GPOIXKX4.js → project-creator-Q5P4XA6O.js} +3 -3
- package/dist/{projects-XLMSDFTQ.js → projects-3EZINCLA.js} +3 -3
- package/dist/{protocol-DEXfLRbe.d.ts → protocol-C9hfluLv.d.ts} +3 -0
- package/dist/{serve-IED7B4A5.js → serve-K5T5YSDU.js} +8 -8
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +7 -7
- package/dist/{settings-TQNQB56H.js → settings-E3KEHN2M.js} +3 -3
- package/dist/shared/index.d.ts +2 -2
- package/dist/{tools-RGERQUMC.js → tools-OPJZOAZX.js} +6 -6
- package/dist/web/assets/{index-DmpkTC-2.js → index-C0VIA4P8.js} +52 -52
- package/dist/web/assets/{index-CA0bz_5H.css → index-sEj9u40w.css} +1 -1
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
|
@@ -2,15 +2,15 @@ import {
|
|
|
2
2
|
maybeAutoCompactContext,
|
|
3
3
|
performManualContextCompaction,
|
|
4
4
|
resolveCompactionStatsIdentity
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-FBQWGH6N.js";
|
|
6
|
+
import "./chunk-PI7L2SEU.js";
|
|
7
|
+
import "./chunk-X4VMSNLI.js";
|
|
8
8
|
import "./chunk-DL6ZILAF.js";
|
|
9
9
|
import "./chunk-PBGOZMVY.js";
|
|
10
10
|
import "./chunk-VRGRAQDG.js";
|
|
11
11
|
import "./chunk-YNIAFX24.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-67LWZEDE.js";
|
|
13
|
+
import "./chunk-HEQ3V5SW.js";
|
|
14
14
|
import "./chunk-XVWVAWSG.js";
|
|
15
15
|
import "./chunk-GN7RB4Y4.js";
|
|
16
16
|
import "./chunk-BJYPTN5S.js";
|
|
@@ -24,4 +24,4 @@ export {
|
|
|
24
24
|
performManualContextCompaction,
|
|
25
25
|
resolveCompactionStatsIdentity
|
|
26
26
|
};
|
|
27
|
-
//# sourceMappingURL=auto-compaction-
|
|
27
|
+
//# sourceMappingURL=auto-compaction-LI6J3L5Y.js.map
|
|
@@ -5,21 +5,21 @@ import {
|
|
|
5
5
|
generateSessionName,
|
|
6
6
|
getSessionMessageCount,
|
|
7
7
|
needsNameGenerationCheck
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-7FVEX6UG.js";
|
|
9
9
|
import {
|
|
10
10
|
runChatTurn
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-MNRVSEGN.js";
|
|
12
|
+
import "./chunk-FBQWGH6N.js";
|
|
13
|
+
import "./chunk-PI7L2SEU.js";
|
|
14
|
+
import "./chunk-X4VMSNLI.js";
|
|
15
15
|
import "./chunk-DL6ZILAF.js";
|
|
16
16
|
import "./chunk-PBGOZMVY.js";
|
|
17
17
|
import "./chunk-VRGRAQDG.js";
|
|
18
18
|
import "./chunk-YNIAFX24.js";
|
|
19
19
|
import {
|
|
20
20
|
getEventStore
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-67LWZEDE.js";
|
|
22
|
+
import "./chunk-HEQ3V5SW.js";
|
|
23
23
|
import "./chunk-XVWVAWSG.js";
|
|
24
24
|
import {
|
|
25
25
|
createChatMessageMessage,
|
|
@@ -61,7 +61,7 @@ async function startChatSession(sessionId, content, deps, options) {
|
|
|
61
61
|
sessionManager.setRunning(sessionId, true);
|
|
62
62
|
broadcastForSession(sessionId, createSessionRunningMessage(true));
|
|
63
63
|
try {
|
|
64
|
-
const { maybeAutoCompactContext } = await import("./auto-compaction-
|
|
64
|
+
const { maybeAutoCompactContext } = await import("./auto-compaction-LI6J3L5Y.js");
|
|
65
65
|
await maybeAutoCompactContext({
|
|
66
66
|
sessionManager,
|
|
67
67
|
sessionId,
|
|
@@ -175,4 +175,4 @@ export {
|
|
|
175
175
|
startChatSession,
|
|
176
176
|
stopSessionExecution
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=chat-handler-
|
|
178
|
+
//# sourceMappingURL=chat-handler-2J457X35.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
createVerifierNudgeConfig,
|
|
3
3
|
runBuilderTurn,
|
|
4
4
|
runChatTurn
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MNRVSEGN.js";
|
|
6
6
|
import {
|
|
7
7
|
TurnMetrics,
|
|
8
8
|
agentExists,
|
|
@@ -37,10 +37,10 @@ import {
|
|
|
37
37
|
setSkillEnabled,
|
|
38
38
|
skillExists,
|
|
39
39
|
spawnShellProcess
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-FBQWGH6N.js";
|
|
41
41
|
import {
|
|
42
42
|
getProject
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-X4VMSNLI.js";
|
|
44
44
|
import {
|
|
45
45
|
getPathSeparator,
|
|
46
46
|
getPlatformShell,
|
|
@@ -87,10 +87,10 @@ import {
|
|
|
87
87
|
updateSessionProvider,
|
|
88
88
|
updateSessionRunning,
|
|
89
89
|
updateSessionSummary
|
|
90
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-67LWZEDE.js";
|
|
91
91
|
import {
|
|
92
92
|
initDatabase
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-HEQ3V5SW.js";
|
|
94
94
|
import {
|
|
95
95
|
buildMessagesFromStoredEvents,
|
|
96
96
|
foldPendingConfirmations
|
|
@@ -5261,7 +5261,7 @@ function createTerminalRoutes() {
|
|
|
5261
5261
|
}
|
|
5262
5262
|
|
|
5263
5263
|
// src/constants.ts
|
|
5264
|
-
var VERSION = "1.6.
|
|
5264
|
+
var VERSION = "1.6.85";
|
|
5265
5265
|
|
|
5266
5266
|
// src/server/index.ts
|
|
5267
5267
|
var __dirname2 = dirname5(fileURLToPath4(import.meta.url));
|
|
@@ -5380,7 +5380,7 @@ async function createServerHandle(config) {
|
|
|
5380
5380
|
res.json({ tools });
|
|
5381
5381
|
});
|
|
5382
5382
|
app.get("/api/projects", async (_req, res) => {
|
|
5383
|
-
const { listProjects } = await import("./projects-
|
|
5383
|
+
const { listProjects } = await import("./projects-3EZINCLA.js");
|
|
5384
5384
|
const projects = listProjects();
|
|
5385
5385
|
res.json({ projects });
|
|
5386
5386
|
});
|
|
@@ -5389,7 +5389,7 @@ async function createServerHandle(config) {
|
|
|
5389
5389
|
if (!name || !workdir) {
|
|
5390
5390
|
return res.status(400).json({ error: "name and workdir are required" });
|
|
5391
5391
|
}
|
|
5392
|
-
const { createDirectoryWithGit } = await import("./project-creator-
|
|
5392
|
+
const { createDirectoryWithGit } = await import("./project-creator-Q5P4XA6O.js");
|
|
5393
5393
|
try {
|
|
5394
5394
|
const project = await createDirectoryWithGit(name, workdir);
|
|
5395
5395
|
res.status(201).json({ project });
|
|
@@ -5434,7 +5434,7 @@ async function createServerHandle(config) {
|
|
|
5434
5434
|
}
|
|
5435
5435
|
});
|
|
5436
5436
|
app.get("/api/projects/:id", async (req, res) => {
|
|
5437
|
-
const { getProject: getProject2 } = await import("./projects-
|
|
5437
|
+
const { getProject: getProject2 } = await import("./projects-3EZINCLA.js");
|
|
5438
5438
|
const project = getProject2(req.params.id);
|
|
5439
5439
|
if (!project) {
|
|
5440
5440
|
return res.status(404).json({ error: "Project not found" });
|
|
@@ -5442,11 +5442,12 @@ async function createServerHandle(config) {
|
|
|
5442
5442
|
res.json({ project });
|
|
5443
5443
|
});
|
|
5444
5444
|
app.put("/api/projects/:id", async (req, res) => {
|
|
5445
|
-
const { updateProject } = await import("./projects-
|
|
5446
|
-
const { name, customInstructions } = req.body;
|
|
5445
|
+
const { updateProject } = await import("./projects-3EZINCLA.js");
|
|
5446
|
+
const { name, customInstructions, dangerLevel } = req.body;
|
|
5447
5447
|
const updates = {};
|
|
5448
5448
|
if (name !== void 0) updates.name = name;
|
|
5449
5449
|
if (customInstructions !== void 0) updates.customInstructions = customInstructions;
|
|
5450
|
+
if (dangerLevel !== void 0) updates.dangerLevel = dangerLevel;
|
|
5450
5451
|
const updated = updateProject(req.params.id, updates);
|
|
5451
5452
|
if (!updated) {
|
|
5452
5453
|
return res.status(404).json({ error: "Project not found" });
|
|
@@ -5454,7 +5455,7 @@ async function createServerHandle(config) {
|
|
|
5454
5455
|
res.json({ project: updated });
|
|
5455
5456
|
});
|
|
5456
5457
|
app.delete("/api/projects/:id", async (req, res) => {
|
|
5457
|
-
const { getProject: getProject2, deleteProject } = await import("./projects-
|
|
5458
|
+
const { getProject: getProject2, deleteProject } = await import("./projects-3EZINCLA.js");
|
|
5458
5459
|
const project = getProject2(req.params.id);
|
|
5459
5460
|
if (!project) {
|
|
5460
5461
|
return res.status(404).json({ error: "Project not found" });
|
|
@@ -5463,7 +5464,7 @@ async function createServerHandle(config) {
|
|
|
5463
5464
|
res.json({ success: true });
|
|
5464
5465
|
});
|
|
5465
5466
|
app.get("/api/sessions", async (req, res) => {
|
|
5466
|
-
const { getRecentUserPromptsForSession } = await import("./events-
|
|
5467
|
+
const { getRecentUserPromptsForSession } = await import("./events-BKR4RUU3.js");
|
|
5467
5468
|
const projectId = req.query["projectId"];
|
|
5468
5469
|
const limit = Math.min(parseInt(req.query["limit"]) || 20, 100);
|
|
5469
5470
|
const offset = parseInt(req.query["offset"]) || 0;
|
|
@@ -5496,7 +5497,7 @@ async function createServerHandle(config) {
|
|
|
5496
5497
|
res.status(201).json({ session });
|
|
5497
5498
|
});
|
|
5498
5499
|
app.get("/api/sessions/:id", async (req, res) => {
|
|
5499
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
5500
|
+
const { getEventStore: getEventStore2 } = await import("./events-BKR4RUU3.js");
|
|
5500
5501
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-4VHGQE6Y.js");
|
|
5501
5502
|
const session = sessionManager.getSession(req.params.id);
|
|
5502
5503
|
if (!session) {
|
|
@@ -5527,7 +5528,7 @@ async function createServerHandle(config) {
|
|
|
5527
5528
|
res.json({ success: true });
|
|
5528
5529
|
});
|
|
5529
5530
|
app.post("/api/sessions/:id/provider", async (req, res) => {
|
|
5530
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
5531
|
+
const { getEventStore: getEventStore2 } = await import("./events-BKR4RUU3.js");
|
|
5531
5532
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-4VHGQE6Y.js");
|
|
5532
5533
|
const sessionId = req.params.id;
|
|
5533
5534
|
const session = sessionManager.getSession(sessionId);
|
|
@@ -5565,7 +5566,7 @@ async function createServerHandle(config) {
|
|
|
5565
5566
|
res.json({ success: true });
|
|
5566
5567
|
});
|
|
5567
5568
|
app.put("/api/sessions/:id/mode", async (req, res) => {
|
|
5568
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
5569
|
+
const { getEventStore: getEventStore2 } = await import("./events-BKR4RUU3.js");
|
|
5569
5570
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2 } = await import("./folding-4VHGQE6Y.js");
|
|
5570
5571
|
const sessionId = req.params.id;
|
|
5571
5572
|
const session = sessionManager.getSession(sessionId);
|
|
@@ -5618,12 +5619,12 @@ async function createServerHandle(config) {
|
|
|
5618
5619
|
if (!callId || approved === void 0) {
|
|
5619
5620
|
return res.status(400).json({ error: "callId and approved are required" });
|
|
5620
5621
|
}
|
|
5621
|
-
const { providePathConfirmation } = await import("./tools-
|
|
5622
|
+
const { providePathConfirmation } = await import("./tools-OPJZOAZX.js");
|
|
5622
5623
|
const result = providePathConfirmation(callId, approved, alwaysAllow);
|
|
5623
5624
|
if (!result.found) {
|
|
5624
5625
|
return res.status(404).json({ error: "No pending path confirmation with that ID" });
|
|
5625
5626
|
}
|
|
5626
|
-
const { getEventStore: getEventStore2 } = await import("./events-
|
|
5627
|
+
const { getEventStore: getEventStore2 } = await import("./events-BKR4RUU3.js");
|
|
5627
5628
|
const { buildMessagesFromStoredEvents: buildMessagesFromStoredEvents2, foldPendingConfirmations: foldPendingConfirmations2 } = await import("./folding-4VHGQE6Y.js");
|
|
5628
5629
|
const { createSessionStateMessage: createSessionStateMessage2 } = await import("./protocol-NEBXAMJ3.js");
|
|
5629
5630
|
const eventStore = getEventStore2();
|
|
@@ -5642,7 +5643,7 @@ async function createServerHandle(config) {
|
|
|
5642
5643
|
if (!callId || !answer) {
|
|
5643
5644
|
return res.status(400).json({ error: "callId and answer are required" });
|
|
5644
5645
|
}
|
|
5645
|
-
const { provideAnswer: provideAnswer2 } = await import("./tools-
|
|
5646
|
+
const { provideAnswer: provideAnswer2 } = await import("./tools-OPJZOAZX.js");
|
|
5646
5647
|
const found = provideAnswer2(callId, answer);
|
|
5647
5648
|
if (!found) {
|
|
5648
5649
|
return res.status(404).json({ error: "No pending question with that ID" });
|
|
@@ -5678,14 +5679,14 @@ async function createServerHandle(config) {
|
|
|
5678
5679
|
if (!session) {
|
|
5679
5680
|
return res.status(404).json({ error: "Session not found" });
|
|
5680
5681
|
}
|
|
5681
|
-
const { stopSessionExecution } = await import("./chat-handler-
|
|
5682
|
-
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-
|
|
5682
|
+
const { stopSessionExecution } = await import("./chat-handler-2J457X35.js");
|
|
5683
|
+
const { cancelQuestionsForSession, cancelPathConfirmationsForSession } = await import("./tools-OPJZOAZX.js");
|
|
5683
5684
|
stopSessionExecution(sessionId, sessionManager);
|
|
5684
5685
|
abortSession(sessionId);
|
|
5685
5686
|
cancelQuestionsForSession(sessionId, "Session stopped by user");
|
|
5686
5687
|
cancelPathConfirmationsForSession(sessionId, "Session stopped by user");
|
|
5687
5688
|
sessionManager.clearMessageQueue(sessionId);
|
|
5688
|
-
const eventStore = (await import("./events-
|
|
5689
|
+
const eventStore = (await import("./events-BKR4RUU3.js")).getEventStore();
|
|
5689
5690
|
eventStore.append(sessionId, { type: "running.changed", data: { isRunning: false } });
|
|
5690
5691
|
res.json({ success: true });
|
|
5691
5692
|
});
|
|
@@ -5699,7 +5700,7 @@ async function createServerHandle(config) {
|
|
|
5699
5700
|
if (typeof messageIndex !== "number" || messageIndex < 0) {
|
|
5700
5701
|
return res.status(400).json({ error: "messageIndex must be a non-negative number" });
|
|
5701
5702
|
}
|
|
5702
|
-
const { truncateSessionMessages } = await import("./events-
|
|
5703
|
+
const { truncateSessionMessages } = await import("./events-BKR4RUU3.js");
|
|
5703
5704
|
truncateSessionMessages(sessionId, messageIndex);
|
|
5704
5705
|
res.json({ success: true });
|
|
5705
5706
|
});
|
|
@@ -5730,13 +5731,13 @@ async function createServerHandle(config) {
|
|
|
5730
5731
|
res.json({ accepted: true });
|
|
5731
5732
|
});
|
|
5732
5733
|
app.get("/api/settings/:key", async (req, res) => {
|
|
5733
|
-
const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-
|
|
5734
|
+
const { getSetting, SETTINGS_DEFAULTS } = await import("./settings-E3KEHN2M.js");
|
|
5734
5735
|
const key = req.params.key;
|
|
5735
5736
|
const value = getSetting(key) ?? SETTINGS_DEFAULTS[key] ?? null;
|
|
5736
5737
|
res.json({ key, value });
|
|
5737
5738
|
});
|
|
5738
5739
|
app.put("/api/settings/:key", async (req, res) => {
|
|
5739
|
-
const { setSetting } = await import("./settings-
|
|
5740
|
+
const { setSetting } = await import("./settings-E3KEHN2M.js");
|
|
5740
5741
|
const key = req.params.key;
|
|
5741
5742
|
const { value } = req.body;
|
|
5742
5743
|
if (value === void 0) {
|
|
@@ -6168,7 +6169,7 @@ async function createServerHandle(config) {
|
|
|
6168
6169
|
providerManager
|
|
6169
6170
|
);
|
|
6170
6171
|
const wss = wssExports.wss;
|
|
6171
|
-
const { QueueProcessor } = await import("./processor-
|
|
6172
|
+
const { QueueProcessor } = await import("./processor-KULEUD7B.js");
|
|
6172
6173
|
const queueProcessor = new QueueProcessor({
|
|
6173
6174
|
sessionManager,
|
|
6174
6175
|
providerManager,
|
|
@@ -6243,4 +6244,4 @@ export {
|
|
|
6243
6244
|
createServerHandle,
|
|
6244
6245
|
createServer
|
|
6245
6246
|
};
|
|
6246
|
-
//# sourceMappingURL=chunk-
|
|
6247
|
+
//# sourceMappingURL=chunk-2XCN5AUU.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDatabase
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HEQ3V5SW.js";
|
|
4
4
|
import {
|
|
5
5
|
buildContextMessagesFromEventHistory,
|
|
6
6
|
buildMessagesFromStoredEvents,
|
|
@@ -587,16 +587,26 @@ function createEvent(type, data) {
|
|
|
587
587
|
}
|
|
588
588
|
|
|
589
589
|
// src/server/db/sessions.ts
|
|
590
|
+
function getProjectDangerLevel(projectId) {
|
|
591
|
+
try {
|
|
592
|
+
const db = getDatabase();
|
|
593
|
+
const row = db.prepare("SELECT danger_level FROM projects WHERE id = ?").get(projectId);
|
|
594
|
+
return row?.danger_level ?? "normal";
|
|
595
|
+
} catch {
|
|
596
|
+
return "normal";
|
|
597
|
+
}
|
|
598
|
+
}
|
|
590
599
|
function createSession(projectId, workdir, title, providerId, providerModel) {
|
|
591
600
|
const db = getDatabase();
|
|
592
601
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
593
602
|
const id = crypto.randomUUID();
|
|
603
|
+
const dangerLevel = getProjectDangerLevel(projectId);
|
|
594
604
|
db.prepare(
|
|
595
605
|
`
|
|
596
606
|
INSERT INTO sessions (id, project_id, workdir, phase, mode, workflow_phase, is_running, created_at, updated_at, title, provider_id, provider_model, danger_level)
|
|
597
|
-
VALUES (?, ?, ?, 'idle', 'planner', 'plan', 0, ?, ?, ?, ?, ?,
|
|
607
|
+
VALUES (?, ?, ?, 'idle', 'planner', 'plan', 0, ?, ?, ?, ?, ?, ?)
|
|
598
608
|
`
|
|
599
|
-
).run(id, projectId, workdir, now, now, title ?? null, providerId ?? null, providerModel ?? null);
|
|
609
|
+
).run(id, projectId, workdir, now, now, title ?? null, providerId ?? null, providerModel ?? null, dangerLevel);
|
|
600
610
|
return {
|
|
601
611
|
id,
|
|
602
612
|
projectId,
|
|
@@ -619,7 +629,7 @@ function createSession(projectId, workdir, title, providerId, providerModel) {
|
|
|
619
629
|
totalToolCalls: 0,
|
|
620
630
|
iterationCount: 0
|
|
621
631
|
},
|
|
622
|
-
dangerLevel
|
|
632
|
+
dangerLevel
|
|
623
633
|
};
|
|
624
634
|
}
|
|
625
635
|
function getSession(id) {
|
|
@@ -1269,4 +1279,4 @@ export {
|
|
|
1269
1279
|
compactContext,
|
|
1270
1280
|
getRecentUserPromptsForSession
|
|
1271
1281
|
};
|
|
1272
|
-
//# sourceMappingURL=chunk-
|
|
1282
|
+
//# sourceMappingURL=chunk-67LWZEDE.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getEventStore,
|
|
3
3
|
updateSessionMetadata
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-67LWZEDE.js";
|
|
5
5
|
import {
|
|
6
6
|
buildMessagesFromStoredEvents,
|
|
7
7
|
foldPendingConfirmations
|
|
@@ -143,4 +143,4 @@ export {
|
|
|
143
143
|
needsNameGenerationCheck,
|
|
144
144
|
applyGeneratedSessionName
|
|
145
145
|
};
|
|
146
|
-
//# sourceMappingURL=chunk-
|
|
146
|
+
//# sourceMappingURL=chunk-7FVEX6UG.js.map
|
|
@@ -190,7 +190,7 @@ async function runCli(options) {
|
|
|
190
190
|
if (!configExists) {
|
|
191
191
|
await runNetworkSetup(mode);
|
|
192
192
|
}
|
|
193
|
-
const { runServe } = await import("./serve-
|
|
193
|
+
const { runServe } = await import("./serve-K5T5YSDU.js");
|
|
194
194
|
const serveOptions = { mode };
|
|
195
195
|
if (values.port) serveOptions.port = parseInt(values.port);
|
|
196
196
|
if (values["no-browser"] === true) serveOptions.openBrowser = false;
|
|
@@ -202,4 +202,4 @@ async function runCli(options) {
|
|
|
202
202
|
export {
|
|
203
203
|
runCli
|
|
204
204
|
};
|
|
205
|
-
//# sourceMappingURL=chunk-
|
|
205
|
+
//# sourceMappingURL=chunk-EBPKXVOF.js.map
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
deleteSetting,
|
|
4
4
|
getSetting,
|
|
5
5
|
setSetting
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PI7L2SEU.js";
|
|
7
7
|
import {
|
|
8
8
|
getProject
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-X4VMSNLI.js";
|
|
10
10
|
import {
|
|
11
11
|
startInspectProxy
|
|
12
12
|
} from "./chunk-DL6ZILAF.js";
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
import {
|
|
33
33
|
getCurrentContextWindowId,
|
|
34
34
|
getEventStore
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-67LWZEDE.js";
|
|
36
36
|
import {
|
|
37
37
|
buildContextMessagesFromEventHistory,
|
|
38
38
|
foldContextState,
|
|
@@ -539,6 +539,7 @@ function computeAggregatedStats(input) {
|
|
|
539
539
|
identity,
|
|
540
540
|
mode,
|
|
541
541
|
totalPrefillTokens,
|
|
542
|
+
totalPrefillIncrement,
|
|
542
543
|
totalGenTokens,
|
|
543
544
|
totalPrefillTime,
|
|
544
545
|
totalGenTime,
|
|
@@ -546,13 +547,15 @@ function computeAggregatedStats(input) {
|
|
|
546
547
|
totalTime,
|
|
547
548
|
llmCalls
|
|
548
549
|
} = input;
|
|
550
|
+
const prefillSource = totalPrefillIncrement ?? totalPrefillTokens;
|
|
549
551
|
return {
|
|
550
552
|
...identity,
|
|
551
553
|
mode,
|
|
552
554
|
totalTime,
|
|
553
555
|
toolTime: totalToolTime,
|
|
554
556
|
prefillTokens: totalPrefillTokens,
|
|
555
|
-
|
|
557
|
+
...totalPrefillIncrement !== void 0 && { prefTokenIncrement: totalPrefillIncrement },
|
|
558
|
+
prefillSpeed: totalPrefillTime > 0 ? roundTo1(prefillSource / totalPrefillTime) : 0,
|
|
556
559
|
generationTokens: totalGenTokens,
|
|
557
560
|
generationSpeed: totalGenTime > 0 ? roundTo1(totalGenTokens / totalGenTime) : 0,
|
|
558
561
|
...llmCalls ? { llmCalls } : {}
|
|
@@ -766,6 +769,7 @@ async function* streamLLMPure(options) {
|
|
|
766
769
|
var TurnMetrics = class {
|
|
767
770
|
startTime;
|
|
768
771
|
totalPrefillTokens = 0;
|
|
772
|
+
totalPrefillIncrement = 0;
|
|
769
773
|
totalPrefillTime = 0;
|
|
770
774
|
// seconds
|
|
771
775
|
totalGenTokens = 0;
|
|
@@ -778,8 +782,10 @@ var TurnMetrics = class {
|
|
|
778
782
|
constructor() {
|
|
779
783
|
this.startTime = performance.now();
|
|
780
784
|
}
|
|
781
|
-
/** Add metrics from an LLM call
|
|
782
|
-
|
|
785
|
+
/** Add metrics from an LLM call.
|
|
786
|
+
* @param previousContextTokens - context size BEFORE this LLM call (for computing the non-cached increment)
|
|
787
|
+
*/
|
|
788
|
+
addLLMCall(timing, promptTokens, completionTokens, previousContextTokens, modelParams) {
|
|
783
789
|
const callIndex = this.llmCalls.length + 1;
|
|
784
790
|
this.totalPrefillTokens += promptTokens;
|
|
785
791
|
this.totalPrefillTime += timing.ttft;
|
|
@@ -788,15 +794,21 @@ var TurnMetrics = class {
|
|
|
788
794
|
if (modelParams) {
|
|
789
795
|
this.modelParams = modelParams;
|
|
790
796
|
}
|
|
797
|
+
const prefTokenIncrement = previousContextTokens !== void 0 ? Math.max(0, promptTokens - previousContextTokens) : void 0;
|
|
798
|
+
if (prefTokenIncrement !== void 0) {
|
|
799
|
+
this.totalPrefillIncrement += prefTokenIncrement;
|
|
800
|
+
}
|
|
801
|
+
const prefillSource = prefTokenIncrement ?? promptTokens;
|
|
791
802
|
this.llmCalls = [
|
|
792
803
|
...this.llmCalls,
|
|
793
804
|
{
|
|
794
805
|
callIndex,
|
|
795
806
|
promptTokens,
|
|
796
807
|
completionTokens,
|
|
808
|
+
...prefTokenIncrement !== void 0 && { prefTokenIncrement },
|
|
797
809
|
ttft: timing.ttft,
|
|
798
810
|
completionTime: timing.completionTime,
|
|
799
|
-
prefillSpeed: timing.ttft > 0 ? Math.round(
|
|
811
|
+
prefillSpeed: timing.ttft > 0 ? Math.round(prefillSource / timing.ttft * 10) / 10 : 0,
|
|
800
812
|
generationSpeed: timing.completionTime > 0 ? Math.round(completionTokens / timing.completionTime * 10) / 10 : 0,
|
|
801
813
|
totalTime: Math.round((timing.ttft + timing.completionTime) * 10) / 10,
|
|
802
814
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -821,6 +833,7 @@ var TurnMetrics = class {
|
|
|
821
833
|
identity,
|
|
822
834
|
mode,
|
|
823
835
|
totalPrefillTokens: this.totalPrefillTokens,
|
|
836
|
+
...this.totalPrefillIncrement > 0 && { totalPrefillIncrement: this.totalPrefillIncrement },
|
|
824
837
|
totalGenTokens: this.totalGenTokens,
|
|
825
838
|
totalPrefillTime: this.totalPrefillTime,
|
|
826
839
|
totalGenTime: this.totalGenTime,
|
|
@@ -916,7 +929,8 @@ async function consumeStreamWithToolLoop(options) {
|
|
|
916
929
|
workdir,
|
|
917
930
|
onEvent,
|
|
918
931
|
statsIdentity,
|
|
919
|
-
dangerLevel
|
|
932
|
+
dangerLevel,
|
|
933
|
+
sessionManager
|
|
920
934
|
} = options;
|
|
921
935
|
let currentMessages = [...messages];
|
|
922
936
|
let iterations = 0;
|
|
@@ -927,6 +941,7 @@ async function consumeStreamWithToolLoop(options) {
|
|
|
927
941
|
if (++iterations > MAX_TOOL_LOOP_ITERATIONS) {
|
|
928
942
|
throw new Error("Max tool loop iterations exceeded during compaction");
|
|
929
943
|
}
|
|
944
|
+
const previousContextTokens = sessionManager?.getContextState(sessionId).currentTokens;
|
|
930
945
|
const streamGen = streamLLMPure({
|
|
931
946
|
messageId,
|
|
932
947
|
systemPrompt,
|
|
@@ -946,7 +961,13 @@ async function consumeStreamWithToolLoop(options) {
|
|
|
946
961
|
currentMessages = [...currentMessages, correctionMsg];
|
|
947
962
|
continue;
|
|
948
963
|
}
|
|
949
|
-
turnMetrics.addLLMCall(
|
|
964
|
+
turnMetrics.addLLMCall(
|
|
965
|
+
result.timing,
|
|
966
|
+
result.usage.promptTokens,
|
|
967
|
+
result.usage.completionTokens,
|
|
968
|
+
previousContextTokens,
|
|
969
|
+
result.modelParams
|
|
970
|
+
);
|
|
950
971
|
if (result.toolCalls.length > 0) {
|
|
951
972
|
const stats = turnMetrics.buildStats(statsIdentity, "compaction");
|
|
952
973
|
onEvent(
|
|
@@ -3164,6 +3185,7 @@ async function runTopLevelAgentLoop(config, turnMetrics) {
|
|
|
3164
3185
|
createChatVisionFallbackMessage({ type: "done", messageId: assistantMsgId, attachmentId, description })
|
|
3165
3186
|
);
|
|
3166
3187
|
};
|
|
3188
|
+
const previousContextTokens = sessionManager.getContextState(sessionId).currentTokens;
|
|
3167
3189
|
const modelSettings = currentMaxTokensOverride !== void 0 ? { ...sessionManager.getCurrentModelSettings(), maxTokens: currentMaxTokensOverride } : sessionManager.getCurrentModelSettings();
|
|
3168
3190
|
const streamGen = streamLLMPure({
|
|
3169
3191
|
messageId: assistantMsgId,
|
|
@@ -3205,7 +3227,13 @@ async function runTopLevelAgentLoop(config, turnMetrics) {
|
|
|
3205
3227
|
);
|
|
3206
3228
|
throw new Error("Aborted");
|
|
3207
3229
|
}
|
|
3208
|
-
turnMetrics.addLLMCall(
|
|
3230
|
+
turnMetrics.addLLMCall(
|
|
3231
|
+
result.timing,
|
|
3232
|
+
result.usage.promptTokens,
|
|
3233
|
+
result.usage.completionTokens,
|
|
3234
|
+
previousContextTokens,
|
|
3235
|
+
result.modelParams
|
|
3236
|
+
);
|
|
3209
3237
|
sessionManager.setCurrentContextSize(sessionId, result.usage.promptTokens);
|
|
3210
3238
|
if (result.finishReason === "length" && result.toolCalls.length === 0) {
|
|
3211
3239
|
if (truncationRetryCount < MAX_TRUNCATION_RETRIES) {
|
|
@@ -3545,6 +3573,7 @@ async function executeSubAgent(options) {
|
|
|
3545
3573
|
modelName: llmClient.getModel()
|
|
3546
3574
|
});
|
|
3547
3575
|
const effectiveSystemPrompt = assembledRequest.systemPrompt + RETURN_VALUE_INSTRUCTION;
|
|
3576
|
+
const previousContextTokens = sessionManager.getContextState(sessionId).currentTokens;
|
|
3548
3577
|
const streamGen = streamLLMPure({
|
|
3549
3578
|
messageId: assistantMsgId,
|
|
3550
3579
|
systemPrompt: effectiveSystemPrompt,
|
|
@@ -3571,7 +3600,13 @@ async function executeSubAgent(options) {
|
|
|
3571
3600
|
eventStore.append(sessionId, createChatDoneEvent(assistantMsgId, "stopped", stats));
|
|
3572
3601
|
throw new Error("Aborted");
|
|
3573
3602
|
}
|
|
3574
|
-
turnMetrics.addLLMCall(
|
|
3603
|
+
turnMetrics.addLLMCall(
|
|
3604
|
+
result.timing,
|
|
3605
|
+
result.usage.promptTokens,
|
|
3606
|
+
result.usage.completionTokens,
|
|
3607
|
+
previousContextTokens,
|
|
3608
|
+
result.modelParams
|
|
3609
|
+
);
|
|
3575
3610
|
finalContent = result.content;
|
|
3576
3611
|
session = sessionManager.requireSession(sessionId);
|
|
3577
3612
|
if (result.toolCalls.length === 0) {
|
|
@@ -3758,7 +3793,7 @@ var callSubAgentTool = {
|
|
|
3758
3793
|
};
|
|
3759
3794
|
}
|
|
3760
3795
|
try {
|
|
3761
|
-
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-
|
|
3796
|
+
const { getToolRegistryForAgent: getToolRegistryForAgent2 } = await import("./tools-OPJZOAZX.js");
|
|
3762
3797
|
const toolRegistry = getToolRegistryForAgent2(agentDef);
|
|
3763
3798
|
const turnMetrics = new TurnMetrics();
|
|
3764
3799
|
const result = await executeSubAgent({
|
|
@@ -4853,6 +4888,7 @@ ${COMPACTION_PROMPT}
|
|
|
4853
4888
|
workdir: session.workdir,
|
|
4854
4889
|
onEvent: (event) => eventStore.append(sessionId, event),
|
|
4855
4890
|
statsIdentity,
|
|
4891
|
+
sessionManager,
|
|
4856
4892
|
...session.dangerLevel ? { dangerLevel: session.dangerLevel } : {},
|
|
4857
4893
|
...signal ? { signal } : {}
|
|
4858
4894
|
});
|
|
@@ -4947,4 +4983,4 @@ export {
|
|
|
4947
4983
|
getToolRegistryForAgent,
|
|
4948
4984
|
createToolRegistry
|
|
4949
4985
|
};
|
|
4950
|
-
//# sourceMappingURL=chunk-
|
|
4986
|
+
//# sourceMappingURL=chunk-FBQWGH6N.js.map
|
|
@@ -106,6 +106,10 @@ function runMigrations(db2) {
|
|
|
106
106
|
logger.info("Migrating projects table: adding custom_instructions column");
|
|
107
107
|
db2.exec(`ALTER TABLE projects ADD COLUMN custom_instructions TEXT`);
|
|
108
108
|
}
|
|
109
|
+
if (!projectColumnNames.includes("danger_level")) {
|
|
110
|
+
logger.info("Migrating projects table: adding danger_level column");
|
|
111
|
+
db2.exec(`ALTER TABLE projects ADD COLUMN danger_level TEXT`);
|
|
112
|
+
}
|
|
109
113
|
db2.exec(`
|
|
110
114
|
CREATE TABLE IF NOT EXISTS events (
|
|
111
115
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
@@ -164,4 +168,4 @@ export {
|
|
|
164
168
|
initDatabase,
|
|
165
169
|
getDatabase
|
|
166
170
|
};
|
|
167
|
-
//# sourceMappingURL=chunk-
|
|
171
|
+
//# sourceMappingURL=chunk-HEQ3V5SW.js.map
|
|
@@ -13,11 +13,11 @@ import {
|
|
|
13
13
|
getToolRegistryForAgent,
|
|
14
14
|
loadAllAgentsDefault,
|
|
15
15
|
runTopLevelAgentLoop
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FBQWGH6N.js";
|
|
17
17
|
import {
|
|
18
18
|
getCurrentContextWindowId,
|
|
19
19
|
getEventStore
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-67LWZEDE.js";
|
|
21
21
|
import {
|
|
22
22
|
buildSnapshotFromSessionState
|
|
23
23
|
} from "./chunk-XVWVAWSG.js";
|
|
@@ -327,4 +327,4 @@ export {
|
|
|
327
327
|
runBuilderTurn,
|
|
328
328
|
runVerifierTurn
|
|
329
329
|
};
|
|
330
|
-
//# sourceMappingURL=chunk-
|
|
330
|
+
//# sourceMappingURL=chunk-MNRVSEGN.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDatabase
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HEQ3V5SW.js";
|
|
4
4
|
|
|
5
5
|
// src/server/db/settings.ts
|
|
6
6
|
var SETTINGS_KEYS = {
|
|
@@ -63,4 +63,4 @@ export {
|
|
|
63
63
|
deleteSetting,
|
|
64
64
|
getAllSettings
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=chunk-
|
|
66
|
+
//# sourceMappingURL=chunk-PI7L2SEU.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDatabase
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HEQ3V5SW.js";
|
|
4
4
|
|
|
5
5
|
// src/server/db/projects.ts
|
|
6
6
|
function createProject(name, workdir) {
|
|
@@ -67,6 +67,10 @@ function updateProject(id, updates) {
|
|
|
67
67
|
sets.push("custom_instructions = ?");
|
|
68
68
|
values.push(updates.customInstructions);
|
|
69
69
|
}
|
|
70
|
+
if (updates.dangerLevel !== void 0) {
|
|
71
|
+
sets.push("danger_level = ?");
|
|
72
|
+
values.push(updates.dangerLevel);
|
|
73
|
+
}
|
|
70
74
|
values.push(id);
|
|
71
75
|
const result = db.prepare(
|
|
72
76
|
`
|
|
@@ -88,6 +92,7 @@ function rowToProject(row) {
|
|
|
88
92
|
name: row.name,
|
|
89
93
|
workdir: row.workdir,
|
|
90
94
|
...row.custom_instructions ? { customInstructions: row.custom_instructions } : {},
|
|
95
|
+
...row.danger_level ? { dangerLevel: row.danger_level } : {},
|
|
91
96
|
createdAt: row.created_at,
|
|
92
97
|
updatedAt: row.updated_at
|
|
93
98
|
};
|
|
@@ -101,4 +106,4 @@ export {
|
|
|
101
106
|
updateProject,
|
|
102
107
|
deleteProject
|
|
103
108
|
};
|
|
104
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-X4VMSNLI.js.map
|
package/dist/cli/dev.js
CHANGED