@cortexkit/opencode-openai-auth 1.1.0 → 1.3.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 (66) hide show
  1. package/dist/bin.js +8 -8
  2. package/dist/{codex-request-BXDXToyt.d.ts → codex-request-B9D0e97Q.d.ts} +177 -28
  3. package/dist/{index-7c6sxtd6.js → index-1mbgsxsr.js} +2 -2
  4. package/dist/{index-4c8yw54k.js → index-2pgkrebq.js} +2 -2
  5. package/dist/index-4v2fs42x.js +65 -0
  6. package/dist/index-8x1aj7q3.js +2 -0
  7. package/dist/{index-f2fmb596.js → index-bc89akak.js} +1 -1
  8. package/dist/index-ex6nx3mq.js +2 -0
  9. package/dist/{index-zpm95mt5.js → index-ftkhhr6d.js} +1 -1
  10. package/dist/{index-msx2m78k.js → index-gn2b097f.js} +2 -2
  11. package/dist/{index-j8v2xwq6.js → index-m3ctrabv.js} +1 -1
  12. package/dist/index-psjyexj3.js +69 -0
  13. package/dist/{index-k6cydkgt.js → index-tddr876f.js} +2 -2
  14. package/dist/index-tn8x5tz8.js +90 -0
  15. package/dist/{index-csky2xpg.js → index-xwvze96g.js} +1 -1
  16. package/dist/index.d.ts +5 -3
  17. package/dist/index.js +1 -1
  18. package/dist/{model-YRg7Uowo.d.ts → model-BdITTmeb.d.ts} +1 -1
  19. package/dist/{port-file-CxEpgSHY.d.ts → port-file-DbHIVC9a.d.ts} +1 -1
  20. package/dist/{protocol-CDV1Pc6h.d.ts → protocol-MysYPAho.d.ts} +1 -1
  21. package/dist/rpc/port-file.d.ts +1 -1
  22. package/dist/rpc/port-file.js +1 -1
  23. package/dist/rpc/protocol.d.ts +1 -1
  24. package/dist/rpc/protocol.js +1 -1
  25. package/dist/rpc/rpc-client.d.ts +3 -3
  26. package/dist/rpc/rpc-client.js +1 -1
  27. package/dist/rpc/rpc-dir.js +1 -1
  28. package/dist/{sidebar-state-DjTWUbmf.d.ts → sidebar-state-CVSok7zv.d.ts} +114 -5
  29. package/dist/sidebar-state.d.ts +2 -2
  30. package/dist/sidebar-state.js +1 -1
  31. package/dist/token-util-cf0nyh7n.js +1 -0
  32. package/dist/{token-rz4t3ay6.js → token-z6qq7a1d.js} +1 -1
  33. package/dist/tui-preferences.js +1 -1
  34. package/dist/tui.d.ts +2 -2
  35. package/dist/v2/server.d.ts +109 -2
  36. package/dist/v2/server.js +3 -3
  37. package/package.json +4 -4
  38. package/src/tui-compiled/raw/shared/0332701351b3eeec-format.js +203 -18
  39. package/src/tui-compiled/raw/shared/0f77ebc3c914c9c6-custody.js +242 -16
  40. package/src/tui-compiled/raw/shared/169b2b4bf30909bc-consumer.js +168 -6
  41. package/src/tui-compiled/raw/shared/375d9cca2def037d-private-files.js +10 -2
  42. package/src/tui-compiled/raw/shared/94f53cfd572ba4bb-availability.js +106 -0
  43. package/src/tui-compiled/raw/shared/d0f0b6be200311af-insula.js +286 -21
  44. package/src/tui-compiled/raw/shared/d5a8f1061ee2f114-index.js +1 -1
  45. package/src/tui-compiled/raw/shared/dc9290c2a7552ba6-watch.js +253 -0
  46. package/src/tui-compiled/raw/shared/e8d3c8da776ef9cd-index.js +4 -1
  47. package/src/tui-compiled/raw/sidebar-state.js +63 -1
  48. package/src/tui-compiled/raw/tui.tsx +82 -30
  49. package/src/tui-compiled/runtime/shared/0332701351b3eeec-format.js +203 -18
  50. package/src/tui-compiled/runtime/shared/0f77ebc3c914c9c6-custody.js +242 -16
  51. package/src/tui-compiled/runtime/shared/169b2b4bf30909bc-consumer.js +168 -6
  52. package/src/tui-compiled/runtime/shared/375d9cca2def037d-private-files.js +10 -2
  53. package/src/tui-compiled/runtime/shared/94f53cfd572ba4bb-availability.js +106 -0
  54. package/src/tui-compiled/runtime/shared/d0f0b6be200311af-insula.js +286 -21
  55. package/src/tui-compiled/runtime/shared/d5a8f1061ee2f114-index.js +1 -1
  56. package/src/tui-compiled/runtime/shared/dc9290c2a7552ba6-watch.js +253 -0
  57. package/src/tui-compiled/runtime/shared/e8d3c8da776ef9cd-index.js +4 -1
  58. package/src/tui-compiled/runtime/sidebar-state.js +63 -1
  59. package/src/tui-compiled/runtime/tui.js +245 -208
  60. package/dist/index-0yh85bwb.js +0 -69
  61. package/dist/index-7eb3dw37.js +0 -90
  62. package/dist/index-8re8rprk.js +0 -2
  63. package/dist/index-edbdscy7.js +0 -65
  64. package/dist/index-m5qmvr6c.js +0 -2
  65. package/dist/map-Buq-GW7l.d.ts +0 -56
  66. package/dist/token-util-tpy2c7h6.js +0 -1
