@cortexkit/opencode-magic-context 0.49.16 → 0.49.17

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 (204) hide show
  1. package/dist/auto-search-worker.js +76 -63
  2. package/dist/chunk-embedding-write-worker.js +11 -11
  3. package/dist/{compaction-marker-candidates-v5c6997n.js → compaction-marker-candidates-n4krhat4.js} +2 -2
  4. package/dist/compaction-marker-candidates-worker.js +2 -2
  5. package/dist/config/schema/magic-context.d.ts +394 -394
  6. package/dist/{conflict-warning-hook-znry4j76.js → conflict-warning-hook-4pmz879v.js} +5 -5
  7. package/dist/{context-3znk23va.js → context-yhetp0kn.js} +294 -144
  8. package/dist/{embedding-backfill-q4n8dend.js → embedding-backfill-fmz50tsy.js} +11 -11
  9. package/dist/embedding-worker-process.js +1 -1
  10. package/dist/embedding-worker.js +4 -4
  11. package/dist/features/magic-context/compartment-chunk-embedding.d.ts +1 -1
  12. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  13. package/dist/features/magic-context/git-commits/indexer.d.ts.map +1 -1
  14. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  15. package/dist/features/magic-context/memory/project-identity-cache.d.ts +2 -0
  16. package/dist/features/magic-context/memory/project-identity-cache.d.ts.map +1 -1
  17. package/dist/features/magic-context/message-index-async.d.ts +1 -1
  18. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  19. package/dist/features/magic-context/message-index.d.ts +5 -0
  20. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  21. package/dist/features/magic-context/search.d.ts +6 -1
  22. package/dist/features/magic-context/search.d.ts.map +1 -1
  23. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  24. package/dist/features/magic-context/storage-meta-shared.d.ts +2 -2
  25. package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
  26. package/dist/features/magic-context/storage-session-tables.d.ts +9 -1
  27. package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -1
  28. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  29. package/dist/hooks/magic-context/auto-search-deadline.d.ts +2 -1
  30. package/dist/hooks/magic-context/auto-search-deadline.d.ts.map +1 -1
  31. package/dist/hooks/magic-context/auto-search-hint.d.ts +3 -0
  32. package/dist/hooks/magic-context/auto-search-hint.d.ts.map +1 -1
  33. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
  34. package/dist/hooks/magic-context/auto-search-worker-client.d.ts +10 -2
  35. package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -1
  36. package/dist/hooks/magic-context/compartment-runner-historian.d.ts +2 -0
  37. package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
  38. package/dist/hooks/magic-context/historian-host-runner.d.ts.map +1 -1
  39. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  40. package/dist/hooks/magic-context/lkg-recovery-fence.d.ts.map +1 -1
  41. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  42. package/dist/hooks/magic-context/system-prompt-diagnostics.d.ts +8 -0
  43. package/dist/hooks/magic-context/system-prompt-diagnostics.d.ts.map +1 -0
  44. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  45. package/dist/hooks/magic-context/tag-messages.d.ts +6 -1
  46. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  47. package/dist/hooks/magic-context/todo-view.d.ts +2 -2
  48. package/dist/hooks/magic-context/tool-drop-target.d.ts +3 -2
  49. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
  50. package/dist/hooks/magic-context/transform-stage-logger.d.ts +3 -0
  51. package/dist/hooks/magic-context/transform-stage-logger.d.ts.map +1 -1
  52. package/dist/hooks/magic-context/transform.d.ts +1 -0
  53. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  54. package/dist/{index-9nkg2dzk.js → index-24fezq97.js} +3 -3
  55. package/dist/{index-a8bvhwqs.js → index-2vxtcb95.js} +32 -3
  56. package/dist/{index-f71thw8j.js → index-4s3t0nd0.js} +1 -1
  57. package/dist/{index-kn4t1haw.js → index-4yt7dtf4.js} +450 -227
  58. package/dist/{index-v9asb16b.js → index-5a1ex6x8.js} +5 -5
  59. package/dist/{index-fkx2qnvw.js → index-6x57ar45.js} +2 -2
  60. package/dist/{index-dqe8pq4x.js → index-a6mc0v4d.js} +6 -3
  61. package/dist/{index-ayym1x7f.js → index-a7c4r5re.js} +145 -736
  62. package/dist/{index-ek1yxvvz.js → index-aabzay3h.js} +165 -46
  63. package/dist/{index-hehkf6zm.js → index-b5vqckbw.js} +12 -6
  64. package/dist/{v2/server-wafzvyhg.js → index-beht37jy.js} +8 -0
  65. package/dist/{index-7b2cfmaz.js → index-bjcnntmz.js} +2 -2
  66. package/dist/{index-hqkczed7.js → index-c5pytzne.js} +22 -2
  67. package/dist/{index-p4vde22c.js → index-cwzfcbtq.js} +956 -77
  68. package/dist/{index-cj9g0j7a.js → index-fb2qxs2y.js} +7 -7
  69. package/dist/{index-nd7m2a5a.js → index-hqhm3wke.js} +25 -3
  70. package/dist/{index-5mwk1nek.js → index-jn12fvvh.js} +1 -1
  71. package/dist/{index-n6m03s3n.js → index-ke416mdc.js} +1 -1
  72. package/dist/{index-6a6dq53h.js → index-kmdj7dsq.js} +5 -5
  73. package/dist/{index-mtw9e71a.js → index-kq82mtg0.js} +2 -2
  74. package/dist/{index-n78avt2p.js → index-n37sebck.js} +1 -1
  75. package/dist/{index-v63beg1z.js → index-nkpmm9q8.js} +3 -3
  76. package/dist/{index-j6zw70pf.js → index-p7m7j0cp.js} +24 -16
  77. package/dist/{index-wk0n1cgt.js → index-qn7xstt2.js} +2 -2
  78. package/dist/{index-saews2s3.js → index-rr2bb45z.js} +1 -1
  79. package/dist/{index-7pa32z07.js → index-s734jcsr.js} +1 -1
  80. package/dist/{index-b17m64g9.js → index-s74zqahq.js} +1 -1
  81. package/dist/{index-wv9n2zcq.js → index-v8awdgvd.js} +4 -4
  82. package/dist/{index-4qfy7v57.js → index-vrzjhftj.js} +31 -20
  83. package/dist/{index-qrahzcqv.js → index-ze7mvk54.js} +10 -7
  84. package/dist/index.js +39 -39
  85. package/dist/{message-fts-rowid-map-yvx5a9jw.js → message-fts-rowid-map-17s0dfn4.js} +5 -3
  86. package/dist/{message-index-bounded-6th8djy9.js → message-index-bounded-1633vc7f.js} +17 -17
  87. package/dist/{message-index-t4pz7akd.js → message-index-dprebmtt.js} +13 -13
  88. package/dist/{message-time-backfill-8egzkd3z.js → message-time-backfill-73mmm76q.js} +1 -1
  89. package/dist/migration-worker.js +8 -8
  90. package/dist/plugin/dream-timer.d.ts +11 -0
  91. package/dist/plugin/dream-timer.d.ts.map +1 -1
  92. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  93. package/dist/{project-embedding-registry-2dea0a77.js → project-embedding-registry-z74mhqkf.js} +10 -10
  94. package/dist/raw-ordinal-warmup-worker.js +10 -10
  95. package/dist/{read-session-chunk-4pwqxm5a.js → read-session-chunk-4zp09ejb.js} +7 -7
  96. package/dist/{read-session-raw-5ar8se5v.js → read-session-raw-rsc8c7qy.js} +2 -2
  97. package/dist/{recomp-orchestrator-tjcaj5x7.js → recomp-orchestrator-z3ecszx6.js} +24 -24
  98. package/dist/{search-rb01n29x.js → search-6mee3vty.js} +20 -20
  99. package/dist/{search-archive-02jws7hw.js → search-archive-znyy44ve.js} +8 -8
  100. package/dist/{send-session-notification-2x9edkrp.js → send-session-notification-6ve0e8p4.js} +4 -4
  101. package/dist/shared/historian-cache.d.ts +8 -0
  102. package/dist/shared/historian-cache.d.ts.map +1 -0
  103. package/dist/shared/model-suggestion-retry.d.ts +2 -0
  104. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  105. package/dist/shared/rpc-discovery-cleanup.d.ts +3 -0
  106. package/dist/shared/rpc-discovery-cleanup.d.ts.map +1 -0
  107. package/dist/shared/rpc-server.d.ts +2 -0
  108. package/dist/shared/rpc-server.d.ts.map +1 -1
  109. package/dist/shared/search-text.d.ts +8 -0
  110. package/dist/shared/search-text.d.ts.map +1 -0
  111. package/dist/shared/sqlite.d.ts +4 -2
  112. package/dist/shared/sqlite.d.ts.map +1 -1
  113. package/dist/shared/storage-file-mutex.d.ts.map +1 -1
  114. package/dist/shared/subagent-runner.d.ts +2 -0
  115. package/dist/shared/subagent-runner.d.ts.map +1 -1
  116. package/dist/shared/system-directive.d.ts +2 -0
  117. package/dist/shared/system-directive.d.ts.map +1 -1
  118. package/dist/{sqlite-4pqyynrs.js → sqlite-zf72c52d.js} +1 -1
  119. package/dist/{storage-memory-j3v3hc83.js → storage-memory-y3qmy00r.js} +2 -2
  120. package/dist/{storage-tags-4z1w27xa.js → storage-tags-8qns3012.js} +8 -4
  121. package/dist/{transform-postprocess-phase-xaw5c3xp.js → transform-postprocess-phase-3ydzxa62.js} +24 -24
  122. package/dist/v2/auto-search-worker.js +76 -63
  123. package/dist/v2/chunk-embedding-write-worker.js +11 -11
  124. package/dist/v2/{compaction-marker-candidates-1vqwr3s5.js → compaction-marker-candidates-ebx3388k.js} +2 -2
  125. package/dist/v2/compaction-marker-candidates-worker.js +2 -2
  126. package/dist/v2/{context-acw1nhv8.js → context-jn3zpeqh.js} +882 -393
  127. package/dist/v2/embedding-backfill-7c7yr69y.js +23 -0
  128. package/dist/v2/embedding-worker-process.js +1 -1
  129. package/dist/v2/embedding-worker.js +4 -4
  130. package/dist/v2/fold/native-replay.d.ts +11 -2
  131. package/dist/v2/fold/native-replay.d.ts.map +1 -1
  132. package/dist/v2/fold/policy.d.ts.map +1 -1
  133. package/dist/v2/fold/restore.d.ts.map +1 -1
  134. package/dist/v2/hooks/context.d.ts.map +1 -1
  135. package/dist/v2/hooks/hidden-child.d.ts +8 -0
  136. package/dist/v2/hooks/hidden-child.d.ts.map +1 -1
  137. package/dist/v2/hooks/types.d.ts +17 -0
  138. package/dist/v2/hooks/types.d.ts.map +1 -1
  139. package/dist/v2/{message-fts-rowid-map-8vf0v7cr.js → message-fts-rowid-map-wfx67gfd.js} +5 -3
  140. package/dist/v2/{message-index-bounded-dsrf49y7.js → message-index-bounded-hpejqyd8.js} +17 -17
  141. package/dist/v2/{message-index-e6qzw477.js → message-index-pxehjpzx.js} +13 -13
  142. package/dist/v2/{message-time-backfill-q5pgxf0d.js → message-time-backfill-04t0km1z.js} +1 -1
  143. package/dist/v2/migration-worker.js +8 -8
  144. package/dist/v2/{project-embedding-registry-rek75aqw.js → project-embedding-registry-gnkj56xp.js} +10 -10
  145. package/dist/v2/raw-ordinal-warmup-worker.js +10 -10
  146. package/dist/v2/{read-session-chunk-7bpygfv2.js → read-session-chunk-zdppn4bj.js} +7 -7
  147. package/dist/v2/{read-session-raw-pw2n1qgc.js → read-session-raw-yaegtjzh.js} +2 -2
  148. package/dist/v2/{recomp-orchestrator-hzpgg06e.js → recomp-orchestrator-cmqnfpp3.js} +24 -24
  149. package/dist/v2/{search-sf2vg5pk.js → search-66842dya.js} +20 -20
  150. package/dist/v2/{search-archive-fn4wy8sx.js → search-archive-gfh11vs0.js} +8 -8
  151. package/dist/v2/{send-session-notification-hmr7q0nt.js → send-session-notification-3pxn658x.js} +4 -4
  152. package/dist/v2/{server-785mb90s.js → server-1wy7b9de.js} +6 -3
  153. package/dist/v2/{server-g59aatsz.js → server-3rhpvy84.js} +956 -77
  154. package/dist/v2/{server-kqpawe1a.js → server-46neh5fa.js} +12 -6
  155. package/dist/v2/{server-rrqpvwqd.js → server-6tmj0s7j.js} +2 -2
  156. package/dist/v2/{server-kr2kc9dz.js → server-8by8qfec.js} +10 -7
  157. package/dist/v2/{server-vbe4se57.js → server-a9xqj88f.js} +1 -1
  158. package/dist/{index-wafzvyhg.js → v2/server-beht37jy.js} +8 -0
  159. package/dist/v2/{server-05xjtq6c.js → server-d04vrx0j.js} +1 -1
  160. package/dist/v2/{server-zyw55ygv.js → server-ec4ca92p.js} +5 -5
  161. package/dist/v2/{server-6fyp0v67.js → server-fw7wrk01.js} +145 -737
  162. package/dist/v2/{server-zs8d0s3b.js → server-g3qma5c0.js} +1 -1
  163. package/dist/v2/{server-00hx04yn.js → server-gpvay0xz.js} +2 -2
  164. package/dist/v2/{server-r9gjxcte.js → server-gtfhttbr.js} +7 -7
  165. package/dist/v2/{server-gha9x4qq.js → server-h1v0pyxb.js} +2 -2
  166. package/dist/v2/{server-hgg55hde.js → server-hy3d3vsx.js} +1 -1
  167. package/dist/v2/{server-1hcbw661.js → server-kh7dpa1a.js} +24 -16
  168. package/dist/v2/{server-vgpab6rd.js → server-my7k4eds.js} +4 -4
  169. package/dist/v2/{server-d8tj10db.js → server-n1prf1g6.js} +1 -1
  170. package/dist/v2/{server-n78avt2p.js → server-n37sebck.js} +1 -1
  171. package/dist/v2/{server-y5pznjt9.js → server-nj659894.js} +5 -5
  172. package/dist/v2/{server-e3ftpk7v.js → server-rmygf5pn.js} +32 -3
  173. package/dist/v2/{server-0ppsweh6.js → server-tgnbmwah.js} +22 -2
  174. package/dist/v2/{server-n5q841qn.js → server-vsw8tmm6.js} +31 -20
  175. package/dist/v2/{server-6714jebr.js → server-xj136kt8.js} +1 -1
  176. package/dist/v2/{server-0mzjjw3s.js → server-zyzawhdw.js} +25 -3
  177. package/dist/v2/{server-aavz8pm6.js → server-zzkj2fch.js} +3 -3
  178. package/dist/v2/server.js +4 -4
  179. package/dist/v2/{sqlite-4pqyynrs.js → sqlite-zf72c52d.js} +1 -1
  180. package/dist/v2/{storage-memory-j3v3hc83.js → storage-memory-y3qmy00r.js} +2 -2
  181. package/dist/v2/{storage-tags-hkwtbp3g.js → storage-tags-1h8k6ra9.js} +8 -4
  182. package/dist/v2/store-reader.d.ts +2 -0
  183. package/dist/v2/store-reader.d.ts.map +1 -1
  184. package/dist/v2/{wrapup-orchestrator-x4xj1782.js → wrapup-orchestrator-xs8redz9.js} +24 -24
  185. package/dist/wrapup-orchestrator-j7d7ry5b.js +48 -0
  186. package/package.json +1 -1
  187. package/src/config/latch-permanence-guard.test.ts +4 -0
  188. package/src/shared/historian-cache.test.ts +69 -0
  189. package/src/shared/historian-cache.ts +55 -0
  190. package/src/shared/model-suggestion-retry.ts +2 -0
  191. package/src/shared/rpc-discovery-cleanup.test.ts +57 -0
  192. package/src/shared/rpc-discovery-cleanup.ts +57 -0
  193. package/src/shared/rpc-server.ts +36 -13
  194. package/src/shared/search-text.test.ts +47 -0
  195. package/src/shared/search-text.ts +63 -0
  196. package/src/shared/sqlite.test.ts +56 -0
  197. package/src/shared/sqlite.ts +51 -2
  198. package/src/shared/storage-file-mutex-review.test.ts +22 -2
  199. package/src/shared/storage-file-mutex.ts +11 -1
  200. package/src/shared/subagent-runner.ts +2 -0
  201. package/src/shared/system-directive.ts +19 -1
  202. package/src/shared/tag-transcript.ts +12 -4
  203. package/dist/v2/embedding-backfill-jyd6492b.js +0 -23
  204. package/dist/wrapup-orchestrator-vj2tbp22.js +0 -48
