niceeval 0.19.0 → 0.19.1-canary.102

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 (133) hide show
  1. package/INDEX.md +1 -1
  2. package/dist/assertions/record/codec.cjs +19 -13
  3. package/dist/assertions/record/codec.cjs.map +1 -1
  4. package/dist/assertions/record/codec.d.cts +2 -0
  5. package/dist/assertions/record/codec.d.mts +2 -0
  6. package/dist/assertions/record/codec.d.ts +2 -0
  7. package/dist/assertions/record/codec.js +16 -14
  8. package/dist/inspection/assertion-projection.cjs +4 -1
  9. package/dist/inspection/assertion-projection.cjs.map +1 -1
  10. package/dist/inspection/cli/contribution.cjs +18 -14
  11. package/dist/inspection/cli/contribution.cjs.map +1 -1
  12. package/dist/inspection/cli/contribution.d.cts +7 -0
  13. package/dist/inspection/cli/contribution.d.mts +7 -0
  14. package/dist/inspection/cli/contribution.d.ts +7 -0
  15. package/dist/inspection/overview.cjs +28 -14
  16. package/dist/inspection/overview.cjs.map +1 -1
  17. package/dist/inspection/overview.d.cts +151 -18
  18. package/dist/inspection/overview.d.mts +151 -18
  19. package/dist/inspection/overview.d.ts +151 -18
  20. package/dist/inspection/overview.js +4 -2
  21. package/dist/inspection/project-result.d.cts +148 -148
  22. package/dist/inspection/project-result.d.mts +148 -148
  23. package/dist/inspection/project-result.d.ts +148 -148
  24. package/dist/inspection/protocol-values.cjs +1 -1
  25. package/dist/inspection/protocol-values.cjs.map +1 -1
  26. package/dist/inspection/protocol-values.d.cts +1 -1
  27. package/dist/inspection/protocol-values.d.mts +1 -1
  28. package/dist/inspection/protocol-values.d.ts +1 -1
  29. package/dist/inspection/protocol.d.cts +611 -479
  30. package/dist/inspection/protocol.d.mts +611 -479
  31. package/dist/inspection/protocol.d.ts +611 -479
  32. package/dist/inspection/public.cjs +3 -1
  33. package/dist/inspection/public.cjs.map +1 -1
  34. package/dist/inspection/public.d.cts +1 -0
  35. package/dist/inspection/public.d.mts +1 -0
  36. package/dist/inspection/public.d.ts +1 -0
  37. package/dist/inspection/public.js +18 -16
  38. package/dist/inspection/public.mjs +54 -52
  39. package/dist/inspection/results.cjs +11 -15
  40. package/dist/inspection/results.cjs.map +1 -1
  41. package/dist/inspection/results.d.cts +769 -324
  42. package/dist/inspection/results.d.mts +769 -324
  43. package/dist/inspection/results.d.ts +769 -324
  44. package/dist/inspection/results.js +4 -0
  45. package/dist/inspection/select.cjs +12 -72
  46. package/dist/inspection/select.cjs.map +1 -1
  47. package/dist/inspection/verdict.cjs +61 -0
  48. package/dist/inspection/verdict.cjs.map +1 -0
  49. package/dist/inspection/verdict.d.cts +3 -0
  50. package/dist/inspection/verdict.d.mts +3 -0
  51. package/dist/inspection/verdict.d.ts +3 -0
  52. package/dist/inspection/verdict.js +6 -0
  53. package/dist/inspection/verdict.js.map +1 -0
  54. package/dist/runner/discover.cjs +5 -4
  55. package/dist/runner/discover.cjs.map +1 -1
  56. package/dist/sandbox/index.cjs +4 -2
  57. package/dist/sandbox/index.cjs.map +1 -1
  58. package/dist/sandbox/index.d.cts +2 -0
  59. package/dist/sandbox/index.d.mts +2 -0
  60. package/dist/sandbox/index.d.ts +2 -0
  61. package/dist/sandbox/index.js +34 -32
  62. package/dist/sandbox/index.mjs +34 -32
  63. package/dist/sandbox/opensandbox/managed-process.cjs +224 -0
  64. package/dist/sandbox/opensandbox/managed-process.cjs.map +1 -0
  65. package/dist/sandbox/opensandbox/managed-process.d.cts +9 -0
  66. package/dist/sandbox/opensandbox/managed-process.d.mts +9 -0
  67. package/dist/sandbox/opensandbox/managed-process.d.ts +9 -0
  68. package/dist/sandbox/opensandbox/managed-process.js +6 -0
  69. package/dist/sandbox/opensandbox/managed-process.js.map +1 -0
  70. package/dist/sandbox/opensandbox/materialize.cjs +25 -0
  71. package/dist/sandbox/opensandbox/materialize.cjs.map +1 -0
  72. package/dist/sandbox/opensandbox/materialize.d.cts +4 -0
  73. package/dist/sandbox/opensandbox/materialize.d.mts +4 -0
  74. package/dist/sandbox/opensandbox/materialize.d.ts +4 -0
  75. package/dist/sandbox/opensandbox/materialize.js +6 -0
  76. package/dist/sandbox/opensandbox/materialize.js.map +1 -0
  77. package/dist/sandbox/opensandbox/process-bridge.cjs +89 -0
  78. package/dist/sandbox/opensandbox/process-bridge.cjs.map +1 -0
  79. package/dist/sandbox/opensandbox/process-bridge.d.cts +2 -0
  80. package/dist/sandbox/opensandbox/process-bridge.d.mts +2 -0
  81. package/dist/sandbox/opensandbox/process-bridge.d.ts +2 -0
  82. package/dist/sandbox/opensandbox/process-bridge.js +6 -0
  83. package/dist/sandbox/opensandbox/process-bridge.js.map +1 -0
  84. package/dist/sandbox/opensandbox/sandbox.cjs +253 -0
  85. package/dist/sandbox/opensandbox/sandbox.cjs.map +1 -0
  86. package/dist/sandbox/opensandbox/sandbox.d.cts +51 -0
  87. package/dist/sandbox/opensandbox/sandbox.d.mts +51 -0
  88. package/dist/sandbox/opensandbox/sandbox.d.ts +51 -0
  89. package/dist/sandbox/opensandbox/sandbox.js +6 -0
  90. package/dist/sandbox/opensandbox/sandbox.js.map +1 -0
  91. package/dist/sandbox/opensandbox.cjs +88 -0
  92. package/dist/sandbox/opensandbox.cjs.map +1 -0
  93. package/dist/sandbox/opensandbox.d.cts +17 -0
  94. package/dist/sandbox/opensandbox.d.mts +17 -0
  95. package/dist/sandbox/opensandbox.d.ts +17 -0
  96. package/dist/sandbox/opensandbox.js +6 -0
  97. package/dist/sandbox/opensandbox.js.map +1 -0
  98. package/dist/sandbox/runtime.cjs +1 -0
  99. package/dist/sandbox/runtime.cjs.map +1 -1
  100. package/dist/sandbox/runtime.d.cts +2 -0
  101. package/dist/sandbox/runtime.d.mts +2 -0
  102. package/dist/sandbox/runtime.d.ts +2 -0
  103. package/dist/sandbox/runtime.js +2 -0
  104. package/dist/sandbox/types.cjs.map +1 -1
  105. package/dist/sandbox/types.d.cts +1 -1
  106. package/dist/sandbox/types.d.mts +1 -1
  107. package/dist/sandbox/types.d.ts +1 -1
  108. package/dist/show/model.cjs +6 -5
  109. package/dist/show/model.cjs.map +1 -1
  110. package/dist/show/model.d.cts +1 -1
  111. package/dist/show/model.d.mts +1 -1
  112. package/dist/show/model.d.ts +1 -1
  113. package/dist/show/render.cjs +2 -2
  114. package/dist/show/render.cjs.map +1 -1
  115. package/dist/view/app-dist/.vite/manifest.json +2 -2
  116. package/dist/view/app-dist/assets/{index-CxrOUvHC.js → index-f9ZKc4km.js} +16 -16
  117. package/dist/view/app-dist/assets/{quality-cost-scatter-B6Aiss7x.js → quality-cost-scatter-C6lsrigr.js} +1 -1
  118. package/dist/view/app-dist/index.html +1 -1
  119. package/dist/view/function-runtime.mjs +126 -118
  120. package/dist/view/http-protocol.d.cts +1 -1
  121. package/dist/view/http-protocol.d.mts +1 -1
  122. package/dist/view/http-protocol.d.ts +1 -1
  123. package/dist/view/inspection-host.d.cts +625 -493
  124. package/dist/view/inspection-host.d.mts +625 -493
  125. package/dist/view/inspection-host.d.ts +625 -493
  126. package/docs-site/zh/explanation/evals.mdx +4 -0
  127. package/docs-site/zh/reference/cli.mdx +45 -4
  128. package/docs-site/zh/tutorials/compare-runs.mdx +1 -1
  129. package/docs-site/zh/tutorials/niceeval-taste.mdx +34 -1
  130. package/docs-site/zh/tutorials/sandbox-providers.mdx +35 -4
  131. package/docs-site/zh/tutorials/upgrade-0-19.mdx +1 -1
  132. package/docs-site/zh/tutorials/viewing-results.mdx +36 -3
  133. package/package.json +6 -1
