@cortexkit/opencode-magic-context 0.47.0 → 0.49.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 (425) 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-kzx4dmk1.js} +12 -10
  13. package/dist/{context-wq4ffwyb.js → context-nj5f293n.js} +2765 -1925
  14. package/dist/{derive-budgets-ke12jnnh.js → derive-budgets-qz5rrr08.js} +4 -3
  15. package/dist/embedding-activity-g1dhes6g.js +10 -0
  16. package/dist/embedding-backfill-aetxv1vt.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/git-commits/search-git-commits.d.ts +2 -0
  30. package/dist/features/magic-context/git-commits/search-git-commits.d.ts.map +1 -1
  31. package/dist/features/magic-context/message-index-async.d.ts +16 -3
  32. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  33. package/dist/features/magic-context/message-index-bounded.d.ts +17 -0
  34. package/dist/features/magic-context/message-index-bounded.d.ts.map +1 -0
  35. package/dist/features/magic-context/message-index.d.ts +7 -1
  36. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  37. package/dist/features/magic-context/mural/render-trigger.d.ts +7 -4
  38. package/dist/features/magic-context/mural/render-trigger.d.ts.map +1 -1
  39. package/dist/features/magic-context/pi-content-decisions.d.ts +7 -1
  40. package/dist/features/magic-context/pi-content-decisions.d.ts.map +1 -1
  41. package/dist/features/magic-context/search-rerank.d.ts +35 -0
  42. package/dist/features/magic-context/search-rerank.d.ts.map +1 -0
  43. package/dist/features/magic-context/search.d.ts +40 -0
  44. package/dist/features/magic-context/search.d.ts.map +1 -1
  45. package/dist/features/magic-context/session-activity.d.ts.map +1 -1
  46. package/dist/features/magic-context/smart-notes/runner.d.ts +1 -0
  47. package/dist/features/magic-context/smart-notes/runner.d.ts.map +1 -1
  48. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  49. package/dist/features/magic-context/storage-meta-persisted.d.ts +13 -2
  50. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  51. package/dist/features/magic-context/storage-meta-session.d.ts +7 -1
  52. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  53. package/dist/features/magic-context/storage-meta.d.ts +1 -1
  54. package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
  55. package/dist/features/magic-context/storage-session-tables.d.ts +2 -0
  56. package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -1
  57. package/dist/features/magic-context/storage-tag-identity-revision.d.ts +50 -0
  58. package/dist/features/magic-context/storage-tag-identity-revision.d.ts.map +1 -0
  59. package/dist/features/magic-context/storage-tags.d.ts +153 -4
  60. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  61. package/dist/features/magic-context/storage.d.ts +1 -1
  62. package/dist/features/magic-context/storage.d.ts.map +1 -1
  63. package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -1
  64. package/dist/features/magic-context/tagger.d.ts +2 -0
  65. package/dist/features/magic-context/tagger.d.ts.map +1 -1
  66. package/dist/features/magic-context/transform-decision-log.d.ts +4 -1
  67. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
  68. package/dist/harness-e4avh192.js +10 -0
  69. package/dist/hooks/magic-context/active-anthropic-turn.d.ts +2 -0
  70. package/dist/hooks/magic-context/active-anthropic-turn.d.ts.map +1 -1
  71. package/dist/hooks/magic-context/auto-search-deadline.d.ts.map +1 -1
  72. package/dist/hooks/magic-context/auto-search-replay.fixture.d.ts +24 -0
  73. package/dist/hooks/magic-context/auto-search-replay.fixture.d.ts.map +1 -0
  74. package/dist/hooks/magic-context/auto-search-runner.d.ts +1 -1
  75. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
  76. package/dist/hooks/magic-context/auto-search-worker-client.d.ts +34 -3
  77. package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -1
  78. package/dist/hooks/magic-context/command-handler.d.ts +3 -0
  79. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  80. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  81. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  82. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  83. package/dist/hooks/magic-context/emergency-fail-closed.d.ts +28 -0
  84. package/dist/hooks/magic-context/emergency-fail-closed.d.ts.map +1 -1
  85. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  86. package/dist/hooks/magic-context/historian-host-runner.d.ts +8 -0
  87. package/dist/hooks/magic-context/historian-host-runner.d.ts.map +1 -1
  88. package/dist/hooks/magic-context/hook.d.ts +3 -2
  89. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  90. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  91. package/dist/hooks/magic-context/latest-thinking-recovery.d.ts +7 -0
  92. package/dist/hooks/magic-context/latest-thinking-recovery.d.ts.map +1 -1
  93. package/dist/hooks/magic-context/lkg-persist.d.ts +4 -3
  94. package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
  95. package/dist/hooks/magic-context/lkg-replay.d.ts +13 -8
  96. package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
  97. package/dist/hooks/magic-context/lkg-slot.d.ts +139 -2
  98. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  99. package/dist/hooks/magic-context/message-search-accepting-silent-worker.fixture.d.ts +2 -0
  100. package/dist/hooks/magic-context/message-search-accepting-silent-worker.fixture.d.ts.map +1 -0
  101. package/dist/hooks/magic-context/oc-stall-r2-warmup-worker.fixture.d.ts +2 -0
  102. package/dist/hooks/magic-context/oc-stall-r2-warmup-worker.fixture.d.ts.map +1 -0
  103. package/dist/hooks/magic-context/oc-stall-search-review.fixture.d.ts +2 -0
  104. package/dist/hooks/magic-context/oc-stall-search-review.fixture.d.ts.map +1 -0
  105. package/dist/hooks/magic-context/opencode1-to-model-messages.fixture.d.ts +63 -0
  106. package/dist/hooks/magic-context/opencode1-to-model-messages.fixture.d.ts.map +1 -0
  107. package/dist/hooks/magic-context/pass-outcome.d.ts +1 -0
  108. package/dist/hooks/magic-context/pass-outcome.d.ts.map +1 -1
  109. package/dist/hooks/magic-context/provider-visible-parts.d.ts +45 -0
  110. package/dist/hooks/magic-context/provider-visible-parts.d.ts.map +1 -0
  111. package/dist/hooks/magic-context/raw-ordinal-warmup-silent-worker.fixture.d.ts +2 -0
  112. package/dist/hooks/magic-context/raw-ordinal-warmup-silent-worker.fixture.d.ts.map +1 -0
  113. package/dist/hooks/magic-context/raw-ordinal-warmup-worker.d.ts +2 -0
  114. package/dist/hooks/magic-context/raw-ordinal-warmup-worker.d.ts.map +1 -0
  115. package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts +87 -0
  116. package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts.map +1 -0
  117. package/dist/hooks/magic-context/read-session-chunk.d.ts +19 -1
  118. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  119. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  120. package/dist/hooks/magic-context/read-session-formatting.d.ts +5 -0
  121. package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -1
  122. package/dist/hooks/magic-context/read-session-raw.d.ts +118 -1
  123. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  124. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -1
  125. package/dist/hooks/magic-context/reasoning-budget.d.ts.map +1 -1
  126. package/dist/hooks/magic-context/rust-mode-transform.d.ts +36 -0
  127. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  128. package/dist/hooks/magic-context/sentinel.d.ts +41 -1
  129. package/dist/hooks/magic-context/sentinel.d.ts.map +1 -1
  130. package/dist/hooks/magic-context/shared-compartment-boundaries.d.ts +8 -1
  131. package/dist/hooks/magic-context/shared-compartment-boundaries.d.ts.map +1 -1
  132. package/dist/hooks/magic-context/strict-thinking-prefix.d.ts +8 -0
  133. package/dist/hooks/magic-context/strict-thinking-prefix.d.ts.map +1 -0
  134. package/dist/hooks/magic-context/strip-content.d.ts +14 -2
  135. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  136. package/dist/hooks/magic-context/system-prompt-hash.d.ts +1 -0
  137. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  138. package/dist/hooks/magic-context/tag-messages.d.ts +8 -0
  139. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  140. package/dist/hooks/magic-context/tag-owner-warmup.d.ts +6 -0
  141. package/dist/hooks/magic-context/tag-owner-warmup.d.ts.map +1 -0
  142. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -1
  143. package/dist/hooks/magic-context/token-count-exact.d.ts +35 -0
  144. package/dist/hooks/magic-context/token-count-exact.d.ts.map +1 -0
  145. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +13 -0
  146. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  147. package/dist/hooks/magic-context/transform.d.ts +9 -2
  148. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  149. package/dist/hooks/magic-context/wrapup-orchestrator.d.ts.map +1 -1
  150. package/dist/{index-q6hef7fh.js → index-0sahzkwr.js} +6 -19
  151. package/dist/{index-k5bdx1bx.js → index-0w56v4fm.js} +3 -5
  152. package/dist/{index-5gq3b2ya.js → index-1bt88epp.js} +227 -205
  153. package/dist/{index-cwf6s3ay.js → index-1g30axtz.js} +3279 -2907
  154. package/dist/{index-5a2r0p9f.js → index-1r0k9js3.js} +20 -13
  155. package/dist/index-2bvekkfy.js +11 -0
  156. package/dist/{index-6d9e1m08.js → index-2jcbj7r1.js} +13301 -13225
  157. package/dist/index-2jgwttpt.js +3269 -0
  158. package/dist/index-4dhv7mqz.js +131 -0
  159. package/dist/{index-sj29b3z2.js → index-4mjhqadz.js} +3 -3
  160. package/dist/{index-0c82743p.js → index-57mrqed8.js} +17 -15
  161. package/dist/{index-b35pxds2.js → index-58e3y90n.js} +1 -18
  162. package/dist/index-7jzrrxap.js +931 -0
  163. package/dist/index-8ajstryz.js +18 -0
  164. package/dist/{index-sfpzqvdz.js → index-8cd2j99z.js} +2 -3
  165. package/dist/{index-6wkcswft.js → index-9qjqq45k.js} +29 -19
  166. package/dist/{index-adwfkpex.js → index-9rt53q79.js} +23 -23
  167. package/dist/index-b7mv1jx3.js +1060 -0
  168. package/dist/index-d9vfe7xq.js +16 -0
  169. package/dist/{index-gg8j07zz.js → index-ezmszwbd.js} +8 -6
  170. package/dist/index-fb3zxn06.js +13 -0
  171. package/dist/index-fr0wbhdn.js +43 -0
  172. package/dist/{index-mc22ayvf.js → index-ghc9f0n7.js} +11 -9
  173. package/dist/index-gzcmtmar.js +171 -0
  174. package/dist/{index-w2t4ah5j.js → index-h2py7207.js} +6762 -7400
  175. package/dist/index-h2wc01qk.js +120 -0
  176. package/dist/index-h5zfkjyk.js +1277 -0
  177. package/dist/{index-92bp57hg.js → index-ha87j7a8.js} +1343 -149
  178. package/dist/index-hj2q50k0.js +856 -0
  179. package/dist/{index-wx8a6bw3.js → index-kb9nn0a0.js} +270 -53
  180. package/dist/index-kmpvemph.js +1314 -0
  181. package/dist/index-kp5qe690.js +3030 -0
  182. package/dist/{index-m5fe6jch.js → index-kq57tdf0.js} +152 -2453
  183. package/dist/{v2/server-fq7kq32k.js → index-mfkzp7qj.js} +1 -16
  184. package/dist/{v2/server-njt3np1k.js → index-nm6a8xpd.js} +220 -961
  185. package/dist/{index-hybnrwq0.js → index-nsjyysj0.js} +137 -130
  186. package/dist/index-nydv6g8r.js +3569 -0
  187. package/dist/index-pavzsdc6.js +17 -0
  188. package/dist/index-peshmj6h.js +152 -0
  189. package/dist/index-pxwp2hjk.js +571 -0
  190. package/dist/{v2/server-yr3zj7e7.js → index-qt1qqasc.js} +6 -7
  191. package/dist/{v2/server-51dv1pr5.js → index-qx53vezw.js} +301 -27
  192. package/dist/{index-rrrsepyw.js → index-s4j7t92z.js} +90 -85
  193. package/dist/{index-9pk9exrb.js → index-stbr4ce6.js} +18 -18
  194. package/dist/{index-fzbvakh0.js → index-tqf7yg27.js} +3 -3
  195. package/dist/index-vkbqdnkj.js +2307 -0
  196. package/dist/{index-8da2zjhz.js → index-z1tjp257.js} +9 -7
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +608 -349
  199. package/dist/logger-ewak5q1s.js +20 -0
  200. package/dist/message-index-bounded-h0mrd4pr.js +124 -0
  201. package/dist/{v2/message-time-backfill-1f9tzvcs.js → message-time-backfill-8x06r9kx.js} +8 -6
  202. package/dist/migration-worker.js +25 -18
  203. package/dist/{model-resolution-xhfmyyvy.js → model-resolution-nx97z3x7.js} +1 -1
  204. package/dist/plugin/dream-timer.d.ts +1 -1
  205. package/dist/plugin/dream-timer.d.ts.map +1 -1
  206. package/dist/plugin/hooks/create-session-hooks.d.ts +3 -0
  207. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  208. package/dist/plugin/host-stall-profiler-report.d.ts +1 -66
  209. package/dist/plugin/host-stall-profiler-report.d.ts.map +1 -1
  210. package/dist/plugin/host-stall-profiler.d.ts +2 -95
  211. package/dist/plugin/host-stall-profiler.d.ts.map +1 -1
  212. package/dist/plugin/messages-transform.d.ts +0 -13
  213. package/dist/plugin/messages-transform.d.ts.map +1 -1
  214. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  215. package/dist/plugin/tool-registry.d.ts.map +1 -1
  216. package/dist/project-embedding-registry-rtt0djyb.js +88 -0
  217. package/dist/raw-ordinal-warmup-worker.js +60 -0
  218. package/dist/{read-session-chunk-4jey7hpt.js → read-session-chunk-ty89v75e.js} +17 -9
  219. package/dist/read-session-raw-8sjbc9h0.js +60 -0
  220. package/dist/recomp-orchestrator-4f1yyd1q.js +57 -0
  221. package/dist/{v2/safe-notification-target-eb1n1vfb.js → safe-notification-target-q0cyrx3x.js} +4 -2
  222. package/dist/search-pz4f4wge.js +45 -0
  223. package/dist/{v2/send-session-notification-c0wtscea.js → send-session-notification-38cd5dqt.js} +10 -7
  224. package/dist/shared/auto-search-lifecycle.d.ts +14 -0
  225. package/dist/shared/auto-search-lifecycle.d.ts.map +1 -1
  226. package/dist/shared/conflict-detector.d.ts.map +1 -1
  227. package/dist/shared/host-stall-profiler-bun.d.ts +46 -0
  228. package/dist/shared/host-stall-profiler-bun.d.ts.map +1 -0
  229. package/dist/shared/host-stall-profiler-common.d.ts +58 -0
  230. package/dist/shared/host-stall-profiler-common.d.ts.map +1 -0
  231. package/dist/shared/host-stall-profiler-node.d.ts +36 -0
  232. package/dist/shared/host-stall-profiler-node.d.ts.map +1 -0
  233. package/dist/shared/host-stall-profiler-report.d.ts +68 -0
  234. package/dist/shared/host-stall-profiler-report.d.ts.map +1 -0
  235. package/dist/shared/host-stall-profiler.d.ts +5 -0
  236. package/dist/shared/host-stall-profiler.d.ts.map +1 -0
  237. package/dist/shared/logger.d.ts.map +1 -1
  238. package/dist/shared/model-resolution.d.ts +2 -3
  239. package/dist/shared/model-resolution.d.ts.map +1 -1
  240. package/dist/shared/models-dev-temperature.d.ts +18 -0
  241. package/dist/shared/models-dev-temperature.d.ts.map +1 -0
  242. package/dist/shared/project-directory-key.d.ts +16 -0
  243. package/dist/shared/project-directory-key.d.ts.map +1 -1
  244. package/dist/shared/sqlite.d.ts +30 -0
  245. package/dist/shared/sqlite.d.ts.map +1 -1
  246. package/dist/shared/stable-json.d.ts.map +1 -1
  247. package/dist/shared/subagent-temperature.d.ts +46 -0
  248. package/dist/shared/subagent-temperature.d.ts.map +1 -0
  249. package/dist/shared/user-facing-codes.d.ts +0 -5
  250. package/dist/shared/user-facing-codes.d.ts.map +1 -1
  251. package/dist/sqlite-context-pragmas-mv9jqwjh.js +6 -0
  252. package/dist/sqlite-mhjkerzq.js +46 -0
  253. package/dist/storage-memory-07fx57k6.js +71 -0
  254. package/dist/storage-tags-k0pda32s.js +133 -0
  255. package/dist/{task-config-v81k8jvk.js → task-config-cgpg0nvh.js} +2 -2
  256. package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
  257. package/dist/tools/ctx-note/constants.d.ts +4 -0
  258. package/dist/tools/ctx-note/constants.d.ts.map +1 -1
  259. package/dist/tools/ctx-note/tools.d.ts +1 -0
  260. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  261. package/dist/tools/ctx-reduce/tools.d.ts.map +1 -1
  262. package/dist/tools/ctx-search/tools.d.ts.map +1 -1
  263. package/dist/tools/ctx-search/types.d.ts +1 -0
  264. package/dist/tools/ctx-search/types.d.ts.map +1 -1
  265. package/dist/tools/parameter-descriptions.d.ts +2 -2
  266. package/dist/tools/parameter-descriptions.d.ts.map +1 -1
  267. package/dist/{transform-postprocess-phase-z5hzpsxv.js → transform-postprocess-phase-tck4g20s.js} +35 -20
  268. package/dist/transformers-node-wasm.js +18415 -18415
  269. package/dist/v2/auto-search-worker.js +27 -30
  270. package/dist/v2/{context-14v1hr8b.js → context-crbt6p1y.js} +4708 -4218
  271. package/dist/v2/{derive-budgets-nc9avxz8.js → derive-budgets-fgej9j46.js} +4 -3
  272. package/dist/v2/embedding-activity-g1dhes6g.js +10 -0
  273. package/dist/v2/embedding-backfill-ph1qfyn3.js +21 -0
  274. package/dist/v2/embedding-cache-mgyr73ef.js +16 -0
  275. package/dist/v2/embedding-worker.js +12 -9
  276. package/dist/v2/fold/host-media.d.ts +4 -0
  277. package/dist/v2/fold/host-media.d.ts.map +1 -1
  278. package/dist/v2/fold/memory-cache.d.ts +70 -0
  279. package/dist/v2/fold/memory-cache.d.ts.map +1 -0
  280. package/dist/v2/fold/native-codec.d.ts +10 -0
  281. package/dist/v2/fold/native-codec.d.ts.map +1 -0
  282. package/dist/v2/fold/native-replay.d.ts +58 -0
  283. package/dist/v2/fold/native-replay.d.ts.map +1 -0
  284. package/dist/v2/fold/policy.d.ts +24 -0
  285. package/dist/v2/fold/policy.d.ts.map +1 -0
  286. package/dist/v2/harness-e4avh192.js +10 -0
  287. package/dist/v2/hidden-child-native.d.ts.map +1 -1
  288. package/dist/v2/hidden-completion.d.ts +7 -0
  289. package/dist/v2/hidden-completion.d.ts.map +1 -1
  290. package/dist/v2/hooks/context.d.ts +2 -2
  291. package/dist/v2/hooks/context.d.ts.map +1 -1
  292. package/dist/v2/hooks/dream-manual.d.ts +1 -1
  293. package/dist/v2/hooks/dream-manual.d.ts.map +1 -1
  294. package/dist/v2/hooks/dream-timer.d.ts.map +1 -1
  295. package/dist/v2/hooks/dream-trigger.d.ts +5 -3
  296. package/dist/v2/hooks/dream-trigger.d.ts.map +1 -1
  297. package/dist/v2/hooks/generate.d.ts +9 -2
  298. package/dist/v2/hooks/generate.d.ts.map +1 -1
  299. package/dist/v2/hooks/payload.d.ts.map +1 -1
  300. package/dist/v2/hooks/tools.d.ts.map +1 -1
  301. package/dist/v2/hooks/types.d.ts +6 -0
  302. package/dist/v2/hooks/types.d.ts.map +1 -1
  303. package/dist/v2/logger-pj02s7sr.js +19 -0
  304. package/dist/v2/message-index-bounded-xwqdywxg.js +123 -0
  305. package/dist/{message-time-backfill-r5epkzj3.js → v2/message-time-backfill-cje68egj.js} +7 -7
  306. package/dist/v2/migration-worker.js +24 -17
  307. package/dist/v2/{model-resolution-xhfmyyvy.js → model-resolution-nx97z3x7.js} +1 -1
  308. package/dist/v2/project-embedding-registry-d6m7tyxr.js +86 -0
  309. package/dist/v2/raw-ordinal-warmup-worker.js +60 -0
  310. package/dist/v2/{read-session-chunk-gyyv7w2r.js → read-session-chunk-8p5mdryx.js} +16 -8
  311. package/dist/v2/read-session-raw-j8dvp7f4.js +59 -0
  312. package/dist/v2/recomp-orchestrator-ckfgt6wq.js +57 -0
  313. package/dist/{safe-notification-target-43r8jsxw.js → v2/safe-notification-target-y3p1hce9.js} +3 -3
  314. package/dist/v2/search-ym8rehhz.js +45 -0
  315. package/dist/{send-session-notification-0m68ms3n.js → v2/send-session-notification-5m0yapqx.js} +9 -8
  316. package/dist/v2/{server-rz514f14.js → server-19zjmn02.js} +2044 -2060
  317. package/dist/v2/server-1tk82krw.js +796 -0
  318. package/dist/v2/server-2bvekkfy.js +11 -0
  319. package/dist/v2/{server-ajzeteqw.js → server-2ra6pwf3.js} +1 -18
  320. package/dist/v2/server-2s6ayq3t.js +1048 -0
  321. package/dist/v2/{server-fcdehk1s.js → server-2s9qz6n7.js} +4 -4
  322. package/dist/v2/server-3j4d00kf.js +171 -0
  323. package/dist/v2/{server-14vq4kpm.js → server-3t0q2cqx.js} +3 -3
  324. package/dist/v2/server-4dhv7mqz.js +131 -0
  325. package/dist/v2/server-4ez8mntn.js +3213 -0
  326. package/dist/v2/{server-6r257mf5.js → server-676xw7at.js} +3 -3
  327. package/dist/v2/{server-vs5gpnd4.js → server-6byqfbqf.js} +165 -145
  328. package/dist/v2/server-7ekna9zs.js +120 -0
  329. package/dist/v2/server-7h861yms.js +1272 -0
  330. package/dist/v2/server-7jzrrxap.js +931 -0
  331. package/dist/v2/server-8ajstryz.js +18 -0
  332. package/dist/v2/{server-sfpzqvdz.js → server-8cd2j99z.js} +2 -3
  333. package/dist/v2/{server-cpepxy2q.js → server-8k2agx29.js} +14 -12
  334. package/dist/v2/server-c5rrgrcd.js +3545 -0
  335. package/dist/v2/server-d9vfe7xq.js +16 -0
  336. package/dist/v2/server-fb3zxn06.js +13 -0
  337. package/dist/v2/server-fr0wbhdn.js +43 -0
  338. package/dist/v2/{server-y10vbq6y.js → server-hb6xhh9q.js} +11 -1053
  339. package/dist/v2/server-jvxzm1jy.js +3023 -0
  340. package/dist/v2/{server-wx8a6bw3.js → server-kb9nn0a0.js} +270 -53
  341. package/dist/{index-5eqk6z3s.js → v2/server-kzns2hbz.js} +301 -27
  342. package/dist/{index-rrbbspwh.js → v2/server-mfkzp7qj.js} +1 -16
  343. package/dist/v2/server-pavzsdc6.js +17 -0
  344. package/dist/v2/{server-vd4e7174.js → server-pj4pjv02.js} +21 -17
  345. package/dist/v2/{server-e0c1b7a7.js → server-q4ph9bwn.js} +1340 -148
  346. package/dist/{index-yr3zj7e7.js → v2/server-qt1qqasc.js} +6 -7
  347. package/dist/v2/{server-qdjnb2z1.js → server-r5p3b1wy.js} +11 -9
  348. package/dist/v2/{server-d0sraw7m.js → server-sa8jvrfc.js} +291 -286
  349. package/dist/v2/server-ss95ky04.js +1048 -0
  350. package/dist/v2/{server-1qbnzc80.js → server-t4k4qexw.js} +142 -150
  351. package/dist/{index-x3kwrmqk.js → v2/server-v4mewb78.js} +35 -792
  352. package/dist/v2/server-w32kmdez.js +154 -0
  353. package/dist/v2/{server-nf82q6pt.js → server-x4hscabv.js} +5547 -5449
  354. package/dist/v2/server-xwz4dqh9.js +569 -0
  355. package/dist/v2/{server-efhwzx05.js → server-ycw9qqcy.js} +23 -23
  356. package/dist/v2/{server-50hvkg3v.js → server-zm570tr2.js} +160 -158
  357. package/dist/v2/server-zp53y8js.js +1311 -0
  358. package/dist/v2/server.js +16 -14
  359. package/dist/v2/sqlite-context-pragmas-mv9jqwjh.js +6 -0
  360. package/dist/v2/sqlite-mhjkerzq.js +46 -0
  361. package/dist/v2/storage-memory-07fx57k6.js +71 -0
  362. package/dist/v2/storage-tags-8vw924zn.js +132 -0
  363. package/dist/v2/store-reader.d.ts +24 -2
  364. package/dist/v2/store-reader.d.ts.map +1 -1
  365. package/dist/v2/{task-config-tbndqyny.js → task-config-x0hq3qfd.js} +2 -2
  366. package/dist/v2/transformers-node-wasm.js +18415 -18415
  367. package/dist/v2/tui/index.d.ts.map +1 -1
  368. package/dist/v2/tui/types.d.ts +1 -10
  369. package/dist/v2/tui/types.d.ts.map +1 -1
  370. package/dist/v2/{wrapup-orchestrator-nbz854vc.js → wrapup-orchestrator-a7efxaax.js} +51 -30
  371. package/dist/wrapup-orchestrator-barbc6h9.js +44 -0
  372. package/package.json +4 -3
  373. package/src/agents/magic-context-prompt.ts +27 -2
  374. package/src/agents/smart-notes-enabled.test.ts +294 -0
  375. package/src/agents/smart-notes-on.golden.json +70 -0
  376. package/src/config/index.test.ts +67 -1
  377. package/src/config/index.ts +2 -0
  378. package/src/config/latch-permanence-guard.test.ts +4 -0
  379. package/src/config/mural-model-deprecation.ts +24 -0
  380. package/src/config/project-security.hostile-matrix.test.ts +4 -44
  381. package/src/config/project-security.test.ts +9 -14
  382. package/src/config/project-security.ts +13 -55
  383. package/src/config/schema/magic-context.test.ts +2 -2
  384. package/src/config/schema/magic-context.ts +16 -10
  385. package/src/features/magic-context/dreamer/task-registry.ts +6 -0
  386. package/src/shared/auto-search-lifecycle.ts +43 -0
  387. package/src/shared/conflict-detector.test.ts +56 -0
  388. package/src/shared/conflict-detector.ts +16 -5
  389. package/src/shared/host-stall-profiler-bun.ts +358 -0
  390. package/src/shared/host-stall-profiler-common.ts +159 -0
  391. package/src/shared/host-stall-profiler-node.test.ts +234 -0
  392. package/src/shared/host-stall-profiler-node.ts +274 -0
  393. package/src/shared/host-stall-profiler-report.ts +248 -0
  394. package/src/shared/host-stall-profiler.ts +57 -0
  395. package/src/shared/logger.test.ts +38 -0
  396. package/src/shared/logger.ts +10 -2
  397. package/src/shared/model-resolution.test.ts +54 -17
  398. package/src/shared/model-resolution.ts +6 -17
  399. package/src/shared/models-dev-temperature.ts +107 -0
  400. package/src/shared/project-directory-key.test.ts +59 -0
  401. package/src/shared/project-directory-key.ts +20 -0
  402. package/src/shared/sqlite.test.ts +52 -0
  403. package/src/shared/sqlite.ts +339 -23
  404. package/src/shared/stable-json-linear.test.ts +109 -0
  405. package/src/shared/stable-json.ts +37 -7
  406. package/src/shared/subagent-temperature.test.ts +270 -0
  407. package/src/shared/subagent-temperature.ts +110 -0
  408. package/src/shared/user-facing-codes.ts +2 -6
  409. package/src/shared/write-transaction-attribution.test.ts +2 -2
  410. package/src/v2/tui/host-contract.test.ts +41 -67
  411. package/src/v2/tui/index.ts +6 -214
  412. package/src/v2/tui/types.ts +5 -17
  413. package/dist/features/magic-context/checkout-claim-fake-subc.test-support.d.ts +0 -45
  414. package/dist/features/magic-context/checkout-claim-fake-subc.test-support.d.ts.map +0 -1
  415. package/dist/features/magic-context/checkout-claim.d.ts +0 -155
  416. package/dist/features/magic-context/checkout-claim.d.ts.map +0 -1
  417. package/dist/index-bb36vgr3.js +0 -6608
  418. package/dist/index-fnn5pjtt.js +0 -6554
  419. package/dist/recomp-orchestrator-rervg6q4.js +0 -42
  420. package/dist/v2/recomp-orchestrator-42vjba7p.js +0 -42
  421. package/dist/v2/server-3trjk1hx.js +0 -6360
  422. package/dist/v2/server-nm9n3aqq.js +0 -6461
  423. package/dist/wrapup-orchestrator-b2dztrar.js +0 -29
  424. /package/dist/{index-5prbx026.js → index-2pp04pmg.js} +0 -0
  425. /package/dist/v2/{index-5prbx026.js → index-2pp04pmg.js} +0 -0
