@cortexkit/opencode-magic-context 0.37.0 → 0.38.1

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 (150) hide show
  1. package/README.md +2 -0
  2. package/dist/{announcement-6c1g4es4.js → announcement-5eg4t64s.js} +6 -6
  3. package/dist/config/schema/magic-context.d.ts +1 -1
  4. package/dist/{conflict-warning-hook-an4fxhwf.js → conflict-warning-hook-f406ggbw.js} +5 -5
  5. package/dist/{derive-budgets-0f8xpyw2.js → derive-budgets-xk8cy5e6.js} +5 -5
  6. package/dist/{emscripten-module-ap8t3st0.js → emscripten-module-49k43zfy.js} +1 -1
  7. package/dist/{emscripten-module-682pfzaa.js → emscripten-module-ex4v0x4z.js} +1 -1
  8. package/dist/{emscripten-module-r5h7aghp.js → emscripten-module-jfs3d1dq.js} +1 -1
  9. package/dist/{emscripten-module-bkktz927.js → emscripten-module-ss4g4spn.js} +1 -1
  10. package/dist/features/magic-context/dreamer/classify-prompt.d.ts +5 -1
  11. package/dist/features/magic-context/dreamer/classify-prompt.d.ts.map +1 -1
  12. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  13. package/dist/features/magic-context/dreamer/manifest-parser.d.ts +8 -0
  14. package/dist/features/magic-context/dreamer/manifest-parser.d.ts.map +1 -1
  15. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts +7 -1
  16. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts.map +1 -1
  17. package/dist/features/magic-context/dreamer/map-memories.d.ts +18 -0
  18. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  19. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts +17 -6
  20. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts.map +1 -1
  21. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts +5 -0
  22. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
  23. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  24. package/dist/features/magic-context/dreamer/verify-prompt.d.ts +5 -1
  25. package/dist/features/magic-context/dreamer/verify-prompt.d.ts.map +1 -1
  26. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  27. package/dist/features/magic-context/fail-closed-block.d.ts +6 -1
  28. package/dist/features/magic-context/fail-closed-block.d.ts.map +1 -1
  29. package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -1
  30. package/dist/features/magic-context/memory/types.d.ts +16 -0
  31. package/dist/features/magic-context/memory/types.d.ts.map +1 -1
  32. package/dist/features/magic-context/message-index.d.ts +3 -2
  33. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  34. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  35. package/dist/features/magic-context/reclaim-protection.d.ts +13 -0
  36. package/dist/features/magic-context/reclaim-protection.d.ts.map +1 -0
  37. package/dist/features/magic-context/storage-db.d.ts +7 -2
  38. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  39. package/dist/features/magic-context/storage-embedding-measurements.d.ts +1 -1
  40. package/dist/features/magic-context/storage-embedding-measurements.d.ts.map +1 -1
  41. package/dist/features/magic-context/storage-meta-persisted.d.ts +7 -6
  42. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  43. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  44. package/dist/features/magic-context/storage-session-tables.d.ts +18 -0
  45. package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -0
  46. package/dist/features/magic-context/storage-tags.d.ts +13 -5
  47. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  48. package/dist/features/magic-context/transform-decision-log.d.ts +22 -0
  49. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
  50. package/dist/{ffi-d8pnn3mn.js → ffi-bbm9vkfa.js} +1 -1
  51. package/dist/{ffi-04jzypzk.js → ffi-kb5r0x1j.js} +1 -1
  52. package/dist/{ffi-t8b862vx.js → ffi-qnrt0y78.js} +1 -1
  53. package/dist/{ffi-9wvt2wwz.js → ffi-yx2hpf4p.js} +1 -1
  54. package/dist/hooks/auto-update-checker/checker.d.ts +8 -1
  55. package/dist/hooks/auto-update-checker/checker.d.ts.map +1 -1
  56. package/dist/hooks/auto-update-checker/index.d.ts.map +1 -1
  57. package/dist/hooks/magic-context/channel2-cycle.d.ts +16 -0
  58. package/dist/hooks/magic-context/channel2-cycle.d.ts.map +1 -0
  59. package/dist/hooks/magic-context/channel2-delivery.d.ts +3 -9
  60. package/dist/hooks/magic-context/channel2-delivery.d.ts.map +1 -1
  61. package/dist/hooks/magic-context/command-handler.d.ts +2 -0
  62. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  63. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts +33 -103
  64. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -1
  65. package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -1
  66. package/dist/hooks/magic-context/empty-task-output.d.ts +16 -0
  67. package/dist/hooks/magic-context/empty-task-output.d.ts.map +1 -0
  68. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  69. package/dist/hooks/magic-context/execute-status.d.ts +2 -1
  70. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  71. package/dist/hooks/magic-context/fold-execution-gate.d.ts +2 -0
  72. package/dist/hooks/magic-context/fold-execution-gate.d.ts.map +1 -0
  73. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  74. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  75. package/dist/hooks/magic-context/inject-compartments.d.ts +6 -0
  76. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  77. package/dist/hooks/magic-context/live-session-state.d.ts +3 -0
  78. package/dist/hooks/magic-context/live-session-state.d.ts.map +1 -1
  79. package/dist/hooks/magic-context/rust-mode-transform.d.ts +4 -2
  80. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  81. package/dist/hooks/magic-context/strip-content.d.ts +10 -8
  82. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  83. package/dist/hooks/magic-context/supersession-reclaim.d.ts.map +1 -1
  84. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  85. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts +78 -0
  86. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -0
  87. package/dist/hooks/magic-context/tool-reclaim.d.ts.map +1 -1
  88. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +7 -0
  89. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  90. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  91. package/dist/{index-cae89eas.js → index-1h9t9xb5.js} +2 -2
  92. package/dist/{index-wckvcay0.js → index-1yh8g550.js} +8 -6
  93. package/dist/index-22mw8km4.js +558 -0
  94. package/dist/{index-cgyfn1s2.js → index-2wchnyk6.js} +4 -2
  95. package/dist/{index-0ze9p983.js → index-5znjkjws.js} +9996 -7043
  96. package/dist/{index-4cz5nfxf.js → index-btj2qhmc.js} +5 -5
  97. package/dist/{index-q0t189ay.js → index-mg1yx1ph.js} +28 -36
  98. package/dist/{index-ayd60xnw.js → index-rgdqj8nj.js} +3 -3
  99. package/dist/{index-ygcng9t8.js → index-rpgg35ms.js} +50 -50
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +776 -846
  102. package/dist/{module-ES6BEMUI-atfbtnbp.js → module-ES6BEMUI-1yjdz59c.js} +4 -4
  103. package/dist/{module-asyncify-2EFITU5U-7xckhw8w.js → module-asyncify-2EFITU5U-fdkx4fhy.js} +1 -1
  104. package/dist/plugin/dream-timer.d.ts +5 -0
  105. package/dist/plugin/dream-timer.d.ts.map +1 -1
  106. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  107. package/dist/plugin/messages-transform.d.ts.map +1 -1
  108. package/dist/plugin/rpc-handlers.d.ts +2 -0
  109. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  110. package/dist/{prompt-context-jpe2dstn.js → prompt-context-29qkb28f.js} +1 -1
  111. package/dist/{recomp-orchestrator-c3ff16k7.js → recomp-orchestrator-p030kxtc.js} +15 -15
  112. package/dist/{resolve-fallbacks-5n5tvge1.js → resolve-fallbacks-qf0ekmz9.js} +3 -3
  113. package/dist/{rpc-notifications-4d22ybn5.js → rpc-notifications-1ffm755w.js} +6 -6
  114. package/dist/{safe-notification-target-b693f9x3.js → safe-notification-target-tepzc2xa.js} +3 -3
  115. package/dist/{send-session-notification-dxske5zm.js → send-session-notification-6v5b72b4.js} +7 -7
  116. package/dist/shared/harness-provider-map.d.ts +6 -0
  117. package/dist/shared/harness-provider-map.d.ts.map +1 -1
  118. package/dist/shared/models-dev-cache.d.ts +2 -0
  119. package/dist/shared/models-dev-cache.d.ts.map +1 -1
  120. package/dist/shared/rpc-server.d.ts.map +1 -1
  121. package/dist/shared/rpc-types.d.ts +15 -0
  122. package/dist/shared/rpc-types.d.ts.map +1 -1
  123. package/dist/shared/rpc-utils.d.ts +9 -0
  124. package/dist/shared/rpc-utils.d.ts.map +1 -1
  125. package/dist/shared/tail-hygiene-status.d.ts +15 -0
  126. package/dist/shared/tail-hygiene-status.d.ts.map +1 -0
  127. package/dist/shared/window-geometry.d.ts +3 -2
  128. package/dist/shared/window-geometry.d.ts.map +1 -1
  129. package/dist/{storage-meta-session-mk4gsnke.js → storage-meta-session-2306t3j7.js} +8 -8
  130. package/dist/{task-config-gbp7r23g.js → task-config-at3adc59.js} +6 -6
  131. package/package.json +4 -2
  132. package/src/config/schema/magic-context.test.ts +1 -0
  133. package/src/config/schema/magic-context.ts +5 -5
  134. package/src/shared/harness-provider-map.test.ts +36 -0
  135. package/src/shared/harness-provider-map.ts +8 -0
  136. package/src/shared/models-dev-cache.test.ts +25 -0
  137. package/src/shared/models-dev-cache.ts +5 -4
  138. package/src/shared/rpc-server.ts +1 -0
  139. package/src/shared/rpc-types.ts +16 -0
  140. package/src/shared/rpc-utils.test.ts +25 -0
  141. package/src/shared/rpc-utils.ts +80 -0
  142. package/src/shared/tail-hygiene-status.ts +57 -0
  143. package/src/shared/window-geometry.test.ts +34 -1
  144. package/src/shared/window-geometry.ts +37 -40
  145. package/src/tui/index.tsx +12 -2
  146. package/src/tui/slots/sidebar-content.tsx +17 -5
  147. package/src/tui/tui-compiled-runtime-imports.test.ts +3 -0
  148. package/src/tui-compiled/index.tsx +312 -290
  149. package/src/tui-compiled/slots/sidebar-content.tsx +316 -287
  150. package/dist/index-crke4z5j.js +0 -3022
