@cortexkit/opencode-magic-context 0.40.1 → 0.41.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 (158) hide show
  1. package/README.md +1 -1
  2. package/dist/{announcement-5eg4t64s.js → announcement-3g9xg433.js} +2 -2
  3. package/dist/{conflict-warning-hook-f406ggbw.js → conflict-warning-hook-xj1r88a7.js} +4 -4
  4. package/dist/{derive-budgets-xk8cy5e6.js → derive-budgets-3xfyphvk.js} +3 -3
  5. package/dist/features/builtin-commands/commands.d.ts +35 -2
  6. package/dist/features/builtin-commands/commands.d.ts.map +1 -1
  7. package/dist/features/magic-context/context-authority.d.ts +10 -0
  8. package/dist/features/magic-context/context-authority.d.ts.map +1 -1
  9. package/dist/features/magic-context/dreamer/classify.d.ts +1 -0
  10. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  11. package/dist/features/magic-context/dreamer/lease.d.ts +12 -27
  12. package/dist/features/magic-context/dreamer/lease.d.ts.map +1 -1
  13. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts +1 -1
  14. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts.map +1 -1
  15. package/dist/features/magic-context/dreamer/map-memories.d.ts +2 -0
  16. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  17. package/dist/features/magic-context/dreamer/memory-claim-safety.d.ts +9 -0
  18. package/dist/features/magic-context/dreamer/memory-claim-safety.d.ts.map +1 -0
  19. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  20. package/dist/features/magic-context/dreamer/task-registry.d.ts +2 -0
  21. package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
  22. package/dist/features/magic-context/dreamer/verify-prompt.d.ts +7 -2
  23. package/dist/features/magic-context/dreamer/verify-prompt.d.ts.map +1 -1
  24. package/dist/features/magic-context/dreamer/verify.d.ts +13 -10
  25. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  26. package/dist/features/magic-context/memory/storage-memory-verifications.d.ts +5 -1
  27. package/dist/features/magic-context/memory/storage-memory-verifications.d.ts.map +1 -1
  28. package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -1
  29. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  30. package/dist/features/magic-context/project-embedding-registry.d.ts +3 -0
  31. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  32. package/dist/features/magic-context/storage-db.d.ts +1 -1
  33. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  34. package/dist/features/magic-context/storage-identity-merge.d.ts.map +1 -1
  35. package/dist/features/magic-context/storage-meta-persisted.d.ts +29 -3
  36. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  37. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  38. package/dist/features/magic-context/storage-meta.d.ts +1 -1
  39. package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
  40. package/dist/features/magic-context/storage-tags.d.ts +7 -0
  41. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  42. package/dist/features/magic-context/storage.d.ts +1 -1
  43. package/dist/features/magic-context/storage.d.ts.map +1 -1
  44. package/dist/hooks/magic-context/channel2-delivery.d.ts +2 -4
  45. package/dist/hooks/magic-context/channel2-delivery.d.ts.map +1 -1
  46. package/dist/hooks/magic-context/command-handler.d.ts +7 -0
  47. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  48. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  49. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  50. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  51. package/dist/hooks/magic-context/compartment-trigger.d.ts +1 -0
  52. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  53. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts +15 -14
  54. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -1
  55. package/dist/hooks/magic-context/emergency-drop.d.ts +6 -8
  56. package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -1
  57. package/dist/hooks/magic-context/event-resolvers.d.ts +2 -2
  58. package/dist/hooks/magic-context/execute-status.d.ts +4 -1
  59. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  60. package/dist/hooks/magic-context/heuristic-cleanup.d.ts +6 -0
  61. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
  62. package/dist/hooks/magic-context/hook-handlers.d.ts +21 -8
  63. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  64. package/dist/hooks/magic-context/hook.d.ts +16 -1
  65. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  66. package/dist/hooks/magic-context/inject-compartments.d.ts +6 -16
  67. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  68. package/dist/hooks/magic-context/maintenance-authority.d.ts +3 -0
  69. package/dist/hooks/magic-context/maintenance-authority.d.ts.map +1 -0
  70. package/dist/hooks/magic-context/module-transport.d.ts.map +1 -1
  71. package/dist/hooks/magic-context/module-wire.d.ts.map +1 -1
  72. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
  73. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts +1 -0
  74. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -1
  75. package/dist/hooks/magic-context/rust-mode-transform.d.ts +9 -0
  76. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  77. package/dist/hooks/magic-context/strip-content.d.ts +8 -0
  78. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  79. package/dist/hooks/magic-context/stripped-command.d.ts +19 -0
  80. package/dist/hooks/magic-context/stripped-command.d.ts.map +1 -0
  81. package/dist/hooks/magic-context/supersession-reclaim.d.ts +11 -0
  82. package/dist/hooks/magic-context/supersession-reclaim.d.ts.map +1 -1
  83. package/dist/hooks/magic-context/tag-messages.d.ts +6 -0
  84. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  85. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts +11 -0
  86. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -1
  87. package/dist/hooks/magic-context/transform-operations.d.ts +1 -1
  88. package/dist/hooks/magic-context/transform-operations.d.ts.map +1 -1
  89. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +5 -1
  90. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  91. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  92. package/dist/{index-pck9vadr.js → index-26ds03jd.js} +1 -1
  93. package/dist/{index-mg1yx1ph.js → index-2bykz3bx.js} +2 -2
  94. package/dist/{index-mmrhhk9a.js → index-37yzyeca.js} +36 -8
  95. package/dist/{index-btj2qhmc.js → index-88za3sz8.js} +3 -3
  96. package/dist/index-b4gv9f7g.js +284 -0
  97. package/dist/{index-ehpzdy0v.js → index-bf799gbq.js} +8 -1
  98. package/dist/{index-1h9t9xb5.js → index-dmgbar7r.js} +2 -2
  99. package/dist/{index-qf20mv7e.js → index-dmvy29z0.js} +1 -1
  100. package/dist/{index-sw8gnq34.js → index-jmwq2wxr.js} +2 -2
  101. package/dist/{index-3dkzzh0t.js → index-knna83k0.js} +1 -1
  102. package/dist/{index-x64cmpej.js → index-w8rkbhn6.js} +505 -301
  103. package/dist/{index-rw0qrkvq.js → index-x9dmzyp5.js} +17 -4
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +2892 -2302
  106. package/dist/{model-resolution-r9jbcz86.js → model-resolution-jgrkt0z2.js} +3 -1
  107. package/dist/plugin/dream-timer.d.ts.map +1 -1
  108. package/dist/plugin/hooks/create-session-hooks.d.ts +14 -0
  109. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  110. package/dist/plugin/rpc-handlers.d.ts +10 -0
  111. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  112. package/dist/{recomp-orchestrator-dtgww0f0.js → recomp-orchestrator-1w4xj6jt.js} +7 -7
  113. package/dist/{safe-notification-target-tepzc2xa.js → safe-notification-target-p0c0csxw.js} +3 -3
  114. package/dist/{send-session-notification-6v5b72b4.js → send-session-notification-kn34g7mx.js} +4 -4
  115. package/dist/shared/data-path.d.ts +12 -3
  116. package/dist/shared/data-path.d.ts.map +1 -1
  117. package/dist/shared/logger.d.ts.map +1 -1
  118. package/dist/shared/model-resolution.d.ts +1 -0
  119. package/dist/shared/model-resolution.d.ts.map +1 -1
  120. package/dist/shared/rpc-types.d.ts +5 -0
  121. package/dist/shared/rpc-types.d.ts.map +1 -1
  122. package/dist/shared/rust-mode-status.d.ts +3 -0
  123. package/dist/shared/rust-mode-status.d.ts.map +1 -0
  124. package/dist/shared/status-detail-text.d.ts.map +1 -1
  125. package/dist/shared/subagent-runner.d.ts +4 -0
  126. package/dist/shared/subagent-runner.d.ts.map +1 -1
  127. package/dist/shared/write-transaction-timing.d.ts +11 -0
  128. package/dist/shared/write-transaction-timing.d.ts.map +1 -0
  129. package/dist/{storage-meta-session-yvtbaw7c.js → storage-meta-session-snbzd26z.js} +4 -4
  130. package/dist/{task-config-a1qmj9bx.js → task-config-ty08ptc2.js} +2 -2
  131. package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
  132. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  133. package/dist/tui/data/context-db.d.ts +10 -3
  134. package/dist/tui/data/context-db.d.ts.map +1 -1
  135. package/dist/tui-compiled/data/context-db.d.ts +10 -3
  136. package/dist/tui-compiled/data/context-db.d.ts.map +1 -1
  137. package/package.json +1 -1
  138. package/src/config/index.test.ts +38 -0
  139. package/src/features/magic-context/dreamer/task-registry.ts +2 -0
  140. package/src/shared/data-path.test.ts +44 -4
  141. package/src/shared/data-path.ts +54 -11
  142. package/src/shared/logger.test.ts +15 -0
  143. package/src/shared/logger.ts +9 -4
  144. package/src/shared/model-resolution.test.ts +39 -0
  145. package/src/shared/model-resolution.ts +8 -0
  146. package/src/shared/redaction.ts +2 -2
  147. package/src/shared/rpc-types.ts +5 -0
  148. package/src/shared/rust-mode-status.ts +3 -0
  149. package/src/shared/status-detail-text.test.ts +13 -0
  150. package/src/shared/status-detail-text.ts +2 -0
  151. package/src/shared/subagent-runner.ts +4 -0
  152. package/src/shared/write-transaction-timing.ts +25 -0
  153. package/src/tui/data/context-db.test.ts +31 -1
  154. package/src/tui/data/context-db.ts +17 -61
  155. package/src/tui/index.tsx +36 -5
  156. package/src/tui-compiled/data/context-db.ts +17 -61
  157. package/src/tui-compiled/index.tsx +229 -191
  158. package/dist/index-8pqfcghm.js +0 -81