@@ -1,6 +1,4 @@
1
- import { PlannedAttemptPublicationSchema } from "./planned-attempt.cjs";
2
- import type { VerdictState } from "../eval/record/verdict.cjs";
3
- import { Schema } from "effect";
1
+ import { type PlannedAttemptMember } from "./results.cjs";
4
2
  import type { MemberDocument, RecordSlotIdentity } from "../record/model/core.cjs";
5
3
  import type { RunPluginIdentity, AdapterIdentity } from "../record/model/run-context.cjs";
6
4
  import { type InspectionJson } from "./codec.cjs";
@@ -57,23 +55,9 @@ export interface InspectionOverviewAggregate {
57
55
  readonly coverage: readonly InspectionJson[];
58
56
  readonly issues: readonly InspectionJson[];
59
57
  }
60
- export interface InspectionOverviewMember {
58
+ export interface InspectionOverviewMember extends PlannedAttemptMember {
61
59
  readonly runId: string;
62
- readonly plannedAttemptId: string;
63
- readonly evalId: string;
64
- readonly attemptOrdinal: number;
65
60
  readonly labels: InspectionLabels;
66
- readonly publication: Exclude<Schema.Schema.Type<typeof PlannedAttemptPublicationSchema>, {
67
- readonly state: "published";
68
- }> | (Extract<Schema.Schema.Type<typeof PlannedAttemptPublicationSchema>, {
69
- readonly state: "published";
70
- }> & {
71
- readonly verdict: VerdictState | null;
72
- readonly score: InspectionMetricValue;
73
- readonly costUSD: InspectionCostMetricValue;
74
- readonly durationMs: InspectionMetricValue;
75
- readonly tokens: InspectionMetricValue;
76
- });
77
61
  }
78
62
  export interface InspectionOverviewCell extends InspectionOverviewAggregate {
79
63
  readonly experimentId: string;
@@ -134,3 +118,152 @@ export interface InspectionCurrentSlotInput {
134
118
  }
135
119
  /** Aggregate exactly the Host-assessed current positions; gaps add no value. */
136
120
  export declare function aggregateInspectionCurrentSlots(inputs: readonly InspectionCurrentSlotInput[]): InspectionOverview;
121
+ /** Shared metrics for one planned position, including missing and unresolved publications. */
122
+ export declare function projectPlannedAttemptMetrics(runId: string, slot: RecordSlotIdentity, member: MemberDocument | undefined, resolved: ResolvedInspectionAttempt | undefined): Readonly<{
123
+ readonly verdict: "passed" | "failed" | "errored" | "skipped" | null;
124
+ readonly score: {
125
+ readonly value: number | null;
126
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
127
+ readonly issues: readonly ({
128
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
129
+ readonly locator: string;
130
+ } | {
131
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
132
+ readonly runId: string;
133
+ readonly plannedAttemptId: string;
134
+ readonly evalId: string;
135
+ readonly attemptOrdinal: number;
136
+ } | {
137
+ readonly code: "score-contribution-unavailable";
138
+ readonly locator: string;
139
+ readonly entryId: string;
140
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
141
+ } | {
142
+ readonly code: "score-partial";
143
+ readonly locator: string | null;
144
+ })[];
145
+ readonly basis: "eval" | "planned-attempt";
146
+ readonly total: number;
147
+ readonly refs: readonly {
148
+ readonly identity: {
149
+ readonly kind: "attempt";
150
+ readonly locator: string;
151
+ };
152
+ }[];
153
+ readonly samples: number;
154
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
155
+ readonly bounds?: {
156
+ readonly min: number;
157
+ readonly max: number;
158
+ } | undefined;
159
+ };
160
+ readonly costUSD: {
161
+ readonly value: number | null;
162
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
163
+ readonly source: "reported" | "estimated" | "mixed" | null;
164
+ readonly issues: readonly ({
165
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
166
+ readonly locator: string;
167
+ } | {
168
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
169
+ readonly runId: string;
170
+ readonly plannedAttemptId: string;
171
+ readonly evalId: string;
172
+ readonly attemptOrdinal: number;
173
+ } | {
174
+ readonly code: "score-contribution-unavailable";
175
+ readonly locator: string;
176
+ readonly entryId: string;
177
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
178
+ } | {
179
+ readonly code: "score-partial";
180
+ readonly locator: string | null;
181
+ })[];
182
+ readonly basis: "eval" | "planned-attempt";
183
+ readonly total: number;
184
+ readonly refs: readonly {
185
+ readonly identity: {
186
+ readonly kind: "attempt";
187
+ readonly locator: string;
188
+ };
189
+ }[];
190
+ readonly samples: number;
191
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
192
+ readonly bounds?: {
193
+ readonly min: number;
194
+ readonly max: number;
195
+ } | undefined;
196
+ };
197
+ readonly durationMs: {
198
+ readonly value: number | null;
199
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
200
+ readonly issues: readonly ({
201
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
202
+ readonly locator: string;
203
+ } | {
204
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
205
+ readonly runId: string;
206
+ readonly plannedAttemptId: string;
207
+ readonly evalId: string;
208
+ readonly attemptOrdinal: number;
209
+ } | {
210
+ readonly code: "score-contribution-unavailable";
211
+ readonly locator: string;
212
+ readonly entryId: string;
213
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
214
+ } | {
215
+ readonly code: "score-partial";
216
+ readonly locator: string | null;
217
+ })[];
218
+ readonly basis: "eval" | "planned-attempt";
219
+ readonly total: number;
220
+ readonly refs: readonly {
221
+ readonly identity: {
222
+ readonly kind: "attempt";
223
+ readonly locator: string;
224
+ };
225
+ }[];
226
+ readonly samples: number;
227
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
228
+ readonly bounds?: {
229
+ readonly min: number;
230
+ readonly max: number;
231
+ } | undefined;
232
+ };
233
+ readonly tokens: {
234
+ readonly value: number | null;
235
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
236
+ readonly issues: readonly ({
237
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
238
+ readonly locator: string;
239
+ } | {
240
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
241
+ readonly runId: string;
242
+ readonly plannedAttemptId: string;
243
+ readonly evalId: string;
244
+ readonly attemptOrdinal: number;
245
+ } | {
246
+ readonly code: "score-contribution-unavailable";
247
+ readonly locator: string;
248
+ readonly entryId: string;
249
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
250
+ } | {
251
+ readonly code: "score-partial";
252
+ readonly locator: string | null;
253
+ })[];
254
+ readonly basis: "eval" | "planned-attempt";
255
+ readonly total: number;
256
+ readonly refs: readonly {
257
+ readonly identity: {
258
+ readonly kind: "attempt";
259
+ readonly locator: string;
260
+ };
261
+ }[];
262
+ readonly samples: number;
263
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
264
+ readonly bounds?: {
265
+ readonly min: number;
266
+ readonly max: number;
267
+ } | undefined;
268
+ };
269
+ }>;
@@ -1,6 +1,4 @@
1
- import { PlannedAttemptPublicationSchema } from "./planned-attempt.mjs";
2
- import type { VerdictState } from "../eval/record/verdict.mjs";
3
- import { Schema } from "effect";
1
+ import { type PlannedAttemptMember } from "./results.mjs";
4
2
  import type { MemberDocument, RecordSlotIdentity } from "../record/model/core.mjs";
5
3
  import type { RunPluginIdentity, AdapterIdentity } from "../record/model/run-context.mjs";
6
4
  import { type InspectionJson } from "./codec.mjs";
@@ -57,23 +55,9 @@ export interface InspectionOverviewAggregate {
57
55
  readonly coverage: readonly InspectionJson[];
58
56
  readonly issues: readonly InspectionJson[];
59
57
  }
60
- export interface InspectionOverviewMember {
58
+ export interface InspectionOverviewMember extends PlannedAttemptMember {
61
59
  readonly runId: string;
62
- readonly plannedAttemptId: string;
63
- readonly evalId: string;
64
- readonly attemptOrdinal: number;
65
60
  readonly labels: InspectionLabels;
66
- readonly publication: Exclude<Schema.Schema.Type<typeof PlannedAttemptPublicationSchema>, {
67
- readonly state: "published";
68
- }> | (Extract<Schema.Schema.Type<typeof PlannedAttemptPublicationSchema>, {
69
- readonly state: "published";
70
- }> & {
71
- readonly verdict: VerdictState | null;
72
- readonly score: InspectionMetricValue;
73
- readonly costUSD: InspectionCostMetricValue;
74
- readonly durationMs: InspectionMetricValue;
75
- readonly tokens: InspectionMetricValue;
76
- });
77
61
  }
78
62
  export interface InspectionOverviewCell extends InspectionOverviewAggregate {
79
63
  readonly experimentId: string;
@@ -134,3 +118,152 @@ export interface InspectionCurrentSlotInput {
134
118
  }
135
119
  /** Aggregate exactly the Host-assessed current positions; gaps add no value. */
136
120
  export declare function aggregateInspectionCurrentSlots(inputs: readonly InspectionCurrentSlotInput[]): InspectionOverview;
121
+ /** Shared metrics for one planned position, including missing and unresolved publications. */
122
+ export declare function projectPlannedAttemptMetrics(runId: string, slot: RecordSlotIdentity, member: MemberDocument | undefined, resolved: ResolvedInspectionAttempt | undefined): Readonly<{
123
+ readonly verdict: "passed" | "failed" | "errored" | "skipped" | null;
124
+ readonly score: {
125
+ readonly value: number | null;
126
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
127
+ readonly issues: readonly ({
128
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
129
+ readonly locator: string;
130
+ } | {
131
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
132
+ readonly runId: string;
133
+ readonly plannedAttemptId: string;
134
+ readonly evalId: string;
135
+ readonly attemptOrdinal: number;
136
+ } | {
137
+ readonly code: "score-contribution-unavailable";
138
+ readonly locator: string;
139
+ readonly entryId: string;
140
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
141
+ } | {
142
+ readonly code: "score-partial";
143
+ readonly locator: string | null;
144
+ })[];
145
+ readonly basis: "eval" | "planned-attempt";
146
+ readonly total: number;
147
+ readonly refs: readonly {
148
+ readonly identity: {
149
+ readonly kind: "attempt";
150
+ readonly locator: string;
151
+ };
152
+ }[];
153
+ readonly samples: number;
154
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
155
+ readonly bounds?: {
156
+ readonly min: number;
157
+ readonly max: number;
158
+ } | undefined;
159
+ };
160
+ readonly costUSD: {
161
+ readonly value: number | null;
162
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
163
+ readonly source: "reported" | "estimated" | "mixed" | null;
164
+ readonly issues: readonly ({
165
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
166
+ readonly locator: string;
167
+ } | {
168
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
169
+ readonly runId: string;
170
+ readonly plannedAttemptId: string;
171
+ readonly evalId: string;
172
+ readonly attemptOrdinal: number;
173
+ } | {
174
+ readonly code: "score-contribution-unavailable";
175
+ readonly locator: string;
176
+ readonly entryId: string;
177
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
178
+ } | {
179
+ readonly code: "score-partial";
180
+ readonly locator: string | null;
181
+ })[];
182
+ readonly basis: "eval" | "planned-attempt";
183
+ readonly total: number;
184
+ readonly refs: readonly {
185
+ readonly identity: {
186
+ readonly kind: "attempt";
187
+ readonly locator: string;
188
+ };
189
+ }[];
190
+ readonly samples: number;
191
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
192
+ readonly bounds?: {
193
+ readonly min: number;
194
+ readonly max: number;
195
+ } | undefined;
196
+ };
197
+ readonly durationMs: {
198
+ readonly value: number | null;
199
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
200
+ readonly issues: readonly ({
201
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
202
+ readonly locator: string;
203
+ } | {
204
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
205
+ readonly runId: string;
206
+ readonly plannedAttemptId: string;
207
+ readonly evalId: string;
208
+ readonly attemptOrdinal: number;
209
+ } | {
210
+ readonly code: "score-contribution-unavailable";
211
+ readonly locator: string;
212
+ readonly entryId: string;
213
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
214
+ } | {
215
+ readonly code: "score-partial";
216
+ readonly locator: string | null;
217
+ })[];
218
+ readonly basis: "eval" | "planned-attempt";
219
+ readonly total: number;
220
+ readonly refs: readonly {
221
+ readonly identity: {
222
+ readonly kind: "attempt";
223
+ readonly locator: string;
224
+ };
225
+ }[];
226
+ readonly samples: number;
227
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
228
+ readonly bounds?: {
229
+ readonly min: number;
230
+ readonly max: number;
231
+ } | undefined;
232
+ };
233
+ readonly tokens: {
234
+ readonly value: number | null;
235
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
236
+ readonly issues: readonly ({
237
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
238
+ readonly locator: string;
239
+ } | {
240
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
241
+ readonly runId: string;
242
+ readonly plannedAttemptId: string;
243
+ readonly evalId: string;
244
+ readonly attemptOrdinal: number;
245
+ } | {
246
+ readonly code: "score-contribution-unavailable";
247
+ readonly locator: string;
248
+ readonly entryId: string;
249
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
250
+ } | {
251
+ readonly code: "score-partial";
252
+ readonly locator: string | null;
253
+ })[];
254
+ readonly basis: "eval" | "planned-attempt";
255
+ readonly total: number;
256
+ readonly refs: readonly {
257
+ readonly identity: {
258
+ readonly kind: "attempt";
259
+ readonly locator: string;
260
+ };
261
+ }[];
262
+ readonly samples: number;
263
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
264
+ readonly bounds?: {
265
+ readonly min: number;
266
+ readonly max: number;
267
+ } | undefined;
268
+ };
269
+ }>;
@@ -1,6 +1,4 @@
1
- import { PlannedAttemptPublicationSchema } from "./planned-attempt.js";
2
- import type { VerdictState } from "../eval/record/verdict.js";
3
- import { Schema } from "effect";
1
+ import { type PlannedAttemptMember } from "./results.js";
4
2
  import type { MemberDocument, RecordSlotIdentity } from "../record/model/core.js";
5
3
  import type { RunPluginIdentity, AdapterIdentity } from "../record/model/run-context.js";
6
4
  import { type InspectionJson } from "./codec.js";
@@ -57,23 +55,9 @@ export interface InspectionOverviewAggregate {
57
55
  readonly coverage: readonly InspectionJson[];
58
56
  readonly issues: readonly InspectionJson[];
59
57
  }
60
- export interface InspectionOverviewMember {
58
+ export interface InspectionOverviewMember extends PlannedAttemptMember {
61
59
  readonly runId: string;
62
- readonly plannedAttemptId: string;
63
- readonly evalId: string;
64
- readonly attemptOrdinal: number;
65
60
  readonly labels: InspectionLabels;
66
- readonly publication: Exclude<Schema.Schema.Type<typeof PlannedAttemptPublicationSchema>, {
67
- readonly state: "published";
68
- }> | (Extract<Schema.Schema.Type<typeof PlannedAttemptPublicationSchema>, {
69
- readonly state: "published";
70
- }> & {
71
- readonly verdict: VerdictState | null;
72
- readonly score: InspectionMetricValue;
73
- readonly costUSD: InspectionCostMetricValue;
74
- readonly durationMs: InspectionMetricValue;
75
- readonly tokens: InspectionMetricValue;
76
- });
77
61
  }
78
62
  export interface InspectionOverviewCell extends InspectionOverviewAggregate {
79
63
  readonly experimentId: string;
@@ -134,3 +118,152 @@ export interface InspectionCurrentSlotInput {
134
118
  }
135
119
  /** Aggregate exactly the Host-assessed current positions; gaps add no value. */
136
120
  export declare function aggregateInspectionCurrentSlots(inputs: readonly InspectionCurrentSlotInput[]): InspectionOverview;
121
+ /** Shared metrics for one planned position, including missing and unresolved publications. */
122
+ export declare function projectPlannedAttemptMetrics(runId: string, slot: RecordSlotIdentity, member: MemberDocument | undefined, resolved: ResolvedInspectionAttempt | undefined): Readonly<{
123
+ readonly verdict: "passed" | "failed" | "errored" | "skipped" | null;
124
+ readonly score: {
125
+ readonly value: number | null;
126
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
127
+ readonly issues: readonly ({
128
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
129
+ readonly locator: string;
130
+ } | {
131
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
132
+ readonly runId: string;
133
+ readonly plannedAttemptId: string;
134
+ readonly evalId: string;
135
+ readonly attemptOrdinal: number;
136
+ } | {
137
+ readonly code: "score-contribution-unavailable";
138
+ readonly locator: string;
139
+ readonly entryId: string;
140
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
141
+ } | {
142
+ readonly code: "score-partial";
143
+ readonly locator: string | null;
144
+ })[];
145
+ readonly basis: "eval" | "planned-attempt";
146
+ readonly total: number;
147
+ readonly refs: readonly {
148
+ readonly identity: {
149
+ readonly kind: "attempt";
150
+ readonly locator: string;
151
+ };
152
+ }[];
153
+ readonly samples: number;
154
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
155
+ readonly bounds?: {
156
+ readonly min: number;
157
+ readonly max: number;
158
+ } | undefined;
159
+ };
160
+ readonly costUSD: {
161
+ readonly value: number | null;
162
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
163
+ readonly source: "reported" | "estimated" | "mixed" | null;
164
+ readonly issues: readonly ({
165
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
166
+ readonly locator: string;
167
+ } | {
168
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
169
+ readonly runId: string;
170
+ readonly plannedAttemptId: string;
171
+ readonly evalId: string;
172
+ readonly attemptOrdinal: number;
173
+ } | {
174
+ readonly code: "score-contribution-unavailable";
175
+ readonly locator: string;
176
+ readonly entryId: string;
177
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
178
+ } | {
179
+ readonly code: "score-partial";
180
+ readonly locator: string | null;
181
+ })[];
182
+ readonly basis: "eval" | "planned-attempt";
183
+ readonly total: number;
184
+ readonly refs: readonly {
185
+ readonly identity: {
186
+ readonly kind: "attempt";
187
+ readonly locator: string;
188
+ };
189
+ }[];
190
+ readonly samples: number;
191
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
192
+ readonly bounds?: {
193
+ readonly min: number;
194
+ readonly max: number;
195
+ } | undefined;
196
+ };
197
+ readonly durationMs: {
198
+ readonly value: number | null;
199
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
200
+ readonly issues: readonly ({
201
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
202
+ readonly locator: string;
203
+ } | {
204
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
205
+ readonly runId: string;
206
+ readonly plannedAttemptId: string;
207
+ readonly evalId: string;
208
+ readonly attemptOrdinal: number;
209
+ } | {
210
+ readonly code: "score-contribution-unavailable";
211
+ readonly locator: string;
212
+ readonly entryId: string;
213
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
214
+ } | {
215
+ readonly code: "score-partial";
216
+ readonly locator: string | null;
217
+ })[];
218
+ readonly basis: "eval" | "planned-attempt";
219
+ readonly total: number;
220
+ readonly refs: readonly {
221
+ readonly identity: {
222
+ readonly kind: "attempt";
223
+ readonly locator: string;
224
+ };
225
+ }[];
226
+ readonly samples: number;
227
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
228
+ readonly bounds?: {
229
+ readonly min: number;
230
+ readonly max: number;
231
+ } | undefined;
232
+ };
233
+ readonly tokens: {
234
+ readonly value: number | null;
235
+ readonly state: "partial" | "failed" | "available" | "unavailable" | "empty" | "unsupported";
236
+ readonly issues: readonly ({
237
+ readonly code: "assertions-not-recorded" | "assertions-revision-unsupported" | "assertions-current-invalid";
238
+ readonly locator: string;
239
+ } | {
240
+ readonly code: "attempt-origin-missing" | "attempt-not-observed";
241
+ readonly runId: string;
242
+ readonly plannedAttemptId: string;
243
+ readonly evalId: string;
244
+ readonly attemptOrdinal: number;
245
+ } | {
246
+ readonly code: "score-contribution-unavailable";
247
+ readonly locator: string;
248
+ readonly entryId: string;
249
+ readonly reason: "source-unavailable" | "not-applicable" | "evaluation-errored";
250
+ } | {
251
+ readonly code: "score-partial";
252
+ readonly locator: string | null;
253
+ })[];
254
+ readonly basis: "eval" | "planned-attempt";
255
+ readonly total: number;
256
+ readonly refs: readonly {
257
+ readonly identity: {
258
+ readonly kind: "attempt";
259
+ readonly locator: string;
260
+ };
261
+ }[];
262
+ readonly samples: number;
263
+ readonly unit?: "ms" | "tokens" | "USD" | "points" | undefined;
264
+ readonly bounds?: {
265
+ readonly min: number;
266
+ readonly max: number;
267
+ } | undefined;
268
+ };
269
+ }>;
@@ -3,6 +3,8 @@ const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
3
  const __niceevalCanonical = __niceevalRequire("./overview.cjs");
4
4
  const __niceevalExport0 = __niceevalCanonical["aggregateInspectionCurrentSlots"];
5
5
  export { __niceevalExport0 as aggregateInspectionCurrentSlots };
6
- const __niceevalExport1 = __niceevalCanonical["selectInspectionOverview"];
7
- export { __niceevalExport1 as selectInspectionOverview };
6
+ const __niceevalExport1 = __niceevalCanonical["projectPlannedAttemptMetrics"];
7
+ export { __niceevalExport1 as projectPlannedAttemptMetrics };
8
+ const __niceevalExport2 = __niceevalCanonical["selectInspectionOverview"];
9
+ export { __niceevalExport2 as selectInspectionOverview };
8
10
  //# sourceMappingURL=overview.js.map