@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
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  estimateTokens
3
- } from "./server-0ppsweh6.js";
3
+ } from "./server-tgnbmwah.js";
4
4
  import {
5
5
  stableStringify
6
6
  } from "./server-pwv4ezb0.js";
@@ -16,11 +16,11 @@ import {
16
16
  } from "./server-2ra6pwf3.js";
17
17
  import {
18
18
  Database2
19
- } from "./server-wafzvyhg.js";
19
+ } from "./server-beht37jy.js";
20
20
  import {
21
21
  normalizeStoredProjectPath,
22
22
  storedPathBelongsToIdentity
23
- } from "./server-e3ftpk7v.js";
23
+ } from "./server-rmygf5pn.js";
24
24
  import {
25
25
  logSlowWriteTransaction
26
26
  } from "./server-6pmqg9m4.js";
@@ -8,10 +8,10 @@ import {
8
8
  withoutSqliteTransformPass2,
9
9
  isTransientSqliteError2,
10
10
  withPrivilegedWriter2
11
- } from "./server-wafzvyhg.js";
11
+ } from "./server-beht37jy.js";
12
12
  import {
13
13
  scheduleAfterBootQuiet
14
- } from "./server-e3ftpk7v.js";
14
+ } from "./server-rmygf5pn.js";
15
15
  import {
16
16
  getHarness2,
17
17
  harnessOwnsOpenCodeStore2
@@ -40,7 +40,7 @@ import {
40
40
  } from "./server-fb3zxn06.js";
41
41
  import {
42
42
  startMessageFtsRowidMapBackfill2
43
- } from "./server-785mb90s.js";
43
+ } from "./server-1wy7b9de.js";
44
44
  import {
45
45
  LKG_SLOT_CHUNKS_DDL,
46
46
  SESSION_REPLAY_DECISIONS_DDL,
@@ -50,7 +50,7 @@ import {
50
50
  hasPendingMigrations,
51
51
  getMainThreadMigrationBodyCount,
52
52
  runMigrations
53
- } from "./server-00hx04yn.js";
53
+ } from "./server-gpvay0xz.js";
54
54
  import {
55
55
  ensureColumn,
56
56
  installV95PerfSchema,
@@ -63,7 +63,7 @@ import {
63
63
  import {
64
64
  setDatabase,
65
65
  loadToolDefinitionMeasurements
66
- } from "./server-zs8d0s3b.js";
66
+ } from "./server-g3qma5c0.js";
67
67
  import {
68
68
  getErrorMessage
69
69
  } from "./server-y8v6yerm.js";
@@ -1219,8 +1219,8 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
1219
1219
  state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
1220
1220
  if (signal.aborted || !readsOpenCodeStore)
1221
1221
  return;
1222
- const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-7bpygfv2.js"));
1223
- const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-q5pgxf0d.js"));
1222
+ const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-zdppn4bj.js"));
1223
+ const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-04t0km1z.js"));
1224
1224
  if (signal.aborted)
1225
1225
  return;
1226
1226
  await startMessageTimeBackfill(db, Object.assign(readRawSessionMessages, {
@@ -11,10 +11,10 @@ import {
11
11
  } from "./server-f2xf5gcb.js";
12
12
  import {
13
13
  getSynapseLaneIdentity
14
- } from "./server-rrqpvwqd.js";
14
+ } from "./server-6tmj0s7j.js";
15
15
  import {
16
16
  inRootAsyncContext2
17
- } from "./server-wafzvyhg.js";
17
+ } from "./server-beht37jy.js";
18
18
  import {
19
19
  computeNormalizedHash
20
20
  } from "./server-2bvekkfy.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./server-pavzsdc6.js";
4
4
  import {
5
5
  isUserHomeDirectory
6
- } from "./server-e3ftpk7v.js";
6
+ } from "./server-rmygf5pn.js";
7
7
  import {
8
8
  logSlowWriteTransaction
9
9
  } from "./server-6pmqg9m4.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./server-pavzsdc6.js";
4
4
  import {
5
5
  prepareCachedStatement2
6
- } from "./server-wafzvyhg.js";
6
+ } from "./server-beht37jy.js";
7
7
  import {
8
8
  UNKNOWN_FIT_RATIO,
9
9
  resolveDecisionCalibration,
@@ -23,10 +23,11 @@ import {
23
23
  TAG_SELECT_COLUMNS2,
24
24
  getCandidateToolOwners2,
25
25
  pickNearestPriorOwner2
26
- } from "./server-0mzjjw3s.js";
26
+ } from "./server-zyzawhdw.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,7 +41,7 @@ import {
40
41
  formatBlock,
