@cortexkit/opencode-magic-context 0.42.6 → 0.43.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 (479) hide show
  1. package/README.md +4 -5
  2. package/dist/agents/dreamer.d.ts +7 -9
  3. package/dist/agents/dreamer.d.ts.map +1 -1
  4. package/dist/agents/hidden-agent-registrations.d.ts.map +1 -1
  5. package/dist/agents/magic-context-prompt.d.ts.map +1 -1
  6. package/dist/config/index.d.ts +1 -1
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/live-run-config.d.ts +12 -0
  9. package/dist/config/live-run-config.d.ts.map +1 -0
  10. package/dist/config/live-snapshot.d.ts +32 -0
  11. package/dist/config/live-snapshot.d.ts.map +1 -0
  12. package/dist/config/schema/magic-context.d.ts +12 -2
  13. package/dist/config/schema/magic-context.d.ts.map +1 -1
  14. package/dist/{conflict-warning-hook-aktepwpz.js → conflict-warning-hook-t2vb0wnx.js} +3 -3
  15. package/dist/{derive-budgets-v1fkhjjr.js → derive-budgets-0sg5vp61.js} +5 -2
  16. package/dist/features/builtin-commands/commands.d.ts +0 -4
  17. package/dist/features/builtin-commands/commands.d.ts.map +1 -1
  18. package/dist/features/magic-context/compaction-marker.d.ts +6 -0
  19. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  20. package/dist/features/magic-context/compartment-chunk-embedding.d.ts +4 -1
  21. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  22. package/dist/features/magic-context/compartment-lease.d.ts +8 -0
  23. package/dist/features/magic-context/compartment-lease.d.ts.map +1 -1
  24. package/dist/features/magic-context/compartment-storage.d.ts +21 -0
  25. package/dist/features/magic-context/compartment-storage.d.ts.map +1 -1
  26. package/dist/features/magic-context/context-authority.d.ts +9 -2
  27. package/dist/features/magic-context/context-authority.d.ts.map +1 -1
  28. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  29. package/dist/features/magic-context/dreamer/docs-proposals.d.ts +23 -0
  30. package/dist/features/magic-context/dreamer/docs-proposals.d.ts.map +1 -0
  31. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts +5 -1
  32. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -1
  33. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts +48 -0
  34. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts.map +1 -0
  35. package/dist/features/magic-context/dreamer/manual-summary.d.ts +7 -0
  36. package/dist/features/magic-context/dreamer/manual-summary.d.ts.map +1 -0
  37. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  38. package/dist/features/magic-context/dreamer/promote-primers.d.ts +8 -1
  39. package/dist/features/magic-context/dreamer/promote-primers.d.ts.map +1 -1
  40. package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -1
  41. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts +5 -2
  42. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts.map +1 -1
  43. package/dist/features/magic-context/dreamer/retrospective-raw-provider.d.ts +22 -13
  44. package/dist/features/magic-context/dreamer/retrospective-raw-provider.d.ts.map +1 -1
  45. package/dist/features/magic-context/dreamer/storage-task-schedule.d.ts +9 -0
  46. package/dist/features/magic-context/dreamer/storage-task-schedule.d.ts.map +1 -1
  47. package/dist/features/magic-context/dreamer/task-config.d.ts.map +1 -1
  48. package/dist/features/magic-context/dreamer/task-executor.d.ts +3 -0
  49. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  50. package/dist/features/magic-context/dreamer/task-prompts.d.ts +7 -4
  51. package/dist/features/magic-context/dreamer/task-prompts.d.ts.map +1 -1
  52. package/dist/features/magic-context/dreamer/task-registry.d.ts +53 -2
  53. package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
  54. package/dist/features/magic-context/dreamer/task-scheduler.d.ts +3 -0
  55. package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -1
  56. package/dist/features/magic-context/dreamer/tick-failure.d.ts +38 -0
  57. package/dist/features/magic-context/dreamer/tick-failure.d.ts.map +1 -0
  58. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  59. package/dist/features/magic-context/git-commits/search-git-commits.d.ts +2 -0
  60. package/dist/features/magic-context/git-commits/search-git-commits.d.ts.map +1 -1
  61. package/dist/features/magic-context/memory/embedding-identity.d.ts +1 -0
  62. package/dist/features/magic-context/memory/embedding-identity.d.ts.map +1 -1
  63. package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
  64. package/dist/features/magic-context/memory/memory-diagnostics.d.ts +6 -0
  65. package/dist/features/magic-context/memory/memory-diagnostics.d.ts.map +1 -0
  66. package/dist/features/magic-context/memory/memory-selection.d.ts +12 -0
  67. package/dist/features/magic-context/memory/memory-selection.d.ts.map +1 -0
  68. package/dist/features/magic-context/memory/memory-visibility.d.ts +46 -0
  69. package/dist/features/magic-context/memory/memory-visibility.d.ts.map +1 -0
  70. package/dist/features/magic-context/memory/mirror-reembed.d.ts +22 -0
  71. package/dist/features/magic-context/memory/mirror-reembed.d.ts.map +1 -0
  72. package/dist/features/magic-context/memory/project-identity.d.ts +9 -0
  73. package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
  74. package/dist/features/magic-context/memory/storage-memory-fts.d.ts +6 -2
  75. package/dist/features/magic-context/memory/storage-memory-fts.d.ts.map +1 -1
  76. package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -1
  77. package/dist/features/magic-context/memory/transformers-remote-host.d.ts +6 -0
  78. package/dist/features/magic-context/memory/transformers-remote-host.d.ts.map +1 -0
  79. package/dist/features/magic-context/memory/transformers-web-entry.d.ts.map +1 -1
  80. package/dist/features/magic-context/message-fts-rowid-map.d.ts +3 -1
  81. package/dist/features/magic-context/message-fts-rowid-map.d.ts.map +1 -1
  82. package/dist/features/magic-context/message-index-async.d.ts +8 -3
  83. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  84. package/dist/features/magic-context/message-index.d.ts +7 -1
  85. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  86. package/dist/features/magic-context/message-time-backfill.d.ts +19 -0
  87. package/dist/features/magic-context/message-time-backfill.d.ts.map +1 -0
  88. package/dist/features/magic-context/migrations.d.ts +10 -6
  89. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  90. package/dist/features/magic-context/mural/compress-cues.d.ts.map +1 -1
  91. package/dist/features/magic-context/mural/storage-mural.d.ts +5 -0
  92. package/dist/features/magic-context/mural/storage-mural.d.ts.map +1 -1
  93. package/dist/features/magic-context/opencode2-relabel.d.ts +132 -0
  94. package/dist/features/magic-context/opencode2-relabel.d.ts.map +1 -0
  95. package/dist/features/magic-context/overflow-detection.d.ts +3 -0
  96. package/dist/features/magic-context/overflow-detection.d.ts.map +1 -1
  97. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  98. package/dist/features/magic-context/protection-window.d.ts +1 -1
  99. package/dist/features/magic-context/protection-window.d.ts.map +1 -1
  100. package/dist/features/magic-context/search.d.ts +6 -0
  101. package/dist/features/magic-context/search.d.ts.map +1 -1
  102. package/dist/features/magic-context/session-decision-calibration.d.ts +31 -0
  103. package/dist/features/magic-context/session-decision-calibration.d.ts.map +1 -0
  104. package/dist/features/magic-context/shadow-backfill-state.d.ts +1 -1
  105. package/dist/features/magic-context/shadow-backfill-state.d.ts.map +1 -1
  106. package/dist/features/magic-context/smart-notes/compiler.d.ts +5 -1
  107. package/dist/features/magic-context/smart-notes/compiler.d.ts.map +1 -1
  108. package/dist/features/magic-context/storage-clone.d.ts.map +1 -1
  109. package/dist/features/magic-context/storage-db.d.ts +1 -1
  110. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  111. package/dist/features/magic-context/storage-historian-runs.d.ts +4 -2
  112. package/dist/features/magic-context/storage-historian-runs.d.ts.map +1 -1
  113. package/dist/features/magic-context/storage-meta-persisted.d.ts +16 -2
  114. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  115. package/dist/features/magic-context/storage-meta-shared.d.ts +1 -1
  116. package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
  117. package/dist/features/magic-context/storage-meta.d.ts +1 -1
  118. package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
  119. package/dist/features/magic-context/storage-notes.d.ts +1 -0
  120. package/dist/features/magic-context/storage-notes.d.ts.map +1 -1
  121. package/dist/features/magic-context/storage-replay-document.d.ts +2 -0
  122. package/dist/features/magic-context/storage-replay-document.d.ts.map +1 -1
  123. package/dist/features/magic-context/storage-subagent-invocations.d.ts +1 -1
  124. package/dist/features/magic-context/storage-subagent-invocations.d.ts.map +1 -1
  125. package/dist/features/magic-context/storage-tags.d.ts +42 -4
  126. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  127. package/dist/features/magic-context/storage.d.ts +2 -2
  128. package/dist/features/magic-context/storage.d.ts.map +1 -1
  129. package/dist/features/magic-context/store-generation-rebase.d.ts +95 -0
  130. package/dist/features/magic-context/store-generation-rebase.d.ts.map +1 -0
  131. package/dist/features/magic-context/subagent-token-capture.d.ts +1 -0
  132. package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -1
  133. package/dist/features/magic-context/tagger.d.ts +2 -0
  134. package/dist/features/magic-context/tagger.d.ts.map +1 -1
  135. package/dist/features/magic-context/tool-definition-tokens.d.ts +1 -0
  136. package/dist/features/magic-context/tool-definition-tokens.d.ts.map +1 -1
  137. package/dist/features/magic-context/tool-owner-backfill.d.ts.map +1 -1
  138. package/dist/features/magic-context/user-memory/review-user-memories.d.ts +5 -1
  139. package/dist/features/magic-context/user-memory/review-user-memories.d.ts.map +1 -1
  140. package/dist/hooks/magic-context/apply-operations.d.ts +10 -1
  141. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  142. package/dist/hooks/magic-context/cache-busting-signals.d.ts +19 -3
  143. package/dist/hooks/magic-context/cache-busting-signals.d.ts.map +1 -1
  144. package/dist/hooks/magic-context/command-handler.d.ts +5 -4
  145. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  146. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  147. package/dist/hooks/magic-context/compaction-off-transition.d.ts +1 -0
  148. package/dist/hooks/magic-context/compaction-off-transition.d.ts.map +1 -1
  149. package/dist/hooks/magic-context/compartment-prompt.d.ts +1 -1
  150. package/dist/hooks/magic-context/compartment-prompt.d.ts.map +1 -1
  151. package/dist/hooks/magic-context/compartment-render-epoch.d.ts +3 -1
  152. package/dist/hooks/magic-context/compartment-render-epoch.d.ts.map +1 -1
  153. package/dist/hooks/magic-context/compartment-runner-drop-queue.d.ts +1 -1
  154. package/dist/hooks/magic-context/compartment-runner-drop-queue.d.ts.map +1 -1
  155. package/dist/hooks/magic-context/compartment-runner-historian.d.ts +1 -0
  156. package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
  157. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +8 -1
  158. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  159. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  160. package/dist/hooks/magic-context/compartment-runner-types.d.ts +19 -11
  161. package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
  162. package/dist/hooks/magic-context/compartment-runner-validation.d.ts +4 -1
  163. package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
  164. package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
  165. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  166. package/dist/hooks/magic-context/decay-render.d.ts +1 -0
  167. package/dist/hooks/magic-context/decay-render.d.ts.map +1 -1
  168. package/dist/hooks/magic-context/decision-calibration.d.ts +24 -0
  169. package/dist/hooks/magic-context/decision-calibration.d.ts.map +1 -0
  170. package/dist/hooks/magic-context/derive-budgets.d.ts +2 -0
  171. package/dist/hooks/magic-context/derive-budgets.d.ts.map +1 -1
  172. package/dist/hooks/magic-context/dropped-input-guard.d.ts +50 -4
  173. package/dist/hooks/magic-context/dropped-input-guard.d.ts.map +1 -1
  174. package/dist/hooks/magic-context/embed-history-runner.d.ts +30 -0
  175. package/dist/hooks/magic-context/embed-history-runner.d.ts.map +1 -0
  176. package/dist/hooks/magic-context/emergency-drop.d.ts +13 -8
  177. package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -1
  178. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  179. package/dist/hooks/magic-context/event-payloads.d.ts +2 -1
  180. package/dist/hooks/magic-context/event-payloads.d.ts.map +1 -1
  181. package/dist/hooks/magic-context/execute-status.d.ts +2 -1
  182. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  183. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +12 -4
  184. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
  185. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
  186. package/dist/hooks/magic-context/historian-no-fire-cause.d.ts +5 -0
  187. package/dist/hooks/magic-context/historian-no-fire-cause.d.ts.map +1 -0
  188. package/dist/hooks/magic-context/historian-publish-stage-logger.d.ts +3 -0
  189. package/dist/hooks/magic-context/historian-publish-stage-logger.d.ts.map +1 -0
  190. package/dist/hooks/magic-context/hook-handlers.d.ts +0 -3
  191. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  192. package/dist/hooks/magic-context/hook.d.ts +4 -4
  193. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  194. package/dist/hooks/magic-context/host-served-rows.d.ts +58 -0
  195. package/dist/hooks/magic-context/host-served-rows.d.ts.map +1 -0
  196. package/dist/hooks/magic-context/inject-compartments.d.ts +38 -0
  197. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  198. package/dist/hooks/magic-context/legacy-compartments.d.ts +20 -0
  199. package/dist/hooks/magic-context/legacy-compartments.d.ts.map +1 -0
  200. package/dist/hooks/magic-context/live-session-state.d.ts +7 -7
  201. package/dist/hooks/magic-context/m0-token-breakdown.d.ts +6 -0
  202. package/dist/hooks/magic-context/m0-token-breakdown.d.ts.map +1 -1
  203. package/dist/hooks/magic-context/maintenance-authority.d.ts +0 -1
  204. package/dist/hooks/magic-context/maintenance-authority.d.ts.map +1 -1
  205. package/dist/hooks/magic-context/module-state-sync.d.ts +1 -1
  206. package/dist/hooks/magic-context/module-state-sync.d.ts.map +1 -1
  207. package/dist/hooks/magic-context/module-transport.d.ts +1 -1
  208. package/dist/hooks/magic-context/module-transport.d.ts.map +1 -1
  209. package/dist/hooks/magic-context/module-wire.d.ts +42 -0
  210. package/dist/hooks/magic-context/module-wire.d.ts.map +1 -1
  211. package/dist/hooks/magic-context/note-nudger.d.ts.map +1 -1
  212. package/dist/hooks/magic-context/postprocess-read-cache.d.ts +8 -0
  213. package/dist/hooks/magic-context/postprocess-read-cache.d.ts.map +1 -0
  214. package/dist/hooks/magic-context/producer-window-guard.d.ts +16 -0
  215. package/dist/hooks/magic-context/producer-window-guard.d.ts.map +1 -1
  216. package/dist/hooks/magic-context/producer-window-test-support.d.ts +14 -0
  217. package/dist/hooks/magic-context/producer-window-test-support.d.ts.map +1 -0
  218. package/dist/hooks/magic-context/protected-tail-boundary.d.ts +2 -0
  219. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
  220. package/dist/hooks/magic-context/read-session-chunk.d.ts +45 -10
  221. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  222. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  223. package/dist/hooks/magic-context/read-session-raw.d.ts +4 -0
  224. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  225. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts +6 -0
  226. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -1
  227. package/dist/hooks/magic-context/recomp-orchestrator.d.ts +17 -39
  228. package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
  229. package/dist/hooks/magic-context/rust-mode-transform.d.ts +24 -3
  230. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  231. package/dist/hooks/magic-context/sentinel.d.ts.map +1 -1
  232. package/dist/hooks/magic-context/system-prompt-hash.d.ts +6 -7
  233. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  234. package/dist/hooks/magic-context/tag-messages.d.ts +21 -1
  235. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  236. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts +63 -0
  237. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -1
  238. package/dist/hooks/magic-context/tokenizer-calibration.d.ts +19 -12
  239. package/dist/hooks/magic-context/tokenizer-calibration.d.ts.map +1 -1
  240. package/dist/hooks/magic-context/tool-drop-target.d.ts +52 -1
  241. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
  242. package/dist/hooks/magic-context/tool-sweep-policy.d.ts +50 -0
  243. package/dist/hooks/magic-context/tool-sweep-policy.d.ts.map +1 -0
  244. package/dist/hooks/magic-context/transform-compartment-phase.d.ts +20 -1
  245. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
  246. package/dist/hooks/magic-context/transform-context-state.d.ts +9 -0
  247. package/dist/hooks/magic-context/transform-context-state.d.ts.map +1 -1
  248. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +5 -3
  249. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  250. package/dist/hooks/magic-context/transform.d.ts +37 -4
  251. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  252. package/dist/hooks/magic-context/wrapup-orchestrator.d.ts.map +1 -1
  253. package/dist/{index-f9gem5cr.js → index-8w1skpnm.js} +85 -5
  254. package/dist/index-99sfbrrf.js +170 -0
  255. package/dist/index-9skq8m9y.js +16 -0
  256. package/dist/{index-djp6rwz6.js → index-d0dh7v0f.js} +28130 -30282
  257. package/dist/{index-s61hh7gv.js → index-rpz2me0v.js} +94 -72
  258. package/dist/{index-ngjmj6xx.js → index-rvwvdq59.js} +1 -1
  259. package/dist/index-w2ety11c.js +393 -0
  260. package/dist/index-y5145x8k.js +619 -0
  261. package/dist/index-ygwdyntq.js +5407 -0
  262. package/dist/{index-a9ssj59b.js → index-ykg9sdzz.js} +55 -15
  263. package/dist/index.d.ts.map +1 -1
  264. package/dist/index.js +5749 -3006
  265. package/dist/message-time-backfill-gzjer78y.js +108 -0
  266. package/dist/plugin/dream-timer.d.ts +13 -0
  267. package/dist/plugin/dream-timer.d.ts.map +1 -1
  268. package/dist/plugin/hooks/create-session-hooks.d.ts +5 -2
  269. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  270. package/dist/plugin/memory-id-translation.d.ts +86 -0
  271. package/dist/plugin/memory-id-translation.d.ts.map +1 -1
  272. package/dist/plugin/messages-transform.d.ts.map +1 -1
  273. package/dist/plugin/rpc-handlers.d.ts +10 -0
  274. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  275. package/dist/plugin/rust-note-backend.d.ts +84 -0
  276. package/dist/plugin/rust-note-backend.d.ts.map +1 -0
  277. package/dist/plugin/tool-registry.d.ts +1 -0
  278. package/dist/plugin/tool-registry.d.ts.map +1 -1
  279. package/dist/read-session-chunk-ec3jkvhg.js +61 -0
  280. package/dist/{recomp-orchestrator-0xx1364v.js → recomp-orchestrator-6akjp11f.js} +8 -8
  281. package/dist/{send-session-notification-jbxknvar.js → send-session-notification-f6gwkesy.js} +2 -2
  282. package/dist/shared/assistant-message-extractor.d.ts +6 -0
  283. package/dist/shared/assistant-message-extractor.d.ts.map +1 -1
  284. package/dist/shared/conflict-detector.d.ts +9 -4
  285. package/dist/shared/conflict-detector.d.ts.map +1 -1
  286. package/dist/shared/hidden-variant-warnings.d.ts +5 -0
  287. package/dist/shared/hidden-variant-warnings.d.ts.map +1 -0
  288. package/dist/shared/host-limitations.d.ts +14 -0
  289. package/dist/shared/host-limitations.d.ts.map +1 -0
  290. package/dist/shared/keep-subagents.d.ts +1 -1
  291. package/dist/shared/keep-subagents.d.ts.map +1 -1
  292. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  293. package/dist/shared/models-dev-cache.d.ts +1 -0
  294. package/dist/shared/models-dev-cache.d.ts.map +1 -1
  295. package/dist/shared/opencode-config-dir.d.ts +52 -0
  296. package/dist/shared/opencode-config-dir.d.ts.map +1 -1
  297. package/dist/shared/opencode-db-path.d.ts +15 -0
  298. package/dist/shared/opencode-db-path.d.ts.map +1 -1
  299. package/dist/shared/prompt-surface-runtime.d.ts +5 -5
  300. package/dist/shared/rpc-server.d.ts +10 -0
  301. package/dist/shared/rpc-server.d.ts.map +1 -1
  302. package/dist/shared/rpc-types.d.ts +64 -5
  303. package/dist/shared/rpc-types.d.ts.map +1 -1
  304. package/dist/shared/status-detail-text.d.ts +1 -3
  305. package/dist/shared/status-detail-text.d.ts.map +1 -1
  306. package/dist/shared/status-summary.d.ts +7 -0
  307. package/dist/shared/status-summary.d.ts.map +1 -1
  308. package/dist/shared/status-view.d.ts +229 -0
  309. package/dist/shared/status-view.d.ts.map +1 -0
  310. package/dist/shared/tag-transcript.d.ts.map +1 -1
  311. package/dist/shared/tail-hygiene-status.d.ts +8 -0
  312. package/dist/shared/tail-hygiene-status.d.ts.map +1 -1
  313. package/dist/shared/user-facing-codes.d.ts +32 -7
  314. package/dist/shared/user-facing-codes.d.ts.map +1 -1
  315. package/dist/shared/window-geometry.d.ts +3 -0
  316. package/dist/shared/window-geometry.d.ts.map +1 -1
  317. package/dist/{task-config-cv8k9y8r.js → task-config-ex4nt0q0.js} +1 -1
  318. package/dist/tools/ctx-expand/constants.d.ts +1 -1
  319. package/dist/tools/ctx-expand/constants.d.ts.map +1 -1
  320. package/dist/tools/ctx-expand/render.d.ts.map +1 -1
  321. package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
  322. package/dist/tools/ctx-memory/constants.d.ts +3 -1
  323. package/dist/tools/ctx-memory/constants.d.ts.map +1 -1
  324. package/dist/tools/ctx-memory/tools.d.ts +1 -0
  325. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  326. package/dist/tools/ctx-memory/types.d.ts +2 -2
  327. package/dist/tools/ctx-note/constants.d.ts +1 -1
  328. package/dist/tools/ctx-note/constants.d.ts.map +1 -1
  329. package/dist/tools/ctx-note/render.d.ts +88 -0
  330. package/dist/tools/ctx-note/render.d.ts.map +1 -0
  331. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  332. package/dist/tools/ctx-reduce/constants.d.ts +1 -1
  333. package/dist/tools/ctx-reduce/constants.d.ts.map +1 -1
  334. package/dist/tools/ctx-search/constants.d.ts +1 -1
  335. package/dist/tools/ctx-search/constants.d.ts.map +1 -1
  336. package/dist/tools/ctx-search/date-range.d.ts +9 -0
  337. package/dist/tools/ctx-search/date-range.d.ts.map +1 -0
  338. package/dist/tools/ctx-search/tools.d.ts.map +1 -1
  339. package/dist/tools/ctx-search/types.d.ts +2 -0
  340. package/dist/tools/ctx-search/types.d.ts.map +1 -1
  341. package/dist/tools/light-descriptions.d.ts +5 -5
  342. package/dist/tools/light-descriptions.d.ts.map +1 -1
  343. package/dist/tools/parameter-descriptions.d.ts +75 -0
  344. package/dist/tools/parameter-descriptions.d.ts.map +1 -0
  345. package/dist/transformers-node-wasm.js +1918 -826
  346. package/dist/transformers-web.js +1736 -636
  347. package/dist/{transformers.node-dpmf3wpx.js → transformers.node-3zqr6k1w.js} +4087 -2898
  348. package/dist/tui/data/context-db.d.ts +19 -7
  349. package/dist/tui/data/context-db.d.ts.map +1 -1
  350. package/dist/tui-compiled/data/context-db.d.ts +19 -7
  351. package/dist/tui-compiled/data/context-db.d.ts.map +1 -1
  352. package/dist/v2/fold/host-media.d.ts +36 -0
  353. package/dist/v2/fold/host-media.d.ts.map +1 -0
  354. package/dist/v2/fold/restore.d.ts +21 -1
  355. package/dist/v2/fold/restore.d.ts.map +1 -1
  356. package/dist/v2/hidden-completion.d.ts +45 -1
  357. package/dist/v2/hidden-completion.d.ts.map +1 -1
  358. package/dist/v2/hooks/commands.d.ts +29 -0
  359. package/dist/v2/hooks/commands.d.ts.map +1 -0
  360. package/dist/v2/hooks/context.d.ts +46 -2
  361. package/dist/v2/hooks/context.d.ts.map +1 -1
  362. package/dist/v2/hooks/deleted-session-tombstones.d.ts +10 -0
  363. package/dist/v2/hooks/deleted-session-tombstones.d.ts.map +1 -0
  364. package/dist/v2/hooks/dream-manual.d.ts +43 -0
  365. package/dist/v2/hooks/dream-manual.d.ts.map +1 -0
  366. package/dist/v2/hooks/dream-trigger.d.ts +7 -0
  367. package/dist/v2/hooks/dream-trigger.d.ts.map +1 -1
  368. package/dist/v2/hooks/hidden-child.d.ts +1 -0
  369. package/dist/v2/hooks/hidden-child.d.ts.map +1 -1
  370. package/dist/v2/hooks/model-limit-cache.d.ts +19 -0
  371. package/dist/v2/hooks/model-limit-cache.d.ts.map +1 -0
  372. package/dist/v2/hooks/payload.d.ts.map +1 -1
  373. package/dist/v2/hooks/provider-admission.d.ts +22 -0
  374. package/dist/v2/hooks/provider-admission.d.ts.map +1 -0
  375. package/dist/v2/hooks/rpc-live-state.d.ts +9 -0
  376. package/dist/v2/hooks/rpc-live-state.d.ts.map +1 -0
  377. package/dist/v2/hooks/store.d.ts +38 -2
  378. package/dist/v2/hooks/store.d.ts.map +1 -1
  379. package/dist/v2/hooks/tools.d.ts +8 -0
  380. package/dist/v2/hooks/tools.d.ts.map +1 -0
  381. package/dist/v2/hooks/types.d.ts +58 -0
  382. package/dist/v2/hooks/types.d.ts.map +1 -1
  383. package/dist/v2/hooks/usage-reading.d.ts +42 -0
  384. package/dist/v2/hooks/usage-reading.d.ts.map +1 -0
  385. package/dist/v2/host-service.d.ts +65 -0
  386. package/dist/v2/host-service.d.ts.map +1 -0
  387. package/dist/v2/server.js +141678 -111890
  388. package/dist/v2/store-reader.d.ts +67 -1
  389. package/dist/v2/store-reader.d.ts.map +1 -1
  390. package/dist/v2/tui/events.d.ts +7 -0
  391. package/dist/v2/tui/events.d.ts.map +1 -0
  392. package/dist/v2/tui/index.d.ts +23 -0
  393. package/dist/v2/tui/index.d.ts.map +1 -1
  394. package/dist/v2/tui/sidebar-mount.d.ts +40 -0
  395. package/dist/v2/tui/sidebar-mount.d.ts.map +1 -0
  396. package/dist/v2/tui/status-dialog-mount.d.ts +29 -0
  397. package/dist/v2/tui/status-dialog-mount.d.ts.map +1 -0
  398. package/dist/v2/tui/types.d.ts +74 -6
  399. package/dist/v2/tui/types.d.ts.map +1 -1
  400. package/dist/wrapup-orchestrator-5akc87gr.js +16 -0
  401. package/package.json +8 -7
  402. package/src/agents/dreamer.ts +7 -16
  403. package/src/agents/hidden-agent-registrations.ts +10 -22
  404. package/src/agents/magic-context-prompt.test.ts +29 -39
  405. package/src/agents/magic-context-prompt.ts +99 -122
  406. package/src/agents/permissions.test.ts +17 -21
  407. package/src/config/index.ts +8 -3
  408. package/src/config/live-run-config.test.ts +237 -0
  409. package/src/config/live-run-config.ts +80 -0
  410. package/src/config/live-schema-drift.test.ts +67 -0
  411. package/src/config/live-snapshot.test.ts +85 -0
  412. package/src/config/live-snapshot.ts +191 -0
  413. package/src/config/raw-loader.test.ts +1 -0
  414. package/src/config/schema/magic-context.test.ts +13 -5
  415. package/src/config/schema/magic-context.ts +101 -10
  416. package/src/features/magic-context/dreamer/task-registry.ts +137 -13
  417. package/src/shared/assistant-message-extractor.test.ts +21 -0
  418. package/src/shared/assistant-message-extractor.ts +43 -8
  419. package/src/shared/child-session-teardown.test.ts +38 -3
  420. package/src/shared/child-session-teardown.ts +3 -3
  421. package/src/shared/conflict-detector.test.ts +224 -7
  422. package/src/shared/conflict-detector.ts +161 -89
  423. package/src/shared/hidden-variant-warnings.ts +21 -0
  424. package/src/shared/host-limitations.ts +43 -0
  425. package/src/shared/keep-subagents.ts +6 -6
  426. package/src/shared/model-suggestion-retry.test.ts +43 -0
  427. package/src/shared/model-suggestion-retry.ts +12 -0
  428. package/src/shared/models-dev-cache.ts +5 -0
  429. package/src/shared/opencode-config-dir.ts +80 -7
  430. package/src/shared/opencode-db-path.test.ts +78 -0
  431. package/src/shared/opencode-db-path.ts +49 -2
  432. package/src/shared/opencode-host-generation.test.ts +29 -0
  433. package/src/shared/prompt-surface-a1-golden.md +142 -211
  434. package/src/shared/rpc-server.ts +18 -0
  435. package/src/shared/rpc-types.ts +63 -4
  436. package/src/shared/status-detail-text.test.ts +52 -18
  437. package/src/shared/status-detail-text.ts +1 -90
  438. package/src/shared/status-summary.ts +37 -2
  439. package/src/shared/status-view.test.ts +441 -0
  440. package/src/shared/status-view.ts +707 -0
  441. package/src/shared/tag-transcript.ts +115 -16
  442. package/src/shared/tail-hygiene-status.ts +9 -1
  443. package/src/shared/user-facing-codes.test.ts +3 -4
  444. package/src/shared/user-facing-codes.ts +33 -8
  445. package/src/shared/window-geometry.test.ts +23 -5
  446. package/src/shared/window-geometry.ts +13 -3
  447. package/src/tui/data/context-db.ts +50 -15
  448. package/src/tui/dialogs/status-dialog-colors.test.ts +58 -0
  449. package/src/tui/dialogs/status-dialog.tsx +288 -0
  450. package/src/tui/index.tsx +7 -464
  451. package/src/tui/slots/sidebar-content.tsx +21 -5
  452. package/src/tui-compiled/data/context-db.ts +50 -15
  453. package/src/tui-compiled/dialogs/status-dialog.tsx +552 -0
  454. package/src/tui-compiled/index.tsx +43 -1025
  455. package/src/tui-compiled/slots/sidebar-content.tsx +173 -152
  456. package/src/v2/tui/__fixtures__/ga-host-theme.json +160 -0
  457. package/src/v2/tui/events.ts +23 -0
  458. package/src/v2/tui/host-contract.test.ts +57 -8
  459. package/src/v2/tui/index.ts +315 -59
  460. package/src/v2/tui/load-compiled-sidebar.d.mts +59 -0
  461. package/src/v2/tui/load-compiled-sidebar.mjs +24 -0
  462. package/src/v2/tui/load-compiled-status-dialog.d.mts +17 -0
  463. package/src/v2/tui/load-compiled-status-dialog.mjs +16 -0
  464. package/src/v2/tui/sidebar-fallback.test.ts +100 -0
  465. package/src/v2/tui/sidebar-mount.ts +164 -0
  466. package/src/v2/tui/sidebar-text.test.ts +70 -0
  467. package/src/v2/tui/status-dialog-fallback.test.ts +97 -0
  468. package/src/v2/tui/status-dialog-mount.ts +76 -0
  469. package/src/v2/tui/theme-mapping.test.ts +57 -0
  470. package/src/v2/tui/types.ts +69 -4
  471. package/tui.js +1 -0
  472. package/dist/features/magic-context/memory/memory-migration.d.ts +0 -129
  473. package/dist/features/magic-context/memory/memory-migration.d.ts.map +0 -1
  474. package/dist/hooks/magic-context/upgrade-reminder.d.ts +0 -76
  475. package/dist/hooks/magic-context/upgrade-reminder.d.ts.map +0 -1
  476. package/dist/index-4wwr6cz0.js +0 -112
  477. package/dist/index-avwt563y.js +0 -62
  478. package/dist/index-znraa0kv.js +0 -637
  479. package/dist/storage-meta-session-z818pn1e.js +0 -20