@@ -1,25 +1,13 @@
1
1
  import {
2
- log
3
- } from "./index-hybnrwq0.js";
4
-
5
- // src/shared/internal-initiator-marker.ts
6
- var OMO_INTERNAL_INITIATOR_MARKER = "<!-- OMO_INTERNAL_INITIATOR -->";
7
-
8
- // src/shared/system-directive.ts
9
- var SYSTEM_DIRECTIVE_PREFIX = "[SYSTEM DIRECTIVE: MAGIC-CONTEXT";
10
- function isSystemDirective(text) {
11
- return text.trimStart().startsWith(SYSTEM_DIRECTIVE_PREFIX);
12
- }
13
- function removeSystemReminders(text) {
14
- return text.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/gi, "").trim();
15
- }
2
+ log2
3
+ } from "./server-t4k4qexw.js";
16
4
 
17
5
  // src/hooks/magic-context/read-session-formatting.ts
18
6
  import { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
19
7
  import { createRequire } from "node:module";
20
8
  import { homedir } from "node:os";
21
9
  import { dirname, join, resolve } from "node:path";
22
- import { pathToFileURL } from "node:url";
10
+ import { fileURLToPath, pathToFileURL } from "node:url";
23
11
 
24
12
  // src/shared/commit-detection.ts
25
13
  var HASH_HEX = "[0-9a-f]{7,12}";
@@ -32,6 +20,284 @@ function createCommitHashExtractPattern() {
32
20
  return new RegExp(`\`?\\b(${HASH_HEX})\\b\`?`, "gi");
33
21
  }
34
22
 
23
+ // src/shared/internal-initiator-marker.ts
24
+ var OMO_INTERNAL_INITIATOR_MARKER = "<!-- OMO_INTERNAL_INITIATOR -->";
25
+
26
+ // src/shared/system-directive.ts
27
+ var SYSTEM_DIRECTIVE_PREFIX = "[SYSTEM DIRECTIVE: MAGIC-CONTEXT";
28
+ function isSystemDirective(text) {
29
+ return text.trimStart().startsWith(SYSTEM_DIRECTIVE_PREFIX);
30
+ }
31
+ function removeSystemReminders(text) {
32
+ return text.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/gi, "").trim();
33
+ }
34
+
35
+ // src/hooks/magic-context/token-count-exact.ts
36
+ var NO_RANK = 4294967295;
37
+ var LONG_PIECE_BYTES = 256;
38
+ var MERGE_CACHE_GENERATION = 50000;
39
+ function hasInternals(tokenizer) {
40
+ const value = tokenizer;
41
+ return !!value && value.patternRegex instanceof RegExp && value.patternRegex.global && typeof value.stringRankEncoder === "object" && value.stringRankEncoder !== null && Array.isArray(value.binaryFirstByteIndex);
42
+ }
43
+ var textEncoder = new TextEncoder;
44
+ var textDecoder = new TextDecoder("utf-8");
45
+ function isValidUtf8(bytes) {
46
+ let index = 0;
47
+ while (index < bytes.length) {
48
+ const first = bytes[index];
49
+ let size = 0;
50
+ let codePoint = 0;
51
+ if (first <= 127) {
52
+ size = 1;
53
+ codePoint = first;
54
+ } else if ((first & 224) === 192) {
55
+ size = 2;
56
+ codePoint = first & 31;
57
+ if (first <= 193)
58
+ return false;
59
+ } else if ((first & 240) === 224) {
60
+ size = 3;
61
+ codePoint = first & 15;
62
+ } else if ((first & 248) === 240) {
63
+ size = 4;
64
+ codePoint = first & 7;
65
+ if (first > 244)
66
+ return false;
67
+ } else
68
+ return false;
69
+ if (index + size > bytes.length)
70
+ return false;
71
+ for (let offset = 1;offset < size; offset += 1) {
72
+ const byte = bytes[index + offset];
73
+ if ((byte & 192) !== 128)
74
+ return false;
75
+ codePoint = codePoint << 6 | byte & 63;
76
+ }
77
+ if (size === 2 && codePoint < 128)
78
+ return false;
79
+ if (size === 3 && codePoint < 2048)
80
+ return false;
81
+ if (size === 4 && codePoint < 65536)
82
+ return false;
83
+ if (codePoint >= 55296 && codePoint <= 57343)
84
+ return false;
85
+ if (codePoint > 1114111)
86
+ return false;
87
+ index += size;
88
+ }
89
+ return true;
90
+ }
91
+ function binarySearchBytes(sorted, key) {
92
+ let low = 0;
93
+ let high = sorted.length - 1;
94
+ while (low <= high) {
95
+ const mid = low + high >>> 1;
96
+ const midKey = sorted[mid][0];
97
+ let compare = 0;
98
+ const shared = Math.min(midKey.length, key.length);
99
+ for (let index = 0;index < shared; index += 1) {
100
+ compare = midKey[index] - key[index];
101
+ if (compare !== 0)
102
+ break;
103
+ }
104
+ if (compare === 0)
105
+ compare = midKey.length - key.length;
106
+ if (compare === 0)
107
+ return sorted[mid][1];
108
+ if (compare < 0)
109
+ low = mid + 1;
110
+ else
111
+ high = mid - 1;
112
+ }
113
+ return -1;
114
+ }
115
+ function rankOf(tokenizer, slice) {
116
+ if (isValidUtf8(slice)) {
117
+ const rank = tokenizer.stringRankEncoder[textDecoder.decode(slice)];
118
+ if (rank !== undefined)
119
+ return rank;
120
+ }
121
+ const bucket = tokenizer.binaryFirstByteIndex[slice[0]];
122
+ if (bucket !== null && bucket !== undefined) {
123
+ const rank = binarySearchBytes(bucket, slice);
124
+ if (rank !== -1)
125
+ return rank;
126
+ }
127
+ return NO_RANK;
128
+ }
129
+ function mergeByScanning(tokenizer, bytes) {
130
+ const starts = [];
131
+ const ranks = [];
132
+ const pairRank = (index) => {
133
+ const end = starts[index + 2];
134
+ return end === undefined ? NO_RANK : rankOf(tokenizer, bytes.subarray(starts[index], end));
135
+ };
136
+ for (let index = 0;index <= bytes.length; index += 1)
137
+ starts.push(index);
138
+ for (let index = 0;index < starts.length; index += 1)
139
+ ranks.push(pairRank(index));
140
+ while (starts.length > 1) {
141
+ let minRank = NO_RANK;
142
+ let minIndex = -1;
143
+ for (let index = 0;index < ranks.length - 1; index += 1) {
144
+ if (ranks[index] < minRank) {
145
+ minRank = ranks[index];
146
+ minIndex = index;
147
+ }
148
+ }
149
+ if (minIndex === -1)
150
+ break;
151
+ starts.splice(minIndex + 1, 1);
152
+ ranks.splice(minIndex, 1);
153
+ ranks[minIndex] = pairRank(minIndex);
154
+ if (minIndex > 0)
155
+ ranks[minIndex - 1] = pairRank(minIndex - 1);
156
+ }
157
+ const tokens = [];
158
+ for (let index = 0;index < starts.length - 1; index += 1) {
159
+ const rank = rankOf(tokenizer, bytes.subarray(starts[index], starts[index + 1]));
160
+ if (rank !== NO_RANK)
161
+ tokens.push(rank);
162
+ }
163
+ return tokens;
164
+ }
165
+ function mergeWithHeap(tokenizer, bytes) {
166
+ const length = bytes.length;
167
+ const next = new Int32Array(length + 1);
168
+ const prev = new Int32Array(length + 1);
169
+ const alive = new Uint8Array(length + 1).fill(1);
170
+ const rank = new Float64Array(length + 1).fill(NO_RANK);
171
+ for (let index = 0;index <= length; index += 1) {
172
+ next[index] = index + 1;
173
+ prev[index] = index - 1;
174
+ }
175
+ const heapRank = [];
176
+ const heapAt = [];
177
+ const less = (a, b) => heapRank[a] < heapRank[b] || heapRank[a] === heapRank[b] && heapAt[a] < heapAt[b];
178
+ const swap = (a, b) => {
179
+ [heapRank[a], heapRank[b]] = [heapRank[b], heapRank[a]];
180
+ [heapAt[a], heapAt[b]] = [heapAt[b], heapAt[a]];
181
+ };
182
+ const push = (value, at) => {
183
+ heapRank.push(value);
184
+ heapAt.push(at);
185
+ let child = heapRank.length - 1;
186
+ while (child > 0) {
187
+ const parent = child - 1 >> 1;
188
+ if (!less(child, parent))
189
+ break;
190
+ swap(child, parent);
191
+ child = parent;
192
+ }
193
+ };
194
+ const pop = () => {
195
+ const last = heapRank.length - 1;
196
+ swap(0, last);
197
+ heapRank.pop();
198
+ heapAt.pop();
199
+ let parent = 0;
200
+ for (;; ) {
201
+ const left = parent * 2 + 1;
202
+ const right = left + 1;
203
+ let smallest = parent;
204
+ if (left < heapRank.length && less(left, smallest))
205
+ smallest = left;
206
+ if (right < heapRank.length && less(right, smallest))
207
+ smallest = right;
208
+ if (smallest === parent)
209
+ break;
210
+ swap(parent, smallest);
211
+ parent = smallest;
212
+ }
213
+ };
214
+ const pairRank = (at) => {
215
+ const middle = next[at];
216
+ if (middle >= length)
217
+ return NO_RANK;
218
+ return rankOf(tokenizer, bytes.subarray(at, next[middle]));
219
+ };
220
+ const update = (at) => {
221
+ rank[at] = pairRank(at);
222
+ if (rank[at] !== NO_RANK)
223
+ push(rank[at], at);
224
+ };
225
+ for (let at = 0;at < length; at += 1)
226
+ update(at);
227
+ while (heapRank.length > 0) {
228
+ const value = heapRank[0];
229
+ const at = heapAt[0];
230
+ pop();
231
+ if (!alive[at] || rank[at] !== value)
232
+ continue;
233
+ const removed = next[at];
234
+ alive[removed] = 0;
235
+ next[at] = next[removed];
236
+ prev[next[removed]] = at;
237
+ update(at);
238
+ if (at > 0)
239
+ update(prev[at]);
240
+ }
241
+ const tokens = [];
242
+ for (let at = 0;at < length; at = next[at]) {
243
+ const value = rankOf(tokenizer, bytes.subarray(at, next[at]));
244
+ if (value !== NO_RANK)
245
+ tokens.push(value);
246
+ }
247
+ return tokens;
248
+ }
249
+ var mergeCaches = new WeakMap;
250
+ var mergedPieces = 0;
251
+ function mergePiece(tokenizer, piece) {
252
+ let cache = mergeCaches.get(tokenizer);
253
+ if (!cache) {
254
+ cache = { current: new Map, previous: new Map };
255
+ mergeCaches.set(tokenizer, cache);
256
+ }
257
+ let tokens = cache.current.get(piece);
258
+ if (tokens)
259
+ return tokens;
260
+ tokens = cache.previous.get(piece);
261
+ if (!tokens) {
262
+ const bytes = textEncoder.encode(piece);
263
+ mergedPieces += 1;
264
+ tokens = bytes.length > LONG_PIECE_BYTES ? mergeWithHeap(tokenizer, bytes) : mergeByScanning(tokenizer, bytes);
265
+ }
266
+ if (cache.current.size >= MERGE_CACHE_GENERATION) {
267
+ cache.previous = cache.current;
268
+ cache.current = new Map;
269
+ }
270
+ cache.current.set(piece, tokens);
271
+ return tokens;
272
+ }
273
+ function encodeTokensExactly(tokenizer, text) {
274
+ if (!hasInternals(tokenizer)) {
275
+ return tokenizer.encode(text, "all");
276
+ }
277
+ if (text.length < 10) {
278
+ const direct = tokenizer.stringRankEncoder[text];
279
+ if (direct !== undefined)
280
+ return [direct];
281
+ }
282
+ const tokens = [];
283
+ const regex = tokenizer.patternRegex;
284
+ regex.lastIndex = 0;
285
+ for (let match = regex.exec(text);match !== null; match = regex.exec(text)) {
286
+ const piece = match[0];
287
+ const direct = tokenizer.stringRankEncoder[piece];
288
+ if (direct !== undefined) {
289
+ tokens.push(direct);
290
+ continue;
291
+ }
292
+ for (const token of mergePiece(tokenizer, piece))
293
+ tokens.push(token);
294
+ }
295
+ return tokens;
296
+ }
297
+ function countTokensExactly(tokenizer, text) {
298
+ return encodeTokensExactly(tokenizer, text).length;
299
+ }
300
+
35
301
  // src/hooks/magic-context/read-session-formatting.ts
