@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.
Files changed (57) hide show
  1. package/dist/auto-search-worker.js +1 -1
  2. package/dist/chunk-embedding-write-worker.js +1 -1
  3. package/dist/{context-836j3vte.js → context-vnfr6d7t.js} +156 -32
  4. package/dist/features/magic-context/work-metrics.d.ts.map +1 -1
  5. package/dist/hooks/magic-context/history-boundary-repair.d.ts +1 -1
  6. package/dist/hooks/magic-context/history-boundary-repair.d.ts.map +1 -1
  7. package/dist/hooks/magic-context/strip-content.d.ts +1 -1
  8. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  9. package/dist/{index-zhgqgxtt.js → index-0fe4q77z.js} +7 -5
  10. package/dist/{index-a1h316s9.js → index-3jmx3fae.js} +1 -1
  11. package/dist/{index-tx68g9nc.js → index-4s4zq97n.js} +1 -1
  12. package/dist/{index-wyt5m81v.js → index-69gd2scx.js} +3 -3
  13. package/dist/{index-093c4g1c.js → index-adr4vfys.js} +2 -2
  14. package/dist/{index-wpcdk76y.js → index-ekzzw66a.js} +19 -16
  15. package/dist/{index-h4s5jk7f.js → index-hbt0sbv2.js} +1 -1
  16. package/dist/{index-q9zvphbq.js → index-k0dpkyn7.js} +38 -7
  17. package/dist/{index-wvffze8y.js → index-vtz789ex.js} +1 -1
  18. package/dist/{index-bps8vn9r.js → index-vzz570j8.js} +3 -3
  19. package/dist/index.js +13 -13
  20. package/dist/{message-index-bounded-7qsn4fd3.js → message-index-bounded-zq7a5nm6.js} +2 -2
  21. package/dist/migration-worker.js +1 -1
  22. package/dist/raw-ordinal-warmup-worker.js +2 -2
  23. package/dist/{read-session-chunk-a5d0q3m0.js → read-session-chunk-1ndphmb8.js} +1 -1
  24. package/dist/{recomp-orchestrator-na34m4c5.js → recomp-orchestrator-w3pjp33d.js} +5 -5
  25. package/dist/{search-archive-66pm17gm.js → search-archive-sr07c6aj.js} +2 -2
  26. package/dist/{search-0cd6hx7a.js → search-fbaz1m8r.js} +3 -3
  27. package/dist/shared/marker-only-text.d.ts +2 -0
  28. package/dist/shared/marker-only-text.d.ts.map +1 -0
  29. package/dist/{transform-postprocess-phase-27we33af.js → transform-postprocess-phase-6ccazq85.js} +5 -5
  30. package/dist/v2/auto-search-worker.js +1 -1
  31. package/dist/v2/chunk-embedding-write-worker.js +1 -1
  32. package/dist/v2/{context-g4ptae4x.js → context-wx4sfhgr.js} +162 -36
  33. package/dist/v2/hidden-child-cleanup.d.ts.map +1 -1
  34. package/dist/v2/hidden-child-native.d.ts.map +1 -1
  35. package/dist/v2/hooks/context.d.ts.map +1 -1
  36. package/dist/v2/{message-index-bounded-7363502m.js → message-index-bounded-jvgz7vk9.js} +2 -2
  37. package/dist/v2/message-times.d.ts +17 -0
  38. package/dist/v2/message-times.d.ts.map +1 -0
  39. package/dist/v2/migration-worker.js +1 -1
  40. package/dist/v2/raw-ordinal-warmup-worker.js +2 -2
  41. package/dist/v2/{read-session-chunk-kkppfhft.js → read-session-chunk-djzgm4jg.js} +1 -1
  42. package/dist/v2/{recomp-orchestrator-f1df1gb8.js → recomp-orchestrator-wb28kr9k.js} +4 -4
  43. package/dist/v2/{search-archive-v07jpw25.js → search-archive-n3dhns4r.js} +2 -2
  44. package/dist/v2/{search-2v3xyzse.js → search-q3jjw6zp.js} +3 -3
  45. package/dist/v2/{server-976dxaxh.js → server-42nebt63.js} +1 -1
  46. package/dist/v2/{server-77gznpmf.js → server-d01pe8q5.js} +1 -1
  47. package/dist/v2/{server-k9je35ev.js → server-hwag0khr.js} +1 -1
  48. package/dist/v2/{server-q50ttc2g.js → server-k33t88h3.js} +38 -7
  49. package/dist/v2/{server-mxzj3r0y.js → server-rb8m4vry.js} +7 -5
  50. package/dist/v2/{server-w79f8ejn.js → server-rr4cbkr0.js} +1 -1
  51. package/dist/v2/server.js +2 -2
  52. package/dist/v2/store-reader.d.ts +14 -2
  53. package/dist/v2/store-reader.d.ts.map +1 -1
  54. package/dist/v2/{wrapup-orchestrator-jq33fda8.js → wrapup-orchestrator-2t0pdqzm.js} +4 -4
  55. package/dist/{wrapup-orchestrator-f0xr7pft.js → wrapup-orchestrator-kjmkms5g.js} +6 -6
  56. package/package.json +1 -1
  57. package/src/shared/marker-only-text.ts +8 -0
