@oh-my-pi/omp-stats 15.0.0 → 15.0.2

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/src/types.ts CHANGED
@@ -1,4 +1,6 @@
1
- import type { AssistantMessage, StopReason, Usage } from "@oh-my-pi/pi-ai";
1
+ import type { AssistantMessage, ServiceTier, StopReason, Usage } from "@oh-my-pi/pi-ai";
2
+
3
+ export * from "./shared-types";
2
4
 
3
5
  /**
4
6
  * Extracted stats from an assistant message.
@@ -36,142 +38,10 @@ export interface MessageStats {
36
38
  * Full details of a request, including content.
37
39
  */
38
40
  export interface RequestDetails extends MessageStats {
39
- messages: any[]; // The full conversation history or just the last turn
40
- output: any; // The model's response
41
- }
42
-
43
- /**
44
- * Aggregated stats for a model or folder.
45
- */
46
- export interface AggregatedStats {
47
- /** Total number of requests */
48
- totalRequests: number;
49
- /** Number of successful requests */
50
- successfulRequests: number;
51
- /** Number of failed requests */
52
- failedRequests: number;
53
- /** Error rate (0-1) */
54
- errorRate: number;
55
- /** Total input tokens */
56
- totalInputTokens: number;
57
- /** Total output tokens */
58
- totalOutputTokens: number;
59
- /** Total cache read tokens */
60
- totalCacheReadTokens: number;
61
- /** Total cache write tokens */
62
- totalCacheWriteTokens: number;
63
- /** Cache hit rate (0-1) */
64
- cacheRate: number;
65
- /** Total cost */
66
- totalCost: number;
67
- /** Total premium requests */
68
- totalPremiumRequests: number;
69
- /** Average duration in ms */
70
- avgDuration: number | null;
71
- /** Average TTFT in ms */
72
- avgTtft: number | null;
73
- /** Average tokens per second (output tokens / duration) */
74
- avgTokensPerSecond: number | null;
75
- /** Time range */
76
- firstTimestamp: number;
77
- lastTimestamp: number;
78
- }
79
-
80
- /**
81
- * Stats grouped by model.
82
- */
83
- export interface ModelStats extends AggregatedStats {
84
- model: string;
85
- provider: string;
86
- }
87
-
88
- /**
89
- * Stats grouped by folder.
90
- */
91
- export interface FolderStats extends AggregatedStats {
92
- folder: string;
93
- }
94
-
95
- /**
96
- * Time series data point.
97
- */
98
- export interface TimeSeriesPoint {
99
- /** Bucket timestamp (start of hour/day) */
100
- timestamp: number;
101
- /** Request count */
102
- requests: number;
103
- /** Error count */
104
- errors: number;
105
- /** Total tokens */
106
- tokens: number;
107
- /** Total cost */
108
- cost: number;
109
- }
110
-
111
- /**
112
- * Model usage time series data point (daily buckets).
113
- */
114
- export interface ModelTimeSeriesPoint {
115
- /** Bucket timestamp (start of day) */
116
- timestamp: number;
117
- /** Model name */
118
- model: string;
119
- /** Provider name */
120
- provider: string;
121
- /** Request count */
122
- requests: number;
123
- }
124
-
125
- /**
126
- * Model performance time series data point (daily buckets).
127
- */
128
- export interface ModelPerformancePoint {
129
- /** Bucket timestamp (start of day) */
130
- timestamp: number;
131
- /** Model name */
132
- model: string;
133
- /** Provider name */
134
- provider: string;
135
- /** Request count */
136
- requests: number;
137
- /** Average TTFT in ms */
138
- avgTtft: number | null;
139
- /** Average tokens per second */
140
- avgTokensPerSecond: number | null;
141
- }
142
-
143
- /**
144
- * Cost time series data point (daily buckets).
145
- */
146
- export interface CostTimeSeriesPoint {
147
- /** Bucket timestamp (start of day) */
148
- timestamp: number;
149
- /** Model name */
150
- model: string;
151
- /** Provider name */
152
- provider: string;
153
- /** Total cost for this bucket */
154
- cost: number;
155
- /** Cost breakdown */
156
- costInput: number;
157
- costOutput: number;
158
- costCacheRead: number;
159
- costCacheWrite: number;
160
- /** Request count */
161
- requests: number;
162
- }
163
-
164
- /**
165
- * Overall dashboard stats.
166
- */
167
- export interface DashboardStats {
168
- overall: AggregatedStats;
169
- byModel: ModelStats[];
170
- byFolder: FolderStats[];
171
- timeSeries: TimeSeriesPoint[];
172
- modelSeries: ModelTimeSeriesPoint[];
173
- modelPerformanceSeries: ModelPerformancePoint[];
174
- costSeries: CostTimeSeriesPoint[];
41
+ /** The full conversation history or just the last turn. */
42
+ messages: unknown[];
43
+ /** The model's response. */
44
+ output: unknown;
175
45
  }
