@cortexkit/opencode-openai-auth 0.3.4 → 0.4.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.
- package/README.md +1 -0
- package/dist/cli.js +1 -1
- package/dist/codex-http.d.ts +3 -0
- package/dist/config.d.ts +3 -0
- package/dist/core/accounts.d.ts +9 -3
- package/dist/core/oauth.d.ts +1 -1
- package/dist/core/quota-manager.d.ts +2 -2
- package/dist/{index-k5zwf3j1.js → index-1anzb8jh.js} +1 -1
- package/dist/index-1r02s323.js +6 -0
- package/dist/index-2ng03cby.js +2 -0
- package/dist/{index-e7m7qbne.js → index-6y6ss1kc.js} +1 -1
- package/dist/{index-1xmasv0x.js → index-b6kp9ydc.js} +1 -1
- package/dist/index-cz1bkmjz.js +2 -0
- package/dist/index-dzg88nw2.js +89 -0
- package/dist/index-y67qn95a.js +2 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.js +65 -65
- package/dist/model-costs.d.ts +29 -0
- package/dist/prompt-context.d.ts +1 -1
- package/dist/quota-normalize-8yzxqy78.js +1 -0
- package/dist/quota-normalize.d.ts +13 -4
- package/dist/rpc/port-file.js +1 -1
- package/dist/rpc/rpc-client.js +1 -1
- package/dist/rpc/rpc-dir.js +1 -1
- package/dist/sidebar-state.d.ts +47 -2
- package/dist/sidebar-state.js +1 -1
- package/dist/token-util-h46jb3eg.js +1 -0
- package/dist/token-yzcb1p3e.js +1 -0
- package/dist/tui/command-dialogs.d.ts +8 -1
- package/dist/tui-preferences.js +1 -1
- package/dist/tui.d.ts +18 -1
- package/dist/version.d.ts +1 -1
- package/dist/ws-pool.d.ts +1 -0
- package/package.json +6 -5
- package/src/core/refresh-file-lock.ts +293 -0
- package/src/sidebar-state.ts +392 -13
- package/src/tui/command-dialogs.tsx +43 -25
- package/src/tui-compiled/sidebar-state.ts +392 -13
- package/src/tui-compiled/tui/command-dialogs.tsx +25 -20
- package/src/tui-compiled/tui.tsx +228 -171
- package/src/tui.tsx +142 -64
- package/dist/index-5s67238f.js +0 -2
- package/dist/index-d9hq0tmc.js +0 -2
- package/dist/index-mrg2fms9.js +0 -2
- package/dist/index-qdh7pt5a.js +0 -3
- package/dist/index-y8d01tgn.js +0 -92
- package/dist/quota-normalize-dfdpwwm3.js +0 -1
- package/dist/token-01dcf92a.js +0 -1
- package/dist/token-util-rkqd82q9.js +0 -1
package/src/tui-compiled/tui.tsx
CHANGED
|
@@ -15,7 +15,7 @@ import { createEffect, createSignal, For, onCleanup, Show } from "opentui:runtim
|
|
|
15
15
|
import { createLogger } from "./logger.js";
|
|
16
16
|
import { createRpcClient } from "./rpc/rpc-client.js";
|
|
17
17
|
import { getRpcDir } from "./rpc/rpc-dir.js";
|
|
18
|
-
import { computeQuotaPacing, DEFAULT_SIDEBAR_STATE,
|
|
18
|
+
import { computeQuotaPacing, DEFAULT_SIDEBAR_STATE, getCollapsedQuotaSummary, getPresentQuotaWindows, getSidebarState, resolveActiveAccount, resolveSessionSidebarRouting } from "./sidebar-state.js";
|
|
19
19
|
import { openCommandDialog } from "./tui/command-dialogs.js";
|
|
20
20
|
import { computeEffectiveOrder, DEFAULT_SLOT_ORDER, PLUGIN_KEY, queueTuiPreferenceUpdate, readTuiPreferencesFile, resolveOpenaiAuthPrefs, watchTuiPreferences } from "./tui-preferences.js";
|
|
21
21
|
const RPC_POLL_MS = 500;
|
|
@@ -200,6 +200,39 @@ function CollapsedRow(props) {
|
|
|
200
200
|
return _el$8;
|
|
201
201
|
})();
|
|
202
202
|
}
|
|
203
|
+
// Maps present quota windows onto display rows and computes pacing against each
|
|
204
|
+
// dynamic duration or the historical 5h/7d duration for legacy snapshots.
|
|
205
|
+
export function buildQuotaRowsForDisplay(quota, now, pacingEnabled) {
|
|
206
|
+
return getPresentQuotaWindows(quota).map(row => ({
|
|
207
|
+
key: row.key,
|
|
208
|
+
label: row.label,
|
|
209
|
+
window: row.window,
|
|
210
|
+
pacing: pacingEnabled && row.windowMs !== null ? computeQuotaPacing(row.window, row.windowMs, now) : null
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
export function isQuotaLoaded(quota) {
|
|
214
|
+
return quota !== null;
|
|
215
|
+
}
|
|
216
|
+
export function getQuotaMetadataRows(state) {
|
|
217
|
+
const rows = [];
|
|
218
|
+
if (state.planType) rows.push({
|
|
219
|
+
label: 'Plan',
|
|
220
|
+
value: state.planType
|
|
221
|
+
});
|
|
222
|
+
if (state.credits !== undefined) {
|
|
223
|
+
rows.push({
|
|
224
|
+
label: 'Credits',
|
|
225
|
+
value: String(state.credits)
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
return rows;
|
|
229
|
+
}
|
|
230
|
+
export function getAccountMetadataRows(resetCredits) {
|
|
231
|
+
return resetCredits === undefined ? [] : [{
|
|
232
|
+
label: 'resets',
|
|
233
|
+
value: String(resetCredits)
|
|
234
|
+
}];
|
|
235
|
+
}
|
|
203
236
|
|
|
204
237
|
// Quota window row: muted label left, tone-colored bar + percentage right,
|
|
205
238
|
// with an optional muted reset suffix. When pacing data is present, the bar
|
|
@@ -328,7 +361,7 @@ function QuotaRow(props) {
|
|
|
328
361
|
function AccountBlock(props) {
|
|
329
362
|
const statusWord = () => props.killed ? 'blocked' : props.active ? 'active' : 'idle';
|
|
330
363
|
const statusTone = () => props.killed ? 'err' : props.active ? 'ok' : 'muted';
|
|
331
|
-
const
|
|
364
|
+
const rows = () => buildQuotaRowsForDisplay(props.quota, Date.now(), props.pacingEnabled);
|
|
332
365
|
return (() => {
|
|
333
366
|
var _el$22 = _$createElement("box"),
|
|
334
367
|
_el$23 = _$createElement("box"),
|
|
@@ -350,7 +383,7 @@ function AccountBlock(props) {
|
|
|
350
383
|
_$insert(_el$27, statusWord);
|
|
351
384
|
_$insert(_el$22, _$createComponent(Show, {
|
|
352
385
|
get when() {
|
|
353
|
-
return props.quota;
|
|
386
|
+
return isQuotaLoaded(props.quota);
|
|
354
387
|
},
|
|
355
388
|
get fallback() {
|
|
356
389
|
return (() => {
|
|
@@ -361,37 +394,62 @@ function AccountBlock(props) {
|
|
|
361
394
|
})();
|
|
362
395
|
},
|
|
363
396
|
get children() {
|
|
364
|
-
return
|
|
365
|
-
get
|
|
366
|
-
return
|
|
367
|
-
},
|
|
368
|
-
get appearance() {
|
|
369
|
-
return props.appearance;
|
|
370
|
-
},
|
|
371
|
-
label: "5h",
|
|
372
|
-
get window() {
|
|
373
|
-
return props.quota?.primary;
|
|
374
|
-
},
|
|
375
|
-
get pacing() {
|
|
376
|
-
return pacingFor(props.quota?.primary, FIVE_HOUR_MS);
|
|
377
|
-
}
|
|
378
|
-
}), _$createComponent(QuotaRow, {
|
|
379
|
-
get theme() {
|
|
380
|
-
return props.theme;
|
|
381
|
-
},
|
|
382
|
-
get appearance() {
|
|
383
|
-
return props.appearance;
|
|
397
|
+
return _$createComponent(Show, {
|
|
398
|
+
get when() {
|
|
399
|
+
return rows().length > 0;
|
|
384
400
|
},
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
401
|
+
get fallback() {
|
|
402
|
+
return (() => {
|
|
403
|
+
var _el$30 = _$createElement("text");
|
|
404
|
+
_$insertNode(_el$30, _$createTextNode(`—`));
|
|
405
|
+
_$effect(_$p => _$setProp(_el$30, "fg", props.theme.textMuted, _$p));
|
|
406
|
+
return _el$30;
|
|
407
|
+
})();
|
|
388
408
|
},
|
|
389
|
-
get
|
|
390
|
-
return
|
|
409
|
+
get children() {
|
|
410
|
+
return _$createComponent(For, {
|
|
411
|
+
get each() {
|
|
412
|
+
return rows();
|
|
413
|
+
},
|
|
414
|
+
children: row => _$createComponent(QuotaRow, {
|
|
415
|
+
get theme() {
|
|
416
|
+
return props.theme;
|
|
417
|
+
},
|
|
418
|
+
get appearance() {
|
|
419
|
+
return props.appearance;
|
|
420
|
+
},
|
|
421
|
+
get label() {
|
|
422
|
+
return row.label;
|
|
423
|
+
},
|
|
424
|
+
get window() {
|
|
425
|
+
return row.window;
|
|
426
|
+
},
|
|
427
|
+
get pacing() {
|
|
428
|
+
return row.pacing;
|
|
429
|
+
}
|
|
430
|
+
})
|
|
431
|
+
});
|
|
391
432
|
}
|
|
392
|
-
})
|
|
433
|
+
});
|
|
393
434
|
}
|
|
394
435
|
}), null);
|
|
436
|
+
_$insert(_el$22, _$createComponent(For, {
|
|
437
|
+
get each() {
|
|
438
|
+
return getAccountMetadataRows(props.resetCredits);
|
|
439
|
+
},
|
|
440
|
+
children: row => _$createComponent(StatRow, {
|
|
441
|
+
get theme() {
|
|
442
|
+
return props.theme;
|
|
443
|
+
},
|
|
444
|
+
get label() {
|
|
445
|
+
return row.label;
|
|
446
|
+
},
|
|
447
|
+
get value() {
|
|
448
|
+
return row.value;
|
|
449
|
+
},
|
|
450
|
+
tone: "text"
|
|
451
|
+
})
|
|
452
|
+
}), null);
|
|
395
453
|
_$effect(_p$ => {
|
|
396
454
|
var _v$1 = props.marginTop ?? 0,
|
|
397
455
|
_v$10 = props.theme.text,
|
|
@@ -431,27 +489,28 @@ function QuotaDialogContent(props) {
|
|
|
431
489
|
setTimeout(refresh, 0);
|
|
432
490
|
const theme = () => props.api.theme.current;
|
|
433
491
|
const enabledFallbacks = () => (state().fallbacks ?? []).filter(f => f.enabled);
|
|
492
|
+
const activeId = () => resolveQuotaDialogActiveId(state(), props.sessionId);
|
|
434
493
|
return (() => {
|
|
435
|
-
var _el$
|
|
436
|
-
_el$
|
|
437
|
-
_el$
|
|
438
|
-
_el$
|
|
439
|
-
_el$
|
|
440
|
-
_$insertNode(_el$30, _el$31);
|
|
441
|
-
_$setProp(_el$30, "flexDirection", 'column');
|
|
442
|
-
_$setProp(_el$30, "padding", 2);
|
|
443
|
-
_$setProp(_el$30, "width", '100%');
|
|
444
|
-
_$setProp(_el$30, "alignItems", 'center');
|
|
445
|
-
_$insertNode(_el$31, _el$32);
|
|
446
|
-
_$setProp(_el$31, "flexDirection", 'column');
|
|
447
|
-
_$setProp(_el$31, "width", 58);
|
|
494
|
+
var _el$32 = _$createElement("box"),
|
|
495
|
+
_el$33 = _$createElement("box"),
|
|
496
|
+
_el$34 = _$createElement("box"),
|
|
497
|
+
_el$35 = _$createElement("text"),
|
|
498
|
+
_el$36 = _$createElement("b");
|
|
448
499
|
_$insertNode(_el$32, _el$33);
|
|
500
|
+
_$setProp(_el$32, "flexDirection", 'column');
|
|
501
|
+
_$setProp(_el$32, "padding", 2);
|
|
449
502
|
_$setProp(_el$32, "width", '100%');
|
|
450
|
-
_$setProp(_el$32, "
|
|
451
|
-
_$setProp(_el$32, "marginBottom", 1);
|
|
503
|
+
_$setProp(_el$32, "alignItems", 'center');
|
|
452
504
|
_$insertNode(_el$33, _el$34);
|
|
453
|
-
_$
|
|
454
|
-
_$
|
|
505
|
+
_$setProp(_el$33, "flexDirection", 'column');
|
|
506
|
+
_$setProp(_el$33, "width", 58);
|
|
507
|
+
_$insertNode(_el$34, _el$35);
|
|
508
|
+
_$setProp(_el$34, "width", '100%');
|
|
509
|
+
_$setProp(_el$34, "justifyContent", 'center');
|
|
510
|
+
_$setProp(_el$34, "marginBottom", 1);
|
|
511
|
+
_$insertNode(_el$35, _el$36);
|
|
512
|
+
_$insertNode(_el$36, _$createTextNode(`Codex Quota`));
|
|
513
|
+
_$insert(_el$33, _$createComponent(AccountBlock, {
|
|
455
514
|
get theme() {
|
|
456
515
|
return theme();
|
|
457
516
|
},
|
|
@@ -466,13 +525,16 @@ function QuotaDialogContent(props) {
|
|
|
466
525
|
return state().main?.killed ?? false;
|
|
467
526
|
},
|
|
468
527
|
get active() {
|
|
469
|
-
return
|
|
528
|
+
return activeId() === 'main';
|
|
470
529
|
},
|
|
471
530
|
get pacingEnabled() {
|
|
472
531
|
return prefs().sections.pacing;
|
|
532
|
+
},
|
|
533
|
+
get resetCredits() {
|
|
534
|
+
return state().main?.resetCredits;
|
|
473
535
|
}
|
|
474
536
|
}), null);
|
|
475
|
-
_$insert(_el$
|
|
537
|
+
_$insert(_el$33, _$createComponent(Show, {
|
|
476
538
|
get when() {
|
|
477
539
|
return prefs().sections.fallbackAccounts;
|
|
478
540
|
},
|
|
@@ -498,18 +560,21 @@ function QuotaDialogContent(props) {
|
|
|
498
560
|
return fb.killed;
|
|
499
561
|
},
|
|
500
562
|
get active() {
|
|
501
|
-
return
|
|
563
|
+
return activeId() === fb.id;
|
|
502
564
|
},
|
|
503
565
|
get pacingEnabled() {
|
|
504
566
|
return prefs().sections.pacing;
|
|
505
567
|
},
|
|
568
|
+
get resetCredits() {
|
|
569
|
+
return fb.resetCredits;
|
|
570
|
+
},
|
|
506
571
|
marginTop: 1
|
|
507
572
|
})
|
|
508
573
|
});
|
|
509
574
|
}
|
|
510
575
|
}), null);
|
|
511
|
-
_$effect(_$p => _$setProp(_el$
|
|
512
|
-
return _el$
|
|
576
|
+
_$effect(_$p => _$setProp(_el$35, "fg", theme().text, _$p));
|
|
577
|
+
return _el$32;
|
|
513
578
|
})();
|
|
514
579
|
}
|
|
515
580
|
|
|
@@ -518,6 +583,9 @@ function QuotaDialogContent(props) {
|
|
|
518
583
|
export async function readStateFromFile() {
|
|
519
584
|
return getSidebarState();
|
|
520
585
|
}
|
|
586
|
+
export function resolveQuotaDialogActiveId(state, sessionId, now = Date.now()) {
|
|
587
|
+
return sessionId ? resolveSessionSidebarRouting(state, sessionId, now).activeId : state.activeId;
|
|
588
|
+
}
|
|
521
589
|
// The TUI may unmount and remount sidebar_content when the user switches
|
|
522
590
|
// views (e.g. main -> subagent -> main). A remount re-runs the component
|
|
523
591
|
// body, so any signal created inside the component would reset to its
|
|
@@ -607,15 +675,17 @@ function QuotaSidebar(props) {
|
|
|
607
675
|
const name = prefs().header.label;
|
|
608
676
|
return !hasData() ? name : collapsed() ? `\u25b6 ${name}` : `\u25bc ${name}`;
|
|
609
677
|
};
|
|
610
|
-
const
|
|
678
|
+
const sessionRouting = () => resolveSessionSidebarRouting(state(), props.sessionId);
|
|
679
|
+
const sessionState = () => ({
|
|
680
|
+
...state(),
|
|
681
|
+
activeId: sessionRouting().activeId,
|
|
682
|
+
route: sessionRouting().route
|
|
683
|
+
});
|
|
684
|
+
const activeAccount = () => resolveActiveAccount(sessionState());
|
|
611
685
|
const activeQuotaSummary = () => getCollapsedQuotaSummary(activeAccount().quota);
|
|
612
686
|
const activePacingDeficit = () => {
|
|
613
687
|
if (!prefs().sections.pacing) return false;
|
|
614
|
-
|
|
615
|
-
if (!quota) return false;
|
|
616
|
-
const now = Date.now();
|
|
617
|
-
const windows = [[quota.primary, FIVE_HOUR_MS], [quota.secondary, SEVEN_DAY_MS]];
|
|
618
|
-
return windows.some(([w, ms]) => w != null && computeQuotaPacing(w, ms, now)?.state === 'deficit');
|
|
688
|
+
return buildQuotaRowsForDisplay(activeAccount().quota, Date.now(), true).some(row => row.pacing?.state === 'deficit');
|
|
619
689
|
};
|
|
620
690
|
const activeQuotaTone = () => {
|
|
621
691
|
const summary = activeQuotaSummary();
|
|
@@ -632,33 +702,33 @@ function QuotaSidebar(props) {
|
|
|
632
702
|
const refreshBackedOff = () => state().main?.refreshBackedOff === true;
|
|
633
703
|
const degraded = () => killedNames().length > 0 || quotaBackedOff() || refreshBackedOff();
|
|
634
704
|
return (() => {
|
|
635
|
-
var _el$
|
|
636
|
-
_el$
|
|
637
|
-
_el$
|
|
638
|
-
_el$
|
|
639
|
-
_el$
|
|
640
|
-
_$insertNode(_el$36, _el$37);
|
|
641
|
-
_$setProp(_el$36, "width", '100%');
|
|
642
|
-
_$setProp(_el$36, "flexDirection", 'column');
|
|
643
|
-
_$setProp(_el$36, "border", SINGLE_BORDER);
|
|
644
|
-
_$setProp(_el$36, "paddingTop", 1);
|
|
645
|
-
_$setProp(_el$36, "paddingBottom", 1);
|
|
646
|
-
_$setProp(_el$36, "paddingLeft", 1);
|
|
647
|
-
_$setProp(_el$36, "paddingRight", 1);
|
|
648
|
-
_$insertNode(_el$37, _el$38);
|
|
649
|
-
_$setProp(_el$37, "width", '100%');
|
|
650
|
-
_$setProp(_el$37, "flexDirection", 'row');
|
|
651
|
-
_$setProp(_el$37, "justifyContent", 'space-between');
|
|
652
|
-
_$setProp(_el$37, "alignItems", 'center');
|
|
653
|
-
_$setProp(_el$37, "onMouseDown", () => {
|
|
654
|
-
if (hasData()) props.controller.toggleCollapsed();
|
|
655
|
-
});
|
|
705
|
+
var _el$38 = _$createElement("box"),
|
|
706
|
+
_el$39 = _$createElement("box"),
|
|
707
|
+
_el$40 = _$createElement("box"),
|
|
708
|
+
_el$41 = _$createElement("text"),
|
|
709
|
+
_el$42 = _$createElement("b");
|
|
656
710
|
_$insertNode(_el$38, _el$39);
|
|
711
|
+
_$setProp(_el$38, "width", '100%');
|
|
712
|
+
_$setProp(_el$38, "flexDirection", 'column');
|
|
713
|
+
_$setProp(_el$38, "border", SINGLE_BORDER);
|
|
714
|
+
_$setProp(_el$38, "paddingTop", 1);
|
|
715
|
+
_$setProp(_el$38, "paddingBottom", 1);
|
|
657
716
|
_$setProp(_el$38, "paddingLeft", 1);
|
|
658
717
|
_$setProp(_el$38, "paddingRight", 1);
|
|
659
718
|
_$insertNode(_el$39, _el$40);
|
|
660
|
-
_$
|
|
661
|
-
_$
|
|
719
|
+
_$setProp(_el$39, "width", '100%');
|
|
720
|
+
_$setProp(_el$39, "flexDirection", 'row');
|
|
721
|
+
_$setProp(_el$39, "justifyContent", 'space-between');
|
|
722
|
+
_$setProp(_el$39, "alignItems", 'center');
|
|
723
|
+
_$setProp(_el$39, "onMouseDown", () => {
|
|
724
|
+
if (hasData()) props.controller.toggleCollapsed();
|
|
725
|
+
});
|
|
726
|
+
_$insertNode(_el$40, _el$41);
|
|
727
|
+
_$setProp(_el$40, "paddingLeft", 1);
|
|
728
|
+
_$setProp(_el$40, "paddingRight", 1);
|
|
729
|
+
_$insertNode(_el$41, _el$42);
|
|
730
|
+
_$insert(_el$42, headerLabel);
|
|
731
|
+
_$insert(_el$39, _$createComponent(Show, {
|
|
662
732
|
get when() {
|
|
663
733
|
return degraded();
|
|
664
734
|
},
|
|
@@ -668,36 +738,36 @@ function QuotaSidebar(props) {
|
|
|
668
738
|
return prefs().header.showVersion && PLUGIN_VERSION !== '';
|
|
669
739
|
},
|
|
670
740
|
get children() {
|
|
671
|
-
var _el$
|
|
672
|
-
_$insert(_el$
|
|
673
|
-
_$effect(_$p => _$setProp(_el$
|
|
674
|
-
return _el$
|
|
741
|
+
var _el$51 = _$createElement("text");
|
|
742
|
+
_$insert(_el$51, `v${PLUGIN_VERSION}`);
|
|
743
|
+
_$effect(_$p => _$setProp(_el$51, "fg", theme().textMuted, _$p));
|
|
744
|
+
return _el$51;
|
|
675
745
|
}
|
|
676
746
|
});
|
|
677
747
|
},
|
|
678
748
|
get children() {
|
|
679
|
-
var _el$
|
|
680
|
-
_el$
|
|
681
|
-
_el$
|
|
682
|
-
_$insertNode(_el$
|
|
683
|
-
_$setProp(_el$
|
|
684
|
-
_$setProp(_el$
|
|
685
|
-
_$insertNode(_el$
|
|
686
|
-
_$insertNode(_el$
|
|
749
|
+
var _el$43 = _$createElement("box"),
|
|
750
|
+
_el$44 = _$createElement("text"),
|
|
751
|
+
_el$45 = _$createElement("b");
|
|
752
|
+
_$insertNode(_el$43, _el$44);
|
|
753
|
+
_$setProp(_el$43, "paddingLeft", 1);
|
|
754
|
+
_$setProp(_el$43, "paddingRight", 1);
|
|
755
|
+
_$insertNode(_el$44, _el$45);
|
|
756
|
+
_$insertNode(_el$45, _$createTextNode(`LIMITED`));
|
|
687
757
|
_$effect(_p$ => {
|
|
688
758
|
var _v$12 = theme().warning,
|
|
689
759
|
_v$13 = theme().background;
|
|
690
|
-
_v$12 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
691
|
-
_v$13 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
760
|
+
_v$12 !== _p$.e && (_p$.e = _$setProp(_el$43, "backgroundColor", _v$12, _p$.e));
|
|
761
|
+
_v$13 !== _p$.t && (_p$.t = _$setProp(_el$44, "fg", _v$13, _p$.t));
|
|
692
762
|
return _p$;
|
|
693
763
|
}, {
|
|
694
764
|
e: undefined,
|
|
695
765
|
t: undefined
|
|
696
766
|
});
|
|
697
|
-
return _el$
|
|
767
|
+
return _el$43;
|
|
698
768
|
}
|
|
699
769
|
}), null);
|
|
700
|
-
_$insert(_el$
|
|
770
|
+
_$insert(_el$38, _$createComponent(Show, {
|
|
701
771
|
get when() {
|
|
702
772
|
return _$memo(() => !!collapsed())() && hasData();
|
|
703
773
|
},
|
|
@@ -716,41 +786,41 @@ function QuotaSidebar(props) {
|
|
|
716
786
|
},
|
|
717
787
|
get fallback() {
|
|
718
788
|
return (() => {
|
|
719
|
-
var _el$
|
|
720
|
-
_$insertNode(_el$
|
|
721
|
-
_$effect(_$p => _$setProp(_el$
|
|
722
|
-
return _el$
|
|
789
|
+
var _el$52 = _$createElement("text");
|
|
790
|
+
_$insertNode(_el$52, _$createTextNode(`—`));
|
|
791
|
+
_$effect(_$p => _$setProp(_el$52, "fg", theme().textMuted, _$p));
|
|
792
|
+
return _el$52;
|
|
723
793
|
})();
|
|
724
794
|
},
|
|
725
795
|
get children() {
|
|
726
|
-
var _el$
|
|
727
|
-
_el$
|
|
728
|
-
_el$
|
|
729
|
-
_el$
|
|
730
|
-
_$insertNode(_el$
|
|
731
|
-
_$insertNode(_el$
|
|
732
|
-
_$setProp(_el$
|
|
733
|
-
_$insertNode(_el$
|
|
734
|
-
_$insert(_el$
|
|
735
|
-
_$insert(_el$
|
|
796
|
+
var _el$47 = _$createElement("box"),
|
|
797
|
+
_el$48 = _$createElement("text"),
|
|
798
|
+
_el$49 = _$createElement("b"),
|
|
799
|
+
_el$50 = _$createElement("text");
|
|
800
|
+
_$insertNode(_el$47, _el$48);
|
|
801
|
+
_$insertNode(_el$47, _el$50);
|
|
802
|
+
_$setProp(_el$47, "flexDirection", 'row');
|
|
803
|
+
_$insertNode(_el$48, _el$49);
|
|
804
|
+
_$insert(_el$49, () => activeQuotaSummary().text);
|
|
805
|
+
_$insert(_el$50, () => activeAccount().killed ? ' \u2298' : ' \u25cf');
|
|
736
806
|
_$effect(_p$ => {
|
|
737
807
|
var _v$14 = toneColor(theme(), activeQuotaTone()),
|
|
738
808
|
_v$15 = toneColor(theme(), activeAccount().killed ? 'err' : activeQuotaTone());
|
|
739
|
-
_v$14 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
740
|
-
_v$15 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
809
|
+
_v$14 !== _p$.e && (_p$.e = _$setProp(_el$48, "fg", _v$14, _p$.e));
|
|
810
|
+
_v$15 !== _p$.t && (_p$.t = _$setProp(_el$50, "fg", _v$15, _p$.t));
|
|
741
811
|
return _p$;
|
|
742
812
|
}, {
|
|
743
813
|
e: undefined,
|
|
744
814
|
t: undefined
|
|
745
815
|
});
|
|
746
|
-
return _el$
|
|
816
|
+
return _el$47;
|
|
747
817
|
}
|
|
748
818
|
});
|
|
749
819
|
}
|
|
750
820
|
});
|
|
751
821
|
}
|
|
752
822
|
}), null);
|
|
753
|
-
_$insert(_el$
|
|
823
|
+
_$insert(_el$38, _$createComponent(Show, {
|
|
754
824
|
get when() {
|
|
755
825
|
return !collapsed() || !hasData();
|
|
756
826
|
},
|
|
@@ -761,14 +831,14 @@ function QuotaSidebar(props) {
|
|
|
761
831
|
},
|
|
762
832
|
get fallback() {
|
|
763
833
|
return (() => {
|
|
764
|
-
var _el$
|
|
765
|
-
_el$
|
|
766
|
-
_$insertNode(_el$
|
|
767
|
-
_$setProp(_el$
|
|
768
|
-
_$setProp(_el$
|
|
769
|
-
_$insertNode(_el$
|
|
770
|
-
_$effect(_$p => _$setProp(_el$
|
|
771
|
-
return _el$
|
|
834
|
+
var _el$54 = _$createElement("box"),
|
|
835
|
+
_el$55 = _$createElement("text");
|
|
836
|
+
_$insertNode(_el$54, _el$55);
|
|
837
|
+
_$setProp(_el$54, "marginTop", 1);
|
|
838
|
+
_$setProp(_el$54, "width", '100%');
|
|
839
|
+
_$insertNode(_el$55, _$createTextNode(`Waiting for quota…`));
|
|
840
|
+
_$effect(_$p => _$setProp(_el$55, "fg", theme().textMuted, _$p));
|
|
841
|
+
return _el$54;
|
|
772
842
|
})();
|
|
773
843
|
},
|
|
774
844
|
get children() {
|
|
@@ -797,10 +867,13 @@ function QuotaSidebar(props) {
|
|
|
797
867
|
return state().main?.killed ?? false;
|
|
798
868
|
},
|
|
799
869
|
get active() {
|
|
800
|
-
return
|
|
870
|
+
return sessionRouting().activeId === 'main';
|
|
801
871
|
},
|
|
802
872
|
get pacingEnabled() {
|
|
803
873
|
return prefs().sections.pacing;
|
|
874
|
+
},
|
|
875
|
+
get resetCredits() {
|
|
876
|
+
return state().main?.resetCredits;
|
|
804
877
|
}
|
|
805
878
|
}), _$createComponent(Show, {
|
|
806
879
|
get when() {
|
|
@@ -828,11 +901,14 @@ function QuotaSidebar(props) {
|
|
|
828
901
|
return fb.killed;
|
|
829
902
|
},
|
|
830
903
|
get active() {
|
|
831
|
-
return
|
|
904
|
+
return sessionRouting().activeId === fb.id;
|
|
832
905
|
},
|
|
833
906
|
get pacingEnabled() {
|
|
834
907
|
return prefs().sections.pacing;
|
|
835
908
|
},
|
|
909
|
+
get resetCredits() {
|
|
910
|
+
return fb.resetCredits;
|
|
911
|
+
},
|
|
836
912
|
marginTop: 1
|
|
837
913
|
})
|
|
838
914
|
});
|
|
@@ -857,50 +933,27 @@ function QuotaSidebar(props) {
|
|
|
857
933
|
},
|
|
858
934
|
label: "Route",
|
|
859
935
|
get value() {
|
|
860
|
-
return
|
|
936
|
+
return sessionRouting().route;
|
|
861
937
|
},
|
|
862
938
|
tone: "accent"
|
|
863
939
|
})];
|
|
864
940
|
}
|
|
865
|
-
}), _$createComponent(
|
|
866
|
-
get
|
|
867
|
-
return
|
|
941
|
+
}), _$createComponent(For, {
|
|
942
|
+
get each() {
|
|
943
|
+
return getQuotaMetadataRows(state());
|
|
868
944
|
},
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
return state().planType ?? '\u2014';
|
|
882
|
-
},
|
|
883
|
-
tone: "text"
|
|
884
|
-
});
|
|
885
|
-
}
|
|
886
|
-
}), _$createComponent(Show, {
|
|
887
|
-
get when() {
|
|
888
|
-
return state().credits != null;
|
|
889
|
-
},
|
|
890
|
-
get children() {
|
|
891
|
-
return _$createComponent(StatRow, {
|
|
892
|
-
get theme() {
|
|
893
|
-
return theme();
|
|
894
|
-
},
|
|
895
|
-
label: "Credits",
|
|
896
|
-
get value() {
|
|
897
|
-
return String(state().credits);
|
|
898
|
-
},
|
|
899
|
-
tone: "text"
|
|
900
|
-
});
|
|
901
|
-
}
|
|
902
|
-
})];
|
|
903
|
-
}
|
|
945
|
+
children: row => _$createComponent(StatRow, {
|
|
946
|
+
get theme() {
|
|
947
|
+
return theme();
|
|
948
|
+
},
|
|
949
|
+
get label() {
|
|
950
|
+
return row.label;
|
|
951
|
+
},
|
|
952
|
+
get value() {
|
|
953
|
+
return row.value;
|
|
954
|
+
},
|
|
955
|
+
tone: "text"
|
|
956
|
+
})
|
|
904
957
|
}), _$createComponent(Show, {
|
|
905
958
|
get when() {
|
|
906
959
|
return _$memo(() => !!degraded())() && prefs().sections.health;
|
|
@@ -968,16 +1021,16 @@ function QuotaSidebar(props) {
|
|
|
968
1021
|
var _v$16 = theme().borderActive,
|
|
969
1022
|
_v$17 = theme().accent,
|
|
970
1023
|
_v$18 = theme().background;
|
|
971
|
-
_v$16 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
972
|
-
_v$17 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
973
|
-
_v$18 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
1024
|
+
_v$16 !== _p$.e && (_p$.e = _$setProp(_el$38, "borderColor", _v$16, _p$.e));
|
|
1025
|
+
_v$17 !== _p$.t && (_p$.t = _$setProp(_el$40, "backgroundColor", _v$17, _p$.t));
|
|
1026
|
+
_v$18 !== _p$.a && (_p$.a = _$setProp(_el$41, "fg", _v$18, _p$.a));
|
|
974
1027
|
return _p$;
|
|
975
1028
|
}, {
|
|
976
1029
|
e: undefined,
|
|
977
1030
|
t: undefined,
|
|
978
1031
|
a: undefined
|
|
979
1032
|
});
|
|
980
|
-
return _el$
|
|
1033
|
+
return _el$38;
|
|
981
1034
|
})();
|
|
982
1035
|
}
|
|
983
1036
|
const tui = async api => {
|
|
@@ -986,10 +1039,13 @@ const tui = async api => {
|
|
|
986
1039
|
api.slots.register({
|
|
987
1040
|
order: computeEffectiveOrder(root, PLUGIN_KEY, DEFAULT_SLOT_ORDER),
|
|
988
1041
|
slots: {
|
|
989
|
-
sidebar_content(_ctx,
|
|
1042
|
+
sidebar_content(_ctx, props) {
|
|
990
1043
|
return _$createComponent(QuotaSidebar, {
|
|
991
1044
|
api: api,
|
|
992
|
-
controller: controller
|
|
1045
|
+
controller: controller,
|
|
1046
|
+
get sessionId() {
|
|
1047
|
+
return props.session_id;
|
|
1048
|
+
}
|
|
993
1049
|
});
|
|
994
1050
|
}
|
|
995
1051
|
}
|
|
@@ -1019,14 +1075,15 @@ const tui = async api => {
|
|
|
1019
1075
|
api.ui.dialog.setSize('xlarge');
|
|
1020
1076
|
api.ui.dialog.replace(() => _$createComponent(QuotaDialogContent, {
|
|
1021
1077
|
api: api,
|
|
1022
|
-
controller: controller
|
|
1078
|
+
controller: controller,
|
|
1079
|
+
sessionId: sessionId
|
|
1023
1080
|
}));
|
|
1024
1081
|
continue;
|
|
1025
1082
|
}
|
|
1026
1083
|
openCommandDialog(api, message.payload, (command, args) => rpcClient.apply({
|
|
1027
1084
|
command,
|
|
1028
1085
|
arguments: args
|
|
1029
|
-
}));
|
|
1086
|
+
}), sessionId);
|
|
1030
1087
|
}
|
|
1031
1088
|
}).catch(() => {}).finally(() => {
|
|
1032
1089
|
rpcInFlight = false;
|