@@ -77,7 +77,6 @@ import {
77
77
  isCompartmentLeaseHeld,
78
78
  queueM0Mutation,
79
79
  getMaxM0MutationId,
80
- getCompartments,
81
80
  getLastCompartmentEndMessage,
82
81
  getLastCompartmentEndMessageId,
83
82
  getUncoveredCompartmentEndsThrough,
@@ -305,7 +304,7 @@ import {
305
304
  startCompartmentAgent,
306
305
  setRecompStarting2,
307
306
  setRecompTerminal2
308
- } from "./server-q50ttc2g.js";
307
+ } from "./server-k33t88h3.js";
309
308
  import {
310
309
  resolveHistorianModel2
311
310
  } from "./server-5kym00ag.js";
@@ -330,7 +329,7 @@ import {
330
329
  openDatabaseAsync,
331
330
  isDatabasePersisted,
332
331
  getDatabasePersistenceError
333
- } from "./server-77gznpmf.js";
332
+ } from "./server-d01pe8q5.js";
334
333
  import {
335
334
  pruneMissingProjectIdentities,
336
335
  setHomeProjectPermission,
@@ -482,6 +481,7 @@ import {
482
481
  } from "./server-3mz2qh5a.js";
483
482
  import {
484
483
  stableStringify,
484
+ getTableColumnNames,
485
485
  getTemporalDecisions,
486
486
  observeTemporalDecisions,
487
487
  freezeTemporalDecisions,
@@ -702,7 +702,7 @@ import {
702
702
  readRawSessionMessageById2,
703
703
  readSessionChunk2,
704
704
  readRawSessionSeedTail2
705
- } from "./server-mxzj3r0y.js";
705
+ } from "./server-rb8m4vry.js";
706
706
  import {
707
707
  BoundedSessionMap,
708
708
  recordToolDefinitionSet,
@@ -717,7 +717,7 @@ import {
717
717
  isMessageIndexReconciledThrough,
718
718
  clearIndexedMessages,
719
719
  indexMessagesAfterOrdinal
720
- } from "./server-k9je35ev.js";
720
+ } from "./server-hwag0khr.js";
721
721
  import"./server-awr8qa4c.js";
722
722
  import {
723
723
  embedPauseBySession,
@@ -916,14 +916,14 @@ import {
916
916
  resolveMemoriesByIdsForSearch2,
917
917
  unifiedSearch2,
918
918
  formatSearchResults2
919
- } from "./server-976dxaxh.js";
919
+ } from "./server-42nebt63.js";
920
920
  import {
921
921
  resolvePromptContext2
922
922
  } from "./server-fmsr7v69.js";
923
923
  import"./server-kaqs6h31.js";
924
924
  import {
925
925
  renderSearchArchiveOffThread2
926
- } from "./server-w79f8ejn.js";
926
+ } from "./server-rr4cbkr0.js";
927
927
  import {
928
928
  compareSemverCore
929
929
  } from "./server-84w6rvvf.js";
@@ -3381,6 +3381,26 @@ class EmergencyFailClosedError extends Error {
3381
3381
  }
3382
3382
 
3383
3383
  // src/hooks/magic-context/history-boundary-repair.ts
3384
+ function readStoreBoundaries(db, sessionId) {
3385
+ const columns = getTableColumnNames(db, "compartments");
3386
+ const numbers = ["id", "sequence", "start_message", "end_message", "created_at"];
3387
+ const strings = ["session_id", "start_message_id", "end_message_id", "title", "content"];
3388
+ const predicates = [...numbers, ...strings].every((column) => columns.has(column)) ? [
3389
+ ...numbers.map((column) => `typeof(${column}) IN ('integer', 'real')`),
3390
+ ...strings.map((column) => `typeof(${column}) = 'text'`)
3391
+ ] : ["0"];
3392
+ for (const column of ["p1", "p2", "p3", "p4", "episode_type"]) {
3393
+ if (columns.has(column))
3394
+ predicates.push(`typeof(${column}) IN ('text', 'null')`);
3395
+ }
3396
+ for (const column of ["importance", "legacy"]) {
3397
+ if (columns.has(column))
3398
+ predicates.push(`typeof(${column}) IN ('integer', 'real', 'null')`);
3399
+ }
3400
+ return db.prepare(`SELECT sequence, ${columns.has("end_message_id") ? "end_message_id" : "NULL"} AS endMessageId
3401
+ FROM compartments WHERE session_id = ? AND ${predicates.join(" AND ")}
3402
+ ORDER BY sequence ASC`).all(sessionId);
3403
+ }
3384
3404
  function readBaseline(db, sessionId) {
3385
3405
  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);