176
46
 
177
47
  /**
@@ -194,7 +64,15 @@ export interface SessionMessageEntry {
194
64
  message: AssistantMessage | { role: "user" | "toolResult" };
195
65
  }
196
66
 
197
- export type SessionEntry = SessionHeader | SessionMessageEntry | { type: string };
67
+ export interface SessionServiceTierChangeEntry {
68
+ type: "service_tier_change";
69
+ id: string;
70
+ parentId?: string | null;
71
+ timestamp: string;
72
+ serviceTier: ServiceTier | null;
73
+ }
74
+
75
+ export type SessionEntry = SessionHeader | SessionMessageEntry | SessionServiceTierChangeEntry | { type: string };
198
76
 
199
77
  /**
200
78
  * Behavioral stats extracted from a single user message.
@@ -245,66 +123,3 @@ export interface UserMessageLink {
245
123
  model: string;
246
124
  provider: string;
247
125
  }
248
-
249
- /**
250
- * Behavior time-series point (daily bucket, per responding model).
251
- */
252
- export interface BehaviorTimeSeriesPoint {
253
- /** Bucket timestamp (start of day) */
254
- timestamp: number;
255
- /** Responding model ("unknown" if user msg never got a reply) */
256
- model: string;
257
- /** Responding provider */
258
- provider: string;
259
- /** Number of user messages in bucket */
260
- messages: number;
261
- /** Total yelling sentences in bucket */
262
- yelling: number;
263
- /** Total profanity hits in bucket */
264
- profanity: number;
265
- /** Total anguish signal in bucket */
266
- anguish: number;
267
- /** Total corrective-negation hits in bucket */
268
- negation: number;
269
- /** Total user-repeating-themselves hits in bucket */
270
- repetition: number;
271
- /** Total second-person blame hits in bucket */
272
- blame: number;
273
- /** Total characters in bucket */
274
- chars: number;
275
- }
276
-
277
- export interface BehaviorOverallStats {
278
- totalMessages: number;
279
- totalYelling: number;
280
- totalProfanity: number;
281
- totalAnguish: number;
282
- totalNegation: number;
283
- totalRepetition: number;
284
- totalBlame: number;
285
- totalChars: number;
286
- firstTimestamp: number;
287
- lastTimestamp: number;
288
- }
289
-
290
- /**
291
- * Per-model behavioral aggregate over the active range.
292
- */
293
- export interface BehaviorModelStats {
294
- model: string;
295
- provider: string;
296
- totalMessages: number;
297
- totalYelling: number;
298
- totalProfanity: number;
299
- totalAnguish: number;
300
- totalNegation: number;
301
- totalRepetition: number;
302
- totalBlame: number;
303
- totalChars: number;
304
- lastTimestamp: number;
305
- }
306
- export interface BehaviorDashboardStats {
307
- overall: BehaviorOverallStats;
308
- byModel: BehaviorModelStats[];
309
- behaviorSeries: BehaviorTimeSeriesPoint[];
310
- }