@cortexkit/opencode-magic-context 0.46.1 → 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 (462) 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 +112 -0
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/live-run-config.d.ts.map +1 -1
  7. package/dist/config/migrate-config-location.d.ts.map +1 -1
  8. package/dist/config/mural-model-deprecation.d.ts +15 -0
  9. package/dist/config/mural-model-deprecation.d.ts.map +1 -0
  10. package/dist/config/project-security.d.ts +0 -3
  11. package/dist/config/project-security.d.ts.map +1 -1
  12. package/dist/config/schema/magic-context.d.ts +21 -9
  13. package/dist/config/schema/magic-context.d.ts.map +1 -1
  14. package/dist/{conflict-warning-hook-7fj2b9jw.js → conflict-warning-hook-w8cykrnf.js} +12 -9
  15. package/dist/{context-sh2m2vde.js → context-m0cy262m.js} +1785 -913
  16. package/dist/{derive-budgets-7nj7r1rv.js → derive-budgets-sg0xsq7s.js} +4 -3
  17. package/dist/embedding-activity-g1dhes6g.js +10 -0
  18. package/dist/embedding-backfill-9rcm1mfy.js +21 -0
  19. package/dist/embedding-cache-mgyr73ef.js +16 -0
  20. package/dist/embedding-worker.js +11 -9
  21. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  22. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts +1 -0
  23. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -1
  24. package/dist/features/magic-context/dreamer/task-config.d.ts +3 -3
  25. package/dist/features/magic-context/dreamer/task-config.d.ts.map +1 -1
  26. package/dist/features/magic-context/dreamer/task-executor.d.ts +1 -1
  27. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  28. package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -1
  29. package/dist/features/magic-context/dreamer/task-registry.d.ts +1 -0
  30. package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
  31. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  32. package/dist/features/magic-context/message-index-async.d.ts +16 -3
  33. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  34. package/dist/features/magic-context/message-index-bounded.d.ts +17 -0
  35. package/dist/features/magic-context/message-index-bounded.d.ts.map +1 -0
  36. package/dist/features/magic-context/message-index.d.ts +7 -1
  37. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  38. package/dist/features/magic-context/mural/render-trigger.d.ts +7 -4
  39. package/dist/features/magic-context/mural/render-trigger.d.ts.map +1 -1
  40. package/dist/features/magic-context/overflow-detection.d.ts +2 -0
  41. package/dist/features/magic-context/overflow-detection.d.ts.map +1 -1
  42. package/dist/features/magic-context/pi-content-decisions.d.ts +7 -1
  43. package/dist/features/magic-context/pi-content-decisions.d.ts.map +1 -1
  44. package/dist/features/magic-context/project-embedding-registry.d.ts +7 -0
  45. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  46. package/dist/features/magic-context/search.d.ts +31 -0
  47. package/dist/features/magic-context/search.d.ts.map +1 -1
  48. package/dist/features/magic-context/session-activity.d.ts.map +1 -1
  49. package/dist/features/magic-context/session-project-storage.d.ts +8 -2
  50. package/dist/features/magic-context/session-project-storage.d.ts.map +1 -1
  51. package/dist/features/magic-context/smart-notes/runner.d.ts +1 -0
  52. package/dist/features/magic-context/smart-notes/runner.d.ts.map +1 -1
  53. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  54. package/dist/features/magic-context/storage-historian-runs.d.ts +2 -5
  55. package/dist/features/magic-context/storage-historian-runs.d.ts.map +1 -1
  56. package/dist/features/magic-context/storage-meta-persisted.d.ts +12 -0
  57. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  58. package/dist/features/magic-context/storage-meta-session.d.ts +6 -0
  59. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  60. package/dist/features/magic-context/storage-tag-identity-revision.d.ts +30 -0
  61. package/dist/features/magic-context/storage-tag-identity-revision.d.ts.map +1 -0
  62. package/dist/features/magic-context/storage-tags.d.ts +148 -3
  63. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  64. package/dist/features/magic-context/storage.d.ts +1 -0
  65. package/dist/features/magic-context/storage.d.ts.map +1 -1
  66. package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -1
  67. package/dist/features/magic-context/transform-decision-log.d.ts +4 -2
  68. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
  69. package/dist/harness-e4avh192.js +10 -0
  70. package/dist/hooks/magic-context/active-anthropic-turn.d.ts +10 -0
  71. package/dist/hooks/magic-context/active-anthropic-turn.d.ts.map +1 -0
  72. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  73. package/dist/hooks/magic-context/auto-search-blocking.fixture.d.ts +2 -0
  74. package/dist/hooks/magic-context/auto-search-blocking.fixture.d.ts.map +1 -0
  75. package/dist/hooks/magic-context/auto-search-deadline.d.ts +7 -0
  76. package/dist/hooks/magic-context/auto-search-deadline.d.ts.map +1 -1
  77. package/dist/hooks/magic-context/auto-search-host-review.fixture.d.ts +3 -0
  78. package/dist/hooks/magic-context/auto-search-host-review.fixture.d.ts.map +1 -0
  79. package/dist/hooks/magic-context/auto-search-lock-review.fixture.d.ts +2 -0
  80. package/dist/hooks/magic-context/auto-search-lock-review.fixture.d.ts.map +1 -0
  81. package/dist/hooks/magic-context/auto-search-long-lock-review.fixture.d.ts +2 -0
  82. package/dist/hooks/magic-context/auto-search-long-lock-review.fixture.d.ts.map +1 -0
  83. package/dist/hooks/magic-context/auto-search-omp-host-review.fixture.d.ts +4 -0
  84. package/dist/hooks/magic-context/auto-search-omp-host-review.fixture.d.ts.map +1 -0
  85. package/dist/hooks/magic-context/auto-search-omp-loader.fixture.d.ts +3 -0
  86. package/dist/hooks/magic-context/auto-search-omp-loader.fixture.d.ts.map +1 -0
  87. package/dist/hooks/magic-context/auto-search-runner.d.ts +1 -1
  88. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
  89. package/dist/hooks/magic-context/auto-search-snapshot.fixture.d.ts +4 -0
  90. package/dist/hooks/magic-context/auto-search-snapshot.fixture.d.ts.map +1 -0
  91. package/dist/hooks/magic-context/auto-search-worker-client.d.ts +98 -0
  92. package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -0
  93. package/dist/hooks/magic-context/auto-search-worker.d.ts +2 -0
  94. package/dist/hooks/magic-context/auto-search-worker.d.ts.map +1 -0
  95. package/dist/hooks/magic-context/caveman-cleanup.d.ts.map +1 -1
  96. package/dist/hooks/magic-context/command-handler.d.ts +1 -0
  97. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  98. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  99. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  100. package/dist/hooks/magic-context/compartment-runner-types.d.ts +3 -5
  101. package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
  102. package/dist/hooks/magic-context/compartment-runner.d.ts +2 -1
  103. package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
  104. package/dist/hooks/magic-context/compartment-trigger.d.ts +3 -1
  105. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  106. package/dist/hooks/magic-context/event-handler.d.ts +1 -1
  107. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  108. package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
  109. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  110. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +2 -0
  111. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
  112. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
  113. package/dist/hooks/magic-context/historian-drain-gate.d.ts +11 -0
  114. package/dist/hooks/magic-context/historian-drain-gate.d.ts.map +1 -0
  115. package/dist/hooks/magic-context/hook.d.ts +3 -2
  116. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  117. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  118. package/dist/hooks/magic-context/latest-assistant-turn.d.ts +25 -0
  119. package/dist/hooks/magic-context/latest-assistant-turn.d.ts.map +1 -0
  120. package/dist/hooks/magic-context/latest-thinking-recovery.d.ts +61 -0
  121. package/dist/hooks/magic-context/latest-thinking-recovery.d.ts.map +1 -0
  122. package/dist/hooks/magic-context/lkg-persist.d.ts +4 -3
  123. package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
  124. package/dist/hooks/magic-context/lkg-replay.d.ts +13 -8
  125. package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
  126. package/dist/hooks/magic-context/lkg-slot.d.ts +139 -2
  127. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  128. package/dist/hooks/magic-context/message-search-accepting-silent-worker.fixture.d.ts +2 -0
  129. package/dist/hooks/magic-context/message-search-accepting-silent-worker.fixture.d.ts.map +1 -0
  130. package/dist/hooks/magic-context/module-wire.d.ts.map +1 -1
  131. package/dist/hooks/magic-context/oc-stall-r2-warmup-worker.fixture.d.ts +2 -0
  132. package/dist/hooks/magic-context/oc-stall-r2-warmup-worker.fixture.d.ts.map +1 -0
  133. package/dist/hooks/magic-context/oc-stall-search-review.fixture.d.ts +2 -0
  134. package/dist/hooks/magic-context/oc-stall-search-review.fixture.d.ts.map +1 -0
  135. package/dist/hooks/magic-context/opencode-proven-floor.d.ts +6 -0
  136. package/dist/hooks/magic-context/opencode-proven-floor.d.ts.map +1 -0
  137. package/dist/hooks/magic-context/opencode1-to-model-messages.fixture.d.ts +63 -0
  138. package/dist/hooks/magic-context/opencode1-to-model-messages.fixture.d.ts.map +1 -0
  139. package/dist/hooks/magic-context/pass-outcome.d.ts.map +1 -1
  140. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
  141. package/dist/hooks/magic-context/provider-visible-parts.d.ts +45 -0
  142. package/dist/hooks/magic-context/provider-visible-parts.d.ts.map +1 -0
  143. package/dist/hooks/magic-context/raw-ordinal-warmup-silent-worker.fixture.d.ts +2 -0
  144. package/dist/hooks/magic-context/raw-ordinal-warmup-silent-worker.fixture.d.ts.map +1 -0
  145. package/dist/hooks/magic-context/raw-ordinal-warmup-worker.d.ts +2 -0
  146. package/dist/hooks/magic-context/raw-ordinal-warmup-worker.d.ts.map +1 -0
  147. package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts +87 -0
  148. package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts.map +1 -0
  149. package/dist/hooks/magic-context/read-session-chunk.d.ts +12 -0
  150. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  151. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  152. package/dist/hooks/magic-context/read-session-formatting.d.ts +5 -0
  153. package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -1
  154. package/dist/hooks/magic-context/read-session-raw.d.ts +83 -1
  155. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  156. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -1
  157. package/dist/hooks/magic-context/reasoning-budget-status.d.ts +15 -0
  158. package/dist/hooks/magic-context/reasoning-budget-status.d.ts.map +1 -0
  159. package/dist/hooks/magic-context/reasoning-budget.d.ts +40 -0
  160. package/dist/hooks/magic-context/reasoning-budget.d.ts.map +1 -0
  161. package/dist/hooks/magic-context/reasoning-removal.d.ts +6 -6
  162. package/dist/hooks/magic-context/reasoning-removal.d.ts.map +1 -1
  163. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  164. package/dist/hooks/magic-context/sentinel.d.ts +45 -1
  165. package/dist/hooks/magic-context/sentinel.d.ts.map +1 -1
  166. package/dist/hooks/magic-context/strip-content.d.ts +21 -5
  167. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  168. package/dist/hooks/magic-context/system-prompt-hash.d.ts +1 -0
  169. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  170. package/dist/hooks/magic-context/tag-messages.d.ts +21 -0
  171. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  172. package/dist/hooks/magic-context/tag-owner-warmup.d.ts +6 -0
  173. package/dist/hooks/magic-context/tag-owner-warmup.d.ts.map +1 -0
  174. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -1
  175. package/dist/hooks/magic-context/token-count-exact.d.ts +35 -0
  176. package/dist/hooks/magic-context/token-count-exact.d.ts.map +1 -0
  177. package/dist/hooks/magic-context/tool-drop-target.d.ts +5 -0
  178. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
  179. package/dist/hooks/magic-context/transform-compartment-phase.d.ts +3 -28
  180. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
  181. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +28 -6
  182. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  183. package/dist/hooks/magic-context/transform.d.ts +11 -3
  184. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  185. package/dist/hooks/magic-context/wrapup-orchestrator.d.ts.map +1 -1
  186. package/dist/{index-hpecdzec.js → index-0an7742d.js} +6820 -6587
  187. package/dist/index-0qhce371.js +120 -0
  188. package/dist/{index-q6hef7fh.js → index-0sahzkwr.js} +6 -19
  189. package/dist/{index-k5bdx1bx.js → index-0w56v4fm.js} +3 -5
  190. package/dist/index-14cjxt20.js +819 -0
  191. package/dist/{v2/server-51dv1pr5.js → index-1qb0z7wa.js} +301 -27
  192. package/dist/index-2bvekkfy.js +11 -0
  193. package/dist/{index-sj29b3z2.js → index-2y0s2hep.js} +3 -3
  194. package/dist/index-4dhv7mqz.js +131 -0
  195. package/dist/{index-b35pxds2.js → index-58e3y90n.js} +1 -18
  196. package/dist/index-5zygecde.js +152 -0
  197. package/dist/{index-sjthx78w.js → index-692jzy0p.js} +16879 -22907
  198. package/dist/index-72nhv486.js +2307 -0
  199. package/dist/index-7jzrrxap.js +931 -0
  200. package/dist/index-7mx8v0pw.js +3591 -0
  201. package/dist/index-8ajstryz.js +18 -0
  202. package/dist/{index-sfpzqvdz.js → index-8cd2j99z.js} +2 -3
  203. package/dist/{index-hybnrwq0.js → index-8j7gqj40.js} +131 -128
  204. package/dist/index-bdckkfw6.js +3261 -0
  205. package/dist/{index-8x2v7gg9.js → index-bhvjj0ys.js} +158 -2455
  206. package/dist/index-c43kr12f.js +3030 -0
  207. package/dist/index-cb7emxgj.js +984 -0
  208. package/dist/index-d9vfe7xq.js +16 -0
  209. package/dist/{index-5gq3b2ya.js → index-db7zwa3v.js} +147 -209
  210. package/dist/index-dhwzyd54.js +1142 -0
  211. package/dist/{index-8da2zjhz.js → index-eeezr5zz.js} +9 -7
  212. package/dist/{index-pkbcrdqs.js → index-f0h6xwqm.js} +3412 -4552
  213. package/dist/index-fb3zxn06.js +13 -0
  214. package/dist/index-fbv1dn35.js +171 -0
  215. package/dist/index-fr0wbhdn.js +43 -0
  216. package/dist/{index-mc22ayvf.js → index-ghc9f0n7.js} +11 -9
  217. package/dist/{index-fzbvakh0.js → index-jcbd3znx.js} +3 -3
  218. package/dist/{index-5p8jdswx.js → index-k1xb52kd.js} +20 -13
  219. package/dist/index-k9nnwad5.js +3532 -0
  220. package/dist/{v2/server-fg34g6a5.js → index-kb9nn0a0.js} +309 -52
  221. package/dist/index-knh4y330.js +566 -0
  222. package/dist/{index-q4yp4b52.js → index-mfkzp7qj.js} +28 -28
  223. package/dist/{index-sgthv3f7.js → index-mmyh6d8f.js} +4 -4
  224. package/dist/index-pavzsdc6.js +17 -0
  225. package/dist/{index-0d3g3461.js → index-pdecwzrd.js} +19 -16
  226. package/dist/index-pg50n748.js +1060 -0
  227. package/dist/index-q2tqeqde.js +2106 -0
  228. package/dist/index-q7h7csab.js +3469 -0
  229. package/dist/index-qt1qqasc.js +22 -0
  230. package/dist/{index-majxda46.js → index-ty64eqcn.js} +28 -18
  231. package/dist/{index-7qw742ev.js → index-yq8n9qcb.js} +25 -44
  232. package/dist/{index-sfnj6h8h.js → index-z8e0psj8.js} +20 -20
  233. package/dist/index.d.ts.map +1 -1
  234. package/dist/index.js +1061 -260
  235. package/dist/logger-d3wex3dz.js +20 -0
  236. package/dist/message-index-bounded-7ezbgddp.js +124 -0
  237. package/dist/{v2/message-time-backfill-r6qkem1x.js → message-time-backfill-brbd63hv.js} +8 -6
  238. package/dist/migration-worker.js +25 -16
  239. package/dist/{model-resolution-xhfmyyvy.js → model-resolution-nx97z3x7.js} +1 -1
  240. package/dist/plugin/dream-timer.d.ts +1 -1
  241. package/dist/plugin/dream-timer.d.ts.map +1 -1
  242. package/dist/plugin/hooks/create-session-hooks.d.ts +3 -1
  243. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  244. package/dist/plugin/host-stall-profiler-report.d.ts +2 -0
  245. package/dist/plugin/host-stall-profiler-report.d.ts.map +1 -0
  246. package/dist/plugin/host-stall-profiler.d.ts +3 -0
  247. package/dist/plugin/host-stall-profiler.d.ts.map +1 -0
  248. package/dist/plugin/messages-transform.d.ts +21 -19
  249. package/dist/plugin/messages-transform.d.ts.map +1 -1
  250. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  251. package/dist/plugin/tool-registry.d.ts.map +1 -1
  252. package/dist/project-embedding-registry-7qzptcw7.js +88 -0
  253. package/dist/raw-ordinal-warmup-worker.js +60 -0
  254. package/dist/{read-session-chunk-egz7r68d.js → read-session-chunk-6k83m4fj.js} +15 -9
  255. package/dist/read-session-raw-3g9qy1xa.js +58 -0
  256. package/dist/recomp-orchestrator-d3fp1cy0.js +57 -0
  257. package/dist/{v2/safe-notification-target-eb1n1vfb.js → safe-notification-target-5ffqq32m.js} +4 -2
  258. package/dist/search-epax1ecv.js +45 -0
  259. package/dist/{v2/send-session-notification-qs0j78v6.js → send-session-notification-erecz4y4.js} +10 -6
  260. package/dist/shared/auto-search-lifecycle.d.ts +7 -0
  261. package/dist/shared/auto-search-lifecycle.d.ts.map +1 -0
  262. package/dist/shared/conflict-detector.d.ts.map +1 -1
  263. package/dist/shared/historian-tool-expansions.d.ts +1 -1
  264. package/dist/shared/historian-tool-expansions.d.ts.map +1 -1
  265. package/dist/shared/historian-tool-template.d.ts +2 -2
  266. package/dist/shared/historian-tool-template.d.ts.map +1 -1
  267. package/dist/shared/host-stall-profiler-bun.d.ts +46 -0
  268. package/dist/shared/host-stall-profiler-bun.d.ts.map +1 -0
  269. package/dist/shared/host-stall-profiler-common.d.ts +58 -0
  270. package/dist/shared/host-stall-profiler-common.d.ts.map +1 -0
  271. package/dist/shared/host-stall-profiler-node.d.ts +36 -0
  272. package/dist/shared/host-stall-profiler-node.d.ts.map +1 -0
  273. package/dist/shared/host-stall-profiler-report.d.ts +68 -0
  274. package/dist/shared/host-stall-profiler-report.d.ts.map +1 -0
  275. package/dist/shared/host-stall-profiler.d.ts +5 -0
  276. package/dist/shared/host-stall-profiler.d.ts.map +1 -0
  277. package/dist/shared/model-resolution.d.ts +2 -3
  278. package/dist/shared/model-resolution.d.ts.map +1 -1
  279. package/dist/shared/sqlite.d.ts +46 -1
  280. package/dist/shared/sqlite.d.ts.map +1 -1
  281. package/dist/shared/stable-json.d.ts.map +1 -1
  282. package/dist/shared/status-view.d.ts.map +1 -1
  283. package/dist/shared/user-facing-codes.d.ts +0 -5
  284. package/dist/shared/user-facing-codes.d.ts.map +1 -1
  285. package/dist/shared/window-geometry.d.ts +4 -0
  286. package/dist/shared/window-geometry.d.ts.map +1 -1
  287. package/dist/sqlite-context-pragmas-mv9jqwjh.js +6 -0
  288. package/dist/sqlite-mhjkerzq.js +46 -0
  289. package/dist/storage-memory-07fx57k6.js +71 -0
  290. package/dist/storage-tags-d3b0v2ss.js +131 -0
  291. package/dist/{task-config-v81k8jvk.js → task-config-cgpg0nvh.js} +2 -2
  292. package/dist/tools/ctx-expand/render.d.ts.map +1 -1
  293. package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
  294. package/dist/tools/ctx-note/constants.d.ts +4 -0
  295. package/dist/tools/ctx-note/constants.d.ts.map +1 -1
  296. package/dist/tools/ctx-note/tools.d.ts +1 -0
  297. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  298. package/dist/tools/ctx-search/tools.d.ts.map +1 -1
  299. package/dist/tools/parameter-descriptions.d.ts +2 -2
  300. package/dist/tools/parameter-descriptions.d.ts.map +1 -1
  301. package/dist/{transform-postprocess-phase-bqhz6vdr.js → transform-postprocess-phase-spcy2qre.js} +35 -17
  302. package/dist/transformers-node-wasm.js +18415 -18415
  303. package/dist/v2/auto-search-worker.js +112 -0
  304. package/dist/v2/{context-zecmzk5s.js → context-sf98kstd.js} +8378 -8530
  305. package/dist/v2/{derive-budgets-kdgp4s3r.js → derive-budgets-3vc0y84t.js} +4 -3
  306. package/dist/v2/embedding-activity-g1dhes6g.js +10 -0
  307. package/dist/v2/embedding-backfill-vn8g1nh1.js +21 -0
  308. package/dist/v2/embedding-cache-mgyr73ef.js +16 -0
  309. package/dist/v2/embedding-worker.js +12 -9
  310. package/dist/v2/fold/host-media.d.ts +4 -0
  311. package/dist/v2/fold/host-media.d.ts.map +1 -1
  312. package/dist/v2/fold/memory-cache.d.ts +70 -0
  313. package/dist/v2/fold/memory-cache.d.ts.map +1 -0
  314. package/dist/v2/fold/native-codec.d.ts +10 -0
  315. package/dist/v2/fold/native-codec.d.ts.map +1 -0
  316. package/dist/v2/fold/native-replay.d.ts +58 -0
  317. package/dist/v2/fold/native-replay.d.ts.map +1 -0
  318. package/dist/v2/fold/policy.d.ts +24 -0
  319. package/dist/v2/fold/policy.d.ts.map +1 -0
  320. package/dist/v2/harness-e4avh192.js +10 -0
  321. package/dist/v2/hidden-completion.d.ts.map +1 -1
  322. package/dist/v2/hooks/context.d.ts +2 -2
  323. package/dist/v2/hooks/context.d.ts.map +1 -1
  324. package/dist/v2/hooks/dream-manual.d.ts +1 -1
  325. package/dist/v2/hooks/dream-manual.d.ts.map +1 -1
  326. package/dist/v2/hooks/dream-timer.d.ts.map +1 -1
  327. package/dist/v2/hooks/dream-trigger.d.ts +1 -2
  328. package/dist/v2/hooks/dream-trigger.d.ts.map +1 -1
  329. package/dist/v2/hooks/payload.d.ts.map +1 -1
  330. package/dist/v2/hooks/tools.d.ts.map +1 -1
  331. package/dist/v2/hooks/types.d.ts +6 -0
  332. package/dist/v2/hooks/types.d.ts.map +1 -1
  333. package/dist/v2/logger-mxd0ym09.js +19 -0
  334. package/dist/v2/message-index-bounded-dy3s2k1e.js +123 -0
  335. package/dist/{message-time-backfill-68gj6t3e.js → v2/message-time-backfill-gtx1pwk1.js} +7 -7
  336. package/dist/v2/migration-worker.js +24 -15
  337. package/dist/v2/{model-resolution-xhfmyyvy.js → model-resolution-nx97z3x7.js} +1 -1
  338. package/dist/v2/project-embedding-registry-1tgba5dv.js +86 -0
  339. package/dist/v2/raw-ordinal-warmup-worker.js +60 -0
  340. package/dist/v2/{read-session-chunk-8vjp6581.js → read-session-chunk-rh4khdkv.js} +14 -8
  341. package/dist/v2/read-session-raw-bsbmf0vj.js +57 -0
  342. package/dist/v2/recomp-orchestrator-az61rfcg.js +57 -0
  343. package/dist/{safe-notification-target-43r8jsxw.js → v2/safe-notification-target-73ax1p5v.js} +3 -3
  344. package/dist/v2/search-nzkwrc6n.js +45 -0
  345. package/dist/{send-session-notification-dyw42dtr.js → v2/send-session-notification-6km439kn.js} +9 -7
  346. package/dist/{index-5eqk6z3s.js → v2/server-1r6pmz4f.js} +301 -27
  347. package/dist/v2/server-2bvekkfy.js +11 -0
  348. package/dist/v2/server-2fbhp79z.js +3205 -0
  349. package/dist/v2/{server-ajzeteqw.js → server-2ra6pwf3.js} +1 -18
  350. package/dist/v2/server-4dhv7mqz.js +131 -0
  351. package/dist/v2/{server-xa4xe3rv.js → server-4k748ke6.js} +11 -1053
  352. package/dist/v2/{server-vs5gpnd4.js → server-52awr2mw.js} +81 -145
  353. package/dist/v2/{server-1qbnzc80.js → server-5m3dt5r1.js} +136 -148
  354. package/dist/v2/server-686jg6eb.js +3508 -0
  355. package/dist/v2/server-7jzrrxap.js +931 -0
  356. package/dist/v2/server-7wwc2nga.js +3023 -0
  357. package/dist/v2/server-8ajstryz.js +18 -0
  358. package/dist/v2/{server-sfpzqvdz.js → server-8cd2j99z.js} +2 -3
  359. package/dist/v2/server-8pyt7hev.js +3408 -0
  360. package/dist/v2/server-8tqanswc.js +984 -0
  361. package/dist/v2/{server-14vq4kpm.js → server-aan4q8mx.js} +3 -3
  362. package/dist/v2/server-d9vfe7xq.js +16 -0
  363. package/dist/v2/server-e0vdaae2.js +3591 -0
  364. package/dist/v2/server-ezhze64f.js +1048 -0
  365. package/dist/v2/server-fb3zxn06.js +13 -0
  366. package/dist/v2/server-fr0wbhdn.js +43 -0
  367. package/dist/v2/server-g5r0n3b6.js +1137 -0
  368. package/dist/v2/server-gjcr4w98.js +154 -0
  369. package/dist/v2/server-k228xhjg.js +171 -0
  370. package/dist/v2/{server-jc7y02q0.js → server-k8x2rbxc.js} +5119 -10948
  371. package/dist/{index-fg34g6a5.js → v2/server-kb9nn0a0.js} +309 -52
  372. package/dist/v2/{server-g0fjrkta.js → server-mfkzp7qj.js} +28 -28
  373. package/dist/v2/server-pavzsdc6.js +17 -0
  374. package/dist/v2/server-psqc7e9n.js +2106 -0
  375. package/dist/v2/server-qt1qqasc.js +22 -0
  376. package/dist/v2/server-qye6ykf7.js +120 -0
  377. package/dist/v2/{server-qdjnb2z1.js → server-r5p3b1wy.js} +11 -9
  378. package/dist/v2/server-sggvvzhb.js +759 -0
  379. package/dist/v2/{server-y8maxeft.js → server-v06jcv0w.js} +16 -13
  380. package/dist/v2/server-vqpf3167.js +1048 -0
  381. package/dist/v2/{server-c5gz8wph.js → server-x2g40a71.js} +2048 -2059
  382. package/dist/v2/{server-wvjvfhck.js → server-xdfwt6kh.js} +20 -16
  383. package/dist/v2/{server-mcfawjgc.js → server-xxm59eww.js} +25 -44
  384. package/dist/v2/server-yczc713m.js +564 -0
  385. package/dist/v2/{server-3n4q9xme.js → server-z2037m6z.js} +4 -4
  386. package/dist/v2/{server-e29d7p7c.js → server-zm570tr2.js} +166 -160
  387. package/dist/v2/{server-6r257mf5.js → server-zxhgvsf9.js} +3 -3
  388. package/dist/v2/server.js +16 -14
  389. package/dist/v2/sqlite-context-pragmas-mv9jqwjh.js +6 -0
  390. package/dist/v2/sqlite-mhjkerzq.js +46 -0
  391. package/dist/v2/storage-memory-07fx57k6.js +71 -0
  392. package/dist/v2/storage-tags-w4tv77sn.js +130 -0
  393. package/dist/v2/store-reader.d.ts +16 -0
  394. package/dist/v2/store-reader.d.ts.map +1 -1
  395. package/dist/v2/{task-config-tbndqyny.js → task-config-x0hq3qfd.js} +2 -2
  396. package/dist/v2/transformers-node-wasm.js +18415 -18415
  397. package/dist/v2/tui/index.d.ts.map +1 -1
  398. package/dist/v2/tui/types.d.ts +1 -10
  399. package/dist/v2/tui/types.d.ts.map +1 -1
  400. package/dist/v2/{wrapup-orchestrator-0snhvwcv.js → wrapup-orchestrator-mz7efs7w.js} +51 -27
  401. package/dist/wrapup-orchestrator-amzta1t4.js +44 -0
  402. package/package.json +4 -3
  403. package/src/agents/magic-context-prompt.ts +27 -2
  404. package/src/agents/smart-notes-enabled.test.ts +294 -0
  405. package/src/agents/smart-notes-on.golden.json +70 -0
  406. package/src/config/index.test.ts +67 -1
  407. package/src/config/index.ts +8 -0
  408. package/src/config/latch-permanence-guard.test.ts +4 -0
  409. package/src/config/live-run-config.test.ts +37 -1
  410. package/src/config/live-run-config.ts +28 -0
  411. package/src/config/migrate-config-location.ts +10 -3
  412. package/src/config/mural-model-deprecation.ts +24 -0
  413. package/src/config/project-security.hostile-matrix.test.ts +4 -44
  414. package/src/config/project-security.test.ts +9 -14
  415. package/src/config/project-security.ts +13 -55
  416. package/src/config/schema/magic-context.test.ts +6 -5
  417. package/src/config/schema/magic-context.ts +34 -16
  418. package/src/features/magic-context/dreamer/task-registry.ts +6 -0
  419. package/src/shared/auto-search-lifecycle.ts +27 -0
  420. package/src/shared/conflict-detector.test.ts +56 -0
  421. package/src/shared/conflict-detector.ts +16 -5
  422. package/src/shared/historian-tool-defaults.json +6 -6
  423. package/src/shared/historian-tool-expansions.ts +65 -8
  424. package/src/shared/historian-tool-preview-defaults.json +13 -0
  425. package/src/shared/historian-tool-template.ts +48 -14
  426. package/src/shared/host-stall-profiler-bun.ts +358 -0
  427. package/src/shared/host-stall-profiler-common.ts +159 -0
  428. package/src/shared/host-stall-profiler-node.test.ts +234 -0
  429. package/src/shared/host-stall-profiler-node.ts +274 -0
  430. package/src/shared/host-stall-profiler-report.ts +248 -0
  431. package/src/shared/host-stall-profiler.ts +57 -0
  432. package/src/shared/model-resolution.test.ts +54 -17
  433. package/src/shared/model-resolution.ts +6 -17
  434. package/src/shared/sqlite-640-review-r2.test.ts +136 -0
  435. package/src/shared/sqlite-640-review.test.ts +183 -0
  436. package/src/shared/sqlite-acquisition-routing.test.ts +18 -0
  437. package/src/shared/sqlite.test.ts +52 -0
  438. package/src/shared/sqlite.ts +423 -37
  439. package/src/shared/stable-json-linear.test.ts +109 -0
  440. package/src/shared/stable-json.ts +37 -7
  441. package/src/shared/status-view.test.ts +6 -1
  442. package/src/shared/status-view.ts +15 -1
  443. package/src/shared/tag-transcript.ts +6 -0
  444. package/src/shared/user-facing-codes.ts +2 -6
  445. package/src/shared/window-geometry.ts +10 -0
  446. package/src/shared/write-transaction-attribution.test.ts +2 -2
  447. package/src/v2/tui/host-contract.test.ts +41 -67
  448. package/src/v2/tui/index.ts +6 -214
  449. package/src/v2/tui/types.ts +5 -17
  450. package/dist/features/magic-context/checkout-claim-fake-subc.test-support.d.ts +0 -45
  451. package/dist/features/magic-context/checkout-claim-fake-subc.test-support.d.ts.map +0 -1
  452. package/dist/features/magic-context/checkout-claim.d.ts +0 -155
  453. package/dist/features/magic-context/checkout-claim.d.ts.map +0 -1
  454. package/dist/index-3h0ybwah.js +0 -6540
  455. package/dist/index-r5hmbx3t.js +0 -7773
  456. package/dist/recomp-orchestrator-y15j0rb9.js +0 -39
  457. package/dist/v2/recomp-orchestrator-8ejxvrzz.js +0 -39
  458. package/dist/v2/server-frbm99q5.js +0 -7698
  459. package/dist/v2/server-qp5hx1ad.js +0 -6366
  460. package/dist/wrapup-orchestrator-39amhv9s.js +0 -26
  461. /package/dist/{index-en1k8h8m.js → index-2pp04pmg.js} +0 -0
  462. /package/dist/v2/{index-en1k8h8m.js → index-2pp04pmg.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/tui/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI5E,OAAO,EAYH,KAAK,kBAAkB,EAC1B,MAAM,2BAA2B,CAAC;AAUnC,OAAO,KAAK,EAAiC,YAAY,EAAE,MAAM,SAAS,CAAC;AAY3E;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAyBzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACtB,MAAM,EAAE,IAAI,CACR,YAAY,EACV,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,CACzB,GACF,MAAM,CA6BR;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAoBhE;AAOD,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;AAE5E,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAgZ9F;AAED,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAStE;;;;;AAED,wBAAuD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/tui/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI5E,OAAO,EAOH,KAAK,kBAAkB,EAC1B,MAAM,2BAA2B,CAAC;AAUnC,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,SAAS,CAAC;AAY5D;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAyBzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACtB,MAAM,EAAE,IAAI,CACR,YAAY,EACV,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,CACzB,GACF,MAAM,CA6BR;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAoBhE;AAOD,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;AAE5E,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAqM9F;AAED,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAStE;;;;;AAED,wBAAuD"}
@@ -138,22 +138,13 @@ export interface V2TuiContext {
138
138
  };
139
139
  };
