@cortexkit/opencode-magic-context 0.42.0 → 0.42.2

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 (93) hide show
  1. package/dist/config/project-security.d.ts +3 -2
  2. package/dist/config/project-security.d.ts.map +1 -1
  3. package/dist/config/schema/magic-context.d.ts +20 -0
  4. package/dist/config/schema/magic-context.d.ts.map +1 -1
  5. package/dist/features/magic-context/compartment-chunk-embedding.d.ts +8 -4
  6. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  7. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  8. package/dist/features/magic-context/dreamer/expire-memories.d.ts +15 -0
  9. package/dist/features/magic-context/dreamer/expire-memories.d.ts.map +1 -0
  10. package/dist/features/magic-context/dreamer/module-apply.d.ts +4 -2
  11. package/dist/features/magic-context/dreamer/module-apply.d.ts.map +1 -1
  12. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
  13. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  14. package/dist/features/magic-context/dreamer/task-gates.d.ts +6 -1
  15. package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -1
  16. package/dist/features/magic-context/memory/embedding-identity.d.ts.map +1 -1
  17. package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
  18. package/dist/features/magic-context/memory/embedding-model-match.d.ts +41 -0
  19. package/dist/features/magic-context/memory/embedding-model-match.d.ts.map +1 -0
  20. package/dist/features/magic-context/memory/embedding-openai.d.ts +7 -20
  21. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  22. package/dist/features/magic-context/memory/embedding-provider.d.ts +2 -2
  23. package/dist/features/magic-context/memory/embedding-provider.d.ts.map +1 -1
  24. package/dist/features/magic-context/memory/embedding-synapse.d.ts +5 -4
  25. package/dist/features/magic-context/memory/embedding-synapse.d.ts.map +1 -1
  26. package/dist/features/magic-context/memory/embedding.d.ts.map +1 -1
  27. package/dist/features/magic-context/pi-content-decisions.d.ts.map +1 -1
  28. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  29. package/dist/features/magic-context/storage-meta-persisted.d.ts +4 -0
  30. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  31. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
  32. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  33. package/dist/hooks/magic-context/compaction-marker-manager.d.ts +4 -6
  34. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  35. package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -1
  36. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  37. package/dist/hooks/magic-context/compartment-runner-validation.d.ts +1 -1
  38. package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
  39. package/dist/hooks/magic-context/embed-session-state.d.ts +1 -1
  40. package/dist/hooks/magic-context/embed-session-state.d.ts.map +1 -1
  41. package/dist/hooks/magic-context/execute-status.d.ts +2 -0
  42. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  43. package/dist/hooks/magic-context/format-embed-failure.d.ts +2 -1
  44. package/dist/hooks/magic-context/format-embed-failure.d.ts.map +1 -1
  45. package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
  46. package/dist/hooks/magic-context/lkg-slot.d.ts +2 -0
  47. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  48. package/dist/hooks/magic-context/maintenance-authority.d.ts +2 -2
  49. package/dist/hooks/magic-context/maintenance-authority.d.ts.map +1 -1
  50. package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
  51. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +1 -0
  52. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  53. package/dist/{index-c9hamh36.js → index-953x7a79.js} +564 -143
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +579 -217
  56. package/dist/plugin/dream-timer-module-client.d.ts +2 -2
  57. package/dist/plugin/dream-timer-module-client.d.ts.map +1 -1
  58. package/dist/plugin/embedding-bootstrap-helpers.d.ts.map +1 -1
  59. package/dist/plugin/embedding-routing.d.ts.map +1 -1
  60. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  61. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  62. package/dist/{recomp-orchestrator-3atsasjy.js → recomp-orchestrator-5g8f5rhy.js} +1 -1
  63. package/dist/shared/rpc-types.d.ts +10 -0
  64. package/dist/shared/rpc-types.d.ts.map +1 -1
  65. package/dist/shared/status-detail-text.d.ts +3 -1
  66. package/dist/shared/status-detail-text.d.ts.map +1 -1
  67. package/dist/shared/status-summary.d.ts +30 -0
  68. package/dist/shared/status-summary.d.ts.map +1 -0
  69. package/dist/shared/tail-hygiene-status.d.ts +1 -0
  70. package/dist/shared/tail-hygiene-status.d.ts.map +1 -1
  71. package/dist/shared/transcript.d.ts +2 -1
  72. package/dist/shared/transcript.d.ts.map +1 -1
  73. package/dist/shared/user-facing-codes.d.ts +191 -0
  74. package/dist/shared/user-facing-codes.d.ts.map +1 -0
  75. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  76. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  77. package/dist/tools/ctx-reduce/tools.d.ts.map +1 -1
  78. package/package.json +1 -1
  79. package/src/config/project-security.test.ts +10 -2
  80. package/src/config/project-security.ts +12 -5
  81. package/src/config/schema/magic-context.test.ts +29 -0
  82. package/src/config/schema/magic-context.ts +24 -0
  83. package/src/shared/rpc-types.ts +10 -0
  84. package/src/shared/status-detail-text.test.ts +93 -24
  85. package/src/shared/status-detail-text.ts +9 -2
  86. package/src/shared/status-summary.ts +167 -0
  87. package/src/shared/tag-transcript.ts +14 -7
  88. package/src/shared/tail-hygiene-status.ts +8 -0
  89. package/src/shared/transcript.ts +2 -1
  90. package/src/shared/user-facing-codes.test.ts +140 -0
  91. package/src/shared/user-facing-codes.ts +276 -0
  92. package/src/tui/index.tsx +41 -8
  93. package/src/tui-compiled/index.tsx +660 -647
@@ -8,7 +8,9 @@ import { createElement as _$createElement } from "opentui:runtime-module:%40open
8
8
  import { createComponent as _$createComponent } from "opentui:runtime-module:%40opentui%2Fsolid";
9
9
  /** @jsxImportSource @opentui/solid */
10
10
  // @ts-nocheck
11
- import { createMemo } from "opentui:runtime-module:solid-js";
11
+ import { createMemo, createSignal } from "opentui:runtime-module:solid-js";
12
+ import { renderUserStatusSummary, statusSummaryFromDetail } from "../shared/status-summary";
13
+ import { renderUserFacingFailure, userFacingFailureCode } from "../shared/user-facing-codes";
12
14
  import { createSidebarContentSlot, kickRecompProgressRefresh, refreshSidebarSnapshot } from "./slots/sidebar-content";
13
15
  import packageJson from "../../package.json";
14
16
  import { closeRpc, dismissUpgradeReminder, getAnnouncement, getCompartmentCount, getRpcGeneration, initRpcClient, loadEmbedDetail, loadStatusDetail, loadToastDurationMs, markAnnounced, requestRecomp, requestUpgrade } from "./data/context-db";
@@ -138,8 +140,10 @@ const R = props => (() => {
138
140
  })();
