@axlsdk/studio 0.23.3 → 0.24.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.
@@ -10,11 +10,28 @@ import { AxlRuntime, HistoricalAxlEvent, HistoricalExecutionInfo, EvalHistoryEnt
10
10
  * Each reducer is a pure (state, source) => state function — no I/O, no mutation.
11
11
  */
12
12
 
13
+ /**
14
+ * How complete a trend point's spend figure is. Mirrors `@axlsdk/axl`'s
15
+ * `AccountingCompleteness` — restated here rather than imported so the
16
+ * aggregate reducers stay free of an optional peer dependency.
17
+ */
18
+ type EvalTrendCompleteness = 'complete' | 'incomplete' | 'unverified';
13
19
  type EvalTrendRun = {
14
20
  timestamp: number;
15
21
  id: string;
16
22
  scores: Record<string, number>;
23
+ /** Known spend for this run — `accounting.knownCost`, or the legacy
24
+ * `totalCost` when the artifact predates accounting. Read it WITH
25
+ * `completeness`; alone it claims a precision the run may not have. */
17
26
  cost: number;
27
+ /**
28
+ * Whether that figure is measured (`complete`), a lower bound
29
+ * (`incomplete`), or repeated from an artifact that carried no accounting
30
+ * (`unverified`). Three enum values per run, so the payload stays bounded.
31
+ */
32
+ completeness: EvalTrendCompleteness;
33
+ /** `true` when this run's budget closed — it is short by design, not broken. */
34
+ budgetStopped?: boolean;
18
35
  /** Primary model for this run (first entry of `metadata.models`). Undefined
19
36
  * when the run has no recorded models (e.g., legacy data or test harnesses). */
20
37
  model?: string;
@@ -40,12 +57,23 @@ type EvalTrendEntry = {
40
57
  scoreMean: Record<string, number>;
41
58
  scoreStd: Record<string, number>;
42
59
  costTotal: number;
60
+ /**
61
+ * The WORST completeness of every run folded into `costTotal` — including
62
+ * runs already evicted by the `MAX_EVAL_RUNS` cap, since `costTotal` counts
63
+ * them too. A window holding one legacy run is `'unverified'` as a whole.
64
+ */
65
+ costCompleteness: EvalTrendCompleteness;
66
+ /** Runs in this window whose budget closed. */
67
+ budgetStoppedRuns: number;
43
68
  runCount: number;
44
69
  };
45
70
  type EvalTrendData = {
46
71
  byEval: Record<string, EvalTrendEntry>;
47
72
  totalRuns: number;
48
73
  totalCost: number;
74
+ /** Worst completeness across every eval in the window. `totalCost` is never
75
+ * presented as certified without it. */
76
+ totalCostCompleteness: EvalTrendCompleteness;
49
77
  };
50
78
  type WorkflowStatsData = {
51
79
  byWorkflow: Record<string, {
@@ -10,11 +10,28 @@ import { AxlRuntime, HistoricalAxlEvent, HistoricalExecutionInfo, EvalHistoryEnt
10
10
  * Each reducer is a pure (state, source) => state function — no I/O, no mutation.
11
11
  */
12
12
 
13
+ /**
14
+ * How complete a trend point's spend figure is. Mirrors `@axlsdk/axl`'s
15
+ * `AccountingCompleteness` — restated here rather than imported so the
16
+ * aggregate reducers stay free of an optional peer dependency.
17
+ */
18
+ type EvalTrendCompleteness = 'complete' | 'incomplete' | 'unverified';
13
19
  type EvalTrendRun = {
14
20
  timestamp: number;
15
21
  id: string;
16
22
  scores: Record<string, number>;
23
+ /** Known spend for this run — `accounting.knownCost`, or the legacy
24
+ * `totalCost` when the artifact predates accounting. Read it WITH
25
+ * `completeness`; alone it claims a precision the run may not have. */
17
26
  cost: number;
27
+ /**
28
+ * Whether that figure is measured (`complete`), a lower bound
29
+ * (`incomplete`), or repeated from an artifact that carried no accounting
30
+ * (`unverified`). Three enum values per run, so the payload stays bounded.
31
+ */
32
+ completeness: EvalTrendCompleteness;
33
+ /** `true` when this run's budget closed — it is short by design, not broken. */
34
+ budgetStopped?: boolean;
18
35
  /** Primary model for this run (first entry of `metadata.models`). Undefined
19
36
  * when the run has no recorded models (e.g., legacy data or test harnesses). */
20
37
  model?: string;
@@ -40,12 +57,23 @@ type EvalTrendEntry = {
40
57
  scoreMean: Record<string, number>;
41
58
  scoreStd: Record<string, number>;
42
59
  costTotal: number;
60
+ /**
61
+ * The WORST completeness of every run folded into `costTotal` — including
62
+ * runs already evicted by the `MAX_EVAL_RUNS` cap, since `costTotal` counts
63
+ * them too. A window holding one legacy run is `'unverified'` as a whole.
64
+ */
65
+ costCompleteness: EvalTrendCompleteness;
66
+ /** Runs in this window whose budget closed. */
67
+ budgetStoppedRuns: number;
43
68
  runCount: number;
44
69
  };
45
70
  type EvalTrendData = {
46
71
  byEval: Record<string, EvalTrendEntry>;
47
72
  totalRuns: number;
48
73
  totalCost: number;
74
+ /** Worst completeness across every eval in the window. `totalCost` is never
75
+ * presented as certified without it. */
76
+ totalCostCompleteness: EvalTrendCompleteness;
49
77
  };
50
78
  type WorkflowStatsData = {
51
79
  byWorkflow: Record<string, {
@@ -4,7 +4,7 @@ import {
4
4
  ExecutionAggregator,
5
5
  TraceAggregator,
6
6
  createServer
7
- } from "../chunk-XK2DRXKB.js";
7
+ } from "../chunk-PFPLZQ5X.js";
8
8
  export {
9
9
  ConnectionManager,
10
10
  EvalAggregator,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axlsdk/studio",
3
- "version": "0.23.3",
3
+ "version": "0.24.0",
4
4
  "description": "Local development UI for debugging, testing, and iterating on Axl agents and workflows",
5
5
  "type": "module",
6
6
  "main": "./dist/server/index.cjs",
@@ -40,7 +40,7 @@
40
40
  "hono": "^4.7.0",
41
41
  "tsx": "^4.19.0",
42
42
  "ws": "^8.0.0",
43
- "@axlsdk/axl": "0.23.3"
43
+ "@axlsdk/axl": "0.24.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@tailwindcss/vite": "^4.1.0",
@@ -65,10 +65,10 @@
65
65
  "vite": "^6.0.0",
66
66
  "vitest": "^3.0.0",
67
67
  "zod": "^4.0.0",
68
- "@axlsdk/testing": "0.23.3"
68
+ "@axlsdk/testing": "0.24.0"
69
69
  },
70
70
  "peerDependencies": {
71
- "@axlsdk/eval": "0.23.3"
71
+ "@axlsdk/eval": "0.24.0"
72
72
  },
73
73
  "peerDependenciesMeta": {
74
74
  "@axlsdk/eval": {