@openpond/evals 0.11.2 → 0.11.4
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/dist/index.js +1 -0
- package/dist/profile-evaluation-execution.js +98 -0
- package/dist/taskset-run-contract.js +34 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/learning/repository.d.ts +1 -1
- package/dist/types/learning/transport.d.ts +2 -2
- package/dist/types/profile-evaluation-execution.d.ts +56 -0
- package/dist/types/profile-evaluation-execution.d.ts.map +1 -0
- package/dist/types/taskset-run-contract.d.ts +4 -0
- package/dist/types/taskset-run-contract.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ export * from "./model-improvement-qualification.js";
|
|
|
14
14
|
export * from "./preferences.js";
|
|
15
15
|
export * from "./profile-evaluations.js";
|
|
16
16
|
export * from "./profile-evaluation-comparisons.js";
|
|
17
|
+
export * from "./profile-evaluation-execution.js";
|
|
17
18
|
export * from "./review-conformance.js";
|
|
18
19
|
export * from "./rollouts.js";
|
|
19
20
|
export * from "./telemetry.js";
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { ImmutableArtifactRefSchema, contentHash } from "@openpond/harness";
|
|
2
|
+
import { TaskGradeSchema, gradeTaskEvidence } from "./graders.js";
|
|
3
|
+
import { aggregateTasksetRunReceipts, assertTasksetMetricSource } from "./metrics.js";
|
|
4
|
+
import { createAttemptReceipt, verifyAttemptReceipt } from "./runs.js";
|
|
5
|
+
import { assertProfileEvaluationRunAdmission } from "./taskset-run-contract.js";
|
|
6
|
+
import { policyTaskView } from "./tasksets.js";
|
|
7
|
+
/** The installation owns execution, tools, approvals and storage. This runner
|
|
8
|
+
* owns frozen population dispatch and private grading for both Desktop and web. */
|
|
9
|
+
export async function executeProfileEvaluationRun(input) {
|
|
10
|
+
assertProfileEvaluationRunAdmission(input.manifest, input.taskset, input.catalog);
|
|
11
|
+
assertTasksetMetricSource(input.taskset, input.metricSource);
|
|
12
|
+
const source = input.manifest.profileEvaluation;
|
|
13
|
+
const definition = input.catalog.definitions.find((item) => item.id === source.definitionId);
|
|
14
|
+
const tasks = new Map(input.taskset.tasks.map((task) => [task.id, task]));
|
|
15
|
+
const receipts = [];
|
|
16
|
+
const grades = [];
|
|
17
|
+
for (const member of input.manifest.population) {
|
|
18
|
+
input.signal?.throwIfAborted();
|
|
19
|
+
const task = tasks.get(member.taskId);
|
|
20
|
+
const retained = await input.loadCompletedMember?.(member) ?? null;
|
|
21
|
+
if (retained) {
|
|
22
|
+
const { receipt, grade } = retained;
|
|
23
|
+
const { contentHash: gradeHash, ...gradeContent } = TaskGradeSchema.parse(grade);
|
|
24
|
+
if (!verifyAttemptReceipt(receipt)
|
|
25
|
+
|| gradeHash !== contentHash(gradeContent)
|
|
26
|
+
|| receipt.id !== member.receiptId
|
|
27
|
+
|| receipt.runManifest.id !== input.manifest.id
|
|
28
|
+
|| receipt.runManifest.contentHash !== input.manifest.contentHash
|
|
29
|
+
|| receipt.taskId !== member.taskId || receipt.seed !== member.seed
|
|
30
|
+
|| receipt.graderEvidenceRefs.length !== 1
|
|
31
|
+
|| receipt.graderEvidenceRefs[0]?.contentHash !== gradeHash
|
|
32
|
+
|| grade.taskHash !== contentHash(task)
|
|
33
|
+
|| grade.graderSetHash !== contentHash(input.taskset.graders)
|
|
34
|
+
|| receipt.metadata.score !== grade.score
|
|
35
|
+
|| receipt.metadata.passed !== grade.passed) {
|
|
36
|
+
throw new Error(`Retained Profile evaluation member ${member.receiptId} differs from its admitted evidence.`);
|
|
37
|
+
}
|
|
38
|
+
grades.push(grade);
|
|
39
|
+
receipts.push(receipt);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const execution = await input.execute({
|
|
43
|
+
task: policyTaskView(task), seed: member.seed, source,
|
|
44
|
+
...(input.signal ? { signal: input.signal } : {}),
|
|
45
|
+
});
|
|
46
|
+
input.signal?.throwIfAborted();
|
|
47
|
+
const grade = await gradeTaskEvidence({
|
|
48
|
+
task, evidence: execution.evidence, graders: input.taskset.graders,
|
|
49
|
+
...(input.modelJudge ? { modelJudge: input.modelJudge } : {}),
|
|
50
|
+
...(input.customVerifier ? { customVerifier: input.customVerifier } : {}),
|
|
51
|
+
...(input.signal ? { signal: input.signal } : {}),
|
|
52
|
+
});
|
|
53
|
+
const gradeRef = ImmutableArtifactRefSchema.parse(await input.saveGrade(grade));
|
|
54
|
+
if (gradeRef.contentHash !== grade.contentHash)
|
|
55
|
+
throw new Error("Stored Profile evaluation grade differs from its graded evidence.");
|
|
56
|
+
const failureClass = execution.failureClass ?? grade.failureClass;
|
|
57
|
+
const receipt = createAttemptReceipt({
|
|
58
|
+
schemaVersion: "openpond.attemptReceipt.v1",
|
|
59
|
+
id: member.receiptId,
|
|
60
|
+
runManifest: { id: input.manifest.id, contentHash: input.manifest.contentHash },
|
|
61
|
+
taskId: member.taskId,
|
|
62
|
+
seed: member.seed,
|
|
63
|
+
terminal: execution.terminal,
|
|
64
|
+
failureClass,
|
|
65
|
+
outputHash: execution.evidence.infrastructureError ? null : contentHash(execution.evidence.output),
|
|
66
|
+
traceHash: execution.traceHash,
|
|
67
|
+
artifactRefs: execution.artifactRefs,
|
|
68
|
+
graderEvidenceRefs: [gradeRef],
|
|
69
|
+
startedAt: execution.startedAt,
|
|
70
|
+
completedAt: execution.completedAt,
|
|
71
|
+
latencyMs: execution.latencyMs,
|
|
72
|
+
costUsd: execution.costUsd,
|
|
73
|
+
metadata: {
|
|
74
|
+
gradingRole: "evaluation",
|
|
75
|
+
score: grade.score,
|
|
76
|
+
passed: grade.passed,
|
|
77
|
+
rewardEligible: grade.rewardEligible,
|
|
78
|
+
sourceRevision: source.sourceRevision,
|
|
79
|
+
definitionHash: source.definitionHash,
|
|
80
|
+
environmentHash: source.environmentHash,
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
await input.saveReceipt(receipt);
|
|
84
|
+
grades.push(grade);
|
|
85
|
+
receipts.push(receipt);
|
|
86
|
+
}
|
|
87
|
+
const metric = await aggregateTasksetRunReceipts({
|
|
88
|
+
manifest: input.manifest, taskset: input.taskset, receipts,
|
|
89
|
+
...(input.metricSource !== undefined ? { source: input.metricSource } : {}),
|
|
90
|
+
...(input.signal ? { signal: input.signal } : {}),
|
|
91
|
+
}, input.metricExecutor);
|
|
92
|
+
const passRate = grades.filter((grade) => grade.passed).length / grades.length;
|
|
93
|
+
return {
|
|
94
|
+
receipts, grades, metric, passRate,
|
|
95
|
+
passed: passRate >= definition.criterion.minimumPassRate
|
|
96
|
+
&& (!definition.criterion.requireComplete || receipts.every((receipt) => receipt.terminal)),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { assertContentHash, contentHash, ImmutableReleaseRefSchema, MetadataSchema, ModelRefSchema, ReleaseHashSchema, ReleaseIdSchema, ReleaseTimestampSchema } from "@openpond/harness";
|
|
3
3
|
import { RunLimitsSchema, RuntimeTargetBindingSchema, verifyAttemptReceipt } from "./runs.js";
|
|
4
4
|
import { TasksetMetricPolicySchema } from "./metric-policy.js";
|
|
5
|
-
import { ProfileEvaluationRunSourceSchema } from "./profile-evaluations.js";
|
|
5
|
+
import { ProfileEvaluationCatalogSchema, ProfileEvaluationRunSourceSchema } from "./profile-evaluations.js";
|
|
6
6
|
import { assertTasksetRelease } from "./tasksets.js";
|
|
7
7
|
/** A fixture check owns no model identity and cannot become a model evaluation. */
|
|
8
8
|
export const TasksetRunPolicySchema = z.discriminatedUnion("kind", [
|
|
@@ -75,6 +75,39 @@ export function assertTasksetRunRelease(manifest, taskset) {
|
|
|
75
75
|
|| manifest.execution.policyHash !== contentHash(taskset.policy)))
|
|
76
76
|
throw new Error("Taskset-owned execution differs from its pinned release.");
|
|
77
77
|
}
|
|
78
|
+
/** Resolve the verifier-only definition before dispatch. A Profile run must
|
|
79
|
+
* evaluate exactly its declared frozen cases and seeds through its release. */
|
|
80
|
+
export function assertProfileEvaluationRunAdmission(manifest, taskset, catalogInput) {
|
|
81
|
+
assertTasksetRunRelease(manifest, taskset);
|
|
82
|
+
const catalog = ProfileEvaluationCatalogSchema.parse(catalogInput);
|
|
83
|
+
const source = manifest.profileEvaluation;
|
|
84
|
+
if (!source || manifest.execution.kind !== "harness" || manifest.policy.kind !== "model") {
|
|
85
|
+
throw new Error("Profile evaluation requires fresh model execution through its bound Harness.");
|
|
86
|
+
}
|
|
87
|
+
if (source.catalogHash !== contentHash(catalog))
|
|
88
|
+
throw new Error("Profile evaluation catalog differs from its pinned source.");
|
|
89
|
+
const definition = catalog.definitions.find((entry) => entry.id === source.definitionId);
|
|
90
|
+
if (!definition || source.definitionHash !== contentHash(definition)
|
|
91
|
+
|| contentHash(source.target) !== contentHash(definition.target)) {
|
|
92
|
+
throw new Error("Profile evaluation definition differs from its pinned source.");
|
|
93
|
+
}
|
|
94
|
+
if (definition.tasksetRelease.id !== taskset.id || definition.tasksetRelease.contentHash !== taskset.contentHash) {
|
|
95
|
+
throw new Error("Profile evaluation Taskset differs from its pinned definition.");
|
|
96
|
+
}
|
|
97
|
+
if (definition.split === "train")
|
|
98
|
+
throw new Error("Profile evaluation cannot execute training cases.");
|
|
99
|
+
const tasks = new Map(taskset.tasks.map((task) => [task.id, task]));
|
|
100
|
+
if (definition.taskIds.some((id) => tasks.get(id)?.split !== definition.split)) {
|
|
101
|
+
throw new Error("Profile evaluation case is absent from its declared Taskset split.");
|
|
102
|
+
}
|
|
103
|
+
const expected = new Set(definition.taskIds.flatMap((taskId) => definition.seeds.map((seed) => JSON.stringify([taskId, seed]))));
|
|
104
|
+
const actual = new Set(manifest.population.map(({ taskId, seed }) => JSON.stringify([taskId, seed])));
|
|
105
|
+
if (manifest.population.some((member) => member.fixtureId !== null)
|
|
106
|
+
|| actual.size !== expected.size || manifest.population.length !== expected.size
|
|
107
|
+
|| [...actual].some((member) => !expected.has(member))) {
|
|
108
|
+
throw new Error("Profile evaluation population differs from its declared cases and seeds.");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
78
111
|
/** Complete runs cannot drop failed members, add convenient attempts or relabel
|
|
79
112
|
* another task/seed's evidence. Ordering is always the admitted population's. */
|
|
80
113
|
export function orderTasksetRunReceipts(manifest, receipts) {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from "./model-improvement-qualification.js";
|
|
|
14
14
|
export * from "./preferences.js";
|
|
15
15
|
export * from "./profile-evaluations.js";
|
|
16
16
|
export * from "./profile-evaluation-comparisons.js";
|
|
17
|
+
export * from "./profile-evaluation-execution.js";
|
|
17
18
|
export * from "./review-conformance.js";
|
|
18
19
|
export * from "./rollouts.js";
|
|
19
20
|
export * from "./telemetry.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
@@ -1870,10 +1870,10 @@ export declare const LearningResourceKindSchema: z.ZodEnum<{
|
|
|
1870
1870
|
source: "source";
|
|
1871
1871
|
asset: "asset";
|
|
1872
1872
|
decision: "decision";
|
|
1873
|
+
grade: "grade";
|
|
1873
1874
|
binding: "binding";
|
|
1874
1875
|
dispatch: "dispatch";
|
|
1875
1876
|
batch: "batch";
|
|
1876
|
-
grade: "grade";
|
|
1877
1877
|
schedule: "schedule";
|
|
1878
1878
|
definition: "definition";
|
|
1879
1879
|
draft: "draft";
|
|
@@ -1573,10 +1573,10 @@ export declare const LearningReadRequestSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
1573
1573
|
source: "source";
|
|
1574
1574
|
asset: "asset";
|
|
1575
1575
|
decision: "decision";
|
|
1576
|
+
grade: "grade";
|
|
1576
1577
|
binding: "binding";
|
|
1577
1578
|
dispatch: "dispatch";
|
|
1578
1579
|
batch: "batch";
|
|
1579
|
-
grade: "grade";
|
|
1580
1580
|
schedule: "schedule";
|
|
1581
1581
|
definition: "definition";
|
|
1582
1582
|
draft: "draft";
|
|
@@ -1601,10 +1601,10 @@ export declare const LearningReadRequestSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
1601
1601
|
source: "source";
|
|
1602
1602
|
asset: "asset";
|
|
1603
1603
|
decision: "decision";
|
|
1604
|
+
grade: "grade";
|
|
1604
1605
|
binding: "binding";
|
|
1605
1606
|
dispatch: "dispatch";
|
|
1606
1607
|
batch: "batch";
|
|
1607
|
-
grade: "grade";
|
|
1608
1608
|
schedule: "schedule";
|
|
1609
1609
|
definition: "definition";
|
|
1610
1610
|
draft: "draft";
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type ImmutableArtifactRef } from "@openpond/harness";
|
|
2
|
+
import { type AttemptEvidence, type CustomVerifierRunner, type ModelJudgeRunner, type TaskGrade } from "./graders.js";
|
|
3
|
+
import { type TasksetMetricExecutor, type TasksetMetricResult } from "./metrics.js";
|
|
4
|
+
import { type AttemptReceipt } from "./runs.js";
|
|
5
|
+
import { type TasksetRunManifest } from "./taskset-run-contract.js";
|
|
6
|
+
import { policyTaskView, type TasksetRelease } from "./tasksets.js";
|
|
7
|
+
import type { ProfileEvaluationCatalog, ProfileEvaluationRunSource } from "./profile-evaluations.js";
|
|
8
|
+
type PolicyTask = ReturnType<typeof policyTaskView>;
|
|
9
|
+
/** The installation owns execution, tools, approvals and storage. This runner
|
|
10
|
+
* owns frozen population dispatch and private grading for both Desktop and web. */
|
|
11
|
+
export declare function executeProfileEvaluationRun(input: {
|
|
12
|
+
manifest: TasksetRunManifest;
|
|
13
|
+
taskset: TasksetRelease;
|
|
14
|
+
catalog: ProfileEvaluationCatalog;
|
|
15
|
+
execute: (member: {
|
|
16
|
+
task: PolicyTask;
|
|
17
|
+
seed: string;
|
|
18
|
+
source: ProfileEvaluationRunSource;
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
}) => Promise<{
|
|
21
|
+
evidence: AttemptEvidence;
|
|
22
|
+
traceHash: string;
|
|
23
|
+
artifactRefs: ImmutableArtifactRef[];
|
|
24
|
+
startedAt: string;
|
|
25
|
+
completedAt: string;
|
|
26
|
+
latencyMs: number;
|
|
27
|
+
costUsd: number | null;
|
|
28
|
+
terminal: boolean;
|
|
29
|
+
failureClass?: AttemptReceipt["failureClass"];
|
|
30
|
+
}>;
|
|
31
|
+
saveGrade: (grade: TaskGrade) => Promise<ImmutableArtifactRef>;
|
|
32
|
+
saveReceipt: (receipt: AttemptReceipt) => Promise<void>;
|
|
33
|
+
/** A retained complete member can be reused after an interrupted run. The
|
|
34
|
+
* runner checks its immutable manifest, task, grader, and grade references. */
|
|
35
|
+
loadCompletedMember?: (member: {
|
|
36
|
+
receiptId: string;
|
|
37
|
+
taskId: string;
|
|
38
|
+
seed: string;
|
|
39
|
+
}) => Promise<{
|
|
40
|
+
receipt: AttemptReceipt;
|
|
41
|
+
grade: TaskGrade;
|
|
42
|
+
} | null>;
|
|
43
|
+
modelJudge?: ModelJudgeRunner;
|
|
44
|
+
customVerifier?: CustomVerifierRunner;
|
|
45
|
+
metricSource?: string;
|
|
46
|
+
metricExecutor?: TasksetMetricExecutor;
|
|
47
|
+
signal?: AbortSignal;
|
|
48
|
+
}): Promise<{
|
|
49
|
+
receipts: AttemptReceipt[];
|
|
50
|
+
grades: TaskGrade[];
|
|
51
|
+
metric: TasksetMetricResult;
|
|
52
|
+
passRate: number;
|
|
53
|
+
passed: boolean;
|
|
54
|
+
}>;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=profile-evaluation-execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-evaluation-execution.d.ts","sourceRoot":"","sources":["../../../../src/profile-evaluation-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2C,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEvG,OAAO,EAAsC,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1J,OAAO,EAA0D,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC5I,OAAO,EAA8C,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAuC,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAErG,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAEpD;mFACmF;AACnF,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,wBAAwB,CAAC;IAClC,OAAO,EAAE,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,UAAU,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,0BAA0B,CAAC;QACnC,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,KAAK,OAAO,CAAC;QACZ,QAAQ,EAAE,eAAe,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,oBAAoB,EAAE,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;KAC/C,CAAC,CAAC;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/D,WAAW,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD;mFAC+E;IAC/E,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;QAC7F,OAAO,EAAE,cAAc,CAAC;QACxB,KAAK,EAAE,SAAS,CAAC;KAClB,GAAG,IAAI,CAAC,CAAC;IACV,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC;IACV,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAwFD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { type AttemptReceipt } from "./runs.js";
|
|
3
3
|
import { type TasksetMetricPolicy } from "./metric-policy.js";
|
|
4
|
+
import { type ProfileEvaluationCatalog } from "./profile-evaluations.js";
|
|
4
5
|
import { type TasksetRelease } from "./tasksets.js";
|
|
5
6
|
/** A fixture check owns no model identity and cannot become a model evaluation. */
|
|
6
7
|
export declare const TasksetRunPolicySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -274,6 +275,9 @@ export declare function tasksetRunMetricPolicy(taskset: TasksetRelease): Taskset
|
|
|
274
275
|
/** Admission verifies this before dispatch. Package byte verification belongs
|
|
275
276
|
* to the package loader; this validates the release and population semantics. */
|
|
276
277
|
export declare function assertTasksetRunRelease(manifest: TasksetRunManifest, taskset: TasksetRelease): void;
|
|
278
|
+
/** Resolve the verifier-only definition before dispatch. A Profile run must
|
|
279
|
+
* evaluate exactly its declared frozen cases and seeds through its release. */
|
|
280
|
+
export declare function assertProfileEvaluationRunAdmission(manifest: TasksetRunManifest, taskset: TasksetRelease, catalogInput: ProfileEvaluationCatalog): void;
|
|
277
281
|
/** Complete runs cannot drop failed members, add convenient attempts or relabel
|
|
278
282
|
* another task/seed's evidence. Ordering is always the admitted population's. */
|
|
279
283
|
export declare function orderTasksetRunReceipts(manifest: TasksetRunManifest, receipts: AttemptReceipt[]): AttemptReceipt[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskset-run-contract.d.ts","sourceRoot":"","sources":["../../../../src/taskset-run-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAqE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACnH,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"taskset-run-contract.d.ts","sourceRoot":"","sources":["../../../../src/taskset-run-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAqE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACnH,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,EAAoE,KAAK,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC3I,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAE1E,mFAAmF;AACnF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;4BAGjC,CAAC;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;4BAGpC,CAAC;AACH,eAAO,MAAM,sBAAsB;;;;;kBAKxB,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuB1C,CAAC;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAiF,CAAC;AACvH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,GAAG,kBAAkB,CAGnH;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,mBAAmB,CAKnF;AAED;iFACiF;AACjF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAcnG;AAED;+EAC+E;AAC/E,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,wBAAwB,GACrC,IAAI,CA4BN;AAED;iFACiF;AACjF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAclH"}
|
package/package.json
CHANGED