139
141
  const StatusDialog = props => {
140
142
  const theme = createMemo(() => props.api.theme.current);
143
+ const [diagnostics, setDiagnostics] = createSignal(props.diagnostics === true);
141
144
  const t = () => theme();
142
145
  const s = () => props.s;
146
+ const summaryLines = () => renderUserStatusSummary(statusSummaryFromDetail(s()), "plain").split("\n").slice(1);
143
147
  const compactionOff = () => s().compaction_enabled === false;
144
148
 
145
149
  // Prefer the RPC-provided model context limit (what the sidebar shows) so the
@@ -236,24 +240,12 @@ const StatusDialog = props => {
236
240
  _el$0 = _$createTextNode(`v`),
237
241
  _el$1 = _$createElement("box"),
238
242
  _el$10 = _$createElement("text"),
239
- _el$11 = _$createTextNode(` / `),
240
- _el$12 = _$createTextNode(` tokens`),
241
- _el$13 = _$createElement("box"),
242
- _el$14 = _$createElement("box"),
243
- _el$15 = _$createElement("text"),
244
- _el$17 = _$createElement("box"),
245
- _el$18 = _$createElement("box"),
246
- _el$19 = _$createElement("text"),
247
- _el$20 = _$createElement("b"),
248
- _el$22 = _$createElement("box"),
249
- _el$23 = _$createElement("text");
243
+ _el$11 = _$createTextNode(` Diagnostics`),
244
+ _el$12 = _$createElement("box"),
245
+ _el$13 = _$createElement("text");
250
246
  _$insertNode(_el$4, _el$5);
251
247
  _$insertNode(_el$4, _el$1);
252
- _$insertNode(_el$4, _el$13);
253
- _$insertNode(_el$4, _el$14);
254
- _$insertNode(_el$4, _el$17);
255
- _$insertNode(_el$4, _el$18);
256
- _$insertNode(_el$4, _el$22);
248
+ _$insertNode(_el$4, _el$12);
257
249
  _$setProp(_el$4, "flexDirection", "column");
258
250
  _$setProp(_el$4, "width", "100%");
259
251
  _$setProp(_el$4, "paddingLeft", 2);
@@ -271,153 +263,179 @@ const StatusDialog = props => {
271
263
  _$insertNode(_el$7, _$createTextNode(`⚡ Magic Context Status`));
272
264
  _$insertNode(_el$9, _el$0);
273
265
  _$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);
280
266
  _$insertNode(_el$1, _el$10);
281
- _$setProp(_el$1, "flexDirection", "row");
282
- _$setProp(_el$1, "justifyContent", "space-between");
283
267
  _$setProp(_el$1, "width", "100%");
284
- _$insert(_el$1, (() => {
285
- var _c$ = _$memo(() => !!compactionOff());
286
- return () => _c$() ? (() => {
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;
293
- })() : (() => {
294
- var _el$28 = _$createElement("text"),
295
- _el$29 = _$createElement("b"),
296
- _el$30 = _$createTextNode(`%`),
297
- _el$31 = _$createTextNode(` / `),
298
- _el$32 = _$createTextNode(`%`);
299
- _$insertNode(_el$28, _el$29);
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;
308
- })();
309
- })(), _el$10);
268
+ _$setProp(_el$1, "justifyContent", "flex-end");
269
+ _$setProp(_el$1, "onMouseDown", () => setDiagnostics(!diagnostics()));
310
270
  _$insertNode(_el$10, _el$11);
311
- _$insertNode(_el$10, _el$12);
312
- _$insert(_el$10, () => fmt(s().inputTokens), _el$11);
313
- _$insert(_el$10, (() => {
314
- var _c$2 = _$memo(() => contextLimit() > 0);
315
- return () => _c$2() ? fmt(contextLimit()) : "?";
316
- })(), _el$12);
317
- _$insert(_el$4, (() => {
318
- var _c$3 = _$memo(() => !!s().windowGeometry);
319
- return () => _c$3() && (() => {
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;
324
- })();
325
- })(), _el$13);
326
- _$setProp(_el$13, "width", "100%");
327
- _$setProp(_el$13, "flexDirection", "row");
328
- _$setProp(_el$13, "height", 1);
329
- _$insert(_el$13, () => barSegments().map(seg => (() => {
330
- var _el$34 = _$createElement("box");
331
- _$setProp(_el$34, "flexBasis", 0);
332
- _$setProp(_el$34, "height", 1);
333
- _$effect(_p$ => {
334
- var _v$9 = seg.label,
335
- _v$0 = Math.max(1, seg.tokens),
336
- _v$1 = seg.color;
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));
340
- return _p$;
341
- }, {
342
- e: undefined,
343
- t: undefined,
344
- a: undefined
345
- });
346
- return _el$34;
347
- })()));
348
- _$insertNode(_el$14, _el$15);
349
- _$setProp(_el$14, "flexDirection", "column");
350
- _$insert(_el$14, () => breakdownSegments().segs.map(seg => {
351
- const pct = (seg.tokens / breakdownSegments().total * 100).toFixed(1);
352
- return (() => {
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(`%)`);
359
- _$insertNode(_el$35, _el$36);
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);
371
- _$effect(_p$ => {
372
- var _v$10 = seg.label,
373
- _v$11 = seg.color,
374
- _v$12 = t().textMuted;
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));
378
- return _p$;
379
- }, {
380
- e: undefined,
381
- t: undefined,
382
- a: undefined
383
- });
384
- return _el$35;
385
- })();
386
- }), _el$15);
387
- _$insertNode(_el$15, _$createTextNode(`Conversation includes reasoning; hygiene excludes it`));
388
- _$insert(_el$14, (() => {
389
- var _c$4 = _$memo(() => s().tailHygiene !== undefined);
390
- return () => _c$4() && _$createComponent(R, {
391
- get t() {
392
- return t();
393
- },
394
- l: "Hygiene",
395
- get v() {
396
- return formatTailHygiene(s().tailHygiene);
397
- },
398
- get fg() {
399
- return _$memo(() => !!s().tailHygiene.evaluable)() ? t().accent : t().warning;
400
- }
401
- });
402
- })(), null);
271
+ _$insert(_el$10, () => diagnostics() ? "[x]" : "[ ]", _el$11);
403
272
  _$insert(_el$4, (() => {
404
- var _c$5 = _$memo(() => !!(!compactionOff() && s().recompProgress));
405
- return () => _c$5() && (() => {
273
+ var _c$ = _$memo(() => !!!diagnostics());
274
+ return () => _c$() ? (() => {
275
+ var _el$15 = _$createElement("box");
276
+ _$setProp(_el$15, "flexDirection", "column");
277
+ _$setProp(_el$15, "width", "100%");
278
+ _$insert(_el$15, () => summaryLines().map(line => (() => {
279
+ var _el$16 = _$createElement("text");
280
+ _$insert(_el$16, line);
281
+ return _el$16;
282
+ })()));
283
+ return _el$15;
284
+ })() : [_$memo(() => s().configParseFailures.map(failure => (() => {
285
+ var _el$30 = _$createElement("text");
286
+ _$insert(_el$30, () => formatConfigParseStatusLine(failure));
287
+ _$effect(_$p => _$setProp(_el$30, "fg", t().error, _$p));
288
+ return _el$30;
289
+ })())), (() => {
290
+ var _el$17 = _$createElement("box"),
291
+ _el$18 = _$createElement("text"),
292
+ _el$19 = _$createTextNode(` / `),
293
+ _el$20 = _$createTextNode(` tokens`);
294
+ _$insertNode(_el$17, _el$18);
295
+ _$setProp(_el$17, "flexDirection", "row");
296
+ _$setProp(_el$17, "justifyContent", "space-between");
297
+ _$setProp(_el$17, "width", "100%");
298
+ _$insert(_el$17, (() => {
299
+ var _c$2 = _$memo(() => !!compactionOff());
300
+ return () => _c$2() ? (() => {
301
+ var _el$31 = _$createElement("text"),
302
+ _el$32 = _$createElement("b");
303
+ _$insertNode(_el$31, _el$32);
304
+ _$insert(_el$32, () => nativeCompactionContextLabel(s()));
305
+ _$effect(_$p => _$setProp(_el$31, "fg", t().accent, _$p));
306
+ return _el$31;
307
+ })() : (() => {
308
+ var _el$33 = _$createElement("text"),
309
+ _el$34 = _$createElement("b"),
310
+ _el$35 = _$createTextNode(`%`),
311
+ _el$36 = _$createTextNode(` / `),
312
+ _el$37 = _$createTextNode(`%`);
313
+ _$insertNode(_el$33, _el$34);
314
+ _$insertNode(_el$33, _el$36);
315
+ _$insertNode(_el$33, _el$37);
316
+ _$insertNode(_el$34, _el$35);
317
+ _$insert(_el$34, () => s().usagePercentage.toFixed(1), _el$35);
318
+ _$insert(_el$33, () => formatThresholdPercent(s().executeThreshold), _el$37);
319
+ _$insert(_el$33, () => s().executeThresholdClamped ? "*" : "", null);
320
+ _$effect(_$p => _$setProp(_el$33, "fg", s().usagePercentage >= 80 ? t().error : s().usagePercentage >= 65 ? t().warning : t().accent, _$p));
321
+ return _el$33;
322
+ })();
323
+ })(), _el$18);
324
+ _$insertNode(_el$18, _el$19);
325
+ _$insertNode(_el$18, _el$20);
326
+ _$insert(_el$18, () => fmt(s().inputTokens), _el$19);
327
+ _$insert(_el$18, (() => {
328
+ var _c$3 = _$memo(() => contextLimit() > 0);
329
+ return () => _c$3() ? fmt(contextLimit()) : "?";
330
+ })(), _el$20);
331
+ _$effect(_$p => _$setProp(_el$18, "fg", compactionOff() ? t().accent : s().usagePercentage >= 80 ? t().error : s().usagePercentage >= 65 ? t().warning : t().accent, _$p));
332
+ return _el$17;
333
+ })(), _$memo(() => _$memo(() => !!s().windowGeometry)() && (() => {
334
+ var _el$38 = _$createElement("text");
335
+ _$insert(_el$38, () => formatWindowDerivationLine(s().inputTokens, s().windowGeometry));
336
+ _$effect(_$p => _$setProp(_el$38, "fg", t().textMuted, _$p));
337
+ return _el$38;
338
+ })()), (() => {
339
+ var _el$21 = _$createElement("box");
340
+ _$setProp(_el$21, "width", "100%");
341
+ _$setProp(_el$21, "flexDirection", "row");
342
+ _$setProp(_el$21, "height", 1);
343
+ _$insert(_el$21, () => barSegments().map(seg => (() => {
344
+ var _el$39 = _$createElement("box");
345
+ _$setProp(_el$39, "flexBasis", 0);
346
+ _$setProp(_el$39, "height", 1);
347
+ _$effect(_p$ => {
348
+ var _v$7 = seg.label,
349
+ _v$8 = Math.max(1, seg.tokens),
350
+ _v$9 = seg.color;
351
+ _v$7 !== _p$.e && (_p$.e = _$setProp(_el$39, "key", _v$7, _p$.e));
352
+ _v$8 !== _p$.t && (_p$.t = _$setProp(_el$39, "flexGrow", _v$8, _p$.t));
353
+ _v$9 !== _p$.a && (_p$.a = _$setProp(_el$39, "backgroundColor", _v$9, _p$.a));
354
+ return _p$;
355
+ }, {
356
+ e: undefined,
357
+ t: undefined,
358
+ a: undefined
359
+ });
360
+ return _el$39;
361
+ })()));
362
+ return _el$21;
363
+ })(), (() => {
364
+ var _el$22 = _$createElement("box"),
365
+ _el$23 = _$createElement("text");
366
+ _$insertNode(_el$22, _el$23);
367
+ _$setProp(_el$22, "flexDirection", "column");
368
+ _$insert(_el$22, () => breakdownSegments().segs.map(seg => {
369
+ const pct = (seg.tokens / breakdownSegments().total * 100).toFixed(1);
370
+ return (() => {
371
+ var _el$40 = _$createElement("box"),
372
+ _el$41 = _$createElement("text"),
373
+ _el$42 = _$createTextNode(` `),
374
+ _el$43 = _$createElement("text"),
375
+ _el$44 = _$createTextNode(` (`),
376
+ _el$45 = _$createTextNode(`%)`);
377
+ _$insertNode(_el$40, _el$41);
378
+ _$insertNode(_el$40, _el$43);
379
+ _$setProp(_el$40, "width", "100%");
380
+ _$setProp(_el$40, "flexDirection", "row");
381
+ _$setProp(_el$40, "justifyContent", "space-between");
382
+ _$insertNode(_el$41, _el$42);
383
+ _$insert(_el$41, () => seg.label, _el$42);
384
+ _$insert(_el$41, () => seg.detail ?? "", null);
385
+ _$insertNode(_el$43, _el$44);
386
+ _$insertNode(_el$43, _el$45);
387
+ _$insert(_el$43, () => fmt(seg.tokens), _el$44);
388
+ _$insert(_el$43, pct, _el$45);
389
+ _$effect(_p$ => {
390
+ var _v$0 = seg.label,
391
+ _v$1 = seg.color,
392
+ _v$10 = t().textMuted;
393
+ _v$0 !== _p$.e && (_p$.e = _$setProp(_el$40, "key", _v$0, _p$.e));
394
+ _v$1 !== _p$.t && (_p$.t = _$setProp(_el$41, "fg", _v$1, _p$.t));
395
+ _v$10 !== _p$.a && (_p$.a = _$setProp(_el$43, "fg", _v$10, _p$.a));
396
+ return _p$;
397
+ }, {
398
+ e: undefined,
399
+ t: undefined,
400
+ a: undefined
401
+ });
402
+ return _el$40;
403
+ })();
404
+ }), _el$23);
405
+ _$insertNode(_el$23, _$createTextNode(`Conversation includes reasoning; hygiene excludes it`));
406
+ _$insert(_el$22, (() => {
407
+ var _c$4 = _$memo(() => s().tailHygiene !== undefined);
408
+ return () => _c$4() && _$createComponent(R, {
409
+ get t() {
410
+ return t();
411
+ },
412
+ l: "Hygiene",
413
+ get v() {
414
+ return formatTailHygiene(s().tailHygiene);
415
+ },
416
+ get fg() {
417
+ return _$memo(() => !!s().tailHygiene.evaluable)() ? t().accent : t().warning;
418
+ }
419
+ });
420
+ })(), null);
421
+ _$effect(_$p => _$setProp(_el$23, "fg", t().textMuted, _$p));
422
+ return _el$22;
423
+ })(), _$memo(() => _$memo(() => !!(!compactionOff() && s().recompProgress))() && (() => {
406
424
  const p = s().recompProgress;
407
425
  // Label follows the flow that started the run, so a plain
408
426
  // /ctx-recomp never reads as an "Upgrade" (dogfood 2026-06-04).
409
427
  const verb = p.kind === "upgrade" ? "Upgrade" : p.kind === "embed" ? "Embed" : "Recomp";
410
428
  return (() => {
411
- var _el$41 = _$createElement("box"),
412
- _el$42 = _$createElement("text"),
413
- _el$43 = _$createElement("b");
414
- _$insertNode(_el$41, _el$42);
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, () => {
429
+ var _el$46 = _$createElement("box"),
430
+ _el$47 = _$createElement("text"),
431
+ _el$48 = _$createElement("b");
432
+ _$insertNode(_el$46, _el$47);
433
+ _$setProp(_el$46, "marginTop", 1);
434
+ _$setProp(_el$46, "width", "100%");
435
+ _$setProp(_el$46, "flexDirection", "column");
436
+ _$insertNode(_el$47, _el$48);
437
+ _$insert(_el$48, verb);
438
+ _$insert(_el$46, () => {
421
439
  if (p.phase === "recomp") {
422
440
  const frac = p.totalMessages > 0 ? p.processedMessages / p.totalMessages : 0;
423
441
  const width = 24;
@@ -517,508 +535,501 @@ const StatusDialog = props => {
517
535
  }
518
536
  });
519
537
  }, null);
520
- _$effect(_$p => _$setProp(_el$42, "fg", t().text, _$p));
521
- return _el$41;
538
+ _$effect(_$p => _$setProp(_el$47, "fg", t().text, _$p));
539
+ return _el$46;
522
540
  })();
523
- })();
524
- })(), _el$17);
525
- _$insert(_el$4, (() => {
526
- var _c$6 = _$memo(() => !!s().hostBackendsModuleSide);
527
- return () => _c$6() && (() => {
528
- var _el$44 = _$createElement("box"),
529
- _el$45 = _$createElement("text"),
530
- _el$46 = _$createElement("b"),
531
- _el$48 = _$createElement("text");
532
- _$insertNode(_el$44, _el$45);
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);
540
- _$effect(_p$ => {
541
- var _v$13 = t().text,
542
- _v$14 = t().textMuted;
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));
545
- return _p$;
546
- }, {
547
- e: undefined,
548
- t: undefined
549
- });
550
- return _el$44;
551
- })();
552
- })(), _el$17);
553
- _$setProp(_el$17, "flexDirection", "row");
554
- _$setProp(_el$17, "width", "100%");
555
- _$setProp(_el$17, "marginTop", 1);
556
- _$setProp(_el$17, "gap", 4);
557
- _$insert(_el$17, (() => {
558
- var _c$7 = _$memo(() => !!compactionOff());
559
- return () => _c$7() ? (() => {
541
+ })()), _$memo(() => _$memo(() => !!s().hostBackendsModuleSide)() && (() => {
560
542
  var _el$49 = _$createElement("box"),
561
543
  _el$50 = _$createElement("text"),
562
- _el$51 = _$createElement("b");
544
+ _el$51 = _$createElement("b"),
545
+ _el$53 = _$createElement("text");
563
546
  _$insertNode(_el$49, _el$50);
547
+ _$insertNode(_el$49, _el$53);
548
+ _$setProp(_el$49, "marginTop", 1);
549
+ _$setProp(_el$49, "width", "100%");
564
550
  _$setProp(_el$49, "flexDirection", "column");
565
- _$setProp(_el$49, "flexGrow", 1);
566
- _$setProp(_el$49, "flexBasis", 0);
567
551
  _$insertNode(_el$50, _el$51);
568
- _$insertNode(_el$51, _$createTextNode(`Knowledge`));
569
- _$insert(_el$49, () => compactionOffSidebarRows(s()).map(row => _$createComponent(R, {
570
- get t() {
571
- return t();
572
- },
573
- get l() {
574
- return row.label;
575
- },
576
- get v() {
577
- return row.value;
578
- },
579
- get fg() {
580
- return _$memo(() => row.label === "Memories")() ? t().accent : t().textMuted;
581
- }
582
- })), null);
583
- _$insert(_el$49, (() => {
584
- var _c$1 = _$memo(() => s().readySmartNoteCount > 0);
585
- return () => _c$1() && _$createComponent(R, {
586
- get t() {
587
- return t();
588
- },
589
- l: "Smart Notes",
590
- get v() {
591
- return `${s().readySmartNoteCount} ready`;
592
- },
593
- get fg() {
594
- return t().accent;
595
- }
596
- });
597
- })(), null);
598
- _$insert(_el$49, (() => {
599
- var _c$10 = _$memo(() => !!s().lastDreamerRunAt);
600
- return () => _c$10() && _$createComponent(R, {
601
- get t() {
602
- return t();
603
- },
604
- l: "Dreamer",
605
- get v() {
606
- return `last ${relTime(s().lastDreamerRunAt)}`;
607
- },
608
- get fg() {
609
- return t().textMuted;
610
- }
611
- });
612
- })(), null);
613
- _$effect(_$p => _$setProp(_el$50, "fg", t().text, _$p));
614
- return _el$49;
615
- })() : [(() => {
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");
628
- _$insertNode(_el$53, _el$54);
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, {
638
- get t() {
639
- return t();
640
- },
641
- l: "Active",
642
- get v() {
643
- return _$memo(() => s().tagCountsAuthoritative === false)() ? "n/a (module total only)" : `${s().activeTags} (~${fmtBytes(s().activeBytes)})`;
644
- }
645
- }), _el$57);
646
- _$insert(_el$53, _$createComponent(R, {
647
- get t() {
648
- return t();
649
- },
650
- l: "Dropped",
651
- get v() {
652
- return _$memo(() => s().tagCountsAuthoritative === false)() ? "n/a (module total only)" : String(s().droppedTags);
653
- }
654
- }), _el$57);
655
- _$insert(_el$53, _$createComponent(R, {
656
- get t() {
657
- return t();
658
- },
659
- l: "Total",
660
- get v() {
661
- return String(s().totalTags);
662
- },
663
- get fg() {
664
- return t().textMuted;
665
- }
666
- }), _el$57);
667
- _$insertNode(_el$57, _el$58);
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, {
672
- get t() {
673
- return t();
674
- },
675
- l: "Drops",
676
- get v() {
677
- return String(s().pendingOpsCount);
678
- },
679
- get fg() {
680
- return _$memo(() => s().pendingOpsCount > 0)() ? t().warning : t().textMuted;
681
- }
682
- }), _el$61);
683
- _$insertNode(_el$61, _el$62);
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, {
688
- get t() {
689
- return t();
690
- },
691
- l: "Configured",
692
- get v() {
693
- return formatCacheTtlDisplay({
694
- value: s().cacheTtl,
695
- source: s().cacheTtlSource,
696
- modelKey: s().cacheTtlModelKey
697
- }).replace(/^Cache TTL: /, "");
698
- }
699
- }), _el$65);
700
- _$insert(_el$53, _$createComponent(R, {
701
- get t() {
702
- return t();
703
- },
704
- l: "Last response",
705
- get v() {
706
- return _$memo(() => s().lastResponseTime > 0)() ? `${Math.round(elapsed() / 1000)}s ago` : "never";
707
- }
708
- }), _el$65);
709
- _$insert(_el$53, _$createComponent(R, {
710
- get t() {
711
- return t();
712
- },
713
- l: "Remaining",
714
- get v() {
715
- return _$memo(() => !!s().cacheExpired)() ? "expired" : _$memo(() => !!s().cacheNeverExpires)() ? "never (MC never assumes expiry — external cache-keep)" : `${Math.round(s().cacheRemainingMs / 1000)}s`;
716
- },
717
- get fg() {
718
- return _$memo(() => !!s().cacheExpired)() ? t().warning : t().textMuted;
719
- }
720
- }), _el$65);
721
- _$insert(_el$53, _$createComponent(R, {
722
- get t() {
723
- return t();
724
- },
725
- l: "Auto-execute",
726
- get v() {
727
- return _$memo(() => !!s().cacheExpired)() ? "yes (expired)" : _$memo(() => !!s().cacheNeverExpires)() ? `at ≥${formatThresholdPercent(s().executeThreshold)}%` : `at TTL or ≥${formatThresholdPercent(s().executeThreshold)}%`;
728
- },
729
- get fg() {
730
- return t().textMuted;
731
- }
732
- }), _el$65);
733
- _$insertNode(_el$65, _el$66);
734
- _$setProp(_el$65, "marginTop", 1);
735
- _$insertNode(_el$66, _el$67);
736
- _$insertNode(_el$67, _$createTextNode(`Memory`));
737
- _$insert(_el$53, _$createComponent(R, {
738
- get t() {
739
- return t();
740
- },
741
- l: "Active",
742
- get v() {
743
- return String(s().memoryCount);
744
- },
745
- get fg() {
746
- return t().accent;
747
- }
748
- }), null);
749
- _$insert(_el$53, _$createComponent(R, {
750
- get t() {
751
- return t();
752
- },
753
- l: "Injected",
754
- get v() {
755
- return String(s().memoryBlockCount);
756
- },
757
- get fg() {
758
- return t().textMuted;
759
- }
760
- }), null);
552
+ _$insertNode(_el$51, _$createTextNode(`Rust Mode`));
553
+ _$insert(_el$53, RUST_MODE_HOST_PATHS_LINE);
761
554
  _$effect(_p$ => {
762
- var _v$15 = t().text,
763
- _v$16 = t().text,
764
- _v$17 = t().text,
765
- _v$18 = t().text;
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));
555
+ var _v$11 = t().text,
556
+ _v$12 = t().textMuted;
557
+ _v$11 !== _p$.e && (_p$.e = _$setProp(_el$50, "fg", _v$11, _p$.e));
558
+ _v$12 !== _p$.t && (_p$.t = _$setProp(_el$53, "fg", _v$12, _p$.t));
770
559
  return _p$;
771
560
  }, {
772
561
  e: undefined,
773
- t: undefined,
774
- a: undefined,
775
- o: undefined
562
+ t: undefined
776
563
  });
