@acarmisc/backstage-plugin-litellm 0.15.5 → 0.16.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/dist/api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { FetchApi } from '@backstage/core-plugin-api';
2
- import { UserInfo, VirtualKey, ModelInfo, UsageMetrics, TeamInfo, GenerateKeyRequest, GenerateKeyResponse, UpdateKeyRequest, AuditLogsParams, PaginatedAuditLogs, LiteLlmConfig } from './types';
2
+ import { UserInfo, VirtualKey, ModelInfo, UsageMetrics, TeamInfo, GenerateKeyRequest, GenerateKeyResponse, UpdateKeyRequest, AuditLogsParams, PaginatedAuditLogs, LiteLlmConfig, VectorStoreInfo, McpServerInfo, CreateTeamRequest, CreateTeamResponse, UpdateTeamRequest } from './types';
3
3
  export interface LiteLlmApiInterface {
4
4
  getUserInfo(): Promise<UserInfo>;
5
5
  listKeys(): Promise<VirtualKey[]>;
@@ -16,10 +16,22 @@ export interface LiteLlmApiInterface {
16
16
  }>;
17
17
  listModels(): Promise<ModelInfo[]>;
18
18
  getTeams(): Promise<TeamInfo[]>;
19
+ getManagedTeams(): Promise<TeamInfo[]>;
20
+ addTeamMember(teamId: string, body: {
21
+ userEntityRef: string;
22
+ maxBudgetInTeam?: number;
23
+ }): Promise<TeamInfo>;
24
+ removeTeamMember(teamId: string, userEntityRef: string): Promise<TeamInfo>;
25
+ getVectorStores(): Promise<VectorStoreInfo[]>;
26
+ setTeamKnowledgeBases(teamId: string, vectorStores: string[]): Promise<TeamInfo>;
27
+ getMcpServers(): Promise<McpServerInfo[]>;
28
+ setTeamMcpServers(teamId: string, mcpServers: string[]): Promise<TeamInfo>;
19
29
  getUsage(startDate: string, endDate: string): Promise<UsageMetrics>;
20
30
  getTeamUsage(teamId: string, startDate: string, endDate: string): Promise<UsageMetrics>;
21
31
  getAuditLogs(params: AuditLogsParams): Promise<PaginatedAuditLogs>;
22
32
  getConfig(): Promise<LiteLlmConfig>;
33
+ createTeam(request: CreateTeamRequest): Promise<CreateTeamResponse>;
34
+ updateTeam(teamId: string, request: UpdateTeamRequest): Promise<TeamInfo>;
23
35
  }
24
36
  export declare const liteLlmApiRef: import("@backstage/core-plugin-api").ApiRef<LiteLlmApiInterface>;
25
37
  export type ExpiryStatus = 'expired' | 'soon' | 'ok';
@@ -32,6 +44,8 @@ export declare class LiteLlmApi implements LiteLlmApiInterface {
32
44
  private get;
33
45
  private post;
34
46
  private del;
47
+ private patch;
48
+ private put;
35
49
  getUserInfo(): Promise<UserInfo>;
36
50
  listKeys(): Promise<VirtualKey[]>;
37
51
  generateKey(request: GenerateKeyRequest): Promise<GenerateKeyResponse>;
@@ -48,7 +62,19 @@ export declare class LiteLlmApi implements LiteLlmApiInterface {
48
62
  getAuditLogs(params: AuditLogsParams): Promise<PaginatedAuditLogs>;
49
63
  listModels(): Promise<ModelInfo[]>;
50
64
  getTeams(): Promise<TeamInfo[]>;
65
+ getManagedTeams(): Promise<TeamInfo[]>;
66
+ addTeamMember(teamId: string, body: {
67
+ userEntityRef: string;
68
+ maxBudgetInTeam?: number;
69
+ }): Promise<TeamInfo>;
70
+ removeTeamMember(teamId: string, userEntityRef: string): Promise<TeamInfo>;
71
+ getVectorStores(): Promise<VectorStoreInfo[]>;
72
+ setTeamKnowledgeBases(teamId: string, vectorStores: string[]): Promise<TeamInfo>;
73
+ getMcpServers(): Promise<McpServerInfo[]>;
74
+ setTeamMcpServers(teamId: string, mcpServers: string[]): Promise<TeamInfo>;
51
75
  getUsage(startDate: string, endDate: string): Promise<UsageMetrics>;
52
76
  getTeamUsage(teamId: string, startDate: string, endDate: string): Promise<UsageMetrics>;
53
77
  getConfig(): Promise<LiteLlmConfig>;
78
+ createTeam(request: CreateTeamRequest): Promise<CreateTeamResponse>;
79
+ updateTeam(teamId: string, request: UpdateTeamRequest): Promise<TeamInfo>;
54
80
  }
@@ -0,0 +1,31 @@
1
+ import { FC } from 'react';
2
+ import { TeamInfo, ModelInfo, LiteLlmConfig, CreateTeamRequest, UpdateTeamRequest, VectorStoreInfo, McpServerInfo } from '../types';
3
+ interface ManageTeamDialogProps {
4
+ open: boolean;
5
+ onClose: () => void;
6
+ mode: 'create' | 'edit';
7
+ team?: TeamInfo;
8
+ allModels: ModelInfo[];
9
+ config?: LiteLlmConfig;
10
+ onSubmit: (payload: CreateTeamRequest | UpdateTeamRequest) => Promise<void>;
11
+ /** When true, the Members section (edit mode only) exposes add/remove controls. */
12
+ canManageMembers?: boolean;
13
+ /** Called to add a member; the parent is expected to refresh `team` on success. */
14
+ onAddMember?: (userEntityRef: string, maxBudgetInTeam?: number) => Promise<void>;
15
+ /** Called to remove a member; the parent is expected to refresh `team` on success. */
16
+ onRemoveMember?: (userEntityRef: string) => Promise<void>;
17
+ /** When true, the Knowledge Bases section (edit mode only) is shown. */
18
+ canManageKnowledgeBases?: boolean;
19
+ /** Vector stores the caller may attach (already allowlist-filtered server-side). */
20
+ vectorStores?: VectorStoreInfo[];
21
+ /** Called to replace the team's attached knowledge bases; parent refreshes `team`. */
22
+ onSaveKnowledgeBases?: (vectorStoreIds: string[]) => Promise<void>;
23
+ /** When true, the MCP Servers section (edit mode only) is shown. */
24
+ canManageMcpServers?: boolean;
25
+ /** MCP servers the caller may attach (already allowlist-filtered server-side). */
26
+ mcpServers?: McpServerInfo[];
27
+ /** Called to replace the team's attached MCP servers; parent refreshes `team`. */
28
+ onSaveMcpServers?: (mcpServerIds: string[]) => Promise<void>;
29
+ }
30
+ export declare const ManageTeamDialog: FC<ManageTeamDialogProps>;
31
+ export {};
@@ -5,6 +5,8 @@ interface TeamUsageProps {
5
5
  loading: boolean;
6
6
  getTeamUsage: (teamId: string) => UsageMetrics | null;
7
7
  getTeamUsageLoading: (teamId: string) => boolean;
8
+ canManage?: boolean;
9
+ onEditTeam?: (team: TeamInfo) => void;
8
10
  }
9
11
  export declare const TeamUsage: React.FC<TeamUsageProps>;
10
12
  export {};