3386
3406
  return {
@@ -3447,7 +3467,7 @@ function dropCompartmentsAfter(db, sessionId, anchor, holderId, activeBranch = f
3447
3467
  }
3448
3468
  function repairMissingHistoryBoundary(args) {
3449
3469
  const { db, sessionId, isInHostStore, scope = "store" } = args;
3450
- 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) : getCompartments(db, sessionId);
3470
+ 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);
3451
3471
  let latestIndex = compartments.length - 1;
3452
3472
  while (latestIndex >= 0 && !compartments[latestIndex]?.endMessageId)
3453
3473
  latestIndex -= 1;
@@ -3491,7 +3511,7 @@ function repairMissingHistoryBoundary(args) {
3491
3511
  let dropped;
3492
3512
  let anchorForDrop = anchor;
3493
3513
  try {
3494
- if (scope === "active-branch" && anchor) {
3514
+ if (anchor) {
3495
3515
  const row = db.prepare("SELECT end_message AS endMessage FROM compartments WHERE session_id = ? AND sequence = ?").get(sessionId, anchor.sequence);
3496
3516
  if (!row)
3497
3517
  return { kind: "unresolved", reason: "busy", missingEndMessageId: missing };
@@ -22381,6 +22401,13 @@ WHERE session_id = ?
22381
22401
  AND (time_created > ? OR (time_created = ? AND id > ?))
22382
22402
  ORDER BY time_created, id`;
22383
22403
  var V2_ASSISTANT_USAGE_ROWS_AFTER_SQL = `
22404
+ WITH newer AS (
22405
+ SELECT id, seq, data FROM session_message
22406
+ WHERE session_id = ? AND type = 'assistant' AND data IS NOT NULL AND seq > ?
22407
+ UNION ALL
22408
+ SELECT id, seq, data FROM session_message
22409
+ WHERE session_id = ? AND type = 'assistant' AND data IS NOT NULL AND seq = ? AND id > ?
22410
+ )
22384
22411
  SELECT
22385
22412
  json_extract(data, '$.agent') AS agent,
22386
22413
  seq AS time_created,
@@ -22389,14 +22416,10 @@ SELECT
22389
22416
  + COALESCE(json_extract(data, '$.tokens.cache.read'), 0)
22390
22417
  + COALESCE(json_extract(data, '$.tokens.cache.write'), 0) AS prompt,
22391
22418
  COALESCE(json_extract(data, '$.tokens.output'), 0) AS output
22392
- FROM session_message
22393
- WHERE session_id = ?
22394
- AND type = 'assistant'
22395
- AND data IS NOT NULL
22396
- AND (seq > ? OR (seq = ? AND id > ?))
22419
+ FROM newer
22397
22420
  ORDER BY seq, id`;
22398
22421
  function readAssistantUsageRowsAfter(openCodeDb, sessionId, afterTimeCreated, afterId, generation = "v1") {
22399
- const rows = openCodeDb.prepare(generation === "v2" ? V2_ASSISTANT_USAGE_ROWS_AFTER_SQL : ASSISTANT_USAGE_ROWS_AFTER_SQL).all(sessionId, afterTimeCreated, afterTimeCreated, afterId);
22422
+ 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]);
22400
22423
  return rows.map((r) => ({
22401
22424
  agent: r.agent ?? null,
22402
22425
  timeCreated: Number(r.time_created ?? 0),
@@ -23987,7 +24010,7 @@ function registerRpcHandlers(rpcServer, args) {
23987
24010
  const db = readDatabase();
23988
24011
  if (!db)
23989
24012
  return { ok: false, error: "db unavailable" };
23990
- const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-f1df1gb8.js"));
24013
+ const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-wb28kr9k.js"));
23991
24014
  const { sendIgnoredMessage } = await importPluginModule(() => import("./send-session-notification-x5nzy34v.js"));
23992
24015
  log2(`[rpc] recomp requested for session ${sessionId}`);
23993
24016
  if (!args.client && !args.hiddenCompletionExecutor) {
@@ -24072,7 +24095,7 @@ function registerRpcHandlers(rpcServer, args) {
24072
24095
  const db = readDatabase();
24073
24096
  if (!db)
24074
24097
  return { ok: false, error: "db unavailable" };
24075
- const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-jq33fda8.js"));
24098
+ const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-2t0pdqzm.js"));
24076
24099
  const model = liveSessionState.liveModelBySession.get(sessionId);
24077
24100
  const contextLimit = model ? resolveContextLimit(model.providerID, model.modelID, { db, sessionID: sessionId }) : 128000;
24078
24101
  const ctx = {
@@ -26862,6 +26885,7 @@ function createNativeHiddenChildren(host, removeSession, options) {
26862
26885
  const inFlight = removing.get(child.id);
26863
26886
  if (inFlight)
26864
26887
  return inFlight;
26888
+ options.log(`[magic-context] hidden child ${child.id} removing`);
26865
26889
  const done = (async () => {
26866
26890
  try {
26867
26891
  let timer;
@@ -26876,6 +26900,7 @@ function createNativeHiddenChildren(host, removeSession, options) {
26876
26900
  if (timer)
26877
26901
  clearTimeout(timer);
26878
26902
  }
26903
+ options.log(`[magic-context] hidden child ${child.id} removed`);
26879
26904
  } catch (error) {
26880
26905
  if (isSessionNotFound(error))
26881
26906
  return;
@@ -26887,14 +26912,19 @@ function createNativeHiddenChildren(host, removeSession, options) {
26887
26912
  removing.set(child.id, done);
26888
26913
  return done;
26889
26914
  };
26890
- const confirmPlacement = async (sessionID, parentID) => {
26915
+ const noteCreated = (sessionID, role, parentID) => {
26916
+ options.log(`[magic-context] hidden child ${sessionID} created role=${role} parent=${parentID} keep_subagents=${options.keepSubagents}`);
26917
+ };
26918
+ const confirmPlacement = async (sessionID, parentID, role) => {
26891
26919
  let stored;
26892
26920
  try {
26893
26921
  stored = await host.get({ sessionID });
26894
26922
  } catch (error) {
26923
+ noteCreated(sessionID, role, "unknown");
26895
26924
  options.log(`[magic-context] could not read back hidden child ${sessionID} to confirm its parent: ${errorText(error)}`);
26896
26925
  return;
26897
26926
  }
26927
+ noteCreated(sessionID, role, stored.parentID ?? "none");
26898
26928
  const directory = stored.location?.directory;
26899
26929
  if (options.directory !== undefined && directory !== undefined && !sameProjectDirectory(directory, options.directory)) {
26900
26930
  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);
@@ -26923,11 +26953,13 @@ function createNativeHiddenChildren(host, removeSession, options) {
26923
26953
  };
26924
26954
  if (parentID) {
26925
26955
  try {
26926
- await confirmPlacement(created.id, parentID);
26956
+ await confirmPlacement(created.id, parentID, role);
26927
26957
  } catch (error) {
26928
26958
  await remove(child);
26929
26959
  throw error;
26930
26960
  }
26961
+ } else {
26962
+ noteCreated(created.id, role, "none");
26931
26963
  }
26932
26964
  return child;
26933
26965
  };
@@ -26936,16 +26968,22 @@ function createNativeHiddenChildren(host, removeSession, options) {
26936
26968
  open: create,
26937
26969
  create,
26938
26970
  retire(child) {
26939
- if (!kept(child))
26971
+ if (kept(child)) {
26972
+ options.log(`[magic-context] hidden child ${child.id} kept (keep_subagents)`);
26973
+ } else {
26940
26974
  remove(child);
26975
+ }
26941
26976
  },
26942
26977
  async finish(child, retired) {
26943
26978
  if (retired) {
26944
26979
  await removing.get(child.id);
26945
26980
  return;
26946
26981
  }
26947
- if (!kept(child))
26982
+ if (kept(child)) {
26983
+ options.log(`[magic-context] hidden child ${child.id} kept (keep_subagents)`);
26984
+ } else {
26948
26985
  await remove(child);
26986
+ }
26949
26987
  },
26950
26988
  updateModel: (child, model) => ({ ...child, model }),
26951
26989
  markEverSettled: (child) => ({ ...child, ever_settled: true })
@@ -26992,6 +27030,7 @@ async function cleanupLegacyHiddenChildren(db, remove, note, options = {}) {
26992
27030
  timer = setTimeout(() => reject(new Error("session.remove timed out")), Math.min(options.timeoutMs ?? 1000, Math.max(1, deadline - now())));
26993
27031
  })
26994
27032
  ]);
27033
+ note(`[magic-context] legacy hidden child ${child.id} removed`);
26995
27034
  } catch (error) {
26996
27035
  if (!isSessionNotFound(error))
26997
27036
  throw error;
@@ -27899,6 +27938,96 @@ class HiddenModelActivity {
27899
27938
  }
27900
27939
  }
27901
27940
 
27941
+ // src/v2/message-times.ts
27942
+ function isSettled(entry, readAt) {
27943
+ return (entry.version.type === "user" || entry.time.completed !== undefined) && typeof entry.version.updated === "number" && Number.isFinite(entry.version.updated) && entry.version.updated <= readAt - 1000;
27944
+ }
27945
+ function sameVersion(a, b) {
27946
+ return a.type === b.type && a.seq === b.seq && a.created === b.created && a.updated === b.updated;
27947
+ }
27948
+
27949
+ class V2MessageTimesCache {
27950
+ capacity;
27951
+ sessions = new Map;
27952
+ constructor(capacity = 64) {
27953
+ this.capacity = capacity;
27954
+ }
27955
+ delete(sessionID) {
27956
+ this.sessions.delete(sessionID);
27957
+ }
27958
+ deleteMessage(sessionID, messageID) {
27959
+ this.sessions.get(sessionID)?.entries.delete(messageID);
27960
+ }
27961
+ clear() {
27962
+ this.sessions.clear();
27963
+ }
27964
+ pass(sessionID) {
27965
+ const previous = this.sessions.get(sessionID);
27966
+ const current = { entries: new Map };
27967
+ this.sessions.delete(sessionID);
27968
+ this.sessions.set(sessionID, current);
27969
+ while (this.sessions.size > this.capacity) {
27970
+ const oldest = this.sessions.keys().next().value;
27971
+ if (oldest === undefined)
27972
+ break;
27973
+ this.sessions.delete(oldest);
27974
+ }
27975
+ const passTimes = new Map;
27976
+ return (reader, ids) => {
27977
+ const missing = [...new Set(ids)].filter((id) => !passTimes.has(id));
27978
+ if (missing.length > 0) {
27979
+ const readAt = Date.now();
27980
+ const identity = reader.hostIdentity();
27981
+ current.identity = identity;
27982
+ const reusable = previous?.identity === identity ? previous.entries : undefined;
27983
+ const known = [];
27984
+ const refresh = [];
27985
+ let first = Infinity;
27986
+ let last = -Infinity;
27987
+ for (const id of missing) {
27988
+ const entry = reusable?.get(id);
27989
+ if (entry && isSettled(entry, readAt)) {
27990
+ known.push(id);
27991
+ first = Math.min(first, entry.version.seq);
27992
+ last = Math.max(last, entry.version.seq);
27993
+ } else
27994
+ refresh.push(id);
27995
+ }
27996
+ const versions = reader.messageTimeVersions(sessionID, known, { first, last });
27997
+ for (const id of known) {
27998
+ const version = versions.get(id);
27999
+ const cached = reusable?.get(id);
28000
+ if (!version) {
28001
+ passTimes.set(id, null);
28002
+ } else if (cached && sameVersion(cached.version, version) && (version.type === "user" || cached.time.completed !== undefined)) {
28003
+ current.entries.set(id, cached);
28004
+ passTimes.set(id, cached.time);
28005
+ } else
28006
+ refresh.push(id);
28007
+ }
28008
+ const times = reader.messageTimes(sessionID, refresh, versions);
28009
+ for (const id of refresh) {
28010
+ const time = times.get(id);
28011
+ const version = versions.get(id);
28012
+ passTimes.set(id, time ?? null);
28013
+ if (time && version) {
28014
+ const entry = { version, time };
28015
+ if (isSettled(entry, readAt))
28016
+ current.entries.set(id, entry);
28017
+ }
28018
+ }
28019
+ }
28020
+ const result = new Map;
28021
+ for (const id of ids) {
28022
+ const time = passTimes.get(id);
28023
+ if (time)
28024
+ result.set(id, { ...time });
28025
+ }
28026
+ return result;
28027
+ };
28028
+ }
28029
+ }
28030
+
27902
28031
  // src/v2/hooks/channel2.ts
27903
28032
  import { randomBytes as randomBytes2 } from "node:crypto";
27904
28033
  var pendingCandidates = new WeakMap;
@@ -53251,6 +53380,7 @@ function coveredInstructionRows(reader, sessionID, throughSeq, model) {
53251
53380
  async function registerContext(context) {
53252
53381
  const directory = context.location.directory;
53253
53382
  const config = loadPluginConfigDetailed(directory).config;
53383
+ log2(`[magic-context] OpenCode 2 keep_subagents=${config.keep_subagents === true}`);
53254
53384
  setHomeProjectPermission(config.allow_home_project);
53255
53385
  if (!config.enabled)
53256
53386
  return;
@@ -53383,6 +53513,7 @@ async function registerContext(context) {
53383
53513
  });
53384
53514
  let hiddenAgentsReady;
53385
53515
  const readerPool = new V2StoreReaderPool;
53516
+ const messageTimesCache = new V2MessageTimesCache;
53386
53517
  const openStoreReader = () => readerPool.open(gaDatabasePath(getDataDir(), process.env.OPENCODE_CHANNEL ?? "latest"));
53387
53518
  const createHiddenExecutor = async (database) => {
53388
53519
  await cleanupLegacyOnce(database);
@@ -53746,6 +53877,12 @@ async function registerContext(context) {
53746
53877
  if (event.type?.startsWith("session.revert.") || event.type === "session.message.content.updated") {
53747
53878
  nativeFoldReplay?.onEvent(event);
53748
53879
  restoredRows.forget(sessionID);
53880
+ messageTimesCache.delete(sessionID);
53881
+ }
53882
+ if (event.type === "session.step.started" || event.type === "session.step.ended" || event.type === "session.step.failed") {
53883
+ const messageID = event.data.assistantMessageID;
53884
+ if (typeof messageID === "string")
53885
+ messageTimesCache.deleteMessage(sessionID, messageID);
53749
53886
  }
53750
53887
  if (event.type === "session.error" || event.type === "session.execution.failed") {
53751
53888
  const error = hiddenTerminalError(event);
@@ -53784,6 +53921,7 @@ async function registerContext(context) {
53784
53921
  rawProviders.get(sessionID)?.();
53785
53922
  rawProviders.delete(sessionID);
53786
53923
  usage.delete(sessionID);
53924
+ messageTimesCache.delete(sessionID);
53787
53925
  hiddenSessionErrors.delete(sessionID);
53788
53926
  storageNoticeBySession.delete(sessionID);
53789
53927
  liveModels.delete(sessionID);
@@ -54078,22 +54216,9 @@ async function registerContext(context) {
54078
54216
  }
54079
54217
  await dropStorageNotices(draft.messages, isMagicContextSynthetic);
54080
54218
  const hostMessagesAtEntry = [...draft.messages];
54081
- const passTimes = new Map;
54219
+ const cachedTimes = messageTimesCache.pass(draft.sessionID);
54082
54220
  const readTimes = (reader, messages) => {
54083
- const ids = timeIds(messages);
54084
- const missing = ids.filter((id) => !passTimes.has(id));
54085
- if (missing.length > 0) {
54086
- const read = reader.messageTimes(draft.sessionID, missing);
54087
- for (const id of missing)
54088
- passTimes.set(id, read.get(id) ?? null);
54089
- }
54090
- const times = new Map;
54091
- for (const id of ids) {
54092
- const time = passTimes.get(id);
54093
- if (time)
54094
- times.set(id, time);
54095
- }
54096
- return times;
54221
+ return cachedTimes(reader, timeIds(messages));
54097
54222
  };
54098
54223
  liveModels.set(draft.sessionID, {
54099
54224
  providerID: draft.model.providerID,
@@ -54618,6 +54743,7 @@ async function registerContext(context) {
54618
54743
  }, 0));
54619
54744
  return {
54620
54745
  async dispose() {
54746
+ messageTimesCache.clear();
54621
54747
  usageController.abort();
54622
54748
  await hiddenCompletionExecutor?.dispose();
54623
54749
  await usageDone;
@@ -1 +1 @@
1
- {"version":3,"file":"hidden-child-cleanup.d.ts","sourceRoot":"","sources":["../../src/v2/hidden-child-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAWjD,kFAAkF;AAClF,wBAAsB,2BAA2B,CAC7C,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EACvD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAC5F,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
1
+ {"version":3,"file":"hidden-child-cleanup.d.ts","sourceRoot":"","sources":["../../src/v2/hidden-child-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAWjD,kFAAkF;AAClF,wBAAsB,2BAA2B,CAC7C,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,EACvD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO,GAC5F,OAAO,CAAC,IAAI,CAAC,CA2Ff"}
@@ -1 +1 @@
1
- {"version":3,"file":"hidden-child-native.d.ts","sourceRoot":"","sources":["../../src/v2/hidden-child-native.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAM5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;GAMG;AAEH,KAAK,aAAa,GAAG,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAI9E;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQzD;AAMD,qDAAqD;AACrD,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,wBAAgB,0BAA0B,CACtC,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE;IACL,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GACF,oBAAoB,CAoItB"}
1
+ {"version":3,"file":"hidden-child-native.d.ts","sourceRoot":"","sources":["../../src/v2/hidden-child-native.ts"],"names":[],"mappings":"AAKA,OAAO,EAGH,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAM5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;GAMG;AAEH,KAAK,aAAa,GAAG,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAI9E;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQzD;AAMD,qDAAqD;AACrD,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,wBAAgB,0BAA0B,CACtC,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE;IACL,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GACF,oBAAoB,CAwJtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/v2/hooks/context.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import"./server-cpjk5jd2.js";
15
15
  import"./server-6vd2n183.js";
16
16
  import"./server-2ra6pwf3.js";
17
17
  import"./server-a7x00tw8.js";
18
- import"./server-mxzj3r0y.js";
18
+ import"./server-rb8m4vry.js";
19
19
  import"./server-cqjvxyrp.js";
20
20
  import {
21
21
  MESSAGE_INDEX_MAX_FTS_BYTES,
@@ -24,7 +24,7 @@ import {
24
24
  markMessageIndexDirty,
25
25
  getIndexableContent,
26
26
  indexSingleMessage
27
- } from "./server-k9je35ev.js";
27
+ } from "./server-hwag0khr.js";
28
28
  import"./server-awr8qa4c.js";
29
29
  import"./server-gyy4k6mf.js";
30
30
 
@@ -0,0 +1,17 @@
1
+ import type { V2StoreReader } from "./store-reader";
2
+ type Times = {
3
+ created?: number;
4
+ completed?: number;
5
+ };
6
+ /** Reuse settled times, but check current membership before returning a cached value. */
7
+ export declare class V2MessageTimesCache {
8
+ private readonly capacity;
9
+ private readonly sessions;
10
+ constructor(capacity?: number);
11
+ delete(sessionID: string): void;
12
+ deleteMessage(sessionID: string, messageID: string): void;
13
+ clear(): void;
14
+ pass(sessionID: string): (reader: V2StoreReader, ids: readonly string[]) => Map<string, Times>;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=message-times.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-times.d.ts","sourceRoot":"","sources":["../../src/v2/message-times.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE1E,KAAK,KAAK,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAsBtD,yFAAyF;AACzF,qBAAa,mBAAmB;IAGhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;gBAE/B,QAAQ,SAAK;IAE1C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzD,KAAK,IAAI,IAAI;IAIb,IAAI,CAAC,SAAS,EAAE,MAAM,IAWV,QAAQ,aAAa,EAAE,KAAK,SAAS,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;CAuDjF"}
@@ -18,7 +18,7 @@ import"./server-fb3zxn06.js";
18
18
  import {
19
19
  setSqlitePragmaConfig,
20
20
  initializeDatabase
21
- } from "./server-77gznpmf.js";
21
+ } from "./server-d01pe8q5.js";
22
22
  import"./server-51779zs2.js";
23
23
  import"./server-cpjk5jd2.js";
24
24
  import"./server-6vd2n183.js";
@@ -51,7 +51,7 @@ async function main() {
51
51
  await runMessageFtsRowidMapBackfill(db);
52
52
  reply = { kind: "fts-rowid-backfill" };
53
53
  } else if (input.searchArchive) {
54
- const { renderSearchArchive } = await import("./search-archive-v07jpw25.js");
54
+ const { renderSearchArchive } = await import("./search-archive-n3dhns4r.js");
55
55
  const { readRawSessionMessageIdOrdinalsForRangeFromDb } = await import("./read-session-raw-5x088amc.js");
56
56
  const archive = input.searchArchive;
57
57
  let raw;
@@ -81,7 +81,7 @@ async function main() {
81
81
  const { setHarness } = await import("./harness-e4avh192.js");
82
82
  setHarness(input.harness ?? "opencode");
83
83
  const [{ indexMessageInShortChunks }, { configureContextDatabasePragmas }] = await Promise.all([
84
- import("./message-index-bounded-7363502m.js"),
84
+ import("./message-index-bounded-jvgz7vk9.js"),
85
85
  import("./sqlite-context-pragmas-mv9jqwjh.js")
86
86
  ]);
87
87
  configureContextDatabasePragmas(db);
@@ -36,7 +36,7 @@ import {
36
36
  readSessionChunk2,
37
37
  getRawSessionMessageIdsThrough2,
38
38
  readRawSessionSeedTail2
39
- } from "./server-mxzj3r0y.js";
39
+ } from "./server-rb8m4vry.js";
40
40
  import"./server-nxas8v1d.js";
41
41
  import"./server-1zx87sdm.js";
42
42
  import"./server-a7x00tw8.js";
@@ -7,10 +7,10 @@ import {
7
7
  setRecompTerminal2,
8
8
  buildRecompDeps2,
9
9
  runManagedRecomp2
10
- } from "./server-q50ttc2g.js";
10
+ } from "./server-k33t88h3.js";
11
11
  import"./server-806rzhs6.js";
12
12
  import"./server-ph300d6m.js";
13
- import"./server-k9je35ev.js";
13
+ import"./server-hwag0khr.js";
14
14
  import"./server-p0snacz3.js";
15
15
  import"./server-jjvbk92s.js";
16
16
  import"./server-zh3esb0z.js";
@@ -18,7 +18,7 @@ import"./server-4dhv7mqz.js";
18
18
  import"./server-53eh1r8r.js";
19
19
  import"./server-qc915kw2.js";
20
20
  import"./server-qt1qqasc.js";
21
- import"./server-mxzj3r0y.js";
21
+ import"./server-rb8m4vry.js";
22
22
  import"./server-nxas8v1d.js";
23
23
  import"./server-1zx87sdm.js";
24
24
  import"./server-a7x00tw8.js";
@@ -31,7 +31,7 @@ import"./server-24g8r2d0.js";
31
31
  import"./server-bsgd4dk1.js";
32
32
  import"./server-4sn3at8p.js";
33
33
  import"./server-ab1g0wn9.js";
34
- import"./server-77gznpmf.js";
34
+ import"./server-d01pe8q5.js";
35
35
  import"./server-fb3zxn06.js";
36
36
  import"./server-6g98c227.js";
37
37
  import"./server-fr0wbhdn.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  renderSearchArchive2,
3
3
  renderSearchArchiveOffThread2
4
- } from "./server-w79f8ejn.js";
4
+ } from "./server-rr4cbkr0.js";
5
5
  import"./server-kaqs6h31.js";
6
- import"./server-mxzj3r0y.js";
6
+ import"./server-rb8m4vry.js";
7
7
  import"./server-nxas8v1d.js";
8
8
  import"./server-1zx87sdm.js";
9
9
  import"./server-a7x00tw8.js";
@@ -5,16 +5,16 @@ import {
5
5
  resolveMemoriesByIdsForSearch2,
6
6
  unifiedSearch2,
7
7
  formatSearchResults2
8
- } from "./server-976dxaxh.js";
8
+ } from "./server-42nebt63.js";
9
9
  import"./server-kaqs6h31.js";
10
10
  import"./server-ph300d6m.js";
11
- import"./server-k9je35ev.js";
11
+ import"./server-hwag0khr.js";
12
12
  import"./server-p0snacz3.js";
13
13
  import"./server-jjvbk92s.js";
14
14
  import"./server-zh3esb0z.js";
15
15
  import"./server-4dhv7mqz.js";
16
16
  import"./server-qt1qqasc.js";
17
- import"./server-mxzj3r0y.js";
17
+ import"./server-rb8m4vry.js";
18
18
  import"./server-nxas8v1d.js";
19
19
  import"./server-1zx87sdm.js";
20
20
  import"./server-a7x00tw8.js";
@@ -69,7 +69,7 @@ import {
69
69
  keywordRelevance,
70
70
  matchedSearchSnippet,
71
71
  getIndexedMessageCorpusSize
72
- } from "./server-k9je35ev.js";
72
+ } from "./server-hwag0khr.js";
73
73
  import {
74
74
  MESSAGE_FTS_SESSION_FILTER_SQL,
75
75
  withMessageFtsSessionFilter
@@ -1221,7 +1221,7 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
1221
1221
  state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
1222
1222
  if (signal.aborted || !readsOpenCodeStore)
1223
1223
  return;
1224
- const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-kkppfhft.js"));
1224
+ const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-djzgm4jg.js"));
1225
1225
  const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-zvthw6xb.js"));
1226
1226
  if (signal.aborted)
1227
1227
  return;
@@ -9,7 +9,7 @@ import {
9
9
  } from "./server-pavzsdc6.js";
10
10
  import {
11
11
  cleanUserText2
12
- } from "./server-mxzj3r0y.js";
12
+ } from "./server-rb8m4vry.js";
13
13
  import {
14
14
  recordMessageFtsRowid2,
15
15
  recordIndexedMessageTime2,