@cortexkit/opencode-magic-context 0.47.0 → 0.48.0

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 (366) hide show
  1. package/dist/agents/magic-context-prompt.d.ts +1 -1
  2. package/dist/agents/magic-context-prompt.d.ts.map +1 -1
  3. package/dist/{announcement-y35wzg2r.js → announcement-fp14dw0n.js} +3 -2
  4. package/dist/auto-search-worker.js +27 -30
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/mural-model-deprecation.d.ts +15 -0
  7. package/dist/config/mural-model-deprecation.d.ts.map +1 -0
  8. package/dist/config/project-security.d.ts +0 -3
  9. package/dist/config/project-security.d.ts.map +1 -1
  10. package/dist/config/schema/magic-context.d.ts +10 -6
  11. package/dist/config/schema/magic-context.d.ts.map +1 -1
  12. package/dist/{conflict-warning-hook-z44ynfz7.js → conflict-warning-hook-w8cykrnf.js} +12 -10
  13. package/dist/{context-wq4ffwyb.js → context-m0cy262m.js} +2690 -1903
  14. package/dist/{derive-budgets-ke12jnnh.js → derive-budgets-sg0xsq7s.js} +4 -3
  15. package/dist/embedding-activity-g1dhes6g.js +10 -0
  16. package/dist/embedding-backfill-9rcm1mfy.js +21 -0
  17. package/dist/embedding-cache-mgyr73ef.js +16 -0
  18. package/dist/embedding-worker.js +11 -9
  19. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  20. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts +1 -0
  21. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -1
  22. package/dist/features/magic-context/dreamer/task-config.d.ts +3 -3
  23. package/dist/features/magic-context/dreamer/task-config.d.ts.map +1 -1
  24. package/dist/features/magic-context/dreamer/task-executor.d.ts +1 -1
  25. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  26. package/dist/features/magic-context/dreamer/task-registry.d.ts +1 -0
  27. package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
  28. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  29. package/dist/features/magic-context/message-index-async.d.ts +16 -3
  30. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  31. package/dist/features/magic-context/message-index-bounded.d.ts +17 -0
  32. package/dist/features/magic-context/message-index-bounded.d.ts.map +1 -0
  33. package/dist/features/magic-context/message-index.d.ts +7 -1
  34. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  35. package/dist/features/magic-context/mural/render-trigger.d.ts +7 -4
  36. package/dist/features/magic-context/mural/render-trigger.d.ts.map +1 -1
  37. package/dist/features/magic-context/pi-content-decisions.d.ts +7 -1
  38. package/dist/features/magic-context/pi-content-decisions.d.ts.map +1 -1
  39. package/dist/features/magic-context/search.d.ts +29 -0
  40. package/dist/features/magic-context/search.d.ts.map +1 -1
  41. package/dist/features/magic-context/session-activity.d.ts.map +1 -1
  42. package/dist/features/magic-context/smart-notes/runner.d.ts +1 -0
  43. package/dist/features/magic-context/smart-notes/runner.d.ts.map +1 -1
  44. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  45. package/dist/features/magic-context/storage-meta-session.d.ts +6 -0
  46. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  47. package/dist/features/magic-context/storage-tag-identity-revision.d.ts +30 -0
  48. package/dist/features/magic-context/storage-tag-identity-revision.d.ts.map +1 -0
  49. package/dist/features/magic-context/storage-tags.d.ts +144 -4
  50. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  51. package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -1
  52. package/dist/features/magic-context/transform-decision-log.d.ts +1 -1
  53. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
  54. package/dist/harness-e4avh192.js +10 -0
  55. package/dist/hooks/magic-context/active-anthropic-turn.d.ts +2 -0
  56. package/dist/hooks/magic-context/active-anthropic-turn.d.ts.map +1 -1
  57. package/dist/hooks/magic-context/auto-search-worker-client.d.ts +32 -3
  58. package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -1
  59. package/dist/hooks/magic-context/command-handler.d.ts +1 -0
  60. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  61. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  62. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  63. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  64. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  65. package/dist/hooks/magic-context/hook.d.ts +1 -1
  66. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  67. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  68. package/dist/hooks/magic-context/lkg-persist.d.ts +4 -3
  69. package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
  70. package/dist/hooks/magic-context/lkg-replay.d.ts +13 -8
  71. package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
  72. package/dist/hooks/magic-context/lkg-slot.d.ts +139 -2
  73. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  74. package/dist/hooks/magic-context/message-search-accepting-silent-worker.fixture.d.ts +2 -0
  75. package/dist/hooks/magic-context/message-search-accepting-silent-worker.fixture.d.ts.map +1 -0
  76. package/dist/hooks/magic-context/oc-stall-r2-warmup-worker.fixture.d.ts +2 -0
  77. package/dist/hooks/magic-context/oc-stall-r2-warmup-worker.fixture.d.ts.map +1 -0
  78. package/dist/hooks/magic-context/oc-stall-search-review.fixture.d.ts +2 -0
  79. package/dist/hooks/magic-context/oc-stall-search-review.fixture.d.ts.map +1 -0
  80. package/dist/hooks/magic-context/opencode1-to-model-messages.fixture.d.ts +63 -0
  81. package/dist/hooks/magic-context/opencode1-to-model-messages.fixture.d.ts.map +1 -0
  82. package/dist/hooks/magic-context/provider-visible-parts.d.ts +45 -0
  83. package/dist/hooks/magic-context/provider-visible-parts.d.ts.map +1 -0
  84. package/dist/hooks/magic-context/raw-ordinal-warmup-silent-worker.fixture.d.ts +2 -0
  85. package/dist/hooks/magic-context/raw-ordinal-warmup-silent-worker.fixture.d.ts.map +1 -0
  86. package/dist/hooks/magic-context/raw-ordinal-warmup-worker.d.ts +2 -0
  87. package/dist/hooks/magic-context/raw-ordinal-warmup-worker.d.ts.map +1 -0
  88. package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts +87 -0
  89. package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts.map +1 -0
  90. package/dist/hooks/magic-context/read-session-chunk.d.ts +12 -0
  91. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  92. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  93. package/dist/hooks/magic-context/read-session-formatting.d.ts +5 -0
  94. package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -1
  95. package/dist/hooks/magic-context/read-session-raw.d.ts +83 -1
  96. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  97. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -1
  98. package/dist/hooks/magic-context/reasoning-budget.d.ts.map +1 -1
  99. package/dist/hooks/magic-context/sentinel.d.ts +41 -1
  100. package/dist/hooks/magic-context/sentinel.d.ts.map +1 -1
  101. package/dist/hooks/magic-context/strip-content.d.ts +14 -2
  102. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  103. package/dist/hooks/magic-context/system-prompt-hash.d.ts +1 -0
  104. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  105. package/dist/hooks/magic-context/tag-messages.d.ts +8 -0
  106. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  107. package/dist/hooks/magic-context/tag-owner-warmup.d.ts +6 -0
  108. package/dist/hooks/magic-context/tag-owner-warmup.d.ts.map +1 -0
  109. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -1
  110. package/dist/hooks/magic-context/token-count-exact.d.ts +35 -0
  111. package/dist/hooks/magic-context/token-count-exact.d.ts.map +1 -0
  112. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  113. package/dist/hooks/magic-context/transform.d.ts +8 -2
  114. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  115. package/dist/hooks/magic-context/wrapup-orchestrator.d.ts.map +1 -1
  116. package/dist/{index-w2t4ah5j.js → index-0an7742d.js} +14072 -14286
  117. package/dist/index-0qhce371.js +120 -0
  118. package/dist/{index-q6hef7fh.js → index-0sahzkwr.js} +6 -19
  119. package/dist/{index-k5bdx1bx.js → index-0w56v4fm.js} +3 -5
  120. package/dist/index-14cjxt20.js +819 -0
  121. package/dist/{v2/server-51dv1pr5.js → index-1qb0z7wa.js} +301 -27
  122. package/dist/index-2bvekkfy.js +11 -0
  123. package/dist/{index-sj29b3z2.js → index-2y0s2hep.js} +3 -3
  124. package/dist/index-4dhv7mqz.js +131 -0
  125. package/dist/{index-b35pxds2.js → index-58e3y90n.js} +1 -18
  126. package/dist/index-5zygecde.js +152 -0
  127. package/dist/{index-6d9e1m08.js → index-692jzy0p.js} +17775 -17450
  128. package/dist/index-72nhv486.js +2307 -0
  129. package/dist/index-7jzrrxap.js +931 -0
  130. package/dist/{v2/server-njt3np1k.js → index-7mx8v0pw.js} +220 -961
  131. package/dist/index-8ajstryz.js +18 -0
  132. package/dist/{index-sfpzqvdz.js → index-8cd2j99z.js} +2 -3
  133. package/dist/{index-hybnrwq0.js → index-8j7gqj40.js} +131 -128
  134. package/dist/index-bdckkfw6.js +3261 -0
  135. package/dist/{index-m5fe6jch.js → index-bhvjj0ys.js} +152 -2453
  136. package/dist/index-c43kr12f.js +3030 -0
  137. package/dist/index-cb7emxgj.js +984 -0
  138. package/dist/index-d9vfe7xq.js +16 -0
  139. package/dist/{index-5gq3b2ya.js → index-db7zwa3v.js} +147 -209
  140. package/dist/index-dhwzyd54.js +1142 -0
  141. package/dist/{index-8da2zjhz.js → index-eeezr5zz.js} +9 -7
  142. package/dist/{index-cwf6s3ay.js → index-f0h6xwqm.js} +2828 -2618
  143. package/dist/index-fb3zxn06.js +13 -0
  144. package/dist/index-fbv1dn35.js +171 -0
  145. package/dist/index-fr0wbhdn.js +43 -0
  146. package/dist/{index-mc22ayvf.js → index-ghc9f0n7.js} +11 -9
  147. package/dist/{index-fzbvakh0.js → index-jcbd3znx.js} +3 -3
  148. package/dist/{index-5a2r0p9f.js → index-k1xb52kd.js} +20 -13
  149. package/dist/index-k9nnwad5.js +3532 -0
  150. package/dist/{index-wx8a6bw3.js → index-kb9nn0a0.js} +270 -53
  151. package/dist/index-knh4y330.js +566 -0
  152. package/dist/{v2/server-fq7kq32k.js → index-mfkzp7qj.js} +1 -16
  153. package/dist/{index-gg8j07zz.js → index-mmyh6d8f.js} +4 -4
  154. package/dist/index-pavzsdc6.js +17 -0
  155. package/dist/{index-0c82743p.js → index-pdecwzrd.js} +17 -15
  156. package/dist/index-pg50n748.js +1060 -0
  157. package/dist/{index-92bp57hg.js → index-q2tqeqde.js} +123 -80
  158. package/dist/{index-rrrsepyw.js → index-q7h7csab.js} +90 -85
  159. package/dist/{v2/server-yr3zj7e7.js → index-qt1qqasc.js} +6 -7
  160. package/dist/{index-6wkcswft.js → index-ty64eqcn.js} +28 -18
  161. package/dist/{index-adwfkpex.js → index-yq8n9qcb.js} +23 -23
  162. package/dist/{index-9pk9exrb.js → index-z8e0psj8.js} +18 -18
  163. package/dist/index.d.ts.map +1 -1
  164. package/dist/index.js +586 -344
  165. package/dist/logger-d3wex3dz.js +20 -0
  166. package/dist/message-index-bounded-7ezbgddp.js +124 -0
  167. package/dist/{v2/message-time-backfill-1f9tzvcs.js → message-time-backfill-brbd63hv.js} +8 -6
  168. package/dist/migration-worker.js +25 -18
  169. package/dist/{model-resolution-xhfmyyvy.js → model-resolution-nx97z3x7.js} +1 -1
  170. package/dist/plugin/dream-timer.d.ts +1 -1
  171. package/dist/plugin/dream-timer.d.ts.map +1 -1
  172. package/dist/plugin/hooks/create-session-hooks.d.ts +1 -0
  173. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  174. package/dist/plugin/host-stall-profiler-report.d.ts +1 -66
  175. package/dist/plugin/host-stall-profiler-report.d.ts.map +1 -1
  176. package/dist/plugin/host-stall-profiler.d.ts +2 -95
  177. package/dist/plugin/host-stall-profiler.d.ts.map +1 -1
  178. package/dist/plugin/messages-transform.d.ts +0 -13
  179. package/dist/plugin/messages-transform.d.ts.map +1 -1
  180. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  181. package/dist/plugin/tool-registry.d.ts.map +1 -1
  182. package/dist/project-embedding-registry-7qzptcw7.js +88 -0
  183. package/dist/raw-ordinal-warmup-worker.js +60 -0
  184. package/dist/{read-session-chunk-4jey7hpt.js → read-session-chunk-6k83m4fj.js} +15 -9
  185. package/dist/read-session-raw-3g9qy1xa.js +58 -0
  186. package/dist/recomp-orchestrator-d3fp1cy0.js +57 -0
  187. package/dist/{v2/safe-notification-target-eb1n1vfb.js → safe-notification-target-5ffqq32m.js} +4 -2
  188. package/dist/search-epax1ecv.js +45 -0
  189. package/dist/{v2/send-session-notification-c0wtscea.js → send-session-notification-erecz4y4.js} +10 -7
  190. package/dist/shared/conflict-detector.d.ts.map +1 -1
  191. package/dist/shared/host-stall-profiler-bun.d.ts +46 -0
  192. package/dist/shared/host-stall-profiler-bun.d.ts.map +1 -0
  193. package/dist/shared/host-stall-profiler-common.d.ts +58 -0
  194. package/dist/shared/host-stall-profiler-common.d.ts.map +1 -0
  195. package/dist/shared/host-stall-profiler-node.d.ts +36 -0
  196. package/dist/shared/host-stall-profiler-node.d.ts.map +1 -0
  197. package/dist/shared/host-stall-profiler-report.d.ts +68 -0
  198. package/dist/shared/host-stall-profiler-report.d.ts.map +1 -0
  199. package/dist/shared/host-stall-profiler.d.ts +5 -0
  200. package/dist/shared/host-stall-profiler.d.ts.map +1 -0
  201. package/dist/shared/model-resolution.d.ts +2 -3
  202. package/dist/shared/model-resolution.d.ts.map +1 -1
  203. package/dist/shared/sqlite.d.ts +30 -0
  204. package/dist/shared/sqlite.d.ts.map +1 -1
  205. package/dist/shared/stable-json.d.ts.map +1 -1
  206. package/dist/shared/user-facing-codes.d.ts +0 -5
  207. package/dist/shared/user-facing-codes.d.ts.map +1 -1
  208. package/dist/sqlite-context-pragmas-mv9jqwjh.js +6 -0
  209. package/dist/sqlite-mhjkerzq.js +46 -0
  210. package/dist/storage-memory-07fx57k6.js +71 -0
  211. package/dist/storage-tags-d3b0v2ss.js +131 -0
  212. package/dist/{task-config-v81k8jvk.js → task-config-cgpg0nvh.js} +2 -2
  213. package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
  214. package/dist/tools/ctx-note/constants.d.ts +4 -0
  215. package/dist/tools/ctx-note/constants.d.ts.map +1 -1
  216. package/dist/tools/ctx-note/tools.d.ts +1 -0
  217. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  218. package/dist/tools/ctx-search/tools.d.ts.map +1 -1
  219. package/dist/tools/parameter-descriptions.d.ts +2 -2
  220. package/dist/tools/parameter-descriptions.d.ts.map +1 -1
  221. package/dist/{transform-postprocess-phase-z5hzpsxv.js → transform-postprocess-phase-spcy2qre.js} +35 -20
  222. package/dist/transformers-node-wasm.js +18415 -18415
  223. package/dist/v2/auto-search-worker.js +27 -30
  224. package/dist/v2/{context-14v1hr8b.js → context-sf98kstd.js} +3737 -3004
  225. package/dist/v2/{derive-budgets-nc9avxz8.js → derive-budgets-3vc0y84t.js} +4 -3
  226. package/dist/v2/embedding-activity-g1dhes6g.js +10 -0
  227. package/dist/v2/embedding-backfill-vn8g1nh1.js +21 -0
  228. package/dist/v2/embedding-cache-mgyr73ef.js +16 -0
  229. package/dist/v2/embedding-worker.js +12 -9
  230. package/dist/v2/fold/host-media.d.ts +4 -0
  231. package/dist/v2/fold/host-media.d.ts.map +1 -1
  232. package/dist/v2/fold/memory-cache.d.ts +70 -0
  233. package/dist/v2/fold/memory-cache.d.ts.map +1 -0
  234. package/dist/v2/fold/native-codec.d.ts +10 -0
  235. package/dist/v2/fold/native-codec.d.ts.map +1 -0
  236. package/dist/v2/fold/native-replay.d.ts +58 -0
  237. package/dist/v2/fold/native-replay.d.ts.map +1 -0
  238. package/dist/v2/fold/policy.d.ts +24 -0
  239. package/dist/v2/fold/policy.d.ts.map +1 -0
  240. package/dist/v2/harness-e4avh192.js +10 -0
  241. package/dist/v2/hooks/context.d.ts +2 -2
  242. package/dist/v2/hooks/context.d.ts.map +1 -1
  243. package/dist/v2/hooks/dream-manual.d.ts +1 -1
  244. package/dist/v2/hooks/dream-manual.d.ts.map +1 -1
  245. package/dist/v2/hooks/dream-timer.d.ts.map +1 -1
  246. package/dist/v2/hooks/dream-trigger.d.ts +1 -2
  247. package/dist/v2/hooks/dream-trigger.d.ts.map +1 -1
  248. package/dist/v2/hooks/payload.d.ts.map +1 -1
  249. package/dist/v2/hooks/tools.d.ts.map +1 -1
  250. package/dist/v2/hooks/types.d.ts +6 -0
  251. package/dist/v2/hooks/types.d.ts.map +1 -1
  252. package/dist/v2/logger-mxd0ym09.js +19 -0
  253. package/dist/v2/message-index-bounded-dy3s2k1e.js +123 -0
  254. package/dist/{message-time-backfill-r5epkzj3.js → v2/message-time-backfill-gtx1pwk1.js} +7 -7
  255. package/dist/v2/migration-worker.js +24 -17
  256. package/dist/v2/{model-resolution-xhfmyyvy.js → model-resolution-nx97z3x7.js} +1 -1
  257. package/dist/v2/project-embedding-registry-1tgba5dv.js +86 -0
  258. package/dist/v2/raw-ordinal-warmup-worker.js +60 -0
  259. package/dist/v2/{read-session-chunk-gyyv7w2r.js → read-session-chunk-rh4khdkv.js} +14 -8
  260. package/dist/v2/read-session-raw-bsbmf0vj.js +57 -0
  261. package/dist/v2/recomp-orchestrator-az61rfcg.js +57 -0
  262. package/dist/{safe-notification-target-43r8jsxw.js → v2/safe-notification-target-73ax1p5v.js} +3 -3
  263. package/dist/v2/search-nzkwrc6n.js +45 -0
  264. package/dist/{send-session-notification-0m68ms3n.js → v2/send-session-notification-6km439kn.js} +9 -8
  265. package/dist/{index-5eqk6z3s.js → v2/server-1r6pmz4f.js} +301 -27
  266. package/dist/v2/server-2bvekkfy.js +11 -0
  267. package/dist/v2/server-2fbhp79z.js +3205 -0
  268. package/dist/v2/{server-ajzeteqw.js → server-2ra6pwf3.js} +1 -18
  269. package/dist/v2/server-4dhv7mqz.js +131 -0
  270. package/dist/v2/{server-y10vbq6y.js → server-4k748ke6.js} +11 -1053
  271. package/dist/v2/{server-vs5gpnd4.js → server-52awr2mw.js} +81 -145
  272. package/dist/v2/{server-1qbnzc80.js → server-5m3dt5r1.js} +136 -148
  273. package/dist/v2/server-686jg6eb.js +3508 -0
  274. package/dist/v2/server-7jzrrxap.js +931 -0
  275. package/dist/v2/server-7wwc2nga.js +3023 -0
  276. package/dist/v2/server-8ajstryz.js +18 -0
  277. package/dist/v2/{server-sfpzqvdz.js → server-8cd2j99z.js} +2 -3
  278. package/dist/v2/{server-d0sraw7m.js → server-8pyt7hev.js} +291 -286
  279. package/dist/v2/server-8tqanswc.js +984 -0
  280. package/dist/v2/{server-14vq4kpm.js → server-aan4q8mx.js} +3 -3
  281. package/dist/v2/server-d9vfe7xq.js +16 -0
  282. package/dist/{index-x3kwrmqk.js → v2/server-e0vdaae2.js} +35 -792
  283. package/dist/v2/server-ezhze64f.js +1048 -0
  284. package/dist/v2/server-fb3zxn06.js +13 -0
  285. package/dist/v2/server-fr0wbhdn.js +43 -0
  286. package/dist/v2/server-g5r0n3b6.js +1137 -0
  287. package/dist/v2/server-gjcr4w98.js +154 -0
  288. package/dist/v2/server-k228xhjg.js +171 -0
  289. package/dist/v2/{server-nf82q6pt.js → server-k8x2rbxc.js} +5946 -5602
  290. package/dist/v2/{server-wx8a6bw3.js → server-kb9nn0a0.js} +270 -53
  291. package/dist/{index-rrbbspwh.js → v2/server-mfkzp7qj.js} +1 -16
  292. package/dist/v2/server-pavzsdc6.js +17 -0
  293. package/dist/v2/{server-e0c1b7a7.js → server-psqc7e9n.js} +122 -79
  294. package/dist/{index-yr3zj7e7.js → v2/server-qt1qqasc.js} +6 -7
  295. package/dist/v2/server-qye6ykf7.js +120 -0
  296. package/dist/v2/{server-qdjnb2z1.js → server-r5p3b1wy.js} +11 -9
  297. package/dist/v2/server-sggvvzhb.js +759 -0
  298. package/dist/v2/{server-cpepxy2q.js → server-v06jcv0w.js} +14 -12
  299. package/dist/v2/server-vqpf3167.js +1048 -0
  300. package/dist/v2/{server-rz514f14.js → server-x2g40a71.js} +2044 -2060
  301. package/dist/v2/{server-vd4e7174.js → server-xdfwt6kh.js} +20 -16
  302. package/dist/v2/{server-efhwzx05.js → server-xxm59eww.js} +23 -23
  303. package/dist/v2/server-yczc713m.js +564 -0
  304. package/dist/v2/{server-fcdehk1s.js → server-z2037m6z.js} +4 -4
  305. package/dist/v2/{server-50hvkg3v.js → server-zm570tr2.js} +160 -158
  306. package/dist/v2/{server-6r257mf5.js → server-zxhgvsf9.js} +3 -3
  307. package/dist/v2/server.js +16 -14
  308. package/dist/v2/sqlite-context-pragmas-mv9jqwjh.js +6 -0
  309. package/dist/v2/sqlite-mhjkerzq.js +46 -0
  310. package/dist/v2/storage-memory-07fx57k6.js +71 -0
  311. package/dist/v2/storage-tags-w4tv77sn.js +130 -0
  312. package/dist/v2/store-reader.d.ts +16 -0
  313. package/dist/v2/store-reader.d.ts.map +1 -1
  314. package/dist/v2/{task-config-tbndqyny.js → task-config-x0hq3qfd.js} +2 -2
  315. package/dist/v2/transformers-node-wasm.js +18415 -18415
  316. package/dist/v2/tui/index.d.ts.map +1 -1
  317. package/dist/v2/tui/types.d.ts +1 -10
  318. package/dist/v2/tui/types.d.ts.map +1 -1
  319. package/dist/v2/{wrapup-orchestrator-nbz854vc.js → wrapup-orchestrator-mz7efs7w.js} +51 -30
  320. package/dist/wrapup-orchestrator-amzta1t4.js +44 -0
  321. package/package.json +4 -3
  322. package/src/agents/magic-context-prompt.ts +27 -2
  323. package/src/agents/smart-notes-enabled.test.ts +294 -0
  324. package/src/agents/smart-notes-on.golden.json +70 -0
  325. package/src/config/index.test.ts +67 -1
  326. package/src/config/index.ts +2 -0
  327. package/src/config/latch-permanence-guard.test.ts +4 -0
  328. package/src/config/mural-model-deprecation.ts +24 -0
  329. package/src/config/project-security.hostile-matrix.test.ts +4 -44
  330. package/src/config/project-security.test.ts +9 -14
  331. package/src/config/project-security.ts +13 -55
  332. package/src/config/schema/magic-context.test.ts +2 -2
  333. package/src/config/schema/magic-context.ts +16 -10
  334. package/src/features/magic-context/dreamer/task-registry.ts +6 -0
  335. package/src/shared/conflict-detector.test.ts +56 -0
  336. package/src/shared/conflict-detector.ts +16 -5
  337. package/src/shared/host-stall-profiler-bun.ts +358 -0
  338. package/src/shared/host-stall-profiler-common.ts +159 -0
  339. package/src/shared/host-stall-profiler-node.test.ts +234 -0
  340. package/src/shared/host-stall-profiler-node.ts +274 -0
  341. package/src/shared/host-stall-profiler-report.ts +248 -0
  342. package/src/shared/host-stall-profiler.ts +57 -0
  343. package/src/shared/model-resolution.test.ts +54 -17
  344. package/src/shared/model-resolution.ts +6 -17
  345. package/src/shared/sqlite.test.ts +52 -0
  346. package/src/shared/sqlite.ts +339 -23
  347. package/src/shared/stable-json-linear.test.ts +109 -0
  348. package/src/shared/stable-json.ts +37 -7
  349. package/src/shared/user-facing-codes.ts +2 -6
  350. package/src/shared/write-transaction-attribution.test.ts +2 -2
  351. package/src/v2/tui/host-contract.test.ts +41 -67
  352. package/src/v2/tui/index.ts +6 -214
  353. package/src/v2/tui/types.ts +5 -17
  354. package/dist/features/magic-context/checkout-claim-fake-subc.test-support.d.ts +0 -45
  355. package/dist/features/magic-context/checkout-claim-fake-subc.test-support.d.ts.map +0 -1
  356. package/dist/features/magic-context/checkout-claim.d.ts +0 -155
  357. package/dist/features/magic-context/checkout-claim.d.ts.map +0 -1
  358. package/dist/index-bb36vgr3.js +0 -6608
  359. package/dist/index-fnn5pjtt.js +0 -6554
  360. package/dist/recomp-orchestrator-rervg6q4.js +0 -42
  361. package/dist/v2/recomp-orchestrator-42vjba7p.js +0 -42
  362. package/dist/v2/server-3trjk1hx.js +0 -6360
  363. package/dist/v2/server-nm9n3aqq.js +0 -6461
  364. package/dist/wrapup-orchestrator-b2dztrar.js +0 -29
  365. /package/dist/{index-5prbx026.js → index-2pp04pmg.js} +0 -0
  366. /package/dist/v2/{index-5prbx026.js → index-2pp04pmg.js} +0 -0