140
140
  }
141
- /**
142
- * A slot claim's `render` runs inside the host's component tree; `app` is the
143
- * always-mounted root slot, which is where `keymap.layer()` can be called from
144
- * when plugin `setup()` runs outside the keymap provider (see index.ts).
145
- */
141
+ /** The sidebar slot used by the OpenCode 2 TUI. */
146
142
  export type V2SlotClaim = {
147
143
  readonly append: "sidebar.content";
148
144
  readonly render: (input: {
149
145
  readonly sessionID: string;
150
146
  }) => unknown;
151
- } | {
152
- readonly append: "app";
153
- readonly render: (input: Readonly<Record<string, never>>) => unknown;
154
147
  };
155
- /** The layer object `context.keymap.layer()` accepts, derived from the context type. */
156
- export type V2KeymapLayer = ReturnType<Parameters<V2TuiContext["keymap"]["layer"]>[0]>;
157
148
  export interface V2SidebarState {
158
149
  snapshots: Record<string, SidebarSnapshot | undefined>;
159
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/v2/tui/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/v2/tui/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE;QACZ,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;QAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;QAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAA;SAAE,CAAC,CAAC,CAAC;KAClF,CAAC;IACF,QAAQ,CAAC,UAAU,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;CACtD;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE;QAAE,aAAa,IAAI,IAAI,CAAA;KAAE,CAAC;IAC7C,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IACjC,gGAAgG;IAChG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE;QACX,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;QAChF,QAAQ,CAAC,QAAQ,EAAE;YAAE,OAAO,IAAI,aAAa,CAAA;SAAE,CAAC;QAChD;;;;WAIG;QACH,QAAQ,CAAC,OAAO,CAAC,EAAE;YACf,GAAG,CACC,SAAS,EAAE,MAAM,GAClB;gBAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,GAAG,SAAS,CAAC;SAC1E,CAAC;KACL,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QACb,QAAQ,CAAC,KAAK,EAAE,CACZ,KAAK,EAAE,MAAM;YACT,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;gBAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACvB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;gBACvB,QAAQ,CAAC,KAAK,EAAE;oBAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;iBAAE,CAAC;gBACrE,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;aAC1D,CAAC,CAAC;SACN,KACA,IAAI,CAAC;KACb,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QACd,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,SAAS,MAAM,EAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;YAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;SAAE,KACnC,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;KACrE,CAAC;IACF,QAAQ,CAAC,EAAE,EAAE;QACT,QAAQ,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,UAAU,CAAA;SAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,MAAM,IAAI,CAAC;QAClD,QAAQ,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,OAAO,EAAE;gBACV,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;gBAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;aAC9B,GAAG,IAAI,CAAC;SACZ,CAAC;QACF,QAAQ,CAAC,MAAM,EAAE;YACb;;;;eAIG;YACH,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;YAC5D,4EAA4E;YAC5E,GAAG,CAAC,CAAC,OAAO,EAAE;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,IAAI,CAAC;YAC7E,KAAK,CAAC,OAAO,EAAE;gBAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;aAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACpF,OAAO,CAAC,OAAO,EAAE;gBACb,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBACzB,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;oBAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAC;aAC5E,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;SACpC,CAAC;KACL,CAAC;CACL;AAED,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;CACvE,CAAC;AAEF,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC,CAAC;CAC1D"}
@@ -1,7 +1,8 @@
1
+ import"./server-pavzsdc6.js";
1
2
  import {
2
- sessionLog
3
- } from "./server-1qbnzc80.js";
4
- import"./server-frbm99q5.js";
3
+ sessionLog2
4
+ } from "./server-5m3dt5r1.js";
5
+ import"./server-8pyt7hev.js";
5
6
  import {
6
7
  COMPARTMENT_LEASE_RENEWAL_MS,
7
8
  acquireCompartmentLease,
@@ -24,28 +25,47 @@ import {
24
25
  registerActiveCompartmentRun,
25
26
  setRecompStarting2,
26
27
  setRecompTerminal2
27
- } from "./server-jc7y02q0.js";
28
- import"./server-51dv1pr5.js";
29
- import"./server-xa4xe3rv.js";
30
- import"./server-fg34g6a5.js";
31
- import"./server-vs5gpnd4.js";
28
+ } from "./server-k8x2rbxc.js";
29
+ import"./server-1r6pmz4f.js";
30
+ import"./server-4k748ke6.js";
31
+ import"./server-kb9nn0a0.js";
32
+ import"./server-k228xhjg.js";
33
+ import"./server-ezhze64f.js";
34
+ import"./server-sggvvzhb.js";
35
+ import"./server-52awr2mw.js";
32
36
  import"./server-1zx87sdm.js";
