fleetlens 1.0.13 → 1.0.15
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/app/apps/web/.next/BUILD_ID +1 -1
- package/app/apps/web/.next/build-manifest.json +3 -3
- package/app/apps/web/.next/prerender-manifest.json +3 -3
- package/app/apps/web/.next/server/app/_global-error.html +1 -1
- package/app/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/agent/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/changelog/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/day/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/[date]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/digest/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/insights/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/parallelism/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/print/[key]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/team/onboarding/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/team/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/app/usage/page_client-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__02.51sr._.js +1 -1
- package/app/apps/web/.next/server/chunks/[root-of-the-server]__0zyh554._.js +1 -1
- package/app/apps/web/.next/server/chunks/packages_parser_dist_06d9se1._.js +1 -1
- package/app/apps/web/.next/server/chunks/packages_parser_dist_10ihc3~._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0s~wd1k._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/_0k8yioi._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_0epqfet._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_components_0x014hn._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0n7_p1d._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/apps_web_lib_changelog_ts_0nb5_-s._.js +1 -1
- package/app/apps/web/.next/server/chunks/ssr/packages_parser_dist_0mx_509._.js +1 -1
- package/app/apps/web/.next/server/middleware-build-manifest.js +3 -3
- package/app/apps/web/.next/server/middleware-manifest.json +5 -5
- package/app/apps/web/.next/server/pages/500.html +1 -1
- package/app/apps/web/.next/server/server-reference-manifest.js +1 -1
- package/app/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/app/apps/web/.next/static/chunks/00_9zw_tjem-o.js +14 -0
- package/app/apps/web/.next/static/chunks/0266xq7gs43sq.js +1 -0
- package/app/apps/web/.next/static/chunks/{0r~~~j3kmv7s_.js → 08os0c_3cdpqn.js} +1 -1
- package/app/apps/web/app/usage/page.tsx +264 -1
- package/app/apps/web/lib/changelog-data.generated.ts +1 -1
- package/app/apps/web/lib/usage-data.ts +1 -1
- package/app/apps/web/lib/usage-display.test.ts +15 -0
- package/app/apps/web/lib/usage-display.ts +22 -3
- package/app/apps/web/package.json +1 -1
- package/app/apps/web/tsconfig.tsbuildinfo +1 -1
- package/dist/daemon-worker.js +689 -265
- package/dist/index.js +920 -284
- package/menubar/Fleetlens.app/Contents/Info.plist +2 -2
- package/menubar/Fleetlens.app/Contents/MacOS/FleetlensMenubar +0 -0
- package/menubar/Fleetlens.app/Contents/Resources/command-code.svg +4 -0
- package/menubar/Fleetlens.app/Contents/_CodeSignature/CodeResources +11 -0
- package/package.json +1 -1
- package/app/apps/web/.next/static/chunks/0lcq6isl3n79m.js +0 -1
- package/app/apps/web/.next/static/chunks/0livk1wjx5m4o.js +0 -14
- /package/app/apps/web/.next/static/{h9pB-Efqh5oayfi0_lGfY → HNG9JDuajDbJlU07fqf3C}/_buildManifest.js +0 -0
- /package/app/apps/web/.next/static/{h9pB-Efqh5oayfi0_lGfY → HNG9JDuajDbJlU07fqf3C}/_clientMiddlewareManifest.js +0 -0
- /package/app/apps/web/.next/static/{h9pB-Efqh5oayfi0_lGfY → HNG9JDuajDbJlU07fqf3C}/_ssgManifest.js +0 -0
|
@@ -76,6 +76,8 @@ export default async function UsagePage({
|
|
|
76
76
|
const cycles7d = calibration ? previousCyclesTrend(calibration, "7d", 12) : [];
|
|
77
77
|
const isGrok = selected === "grok";
|
|
78
78
|
const isCopilot = selected === "copilot";
|
|
79
|
+
const isCommandCode = selected === "command-code";
|
|
80
|
+
const commandCodeAccent = agentAccent("command-code");
|
|
79
81
|
const codexWeeklyOnly =
|
|
80
82
|
selected === "codex" && latest?.five_hour?.utilization == null;
|
|
81
83
|
|
|
@@ -175,6 +177,26 @@ export default async function UsagePage({
|
|
|
175
177
|
</span>
|
|
176
178
|
</span>
|
|
177
179
|
)}
|
|
180
|
+
{isCommandCode && latest?.plan_type && (
|
|
181
|
+
<span
|
|
182
|
+
style={{
|
|
183
|
+
marginLeft: "auto",
|
|
184
|
+
display: "inline-flex",
|
|
185
|
+
alignItems: "center",
|
|
186
|
+
gap: 8,
|
|
187
|
+
fontSize: 12,
|
|
188
|
+
padding: "4px 10px",
|
|
189
|
+
border: "1px solid var(--af-border-subtle)",
|
|
190
|
+
borderRadius: 999,
|
|
191
|
+
fontFamily: "var(--font-mono)",
|
|
192
|
+
}}
|
|
193
|
+
>
|
|
194
|
+
<span style={{ color: "var(--af-text-tertiary)" }}>plan</span>
|
|
195
|
+
<span style={{ color: "var(--af-text)", fontWeight: 600 }}>
|
|
196
|
+
Command Code · {latest.plan_type}
|
|
197
|
+
</span>
|
|
198
|
+
</span>
|
|
199
|
+
)}
|
|
178
200
|
{selected === "zai" && latest?.plan_type && (
|
|
179
201
|
<span
|
|
180
202
|
style={{
|
|
@@ -225,6 +247,21 @@ export default async function UsagePage({
|
|
|
225
247
|
planType={latest.plan_type}
|
|
226
248
|
/>
|
|
227
249
|
)}
|
|
250
|
+
{isCommandCode && (
|
|
251
|
+
<>
|
|
252
|
+
<CommandCodeRateLimitsCard
|
|
253
|
+
fiveHour={latest.five_hour}
|
|
254
|
+
weekly={latest.seven_day}
|
|
255
|
+
/>
|
|
256
|
+
{latest.monthly && (
|
|
257
|
+
<CommandCodeMonthlyCard
|
|
258
|
+
window={latest.monthly}
|
|
259
|
+
quota={latest.monthly_quota}
|
|
260
|
+
planType={latest.plan_type}
|
|
261
|
+
/>
|
|
262
|
+
)}
|
|
263
|
+
</>
|
|
264
|
+
)}
|
|
228
265
|
{isCopilot && latest.monthly && (
|
|
229
266
|
<CopilotMonthlyCard
|
|
230
267
|
window={latest.monthly}
|
|
@@ -259,6 +296,27 @@ export default async function UsagePage({
|
|
|
259
296
|
colorVar: agentAccent("copilot"),
|
|
260
297
|
},
|
|
261
298
|
]
|
|
299
|
+
: isCommandCode
|
|
300
|
+
? [
|
|
301
|
+
{
|
|
302
|
+
key: "five_hour",
|
|
303
|
+
label: "5h utilization",
|
|
304
|
+
windowMs: 5 * 60 * 60 * 1000,
|
|
305
|
+
colorVar: "var(--af-success)",
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
key: "seven_day",
|
|
309
|
+
label: "Weekly utilization",
|
|
310
|
+
windowMs: 7 * 24 * 60 * 60 * 1000,
|
|
311
|
+
colorVar: commandCodeAccent,
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
key: "monthly",
|
|
315
|
+
label: "Monthly credit utilization",
|
|
316
|
+
windowMs: 30 * 24 * 60 * 60 * 1000,
|
|
317
|
+
colorVar: commandCodeAccent,
|
|
318
|
+
},
|
|
319
|
+
]
|
|
262
320
|
: codexWeeklyOnly
|
|
263
321
|
? [
|
|
264
322
|
{
|
|
@@ -270,7 +328,7 @@ export default async function UsagePage({
|
|
|
270
328
|
]
|
|
271
329
|
: undefined
|
|
272
330
|
}
|
|
273
|
-
hideSonnet={isGrok || isCopilot || selected === "codex"}
|
|
331
|
+
hideSonnet={isGrok || isCopilot || isCommandCode || selected === "codex"}
|
|
274
332
|
/>
|
|
275
333
|
{selected === "zai" && latest?.web_search_quota && (
|
|
276
334
|
<WebSearchQuotaCard quota={latest.web_search_quota} />
|
|
@@ -287,6 +345,7 @@ export default async function UsagePage({
|
|
|
287
345
|
{snapshots.length} snapshot{snapshots.length === 1 ? "" : "s"} on disk
|
|
288
346
|
{isGrok ? " · weekly shared-pool % (no 5h window)" : ""}
|
|
289
347
|
{isCopilot ? " · monthly AI-credit allowance (no 5h/7d windows)" : ""}
|
|
348
|
+
{isCommandCode ? " · monthly credits + 5-hour and weekly windows" : ""}
|
|
290
349
|
{codexWeeklyOnly ? " · weekly-only Codex limit" : ""}
|
|
291
350
|
</div>
|
|
292
351
|
</>
|
|
@@ -506,6 +565,172 @@ function AgentTabs({ agents, selected }: { agents: AgentKind[]; selected: AgentK
|
|
|
506
565
|
);
|
|
507
566
|
}
|
|
508
567
|
|
|
568
|
+
function CommandCodeRateLimitsCard({
|
|
569
|
+
fiveHour,
|
|
570
|
+
weekly,
|
|
571
|
+
}: {
|
|
572
|
+
fiveHour: { utilization: number | null; resets_at: string | null };
|
|
573
|
+
weekly: { utilization: number | null; resets_at: string | null };
|
|
574
|
+
}) {
|
|
575
|
+
return (
|
|
576
|
+
<div
|
|
577
|
+
style={{
|
|
578
|
+
display: "grid",
|
|
579
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(240px, 1fr))",
|
|
580
|
+
gap: 12,
|
|
581
|
+
}}
|
|
582
|
+
>
|
|
583
|
+
<CommandCodeWindowCard
|
|
584
|
+
label="5-hour window"
|
|
585
|
+
window={fiveHour}
|
|
586
|
+
hint="Rolling 5-hour rate limit on this plan."
|
|
587
|
+
/>
|
|
588
|
+
<CommandCodeWindowCard
|
|
589
|
+
label="Weekly window"
|
|
590
|
+
window={weekly}
|
|
591
|
+
hint="Rolling 7-day rate limit. Extra purchased credits bypass this cap."
|
|
592
|
+
/>
|
|
593
|
+
</div>
|
|
594
|
+
);
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
function CommandCodeWindowCard({
|
|
598
|
+
label,
|
|
599
|
+
window,
|
|
600
|
+
hint,
|
|
601
|
+
}: {
|
|
602
|
+
label: string;
|
|
603
|
+
window: { utilization: number | null; resets_at: string | null };
|
|
604
|
+
hint: string;
|
|
605
|
+
}) {
|
|
606
|
+
const has = window.utilization != null;
|
|
607
|
+
const pct = has ? Math.min(100, Math.max(0, window.utilization!)) : 0;
|
|
608
|
+
return (
|
|
609
|
+
<div className="af-card" style={{ padding: "16px 18px" }}>
|
|
610
|
+
<div
|
|
611
|
+
style={{
|
|
612
|
+
fontSize: 11,
|
|
613
|
+
color: "var(--af-text-tertiary)",
|
|
614
|
+
textTransform: "uppercase",
|
|
615
|
+
letterSpacing: "0.05em",
|
|
616
|
+
fontWeight: 600,
|
|
617
|
+
}}
|
|
618
|
+
>
|
|
619
|
+
{label}
|
|
620
|
+
</div>
|
|
621
|
+
<div
|
|
622
|
+
style={{
|
|
623
|
+
fontSize: 28,
|
|
624
|
+
fontWeight: 700,
|
|
625
|
+
marginTop: 8,
|
|
626
|
+
letterSpacing: "-0.02em",
|
|
627
|
+
lineHeight: 1.1,
|
|
628
|
+
fontVariantNumeric: "tabular-nums",
|
|
629
|
+
}}
|
|
630
|
+
>
|
|
631
|
+
{has ? `${pct.toFixed(1)}%` : "—"}
|
|
632
|
+
</div>
|
|
633
|
+
<div
|
|
634
|
+
style={{
|
|
635
|
+
marginTop: 10,
|
|
636
|
+
height: 8,
|
|
637
|
+
borderRadius: 999,
|
|
638
|
+
background: "var(--af-border-subtle)",
|
|
639
|
+
overflow: "hidden",
|
|
640
|
+
}}
|
|
641
|
+
>
|
|
642
|
+
<div
|
|
643
|
+
style={{
|
|
644
|
+
width: has ? `${pct}%` : "0%",
|
|
645
|
+
height: "100%",
|
|
646
|
+
borderRadius: 999,
|
|
647
|
+
background: agentAccent("command-code"),
|
|
648
|
+
}}
|
|
649
|
+
/>
|
|
650
|
+
</div>
|
|
651
|
+
<p style={{ fontSize: 12, color: "var(--af-text-tertiary)", marginTop: 10, marginBottom: 0 }}>
|
|
652
|
+
{hint}
|
|
653
|
+
{window.resets_at ? ` Resets ${new Date(window.resets_at).toLocaleString()}.` : ""}
|
|
654
|
+
</p>
|
|
655
|
+
</div>
|
|
656
|
+
);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
function CommandCodeMonthlyCard({
|
|
660
|
+
window,
|
|
661
|
+
quota,
|
|
662
|
+
planType,
|
|
663
|
+
}: {
|
|
664
|
+
window: { utilization: number | null; resets_at: string | null };
|
|
665
|
+
quota?: CopilotMonthlyQuota | null;
|
|
666
|
+
planType?: string | null;
|
|
667
|
+
}) {
|
|
668
|
+
const pct = window.utilization;
|
|
669
|
+
const presentation = copilotQuotaPresentation(pct, quota);
|
|
670
|
+
return (
|
|
671
|
+
<div className="af-card" style={{ padding: "16px 18px" }}>
|
|
672
|
+
<div
|
|
673
|
+
style={{
|
|
674
|
+
fontSize: 11,
|
|
675
|
+
color: "var(--af-text-tertiary)",
|
|
676
|
+
textTransform: "uppercase",
|
|
677
|
+
letterSpacing: "0.05em",
|
|
678
|
+
fontWeight: 600,
|
|
679
|
+
}}
|
|
680
|
+
>
|
|
681
|
+
Monthly credits
|
|
682
|
+
{planType ? (
|
|
683
|
+
<span style={{ marginLeft: 8, fontWeight: 500, textTransform: "none" }}>
|
|
684
|
+
· {planType}
|
|
685
|
+
</span>
|
|
686
|
+
) : null}
|
|
687
|
+
</div>
|
|
688
|
+
<div
|
|
689
|
+
style={{
|
|
690
|
+
fontSize: 28,
|
|
691
|
+
fontWeight: 700,
|
|
692
|
+
marginTop: 8,
|
|
693
|
+
letterSpacing: "-0.02em",
|
|
694
|
+
lineHeight: 1.1,
|
|
695
|
+
fontVariantNumeric: "tabular-nums",
|
|
696
|
+
}}
|
|
697
|
+
>
|
|
698
|
+
{presentation.headline}
|
|
699
|
+
</div>
|
|
700
|
+
{presentation.detail && (
|
|
701
|
+
<div style={{ marginTop: 6, fontSize: 12, color: "var(--af-text-secondary)" }}>
|
|
702
|
+
{presentation.detail}
|
|
703
|
+
</div>
|
|
704
|
+
)}
|
|
705
|
+
{pct !== null && (
|
|
706
|
+
<div
|
|
707
|
+
style={{
|
|
708
|
+
marginTop: 10,
|
|
709
|
+
height: 8,
|
|
710
|
+
borderRadius: 999,
|
|
711
|
+
background: "var(--af-border-subtle)",
|
|
712
|
+
overflow: "hidden",
|
|
713
|
+
}}
|
|
714
|
+
>
|
|
715
|
+
<div
|
|
716
|
+
style={{
|
|
717
|
+
width: `${Math.min(100, Math.max(0, pct))}%`,
|
|
718
|
+
height: "100%",
|
|
719
|
+
borderRadius: 999,
|
|
720
|
+
background: agentAccent("command-code"),
|
|
721
|
+
}}
|
|
722
|
+
/>
|
|
723
|
+
</div>
|
|
724
|
+
)}
|
|
725
|
+
<p style={{ fontSize: 12, color: "var(--af-text-tertiary)", marginTop: 10, marginBottom: 0 }}>
|
|
726
|
+
Plan credit allocation for this billing cycle. Extra purchased credits sit on top and are not
|
|
727
|
+
in this meter.
|
|
728
|
+
{window.resets_at ? ` Resets ${new Date(window.resets_at).toLocaleString()}.` : ""}
|
|
729
|
+
</p>
|
|
730
|
+
</div>
|
|
731
|
+
);
|
|
732
|
+
}
|
|
733
|
+
|
|
509
734
|
function GrokWeeklyCard({
|
|
510
735
|
utilization,
|
|
511
736
|
resetsAt,
|
|
@@ -615,6 +840,44 @@ function EmptyState({ agent }: { agent: AgentKind }) {
|
|
|
615
840
|
</div>
|
|
616
841
|
);
|
|
617
842
|
}
|
|
843
|
+
if (agent === "command-code") {
|
|
844
|
+
return (
|
|
845
|
+
<div className="af-card" style={{ padding: "48px 32px", textAlign: "center" }}>
|
|
846
|
+
<div style={{ fontSize: 15, fontWeight: 600, color: "var(--af-text)" }}>
|
|
847
|
+
No Command Code usage samples yet
|
|
848
|
+
</div>
|
|
849
|
+
<p
|
|
850
|
+
style={{
|
|
851
|
+
fontSize: 12,
|
|
852
|
+
color: "var(--af-text-tertiary)",
|
|
853
|
+
margin: "8px auto 0",
|
|
854
|
+
maxWidth: 520,
|
|
855
|
+
lineHeight: 1.5,
|
|
856
|
+
}}
|
|
857
|
+
>
|
|
858
|
+
The daemon polls Command Code's monthly credits plus 5-hour and
|
|
859
|
+
weekly windows (the same billing API the <code style={{ fontSize: 11 }}>cmd</code>{" "}
|
|
860
|
+
/usage overlay uses). Run <code style={{ fontSize: 11 }}>cmd login</code> if needed,
|
|
861
|
+
then start the daemon.
|
|
862
|
+
</p>
|
|
863
|
+
<pre
|
|
864
|
+
style={{
|
|
865
|
+
display: "inline-block",
|
|
866
|
+
marginTop: 14,
|
|
867
|
+
background: "var(--background)",
|
|
868
|
+
border: "1px solid var(--af-border-subtle)",
|
|
869
|
+
padding: "8px 16px",
|
|
870
|
+
borderRadius: 6,
|
|
871
|
+
fontSize: 13,
|
|
872
|
+
fontFamily: "var(--font-mono)",
|
|
873
|
+
color: "var(--af-text)",
|
|
874
|
+
}}
|
|
875
|
+
>
|
|
876
|
+
fleetlens daemon start
|
|
877
|
+
</pre>
|
|
878
|
+
</div>
|
|
879
|
+
);
|
|
880
|
+
}
|
|
618
881
|
if (agent === "grok") {
|
|
619
882
|
return (
|
|
620
883
|
<div
|