@@ -1,29 +1,33 @@
1
1
  import {
2
2
  sanitizeDiagnosticText,
3
3
  importPluginModule,
4
- writeForwardedLogLine,
5
- log
6
- } from "./index-hybnrwq0.js";
4
+ writeForwardedLogLine2,
5
+ log2
6
+ } from "./index-8j7gqj40.js";
7
+ import {
8
+ harnessOwnsOpenCodeStore2
9
+ } from "./index-pavzsdc6.js";
7
10
  import {
8
- harnessOwnsOpenCodeStore,
9
11
  getMagicContextStorageDir,
10
12
  getLegacyOpenCodeMagicContextStorageDir
11
- } from "./index-q6hef7fh.js";
13
+ } from "./index-0sahzkwr.js";
12
14
  import {
13
- registerSlowWriteReporter,
14
- registerSqliteDiagnosticSink,
15
- detectSqliteRuntime,
16
- Database,
17
- withSqliteBackgroundWriter,
18
- withoutSqliteTransformPass,
19
- isTransientSqliteError,
20
- withPrivilegedWriter
21
- } from "./index-wx8a6bw3.js";
15
+ registerSlowWriteReporter2,
16
+ registerSqliteDiagnosticSink2,
17
+ detectSqliteRuntime2,
18
+ Database2,
19
+ withSqliteBackgroundWriter2,
20
+ withoutSqliteTransformPass2,
21
+ isTransientSqliteError2,
22
+ withPrivilegedWriter2
23
+ } from "./index-kb9nn0a0.js";
24
+ import {
25
+ configureContextDatabasePragmas2
26
+ } from "./index-fb3zxn06.js";
27
+ import {
28
+ startMessageFtsRowidMapBackfill
29
+ } from "./index-fbv1dn35.js";
22
30
  import {
23
- canonicalProjectDirectory,
24
- bootQuietRemainingMs,
25
- scheduleAfterBootQuiet,
26
- startMessageFtsRowidMapBackfill,
27
31
  LKG_SLOT_CHUNKS_DDL,
28
32
  SESSION_REPLAY_DECISIONS_DDL,
29
33
  LKG_SLOTS_DDL,
@@ -32,18 +36,25 @@ import {
32
36
  hasPendingMigrations,
33
37
  getMainThreadMigrationBodyCount,
34
38
  runMigrations
35
- } from "./index-x3kwrmqk.js";
39
+ } from "./index-7mx8v0pw.js";
36
40
  import {
41
+ installTagIdentityRevisionTrigger,
37
42
  ensureColumn,
38
- installV95PerfSchema,
39
- setDatabase,
40
- loadToolDefinitionMeasurements
41
- } from "./index-5gq3b2ya.js";
43
+ installV95PerfSchema
44
+ } from "./index-db7zwa3v.js";
42
45
  import {
43
46
  resolveOpenCodeDbPath,
44
- hasV1MessageTables,
45
- closeQuietly
46
- } from "./index-b35pxds2.js";
47
+ hasV1MessageTables
48
+ } from "./index-58e3y90n.js";
49
+ import {
50
+ canonicalProjectDirectory,
51
+ bootQuietRemainingMs,
52
+ scheduleAfterBootQuiet
53
+ } from "./index-knh4y330.js";
54
+ import {
55
+ setDatabase,
56
+ loadToolDefinitionMeasurements
57
+ } from "./index-0qhce371.js";
47
58
  import {
48
59
  getErrorMessage
49
60
  } from "./index-y8v6yerm.js";