33
- import"./server-qp5hx1ad.js";
34
- import"./server-g0fjrkta.js";
35
- import"./server-ajzeteqw.js";
36
- import"./server-wvjvfhck.js";
37
- import"./server-e29d7p7c.js";
37
+ import"./server-686jg6eb.js";
38
+ import"./server-mfkzp7qj.js";
39
+ import"./server-g5r0n3b6.js";
40
+ import"./server-2ra6pwf3.js";
41
+ import"./server-xdfwt6kh.js";
42
+ import {
43
+ prepareRawSessionOrdinals2
44
+ } from "./server-2fbhp79z.js";
45
+ import"./server-qye6ykf7.js";
46
+ import"./server-fr0wbhdn.js";
47
+ import"./server-e0vdaae2.js";
48
+ import"./server-yczc713m.js";
49
+ import"./server-zm570tr2.js";
50
+ import"./server-fb3zxn06.js";
51
+ import"./server-7wwc2nga.js";
52
+ import"./server-8tqanswc.js";
38
53
  import {
39
54
  pushNotification2
40
55
  } from "./server-x8a7jmkh.js";
56
+ import"./server-qt1qqasc.js";
57
+ import"./server-4dhv7mqz.js";
58
+ import"./server-vqpf3167.js";
59
+ import"./server-gjcr4w98.js";
60
+ import"./server-7jzrrxap.js";
61
+ import"./server-x2g40a71.js";
62
+ import"./server-v06jcv0w.js";
63
+ import"./server-z2037m6z.js";
64
+ import"./server-zxhgvsf9.js";
41
65
  import {
42
66
  sendStatusNotification2
43
- } from "./server-mcfawjgc.js";
44
- import"./server-c5gz8wph.js";
45
- import"./server-y8maxeft.js";
46
- import"./server-3n4q9xme.js";
47
- import"./server-6r257mf5.js";
48
- import"./server-14vq4kpm.js";
67
+ } from "./server-xxm59eww.js";
68
+ import"./server-aan4q8mx.js";
49
69
 
