@cortexkit/opencode-magic-context 0.41.3 → 0.42.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 (384) hide show
  1. package/README.md +21 -3
  2. package/dist/agents/hidden-agent-registrations.d.ts +1 -3
  3. package/dist/agents/hidden-agent-registrations.d.ts.map +1 -1
  4. package/dist/agents/magic-context-prompt.d.ts +1 -1
  5. package/dist/agents/magic-context-prompt.d.ts.map +1 -1
  6. package/dist/agents/permissions.d.ts +1 -22
  7. package/dist/agents/permissions.d.ts.map +1 -1
  8. package/dist/config/agent-disable.d.ts +0 -5
  9. package/dist/config/agent-disable.d.ts.map +1 -1
  10. package/dist/config/index.d.ts +14 -0
  11. package/dist/config/index.d.ts.map +1 -1
  12. package/dist/config/migrate-config-location.d.ts.map +1 -1
  13. package/dist/config/project-security.d.ts +17 -0
  14. package/dist/config/project-security.d.ts.map +1 -1
  15. package/dist/config/removed-agent-config.d.ts +8 -0
  16. package/dist/config/removed-agent-config.d.ts.map +1 -0
  17. package/dist/config/schema/magic-context.d.ts +23 -201
  18. package/dist/config/schema/magic-context.d.ts.map +1 -1
  19. package/dist/{conflict-warning-hook-z5sd697e.js → conflict-warning-hook-6p3xqeac.js} +4 -4
  20. package/dist/{derive-budgets-901a0pk0.js → derive-budgets-s2pgnnm4.js} +4 -2
  21. package/dist/features/builtin-commands/commands.d.ts +0 -4
  22. package/dist/features/builtin-commands/commands.d.ts.map +1 -1
  23. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  24. package/dist/features/magic-context/compartment-chunk-embedding.d.ts +7 -0
  25. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  26. package/dist/features/magic-context/compartment-storage.d.ts.map +1 -1
  27. package/dist/features/magic-context/context-authority.d.ts +31 -4
  28. package/dist/features/magic-context/context-authority.d.ts.map +1 -1
  29. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  30. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -1
  31. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  32. package/dist/features/magic-context/dreamer/open-opencode-db.d.ts.map +1 -1
  33. package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -1
  34. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts +19 -9
  35. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts.map +1 -1
  36. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts +13 -0
  37. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
  38. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  39. package/dist/features/magic-context/dreamer/task-scheduler.d.ts +7 -0
  40. package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -1
  41. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  42. package/dist/features/magic-context/fail-closed-block.d.ts.map +1 -1
  43. package/dist/features/magic-context/git-commits/sweep-coordinator.d.ts.map +1 -1
  44. package/dist/features/magic-context/index.d.ts +0 -1
  45. package/dist/features/magic-context/index.d.ts.map +1 -1
  46. package/dist/features/magic-context/memory/embedding-local.d.ts +13 -0
  47. package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
  48. package/dist/features/magic-context/memory/embedding-synapse.d.ts +43 -10
  49. package/dist/features/magic-context/memory/embedding-synapse.d.ts.map +1 -1
  50. package/dist/features/magic-context/memory/embedding.d.ts +1 -1
  51. package/dist/features/magic-context/memory/embedding.d.ts.map +1 -1
  52. package/dist/features/magic-context/memory/memory-migration.d.ts.map +1 -1
  53. package/dist/features/magic-context/memory/project-identity.d.ts +1 -0
  54. package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
  55. package/dist/features/magic-context/memory/promotion.d.ts +7 -1
  56. package/dist/features/magic-context/memory/promotion.d.ts.map +1 -1
  57. package/dist/features/magic-context/merged-reasoning-decisions.d.ts +6 -0
  58. package/dist/features/magic-context/merged-reasoning-decisions.d.ts.map +1 -0
  59. package/dist/features/magic-context/message-fts-rowid-map.d.ts.map +1 -1
  60. package/dist/features/magic-context/message-index-async.d.ts +12 -0
  61. package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
  62. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  63. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  64. package/dist/features/magic-context/mural/compress-cues.d.ts.map +1 -1
  65. package/dist/features/magic-context/mural/render-trigger.d.ts +6 -0
  66. package/dist/features/magic-context/mural/render-trigger.d.ts.map +1 -1
  67. package/dist/features/magic-context/no-content-compartment.d.ts +12 -0
  68. package/dist/features/magic-context/no-content-compartment.d.ts.map +1 -0
  69. package/dist/features/magic-context/pi-content-decisions.d.ts +9 -0
  70. package/dist/features/magic-context/pi-content-decisions.d.ts.map +1 -0
  71. package/dist/features/magic-context/project-docs-hash.d.ts +4 -0
  72. package/dist/features/magic-context/project-docs-hash.d.ts.map +1 -1
  73. package/dist/features/magic-context/project-embedding-registry.d.ts +13 -4
  74. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  75. package/dist/features/magic-context/protection-window.d.ts +79 -0
  76. package/dist/features/magic-context/protection-window.d.ts.map +1 -0
  77. package/dist/features/magic-context/search.d.ts.map +1 -1
  78. package/dist/features/magic-context/session-project-backfill.d.ts.map +1 -1
  79. package/dist/features/magic-context/shadow-backfill-state.d.ts +26 -0
  80. package/dist/features/magic-context/shadow-backfill-state.d.ts.map +1 -0
  81. package/dist/features/magic-context/smart-notes/compiler.d.ts.map +1 -1
  82. package/dist/features/magic-context/smart-notes/sandbox-runner.d.ts +4 -0
  83. package/dist/features/magic-context/smart-notes/sandbox-runner.d.ts.map +1 -1
  84. package/dist/features/magic-context/smart-notes/storage.d.ts.map +1 -1
  85. package/dist/features/magic-context/storage-clone.d.ts.map +1 -1
  86. package/dist/features/magic-context/storage-db.d.ts +1 -1
  87. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  88. package/dist/features/magic-context/storage-embedding-measurements.d.ts +2 -2
  89. package/dist/features/magic-context/storage-embedding-measurements.d.ts.map +1 -1
  90. package/dist/features/magic-context/storage-historian-runs.d.ts +4 -0
  91. package/dist/features/magic-context/storage-historian-runs.d.ts.map +1 -1
  92. package/dist/features/magic-context/storage-memory-mutation-log.d.ts +1 -0
  93. package/dist/features/magic-context/storage-memory-mutation-log.d.ts.map +1 -1
  94. package/dist/features/magic-context/storage-meta-persisted.d.ts +81 -15
  95. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  96. package/dist/features/magic-context/storage-meta.d.ts +1 -1
  97. package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
  98. package/dist/features/magic-context/storage-native-replay.d.ts +29 -0
  99. package/dist/features/magic-context/storage-native-replay.d.ts.map +1 -0
  100. package/dist/features/magic-context/storage-notes.d.ts +6 -0
  101. package/dist/features/magic-context/storage-notes.d.ts.map +1 -1
  102. package/dist/features/magic-context/storage-replay-document.d.ts +33 -0
  103. package/dist/features/magic-context/storage-replay-document.d.ts.map +1 -0
  104. package/dist/features/magic-context/storage-subagent-invocations.d.ts +1 -1
  105. package/dist/features/magic-context/storage-subagent-invocations.d.ts.map +1 -1
  106. package/dist/features/magic-context/storage-tags.d.ts +19 -11
  107. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  108. package/dist/features/magic-context/storage.d.ts +3 -3
  109. package/dist/features/magic-context/storage.d.ts.map +1 -1
  110. package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -1
  111. package/dist/features/magic-context/tagger.d.ts +13 -0
  112. package/dist/features/magic-context/tagger.d.ts.map +1 -1
  113. package/dist/features/magic-context/tool-owner-backfill.d.ts.map +1 -1
  114. package/dist/features/magic-context/user-memory/review-user-memories.d.ts.map +1 -1
  115. package/dist/features/magic-context/user-memory/storage-user-memory.d.ts.map +1 -1
  116. package/dist/features/magic-context/workspaces.d.ts.map +1 -1
  117. package/dist/hooks/magic-context/apply-operations.d.ts +11 -5
  118. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  119. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
  120. package/dist/hooks/magic-context/cache-busting-signals.d.ts +9 -1
  121. package/dist/hooks/magic-context/cache-busting-signals.d.ts.map +1 -1
  122. package/dist/hooks/magic-context/caveman-cleanup.d.ts +1 -1
  123. package/dist/hooks/magic-context/caveman-cleanup.d.ts.map +1 -1
  124. package/dist/hooks/magic-context/channel2-delivery.d.ts.map +1 -1
  125. package/dist/hooks/magic-context/child-session-spawn.d.ts +3 -3
  126. package/dist/hooks/magic-context/child-session-spawn.d.ts.map +1 -1
  127. package/dist/hooks/magic-context/command-handler.d.ts +5 -10
  128. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  129. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  130. package/dist/hooks/magic-context/compartment-runner-drop-queue.d.ts +10 -21
  131. package/dist/hooks/magic-context/compartment-runner-drop-queue.d.ts.map +1 -1
  132. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  133. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  134. package/dist/hooks/magic-context/compartment-runner-types.d.ts +4 -0
  135. package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
  136. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts +26 -2
  137. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -1
  138. package/dist/hooks/magic-context/decay-render.d.ts.map +1 -1
  139. package/dist/hooks/magic-context/derive-budgets.d.ts +1 -0
  140. package/dist/hooks/magic-context/derive-budgets.d.ts.map +1 -1
  141. package/dist/hooks/magic-context/dropped-input-guard.d.ts +9 -0
  142. package/dist/hooks/magic-context/dropped-input-guard.d.ts.map +1 -0
  143. package/dist/hooks/magic-context/emergency-drop.d.ts +9 -2
  144. package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -1
  145. package/dist/hooks/magic-context/event-handler.d.ts +0 -1
  146. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  147. package/dist/hooks/magic-context/event-payloads.d.ts +7 -6
  148. package/dist/hooks/magic-context/event-payloads.d.ts.map +1 -1
  149. package/dist/hooks/magic-context/event-resolvers.d.ts +1 -1
  150. package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
  151. package/dist/hooks/magic-context/execute-status.d.ts +8 -2
  152. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  153. package/dist/hooks/magic-context/format-embed-status.d.ts.map +1 -1
  154. package/dist/hooks/magic-context/heuristic-cleanup.d.ts +11 -4
  155. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
  156. package/dist/hooks/magic-context/hook-handlers.d.ts +5 -1
  157. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  158. package/dist/hooks/magic-context/hook.d.ts +17 -5
  159. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  160. package/dist/hooks/magic-context/inject-compartments.d.ts +14 -1
  161. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  162. package/dist/hooks/magic-context/issue-423-fixture.d.ts +37 -0
  163. package/dist/hooks/magic-context/issue-423-fixture.d.ts.map +1 -0
  164. package/dist/hooks/magic-context/issue-424-fixture.d.ts +11 -0
  165. package/dist/hooks/magic-context/issue-424-fixture.d.ts.map +1 -0
  166. package/dist/hooks/magic-context/live-session-state.d.ts +1 -1
  167. package/dist/hooks/magic-context/lkg-slot.d.ts +34 -0
  168. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  169. package/dist/hooks/magic-context/module-state-sync-timing.d.ts +21 -0
  170. package/dist/hooks/magic-context/module-state-sync-timing.d.ts.map +1 -0
  171. package/dist/hooks/magic-context/module-state-sync.d.ts +21 -7
  172. package/dist/hooks/magic-context/module-state-sync.d.ts.map +1 -1
  173. package/dist/hooks/magic-context/module-transport.d.ts +12 -0
  174. package/dist/hooks/magic-context/module-transport.d.ts.map +1 -1
  175. package/dist/hooks/magic-context/module-wire.d.ts +8 -0
  176. package/dist/hooks/magic-context/module-wire.d.ts.map +1 -1
  177. package/dist/hooks/magic-context/note-nudger.d.ts.map +1 -1
  178. package/dist/hooks/magic-context/persist-filtered-noise.d.ts +5 -0
  179. package/dist/hooks/magic-context/persist-filtered-noise.d.ts.map +1 -0
  180. package/dist/hooks/magic-context/producer-window-guard.d.ts +8 -0
  181. package/dist/hooks/magic-context/producer-window-guard.d.ts.map +1 -0
  182. package/dist/hooks/magic-context/protected-tail-boundary.d.ts +65 -0
  183. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
  184. package/dist/hooks/magic-context/read-session-chunk.d.ts +20 -18
  185. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  186. package/dist/hooks/magic-context/read-session-db.d.ts +22 -12
  187. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
  188. package/dist/hooks/magic-context/read-session-formatting.d.ts +8 -0
  189. package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -1
  190. package/dist/hooks/magic-context/read-session-raw.d.ts +10 -1
  191. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  192. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts +4 -1
  193. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -1
  194. package/dist/hooks/magic-context/recomp-orchestrator.d.ts +2 -0
  195. package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
  196. package/dist/hooks/magic-context/reference-retrieval.d.ts.map +1 -1
  197. package/dist/hooks/magic-context/rust-mode-transform.d.ts +79 -11
  198. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  199. package/dist/hooks/magic-context/send-session-notification.d.ts +11 -10
  200. package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -1
  201. package/dist/hooks/magic-context/sentinel.d.ts +3 -3
  202. package/dist/hooks/magic-context/sentinel.d.ts.map +1 -1
  203. package/dist/hooks/magic-context/strip-content.d.ts +7 -0
  204. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  205. package/dist/hooks/magic-context/supersession-reclaim.d.ts +13 -0
  206. package/dist/hooks/magic-context/supersession-reclaim.d.ts.map +1 -1
  207. package/dist/hooks/magic-context/system-prompt-hash.d.ts +2 -3
  208. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  209. package/dist/hooks/magic-context/tag-messages.d.ts +2 -0
  210. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  211. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts +16 -6
  212. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -1
  213. package/dist/hooks/magic-context/tool-drop-target.d.ts +1 -0
  214. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
  215. package/dist/hooks/magic-context/transform-compartment-phase.d.ts +2 -0
  216. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
  217. package/dist/hooks/magic-context/transform-context-state.d.ts +7 -1
  218. package/dist/hooks/magic-context/transform-context-state.d.ts.map +1 -1
  219. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +11 -4
  220. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  221. package/dist/hooks/magic-context/transform.d.ts +11 -2
  222. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  223. package/dist/hooks/magic-context/upgrade-reminder.d.ts +7 -9
  224. package/dist/hooks/magic-context/upgrade-reminder.d.ts.map +1 -1
  225. package/dist/hooks/magic-context/wrapup-orchestrator.d.ts.map +1 -1
  226. package/dist/index-1974jvn3.js +783 -0
  227. package/dist/{index-npx8vhmy.js → index-36wd1d6k.js} +7 -30
  228. package/dist/{index-kby1sng5.js → index-avwt563y.js} +8 -1
  229. package/dist/{index-vmmjdpc0.js → index-c9hamh36.js} +18357 -16010
  230. package/dist/{index-0bycg0np.js → index-jmtjh2d3.js} +4 -4
  231. package/dist/{index-q264erdp.js → index-nqgjwfzn.js} +70 -38
  232. package/dist/index-sd3egckz.js +1583 -0
  233. package/dist/{index-dn1rwpd8.js → index-xdtge3y2.js} +58 -16
  234. package/dist/index.d.ts.map +1 -1
  235. package/dist/index.js +6826 -6660
  236. package/dist/plugin/conflict-warning-hook.d.ts +5 -6
  237. package/dist/plugin/conflict-warning-hook.d.ts.map +1 -1
  238. package/dist/plugin/dream-timer.d.ts +1 -0
  239. package/dist/plugin/dream-timer.d.ts.map +1 -1
  240. package/dist/plugin/embedding-routing.d.ts +4 -1
  241. package/dist/plugin/embedding-routing.d.ts.map +1 -1
  242. package/dist/plugin/hooks/create-session-hooks.d.ts +19 -2
  243. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  244. package/dist/plugin/rpc-handlers.d.ts +31 -1
  245. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  246. package/dist/plugin/rust-tool-backends.d.ts +1 -0
  247. package/dist/plugin/rust-tool-backends.d.ts.map +1 -1
  248. package/dist/plugin/tool-registry.d.ts.map +1 -1
  249. package/dist/{recomp-orchestrator-f5m2wk74.js → recomp-orchestrator-3atsasjy.js} +6 -6
  250. package/dist/{send-session-notification-hdh02wy9.js → send-session-notification-1qeqkswb.js} +6 -4
  251. package/dist/shared/cache-ttl-display.d.ts +23 -0
  252. package/dist/shared/cache-ttl-display.d.ts.map +1 -0
  253. package/dist/shared/cache-ttl-seed.d.ts +10 -0
  254. package/dist/shared/cache-ttl-seed.d.ts.map +1 -0
  255. package/dist/shared/child-session-teardown.d.ts +34 -0
  256. package/dist/shared/child-session-teardown.d.ts.map +1 -0
  257. package/dist/shared/config-diagnostics.d.ts +30 -0
  258. package/dist/shared/config-diagnostics.d.ts.map +1 -0
  259. package/dist/shared/config-warning-surface.d.ts +3 -0
  260. package/dist/shared/config-warning-surface.d.ts.map +1 -0
  261. package/dist/shared/data-path.d.ts +10 -9
  262. package/dist/shared/data-path.d.ts.map +1 -1
  263. package/dist/shared/harness-provider-map.d.ts +7 -0
  264. package/dist/shared/harness-provider-map.d.ts.map +1 -1
  265. package/dist/shared/jsonc-parser.d.ts +12 -0
  266. package/dist/shared/jsonc-parser.d.ts.map +1 -1
  267. package/dist/shared/keep-subagents.d.ts +1 -1
  268. package/dist/shared/keep-subagents.d.ts.map +1 -1
  269. package/dist/shared/model-suggestion-retry.d.ts +15 -11
  270. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  271. package/dist/shared/opencode-db-path.d.ts +24 -0
  272. package/dist/shared/opencode-db-path.d.ts.map +1 -0
  273. package/dist/shared/pi-executable.d.ts +6 -0
  274. package/dist/shared/pi-executable.d.ts.map +1 -0
  275. package/dist/shared/prompt-surface-runtime.d.ts +10 -5
  276. package/dist/shared/prompt-surface-runtime.d.ts.map +1 -1
  277. package/dist/shared/resolve-fallbacks.d.ts +1 -1
  278. package/dist/shared/rpc-types.d.ts +117 -0
  279. package/dist/shared/rpc-types.d.ts.map +1 -1
  280. package/dist/shared/rpc-utils.d.ts.map +1 -1
  281. package/dist/shared/sqlite.d.ts +42 -0
  282. package/dist/shared/sqlite.d.ts.map +1 -1
  283. package/dist/shared/status-detail-text.d.ts.map +1 -1
  284. package/dist/shared/subagent-runner.d.ts +17 -10
  285. package/dist/shared/subagent-runner.d.ts.map +1 -1
  286. package/dist/shared/tag-transcript.d.ts.map +1 -1
  287. package/dist/shared/transcript.d.ts +6 -0
  288. package/dist/shared/transcript.d.ts.map +1 -1
  289. package/dist/shared/window-geometry.d.ts +23 -0
  290. package/dist/shared/window-geometry.d.ts.map +1 -1
  291. package/dist/shared/write-transaction-timing.d.ts +1 -1
  292. package/dist/shared/write-transaction-timing.d.ts.map +1 -1
  293. package/dist/{storage-meta-session-3rxx9ekm.js → storage-meta-session-e6g0mmec.js} +2 -2
  294. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  295. package/dist/tools/ctx-memory/verification-recording.d.ts.map +1 -1
  296. package/dist/tools/ctx-note/constants.d.ts +1 -1
  297. package/dist/tools/ctx-note/constants.d.ts.map +1 -1
  298. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  299. package/dist/tools/ctx-note/types.d.ts +1 -0
  300. package/dist/tools/ctx-note/types.d.ts.map +1 -1
  301. package/dist/tools/ctx-reduce/tools.d.ts +10 -1
  302. package/dist/tools/ctx-reduce/tools.d.ts.map +1 -1
  303. package/dist/tools/ctx-search/constants.d.ts +1 -1
  304. package/dist/tools/ctx-search/constants.d.ts.map +1 -1
  305. package/dist/tools/light-descriptions.d.ts +2 -2
  306. package/dist/tools/light-descriptions.d.ts.map +1 -1
  307. package/package.json +2 -3
  308. package/src/agents/hidden-agent-registrations.ts +3 -15
  309. package/src/agents/magic-context-prompt.test.ts +7 -5
  310. package/src/agents/magic-context-prompt.ts +22 -30
  311. package/src/agents/permissions.test.ts +1 -42
  312. package/src/agents/permissions.ts +1 -24
  313. package/src/config/agent-disable.ts +5 -22
  314. package/src/config/index.test.ts +169 -14
  315. package/src/config/index.ts +137 -21
  316. package/src/config/latch-permanence-guard.test.ts +4 -0
  317. package/src/config/migrate-config-location.test.ts +39 -6
  318. package/src/config/migrate-config-location.ts +18 -31
  319. package/src/config/profiles.ts +1 -1
  320. package/src/config/project-security.hostile-matrix.test.ts +0 -8
  321. package/src/config/project-security.test.ts +11 -22
  322. package/src/config/project-security.ts +103 -9
  323. package/src/config/protected-tokens.test.ts +235 -0
  324. package/src/config/removed-agent-config.ts +45 -0
  325. package/src/config/removed-agent-source-fence.test.ts +56 -0
  326. package/src/config/schema/magic-context.test.ts +21 -42
  327. package/src/config/schema/magic-context.ts +46 -37
  328. package/src/shared/cache-ttl-display.test.ts +84 -0
  329. package/src/shared/cache-ttl-display.ts +64 -0
  330. package/src/shared/cache-ttl-seed.ts +23 -0
  331. package/src/shared/child-session-teardown.test.ts +218 -0
  332. package/src/shared/child-session-teardown.ts +66 -0
  333. package/src/shared/config-diagnostics.test.ts +29 -0
  334. package/src/shared/config-diagnostics.ts +64 -0
  335. package/src/shared/config-warning-surface.ts +28 -0
  336. package/src/shared/data-path.ts +10 -9
  337. package/src/shared/harness-provider-map.test.ts +16 -0
  338. package/src/shared/harness-provider-map.ts +15 -0
  339. package/src/shared/jsonc-parser.test.ts +14 -1
  340. package/src/shared/jsonc-parser.ts +93 -0
  341. package/src/shared/keep-subagents.ts +9 -14
  342. package/src/shared/model-suggestion-retry.ts +144 -29
  343. package/src/shared/opencode-db-path.test.ts +196 -0
  344. package/src/shared/opencode-db-path.ts +215 -0
  345. package/src/shared/pi-executable.ts +20 -0
  346. package/src/shared/prompt-surface-a1-golden.md +50 -35
  347. package/src/shared/prompt-surface-runtime.test.ts +28 -0
  348. package/src/shared/prompt-surface-runtime.ts +22 -5
  349. package/src/shared/resolve-fallbacks.ts +1 -1
  350. package/src/shared/rpc-types.ts +124 -0
  351. package/src/shared/rpc-utils.ts +2 -3
  352. package/src/shared/session-messages-bounded.test.ts +1 -1
  353. package/src/shared/sqlite-import-fence.test.ts +19 -0
  354. package/src/shared/sqlite.test.ts +27 -1
  355. package/src/shared/sqlite.ts +204 -1
  356. package/src/shared/status-detail-text.test.ts +8 -4
  357. package/src/shared/status-detail-text.ts +20 -1
  358. package/src/shared/subagent-runner.ts +17 -10
  359. package/src/shared/tag-transcript.ts +53 -22
  360. package/src/shared/transcript.ts +7 -0
  361. package/src/shared/window-geometry.test.ts +44 -0
  362. package/src/shared/window-geometry.ts +89 -11
  363. package/src/shared/write-transaction-attribution.test.ts +241 -0
  364. package/src/shared/write-transaction-timing.ts +2 -1
  365. package/src/tui/index.tsx +18 -4
  366. package/src/tui/slots/sidebar-content.tsx +12 -7
  367. package/src/tui-compiled/index.tsx +237 -225
  368. package/src/tui-compiled/slots/sidebar-content.tsx +301 -305
  369. package/dist/agents/sidekick.d.ts +0 -2
  370. package/dist/agents/sidekick.d.ts.map +0 -1
  371. package/dist/features/magic-context/defaults.d.ts +0 -2
  372. package/dist/features/magic-context/defaults.d.ts.map +0 -1
  373. package/dist/features/magic-context/sidekick/agent.d.ts +0 -14
  374. package/dist/features/magic-context/sidekick/agent.d.ts.map +0 -1
  375. package/dist/features/magic-context/sidekick/core.d.ts +0 -38
  376. package/dist/features/magic-context/sidekick/core.d.ts.map +0 -1
  377. package/dist/features/magic-context/sidekick/index.d.ts +0 -3
  378. package/dist/features/magic-context/sidekick/index.d.ts.map +0 -1
  379. package/dist/hooks/magic-context/boundary-execution.d.ts +0 -27
  380. package/dist/hooks/magic-context/boundary-execution.d.ts.map +0 -1
  381. package/dist/index-jfpk81yt.js +0 -146
  382. package/dist/index-raatkvw5.js +0 -360
  383. package/src/agents/sidekick.ts +0 -1
  384. package/src/features/magic-context/defaults.ts +0 -1