@@ -15,6 +15,7 @@ import { closeRpc, dismissUpgradeReminder, getAnnouncement, getCompartmentCount,
15
15
  import { startNotificationSocket, stopNotificationSocket } from "./data/notification-socket";
16
16
  import { formatThresholdPercent } from "../shared/format-threshold";
17
17
  import { formatTailHygiene } from "../shared/tail-hygiene-status";
18
+ import { RUST_MODE_HOST_PATHS_LINE } from "../shared/rust-mode-status";
18
19
  import { formatWindowDerivationLine } from "../shared/window-geometry";
19
20
  import { compactionOffSidebarRows, nativeCompactionContextLabel } from "./compaction-off";
20
21
  import { isCompactionEnabled } from "../config/agent-disable";
@@ -513,23 +514,51 @@ const StatusDialog = props => {
513
514
  })();
514
515
  })();
515
516
  })(), _el$17);
516
- _$setProp(_el$17, "flexDirection", "row");
517
- _$setProp(_el$17, "width", "100%");
518
- _$setProp(_el$17, "marginTop", 1);
519
- _$setProp(_el$17, "gap", 4);
520
- _$insert(_el$17, (() => {
521
- var _c$6 = _$memo(() => !!compactionOff());
522
- return () => _c$6() ? (() => {
517
+ _$insert(_el$4, (() => {
518
+ var _c$6 = _$memo(() => !!s().hostBackendsModuleSide);
519
+ return () => _c$6() && (() => {
523
520
  var _el$43 = _$createElement("box"),
524
521
  _el$44 = _$createElement("text"),
525
- _el$45 = _$createElement("b");
522
+ _el$45 = _$createElement("b"),
523
+ _el$47 = _$createElement("text");
526
524
  _$insertNode(_el$43, _el$44);
525
+ _$insertNode(_el$43, _el$47);
526
+ _$setProp(_el$43, "marginTop", 1);
527
+ _$setProp(_el$43, "width", "100%");
527
528
  _$setProp(_el$43, "flexDirection", "column");
528
- _$setProp(_el$43, "flexGrow", 1);
529
- _$setProp(_el$43, "flexBasis", 0);
530
529
  _$insertNode(_el$44, _el$45);
531
- _$insertNode(_el$45, _$createTextNode(`Knowledge`));
532
- _$insert(_el$43, () => compactionOffSidebarRows(s()).map(row => _$createComponent(R, {
530
+ _$insertNode(_el$45, _$createTextNode(`Rust Mode`));
531
+ _$insert(_el$47, RUST_MODE_HOST_PATHS_LINE);
532
+ _$effect(_p$ => {
533
+ var _v$13 = t().text,
534
+ _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));
537
+ return _p$;
538
+ }, {
539
+ e: undefined,
540
+ t: undefined
541
+ });
542
+ return _el$43;
543
+ })();
544
+ })(), _el$17);
545
+ _$setProp(_el$17, "flexDirection", "row");
546
+ _$setProp(_el$17, "width", "100%");
547
+ _$setProp(_el$17, "marginTop", 1);
548
+ _$setProp(_el$17, "gap", 4);
549
+ _$insert(_el$17, (() => {
550
+ var _c$7 = _$memo(() => !!compactionOff());
551
+ 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);
559
+ _$insertNode(_el$49, _el$50);
560
+ _$insertNode(_el$50, _$createTextNode(`Knowledge`));
561
+ _$insert(_el$48, () => compactionOffSidebarRows(s()).map(row => _$createComponent(R, {
533
562
  get t() {
534
563
  return t();
535
564
  },
@@ -543,9 +572,9 @@ const StatusDialog = props => {
543
572
  return _$memo(() => row.label === "Memories")() ? t().accent : t().textMuted;
544
573
  }
545
574
  })), null);
546
- _$insert(_el$43, (() => {
547
- var _c$0 = _$memo(() => s().readySmartNoteCount > 0);
548
- return () => _c$0() && _$createComponent(R, {
575
+ _$insert(_el$48, (() => {
576
+ var _c$1 = _$memo(() => s().readySmartNoteCount > 0);
577
+ return () => _c$1() && _$createComponent(R, {
549
578
  get t() {
550
579
  return t();
551
580
  },
@@ -558,9 +587,9 @@ const StatusDialog = props => {
558
587
  }
559
588
  });
560
589
  })(), null);
561
- _$insert(_el$43, (() => {
562
- var _c$1 = _$memo(() => !!s().lastDreamerRunAt);
563
- return () => _c$1() && _$createComponent(R, {
590
+ _$insert(_el$48, (() => {
591
+ var _c$10 = _$memo(() => !!s().lastDreamerRunAt);
592
+ return () => _c$10() && _$createComponent(R, {
564
593
  get t() {
565
594
  return t();
566
595
  },
@@ -573,49 +602,49 @@ const StatusDialog = props => {
573
602
  }
574
603
  });
575
604
  })(), null);
576
- _$effect(_$p => _$setProp(_el$44, "fg", t().text, _$p));
577
- return _el$43;
605
+ _$effect(_$p => _$setProp(_el$49, "fg", t().text, _$p));
606
+ return _el$48;
578
607
  })() : [(() => {
579
- var _el$47 = _$createElement("box"),
580
- _el$48 = _$createElement("text"),
581
- _el$49 = _$createElement("b"),
582
- _el$51 = _$createElement("box"),
583
- _el$52 = _$createElement("text"),
584
- _el$53 = _$createElement("b"),
585
- _el$55 = _$createElement("box"),
586
- _el$56 = _$createElement("text"),
587
- _el$57 = _$createElement("b"),
588
- _el$59 = _$createElement("box"),
589
- _el$60 = _$createElement("text"),
590
- _el$61 = _$createElement("b");
591
- _$insertNode(_el$47, _el$48);
592
- _$insertNode(_el$47, _el$51);
593
- _$insertNode(_el$47, _el$55);
594
- _$insertNode(_el$47, _el$59);
595
- _$setProp(_el$47, "flexDirection", "column");
596
- _$setProp(_el$47, "flexGrow", 1);
597
- _$setProp(_el$47, "flexBasis", 0);
598
- _$insertNode(_el$48, _el$49);
599
- _$insertNode(_el$49, _$createTextNode(`Tags`));
600
- _$insert(_el$47, _$createComponent(R, {
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);
627
+ _$insertNode(_el$53, _el$54);
628
+ _$insertNode(_el$54, _$createTextNode(`Tags`));
629
+ _$insert(_el$52, _$createComponent(R, {
601
630
  get t() {
602
631
  return t();
603
632
  },
604
633
  l: "Active",
605
634
  get v() {
606
- return `${s().activeTags} (~${fmtBytes(s().activeBytes)})`;
635
+ return _$memo(() => s().tagCountsAuthoritative === false)() ? "n/a (module total only)" : `${s().activeTags} (~${fmtBytes(s().activeBytes)})`;
607
636
  }
608
- }), _el$51);
609
- _$insert(_el$47, _$createComponent(R, {
637
+ }), _el$56);
638
+ _$insert(_el$52, _$createComponent(R, {
610
639
  get t() {
611
640
  return t();
612
641
  },
613
642
  l: "Dropped",
614
643
  get v() {
615
- return String(s().droppedTags);
644
+ return _$memo(() => s().tagCountsAuthoritative === false)() ? "n/a (module total only)" : String(s().droppedTags);
616
645
  }
617
- }), _el$51);
618
- _$insert(_el$47, _$createComponent(R, {
646
+ }), _el$56);
647
+ _$insert(_el$52, _$createComponent(R, {
619
648
  get t() {
620
649
  return t();
621
650
  },
@@ -626,12 +655,12 @@ const StatusDialog = props => {
626
655
  get fg() {
627
656
  return t().textMuted;
628
657
  }
629
- }), _el$51);
630
- _$insertNode(_el$51, _el$52);
631
- _$setProp(_el$51, "marginTop", 1);
632
- _$insertNode(_el$52, _el$53);
633
- _$insertNode(_el$53, _$createTextNode(`Pending Queue`));
634
- _$insert(_el$47, _$createComponent(R, {
658
+ }), _el$56);
659
+ _$insertNode(_el$56, _el$57);
660
+ _$setProp(_el$56, "marginTop", 1);
661
+ _$insertNode(_el$57, _el$58);
662
+ _$insertNode(_el$58, _$createTextNode(`Pending Queue`));
663
+ _$insert(_el$52, _$createComponent(R, {
635
664
  get t() {
636
665
  return t();
637
666
  },
@@ -642,12 +671,12 @@ const StatusDialog = props => {
642
671
  get fg() {
643
672
  return _$memo(() => s().pendingOpsCount > 0)() ? t().warning : t().textMuted;
644
673
  }
645
- }), _el$55);
646
- _$insertNode(_el$55, _el$56);
647
- _$setProp(_el$55, "marginTop", 1);
648
- _$insertNode(_el$56, _el$57);
649
- _$insertNode(_el$57, _$createTextNode(`Cache TTL`));
650
- _$insert(_el$47, _$createComponent(R, {
674
+ }), _el$60);
675
+ _$insertNode(_el$60, _el$61);
676
+ _$setProp(_el$60, "marginTop", 1);
677
+ _$insertNode(_el$61, _el$62);
678
+ _$insertNode(_el$62, _$createTextNode(`Cache TTL`));
679
+ _$insert(_el$52, _$createComponent(R, {
651
680
  get t() {
652
681
  return t();
653
682
  },
@@ -655,8 +684,8 @@ const StatusDialog = props => {
655
684
  get v() {
656
685
  return s().cacheTtl;
657
686
  }
658
- }), _el$59);
659
- _$insert(_el$47, _$createComponent(R, {
687
+ }), _el$64);
688
+ _$insert(_el$52, _$createComponent(R, {
660
689
  get t() {
661
690
  return t();
662
691
  },
@@ -664,8 +693,8 @@ const StatusDialog = props => {
664
693
  get v() {
665
694
  return _$memo(() => s().lastResponseTime > 0)() ? `${Math.round(elapsed() / 1000)}s ago` : "never";
666
695
  }
667
- }), _el$59);
668
- _$insert(_el$47, _$createComponent(R, {
696
+ }), _el$64);
697
+ _$insert(_el$52, _$createComponent(R, {
669
698
  get t() {
670
699
  return t();
671
700
  },
@@ -676,8 +705,8 @@ const StatusDialog = props => {
676
705
  get fg() {
677
706
  return _$memo(() => !!s().cacheExpired)() ? t().warning : t().textMuted;
678
707
  }
679
- }), _el$59);
680
- _$insert(_el$47, _$createComponent(R, {
708
+ }), _el$64);
709
+ _$insert(_el$52, _$createComponent(R, {
681
710
  get t() {
682
711
  return t();
683
712
  },
@@ -688,12 +717,12 @@ const StatusDialog = props => {
688
717
  get fg() {
689
718
  return t().textMuted;
690
719
  }
691
- }), _el$59);
692
- _$insertNode(_el$59, _el$60);
693
- _$setProp(_el$59, "marginTop", 1);
694
- _$insertNode(_el$60, _el$61);
695
- _$insertNode(_el$61, _$createTextNode(`Memory`));
696
- _$insert(_el$47, _$createComponent(R, {
720
+ }), _el$64);
721
+ _$insertNode(_el$64, _el$65);
722
+ _$setProp(_el$64, "marginTop", 1);
723
+ _$insertNode(_el$65, _el$66);
724
+ _$insertNode(_el$66, _$createTextNode(`Memory`));
725
+ _$insert(_el$52, _$createComponent(R, {
697
726
  get t() {
698
727
  return t();
699
728
  },
@@ -705,7 +734,7 @@ const StatusDialog = props => {
705
734
  return t().accent;
706
735
  }
707
736
  }), null);
708
- _$insert(_el$47, _$createComponent(R, {
737
+ _$insert(_el$52, _$createComponent(R, {
709
738
  get t() {
710
739
  return t();
711
740
  },
@@ -718,14 +747,14 @@ const StatusDialog = props => {
718
747
  }
719
748
  }), null);
720
749
  _$effect(_p$ => {
721
- var _v$13 = t().text,
722
- _v$14 = t().text,
723
- _v$15 = t().text,
724
- _v$16 = t().text;
725
- _v$13 !== _p$.e && (_p$.e = _$setProp(_el$48, "fg", _v$13, _p$.e));
726
- _v$14 !== _p$.t && (_p$.t = _$setProp(_el$52, "fg", _v$14, _p$.t));
727
- _v$15 !== _p$.a && (_p$.a = _$setProp(_el$56, "fg", _v$15, _p$.a));
728
- _v$16 !== _p$.o && (_p$.o = _$setProp(_el$60, "fg", _v$16, _p$.o));
750
+ var _v$15 = t().text,
751
+ _v$16 = t().text,
752
+ _v$17 = t().text,
753
+ _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));
729
758
  return _p$;
730
759
  }, {
731
760
  e: undefined,
@@ -733,26 +762,26 @@ const StatusDialog = props => {
733
762
  a: undefined,
734
763
  o: undefined
735
764
  });
736
- return _el$47;
765
+ return _el$52;
737
766
  })(), (() => {
738
- var _el$63 = _$createElement("box"),
739
- _el$64 = _$createElement("text"),
740
- _el$65 = _$createElement("b"),
741
- _el$67 = _$createElement("box"),
742
- _el$68 = _$createElement("text"),
743
- _el$69 = _$createElement("b"),
744
- _el$71 = _$createElement("box"),
745
- _el$72 = _$createElement("text"),
746
- _el$73 = _$createElement("b");
747
- _$insertNode(_el$63, _el$64);
748
- _$insertNode(_el$63, _el$67);
749
- _$insertNode(_el$63, _el$71);
750
- _$setProp(_el$63, "flexDirection", "column");
751
- _$setProp(_el$63, "flexGrow", 1);
752
- _$setProp(_el$63, "flexBasis", 0);
753
- _$insertNode(_el$64, _el$65);
754
- _$insertNode(_el$65, _$createTextNode(`Reductions`));
755
- _$insert(_el$63, _$createComponent(R, {
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);
782
+ _$insertNode(_el$69, _el$70);
783
+ _$insertNode(_el$70, _$createTextNode(`Reductions`));
784
+ _$insert(_el$68, _$createComponent(R, {
756
785
  get t() {
757
786
  return t();
758
787
  },
@@ -760,8 +789,8 @@ const StatusDialog = props => {
760
789
  get v() {
761
790
  return `${formatThresholdPercent(s().executeThreshold)}%${s().executeThresholdClamped ? "*" : ""}`;
762
791
  }
763
- }), _el$67);
764
- _$insert(_el$63, _$createComponent(R, {
792
+ }), _el$72);
793
+ _$insert(_el$68, _$createComponent(R, {
765
794
  get t() {
766
795
  return t();
767
796
  },
@@ -769,12 +798,12 @@ const StatusDialog = props => {
769
798
  get v() {
770
799
  return `${fmt(s().lastNudgeTokens)} tok`;
771
800
  }
772
- }), _el$67);
773
- _$insertNode(_el$67, _el$68);
774
- _$setProp(_el$67, "marginTop", 1);
775
- _$insertNode(_el$68, _el$69);
776
- _$insertNode(_el$69, _$createTextNode(`Context Details`));
777
- _$insert(_el$63, _$createComponent(R, {
801
+ }), _el$72);
802
+ _$insertNode(_el$72, _el$73);
803
+ _$setProp(_el$72, "marginTop", 1);
804
+ _$insertNode(_el$73, _el$74);
805
+ _$insertNode(_el$74, _$createTextNode(`Context Details`));
806
+ _$insert(_el$68, _$createComponent(R, {
778
807
  get t() {
779
808
  return t();
780
809
  },
@@ -785,8 +814,8 @@ const StatusDialog = props => {
785
814
  get fg() {
786
815
  return t().textMuted;
787
816
  }
788
- }), _el$71);
789
- _$insert(_el$63, _$createComponent(R, {
817
+ }), _el$76);
818
+ _$insert(_el$68, _$createComponent(R, {
790
819
  get t() {
791
820
  return t();
792
821
  },
@@ -797,14 +826,14 @@ const StatusDialog = props => {
797
826
  get fg() {
798
827
  return t().textMuted;
799
828
  }
800
- }), _el$71);
801
- _$insertNode(_el$71, _el$72);
802
- _$setProp(_el$71, "marginTop", 1);
803
- _$insertNode(_el$72, _el$73);
804
- _$insertNode(_el$73, _$createTextNode(`History Compression`));
805
- _$insert(_el$63, (() => {
806
- var _c$10 = _$memo(() => typeof s().boundaryPresent === "boolean");
807
- return () => _c$10() && _$createComponent(R, {
829
+ }), _el$76);
830
+ _$insertNode(_el$76, _el$77);
831
+ _$setProp(_el$76, "marginTop", 1);
832
+ _$insertNode(_el$77, _el$78);
833
+ _$insertNode(_el$78, _$createTextNode(`History Compression`));
834
+ _$insert(_el$68, (() => {
835
+ var _c$11 = _$memo(() => typeof s().boundaryPresent === "boolean");
836
+ return () => _c$11() && _$createComponent(R, {
808
837
  get t() {
809
838
  return t();
810
839
  },
@@ -814,9 +843,9 @@ const StatusDialog = props => {
814
843
  }
815
844
  });
816
845
  })(), null);
817
- _$insert(_el$63, (() => {
818
- var _c$11 = _$memo(() => s().coverageOrdinal !== undefined);
819
- return () => _c$11() && _$createComponent(R, {
846
+ _$insert(_el$68, (() => {
847
+ var _c$12 = _$memo(() => s().coverageOrdinal !== undefined);
848
+ return () => _c$12() && _$createComponent(R, {
820
849
  get t() {
821
850
  return t();
822
851
  },
@@ -826,9 +855,9 @@ const StatusDialog = props => {
826
855
  }
827
856
  });
828
857
  })(), null);
829
- _$insert(_el$63, (() => {
830
- var _c$12 = _$memo(() => typeof s().boundaryPresent === "boolean");
831
- return () => _c$12() && _$createComponent(R, {
858
+ _$insert(_el$68, (() => {
859
+ var _c$13 = _$memo(() => typeof s().boundaryPresent === "boolean");
860
+ return () => _c$13() && _$createComponent(R, {
832
861
  get t() {
833
862
  return t();
834
863
  },
@@ -838,7 +867,7 @@ const StatusDialog = props => {
838
867
  }
839
868
  });
840
869
  })(), null);
841
- _$insert(_el$63, _$createComponent(R, {
870
+ _$insert(_el$68, _$createComponent(R, {
842
871
  get t() {
843
872
  return t();
844
873
  },
@@ -847,9 +876,9 @@ const StatusDialog = props => {
847
876
  return `~${fmt(s().historyBlockTokens)} tok`;
848
877
  }
849
878
  }), null);
850
- _$insert(_el$63, (() => {
851
- var _c$13 = _$memo(() => s().compressionBudget != null);
852
- return () => _c$13() && _$createComponent(R, {
879
+ _$insert(_el$68, (() => {
880
+ var _c$14 = _$memo(() => s().compressionBudget != null);
881
+ return () => _c$14() && _$createComponent(R, {
853
882
  get t() {
854
883
  return t();
855
884
  },
@@ -859,9 +888,9 @@ const StatusDialog = props => {
859
888
  }
860
889
  });
861
890
  })(), null);
862
- _$insert(_el$63, (() => {
863
- var _c$14 = _$memo(() => !!s().lastDreamerRunAt);
864
- return () => _c$14() && _$createComponent(R, {
891
+ _$insert(_el$68, (() => {
892
+ var _c$15 = _$memo(() => !!s().lastDreamerRunAt);
893
+ return () => _c$15() && _$createComponent(R, {
865
894
  get t() {
866
895
  return t();
867
896
  },
@@ -875,34 +904,34 @@ const StatusDialog = props => {
875
904
  });
876
905
  })(), null);
877
906
  _$effect(_p$ => {
878
- var _v$17 = t().text,
879
- _v$18 = t().text,
880
- _v$19 = t().text;
881
- _v$17 !== _p$.e && (_p$.e = _$setProp(_el$64, "fg", _v$17, _p$.e));
882
- _v$18 !== _p$.t && (_p$.t = _$setProp(_el$68, "fg", _v$18, _p$.t));
883
- _v$19 !== _p$.a && (_p$.a = _$setProp(_el$72, "fg", _v$19, _p$.a));
907
+ var _v$19 = t().text,
908
+ _v$20 = t().text,
909
+ _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));
884
913
  return _p$;
885
914
  }, {
886
915
  e: undefined,
887
916
  t: undefined,
888
917
  a: undefined
889
918
  });
890
- return _el$63;
919
+ return _el$68;
891
920
  })()];
892
921
  })());
893
922
  _$insert(_el$4, (() => {
894
- var _c$7 = _$memo(() => !!s().lastTransformError);
895
- return () => _c$7() && (() => {
896
- var _el$75 = _$createElement("box"),
897
- _el$76 = _$createElement("text"),
898
- _el$77 = _$createTextNode(`⚠ `);
899
- _$insertNode(_el$75, _el$76);
900
- _$setProp(_el$75, "marginTop", 1);
901
- _$setProp(_el$75, "width", "100%");
902
- _$insertNode(_el$76, _el$77);
903
- _$insert(_el$76, () => s().lastTransformError, null);
904
- _$effect(_$p => _$setProp(_el$76, "fg", t().error, _$p));
905
- return _el$75;
923
+ var _c$8 = _$memo(() => !!s().lastTransformError);
924
+ 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%");
931
+ _$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;
906
935
  })();
907
936
  })(), _el$18);
908
937
  _$insertNode(_el$18, _el$19);
@@ -923,8 +952,8 @@ const StatusDialog = props => {
923
952
  }
924
953
  }), null);
925
954
  _$insert(_el$18, (() => {
926
- var _c$8 = _$memo(() => !!s().loggerDiagnostics?.lastErrorMessage);
927
- return () => _c$8() && _$createComponent(R, {
955
+ var _c$9 = _$memo(() => !!s().loggerDiagnostics?.lastErrorMessage);
956
+ return () => _c$9() && _$createComponent(R, {
928
957
  get t() {
929
958
  return t();
930
959
  },
@@ -938,8 +967,8 @@ const StatusDialog = props => {
938
967
  });
939
968
  })(), null);
940
969
  _$insert(_el$18, (() => {
941
- var _c$9 = _$memo(() => !!s().loggerDiagnostics?.lastErrorTime);
942
- return () => _c$9() && _$createComponent(R, {
970
+ var _c$0 = _$memo(() => !!s().loggerDiagnostics?.lastErrorTime);
971
+ return () => _c$0() && _$createComponent(R, {
943
972
  get t() {
944
973
  return t();
945
974
  },
@@ -1014,7 +1043,7 @@ async function showRecompDialog(api, targetSessionId = getSessionId(api)) {
1014
1043
  });
1015
1044
  return false;
1016
1045
  }
1017
- const countResult = await getCompartmentCount(sessionId);
1046
+ const countResult = await getCompartmentCount(sessionId, api.state.path.directory ?? "");
1018
1047
  // Ack only after the dialog is actually shown for the same active session;
1019
1048
  // route switches while the RPC detail load is in flight must leave it pending.
1020
1049
  if (getSessionId(api) !== sessionId) return false;
@@ -1114,11 +1143,20 @@ async function showStatusDialog(api, targetSessionId = getSessionId(api)) {
1114
1143
  }
1115
1144
  const directory = api.state.path.directory ?? "";
1116
1145
  const modelKey = getModelKeyFromMessages(api, sessionId);
1117
- const detail = await loadStatusDetail(sessionId, directory, modelKey);
1146
+ const result = await loadStatusDetail(sessionId, directory, modelKey);
1118
1147
  if (getSessionId(api) !== sessionId) return false;
1148
+ if (!result.ok) {
1149
+ showToast(api, {
1150
+ message: `Status unavailable: ${result.error}`,
1151
+ variant: "warning"
1152
+ });
1153
+ return false;
1154
+ }
1119
1155
  api.ui.dialog.replace(() => _$createComponent(StatusDialog, {
1120
1156
  api: api,
1121
- s: detail
1157
+ get s() {
1158
+ return result.detail;
1159
+ }
1122
1160
  }));
1123
1161
  return true;
1124
1162
  }
@@ -1127,31 +1165,31 @@ const EmbedDialog = props => {
1127
1165
  const t = () => theme();
1128
1166
  const lines = () => props.detail.statusText.split("\n");
1129
1167
  return (() => {
1130
- var _el$78 = _$createElement("box"),
1131
- _el$79 = _$createElement("box"),
1132
- _el$80 = _$createElement("text"),
1133
- _el$81 = _$createElement("b");
1134
- _$insertNode(_el$78, _el$79);
1135
- _$setProp(_el$78, "flexDirection", "column");
1136
- _$setProp(_el$78, "width", "100%");
1137
- _$setProp(_el$78, "paddingLeft", 2);
1138
- _$setProp(_el$78, "paddingRight", 2);
1139
- _$setProp(_el$78, "paddingTop", 1);
1140
- _$setProp(_el$78, "paddingBottom", 1);
1141
- _$insertNode(_el$79, _el$80);
1142
- _$setProp(_el$79, "justifyContent", "center");
1143
- _$setProp(_el$79, "width", "100%");
1144
- _$setProp(_el$79, "marginBottom", 1);
1145
- _$insertNode(_el$80, _el$81);
1146
- _$insertNode(_el$81, _$createTextNode(`Embedding`));
1147
- _$insert(_el$78, () => lines().map(line => (() => {
1148
- var _el$83 = _$createElement("text");
1149
- _$insert(_el$83, line);
1150
- _$effect(_$p => _$setProp(_el$83, "fg", t().text, _$p));
1151
- return _el$83;
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);
1179
+ _$insertNode(_el$84, _el$85);
1180
+ _$setProp(_el$84, "justifyContent", "center");
1181
+ _$setProp(_el$84, "width", "100%");
1182
+ _$setProp(_el$84, "marginBottom", 1);
1183
+ _$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;
1152
1190
  })()), null);
1153
- _$effect(_$p => _$setProp(_el$80, "fg", t().accent, _$p));
1154
- return _el$78;
1191
+ _$effect(_$p => _$setProp(_el$85, "fg", t().accent, _$p));
1192
+ return _el$83;
1155
1193
  })();
1156
1194
  };
1157
1195
  async function showEmbedDialog(api, targetSessionId = getSessionId(api)) {
@@ -1217,11 +1255,11 @@ function renderTuiProbeCustomArm(api, result) {
1217
1255
  api.ui.dialog.replace(() => {
1218
1256
  try {
1219
1257
  return (() => {
1220
- var _el$84 = _$createElement("box"),
1221
- _el$85 = _$createElement("text");
1222
- _$insertNode(_el$84, _el$85);
1223
- _$insertNode(_el$85, _$createTextNode(`probe`));
1224
- return _el$84;
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;
1225
1263
  })();
1226
1264
  } catch (error) {
1227
1265
  result.customThrew = probeErrorMessage(error);
@@ -1294,11 +1332,11 @@ function reportTuiProbe(api, result) {
1294
1332
  if (result.customThrew === null) {
1295
1333
  try {
1296
1334
  api.ui.dialog.replace(() => (() => {
1297
- var _el$87 = _$createElement("box"),
1298
- _el$88 = _$createElement("text");
1299
- _$insertNode(_el$87, _el$88);
1300
- _$insert(_el$88, summary);
1301
- return _el$87;
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;
1302
1340
  })());
1303
1341
  return;
1304
1342
  } catch (error) {