50
70
  // src/hooks/magic-context/wrapup-orchestrator.ts
51
71
  import * as crypto from "node:crypto";
@@ -137,7 +157,7 @@ async function acquireCompartmentLeaseForWrapup(ctx, sessionId, renewWrapupMarke
137
157
  const remainingMs = () => Math.max(0, waitStartedAt + maxWaitMs - Date.now());
138
158
  for (;; ) {
139
159
  if (remainingMs() <= 0) {
140
- sessionLog(sessionId, "wrapup: timed out waiting for the compartment-state lease");
160
+ sessionLog2(sessionId, "wrapup: timed out waiting for the compartment-state lease");
141
161
  return { ok: false, reason: "timeout" };
142
162
  }
143
163
  const active = getActiveCompartmentRun(sessionId);
@@ -148,7 +168,7 @@ async function acquireCompartmentLeaseForWrapup(ctx, sessionId, renewWrapupMarke
148
168
  emitWrapupProgress(ctx, sessionId, { note: "Waiting for the active historian run…" });
149
169
  const outcome = await waitForActiveRunWithin(active.promise, remainingMs());
150
170
  if (outcome === "timeout") {
151
- sessionLog(sessionId, "wrapup: timed out waiting for the active historian run");
171
+ sessionLog2(sessionId, "wrapup: timed out waiting for the active historian run");
152
172
  return { ok: false, reason: "timeout" };
153
173
  }
154
174
  continue;
@@ -171,10 +191,10 @@ async function runOneWrapupIteration(args) {
171
191
  const renewal = setInterval(() => {
172
192
  try {
173
193
  if (!renewCompartmentLease(ctx.db, sessionId, leaseHolderId)) {
174
- sessionLog(sessionId, "wrapup: compartment lease renewal failed");
194
+ sessionLog2(sessionId, "wrapup: compartment lease renewal failed");
175
195
  }
176
196
  } catch (err) {
177
- sessionLog(sessionId, `wrapup: compartment lease renewal threw; continuing (${err instanceof Error ? err.message : String(err)})`);
197
+ sessionLog2(sessionId, `wrapup: compartment lease renewal threw; continuing (${err instanceof Error ? err.message : String(err)})`);
178
198
  }
179
199
  }, COMPARTMENT_LEASE_RENEWAL_MS);
180
200
  const runCompartmentAgentForWrapup = ctx.runCompartmentAgentForWrapup ?? runCompartmentAgent;
@@ -220,13 +240,17 @@ async function runOneWrapupIteration(args) {
220
240
  return { ran: true };
221
241
  } finally {
222
242
  clearInterval(renewal);
223
- releaseCompartmentLeaseBestEffort(ctx.db, sessionId, leaseHolderId, sessionLog);
243
+ releaseCompartmentLeaseBestEffort(ctx.db, sessionId, leaseHolderId, sessionLog2);
224
244
  }
225
245
  }
226
246
  async function runManagedWrapup(ctx, sessionId, options) {
227
247
  const messagesToKeep = Math.max(1, Math.floor(options.messagesToKeep));
228
248
  setRecompStarting2(ctx.liveSessionState, sessionId, "Estimating wrapup…", "wrapup");
229
249
  try {
250
+ if (!await prepareRawSessionOrdinals2(sessionId)) {
251
+ setRecompTerminal2(ctx.liveSessionState, sessionId, "failed", "Session ordinals are warming; retry wrapup shortly.");
252
+ return "Wrapup deferred while session ordinals warm in the background. Retry shortly.";
253
+ }
230
254
  return await runStartedWrapup(ctx, sessionId, messagesToKeep);
231
255
  } catch (error) {
232
256
  const reason = error instanceof Error ? error.message : String(error);
@@ -279,7 +303,7 @@ ${message}`;
279
303
  if (ownershipLost)
280
304
  return;
281
305
  ownershipLost = true;
282
- sessionLog(sessionId, "wrapup: durable marker ownership lost; aborting loop");
306
+ sessionLog2(sessionId, "wrapup: durable marker ownership lost; aborting loop");
283
307
  };
284
308
  const renewWrapupMarker = (updates) => {
285
309
  const updated = updateWrapupInProgress(ctx.db, sessionId, wrapupHolderId, updates);
@@ -296,7 +320,7 @@ ${message}`;
296
320
  chunkIndex
297
321
  });
298
322
  } catch (err) {
299
- sessionLog(sessionId, `wrapup: marker renewal threw; continuing (${err instanceof Error ? err.message : String(err)})`);
323
+ sessionLog2(sessionId, `wrapup: marker renewal threw; continuing (${err instanceof Error ? err.message : String(err)})`);
300
324
  }
301
325
  }, 60000);