@@ -14,10 +14,10 @@ import {
14
14
  withoutSqliteTransformPass2,
15
15
  isTransientSqliteError2,
16
16
  withPrivilegedWriter2
17
- } from "./index-wafzvyhg.js";
17
+ } from "./index-beht37jy.js";
18
18
  import {
19
19
  scheduleAfterBootQuiet
20
- } from "./index-a8bvhwqs.js";
20
+ } from "./index-2vxtcb95.js";
21
21
  import {
22
22
  getHarness2,
23
23
  harnessOwnsOpenCodeStore2
@@ -42,7 +42,7 @@ import {
42
42
  } from "./index-fb3zxn06.js";
43
43
  import {
44
44
  startMessageFtsRowidMapBackfill2
45
- } from "./index-dqe8pq4x.js";
45
+ } from "./index-a6mc0v4d.js";
46
46
  import {
47
47
  LKG_SLOT_CHUNKS_DDL,
48
48
  SESSION_REPLAY_DECISIONS_DDL,
@@ -52,7 +52,7 @@ import {
52
52
  hasPendingMigrations,
53
53
  getMainThreadMigrationBodyCount,
54
54
  runMigrations
55
- } from "./index-wk0n1cgt.js";
55
+ } from "./index-qn7xstt2.js";
56
56
  import {
57
57
  installTagIdentityRevisionTrigger,
58
58
  ensureColumn,
@@ -65,7 +65,7 @@ import {
65
65
  import {
66
66
  setDatabase,
67
67
  loadToolDefinitionMeasurements
68
- } from "./index-n6m03s3n.js";
68
+ } from "./index-ke416mdc.js";
69
69
  import {
70
70
  getErrorMessage
71
71
  } from "./index-y8v6yerm.js";
@@ -1277,8 +1277,8 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
1277
1277
  state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
1278
1278
  if (signal.aborted || !readsOpenCodeStore)
1279
1279
  return;
1280
- const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-4pwqxm5a.js"));
1281
- const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-8egzkd3z.js"));
1280
+ const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-4zp09ejb.js"));
1281
+ const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-73mmm76q.js"));
1282
1282
  if (signal.aborted)
1283
1283
  return;
1284
1284
  await startMessageTimeBackfill(db, Object.assign(readRawSessionMessages, {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-1zx87sdm.js";
5
5
  import {
6
6
  estimateTokens
7
- } from "./index-hqkczed7.js";
7
+ } from "./index-c5pytzne.js";
8
8
  import {
9
9
  getHarness2
10
10
  } from "./index-pavzsdc6.js";
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  getTagIdentityWriteGeneration2,
16
16
  getSqliteDatabasePath2
17
- } from "./index-wafzvyhg.js";
17
+ } from "./index-beht37jy.js";
18
18
  import {
19
19
  tagIdentityRevisionKey,
20
20
  tagOrderConstraintIndex,
@@ -2279,6 +2279,17 @@ function getUpdateTagDropModeStatement(db) {
2279
2279
  }
2280
2280
  var updateTagByteSizeStatements = new WeakMap;
2281
2281
  var updateTagInputByteSizeStatements = new WeakMap;
2282
+ function getUpdateTagByteSizeStatement(db) {
2283
+ let stmt = updateTagByteSizeStatements.get(db);
2284
+ if (!stmt) {
2285
+ stmt = db.prepare("UPDATE tags SET byte_size = ? WHERE session_id = ? AND tag_number = ?");
2286
+ updateTagByteSizeStatements.set(db, stmt);
2287
+ }
2288
+ return stmt;
2289
+ }
2290
+ function updateTagByteSize2(db, sessionId, tagNumber, newByteSize) {
2291
+ getUpdateTagByteSizeStatement(db).run(newByteSize, sessionId, tagNumber);
2292
+ }
2282
2293
  var RECENT_OWNER_SCAN_PAGE_SIZE = 128;
2283
2294
  var recentTagOwnerStatements = new WeakMap;
2284
2295
  function ownerMessageIdForTagRow(row) {
@@ -2477,6 +2488,17 @@ function getActiveTagTokenTotalsByMessage2(db, sessionId, messageIds) {
2477
2488
  }
2478
2489
  var updateTagTokenCountStatements = new WeakMap;
2479
2490
  var updateTagInputTokenCountStatements = new WeakMap;
2491
+ function getUpdateTagTokenCountStatement(db) {
2492
+ let stmt = updateTagTokenCountStatements.get(db);
2493
+ if (!stmt) {
2494
+ stmt = db.prepare("UPDATE tags SET token_count = MAX(COALESCE(token_count, 0), ?) WHERE session_id = ? AND tag_number = ?");
2495
+ updateTagTokenCountStatements.set(db, stmt);
2496
+ }
2497
+ return stmt;
2498
+ }
2499
+ function updateTagTokenCount2(db, sessionId, tagNumber, newTokenCount) {
2500
+ getUpdateTagTokenCountStatement(db).run(newTokenCount, sessionId, tagNumber);
2501
+ }
2480
2502
  function getPersistedToolTagAccounting2(db, sessionId, tagNumber) {
2481
2503
  const row = db.prepare(`SELECT byte_size AS byteSize,
2482
2504
  token_count AS tokenCount,
@@ -3848,4 +3870,4 @@ function deleteToolTagsByOwner(db, sessionId, ownerMsgId) {
3848
3870
  return getDeleteToolTagsByOwnerStatement(db).all(sessionId, ownerMsgId).length;
3849
3871
  }
3850
3872
 
3851
- export { protectedToolTagNumbers, protectedToolTokenCount, stripWellFormedLeadingTagPrefix, stripPersistedAssistantText, byteSize, stripTagPrefix, peelLeadingMcTagNotation, prependTag, isThinkingPart, currentReclaimableToolOutputCount, isRecord, contentTagOwnerMessageId, estimateImageTokensFromDataUrl, estimateToolAttachmentImageTokens, providerVisiblePart, providerVisibleMessage, normalizeTodoStateJson, buildSyntheticTodoPart, computeSyntheticCallId, isSyntheticTodoPart, countRealUserMessages, tailHygieneStructuralSignature, sameTailHygieneStructuralSignature, formatTailHygienePrefixMismatch, refreshTailHygieneBaseline, effectiveTailHygiene, assertTailHygieneContentUnchangedIfEnabled, CHANNEL1_SENTINEL, CHANNEL1_FLOOR_TOKENS, isDroppedToolOutput, toolOutputTokens, decideChannel1, evaluateChannel2, formatChannel1Evaluation, formatChannel2Evaluation, buildChannel2Reminder, buildChannel1Reminder, estimateEmergencyDropReclaimTokens, planEmergencyDrop, measureEmergencyTag, queuePendingOp, queuePendingDropForUnchangedTag, getPendingOps, hasPendingDropOps, getPendingOpsCount, clearPendingOps, removePendingOp, getRecentTagOwnerMessageIds2, getActiveTagTokenAggregate2, AGE_RECLAIM_MIN_TOKENS2, getOldestActiveUnprotectedToolTags2, getActiveToolTagsForAgeReclaim2, getTriggerTagTokenUpperBound2, getActiveTagTokenTotalsByMessage2, getPersistedToolTagAccounting2, getAllStatusTagTokenTotalsFlat2, getReasoningTokenEstimatesByMessage2, tryGetReasoningTokenEstimatesByMessage2, getMaxTagNumberByOwnerMessage2, scanTagOwnerSummary2, cachedTagOwnerRatios2, tagOwnerWarmupState2, scanTagOwnerDelta2, installTagOwnerDelta2, installTagOwnerSummary2, isTagOwnerSummaryReady2, tagTokenCountIsNull2, backfillTagTokenCounts2, insertTag2, updateTagStatus2, markTagDropped2, markWhitespaceAssistantTagInert2, getInertWhitespaceAssistantTags2, getInertWhitespaceAssistantTagsByNumbers2, updateTagDropMode2, updateCavemanDepth2, updateTagMessageId2, hasPiFallbackMessageTags2, findAdoptableFallbackTags2, adoptFallbackTagMessageId2, foldShrunkPartTags2, hasPiFallbackToolOwnerTags2, findPiFallbackToolOwnerTags2, adoptPiFallbackToolOwnerTag2, adoptPiFallbackMessageTag2, markTagsCompactedByMessageIds2, deleteTagsByMessageId2, getMaxTagNumberBySession2, getTagNumberByMessageId2, getAssignableTagNumberByMessageId2, getMinMessageTagNumberForRawId2, deriveTagLoadFloor2, TAG_SELECT_COLUMNS2, getTagsBySession2, getActiveTagsBySession2, getTailHygieneTags2, getDroppedTagsBySession2, getTagsForPendingOperations2, getTagsByNumbers2, getNewestToolTagNumbers2, getDroppedTagsByNumbers2, getMaxDroppedTagNumber2, getTagById2, getTopNBySize2, getToolTagNumberByOwner2, getNullOwnerToolTag2, adoptNullOwnerToolTag2, getCandidateToolOwners2, pickNearestPriorOwner2 };
3873
+ export { protectedToolTagNumbers, protectedToolTokenCount, stripWellFormedLeadingTagPrefix, stripPersistedAssistantText, byteSize, stripTagPrefix, peelLeadingMcTagNotation, prependTag, isThinkingPart, currentReclaimableToolOutputCount, isRecord, contentTagOwnerMessageId, estimateImageTokensFromDataUrl, estimateToolAttachmentImageTokens, providerVisiblePart, providerVisibleMessage, normalizeTodoStateJson, buildSyntheticTodoPart, computeSyntheticCallId, isSyntheticTodoPart, countRealUserMessages, tailHygieneStructuralSignature, sameTailHygieneStructuralSignature, formatTailHygienePrefixMismatch, refreshTailHygieneBaseline, effectiveTailHygiene, assertTailHygieneContentUnchangedIfEnabled, CHANNEL1_SENTINEL, CHANNEL1_FLOOR_TOKENS, isDroppedToolOutput, toolOutputTokens, decideChannel1, evaluateChannel2, formatChannel1Evaluation, formatChannel2Evaluation, buildChannel2Reminder, buildChannel1Reminder, estimateEmergencyDropReclaimTokens, planEmergencyDrop, measureEmergencyTag, queuePendingOp, queuePendingDropForUnchangedTag, getPendingOps, hasPendingDropOps, getPendingOpsCount, clearPendingOps, removePendingOp, updateTagByteSize2, getRecentTagOwnerMessageIds2, getActiveTagTokenAggregate2, AGE_RECLAIM_MIN_TOKENS2, getOldestActiveUnprotectedToolTags2, getActiveToolTagsForAgeReclaim2, getTriggerTagTokenUpperBound2, getActiveTagTokenTotalsByMessage2, updateTagTokenCount2, getPersistedToolTagAccounting2, getAllStatusTagTokenTotalsFlat2, getReasoningTokenEstimatesByMessage2, tryGetReasoningTokenEstimatesByMessage2, getMaxTagNumberByOwnerMessage2, scanTagOwnerSummary2, cachedTagOwnerRatios2, tagOwnerWarmupState2, scanTagOwnerDelta2, installTagOwnerDelta2, installTagOwnerSummary2, isTagOwnerSummaryReady2, tagTokenCountIsNull2, backfillTagTokenCounts2, insertTag2, updateTagStatus2, markTagDropped2, markWhitespaceAssistantTagInert2, getInertWhitespaceAssistantTags2, getInertWhitespaceAssistantTagsByNumbers2, updateTagDropMode2, updateCavemanDepth2, updateTagMessageId2, hasPiFallbackMessageTags2, findAdoptableFallbackTags2, adoptFallbackTagMessageId2, foldShrunkPartTags2, hasPiFallbackToolOwnerTags2, findPiFallbackToolOwnerTags2, adoptPiFallbackToolOwnerTag2, adoptPiFallbackMessageTag2, markTagsCompactedByMessageIds2, deleteTagsByMessageId2, getMaxTagNumberBySession2, getTagNumberByMessageId2, getAssignableTagNumberByMessageId2, getMinMessageTagNumberForRawId2, deriveTagLoadFloor2, TAG_SELECT_COLUMNS2, getTagsBySession2, getActiveTagsBySession2, getTailHygieneTags2, getDroppedTagsBySession2, getTagsForPendingOperations2, getTagsByNumbers2, getNewestToolTagNumbers2, getDroppedTagsByNumbers2, getMaxDroppedTagNumber2, getTagById2, getTopNBySize2, getToolTagNumberByOwner2, getNullOwnerToolTag2, adoptNullOwnerToolTag2, getCandidateToolOwners2, pickNearestPriorOwner2 };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-j75v2476.js";
5
5
  import {
6
6
  sendStatusNotification2
7
- } from "./index-b17m64g9.js";
7
+ } from "./index-s74zqahq.js";
8
8
  import {
9
9
  formatConflictShort
10
10
  } from "./index-kee4kn5j.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  estimateTokens
3
- } from "./index-hqkczed7.js";
3
+ } from "./index-c5pytzne.js";
4
4
  import {
5
5
  stableStringify
6
6
  } from "./index-bp5083x2.js";
@@ -3,21 +3,21 @@ import {
3
3
  } from "./index-kaqs6h31.js";
4
4
  import {
5
5
  getSqliteDatabasePath2
6
- } from "./index-wafzvyhg.js";
6
+ } from "./index-beht37jy.js";
7
7
  import {
8
8
  runSessionWarmupWorker
9
- } from "./index-7pa32z07.js";
9
+ } from "./index-s734jcsr.js";
10
10
  import {
11
11
  estimateTokens
12
- } from "./index-hqkczed7.js";
12
+ } from "./index-c5pytzne.js";
13
13
  import {
14
14
  openCodeDbExists,
15
15
  withReadOnlySessionDb
16
- } from "./index-mtw9e71a.js";
16
+ } from "./index-kq82mtg0.js";
17
17
  import {
18
18
  hasRawMessageProvider2,
19
19
  readRawSessionMessageIdOrdinalsForRange2
20
- } from "./index-j6zw70pf.js";
20
+ } from "./index-p7m7j0cp.js";
21
21
 
22
22
  // src/tools/ctx-expand/search-archive.ts
23
23
  var archiveReadsOnThisThread = 0;
@@ -15,11 +15,11 @@ import {
15
15
  } from "./index-58e3y90n.js";
16
16
  import {
17
17
  Database2
18
- } from "./index-wafzvyhg.js";
18
+ } from "./index-beht37jy.js";
19
19
  import {
20
20
  forgetRawSessionOrdinalWatermark2,
21
21
  forgetRawSessionSummaryRows2
22
- } from "./index-7pa32z07.js";
22
+ } from "./index-s734jcsr.js";
23
23
  import {
24
24
  closeQuietly
25
25
  } from "./index-8ajstryz.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  withPrivilegedWriter2
3
- } from "./index-wafzvyhg.js";
3
+ } from "./index-beht37jy.js";
4
4
  import {
5
5
  MEMORY_CATEGORY_ORDER_SQL
6
6
  } from "./index-fr0wbhdn.js";
@@ -3,16 +3,16 @@ import {
3
3
  } from "./index-j75v2476.js";
4
4
  import {
5
5
  clearEmergencyRecovery
6
- } from "./index-j6zw70pf.js";
6
+ } from "./index-p7m7j0cp.js";
7
7
  import {
8
8
  requestPendingMaterialization,
9
9
  dropSlot,
10
10
  executeContextRecomp
11
- } from "./index-ayym1x7f.js";
11
+ } from "./index-a7c4r5re.js";
12
12
  import {
13
13
  renderUserFacingFailure,
14
14
  userFacingFailureCode
15
- } from "./index-wv9n2zcq.js";
15
+ } from "./index-v8awdgvd.js";
16
16
 
17
17
  // src/hooks/magic-context/recomp-orchestrator.ts
18
18
  function resolveLiveModelKey(liveSessionState, sessionId) {
@@ -23,10 +23,11 @@ import {
23
23
  TAG_SELECT_COLUMNS2,
24
24
  getCandidateToolOwners2,
25
25
  pickNearestPriorOwner2
26
- } from "./index-nd7m2a5a.js";
26
+ } from "./index-hqhm3wke.js";
27
27
  import {
28
28
  OMO_INTERNAL_INITIATOR_MARKER,
29
29
  isSystemDirective,
30
+ removeSystemReminders,
30
31
  hasMeaningfulUserText2,
31
32
  extractTexts2,
32
33
  extractToolResultBodyTokens,
@@ -40,10 +41,10 @@ import {
40
41
  formatBlock,
41
42
  compactTextForSummary,
42
43
  mergeCommitHashes
43
- } from "./index-hqkczed7.js";
44
+ } from "./index-c5pytzne.js";
44
45
  import {
45
46
  prepareCachedStatement2
46
- } from "./index-wafzvyhg.js";
47
+ } from "./index-beht37jy.js";
47
48
  import {
48
49
  stableStringify
49
50
  } from "./index-bp5083x2.js";
@@ -68,18 +69,18 @@ import {
68
69
  readRawSeedTailFromDb2,
69
70
  readRawSessionBoundaryEndpointsFromDb2,
70
71
  prewarmRawSessionOrdinalsForDb
71
- } from "./index-7pa32z07.js";
72
+ } from "./index-s734jcsr.js";
72
73
  import {
73
74
  openCodeDbExists,
74
75
  withReadOnlySessionDb,
75
76
  getRawSessionMessageCountFromDb,
76
77
  getMessageTimesFromOpenCodeDb
77
- } from "./index-mtw9e71a.js";
78
+ } from "./index-kq82mtg0.js";
78
79
  import {
79
80
  getToolDefinitionMeasurementSignature,
80
81
  getLargestMeasuredToolDefinitionTokens,
81
82
  getMeasuredToolDefinitionTokens
82
- } from "./index-n6m03s3n.js";
83
+ } from "./index-ke416mdc.js";
83
84
  import {
84
85
  canonicalModelIdentity,
85
86
  piModelRefToCanonical
@@ -1821,7 +1822,7 @@ function isSessionMetaRow(row) {
1821
1822
  if (row === null || typeof row !== "object")
1822
1823
  return false;
1823
1824
  const r = row;
1824
- return typeof r.session_id === "string" && isNumberOrNull(r.last_response_time) && isStringOrNull(r.cache_ttl) && typeof r.counter === "number" && typeof r.last_nudge_tokens === "number" && isStringOrNull(r.last_nudge_band) && isStringOrNull(r.last_transform_error) && typeof r.is_subagent === "number" && typeof r.last_context_percentage === "number" && typeof r.last_input_tokens === "number" && isNumberOrNull(r.observed_safe_input_tokens) && isNumberOrNull(r.cache_alert_sent) && isNumberOrNull(r.times_execute_threshold_reached) && isNumberOrNull(r.compartment_in_progress) && (r.system_prompt_hash === null || typeof r.system_prompt_hash === "string" || typeof r.system_prompt_hash === "number") && isNumberOrNull(r.system_prompt_tokens) && isNumberOrNull(r.conversation_tokens) && isNumberOrNull(r.tool_call_tokens) && isNumberOrNull(r.cleared_reasoning_through_tag) && isStringOrNull(r.last_todo_state) && isBlobOrNull(r.cached_m0_bytes) && isStringOrNull(r.cached_m0_mural_data_url) && isStringOrNull(r.cached_m0_mural_hash) && isBlobOrNull(r.cached_m1_bytes) && isNumberOrNull(r.cached_m0_project_memory_epoch) && isStringOrNull(r.cached_m0_workspace_fingerprint) && isNumberOrNull(r.cached_m0_project_user_profile_version) && isNumberOrNull(r.cached_m0_max_compartment_seq) && isNumberOrNull(r.cached_m0_max_memory_id) && isNumberOrNull(r.cached_m0_max_mutation_id) && isNumberOrNull(r.cached_m0_max_memory_mutation_id) && isStringOrNull(r.cached_m0_project_docs_hash) && isNumberOrNull(r.cached_m0_materialized_at) && isNumberOrNull(r.cached_m0_session_facts_version) && isStringOrNull(r.cached_m0_upgrade_state) && isStringOrNull(r.cached_m0_system_hash) && isStringOrNull(r.cached_m0_tool_set_hash) && isStringOrNull(r.cached_m0_model_key) && isStringOrNull(r.cached_m0_project_identity) && isStringOrNull(r.last_observed_model_key) && isNumberOrNull(r.last_usage_context_limit) && isNumberOrNull(r.prior_boundary_ordinal) && isNumberOrNull(r.protected_tail_policy_version) && isNumberOrNull(r.protected_tail_drain_window_started_at) && isNumberOrNull(r.protected_tail_drain_tokens) && isNumberOrNull(r.recovery_no_eligible_head_count) && isNumberOrNull(r.force_emergency_bypass_window_start) && isNumberOrNull(r.force_emergency_bypass_used) && isNumberOrNull(r.upgrade_reminded_at) && isNumberOrNull(r.upgrade_reminder_last_sent_at) && isNumberOrNull(r.upgrade_reminder_count) && isNumberOrNull(r.pi_stable_id_scheme) && isNumberOrNull(r.tool_reclaim_watermark);
1825
+ return typeof r.session_id === "string" && isNumberOrNull(r.last_response_time) && isStringOrNull(r.cache_ttl) && typeof r.counter === "number" && typeof r.last_nudge_tokens === "number" && isStringOrNull(r.last_nudge_band) && isStringOrNull(r.last_transform_error) && isNumberOrNull(r.is_subagent) && typeof r.last_context_percentage === "number" && typeof r.last_input_tokens === "number" && isNumberOrNull(r.observed_safe_input_tokens) && isNumberOrNull(r.cache_alert_sent) && isNumberOrNull(r.times_execute_threshold_reached) && isNumberOrNull(r.compartment_in_progress) && (r.system_prompt_hash === null || typeof r.system_prompt_hash === "string" || typeof r.system_prompt_hash === "number") && isNumberOrNull(r.system_prompt_tokens) && isNumberOrNull(r.conversation_tokens) && isNumberOrNull(r.tool_call_tokens) && isNumberOrNull(r.cleared_reasoning_through_tag) && isStringOrNull(r.last_todo_state) && isBlobOrNull(r.cached_m0_bytes) && isStringOrNull(r.cached_m0_mural_data_url) && isStringOrNull(r.cached_m0_mural_hash) && isBlobOrNull(r.cached_m1_bytes) && isNumberOrNull(r.cached_m0_project_memory_epoch) && isStringOrNull(r.cached_m0_workspace_fingerprint) && isNumberOrNull(r.cached_m0_project_user_profile_version) && isNumberOrNull(r.cached_m0_max_compartment_seq) && isNumberOrNull(r.cached_m0_max_memory_id) && isNumberOrNull(r.cached_m0_max_mutation_id) && isNumberOrNull(r.cached_m0_max_memory_mutation_id) && isStringOrNull(r.cached_m0_project_docs_hash) && isNumberOrNull(r.cached_m0_materialized_at) && isNumberOrNull(r.cached_m0_session_facts_version) && isStringOrNull(r.cached_m0_upgrade_state) && isStringOrNull(r.cached_m0_system_hash) && isStringOrNull(r.cached_m0_tool_set_hash) && isStringOrNull(r.cached_m0_model_key) && isStringOrNull(r.cached_m0_project_identity) && isStringOrNull(r.last_observed_model_key) && isNumberOrNull(r.last_usage_context_limit) && isNumberOrNull(r.prior_boundary_ordinal) && isNumberOrNull(r.protected_tail_policy_version) && isNumberOrNull(r.protected_tail_drain_window_started_at) && isNumberOrNull(r.protected_tail_drain_tokens) && isNumberOrNull(r.recovery_no_eligible_head_count) && isNumberOrNull(r.force_emergency_bypass_window_start) && isNumberOrNull(r.force_emergency_bypass_used) && isNumberOrNull(r.upgrade_reminded_at) && isNumberOrNull(r.upgrade_reminder_last_sent_at) && isNumberOrNull(r.upgrade_reminder_count) && isNumberOrNull(r.pi_stable_id_scheme) && isNumberOrNull(r.tool_reclaim_watermark);
1825
1826
  }
1826
1827
  function getDefaultSessionMeta(sessionId) {
1827
1828
  return {
@@ -1881,7 +1882,7 @@ function getDefaultSessionMeta(sessionId) {
1881
1882
  };
1882
1883
  }
1883
1884
  var sessionMetaExistsStatements = new WeakMap;
1884
- function ensureSessionMetaRow(db, sessionId, initialIsSubagent = false) {
1885
+ function ensureSessionMetaRow(db, sessionId, initialIsSubagent = getHarness2() === "opencode2" ? null : false) {
1885
1886
  let exists = sessionMetaExistsStatements.get(db);
1886
1887
  if (!exists) {
1887
1888
  exists = prepareCachedStatement2(db, "SELECT 1 FROM session_meta WHERE session_id = ?");
@@ -1890,7 +1891,7 @@ function ensureSessionMetaRow(db, sessionId, initialIsSubagent = false) {
1890
1891
  if (exists.get(sessionId))
1891
1892
  return;
1892
1893
  const defaults = getDefaultSessionMeta(sessionId);
1893
- db.prepare("INSERT OR IGNORE INTO session_meta (session_id, harness, last_response_time, cache_ttl, counter, last_nudge_tokens, last_nudge_band, last_transform_error, is_subagent, last_context_percentage, last_input_tokens, observed_safe_input_tokens, cache_alert_sent, times_execute_threshold_reached, compartment_in_progress, system_prompt_hash, cleared_reasoning_through_tag) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)").run(sessionId, getHarness2(), defaults.lastResponseTime, defaults.cacheTtl, defaults.counter, defaults.lastNudgeTokens, defaults.lastNudgeBand ?? "", defaults.lastTransformError ?? "", initialIsSubagent ? 1 : 0, defaults.lastContextPercentage, defaults.lastInputTokens, defaults.observedSafeInputTokens, defaults.cacheAlertSent ? 1 : 0, defaults.timesExecuteThresholdReached, defaults.compartmentInProgress ? 1 : 0, defaults.systemPromptHash ?? "", defaults.clearedReasoningThroughTag);
1894
+ db.prepare("INSERT OR IGNORE INTO session_meta (session_id, harness, last_response_time, cache_ttl, counter, last_nudge_tokens, last_nudge_band, last_transform_error, is_subagent, last_context_percentage, last_input_tokens, observed_safe_input_tokens, cache_alert_sent, times_execute_threshold_reached, compartment_in_progress, system_prompt_hash, cleared_reasoning_through_tag) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)").run(sessionId, getHarness2(), defaults.lastResponseTime, defaults.cacheTtl, defaults.counter, defaults.lastNudgeTokens, defaults.lastNudgeBand ?? "", defaults.lastTransformError ?? "", initialIsSubagent === null ? null : initialIsSubagent ? 1 : 0, defaults.lastContextPercentage, defaults.lastInputTokens, defaults.observedSafeInputTokens, defaults.cacheAlertSent ? 1 : 0, defaults.timesExecuteThresholdReached, defaults.compartmentInProgress ? 1 : 0, defaults.systemPromptHash ?? "", defaults.clearedReasoningThroughTag);
1894
1895
  }
1895
1896
  function toSessionMeta(row) {
1896
1897
  const nudgeBandRaw = typeof row.last_nudge_band === "string" ? row.last_nudge_band : "";
@@ -2021,6 +2022,9 @@ function clearCachedM0M1(db, sessionId) {
2021
2022
  return;
2022
2023
  db.prepare(`UPDATE session_meta SET ${setClauses.join(", ")} WHERE session_id = ?`).run(...values, sessionId);
2023
2024
  }
2025
+ function clearCachedM0(db, sessionId) {
2026
+ clearCachedM0M1(db, sessionId);
2027
+ }
2024
2028
 
2025
2029
  // src/features/magic-context/storage-replay-document.ts
2026
2030
  import { AsyncLocalStorage } from "node:async_hooks";
@@ -6103,7 +6107,7 @@ class ToolMutationBatch {
6103
6107
  this.partsToRemove.add(servedPart(occurrence));
6104
6108
  this.affectedMessages.add(occurrence.message);
6105
6109
  }
6106
- wouldStrandConversationEnd(occurrences) {
6110
+ wouldStrandConversationEnd(occurrences, plannedRemovals) {
6107
6111
  const served = this.servedMessages ?? this.messages;
6108
6112
  let end;
6109
6113
  for (let i = served.length - 1;i >= 0 && end === undefined; i -= 1) {
@@ -6113,7 +6117,7 @@ class ToolMutationBatch {
6113
6117
  if (!end || !occurrences.some((occurrence) => occurrence.message === end))
6114
6118
  return false;
6115
6119
  const leaving = new Set(occurrences.map(servedPart));
6116
- const survives = (part) => !leaving.has(part) && !this.partsToRemove.has(part);
6120
+ const survives = (part) => !leaving.has(part) && !this.partsToRemove.has(part) && !plannedRemovals?.has(part);
6117
6121
  return end.info.role === "assistant" ? !end.parts.some((part) => partHasCompletedResult(part) && survives(part)) : !end.parts.some((part) => hasMeaningfulPart(part) && survives(part));
6118
6122
  }
6119
6123
  finalize() {
@@ -6287,11 +6291,16 @@ function createToolDropTarget(compositeKey, thinkingParts, index, batch, tagId)
6287
6291
  return null;
6288
6292
  return toolInputStringBytes(readRawInput());
6289
6293
  },
6290
- wouldStrandConversationEnd: () => {
6294
+ wouldStrandConversationEnd: (plannedRemovals) => {
6291
6295
  const entry = index.get(compositeKey);
6292
6296
  if (!entry || entry.occurrences.length === 0)
6293
6297
  return false;
6294
- return batch.wouldStrandConversationEnd(entry.occurrences);
6298
+ return batch.wouldStrandConversationEnd(entry.occurrences, plannedRemovals);
6299
+ },
6300
+ notePlannedRemoval: (plannedRemovals) => {
6301
+ for (const occurrence of index.get(compositeKey)?.occurrences ?? []) {
6302
+ plannedRemovals.add(servedPart(occurrence));
6303
+ }
6295
6304
  },
6296
6305
  prepareDrop: () => {
6297
6306
  const entry = index.get(compositeKey);
@@ -6398,9 +6407,8 @@ function withRawMessageProvider2(sessionId, provider, fn) {
6398
6407
  cleanup();
6399
6408
  return result;
6400
6409
  }
6401
- var SYSTEM_REMINDER_BLOCK_REGEX = /<system-reminder>[\s\S]*?<\/system-reminder>/gi;
6402
6410
  function cleanUserText2(text) {
6403
- return stripOutsideSteeringWrappers(text, (segment) => segment.replace(SYSTEM_REMINDER_BLOCK_REGEX, "").replace(OMO_INTERNAL_INITIATOR_MARKER, "")).trim();
6411
+ return stripOutsideSteeringWrappers(text, (segment) => removeSystemReminders(segment).replace(OMO_INTERNAL_INITIATOR_MARKER, "")).trim();
6404
6412
  }
6405
6413
  function hasMeaningfulChunkUserText(parts) {
6406
6414
  for (const part of parts) {
@@ -7292,4 +7300,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7292
7300
  });
7293
7301
  }
7294
7302
 
7295
- export { isToolFreeHiddenAgent, TOOL_USE_DISABLED, ZEN_READ_AGENT_SUFFIX, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, shapeV1HiddenMessage, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, createDroppedInputToolExecuteBeforeHook, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, removeNoteNudgeAnchorByMessageId, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, 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 };
7303
+ export { isToolFreeHiddenAgent, TOOL_USE_DISABLED, ZEN_READ_AGENT_SUFFIX, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, shapeV1HiddenMessage, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, createDroppedInputToolExecuteBeforeHook, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, removeNoteNudgeAnchorByMessageId, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimatePartImageTokens, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, 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 };
@@ -16,11 +16,11 @@ import {
16
16
  } from "./index-58e3y90n.js";
17
17
  import {
18
18
  Database2
19
- } from "./index-wafzvyhg.js";
19
+ } from "./index-beht37jy.js";
20
20
  import {
21
21
  normalizeStoredProjectPath,
22
22
  storedPathBelongsToIdentity
23
- } from "./index-a8bvhwqs.js";
23
+ } from "./index-2vxtcb95.js";
24
24
  import {
25
25
  logSlowWriteTransaction
26
26
  } from "./index-k29z4aqh.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./index-pavzsdc6.js";
4
4
  import {
5
5
  isUserHomeDirectory
6
- } from "./index-a8bvhwqs.js";
6
+ } from "./index-2vxtcb95.js";
7
7
  import {
8
8
  logSlowWriteTransaction
9
9
  } from "./index-k29z4aqh.js";
@@ -8,7 +8,7 @@ import {
8
8
  inRootAsyncContext2,
9
9
  getSqliteDatabasePath2,
10
10
  releaseIndexOwner2
11
- } from "./index-wafzvyhg.js";
11
+ } from "./index-beht37jy.js";
12
12
 
13
13
  // src/hooks/magic-context/raw-ordinal-warmup.ts
14
14
  import { Worker } from "node:worker_threads";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./index-y9f76s3f.js";
11
11
  import {
12
12
  shouldHoldIgnoredNotification
13
- } from "./index-mtw9e71a.js";
13
+ } from "./index-kq82mtg0.js";
14
14
  import {
15
15
  getErrorMessage
16
16
  } from "./index-y8v6yerm.js";
@@ -7,17 +7,17 @@ import {
7
7
  } from "./index-pavzsdc6.js";
8
8
  import {
9
9
  isTransientSqliteError2
10
- } from "./index-wafzvyhg.js";
10
+ } from "./index-beht37jy.js";
11
11
  import {
12
12
  PROMOTABLE_CATEGORIES,
13
13
  CATEGORY_DEFAULT_TTL
14
14
  } from "./index-fr0wbhdn.js";
15
15
  import {
16
16
  managedAuthorityNoteRow
17
- } from "./index-wk0n1cgt.js";
17
+ } from "./index-qn7xstt2.js";
18
18
  import {
19
19
  embedTextForProject2
20
- } from "./index-qrahzcqv.js";
20
+ } from "./index-ze7mvk54.js";
21
21
  import {
22
22
  saveEmbeddingIfHashMatches
23
23
  } from "./index-4dhv7mqz.js";
@@ -30,7 +30,7 @@ import {
30
30
  buildWorkspaceMemorySqlFilter2,
31
31
  getMemoryById2,
32
32
  updateMemorySeenCount2
33
- } from "./index-n78avt2p.js";
33
+ } from "./index-n37sebck.js";
34
34
  import {
35
35
  computeNormalizedHash
36
36
  } from "./index-2bvekkfy.js";
@@ -6,7 +6,7 @@ import {
6
6
  StaleRouteHandleError,
7
7
  SubcClient,
8
8
  isConsumerReconnectTransient
9
- } from "./index-fkx2qnvw.js";
9
+ } from "./index-6x57ar45.js";
10
10
  import {
11
11
  getHarness2
12
12
  } from "./index-pavzsdc6.js";
@@ -18,11 +18,11 @@ import {
18
18
  } from "./index-j75v2476.js";
19
19
  import {
20
20
  inRootAsyncContext2
21
- } from "./index-wafzvyhg.js";
21
+ } from "./index-beht37jy.js";
22
22
  import {
23
23
  buildCanonicalChunkTextFromFts,
24
24
  loadCompartmentChunkEmbeddingsForSearch
25
- } from "./index-hehkf6zm.js";
25
+ } from "./index-b5vqckbw.js";
26
26
  import {
27
27
  recordEmbeddingMeasurement,
28
28
  saveCommitEmbedding,
@@ -39,7 +39,7 @@ import {
39
39
  enqueueShadowEmbeddingItems2,
40
40
  getProjectEmbeddingSnapshot2,
41
41
  embedItemsForProject2
42
- } from "./index-qrahzcqv.js";
42
+ } from "./index-ze7mvk54.js";
43
43
  import {
44
44
  getProjectEmbeddings2
45
45
  } from "./index-4dhv7mqz.js";
@@ -48,13 +48,13 @@ import {
48
48
  isEmbeddingEnabled,
49
49
  embedText,
50
50
  ensureMemoryEmbeddings2
51
- } from "./index-9nkg2dzk.js";
51
+ } from "./index-24fezq97.js";
52
52
  import {
53
53
  ModuleMemoryAuthorityError2,
54
54
  getMemoriesByProject2,
55
55
  getMemoriesByProjects2,
56
56
  updateMemoryRetrievalCount2
57
- } from "./index-n78avt2p.js";
57
+ } from "./index-n37sebck.js";
58
58
  import {
59
59
  USER_FACING_FAILURES,
60
60
  getNotes,
@@ -63,24 +63,27 @@ import {
63
63
  sanitizeFtsQuery,
64
64
  searchMemoriesFTS,
65
65
  searchMemoriesFTSUnion
66
- } from "./index-wv9n2zcq.js";
66
+ } from "./index-v8awdgvd.js";
67
+ import {
68
+ cleanSearchText,
69
+ keywordRelevance,
70
+ matchedSearchSnippet,
71
+ getIndexedMessageCorpusSize2
72
+ } from "./index-cwzfcbtq.js";
67
73
  import {
68
74
  MESSAGE_FTS_SESSION_FILTER_SQL,
69
75
  withMessageFtsSessionFilter
70
76
  } from "./index-kaqs6h31.js";
71
77
  import {
72
78
  isRecord
73
- } from "./index-nd7m2a5a.js";
74
- import {
75
- getIndexedMessageCorpusSize2
76
- } from "./index-p4vde22c.js";
79
+ } from "./index-hqhm3wke.js";
77
80
  import {
78
81
  resolveWorkspaceShareCategories,
79
82
  resolveWorkspaceIdentitySet,
80
83
  expandWorkspaceIdentitySetWithAliases,
81
84
  resolveStoredPathWorkspaceIdentity,
82
85
  sourceNameForMemory
83
- } from "./index-wk0n1cgt.js";
86
+ } from "./index-qn7xstt2.js";
84
87
  import {
85
88
  isKnownAutocommit
86
89
  } from "./index-8ajstryz.js";
@@ -970,6 +973,10 @@ async function indexCommitsForProject(db, projectPath, directory, options) {
970
973
  embedded: 0,
971
974
  nonIndexable: false
972
975
  };
976
+ if (projectPath.startsWith("dir:")) {
977
+ result.nonIndexable = true;
978
+ return result;
979
+ }
973
980
  if (indexInProgress.has(projectPath)) {
974
981
  log2(`[git-commits] index already in progress for ${projectPath}, skipping`);
975
982
  return result;
@@ -1023,6 +1030,7 @@ async function embedUnembeddedCommits(db, projectPath) {
1023
1030
  embedInProgress.add(projectPath);
1024
1031
  const startedAt = Date.now();
1025
1032
  const deadline = startedAt + EMBED_SWEEP_MAX_WALL_CLOCK_MS;
1033
+ const signal = AbortSignal.timeout(EMBED_SWEEP_MAX_WALL_CLOCK_MS);
1026
1034
  let total = 0;
1027
1035
  try {
1028
1036
  while (Date.now() < deadline && total < EMBED_MAX_PER_SWEEP) {
@@ -1035,7 +1043,7 @@ async function embedUnembeddedCommits(db, projectPath) {
1035
1043
  id: `commit:${row.sha}`,
1036
1044
  text: row.message,
1037
1045
  contentSha256: contentSha2562(row.message)
1038
- })), undefined, db, projectPath);
1046
+ })), signal, db, projectPath);
1039
1047
  if (!result)
1040
1048
  break;
1041
1049
  db.transaction(() => {
@@ -2381,7 +2389,7 @@ function searchMessagesInSnapshot(args, sessionFirst) {
2381
2389
  const filtered = rows.slice(0, limit);
2382
2390
  return filtered.map((row, rank) => ({
2383
2391
  source: "message",
2384
- content: previewText(row.content),
2392
+ content: matchedSearchSnippet(row.content, args.query) || previewText(row.content),
2385
2393
  score: linearDecayScore(rank, filtered.length),
2386
2394
  messageOrdinal: row.messageOrdinal,
2387
2395
  messageId: row.messageId,
@@ -2458,7 +2466,7 @@ function searchMessagesInSnapshot(args, sessionFirst) {
2458
2466
  const ranked = [...fused.values()].sort((a, b) => b.score !== a.score ? b.score - a.score : a.row.messageOrdinal - b.row.messageOrdinal).slice(0, resultLimit);
2459
2467
  return ranked.map((entry, rank) => ({
2460
2468
  source: "message",
2461
- content: previewText(entry.row.content),
2469
+ content: matchedSearchSnippet(entry.row.content, args.query) || previewText(entry.row.content),
2462
2470
  score: linearDecayScore(rank, ranked.length),
2463
2471
  messageOrdinal: entry.row.messageOrdinal,
2464
2472
  messageId: entry.row.messageId,
@@ -2681,10 +2689,7 @@ function mergeMessageAndCompartmentResults(args) {
2681
2689
  }
2682
2690
  }
2683
2691
  const ranked = [...fused.values()].sort((left, right) => right.score !== left.score ? right.score - left.score : left.tieOrdinal - right.tieOrdinal).slice(0, args.limit);
2684
- return ranked.map((entry, rank) => ({
2685
- ...entry.result,
2686
- score: linearDecayScore(rank, ranked.length)
2687
- }));
2692
+ return ranked.map((entry) => entry.result);
2688
2693
  }
2689
2694
  function getSourceBoost(result) {
2690
2695
  switch (result.source) {
@@ -2962,7 +2967,7 @@ async function unifiedSearch2(db, sessionId, projectPath, query, options = {}) {
2962
2967
  if (options.diagnostics) {
2963
2968
  options.diagnostics.suppressedLiveMessageMatches = outcome.suppressedLiveMessageMatches;
2964
2969
  }
2965
- messageResults = outcome.results;
2970
+ messageResults = outcome.results.filter((result) => result.messageId !== options.excludeMessageId);
2966
2971
  if (lanes)
2967
2972
  lanes.message_fts = (outcome.laneResults ?? outcome.results).slice(0, 25);
2968
2973
  }
@@ -3095,6 +3100,12 @@ async function unifiedSearch2(db, sessionId, projectPath, query, options = {}) {
3095
3100
  }).immediate();
3096
3101
  }
3097
3102
  }
3103
+ if (options.autoHint) {
3104
+ return results.map((result) => ({
3105
+ ...result,
3106
+ relevanceScore: cleanSearchText(result.source === "compartment" ? result.title : result.content).length === 0 ? 0 : result.source === "message" || ("matchType" in result) && result.source !== "compartment" && result.matchType !== "semantic" ? keywordRelevance(trimmedQuery, result.content) : result.score
3107
+ }));
3108
+ }
3098
3109
  return results;
3099
3110
  }
3100
3111
  var SEARCH_NOTE_EXPAND_HINT = "Use ctx_expand(start=N-10, end=N) around any note @msg anchor above to read the surrounding conversation context.";