@@ -55,9 +66,12 @@ import {
55
66
  copyStorageTreeSync,
56
67
  tightenStorageTreeSync
57
68
  } from "./index-1bc61ans.js";
69
+ import {
70
+ closeQuietly
71
+ } from "./index-8ajstryz.js";
58
72
  import {
59
73
  logSlowWriteTransaction
60
- } from "./index-sj29b3z2.js";
74
+ } from "./index-2y0s2hep.js";
61
75
 
62
76
  // src/features/magic-context/fail-closed-block.ts
63
77
  var FAIL_CLOSED_DOCTOR_COMMAND = "npx @cortexkit/magic-context@latest doctor";
@@ -873,7 +887,7 @@ function classifyLivePiSnapshot(snapshot, probeParents = true) {
873
887
  continue;
874
888
  if (ancestors.has(fact.pid)) {
875
889
  skippedAncestorPids.push(fact.pid);
876
- log(`[magic-context] Pi process scan: skipping ancestor PID ${fact.pid} (session launcher shim)`);
890
+ log2(`[magic-context] Pi process scan: skipping ancestor PID ${fact.pid} (session launcher shim)`);
877
891
  continue;
878
892
  }
879
893
  if (commandHasPiHarnessArc(command)) {
@@ -881,7 +895,7 @@ function classifyLivePiSnapshot(snapshot, probeParents = true) {
881
895
  continue;
882
896
  }
883
897
  inconclusivePids.add(fact.pid);
884
- log(`[magic-context] Pi process scan: PID ${fact.pid} command line is ambiguous (image-name or missing Pi/OMP arc); treating as inconclusive`);
898
+ log2(`[magic-context] Pi process scan: PID ${fact.pid} command line is ambiguous (image-name or missing Pi/OMP arc); treating as inconclusive`);
885
899
  }
886
900
  skippedAncestorPids.sort((left, right) => left - right);
887
901
  const verified = [...processIds].sort((left, right) => left - right);
@@ -1055,18 +1069,6 @@ function inspectWindowsProcessesSync() {
1055
1069
  };
1056
1070
  }
