@acarmisc/backstage-plugin-litellm 0.18.0 → 0.18.1
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/dist/SearchInput.d.ts +1 -0
- package/dist/components/SearchInput.d.ts +9 -0
- package/dist/index.cjs.js +36 -13
- package/dist/index.cjs.js.map +3 -3
- package/dist/index.esm.js +30 -7
- package/dist/index.esm.js.map +3 -3
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -3009,6 +3009,9 @@ import Tooltip3 from "@mui/material/Tooltip";
|
|
|
3009
3009
|
import Snackbar from "@mui/material/Snackbar";
|
|
3010
3010
|
import Alert3 from "@mui/material/Alert";
|
|
3011
3011
|
import { alpha as alpha5, useTheme as useTheme2 } from "@mui/material/styles";
|
|
3012
|
+
import TextField5 from "@mui/material/TextField";
|
|
3013
|
+
import InputAdornment2 from "@mui/material/InputAdornment";
|
|
3014
|
+
import { Search as Search2 } from "@mui/icons-material";
|
|
3012
3015
|
function isModelAllowedByTeam2(model, teamModels) {
|
|
3013
3016
|
if (!teamModels || teamModels.length === 0 || teamModels.includes(ALL_PROXY_MODELS2)) return true;
|
|
3014
3017
|
return teamModels.includes(model.model_name) || !!model.access_groups?.some((group) => teamModels.includes(group));
|
|
@@ -3035,6 +3038,7 @@ var init_ModelsTable = __esm({
|
|
|
3035
3038
|
ModelsTable = ({ allModels, teams, loading }) => {
|
|
3036
3039
|
const theme = useTheme2();
|
|
3037
3040
|
const [selectedTeamId, setSelectedTeamId] = useState6("");
|
|
3041
|
+
const [filterText, setFilterText] = useState6("");
|
|
3038
3042
|
const [copiedSnackbar, setCopiedSnackbar] = useState6(false);
|
|
3039
3043
|
const selectedTeam = useMemo6(
|
|
3040
3044
|
() => teams.find((t) => t.team_id === selectedTeamId) ?? null,
|
|
@@ -3042,8 +3046,15 @@ var init_ModelsTable = __esm({
|
|
|
3042
3046
|
);
|
|
3043
3047
|
const filteredModels = useMemo6(() => {
|
|
3044
3048
|
if (!selectedTeam) return [];
|
|
3045
|
-
|
|
3046
|
-
|
|
3049
|
+
let result = allModels.filter((model) => isModelAllowedByTeam2(model, selectedTeam.models));
|
|
3050
|
+
if (filterText.trim()) {
|
|
3051
|
+
const q = filterText.toLowerCase();
|
|
3052
|
+
result = result.filter(
|
|
3053
|
+
(model) => model.model_name.toLowerCase().includes(q) || (model.access_groups || []).some((group) => group.toLowerCase().includes(q))
|
|
3054
|
+
);
|
|
3055
|
+
}
|
|
3056
|
+
return result;
|
|
3057
|
+
}, [allModels, selectedTeam, filterText]);
|
|
3047
3058
|
const handleCopyModelId = useCallback((modelId) => {
|
|
3048
3059
|
navigator.clipboard.writeText(modelId).then(() => setCopiedSnackbar(true));
|
|
3049
3060
|
}, []);
|
|
@@ -3076,7 +3087,19 @@ var init_ModelsTable = __esm({
|
|
|
3076
3087
|
onChange: (e) => setSelectedTeamId(e.target.value)
|
|
3077
3088
|
},
|
|
3078
3089
|
teams.map((t) => /* @__PURE__ */ React8.createElement(MenuItem4, { key: t.team_id, value: t.team_id }, t.team_alias ?? t.team_id))
|
|
3079
|
-
))
|
|
3090
|
+
)), /* @__PURE__ */ React8.createElement(
|
|
3091
|
+
TextField5,
|
|
3092
|
+
{
|
|
3093
|
+
label: "Filter Models",
|
|
3094
|
+
size: "small",
|
|
3095
|
+
value: filterText,
|
|
3096
|
+
onChange: (e) => setFilterText(e.target.value),
|
|
3097
|
+
sx: { minWidth: 240, mb: 2 },
|
|
3098
|
+
InputProps: {
|
|
3099
|
+
startAdornment: /* @__PURE__ */ React8.createElement(InputAdornment2, { position: "start" }, /* @__PURE__ */ React8.createElement(Search2, { fontSize: "small" }))
|
|
3100
|
+
}
|
|
3101
|
+
}
|
|
3102
|
+
)),
|
|
3080
3103
|
loading && /* @__PURE__ */ React8.createElement(EmptyState, { message: "Loading models\u2026" }),
|
|
3081
3104
|
!loading && !selectedTeamId && /* @__PURE__ */ React8.createElement(
|
|
3082
3105
|
EmptyState,
|
|
@@ -3148,7 +3171,7 @@ import TableContainer6 from "@mui/material/TableContainer";
|
|
|
3148
3171
|
import TableHead6 from "@mui/material/TableHead";
|
|
3149
3172
|
import TableRow6 from "@mui/material/TableRow";
|
|
3150
3173
|
import TablePagination from "@mui/material/TablePagination";
|
|
3151
|
-
import
|
|
3174
|
+
import TextField6 from "@mui/material/TextField";
|
|
3152
3175
|
import MenuItem5 from "@mui/material/MenuItem";
|
|
3153
3176
|
import Skeleton5 from "@mui/material/Skeleton";
|
|
3154
3177
|
import Collapse2 from "@mui/material/Collapse";
|
|
@@ -3294,7 +3317,7 @@ var init_AuditLog = __esm({
|
|
|
3294
3317
|
subtitle: loading ? "Loading\u2026" : `${total.toLocaleString()} event${total === 1 ? "" : "s"}`,
|
|
3295
3318
|
flush: true,
|
|
3296
3319
|
actions: /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(
|
|
3297
|
-
|
|
3320
|
+
TextField6,
|
|
3298
3321
|
{
|
|
3299
3322
|
size: "small",
|
|
3300
3323
|
label: "Action",
|
|
@@ -3312,7 +3335,7 @@ var init_AuditLog = __esm({
|
|
|
3312
3335
|
/* @__PURE__ */ React9.createElement(MenuItem5, { value: "deleted" }, "Deleted"),
|
|
3313
3336
|
/* @__PURE__ */ React9.createElement(MenuItem5, { value: "blocked" }, "Blocked")
|
|
3314
3337
|
), /* @__PURE__ */ React9.createElement(
|
|
3315
|
-
|
|
3338
|
+
TextField6,
|
|
3316
3339
|
{
|
|
3317
3340
|
size: "small",
|
|
3318
3341
|
label: "Table",
|
|
@@ -3331,7 +3354,7 @@ var init_AuditLog = __esm({
|
|
|
3331
3354
|
/* @__PURE__ */ React9.createElement(MenuItem5, { value: "LiteLLM_ObjectPermissionTable" }, "Team access (KB / MCP)"),
|
|
3332
3355
|
/* @__PURE__ */ React9.createElement(MenuItem5, { value: "LiteLLM_UserTable" }, "User")
|
|
3333
3356
|
), /* @__PURE__ */ React9.createElement(
|
|
3334
|
-
|
|
3357
|
+
TextField6,
|
|
3335
3358
|
{
|
|
3336
3359
|
size: "small",
|
|
3337
3360
|
label: "Changed by",
|