@@ -12,6 +12,7 @@ import packageJson from "../../../package.json";
12
12
  import { badgeTextColor } from "../badge-contrast";
13
13
  import { loadSidebarSnapshot } from "../data/context-db";
14
14
  import { formatThresholdPercent } from "../../shared/format-threshold";
15
+ import { formatTailHygiene } from "../../shared/tail-hygiene-status";
15
16
  import { compactionOffSidebarRows, nativeCompactionContextLabel } from "../compaction-off";
16
17
  import { computeEffectiveOrder, DEFAULT_SLOT_ORDER, PLUGIN_KEY, queueTuiPreferenceUpdate, readTuiPreferencesFile, readTuiPreferencesFileSync, resolveMagicContextPrefs, watchTuiPreferences } from "../../shared/tui-preferences";
17
18
 
@@ -212,7 +213,7 @@ const TokenBreakdown = props => {
212
213
  key: "conv",
213
214
  tokens: s.conversationTokens,
214
215
  color: COLORS.conversation,
215
- label: "Conversation"
216
+ label: "Conversation*"
216
217
  });
217
218
 
218
219
  // Tool Calls = tool_use/tool_result/tool/tool-invocation parts in messages
@@ -280,43 +281,47 @@ const TokenBreakdown = props => {
280
281
  _$insert(_el$, (() => {
281
282
  var _c$ = _$memo(() => !!!props.collapsed);
282
283
  return () => _c$() && (() => {
283
- var _el$4 = _$createElement("box");
284
+ var _el$4 = _$createElement("box"),
285
+ _el$5 = _$createElement("text");
286
+ _$insertNode(_el$4, _el$5);
284
287
  _$setProp(_el$4, "flexDirection", "column");
285
288
  _$setProp(_el$4, "marginTop", 0);
286
289
  _$insert(_el$4, () => segments().map(seg => {
287
290
  const pct = (seg.tokens / totalTokens() * 100).toFixed(0);
288
291
  return (() => {
289
- var _el$5 = _$createElement("box"),
290
- _el$6 = _$createElement("text"),
291
- _el$7 = _$createElement("text"),
292
- _el$8 = _$createTextNode(` (`),
293
- _el$9 = _$createTextNode(`%)`);
294
- _$insertNode(_el$5, _el$6);
295
- _$insertNode(_el$5, _el$7);
296
- _$setProp(_el$5, "width", "100%");
297
- _$setProp(_el$5, "flexDirection", "row");
298
- _$setProp(_el$5, "justifyContent", "space-between");
299
- _$insert(_el$6, () => seg.label);
292
+ var _el$7 = _$createElement("box"),
293
+ _el$8 = _$createElement("text"),
294
+ _el$9 = _$createElement("text"),
295
+ _el$0 = _$createTextNode(` (`),
296
+ _el$1 = _$createTextNode(`%)`);
300
297
  _$insertNode(_el$7, _el$8);
301
298
  _$insertNode(_el$7, _el$9);
302
- _$insert(_el$7, () => compactTokens(seg.tokens), _el$8);
303
- _$insert(_el$7, pct, _el$9);
299
+ _$setProp(_el$7, "width", "100%");
300
+ _$setProp(_el$7, "flexDirection", "row");
301
+ _$setProp(_el$7, "justifyContent", "space-between");
302
+ _$insert(_el$8, () => seg.label);
303
+ _$insertNode(_el$9, _el$0);
304
+ _$insertNode(_el$9, _el$1);
305
+ _$insert(_el$9, () => compactTokens(seg.tokens), _el$0);
306
+ _$insert(_el$9, pct, _el$1);
304
307
  _$effect(_p$ => {
305
308
  var _v$4 = seg.key,
306
309
  _v$5 = seg.color,
307
310
  _v$6 = props.theme.textMuted;
308
- _v$4 !== _p$.e && (_p$.e = _$setProp(_el$5, "key", _v$4, _p$.e));
309
- _v$5 !== _p$.t && (_p$.t = _$setProp(_el$6, "fg", _v$5, _p$.t));
310
- _v$6 !== _p$.a && (_p$.a = _$setProp(_el$7, "fg", _v$6, _p$.a));
311
+ _v$4 !== _p$.e && (_p$.e = _$setProp(_el$7, "key", _v$4, _p$.e));
312
+ _v$5 !== _p$.t && (_p$.t = _$setProp(_el$8, "fg", _v$5, _p$.t));
313
+ _v$6 !== _p$.a && (_p$.a = _$setProp(_el$9, "fg", _v$6, _p$.a));
311
314
  return _p$;
312
315
  }, {
313
316
  e: undefined,
314
317
  t: undefined,
315
318
  a: undefined
316
319
  });
317
- return _el$5;
320
+ return _el$7;
318
321
  })();
319
- }));
322
+ }), _el$5);
323
+ _$insertNode(_el$5, _$createTextNode(`* includes Reasoning; hygiene excludes it`));
324
+ _$effect(_$p => _$setProp(_el$5, "fg", props.theme.textMuted, _$p));
320
325
  return _el$4;
321
326
  })();
322
327
  })(), null);