36
302
  var MAX_COMMITS_PER_BLOCK = 5;
37
303
  function hasMeaningfulUserText2(parts) {
@@ -144,22 +410,30 @@ var tokenizerSerializedTableBytes;
144
410
  function tokenizerPackageRoots() {
145
411
  const cwd = process.cwd();
146
412
  const openCodeCache = join(process.env.XDG_CACHE_HOME ?? join(homedir(), ".cache"), "opencode");
147
- const roots = [cwd, openCodeCache];
148
413
  const candidates = [];
149
- for (const root of roots) {
414
+ const probeRoot = (root) => {
150
415
  for (const packageDir of TOKENIZER_PACKAGE_DIRS) {
151
416
  candidates.push(join(root, "node_modules", ...packageDir, "node_modules", "ai-tokenizer"));
152
417
  }
153
418
  candidates.push(join(root, "node_modules", "ai-tokenizer"));
419
+ };
420
+ for (const root of [cwd, openCodeCache]) {
421
+ probeRoot(root);
154
422
  }
155
- let ancestor = process.argv[1] ? dirname(resolve(process.argv[1])) : cwd;
156
- while (true) {
157
- candidates.push(join(ancestor, "node_modules", "ai-tokenizer"));
158
- const parent = dirname(ancestor);
159
- if (parent === ancestor)
160
- break;
161
- ancestor = parent;
162
- }
423
+ const pushAncestors = (startDir) => {
424
+ let ancestor = startDir;
425
+ while (true) {
426
+ candidates.push(join(ancestor, "node_modules", "ai-tokenizer"));
427
+ const parent = dirname(ancestor);
428
+ if (parent === ancestor)
429
+ break;
430
+ ancestor = parent;
431
+ }
432
+ };
433
+ pushAncestors(process.argv[1] ? dirname(resolve(process.argv[1])) : cwd);
434
+ const ownDir = dirname(fileURLToPath(new URL(import.meta.url)));
435
+ pushAncestors(ownDir);
436
+ probeRoot(join(homedir(), ".omp", "plugins"));
163
437
  return [...new Set(candidates)];
164
438
  }
165
439
  function packageImportTarget(value) {
@@ -264,7 +538,7 @@ function warnTokenizerFallback(error) {
264
538
  return;
265
539
  tokenizerWarningSent = true;
266
540
  const reason = error instanceof Error ? error.message : String(error);
267
- log("[magic-context] ai-tokenizer is unavailable; using approximate character-based token counts for this process. Token budgets, persisted per-message counts, and protected-tail/compartment boundaries may be less accurate until restart:", reason);
541
+ log2("[magic-context] ai-tokenizer is unavailable; using approximate character-based token counts for this process. Token budgets, persisted per-message counts, and protected-tail/compartment boundaries may be less accurate until restart:", reason);
268
542
  }
269
543
  async function preloadTokenizer() {
270
544
  if (tokenizer)
@@ -339,7 +613,7 @@ function estimateTokens(text) {
339
613
  if (!activeTokenizer)
340
614
  return estimateTokensHeuristically(text);
341
615
  try {
342
- return activeTokenizer.encode(text, "all").length;
616
+ return countTokensExactly(activeTokenizer, text);
343
617
  } catch (error) {
344
618
  tokenizer = undefined;
345
619
  tokenizerLoadAttempted = true;
@@ -1,18 +1,3 @@
1
- // src/shared/protected-tools-policy.ts
2
- var DEFAULT_PROTECTED_TOOLS = {
3
- todowrite: 1,
4
- ctx_reduce: 3
5
- };
6
- function normalizeProtectedToolName(name) {
7
- return (name ?? "").toLowerCase().replace(/^mcp_/, "");
8
- }
9
- function mergeProtectedTools(...maps) {
10
- return Object.fromEntries([DEFAULT_PROTECTED_TOOLS, ...maps].flatMap((map) => Object.entries(map ?? {}).map(([name, count]) => [
11
- normalizeProtectedToolName(name),
12
- count
13
- ])));
14
- }
15
-
16
1
  // src/shared/historian-tool-template.ts
17
2
  class Parser {
18
3
  source;
@@ -241,4 +226,4 @@ function renderToolTemplate(source, input, output, legacyPreview = false) {
241
226
  return truncate(render(bareOutputNodes, root, legacyPreview), legacyPreview ? 1000 : undefined, legacyPreview);
242
227
  }
243
228
 
244
- export { toolTemplateError, renderToolTemplate, DEFAULT_PROTECTED_TOOLS, normalizeProtectedToolName, mergeProtectedTools };
229
+ export { toolTemplateError, renderToolTemplate };
@@ -0,0 +1,17 @@
1
+ // src/shared/harness.ts
2
+ var currentHarness = "opencode";
3
+ var harnessLocked = false;
4
+ function setHarness2(value) {
5
+ if (harnessLocked && currentHarness !== value) {
6
+ throw new Error(`Magic Context: harness already locked to "${currentHarness}"; cannot change to "${value}"`);
7
+ }
8
+ currentHarness = value;
9
+ harnessLocked = true;
10
+ }
11
+ function getHarness2() {
12
+ return currentHarness;
13
+ }
14
+ function harnessOwnsOpenCodeStore2(harness = currentHarness) {
15
+ return harness === "opencode" || harness === "opencode2";
16
+ }
17
+ export { setHarness2, getHarness2, harnessOwnsOpenCodeStore2 };
@@ -1,23 +1,27 @@
1
1
  import {
2
- harnessOwnsOpenCodeStore,
3
- log
4
- } from "./server-1qbnzc80.js";
2
+ harnessOwnsOpenCodeStore2
3
+ } from "./server-pavzsdc6.js";
4
+ import {
5
+ log2
6
+ } from "./server-t4k4qexw.js";
5
7
  import {
6
- closeQuietly,
7
8
  resolveOpenCodeDbPath,
8
9
  assertOpenCodeStoreGeneration,
9
10
  openCodeDbPathExists,
10
11
  recordOpenCodeDbReadFailure,
11
12
  clearOpenCodeDbReadFailure,
12
13
  claimOpenCodeDbDiagnosticOnce
13
- } from "./server-ajzeteqw.js";
14
+ } from "./server-2ra6pwf3.js";
15
+ import {
16
+ Database2
17
+ } from "./server-kb9nn0a0.js";
14
18
  import {
15
- Database
16
- } from "./server-wx8a6bw3.js";
19
+ closeQuietly
20
+ } from "./server-8ajstryz.js";
17
21
 
18
22
  // src/hooks/magic-context/read-session-db.ts
19
23
  function openCodeDbExists() {
20
- return harnessOwnsOpenCodeStore() && openCodeDbPathExists(resolveOpenCodeDbPath());
24
+ return harnessOwnsOpenCodeStore2() && openCodeDbPathExists(resolveOpenCodeDbPath());
21
25
  }
22
26
  var cachedReadOnlyDb = null;
23
27
  function closeCachedReadOnlyDb() {
@@ -27,13 +31,13 @@ function closeCachedReadOnlyDb() {
27
31
  try {
28
32
  closeQuietly(cachedReadOnlyDb.db);
29
33
  } catch (error) {
30
- log("[magic-context] failed to close cached OpenCode read-only DB:", error);
34
+ log2("[magic-context] failed to close cached OpenCode read-only DB:", error);
31
35
  } finally {
32
36
  cachedReadOnlyDb = null;
33
37
  }
34
38
  }
35
39
  function getReadOnlySessionDb() {
36
- if (!harnessOwnsOpenCodeStore()) {
40
+ if (!harnessOwnsOpenCodeStore2()) {
37
41
  throw new Error("OpenCode session database is not readable from a Pi-compatible process; its history lives in Pi sessions");
38
42
  }
39
43
  const resolution = resolveOpenCodeDbPath();
@@ -45,7 +49,7 @@ function getReadOnlySessionDb() {
45
49
  return cachedReadOnlyDb.db;
46
50
  }
47
51
  closeCachedReadOnlyDb();
48
- const db = new Database(dbPath, { readonly: true });
52
+ const db = new Database2(dbPath, { readonly: true });
49
53
  try {
50
54
  assertOpenCodeStoreGeneration(db, "v1", dbPath);
51
55
  } catch (error) {
@@ -157,11 +161,11 @@ function logProbeFailureOnce(resolution, error) {
157
161
  return;
158
162
  const message = `[magic-context] OpenCode DB probe failed: path=${resolution.path} source=${resolution.source} cause=${failure.message}`;
159
163
  probeLogObserverForTests?.(message);
160
- log(message);
164
+ log2(message);
161
165
  }
162
166
  function resolvedDbIsAvailable() {
163
167
  const resolution = resolveOpenCodeDbPath();
164
- if (!harnessOwnsOpenCodeStore())
168
+ if (!harnessOwnsOpenCodeStore2())
165
169
  return { resolution, available: false };
166
170
  const available = openCodeDbPathExists(resolution);
167
171
  if (available)
@@ -290,12 +294,12 @@ function hasUnansweredRealUser(db, sessionId) {
290
294
  }
291
295
  function getMessageTimesFromOpenCodeDb(sessionId, messageIds) {
292
296
  const result = new Map;
293
- if (messageIds.length === 0 || !harnessOwnsOpenCodeStore())
297
+ if (messageIds.length === 0 || !harnessOwnsOpenCodeStore2())
294
298
  return result;
295
299
  try {
296
300
  withReadOnlySessionDb((db) => {
297
301
  const placeholders = messageIds.map(() => "?").join(",");
298
- const rows = db.prepare(`SELECT id, time_created FROM message WHERE session_id = ? AND id IN (${placeholders})`).all(sessionId, ...messageIds);
302
+ const rows = db.prepare(`SELECT id, time_created FROM message WHERE +session_id = ? AND id IN (${placeholders})`).all(sessionId, ...messageIds);
299
303
  for (const row of rows) {
300
304
  if (typeof row.id === "string" && typeof row.time_created === "number") {
301
305
  result.set(row.id, row.time_created);
@@ -308,14 +312,14 @@ function getMessageTimesFromOpenCodeDb(sessionId, messageIds) {
308
312
  return result;
309
313
  }
310
314
  function findLastAssistantModelFromOpenCodeDb(sessionId) {
311
- if (!harnessOwnsOpenCodeStore())
315
+ if (!harnessOwnsOpenCodeStore2())
312
316
  return null;
313
317
  const resolution = resolveOpenCodeDbPath();
314
318
  try {
315
319
  if (!openCodeDbPathExists(resolution)) {
316
320
  throw new Error(`OpenCode session database is unavailable at ${resolution.path}`);
317
321
  }
318
- const db = new Database(resolution.path, { readonly: true });
322
+ const db = new Database2(resolution.path, { readonly: true });
319
323
  try {
320
324
  const queryV2 = () => db.prepare(`SELECT json_extract(data, '$.model.providerID') as providerID,
321
325
  json_extract(data, '$.model.id') as modelID,