302
326
  markerRenewal.unref?.();
@@ -352,7 +376,7 @@ ${message}`;
352
376
  if (lastEnd + 1 >= plan.targetEligibleEndOrdinal)
353
377
  break;
354
378
  chunkIndex += 1;
355
- sessionLog(sessionId, `wrapup chunk ${chunkIndex}: ${describeBoundaryDiagnostics(plan.snapshot)}`);
379
+ sessionLog2(sessionId, `wrapup chunk ${chunkIndex}: ${describeBoundaryDiagnostics(plan.snapshot)}`);
356
380
  emitWrapupProgress(ctx, sessionId, {
357
381
  processedMessages: Math.max(0, lastEnd),
358
382
  totalMessages: Math.max(0, plan.targetEligibleEndOrdinal - 1),
@@ -0,0 +1,44 @@
1
+ import {
2
+ runManagedWrapup2
3
+ } from "./index-k1xb52kd.js";
4
+ import"./index-mmyh6d8f.js";
5
+ import"./index-692jzy0p.js";
6
+ import"./index-cb7emxgj.js";
7
+ import"./index-14cjxt20.js";
8
+ import"./index-5zygecde.js";
9
+ import"./index-7jzrrxap.js";
10
+ import"./index-c43kr12f.js";
11
+ import"./index-pg50n748.js";
12
+ import"./index-4dhv7mqz.js";
13
+ import"./index-sd3egckz.js";
14
+ import"./index-yq8n9qcb.js";
15
+ import"./index-qt1qqasc.js";
16
+ import"./index-pdecwzrd.js";
17
+ import"./index-jcbd3znx.js";
18
+ import"./index-bhvjj0ys.js";
19
+ import"./index-72nhv486.js";
20
+ import"./index-q7h7csab.js";
21
+ import"./index-fb3zxn06.js";
22
+ import"./index-7mx8v0pw.js";
23
+ import"./index-fr0wbhdn.js";
24
+ import"./index-knh4y330.js";
25
+ import"./index-fbv1dn35.js";
26
+ import"./index-bdckkfw6.js";
27
+ import"./index-k9nnwad5.js";
28
+ import"./index-ty64eqcn.js";
29
+ import"./index-dhwzyd54.js";
30
+ import"./index-1zx87sdm.js";
31
+ import"./index-mfkzp7qj.js";
32
+ import"./index-0qhce371.js";
33
+ import"./index-db7zwa3v.js";
34
+ import"./index-58e3y90n.js";
35
+ import"./index-1qb0z7wa.js";
36
+ import"./index-2y0s2hep.js";
37
+ import"./index-kb9nn0a0.js";
38
+ import"./index-8j7gqj40.js";
39
+ import"./index-0sahzkwr.js";
40
+ import"./index-pavzsdc6.js";
41
+ import"./index-x8a7jmkh.js";
42
+ export {
43
+ runManagedWrapup2 as runManagedWrapup
44
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/opencode-magic-context",
3
- "version": "0.46.1",
3
+ "version": "0.48.0",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Magic Context — cross-session memory and context management",
6
6
  "main": "dist/index.js",
@@ -37,8 +37,8 @@
37
37
  "README.md"
38
38
  ],
39
39
  "scripts": {
40
- "build": "bun ../../scripts/check-bun.mjs && tsc -p ../retina-local-fs/tsconfig.build.json && bun run build:tui && bun ../../scripts/clean-dist-chunks.mjs dist index.js transformers-web.js transformers-node-wasm.js && bun build src/features/magic-context/memory/transformers-web-entry.ts --outfile dist/transformers-web.js --target browser --format esm --external onnxruntime-web && bun scripts/build-transformers-node-wasm.ts dist && bun build src/index.ts src/features/magic-context/memory/embedding-worker.ts src/features/magic-context/migration-worker.ts --outdir dist --entry-naming '[name].[ext]' --target node --format esm --splitting --external @opencode-ai/plugin --external onnxruntime-node --external onnxruntime-web --external sharp --external bun:sqlite --external node:sqlite && bun run build:v2 && tsc --emitDeclarationOnly",
41
- "build:v2": "bun ../../scripts/clean-dist-chunks.mjs dist/v2 server.js embedding-worker.js migration-worker.js && bun build src/features/magic-context/memory/transformers-web-entry.ts --outfile dist/v2/transformers-web.js --target browser --format esm --external onnxruntime-web && bun scripts/build-transformers-node-wasm.ts dist/v2 && bun build src/v2/server.ts src/features/magic-context/memory/embedding-worker.ts src/features/magic-context/migration-worker.ts --outdir dist/v2 --entry-naming '[name].[ext]' --target node --format esm --splitting --external @opencode/plugin --external onnxruntime-node --external onnxruntime-web --external sharp --external bun:sqlite --external node:sqlite",
40
+ "build": "bun ../../scripts/check-bun.mjs && tsc -p ../retina-local-fs/tsconfig.build.json && bun run build:tui && bun ../../scripts/clean-dist-chunks.mjs dist index.js transformers-web.js transformers-node-wasm.js && bun build src/features/magic-context/memory/transformers-web-entry.ts --outfile dist/transformers-web.js --target browser --format esm --external onnxruntime-web && bun scripts/build-transformers-node-wasm.ts dist && bun build src/index.ts src/features/magic-context/memory/embedding-worker.ts src/features/magic-context/migration-worker.ts src/hooks/magic-context/auto-search-worker.ts src/hooks/magic-context/raw-ordinal-warmup-worker.ts --outdir dist --entry-naming '[name].[ext]' --target node --format esm --splitting --external @opencode-ai/plugin --external onnxruntime-node --external onnxruntime-web --external sharp --external bun:sqlite --external node:sqlite && bun run build:v2 && tsc --emitDeclarationOnly",
41
+ "build:v2": "bun ../../scripts/clean-dist-chunks.mjs dist/v2 server.js embedding-worker.js migration-worker.js && bun build src/features/magic-context/memory/transformers-web-entry.ts --outfile dist/v2/transformers-web.js --target browser --format esm --external onnxruntime-web && bun scripts/build-transformers-node-wasm.ts dist/v2 && bun build src/v2/server.ts src/features/magic-context/memory/embedding-worker.ts src/features/magic-context/migration-worker.ts src/hooks/magic-context/auto-search-worker.ts src/hooks/magic-context/raw-ordinal-warmup-worker.ts --outdir dist/v2 --entry-naming '[name].[ext]' --target node --format esm --splitting --external @opencode/plugin --external onnxruntime-node --external onnxruntime-web --external sharp --external bun:sqlite --external node:sqlite",
42
42
  "build:tui": "bun scripts/build-tui.ts",
43
43
  "check:tui-compiled": "git diff --exit-code -- src/tui-compiled && test -z \"$(git status --porcelain -- src/tui-compiled)\"",
44
44
  "check:transformers-node-wasm": "bun scripts/verify-transformers-node-wasm.ts",
@@ -81,6 +81,7 @@
81
81
  "@opencode/client": "2.0.22",
82
82
  "effect": "4.0.0-rc.112",
83
83
  "@ai-sdk/anthropic": "3.0.82",
84
+ "ai": "6.0.168",
84
85
  "@huggingface/transformers": "^4.3.0",
85
86
  "@ai-sdk/openai-compatible": "2.0.41",
86
87
  "@biomejs/biome": "^2.5.1",
@@ -103,6 +103,26 @@ const TOOL_HISTORY_GUIDANCE_LIGHT = `Older work is filed off the desk into \`<se
103
103
 
104
104
  const SMART_NOTE_GUIDANCE_LIGHT = `; a \`surface_condition\` leaves the note with an outside checker that returns it when the condition holds`;