@@ -1,6 +1,7 @@
1
- import { memo as _$memo } from "opentui:runtime-module:%40opentui%2Fsolid";
2
1
  import { createTextNode as _$createTextNode } from "opentui:runtime-module:%40opentui%2Fsolid";
2
+ import { memo as _$memo } from "opentui:runtime-module:%40opentui%2Fsolid";
3
3
  import { createComponent as _$createComponent } from "opentui:runtime-module:%40opentui%2Fsolid";
4
+ import { use as _$use } from "opentui:runtime-module:%40opentui%2Fsolid";
4
5
  import { effect as _$effect } from "opentui:runtime-module:%40opentui%2Fsolid";
5
6
  import { insertNode as _$insertNode } from "opentui:runtime-module:%40opentui%2Fsolid";
6
7
  import { insert as _$insert } from "opentui:runtime-module:%40opentui%2Fsolid";
@@ -12,12 +13,12 @@ import { readFileSync } from "node:fs";
12
13
  import { dirname, join } from "node:path";
13
14
  import { fileURLToPath } from "node:url";
14
15
  import { formatQuota, quotaTextParts, quotaWindowParts } from "./shared/d5a8f1061ee2f114-index.js";
15
- import { createEffect, createSignal, For, onCleanup, Show } from "opentui:runtime-module:solid-js";
16
+ import { createEffect, createSignal, For, Index, onCleanup, Show } from "opentui:runtime-module:solid-js";
16
17
  import { createLogger } from "./logger.js";
17
18
  import { isNotifyPayload } from "./rpc/protocol.js";
18
19
  import { createRpcClient } from "./rpc/rpc-client.js";
19
20
  import { resolveRpcDir } from "./rpc/rpc-dir.js";
20
- import { computeQuotaPacing, DEFAULT_SIDEBAR_STATE, getCollapsedQuotaSummary, getPresentQuotaWindows, getSidebarState, resolveActiveAccount, resolveSessionSidebarRouting, resolveSessionStickyAccount, sidebarQuotaProjection } from "./sidebar-state.js";
21
+ import { computeQuotaPacing, DEFAULT_SIDEBAR_STATE, displayWidth, fitCollapsedLabel, getCollapsedAccountLines, getCollapsedQuotaSummary, getPresentQuotaWindows, getSidebarState, resolveActiveAccount, resolveSessionSidebarRouting, resolveSessionStickyAccount, sidebarQuotaProjection } from "./sidebar-state.js";
21
22
  import { openCommandDialog } from "./tui/command-dialogs.js";
22
23
  import { setupTui } from "./tui/v2.js";
23
24
  import { computeEffectiveOrder, DEFAULT_SLOT_ORDER, PLUGIN_KEY, queueTuiPreferenceUpdate, readTuiPreferencesFile, resolveOpenaiAuthPrefs, watchTuiPreferences } from "./tui-preferences.js";
@@ -203,19 +204,82 @@ function StatRow(props) {
203
204
  })();
204
205
  }
205
206
 