41
42
  compactTextForSummary,
42
43
  mergeCommitHashes
43
- } from "./server-0ppsweh6.js";
44
+ } from "./server-tgnbmwah.js";
44
45
  import {
45
46
  sessionLog2
46
47
  } from "./server-f2xf5gcb.js";
@@ -68,18 +69,18 @@ import {
68
69
  readRawSeedTailFromDb2,
69
70
  readRawSessionBoundaryEndpointsFromDb2,
70
71
  prewarmRawSessionOrdinalsForDb
71
- } from "./server-6714jebr.js";
72
+ } from "./server-xj136kt8.js";
72
73
  import {
73
74
  openCodeDbExists,
74
75
  withReadOnlySessionDb,
75
76
  getRawSessionMessageCountFromDb,
76
77
  getMessageTimesFromOpenCodeDb
77
- } from "./server-d8tj10db.js";
78
+ } from "./server-n1prf1g6.js";
78
79
  import {
79
80
  getToolDefinitionMeasurementSignature,
80
81
  getLargestMeasuredToolDefinitionTokens,
81
82
  getMeasuredToolDefinitionTokens
82
- } from "./server-zs8d0s3b.js";
83
+ } from "./server-g3qma5c0.js";
83
84
  import {
84
85
  canonicalModelIdentity,
85
86
  piModelRefToCanonical
@@ -439,7 +440,7 @@ function isSessionMetaRow(row) {
439
440
  if (row === null || typeof row !== "object")
440
441
  return false;
441
442
  const r = row;
442
- 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);
443
+ 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);
443
444
  }