105
105
 
106
+ /** Remove smart-note clauses and sections from user guidance when the capability is unavailable. */
107
+ function withoutSmartNoteGuidance(text: string): string {
108
+ let smartSectionLevel = 0;
109
+ return text
110
+ .replace(` ${SMART_NOTE_GUIDANCE}`, "")
111
+ .replace(SMART_NOTE_GUIDANCE_LIGHT, "")
112
+ .split("\n")
113
+ .filter((line) => {
114
+ const mentionsSmartNotes = /smart[-_ ]notes?|surface_condition|outside checker/i.test(
115
+ line,
116
+ );
117
+ const heading = /^\s*(#{1,6})\s/.exec(line);
118
+ if (heading && (!smartSectionLevel || heading[1].length <= smartSectionLevel)) {
119
+ smartSectionLevel = mentionsSmartNotes ? heading[1].length : 0;
120
+ }
121
+ return !smartSectionLevel && !mentionsSmartNotes;
122
+ })
123
+ .join("\n");
124
+ }
125
+
106
126
  const TEMPORAL_AWARENESS_GUIDANCE_LIGHT = `, \`<!-- +Xm -->\` (time since your last reply)`;
107
127
 
108
128
  const BASE_INTRO_LIGHT = (
@@ -169,7 +189,9 @@ export function buildMagicContextSection(
169
189
  memoryEnabled = true,
170
190
  preset: PromptSurfacePreset = "full",
171
191
  primaryOverride?: string,
192
+ smartNotesEnabled = true,
172
193
  ): string {
194
+ dreamerEnabled = dreamerEnabled && smartNotesEnabled;
173
195
  // Subagent sessions: minimal §N§ + ctx_reduce mechanics only. Bypasses the
174
196
  // long-term-partner frame, memory/search/note guidance, and the reduction
175
197
  // taxonomy — none of which apply to a bounded single-task child. Only
@@ -191,10 +213,13 @@ export function buildMagicContextSection(
191
213
  const languageGuidance = languageDirective ? `\n\n${languageDirective}` : "";
192
214
 
193
215
  if (primaryOverride !== undefined) {
194
- // A user override owns the complete primary section. Runtime clauses stay
216
+ // A user override owns primary prose, except for unavailable smart-note clauses. Runtime clauses stay
195
217
  // composer-owned so an override cannot suppress temporal guidance, the
196
218
  // warning against overly compressed prose, or the language directive.
197
- return `${primaryOverride}${temporalOverrideGuidance}${cavemanWarning}${languageGuidance}`;
219
+ const primary = smartNotesEnabled
220
+ ? primaryOverride
221
+ : withoutSmartNoteGuidance(primaryOverride);
222
+ return `${primary}${temporalOverrideGuidance}${cavemanWarning}${languageGuidance}`;
198
223
  }
199
224
 
200
225
  if (!ctxReduceCallable) {
@@ -0,0 +1,294 @@
1
+ import { afterEach, expect, test } from "bun:test";
2
+ import { createHash } from "node:crypto";
3
+ import { rmSync } from "node:fs";
4
+ import { tmpdir } from "node:os";
5
+ import { join } from "node:path";
6
+ import { tool } from "@opencode-ai/plugin";
7
+ import { parsePluginConfig } from "../config";
8
+ import { sampleLiveConfig } from "../config/live-run-config";
9
+ import { stripUnsafeProjectConfigFields } from "../config/project-security";
10
+ import { evaluateSmartNotes } from "../features/magic-context/dreamer/evaluate-smart-notes";
11
+ import { writeTaskScheduleState } from "../features/magic-context/dreamer/storage-task-schedule";
12
+ import { buildDreamTaskRuntimeConfigs } from "../features/magic-context/dreamer/task-config";
13
+ import { resolveProjectIdentityForSession } from "../features/magic-context/memory/project-identity";
14
+ import { runDueCompiledSmartNoteChecks } from "../features/magic-context/smart-notes/runner";
15
+ import {
16
+ addNote,
17
+ closeDatabase,
18
+ getNotes,
19
+ markNoteReady,
20
+ openDatabase,
21
+ } from "../features/magic-context/storage";
22
+ import { onNoteTrigger, peekNoteNudgeText } from "../hooks/magic-context/note-nudger";
23
+ import { buildSidebarSnapshot } from "../plugin/rpc-handlers";
24
+ import { createToolRegistry } from "../plugin/tool-registry";
25
+ import { createTestTempDirFromPath } from "../shared/test-temp-dir";
26
+ import { createCtxNoteTools } from "../tools/ctx-note/tools";
27
+ import { CTX_NOTE_LIGHT_DESCRIPTION } from "../tools/light-descriptions";
28
+ import { applyJsonSchemaParameterDescriptions } from "../tools/parameter-descriptions";
29
+ import { registerTools } from "../v2/hooks/tools";
30
+ import { buildMagicContextSection } from "./magic-context-prompt";
31
+ import golden from "./smart-notes-on.golden.json";
32
+
33
+ // Freeze the OpenCode/Pi note definitions and primary guidance from master before this switch existed:
34
+ // default-on must preserve sessions' cached prompts. Source copies came from git show at
35
+ // 8d8f44bdaaba450ae136e20dd2476b3b41294416; SHA-256 hashes JSON.stringify of rendered strings
36
+ // and { description, schema } tool surfaces, not expectations calculated by the gated implementation.
37
+
38
+ const digest = (value: unknown) => createHash("sha256").update(JSON.stringify(value)).digest("hex");
39
+ const expected = golden as Record<string, string>;
40
+ const oldXdg = process.env.XDG_DATA_HOME;
41
+ let dir: string | undefined;
42
+ afterEach(() => {
43
+ closeDatabase();
44
+ if (oldXdg === undefined) delete process.env.XDG_DATA_HOME;
45
+ else process.env.XDG_DATA_HOME = oldXdg;
46
+ if (dir) rmSync(dir, { recursive: true, force: true });
47
+ });
48
+ function fixture() {
49
+ dir = createTestTempDirFromPath(join(tmpdir(), "smart-notes-enabled-"));
50
+ process.env.XDG_DATA_HOME = dir;
51
+ return openDatabase();
52
+ }
53
+
54
+ test("enabled guidance is byte-identical to master on every built-in primary variant", () => {
55
+ for (const preset of ["full", "light"] as const)
56
+ for (const reduce of [false, true])
57
+ for (const memory of [false, true])
58
+ for (const dreamer of [false, true])
59
+ for (const temporal of [false, true]) {
60
+ for (const enabled of [undefined, true]) {
61
+ const text = buildMagicContextSection(
62
+ null,
63
+ 20,
64
+ reduce,
65
+ dreamer,
66
+ temporal,
67
+ false,
68
+ false,
69
+ undefined,
70
+ memory,
71
+ preset,
72
+ undefined,
73
+ enabled,
74
+ );
75
+ expect(digest(text)).toBe(
76
+ expected[
77
+ `guidance/${preset}/${reduce}/${memory}/${dreamer}/${temporal}`
78
+ ],
79
+ );
80
+ }
81
+ }
82
+ });
83
+
84
+ test("disabled guidance removes every smart-note clause on OpenCode 1 and 2", () => {
85
+ const override =
86
+ "Custom guidance\n### Smart notes\n#### Verification\nUse an external condition to park work.\n### Ordinary notes\nKeep intentions in ctx_note.";
87
+ const custom = buildMagicContextSection(
88
+ null,
89
+ 20,
90
+ true,
91
+ true,
92
+ false,
93
+ false,
94
+ false,
95
+ undefined,
96
+ true,
97
+ "full",
98
+ override,
99
+ false,
100
+ );
101
+ expect(custom).not.toContain("external condition");
102
+ expect(custom).toContain("Keep intentions in ctx_note");
103
+ for (const preset of ["full", "light"] as const)
104
+ for (const reduce of [false, true])
105
+ for (const memory of [false, true]) {
106
+ const text = buildMagicContextSection(
107
+ null,
108
+ 20,
109
+ reduce,
110
+ true,
111
+ true,
112
+ false,
113
+ false,
114
+ undefined,
115
+ memory,
116
+ preset,
117
+ undefined,
118
+ false,
119
+ );
120
+ expect(text).not.toMatch(/surface_condition|smart.note|outside checker/i);
121
+ expect(text).toContain("ctx_note");
122
+ }
123
+ });
124
+
125
+ test("startup capability is user-only, default on, and excluded from live reload", () => {
126
+ const boot = parsePluginConfig({});
127
+ expect(boot.smart_notes.enabled).toBe(true);
128
+ const off = parsePluginConfig({ smart_notes: { enabled: false } });
129
+ expect(off.smart_notes.enabled).toBe(false);
130
+ expect(sampleLiveConfig(boot, off).smart_notes.enabled).toBe(true);
131
+ const project = { smart_notes: { enabled: false, retina_handoff: true } };
132
+ const warnings = stripUnsafeProjectConfigFields(project);
133
+ expect(project.smart_notes).toEqual({ retina_handoff: true } as never);
134
+ expect(warnings.join(" ")).toContain("smart_notes.enabled");
135
+ });
136
+
137
+ test("disabled dreamer task and compiled sweep leave pending notes unchecked", async () => {
138
+ const db = fixture();
139
+ const project = "git:smart-notes-enabled";
140
+ addNote(db, "smart", {
141
+ projectPath: project,
142
+ sessionId: "ses-off",
143
+ content: "parked",
144
+ surfaceCondition: "repository condition",
145
+ });
146
+ const config = parsePluginConfig({ dreamer: {}, smart_notes: { enabled: false } });
147
+ expect(
148
+ buildDreamTaskRuntimeConfigs(config.dreamer, "opencode", undefined, false).map(
149
+ (t) => t.task,
150
+ ),
151
+ ).not.toContain("evaluate-smart-notes");
152
+ const result = await evaluateSmartNotes({
153
+ db,
154
+ projectIdentity: project,
155
+ smartNotesEnabled: false,
156
+ } as never);
157
+ expect(result).toEqual({ ran: false, pending: 1, surfaced: 0 });
158
+ expect(
159
+ await runDueCompiledSmartNoteChecks({
160
+ db,
161
+ projectIdentity: project,
162
+ projectRoot: dir!,
163
+ smartNotesEnabled: false,
164
+ }),
165
+ ).toEqual({ ran: 0, surfaced: 0, failed: 0, networkFailed: 0 });
166
+ expect(getNotes(db, { projectPath: project })[0]?.lastCheckedAt).toBeNull();
167
+ });
168
+
169
+ test("OpenCode 1 and 2 disabled tool surfaces refuse cached conditions and retain ready/read/dismiss", async () => {
170
+ const db = fixture();
171
+ const config = parsePluginConfig({
172
+ smart_notes: { enabled: false },
173
+ dreamer: {},
174
+ memory: { enabled: false },
175
+ });
176
+ const registry = createToolRegistry({
177
+ ctx: { directory: dir! } as never,
178
+ pluginConfig: config,
179
+ });
180
+ const registered: Array<{
181
+ name: string;
182
+ description: string;
183
+ input: unknown;
184
+ execute: (input: unknown, call: unknown) => Promise<{ content: string }>;
185
+ }> = [];
186
+ await registerTools(
187
+ {
188
+ location: { directory: dir },
189
+ tool: {
190
+ transform: async (callback: (editor: unknown) => void) =>
191
+ callback({ add: (definition: never) => registered.push(definition) }),
192
+ },
193
+ } as never,
194
+ db,
195
+ config,
196
+ );
197
+ const v2 = registered.find((t) => t.name === "ctx_note")!;
198
+ expect(v2).toBeDefined();
199
+ expect(
200
+ JSON.stringify({
201
+ description: registry.ctx_note.description,
202
+ schema: tool.schema.toJSONSchema(tool.schema.object(registry.ctx_note.args)),
203
+ }),
204
+ ).not.toMatch(/surface_condition|smart.note|outside checker/i);
205
+ expect(JSON.stringify({ description: v2.description, schema: v2.input })).not.toMatch(
206
+ /surface_condition|smart.note|outside checker/i,
207
+ );
208
+ const call = { sessionID: "ses-off", messageID: "msg-off", agent: "build", progress: () => {} };
209
+ expect(
210
+ await registry.ctx_note.execute(
211
+ { content: "old", surface_condition: "cached" } as never,
212
+ { ...call, directory: dir } as never,
213
+ ),
214
+ ).toContain("Smart notes are disabled");
215
+ expect(
216
+ (await v2.execute({ content: "old", surface_condition: "cached" }, call)).content,
217
+ ).toContain("Smart notes are disabled");
218
+ expect(getNotes(db, {})).toHaveLength(0);
219
+ const local = createCtxNoteTools({
220
+ db,
221
+ smartNotesEnabled: false,
222
+ resolveProjectPath: () => "git:fixture",
223
+ }).ctx_note;
224
+ const ready = addNote(db, "smart", {
225
+ projectPath: "git:fixture",
226
+ content: "already fired",
227
+ surfaceCondition: "done",
228
+ });
229
+ const pending = addNote(db, "smart", {
230
+ projectPath: "git:fixture",
231
+ content: "still parked",
232
+ surfaceCondition: "later",
233
+ });
234
+ markNoteReady(db, ready.id, "already true");
235
+ onNoteTrigger(db, "ses-off", "historian_complete");
236
+ expect(peekNoteNudgeText(db, "ses-off", "u-1", "git:fixture")).toBeNull();
237
+ expect(peekNoteNudgeText(db, "ses-off", "u-2", "git:fixture")).toContain("already fired");
238
+ const ctx = { sessionID: "ses-off", directory: dir } as never;
239
+ expect(await local.execute({ action: "read" }, ctx)).toContain("already fired");
240
+ expect(await local.execute({ action: "read", note_ids: [pending.id] }, ctx)).toContain(
241
+ "still parked",
242
+ );
243
+ expect(
244
+ await local.execute({ action: "dismiss", note_ids: [ready.id, pending.id] }, ctx),
245
+ ).toContain("Dismissed 2 of 2");
246
+ });
247
+
248
+ test("enabled ctx_note schema and description match master golden on both OpenCode versions", () => {
249
+ for (const preset of ["full", "light"] as const)
250
+ for (const enabled of [undefined, true]) {
251
+ const definition = createCtxNoteTools({
252
+ db: null as never,
253
+ smartNotesEnabled: enabled,
254
+ }).ctx_note;
255
+ const schema = tool.schema.toJSONSchema(tool.schema.object(definition.args));
256
+ applyJsonSchemaParameterDescriptions("ctx_note", schema, preset);
257
+ expect(
258
+ digest({
259
+ description:
260
+ preset === "light" ? CTX_NOTE_LIGHT_DESCRIPTION : definition.description,
261
+ schema,
262
+ }),
263
+ ).toBe(expected[`opencode/${preset}`]);
264
+ }
265
+ });
266
+
267
+ test("disabled status omits parked task backlog and historical failure without deleting them", () => {
268
+ const db = fixture();
269
+ const projectPath = resolveProjectIdentityForSession(dir!)!;
270
+ writeTaskScheduleState(db, {
271
+ projectPath,
272
+ task: "evaluate-smart-notes",
273
+ schedule: "0 3 * * *",
274
+ lastRunAt: null,
275
+ nextDueAt: 1,
276
+ lastStatus: "failed",
277
+ lastError: "old evaluation failure",
278
+ retryCount: 2,
279
+ });
280
+ const on = buildSidebarSnapshot(db, "ses-status", dir!, undefined, undefined, {
281
+ smart_notes: { enabled: true },
282
+ });
283
+ expect(on.dreamerFailures?.map((state) => state.task)).toContain("evaluate-smart-notes");
284
+ const off = buildSidebarSnapshot(db, "ses-status", dir!, undefined, undefined, {
285
+ smart_notes: { enabled: false },
286
+ });
287
+ expect(off.dreamerBacklog).not.toHaveProperty("evaluate-smart-notes");
288
+ expect(off.dreamerFailures?.map((state) => state.task)).not.toContain("evaluate-smart-notes");
289
+ expect(
290
+ buildSidebarSnapshot(db, "ses-status", dir!, undefined, undefined, {
291
+ smart_notes: { enabled: true },
292
+ }).dreamerFailures?.map((state) => state.task),
293
+ ).toContain("evaluate-smart-notes");
294
+ });