@@ -331,42 +336,42 @@ const StatRow = props => {
331
336
  return props.theme.text;
332
337
  });
333
338
  return (() => {
334
- var _el$0 = _$createElement("box"),
335
- _el$1 = _$createElement("text"),
336
- _el$10 = _$createElement("text"),
337
- _el$11 = _$createElement("b");
338
- _$insertNode(_el$0, _el$1);
339
- _$insertNode(_el$0, _el$10);
340
- _$setProp(_el$0, "width", "100%");
341
- _$setProp(_el$0, "flexDirection", "row");
342
- _$setProp(_el$0, "justifyContent", "space-between");
343
- _$insert(_el$1, () => props.label);
339
+ var _el$10 = _$createElement("box"),
340
+ _el$11 = _$createElement("text"),
341
+ _el$12 = _$createElement("text"),
342
+ _el$13 = _$createElement("b");
344
343
  _$insertNode(_el$10, _el$11);
345
- _$insert(_el$11, () => props.value);
344
+ _$insertNode(_el$10, _el$12);
345
+ _$setProp(_el$10, "width", "100%");
346
+ _$setProp(_el$10, "flexDirection", "row");
347
+ _$setProp(_el$10, "justifyContent", "space-between");
348
+ _$insert(_el$11, () => props.label);
349
+ _$insertNode(_el$12, _el$13);
350
+ _$insert(_el$13, () => props.value);
346
351
  _$effect(_p$ => {
347
352
  var _v$7 = props.theme.textMuted,
348
353
  _v$8 = fg();
349
- _v$7 !== _p$.e && (_p$.e = _$setProp(_el$1, "fg", _v$7, _p$.e));
350
- _v$8 !== _p$.t && (_p$.t = _$setProp(_el$10, "fg", _v$8, _p$.t));
354
+ _v$7 !== _p$.e && (_p$.e = _$setProp(_el$11, "fg", _v$7, _p$.e));
355
+ _v$8 !== _p$.t && (_p$.t = _$setProp(_el$12, "fg", _v$8, _p$.t));
351
356
  return _p$;
352
357
  }, {
353
358
  e: undefined,
354
359
  t: undefined
355
360
  });
356
- return _el$0;
361
+ return _el$10;
357
362
  })();
358
363
  };
359
364
  const SectionHeader = props => (() => {
360
- var _el$12 = _$createElement("box"),
361
- _el$13 = _$createElement("text"),
362
- _el$14 = _$createElement("b");
363
- _$insertNode(_el$12, _el$13);
364
- _$setProp(_el$12, "width", "100%");
365
- _$setProp(_el$12, "marginTop", 1);
366
- _$insertNode(_el$13, _el$14);
367
- _$insert(_el$14, () => props.title);
368
- _$effect(_$p => _$setProp(_el$13, "fg", props.theme.text, _$p));
369
- return _el$12;
365
+ var _el$14 = _$createElement("box"),
366
+ _el$15 = _$createElement("text"),
367
+ _el$16 = _$createElement("b");
368
+ _$insertNode(_el$14, _el$15);
369
+ _$setProp(_el$14, "width", "100%");
370
+ _$setProp(_el$14, "marginTop", 1);
371
+ _$insertNode(_el$15, _el$16);
372
+ _$insert(_el$16, () => props.title);
373
+ _$effect(_$p => _$setProp(_el$15, "fg", props.theme.text, _$p));
374
+ return _el$14;
370
375
  })();
371
376
 
372
377
  // Live recomp / session-upgrade progress. Renders while an upgrade runs (and
@@ -425,59 +430,59 @@ const RecompProgressSection = props => {
425
430
  }
426
431
  });
