Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit36d2e01

Browse files
chore: add managed ai usage consumption to license view (#18934)
Customers with licenses not supporting managed AI agents will receivethe following information:<img width="597" height="261" alt="image"src="https://github.com/user-attachments/assets/b794a9f2-bca8-494e-a8d1-cc6e6bc43bfe"/>Customers with active licenes for managed AI agents will see:<img width="604" height="293" alt="image"src="https://github.com/user-attachments/assets/7ce8931c-05c6-4e64-a5a1-2e9364e99de2"/>Closescoder/internal#813---------Co-authored-by: McKayla Washburn <mckayla@hey.com>
1 parent0672bf5 commit36d2e01

File tree

4 files changed

+409
-1
lines changed

4 files changed

+409
-1
lines changed

‎site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPage.tsx‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ const LicensesSettingsPage: FC = () => {
8585
isRemovingLicense={isRemovingLicense}
8686
removeLicense={(licenseId:number)=>removeLicenseApi(licenseId)}
8787
activeUsers={userStatusCount?.active}
88+
managedAgentFeature={
89+
entitlementsQuery.data?.features.managed_agent_limit
90+
}
8891
refreshEntitlements={async()=>{
8992
try{
9093
awaitrefreshEntitlementsMutation.mutateAsync();

‎site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.tsx‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import MuiLink from "@mui/material/Link";
44
importSkeletonfrom"@mui/material/Skeleton";
55
importTooltipfrom"@mui/material/Tooltip";
66
importtype{GetLicensesResponse}from"api/api";
7-
importtype{UserStatusChangeCount}from"api/typesGenerated";
7+
importtype{Feature,UserStatusChangeCount}from"api/typesGenerated";
88
import{Button}from"components/Button/Button";
99
import{
1010
SettingsHeader,
@@ -20,6 +20,7 @@ import Confetti from "react-confetti";
2020
import{Link}from"react-router-dom";
2121
import{LicenseCard}from"./LicenseCard";
2222
import{LicenseSeatConsumptionChart}from"./LicenseSeatConsumptionChart";
23+
import{ManagedAgentsConsumption}from"./ManagedAgentsConsumption";
2324

2425
typeProps={
2526
showConfetti:boolean;
@@ -32,6 +33,7 @@ type Props = {
3233
removeLicense:(licenseId:number)=>void;
3334
refreshEntitlements:()=>void;
3435
activeUsers:UserStatusChangeCount[]|undefined;
36+
managedAgentFeature?:Feature;
3537
};
3638

3739
constLicensesSettingsPageView:FC<Props>=({
@@ -45,6 +47,7 @@ const LicensesSettingsPageView: FC<Props> = ({
4547
removeLicense,
4648
refreshEntitlements,
4749
activeUsers,
50+
managedAgentFeature,
4851
})=>{
4952
consttheme=useTheme();
5053
const{ width, height}=useWindowSize();
@@ -151,6 +154,10 @@ const LicensesSettingsPageView: FC<Props> = ({
151154
}))}
152155
/>
153156
)}
157+
158+
{licenses&&licenses.length>0&&(
159+
<ManagedAgentsConsumptionmanagedAgentFeature={managedAgentFeature}/>
160+
)}
154161
</div>
155162
</>
156163
);
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
importtype{Meta,StoryObj}from"@storybook/react";
2+
import{ManagedAgentsConsumption}from"./ManagedAgentsConsumption";
3+
4+
constmeta:Meta<typeofManagedAgentsConsumption>={
5+
title:
6+
"pages/DeploymentSettingsPage/LicensesSettingsPage/ManagedAgentsConsumption",
7+
component:ManagedAgentsConsumption,
8+
args:{
9+
managedAgentFeature:{
10+
enabled:true,
11+
actual:50000,
12+
soft_limit:60000,
13+
limit:120000,
14+
usage_period:{
15+
start:"February 27, 2025",
16+
end:"February 27, 2026",
17+
issued_at:"February 27, 2025",
18+
},
19+
entitlement:"entitled",
20+
},
21+
},
22+
};
23+
24+
exportdefaultmeta;
25+
typeStory=StoryObj<typeofManagedAgentsConsumption>;
26+
27+
exportconstDefault:Story={};
28+
29+
exportconstNearLimit:Story={
30+
args:{
31+
managedAgentFeature:{
32+
enabled:true,
33+
actual:115000,
34+
soft_limit:60000,
35+
limit:120000,
36+
usage_period:{
37+
start:"February 27, 2025",
38+
end:"February 27, 2026",
39+
issued_at:"February 27, 2025",
40+
},
41+
entitlement:"entitled",
42+
},
43+
},
44+
};
45+
46+
exportconstOverIncluded:Story={
47+
args:{
48+
managedAgentFeature:{
49+
enabled:true,
50+
actual:80000,
51+
soft_limit:60000,
52+
limit:120000,
53+
usage_period:{
54+
start:"February 27, 2025",
55+
end:"February 27, 2026",
56+
issued_at:"February 27, 2025",
57+
},
58+
entitlement:"entitled",
59+
},
60+
},
61+
};
62+
63+
exportconstLowUsage:Story={
64+
args:{
65+
managedAgentFeature:{
66+
enabled:true,
67+
actual:25000,
68+
soft_limit:60000,
69+
limit:120000,
70+
usage_period:{
71+
start:"February 27, 2025",
72+
end:"February 27, 2026",
73+
issued_at:"February 27, 2025",
74+
},
75+
entitlement:"entitled",
76+
},
77+
},
78+
};
79+
80+
exportconstIncludedAtLimit:Story={
81+
args:{
82+
managedAgentFeature:{
83+
enabled:true,
84+
actual:25000,
85+
soft_limit:30500,
86+
limit:30500,
87+
usage_period:{
88+
start:"February 27, 2025",
89+
end:"February 27, 2026",
90+
issued_at:"February 27, 2025",
91+
},
92+
entitlement:"entitled",
93+
},
94+
},
95+
};
96+
97+
exportconstDisabled:Story={
98+
args:{
99+
managedAgentFeature:{
100+
enabled:false,
101+
actual:undefined,
102+
soft_limit:undefined,
103+
limit:undefined,
104+
usage_period:undefined,
105+
entitlement:"not_entitled",
106+
},
107+
},
108+
};
109+
110+
exportconstNoFeature:Story={
111+
args:{
112+
managedAgentFeature:undefined,
113+
},
114+
};
115+
116+
// Error States for Validation
117+
exportconstErrorMissingData:Story={
118+
args:{
119+
managedAgentFeature:{
120+
enabled:true,
121+
actual:undefined,
122+
soft_limit:undefined,
123+
limit:undefined,
124+
usage_period:undefined,
125+
entitlement:"entitled",
126+
},
127+
},
128+
};
129+
130+
exportconstErrorNegativeValues:Story={
131+
args:{
132+
managedAgentFeature:{
133+
enabled:true,
134+
actual:-100,
135+
soft_limit:60000,
136+
limit:120000,
137+
usage_period:{
138+
start:"February 27, 2025",
139+
end:"February 27, 2026",
140+
issued_at:"February 27, 2025",
141+
},
142+
entitlement:"entitled",
143+
},
144+
},
145+
};
146+
147+
exportconstErrorSoftLimitExceedsLimit:Story={
148+
args:{
149+
managedAgentFeature:{
150+
enabled:true,
151+
actual:50000,
152+
soft_limit:150000,
153+
limit:120000,
154+
usage_period:{
155+
start:"February 27, 2025",
156+
end:"February 27, 2026",
157+
issued_at:"February 27, 2025",
158+
},
159+
entitlement:"entitled",
160+
},
161+
},
162+
};
163+
164+
exportconstErrorInvalidDates:Story={
165+
args:{
166+
managedAgentFeature:{
167+
enabled:true,
168+
actual:50000,
169+
soft_limit:60000,
170+
limit:120000,
171+
usage_period:{
172+
start:"invalid-date",
173+
end:"February 27, 2026",
174+
issued_at:"February 27, 2025",
175+
},
176+
entitlement:"entitled",
177+
},
178+
},
179+
};
180+
181+
exportconstErrorEndBeforeStart:Story={
182+
args:{
183+
managedAgentFeature:{
184+
enabled:true,
185+
actual:50000,
186+
soft_limit:60000,
187+
limit:120000,
188+
usage_period:{
189+
start:"February 27, 2026",
190+
end:"February 27, 2025",
191+
issued_at:"February 27, 2025",
192+
},
193+
entitlement:"entitled",
194+
},
195+
},
196+
};

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp