@cortexkit/pi-magic-context 0.49.6 → 0.49.8

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.
Files changed (50) hide show
  1. package/dist/auto-search-worker.js +10 -7
  2. package/dist/{compaction-marker-candidates-9w5g66at.js → compaction-marker-candidates-n4dphyz4.js} +3 -3
  3. package/dist/compaction-marker-candidates-worker.js +2 -2
  4. package/dist/embedding-backfill-chva00z3.js +20 -0
  5. package/dist/embedding-worker-process.js +6 -2
  6. package/dist/embedding-worker.js +6 -5
  7. package/dist/historian-calibration-extension.js +1 -1
  8. package/dist/{index-j7pa3t4s.js → index-18qe4gs1.js} +113 -27
  9. package/dist/{index-0j0zqb4t.js → index-3veejgp8.js} +1 -1
  10. package/dist/{index-0vrkp1jq.js → index-43zqh10z.js} +1 -1
  11. package/dist/{index-r56xgha8.js → index-4pxydwvg.js} +1 -1
  12. package/dist/{index-5rc9kvrk.js → index-4vj37yw9.js} +4 -3
  13. package/dist/{index-fcacf11g.js → index-54r5vs9w.js} +4 -4
  14. package/dist/{index-cd6bjrj4.js → index-6e3yv1jt.js} +4 -4
  15. package/dist/{index-swab4319.js → index-729kkhmf.js} +4 -3
  16. package/dist/{index-gc2749rx.js → index-8yjhda46.js} +9 -6
  17. package/dist/{index-8vbh4tzw.js → index-asrxgdt4.js} +63 -19
  18. package/dist/{index-wf7mwdnf.js → index-fdxzpnbj.js} +2 -2
  19. package/dist/{index-kamhcj15.js → index-gqxsds3q.js} +6 -3
  20. package/dist/{index-x3dcnxh0.js → index-gycf3sp7.js} +5 -1
  21. package/dist/{index-kxxdyjfs.js → index-hy44m6jc.js} +1 -1
  22. package/dist/{index-0p9gemc6.js → index-jsyjxgfy.js} +172 -36
  23. package/dist/{index-290tzwp1.js → index-kh3jt7t9.js} +1 -1
  24. package/dist/{index-hfnjfk4d.js → index-pdhbj18g.js} +71 -70
  25. package/dist/{index-fx0r5485.js → index-qc8e13wc.js} +22 -22
  26. package/dist/{index-9mn34fnx.js → index-r8cy8hmq.js} +5 -5
  27. package/dist/{index-57mvvbbh.js → index-rggtvnbg.js} +40 -29
  28. package/dist/{index-21v1kfs7.js → index-szh001qb.js} +6 -3
  29. package/dist/{index-cyrnv16r.js → index-ta0ed2nc.js} +2 -0
  30. package/dist/{index-5z1h0qsa.js → index-tdhppxwd.js} +9 -9
  31. package/dist/{index-p4matwj0.js → index-v26j81w6.js} +5 -5
  32. package/dist/{index-mcgehvgw.js → index-zzn7qbps.js} +1 -1
  33. package/dist/index.js +1071 -390
  34. package/dist/{logger-j6tecd1h.js → logger-qg51hmp7.js} +1 -1
  35. package/dist/{message-index-m6snq0fh.js → message-index-1wta074c.js} +14 -14
  36. package/dist/{message-index-bounded-8a94k72f.js → message-index-bounded-ss3ctdwb.js} +14 -14
  37. package/dist/{message-time-backfill-xqwg3hg1.js → message-time-backfill-q9s88zdv.js} +3 -3
  38. package/dist/migration-worker.js +10 -10
  39. package/dist/{project-embedding-registry-3x6nmszv.js → project-embedding-registry-bxawck58.js} +11 -11
  40. package/dist/raw-ordinal-warmup-worker.js +17 -15
  41. package/dist/{read-session-chunk-49e1ayzs.js → read-session-chunk-1jagnq05.js} +11 -9
  42. package/dist/{read-session-raw-545mgtjz.js → read-session-raw-hm7ptnrh.js} +3 -3
  43. package/dist/{safe-notification-target-vn9kpmv4.js → safe-notification-target-62ty6rvp.js} +2 -2
  44. package/dist/{search-q76dp7w9.js → search-x7cachq0.js} +21 -21
  45. package/dist/{sqlite-wp7wddw3.js → sqlite-adjpy399.js} +3 -1
  46. package/dist/{storage-memory-7417pbm9.js → storage-memory-axnsk5t1.js} +2 -2
  47. package/dist/{storage-tags-cvjsrbqh.js → storage-tags-6j5s2q49.js} +5 -5
  48. package/dist/subagent-entry.js +24 -24
  49. package/package.json +1 -1
  50. package/dist/embedding-backfill-809pgwvb.js +0 -20
@@ -14,19 +14,22 @@ var [
14
14
  { installProjectEmbeddingSearchBridge },
15
15
  { searchMessageHistory, unifiedSearch },
16
16
  { setEmbeddingSessionBusy },
17
- { setHarness },
18
- { Database }
17
+ { getHarness, setHarness },
18
+ { Database, registerSqliteDiagnosticSink },
19
+ { log }
19
20
  ] = await Promise.all([
20
- import("./embedding-backfill-809pgwvb.js"),
21
+ import("./embedding-backfill-chva00z3.js"),
21
22
  import("./embedding-cache-7rp4gqzr.js"),
22
- import("./storage-memory-7417pbm9.js"),
23
- import("./project-embedding-registry-3x6nmszv.js"),
24
- import("./search-q76dp7w9.js"),
23
+ import("./storage-memory-axnsk5t1.js"),
24
+ import("./project-embedding-registry-bxawck58.js"),
25
+ import("./search-x7cachq0.js"),
25
26
  import("./embedding-activity-ew6dshfd.js"),
26
27
  import("./harness-9872e0ym.js"),
27
- import("./sqlite-wp7wddw3.js")
28
+ import("./sqlite-adjpy399.js"),
29
+ import("./logger-qg51hmp7.js")
28
30
  ]);
29
31
  setHarness(input.harness);
32
+ registerSqliteDiagnosticSink(log, getHarness);
30
33
  setEmbeddingSessionBusy(input.sessionId, input.embeddingHostBusy === true);
31
34
  var nextId = 0;
32
35
  var pending = new Map;
@@ -4,10 +4,10 @@ import {
4
4
  readMarkerCandidateBasis2,
5
5
  prepareMarkerCandidateBasis2,
6
6
  scanMarkerCandidateSnapshot2
7
- } from "./index-swab4319.js";
7
+ } from "./index-729kkhmf.js";
8
8
  import"./index-399p688g.js";
9
- import"./index-8vbh4tzw.js";
10
- import"./index-x3dcnxh0.js";
9
+ import"./index-asrxgdt4.js";
10
+ import"./index-gycf3sp7.js";
11
11
  import"./index-0h2mkab2.js";
12
12
  export {
13
13
  invalidateMarkerCandidateBasis2 as invalidateMarkerCandidateBasis,
@@ -5,8 +5,8 @@ if (!port)
5
5
  throw new Error("marker candidate worker requires a parent port");
6
6
  port.postMessage({ kind: "accepted" });
7
7
  var [{ Database }, { scanMarkerCandidateSnapshot }] = await Promise.all([
8
- import("./sqlite-wp7wddw3.js"),
9
- import("./compaction-marker-candidates-9w5g66at.js")
8
+ import("./sqlite-adjpy399.js"),
9
+ import("./compaction-marker-candidates-n4dphyz4.js")
10
10
  ]);
11
11
  var input = workerData;
12
12
  var db;
@@ -0,0 +1,20 @@
1
+ import {
2
+ ensureMemoryEmbeddings2
3
+ } from "./index-v26j81w6.js";
4
+ import"./index-qc8e13wc.js";
5
+ import"./index-9p40dgkm.js";
6
+ import"./index-6e3yv1jt.js";
7
+ import"./index-yhzhdp3m.js";
8
+ import"./index-8yjhda46.js";
9
+ import"./index-szh001qb.js";
10
+ import"./index-ta0ed2nc.js";
11
+ import"./index-gqxsds3q.js";
12
+ import"./index-fdxzpnbj.js";
13
+ import"./index-43zqh10z.js";
14
+ import"./index-4pxydwvg.js";
15
+ import"./index-asrxgdt4.js";
16
+ import"./index-gycf3sp7.js";
17
+ import"./index-0h2mkab2.js";
18
+ export {
19
+ ensureMemoryEmbeddings2 as ensureMemoryEmbeddings
20
+ };
@@ -1,14 +1,18 @@
1
1
  import"./index-0h2mkab2.js";
2
2
  import {
3
3
  log2
4
- } from "./index-x3dcnxh0.js";
4
+ } from "./index-gycf3sp7.js";
5
+ import {
6
+ inRootAsyncContext2
7
+ } from "./index-asrxgdt4.js";
5
8
 
6
9
  // ../plugin/src/features/magic-context/memory/embedding-worker-process.ts
7
10
  import { Worker } from "node:worker_threads";
8
11
  var worker;