206
- // Compact row for the collapsed view: muted label left, caller-provided value
207
- // right. Mirrors StatRow's layout so columns line up.
208
- function CollapsedRow(props) {
207
+ // One account in the collapsed view: label left; narrow quota text and the
208
+ // status dot right (red ⊘ when killed). The session's account keeps the
209
+ // usage tone; other accounts, and any account whose reading is stale, are
210
+ // drawn muted. The row measures its own width so only the label is cut (with
211
+ // …) when the line does not fit; the quota text is never cut.
212
+ function CollapsedAccountRow(props) {
213
+ const [width, setWidth] = createSignal(0);
214
+ let row;
215
+ const dim = () => props.line.stale || !props.line.active;
216
+ const label = () => {
217
+ const columns = width();
218
+ if (columns <= 0) return props.line.name;
219
+ // The value side is the text plus ` ●`, or a lone `—`; one column
220
+ // separates it from the label.
221
+ const value = props.line.text === null ? 1 : displayWidth(props.line.text) + 2;
222
+ return fitCollapsedLabel(props.line.name, columns - value - 1);
223
+ };
209
224
  return (() => {
210
225
  var _el$8 = _$createElement("box"),
211
226
  _el$9 = _$createElement("text");
212
227
  _$insertNode(_el$8, _el$9);
228
+ _$use(element => {
229
+ row = element;
230
+ }, _el$8);
231
+ _$setProp(_el$8, "onSizeChange", () => setWidth(row?.width ?? 0));
213
232
  _$setProp(_el$8, "width", '100%');
214
233
  _$setProp(_el$8, "flexDirection", 'row');
215
234
  _$setProp(_el$8, "justifyContent", 'space-between');
216
- _$insert(_el$9, () => props.label);
217
- _$insert(_el$8, () => props.children, null);
218
- _$effect(_$p => _$setProp(_el$9, "fg", props.theme.textMuted, _$p));
235
+ _$setProp(_el$9, "wrapMode", 'none');
236
+ _$setProp(_el$9, "flexShrink", 1);
237
+ _$insert(_el$9, label);
238
+ _$insert(_el$8, _$createComponent(Show, {
239
+ get when() {
240
+ return props.line.text !== null;
241
+ },
242
+ get fallback() {
243
+ return (() => {
244
+ var _el$12 = _$createElement("text");
245
+ _$insertNode(_el$12, _$createTextNode(`—`));
246
+ _$effect(_$p => _$setProp(_el$12, "fg", props.theme.textMuted, _$p));
247
+ return _el$12;
248
+ })();
249
+ },
250
+ get children() {
251
+ var _el$0 = _$createElement("box"),
252
+ _el$11 = _$createElement("text");
253
+ _$insertNode(_el$0, _el$11);
254
+ _$setProp(_el$0, "flexDirection", 'row');
255
+ _$setProp(_el$0, "flexShrink", 0);
256
+ _$insert(_el$0, _$createComponent(Show, {
257
+ get when() {
258
+ return !dim();
259
+ },
260
+ get fallback() {
261
+ return (() => {
262
+ var _el$14 = _$createElement("text");
263
+ _$insert(_el$14, () => props.line.text);
264
+ _$effect(_$p => _$setProp(_el$14, "fg", toneColor(props.theme, 'muted'), _$p));
265
+ return _el$14;
266
+ })();
267
+ },
268
+ get children() {
269
+ var _el$1 = _$createElement("text"),
270
+ _el$10 = _$createElement("b");
271
+ _$insertNode(_el$1, _el$10);
272
+ _$insert(_el$10, () => props.line.text);
273
+ _$effect(_$p => _$setProp(_el$1, "fg", toneColor(props.theme, props.tone), _$p));
274
+ return _el$1;
275
+ }
276
+ }), _el$11);
277
+ _$insert(_el$11, () => props.line.killed ? ' \u2298' : ' \u25cf');
278
+ _$effect(_$p => _$setProp(_el$11, "fg", toneColor(props.theme, props.line.killed ? 'err' : dim() ? 'muted' : props.tone), _$p));
279
+ return _el$0;
280
+ }
281
+ }), null);
282
+ _$effect(_$p => _$setProp(_el$9, "fg", toneColor(props.theme, dim() ? 'muted' : 'text'), _$p));
219
283
  return _el$8;
220
284
  })();
221
285
  }
@@ -393,101 +457,101 @@ function QuotaRow(props) {
393
457
  },
394
458
  get fallback() {
395
459
  return (() => {
396
- var _el$16 = _$createElement("box"),
397
- _el$17 = _$createElement("text"),
398
- _el$18 = _$createElement("text");
399
- _$insertNode(_el$16, _el$17);
400
- _$insertNode(_el$16, _el$18);
401
- _$setProp(_el$16, "width", '100%');
402
- _$setProp(_el$16, "flexDirection", 'row');
403
- _$insert(_el$17, () => props.label.padEnd(props.labelWidth));
404
- _$insertNode(_el$18, _$createTextNode(`—`));
460
+ var _el$23 = _$createElement("box"),
461
+ _el$24 = _$createElement("text"),
462
+ _el$25 = _$createElement("text");
463
+ _$insertNode(_el$23, _el$24);
464
+ _$insertNode(_el$23, _el$25);
465
+ _$setProp(_el$23, "width", '100%');
466
+ _$setProp(_el$23, "flexDirection", 'row');
467
+ _$insert(_el$24, () => props.label.padEnd(props.labelWidth));
468
+ _$insertNode(_el$25, _$createTextNode(`—`));
405
469
  _$effect(_p$ => {
406
470
  var _v$9 = props.theme.textMuted,
407
471
  _v$0 = props.theme.textMuted;
408
- _v$9 !== _p$.e && (_p$.e = _$setProp(_el$17, "fg", _v$9, _p$.e));
409
- _v$0 !== _p$.t && (_p$.t = _$setProp(_el$18, "fg", _v$0, _p$.t));
472
+ _v$9 !== _p$.e && (_p$.e = _$setProp(_el$24, "fg", _v$9, _p$.e));
473
+ _v$0 !== _p$.t && (_p$.t = _$setProp(_el$25, "fg", _v$0, _p$.t));
410
474
  return _p$;
411
475
  }, {
412
476
  e: undefined,
413
477
  t: undefined
414
478
  });
415
- return _el$16;
479
+ return _el$23;
416
480
  })();
417
481
  },
418
482
  get children() {
419
483
  return [(() => {
420
- var _el$0 = _$createElement("box"),
421
- _el$1 = _$createElement("box"),
422
- _el$10 = _$createElement("text"),
423
- _el$11 = _$createElement("text");
424
- _$insertNode(_el$0, _el$1);
425
- _$setProp(_el$0, "width", '100%');
426
- _$setProp(_el$0, "flexDirection", 'row');
427
- _$setProp(_el$0, "justifyContent", 'space-between');
428
- _$insertNode(_el$1, _el$10);
429
- _$insertNode(_el$1, _el$11);
430
- _$setProp(_el$1, "flexDirection", 'row');
431
- _$insert(_el$10, () => props.label.padEnd(props.labelWidth));
432
- _$insert(_el$1, _$createComponent(For, {
484
+ var _el$15 = _$createElement("box"),
485
+ _el$16 = _$createElement("box"),
486
+ _el$17 = _$createElement("text"),
487
+ _el$18 = _$createElement("text");
488
+ _$insertNode(_el$15, _el$16);
489
+ _$setProp(_el$15, "width", '100%');
490
+ _$setProp(_el$15, "flexDirection", 'row');
491
+ _$setProp(_el$15, "justifyContent", 'space-between');
492
+ _$insertNode(_el$16, _el$17);
493
+ _$insertNode(_el$16, _el$18);
494
+ _$setProp(_el$16, "flexDirection", 'row');
495
+ _$insert(_el$17, () => props.label.padEnd(props.labelWidth));
496
+ _$insert(_el$16, _$createComponent(For, {
433
497
  get each() {
434
498
  return quotaBarSegments(used(), props.appearance, props.pacing);
435
499
  },
436
500
  children: segment => (() => {
437
- var _el$20 = _$createElement("text");
438
- _$insert(_el$20, () => segment.text);
439
- _$effect(_$p => _$setProp(_el$20, "fg", toneColor(props.theme, segment.tone), _$p));
440
- return _el$20;
501
+ var _el$27 = _$createElement("text");
502
+ _$insert(_el$27, () => segment.text);
503
+ _$effect(_$p => _$setProp(_el$27, "fg", toneColor(props.theme, segment.tone), _$p));
504
+ return _el$27;
441
505
  })()
442
- }), _el$11);
443
- _$insert(_el$11, () => ` ${props.text.slice(props.label.length + 1)}`);
444
- _$insert(_el$0, _$createComponent(Show, {
506
+ }), _el$18);
507
+ _$insert(_el$18, () => ` ${props.text.slice(props.label.length + 1)}`);
508
+ _$insert(_el$15, _$createComponent(Show, {
445
509
  get when() {
446
510
  return props.resetText;
447
511
  },
448
512
  get children() {
449
- var _el$12 = _$createElement("text");
450
- _$insert(_el$12, () => props.resetText);
451
- _$effect(_$p => _$setProp(_el$12, "fg", props.theme.textMuted, _$p));
452
- return _el$12;
513
+ var _el$19 = _$createElement("text");
514
+ _$insert(_el$19, () => props.resetText);
515
+ _$effect(_$p => _$setProp(_el$19, "fg", props.theme.textMuted, _$p));
516
+ return _el$19;
453
517
  }
454
518
  }), null);
455
519
  _$effect(_p$ => {
456
520
  var _v$5 = props.theme.textMuted,
457
521
  _v$6 = toneColor(props.theme, usageTone(used(), props.appearance));
458
- _v$5 !== _p$.e && (_p$.e = _$setProp(_el$10, "fg", _v$5, _p$.e));
459
- _v$6 !== _p$.t && (_p$.t = _$setProp(_el$11, "fg", _v$6, _p$.t));
522
+ _v$5 !== _p$.e && (_p$.e = _$setProp(_el$17, "fg", _v$5, _p$.e));
523
+ _v$6 !== _p$.t && (_p$.t = _$setProp(_el$18, "fg", _v$6, _p$.t));
460
524
  return _p$;
461
525
  }, {
462
526
  e: undefined,
463
527
  t: undefined
464
528
  });
465
- return _el$0;
529
+ return _el$15;
466
530
  })(), _$createComponent(Show, {
467
531
  get when() {
468
532
  return paceLine();
469
533
  },
470
534
  get children() {
471
- var _el$13 = _$createElement("box"),
472
- _el$14 = _$createElement("text"),
473
- _el$15 = _$createElement("text");
474
- _$insertNode(_el$13, _el$14);
475
- _$insertNode(_el$13, _el$15);
476
- _$setProp(_el$13, "width", '100%');
477
- _$setProp(_el$13, "flexDirection", 'row');
478
- _$insert(_el$14, () => ''.padEnd(props.labelWidth));
479
- _$insert(_el$15, paceLine);
535
+ var _el$20 = _$createElement("box"),
536
+ _el$21 = _$createElement("text"),
537
+ _el$22 = _$createElement("text");
538
+ _$insertNode(_el$20, _el$21);
539
+ _$insertNode(_el$20, _el$22);
540
+ _$setProp(_el$20, "width", '100%');
541
+ _$setProp(_el$20, "flexDirection", 'row');
542
+ _$insert(_el$21, () => ''.padEnd(props.labelWidth));
543
+ _$insert(_el$22, paceLine);
480
544
  _$effect(_p$ => {
481
545
  var _v$7 = props.theme.textMuted,
482
546
  _v$8 = toneColor(props.theme, props.pacing?.state === 'deficit' ? 'warn' : 'muted');
483
- _v$7 !== _p$.e && (_p$.e = _$setProp(_el$14, "fg", _v$7, _p$.e));
484
- _v$8 !== _p$.t && (_p$.t = _$setProp(_el$15, "fg", _v$8, _p$.t));
547
+ _v$7 !== _p$.e && (_p$.e = _$setProp(_el$21, "fg", _v$7, _p$.e));
548
+ _v$8 !== _p$.t && (_p$.t = _$setProp(_el$22, "fg", _v$8, _p$.t));
485
549
  return _p$;
486
550
  }, {
487
551
  e: undefined,
488
552
  t: undefined
489
553
  });
490
- return _el$13;
554
+ return _el$20;
491
555
  }
492
556
  })];
493
557
  }
@@ -502,56 +566,56 @@ function AccountBlock(props) {
502
566
  const statusTone = () => props.killed ? 'err' : props.active ? 'ok' : 'muted';
503
567
  const rows = () => buildQuotaRowsForDisplay(props.quota, Date.now(), props.pacingEnabled, props.labelWidth);
504
568
  return (() => {
505
- var _el$21 = _$createElement("box"),
506
- _el$22 = _$createElement("box"),
507
- _el$23 = _$createElement("text"),
508
- _el$24 = _$createElement("b"),
509
- _el$25 = _$createElement("text"),
510
- _el$26 = _$createElement("b");
511
- _$insertNode(_el$21, _el$22);
512
- _$setProp(_el$21, "width", '100%');
513
- _$setProp(_el$21, "flexDirection", 'column');
514
- _$insertNode(_el$22, _el$23);
515
- _$insertNode(_el$22, _el$25);
516
- _$setProp(_el$22, "width", '100%');
517
- _$setProp(_el$22, "flexDirection", 'row');
518
- _$setProp(_el$22, "justifyContent", 'space-between');
519
- _$insertNode(_el$23, _el$24);
520
- _$insert(_el$24, () => props.name);
521
- _$insertNode(_el$25, _el$26);
522
- _$insert(_el$26, statusWord);
523
- _$insert(_el$21, _$createComponent(Show, {
569
+ var _el$28 = _$createElement("box"),
570
+ _el$29 = _$createElement("box"),
571
+ _el$30 = _$createElement("text"),
572
+ _el$31 = _$createElement("b"),
573
+ _el$32 = _$createElement("text"),
574
+ _el$33 = _$createElement("b");
575
+ _$insertNode(_el$28, _el$29);
576
+ _$setProp(_el$28, "width", '100%');
577
+ _$setProp(_el$28, "flexDirection", 'column');
578
+ _$insertNode(_el$29, _el$30);
579
+ _$insertNode(_el$29, _el$32);
580
+ _$setProp(_el$29, "width", '100%');
581
+ _$setProp(_el$29, "flexDirection", 'row');
582
+ _$setProp(_el$29, "justifyContent", 'space-between');
583
+ _$insertNode(_el$30, _el$31);
584
+ _$insert(_el$31, () => props.name);
585
+ _$insertNode(_el$32, _el$33);
586
+ _$insert(_el$33, statusWord);
587
+ _$insert(_el$28, _$createComponent(Show, {
524
588
  get when() {
525
589
  return props.vaultState;
526
590
  },
527
591
  get children() {
528
- var _el$27 = _$createElement("text");
529
- _$insert(_el$27, () => props.vaultState);
530
- _$effect(_$p => _$setProp(_el$27, "fg", props.theme.warning, _$p));
531
- return _el$27;
592
+ var _el$34 = _$createElement("text");
593
+ _$insert(_el$34, () => props.vaultState);
594
+ _$effect(_$p => _$setProp(_el$34, "fg", props.theme.warning, _$p));
595
+ return _el$34;
532
596
  }
533
597
  }), null);
534
- _$insert(_el$21, _$createComponent(Show, {
598
+ _$insert(_el$28, _$createComponent(Show, {
535
599
  get when() {
536
600
  return props.hostDisabled;
537
601
  },
538
602
  get children() {
539
- var _el$28 = _$createElement("text");
540
- _$insertNode(_el$28, _$createTextNode(`off in /openai`));
541
- _$effect(_$p => _$setProp(_el$28, "fg", props.theme.textMuted, _$p));
542
- return _el$28;
603
+ var _el$35 = _$createElement("text");
604
+ _$insertNode(_el$35, _$createTextNode(`off in /openai`));
605
+ _$effect(_$p => _$setProp(_el$35, "fg", props.theme.textMuted, _$p));
606
+ return _el$35;
543
607
  }
544
608
  }), null);
545
- _$insert(_el$21, _$createComponent(Show, {
609
+ _$insert(_el$28, _$createComponent(Show, {
546
610
  get when() {
547
611
  return isQuotaLoaded(props.quota);
548
612
  },
549
613
  get fallback() {
550
614
  return (() => {
551
- var _el$30 = _$createElement("text");
552
- _$insertNode(_el$30, _$createTextNode(`checking…`));
553
- _$effect(_$p => _$setProp(_el$30, "fg", props.theme.textMuted, _$p));
554
- return _el$30;
615
+ var _el$37 = _$createElement("text");
616
+ _$insertNode(_el$37, _$createTextNode(`checking…`));
617
+ _$effect(_$p => _$setProp(_el$37, "fg", props.theme.textMuted, _$p));
618
+ return _el$37;
555
619
  })();
556
620
  },
557
621
  get children() {
@@ -561,10 +625,10 @@ function AccountBlock(props) {
561
625
  },
562
626
  get fallback() {
563
627
  return (() => {
564
- var _el$32 = _$createElement("text");
565
- _$insertNode(_el$32, _$createTextNode(`—`));
566
- _$effect(_$p => _$setProp(_el$32, "fg", props.theme.textMuted, _$p));
567
- return _el$32;
628
+ var _el$39 = _$createElement("text");
629
+ _$insertNode(_el$39, _$createTextNode(`—`));
630
+ _$effect(_$p => _$setProp(_el$39, "fg", props.theme.textMuted, _$p));
631
+ return _el$39;
568
632
  })();
569
633
  },
570
634
  get children() {
@@ -603,7 +667,7 @@ function AccountBlock(props) {
603
667
  });
604
668
  }
605
669
  }), null);
606
- _$insert(_el$21, _$createComponent(For, {
670
+ _$insert(_el$28, _$createComponent(For, {
607
671
  get each() {
608
672
  return quotaTextParts(sidebarQuotaProjection(props.quota, Date.now()), {
609
673
  now: Date.now(),
@@ -611,13 +675,13 @@ function AccountBlock(props) {
611
675
  }).filter(part => part.startsWith('checked '));
612
676
  },
613
677
  children: age => (() => {
614
- var _el$34 = _$createElement("text");
615
- _$insert(_el$34, age);
616
- _$effect(_$p => _$setProp(_el$34, "fg", props.theme.textMuted, _$p));
617
- return _el$34;
678
+ var _el$41 = _$createElement("text");
679
+ _$insert(_el$41, age);
680
+ _$effect(_$p => _$setProp(_el$41, "fg", props.theme.textMuted, _$p));
681
+ return _el$41;
618
682
  })()
619
683
  }), null);
620
- _$insert(_el$21, _$createComponent(For, {
684
+ _$insert(_el$28, _$createComponent(For, {
621
685
  get each() {
622
686
  return getAccountMetadataRows(props.resetCredits, props.quota?.spendControl);
623
687
  },
@@ -638,16 +702,16 @@ function AccountBlock(props) {
638
702
  var _v$1 = props.marginTop ?? 0,
639
703
  _v$10 = props.theme.text,
640
704
  _v$11 = toneColor(props.theme, statusTone());
641
- _v$1 !== _p$.e && (_p$.e = _$setProp(_el$21, "marginTop", _v$1, _p$.e));
642
- _v$10 !== _p$.t && (_p$.t = _$setProp(_el$23, "fg", _v$10, _p$.t));
643
- _v$11 !== _p$.a && (_p$.a = _$setProp(_el$25, "fg", _v$11, _p$.a));
705
+ _v$1 !== _p$.e && (_p$.e = _$setProp(_el$28, "marginTop", _v$1, _p$.e));
706
+ _v$10 !== _p$.t && (_p$.t = _$setProp(_el$30, "fg", _v$10, _p$.t));
707
+ _v$11 !== _p$.a && (_p$.a = _$setProp(_el$32, "fg", _v$11, _p$.a));
644
708
  return _p$;
645
709
  }, {
646
710
  e: undefined,
647
711
  t: undefined,
648
712
  a: undefined
649
713
  });
650
- return _el$21;
714
+ return _el$28;
651
715
  })();
652
716
  }
653
717
 
@@ -786,6 +850,9 @@ function QuotaSidebar(props) {
786
850
  route: sessionRouting().route
787
851
  });
788
852
  const activeAccount = () => resolveActiveAccount(sessionState());
853
+ const collapsedLines = () => getCollapsedAccountLines(sessionState(), {
854
+ showFallbacks: prefs().sections.fallbackAccounts
855
+ });
789
856
  const quotaLabelWidth = () => computeQuotaLabelWidth(renderedQuotas(state()));
790
857
  const activeQuotaSummary = () => getCollapsedQuotaSummary(activeAccount().quota);
791
858
  const activePacingDeficit = () => {
@@ -807,33 +874,33 @@ function QuotaSidebar(props) {
807
874
  const refreshBackedOff = () => state().main?.refreshBackedOff === true;
808
875
  const degraded = () => killedNames().length > 0 || quotaBackedOff() || refreshBackedOff();
809
876
  return (() => {
810
- var _el$35 = _$createElement("box"),
811
- _el$36 = _$createElement("box"),
812
- _el$37 = _$createElement("box"),
813
- _el$38 = _$createElement("text"),
814
- _el$39 = _$createElement("b");
815
- _$insertNode(_el$35, _el$36);
816
- _$setProp(_el$35, "width", '100%');
817
- _$setProp(_el$35, "flexDirection", 'column');
818
- _$setProp(_el$35, "border", SINGLE_BORDER);
819
- _$setProp(_el$35, "paddingTop", 1);
820
- _$setProp(_el$35, "paddingBottom", 1);
821
- _$setProp(_el$35, "paddingLeft", 1);
822
- _$setProp(_el$35, "paddingRight", 1);
823
- _$insertNode(_el$36, _el$37);
824
- _$setProp(_el$36, "width", '100%');
825
- _$setProp(_el$36, "flexDirection", 'row');
826
- _$setProp(_el$36, "justifyContent", 'space-between');
827
- _$setProp(_el$36, "alignItems", 'center');
828
- _$setProp(_el$36, "onMouseDown", () => {
877
+ var _el$42 = _$createElement("box"),
878
+ _el$43 = _$createElement("box"),
879
+ _el$44 = _$createElement("box"),
880
+ _el$45 = _$createElement("text"),
881
+ _el$46 = _$createElement("b");
882
+ _$insertNode(_el$42, _el$43);
883
+ _$setProp(_el$42, "width", '100%');
884
+ _$setProp(_el$42, "flexDirection", 'column');
885
+ _$setProp(_el$42, "border", SINGLE_BORDER);
886
+ _$setProp(_el$42, "paddingTop", 1);
887
+ _$setProp(_el$42, "paddingBottom", 1);
888
+ _$setProp(_el$42, "paddingLeft", 1);
889
+ _$setProp(_el$42, "paddingRight", 1);
890
+ _$insertNode(_el$43, _el$44);
891
+ _$setProp(_el$43, "width", '100%');
892
+ _$setProp(_el$43, "flexDirection", 'row');
893
+ _$setProp(_el$43, "justifyContent", 'space-between');
894
+ _$setProp(_el$43, "alignItems", 'center');
895
+ _$setProp(_el$43, "onMouseDown", () => {
829
896
  if (hasData()) props.controller.toggleCollapsed();
830
897
  });
831
- _$insertNode(_el$37, _el$38);
832
- _$setProp(_el$37, "paddingLeft", 1);
833
- _$setProp(_el$37, "paddingRight", 1);
834
- _$insertNode(_el$38, _el$39);
835
- _$insert(_el$39, headerLabel);
836
- _$insert(_el$36, _$createComponent(Show, {
898
+ _$insertNode(_el$44, _el$45);
899
+ _$setProp(_el$44, "paddingLeft", 1);
900
+ _$setProp(_el$44, "paddingRight", 1);
901
+ _$insertNode(_el$45, _el$46);
902
+ _$insert(_el$46, headerLabel);
903
+ _$insert(_el$43, _$createComponent(Show, {
837
904
  get when() {
838
905
  return degraded();
839
906
  },
@@ -843,89 +910,59 @@ function QuotaSidebar(props) {
843
910
  return prefs().header.showVersion && PLUGIN_VERSION !== '';
844
911
  },
845
912
  get children() {
846
- var _el$48 = _$createElement("text");
847
- _$insert(_el$48, `v${PLUGIN_VERSION}`);
848
- _$effect(_$p => _$setProp(_el$48, "fg", theme().textMuted, _$p));
849
- return _el$48;
913
+ var _el$51 = _$createElement("text");
914
+ _$insert(_el$51, `v${PLUGIN_VERSION}`);
915
+ _$effect(_$p => _$setProp(_el$51, "fg", theme().textMuted, _$p));
916
+ return _el$51;
850
917
  }
851
918
  });
852
919
  },
853
920
  get children() {
854
- var _el$40 = _$createElement("box"),
855
- _el$41 = _$createElement("text"),
856
- _el$42 = _$createElement("b");
857
- _$insertNode(_el$40, _el$41);
858
- _$setProp(_el$40, "paddingLeft", 1);
859
- _$setProp(_el$40, "paddingRight", 1);
860
- _$insertNode(_el$41, _el$42);
861
- _$insertNode(_el$42, _$createTextNode(`LIMITED`));
921
+ var _el$47 = _$createElement("box"),
922
+ _el$48 = _$createElement("text"),
923
+ _el$49 = _$createElement("b");
924
+ _$insertNode(_el$47, _el$48);
925
+ _$setProp(_el$47, "paddingLeft", 1);
926
+ _$setProp(_el$47, "paddingRight", 1);
927
+ _$insertNode(_el$48, _el$49);
928
+ _$insertNode(_el$49, _$createTextNode(`LIMITED`));
862
929
  _$effect(_p$ => {
863
930
  var _v$12 = theme().warning,
864
931
  _v$13 = theme().background;
865
- _v$12 !== _p$.e && (_p$.e = _$setProp(_el$40, "backgroundColor", _v$12, _p$.e));
866
- _v$13 !== _p$.t && (_p$.t = _$setProp(_el$41, "fg", _v$13, _p$.t));
932
+ _v$12 !== _p$.e && (_p$.e = _$setProp(_el$47, "backgroundColor", _v$12, _p$.e));
933
+ _v$13 !== _p$.t && (_p$.t = _$setProp(_el$48, "fg", _v$13, _p$.t));
867
934
  return _p$;
868
935
  }, {
869
936
  e: undefined,
870
937
  t: undefined
871
938
  });
872
- return _el$40;
939
+ return _el$47;
873
940
  }
874
941
  }), null);
875
- _$insert(_el$35, _$createComponent(Show, {
942
+ _$insert(_el$42, _$createComponent(Show, {
876
943
  get when() {
877
944
  return _$memo(() => !!collapsed())() && hasData();
878
945
  },
879
946
  get children() {
880
- return _$createComponent(CollapsedRow, {
881
- get theme() {
882
- return theme();
883
- },
884
- get label() {
885
- return activeAccount().name;
947
+ return _$createComponent(Index, {
948
+ get each() {
949
+ return collapsedLines();
886
950
  },
887
- get children() {
888
- return _$createComponent(Show, {
889
- get when() {
890
- return activeQuotaSummary().text != null;
891
- },
892
- get fallback() {
893
- return (() => {
894
- var _el$49 = _$createElement("text");
895
- _$insertNode(_el$49, _$createTextNode(`—`));
896
- _$effect(_$p => _$setProp(_el$49, "fg", theme().textMuted, _$p));
897
- return _el$49;
898
- })();
899
- },
900
- get children() {
901
- var _el$44 = _$createElement("box"),
902
- _el$45 = _$createElement("text"),
903
- _el$46 = _$createElement("b"),
904
- _el$47 = _$createElement("text");
905
- _$insertNode(_el$44, _el$45);
906
- _$insertNode(_el$44, _el$47);
907
- _$setProp(_el$44, "flexDirection", 'row');
908
- _$insertNode(_el$45, _el$46);
909
- _$insert(_el$46, () => activeQuotaSummary().text);
910
- _$insert(_el$47, () => activeAccount().killed ? ' \u2298' : ' \u25cf');
911
- _$effect(_p$ => {
912
- var _v$14 = toneColor(theme(), activeQuotaTone()),
913
- _v$15 = toneColor(theme(), activeAccount().killed ? 'err' : activeQuotaTone());
914
- _v$14 !== _p$.e && (_p$.e = _$setProp(_el$45, "fg", _v$14, _p$.e));
915
- _v$15 !== _p$.t && (_p$.t = _$setProp(_el$47, "fg", _v$15, _p$.t));
916
- return _p$;
917
- }, {
918
- e: undefined,
919
- t: undefined
920
- });
921
- return _el$44;
922
- }
923
- });
924
- }
951
+ children: line => _$createComponent(CollapsedAccountRow, {
952
+ get theme() {
953
+ return theme();
954
+ },
955
+ get line() {
956
+ return line();
957
+ },
958
+ get tone() {
959
+ return activeQuotaTone();
960
+ }
961
+ })
925
962
  });
926
963
  }
927
964
  }), null);
928
- _$insert(_el$35, _$createComponent(Show, {
965
+ _$insert(_el$42, _$createComponent(Show, {
929
966
  get when() {
930
967
  return !collapsed() || !hasData();
931
968
  },
@@ -936,14 +973,14 @@ function QuotaSidebar(props) {
936
973
  },
937
974
  get fallback() {
938
975
  return (() => {
939
- var _el$51 = _$createElement("box"),
940
- _el$52 = _$createElement("text");
941
- _$insertNode(_el$51, _el$52);
942
- _$setProp(_el$51, "marginTop", 1);
943
- _$setProp(_el$51, "width", '100%');
944
- _$insertNode(_el$52, _$createTextNode(`Waiting for quota…`));
945
- _$effect(_$p => _$setProp(_el$52, "fg", theme().textMuted, _$p));
946
- return _el$51;
976
+ var _el$52 = _$createElement("box"),
977
+ _el$53 = _$createElement("text");
978
+ _$insertNode(_el$52, _el$53);
979
+ _$setProp(_el$52, "marginTop", 1);
980
+ _$setProp(_el$52, "width", '100%');
981
+ _$insertNode(_el$53, _$createTextNode(`Waiting for quota…`));
982
+ _$effect(_$p => _$setProp(_el$53, "fg", theme().textMuted, _$p));
983
+ return _el$52;
947
984
  })();
948
985
  },
949
986
  get children() {
@@ -1190,19 +1227,19 @@ function QuotaSidebar(props) {
1190
1227
  }
1191
1228
  }), null);
1192
1229
  _$effect(_p$ => {
1193
- var _v$16 = theme().borderActive,
1194
- _v$17 = theme().accent,
1195
- _v$18 = theme().background;
1196
- _v$16 !== _p$.e && (_p$.e = _$setProp(_el$35, "borderColor", _v$16, _p$.e));
1197
- _v$17 !== _p$.t && (_p$.t = _$setProp(_el$37, "backgroundColor", _v$17, _p$.t));
1198
- _v$18 !== _p$.a && (_p$.a = _$setProp(_el$38, "fg", _v$18, _p$.a));
1230
+ var _v$14 = theme().borderActive,
1231
+ _v$15 = theme().accent,
1232
+ _v$16 = theme().background;
1233
+ _v$14 !== _p$.e && (_p$.e = _$setProp(_el$42, "borderColor", _v$14, _p$.e));
1234
+ _v$15 !== _p$.t && (_p$.t = _$setProp(_el$44, "backgroundColor", _v$15, _p$.t));
1235
+ _v$16 !== _p$.a && (_p$.a = _$setProp(_el$45, "fg", _v$16, _p$.a));
1199
1236
  return _p$;
1200
1237
  }, {
1201
1238
  e: undefined,
1202
1239
  t: undefined,
1203
1240
  a: undefined
1204
1241
  });
1205
- return _el$35;
1242
+ return _el$42;
1206
1243
  })();
1207
1244
  }
1208
1245
  const tui = async api => {