444
445
  function getDefaultSessionMeta(sessionId) {
445
446
  return {
@@ -499,7 +500,7 @@ function getDefaultSessionMeta(sessionId) {
499
500
  };
500
501
  }
501
502
  var sessionMetaExistsStatements = new WeakMap;
502
- function ensureSessionMetaRow(db, sessionId, initialIsSubagent = false) {
503
+ function ensureSessionMetaRow(db, sessionId, initialIsSubagent = getHarness2() === "opencode2" ? null : false) {
503
504
  let exists = sessionMetaExistsStatements.get(db);
504
505
  if (!exists) {
505
506
  exists = prepareCachedStatement2(db, "SELECT 1 FROM session_meta WHERE session_id = ?");
@@ -508,7 +509,7 @@ function ensureSessionMetaRow(db, sessionId, initialIsSubagent = false) {
508
509
  if (exists.get(sessionId))
509
510
  return;
510
511
  const defaults = getDefaultSessionMeta(sessionId);
511
- 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);
512
+ 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);
512
513
  }
513
514
  function toSessionMeta(row) {
514
515
  const nudgeBandRaw = typeof row.last_nudge_band === "string" ? row.last_nudge_band : "";
@@ -639,6 +640,9 @@ function clearCachedM0M1(db, sessionId) {
639
640
  return;
640
641
  db.prepare(`UPDATE session_meta SET ${setClauses.join(", ")} WHERE session_id = ?`).run(...values, sessionId);
641
642
  }
643
+ function clearCachedM0(db, sessionId) {
644
+ clearCachedM0M1(db, sessionId);
645
+ }
642
646
  // src/shared/historian-tool-defaults.json
643
647
  var historian_tool_defaults_default = {
644
648
  ctx_note: "Note ${input.action} ${input.note_ids}: ${input.content} → ${output.truncate(160)}",
@@ -5969,7 +5973,7 @@ class ToolMutationBatch {
5969
5973
  this.partsToRemove.add(servedPart(occurrence));
5970
5974
  this.affectedMessages.add(occurrence.message);
5971
5975
  }
5972
- wouldStrandConversationEnd(occurrences) {
5976
+ wouldStrandConversationEnd(occurrences, plannedRemovals) {
5973
5977
  const served = this.servedMessages ?? this.messages;
5974
5978
  let end;
5975
5979
  for (let i = served.length - 1;i >= 0 && end === undefined; i -= 1) {
@@ -5979,7 +5983,7 @@ class ToolMutationBatch {
5979
5983
  if (!end || !occurrences.some((occurrence) => occurrence.message === end))
5980
5984
  return false;
5981
5985
  const leaving = new Set(occurrences.map(servedPart));
5982
- const survives = (part) => !leaving.has(part) && !this.partsToRemove.has(part);
5986
+ const survives = (part) => !leaving.has(part) && !this.partsToRemove.has(part) && !plannedRemovals?.has(part);
5983
5987
  return end.info.role === "assistant" ? !end.parts.some((part) => partHasCompletedResult(part) && survives(part)) : !end.parts.some((part) => hasMeaningfulPart(part) && survives(part));
5984
5988
  }
5985
5989
  finalize() {
@@ -6153,11 +6157,16 @@ function createToolDropTarget(compositeKey, thinkingParts, index, batch, tagId)
6153
6157
  return null;
6154
6158
  return toolInputStringBytes(readRawInput());
6155
6159
  },
6156
- wouldStrandConversationEnd: () => {
6160
+ wouldStrandConversationEnd: (plannedRemovals) => {
6157
6161
  const entry = index.get(compositeKey);
6158
6162
  if (!entry || entry.occurrences.length === 0)
6159
6163
  return false;
6160
- return batch.wouldStrandConversationEnd(entry.occurrences);
6164
+ return batch.wouldStrandConversationEnd(entry.occurrences, plannedRemovals);
6165
+ },
6166
+ notePlannedRemoval: (plannedRemovals) => {
6167
+ for (const occurrence of index.get(compositeKey)?.occurrences ?? []) {
6168
+ plannedRemovals.add(servedPart(occurrence));
6169
+ }
6161
6170
  },
6162
6171
  prepareDrop: () => {
6163
6172
  const entry = index.get(compositeKey);
@@ -6264,9 +6273,8 @@ function withRawMessageProvider2(sessionId, provider, fn) {
6264
6273
  cleanup();
6265
6274
  return result;
6266
6275
  }
6267
- var SYSTEM_REMINDER_BLOCK_REGEX = /<system-reminder>[\s\S]*?<\/system-reminder>/gi;
6268
6276
  function cleanUserText2(text) {
6269
- return stripOutsideSteeringWrappers(text, (segment) => segment.replace(SYSTEM_REMINDER_BLOCK_REGEX, "").replace(OMO_INTERNAL_INITIATOR_MARKER, "")).trim();
6277
+ return stripOutsideSteeringWrappers(text, (segment) => removeSystemReminders(segment).replace(OMO_INTERNAL_INITIATOR_MARKER, "")).trim();
6270
6278
  }
6271
6279
  function hasMeaningfulChunkUserText(parts) {
6272
6280
  for (const part of parts) {
@@ -7158,4 +7166,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
7158
7166
  });
7159
7167
  }
7160
7168
 
7161
- export { detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, TOOL_USE_DISABLED, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, 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, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, 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, 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 };
7169
+ export { detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, clearCachedM0, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, TOOL_USE_DISABLED, needsBlockedRead, withBlockedReadInstruction, rememberV1HiddenRun, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, readEpochFloorSnapshot, getProtectionWindowForSession, 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, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, 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, 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 };
@@ -3,7 +3,7 @@ import {
3
3
  } from "./server-pavzsdc6.js";
4
4
  import {
5
5
  isTransientSqliteError2
6
- } from "./server-wafzvyhg.js";
6
+ } from "./server-beht37jy.js";
7
7
  import {
8
8
  PROMOTABLE_CATEGORIES,
9
9
  CATEGORY_DEFAULT_TTL
@@ -14,10 +14,10 @@ import {
14
14
  } from "./server-f2xf5gcb.js";
15
15
  import {
16
16
  managedAuthorityNoteRow
17
- } from "./server-00hx04yn.js";
17
+ } from "./server-gpvay0xz.js";
18
18
  import {
19
19
  embedTextForProject2
20
- } from "./server-kr2kc9dz.js";
20
+ } from "./server-8by8qfec.js";
21
21
  import {
22
22
  saveEmbeddingIfHashMatches
23
23
  } from "./server-4dhv7mqz.js";
@@ -30,7 +30,7 @@ import {
30
30
  buildWorkspaceMemorySqlFilter2,
31
31
  getMemoryById2,
32
32
  updateMemorySeenCount2
33
- } from "./server-n78avt2p.js";
33
+ } from "./server-n37sebck.js";
34
34
  import {
35
35
  computeNormalizedHash
36
36
  } from "./server-2bvekkfy.js";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./server-2ra6pwf3.js";
16
16
  import {
17
17
  Database2
18
- } from "./server-wafzvyhg.js";
18
+ } from "./server-beht37jy.js";
19
19
  import {
20
20
  closeQuietly
21
21
  } from "./server-8ajstryz.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  withPrivilegedWriter2
3
- } from "./server-wafzvyhg.js";
3
+ } from "./server-beht37jy.js";
4
4
  import {
5
5
  MEMORY_CATEGORY_ORDER_SQL
6
6
  } from "./server-fr0wbhdn.js";
@@ -805,7 +805,7 @@ function parse(text, errors = [], options = ParseOptions.DEFAULT) {
805
805
  visit(text, visitor, options);
806
806
  return currentParent[0];
807
807
  }
808
- function parseTree(text, errors = [], options = ParseOptions.DEFAULT) {
808
+ function parseTree2(text, errors = [], options = ParseOptions.DEFAULT) {
809
809
  let currentParent = { type: "array", offset: -1, length: -1, children: [], parent: undefined };
810
810
  function ensurePropertyComplete(endOffset) {
811
811
  if (currentParent.type === "property") {
@@ -1193,7 +1193,7 @@ function getNodeType(value) {
1193
1193
  function setProperty(text, originalPath, value, options) {
1194
1194
  const path = originalPath.slice();
1195
1195
  const errors = [];
1196
- const root = parseTree(text, errors);
1196
+ const root = parseTree2(text, errors);
1197
1197
  let parent = undefined;
1198
1198
  let lastSegment = undefined;
1199
1199
  while (path.length > 0) {
@@ -1366,7 +1366,7 @@ var SyntaxKind;
1366
1366
  SyntaxKind[SyntaxKind["EOF"] = 17] = "EOF";
1367
1367
  })(SyntaxKind || (SyntaxKind = {}));
1368
1368
  var parse2 = parse;
1369
- var parseTree2 = parseTree;
1369
+ var parseTree = parseTree2;
1370
1370
  var findNodeAtLocation2 = findNodeAtLocation;
1371
1371
  var getNodeValue2 = getNodeValue;
1372
1372
  var ParseErrorCode;
@@ -1667,7 +1667,7 @@ var TOKEN_COMMA = 5;
1667
1667
  var TOKEN_EOF = 17;
1668
1668
  function parseDocument(text) {
1669
1669
  const errors = [];
1670
- const root = parseTree2(text, errors, { allowTrailingComma: true });
1670
+ const root = parseTree(text, errors, { allowTrailingComma: true });
1671
1671
  if (!root || errors.length > 0) {
1672
1672
  throw new Error("Cannot edit invalid JSONC");
1673
1673
  }
@@ -3843,4 +3843,4 @@ function loadPluginConfigDetailed(directory, applyRuntimeGlobals = true) {
3843
3843
  };
3844
3844
  }
3845
3845
 
3846
- export { getMagicContextBuiltinCommands, parseJsoncRecovering, readJsoncFile, detectConfigFile, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, getProtectedTokensTierOverrides, loadPluginConfigDetailed };
3846
+ export { getMagicContextBuiltinCommands, parseTree, parseJsoncRecovering, readJsoncFile, detectConfigFile, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, getProtectedTokensTierOverrides, loadPluginConfigDetailed };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./server-f2xf5gcb.js";
5
5
  import {
6
6
  inRootAsyncContext2
7
- } from "./server-wafzvyhg.js";
7
+ } from "./server-beht37jy.js";
8
8
  import {
9
9
  projectDirectoryKey
10
10
  } from "./server-knvkbfvh.js";
@@ -21,7 +21,7 @@ import path3 from "node:path";
21
21
 
22
22
  // src/features/magic-context/memory/project-identity-cache.ts
23
23
  import { createHash } from "node:crypto";
24
- import { readFileSync } from "node:fs";
24
+ import { promises as fs, readFileSync } from "node:fs";
25
25
  import path from "node:path";
26
26
  function cachePath(directory, storageDir = getMagicContextStorageDir()) {
27
27
  const hash = createHash("sha256").update(projectDirectoryKey(directory)).digest("hex");
@@ -41,6 +41,35 @@ function readRememberedGitIdentity(directory, storageDir) {
41
41
  } catch {}
42
42
  return;
43
43
  }
44
+ async function pruneMissingProjectIdentities(storageDir = getMagicContextStorageDir()) {
45
+ const directory = path.join(storageDir, "project-identities");
46
+ let removed = 0;
47
+ let entries;
48
+ try {
49
+ entries = await fs.readdir(directory);
50
+ } catch {
51
+ return 0;
52
+ }
53
+ for (const entry of entries) {
54
+ if (!/^[0-9a-f]{64}\.json$/.test(entry))
55
+ continue;
56
+ const file = path.join(directory, entry);
57
+ try {
58
+ const record = JSON.parse(await fs.readFile(file, "utf8"));
59
+ if (typeof record.directory !== "string" || !path.isAbsolute(record.directory) || cachePath(record.directory, storageDir) !== file || !/^git:[0-9a-f]{7,64}$/.test(record.identity))
60
+ continue;
61
+ try {
62
+ await fs.stat(record.directory);
63
+ } catch (error) {
64
+ if (error.code !== "ENOENT")
65
+ continue;
66
+ await fs.unlink(file);
67
+ removed++;
68
+ }
69
+ } catch {}
70
+ }
71
+ return removed;
72
+ }
44
73
 
45
74
  // src/features/magic-context/memory/unborn-head.ts
46
75
  import { readFileSync as readFileSync2, realpathSync, statSync } from "node:fs";
@@ -708,4 +737,4 @@ function setBootQuietPeriodForTests(startAtMs) {
708
737
  bootQuietUntilMs = startAtMs === null ? 0 : startAtMs + BOOT_QUIET_MS;
709
738
  }
710
739
 
711
- export { setHomeProjectPermission, shouldSkipHomeProjectMemory, ProjectIdentityError, takeDubiousOwnershipProjectIdentityWarning, isUserHomeDirectory, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, isUsableProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, beginBootQuietPeriod, scheduleAfterBootQuiet, setBootQuietPeriodForTests };
740
+ export { pruneMissingProjectIdentities, setHomeProjectPermission, shouldSkipHomeProjectMemory, ProjectIdentityError, takeDubiousOwnershipProjectIdentityWarning, isUserHomeDirectory, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, isUsableProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, beginBootQuietPeriod, scheduleAfterBootQuiet, setBootQuietPeriodForTests };
@@ -29,7 +29,27 @@ function isSystemDirective(text) {
29
29
  return text.trimStart().startsWith(SYSTEM_DIRECTIVE_PREFIX);
30
30
  }
31
31
  function removeSystemReminders(text) {
32
- return text.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/gi, "").trim();
32
+ return removeNestedBlocks(text, ["system-reminder"]).trim();
33
+ }
34
+ function removeNestedBlocks(text, names) {
35
+ const tags = new RegExp(`<(/?)(${names.join("|")})(?:\\s[^<>]*?)?\\s*(/?)>`, "gi");
36
+ const stack = [];
37
+ let end = 0;
38
+ let result = "";
39
+ for (const match of text.matchAll(tags)) {
40
+ if (stack.length === 0)
41
+ result += text.slice(end, match.index);
42
+ const name = match[2].toLowerCase();
43
+ if (match[1]) {
44
+ if (stack[stack.length - 1] === name)
45
+ stack.pop();
46
+ } else if (!match[3])
47
+ stack.push(name);
48
+ end = match.index + match[0].length;
49
+ }
50
+ if (stack.length === 0)
51
+ result += text.slice(end);
52
+ return result;
33
53
  }
34
54
 
35
55
  // src/hooks/magic-context/token-count-exact.ts
@@ -730,4 +750,4 @@ function mergeCommitHashes(existing, next) {
730
750
  return merged;
731
751
  }
732
752
 
733
- export { textMentionsRecentCommit, OMO_INTERNAL_INITIATOR_MARKER, isSystemDirective, removeSystemReminders, hasMeaningfulUserText2, extractTexts2, extractToolResultBodyTokens, extractToolCallSummaries, getTokenizerNativeMemoryStats, preloadTokenizer, getTokenEstimatorFingerprint, hasTokenizerForFit, tokenCountUsesByteBound, estimateTokens, createTokenCountMemo, estimateFixedPromptTokens, normalizeText, compactRole, formatBlock, compactTextForSummary, mergeCommitHashes };
753
+ export { textMentionsRecentCommit, OMO_INTERNAL_INITIATOR_MARKER, isSystemDirective, removeSystemReminders, removeNestedBlocks, hasMeaningfulUserText2, extractTexts2, extractToolResultBodyTokens, extractToolCallSummaries, getTokenizerNativeMemoryStats, preloadTokenizer, getTokenEstimatorFingerprint, hasTokenizerForFit, tokenCountUsesByteBound, estimateTokens, createTokenCountMemo, estimateFixedPromptTokens, normalizeText, compactRole, formatBlock, compactTextForSummary, mergeCommitHashes };
@@ -6,7 +6,7 @@ import {
6
6
  StaleRouteHandleError,
7
7
  SubcClient,
8
8
  isConsumerReconnectTransient
9
- } from "./server-rrqpvwqd.js";
9
+ } from "./server-6tmj0s7j.js";
10
10
  import {
11
11
  getHarness2
12
12
  } from "./server-pavzsdc6.js";
@@ -16,11 +16,11 @@ import {
16
16
  } from "./server-f2xf5gcb.js";
17
17
  import {
18
18
  inRootAsyncContext2
19
- } from "./server-wafzvyhg.js";
19
+ } from "./server-beht37jy.js";
20
20
  import {
21
21
  buildCanonicalChunkTextFromFts,
22
22
  loadCompartmentChunkEmbeddingsForSearch
23
- } from "./server-kqpawe1a.js";
23
+ } from "./server-46neh5fa.js";
24
24
  import {
25
25
  recordEmbeddingMeasurement,
26
26
  saveCommitEmbedding,
@@ -37,7 +37,7 @@ import {
37
37
  enqueueShadowEmbeddingItems2,
38
38
  getProjectEmbeddingSnapshot2,
39
39
  embedItemsForProject2
40
- } from "./server-kr2kc9dz.js";
40
+ } from "./server-8by8qfec.js";
41
41
  import {
42
42
  getProjectEmbeddings2
43
43
  } from "./server-4dhv7mqz.js";
@@ -46,13 +46,13 @@ import {
46
46
  isEmbeddingEnabled,
47
47
  embedText,
48
48
  ensureMemoryEmbeddings2
49
- } from "./server-aavz8pm6.js";
49
+ } from "./server-zzkj2fch.js";
50
50
  import {
51
51
  ModuleMemoryAuthorityError2,
52
52
  getMemoriesByProject2,
53
53
  getMemoriesByProjects2,
54
54
  updateMemoryRetrievalCount2
55
- } from "./server-n78avt2p.js";
55
+ } from "./server-n37sebck.js";
56
56
  import {
57
57
  getNotes,
58
58
  getActivePrimers,
@@ -61,24 +61,27 @@ import {
61
61
  sanitizeFtsQuery,
62
62
  searchMemoriesFTS,
63
63
  searchMemoriesFTSUnion
64
- } from "./server-vgpab6rd.js";
64
+ } from "./server-my7k4eds.js";
65
+ import {
66
+ cleanSearchText,
67
+ keywordRelevance,
68
+ matchedSearchSnippet,
69
+ getIndexedMessageCorpusSize2
70
+ } from "./server-3rhpvy84.js";
65
71
  import {
66
72
  MESSAGE_FTS_SESSION_FILTER_SQL,
67
73
  withMessageFtsSessionFilter
68
74
  } from "./server-kaqs6h31.js";