9
12
  process.on("message", (message) => {
10
13
  if (message.entry && !worker) {
11
- worker = new Worker(new URL(message.entry), { workerData: message.data });
14
+ const entry = new URL(message.entry);
15
+ worker = inRootAsyncContext2(() => new Worker(entry, { workerData: message.data }));
12
16
  worker.on("message", (reply) => {
13
17
  const wire = {
14
18
  ...reply,
@@ -3,15 +3,16 @@ import {
3
3
  } from "./index-0h2mkab2.js";
4
4
  import {
5
5
  log2
6
- } from "./index-x3dcnxh0.js";
7
- import"./index-cyrnv16r.js";
8
- import"./index-21v1kfs7.js";
9
- import"./index-r56xgha8.js";
6
+ } from "./index-gycf3sp7.js";
7
+ import"./index-ta0ed2nc.js";
8
+ import"./index-szh001qb.js";
9
+ import"./index-4pxydwvg.js";
10
+ import"./index-asrxgdt4.js";
10
11
  import {
11
12
  resolveLocalEmbeddingWorkerRuntime,
12
13
  getLocalEmbeddingNativeMemoryStats,
13
14
  LocalEmbeddingProvider
14
- } from "./index-gc2749rx.js";
15
+ } from "./index-8yjhda46.js";
15
16
  import {
16
17
  setStoragePrivatePermissionEnforcement
17
18
  } from "./index-81nthk8j.js";
@@ -4,7 +4,7 @@ import {
4
4
  readHostSystemPrompt
5
5
  } from "./index-zh1jw8qp.js";
6
6
  import"./index-0h2mkab2.js";
7
- import"./index-x3dcnxh0.js";
7
+ import"./index-gycf3sp7.js";
8
8
 
9
9
  // src/historian-calibration-extension.ts
10
10
  import { readFileSync } from "node:fs";
@@ -4,7 +4,7 @@ import {
4
4
  renderToolTemplate,
5
5
  resolveModelConfigValue,
6
6
  deriveDefaultProtectedTokens
7
- } from "./index-cyrnv16r.js";
7
+ } from "./index-ta0ed2nc.js";
8
8
  import {
9
9
  getHarness2,
10
10
  harnessOwnsOpenCodeStore2
@@ -12,7 +12,7 @@ import {
12
12
  import {
13
13
  log2,
14
14
  sessionLog2
15
- } from "./index-x3dcnxh0.js";
15
+ } from "./index-gycf3sp7.js";
16
16
  import {
17
17
  resolveDecisionCalibration,
18
18
  calibrationForModelKey,
@@ -21,7 +21,7 @@ import {
21
21
  TAG_SELECT_COLUMNS2,
22
22
  getCandidateToolOwners2,
23
23
  pickNearestPriorOwner2
24
- } from "./index-fcacf11g.js";
24
+ } from "./index-54r5vs9w.js";
25
25
  import {
26
26
  OMO_INTERNAL_INITIATOR_MARKER,
27
27
  isSystemDirective,
@@ -36,15 +36,15 @@ import {
36
36
  formatBlock,
37
37
  compactTextForSummary,
38
38
  mergeCommitHashes
39
- } from "./index-r56xgha8.js";
39
+ } from "./index-4pxydwvg.js";
40
40
  import {
41
41
  Database2,
42
42
  prepareCachedStatement2
43
- } from "./index-8vbh4tzw.js";
43
+ } from "./index-asrxgdt4.js";
44
44
  import {
45
45
  stableStringify,
46
46
  closeQuietly
47
- } from "./index-mcgehvgw.js";
47
+ } from "./index-zzn7qbps.js";
48
48
  import {
49
49
  resolveOpenCodeDbPath,
50
50
  assertOpenCodeStoreGeneration,
@@ -69,10 +69,10 @@ import {
69
69
  hasRawSessionMessageByIdFromDb2,
70
70
  readRawSeedTailFromDb2,
71
71
  readRawSessionBoundaryEndpointsFromDb2
72
- } from "./index-5rc9kvrk.js";
72
+ } from "./index-4vj37yw9.js";
73
73
  import {
74
74
  logSlowWriteTransaction
75
- } from "./index-0vrkp1jq.js";
75
+ } from "./index-43zqh10z.js";
76
76
 
77
77
  // ../plugin/src/features/magic-context/overflow-detection.ts
78
78
  var OVERFLOW_PATTERNS = [
@@ -1036,8 +1036,15 @@ function clearCachedM0M1(db, sessionId) {
1036
1036
  }
1037
1037
 
1038
1038
  // ../plugin/src/features/magic-context/storage-replay-document.ts
1039
+ import { AsyncLocalStorage } from "node:async_hooks";
1039
1040
  var CAS_RETRY_LIMIT = 5;
1040
1041
  var MISSING_REPLAY_DOCUMENT_COLUMN = Symbol("missing replay document column");
1042
+ var replaySnapshots = new AsyncLocalStorage;
1043
+ function invalidateReplayEnvelopeSnapshot(db, sessionId) {
1044
+ const snapshot = replaySnapshots.getStore();
1045
+ if (snapshot?.db === db && snapshot.sessionId === sessionId)
1046
+ snapshot.loaded = false;
1047
+ }
1041
1048
  function isRustMarkerAdmissionFenced(db, sessionId) {
1042
1049
  const row = db.prepare("SELECT COALESCE(json_extract(NULLIF(trailing_blank_decisions, ''), '$.rustMarkerAdmissionFence'), 0) AS fenced FROM session_meta WHERE session_id=?").get(sessionId);
1043
1050
  return row?.fenced === 1;
@@ -1149,16 +1156,30 @@ function readDecisionRows(db, sessionId, messageIds) {
1149
1156
  return db.prepare(`SELECT message_id, decision FROM session_replay_decisions
1150
1157
  WHERE session_id = ? AND message_id IN (SELECT value FROM json_each(?))`).all(sessionId, JSON.stringify(messageIds));
1151
1158
  }
1152
- function readRawReplayDocument(db, sessionId) {
1159
+ function readRawReplayDocument(db, sessionId, fresh = false) {
1160
+ const snapshot = replaySnapshots.getStore();
1161
+ const reusable = !fresh && snapshot?.active && snapshot.db === db && snapshot.sessionId === sessionId;
1162
+ if (reusable && snapshot.loaded)
1163
+ return snapshot.raw;
1153
1164
  try {
1154
1165
  const row = db.prepare("SELECT trailing_blank_decisions FROM session_meta WHERE session_id = ?").get(sessionId);
1155
1166
  const raw = row?.trailing_blank_decisions;
1156
- if (raw === null || raw === undefined || typeof raw === "string")
1167
+ if (raw === null || raw === undefined || typeof raw === "string") {
1168
+ if (reusable) {
1169
+ snapshot.raw = raw;
1170
+ snapshot.loaded = true;
1171
+ }
1157
1172
  return raw;
1173
+ }
1158
1174
  throw invalidReplayDocument("stored value is not text");
1159
1175
  } catch (error) {
1160
- if (isMissingReplayDocumentColumn(error))
1176
+ if (isMissingReplayDocumentColumn(error)) {
1177
+ if (reusable) {
1178
+ snapshot.raw = MISSING_REPLAY_DOCUMENT_COLUMN;
1179
+ snapshot.loaded = true;
1180
+ }
1161
1181
  return MISSING_REPLAY_DOCUMENT_COLUMN;
1182
+ }
1162
1183
  throw error;
1163
1184
  }
1164
1185
  }
@@ -1190,9 +1211,10 @@ function readReplayDocument(db, sessionId, mode = "strict") {
1190
1211
  return { ...doc, trailingBlank: Object.fromEntries(merged) };
1191
1212
  }
1192
1213
  function updateReplayDocument(db, sessionId, mutate) {
1214
+ invalidateReplayEnvelopeSnapshot(db, sessionId);
1193
1215
  let initial;
1194
1216
  try {
1195
- initial = readRawReplayDocument(db, sessionId);
1217
+ initial = readRawReplayDocument(db, sessionId, true);
1196
1218
  } catch (error) {
1197
1219
  if (error instanceof ReplayDocumentError)
1198
1220
  return false;
@@ -1204,7 +1226,7 @@ function updateReplayDocument(db, sessionId, mutate) {
1204
1226
  for (let attempt = 0;attempt < CAS_RETRY_LIMIT; attempt += 1) {
1205
1227
  let raw;
1206
1228
  try {
1207
- raw = readRawReplayDocument(db, sessionId);
1229
+ raw = readRawReplayDocument(db, sessionId, true);
1208
1230
  } catch (error) {
1209
1231
  if (error instanceof ReplayDocumentError)
1210
1232
  return false;
@@ -1234,6 +1256,7 @@ function updateReplayDocument(db, sessionId, mutate) {
1234
1256
  }
1235
1257
  var DECISION_CONFLICT = Symbol("replay decision changed concurrently");
1236
1258
  function writeReplayDocument(db, sessionId, doc) {
1259
+ invalidateReplayEnvelopeSnapshot(db, sessionId);
1237
1260
  if (!hasReplayDecisionTable(db)) {
1238
1261
  db.prepare("UPDATE session_meta SET trailing_blank_decisions = ? WHERE session_id = ?").run(serializeReplayDocument(doc), sessionId);
1239
1262
  return;
@@ -2431,10 +2454,32 @@ function addMergedReasoningStrippedIds(db, sessionId, ids) {
2431
2454
  return false;
2432
2455
  }
2433
2456
  function getProcessedImageStrippedIds(db, sessionId) {
2457
+ return new Set(getProcessedImageMarkers(db, sessionId).keys());
2458
+ }
2459
+ function parseProcessedImageMarkers(raw) {
2460
+ if (!raw)
2461
+ return new Map;
2462
+ try {
2463
+ const parsed = JSON.parse(raw);
2464
+ const ids = Array.isArray(parsed) ? parsed : parsed?.ids;
2465
+ const textIds = new Set(Array.isArray(parsed?.textMarkerIds) ? parsed.textMarkerIds : []);
2466
+ return new Map((Array.isArray(ids) ? ids : []).filter((id) => typeof id === "string").map((id) => [id, textIds.has(id) ? "[image stripped]" : ""]));
2467
+ } catch {
2468
+ return new Map;
2469
+ }
2470
+ }
2471
+ function serializeProcessedImageMarkers(markers) {
2472
+ const ids = [...markers.keys()];
2473
+ if (ids.length === 0)
2474
+ return "";
2475
+ const textMarkerIds = ids.filter((id) => markers.get(id) === "[image stripped]");
2476
+ return JSON.stringify(textMarkerIds.length > 0 ? { ids, textMarkerIds } : ids);
2477
+ }
2478
+ function getProcessedImageMarkers(db, sessionId) {
2434
2479
  const row = db.prepare("SELECT processed_image_stripped_ids FROM session_meta WHERE session_id = ?").get(sessionId);
2435
- return new Set(parseStrippedBlob(row?.processed_image_stripped_ids));
2480
+ return parseProcessedImageMarkers(row?.processed_image_stripped_ids);
2436
2481
  }
2437
- function addProcessedImageStrippedIds(db, sessionId, ids) {
2482
+ function addProcessedImageStrippedIds(db, sessionId, ids, marker = "") {
2438
2483
  const add = [...ids];
2439
2484
  if (add.length === 0)
2440
2485
  return true;
@@ -2442,17 +2487,17 @@ function addProcessedImageStrippedIds(db, sessionId, ids) {
2442
2487
  for (let attempt = 0;attempt < CAS_RETRY_LIMIT2; attempt += 1) {
2443
2488
  const row = db.prepare("SELECT processed_image_stripped_ids FROM session_meta WHERE session_id = ?").get(sessionId);
2444
2489
  const rawStored = row ? row.processed_image_stripped_ids ?? null : null;
2445
- const current = new Set(parseStrippedBlob(rawStored));
2490
+ const current = parseProcessedImageMarkers(rawStored);
2446
2491
  let changed = false;
2447
2492
  for (const id of add) {
2448
2493
  if (!current.has(id)) {
2449
- current.add(id);
2494
+ current.set(id, typeof marker === "string" ? marker : marker.get(id) ?? "");
2450
2495
  changed = true;
2451
2496
  }
2452
2497
  }
2453
2498
  if (!changed)
2454
2499
  return true;
2455
- const nextBlob = JSON.stringify([...current]);
2500
+ const nextBlob = serializeProcessedImageMarkers(current);
2456
2501
  const result = db.prepare("UPDATE session_meta SET processed_image_stripped_ids = ? WHERE session_id = ? AND processed_image_stripped_ids IS ?").run(nextBlob, sessionId, rawStored);
2457
2502
  if (result.changes > 0)
2458
2503
  return true;
@@ -2511,20 +2556,35 @@ function getPendingPiCompactionMarkerState(db, sessionId) {
2511
2556
  return parsed;
2512
2557
  }
2513
2558
  } catch {}
2514
- db.prepare("UPDATE session_meta SET pending_pi_compaction_marker_state = NULL WHERE session_id = ? AND pending_pi_compaction_marker_state = ?").run(sessionId, raw);
2559
+ const cleared = db.prepare("UPDATE session_meta SET pending_pi_compaction_marker_state = NULL WHERE session_id = ? AND pending_pi_compaction_marker_state = ?").run(sessionId, raw);
2560
+ if (cleared.changes > 0)
2561
+ sessionLog2(sessionId, "Pi compaction-marker clear: reason=malformed-state");
2515
2562
  return null;
2516
2563
  }
2517
- function setPendingPiCompactionMarkerState(db, sessionId, state) {
2564
+ function setPendingPiCompactionMarkerState(db, sessionId, state, clearReason = "explicit-reset") {
2518
2565
  ensureSessionMetaRow(db, sessionId);
2519
- const blob = state ? stableStringify(state) : null;
2566
+ if (state === null) {
2567
+ const pending = getPendingPiCompactionMarkerState(db, sessionId);
2568
+ if (pending)
2569
+ clearPendingPiCompactionMarkerStateIf(db, sessionId, pending, clearReason);
2570
+ else
2571
+ db.prepare("UPDATE session_meta SET pending_pi_compaction_marker_state = NULL WHERE session_id = ? AND pending_pi_compaction_marker_state = ''").run(sessionId);
2572
+ return;
2573
+ }
2574
+ const blob = stableStringify(state);
2520
2575
  db.prepare("UPDATE session_meta SET pending_pi_compaction_marker_state = ? WHERE session_id = ?").run(blob, sessionId);
2521
2576
  }
2522
- function clearPendingPiCompactionMarkerStateIf(db, sessionId, expected) {
2577
+ function clearPendingPiCompactionMarkerStateIf(db, sessionId, expected, reason = "explicit-clear") {
2523
2578
  const expectedBlob = stableStringify(expected);
2524
2579
  const result = db.prepare(`UPDATE session_meta SET pending_pi_compaction_marker_state = NULL
2525
2580
  WHERE session_id = ? AND pending_pi_compaction_marker_state = ?`).run(sessionId, expectedBlob);
2581
+ if (result.changes > 0 && reason !== null)
2582
+ logPiCompactionMarkerClear(sessionId, expected, reason);
2526
2583
  return result.changes > 0;
2527
2584
  }
2585
+ function logPiCompactionMarkerClear(sessionId, marker, reason) {
2586
+ sessionLog2(sessionId, `Pi compaction-marker clear: reason=${reason} endMessageId=${marker.endMessageId} ordinal=${marker.ordinal} firstKeptEntryId=${marker.firstKeptEntryId ?? "<none>"}`);
2587
+ }
2528
2588
  function getSessionsWithPendingPiMarker(db) {
2529
2589
  const rows = db.prepare(`SELECT session_id FROM session_meta
2530
2590
  WHERE pending_pi_compaction_marker_state IS NOT NULL
@@ -3863,6 +3923,7 @@ function findLatestAssistantReasoningMutationExemptMessage(messages) {
3863
3923
  }
3864
3924
  return;
3865
3925
  }
3926
+ var emptyImageParts = new WeakMap;
3866
3927
 
3867
3928
  // ../plugin/src/hooks/magic-context/reasoning-budget.ts
3868
3929
  var DEFAULT_KEEP_REASONING_TOKENS = 1e4;
@@ -4247,6 +4308,21 @@ function visitRawSessionMessages2(sessionId, fromOrdinal, toOrdinal, visit, opti
4247
4308
  after = last ? { timeCreated: last.createdAt ?? 0, id: last.id } : undefined;
4248
4309
  }
4249
4310
  }
4311
+ async function visitRawSessionMessagesAsync2(sessionId, fromOrdinal, toOrdinal, visit, options = {}) {
4312
+ const from = Math.max(1, Math.floor(fromOrdinal));
4313
+ const to = Math.floor(toOrdinal);
4314
+ if (to < from)
4315
+ return;
4316
+ const provider = sessionProviders.get(sessionId)?.provider;
4317
+ if (!provider?.iterateMessageRangeAsync) {
4318
+ visitRawSessionMessages2(sessionId, from, to, visit, options);
4319
+ return;
4320
+ }
4321
+ for await (const message of provider.iterateMessageRangeAsync(from, to)) {
4322
+ if (!visit(message))
4323
+ return;
4324
+ }
4325
+ }
4250
4326
  function readRawSessionMessageRange2(sessionId, fromOrdinal, toOrdinal) {
4251
4327
  const from = Math.max(1, Math.floor(fromOrdinal));
4252
4328
  const to = Math.floor(toOrdinal);
@@ -4470,13 +4546,20 @@ function readRawSessionMessageOrdinalById2(sessionId, messageId) {
4470
4546
  return null;
4471
4547
  return withReadOnlySessionDb((db) => readRawSessionMessageOrdinalByIdFromDb2(db, sessionId, messageId));
4472
4548
  }
4549
+ function readRawSessionMessageOrderPosition(sessionId, messageId) {
4550
+ const provider = sessionProviders.get(sessionId)?.provider;
4551
+ if (provider) {
4552
+ return provider.readMessageOrderById ? provider.readMessageOrderById(messageId) : provider.readMessageOrdinalById?.(messageId) ?? null;
4553
+ }
4554
+ return readRawSessionMessageOrdinalById2(sessionId, messageId);
4555
+ }
4473
4556
  function compareRawSessionMessageOrder2(sessionId, leftId, rightId) {
4474
4557
  const provider = sessionProviders.get(sessionId)?.provider;
4475
4558
  if (provider) {
4476
- if (!provider.readMessageOrdinalById)
4559
+ if (!provider.readMessageOrderById && !provider.readMessageOrdinalById)
4477
4560
  return null;
4478
- const left = provider.readMessageOrdinalById(leftId);
4479
- const right = provider.readMessageOrdinalById(rightId);
4561
+ const left = readRawSessionMessageOrderPosition(sessionId, leftId);
4562
+ const right = readRawSessionMessageOrderPosition(sessionId, rightId);
4480
4563
  return left === null || right === null ? null : left - right;
4481
4564
  }
4482
4565
  if (!openCodeDbExists())
@@ -4672,7 +4755,10 @@ function readSessionChunk2(sessionId, tokenBudget, offset = 1, eligibleEndOrdina
4672
4755
  if (state?.input === undefined && state?.output !== undefined && typeof p.callID === "string") {
4673
4756
  const call = calls.get(p.callID);
4674
4757
  if (call) {
4675
- const expansion = expandToolPart({ ...call, state: { ...call.state, output: state.output } }, options.expandTools);
4758
+ const expansion = expandToolPart({
4759
+ ...call,
4760
+ state: { ...call.state, output: state.output }
4761
+ }, options.expandTools);
4676
4762
  if (expansion !== null) {
4677
4763
  expandedParts.set(call, expansion);
4678
4764
  expandedResults.add(part);
@@ -4955,4 +5041,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
4955
5041
  });
4956
5042
  }
4957
5043
 
4958
- export { detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, computeProtectionWindow, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, isRustMarkerAdmissionFenced, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, EMERGENCY_DRAIN_FAILURE_BACKOFF_MS, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, recordOverflowDetected, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, setPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, getSessionsWithPendingPiMarker, setSessionWorkMetrics, getSessionWorkMetrics, resolveEpochFloorForPass, withReadOnlySessionDb, expandToolPart, retreatPastHostUnservedRows, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, hasUserAnswerMetadata, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, TOKEN_BUDGET_TOOL_REFUSAL, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, droppedInputMarker, createDroppedInputGuard, isEditTool, applyEditMarkerToInput, modelAcceptsEmptyContent, isAnthropicFamilyRoute, variantChangeBustsProviderCache, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, findLatestAssistantReasoningMutationExemptMessage, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opaqueThinkingCost, SKELETON_REAL_INPUT_MAX_BYTES, toolInputStringBytes, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
5044
+ export { detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, computeProtectionWindow, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, isRustMarkerAdmissionFenced, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, EMERGENCY_DRAIN_FAILURE_BACKOFF_MS, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, recordOverflowDetected, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, setPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, getSessionsWithPendingPiMarker, setSessionWorkMetrics, getSessionWorkMetrics, resolveEpochFloorForPass, withReadOnlySessionDb, expandToolPart, retreatPastHostUnservedRows, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, hasUserAnswerMetadata, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, TOKEN_BUDGET_TOOL_REFUSAL, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, droppedInputMarker, createDroppedInputGuard, isEditTool, applyEditMarkerToInput, modelAcceptsEmptyContent, isAnthropicFamilyRoute, variantChangeBustsProviderCache, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, findLatestAssistantReasoningMutationExemptMessage, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opaqueThinkingCost, SKELETON_REAL_INPUT_MAX_BYTES, toolInputStringBytes, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  log2
3
- } from "./index-x3dcnxh0.js";
3
+ } from "./index-gycf3sp7.js";
4
4
 
5
5
  // ../plugin/src/shared/rpc-utils.ts
6
6
  import { execFile, execFileSync } from "node:child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  log2
3
- } from "./index-x3dcnxh0.js";
3
+ } from "./index-gycf3sp7.js";
4
4
 
5
5
  // ../plugin/src/shared/write-transaction-timing.ts
6
6
  var SLOW_WRITE_TRANSACTION_THRESHOLD_MS = 1000;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  log2
3
- } from "./index-x3dcnxh0.js";
3
+ } from "./index-gycf3sp7.js";
4
4
 
5
5
  // ../plugin/src/hooks/magic-context/read-session-formatting.ts
6
6
  import { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
@@ -1,13 +1,14 @@
1
1
  import {
2
+ inRootAsyncContext2,
2
3
  getSqliteDatabasePath2,
3
4
  releaseIndexOwner2
4
- } from "./index-8vbh4tzw.js";
5
+ } from "./index-asrxgdt4.js";
5
6
  import {
6
7
  registerExitAbort
7
8
  } from "./index-399p688g.js";
8
9
  import {
9
10
  log2
10
- } from "./index-x3dcnxh0.js";
11
+ } from "./index-gycf3sp7.js";
11
12
 
12
13
  // ../plugin/src/hooks/magic-context/read-session-raw.ts
13
14
  import { isMainThread } from "node:worker_threads";
@@ -69,7 +70,7 @@ function runSessionWarmupWorker(input, options) {
69
70
  deadline.unref?.();
70
71
  };
71
72
  try {
72
- worker = new Worker(options.entry ?? defaultEntry(), { workerData: input });
73
+ worker = inRootAsyncContext2(() => new Worker(options.entry ?? defaultEntry(), { workerData: input }));
73
74
  } catch (error) {
74
75
  finish({ failure: "start-failed", detail: String(error) });
75
76
  return;
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  estimateTokens
3
- } from "./index-r56xgha8.js";
3
+ } from "./index-4pxydwvg.js";
4
4
  import {
5
5
  getHarness2
6
6
  } from "./index-0h2mkab2.js";
7
7
  import {
8
8
  sessionLog2
9
- } from "./index-x3dcnxh0.js";
9
+ } from "./index-gycf3sp7.js";
10
10
  import {
11
11
  getTagIdentityWriteGeneration2,
12
12
  getSqliteDatabasePath2
13
- } from "./index-8vbh4tzw.js";
13
+ } from "./index-asrxgdt4.js";
14
14
  import {
15
15
  tagOrderConstraintIndex,
16
16
  tagIdentityRevisionKey
17
- } from "./index-mcgehvgw.js";
17
+ } from "./index-zzn7qbps.js";
18
18
  import {
19
19
  DEFAULT_PROTECTED_TOOLS,
20
20
  normalizeProtectedToolName,
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  getTokenEstimatorFingerprint,
3
3
  estimateTokens
4
- } from "./index-r56xgha8.js";
4
+ } from "./index-4pxydwvg.js";
5
5
  import {
6
6
  getHarness2
7
7
  } from "./index-0h2mkab2.js";
8
8
  import {
9
9
  log2
10
- } from "./index-x3dcnxh0.js";
10
+ } from "./index-gycf3sp7.js";
11
11
  import {
12
12
  isSynapseEmbeddingTruncated
13
- } from "./index-21v1kfs7.js";
13
+ } from "./index-szh001qb.js";
14
14
  import {
15
15
  messageFtsOrdinalRangeIsMapped
16
- } from "./index-wf7mwdnf.js";
16
+ } from "./index-fdxzpnbj.js";
17
17
 
18
18
  // ../plugin/src/features/magic-context/compartment-chunk-embedding.ts
19
19
  import { createHash } from "node:crypto";
@@ -3,10 +3,11 @@ import {
3
3
  } from "./index-399p688g.js";
4
4
  import {
5
5
  log2
6
- } from "./index-x3dcnxh0.js";
6
+ } from "./index-gycf3sp7.js";
7
7
  import {
8
+ inRootAsyncContext2,
8
9
  getSqliteDatabasePath2
9
- } from "./index-8vbh4tzw.js";
10
+ } from "./index-asrxgdt4.js";
10
11
 
11
12
  // ../plugin/src/features/magic-context/compaction-marker-candidates.ts
12
13
  import { existsSync, realpathSync } from "node:fs";
@@ -152,7 +153,7 @@ function runCandidateWorker(path, sessionId, options) {
152
153
  timer.unref?.();
153
154
  };
154
155
  try {
155
- worker = new Worker(entry, { workerData: { path, sessionId } });
156
+ worker = inRootAsyncContext2(() => new Worker(entry, { workerData: { path, sessionId } }));
156
157
  workers.add(worker);
157
158
  worker.unref();
158
159
  deadline(options.acceptMs ?? 2000);
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  DEFAULT_LOCAL_EMBEDDING_MODEL
3
- } from "./index-cyrnv16r.js";
3
+ } from "./index-ta0ed2nc.js";
4
4
  import {
5
5
  getSynapseLaneIdentity
6
- } from "./index-21v1kfs7.js";
6
+ } from "./index-szh001qb.js";
7
7
  import {
8
8
  getHarness2
9
9
  } from "./index-0h2mkab2.js";
@@ -11,7 +11,10 @@ import {
11
11
  getMagicContextStorageDir,
12
12
  importPluginModule,
13
13
  log2
14
- } from "./index-x3dcnxh0.js";
14
+ } from "./index-gycf3sp7.js";
15
+ import {
16
+ inRootAsyncContext2
17
+ } from "./index-asrxgdt4.js";
15
18
  import {
16
19
  computeNormalizedHash
17
20
  } from "./index-9x1f96r8.js";
@@ -307,7 +310,7 @@ class EmbeddingWorkerClient {
307
310
  start() {
308
311
  if (this.startPromise)
309
312
  return this.startPromise;
310
- this.startPromise = this.startOwner().finally(() => {
313
+ this.startPromise = inRootAsyncContext2(() => this.startOwner()).finally(() => {
311
314
  this.startPromise = null;
312
315
  });
313
316
  return this.startPromise;
@@ -556,10 +559,10 @@ async function acquireModelLoadLock(lockPath) {
556
559
  }
557
560
  function startLockHeartbeat(lockPath) {
558
561
  const HEARTBEAT_MS = Math.floor(STALE_LOCK_MS / 3);
559
- const timer = setInterval(() => {
562
+ const timer = inRootAsyncContext2(() => setInterval(() => {
560
563
  writeStorageFileAsync(lockPath, `pid=${process.pid} alive=${Date.now()}
561
564
  `).catch(() => {});
562
- }, HEARTBEAT_MS);
565
+ }, HEARTBEAT_MS));
563
566
  timer.unref?.();
564
567
  return () => clearInterval(timer);
565
568
  }