1057
1071
 
1058
- // src/shared/sqlite-context-pragmas.ts
1059
- function configureContextDatabasePragmas(db, readonly = false) {
1060
- const [row] = db.prepare(readonly ? "PRAGMA journal_mode" : "PRAGMA journal_mode=WAL").all();
1061
- const mode = row?.journal_mode?.toLowerCase();
1062
- if (mode === "memory" || readonly && mode !== "wal")
1063
- return;
1064
- if (mode !== "wal") {
1065
- throw new Error(`context.db requires WAL before synchronous=NORMAL (got ${mode ?? "unknown"})`);
1066
- }
1067
- db.exec("PRAGMA synchronous=NORMAL");
1068
- }
1069
-
1070
1072
  // src/features/magic-context/context-store-uuid.ts
1071
1073
  import { randomUUID } from "node:crypto";
1072
1074
  function getContextStoreUuid(db) {
@@ -1078,7 +1080,7 @@ function ensureContextStoreUuid(db) {
1078
1080
  if (existing)
1079
1081
  return existing;
1080
1082
  const minted = randomUUID();
1081
- withPrivilegedWriter(db, () => {
1083
+ withPrivilegedWriter2(db, () => {
1082
1084
  db.transaction(() => {
1083
1085
  db.prepare("INSERT INTO context_store_meta(key, value) VALUES ('store_uuid', ?) ON CONFLICT(key) DO NOTHING").run(minted);
1084
1086
  }).immediate();
@@ -1188,7 +1190,7 @@ function runMigrationsOffThread(data) {
1188
1190
  reject(workerStartError(error instanceof Error ? error.message : String(error)));
1189
1191
  return;
1190
1192
  }
1191
- log(`[migrations] applying pending migrations on a worker thread: ${data.dbPath}`);
1193
+ log2(`[migrations] applying pending migrations on a worker thread: ${data.dbPath}`);
1192
1194
  let ready = false;
1193
1195
  let settled = false;
1194
1196
  let endBusy = beginOffThreadMigration();
@@ -1216,10 +1218,10 @@ function runMigrationsOffThread(data) {
1216
1218
  switch (message.type) {
1217
1219
  case "ready":
1218
1220
  ready = true;
1219
- log(`[migrations] migration worker ready: ${data.dbPath}`);
1221
+ log2(`[migrations] migration worker ready: ${data.dbPath}`);
1220
1222
  return;
1221
1223
  case "log":
1222
- writeForwardedLogLine(message.line);
1224
+ writeForwardedLogLine2(message.line);
1223
1225
  return;
1224
1226
  case "lock-wait":
1225
1227
  if (!settled)
@@ -1300,7 +1302,7 @@ function runToolOwnerBackfill(db) {
1300
1302
  }
1301
1303
  const opencodeDbPath = resolveOpencodeDbPath();
1302
1304
  if (!existsSync(opencodeDbPath)) {
1303
- log(`[backfill] OpenCode DB not found at ${opencodeDbPath} — marking all unbackfilled sessions as skipped. Lazy adoption (defense-in-depth) handles legacy rows at runtime.`);
1305
+ log2(`[backfill] OpenCode DB not found at ${opencodeDbPath} — marking all unbackfilled sessions as skipped. Lazy adoption (defense-in-depth) handles legacy rows at runtime.`);
1304
1306
  markAllUnbackfilledSessionsSkipped(db);
1305
1307
  result.sessionsSkippedNoOcDb = countSessionsByStatus(db, "skipped");
1306
1308
  result.durationMs = performance.now() - startedAt;
@@ -1317,11 +1319,11 @@ function runToolOwnerBackfill(db) {
1317
1319
  try {
1318
1320
  db.exec("DETACH DATABASE oc_backfill");
1319
1321
  } catch (error) {
1320
- log(`[backfill] failed to detach oc_backfill database: ${error instanceof Error ? error.message : String(error)}`);
1322
+ log2(`[backfill] failed to detach oc_backfill database: ${error instanceof Error ? error.message : String(error)}`);
1321
1323
  }
1322
1324
  }
1323
1325
  result.durationMs = performance.now() - startedAt;
1324
- log(`[backfill] sessions=${result.sessionsProcessed} completed=${result.sessionsCompleted} skipped_no_oc=${result.sessionsSkippedNoOcDb} skipped_no_matches=${result.sessionsSkippedNoMatches} blocked_by_lease=${result.sessionsBlockedByLease} errored=${result.sessionsErrored} rows_updated=${result.rowsUpdated} rows_left_null=${result.rowsLeftNull} duration_ms=${Math.round(result.durationMs)}`);
1326
+ log2(`[backfill] sessions=${result.sessionsProcessed} completed=${result.sessionsCompleted} skipped_no_oc=${result.sessionsSkippedNoOcDb} skipped_no_matches=${result.sessionsSkippedNoMatches} blocked_by_lease=${result.sessionsBlockedByLease} errored=${result.sessionsErrored} rows_updated=${result.rowsUpdated} rows_left_null=${result.rowsLeftNull} duration_ms=${Math.round(result.durationMs)}`);
1325
1327
  return result;
1326
1328
  }
1327
1329
  function isToolOwnerBackfillNeeded(db) {
@@ -1506,7 +1508,7 @@ function backfillToolOwnersInChunks(db, result) {
1506
1508
  result.sessionsCompleted += 1;
1507
1509
  }
1508
1510
  } catch (error) {
1509
- log(`[backfill] session=${sessionId} errored: ${error instanceof Error ? error.message : String(error)}`);
1511
+ log2(`[backfill] session=${sessionId} errored: ${error instanceof Error ? error.message : String(error)}`);
1510
1512
  markSessionErrored(db, sessionId, error);
1511
1513
  result.sessionsErrored += 1;
1512
1514
  }
@@ -1519,8 +1521,8 @@ function backfillToolOwnersInChunks(db, result) {
1519
1521
  }
1520
1522
 
1521
1523
  // src/features/magic-context/storage-db.ts
1522
- registerSlowWriteReporter(logSlowWriteTransaction);
1523
- registerSqliteDiagnosticSink((message) => log(message));
1524
+ registerSlowWriteReporter2(logSlowWriteTransaction);
1525
+ registerSqliteDiagnosticSink2((message) => log2(message));
1524
1526
  var databases = new Map;
1525
1527
  var pendingAsyncOpens = new Map;
1526
1528
  var persistenceByDatabase = new WeakMap;
@@ -1545,7 +1547,7 @@ function ensureSecureStorageDir(dir) {
1545
1547
  }
1546
1548
  function tightenStorageTree(dir) {
1547
1549
  const { failures } = tightenStorageTreeSync(dir);
1548
- log(`[magic-context] storage permission tightening failures=${failures}`);
1550
+ log2(`[magic-context] storage permission tightening failures=${failures}`);
1549
1551
  }
1550
1552
  function resolveBootBusyTimeoutMs(value) {
1551
1553
  if (value === undefined)
@@ -1554,9 +1556,9 @@ function resolveBootBusyTimeoutMs(value) {
1554
1556
  return BOOT_SQLITE_BUSY_TIMEOUT_MS;
1555
1557
  return Math.max(0, Math.min(BOOT_SQLITE_BUSY_TIMEOUT_MS, Math.floor(value)));
1556
1558
  }
1557
- function installBootBusyTimeout(db, dbPath, timeoutMs, report = log) {
1559
+ function installBootBusyTimeout(db, dbPath, timeoutMs, report = log2) {
1558
1560
  db.exec(`PRAGMA busy_timeout=${timeoutMs}`);
1559
- report(`[magic-context] SQLite boot busy timeout: backend=${detectSqliteRuntime()} timeout=${timeoutMs}ms path=${dbPath}`);
1561
+ report(`[magic-context] SQLite boot busy timeout: backend=${detectSqliteRuntime2()} timeout=${timeoutMs}ms path=${dbPath}`);
1560
1562
  }
1561
1563
  function resolveDatabasePath(dbPathOverride) {
1562
1564
  if (dbPathOverride) {
@@ -1579,18 +1581,18 @@ function migrateLegacyStorageIfNeeded(targetDbPath, targetDbDir) {
1579
1581
  const legacyDbPath = join2(legacyDir, "context.db");
1580
1582
  if (!existsSync2(legacyDbPath))
1581
1583
  return;
1582
- log(`[magic-context] migrating legacy plugin storage: ${legacyDir} -> ${targetDbDir} (legacy left in place as backup)`);
1584
+ log2(`[magic-context] migrating legacy plugin storage: ${legacyDir} -> ${targetDbDir} (legacy left in place as backup)`);
1583
1585
  ensureSecureStorageDir(targetDbDir);
1584
1586
  try {
1585
- const legacyDb = new Database(legacyDbPath);
1587
+ const legacyDb = new Database2(legacyDbPath);
1586
1588
  try {
1587
- configureContextDatabasePragmas(legacyDb, true);
1589
+ configureContextDatabasePragmas2(legacyDb, true);
1588
1590
  legacyDb.exec("PRAGMA wal_checkpoint(TRUNCATE)");
1589
1591
  } finally {
1590
1592
  closeQuietly(legacyDb);
1591
1593
  }
1592
1594
  } catch (error) {
1593
- log(`[magic-context] legacy WAL checkpoint before copy failed (continuing with sidecar copy): ${getErrorMessage(error)}`);
1595
+ log2(`[magic-context] legacy WAL checkpoint before copy failed (continuing with sidecar copy): ${getErrorMessage(error)}`);
1594
1596
  }
1595
1597
  for (const suffix of ["", "-wal", "-shm"]) {
1596
1598
  const src = `${legacyDbPath}${suffix}`;
@@ -1599,7 +1601,7 @@ function migrateLegacyStorageIfNeeded(targetDbPath, targetDbDir) {
1599
1601
  try {
1600
1602
  copyStorageFileSync(src, dst);
1601
1603
  } catch (error) {
1602
- log(`[magic-context] failed to copy ${src}:`, getErrorMessage(error));
1604
+ log2(`[magic-context] failed to copy ${src}:`, getErrorMessage(error));
1603
1605
  }
1604
1606
  }
1605
1607
  }
@@ -1609,7 +1611,7 @@ function migrateLegacyStorageIfNeeded(targetDbPath, targetDbDir) {
1609
1611
  try {
1610
1612
  copyStorageTreeSync(legacyModelsDir, targetModelsDir);
1611
1613
  } catch (error) {
1612
- log("[magic-context] failed to copy embedding model cache:", getErrorMessage(error));
1614
+ log2("[magic-context] failed to copy embedding model cache:", getErrorMessage(error));
1613
1615
  }
1614
1616
  }
1615
1617
  }
@@ -1644,7 +1646,7 @@ function enforceSchemaFence(db, dbPath, latestSupportedVersion) {
1644
1646
  return true;
1645
1647
  }
1646
1648
  lastSchemaFenceRejection = { persistedVersion, supportedVersion: latestSupportedVersion };
1647
- log(`[magic-context] storage fatal: refusing to open ${dbPath}; upstream migration lane v${persistedVersion} is newer than this binary supports (max v${latestSupportedVersion}). A pinned or stale plugin is likely sharing this database with a newer instance; update or unpin Magic Context with 'npx @cortexkit/magic-context@latest doctor --force', then restart.`);
1649
+ log2(`[magic-context] storage fatal: refusing to open ${dbPath}; upstream migration lane v${persistedVersion} is newer than this binary supports (max v${latestSupportedVersion}). A pinned or stale plugin is likely sharing this database with a newer instance; update or unpin Magic Context with 'npx @cortexkit/magic-context@latest doctor --force', then restart.`);
1648
1650
  return false;
1649
1651
  }
1650
1652
  function unreadableDiscovery(path, arm) {
@@ -1716,7 +1718,7 @@ function classifyJunkDiscovery(portFile, raw, staleFiles) {
1716
1718
  }
1717
1719
  staleFiles.push(portFile);
1718
1720
  const reason = invalidDiscoveryReason(raw);
1719
- log(`[magic-context] removing stale RPC discovery file ${portFile}: ${reason} record older than 10 minutes`);
1721
+ log2(`[magic-context] removing stale RPC discovery file ${portFile}: ${reason} record older than 10 minutes`);
1720
1722
  return null;
1721
1723
  }
1722
1724
  function inspectRpcServerDiscovery(storageDir, processes, options) {
@@ -1861,12 +1863,12 @@ function formatInconclusivePiMigrationWarning(dbPath, pids) {
1861
1863
  function logInconclusiveMigrationProbes(dbPath, discovery, piDiscovery) {
1862
1864
  const uncertainPids = discovery.inconclusivePids ?? [];
1863
1865
  if (uncertainPids.length > 0) {
1864
- log(formatInconclusiveOpenCodeMigrationWarning(dbPath, uncertainPids));
1866
+ log2(formatInconclusiveOpenCodeMigrationWarning(dbPath, uncertainPids));
1865
1867
  }
1866
1868
  if (piDiscovery.state === "unreadable") {
1867
- log(`[magic-context] storage warning: continuing migration for ${dbPath}; the Pi/OMP process-list probe could not run, which commonly means an OS sandbox denied ps. No live Pi harness was confirmed.`);
1869
+ log2(`[magic-context] storage warning: continuing migration for ${dbPath}; the Pi/OMP process-list probe could not run, which commonly means an OS sandbox denied ps. No live Pi harness was confirmed.`);
1868
1870
  } else if ((piDiscovery.inconclusivePids?.length ?? 0) > 0) {
1869
- log(formatInconclusivePiMigrationWarning(dbPath, piDiscovery.inconclusivePids ?? []));
1871
+ log2(formatInconclusivePiMigrationWarning(dbPath, piDiscovery.inconclusivePids ?? []));
1870
1872
  }
1871
1873
  }
1872
1874
  function isDefaultSharedDatabasePath(dbPath) {
@@ -1928,9 +1930,9 @@ function enforceMigrationOnOpenGuard(db, dbPath, dbDir, latestSupportedVersion,
1928
1930
  const unreadableFile = discovery.unreadableFile ?? "<unknown>";
1929
1931
  const arm = discovery.unreadableArm ?? "io";
1930
1932
  const recovery = arm === "io" ? `If no OpenCode server is running, it is safe to delete ${unreadableFile} and retry.` : `Retry after the file is older than the ten-minute grace window, or stop OpenCode before deleting it.`;
1931
- log(`[magic-context] storage fatal: refusing to migrate ${dbPath} from upstream migration v${persistedVersion} to v${latestSupportedVersion} because RPC discovery file ${unreadableFile} is uncertain (${arm} arm), so the absence of a live OpenCode server cannot be proven. ${recovery}`);
1933
+ log2(`[magic-context] storage fatal: refusing to migrate ${dbPath} from upstream migration v${persistedVersion} to v${latestSupportedVersion} because RPC discovery file ${unreadableFile} is uncertain (${arm} arm), so the absence of a live OpenCode server cannot be proven. ${recovery}`);
1932
1934
  } else {
1933
- log(formatLiveProcessMigrationRefusal(dbPath, persistedVersion, latestSupportedVersion, discovery.serverPids, piPids));
1935
+ log2(formatLiveProcessMigrationRefusal(dbPath, persistedVersion, latestSupportedVersion, discovery.serverPids, piPids));
1934
1936
  }
1935
1937
  return false;
1936
1938
  }
@@ -1959,34 +1961,34 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
1959
1961
  }
1960
1962
  healWedgedChannel2Claims(db);
1961
1963
  if (!explicitDbPath) {
1962
- const readsOpenCodeStore = harnessOwnsOpenCodeStore();
1964
+ const readsOpenCodeStore = harnessOwnsOpenCodeStore2();
1963
1965
  let busyRetryMs = 100;
1964
- const runBackfills = () => withoutSqliteTransformPass(() => withSqliteBackgroundWriter(() => {
1966
+ const runBackfills = () => withoutSqliteTransformPass2(() => withSqliteBackgroundWriter2(() => {
1965
1967
  if (readsOpenCodeStore) {
1966
1968
  try {
1967
1969
  runToolOwnerBackfill(db);
1968
1970
  } catch (error) {
1969
- log(`[magic-context] tool-owner backfill failed (continuing with lazy adoption fallback): ${getErrorMessage(error)}`);
1971
+ log2(`[magic-context] tool-owner backfill failed (continuing with lazy adoption fallback): ${getErrorMessage(error)}`);
1970
1972
  }
1971
1973
  }
1972
1974
  startMessageFtsRowidMapBackfill(db).then(async () => {
1973
1975
  if (!readsOpenCodeStore)
1974
1976
  return;
1975
- const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-4jey7hpt.js"));
1976
- const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-r5epkzj3.js"));
1977
+ const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-6k83m4fj.js"));
1978
+ const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-brbd63hv.js"));
1977
1979
  await startMessageTimeBackfill(db, Object.assign(readRawSessionMessages, {
1978
1980
  readPage: readRawSessionMessagePage
1979
1981
  }));
1980
1982
  }).catch((error) => {
1981
- if (isTransientSqliteError(error)) {
1982
- withoutSqliteTransformPass(() => {
1983
+ if (isTransientSqliteError2(error)) {
1984
+ withoutSqliteTransformPass2(() => {
1983
1985
  const timer = setTimeout(runBackfills, busyRetryMs);
1984
1986
  timer.unref();
1985
1987
  });
1986
1988
  busyRetryMs = Math.min(30000, busyRetryMs * 2);
1987
1989
  return;
1988
1990
  }
1989
- log(`[magic-context] message-index backfill failed (will resume next startup): ${getErrorMessage(error)}`);
1991
+ log2(`[magic-context] message-index backfill failed (will resume next startup): ${getErrorMessage(error)}`);
1990
1992
  });
1991
1993
  }));
1992
1994
  if (bootQuietRemainingMs() > 0)
@@ -2002,14 +2004,14 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
2002
2004
  persistenceByDatabase.set(db, true);
2003
2005
  persistenceErrorByDatabase.delete(db);
2004
2006
  if (!explicitDbPath) {
2005
- log(formatSchemaFenceBootLog(getPersistedSchemaVersion(db), latestSupportedVersion));
2007
+ log2(formatSchemaFenceBootLog(getPersistedSchemaVersion(db), latestSupportedVersion));
2006
2008
  }
2007
2009
  return db;
2008
2010
  }
2009
2011
  function initializeDatabase(db, busyTimeoutMs = BOOT_SQLITE_BUSY_TIMEOUT_MS) {
2010
2012
  db.exec(`PRAGMA busy_timeout=${resolveBootBusyTimeoutMs(busyTimeoutMs)}`);
2011
2013
  db.exec("PRAGMA foreign_keys=ON");
2012
- configureContextDatabasePragmas(db);
2014
+ configureContextDatabasePragmas2(db);
2013
2015
  applySqliteTuningPragmas(db);
2014
2016
  db.exec(`
2015
2017
  CREATE TABLE IF NOT EXISTS tags (
@@ -3243,6 +3245,7 @@ CREATE INDEX IF NOT EXISTS idx_dream_queue_pending ON dream_queue(started_at, en
3243
3245
  const version = getPersistedSchemaVersion(db);
3244
3246
  if (version === 0 || version >= 95)
3245
3247
  installV95PerfSchema(db, false, version === 0);
3248
+ installTagIdentityRevisionTrigger(db);
3246
3249
  }
3247
3250
  var CHANNEL2_CLAIM_TTL_MS = 10 * 60000;
3248
3251
  var channel2HealStatements = new WeakMap;
@@ -3272,7 +3275,7 @@ function openDatabase(dbPathOrOptions) {
3272
3275
  lastMigrationOnOpenRefusal = null;
3273
3276
  const existing = databases.get(dbPath);
3274
3277
  if (!existing && pendingAsyncOpens.has(dbPath)) {
3275
- log(`[magic-context] storage not ready: ${dbPath} is still being opened or migrated; refusing a second synchronous open`);
3278
+ log2(`[magic-context] storage not ready: ${dbPath} is still being opened or migrated; refusing a second synchronous open`);
3276
3279
  return null;
3277
3280
  }
3278
3281
  if (existing) {
@@ -3300,14 +3303,14 @@ function openDatabase(dbPathOrOptions) {
3300
3303
  throw error;
3301
3304
  }
3302
3305
  }
3303
- db = new Database(dbPath);
3306
+ db = new Database2(dbPath);
3304
3307
  installBootBusyTimeout(db, dbPath, busyTimeoutMs, options?.onBootBusyTimeout);
3305
3308
  if (!enforceSchemaFence(db, dbPath, latestSupportedVersion)) {
3306
3309
  closeQuietly(db);
3307
3310
  return null;
3308
3311
  }
3309
3312
  if (options?.allowMigrations === false && hasPendingMigrations(db)) {
3310
- log(`[magic-context] storage not ready: pending migrations at ${dbPath}; host callers must await the async opener`);
3313
+ log2(`[magic-context] storage not ready: pending migrations at ${dbPath}; host callers must await the async opener`);
3311
3314
  closeQuietly(db);
3312
3315
  return null;
3313
3316
  }
@@ -3324,12 +3327,13 @@ function openDatabase(dbPathOrOptions) {
3324
3327
  } else
3325
3328
  runMigrations(db);
3326
3329
  ensureContextStoreUuid(db);
3330
+ installTagIdentityRevisionTrigger(db);
3327
3331
  return finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion);
3328
3332
  } catch (error) {
3329
3333
  if (db)
3330
3334
  closeQuietly(db);
3331
3335
  const detail = getErrorMessage(error);
3332
- log(`[magic-context] storage fatal: failed to open ${dbPath}: ${detail}`);
3336
+ log2(`[magic-context] storage fatal: failed to open ${dbPath}: ${detail}`);
3333
3337
  throw new Error(`[magic-context] storage unavailable: ${detail}. Magic Context is disabled for this run; check log for details.`);
3334
3338
  }
3335
3339
  }
@@ -3388,7 +3392,7 @@ async function openDatabaseAsync(dbPathOrOptions) {
3388
3392
  throw error;
3389
3393
  }
3390
3394
  }
3391
- db = new Database(dbPath);
3395
+ db = new Database2(dbPath);
3392
3396
  installBootBusyTimeout(db, dbPath, busyTimeoutMs, options?.onBootBusyTimeout);
3393
3397
  openMs = performance.now() - openStartedAt;
3394
3398
  guardStartedAt = performance.now();
@@ -3420,6 +3424,7 @@ async function openDatabaseAsync(dbPathOrOptions) {
3420
3424
  throw new Error("storage initialization left a pending migration; reinstall or rebuild the plugin");
3421
3425
  }
3422
3426
  ensureContextStoreUuid(db);
3427
+ installTagIdentityRevisionTrigger(db);
3423
3428
  const opened = finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion);
3424
3429
  migrateMs = performance.now() - migrateStartedAt;
3425
3430
  return opened;
@@ -3427,10 +3432,10 @@ async function openDatabaseAsync(dbPathOrOptions) {
3427
3432
  if (db)
3428
3433
  closeQuietly(db);
3429
3434
  const detail = getErrorMessage(error);
3430
- log(`[magic-context] storage fatal: failed to open ${dbPath}: ${detail}`);
3435
+ log2(`[magic-context] storage fatal: failed to open ${dbPath}: ${detail}`);
3431
3436
  throw new Error(`[magic-context] storage unavailable: ${detail}. Magic Context is disabled for this run; check log for details.`);
3432
3437
  } finally {
3433
- log(`[migrations] async open main-thread migration-body count: ${getMainThreadMigrationBodyCount() - mainThreadBodiesBefore} (total=${getMainThreadMigrationBodyCount()}) path=${dbPath}`);
3438
+ log2(`[migrations] async open main-thread migration-body count: ${getMainThreadMigrationBodyCount() - mainThreadBodiesBefore} (total=${getMainThreadMigrationBodyCount()}) path=${dbPath}`);
3434
3439
  if (openMs === 0)
3435
3440
  openMs = performance.now() - openStartedAt;
3436
3441
  if (guardStartedAt !== null && guardMs === 0) {
@@ -3461,4 +3466,4 @@ function getDatabasePersistenceError(db) {
3461
3466
  return persistenceErrorByDatabase.get(db) ?? null;
3462
3467
  }
3463
3468
 
3464
- export { FAIL_CLOSED_DOCTOR_COMMAND, formatFailClosedBlockingMessage, formatFailClosedBlockingSummary, createFailClosedBlockingError, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, registerOwnRpcServerInstance, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, inspectProcessesAsync, configureContextDatabasePragmas, startBootDeadline, getUnconfirmedMigrationHolders, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, BOOT_SQLITE_BUSY_TIMEOUT_MS, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, initializeDatabase, openDatabase, openCurrentDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError };
3469
+ export { FAIL_CLOSED_DOCTOR_COMMAND, formatFailClosedBlockingMessage, formatFailClosedBlockingSummary, createFailClosedBlockingError, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, registerOwnRpcServerInstance, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, inspectProcessesAsync, startBootDeadline, getUnconfirmedMigrationHolders, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, BOOT_SQLITE_BUSY_TIMEOUT_MS, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, initializeDatabase, openDatabase, openCurrentDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError };
@@ -1,23 +1,22 @@
1
1
  // src/shared/embedding-activity.ts
2
2
  var busySessions = new Set;
3
- function setEmbeddingSessionBusy(sessionId, busy) {
3
+ function setEmbeddingSessionBusy2(sessionId, busy) {
4
4
  if (busy)
5
5
  busySessions.add(sessionId);
6
6
  else
7
7
  busySessions.delete(sessionId);
8
8
  }
9
- function observeEmbeddingActivity(event) {
9
+ function observeEmbeddingActivity2(event) {
10
10
  const props = event.properties;
11
11
  if (!props || typeof props.sessionID !== "string")
12
12
  return;
13
13
  if (event.type === "session.idle" || event.type === "session.deleted" || event.type === "session.status" && props.status?.type === "idle") {
14
- setEmbeddingSessionBusy(props.sessionID, false);
14
+ setEmbeddingSessionBusy2(props.sessionID, false);
15
15
  } else if (event.type === "session.status" && props.status?.type) {
16
- setEmbeddingSessionBusy(props.sessionID, true);
16
+ setEmbeddingSessionBusy2(props.sessionID, true);
17
17
  }
18
18
  }
19
- function isEmbeddingHostBusy() {
19
+ function isEmbeddingHostBusy2() {
20
20
  return busySessions.size > 0;
21
21
  }
22
-
23
- export { setEmbeddingSessionBusy, observeEmbeddingActivity, isEmbeddingHostBusy };
22
+ export { setEmbeddingSessionBusy2, observeEmbeddingActivity2, isEmbeddingHostBusy2 };
@@ -1,25 +1,31 @@
1
1
  import {
2
- harnessOwnsOpenCodeStore
3
- } from "./index-q6hef7fh.js";
2
+ harnessOwnsOpenCodeStore2
3
+ } from "./index-pavzsdc6.js";
4
4
  import {
5
- log
6
- } from "./index-hybnrwq0.js";
5
+ log2
6
+ } from "./index-8j7gqj40.js";
7
7
  import {
8
8
  resolveOpenCodeDbPath,
9
9
  assertOpenCodeStoreGeneration,
10
10
  openCodeDbPathExists,
11
11
  recordOpenCodeDbReadFailure,
12
12
  clearOpenCodeDbReadFailure,
13
- claimOpenCodeDbDiagnosticOnce,
14
- closeQuietly
15
- } from "./index-b35pxds2.js";
13
+ claimOpenCodeDbDiagnosticOnce
14
+ } from "./index-58e3y90n.js";
15
+ import {
16
+ Database2
17
+ } from "./index-kb9nn0a0.js";
16
18
  import {
17
- Database
18
- } from "./index-wx8a6bw3.js";
19
+ forgetRawSessionOrdinalWatermark2,
20
+ forgetRawSessionSummaryRows2
21
+ } from "./index-dhwzyd54.js";
22
+ import {
23
+ closeQuietly
24
+ } from "./index-8ajstryz.js";
19
25
 
20
26
  // src/hooks/magic-context/read-session-db.ts
21
27
  function openCodeDbExists() {
22
- return harnessOwnsOpenCodeStore() && openCodeDbPathExists(resolveOpenCodeDbPath());
28
+ return harnessOwnsOpenCodeStore2() && openCodeDbPathExists(resolveOpenCodeDbPath());
23
29
  }
24
30
  var cachedReadOnlyDb = null;
25
31
  function closeCachedReadOnlyDb() {
@@ -29,13 +35,13 @@ function closeCachedReadOnlyDb() {
29
35
  try {
30
36
  closeQuietly(cachedReadOnlyDb.db);
31
37
  } catch (error) {
32
- log("[magic-context] failed to close cached OpenCode read-only DB:", error);
38
+ log2("[magic-context] failed to close cached OpenCode read-only DB:", error);
33
39
  } finally {
34
40
  cachedReadOnlyDb = null;
35
41
  }
36
42
  }
37
43
  function getReadOnlySessionDb() {
38
- if (!harnessOwnsOpenCodeStore()) {
44
+ if (!harnessOwnsOpenCodeStore2()) {
39
45
  throw new Error("OpenCode session database is not readable from a Pi-compatible process; its history lives in Pi sessions");
40
46
  }
41
47
  const resolution = resolveOpenCodeDbPath();
@@ -47,7 +53,7 @@ function getReadOnlySessionDb() {
47
53
  return cachedReadOnlyDb.db;
48
54
  }
49
55
  closeCachedReadOnlyDb();
50
- const db = new Database(dbPath, { readonly: true });
56
+ const db = new Database2(dbPath, { readonly: true });
51
57
  try {
52
58
  assertOpenCodeStoreGeneration(db, "v1", dbPath);
53
59
  } catch (error) {
@@ -170,6 +176,10 @@ function observeOpenCodeTurnEvent(type, properties) {
170
176
  const props = asRecord(properties);
171
177
  if (!props)
172
178
  return;
179
+ if (type === "message.removed" && typeof props.sessionID === "string")
180
+ forgetRawSessionOrdinalWatermark2(props.sessionID);
181
+ if (type === "session.deleted" && typeof props.sessionID === "string")
182
+ forgetRawSessionSummaryRows2(props.sessionID);
173
183
  if (type === "message.part.updated") {
174
184
  const part = asRecord(props.part);
175
185
  if (!part || typeof part.sessionID !== "string" || typeof part.messageID !== "string" || typeof part.id !== "string") {
@@ -237,11 +247,11 @@ function logProbeFailureOnce(resolution, error) {
237
247
  return;
238
248
  const message = `[magic-context] OpenCode DB probe failed: path=${resolution.path} source=${resolution.source} cause=${failure.message}`;
239
249
  probeLogObserverForTests?.(message);
240
- log(message);
250
+ log2(message);
241
251
  }
242
252
  function resolvedDbIsAvailable() {
243
253
  const resolution = resolveOpenCodeDbPath();
244
- if (!harnessOwnsOpenCodeStore())
254
+ if (!harnessOwnsOpenCodeStore2())
245
255
  return { resolution, available: false };
246
256
  const available = openCodeDbPathExists(resolution);
247
257
  if (available)
@@ -384,7 +394,7 @@ function hasUnansweredRealUser(db, sessionId) {
384
394
  }
385
395
  function getMessageTimesFromOpenCodeDb(sessionId, messageIds) {
386
396
  const result = new Map;
387
- if (messageIds.length === 0 || !harnessOwnsOpenCodeStore())
397
+ if (messageIds.length === 0 || !harnessOwnsOpenCodeStore2())
388
398
  return result;
389
399
  try {
390
400
  withReadOnlySessionDb((db) => {
@@ -402,14 +412,14 @@ function getMessageTimesFromOpenCodeDb(sessionId, messageIds) {
402
412
  return result;
403
413
  }
404
414
  function findLastAssistantModelFromOpenCodeDb(sessionId) {
405
- if (!harnessOwnsOpenCodeStore())
415
+ if (!harnessOwnsOpenCodeStore2())
406
416
  return null;
407
417
  const resolution = resolveOpenCodeDbPath();
408
418
  try {
409
419
  if (!openCodeDbPathExists(resolution)) {
410
420
  throw new Error(`OpenCode session database is unavailable at ${resolution.path}`);
411
421
  }
412
- const db = new Database(resolution.path, { readonly: true });
422
+ const db = new Database2(resolution.path, { readonly: true });
413
423
  try {
414
424
  const queryV2 = () => db.prepare(`SELECT json_extract(data, '$.model.providerID') as providerID,
415
425
  json_extract(data, '$.model.id') as modelID,