777
- return _el$53;
778
- })(), (() => {
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");
788
- _$insertNode(_el$69, _el$70);
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, {
797
- get t() {
798
- return t();
799
- },
800
- l: "Execute threshold",
801
- get v() {
802
- return `${formatThresholdPercent(s().executeThreshold)}%${s().executeThresholdClamped ? "*" : ""}`;
803
- }
804
- }), _el$73);
805
- _$insert(_el$69, _$createComponent(R, {
806
- get t() {
807
- return t();
808
- },
809
- l: "Last reduce anchor",
810
- get v() {
811
- return `${fmt(s().lastNudgeTokens)} tok`;
812
- }
813
- }), _el$73);
814
- _$insertNode(_el$73, _el$74);
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, {
819
- get t() {
820
- return t();
821
- },
822
- l: "Protected tags",
823
- get v() {
824
- return String(s().protectedTagCount);
825
- },
826
- get fg() {
827
- return t().textMuted;
828
- }
829
- }), _el$77);
830
- _$insert(_el$69, _$createComponent(R, {
564
+ return _el$49;
565
+ })()), (() => {
566
+ var _el$25 = _$createElement("box");
567
+ _$setProp(_el$25, "flexDirection", "row");
568
+ _$setProp(_el$25, "width", "100%");
569
+ _$setProp(_el$25, "marginTop", 1);
570
+ _$setProp(_el$25, "gap", 4);
571
+ _$insert(_el$25, (() => {
572
+ var _c$5 = _$memo(() => !!compactionOff());
573
+ return () => _c$5() ? (() => {
574
+ var _el$54 = _$createElement("box"),
575
+ _el$55 = _$createElement("text"),
576
+ _el$56 = _$createElement("b");
577
+ _$insertNode(_el$54, _el$55);
578
+ _$setProp(_el$54, "flexDirection", "column");
579
+ _$setProp(_el$54, "flexGrow", 1);
580
+ _$setProp(_el$54, "flexBasis", 0);
581
+ _$insertNode(_el$55, _el$56);
582
+ _$insertNode(_el$56, _$createTextNode(`Knowledge`));
583
+ _$insert(_el$54, () => compactionOffSidebarRows(s()).map(row => _$createComponent(R, {
584
+ get t() {
585
+ return t();
586
+ },
587
+ get l() {
588
+ return row.label;
589
+ },
590
+ get v() {
591
+ return row.value;
592
+ },
593
+ get fg() {
594
+ return _$memo(() => row.label === "Memories")() ? t().accent : t().textMuted;
595
+ }
596
+ })), null);
597
+ _$insert(_el$54, (() => {
598
+ var _c$8 = _$memo(() => s().readySmartNoteCount > 0);
599
+ return () => _c$8() && _$createComponent(R, {
600
+ get t() {
601
+ return t();
602
+ },
603
+ l: "Smart Notes",
604
+ get v() {
605
+ return `${s().readySmartNoteCount} ready`;
606
+ },
607
+ get fg() {
608
+ return t().accent;
609
+ }
610
+ });
611
+ })(), null);
612
+ _$insert(_el$54, (() => {
613
+ var _c$9 = _$memo(() => !!s().lastDreamerRunAt);
614
+ return () => _c$9() && _$createComponent(R, {
615
+ get t() {
616
+ return t();
617
+ },
618
+ l: "Dreamer",
619
+ get v() {
620
+ return `last ${relTime(s().lastDreamerRunAt)}`;
621
+ },
622
+ get fg() {
623
+ return t().textMuted;
624
+ }
625
+ });
626
+ })(), null);
627
+ _$effect(_$p => _$setProp(_el$55, "fg", t().text, _$p));
628
+ return _el$54;
629
+ })() : [(() => {
630
+ var _el$58 = _$createElement("box"),
631
+ _el$59 = _$createElement("text"),
632
+ _el$60 = _$createElement("b"),
633
+ _el$62 = _$createElement("box"),
634
+ _el$63 = _$createElement("text"),
635
+ _el$64 = _$createElement("b"),
636
+ _el$66 = _$createElement("box"),
637
+ _el$67 = _$createElement("text"),
638
+ _el$68 = _$createElement("b"),
639
+ _el$70 = _$createElement("box"),
640
+ _el$71 = _$createElement("text"),
641
+ _el$72 = _$createElement("b");
642
+ _$insertNode(_el$58, _el$59);
643
+ _$insertNode(_el$58, _el$62);
644
+ _$insertNode(_el$58, _el$66);
645
+ _$insertNode(_el$58, _el$70);
646
+ _$setProp(_el$58, "flexDirection", "column");
647
+ _$setProp(_el$58, "flexGrow", 1);
648
+ _$setProp(_el$58, "flexBasis", 0);
649
+ _$insertNode(_el$59, _el$60);
650
+ _$insertNode(_el$60, _$createTextNode(`Tags`));
651
+ _$insert(_el$58, _$createComponent(R, {
652
+ get t() {
653
+ return t();
654
+ },
655
+ l: "Active",
656
+ get v() {
657
+ return _$memo(() => s().tagCountsAuthoritative === false)() ? "n/a (module total only)" : `${s().activeTags} (~${fmtBytes(s().activeBytes)})`;
658
+ }
659
+ }), _el$62);
660
+ _$insert(_el$58, _$createComponent(R, {
661
+ get t() {
662
+ return t();
663
+ },
664
+ l: "Dropped",
665
+ get v() {
666
+ return _$memo(() => s().tagCountsAuthoritative === false)() ? "n/a (module total only)" : String(s().droppedTags);
667
+ }
668
+ }), _el$62);
669
+ _$insert(_el$58, _$createComponent(R, {
670
+ get t() {
671
+ return t();
672
+ },
673
+ l: "Total",
674
+ get v() {
675
+ return String(s().totalTags);
676
+ },
677
+ get fg() {
678
+ return t().textMuted;
679
+ }
680
+ }), _el$62);
681
+ _$insertNode(_el$62, _el$63);
682
+ _$setProp(_el$62, "marginTop", 1);
683
+ _$insertNode(_el$63, _el$64);
684
+ _$insertNode(_el$64, _$createTextNode(`Pending Queue`));
685
+ _$insert(_el$58, _$createComponent(R, {
686
+ get t() {
687
+ return t();
688
+ },
689
+ l: "Drops",
690
+ get v() {
691
+ return String(s().pendingOpsCount);
692
+ },
693
+ get fg() {
694
+ return _$memo(() => s().pendingOpsCount > 0)() ? t().warning : t().textMuted;
695
+ }
696
+ }), _el$66);
697
+ _$insertNode(_el$66, _el$67);
698
+ _$setProp(_el$66, "marginTop", 1);
699
+ _$insertNode(_el$67, _el$68);
700
+ _$insertNode(_el$68, _$createTextNode(`Cache TTL`));
701
+ _$insert(_el$58, _$createComponent(R, {
702
+ get t() {
703
+ return t();
704
+ },
705
+ l: "Configured",
706
+ get v() {
707
+ return formatCacheTtlDisplay({
708
+ value: s().cacheTtl,
709
+ source: s().cacheTtlSource,
710
+ modelKey: s().cacheTtlModelKey
711
+ }).replace(/^Cache TTL: /, "");
712
+ }
713
+ }), _el$70);
714
+ _$insert(_el$58, _$createComponent(R, {
715
+ get t() {
716
+ return t();
717
+ },
718
+ l: "Last response",
719
+ get v() {
720
+ return _$memo(() => s().lastResponseTime > 0)() ? `${Math.round(elapsed() / 1000)}s ago` : "never";
721
+ }
722
+ }), _el$70);
723
+ _$insert(_el$58, _$createComponent(R, {
724
+ get t() {
725
+ return t();
726
+ },
727
+ l: "Remaining",
728
+ get v() {
729
+ return _$memo(() => !!s().cacheExpired)() ? "expired" : _$memo(() => !!s().cacheNeverExpires)() ? "never (MC never assumes expiry — external cache-keep)" : `${Math.round(s().cacheRemainingMs / 1000)}s`;
730
+ },
731
+ get fg() {
732
+ return _$memo(() => !!s().cacheExpired)() ? t().warning : t().textMuted;
733
+ }
734
+ }), _el$70);
735
+ _$insert(_el$58, _$createComponent(R, {
736
+ get t() {
737
+ return t();
738
+ },
739
+ l: "Auto-execute",
740
+ get v() {
741
+ return _$memo(() => !!s().cacheExpired)() ? "yes (expired)" : _$memo(() => !!s().cacheNeverExpires)() ? `at ≥${formatThresholdPercent(s().executeThreshold)}%` : `at TTL or ≥${formatThresholdPercent(s().executeThreshold)}%`;
742
+ },
743
+ get fg() {
744
+ return t().textMuted;
745
+ }
746
+ }), _el$70);
747
+ _$insertNode(_el$70, _el$71);
748
+ _$setProp(_el$70, "marginTop", 1);
749
+ _$insertNode(_el$71, _el$72);
750
+ _$insertNode(_el$72, _$createTextNode(`Memory`));
751
+ _$insert(_el$58, _$createComponent(R, {
752
+ get t() {
753
+ return t();
754
+ },
755
+ l: "Active",
756
+ get v() {
757
+ return String(s().memoryCount);
758
+ },
759
+ get fg() {
760
+ return t().accent;
761
+ }
762
+ }), null);
763
+ _$insert(_el$58, _$createComponent(R, {
764
+ get t() {
765
+ return t();
766
+ },
767
+ l: "Injected",
768
+ get v() {
769
+ return String(s().memoryBlockCount);
770
+ },
771
+ get fg() {
772
+ return t().textMuted;
773
+ }
774
+ }), null);
775
+ _$effect(_p$ => {
776
+ var _v$13 = t().text,
777
+ _v$14 = t().text,
778
+ _v$15 = t().text,
779
+ _v$16 = t().text;
780
+ _v$13 !== _p$.e && (_p$.e = _$setProp(_el$59, "fg", _v$13, _p$.e));
781
+ _v$14 !== _p$.t && (_p$.t = _$setProp(_el$63, "fg", _v$14, _p$.t));
782
+ _v$15 !== _p$.a && (_p$.a = _$setProp(_el$67, "fg", _v$15, _p$.a));
783
+ _v$16 !== _p$.o && (_p$.o = _$setProp(_el$71, "fg", _v$16, _p$.o));
784
+ return _p$;
785
+ }, {
786
+ e: undefined,
787
+ t: undefined,
788
+ a: undefined,
789
+ o: undefined
790
+ });
791
+ return _el$58;
792
+ })(), (() => {
793
+ var _el$74 = _$createElement("box"),
794
+ _el$75 = _$createElement("text"),
795
+ _el$76 = _$createElement("b"),
796
+ _el$78 = _$createElement("box"),
797
+ _el$79 = _$createElement("text"),
798
+ _el$80 = _$createElement("b"),
799
+ _el$82 = _$createElement("box"),
800
+ _el$83 = _$createElement("text"),
801
+ _el$84 = _$createElement("b");
802
+ _$insertNode(_el$74, _el$75);
803
+ _$insertNode(_el$74, _el$78);
804
+ _$insertNode(_el$74, _el$82);
805
+ _$setProp(_el$74, "flexDirection", "column");
806
+ _$setProp(_el$74, "flexGrow", 1);
807
+ _$setProp(_el$74, "flexBasis", 0);
808
+ _$insertNode(_el$75, _el$76);
809
+ _$insertNode(_el$76, _$createTextNode(`Reductions`));
810
+ _$insert(_el$74, _$createComponent(R, {
811
+ get t() {
812
+ return t();
813
+ },
814
+ l: "Execute threshold",
815
+ get v() {
816
+ return `${formatThresholdPercent(s().executeThreshold)}%${s().executeThresholdClamped ? "*" : ""}`;
817
+ }
818
+ }), _el$78);
819
+ _$insert(_el$74, _$createComponent(R, {
820
+ get t() {
821
+ return t();
822
+ },
823
+ l: "Last reduce anchor",
824
+ get v() {
825
+ return `${fmt(s().lastNudgeTokens)} tok`;
826
+ }
827
+ }), _el$78);
828
+ _$insertNode(_el$78, _el$79);
829
+ _$setProp(_el$78, "marginTop", 1);
830
+ _$insertNode(_el$79, _el$80);
831
+ _$insertNode(_el$80, _$createTextNode(`Context Details`));
832
+ _$insert(_el$74, _$createComponent(R, {
833
+ get t() {
834
+ return t();
835
+ },
836
+ l: "Protected tags",
837
+ get v() {
838
+ return String(s().protectedTagCount);
839
+ },
840
+ get fg() {
841
+ return t().textMuted;
842
+ }
843
+ }), _el$82);
844
+ _$insert(_el$74, _$createComponent(R, {
845
+ get t() {
846
+ return t();
847
+ },
848
+ l: "Subagent",
849
+ get v() {
850
+ return s().isSubagent ? "yes" : "no";
851
+ },
852
+ get fg() {
853
+ return t().textMuted;
854
+ }
855
+ }), _el$82);
856
+ _$insertNode(_el$82, _el$83);
857
+ _$setProp(_el$82, "marginTop", 1);
858
+ _$insertNode(_el$83, _el$84);
859
+ _$insertNode(_el$84, _$createTextNode(`History Compression`));
860
+ _$insert(_el$74, (() => {
861
+ var _c$0 = _$memo(() => typeof s().boundaryPresent === "boolean");
862
+ return () => _c$0() && _$createComponent(R, {
863
+ get t() {
864
+ return t();
865
+ },
866
+ l: "Boundary",
867
+ get v() {
868
+ return s().boundaryPresent ? "present" : "absent";
869
+ }
870
+ });
871
+ })(), null);
872
+ _$insert(_el$74, (() => {
873
+ var _c$1 = _$memo(() => s().coverageOrdinal !== undefined);
874
+ return () => _c$1() && _$createComponent(R, {
875
+ get t() {
876
+ return t();
877
+ },
878
+ l: "Coverage ordinal",
879
+ get v() {
880
+ return _$memo(() => s().coverageOrdinal == null)() ? "none" : String(s().coverageOrdinal);
881
+ }
882
+ });
883
+ })(), null);
884
+ _$insert(_el$74, (() => {
885
+ var _c$10 = _$memo(() => typeof s().boundaryPresent === "boolean");
886
+ return () => _c$10() && _$createComponent(R, {
887
+ get t() {
888
+ return t();
889
+ },
890
+ l: "Compartments",
891
+ get v() {
892
+ return String(s().compartmentCount);
893
+ }
894
+ });
895
+ })(), null);
896
+ _$insert(_el$74, _$createComponent(R, {
897
+ get t() {
898
+ return t();
899
+ },
900
+ l: "History block",
901
+ get v() {
902
+ return `~${fmt(s().historyBlockTokens)} tok`;
903
+ }
904
+ }), null);
905
+ _$insert(_el$74, (() => {
906
+ var _c$11 = _$memo(() => s().compressionBudget != null);
907
+ return () => _c$11() && _$createComponent(R, {
908
+ get t() {
909
+ return t();
910
+ },
911
+ l: "Budget",
912
+ get v() {
913
+ return `~${fmt(s().compressionBudget)} tok (${s().compressionUsage} used)`;
914
+ }
915
+ });
916
+ })(), null);
917
+ _$insert(_el$74, (() => {
918
+ var _c$12 = _$memo(() => !!s().lastDreamerRunAt);
919
+ return () => _c$12() && _$createComponent(R, {
920
+ get t() {
921
+ return t();
922
+ },
923
+ l: "Dreamer",
924
+ get v() {
925
+ return `last ${relTime(s().lastDreamerRunAt)}`;
926
+ },
927
+ get fg() {
928
+ return t().textMuted;
929
+ }
930
+ });
931
+ })(), null);
932
+ _$effect(_p$ => {
933
+ var _v$17 = t().text,
934
+ _v$18 = t().text,
935
+ _v$19 = t().text;
936
+ _v$17 !== _p$.e && (_p$.e = _$setProp(_el$75, "fg", _v$17, _p$.e));
937
+ _v$18 !== _p$.t && (_p$.t = _$setProp(_el$79, "fg", _v$18, _p$.t));
938
+ _v$19 !== _p$.a && (_p$.a = _$setProp(_el$83, "fg", _v$19, _p$.a));
939
+ return _p$;
940
+ }, {
941
+ e: undefined,
942
+ t: undefined,
943
+ a: undefined
944
+ });
945
+ return _el$74;
946
+ })()];
947
+ })());
948
+ return _el$25;
949
+ })(), _$memo(() => _$memo(() => !!s().lastTransformError)() && (() => {
950
+ var _el$86 = _$createElement("box"),
951
+ _el$87 = _$createElement("text");
952
+ _$insertNode(_el$86, _el$87);
953
+ _$setProp(_el$86, "marginTop", 1);
954
+ _$setProp(_el$86, "width", "100%");
955
+ _$insert(_el$87, () => renderUserFacingFailure("transform_update_failed"));
956
+ _$effect(_$p => _$setProp(_el$87, "fg", t().error, _$p));
957
+ return _el$86;
958
+ })()), (() => {
959
+ var _el$26 = _$createElement("box"),
960
+ _el$27 = _$createElement("text"),
961
+ _el$28 = _$createElement("b");
962
+ _$insertNode(_el$26, _el$27);
963
+ _$setProp(_el$26, "marginTop", 1);
964
+ _$setProp(_el$26, "width", "100%");
965
+ _$insertNode(_el$27, _el$28);
966
+ _$insertNode(_el$28, _$createTextNode(`Logger`));
967
+ _$insert(_el$26, _$createComponent(R, {
831
968
  get t() {
832
969
  return t();
833
970
  },
834
- l: "Subagent",
971
+ l: "Swallowed writes",
835
972
  get v() {
836
- return s().isSubagent ? "yes" : "no";
973
+ return String(s().loggerDiagnostics?.swallowedWriteCount ?? 0);
837
974
  },
838
975
  get fg() {
839
- return t().textMuted;
840
- }
841
- }), _el$77);
842
- _$insertNode(_el$77, _el$78);
843
- _$setProp(_el$77, "marginTop", 1);
844
- _$insertNode(_el$78, _el$79);
845
- _$insertNode(_el$79, _$createTextNode(`History Compression`));
846
- _$insert(_el$69, (() => {
847
- var _c$11 = _$memo(() => typeof s().boundaryPresent === "boolean");
848
- return () => _c$11() && _$createComponent(R, {
849
- get t() {
850
- return t();
851
- },
852
- l: "Boundary",
853
- get v() {
854
- return s().boundaryPresent ? "present" : "absent";
855
- }
856
- });
857
- })(), null);
858
- _$insert(_el$69, (() => {
859
- var _c$12 = _$memo(() => s().coverageOrdinal !== undefined);
860
- return () => _c$12() && _$createComponent(R, {
861
- get t() {
862
- return t();
863
- },
864
- l: "Coverage ordinal",
865
- get v() {
866
- return _$memo(() => s().coverageOrdinal == null)() ? "none" : String(s().coverageOrdinal);
867
- }
868
- });
869
- })(), null);
870
- _$insert(_el$69, (() => {
871
- var _c$13 = _$memo(() => typeof s().boundaryPresent === "boolean");
872
- return () => _c$13() && _$createComponent(R, {
873
- get t() {
874
- return t();
875
- },
876
- l: "Compartments",
877
- get v() {
878
- return String(s().compartmentCount);
879
- }
880
- });
881
- })(), null);
882
- _$insert(_el$69, _$createComponent(R, {
883
- get t() {
884
- return t();
885
- },
886
- l: "History block",
887
- get v() {
888
- return `~${fmt(s().historyBlockTokens)} tok`;
976
+ return _$memo(() => (s().loggerDiagnostics?.swallowedWriteCount ?? 0) > 0)() ? t().error : t().textMuted;
889
977
  }
890
978
  }), null);
891
- _$insert(_el$69, (() => {
892
- var _c$14 = _$memo(() => s().compressionBudget != null);
893
- return () => _c$14() && _$createComponent(R, {
979
+ _$insert(_el$26, (() => {
980
+ var _c$6 = _$memo(() => !!s().loggerDiagnostics?.lastErrorMessage);
981
+ return () => _c$6() && _$createComponent(R, {
894
982
  get t() {
895
983
  return t();
896
984
  },
897
- l: "Budget",
985
+ l: "Warning",
898
986
  get v() {
899
- return `~${fmt(s().compressionBudget)} tok (${s().compressionUsage} used)`;
987
+ return renderUserFacingFailure("status_unavailable");
988
+ },
989
+ get fg() {
990
+ return t().error;
900
991
  }
901
992
  });
902
993
  })(), null);
903
- _$insert(_el$69, (() => {
904
- var _c$15 = _$memo(() => !!s().lastDreamerRunAt);
905
- return () => _c$15() && _$createComponent(R, {
994
+ _$insert(_el$26, (() => {
995
+ var _c$7 = _$memo(() => !!s().loggerDiagnostics?.lastErrorTime);
996
+ return () => _c$7() && _$createComponent(R, {
906
997
  get t() {
907
998
  return t();
908
999
  },
909
- l: "Dreamer",
1000
+ l: "Last error time",
910
1001
  get v() {
911
- return `last ${relTime(s().lastDreamerRunAt)}`;
1002
+ return s().loggerDiagnostics.lastErrorTime;
912
1003
  },
913
1004
  get fg() {
914
1005
  return t().textMuted;
915
1006
  }
916
1007
  });
917
1008
  })(), null);
918
- _$effect(_p$ => {
919
- var _v$19 = t().text,
920
- _v$20 = t().text,
921
- _v$21 = t().text;
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));
925
- return _p$;
926
- }, {
927
- e: undefined,
928
- t: undefined,
929
- a: undefined
930
- });
931
- return _el$69;
1009
+ _$effect(_$p => _$setProp(_el$27, "fg", t().text, _$p));
1010
+ return _el$26;
932
1011
  })()];
933
- })());
934
- _$insert(_el$4, (() => {
935
- var _c$8 = _$memo(() => !!s().lastTransformError);
936
- return () => _c$8() && (() => {
937
- var _el$81 = _$createElement("box"),
938
- _el$82 = _$createElement("text"),
939
- _el$83 = _$createTextNode(`⚠ `);
940
- _$insertNode(_el$81, _el$82);
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;
947
- })();
948
- })(), _el$18);
949
- _$insertNode(_el$18, _el$19);
950
- _$setProp(_el$18, "marginTop", 1);
951
- _$setProp(_el$18, "width", "100%");
952
- _$insertNode(_el$19, _el$20);
953
- _$insertNode(_el$20, _$createTextNode(`Logger`));
954
- _$insert(_el$18, _$createComponent(R, {
955
- get t() {
956
- return t();
957
- },
958
- l: "Swallowed writes",
959
- get v() {
960
- return String(s().loggerDiagnostics?.swallowedWriteCount ?? 0);
961
- },
962
- get fg() {
963
- return _$memo(() => (s().loggerDiagnostics?.swallowedWriteCount ?? 0) > 0)() ? t().error : t().textMuted;
964
- }
965
- }), null);
966
- _$insert(_el$18, (() => {
967
- var _c$9 = _$memo(() => !!s().loggerDiagnostics?.lastErrorMessage);
968
- return () => _c$9() && _$createComponent(R, {
969
- get t() {
970
- return t();
971
- },
972
- l: "Last error",
973
- get v() {
974
- return s().loggerDiagnostics.lastErrorMessage;
975
- },
976
- get fg() {
977
- return t().error;
978
- }
979
- });
980
- })(), null);
981
- _$insert(_el$18, (() => {
982
- var _c$0 = _$memo(() => !!s().loggerDiagnostics?.lastErrorTime);
983
- return () => _c$0() && _$createComponent(R, {
984
- get t() {
985
- return t();
986
- },
987
- l: "Last error time",
988
- get v() {
989
- return s().loggerDiagnostics.lastErrorTime;
990
- },
991
- get fg() {
992
- return t().textMuted;
993
- }
994
- });
995
- })(), null);
996
- _$insertNode(_el$22, _el$23);
997
- _$setProp(_el$22, "marginTop", 1);
998
- _$setProp(_el$22, "justifyContent", "flex-end");
999
- _$setProp(_el$22, "width", "100%");
1000
- _$insertNode(_el$23, _$createTextNode(`Esc to close`));
1012
+ })(), _el$12);
1013
+ _$insertNode(_el$12, _el$13);
1014
+ _$setProp(_el$12, "marginTop", 1);
1015
+ _$setProp(_el$12, "justifyContent", "flex-end");
1016
+ _$setProp(_el$12, "width", "100%");
1017
+ _$insertNode(_el$13, _$createTextNode(`Esc to close`));
1001
1018
  _$effect(_p$ => {
1002
1019
  var _v$3 = t().accent,
1003
1020
  _v$4 = t().textMuted,
1004
- _v$5 = compactionOff() ? t().accent : s().usagePercentage >= 80 ? t().error : s().usagePercentage >= 65 ? t().warning : t().accent,
1005
- _v$6 = t().textMuted,
1006
- _v$7 = t().text,
1007
- _v$8 = t().textMuted;
1021
+ _v$5 = diagnostics() ? t().accent : t().textMuted,
1022
+ _v$6 = t().textMuted;
1008
1023
  _v$3 !== _p$.e && (_p$.e = _$setProp(_el$6, "fg", _v$3, _p$.e));
1009
1024
  _v$4 !== _p$.t && (_p$.t = _$setProp(_el$9, "fg", _v$4, _p$.t));
1010
1025
  _v$5 !== _p$.a && (_p$.a = _$setProp(_el$10, "fg", _v$5, _p$.a));
1011
- _v$6 !== _p$.o && (_p$.o = _$setProp(_el$15, "fg", _v$6, _p$.o));
1012
- _v$7 !== _p$.i && (_p$.i = _$setProp(_el$19, "fg", _v$7, _p$.i));
1013
- _v$8 !== _p$.n && (_p$.n = _$setProp(_el$23, "fg", _v$8, _p$.n));
1026
+ _v$6 !== _p$.o && (_p$.o = _$setProp(_el$13, "fg", _v$6, _p$.o));
1014
1027
  return _p$;
1015
1028
  }, {
1016
1029
  e: undefined,
1017
1030
  t: undefined,
1018
1031
  a: undefined,
1019
- o: undefined,
1020
- i: undefined,
1021
- n: undefined
1032
+ o: undefined
1022
1033
  });
1023
1034
  return _el$4;
1024
1035
  })();
