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