69
75
  import {
70
76
  isRecord
71
- } from "./server-0mzjjw3s.js";
72
- import {
73
- getIndexedMessageCorpusSize2
74
- } from "./server-g59aatsz.js";
77
+ } from "./server-zyzawhdw.js";
75
78
  import {
76
79
  resolveWorkspaceShareCategories,
77
80
  resolveWorkspaceIdentitySet,
78
81
  expandWorkspaceIdentitySetWithAliases,
79
82
  resolveStoredPathWorkspaceIdentity,
80
83
  sourceNameForMemory
81
- } from "./server-00hx04yn.js";
84
+ } from "./server-gpvay0xz.js";
82
85
  import {
83
86
  isKnownAutocommit
84
87
  } from "./server-8ajstryz.js";
@@ -968,6 +971,10 @@ async function indexCommitsForProject(db, projectPath, directory, options) {
968
971
  embedded: 0,
969
972
  nonIndexable: false
970
973
  };
974
+ if (projectPath.startsWith("dir:")) {
975
+ result.nonIndexable = true;
976
+ return result;
977
+ }
971
978
  if (indexInProgress.has(projectPath)) {
972
979
  log2(`[git-commits] index already in progress for ${projectPath}, skipping`);
973
980
  return result;
@@ -1021,6 +1028,7 @@ async function embedUnembeddedCommits(db, projectPath) {
1021
1028
  embedInProgress.add(projectPath);
1022
1029
  const startedAt = Date.now();
1023
1030
  const deadline = startedAt + EMBED_SWEEP_MAX_WALL_CLOCK_MS;
1031
+ const signal = AbortSignal.timeout(EMBED_SWEEP_MAX_WALL_CLOCK_MS);
1024
1032
  let total = 0;
1025
1033
  try {
1026
1034
  while (Date.now() < deadline && total < EMBED_MAX_PER_SWEEP) {
@@ -1033,7 +1041,7 @@ async function embedUnembeddedCommits(db, projectPath) {
1033
1041
  id: `commit:${row.sha}`,
1034
1042
  text: row.message,
1035
1043
  contentSha256: contentSha2562(row.message)
1036
- })), undefined, db, projectPath);
1044
+ })), signal, db, projectPath);
1037
1045
  if (!result)