427
432
  return [(() => {
428
- var _el$15 = _$createElement("box"),
429
- _el$16 = _$createElement("text"),
430
- _el$17 = _$createElement("b"),
431
- _el$18 = _$createElement("text");
432
- _$insertNode(_el$15, _el$16);
433
- _$insertNode(_el$15, _el$18);
434
- _$setProp(_el$15, "width", "100%");
435
- _$setProp(_el$15, "marginTop", 1);
436
- _$setProp(_el$15, "flexDirection", "row");
437
- _$setProp(_el$15, "justifyContent", "space-between");
438
- _$insertNode(_el$16, _el$17);
439
- _$insert(_el$17, verb);
440
- _$insert(_el$18, () => label().text);
433
+ var _el$17 = _$createElement("box"),
434
+ _el$18 = _$createElement("text"),
435
+ _el$19 = _$createElement("b"),
436
+ _el$20 = _$createElement("text");
437
+ _$insertNode(_el$17, _el$18);
438
+ _$insertNode(_el$17, _el$20);
439
+ _$setProp(_el$17, "width", "100%");
440
+ _$setProp(_el$17, "marginTop", 1);
441
+ _$setProp(_el$17, "flexDirection", "row");
442
+ _$setProp(_el$17, "justifyContent", "space-between");
443
+ _$insertNode(_el$18, _el$19);
444
+ _$insert(_el$19, verb);
445
+ _$insert(_el$20, () => label().text);
441
446
  _$effect(_p$ => {
442
447
  var _v$9 = props.theme.text,
443
448
  _v$0 = label().color;
444
- _v$9 !== _p$.e && (_p$.e = _$setProp(_el$16, "fg", _v$9, _p$.e));
445
- _v$0 !== _p$.t && (_p$.t = _$setProp(_el$18, "fg", _v$0, _p$.t));
449
+ _v$9 !== _p$.e && (_p$.e = _$setProp(_el$18, "fg", _v$9, _p$.e));
450
+ _v$0 !== _p$.t && (_p$.t = _$setProp(_el$20, "fg", _v$0, _p$.t));
446
451
  return _p$;
447
452
  }, {
448
453
  e: undefined,
449
454
  t: undefined
450
455
  });
451
- return _el$15;
456
+ return _el$17;
452
457
  })(), _$memo(() => _$memo(() => !!(phase() === "recomp" && props.progress.totalMessages > 0))() && (() => {
453
- var _el$19 = _$createElement("box"),
454
- _el$20 = _$createElement("text"),
455
- _el$21 = _$createElement("text"),
456
- _el$22 = _$createTextNode(`%`);
457
- _$insertNode(_el$19, _el$20);
458
- _$insertNode(_el$19, _el$21);
459
- _$setProp(_el$19, "width", "100%");
460
- _$setProp(_el$19, "flexDirection", "row");
461
- _$setProp(_el$19, "justifyContent", "space-between");
462
- _$insert(_el$20, () => progressBar(fraction()));
458
+ var _el$21 = _$createElement("box"),
459
+ _el$22 = _$createElement("text"),
460
+ _el$23 = _$createElement("text"),
461
+ _el$24 = _$createTextNode(`%`);
463
462
  _$insertNode(_el$21, _el$22);
464
- _$insert(_el$21, pct, _el$22);
463
+ _$insertNode(_el$21, _el$23);
464
+ _$setProp(_el$21, "width", "100%");
465
+ _$setProp(_el$21, "flexDirection", "row");
466
+ _$setProp(_el$21, "justifyContent", "space-between");
467
+ _$insert(_el$22, () => progressBar(fraction()));
468
+ _$insertNode(_el$23, _el$24);
469
+ _$insert(_el$23, pct, _el$24);
465
470
  _$effect(_p$ => {
466
471
  var _v$1 = props.theme.accent,
467
472
  _v$10 = props.theme.textMuted;
468
- _v$1 !== _p$.e && (_p$.e = _$setProp(_el$20, "fg", _v$1, _p$.e));
469
- _v$10 !== _p$.t && (_p$.t = _$setProp(_el$21, "fg", _v$10, _p$.t));
473
+ _v$1 !== _p$.e && (_p$.e = _$setProp(_el$22, "fg", _v$1, _p$.e));
474
+ _v$10 !== _p$.t && (_p$.t = _$setProp(_el$23, "fg", _v$10, _p$.t));
470
475
  return _p$;
471
476
  }, {
472
477
  e: undefined,
473
478
  t: undefined
474
479
  });
475
- return _el$19;
480
+ return _el$21;
476
481
  })()), _$memo(() => _$memo(() => !!((phase() === "recomp" || phase() === "migration") && props.progress.note))() && (() => {
477
- var _el$23 = _$createElement("text");
478
- _$insert(_el$23, () => props.progress.note);
479
- _$effect(_$p => _$setProp(_el$23, "fg", props.theme.textMuted, _$p));
480
- return _el$23;
482
+ var _el$25 = _$createElement("text");
483
+ _$insert(_el$25, () => props.progress.note);
484
+ _$effect(_$p => _$setProp(_el$25, "fg", props.theme.textMuted, _$p));
485
+ return _el$25;
481
486
  })()), _$memo(() => _$memo(() => !!(phase() === "recomp" && props.progress.kind !== "embed"))() && _$createComponent(StatRow, {
482
487
  get theme() {
483
488
  return props.theme;
@@ -497,10 +502,10 @@ const RecompProgressSection = props => {
497
502
  },
498
503
  dim: true
499
504
  })), _$memo(() => _$memo(() => !!((phase() === "failed" || phase() === "skipped") && props.progress.message))() && (() => {
500
- var _el$24 = _$createElement("text");
501
- _$insert(_el$24, () => props.progress.message);
502
- _$effect(_$p => _$setProp(_el$24, "fg", props.theme.textMuted, _$p));
503
- return _el$24;
505
+ var _el$26 = _$createElement("text");
506
+ _$insert(_el$26, () => props.progress.message);
507
+ _$effect(_$p => _$setProp(_el$26, "fg", props.theme.textMuted, _$p));
508
+ return _el$26;
504
509
  })())];
505
510
  };
506
511
  const SidebarContent = props => {
@@ -722,122 +727,122 @@ const SidebarContent = props => {
722
727
  return props.theme.accent;
723
728
  });
