@chenlongapps/opencode-token-usage 0.4.5 → 0.4.7
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 +8 -4
- package/README.zh-CN.md +8 -4
- package/dist/context-capture.d.ts +5 -3
- package/dist/context-capture.js +31 -14
- package/dist/context-sources.js +4 -1
- package/dist/controller.d.ts +2 -2
- package/dist/controller.js +7 -5
- package/dist/performance.js +5 -3
- package/dist/prices.generated.d.ts +81 -5
- package/dist/prices.generated.js +11 -5
- package/dist/pricing.d.ts +1 -1
- package/dist/tui.js +227 -206
- package/dist/usage.d.ts +6 -4
- package/dist/usage.js +11 -8
- package/docs/verification.md +92 -0
- package/package.json +9 -9
package/dist/tui.js
CHANGED
|
@@ -297,7 +297,12 @@ function UsageDialog(props) {
|
|
|
297
297
|
}]
|
|
298
298
|
}));
|
|
299
299
|
const theme = () => props.context.theme.text;
|
|
300
|
-
const context = createMemo(() => state().
|
|
300
|
+
const context = createMemo(() => state().context);
|
|
301
|
+
const request = createMemo(() => state().details?.request);
|
|
302
|
+
const requestTime = createMemo(() => {
|
|
303
|
+
const time = request()?.time;
|
|
304
|
+
return time === undefined ? undefined : new Date(time).toLocaleTimeString();
|
|
305
|
+
});
|
|
301
306
|
const models = createMemo(() => state().details?.models ?? []);
|
|
302
307
|
const sources = createMemo(() => state().details?.sources);
|
|
303
308
|
// The host gives this dialog a fixed width; keep every row inside that content box.
|
|
@@ -400,12 +405,12 @@ function UsageDialog(props) {
|
|
|
400
405
|
_el$30 = _$createElement("text"),
|
|
401
406
|
_el$31 = _$createElement("b"),
|
|
402
407
|
_el$33 = _$createElement("text"),
|
|
403
|
-
_el$
|
|
404
|
-
_el$
|
|
405
|
-
_el$
|
|
406
|
-
_el$
|
|
408
|
+
_el$63 = _$createElement("box"),
|
|
409
|
+
_el$64 = _$createElement("text"),
|
|
410
|
+
_el$66 = _$createElement("text"),
|
|
411
|
+
_el$68 = _$createElement("text");
|
|
407
412
|
_$insertNode(_el$28, _el$29);
|
|
408
|
-
_$insertNode(_el$28, _el$
|
|
413
|
+
_$insertNode(_el$28, _el$63);
|
|
409
414
|
_$setProp(_el$28, "paddingLeft", 2);
|
|
410
415
|
_$setProp(_el$28, "paddingRight", 2);
|
|
411
416
|
_$setProp(_el$28, "paddingBottom", 1);
|
|
@@ -430,7 +435,7 @@ function UsageDialog(props) {
|
|
|
430
435
|
_$effect(_$p => _$setProp(_el$35, "fg", theme().muted, _$p));
|
|
431
436
|
return _el$35;
|
|
432
437
|
}
|
|
433
|
-
}), _el$
|
|
438
|
+
}), _el$63);
|
|
434
439
|
_$insert(_el$28, _$createComponent(Show, {
|
|
435
440
|
get when() {
|
|
436
441
|
return state().status !== "ready";
|
|
@@ -441,7 +446,7 @@ function UsageDialog(props) {
|
|
|
441
446
|
_$effect(_$p => _$setProp(_el$36, "fg", theme().muted, _$p));
|
|
442
447
|
return _el$36;
|
|
443
448
|
}
|
|
444
|
-
}), _el$
|
|
449
|
+
}), _el$63);
|
|
445
450
|
_$insert(_el$28, _$createComponent(Show, {
|
|
446
451
|
get when() {
|
|
447
452
|
return state().summary;
|
|
@@ -457,14 +462,15 @@ function UsageDialog(props) {
|
|
|
457
462
|
_el$45 = _$createElement("text"),
|
|
458
463
|
_el$46 = _$createElement("b"),
|
|
459
464
|
_el$48 = _$createElement("box"),
|
|
460
|
-
_el$49 = _$createElement("
|
|
461
|
-
_el$50 = _$createElement("
|
|
462
|
-
_el$
|
|
463
|
-
_el$53 = _$createElement("
|
|
464
|
-
_el$54 = _$createElement("
|
|
465
|
-
_el$
|
|
466
|
-
_el$57 = _$createElement("
|
|
467
|
-
_el$58 = _$createElement("
|
|
465
|
+
_el$49 = _$createElement("box"),
|
|
466
|
+
_el$50 = _$createElement("text"),
|
|
467
|
+
_el$51 = _$createElement("b"),
|
|
468
|
+
_el$53 = _$createElement("box"),
|
|
469
|
+
_el$54 = _$createElement("text"),
|
|
470
|
+
_el$55 = _$createElement("b"),
|
|
471
|
+
_el$57 = _$createElement("box"),
|
|
472
|
+
_el$58 = _$createElement("text"),
|
|
473
|
+
_el$59 = _$createElement("b");
|
|
468
474
|
_$insertNode(_el$37, _el$38);
|
|
469
475
|
_$use(value => {
|
|
470
476
|
scroll = value;
|
|
@@ -478,8 +484,8 @@ function UsageDialog(props) {
|
|
|
478
484
|
_$insertNode(_el$38, _el$39);
|
|
479
485
|
_$insertNode(_el$38, _el$43);
|
|
480
486
|
_$insertNode(_el$38, _el$48);
|
|
481
|
-
_$insertNode(_el$38, _el$
|
|
482
|
-
_$insertNode(_el$38, _el$
|
|
487
|
+
_$insertNode(_el$38, _el$53);
|
|
488
|
+
_$insertNode(_el$38, _el$57);
|
|
483
489
|
_$setProp(_el$38, "gap", 1);
|
|
484
490
|
_$insertNode(_el$39, _el$40);
|
|
485
491
|
_$insertNode(_el$40, _el$41);
|
|
@@ -490,48 +496,48 @@ function UsageDialog(props) {
|
|
|
490
496
|
},
|
|
491
497
|
get fallback() {
|
|
492
498
|
return (() => {
|
|
493
|
-
var _el$
|
|
494
|
-
_$insertNode(_el$
|
|
495
|
-
_$effect(_$p => _$setProp(_el$
|
|
496
|
-
return _el$
|
|
499
|
+
var _el$70 = _$createElement("text");
|
|
500
|
+
_$insertNode(_el$70, _$createTextNode(`Context usage unavailable`));
|
|
501
|
+
_$effect(_$p => _$setProp(_el$70, "fg", theme().muted, _$p));
|
|
502
|
+
return _el$70;
|
|
497
503
|
})();
|
|
498
504
|
},
|
|
499
505
|
children: details => (() => {
|
|
500
|
-
var _el$
|
|
501
|
-
_el$
|
|
502
|
-
_el$
|
|
503
|
-
_el$
|
|
504
|
-
_el$
|
|
505
|
-
_el$
|
|
506
|
-
_el$
|
|
507
|
-
_$insertNode(_el$71, _el$72);
|
|
506
|
+
var _el$72 = _$createElement("box"),
|
|
507
|
+
_el$73 = _$createElement("box"),
|
|
508
|
+
_el$74 = _$createElement("text"),
|
|
509
|
+
_el$76 = _$createElement("text"),
|
|
510
|
+
_el$77 = _$createTextNode(` / `),
|
|
511
|
+
_el$78 = _$createTextNode(` (`),
|
|
512
|
+
_el$79 = _$createTextNode(`%)`);
|
|
508
513
|
_$insertNode(_el$72, _el$73);
|
|
509
|
-
_$insertNode(_el$
|
|
510
|
-
_$
|
|
511
|
-
_$setProp(_el$
|
|
512
|
-
_$setProp(_el$
|
|
513
|
-
_$
|
|
514
|
-
_$
|
|
515
|
-
_$
|
|
516
|
-
_$insertNode(_el$
|
|
517
|
-
_$insertNode(_el$
|
|
518
|
-
_$
|
|
519
|
-
_$setProp(_el$
|
|
520
|
-
_$
|
|
521
|
-
_$insert(_el$
|
|
522
|
-
_$insert(_el$
|
|
523
|
-
_$insert(_el$
|
|
514
|
+
_$insertNode(_el$73, _el$74);
|
|
515
|
+
_$insertNode(_el$73, _el$76);
|
|
516
|
+
_$setProp(_el$73, "flexDirection", "row");
|
|
517
|
+
_$setProp(_el$73, "justifyContent", "space-between");
|
|
518
|
+
_$setProp(_el$73, "gap", 2);
|
|
519
|
+
_$insertNode(_el$74, _$createTextNode(`Used / Limit`));
|
|
520
|
+
_$setProp(_el$74, "flexShrink", 0);
|
|
521
|
+
_$insertNode(_el$76, _el$77);
|
|
522
|
+
_$insertNode(_el$76, _el$78);
|
|
523
|
+
_$insertNode(_el$76, _el$79);
|
|
524
|
+
_$setProp(_el$76, "wrapMode", "word");
|
|
525
|
+
_$setProp(_el$76, "minWidth", 0);
|
|
526
|
+
_$insert(_el$76, () => number(details().used), _el$77);
|
|
527
|
+
_$insert(_el$76, () => number(details().limit), _el$78);
|
|
528
|
+
_$insert(_el$76, () => details().percent.toFixed(1), _el$79);
|
|
529
|
+
_$insert(_el$72, () => barRow(details().percent, windowBar()), null);
|
|
524
530
|
_$effect(_p$ => {
|
|
525
531
|
var _v$21 = theme().muted,
|
|
526
532
|
_v$22 = theme().base;
|
|
527
|
-
_v$21 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
528
|
-
_v$22 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
533
|
+
_v$21 !== _p$.e && (_p$.e = _$setProp(_el$74, "fg", _v$21, _p$.e));
|
|
534
|
+
_v$22 !== _p$.t && (_p$.t = _$setProp(_el$76, "fg", _v$22, _p$.t));
|
|
529
535
|
return _p$;
|
|
530
536
|
}, {
|
|
531
537
|
e: undefined,
|
|
532
538
|
t: undefined
|
|
533
539
|
});
|
|
534
|
-
return _el$
|
|
540
|
+
return _el$72;
|
|
535
541
|
})()
|
|
536
542
|
}), null);
|
|
537
543
|
_$insertNode(_el$43, _el$44);
|
|
@@ -543,46 +549,61 @@ function UsageDialog(props) {
|
|
|
543
549
|
_$insertNode(_el$46, _$createTextNode(`Last Request`));
|
|
544
550
|
_$insert(_el$44, _$createComponent(Show, {
|
|
545
551
|
get when() {
|
|
546
|
-
return
|
|
552
|
+
return requestTime();
|
|
547
553
|
},
|
|
548
|
-
children:
|
|
549
|
-
var _el$
|
|
550
|
-
_$insert(_el$
|
|
551
|
-
_$effect(_$p => _$setProp(_el$
|
|
552
|
-
return _el$
|
|
554
|
+
children: time => (() => {
|
|
555
|
+
var _el$80 = _$createElement("text");
|
|
556
|
+
_$insert(_el$80, time);
|
|
557
|
+
_$effect(_$p => _$setProp(_el$80, "fg", theme().muted, _$p));
|
|
558
|
+
return _el$80;
|
|
553
559
|
})()
|
|
554
560
|
}), null);
|
|
555
561
|
_$insert(_el$43, _$createComponent(Show, {
|
|
556
562
|
get when() {
|
|
557
|
-
return
|
|
563
|
+
return request();
|
|
558
564
|
},
|
|
559
565
|
get fallback() {
|
|
560
566
|
return (() => {
|
|
561
|
-
var _el$
|
|
562
|
-
_$insertNode(_el$
|
|
563
|
-
_$effect(_$p => _$setProp(_el$
|
|
564
|
-
return _el$
|
|
567
|
+
var _el$81 = _$createElement("text");
|
|
568
|
+
_$insertNode(_el$81, _$createTextNode(`Request usage unavailable`));
|
|
569
|
+
_$effect(_$p => _$setProp(_el$81, "fg", theme().muted, _$p));
|
|
570
|
+
return _el$81;
|
|
565
571
|
})();
|
|
566
572
|
},
|
|
567
573
|
children: details => (() => {
|
|
568
|
-
var _el$
|
|
569
|
-
_$insert(_el$
|
|
570
|
-
return _el$
|
|
574
|
+
var _el$83 = _$createElement("box");
|
|
575
|
+
_$insert(_el$83, () => requestRowsList(requestRows(details(), compact())));
|
|
576
|
+
return _el$83;
|
|
571
577
|
})()
|
|
572
578
|
}), null);
|
|
573
579
|
_$insertNode(_el$48, _el$49);
|
|
574
580
|
_$insertNode(_el$49, _el$50);
|
|
575
|
-
_$
|
|
581
|
+
_$setProp(_el$49, "flexDirection", "row");
|
|
582
|
+
_$setProp(_el$49, "justifyContent", "space-between");
|
|
583
|
+
_$setProp(_el$49, "gap", 2);
|
|
584
|
+
_$insertNode(_el$50, _el$51);
|
|
585
|
+
_$insertNode(_el$51, _$createTextNode(`Context Breakdown`));
|
|
586
|
+
_$insert(_el$49, _$createComponent(Show, {
|
|
587
|
+
get when() {
|
|
588
|
+
return sources();
|
|
589
|
+
},
|
|
590
|
+
children: captured => (() => {
|
|
591
|
+
var _el$84 = _$createElement("text");
|
|
592
|
+
_$insert(_el$84, () => new Date(captured().capturedAt).toLocaleTimeString());
|
|
593
|
+
_$effect(_$p => _$setProp(_el$84, "fg", theme().muted, _$p));
|
|
594
|
+
return _el$84;
|
|
595
|
+
})()
|
|
596
|
+
}), null);
|
|
576
597
|
_$insert(_el$48, _$createComponent(Show, {
|
|
577
598
|
get when() {
|
|
578
599
|
return sources();
|
|
579
600
|
},
|
|
580
601
|
get fallback() {
|
|
581
602
|
return (() => {
|
|
582
|
-
var _el$
|
|
583
|
-
_$insertNode(_el$
|
|
584
|
-
_$effect(_$p => _$setProp(_el$
|
|
585
|
-
return _el$
|
|
603
|
+
var _el$85 = _$createElement("text");
|
|
604
|
+
_$insertNode(_el$85, _$createTextNode(`Source estimates unavailable (no request snapshot or RPC)`));
|
|
605
|
+
_$effect(_$p => _$setProp(_el$85, "fg", theme().muted, _$p));
|
|
606
|
+
return _el$85;
|
|
586
607
|
})();
|
|
587
608
|
},
|
|
588
609
|
children: captured => _$createComponent(For, {
|
|
@@ -590,39 +611,39 @@ function UsageDialog(props) {
|
|
|
590
611
|
return breakdownRows(captured(), detailed());
|
|
591
612
|
},
|
|
592
613
|
children: row => (() => {
|
|
593
|
-
var _el$
|
|
594
|
-
_el$86 = _$createElement("box"),
|
|
595
|
-
_el$87 = _$createElement("text"),
|
|
614
|
+
var _el$87 = _$createElement("box"),
|
|
596
615
|
_el$88 = _$createElement("box"),
|
|
597
616
|
_el$89 = _$createElement("text"),
|
|
598
|
-
_el$90 = _$createElement("
|
|
599
|
-
_el$91 = _$
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
_$insertNode(_el$
|
|
603
|
-
_$insertNode(_el$
|
|
604
|
-
_$
|
|
605
|
-
_$
|
|
606
|
-
_$
|
|
607
|
-
_$setProp(_el$
|
|
608
|
-
_$
|
|
609
|
-
_$
|
|
617
|
+
_el$90 = _$createElement("box"),
|
|
618
|
+
_el$91 = _$createElement("text"),
|
|
619
|
+
_el$92 = _$createElement("text"),
|
|
620
|
+
_el$93 = _$createTextNode(`%`);
|
|
621
|
+
_$insertNode(_el$87, _el$88);
|
|
622
|
+
_$insertNode(_el$87, _el$90);
|
|
623
|
+
_$insertNode(_el$87, _el$91);
|
|
624
|
+
_$insertNode(_el$87, _el$92);
|
|
625
|
+
_$setProp(_el$87, "flexDirection", "row");
|
|
626
|
+
_$setProp(_el$87, "gap", 1);
|
|
627
|
+
_$insertNode(_el$88, _el$89);
|
|
628
|
+
_$setProp(_el$88, "width", 14);
|
|
610
629
|
_$setProp(_el$88, "flexShrink", 0);
|
|
611
|
-
_$insert(_el$
|
|
612
|
-
_$setProp(_el$89, "flexShrink", 0);
|
|
613
|
-
_$insert(_el$89, () => number(row.tokens));
|
|
614
|
-
_$insertNode(_el$90, _el$91);
|
|
630
|
+
_$insert(_el$89, () => row.label);
|
|
615
631
|
_$setProp(_el$90, "flexShrink", 0);
|
|
616
|
-
_$insert(_el$90, () => row.percent
|
|
632
|
+
_$insert(_el$90, () => barRow(row.percent, breakdownBar()));
|
|
633
|
+
_$setProp(_el$91, "flexShrink", 0);
|
|
634
|
+
_$insert(_el$91, () => number(row.tokens));
|
|
635
|
+
_$insertNode(_el$92, _el$93);
|
|
636
|
+
_$setProp(_el$92, "flexShrink", 0);
|
|
637
|
+
_$insert(_el$92, () => row.percent.toFixed(1), _el$93);
|
|
617
638
|
_$effect(_p$ => {
|
|
618
639
|
var _v$23 = theme().muted,
|
|
619
640
|
_v$24 = breakdownBar(),
|
|
620
641
|
_v$25 = theme().base,
|
|
621
642
|
_v$26 = theme().muted;
|
|
622
|
-
_v$23 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
623
|
-
_v$24 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
624
|
-
_v$25 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
625
|
-
_v$26 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
643
|
+
_v$23 !== _p$.e && (_p$.e = _$setProp(_el$89, "fg", _v$23, _p$.e));
|
|
644
|
+
_v$24 !== _p$.t && (_p$.t = _$setProp(_el$90, "width", _v$24, _p$.t));
|
|
645
|
+
_v$25 !== _p$.a && (_p$.a = _$setProp(_el$91, "fg", _v$25, _p$.a));
|
|
646
|
+
_v$26 !== _p$.o && (_p$.o = _$setProp(_el$92, "fg", _v$26, _p$.o));
|
|
626
647
|
return _p$;
|
|
627
648
|
}, {
|
|
628
649
|
e: undefined,
|
|
@@ -630,23 +651,23 @@ function UsageDialog(props) {
|
|
|
630
651
|
a: undefined,
|
|
631
652
|
o: undefined
|
|
632
653
|
});
|
|
633
|
-
return _el$
|
|
654
|
+
return _el$87;
|
|
634
655
|
})()
|
|
635
656
|
})
|
|
636
657
|
}), null);
|
|
637
|
-
_$insertNode(_el$52, _el$53);
|
|
638
658
|
_$insertNode(_el$53, _el$54);
|
|
639
|
-
_$insertNode(_el$54,
|
|
640
|
-
_$
|
|
659
|
+
_$insertNode(_el$54, _el$55);
|
|
660
|
+
_$insertNode(_el$55, _$createTextNode(`Session`));
|
|
661
|
+
_$insert(_el$53, _$createComponent(Show, {
|
|
641
662
|
get when() {
|
|
642
663
|
return state().summary;
|
|
643
664
|
},
|
|
644
665
|
get fallback() {
|
|
645
666
|
return (() => {
|
|
646
|
-
var _el$
|
|
647
|
-
_$insertNode(_el$
|
|
648
|
-
_$effect(_$p => _$setProp(_el$
|
|
649
|
-
return _el$
|
|
667
|
+
var _el$94 = _$createElement("text");
|
|
668
|
+
_$insertNode(_el$94, _$createTextNode(`Session usage unavailable`));
|
|
669
|
+
_$effect(_$p => _$setProp(_el$94, "fg", theme().muted, _$p));
|
|
670
|
+
return _el$94;
|
|
650
671
|
})();
|
|
651
672
|
},
|
|
652
673
|
children: summary => _$createComponent(Show, {
|
|
@@ -655,26 +676,26 @@ function UsageDialog(props) {
|
|
|
655
676
|
},
|
|
656
677
|
get fallback() {
|
|
657
678
|
return (() => {
|
|
658
|
-
var _el$
|
|
659
|
-
_el$
|
|
660
|
-
_el$
|
|
661
|
-
_el$
|
|
662
|
-
_el$
|
|
663
|
-
_$insertNode(_el$
|
|
664
|
-
_$insertNode(_el$
|
|
665
|
-
_$insertNode(_el$
|
|
666
|
-
_$insertNode(_el$
|
|
667
|
-
_$setProp(_el$
|
|
668
|
-
_$insert(_el$
|
|
669
|
-
_$insert(_el$
|
|
670
|
-
_$insert(_el$
|
|
671
|
-
_$insert(_el$
|
|
672
|
-
_$insert(_el$
|
|
679
|
+
var _el$96 = _$createElement("text"),
|
|
680
|
+
_el$97 = _$createTextNode(` · `),
|
|
681
|
+
_el$98 = _$createTextNode(` · `),
|
|
682
|
+
_el$99 = _$createTextNode(` tokens · `),
|
|
683
|
+
_el$100 = _$createTextNode(`% cached`);
|
|
684
|
+
_$insertNode(_el$96, _el$97);
|
|
685
|
+
_$insertNode(_el$96, _el$98);
|
|
686
|
+
_$insertNode(_el$96, _el$99);
|
|
687
|
+
_$insertNode(_el$96, _el$100);
|
|
688
|
+
_$setProp(_el$96, "wrapMode", "word");
|
|
689
|
+
_$insert(_el$96, () => countLabel(summary().steps, "step"), _el$97);
|
|
690
|
+
_$insert(_el$96, () => countLabel(summary().calls, "call"), _el$98);
|
|
691
|
+
_$insert(_el$96, () => formatCompact(summary().total), _el$99);
|
|
692
|
+
_$insert(_el$96, () => (summary().cacheRate * 100).toFixed(1), _el$100);
|
|
693
|
+
_$insert(_el$96, (() => {
|
|
673
694
|
var _c$ = _$memo(() => !!formatEstimatedCost(summary().cost, summary().costStatus));
|
|
674
695
|
return () => _c$() ? ` · ${formatEstimatedCost(summary().cost, summary().costStatus)}` : "";
|
|
675
696
|
})(), null);
|
|
676
|
-
_$effect(_$p => _$setProp(_el$
|
|
677
|
-
return _el$
|
|
697
|
+
_$effect(_$p => _$setProp(_el$96, "fg", theme().base, _$p));
|
|
698
|
+
return _el$96;
|
|
678
699
|
})();
|
|
679
700
|
},
|
|
680
701
|
get children() {
|
|
@@ -683,58 +704,58 @@ function UsageDialog(props) {
|
|
|
683
704
|
return summaryRows(summary());
|
|
684
705
|
},
|
|
685
706
|
children: ([label, value]) => (() => {
|
|
686
|
-
var _el$
|
|
687
|
-
_el$
|
|
688
|
-
_el$
|
|
689
|
-
_$insertNode(_el$
|
|
690
|
-
_$insertNode(_el$
|
|
691
|
-
_$setProp(_el$
|
|
692
|
-
_$setProp(_el$
|
|
693
|
-
_$setProp(_el$
|
|
694
|
-
_$setProp(_el$
|
|
695
|
-
_$insert(_el$
|
|
696
|
-
_$insert(_el$
|
|
707
|
+
var _el$101 = _$createElement("box"),
|
|
708
|
+
_el$102 = _$createElement("text"),
|
|
709
|
+
_el$103 = _$createElement("text");
|
|
710
|
+
_$insertNode(_el$101, _el$102);
|
|
711
|
+
_$insertNode(_el$101, _el$103);
|
|
712
|
+
_$setProp(_el$101, "flexDirection", "row");
|
|
713
|
+
_$setProp(_el$101, "justifyContent", "space-between");
|
|
714
|
+
_$setProp(_el$101, "gap", 2);
|
|
715
|
+
_$setProp(_el$102, "flexShrink", 0);
|
|
716
|
+
_$insert(_el$102, label);
|
|
717
|
+
_$insert(_el$103, value);
|
|
697
718
|
_$effect(_p$ => {
|
|
698
719
|
var _v$27 = theme().muted,
|
|
699
720
|
_v$28 = theme().base;
|
|
700
|
-
_v$27 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
701
|
-
_v$28 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
721
|
+
_v$27 !== _p$.e && (_p$.e = _$setProp(_el$102, "fg", _v$27, _p$.e));
|
|
722
|
+
_v$28 !== _p$.t && (_p$.t = _$setProp(_el$103, "fg", _v$28, _p$.t));
|
|
702
723
|
return _p$;
|
|
703
724
|
}, {
|
|
704
725
|
e: undefined,
|
|
705
726
|
t: undefined
|
|
706
727
|
});
|
|
707
|
-
return _el$
|
|
728
|
+
return _el$101;
|
|
708
729
|
})()
|
|
709
730
|
});
|
|
710
731
|
}
|
|
711
732
|
})
|
|
712
733
|
}), null);
|
|
713
|
-
_$insertNode(_el$56, _el$57);
|
|
714
734
|
_$insertNode(_el$57, _el$58);
|
|
715
|
-
_$insertNode(_el$58,
|
|
716
|
-
_$
|
|
735
|
+
_$insertNode(_el$58, _el$59);
|
|
736
|
+
_$insertNode(_el$59, _$createTextNode(`By Model`));
|
|
737
|
+
_$insert(_el$57, _$createComponent(Show, {
|
|
717
738
|
get when() {
|
|
718
739
|
return _$memo(() => !!detailed())() && models().length;
|
|
719
740
|
},
|
|
720
741
|
get children() {
|
|
721
|
-
var _el$
|
|
722
|
-
_$insertNode(_el$
|
|
723
|
-
_$setProp(_el$
|
|
724
|
-
_$effect(_$p => _$setProp(_el$
|
|
725
|
-
return _el$
|
|
742
|
+
var _el$61 = _$createElement("text");
|
|
743
|
+
_$insertNode(_el$61, _$createTextNode(`Rates used for Est. Cost · USD / 1M text tokens · incoming = Input + Cache Read + Cache Write`));
|
|
744
|
+
_$setProp(_el$61, "wrapMode", "word");
|
|
745
|
+
_$effect(_$p => _$setProp(_el$61, "fg", theme().muted, _$p));
|
|
746
|
+
return _el$61;
|
|
726
747
|
}
|
|
727
748
|
}), null);
|
|
728
|
-
_$insert(_el$
|
|
749
|
+
_$insert(_el$57, _$createComponent(Show, {
|
|
729
750
|
get when() {
|
|
730
751
|
return models().length;
|
|
731
752
|
},
|
|
732
753
|
get fallback() {
|
|
733
754
|
return (() => {
|
|
734
|
-
var _el$
|
|
735
|
-
_$insertNode(_el$
|
|
736
|
-
_$effect(_$p => _$setProp(_el$
|
|
737
|
-
return _el$
|
|
755
|
+
var _el$104 = _$createElement("text");
|
|
756
|
+
_$insertNode(_el$104, _$createTextNode(`No model usage yet`));
|
|
757
|
+
_$effect(_$p => _$setProp(_el$104, "fg", theme().muted, _$p));
|
|
758
|
+
return _el$104;
|
|
738
759
|
})();
|
|
739
760
|
},
|
|
740
761
|
get children() {
|
|
@@ -743,29 +764,29 @@ function UsageDialog(props) {
|
|
|
743
764
|
return models();
|
|
744
765
|
},
|
|
745
766
|
children: model => (() => {
|
|
746
|
-
var _el$
|
|
747
|
-
_el$
|
|
748
|
-
_el$106 = _$createElement("text"),
|
|
749
|
-
_el$107 = _$createElement("text"),
|
|
767
|
+
var _el$106 = _$createElement("box"),
|
|
768
|
+
_el$107 = _$createElement("box"),
|
|
750
769
|
_el$108 = _$createElement("text"),
|
|
751
|
-
_el$109 = _$
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
_$insertNode(_el$
|
|
755
|
-
_$insertNode(_el$
|
|
756
|
-
_$
|
|
757
|
-
_$
|
|
758
|
-
_$setProp(_el$
|
|
759
|
-
_$setProp(_el$
|
|
760
|
-
_$setProp(_el$
|
|
761
|
-
_$setProp(_el$
|
|
762
|
-
_$
|
|
763
|
-
_$setProp(_el$
|
|
764
|
-
_$insert(_el$
|
|
765
|
-
_$
|
|
766
|
-
_$insert(_el$
|
|
767
|
-
_$
|
|
768
|
-
_$insert(_el$
|
|
770
|
+
_el$109 = _$createElement("text"),
|
|
771
|
+
_el$110 = _$createElement("text"),
|
|
772
|
+
_el$111 = _$createTextNode(` tokens · `);
|
|
773
|
+
_$insertNode(_el$106, _el$107);
|
|
774
|
+
_$insertNode(_el$106, _el$110);
|
|
775
|
+
_$insertNode(_el$107, _el$108);
|
|
776
|
+
_$insertNode(_el$107, _el$109);
|
|
777
|
+
_$setProp(_el$107, "flexDirection", "row");
|
|
778
|
+
_$setProp(_el$107, "justifyContent", "space-between");
|
|
779
|
+
_$setProp(_el$107, "gap", 2);
|
|
780
|
+
_$setProp(_el$108, "wrapMode", "word");
|
|
781
|
+
_$setProp(_el$108, "minWidth", 0);
|
|
782
|
+
_$setProp(_el$108, "flexGrow", 1);
|
|
783
|
+
_$insert(_el$108, () => model.model);
|
|
784
|
+
_$setProp(_el$109, "flexShrink", 0);
|
|
785
|
+
_$insert(_el$109, () => formatEstimatedCost(model.cost, model.costStatus) ?? "");
|
|
786
|
+
_$insertNode(_el$110, _el$111);
|
|
787
|
+
_$insert(_el$110, () => number(model.tokens), _el$111);
|
|
788
|
+
_$insert(_el$110, () => countLabel(model.calls, "call"), null);
|
|
789
|
+
_$insert(_el$106, _$createComponent(Show, {
|
|
769
790
|
get when() {
|
|
770
791
|
return detailed();
|
|
771
792
|
},
|
|
@@ -775,34 +796,34 @@ function UsageDialog(props) {
|
|
|
775
796
|
return model.appliedRates;
|
|
776
797
|
},
|
|
777
798
|
children: rates => (() => {
|
|
778
|
-
var _el$
|
|
779
|
-
_el$
|
|
780
|
-
_el$
|
|
781
|
-
_el$
|
|
782
|
-
_$insertNode(_el$
|
|
783
|
-
_$setProp(_el$
|
|
784
|
-
_$insertNode(_el$
|
|
785
|
-
_$insertNode(_el$
|
|
786
|
-
_$setProp(_el$
|
|
787
|
-
_$insert(_el$
|
|
788
|
-
_$insert(_el$
|
|
789
|
-
_$insert(_el$
|
|
790
|
-
_$insert(_el$
|
|
791
|
-
_$effect(_$p => _$setProp(_el$
|
|
792
|
-
return _el$
|
|
799
|
+
var _el$114 = _$createElement("box"),
|
|
800
|
+
_el$115 = _$createElement("text"),
|
|
801
|
+
_el$116 = _$createTextNode(` · `),
|
|
802
|
+
_el$117 = _$createTextNode(` · `);
|
|
803
|
+
_$insertNode(_el$114, _el$115);
|
|
804
|
+
_$setProp(_el$114, "marginTop", 1);
|
|
805
|
+
_$insertNode(_el$115, _el$116);
|
|
806
|
+
_$insertNode(_el$115, _el$117);
|
|
807
|
+
_$setProp(_el$115, "wrapMode", "word");
|
|
808
|
+
_$insert(_el$115, () => rates.source, _el$116);
|
|
809
|
+
_$insert(_el$115, () => formatRateTier(rates), _el$117);
|
|
810
|
+
_$insert(_el$115, () => countLabel(rates.calls, "call"), null);
|
|
811
|
+
_$insert(_el$114, () => requestRowsList(rateRows(rates)), null);
|
|
812
|
+
_$effect(_$p => _$setProp(_el$115, "fg", theme().muted, _$p));
|
|
813
|
+
return _el$114;
|
|
793
814
|
})()
|
|
794
815
|
}), _$createComponent(Show, {
|
|
795
816
|
get when() {
|
|
796
817
|
return model.unpricedCalls > 0;
|
|
797
818
|
},
|
|
798
819
|
get children() {
|
|
799
|
-
var _el$
|
|
800
|
-
_el$
|
|
801
|
-
_$insertNode(_el$
|
|
802
|
-
_$setProp(_el$
|
|
803
|
-
_$insert(_el$
|
|
804
|
-
_$effect(_$p => _$setProp(_el$
|
|
805
|
-
return _el$
|
|
820
|
+
var _el$112 = _$createElement("text"),
|
|
821
|
+
_el$113 = _$createTextNode(`Pricing unavailable for `);
|
|
822
|
+
_$insertNode(_el$112, _el$113);
|
|
823
|
+
_$setProp(_el$112, "wrapMode", "word");
|
|
824
|
+
_$insert(_el$112, () => countLabel(model.unpricedCalls, "call"), null);
|
|
825
|
+
_$effect(_$p => _$setProp(_el$112, "fg", theme().muted, _$p));
|
|
826
|
+
return _el$112;
|
|
806
827
|
}
|
|
807
828
|
})];
|
|
808
829
|
}
|
|
@@ -811,16 +832,16 @@ function UsageDialog(props) {
|
|
|
811
832
|
var _v$29 = theme().base,
|
|
812
833
|
_v$30 = theme().base,
|
|
813
834
|
_v$31 = theme().muted;
|
|
814
|
-
_v$29 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
815
|
-
_v$30 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
816
|
-
_v$31 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
835
|
+
_v$29 !== _p$.e && (_p$.e = _$setProp(_el$108, "fg", _v$29, _p$.e));
|
|
836
|
+
_v$30 !== _p$.t && (_p$.t = _$setProp(_el$109, "fg", _v$30, _p$.t));
|
|
837
|
+
_v$31 !== _p$.a && (_p$.a = _$setProp(_el$110, "fg", _v$31, _p$.a));
|
|
817
838
|
return _p$;
|
|
818
839
|
}, {
|
|
819
840
|
e: undefined,
|
|
820
841
|
t: undefined,
|
|
821
842
|
a: undefined
|
|
822
843
|
});
|
|
823
|
-
return _el$
|
|
844
|
+
return _el$106;
|
|
824
845
|
})()
|
|
825
846
|
});
|
|
826
847
|
}
|
|
@@ -835,9 +856,9 @@ function UsageDialog(props) {
|
|
|
835
856
|
_v$10 !== _p$.e && (_p$.e = _$setProp(_el$37, "maxHeight", _v$10, _p$.e));
|
|
836
857
|
_v$11 !== _p$.t && (_p$.t = _$setProp(_el$40, "fg", _v$11, _p$.t));
|
|
837
858
|
_v$12 !== _p$.a && (_p$.a = _$setProp(_el$45, "fg", _v$12, _p$.a));
|
|
838
|
-
_v$13 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
839
|
-
_v$14 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
840
|
-
_v$15 !== _p$.n && (_p$.n = _$setProp(_el$
|
|
859
|
+
_v$13 !== _p$.o && (_p$.o = _$setProp(_el$50, "fg", _v$13, _p$.o));
|
|
860
|
+
_v$14 !== _p$.i && (_p$.i = _$setProp(_el$54, "fg", _v$14, _p$.i));
|
|
861
|
+
_v$15 !== _p$.n && (_p$.n = _$setProp(_el$58, "fg", _v$15, _p$.n));
|
|
841
862
|
return _p$;
|
|
842
863
|
}, {
|
|
843
864
|
e: undefined,
|
|
@@ -849,17 +870,17 @@ function UsageDialog(props) {
|
|
|
849
870
|
});
|
|
850
871
|
return _el$37;
|
|
851
872
|
}
|
|
852
|
-
}), _el$
|
|
853
|
-
_$insertNode(_el$
|
|
854
|
-
_$insertNode(_el$
|
|
855
|
-
_$insertNode(_el$
|
|
856
|
-
_$setProp(_el$
|
|
857
|
-
_$insertNode(_el$
|
|
858
|
-
_$insertNode(_el$
|
|
859
|
-
_$setProp(_el$
|
|
873
|
+
}), _el$63);
|
|
874
|
+
_$insertNode(_el$63, _el$64);
|
|
875
|
+
_$insertNode(_el$63, _el$66);
|
|
876
|
+
_$insertNode(_el$63, _el$68);
|
|
877
|
+
_$setProp(_el$63, "flexDirection", "row");
|
|
878
|
+
_$insertNode(_el$64, _$createTextNode(`↑/↓ scroll · `));
|
|
879
|
+
_$insertNode(_el$66, _$createTextNode(`d details`));
|
|
880
|
+
_$setProp(_el$66, "onMouseUp", event => {
|
|
860
881
|
if (event.button === 0) toggleDetails();
|
|
861
882
|
});
|
|
862
|
-
_$insertNode(_el$
|
|
883
|
+
_$insertNode(_el$68, _$createTextNode(` · esc close`));
|
|
863
884
|
_$effect(_p$ => {
|
|
864
885
|
var _v$16 = theme().base,
|
|
865
886
|
_v$17 = theme().muted,
|
|
@@ -868,9 +889,9 @@ function UsageDialog(props) {
|
|
|
868
889
|
_v$20 = theme().muted;
|
|
869
890
|
_v$16 !== _p$.e && (_p$.e = _$setProp(_el$30, "fg", _v$16, _p$.e));
|
|
870
891
|
_v$17 !== _p$.t && (_p$.t = _$setProp(_el$33, "fg", _v$17, _p$.t));
|
|
871
|
-
_v$18 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
872
|
-
_v$19 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
873
|
-
_v$20 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
892
|
+
_v$18 !== _p$.a && (_p$.a = _$setProp(_el$64, "fg", _v$18, _p$.a));
|
|
893
|
+
_v$19 !== _p$.o && (_p$.o = _$setProp(_el$66, "fg", _v$19, _p$.o));
|
|
894
|
+
_v$20 !== _p$.i && (_p$.i = _$setProp(_el$68, "fg", _v$20, _p$.i));
|
|
874
895
|
return _p$;
|
|
875
896
|
}, {
|
|
876
897
|
e: undefined,
|