@acarmisc/backstage-plugin-litellm-common 0.2.0 → 0.4.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.
Files changed (2) hide show
  1. package/dist/types.d.ts +85 -0
  2. package/package.json +1 -1
package/dist/types.d.ts CHANGED
@@ -250,3 +250,88 @@ export interface CreateTeamResponse {
250
250
  team_id: string;
251
251
  team_alias?: string;
252
252
  }
253
+ export interface InsightSummary {
254
+ costPer1kTokens: number | null;
255
+ costPerRequest: number | null;
256
+ outputInputRatio: number | null;
257
+ retryWasteUsd: number;
258
+ retryWasteShare: number;
259
+ successRate: number | null;
260
+ premiumShare: number;
261
+ premiumSpend: number;
262
+ topModelConcentration: number;
263
+ projectedMonthSpend: number | null;
264
+ burnMultiple: number | null;
265
+ }
266
+ export interface PracticeScore {
267
+ total: number;
268
+ checks: Array<{
269
+ id: string;
270
+ label: string;
271
+ points: number;
272
+ maxPoints: number;
273
+ detail: string;
274
+ }>;
275
+ }
276
+ export interface ModelOpportunity {
277
+ model: string;
278
+ spend: number;
279
+ requests: number;
280
+ failureRate: number | null;
281
+ avgCostPerRequest: number;
282
+ flag: 'downgrade-candidate' | 'failure-outlier' | 'ok';
283
+ hint: string;
284
+ }
285
+ export interface SpendLogEntry {
286
+ requestId: string;
287
+ model: string;
288
+ spend: number;
289
+ promptTokens: number;
290
+ completionTokens: number;
291
+ totalTokens: number;
292
+ status: string;
293
+ cacheHit: boolean;
294
+ userId?: string;
295
+ teamId?: string;
296
+ keyHash?: string;
297
+ timestamp: string;
298
+ }
299
+ export interface SpendLogsParams {
300
+ startDate: string;
301
+ endDate: string;
302
+ userId?: string;
303
+ teamId?: string;
304
+ page?: number;
305
+ pageSize?: number;
306
+ }
307
+ export interface PaginatedSpendLogs {
308
+ data: SpendLogEntry[];
309
+ total: number;
310
+ page: number;
311
+ pageSize: number;
312
+ truncated: boolean;
313
+ }
314
+ /** One model's Langfuse usage slice (cost/tokens/latency for the period). */
315
+ export interface QualityByModel {
316
+ model: string;
317
+ cost: number;
318
+ tokens: number;
319
+ avgLatencyMs: number | null;
320
+ requests: number;
321
+ }
322
+ /** One Langfuse numeric score averaged over the period. */
323
+ export interface QualityScore {
324
+ name: string;
325
+ avg: number;
326
+ count: number;
327
+ }
328
+ /** Quality summary served by GET /insights/quality when Langfuse is connected. */
329
+ export interface QualitySummary {
330
+ configured: true;
331
+ byModel: QualityByModel[];
332
+ scores: QualityScore[];
333
+ }
334
+ /** GET /insights/quality response: data, or `{configured:false}` when Langfuse is off. */
335
+ export type QualityResponse = {
336
+ configured: false;
337
+ } | QualitySummary;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acarmisc/backstage-plugin-litellm-common",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Shared types, permissions, and schemas for the LiteLLM Backstage plugin",
5
5
  "backstage": {
6
6
  "role": "common-library",