@cortexkit/opencode-magic-context 0.49.29 → 0.49.30
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-search-worker.js +1 -1
- package/dist/chunk-embedding-write-worker.js +1 -1
- package/dist/{context-836j3vte.js → context-vnfr6d7t.js} +156 -32
- package/dist/features/magic-context/work-metrics.d.ts.map +1 -1
- package/dist/hooks/magic-context/history-boundary-repair.d.ts +1 -1
- package/dist/hooks/magic-context/history-boundary-repair.d.ts.map +1 -1
- package/dist/hooks/magic-context/strip-content.d.ts +1 -1
- package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
- package/dist/{index-zhgqgxtt.js → index-0fe4q77z.js} +7 -5
- package/dist/{index-a1h316s9.js → index-3jmx3fae.js} +1 -1
- package/dist/{index-tx68g9nc.js → index-4s4zq97n.js} +1 -1
- package/dist/{index-wyt5m81v.js → index-69gd2scx.js} +3 -3
- package/dist/{index-093c4g1c.js → index-adr4vfys.js} +2 -2
- package/dist/{index-wpcdk76y.js → index-ekzzw66a.js} +19 -16
- package/dist/{index-h4s5jk7f.js → index-hbt0sbv2.js} +1 -1
- package/dist/{index-q9zvphbq.js → index-k0dpkyn7.js} +38 -7
- package/dist/{index-wvffze8y.js → index-vtz789ex.js} +1 -1
- package/dist/{index-bps8vn9r.js → index-vzz570j8.js} +3 -3
- package/dist/index.js +13 -13
- package/dist/{message-index-bounded-7qsn4fd3.js → message-index-bounded-zq7a5nm6.js} +2 -2
- package/dist/migration-worker.js +1 -1
- package/dist/raw-ordinal-warmup-worker.js +2 -2
- package/dist/{read-session-chunk-a5d0q3m0.js → read-session-chunk-1ndphmb8.js} +1 -1
- package/dist/{recomp-orchestrator-na34m4c5.js → recomp-orchestrator-w3pjp33d.js} +5 -5
- package/dist/{search-archive-66pm17gm.js → search-archive-sr07c6aj.js} +2 -2
- package/dist/{search-0cd6hx7a.js → search-fbaz1m8r.js} +3 -3
- package/dist/shared/marker-only-text.d.ts +2 -0
- package/dist/shared/marker-only-text.d.ts.map +1 -0
- package/dist/{transform-postprocess-phase-27we33af.js → transform-postprocess-phase-6ccazq85.js} +5 -5
- package/dist/v2/auto-search-worker.js +1 -1
- package/dist/v2/chunk-embedding-write-worker.js +1 -1
- package/dist/v2/{context-g4ptae4x.js → context-wx4sfhgr.js} +162 -36
- package/dist/v2/hidden-child-cleanup.d.ts.map +1 -1
- package/dist/v2/hidden-child-native.d.ts.map +1 -1
- package/dist/v2/hooks/context.d.ts.map +1 -1
- package/dist/v2/{message-index-bounded-7363502m.js → message-index-bounded-jvgz7vk9.js} +2 -2
- package/dist/v2/message-times.d.ts +17 -0
- package/dist/v2/message-times.d.ts.map +1 -0
- package/dist/v2/migration-worker.js +1 -1
- package/dist/v2/raw-ordinal-warmup-worker.js +2 -2
- package/dist/v2/{read-session-chunk-kkppfhft.js → read-session-chunk-djzgm4jg.js} +1 -1
- package/dist/v2/{recomp-orchestrator-f1df1gb8.js → recomp-orchestrator-wb28kr9k.js} +4 -4
- package/dist/v2/{search-archive-v07jpw25.js → search-archive-n3dhns4r.js} +2 -2
- package/dist/v2/{search-2v3xyzse.js → search-q3jjw6zp.js} +3 -3
- package/dist/v2/{server-976dxaxh.js → server-42nebt63.js} +1 -1
- package/dist/v2/{server-77gznpmf.js → server-d01pe8q5.js} +1 -1
- package/dist/v2/{server-k9je35ev.js → server-hwag0khr.js} +1 -1
- package/dist/v2/{server-q50ttc2g.js → server-k33t88h3.js} +38 -7
- package/dist/v2/{server-mxzj3r0y.js → server-rb8m4vry.js} +7 -5
- package/dist/v2/{server-w79f8ejn.js → server-rr4cbkr0.js} +1 -1
- package/dist/v2/server.js +2 -2
- package/dist/v2/store-reader.d.ts +14 -2
- package/dist/v2/store-reader.d.ts.map +1 -1
- package/dist/v2/{wrapup-orchestrator-jq33fda8.js → wrapup-orchestrator-2t0pdqzm.js} +4 -4
- package/dist/{wrapup-orchestrator-f0xr7pft.js → wrapup-orchestrator-kjmkms5g.js} +6 -6
- package/package.json +1 -1
- package/src/shared/marker-only-text.ts +8 -0
|
@@ -28,7 +28,7 @@ var [
|
|
|
28
28
|
import("./embedding-cache-mgyr73ef.js"),
|
|
29
29
|
import("./storage-memory-e6a7mb0k.js"),
|
|
30
30
|
import("./project-embedding-registry-cg281d9j.js"),
|
|
31
|
-
import("./search-
|
|
31
|
+
import("./search-fbaz1m8r.js"),
|
|
32
32
|
import("./compartment-chunk-embedding-qgp0tbf7.js"),
|
|
33
33
|
import("./embedding-activity-g1dhes6g.js"),
|
|
34
34
|
import("./harness-e4avh192.js"),
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
releaseCompartmentLeaseBestEffort,
|
|
13
13
|
isCompartmentLeaseHeld,
|
|
14
14
|
queueM0Mutation,
|
|
15
|
-
getCompartments,
|
|
16
15
|
getUncoveredCompartmentEndsThrough,
|
|
17
16
|
providerResponseFailed,
|
|
18
17
|
isSuccessfulProviderCompletion,
|
|
@@ -65,7 +64,7 @@ import {
|
|
|
65
64
|
rebaseSessionCoordinatesAsync,
|
|
66
65
|
resolveOpenCodeProtectedTailBoundary,
|
|
67
66
|
getActiveCompartmentRun
|
|
68
|
-
} from "./index-
|
|
67
|
+
} from "./index-k0dpkyn7.js";
|
|
69
68
|
import"./index-sd3egckz.js";
|
|
70
69
|
import {
|
|
71
70
|
getHarness2
|
|
@@ -157,7 +156,7 @@ import {
|
|
|
157
156
|
applyJsonSchemaParameterDescriptions,
|
|
158
157
|
MagicContextRpcServer,
|
|
159
158
|
subagentTemperature
|
|
160
|
-
} from "./index-
|
|
159
|
+
} from "./index-ekzzw66a.js";
|
|
161
160
|
import {
|
|
162
161
|
resolveHistorianModel2
|
|
163
162
|
} from "./index-5kym00ag.js";
|
|
@@ -172,7 +171,7 @@ import {
|
|
|
172
171
|
openDatabaseAsync,
|
|
173
172
|
isDatabasePersisted,
|
|
174
173
|
getDatabasePersistenceError
|
|
175
|
-
} from "./index-
|
|
174
|
+
} from "./index-hbt0sbv2.js";
|
|
176
175
|
import {
|
|
177
176
|
setHomeProjectPermission,
|
|
178
177
|
resolveProjectIdentityForSession,
|
|
@@ -202,7 +201,9 @@ import {
|
|
|
202
201
|
preloadTokenizer,
|
|
203
202
|
estimateTokens
|
|
204
203
|
} from "./index-b88dwwrh.js";
|
|
205
|
-
import
|
|
204
|
+
import {
|
|
205
|
+
getTableColumnNames
|
|
206
|
+
} from "./index-xrnsygfq.js";
|
|
206
207
|
import"./index-58e3y90n.js";
|
|
207
208
|
import"./index-y1qwzvxn.js";
|
|
208
209
|
import {
|
|
@@ -240,13 +241,13 @@ import {
|
|
|
240
241
|
cleanUserText2,
|
|
241
242
|
readRawSessionMessageIdOrdinalsForRange2,
|
|
242
243
|
readRawSessionMessageOrdinalById2
|
|
243
|
-
} from "./index-
|
|
244
|
+
} from "./index-0fe4q77z.js";
|
|
244
245
|
import {
|
|
245
246
|
BoundedSessionMap,
|
|
246
247
|
recordToolDefinitionSet,
|
|
247
248
|
getCurrentToolSetHash
|
|
248
249
|
} from "./index-s1n8dd2n.js";
|
|
249
|
-
import"./index-
|
|
250
|
+
import"./index-4s4zq97n.js";
|
|
250
251
|
import"./index-v15ne3a3.js";
|
|
251
252
|
import {
|
|
252
253
|
invalidateAutoEmbedSession,
|
|
@@ -273,7 +274,7 @@ import {
|
|
|
273
274
|
EmergencyFailClosedError,
|
|
274
275
|
DegradedPassRefusalError,
|
|
275
276
|
isSyntheticHeadMessage2
|
|
276
|
-
} from "./index-
|
|
277
|
+
} from "./index-vzz570j8.js";
|
|
277
278
|
import"./index-qgh1qwjj.js";
|
|
278
279
|
import"./index-qt1qqasc.js";
|
|
279
280
|
import"./index-kfyb3k6n.js";
|
|
@@ -287,15 +288,15 @@ import {
|
|
|
287
288
|
} from "./index-x8a7jmkh.js";
|
|
288
289
|
import"./index-rrv26qjz.js";
|
|
289
290
|
import"./index-waktfbjy.js";
|
|
290
|
-
import"./index-
|
|
291
|
-
import"./index-
|
|
291
|
+
import"./index-vtz789ex.js";
|
|
292
|
+
import"./index-adr4vfys.js";
|
|
292
293
|
import"./index-gp3kcpc4.js";
|
|
293
294
|
import {
|
|
294
295
|
detectConflicts
|
|
295
296
|
} from "./index-4pnsgvfk.js";
|
|
296
297
|
import"./index-fmsr7v69.js";
|
|
297
298
|
import"./index-kaqs6h31.js";
|
|
298
|
-
import"./index-
|
|
299
|
+
import"./index-3jmx3fae.js";
|
|
299
300
|
import {
|
|
300
301
|
isDreamerRunnable,
|
|
301
302
|
isSmartNoteSurfaceAvailable,
|
|
@@ -313,6 +314,26 @@ import"./index-t5pck3ss.js";
|
|
|
313
314
|
import { setTimeout as delay } from "node:timers/promises";
|
|
314
315
|
|
|
315
316
|
// src/hooks/magic-context/history-boundary-repair.ts
|
|
317
|
+
function readStoreBoundaries(db, sessionId) {
|
|
318
|
+
const columns = getTableColumnNames(db, "compartments");
|
|
319
|
+
const numbers = ["id", "sequence", "start_message", "end_message", "created_at"];
|
|
320
|
+
const strings = ["session_id", "start_message_id", "end_message_id", "title", "content"];
|
|
321
|
+
const predicates = [...numbers, ...strings].every((column) => columns.has(column)) ? [
|
|
322
|
+
...numbers.map((column) => `typeof(${column}) IN ('integer', 'real')`),
|
|
323
|
+
...strings.map((column) => `typeof(${column}) = 'text'`)
|
|
324
|
+
] : ["0"];
|
|
325
|
+
for (const column of ["p1", "p2", "p3", "p4", "episode_type"]) {
|
|
326
|
+
if (columns.has(column))
|
|
327
|
+
predicates.push(`typeof(${column}) IN ('text', 'null')`);
|
|
328
|
+
}
|
|
329
|
+
for (const column of ["importance", "legacy"]) {
|
|
330
|
+
if (columns.has(column))
|
|
331
|
+
predicates.push(`typeof(${column}) IN ('integer', 'real', 'null')`);
|
|
332
|
+
}
|
|
333
|
+
return db.prepare(`SELECT sequence, ${columns.has("end_message_id") ? "end_message_id" : "NULL"} AS endMessageId
|
|
334
|
+
FROM compartments WHERE session_id = ? AND ${predicates.join(" AND ")}
|
|
335
|
+
ORDER BY sequence ASC`).all(sessionId);
|
|
336
|
+
}
|
|
316
337
|
function readBaseline(db, sessionId) {
|
|
317
338
|
const row = db.prepare("SELECT cached_m0_bytes IS NOT NULL AS hasM0, cached_m0_last_baseline_end_message_id AS boundary FROM session_meta WHERE session_id = ?").get(sessionId);
|
|
318
339
|
return {
|
|
@@ -379,7 +400,7 @@ function dropCompartmentsAfter(db, sessionId, anchor, holderId, activeBranch = f
|
|
|
379
400
|
}
|
|
380
401
|
function repairMissingHistoryBoundary(args) {
|
|
381
402
|
const { db, sessionId, isInHostStore, scope = "store" } = args;
|
|
382
|
-
const compartments = scope === "active-branch" ? db.prepare("SELECT sequence, COALESCE(end_message_id, '') AS endMessageId FROM compartments WHERE session_id = ? ORDER BY sequence").all(sessionId) :
|
|
403
|
+
const compartments = scope === "active-branch" ? db.prepare("SELECT sequence, COALESCE(end_message_id, '') AS endMessageId FROM compartments WHERE session_id = ? ORDER BY sequence").all(sessionId) : readStoreBoundaries(db, sessionId);
|
|
383
404
|
let latestIndex = compartments.length - 1;
|
|
384
405
|
while (latestIndex >= 0 && !compartments[latestIndex]?.endMessageId)
|
|
385
406
|
latestIndex -= 1;
|
|
@@ -423,7 +444,7 @@ function repairMissingHistoryBoundary(args) {
|
|
|
423
444
|
let dropped;
|
|
424
445
|
let anchorForDrop = anchor;
|
|
425
446
|
try {
|
|
426
|
-
if (
|
|
447
|
+
if (anchor) {
|
|
427
448
|
const row = db.prepare("SELECT end_message AS endMessage FROM compartments WHERE session_id = ? AND sequence = ?").get(sessionId, anchor.sequence);
|
|
428
449
|
if (!row)
|
|
429
450
|
return { kind: "unresolved", reason: "busy", missingEndMessageId: missing };
|
|
@@ -2451,6 +2472,7 @@ function createNativeHiddenChildren(host, removeSession, options) {
|
|
|
2451
2472
|
const inFlight = removing.get(child.id);
|
|
2452
2473
|
if (inFlight)
|
|
2453
2474
|
return inFlight;
|
|
2475
|
+
options.log(`[magic-context] hidden child ${child.id} removing`);
|
|
2454
2476
|
const done = (async () => {
|
|
2455
2477
|
try {
|
|
2456
2478
|
let timer;
|
|
@@ -2465,6 +2487,7 @@ function createNativeHiddenChildren(host, removeSession, options) {
|
|
|
2465
2487
|
if (timer)
|
|
2466
2488
|
clearTimeout(timer);
|
|
2467
2489
|
}
|
|
2490
|
+
options.log(`[magic-context] hidden child ${child.id} removed`);
|
|
2468
2491
|
} catch (error) {
|
|
2469
2492
|
if (isSessionNotFound(error))
|
|
2470
2493
|
return;
|
|
@@ -2476,14 +2499,19 @@ function createNativeHiddenChildren(host, removeSession, options) {
|
|
|
2476
2499
|
removing.set(child.id, done);
|
|
2477
2500
|
return done;
|
|
2478
2501
|
};
|
|
2479
|
-
const
|
|
2502
|
+
const noteCreated = (sessionID, role, parentID) => {
|
|
2503
|
+
options.log(`[magic-context] hidden child ${sessionID} created role=${role} parent=${parentID} keep_subagents=${options.keepSubagents}`);
|
|
2504
|
+
};
|
|
2505
|
+
const confirmPlacement = async (sessionID, parentID, role) => {
|
|
2480
2506
|
let stored;
|
|
2481
2507
|
try {
|
|
2482
2508
|
stored = await host.get({ sessionID });
|
|
2483
2509
|
} catch (error) {
|
|
2510
|
+
noteCreated(sessionID, role, "unknown");
|
|
2484
2511
|
options.log(`[magic-context] could not read back hidden child ${sessionID} to confirm its parent: ${errorText(error)}`);
|
|
2485
2512
|
return;
|
|
2486
2513
|
}
|
|
2514
|
+
noteCreated(sessionID, role, stored.parentID ?? "none");
|
|
2487
2515
|
const directory = stored.location?.directory;
|
|
2488
2516
|
if (options.directory !== undefined && directory !== undefined && !sameProjectDirectory(directory, options.directory)) {
|
|
2489
2517
|
throw new HiddenCompletionRefusal("hidden_prompt_unrecognized", `hidden child ${sessionID} is bound to ${directory}, not to this instance's ${options.directory}. Reopen the parent session in ${directory}, then run /ctx-recomp so its owning instance can rebuild history.`, true);
|
|
@@ -2512,11 +2540,13 @@ function createNativeHiddenChildren(host, removeSession, options) {
|
|
|
2512
2540
|
};
|
|
2513
2541
|
if (parentID) {
|
|
2514
2542
|
try {
|
|
2515
|
-
await confirmPlacement(created.id, parentID);
|
|
2543
|
+
await confirmPlacement(created.id, parentID, role);
|
|
2516
2544
|
} catch (error) {
|
|
2517
2545
|
await remove(child);
|
|
2518
2546
|
throw error;
|
|
2519
2547
|
}
|
|
2548
|
+
} else {
|
|
2549
|
+
noteCreated(created.id, role, "none");
|
|
2520
2550
|
}
|
|
2521
2551
|
return child;
|
|
2522
2552
|
};
|
|
@@ -2525,16 +2555,22 @@ function createNativeHiddenChildren(host, removeSession, options) {
|
|
|
2525
2555
|
open: create,
|
|
2526
2556
|
create,
|
|
2527
2557
|
retire(child) {
|
|
2528
|
-
if (
|
|
2558
|
+
if (kept(child)) {
|
|
2559
|
+
options.log(`[magic-context] hidden child ${child.id} kept (keep_subagents)`);
|
|
2560
|
+
} else {
|
|
2529
2561
|
remove(child);
|
|
2562
|
+
}
|
|
2530
2563
|
},
|
|
2531
2564
|
async finish(child, retired) {
|
|
2532
2565
|
if (retired) {
|
|
2533
2566
|
await removing.get(child.id);
|
|
2534
2567
|
return;
|
|
2535
2568
|
}
|
|
2536
|
-
if (
|
|
2569
|
+
if (kept(child)) {
|
|
2570
|
+
options.log(`[magic-context] hidden child ${child.id} kept (keep_subagents)`);
|
|
2571
|
+
} else {
|
|
2537
2572
|
await remove(child);
|
|
2573
|
+
}
|
|
2538
2574
|
},
|
|
2539
2575
|
updateModel: (child, model) => ({ ...child, model }),
|
|
2540
2576
|
markEverSettled: (child) => ({ ...child, ever_settled: true })
|
|
@@ -2581,6 +2617,7 @@ async function cleanupLegacyHiddenChildren(db, remove, note, options = {}) {
|
|
|
2581
2617
|
timer = setTimeout(() => reject(new Error("session.remove timed out")), Math.min(options.timeoutMs ?? 1000, Math.max(1, deadline - now())));
|
|
2582
2618
|
})
|
|
2583
2619
|
]);
|
|
2620
|
+
note(`[magic-context] legacy hidden child ${child.id} removed`);
|
|
2584
2621
|
} catch (error) {
|
|
2585
2622
|
if (!isSessionNotFound(error))
|
|
2586
2623
|
throw error;
|
|
@@ -3383,6 +3420,96 @@ class HiddenModelActivity {
|
|
|
3383
3420
|
}
|
|
3384
3421
|
}
|
|
3385
3422
|
|
|
3423
|
+
// src/v2/message-times.ts
|
|
3424
|
+
function isSettled(entry, readAt) {
|
|
3425
|
+
return (entry.version.type === "user" || entry.time.completed !== undefined) && typeof entry.version.updated === "number" && Number.isFinite(entry.version.updated) && entry.version.updated <= readAt - 1000;
|
|
3426
|
+
}
|
|
3427
|
+
function sameVersion(a, b) {
|
|
3428
|
+
return a.type === b.type && a.seq === b.seq && a.created === b.created && a.updated === b.updated;
|
|
3429
|
+
}
|
|
3430
|
+
|
|
3431
|
+
class V2MessageTimesCache {
|
|
3432
|
+
capacity;
|
|
3433
|
+
sessions = new Map;
|
|
3434
|
+
constructor(capacity = 64) {
|
|
3435
|
+
this.capacity = capacity;
|
|
3436
|
+
}
|
|
3437
|
+
delete(sessionID) {
|
|
3438
|
+
this.sessions.delete(sessionID);
|
|
3439
|
+
}
|
|
3440
|
+
deleteMessage(sessionID, messageID) {
|
|
3441
|
+
this.sessions.get(sessionID)?.entries.delete(messageID);
|
|
3442
|
+
}
|
|
3443
|
+
clear() {
|
|
3444
|
+
this.sessions.clear();
|
|
3445
|
+
}
|
|
3446
|
+
pass(sessionID) {
|
|
3447
|
+
const previous = this.sessions.get(sessionID);
|
|
3448
|
+
const current = { entries: new Map };
|
|
3449
|
+
this.sessions.delete(sessionID);
|
|
3450
|
+
this.sessions.set(sessionID, current);
|
|
3451
|
+
while (this.sessions.size > this.capacity) {
|
|
3452
|
+
const oldest = this.sessions.keys().next().value;
|
|
3453
|
+
if (oldest === undefined)
|
|
3454
|
+
break;
|
|
3455
|
+
this.sessions.delete(oldest);
|
|
3456
|
+
}
|
|
3457
|
+
const passTimes = new Map;
|
|
3458
|
+
return (reader, ids) => {
|
|
3459
|
+
const missing = [...new Set(ids)].filter((id) => !passTimes.has(id));
|
|
3460
|
+
if (missing.length > 0) {
|
|
3461
|
+
const readAt = Date.now();
|
|
3462
|
+
const identity = reader.hostIdentity();
|
|
3463
|
+
current.identity = identity;
|
|
3464
|
+
const reusable = previous?.identity === identity ? previous.entries : undefined;
|
|
3465
|
+
const known = [];
|
|
3466
|
+
const refresh = [];
|
|
3467
|
+
let first = Infinity;
|
|
3468
|
+
let last = -Infinity;
|
|
3469
|
+
for (const id of missing) {
|
|
3470
|
+
const entry = reusable?.get(id);
|
|
3471
|
+
if (entry && isSettled(entry, readAt)) {
|
|
3472
|
+
known.push(id);
|
|
3473
|
+
first = Math.min(first, entry.version.seq);
|
|
3474
|
+
last = Math.max(last, entry.version.seq);
|
|
3475
|
+
} else
|
|
3476
|
+
refresh.push(id);
|
|
3477
|
+
}
|
|
3478
|
+
const versions = reader.messageTimeVersions(sessionID, known, { first, last });
|
|
3479
|
+
for (const id of known) {
|
|
3480
|
+
const version = versions.get(id);
|
|
3481
|
+
const cached = reusable?.get(id);
|
|
3482
|
+
if (!version) {
|
|
3483
|
+
passTimes.set(id, null);
|
|
3484
|
+
} else if (cached && sameVersion(cached.version, version) && (version.type === "user" || cached.time.completed !== undefined)) {
|
|
3485
|
+
current.entries.set(id, cached);
|
|
3486
|
+
passTimes.set(id, cached.time);
|
|
3487
|
+
} else
|
|
3488
|
+
refresh.push(id);
|
|
3489
|
+
}
|
|
3490
|
+
const times = reader.messageTimes(sessionID, refresh, versions);
|
|
3491
|
+
for (const id of refresh) {
|
|
3492
|
+
const time = times.get(id);
|
|
3493
|
+
const version = versions.get(id);
|
|
3494
|
+
passTimes.set(id, time ?? null);
|
|
3495
|
+
if (time && version) {
|
|
3496
|
+
const entry = { version, time };
|
|
3497
|
+
if (isSettled(entry, readAt))
|
|
3498
|
+
current.entries.set(id, entry);
|
|
3499
|
+
}
|
|
3500
|
+
}
|
|
3501
|
+
}
|
|
3502
|
+
const result = new Map;
|
|
3503
|
+
for (const id of ids) {
|
|
3504
|
+
const time = passTimes.get(id);
|
|
3505
|
+
if (time)
|
|
3506
|
+
result.set(id, { ...time });
|
|
3507
|
+
}
|
|
3508
|
+
return result;
|
|
3509
|
+
};
|
|
3510
|
+
}
|
|
3511
|
+
}
|
|
3512
|
+
|
|
3386
3513
|
// src/v2/hooks/channel2.ts
|
|
3387
3514
|
import { randomBytes } from "node:crypto";
|
|
3388
3515
|
var pendingCandidates = new WeakMap;
|
|
@@ -5068,6 +5195,7 @@ function coveredInstructionRows(reader, sessionID, throughSeq, model) {
|
|
|
5068
5195
|
async function registerContext(context) {
|
|
5069
5196
|
const directory = context.location.directory;
|
|
5070
5197
|
const config = loadPluginConfigDetailed(directory).config;
|
|
5198
|
+
log2(`[magic-context] OpenCode 2 keep_subagents=${config.keep_subagents === true}`);
|
|
5071
5199
|
setHomeProjectPermission(config.allow_home_project);
|
|
5072
5200
|
if (!config.enabled)
|
|
5073
5201
|
return;
|
|
@@ -5200,6 +5328,7 @@ async function registerContext(context) {
|
|
|
5200
5328
|
});
|
|
5201
5329
|
let hiddenAgentsReady;
|
|
5202
5330
|
const readerPool = new V2StoreReaderPool;
|
|
5331
|
+
const messageTimesCache = new V2MessageTimesCache;
|
|
5203
5332
|
const openStoreReader = () => readerPool.open(gaDatabasePath(getDataDir(), process.env.OPENCODE_CHANNEL ?? "latest"));
|
|
5204
5333
|
const createHiddenExecutor = async (database) => {
|
|
5205
5334
|
await cleanupLegacyOnce(database);
|
|
@@ -5563,6 +5692,12 @@ async function registerContext(context) {
|
|
|
5563
5692
|
if (event.type?.startsWith("session.revert.") || event.type === "session.message.content.updated") {
|
|
5564
5693
|
nativeFoldReplay?.onEvent(event);
|
|
5565
5694
|
restoredRows.forget(sessionID);
|
|
5695
|
+
messageTimesCache.delete(sessionID);
|
|
5696
|
+
}
|
|
5697
|
+
if (event.type === "session.step.started" || event.type === "session.step.ended" || event.type === "session.step.failed") {
|
|
5698
|
+
const messageID = event.data.assistantMessageID;
|
|
5699
|
+
if (typeof messageID === "string")
|
|
5700
|
+
messageTimesCache.deleteMessage(sessionID, messageID);
|
|
5566
5701
|
}
|
|
5567
5702
|
if (event.type === "session.error" || event.type === "session.execution.failed") {
|
|
5568
5703
|
const error = hiddenTerminalError(event);
|
|
@@ -5601,6 +5736,7 @@ async function registerContext(context) {
|
|
|
5601
5736
|
rawProviders.get(sessionID)?.();
|
|
5602
5737
|
rawProviders.delete(sessionID);
|
|
5603
5738
|
usage.delete(sessionID);
|
|
5739
|
+
messageTimesCache.delete(sessionID);
|
|
5604
5740
|
hiddenSessionErrors.delete(sessionID);
|
|
5605
5741
|
storageNoticeBySession.delete(sessionID);
|
|
5606
5742
|
liveModels.delete(sessionID);
|
|
@@ -5895,22 +6031,9 @@ async function registerContext(context) {
|
|
|
5895
6031
|
}
|
|
5896
6032
|
await dropStorageNotices(draft.messages, isMagicContextSynthetic);
|
|
5897
6033
|
const hostMessagesAtEntry = [...draft.messages];
|
|
5898
|
-
const
|
|
6034
|
+
const cachedTimes = messageTimesCache.pass(draft.sessionID);
|
|
5899
6035
|
const readTimes = (reader, messages) => {
|
|
5900
|
-
|
|
5901
|
-
const missing = ids.filter((id) => !passTimes.has(id));
|
|
5902
|
-
if (missing.length > 0) {
|
|
5903
|
-
const read = reader.messageTimes(draft.sessionID, missing);
|
|
5904
|
-
for (const id of missing)
|
|
5905
|
-
passTimes.set(id, read.get(id) ?? null);
|
|
5906
|
-
}
|
|
5907
|
-
const times = new Map;
|
|
5908
|
-
for (const id of ids) {
|
|
5909
|
-
const time = passTimes.get(id);
|
|
5910
|
-
if (time)
|
|
5911
|
-
times.set(id, time);
|
|
5912
|
-
}
|
|
5913
|
-
return times;
|
|
6036
|
+
return cachedTimes(reader, timeIds(messages));
|
|
5914
6037
|
};
|
|
5915
6038
|
liveModels.set(draft.sessionID, {
|
|
5916
6039
|
providerID: draft.model.providerID,
|
|
@@ -6435,6 +6558,7 @@ async function registerContext(context) {
|
|
|
6435
6558
|
}, 0));
|
|
6436
6559
|
return {
|
|
6437
6560
|
async dispose() {
|
|
6561
|
+
messageTimesCache.clear();
|
|
6438
6562
|
usageController.abort();
|
|
6439
6563
|
await hiddenCompletionExecutor?.dispose();
|
|
6440
6564
|
await usageDone;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-metrics.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/work-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,WAAW;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAwFD,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAQ/F;AAaD,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAC9B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,UAAU;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,qBAAqB,IAAI,gBAAgB,CAExD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,iBAAiB,EAAE,EACzB,KAAK,EAAE,gBAAgB,GACxB,gBAAgB,CA2ClB;AAaD,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAWrE;
|
|
1
|
+
{"version":3,"file":"work-metrics.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/work-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,WAAW;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAwFD,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAQ/F;AAaD,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAC9B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,UAAU;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,wDAAwD;IACxD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,qBAAqB,IAAI,gBAAgB,CAExD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,iBAAiB,EAAE,EACzB,KAAK,EAAE,gBAAgB,GACxB,gBAAgB,CA2ClB;AAaD,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAWrE;AAkDD,yEAAyE;AACzE,wBAAgB,2BAA2B,CACvC,UAAU,EAAE,QAAQ,EACpB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,sBAA6B,GAC1C,iBAAiB,EAAE,CAmBrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qCAAqC,CACjD,UAAU,EAAE,QAAQ,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,EACvB,UAAU,GAAE,sBAA6B,GAC1C;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAkBnD;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,CA8B9F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Compartment } from "../../features/magic-context/compartment-storage";
|
|
2
2
|
import type { Database } from "../../shared/sqlite";
|
|
3
3
|
/**
|
|
4
4
|
* Whether the host holds a message in the history being checked: `true` or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-boundary-repair.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/history-boundary-repair.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"history-boundary-repair.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/history-boundary-repair.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAWpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA0CpD;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;AAExE,MAAM,MAAM,qBAAqB;AAC7B,yDAAyD;AACvD;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE;AACpB,4EAA4E;GAC1E;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB,8EAA8E;GAC5E;IACI,IAAI,EAAE,UAAU,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AACH,+FAA+F;GAC7F;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AACxF,oEAAoE;GAClE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC;AAOxF,KAAK,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC;AAoItE;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IAC/C,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,mBAAmB,CAAC;IACnC,wFAAwF;IACxF,KAAK,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IAClC,qFAAqF;IACrF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5F,GAAG,qBAAqB,CA8HxB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type FrozenReasoningPart } from "../../features/magic-context/merged-reasoning-decisions";
|
|
2
2
|
import type { MessageLike, ThinkingLikePart } from "./tag-messages";
|
|
3
|
-
export
|
|
3
|
+
export { isMarkerOnlyText } from "../../shared/marker-only-text";
|
|
4
4
|
/**
|
|
5
5
|
* Neutralize system-injected messages (notifications, reminders, internal markers).
|
|
6
6
|
* These are internal plumbing messages that should never reach the LLM.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip-content.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/strip-content.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,mBAAmB,EAG3B,MAAM,yDAAyD,CAAC;
|
|
1
|
+
{"version":3,"file":"strip-content.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/strip-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -4704,6 +4704,13 @@ function hasAnthropicReasoning(messages) {
|
|
|
4704
4704
|
});
|
|
4705
4705
|
}
|
|
4706
4706
|
|
|
4707
|
+
// src/shared/marker-only-text.ts
|
|
4708
|
+
var MARKER_ONLY_PATTERN = /^(?:(?:§\d+§|\[dropped\s*(?:\d+|§\d*§)?\]|\[cleared\])\s*)+$/;
|
|
4709
|
+
function isMarkerOnlyText(text) {
|
|
4710
|
+
const trimmed = text.trim();
|
|
4711
|
+
return trimmed.length > 0 && MARKER_ONLY_PATTERN.test(trimmed);
|
|
4712
|
+
}
|
|
4713
|
+
|
|
4707
4714
|
// src/shared/processed-image-eligibility.ts
|
|
4708
4715
|
function createProcessedImageEligibility(messages, messageTagNumbers, options) {
|
|
4709
4716
|
const ageTags = new Map;
|
|
@@ -4840,11 +4847,6 @@ function prepareServedShapeRepair(db, sessionID, messages, readPreviouslyServed,
|
|
|
4840
4847
|
}
|
|
4841
4848
|
|
|
4842
4849
|
// src/hooks/magic-context/strip-content.ts
|
|
4843
|
-
var MARKER_ONLY_PATTERN = /^(?:(?:§\d+§|\[dropped(?: §\d+§)?\]|\[cleared\])\s*)+$/;
|
|
4844
|
-
function isMarkerOnlyText(text) {
|
|
4845
|
-
const trimmed = text.trim();
|
|
4846
|
-
return trimmed.length > 0 && MARKER_ONLY_PATTERN.test(trimmed);
|
|
4847
|
-
}
|
|
4848
4850
|
var TAG_PREFIX_PATTERN = /^§\d+§\s*/;
|
|
4849
4851
|
var SYSTEM_INJECTION_PATTERNS = [
|
|
4850
4852
|
/^<!-- OMO_INTERNAL_INITIATOR -->$/,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
getActiveCompartmentRun,
|
|
16
16
|
markActiveCompartmentRunPublished,
|
|
17
17
|
registerActiveCompartmentRun
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-k0dpkyn7.js";
|
|
19
19
|
import {
|
|
20
20
|
inRootAsyncContext2
|
|
21
21
|
} from "./index-gzy5w8ya.js";
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
getHistorianFailureState,
|
|
28
28
|
clearEmergencyRecovery,
|
|
29
29
|
prepareRawSessionOrdinals2
|
|
30
|
-
} from "./index-
|
|
30
|
+
} from "./index-0fe4q77z.js";
|
|
31
31
|
import {
|
|
32
32
|
pushNotification2
|
|
33
33
|
} from "./index-x8a7jmkh.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
import {
|
|
38
38
|
setRecompStarting2,
|
|
39
39
|
setRecompTerminal2
|
|
40
|
-
} from "./index-
|
|
40
|
+
} from "./index-adr4vfys.js";
|
|
41
41
|
|
|
42
42
|
// src/hooks/magic-context/wrapup-orchestrator.ts
|
|
43
43
|
import * as crypto from "node:crypto";
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
} from "./index-h7tgn49j.js";
|
|
4
4
|
import {
|
|
5
5
|
clearEmergencyRecovery
|
|
6
|
-
} from "./index-
|
|
6
|
+
} from "./index-0fe4q77z.js";
|
|
7
7
|
import {
|
|
8
8
|
requestPendingMaterialization,
|
|
9
9
|
dropSlot,
|
|
10
10
|
executeContextRecomp
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-k0dpkyn7.js";
|
|
12
12
|
import {
|
|
13
13
|
renderUserFacingFailure,
|
|
14
14
|
userFacingFailureCode
|
|
@@ -266,7 +266,7 @@ import {
|
|
|
266
266
|
snapRangeToCompartments,
|
|
267
267
|
getActiveCompartmentRun,
|
|
268
268
|
startCompartmentAgent
|
|
269
|
-
} from "./index-
|
|
269
|
+
} from "./index-k0dpkyn7.js";
|
|
270
270
|
import {
|
|
271
271
|
hasTrustedAbsoluteWall,
|
|
272
272
|
applyProvenInputFloor,
|
|
@@ -487,7 +487,7 @@ import {
|
|
|
487
487
|
readRawSessionMessageById2,
|
|
488
488
|
readSessionChunk2,
|
|
489
489
|
readRawSessionSeedTail2
|
|
490
|
-
} from "./index-
|
|
490
|
+
} from "./index-0fe4q77z.js";
|
|
491
491
|
import {
|
|
492
492
|
BoundedSessionMap,
|
|
493
493
|
getMeasuredToolDefinitionTokens
|
|
@@ -505,7 +505,7 @@ import {
|
|
|
505
505
|
runSqliteOptimize,
|
|
506
506
|
openDatabase,
|
|
507
507
|
openCurrentDatabase
|
|
508
|
-
} from "./index-
|
|
508
|
+
} from "./index-hbt0sbv2.js";
|
|
509
509
|
import {
|
|
510
510
|
registerOwnRpcServerInstance,
|
|
511
511
|
rpcPortDir,
|
|
@@ -574,7 +574,7 @@ import {
|
|
|
574
574
|
clearIndexedMessages,
|
|
575
575
|
indexSingleMessage,
|
|
576
576
|
indexMessagesAfterOrdinal
|
|
577
|
-
} from "./index-
|
|
577
|
+
} from "./index-4s4zq97n.js";
|
|
578
578
|
import {
|
|
579
579
|
renderUserFacingFailure,
|
|
580
580
|
userFacingFailureCode,
|
|
@@ -684,7 +684,7 @@ import {
|
|
|
684
684
|
resolveMemoriesByIdsForSearch2,
|
|
685
685
|
unifiedSearch2,
|
|
686
686
|
formatSearchResults2
|
|
687
|
-
} from "./index-
|
|
687
|
+
} from "./index-vtz789ex.js";
|
|
688
688
|
import {
|
|
689
689
|
flushIgnoredMessages2,
|
|
690
690
|
clearIgnoredMessages2,
|
|
@@ -694,7 +694,7 @@ import {
|
|
|
694
694
|
import {
|
|
695
695
|
setRecompStarting2,
|
|
696
696
|
setRecompTerminal2
|
|
697
|
-
} from "./index-
|
|
697
|
+
} from "./index-adr4vfys.js";
|
|
698
698
|
import {
|
|
699
699
|
makeToolCompositeKey,
|
|
700
700
|
searchMessageHistoryOffThread,
|
|
@@ -757,7 +757,7 @@ import {
|
|
|
757
757
|
abortSessionFailClosed2,
|
|
758
758
|
evaluateEmergencyFailClosed2,
|
|
759
759
|
runPostTransformPhase2
|
|
760
|
-
} from "./index-
|
|
760
|
+
} from "./index-vzz570j8.js";
|
|
761
761
|
import {
|
|
762
762
|
ANNOUNCEMENT_VERSION2,
|
|
763
763
|
ANNOUNCEMENT_FEATURES2,
|
|
@@ -770,7 +770,7 @@ import {
|
|
|
770
770
|
} from "./index-fmsr7v69.js";
|
|
771
771
|
import {
|
|
772
772
|
renderSearchArchiveOffThread2
|
|
773
|
-
} from "./index-
|
|
773
|
+
} from "./index-3jmx3fae.js";
|
|
774
774
|
import {
|
|
775
775
|
COMPACTION_ENABLED_PATH,
|
|
776
776
|
isDreamerRunnable,
|
|
@@ -13274,6 +13274,13 @@ WHERE session_id = ?
|
|
|
13274
13274
|
AND (time_created > ? OR (time_created = ? AND id > ?))
|
|
13275
13275
|
ORDER BY time_created, id`;
|
|
13276
13276
|
var V2_ASSISTANT_USAGE_ROWS_AFTER_SQL = `
|
|
13277
|
+
WITH newer AS (
|
|
13278
|
+
SELECT id, seq, data FROM session_message
|
|
13279
|
+
WHERE session_id = ? AND type = 'assistant' AND data IS NOT NULL AND seq > ?
|
|
13280
|
+
UNION ALL
|
|
13281
|
+
SELECT id, seq, data FROM session_message
|
|
13282
|
+
WHERE session_id = ? AND type = 'assistant' AND data IS NOT NULL AND seq = ? AND id > ?
|
|
13283
|
+
)
|
|
13277
13284
|
SELECT
|
|
13278
13285
|
json_extract(data, '$.agent') AS agent,
|
|
13279
13286
|
seq AS time_created,
|
|
@@ -13282,14 +13289,10 @@ SELECT
|
|
|
13282
13289
|
+ COALESCE(json_extract(data, '$.tokens.cache.read'), 0)
|
|
13283
13290
|
+ COALESCE(json_extract(data, '$.tokens.cache.write'), 0) AS prompt,
|
|
13284
13291
|
COALESCE(json_extract(data, '$.tokens.output'), 0) AS output
|
|
13285
|
-
FROM
|
|
13286
|
-
WHERE session_id = ?
|
|
13287
|
-
AND type = 'assistant'
|
|
13288
|
-
AND data IS NOT NULL
|
|
13289
|
-
AND (seq > ? OR (seq = ? AND id > ?))
|
|
13292
|
+
FROM newer
|
|
13290
13293
|
ORDER BY seq, id`;
|
|
13291
13294
|
function readAssistantUsageRowsAfter(openCodeDb, sessionId, afterTimeCreated, afterId, generation = "v1") {
|
|
13292
|
-
const rows = openCodeDb.prepare(generation === "v2" ? V2_ASSISTANT_USAGE_ROWS_AFTER_SQL : ASSISTANT_USAGE_ROWS_AFTER_SQL).all(sessionId, afterTimeCreated, afterTimeCreated, afterId);
|
|
13295
|
+
const rows = openCodeDb.prepare(generation === "v2" ? V2_ASSISTANT_USAGE_ROWS_AFTER_SQL : ASSISTANT_USAGE_ROWS_AFTER_SQL).all(...generation === "v2" ? [sessionId, afterTimeCreated, sessionId, afterTimeCreated, afterId] : [sessionId, afterTimeCreated, afterTimeCreated, afterId]);
|
|
13293
13296
|
return rows.map((r) => ({
|
|
13294
13297
|
agent: r.agent ?? null,
|
|
13295
13298
|
timeCreated: Number(r.time_created ?? 0),
|
|
@@ -16523,7 +16526,7 @@ function registerRpcHandlers(rpcServer, args) {
|
|
|
16523
16526
|
const db = readDatabase();
|
|
16524
16527
|
if (!db)
|
|
16525
16528
|
return { ok: false, error: "db unavailable" };
|
|
16526
|
-
const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-
|
|
16529
|
+
const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-w3pjp33d.js"));
|
|
16527
16530
|
const { sendIgnoredMessage } = await importPluginModule(() => import("./send-session-notification-vz86nt79.js"));
|
|
16528
16531
|
log2(`[rpc] recomp requested for session ${sessionId}`);
|
|
16529
16532
|
if (!args.client && !args.hiddenCompletionExecutor) {
|
|
@@ -16608,7 +16611,7 @@ function registerRpcHandlers(rpcServer, args) {
|
|
|
16608
16611
|
const db = readDatabase();
|
|
16609
16612
|
if (!db)
|
|
16610
16613
|
return { ok: false, error: "db unavailable" };
|
|
16611
|
-
const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-
|
|
16614
|
+
const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-kjmkms5g.js"));
|
|
16612
16615
|
const model = liveSessionState.liveModelBySession.get(sessionId);
|
|
16613
16616
|
const contextLimit = model ? resolveContextLimit(model.providerID, model.modelID, { db, sessionID: sessionId }) : 128000;
|
|
16614
16617
|
const ctx = {
|