724
729
  return (() => {
725
- var _el$25 = _$createElement("box"),
726
- _el$26 = _$createElement("box"),
727
- _el$27 = _$createElement("box"),
728
- _el$28 = _$createElement("text"),
729
- _el$29 = _$createElement("b"),
730
+ var _el$27 = _$createElement("box"),
731
+ _el$28 = _$createElement("box"),
732
+ _el$29 = _$createElement("box"),
730
733
  _el$30 = _$createElement("text"),
731
- _el$31 = _$createTextNode(`v`);
732
- _$insertNode(_el$25, _el$26);
733
- _$setProp(_el$25, "width", "100%");
734
- _$setProp(_el$25, "flexDirection", "column");
735
- _$setProp(_el$25, "border", SINGLE_BORDER);
736
- _$setProp(_el$25, "paddingTop", 1);
737
- _$setProp(_el$25, "paddingBottom", 1);
738
- _$setProp(_el$25, "paddingLeft", 1);
739
- _$setProp(_el$25, "paddingRight", 1);
740
- _$insertNode(_el$26, _el$27);
741
- _$insertNode(_el$26, _el$30);
742
- _$setProp(_el$26, "flexDirection", "row");
743
- _$setProp(_el$26, "justifyContent", "space-between");
744
- _$setProp(_el$26, "alignItems", "center");
745
- _$setProp(_el$26, "onMouseDown", () => props.controller.toggleCollapsed());
734
+ _el$31 = _$createElement("b"),
735
+ _el$32 = _$createElement("text"),
736
+ _el$33 = _$createTextNode(`v`);
746
737
  _$insertNode(_el$27, _el$28);
738
+ _$setProp(_el$27, "width", "100%");
739
+ _$setProp(_el$27, "flexDirection", "column");
740
+ _$setProp(_el$27, "border", SINGLE_BORDER);
741
+ _$setProp(_el$27, "paddingTop", 1);
742
+ _$setProp(_el$27, "paddingBottom", 1);
747
743
  _$setProp(_el$27, "paddingLeft", 1);
748
744
  _$setProp(_el$27, "paddingRight", 1);
749
745
  _$insertNode(_el$28, _el$29);
750
- _$insert(_el$29, () => collapsed() ? "▶ " : "▼ ", null);
751
- _$insert(_el$29, headerLabel, null);
746
+ _$insertNode(_el$28, _el$32);
747
+ _$setProp(_el$28, "flexDirection", "row");
748
+ _$setProp(_el$28, "justifyContent", "space-between");
749
+ _$setProp(_el$28, "alignItems", "center");
750
+ _$setProp(_el$28, "onMouseDown", () => props.controller.toggleCollapsed());
751
+ _$insertNode(_el$29, _el$30);
752
+ _$setProp(_el$29, "paddingLeft", 1);
753
+ _$setProp(_el$29, "paddingRight", 1);
752
754
  _$insertNode(_el$30, _el$31);
753
- _$insert(_el$30, () => packageJson.version, null);
754
- _$insert(_el$25, (() => {
755
+ _$insert(_el$31, () => collapsed() ? "▶ " : "▼ ", null);
756
+ _$insert(_el$31, headerLabel, null);
757
+ _$insertNode(_el$32, _el$33);
758
+ _$insert(_el$32, () => packageJson.version, null);
759
+ _$insert(_el$27, (() => {
755
760
  var _c$2 = _$memo(() => !!s()?.lastTransformError);
756
761
  return () => _c$2() && (() => {
757
- var _el$32 = _$createElement("box"),
758
- _el$33 = _$createElement("text"),
759
- _el$34 = _$createTextNode(`⚠ `);
760
- _$insertNode(_el$32, _el$33);
761
- _$setProp(_el$32, "marginTop", 1);
762
- _$setProp(_el$32, "width", "100%");
763
- _$insertNode(_el$33, _el$34);
764
- _$insert(_el$33, () => s().lastTransformError, null);
765
- _$effect(_$p => _$setProp(_el$33, "fg", props.theme.error, _$p));
766
- return _el$32;
762
+ var _el$34 = _$createElement("box"),
763
+ _el$35 = _$createElement("text"),
764
+ _el$36 = _$createTextNode(`⚠ `);
765
+ _$insertNode(_el$34, _el$35);
766
+ _$setProp(_el$34, "marginTop", 1);
767
+ _$setProp(_el$34, "width", "100%");
768
+ _$insertNode(_el$35, _el$36);
769
+ _$insert(_el$35, () => s().lastTransformError, null);
770
+ _$effect(_$p => _$setProp(_el$35, "fg", props.theme.error, _$p));
771
+ return _el$34;
767
772
  })();
768
773
  })(), null);
769
- _$insert(_el$25, (() => {
774
+ _$insert(_el$27, (() => {
770
775
  var _c$3 = _$memo(() => !!s()?.dreamerProgress);
771
776
  return () => _c$3() && (() => {
772
- var _el$35 = _$createElement("box"),
773
- _el$36 = _$createElement("text"),
774
- _el$37 = _$createTextNode(`Dreamer `),
775
- _el$38 = _$createTextNode(`: `),
776
- _el$39 = _$createTextNode(`/`),
777
- _el$40 = _$createTextNode(` processed`);
778
- _$insertNode(_el$35, _el$36);
779
- _$setProp(_el$35, "marginTop", 1);
780
- _$setProp(_el$35, "width", "100%");
781
- _$insertNode(_el$36, _el$37);
782
- _$insertNode(_el$36, _el$38);
783
- _$insertNode(_el$36, _el$39);
784
- _$insertNode(_el$36, _el$40);
785
- _$insert(_el$36, () => s().dreamerProgress.task, _el$38);
786
- _$insert(_el$36, () => s().dreamerProgress.processed, _el$39);
787
- _$insert(_el$36, () => s().dreamerProgress.total, _el$40);
788
- _$effect(_$p => _$setProp(_el$36, "fg", props.theme.warning, _$p));
789
- return _el$35;
777
+ var _el$37 = _$createElement("box"),
778
+ _el$38 = _$createElement("text"),
779
+ _el$39 = _$createTextNode(`Dreamer `),
780
+ _el$40 = _$createTextNode(`: `),
781
+ _el$41 = _$createTextNode(`/`),
782
+ _el$42 = _$createTextNode(` processed`);
783
+ _$insertNode(_el$37, _el$38);
784
+ _$setProp(_el$37, "marginTop", 1);
785
+ _$setProp(_el$37, "width", "100%");
786
+ _$insertNode(_el$38, _el$39);
787
+ _$insertNode(_el$38, _el$40);
788
+ _$insertNode(_el$38, _el$41);
789
+ _$insertNode(_el$38, _el$42);
790
+ _$insert(_el$38, () => s().dreamerProgress.task, _el$40);
791
+ _$insert(_el$38, () => s().dreamerProgress.processed, _el$41);
792
+ _$insert(_el$38, () => s().dreamerProgress.total, _el$42);
793
+ _$effect(_$p => _$setProp(_el$38, "fg", props.theme.warning, _$p));
794
+ return _el$37;
790
795
  })();
791
796
  })(), null);
792
- _$insert(_el$25, (() => {
797
+ _$insert(_el$27, (() => {
793
798
  var _c$4 = _$memo(() => !!(s() && s().inputTokens > 0));
794
799
  return () => _c$4() && (() => {
795
- var _el$41 = _$createElement("box");
796
- _$setProp(_el$41, "flexDirection", "column");
797
- _$insert(_el$41, (() => {
800
+ var _el$43 = _$createElement("box");
801
+ _$setProp(_el$43, "flexDirection", "column");
802
+ _$insert(_el$43, (() => {
798
803
  var _c$7 = _$memo(() => (s()?.contextLimit ?? 0) > 0);
799
804
  return () => _c$7() && (() => {
800
- var _el$42 = _$createElement("box"),
801
- _el$43 = _$createElement("text"),
802
- _el$44 = _$createTextNode(` / `);
803
- _$insertNode(_el$42, _el$43);
804
- _$setProp(_el$42, "width", "100%");
805
- _$setProp(_el$42, "flexDirection", "row");
806
- _$setProp(_el$42, "justifyContent", "space-between");
807
- _$insert(_el$42, (() => {
808
- var _c$8 = _$memo(() => !!compactionOff());
809
- return () => _c$8() ? (() => {
810
- var _el$45 = _$createElement("text"),
811
- _el$46 = _$createElement("b");
812
- _$insertNode(_el$45, _el$46);
813
- _$insert(_el$46, () => nativeCompactionContextLabel(s()));
814
- _$effect(_$p => _$setProp(_el$45, "fg", contextSummaryColor(), _$p));
815
- return _el$45;
816
- })() : (() => {
805
+ var _el$44 = _$createElement("box"),
806
+ _el$45 = _$createElement("text"),
807
+ _el$46 = _$createTextNode(` / `);
808
+ _$insertNode(_el$44, _el$45);
809
+ _$setProp(_el$44, "width", "100%");
810
+ _$setProp(_el$44, "flexDirection", "row");
811
+ _$setProp(_el$44, "justifyContent", "space-between");
812
+ _$insert(_el$44, (() => {
813
+ var _c$0 = _$memo(() => !!compactionOff());
814
+ return () => _c$0() ? (() => {
817
815
  var _el$47 = _$createElement("text"),
818
- _el$48 = _$createElement("b"),
819
- _el$49 = _$createTextNode(`%`),
820
- _el$50 = _$createTextNode(` / `),
821
- _el$51 = _$createTextNode(`%`);
816
+ _el$48 = _$createElement("b");
822
817
  _$insertNode(_el$47, _el$48);
823
- _$insertNode(_el$47, _el$50);
824
- _$insertNode(_el$47, _el$51);
825
- _$insertNode(_el$48, _el$49);
826
- _$insert(_el$48, () => s().usagePercentage.toFixed(1), _el$49);
827
- _$insert(_el$47, () => formatThresholdPercent(s().executeThreshold), _el$51);
828
- _$insert(_el$47, () => s().executeThresholdClamped ? "*" : "", null);
818
+ _$insert(_el$48, () => nativeCompactionContextLabel(s()));
829
819
  _$effect(_$p => _$setProp(_el$47, "fg", contextSummaryColor(), _$p));
830
820
  return _el$47;
821
+ })() : (() => {
822
+ var _el$49 = _$createElement("text"),
823
+ _el$50 = _$createElement("b"),
824
+ _el$51 = _$createTextNode(`%`),
825
+ _el$52 = _$createTextNode(` / `),
826
+ _el$53 = _$createTextNode(`%`);
827
+ _$insertNode(_el$49, _el$50);
828
+ _$insertNode(_el$49, _el$52);
829
+ _$insertNode(_el$49, _el$53);
830
+ _$insertNode(_el$50, _el$51);
831
+ _$insert(_el$50, () => s().usagePercentage.toFixed(1), _el$51);
832
+ _$insert(_el$49, () => formatThresholdPercent(s().executeThreshold), _el$53);
833
+ _$insert(_el$49, () => s().executeThresholdClamped ? "*" : "", null);
834
+ _$effect(_$p => _$setProp(_el$49, "fg", contextSummaryColor(), _$p));
835
+ return _el$49;
831
836
  })();
832
- })(), _el$43);
833
- _$insertNode(_el$43, _el$44);
834
- _$insert(_el$43, () => compactTokens(s().inputTokens), _el$44);
835
- _$insert(_el$43, () => compactTokens(s().contextLimit), null);
836
- _$effect(_$p => _$setProp(_el$43, "fg", contextSummaryColor(), _$p));
837
- return _el$42;
837
+ })(), _el$45);
838
+ _$insertNode(_el$45, _el$46);
839
+ _$insert(_el$45, () => compactTokens(s().inputTokens), _el$46);
840
+ _$insert(_el$45, () => compactTokens(s().contextLimit), null);
841
+ _$effect(_$p => _$setProp(_el$45, "fg", contextSummaryColor(), _$p));
842
+ return _el$44;
838
843
  })();
839
844
  })(), null);
840
- _$insert(_el$41, _$createComponent(TokenBreakdown, {
845
+ _$insert(_el$43, _$createComponent(TokenBreakdown, {
841
846
  get theme() {
842
847
  return props.theme;
843
848
  },
@@ -848,19 +853,43 @@ const SidebarContent = props => {
848
853
  return collapsed();
849
854
  }
850
855
  }), null);
851
- _$effect(_$p => _$setProp(_el$41, "marginTop", collapsed() ? 0 : 1, _$p));
852
- return _el$41;
856
+ _$insert(_el$43, (() => {
857
+ var _c$8 = _$memo(() => !!!collapsed());
858
+ return () => _c$8() && (() => {
859
+ var _el$54 = _$createElement("text");
860
+ _$insertNode(_el$54, _$createTextNode(`Conversation includes reasoning estimates; hygiene excludes reasoning.`));
861
+ _$effect(_$p => _$setProp(_el$54, "fg", props.theme.textMuted, _$p));
862
+ return _el$54;
863
+ })();
864
+ })(), null);
865
+ _$insert(_el$43, (() => {
866
+ var _c$9 = _$memo(() => s().tailHygiene !== undefined);
867
+ return () => _c$9() && _$createComponent(StatRow, {
868
+ get theme() {
869
+ return props.theme;
870
+ },
871
+ label: "Hygiene",
872
+ get value() {
873
+ return formatTailHygiene(s().tailHygiene);
874
+ },
875
+ get warning() {
876
+ return !s().tailHygiene.evaluable;
877
+ }
878
+ });
879
+ })(), null);
880
+ _$effect(_$p => _$setProp(_el$43, "marginTop", collapsed() ? 0 : 1, _$p));
881
+ return _el$43;
853
882
  })();
854
883
  })(), null);
855
- _$insert(_el$25, (() => {
884
+ _$insert(_el$27, (() => {
856
885
  var _c$5 = _$memo(() => !!collapsed());
857
886
  return () => _c$5() && (() => {
858
- var _el$52 = _$createElement("box");
859
- _$setProp(_el$52, "width", "100%");
860
- _$setProp(_el$52, "flexDirection", "column");
861
- _$insert(_el$52, (() => {
862
- var _c$9 = _$memo(() => !!compactionOff());
863
- return () => _c$9() ? compactionOffSidebarRows(s()).map(row => _$createComponent(StatRow, {
887
+ var _el$56 = _$createElement("box");
888
+ _$setProp(_el$56, "width", "100%");
889
+ _$setProp(_el$56, "flexDirection", "column");
890
+ _$insert(_el$56, (() => {
891
+ var _c$1 = _$memo(() => !!compactionOff());
892
+ return () => _c$1() ? compactionOffSidebarRows(s()).map(row => _$createComponent(StatRow, {
864
893
  get theme() {
865
894
  return props.theme;
866
895
  },
@@ -877,117 +906,117 @@ const SidebarContent = props => {
877
906
  return row.label !== "Memories";
878
907
  }
879
908
  })) : [(() => {
880
- var _el$53 = _$createElement("box"),
881
- _el$54 = _$createElement("text");
882
- _$insertNode(_el$53, _el$54);
883
- _$setProp(_el$53, "width", "100%");
884
- _$setProp(_el$53, "flexDirection", "row");
885
- _$setProp(_el$53, "justifyContent", "space-between");
886
- _$insertNode(_el$54, _$createTextNode(`Historian`));
887
- _$insert(_el$53, (() => {
888
- var _c$0 = _$memo(() => !!s()?.historianRunning);
889
- return () => _c$0() ? (() => {
890
- var _el$67 = _$createElement("text");
891
- _$insertNode(_el$67, _$createTextNode(`comparting ⟳`));
892
- _$effect(_$p => _$setProp(_el$67, "fg", props.theme.warning, _$p));
893
- return _el$67;
909
+ var _el$57 = _$createElement("box"),
910
+ _el$58 = _$createElement("text");
911
+ _$insertNode(_el$57, _el$58);
912
+ _$setProp(_el$57, "width", "100%");
913
+ _$setProp(_el$57, "flexDirection", "row");
914
+ _$setProp(_el$57, "justifyContent", "space-between");
915
+ _$insertNode(_el$58, _$createTextNode(`Historian`));
916
+ _$insert(_el$57, (() => {
917
+ var _c$10 = _$memo(() => !!s()?.historianRunning);
918
+ return () => _c$10() ? (() => {
919
+ var _el$71 = _$createElement("text");
920
+ _$insertNode(_el$71, _$createTextNode(`comparting ⟳`));
921
+ _$effect(_$p => _$setProp(_el$71, "fg", props.theme.warning, _$p));
922
+ return _el$71;
894
923
  })() : (() => {
895
- var _el$69 = _$createElement("text");
896
- _$insertNode(_el$69, _$createTextNode(`idle`));
897
- _$effect(_$p => _$setProp(_el$69, "fg", props.theme.textMuted, _$p));
898
- return _el$69;
924
+ var _el$73 = _$createElement("text");
925
+ _$insertNode(_el$73, _$createTextNode(`idle`));
926
+ _$effect(_$p => _$setProp(_el$73, "fg", props.theme.textMuted, _$p));
927
+ return _el$73;
899
928
  })();
900
929
  })(), null);
901
- _$effect(_$p => _$setProp(_el$54, "fg", props.theme.textMuted, _$p));
902
- return _el$53;
930
+ _$effect(_$p => _$setProp(_el$58, "fg", props.theme.textMuted, _$p));
931
+ return _el$57;
903
932
  })(), _$createComponent(Show, {
904
933
  get when() {
905
934
  return s()?.dreamerProgress;
906
935
  },
907
936
  children: progress => (() => {
908
- var _el$71 = _$createElement("box"),
909
- _el$72 = _$createElement("text"),
910
- _el$74 = _$createElement("text"),
911
- _el$75 = _$createTextNode(` `),
912
- _el$76 = _$createTextNode(`/`);
913
- _$insertNode(_el$71, _el$72);
914
- _$insertNode(_el$71, _el$74);
915
- _$setProp(_el$71, "width", "100%");
916
- _$setProp(_el$71, "flexDirection", "row");
917
- _$setProp(_el$71, "justifyContent", "space-between");
918
- _$insertNode(_el$72, _$createTextNode(`Dreamer`));
919
- _$insertNode(_el$74, _el$75);
920
- _$insertNode(_el$74, _el$76);
921
- _$insert(_el$74, () => progress().task, _el$75);
922
- _$insert(_el$74, () => progress().processed, _el$76);
923
- _$insert(_el$74, () => progress().total, null);
937
+ var _el$75 = _$createElement("box"),
938
+ _el$76 = _$createElement("text"),
939
+ _el$78 = _$createElement("text"),
940
+ _el$79 = _$createTextNode(` `),
941
+ _el$80 = _$createTextNode(`/`);
942
+ _$insertNode(_el$75, _el$76);
943
+ _$insertNode(_el$75, _el$78);
944
+ _$setProp(_el$75, "width", "100%");
945
+ _$setProp(_el$75, "flexDirection", "row");
946
+ _$setProp(_el$75, "justifyContent", "space-between");
947
+ _$insertNode(_el$76, _$createTextNode(`Dreamer`));
948
+ _$insertNode(_el$78, _el$79);
949
+ _$insertNode(_el$78, _el$80);
950
+ _$insert(_el$78, () => progress().task, _el$79);
951
+ _$insert(_el$78, () => progress().processed, _el$80);
952
+ _$insert(_el$78, () => progress().total, null);
924
953
  _$effect(_p$ => {
925
954
  var _v$19 = props.theme.textMuted,
926
955
  _v$20 = props.theme.warning;
927
- _v$19 !== _p$.e && (_p$.e = _$setProp(_el$72, "fg", _v$19, _p$.e));
928
- _v$20 !== _p$.t && (_p$.t = _$setProp(_el$74, "fg", _v$20, _p$.t));
956
+ _v$19 !== _p$.e && (_p$.e = _$setProp(_el$76, "fg", _v$19, _p$.e));
957
+ _v$20 !== _p$.t && (_p$.t = _$setProp(_el$78, "fg", _v$20, _p$.t));
929
958
  return _p$;
930
959
  }, {
931
960
  e: undefined,
932
961
  t: undefined
933
962
  });
934
- return _el$71;
963
+ return _el$75;
935
964
  })()
936
965
  }), (() => {
937
- var _el$56 = _$createElement("box"),
938
- _el$57 = _$createElement("text"),
939
- _el$59 = _$createElement("text");
940
- _$insertNode(_el$56, _el$57);
941
- _$insertNode(_el$56, _el$59);
942
- _$setProp(_el$56, "width", "100%");
943
- _$setProp(_el$56, "flexDirection", "row");
944
- _$setProp(_el$56, "justifyContent", "space-between");
945
- _$insertNode(_el$57, _$createTextNode(`Memories`));
946
- _$insert(_el$59, (() => {
947
- var _c$1 = _$memo(() => (s()?.memoryBlockCount ?? 0) > 0);
948
- return () => _c$1() ? `${s().memoryBlockCount}/${s()?.memoryCount ?? 0}` : String(s()?.memoryCount ?? 0);
966
+ var _el$60 = _$createElement("box"),
967
+ _el$61 = _$createElement("text"),
968
+ _el$63 = _$createElement("text");
969
+ _$insertNode(_el$60, _el$61);
970
+ _$insertNode(_el$60, _el$63);
971
+ _$setProp(_el$60, "width", "100%");
972
+ _$setProp(_el$60, "flexDirection", "row");
973
+ _$setProp(_el$60, "justifyContent", "space-between");
974
+ _$insertNode(_el$61, _$createTextNode(`Memories`));
975
+ _$insert(_el$63, (() => {
976
+ var _c$11 = _$memo(() => (s()?.memoryBlockCount ?? 0) > 0);
977
+ return () => _c$11() ? `${s().memoryBlockCount}/${s()?.memoryCount ?? 0}` : String(s()?.memoryCount ?? 0);
949
978
  })());
950
979
  _$effect(_p$ => {
951
980
  var _v$15 = props.theme.textMuted,
952
981
  _v$16 = props.theme.textMuted;
953
- _v$15 !== _p$.e && (_p$.e = _$setProp(_el$57, "fg", _v$15, _p$.e));
954
- _v$16 !== _p$.t && (_p$.t = _$setProp(_el$59, "fg", _v$16, _p$.t));
982
+ _v$15 !== _p$.e && (_p$.e = _$setProp(_el$61, "fg", _v$15, _p$.e));
983
+ _v$16 !== _p$.t && (_p$.t = _$setProp(_el$63, "fg", _v$16, _p$.t));
955
984
  return _p$;
956
985
  }, {
957
986
  e: undefined,
958
987
  t: undefined
959
988
  });
960
- return _el$56;
989
+ return _el$60;
961
990
  })(), (() => {
962
- var _el$60 = _$createElement("box"),
963
- _el$61 = _$createElement("text"),
964
- _el$63 = _$createElement("text"),
965
- _el$64 = _$createTextNode(`C:`),
966
- _el$65 = _$createTextNode(` Q:`),
967
- _el$66 = _$createTextNode(` N:`);
968
- _$insertNode(_el$60, _el$61);
969
- _$insertNode(_el$60, _el$63);
970
- _$setProp(_el$60, "width", "100%");
971
- _$setProp(_el$60, "flexDirection", "row");
972
- _$setProp(_el$60, "justifyContent", "space-between");
973
- _$insertNode(_el$61, _$createTextNode(`Status`));
974
- _$insertNode(_el$63, _el$64);
975
- _$insertNode(_el$63, _el$65);
976
- _$insertNode(_el$63, _el$66);
977
- _$insert(_el$63, () => s()?.compartmentCount ?? 0, _el$65);
978
- _$insert(_el$63, () => s()?.pendingOpsCount ?? 0, _el$66);
979
- _$insert(_el$63, () => s()?.sessionNoteCount ?? 0, null);
991
+ var _el$64 = _$createElement("box"),
992
+ _el$65 = _$createElement("text"),
993
+ _el$67 = _$createElement("text"),
994
+ _el$68 = _$createTextNode(`C:`),
995
+ _el$69 = _$createTextNode(` Q:`),
996
+ _el$70 = _$createTextNode(` N:`);
997
+ _$insertNode(_el$64, _el$65);
998
+ _$insertNode(_el$64, _el$67);
999
+ _$setProp(_el$64, "width", "100%");
1000
+ _$setProp(_el$64, "flexDirection", "row");
1001
+ _$setProp(_el$64, "justifyContent", "space-between");
1002
+ _$insertNode(_el$65, _$createTextNode(`Status`));
1003
+ _$insertNode(_el$67, _el$68);
1004
+ _$insertNode(_el$67, _el$69);
1005
+ _$insertNode(_el$67, _el$70);
1006
+ _$insert(_el$67, () => s()?.compartmentCount ?? 0, _el$69);
1007
+ _$insert(_el$67, () => s()?.pendingOpsCount ?? 0, _el$70);
1008
+ _$insert(_el$67, () => s()?.sessionNoteCount ?? 0, null);
980
1009
  _$effect(_p$ => {
981
1010
  var _v$17 = props.theme.textMuted,
982
1011
  _v$18 = props.theme.textMuted;
983
- _v$17 !== _p$.e && (_p$.e = _$setProp(_el$61, "fg", _v$17, _p$.e));
984
- _v$18 !== _p$.t && (_p$.t = _$setProp(_el$63, "fg", _v$18, _p$.t));
1012
+ _v$17 !== _p$.e && (_p$.e = _$setProp(_el$65, "fg", _v$17, _p$.e));
1013
+ _v$18 !== _p$.t && (_p$.t = _$setProp(_el$67, "fg", _v$18, _p$.t));
985
1014
  return _p$;
986
1015
  }, {
987
1016
  e: undefined,
988
1017
  t: undefined
989
1018
  });
990
- return _el$60;
1019
+ return _el$64;
991
1020
  })(), _$createComponent(Show, {
992
1021
  get when() {
993
1022
  return s()?.recompProgress;
@@ -1002,38 +1031,38 @@ const SidebarContent = props => {
1002
1031
  })
1003
1032
  })];
1004
1033
  })());
1005
- return _el$52;
1034
+ return _el$56;
1006
1035
  })();
1007
1036
  })(), null);
1008
- _$insert(_el$25, (() => {
1037
+ _$insert(_el$27, (() => {
1009
1038
  var _c$6 = _$memo(() => !!!collapsed());
1010
1039
  return () => _c$6() && [_$memo(() => _$memo(() => !!(!compactionOff() && sections().historian))() && [(() => {
1011
- var _el$77 = _$createElement("box"),
1012
- _el$78 = _$createElement("text"),
1013
- _el$79 = _$createElement("b");
1014
- _$insertNode(_el$77, _el$78);
1015
- _$setProp(_el$77, "width", "100%");
1016
- _$setProp(_el$77, "marginTop", 1);
1017
- _$setProp(_el$77, "flexDirection", "row");
1018
- _$setProp(_el$77, "justifyContent", "space-between");
1019
- _$insertNode(_el$78, _el$79);
1020
- _$insertNode(_el$79, _$createTextNode(`Historian`));
1021
- _$insert(_el$77, (() => {
1022
- var _c$10 = _$memo(() => !!s()?.historianRunning);
1023
- return () => _c$10() ? (() => {
1024
- var _el$81 = _$createElement("text");
1025
- _$insertNode(_el$81, _$createTextNode(`comparting ⟳`));
1026
- _$effect(_$p => _$setProp(_el$81, "fg", props.theme.warning, _$p));
1027
- return _el$81;
1040
+ var _el$81 = _$createElement("box"),
1041
+ _el$82 = _$createElement("text"),
1042
+ _el$83 = _$createElement("b");
1043
+ _$insertNode(_el$81, _el$82);
1044
+ _$setProp(_el$81, "width", "100%");
1045
+ _$setProp(_el$81, "marginTop", 1);
1046
+ _$setProp(_el$81, "flexDirection", "row");
1047
+ _$setProp(_el$81, "justifyContent", "space-between");
1048
+ _$insertNode(_el$82, _el$83);
1049
+ _$insertNode(_el$83, _$createTextNode(`Historian`));
1050
+ _$insert(_el$81, (() => {
1051
+ var _c$12 = _$memo(() => !!s()?.historianRunning);
1052
+ return () => _c$12() ? (() => {
1053
+ var _el$85 = _$createElement("text");
1054
+ _$insertNode(_el$85, _$createTextNode(`comparting ⟳`));
1055
+ _$effect(_$p => _$setProp(_el$85, "fg", props.theme.warning, _$p));
1056
+ return _el$85;
1028
1057
  })() : (() => {
1029
- var _el$83 = _$createElement("text");
1030
- _$insertNode(_el$83, _$createTextNode(`idle`));
1031
- _$effect(_$p => _$setProp(_el$83, "fg", props.theme.textMuted, _$p));
1032
- return _el$83;
1058
+ var _el$87 = _$createElement("text");
1059
+ _$insertNode(_el$87, _$createTextNode(`idle`));
1060
+ _$effect(_$p => _$setProp(_el$87, "fg", props.theme.textMuted, _$p));
1061
+ return _el$87;
1033
1062
  })();
1034
1063
  })(), null);
1035
- _$effect(_$p => _$setProp(_el$78, "fg", props.theme.text, _$p));
1036
- return _el$77;
1064
+ _$effect(_$p => _$setProp(_el$82, "fg", props.theme.text, _$p));
1065
+ return _el$81;
1037
1066
  })(), _$createComponent(StatRow, {
1038
1067
  get theme() {
1039
1068
  return props.theme;
@@ -1198,10 +1227,10 @@ const SidebarContent = props => {
1198
1227
  _v$12 = props.theme.accent,
1199
1228
  _v$13 = badgeTextColor(props.theme.accent, props.theme.background),
1200
1229
  _v$14 = props.theme.textMuted;
1201
- _v$11 !== _p$.e && (_p$.e = _$setProp(_el$25, "borderColor", _v$11, _p$.e));
1202
- _v$12 !== _p$.t && (_p$.t = _$setProp(_el$27, "backgroundColor", _v$12, _p$.t));
1203
- _v$13 !== _p$.a && (_p$.a = _$setProp(_el$28, "fg", _v$13, _p$.a));
1204
- _v$14 !== _p$.o && (_p$.o = _$setProp(_el$30, "fg", _v$14, _p$.o));
1230
+ _v$11 !== _p$.e && (_p$.e = _$setProp(_el$27, "borderColor", _v$11, _p$.e));
1231
+ _v$12 !== _p$.t && (_p$.t = _$setProp(_el$29, "backgroundColor", _v$12, _p$.t));
1232
+ _v$13 !== _p$.a && (_p$.a = _$setProp(_el$30, "fg", _v$13, _p$.a));
1233
+ _v$14 !== _p$.o && (_p$.o = _$setProp(_el$32, "fg", _v$14, _p$.o));
1205
1234
  return _p$;
1206
1235
  }, {
1207
1236
  e: undefined,
@@ -1209,7 +1238,7 @@ const SidebarContent = props => {
1209
1238
  a: undefined,
1210
1239
  o: undefined
1211
1240
  });
1212
- return _el$25;
1241
+ return _el$27;
1213
1242
  })();
1214
1243
  };
1215
1244
  export function createSidebarContentSlot(api) {