1038
1046
  break;
1039
1047
  db.transaction(() => {
@@ -2379,7 +2387,7 @@ function searchMessagesInSnapshot(args, sessionFirst) {
2379
2387
  const filtered = rows.slice(0, limit);
2380
2388
  return filtered.map((row, rank) => ({
2381
2389
  source: "message",
2382
- content: previewText(row.content),
2390
+ content: matchedSearchSnippet(row.content, args.query) || previewText(row.content),
2383
2391
  score: linearDecayScore(rank, filtered.length),
2384
2392
  messageOrdinal: row.messageOrdinal,
2385
2393
  messageId: row.messageId,
@@ -2456,7 +2464,7 @@ function searchMessagesInSnapshot(args, sessionFirst) {
2456
2464
  const ranked = [...fused.values()].sort((a, b) => b.score !== a.score ? b.score - a.score : a.row.messageOrdinal - b.row.messageOrdinal).slice(0, resultLimit);
2457
2465
  return ranked.map((entry, rank) => ({
2458
2466
  source: "message",
2459
- content: previewText(entry.row.content),
2467
+ content: matchedSearchSnippet(entry.row.content, args.query) || previewText(entry.row.content),
2460
2468
  score: linearDecayScore(rank, ranked.length),
2461
2469
  messageOrdinal: entry.row.messageOrdinal,
2462
2470
  messageId: entry.row.messageId,
@@ -2679,10 +2687,7 @@ function mergeMessageAndCompartmentResults(args) {
2679
2687
  }
2680
2688
  }
2681
2689
  const ranked = [...fused.values()].sort((left, right) => right.score !== left.score ? right.score - left.score : left.tieOrdinal - right.tieOrdinal).slice(0, args.limit);
2682
- return ranked.map((entry, rank) => ({
2683
- ...entry.result,
2684
- score: linearDecayScore(rank, ranked.length)
2685
- }));
2690
+ return ranked.map((entry) => entry.result);
2686
2691
  }
2687
2692
  function getSourceBoost(result) {
2688
2693
  switch (result.source) {
@@ -2960,7 +2965,7 @@ async function unifiedSearch2(db, sessionId, projectPath, query, options = {}) {
2960
2965
  if (options.diagnostics) {
2961
2966
  options.diagnostics.suppressedLiveMessageMatches = outcome.suppressedLiveMessageMatches;
2962
2967
  }
2963
- messageResults = outcome.results;
2968
+ messageResults = outcome.results.filter((result) => result.messageId !== options.excludeMessageId);
2964
2969
  if (lanes)
2965
2970
  lanes.message_fts = (outcome.laneResults ?? outcome.results).slice(0, 25);
2966
2971
  }
@@ -3093,6 +3098,12 @@ async function unifiedSearch2(db, sessionId, projectPath, query, options = {}) {
3093
3098
  }).immediate();
3094
3099
  }
3095
3100
  }
3101
+ if (options.autoHint) {
3102
+ return results.map((result) => ({
3103
+ ...result,
3104
+ 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
3105
+ }));
3106
+ }
3096
3107
  return results;
3097
3108
  }
3098
3109
  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.";
@@ -8,7 +8,7 @@ import {
8
8
  inRootAsyncContext2,
9
9
  getSqliteDatabasePath2,
10
10
  releaseIndexOwner2
11
- } from "./server-wafzvyhg.js";
11
+ } from "./server-beht37jy.js";
12
12
 
13
13
  // src/hooks/magic-context/raw-ordinal-warmup.ts
14
14
  import { Worker } from "node:worker_threads";