@@ -13,6 +13,8 @@ import { createSidebarContentSlot, kickRecompProgressRefresh, refreshSidebarSnap
13
13
  import packageJson from "../../package.json";
14
14
  import { closeRpc, dismissUpgradeReminder, getAnnouncement, getCompartmentCount, getRpcGeneration, initRpcClient, loadEmbedDetail, loadStatusDetail, loadToastDurationMs, markAnnounced, requestRecomp, requestUpgrade } from "./data/context-db";
15
15
  import { startNotificationSocket, stopNotificationSocket } from "./data/notification-socket";
16
+ import { formatCacheTtlDisplay } from "../shared/cache-ttl-display";
17
+ import { formatConfigParseStatusLine } from "../shared/config-diagnostics";
16
18
  import { formatThresholdPercent } from "../shared/format-threshold";
17
19
  import { formatTailHygiene } from "../shared/tail-hygiene-status";
18
20
  import { RUST_MODE_HOST_PATHS_LINE } from "../shared/rust-mode-status";
@@ -199,7 +201,7 @@ const StatusDialog = props => {
199
201
  color: COLORS.profile
200
202
  });
201
203
  if (d.conversationTokens > 0) segs.push({
202
- label: "Conversation*",
204
+ label: "Conversation",
203
205
  tokens: d.conversationTokens,
204
206
  color: COLORS.conversation
205
207
  });