@@ -0,0 +1,288 @@
1
+ /** @jsxImportSource @opentui/solid */
2
+ // @ts-nocheck
3
+ /**
4
+ * The `/ctx-status` dialog: one view, drawn from the shared status model.
5
+ *
6
+ * It lives in its own module so both host generations can mount the same
7
+ * component. OpenCode 1 imports it from here; OpenCode 2 loads the compiled
8
+ * copy (`src/tui-compiled/dialogs/status-dialog.tsx`) through the host's
9
+ * OpenTUI runtime registry and mounts it on its dialog surface, the same
10
+ * arrangement `src/v2/tui/sidebar-mount.ts` uses for the sidebar.
11
+ */
12
+ import { createMemo, createSignal, onCleanup } from "solid-js"
13
+ import type { TuiPluginApi, TuiThemeCurrent } from "@opencode-ai/plugin/tui"
14
+ import packageJson from "../../../package.json"
15
+ import { statusSummaryFromDetail } from "../../shared/status-summary"
16
+ import {
17
+ buildStatusView,
18
+ distributeBarWidths,
19
+ statusColumnsFor,
20
+ type StatusRow,
21
+ type StatusSection,
22
+ type StatusTone,
23
+ type StatusViewSource,
24
+ } from "../../shared/status-view"
25
+ import { RUST_MODE_HOST_PATHS_LINE } from "../../shared/rust-mode-status"
26
+ import type { StatusDetail } from "../data/context-db"
27
+
28
+ const R = (props: { t: TuiThemeCurrent; l: string; v: string; fg?: string }) => (
29
+ <box width="100%" flexDirection="row" justifyContent="space-between">
30
+ <text fg={props.t.textMuted}>{props.l}</text>
31
+ <text fg={props.fg ?? props.t.text}>{props.v}</text>
32
+ </box>
33
+ )
34
+
35
+ /**
36
+ * Resolves a shared status tone against this host's theme. Every row in the
37
+ * status dialog passes through here: a row drawn without an explicit colour
38
+ * takes the terminal's default foreground, which on a light theme is the same
39
+ * colour as the dialog background and reads as a blank page.
40
+ */
41
+ function toneColor(theme: TuiThemeCurrent, tone: StatusTone): string {
42
+ if (tone === "accent") return theme.accent
43
+ if (tone === "muted") return theme.textMuted
44
+ if (tone === "warning") return theme.warning
45
+ if (tone === "error") return theme.error
46
+ return theme.text
47
+ }
48
+
49
+ /**
50
+ * Width the dialog is actually laid out at, which is NOT the terminal width:
51
+ * each host sizes its own dialog surface (OpenCode 2's widest is 88 columns on
52
+ * a 200-column terminal), and that is the width the sections have to fit into.
53
+ * Renderables carry their laid-out width and emit "resized" when it changes, so
54
+ * the component reads it from its own root box.
55
+ *
56
+ * Until the first layout there is no width to read; the terminal width is the
57
+ * fallback, and an unknown terminal keeps the wide layout the dialog has always
58
+ * drawn rather than collapsing on a guess.
59
+ */
60
+ function terminalColumns(): number {
61
+ const columns = process.stdout?.columns
62
+ return typeof columns === "number" && columns > 0 ? columns : Number.POSITIVE_INFINITY
63
+ }
64
+
65
+ /** One label/value row, with the label column fixed so labels never wrap mid-word. */
66
+ const StatusRowView = (props: { t: TuiThemeCurrent; row: StatusRow; labelWidth: number }) => (
67
+ <box width="100%" flexDirection="row" justifyContent="space-between" gap={1}>
68
+ <box width={props.labelWidth} flexShrink={0}>
69
+ <text fg={props.t.textMuted}>{props.row.label}</text>
70
+ </box>
71
+ <text fg={toneColor(props.t, props.row.tone)}>{props.row.value}</text>
72
+ </box>
73
+ )
74
+
75
+ const StatusSectionView = (props: { t: TuiThemeCurrent; section: StatusSection }) => (
76
+ <box flexDirection="column" width="100%" marginTop={1}>
77
+ <text fg={props.t.text}>
78
+ <b>{props.section.title}</b>
79
+ </text>
80
+ {props.section.rows.map((row) => (
81
+ <StatusRowView t={props.t} row={row} labelWidth={props.section.labelWidth} />
82
+ ))}
83
+ </box>
84
+ )
85
+
86
+ export const StatusDialog = (props: { api: TuiPluginApi; s: StatusDetail }) => {
87
+ const theme = createMemo(() => (props.api as any).theme.current)
88
+ const t = () => theme()
89
+ const s = () => props.s
90
+ const compactionOff = () => s().compaction_enabled === false
91
+
92
+ // Prefer the RPC-provided model context limit (what the sidebar shows) so the
93
+ // two surfaces never disagree. Fall back to deriving from usage% only when the
94
+ // RPC limit is absent (0) — and that derivation is itself undefined at 0%, so
95
+ // it stays "?" rather than showing a number inconsistent with the sidebar.
96
+ const contextLimit = () =>
97
+ s().contextLimit > 0
98
+ ? s().contextLimit
99
+ : s().usagePercentage > 0
100
+ ? Math.round(s().inputTokens / (s().usagePercentage / 100))
101
+ : 0
102
+
103
+ // Which rows exist, what they are called and which colour they carry is
104
+ // decided by the shared model, so this dialog and Pi's overlay cannot drift
105
+ // apart. This component only draws what the model returns.
106
+ const view = createMemo(() =>
107
+ buildStatusView(
108
+ {
109
+ ...(s() as unknown as StatusViewSource),
110
+ contextLimit: contextLimit(),
111
+ warnings: statusSummaryFromDetail(s()).warnings,
112
+ },
113
+ { version: packageJson.version },
114
+ ),
115
+ )
116
+ // The dialog's own laid-out width, which is what the sections have to fit
117
+ // into; the terminal width is only the pre-layout fallback.
118
+ const [dialogWidth, setDialogWidth] = createSignal(0)
119
+ const measureRoot = (element: any) => {
120
+ const read = () => {
121
+ const width = Number(element?.width)
122
+ if (Number.isFinite(width) && width > 0) setDialogWidth(width)
123
+ }
124
+ read()
125
+ element?.on?.("resized", read)
126
+ onCleanup(() => element?.off?.("resized", read))
127
+ }
128
+ // paddingLeft + paddingRight below; what the sections get is what is left.
129
+ const contentWidth = () => (dialogWidth() > 0 ? dialogWidth() - 4 : terminalColumns())
130
+ // The shared model decides whether the sections fit in two columns at this
131
+ // width, and how wide each column has to be; below that the same sections
132
+ // are drawn in one column, in the same order, instead of being squeezed
133
+ // into mid-word wraps.
134
+ const columns = () => statusColumnsFor(view().sections, contentWidth())
135
+ const columnSections = (parity: number) =>
136
+ view().sections.filter((_section, index) => index % 2 === parity)
137
+ const hygiene = () => view().hygiene
138
+ // Integer segment widths that sum to the bar's own width. Proportional
139
+ // flexGrow lets the layout engine round each segment on its own, which
140
+ // leaves blank cells between the coloured runs; the shared helper
141
+ // distributes the remainder so the bar has no gaps. Before the first
142
+ // layout there is no width to divide, so the flex fallback stays.
143
+ const barWidths = () => {
144
+ const width = contentWidth()
145
+ if (!Number.isFinite(width) || width <= 0) return null
146
+ return distributeBarWidths(
147
+ view().bar.map((segment) => segment.tokens),
148
+ width,
149
+ )
150
+ }
151
+
152
+ return (
153
+ <box ref={measureRoot} flexDirection="column" width="100%" paddingLeft={2} paddingRight={2} paddingTop={1} paddingBottom={1}>
154
+ {/* Title */}
155
+ <box justifyContent="center" width="100%" marginBottom={1} flexDirection="row" gap={2}>
156
+ <text fg={t().accent}><b>{view().title}</b></text>
157
+ <text fg={t().textMuted}>{view().version}</text>
158
+ </box>
159
+
160
+ <box flexDirection="row" justifyContent="space-between" width="100%">
161
+ <text fg={toneColor(t(), view().headline.left.tone)}>
162
+ <b>{view().headline.left.text}</b>
163
+ </text>
164
+ <text fg={toneColor(t(), view().headline.right.tone)}>
165
+ {view().headline.right.text}
166
+ </text>
167
+ </box>
168
+ {view().windowLine && <text fg={t().textMuted}>{view().windowLine}</text>}
169
+
170
+ {/* Segmented breakdown bar: a flex row of colored boxes filling the
171
+ dialog width. Once the dialog has a laid-out width the shared
172
+ helper hands each segment an integer width that sums to the bar
173
+ width, so no blank cell can appear between the runs; before the
174
+ first layout the flex weights stand in. */}
175
+ <box width="100%" flexDirection="row" height={1}>
176
+ {view().bar.map((seg, index) => {
177
+ const widths = barWidths()
178
+ const fixed = widths ? (widths[index] ?? 0) : undefined
179
+ return (
180
+ <box
181
+ key={seg.label}
182
+ {...(fixed === undefined
183
+ ? { flexGrow: Math.max(1, seg.tokens), flexBasis: 0 }
184
+ : { width: fixed, flexShrink: 0 })}
185
+ height={1}
186
+ backgroundColor={seg.color}
187
+ />
188
+ )
189
+ })}
190
+ </box>
191
+
192
+ {/* Breakdown legend */}
193
+ <box flexDirection="column" width="100%">
194
+ {view().breakdown.map((row) => (
195
+ <box key={row.label} width="100%" flexDirection="row" justifyContent="space-between" gap={1}>
196
+ <text fg={row.color}>{row.label}</text>
197
+ <text fg={t().textMuted}>{row.value}</text>
198
+ </box>
199
+ ))}
200
+ {hygiene() && (
201
+ <StatusRowView t={t()} row={hygiene()} labelWidth={9} />
202
+ )}
203
+ </box>
204
+
205
+ {/* Recomp live progress (full width, only while
206
+ running or just finished — dogfood 2026-05-30). This is live run
207
+ state rather than status content, so it stays out of the shared
208
+ section model. */}
209
+ {!compactionOff() && s().recompProgress && (() => {
210
+ const p = s().recompProgress!
211
+ // Label follows the flow that started the run, so a plain
212
+ // /ctx-recomp never reads as an "Upgrade" (dogfood 2026-06-04).
213
+ const verb = p.kind === "upgrade" ? "Upgrade" : p.kind === "embed" ? "Embed" : "Recomp"
214
+ return (
215
+ <box marginTop={1} width="100%" flexDirection="column">
216
+ <text fg={t().text}><b>{verb}</b></text>
217
+ {(() => {
218
+ if (p.phase === "recomp") {
219
+ const frac = p.totalMessages > 0 ? p.processedMessages / p.totalMessages : 0
220
+ const width = 24
221
+ const filled = Math.round(Math.max(0, Math.min(1, frac)) * width)
222
+ const bar = p.totalMessages > 0
223
+ ? `[${"█".repeat(filled)}${"░".repeat(width - filled)}]`
224
+ : "(starting…)"
225
+ const activeLabel = p.kind === "upgrade" ? "upgrading" : p.kind === "embed" ? "embedding" : "comparting"
226
+ return (
227
+ <>
228
+ <R t={t()} l={activeLabel} v={p.totalMessages > 0 ? `${bar} ${Math.round(frac * 100)}%` : bar} fg={t().warning} />
229
+ {p.note ? <R t={t()} l="Status" v={p.note} fg={t().textMuted} /> : null}
230
+ {p.kind === "embed"
231
+ ? <R t={t()} l="Compartments" v={`${p.processedMessages}/${p.totalMessages} embedded`} fg={t().textMuted} />
232
+ : <R t={t()} l="Compartments" v={`${p.compartmentsCreated} (${p.passCount} pass${p.passCount === 1 ? "" : "es"})`} fg={t().textMuted} />}
233
+ </>
234
+ )
235
+ }
236
+ if (p.phase === "migration") return <R t={t()} l="Status" v={p.note ?? "Migrating memories ⟳"} fg={t().warning} />
237
+ if (p.phase === "done") return <R t={t()} l="Status" v={`✓ ${verb} complete`} fg={t().accent} />
238
+ if (p.phase === "skipped") return <R t={t()} l="Status" v={p.message ?? `${verb} stopped early`} fg={t().textMuted} />
239
+ return <R t={t()} l="Status" v={`✗ ${verb} failed${p.message ? `: ${p.message}` : ""}`} fg={t().error} />
240
+ })()}
241
+ </box>
242
+ )
243
+ })()}
244
+
245
+ {s().hostBackendsModuleSide && (
246
+ <box marginTop={1} width="100%" flexDirection="column">
247
+ <text fg={t().text}><b>Rust Mode</b></text>
248
+ <text fg={t().textMuted}>{RUST_MODE_HOST_PATHS_LINE}</text>
249
+ </box>
250
+ )}
251
+
252
+ {columns().twoColumn ? (
253
+ <box flexDirection="row" width="100%" gap={4}>
254
+ <box flexDirection="column" width={columns().leftWidth} flexShrink={0}>
255
+ {columnSections(0).map((section) => (
256
+ <StatusSectionView t={t()} section={section} />
257
+ ))}
258
+ </box>
259
+ <box flexDirection="column" width={columns().rightWidth} flexShrink={0}>
260
+ {columnSections(1).map((section) => (
261
+ <StatusSectionView t={t()} section={section} />
262
+ ))}
263
+ </box>
264
+ </box>
265
+ ) : (
266
+ <box flexDirection="column" width="100%">
267
+ {view().sections.map((section) => (
268
+ <StatusSectionView t={t()} section={section} />
269
+ ))}
270
+ </box>
271
+ )}
272
+
273
+ {view().warnings.length > 0 && (
274
+ <box marginTop={1} width="100%" flexDirection="column">
275
+ {view().warnings.map((warning) => (
276
+ <text fg={warning.tone === "error" ? t().error : t().warning}>{warning.text}</text>
277
+ ))}
278
+ </box>
279
+ )}
280
+
281
+ {/* Footer */}
282
+ <box marginTop={1} justifyContent="flex-end" width="100%">
283
+ <text fg={t().textMuted}>{view().footer}</text>
284
+ </box>
285
+ </box>
286
+ )
287
+ }
288
+