@@ -1144,7 +1155,7 @@ function showUpgradeDialog(api, resume, targetSessionId = getSessionId(api)) {
1144
1155
  }));
1145
1156
  return true;
1146
1157
  }
1147
- async function showStatusDialog(api, targetSessionId = getSessionId(api)) {
1158
+ async function showStatusDialog(api, targetSessionId = getSessionId(api), initialDiagnostics = false) {
1148
1159
  const sessionId = targetSessionId;
1149
1160
  if (!sessionId) {
1150
1161
  showToast(api, {
@@ -1158,8 +1169,9 @@ async function showStatusDialog(api, targetSessionId = getSessionId(api)) {
1158
1169
  const result = await loadStatusDetail(sessionId, directory, modelKey);
1159
1170
  if (getSessionId(api) !== sessionId) return false;
1160
1171
  if (!result.ok) {
1172
+ console.error(`[magic-context] status unavailable code=${userFacingFailureCode("status_unavailable")}: ${result.error}`);
1161
1173
  showToast(api, {
1162
- message: `Status unavailable: ${result.error}`,
1174
+ message: renderUserFacingFailure("status_unavailable"),
1163
1175
  variant: "warning"
1164
1176
  });
1165
1177
  return false;
@@ -1168,7 +1180,8 @@ async function showStatusDialog(api, targetSessionId = getSessionId(api)) {
1168
1180
  api: api,
1169
1181
  get s() {
1170
1182
  return result.detail;
1171
- }
1183
+ },
1184
+ diagnostics: initialDiagnostics
1172
1185
  }));
1173
1186
  return true;
1174
1187
  }
@@ -1177,31 +1190,31 @@ const EmbedDialog = props => {
1177
1190
  const t = () => theme();
1178
1191
  const lines = () => props.detail.statusText.split("\n");
1179
1192
  return (() => {
1180
- var _el$84 = _$createElement("box"),
1181
- _el$85 = _$createElement("box"),
1182
- _el$86 = _$createElement("text"),
1183
- _el$87 = _$createElement("b");
1184
- _$insertNode(_el$84, _el$85);
1185
- _$setProp(_el$84, "flexDirection", "column");
1186
- _$setProp(_el$84, "width", "100%");
1187
- _$setProp(_el$84, "paddingLeft", 2);
1188
- _$setProp(_el$84, "paddingRight", 2);
1189
- _$setProp(_el$84, "paddingTop", 1);
1190
- _$setProp(_el$84, "paddingBottom", 1);
1191
- _$insertNode(_el$85, _el$86);
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;
1193
+ var _el$88 = _$createElement("box"),
1194
+ _el$89 = _$createElement("box"),
1195
+ _el$90 = _$createElement("text"),
1196
+ _el$91 = _$createElement("b");
1197
+ _$insertNode(_el$88, _el$89);
1198
+ _$setProp(_el$88, "flexDirection", "column");
1199
+ _$setProp(_el$88, "width", "100%");
1200
+ _$setProp(_el$88, "paddingLeft", 2);
1201
+ _$setProp(_el$88, "paddingRight", 2);
1202
+ _$setProp(_el$88, "paddingTop", 1);
1203
+ _$setProp(_el$88, "paddingBottom", 1);
1204
+ _$insertNode(_el$89, _el$90);
1205
+ _$setProp(_el$89, "justifyContent", "center");
1206
+ _$setProp(_el$89, "width", "100%");
1207
+ _$setProp(_el$89, "marginBottom", 1);
1208
+ _$insertNode(_el$90, _el$91);
1209
+ _$insertNode(_el$91, _$createTextNode(`Embedding`));
1210
+ _$insert(_el$88, () => lines().map(line => (() => {
1211
+ var _el$93 = _$createElement("text");
1212
+ _$insert(_el$93, line);
1213
+ _$effect(_$p => _$setProp(_el$93, "fg", t().text, _$p));
1214
+ return _el$93;
1202
1215
  })()), null);
1203
- _$effect(_$p => _$setProp(_el$86, "fg", t().accent, _$p));
1204
- return _el$84;
1216
+ _$effect(_$p => _$setProp(_el$90, "fg", t().accent, _$p));
1217
+ return _el$88;
1205
1218
  })();
1206
1219
  };
1207
1220
  async function showEmbedDialog(api, targetSessionId = getSessionId(api)) {
@@ -1267,11 +1280,11 @@ function renderTuiProbeCustomArm(api, result) {
1267
1280
  api.ui.dialog.replace(() => {
1268
1281
  try {
1269
1282
  return (() => {
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;
1283
+ var _el$94 = _$createElement("box"),
1284
+ _el$95 = _$createElement("text");
1285
+ _$insertNode(_el$94, _el$95);
1286
+ _$insertNode(_el$95, _$createTextNode(`probe`));
1287
+ return _el$94;
1275
1288
  })();
1276
1289
  } catch (error) {
1277
1290
  result.customThrew = probeErrorMessage(error);
@@ -1344,11 +1357,11 @@ function reportTuiProbe(api, result) {
1344
1357
  if (result.customThrew === null) {
1345
1358
  try {
1346
1359
  api.ui.dialog.replace(() => (() => {
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;
1360
+ var _el$97 = _$createElement("box"),
1361
+ _el$98 = _$createElement("text");
1362
+ _$insertNode(_el$97, _el$98);
1363
+ _$insert(_el$98, summary);
1364
+ return _el$97;
1352
1365
  })());
1353
1366
  return;
1354
1367
  } catch (error) {
@@ -1600,7 +1613,7 @@ const tui = async (api, _options, meta) => {
1600
1613
  const action = n.payload?.action;
1601
1614
  const stillActive = () => getRpcGeneration() === generation && getSessionId(api) === requestedSessionId;
1602
1615
  if (action === "show-status-dialog") {
1603
- return stillActive() && (await showStatusDialog(api, requestedSessionId));
1616
+ return stillActive() && (await showStatusDialog(api, requestedSessionId, n.payload?.diagnostics === true));
1604
1617
  }
1605
1618
  if (action === "show-recomp-dialog") {
1606
1619
  return stillActive() && (await showRecompDialog(api, requestedSessionId));