@@ -269,6 +271,12 @@ const StatusDialog = props => {
269
271
  _$insertNode(_el$7, _$createTextNode(`⚡ Magic Context Status`));
270
272
  _$insertNode(_el$9, _el$0);
271
273
  _$insert(_el$9, () => packageJson.version, null);
274
+ _$insert(_el$4, () => s().configParseFailures.map(failure => (() => {
275
+ var _el$25 = _$createElement("text");
276
+ _$insert(_el$25, () => formatConfigParseStatusLine(failure));
277
+ _$effect(_$p => _$setProp(_el$25, "fg", t().error, _$p));
278
+ return _el$25;
279
+ })()), _el$1);
272
280
  _$insertNode(_el$1, _el$10);
273
281
  _$setProp(_el$1, "flexDirection", "row");
274
282
  _$setProp(_el$1, "justifyContent", "space-between");
@@ -276,27 +284,27 @@ const StatusDialog = props => {
276
284
  _$insert(_el$1, (() => {
277
285
  var _c$ = _$memo(() => !!compactionOff());
278
286
  return () => _c$() ? (() => {
279
- var _el$25 = _$createElement("text"),
280
- _el$26 = _$createElement("b");
281
- _$insertNode(_el$25, _el$26);
282
- _$insert(_el$26, () => nativeCompactionContextLabel(s()));
283
- _$effect(_$p => _$setProp(_el$25, "fg", t().accent, _$p));
284
- return _el$25;
287
+ var _el$26 = _$createElement("text"),
288
+ _el$27 = _$createElement("b");
289
+ _$insertNode(_el$26, _el$27);
290
+ _$insert(_el$27, () => nativeCompactionContextLabel(s()));
291
+ _$effect(_$p => _$setProp(_el$26, "fg", t().accent, _$p));
292
+ return _el$26;
285
293
  })() : (() => {
286
- var _el$27 = _$createElement("text"),
287
- _el$28 = _$createElement("b"),
288
- _el$29 = _$createTextNode(`%`),
289
- _el$30 = _$createTextNode(` / `),
290
- _el$31 = _$createTextNode(`%`);
291
- _$insertNode(_el$27, _el$28);
292
- _$insertNode(_el$27, _el$30);
293
- _$insertNode(_el$27, _el$31);
294
+ var _el$28 = _$createElement("text"),
295
+ _el$29 = _$createElement("b"),
296
+ _el$30 = _$createTextNode(`%`),
297
+ _el$31 = _$createTextNode(` / `),
298
+ _el$32 = _$createTextNode(`%`);
294
299
  _$insertNode(_el$28, _el$29);
295
- _$insert(_el$28, () => s().usagePercentage.toFixed(1), _el$29);
296
- _$insert(_el$27, () => formatThresholdPercent(s().executeThreshold), _el$31);
297
- _$insert(_el$27, () => s().executeThresholdClamped ? "*" : "", null);
298
- _$effect(_$p => _$setProp(_el$27, "fg", s().usagePercentage >= 80 ? t().error : s().usagePercentage >= 65 ? t().warning : t().accent, _$p));
299
- return _el$27;
300
+ _$insertNode(_el$28, _el$31);
301
+ _$insertNode(_el$28, _el$32);
302
+ _$insertNode(_el$29, _el$30);
303
+ _$insert(_el$29, () => s().usagePercentage.toFixed(1), _el$30);
304
+ _$insert(_el$28, () => formatThresholdPercent(s().executeThreshold), _el$32);
305
+ _$insert(_el$28, () => s().executeThresholdClamped ? "*" : "", null);
306
+ _$effect(_$p => _$setProp(_el$28, "fg", s().usagePercentage >= 80 ? t().error : s().usagePercentage >= 65 ? t().warning : t().accent, _$p));
307
+ return _el$28;
300
308
  })();
301
309
  })(), _el$10);
302
310
  _$insertNode(_el$10, _el$11);
@@ -309,74 +317,74 @@ const StatusDialog = props => {
309
317
  _$insert(_el$4, (() => {
310
318
  var _c$3 = _$memo(() => !!s().windowGeometry);
311
319
  return () => _c$3() && (() => {
312
- var _el$32 = _$createElement("text");
313
- _$insert(_el$32, () => formatWindowDerivationLine(s().inputTokens, s().windowGeometry));
314
- _$effect(_$p => _$setProp(_el$32, "fg", t().textMuted, _$p));
315
- return _el$32;
320
+ var _el$33 = _$createElement("text");
321
+ _$insert(_el$33, () => formatWindowDerivationLine(s().inputTokens, s().windowGeometry));
322
+ _$effect(_$p => _$setProp(_el$33, "fg", t().textMuted, _$p));
323
+ return _el$33;
316
324
  })();
317
325
  })(), _el$13);
318
326
  _$setProp(_el$13, "width", "100%");
319
327
  _$setProp(_el$13, "flexDirection", "row");
320
328
  _$setProp(_el$13, "height", 1);
321
329
  _$insert(_el$13, () => barSegments().map(seg => (() => {
322
- var _el$33 = _$createElement("box");
323
- _$setProp(_el$33, "flexBasis", 0);
324
- _$setProp(_el$33, "height", 1);
330
+ var _el$34 = _$createElement("box");
331
+ _$setProp(_el$34, "flexBasis", 0);
332
+ _$setProp(_el$34, "height", 1);
325
333
  _$effect(_p$ => {
326
334
  var _v$9 = seg.label,
327
335
  _v$0 = Math.max(1, seg.tokens),
328
336
  _v$1 = seg.color;
329
- _v$9 !== _p$.e && (_p$.e = _$setProp(_el$33, "key", _v$9, _p$.e));
330
- _v$0 !== _p$.t && (_p$.t = _$setProp(_el$33, "flexGrow", _v$0, _p$.t));
331
- _v$1 !== _p$.a && (_p$.a = _$setProp(_el$33, "backgroundColor", _v$1, _p$.a));
337
+ _v$9 !== _p$.e && (_p$.e = _$setProp(_el$34, "key", _v$9, _p$.e));
338
+ _v$0 !== _p$.t && (_p$.t = _$setProp(_el$34, "flexGrow", _v$0, _p$.t));
339
+ _v$1 !== _p$.a && (_p$.a = _$setProp(_el$34, "backgroundColor", _v$1, _p$.a));
332
340
  return _p$;
333
341
  }, {
334
342
  e: undefined,
335
343
  t: undefined,
336
344
  a: undefined
337
345
  });
338
- return _el$33;
346
+ return _el$34;
339
347
  })()));
340
348
  _$insertNode(_el$14, _el$15);
341
349
  _$setProp(_el$14, "flexDirection", "column");
342
350
  _$insert(_el$14, () => breakdownSegments().segs.map(seg => {
343
351
  const pct = (seg.tokens / breakdownSegments().total * 100).toFixed(1);
344
352
  return (() => {
345
- var _el$34 = _$createElement("box"),
346
- _el$35 = _$createElement("text"),
347
- _el$36 = _$createTextNode(` `),
348
- _el$37 = _$createElement("text"),
349
- _el$38 = _$createTextNode(` (`),
350
- _el$39 = _$createTextNode(`%)`);
351
- _$insertNode(_el$34, _el$35);
352
- _$insertNode(_el$34, _el$37);
353
- _$setProp(_el$34, "width", "100%");
354
- _$setProp(_el$34, "flexDirection", "row");
355
- _$setProp(_el$34, "justifyContent", "space-between");
353
+ var _el$35 = _$createElement("box"),
354
+ _el$36 = _$createElement("text"),
355
+ _el$37 = _$createTextNode(` `),
356
+ _el$38 = _$createElement("text"),
357
+ _el$39 = _$createTextNode(` (`),
358
+ _el$40 = _$createTextNode(`%)`);
356
359
  _$insertNode(_el$35, _el$36);
357
- _$insert(_el$35, () => seg.label, _el$36);
358
- _$insert(_el$35, () => seg.detail ?? "", null);
359
- _$insertNode(_el$37, _el$38);
360
- _$insertNode(_el$37, _el$39);
361
- _$insert(_el$37, () => fmt(seg.tokens), _el$38);
362
- _$insert(_el$37, pct, _el$39);
360
+ _$insertNode(_el$35, _el$38);
361
+ _$setProp(_el$35, "width", "100%");
362
+ _$setProp(_el$35, "flexDirection", "row");
363
+ _$setProp(_el$35, "justifyContent", "space-between");
364
+ _$insertNode(_el$36, _el$37);
365
+ _$insert(_el$36, () => seg.label, _el$37);
366
+ _$insert(_el$36, () => seg.detail ?? "", null);
367
+ _$insertNode(_el$38, _el$39);
368
+ _$insertNode(_el$38, _el$40);
369
+ _$insert(_el$38, () => fmt(seg.tokens), _el$39);
370
+ _$insert(_el$38, pct, _el$40);
363
371
  _$effect(_p$ => {
364
372
  var _v$10 = seg.label,
365
373
  _v$11 = seg.color,
366
374
  _v$12 = t().textMuted;
367
- _v$10 !== _p$.e && (_p$.e = _$setProp(_el$34, "key", _v$10, _p$.e));
368
- _v$11 !== _p$.t && (_p$.t = _$setProp(_el$35, "fg", _v$11, _p$.t));
369
- _v$12 !== _p$.a && (_p$.a = _$setProp(_el$37, "fg", _v$12, _p$.a));
375
+ _v$10 !== _p$.e && (_p$.e = _$setProp(_el$35, "key", _v$10, _p$.e));
376
+ _v$11 !== _p$.t && (_p$.t = _$setProp(_el$36, "fg", _v$11, _p$.t));
377
+ _v$12 !== _p$.a && (_p$.a = _$setProp(_el$38, "fg", _v$12, _p$.a));
370
378
  return _p$;
371
379
  }, {
372
380
  e: undefined,
373
381
  t: undefined,
374
382
  a: undefined
375
383
  });
376
- return _el$34;
384
+ return _el$35;
377
385
  })();
378
386
  }), _el$15);
379
- _$insertNode(_el$15, _$createTextNode(`* Conversation includes Reasoning; hygiene excludes it`));
387
+ _$insertNode(_el$15, _$createTextNode(`Conversation includes reasoning; hygiene excludes it`));
380
388
  _$insert(_el$14, (() => {
381
389
  var _c$4 = _$memo(() => s().tailHygiene !== undefined);
382
390
  return () => _c$4() && _$createComponent(R, {
@@ -400,16 +408,16 @@ const StatusDialog = props => {
400
408
  // /ctx-recomp never reads as an "Upgrade" (dogfood 2026-06-04).
401
409
  const verb = p.kind === "upgrade" ? "Upgrade" : p.kind === "embed" ? "Embed" : "Recomp";
402
410
  return (() => {
403
- var _el$40 = _$createElement("box"),
404
- _el$41 = _$createElement("text"),
405
- _el$42 = _$createElement("b");
406
- _$insertNode(_el$40, _el$41);
407
- _$setProp(_el$40, "marginTop", 1);
408
- _$setProp(_el$40, "width", "100%");
409
- _$setProp(_el$40, "flexDirection", "column");
411
+ var _el$41 = _$createElement("box"),
412
+ _el$42 = _$createElement("text"),
413
+ _el$43 = _$createElement("b");
410
414
  _$insertNode(_el$41, _el$42);
411
- _$insert(_el$42, verb);
412
- _$insert(_el$40, () => {
415
+ _$setProp(_el$41, "marginTop", 1);
416
+ _$setProp(_el$41, "width", "100%");
417
+ _$setProp(_el$41, "flexDirection", "column");
418
+ _$insertNode(_el$42, _el$43);
419
+ _$insert(_el$43, verb);
420
+ _$insert(_el$41, () => {
413
421
  if (p.phase === "recomp") {
414
422
  const frac = p.totalMessages > 0 ? p.processedMessages / p.totalMessages : 0;
415
423
  const width = 24;
@@ -509,37 +517,37 @@ const StatusDialog = props => {
509
517
  }
510
518
  });
511
519
  }, null);
512
- _$effect(_$p => _$setProp(_el$41, "fg", t().text, _$p));
513
- return _el$40;
520
+ _$effect(_$p => _$setProp(_el$42, "fg", t().text, _$p));
521
+ return _el$41;
514
522
  })();
515
523
  })();
516
524
  })(), _el$17);
517
525
  _$insert(_el$4, (() => {
518
526
  var _c$6 = _$memo(() => !!s().hostBackendsModuleSide);
519
527
  return () => _c$6() && (() => {
520
- var _el$43 = _$createElement("box"),
521
- _el$44 = _$createElement("text"),
522
- _el$45 = _$createElement("b"),
523
- _el$47 = _$createElement("text");
524
- _$insertNode(_el$43, _el$44);
525
- _$insertNode(_el$43, _el$47);
526
- _$setProp(_el$43, "marginTop", 1);
527
- _$setProp(_el$43, "width", "100%");
528
- _$setProp(_el$43, "flexDirection", "column");
528
+ var _el$44 = _$createElement("box"),
529
+ _el$45 = _$createElement("text"),
530
+ _el$46 = _$createElement("b"),
531
+ _el$48 = _$createElement("text");
529
532
  _$insertNode(_el$44, _el$45);
530
- _$insertNode(_el$45, _$createTextNode(`Rust Mode`));
531
- _$insert(_el$47, RUST_MODE_HOST_PATHS_LINE);
533
+ _$insertNode(_el$44, _el$48);
534
+ _$setProp(_el$44, "marginTop", 1);
535
+ _$setProp(_el$44, "width", "100%");
536
+ _$setProp(_el$44, "flexDirection", "column");
537
+ _$insertNode(_el$45, _el$46);
538
+ _$insertNode(_el$46, _$createTextNode(`Rust Mode`));
539
+ _$insert(_el$48, RUST_MODE_HOST_PATHS_LINE);
532
540
  _$effect(_p$ => {
533
541
  var _v$13 = t().text,
534
542
  _v$14 = t().textMuted;
535
- _v$13 !== _p$.e && (_p$.e = _$setProp(_el$44, "fg", _v$13, _p$.e));
536
- _v$14 !== _p$.t && (_p$.t = _$setProp(_el$47, "fg", _v$14, _p$.t));
543
+ _v$13 !== _p$.e && (_p$.e = _$setProp(_el$45, "fg", _v$13, _p$.e));
544
+ _v$14 !== _p$.t && (_p$.t = _$setProp(_el$48, "fg", _v$14, _p$.t));
537
545
  return _p$;
538
546
  }, {
539
547
  e: undefined,
540
548
  t: undefined
541
549
  });
542
- return _el$43;
550
+ return _el$44;
543
551
  })();
544
552
  })(), _el$17);
545
553
  _$setProp(_el$17, "flexDirection", "row");
@@ -549,16 +557,16 @@ const StatusDialog = props => {
549
557
  _$insert(_el$17, (() => {
550
558
  var _c$7 = _$memo(() => !!compactionOff());
551
559
  return () => _c$7() ? (() => {
552
- var _el$48 = _$createElement("box"),
553
- _el$49 = _$createElement("text"),
554
- _el$50 = _$createElement("b");
555
- _$insertNode(_el$48, _el$49);
556
- _$setProp(_el$48, "flexDirection", "column");
557
- _$setProp(_el$48, "flexGrow", 1);
558
- _$setProp(_el$48, "flexBasis", 0);
560
+ var _el$49 = _$createElement("box"),
561
+ _el$50 = _$createElement("text"),
562
+ _el$51 = _$createElement("b");
559
563
  _$insertNode(_el$49, _el$50);
560
- _$insertNode(_el$50, _$createTextNode(`Knowledge`));
561
- _$insert(_el$48, () => compactionOffSidebarRows(s()).map(row => _$createComponent(R, {
564
+ _$setProp(_el$49, "flexDirection", "column");
565
+ _$setProp(_el$49, "flexGrow", 1);
566
+ _$setProp(_el$49, "flexBasis", 0);
567
+ _$insertNode(_el$50, _el$51);
568
+ _$insertNode(_el$51, _$createTextNode(`Knowledge`));
569
+ _$insert(_el$49, () => compactionOffSidebarRows(s()).map(row => _$createComponent(R, {
562
570
  get t() {
563
571
  return t();
564
572
  },
@@ -572,7 +580,7 @@ const StatusDialog = props => {
572
580
  return _$memo(() => row.label === "Memories")() ? t().accent : t().textMuted;
573
581
  }
574
582
  })), null);
575
- _$insert(_el$48, (() => {
583
+ _$insert(_el$49, (() => {
576
584
  var _c$1 = _$memo(() => s().readySmartNoteCount > 0);
577
585
  return () => _c$1() && _$createComponent(R, {
578
586
  get t() {
@@ -587,7 +595,7 @@ const StatusDialog = props => {
587
595
  }
588
596
  });
589
597
  })(), null);
590
- _$insert(_el$48, (() => {
598
+ _$insert(_el$49, (() => {
591
599
  var _c$10 = _$memo(() => !!s().lastDreamerRunAt);
592
600
  return () => _c$10() && _$createComponent(R, {
593
601
  get t() {
@@ -602,31 +610,31 @@ const StatusDialog = props => {
602
610
  }
603
611
  });
604
612
  })(), null);
605
- _$effect(_$p => _$setProp(_el$49, "fg", t().text, _$p));
606
- return _el$48;
613
+ _$effect(_$p => _$setProp(_el$50, "fg", t().text, _$p));
614
+ return _el$49;
607
615
  })() : [(() => {
608
- var _el$52 = _$createElement("box"),
609
- _el$53 = _$createElement("text"),
610
- _el$54 = _$createElement("b"),
611
- _el$56 = _$createElement("box"),
612
- _el$57 = _$createElement("text"),
613
- _el$58 = _$createElement("b"),
614
- _el$60 = _$createElement("box"),
615
- _el$61 = _$createElement("text"),
616
- _el$62 = _$createElement("b"),
617
- _el$64 = _$createElement("box"),
618
- _el$65 = _$createElement("text"),
619
- _el$66 = _$createElement("b");
620
- _$insertNode(_el$52, _el$53);
621
- _$insertNode(_el$52, _el$56);
622
- _$insertNode(_el$52, _el$60);
623
- _$insertNode(_el$52, _el$64);
624
- _$setProp(_el$52, "flexDirection", "column");
625
- _$setProp(_el$52, "flexGrow", 1);
626
- _$setProp(_el$52, "flexBasis", 0);
616
+ var _el$53 = _$createElement("box"),
617
+ _el$54 = _$createElement("text"),
618
+ _el$55 = _$createElement("b"),
619
+ _el$57 = _$createElement("box"),
620
+ _el$58 = _$createElement("text"),
621
+ _el$59 = _$createElement("b"),
622
+ _el$61 = _$createElement("box"),
623
+ _el$62 = _$createElement("text"),
624
+ _el$63 = _$createElement("b"),
625
+ _el$65 = _$createElement("box"),
626
+ _el$66 = _$createElement("text"),
627
+ _el$67 = _$createElement("b");
627
628
  _$insertNode(_el$53, _el$54);
628
- _$insertNode(_el$54, _$createTextNode(`Tags`));
629
- _$insert(_el$52, _$createComponent(R, {
629
+ _$insertNode(_el$53, _el$57);
630
+ _$insertNode(_el$53, _el$61);
631
+ _$insertNode(_el$53, _el$65);
632
+ _$setProp(_el$53, "flexDirection", "column");
633
+ _$setProp(_el$53, "flexGrow", 1);
634
+ _$setProp(_el$53, "flexBasis", 0);
635
+ _$insertNode(_el$54, _el$55);
636
+ _$insertNode(_el$55, _$createTextNode(`Tags`));
637
+ _$insert(_el$53, _$createComponent(R, {
630
638
  get t() {
631
639
  return t();
632
640
  },
@@ -634,8 +642,8 @@ const StatusDialog = props => {
634
642
  get v() {
635
643
  return _$memo(() => s().tagCountsAuthoritative === false)() ? "n/a (module total only)" : `${s().activeTags} (~${fmtBytes(s().activeBytes)})`;
636
644
  }
637
- }), _el$56);
638
- _$insert(_el$52, _$createComponent(R, {
645
+ }), _el$57);
646
+ _$insert(_el$53, _$createComponent(R, {
639
647
  get t() {
640
648
  return t();
641
649
  },
@@ -643,8 +651,8 @@ const StatusDialog = props => {
643
651
  get v() {
644
652
  return _$memo(() => s().tagCountsAuthoritative === false)() ? "n/a (module total only)" : String(s().droppedTags);
645
653
  }
646
- }), _el$56);
647
- _$insert(_el$52, _$createComponent(R, {
654
+ }), _el$57);
655
+ _$insert(_el$53, _$createComponent(R, {
648
656
  get t() {
649
657
  return t();
650
658
  },
@@ -655,12 +663,12 @@ const StatusDialog = props => {
655
663
  get fg() {
656
664
  return t().textMuted;
657
665
  }
658
- }), _el$56);
659
- _$insertNode(_el$56, _el$57);
660
- _$setProp(_el$56, "marginTop", 1);
666
+ }), _el$57);
661
667
  _$insertNode(_el$57, _el$58);
662
- _$insertNode(_el$58, _$createTextNode(`Pending Queue`));
663
- _$insert(_el$52, _$createComponent(R, {
668
+ _$setProp(_el$57, "marginTop", 1);
669
+ _$insertNode(_el$58, _el$59);
670
+ _$insertNode(_el$59, _$createTextNode(`Pending Queue`));
671
+ _$insert(_el$53, _$createComponent(R, {
664
672
  get t() {
665
673
  return t();
666
674
  },
@@ -671,21 +679,25 @@ const StatusDialog = props => {
671
679
  get fg() {
672
680
  return _$memo(() => s().pendingOpsCount > 0)() ? t().warning : t().textMuted;
673
681
  }
674
- }), _el$60);
675
- _$insertNode(_el$60, _el$61);
676
- _$setProp(_el$60, "marginTop", 1);
682
+ }), _el$61);
677
683
  _$insertNode(_el$61, _el$62);
678
- _$insertNode(_el$62, _$createTextNode(`Cache TTL`));
679
- _$insert(_el$52, _$createComponent(R, {
684
+ _$setProp(_el$61, "marginTop", 1);
685
+ _$insertNode(_el$62, _el$63);
686
+ _$insertNode(_el$63, _$createTextNode(`Cache TTL`));
687
+ _$insert(_el$53, _$createComponent(R, {
680
688
  get t() {
681
689
  return t();
682
690
  },
683
691
  l: "Configured",
684
692
  get v() {
685
- return s().cacheTtl;
693
+ return formatCacheTtlDisplay({
694
+ value: s().cacheTtl,
695
+ source: s().cacheTtlSource,
696
+ modelKey: s().cacheTtlModelKey
697
+ }).replace(/^Cache TTL: /, "");
686
698
  }
687
- }), _el$64);
688
- _$insert(_el$52, _$createComponent(R, {
699
+ }), _el$65);
700
+ _$insert(_el$53, _$createComponent(R, {
689
701
  get t() {
690
702
  return t();
691
703
  },
@@ -693,8 +705,8 @@ const StatusDialog = props => {
693
705
  get v() {
694
706
  return _$memo(() => s().lastResponseTime > 0)() ? `${Math.round(elapsed() / 1000)}s ago` : "never";
695
707
  }
696
- }), _el$64);
697
- _$insert(_el$52, _$createComponent(R, {
708
+ }), _el$65);
709
+ _$insert(_el$53, _$createComponent(R, {
698
710
  get t() {
699
711
  return t();
700
712
  },
@@ -705,8 +717,8 @@ const StatusDialog = props => {
705
717
  get fg() {
706
718
  return _$memo(() => !!s().cacheExpired)() ? t().warning : t().textMuted;
707
719
  }
708
- }), _el$64);
709
- _$insert(_el$52, _$createComponent(R, {
720
+ }), _el$65);
721
+ _$insert(_el$53, _$createComponent(R, {
710
722
  get t() {
711
723
  return t();
712
724
  },
@@ -717,12 +729,12 @@ const StatusDialog = props => {
717
729
  get fg() {
718
730
  return t().textMuted;
719
731
  }
720
- }), _el$64);
721
- _$insertNode(_el$64, _el$65);
722
- _$setProp(_el$64, "marginTop", 1);
732
+ }), _el$65);
723
733
  _$insertNode(_el$65, _el$66);
724
- _$insertNode(_el$66, _$createTextNode(`Memory`));
725
- _$insert(_el$52, _$createComponent(R, {
734
+ _$setProp(_el$65, "marginTop", 1);
735
+ _$insertNode(_el$66, _el$67);
736
+ _$insertNode(_el$67, _$createTextNode(`Memory`));
737
+ _$insert(_el$53, _$createComponent(R, {
726
738
  get t() {
727
739
  return t();
728
740
  },
@@ -734,7 +746,7 @@ const StatusDialog = props => {
734
746
  return t().accent;
735
747
  }
736
748
  }), null);
737
- _$insert(_el$52, _$createComponent(R, {
749
+ _$insert(_el$53, _$createComponent(R, {
738
750
  get t() {
739
751
  return t();
740
752
  },
@@ -751,10 +763,10 @@ const StatusDialog = props => {
751
763
  _v$16 = t().text,
752
764
  _v$17 = t().text,
753
765
  _v$18 = t().text;
754
- _v$15 !== _p$.e && (_p$.e = _$setProp(_el$53, "fg", _v$15, _p$.e));
755
- _v$16 !== _p$.t && (_p$.t = _$setProp(_el$57, "fg", _v$16, _p$.t));
756
- _v$17 !== _p$.a && (_p$.a = _$setProp(_el$61, "fg", _v$17, _p$.a));
757
- _v$18 !== _p$.o && (_p$.o = _$setProp(_el$65, "fg", _v$18, _p$.o));
766
+ _v$15 !== _p$.e && (_p$.e = _$setProp(_el$54, "fg", _v$15, _p$.e));
767
+ _v$16 !== _p$.t && (_p$.t = _$setProp(_el$58, "fg", _v$16, _p$.t));
768
+ _v$17 !== _p$.a && (_p$.a = _$setProp(_el$62, "fg", _v$17, _p$.a));
769
+ _v$18 !== _p$.o && (_p$.o = _$setProp(_el$66, "fg", _v$18, _p$.o));
758
770
  return _p$;
759
771
  }, {
760
772
  e: undefined,
@@ -762,26 +774,26 @@ const StatusDialog = props => {
762
774
  a: undefined,
763
775
  o: undefined
764
776
  });
765
- return _el$52;
777
+ return _el$53;
766
778
  })(), (() => {
767
- var _el$68 = _$createElement("box"),
768
- _el$69 = _$createElement("text"),
769
- _el$70 = _$createElement("b"),
770
- _el$72 = _$createElement("box"),
771
- _el$73 = _$createElement("text"),
772
- _el$74 = _$createElement("b"),
773
- _el$76 = _$createElement("box"),
774
- _el$77 = _$createElement("text"),
775
- _el$78 = _$createElement("b");
776
- _$insertNode(_el$68, _el$69);
777
- _$insertNode(_el$68, _el$72);
778
- _$insertNode(_el$68, _el$76);
779
- _$setProp(_el$68, "flexDirection", "column");
780
- _$setProp(_el$68, "flexGrow", 1);
781
- _$setProp(_el$68, "flexBasis", 0);
779
+ var _el$69 = _$createElement("box"),
780
+ _el$70 = _$createElement("text"),
781
+ _el$71 = _$createElement("b"),
782
+ _el$73 = _$createElement("box"),
783
+ _el$74 = _$createElement("text"),
784
+ _el$75 = _$createElement("b"),
785
+ _el$77 = _$createElement("box"),
786
+ _el$78 = _$createElement("text"),
787
+ _el$79 = _$createElement("b");
782
788
  _$insertNode(_el$69, _el$70);
783
- _$insertNode(_el$70, _$createTextNode(`Reductions`));
784
- _$insert(_el$68, _$createComponent(R, {
789
+ _$insertNode(_el$69, _el$73);
790
+ _$insertNode(_el$69, _el$77);
791
+ _$setProp(_el$69, "flexDirection", "column");
792
+ _$setProp(_el$69, "flexGrow", 1);
793
+ _$setProp(_el$69, "flexBasis", 0);
794
+ _$insertNode(_el$70, _el$71);
795
+ _$insertNode(_el$71, _$createTextNode(`Reductions`));
796
+ _$insert(_el$69, _$createComponent(R, {
785
797
  get t() {
786
798
  return t();
787
799
  },
@@ -789,8 +801,8 @@ const StatusDialog = props => {
789
801
  get v() {
790
802
  return `${formatThresholdPercent(s().executeThreshold)}%${s().executeThresholdClamped ? "*" : ""}`;
791
803
  }
792
- }), _el$72);
793
- _$insert(_el$68, _$createComponent(R, {
804
+ }), _el$73);
805
+ _$insert(_el$69, _$createComponent(R, {
794
806
  get t() {
795
807
  return t();
796
808
  },
@@ -798,12 +810,12 @@ const StatusDialog = props => {
798
810
  get v() {
799
811
  return `${fmt(s().lastNudgeTokens)} tok`;
800
812
  }
801
- }), _el$72);
802
- _$insertNode(_el$72, _el$73);
803
- _$setProp(_el$72, "marginTop", 1);
813
+ }), _el$73);
804
814
  _$insertNode(_el$73, _el$74);
805
- _$insertNode(_el$74, _$createTextNode(`Context Details`));
806
- _$insert(_el$68, _$createComponent(R, {
815
+ _$setProp(_el$73, "marginTop", 1);
816
+ _$insertNode(_el$74, _el$75);
817
+ _$insertNode(_el$75, _$createTextNode(`Context Details`));
818
+ _$insert(_el$69, _$createComponent(R, {
807
819
  get t() {
808
820
  return t();
809
821
  },
@@ -814,8 +826,8 @@ const StatusDialog = props => {
814
826
  get fg() {
815
827
  return t().textMuted;
816
828
  }
817
- }), _el$76);
818
- _$insert(_el$68, _$createComponent(R, {
829
+ }), _el$77);
830
+ _$insert(_el$69, _$createComponent(R, {
819
831
  get t() {
820
832
  return t();
821
833
  },
@@ -826,12 +838,12 @@ const StatusDialog = props => {
826
838
  get fg() {
827
839
  return t().textMuted;
828
840
  }
829
- }), _el$76);
830
- _$insertNode(_el$76, _el$77);
831
- _$setProp(_el$76, "marginTop", 1);
841
+ }), _el$77);
832
842
  _$insertNode(_el$77, _el$78);
833
- _$insertNode(_el$78, _$createTextNode(`History Compression`));
834
- _$insert(_el$68, (() => {
843
+ _$setProp(_el$77, "marginTop", 1);
844
+ _$insertNode(_el$78, _el$79);
845
+ _$insertNode(_el$79, _$createTextNode(`History Compression`));
846
+ _$insert(_el$69, (() => {
835
847
  var _c$11 = _$memo(() => typeof s().boundaryPresent === "boolean");
836
848
  return () => _c$11() && _$createComponent(R, {
837
849
  get t() {
@@ -843,7 +855,7 @@ const StatusDialog = props => {
843
855
  }
844
856
  });
845
857
  })(), null);
846
- _$insert(_el$68, (() => {
858
+ _$insert(_el$69, (() => {
847
859
  var _c$12 = _$memo(() => s().coverageOrdinal !== undefined);
848
860
  return () => _c$12() && _$createComponent(R, {
849
861
  get t() {
@@ -855,7 +867,7 @@ const StatusDialog = props => {
855
867
  }
856
868
  });
857
869
  })(), null);
858
- _$insert(_el$68, (() => {
870
+ _$insert(_el$69, (() => {
859
871
  var _c$13 = _$memo(() => typeof s().boundaryPresent === "boolean");
860
872
  return () => _c$13() && _$createComponent(R, {
861
873
  get t() {
@@ -867,7 +879,7 @@ const StatusDialog = props => {
867
879
  }
868
880
  });
869
881
  })(), null);
870
- _$insert(_el$68, _$createComponent(R, {
882
+ _$insert(_el$69, _$createComponent(R, {
871
883
  get t() {
872
884
  return t();
873
885
  },
@@ -876,7 +888,7 @@ const StatusDialog = props => {
876
888
  return `~${fmt(s().historyBlockTokens)} tok`;
877
889
  }
878
890
  }), null);
879
- _$insert(_el$68, (() => {
891
+ _$insert(_el$69, (() => {
880
892
  var _c$14 = _$memo(() => s().compressionBudget != null);
881
893
  return () => _c$14() && _$createComponent(R, {
882
894
  get t() {
@@ -888,7 +900,7 @@ const StatusDialog = props => {
888
900
  }
889
901
  });
890
902
  })(), null);
891
- _$insert(_el$68, (() => {
903
+ _$insert(_el$69, (() => {
892
904
  var _c$15 = _$memo(() => !!s().lastDreamerRunAt);
893
905
  return () => _c$15() && _$createComponent(R, {
894
906
  get t() {
@@ -907,31 +919,31 @@ const StatusDialog = props => {
907
919
  var _v$19 = t().text,
908
920
  _v$20 = t().text,
909
921
  _v$21 = t().text;
910
- _v$19 !== _p$.e && (_p$.e = _$setProp(_el$69, "fg", _v$19, _p$.e));
911
- _v$20 !== _p$.t && (_p$.t = _$setProp(_el$73, "fg", _v$20, _p$.t));
912
- _v$21 !== _p$.a && (_p$.a = _$setProp(_el$77, "fg", _v$21, _p$.a));
922
+ _v$19 !== _p$.e && (_p$.e = _$setProp(_el$70, "fg", _v$19, _p$.e));
923
+ _v$20 !== _p$.t && (_p$.t = _$setProp(_el$74, "fg", _v$20, _p$.t));
924
+ _v$21 !== _p$.a && (_p$.a = _$setProp(_el$78, "fg", _v$21, _p$.a));
913
925
  return _p$;
914
926
  }, {
915
927
  e: undefined,
916
928
  t: undefined,
917
929
  a: undefined
918
930
  });
919
- return _el$68;
931
+ return _el$69;
920
932
  })()];
921
933
  })());
922
934
  _$insert(_el$4, (() => {
923
935
  var _c$8 = _$memo(() => !!s().lastTransformError);
924
936
  return () => _c$8() && (() => {
925
- var _el$80 = _$createElement("box"),
926
- _el$81 = _$createElement("text"),
927
- _el$82 = _$createTextNode(`⚠ `);
928
- _$insertNode(_el$80, _el$81);
929
- _$setProp(_el$80, "marginTop", 1);
930
- _$setProp(_el$80, "width", "100%");
937
+ var _el$81 = _$createElement("box"),
938
+ _el$82 = _$createElement("text"),
939
+ _el$83 = _$createTextNode(`⚠ `);
931
940
  _$insertNode(_el$81, _el$82);
932
- _$insert(_el$81, () => s().lastTransformError, null);
933
- _$effect(_$p => _$setProp(_el$81, "fg", t().error, _$p));
934
- return _el$80;
941
+ _$setProp(_el$81, "marginTop", 1);
942
+ _$setProp(_el$81, "width", "100%");
943
+ _$insertNode(_el$82, _el$83);
944
+ _$insert(_el$82, () => s().lastTransformError, null);
945
+ _$effect(_$p => _$setProp(_el$82, "fg", t().error, _$p));
946
+ return _el$81;
935
947
  })();
936
948
  })(), _el$18);
937
949
  _$insertNode(_el$18, _el$19);
@@ -1058,7 +1070,7 @@ async function showRecompDialog(api, targetSessionId = getSessionId(api)) {
1058
1070
  api.ui.dialog.replace(() => _$createComponent(api.ui.DialogConfirm, {
1059
1071
  title: "\u26A0\uFE0F Recomp Confirmation",
1060
1072
  get message() {
1061
- return [count === 0 ? "This session has no compartments yet — recomp will build them from raw history." : `You have ${count} compartments.`, "", "Recomp will regenerate all compartments and facts from raw history.", "This may take a long time and consume significant tokens.", "", "Proceed?"].join("\n");
1073
+ return [count === 0 ? "This session has no compartments yet — recomp will build them from raw history." : `You have ${count} compartments.`, "", "Recomp will rebuild the compressed history from raw history. Saved memories are not changed.", "This may take a long time and consume significant tokens.", "", "Proceed?"].join("\n");
1062
1074
  },
1063
1075
  onConfirm: async () => {
1064
1076
  const requested = await requestRecomp(sessionId);
@@ -1165,31 +1177,31 @@ const EmbedDialog = props => {
1165
1177
  const t = () => theme();
1166
1178
  const lines = () => props.detail.statusText.split("\n");
1167
1179
  return (() => {
1168
- var _el$83 = _$createElement("box"),
1169
- _el$84 = _$createElement("box"),
1170
- _el$85 = _$createElement("text"),
1171
- _el$86 = _$createElement("b");
1172
- _$insertNode(_el$83, _el$84);
1173
- _$setProp(_el$83, "flexDirection", "column");
1174
- _$setProp(_el$83, "width", "100%");
1175
- _$setProp(_el$83, "paddingLeft", 2);
1176
- _$setProp(_el$83, "paddingRight", 2);
1177
- _$setProp(_el$83, "paddingTop", 1);
1178
- _$setProp(_el$83, "paddingBottom", 1);
1180
+ var _el$84 = _$createElement("box"),
1181
+ _el$85 = _$createElement("box"),
1182
+ _el$86 = _$createElement("text"),
1183
+ _el$87 = _$createElement("b");
1179
1184
  _$insertNode(_el$84, _el$85);
1180
- _$setProp(_el$84, "justifyContent", "center");
1185
+ _$setProp(_el$84, "flexDirection", "column");
1181
1186
  _$setProp(_el$84, "width", "100%");
1182
- _$setProp(_el$84, "marginBottom", 1);
1187
+ _$setProp(_el$84, "paddingLeft", 2);
1188
+ _$setProp(_el$84, "paddingRight", 2);
1189
+ _$setProp(_el$84, "paddingTop", 1);
1190
+ _$setProp(_el$84, "paddingBottom", 1);
1183
1191
  _$insertNode(_el$85, _el$86);
1184
- _$insertNode(_el$86, _$createTextNode(`Embedding`));
1185
- _$insert(_el$83, () => lines().map(line => (() => {
1186
- var _el$88 = _$createElement("text");
1187
- _$insert(_el$88, line);
1188
- _$effect(_$p => _$setProp(_el$88, "fg", t().text, _$p));
1189
- return _el$88;
1192
+ _$setProp(_el$85, "justifyContent", "center");
1193
+ _$setProp(_el$85, "width", "100%");
1194
+ _$setProp(_el$85, "marginBottom", 1);
1195
+ _$insertNode(_el$86, _el$87);
1196
+ _$insertNode(_el$87, _$createTextNode(`Embedding`));
1197
+ _$insert(_el$84, () => lines().map(line => (() => {
1198
+ var _el$89 = _$createElement("text");
1199
+ _$insert(_el$89, line);
1200
+ _$effect(_$p => _$setProp(_el$89, "fg", t().text, _$p));
1201
+ return _el$89;
1190
1202
  })()), null);
1191
- _$effect(_$p => _$setProp(_el$85, "fg", t().accent, _$p));
1192
- return _el$83;
1203
+ _$effect(_$p => _$setProp(_el$86, "fg", t().accent, _$p));
1204
+ return _el$84;
1193
1205
  })();
1194
1206
  };
1195
1207
  async function showEmbedDialog(api, targetSessionId = getSessionId(api)) {
@@ -1255,11 +1267,11 @@ function renderTuiProbeCustomArm(api, result) {
1255
1267
  api.ui.dialog.replace(() => {
1256
1268
  try {
1257
1269
  return (() => {
1258
- var _el$89 = _$createElement("box"),
1259
- _el$90 = _$createElement("text");
1260
- _$insertNode(_el$89, _el$90);
1261
- _$insertNode(_el$90, _$createTextNode(`probe`));
1262
- return _el$89;
1270
+ var _el$90 = _$createElement("box"),
1271
+ _el$91 = _$createElement("text");
1272
+ _$insertNode(_el$90, _el$91);
1273
+ _$insertNode(_el$91, _$createTextNode(`probe`));
1274
+ return _el$90;
1263
1275
  })();
1264
1276
  } catch (error) {
1265
1277
  result.customThrew = probeErrorMessage(error);
@@ -1332,11 +1344,11 @@ function reportTuiProbe(api, result) {
1332
1344
  if (result.customThrew === null) {
1333
1345
  try {
1334
1346
  api.ui.dialog.replace(() => (() => {
1335
- var _el$92 = _$createElement("box"),
1336
- _el$93 = _$createElement("text");
1337
- _$insertNode(_el$92, _el$93);
1338
- _$insert(_el$93, summary);
1339
- return _el$92;
1347
+ var _el$93 = _$createElement("box"),
1348
+ _el$94 = _$createElement("text");
1349
+ _$insertNode(_el$93, _el$94);
1350
+ _$insert(_el$94, summary);
1351
+ return _el$93;
1340
1352
  })());
1341
1353
  return;
1342
1354
  } catch (error) {