@oh-my-pi/omp-stats 18.0.11 → 18.1.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/CHANGELOG.md +11 -0
- package/dist/client/index.css +1 -1
- package/dist/client/index.js +101 -101
- package/dist/client/styles.css +265 -0
- package/dist/types/client/api.d.ts +7 -1
- package/dist/types/client/app/routes.d.ts +1 -1
- package/dist/types/client/data/useHashRoute.d.ts +2 -0
- package/dist/types/client/routes/TracesRoute.d.ts +11 -0
- package/dist/types/client/routes/index.d.ts +1 -0
- package/dist/types/client/traces/AggregatesPanel.d.ts +9 -0
- package/dist/types/client/traces/Minimap.d.ts +14 -0
- package/dist/types/client/traces/SpanDrawer.d.ts +14 -0
- package/dist/types/client/traces/SummaryStrip.d.ts +9 -0
- package/dist/types/client/traces/TimelineCanvas.d.ts +25 -0
- package/dist/types/client/traces/TraceView.d.ts +11 -0
- package/dist/types/client/traces/TranscriptList.d.ts +24 -0
- package/dist/types/client/traces/time-scale.d.ts +40 -0
- package/dist/types/client/traces/trace-colors.d.ts +31 -0
- package/dist/types/db.d.ts +24 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/parser.d.ts +8 -0
- package/dist/types/server.d.ts +3 -2
- package/dist/types/shared-types.d.ts +130 -0
- package/dist/types/trace.d.ts +33 -0
- package/dist/types/types.d.ts +35 -1
- package/package.json +8 -8
- package/src/client/App.tsx +11 -1
- package/src/client/api.ts +23 -0
- package/src/client/app/routes.ts +7 -0
- package/src/client/data/useHashRoute.ts +28 -10
- package/src/client/routes/ProvidersRoute.tsx +1 -0
- package/src/client/routes/TracesRoute.tsx +182 -0
- package/src/client/routes/index.ts +1 -0
- package/src/client/styles.css +316 -0
- package/src/client/traces/AggregatesPanel.tsx +88 -0
- package/src/client/traces/Minimap.tsx +177 -0
- package/src/client/traces/SpanDrawer.tsx +309 -0
- package/src/client/traces/SummaryStrip.tsx +37 -0
- package/src/client/traces/TimelineCanvas.tsx +768 -0
- package/src/client/traces/TraceView.tsx +344 -0
- package/src/client/traces/TranscriptList.tsx +166 -0
- package/src/client/traces/time-scale.ts +250 -0
- package/src/client/traces/trace-colors.ts +77 -0
- package/src/db.ts +77 -0
- package/src/index.ts +1 -6
- package/src/parser.ts +55 -2
- package/src/server.ts +69 -17
- package/src/shared-types.ts +138 -0
- package/src/trace.ts +1002 -0
- package/src/types.ts +45 -1
package/src/shared-types.ts
CHANGED
|
@@ -135,6 +135,21 @@ export interface CostTimeSeriesPoint {
|
|
|
135
135
|
requests: number;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
/**
|
|
139
|
+
* One local calendar day of aggregate request activity, for the `/usage`
|
|
140
|
+
* activity heatmap in the coding-agent TUI.
|
|
141
|
+
*/
|
|
142
|
+
export interface DailyActivityPoint {
|
|
143
|
+
/** Local calendar date, `YYYY-MM-DD`. */
|
|
144
|
+
day: string;
|
|
145
|
+
/** Summed API-equivalent cost for the day. */
|
|
146
|
+
cost: number;
|
|
147
|
+
/** Request count for the day. */
|
|
148
|
+
requests: number;
|
|
149
|
+
/** Total tokens (input + output + cache) for the day. */
|
|
150
|
+
totalTokens: number;
|
|
151
|
+
}
|
|
152
|
+
|
|
138
153
|
/**
|
|
139
154
|
* Overall dashboard stats.
|
|
140
155
|
*/
|
|
@@ -448,3 +463,126 @@ export interface ProviderDashboardStats {
|
|
|
448
463
|
usageSeries: UsageWindowSeries[];
|
|
449
464
|
windowInsights: ProviderWindowInsight[];
|
|
450
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* One row of the Traces session list: a root session with every child
|
|
468
|
+
* transcript (task subagents, advisors) folded in.
|
|
469
|
+
*/
|
|
470
|
+
export interface SessionSummary {
|
|
471
|
+
/** Absolute root session file path (trace key). */
|
|
472
|
+
file: string;
|
|
473
|
+
/** Decoded project path (e.g. `/work/pi`). */
|
|
474
|
+
folder: string;
|
|
475
|
+
title: string | null;
|
|
476
|
+
/** ms epoch of first activity. */
|
|
477
|
+
startedAt: number;
|
|
478
|
+
/** ms epoch of last activity, children included. */
|
|
479
|
+
endedAt: number;
|
|
480
|
+
/** Assistant messages, children folded in. */
|
|
481
|
+
requests: number;
|
|
482
|
+
toolCalls: number;
|
|
483
|
+
/** Child transcript count. */
|
|
484
|
+
subagents: number;
|
|
485
|
+
totalTokens: number;
|
|
486
|
+
costTotal: number;
|
|
487
|
+
models: string[];
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
export type TraceSpanKind = "turn" | "model" | "tool" | "subagent" | "background";
|
|
491
|
+
|
|
492
|
+
/** One rendered block on a trace track lane. */
|
|
493
|
+
export interface TraceSpan {
|
|
494
|
+
/** `${track.id}:${entryId}` (+`:${toolCallId}` for tool spans); stable across refetch. */
|
|
495
|
+
id: string;
|
|
496
|
+
kind: TraceSpanKind;
|
|
497
|
+
/** ms epoch. */
|
|
498
|
+
start: number;
|
|
499
|
+
/** ms epoch, >= start. */
|
|
500
|
+
end: number;
|
|
501
|
+
/** ≤80 chars: tool name / model id / user-text head / agent name. */
|
|
502
|
+
label: string;
|
|
503
|
+
/** ≤160 chars: args projection / result head / task text. */
|
|
504
|
+
detail?: string;
|
|
505
|
+
/** Journal entry id for /api/session/entry. */
|
|
506
|
+
entryId?: string;
|
|
507
|
+
toolCallId?: string;
|
|
508
|
+
model?: string;
|
|
509
|
+
/** usage.totalTokens (model spans). */
|
|
510
|
+
tokens?: number;
|
|
511
|
+
/** usage.cost.total (model spans). */
|
|
512
|
+
cost?: number;
|
|
513
|
+
/** Time to first token, ms offset from start. */
|
|
514
|
+
ttft?: number;
|
|
515
|
+
isError?: boolean;
|
|
516
|
+
/** End synthesized (no result / pending at session exit). */
|
|
517
|
+
unterminated?: boolean;
|
|
518
|
+
/** Set on `subagent` spans whose child transcript became a track. */
|
|
519
|
+
childTrackId?: string;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/** Point event drawn on a track header row. */
|
|
523
|
+
export interface TraceMarker {
|
|
524
|
+
/** ms epoch. */
|
|
525
|
+
time: number;
|
|
526
|
+
kind: "compaction" | "model_change" | "mode_change" | "reset" | "session_exit";
|
|
527
|
+
/** e.g. "compaction 142k→38k", model id, mode name, exit kind. */
|
|
528
|
+
label: string;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
/** One transcript (main session, subagent, advisor) in a trace. */
|
|
532
|
+
export interface TraceTrack {
|
|
533
|
+
/** "main" or slash-joined child key: "Scout1", "Scout1/Nested2", "__advisor". */
|
|
534
|
+
id: string;
|
|
535
|
+
parentId: string | null;
|
|
536
|
+
label: string;
|
|
537
|
+
/** session_init.agent when recorded. */
|
|
538
|
+
agent: string | null;
|
|
539
|
+
/** session_init.resolvedModel ?? first assistant model. */
|
|
540
|
+
model: string | null;
|
|
541
|
+
/** Absolute transcript path (for entry fetch). */
|
|
542
|
+
file: string;
|
|
543
|
+
/** Sorted by start. */
|
|
544
|
+
spans: TraceSpan[];
|
|
545
|
+
markers: TraceMarker[];
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/** Per-tool duration aggregate across all tracks of one trace. */
|
|
549
|
+
export interface TraceToolStat {
|
|
550
|
+
tool: string;
|
|
551
|
+
calls: number;
|
|
552
|
+
errors: number;
|
|
553
|
+
totalMs: number;
|
|
554
|
+
maxMs: number;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
/** Headline aggregates for one trace. */
|
|
558
|
+
export interface TraceSummary {
|
|
559
|
+
wallMs: number;
|
|
560
|
+
/** Summed model-span duration on the main track. */
|
|
561
|
+
modelMs: number;
|
|
562
|
+
/** Summed tool-span duration on the main track. */
|
|
563
|
+
toolMs: number;
|
|
564
|
+
/** Wall time not covered by any span on any track. */
|
|
565
|
+
idleMs: number;
|
|
566
|
+
turns: number;
|
|
567
|
+
requests: number;
|
|
568
|
+
toolCalls: number;
|
|
569
|
+
subagents: number;
|
|
570
|
+
totalTokens: number;
|
|
571
|
+
costTotal: number;
|
|
572
|
+
/** Sorted totalMs desc. */
|
|
573
|
+
toolStats: TraceToolStat[];
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
/** Complete span tree for one session, `/api/session/trace` payload. */
|
|
577
|
+
export interface SessionTrace {
|
|
578
|
+
file: string;
|
|
579
|
+
title: string | null;
|
|
580
|
+
cwd: string | null;
|
|
581
|
+
startedAt: number;
|
|
582
|
+
endedAt: number;
|
|
583
|
+
/** Root transcript mtime; doubles as the ETag. */
|
|
584
|
+
mtimeMs: number;
|
|
585
|
+
/** DFS order, main first. */
|
|
586
|
+
tracks: TraceTrack[];
|
|
587
|
+
summary: TraceSummary;
|
|
588
|
+
}
|