@openpond/evals 0.9.2 → 0.10.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.
- package/CONTRACT.md +24 -0
- package/dist/index.js +1 -0
- package/dist/metrics-node.js +4 -1
- package/dist/metrics.js +19 -1
- package/dist/taskset-run-contract.js +91 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/metrics-node.d.ts +2 -1
- package/dist/types/metrics-node.d.ts.map +1 -1
- package/dist/types/metrics.d.ts +11 -1
- package/dist/types/metrics.d.ts.map +1 -1
- package/dist/types/review-conformance.d.ts +5 -5
- package/dist/types/taskset-run-contract.d.ts +232 -0
- package/dist/types/taskset-run-contract.d.ts.map +1 -0
- package/package.json +2 -2
package/CONTRACT.md
CHANGED
|
@@ -119,3 +119,27 @@ runtime processes.
|
|
|
119
119
|
plus a hash-bound trace. `EvaluationRunner` selects tasks, seeds, repetitions,
|
|
120
120
|
and models, invokes the executor, runs graders in their declared boundary, and
|
|
121
121
|
aggregates host results. Runtime adapters stay with Desktop or Sandbox.
|
|
122
|
+
|
|
123
|
+
## Taskset evaluation populations
|
|
124
|
+
|
|
125
|
+
`TasksetRunManifest` freezes the complete task/seed/receipt population before
|
|
126
|
+
execution. Its policy distinguishes a real model plus configuration hash from
|
|
127
|
+
an authored fixture check with no model identity. Execution either pins the
|
|
128
|
+
Taskset-owned environment, verifier set and policy, or an actual selected
|
|
129
|
+
Harness release. The complete package hash remains pinned in either case.
|
|
130
|
+
Existing `RunManifest` Harness evaluations keep their existing contract.
|
|
131
|
+
|
|
132
|
+
`aggregateTasksetRunReceipts` verifies the exact Taskset and metric policy,
|
|
133
|
+
requires one matching receipt per admitted member, orders receipts by the
|
|
134
|
+
manifest and consumes evaluation-role evidence. Missing members, repeated
|
|
135
|
+
receipt IDs, changed tasks/seeds and training-role projections are rejected.
|
|
136
|
+
Operational failures remain accounted for while being excluded from metric
|
|
137
|
+
scores. A nonterminal member without an operational failure cannot finalize a
|
|
138
|
+
run. Hosts must project receipts from their retained execution evidence.
|
|
139
|
+
|
|
140
|
+
The authored metric uses the same implementation as existing evaluations.
|
|
141
|
+
Without an authored policy, a run uses the mean of eligible measured scores
|
|
142
|
+
and excludes missing rewards. An empty scorable population remains null.
|
|
143
|
+
`aggregateTasksetRunInWorker` from `@openpond/evals/metrics/node` verifies custom
|
|
144
|
+
module bytes and uses the existing bounded isolated worker. A fixture metric
|
|
145
|
+
does not qualify a model for learning or acceptance.
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export * from "./harness.js";
|
|
|
9
9
|
export * from "./learned-preference.js";
|
|
10
10
|
export * from "./runs.js";
|
|
11
11
|
export * from "./metrics.js";
|
|
12
|
+
export * from "./taskset-run-contract.js";
|
|
12
13
|
export * from "./model-improvement-qualification.js";
|
|
13
14
|
export * from "./preferences.js";
|
|
14
15
|
export * from "./review-conformance.js";
|
package/dist/metrics-node.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { stripTypeScriptTypes } from "node:module";
|
|
2
2
|
import { executeJavaScriptIsolateInWorker } from "./javascript-isolate-node.js";
|
|
3
|
-
import { aggregateTasksetEvaluationReceipts, executeTasksetMetric } from "./metrics.js";
|
|
3
|
+
import { aggregateTasksetEvaluationReceipts, aggregateTasksetRunReceipts, executeTasksetMetric } from "./metrics.js";
|
|
4
4
|
/** Verifies original source before stripping TS, then waits for worker termination
|
|
5
5
|
* on success, error or cancellation. Authored imports and host APIs are unavailable. */
|
|
6
6
|
export function executeTasksetMetricInWorker(input) {
|
|
@@ -9,6 +9,9 @@ export function executeTasksetMetricInWorker(input) {
|
|
|
9
9
|
export function aggregateTasksetEvaluationInWorker(input) {
|
|
10
10
|
return aggregateTasksetEvaluationReceipts(input, executeMetric);
|
|
11
11
|
}
|
|
12
|
+
export function aggregateTasksetRunInWorker(input) {
|
|
13
|
+
return aggregateTasksetRunReceipts(input, executeMetric);
|
|
14
|
+
}
|
|
12
15
|
const executeMetric = ({ source, module, exportName, scores, timeoutMs, signal }) => executeJavaScriptIsolateInWorker({
|
|
13
16
|
source: /\.[cm]?ts$/.test(module) ? stripTypeScriptTypes(source, { mode: "strip" }) : source,
|
|
14
17
|
exportName, value: scores, timeoutMs, signal,
|
package/dist/metrics.js
CHANGED
|
@@ -2,7 +2,17 @@ import { assertContentHash, contentHash, sha256 } from "@openpond/harness";
|
|
|
2
2
|
import { aggregateEvaluationReceipts, RunManifestSchema, verifyAttemptReceipt } from "./runs.js";
|
|
3
3
|
import { TasksetMetricPolicySchema, TasksetMetricResultContentSchema, TasksetMetricResultSchema } from "./metric-policy.js";
|
|
4
4
|
import { assertTasksetRelease } from "./tasksets.js";
|
|
5
|
+
import { TasksetRunManifestSchema, assertTasksetRunRelease, orderTasksetRunReceipts } from "./taskset-run-contract.js";
|
|
5
6
|
export * from "./metric-policy.js";
|
|
7
|
+
export * from "./taskset-run-contract.js";
|
|
8
|
+
/** Complete Taskset-owned, selected-Harness or fixture runs share the same
|
|
9
|
+
* metric arithmetic, with the population fixed before execution. */
|
|
10
|
+
export async function aggregateTasksetRunReceipts(input, executor) {
|
|
11
|
+
input.signal?.throwIfAborted();
|
|
12
|
+
assertTasksetRunRelease(input.manifest, input.taskset);
|
|
13
|
+
assertTasksetMetricSource(input.taskset, input.source);
|
|
14
|
+
return executeTasksetMetric({ ...input, policy: input.manifest.metricPolicy, receipts: orderTasksetRunReceipts(input.manifest, input.receipts) }, executor);
|
|
15
|
+
}
|
|
6
16
|
/** Preflight the exact metric source before any model or tool execution. */
|
|
7
17
|
export function assertTasksetMetricSource(taskset, source) {
|
|
8
18
|
assertTasksetRelease(taskset);
|
|
@@ -29,8 +39,16 @@ export async function aggregateTasksetEvaluationReceipts(input, executor) {
|
|
|
29
39
|
export async function executeTasksetMetric(input, executor) {
|
|
30
40
|
input.signal?.throwIfAborted();
|
|
31
41
|
const policy = TasksetMetricPolicySchema.parse(input.policy);
|
|
32
|
-
const manifest =
|
|
42
|
+
const manifest = input.manifest.schemaVersion === "openpond.tasksetRunManifest.v1"
|
|
43
|
+
? TasksetRunManifestSchema.parse(input.manifest) : RunManifestSchema.parse(input.manifest);
|
|
33
44
|
assertContentHash(manifest, "Metric Run Manifest");
|
|
45
|
+
if (manifest.schemaVersion === "openpond.tasksetRunManifest.v1") {
|
|
46
|
+
if (contentHash(policy) !== contentHash(manifest.metricPolicy))
|
|
47
|
+
throw new Error("Metric policy differs from the admitted run.");
|
|
48
|
+
const ordered = orderTasksetRunReceipts(manifest, input.receipts);
|
|
49
|
+
if (ordered.some((receipt, index) => receipt.id !== input.receipts[index]?.id))
|
|
50
|
+
throw new Error("Metric receipts must follow the admitted population order.");
|
|
51
|
+
}
|
|
34
52
|
if (!input.receipts.length || input.receipts.length > 1_000_000)
|
|
35
53
|
throw new Error("Metric execution requires 1 to 1,000,000 attempt receipts.");
|
|
36
54
|
const ids = new Set();
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { assertContentHash, contentHash, ImmutableReleaseRefSchema, MetadataSchema, ModelRefSchema, ReleaseHashSchema, ReleaseIdSchema, ReleaseTimestampSchema } from "@openpond/harness";
|
|
3
|
+
import { RunLimitsSchema, RuntimeTargetBindingSchema, verifyAttemptReceipt } from "./runs.js";
|
|
4
|
+
import { TasksetMetricPolicySchema } from "./metric-policy.js";
|
|
5
|
+
import { assertTasksetRelease } from "./tasksets.js";
|
|
6
|
+
/** A fixture check owns no model identity and cannot become a model evaluation. */
|
|
7
|
+
export const TasksetRunPolicySchema = z.discriminatedUnion("kind", [
|
|
8
|
+
z.object({ kind: z.literal("model"), model: ModelRefSchema, configurationHash: ReleaseHashSchema }).strict(),
|
|
9
|
+
z.object({ kind: z.literal("fixture") }).strict(),
|
|
10
|
+
]);
|
|
11
|
+
export const TasksetRunExecutionSchema = z.discriminatedUnion("kind", [
|
|
12
|
+
z.object({ kind: z.literal("taskset"), environmentRelease: ImmutableReleaseRefSchema, verifierSetRelease: ImmutableReleaseRefSchema, policyHash: ReleaseHashSchema }).strict(),
|
|
13
|
+
z.object({ kind: z.literal("harness"), harnessRelease: ImmutableReleaseRefSchema }).strict(),
|
|
14
|
+
]);
|
|
15
|
+
export const TasksetRunMemberSchema = z.object({
|
|
16
|
+
receiptId: ReleaseIdSchema,
|
|
17
|
+
taskId: ReleaseIdSchema,
|
|
18
|
+
seed: z.string().trim().min(1).max(500),
|
|
19
|
+
fixtureId: ReleaseIdSchema.nullable(),
|
|
20
|
+
}).strict();
|
|
21
|
+
export const TasksetRunManifestContentSchema = z.object({
|
|
22
|
+
schemaVersion: z.literal("openpond.tasksetRunManifest.v1"),
|
|
23
|
+
id: ReleaseIdSchema,
|
|
24
|
+
tasksetRelease: ImmutableReleaseRefSchema,
|
|
25
|
+
packageHash: ReleaseHashSchema,
|
|
26
|
+
execution: TasksetRunExecutionSchema,
|
|
27
|
+
policy: TasksetRunPolicySchema,
|
|
28
|
+
gradingRole: z.literal("evaluation"),
|
|
29
|
+
metricPolicy: TasksetMetricPolicySchema,
|
|
30
|
+
population: z.array(TasksetRunMemberSchema).min(1).max(100_000),
|
|
31
|
+
runtimeTarget: RuntimeTargetBindingSchema,
|
|
32
|
+
limits: RunLimitsSchema,
|
|
33
|
+
createdAt: ReleaseTimestampSchema,
|
|
34
|
+
metadata: MetadataSchema,
|
|
35
|
+
}).strict().superRefine((value, context) => {
|
|
36
|
+
if (new Set(value.population.map(member => member.receiptId)).size !== value.population.length)
|
|
37
|
+
context.addIssue({ code: "custom", path: ["population"], message: "Run receipt identities must be unique." });
|
|
38
|
+
if (value.population.some(member => (member.fixtureId !== null) !== (value.policy.kind === "fixture")))
|
|
39
|
+
context.addIssue({ code: "custom", path: ["population"], message: "Only fixture runs require a fixture identity for every member." });
|
|
40
|
+
});
|
|
41
|
+
export const TasksetRunManifestSchema = TasksetRunManifestContentSchema.safeExtend({ contentHash: ReleaseHashSchema });
|
|
42
|
+
export function createTasksetRunManifest(input) {
|
|
43
|
+
const content = TasksetRunManifestContentSchema.parse(input);
|
|
44
|
+
return TasksetRunManifestSchema.parse({ ...content, contentHash: contentHash(content) });
|
|
45
|
+
}
|
|
46
|
+
export function tasksetRunMetricPolicy(taskset) {
|
|
47
|
+
return taskset.metrics ?? {
|
|
48
|
+
schemaVersion: "openpond.tasksetMetricPolicy.v1", primaryMetric: "mean_score",
|
|
49
|
+
aggregation: "mean_score", missingReward: "exclude", customAggregator: null,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Admission verifies this before dispatch. Package byte verification belongs
|
|
53
|
+
* to the package loader; this validates the release and population semantics. */
|
|
54
|
+
export function assertTasksetRunRelease(manifest, taskset) {
|
|
55
|
+
TasksetRunManifestSchema.parse(manifest);
|
|
56
|
+
assertContentHash(manifest, "Taskset run manifest");
|
|
57
|
+
assertTasksetRelease(taskset);
|
|
58
|
+
if (manifest.tasksetRelease.id !== taskset.id || manifest.tasksetRelease.contentHash !== taskset.contentHash)
|
|
59
|
+
throw new Error("Taskset run differs from its pinned release.");
|
|
60
|
+
if (contentHash(manifest.metricPolicy) !== contentHash(tasksetRunMetricPolicy(taskset)))
|
|
61
|
+
throw new Error("Taskset run metric differs from its pinned release.");
|
|
62
|
+
const tasks = new Set(taskset.tasks.map(task => task.id));
|
|
63
|
+
if (manifest.population.some(member => !tasks.has(member.taskId)))
|
|
64
|
+
throw new Error("Taskset run population contains an unknown task.");
|
|
65
|
+
if (manifest.execution.kind === "taskset" && (!taskset.environmentRelease || !taskset.verifierSetRelease
|
|
66
|
+
|| contentHash(manifest.execution.environmentRelease) !== contentHash(taskset.environmentRelease)
|
|
67
|
+
|| contentHash(manifest.execution.verifierSetRelease) !== contentHash(taskset.verifierSetRelease)
|
|
68
|
+
|| manifest.execution.policyHash !== contentHash(taskset.policy)))
|
|
69
|
+
throw new Error("Taskset-owned execution differs from its pinned release.");
|
|
70
|
+
}
|
|
71
|
+
/** Complete runs cannot drop failed members, add convenient attempts or relabel
|
|
72
|
+
* another task/seed's evidence. Ordering is always the admitted population's. */
|
|
73
|
+
export function orderTasksetRunReceipts(manifest, receipts) {
|
|
74
|
+
TasksetRunManifestSchema.parse(manifest);
|
|
75
|
+
assertContentHash(manifest, "Taskset run manifest");
|
|
76
|
+
const byId = new Map(receipts.map(receipt => [receipt.id, receipt]));
|
|
77
|
+
if (byId.size !== receipts.length || receipts.length !== manifest.population.length)
|
|
78
|
+
throw new Error("Run receipts differ from the complete admitted population.");
|
|
79
|
+
return manifest.population.map(member => {
|
|
80
|
+
const receipt = byId.get(member.receiptId);
|
|
81
|
+
if (!receipt || !verifyAttemptReceipt(receipt)
|
|
82
|
+
|| receipt.runManifest.id !== manifest.id || receipt.runManifest.contentHash !== manifest.contentHash
|
|
83
|
+
|| receipt.taskId !== member.taskId || receipt.seed !== member.seed)
|
|
84
|
+
throw new Error("Run receipt differs from its admitted member or manifest.");
|
|
85
|
+
if (receipt.metadata.gradingRole !== "evaluation")
|
|
86
|
+
throw new Error("Taskset run requires evaluation-role evidence.");
|
|
87
|
+
if (!receipt.terminal && !["infrastructure_failure", "timeout", "cancelled"].includes(receipt.failureClass ?? ""))
|
|
88
|
+
throw new Error("Taskset run member has no terminal accounting outcome.");
|
|
89
|
+
return receipt;
|
|
90
|
+
});
|
|
91
|
+
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from "./harness.js";
|
|
|
9
9
|
export * from "./learned-preference.js";
|
|
10
10
|
export * from "./runs.js";
|
|
11
11
|
export * from "./metrics.js";
|
|
12
|
+
export * from "./taskset-run-contract.js";
|
|
12
13
|
export * from "./model-improvement-qualification.js";
|
|
13
14
|
export * from "./preferences.js";
|
|
14
15
|
export * from "./review-conformance.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,sCAAsC,CAAC;AACrD,cAAc,kBAAkB,CAAC;AACjC,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,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,8 +1,9 @@
|
|
|
1
|
-
import { type TasksetEvaluationInput, type TasksetMetricExecutionInput } from "./metrics.js";
|
|
1
|
+
import { type TasksetEvaluationInput, type TasksetRunEvaluationInput, type TasksetMetricExecutionInput } from "./metrics.js";
|
|
2
2
|
import type { TasksetMetricResult } from "./metric-policy.js";
|
|
3
3
|
import type { EvaluationResult } from "./runs.js";
|
|
4
4
|
/** Verifies original source before stripping TS, then waits for worker termination
|
|
5
5
|
* on success, error or cancellation. Authored imports and host APIs are unavailable. */
|
|
6
6
|
export declare function executeTasksetMetricInWorker(input: TasksetMetricExecutionInput): Promise<TasksetMetricResult>;
|
|
7
7
|
export declare function aggregateTasksetEvaluationInWorker(input: TasksetEvaluationInput): Promise<EvaluationResult>;
|
|
8
|
+
export declare function aggregateTasksetRunInWorker(input: TasksetRunEvaluationInput): Promise<TasksetMetricResult>;
|
|
8
9
|
//# sourceMappingURL=metrics-node.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-node.d.ts","sourceRoot":"","sources":["../../../../src/metrics-node.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"metrics-node.d.ts","sourceRoot":"","sources":["../../../../src/metrics-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyF,KAAK,sBAAsB,EAAE,KAAK,yBAAyB,EAAE,KAAK,2BAA2B,EAA8B,MAAM,cAAc,CAAC;AAChP,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD;wFACwF;AACxF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAE7G;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE3G;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAE1G"}
|
package/dist/types/metrics.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type AttemptReceipt, type EvaluationResult, type RunManifest } from "./runs.js";
|
|
2
2
|
import { type TasksetMetricPolicy, type TasksetMetricResult } from "./metric-policy.js";
|
|
3
3
|
import { type TasksetRelease } from "./tasksets.js";
|
|
4
|
+
import { type TasksetRunManifest } from "./taskset-run-contract.js";
|
|
4
5
|
export * from "./metric-policy.js";
|
|
6
|
+
export * from "./taskset-run-contract.js";
|
|
5
7
|
export interface TasksetMetricExecutionInput {
|
|
6
|
-
manifest: RunManifest;
|
|
8
|
+
manifest: RunManifest | TasksetRunManifest;
|
|
7
9
|
receipts: AttemptReceipt[];
|
|
8
10
|
policy: TasksetMetricPolicy;
|
|
9
11
|
/** Exact UTF-8 module bytes, verified before any compiler or executor sees them. */
|
|
@@ -19,10 +21,18 @@ export type TasksetMetricExecutor = (input: {
|
|
|
19
21
|
signal?: AbortSignal;
|
|
20
22
|
}) => Promise<unknown>;
|
|
21
23
|
export interface TasksetEvaluationInput extends Omit<TasksetMetricExecutionInput, "policy"> {
|
|
24
|
+
manifest: RunManifest;
|
|
22
25
|
id: string;
|
|
23
26
|
taskset: TasksetRelease;
|
|
24
27
|
metadata?: Record<string, unknown>;
|
|
25
28
|
}
|
|
29
|
+
export interface TasksetRunEvaluationInput extends Omit<TasksetMetricExecutionInput, "policy" | "manifest"> {
|
|
30
|
+
manifest: TasksetRunManifest;
|
|
31
|
+
taskset: TasksetRelease;
|
|
32
|
+
}
|
|
33
|
+
/** Complete Taskset-owned, selected-Harness or fixture runs share the same
|
|
34
|
+
* metric arithmetic, with the population fixed before execution. */
|
|
35
|
+
export declare function aggregateTasksetRunReceipts(input: TasksetRunEvaluationInput, executor?: TasksetMetricExecutor): Promise<TasksetMetricResult>;
|
|
26
36
|
/** Preflight the exact metric source before any model or tool execution. */
|
|
27
37
|
export declare function assertTasksetMetricSource(taskset: TasksetRelease, source?: string): void;
|
|
28
38
|
/** Bind the declared metric to one frozen release and population, retaining
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../../src/metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAwE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/J,OAAO,EAA0F,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAChL,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1E,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../../src/metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAwE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/J,OAAO,EAA0F,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAChL,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAA8E,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAChJ,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAE1C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,WAAW,GAAG,kBAAkB,CAAC;IAC3C,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEvB,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,2BAA2B,EAAE,QAAQ,CAAC;IACzF,QAAQ,EAAE,WAAW,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,2BAA2B,EAAE,QAAQ,GAAG,UAAU,CAAC;IACzG,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;oEACoE;AACpE,wBAAsB,2BAA2B,CAAC,KAAK,EAAE,yBAAyB,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAKlJ;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAGxF;AAED;+EAC+E;AAC/E,wBAAsB,kCAAkC,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAOnJ;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,2BAA2B,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmE7I"}
|
|
@@ -62,7 +62,7 @@ export declare const harnessEvaluationReviewConformance: {
|
|
|
62
62
|
} | null;
|
|
63
63
|
classification: "runtime" | "taskset" | "no_action" | "harness_maintenance" | "product" | "model_improvement";
|
|
64
64
|
triage: {
|
|
65
|
-
layer: "model" | "tools" | "evaluation" | "runtime" | "
|
|
65
|
+
layer: "model" | "tools" | "evaluation" | "runtime" | "harness" | "product" | "retrieval";
|
|
66
66
|
status: "blocked" | "resolved" | "not_applicable" | "unresolved";
|
|
67
67
|
reason: string;
|
|
68
68
|
evidenceRefs: {
|
|
@@ -153,7 +153,7 @@ export declare const harnessEvaluationReviewConformance: {
|
|
|
153
153
|
} | null;
|
|
154
154
|
classification: "runtime" | "taskset" | "no_action" | "harness_maintenance" | "product" | "model_improvement";
|
|
155
155
|
triage: {
|
|
156
|
-
layer: "model" | "tools" | "evaluation" | "runtime" | "
|
|
156
|
+
layer: "model" | "tools" | "evaluation" | "runtime" | "harness" | "product" | "retrieval";
|
|
157
157
|
status: "blocked" | "resolved" | "not_applicable" | "unresolved";
|
|
158
158
|
reason: string;
|
|
159
159
|
evidenceRefs: {
|
|
@@ -244,7 +244,7 @@ export declare const harnessEvaluationReviewConformance: {
|
|
|
244
244
|
} | null;
|
|
245
245
|
classification: "runtime" | "taskset" | "no_action" | "harness_maintenance" | "product" | "model_improvement";
|
|
246
246
|
triage: {
|
|
247
|
-
layer: "model" | "tools" | "evaluation" | "runtime" | "
|
|
247
|
+
layer: "model" | "tools" | "evaluation" | "runtime" | "harness" | "product" | "retrieval";
|
|
248
248
|
status: "blocked" | "resolved" | "not_applicable" | "unresolved";
|
|
249
249
|
reason: string;
|
|
250
250
|
evidenceRefs: {
|
|
@@ -335,7 +335,7 @@ export declare const harnessEvaluationReviewConformance: {
|
|
|
335
335
|
} | null;
|
|
336
336
|
classification: "runtime" | "taskset" | "no_action" | "harness_maintenance" | "product" | "model_improvement";
|
|
337
337
|
triage: {
|
|
338
|
-
layer: "model" | "tools" | "evaluation" | "runtime" | "
|
|
338
|
+
layer: "model" | "tools" | "evaluation" | "runtime" | "harness" | "product" | "retrieval";
|
|
339
339
|
status: "blocked" | "resolved" | "not_applicable" | "unresolved";
|
|
340
340
|
reason: string;
|
|
341
341
|
evidenceRefs: {
|
|
@@ -580,7 +580,7 @@ export declare const harnessEvaluationReviewConformance: {
|
|
|
580
580
|
} | null;
|
|
581
581
|
classification: "runtime" | "taskset" | "no_action" | "harness_maintenance" | "product" | "model_improvement";
|
|
582
582
|
triage: {
|
|
583
|
-
layer: "model" | "tools" | "evaluation" | "runtime" | "
|
|
583
|
+
layer: "model" | "tools" | "evaluation" | "runtime" | "harness" | "product" | "retrieval";
|
|
584
584
|
status: "blocked" | "resolved" | "not_applicable" | "unresolved";
|
|
585
585
|
reason: string;
|
|
586
586
|
evidenceRefs: {
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type AttemptReceipt } from "./runs.js";
|
|
3
|
+
import { type TasksetMetricPolicy } from "./metric-policy.js";
|
|
4
|
+
import { type TasksetRelease } from "./tasksets.js";
|
|
5
|
+
/** A fixture check owns no model identity and cannot become a model evaluation. */
|
|
6
|
+
export declare const TasksetRunPolicySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
7
|
+
kind: z.ZodLiteral<"model">;
|
|
8
|
+
model: z.ZodObject<{
|
|
9
|
+
provider: z.ZodString;
|
|
10
|
+
model: z.ZodString;
|
|
11
|
+
revision: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
12
|
+
artifactHash: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
13
|
+
tokenizerRevision: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
14
|
+
chatTemplateHash: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
15
|
+
}, z.core.$strict>;
|
|
16
|
+
configurationHash: z.ZodString;
|
|
17
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
18
|
+
kind: z.ZodLiteral<"fixture">;
|
|
19
|
+
}, z.core.$strict>], "kind">;
|
|
20
|
+
export declare const TasksetRunExecutionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
21
|
+
kind: z.ZodLiteral<"taskset">;
|
|
22
|
+
environmentRelease: z.ZodObject<{
|
|
23
|
+
id: z.ZodString;
|
|
24
|
+
contentHash: z.ZodString;
|
|
25
|
+
}, z.core.$strict>;
|
|
26
|
+
verifierSetRelease: z.ZodObject<{
|
|
27
|
+
id: z.ZodString;
|
|
28
|
+
contentHash: z.ZodString;
|
|
29
|
+
}, z.core.$strict>;
|
|
30
|
+
policyHash: z.ZodString;
|
|
31
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
32
|
+
kind: z.ZodLiteral<"harness">;
|
|
33
|
+
harnessRelease: z.ZodObject<{
|
|
34
|
+
id: z.ZodString;
|
|
35
|
+
contentHash: z.ZodString;
|
|
36
|
+
}, z.core.$strict>;
|
|
37
|
+
}, z.core.$strict>], "kind">;
|
|
38
|
+
export declare const TasksetRunMemberSchema: z.ZodObject<{
|
|
39
|
+
receiptId: z.ZodString;
|
|
40
|
+
taskId: z.ZodString;
|
|
41
|
+
seed: z.ZodString;
|
|
42
|
+
fixtureId: z.ZodNullable<z.ZodString>;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
export declare const TasksetRunManifestContentSchema: z.ZodObject<{
|
|
45
|
+
schemaVersion: z.ZodLiteral<"openpond.tasksetRunManifest.v1">;
|
|
46
|
+
id: z.ZodString;
|
|
47
|
+
tasksetRelease: z.ZodObject<{
|
|
48
|
+
id: z.ZodString;
|
|
49
|
+
contentHash: z.ZodString;
|
|
50
|
+
}, z.core.$strict>;
|
|
51
|
+
packageHash: z.ZodString;
|
|
52
|
+
execution: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
53
|
+
kind: z.ZodLiteral<"taskset">;
|
|
54
|
+
environmentRelease: z.ZodObject<{
|
|
55
|
+
id: z.ZodString;
|
|
56
|
+
contentHash: z.ZodString;
|
|
57
|
+
}, z.core.$strict>;
|
|
58
|
+
verifierSetRelease: z.ZodObject<{
|
|
59
|
+
id: z.ZodString;
|
|
60
|
+
contentHash: z.ZodString;
|
|
61
|
+
}, z.core.$strict>;
|
|
62
|
+
policyHash: z.ZodString;
|
|
63
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
64
|
+
kind: z.ZodLiteral<"harness">;
|
|
65
|
+
harnessRelease: z.ZodObject<{
|
|
66
|
+
id: z.ZodString;
|
|
67
|
+
contentHash: z.ZodString;
|
|
68
|
+
}, z.core.$strict>;
|
|
69
|
+
}, z.core.$strict>], "kind">;
|
|
70
|
+
policy: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
71
|
+
kind: z.ZodLiteral<"model">;
|
|
72
|
+
model: z.ZodObject<{
|
|
73
|
+
provider: z.ZodString;
|
|
74
|
+
model: z.ZodString;
|
|
75
|
+
revision: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
76
|
+
artifactHash: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
77
|
+
tokenizerRevision: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
78
|
+
chatTemplateHash: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
79
|
+
}, z.core.$strict>;
|
|
80
|
+
configurationHash: z.ZodString;
|
|
81
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
82
|
+
kind: z.ZodLiteral<"fixture">;
|
|
83
|
+
}, z.core.$strict>], "kind">;
|
|
84
|
+
gradingRole: z.ZodLiteral<"evaluation">;
|
|
85
|
+
metricPolicy: z.ZodObject<{
|
|
86
|
+
schemaVersion: z.ZodLiteral<"openpond.tasksetMetricPolicy.v1">;
|
|
87
|
+
primaryMetric: z.ZodString;
|
|
88
|
+
aggregation: z.ZodEnum<{
|
|
89
|
+
mean_score: "mean_score";
|
|
90
|
+
pass_rate: "pass_rate";
|
|
91
|
+
weighted_mean: "weighted_mean";
|
|
92
|
+
custom: "custom";
|
|
93
|
+
}>;
|
|
94
|
+
missingReward: z.ZodEnum<{
|
|
95
|
+
zero: "zero";
|
|
96
|
+
exclude: "exclude";
|
|
97
|
+
}>;
|
|
98
|
+
taskWeights: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
99
|
+
customAggregator: z.ZodNullable<z.ZodObject<{
|
|
100
|
+
module: z.ZodString;
|
|
101
|
+
exportName: z.ZodString;
|
|
102
|
+
contentHash: z.ZodString;
|
|
103
|
+
timeoutMs: z.ZodNumber;
|
|
104
|
+
networkPolicy: z.ZodLiteral<"none">;
|
|
105
|
+
}, z.core.$strict>>;
|
|
106
|
+
}, z.core.$strict>;
|
|
107
|
+
population: z.ZodArray<z.ZodObject<{
|
|
108
|
+
receiptId: z.ZodString;
|
|
109
|
+
taskId: z.ZodString;
|
|
110
|
+
seed: z.ZodString;
|
|
111
|
+
fixtureId: z.ZodNullable<z.ZodString>;
|
|
112
|
+
}, z.core.$strict>>;
|
|
113
|
+
runtimeTarget: z.ZodObject<{
|
|
114
|
+
adapterId: z.ZodString;
|
|
115
|
+
placement: z.ZodEnum<{
|
|
116
|
+
local: "local";
|
|
117
|
+
remote: "remote";
|
|
118
|
+
colocated: "colocated";
|
|
119
|
+
provider_native: "provider_native";
|
|
120
|
+
}>;
|
|
121
|
+
runtimeVersion: z.ZodString;
|
|
122
|
+
capabilityReceipt: z.ZodString;
|
|
123
|
+
}, z.core.$strict>;
|
|
124
|
+
limits: z.ZodObject<{
|
|
125
|
+
maxTurns: z.ZodNumber;
|
|
126
|
+
timeoutMs: z.ZodNumber;
|
|
127
|
+
maxOutputBytes: z.ZodNumber;
|
|
128
|
+
maximumSpendUsd: z.ZodNullable<z.ZodNumber>;
|
|
129
|
+
}, z.core.$strict>;
|
|
130
|
+
createdAt: z.ZodString;
|
|
131
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
132
|
+
}, z.core.$strict>;
|
|
133
|
+
export declare const TasksetRunManifestSchema: z.ZodObject<{
|
|
134
|
+
schemaVersion: z.ZodLiteral<"openpond.tasksetRunManifest.v1">;
|
|
135
|
+
id: z.ZodString;
|
|
136
|
+
tasksetRelease: z.ZodObject<{
|
|
137
|
+
id: z.ZodString;
|
|
138
|
+
contentHash: z.ZodString;
|
|
139
|
+
}, z.core.$strict>;
|
|
140
|
+
packageHash: z.ZodString;
|
|
141
|
+
execution: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
142
|
+
kind: z.ZodLiteral<"taskset">;
|
|
143
|
+
environmentRelease: z.ZodObject<{
|
|
144
|
+
id: z.ZodString;
|
|
145
|
+
contentHash: z.ZodString;
|
|
146
|
+
}, z.core.$strict>;
|
|
147
|
+
verifierSetRelease: z.ZodObject<{
|
|
148
|
+
id: z.ZodString;
|
|
149
|
+
contentHash: z.ZodString;
|
|
150
|
+
}, z.core.$strict>;
|
|
151
|
+
policyHash: z.ZodString;
|
|
152
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
153
|
+
kind: z.ZodLiteral<"harness">;
|
|
154
|
+
harnessRelease: z.ZodObject<{
|
|
155
|
+
id: z.ZodString;
|
|
156
|
+
contentHash: z.ZodString;
|
|
157
|
+
}, z.core.$strict>;
|
|
158
|
+
}, z.core.$strict>], "kind">;
|
|
159
|
+
policy: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
160
|
+
kind: z.ZodLiteral<"model">;
|
|
161
|
+
model: z.ZodObject<{
|
|
162
|
+
provider: z.ZodString;
|
|
163
|
+
model: z.ZodString;
|
|
164
|
+
revision: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
165
|
+
artifactHash: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
166
|
+
tokenizerRevision: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
167
|
+
chatTemplateHash: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
168
|
+
}, z.core.$strict>;
|
|
169
|
+
configurationHash: z.ZodString;
|
|
170
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
171
|
+
kind: z.ZodLiteral<"fixture">;
|
|
172
|
+
}, z.core.$strict>], "kind">;
|
|
173
|
+
gradingRole: z.ZodLiteral<"evaluation">;
|
|
174
|
+
metricPolicy: z.ZodObject<{
|
|
175
|
+
schemaVersion: z.ZodLiteral<"openpond.tasksetMetricPolicy.v1">;
|
|
176
|
+
primaryMetric: z.ZodString;
|
|
177
|
+
aggregation: z.ZodEnum<{
|
|
178
|
+
mean_score: "mean_score";
|
|
179
|
+
pass_rate: "pass_rate";
|
|
180
|
+
weighted_mean: "weighted_mean";
|
|
181
|
+
custom: "custom";
|
|
182
|
+
}>;
|
|
183
|
+
missingReward: z.ZodEnum<{
|
|
184
|
+
zero: "zero";
|
|
185
|
+
exclude: "exclude";
|
|
186
|
+
}>;
|
|
187
|
+
taskWeights: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
188
|
+
customAggregator: z.ZodNullable<z.ZodObject<{
|
|
189
|
+
module: z.ZodString;
|
|
190
|
+
exportName: z.ZodString;
|
|
191
|
+
contentHash: z.ZodString;
|
|
192
|
+
timeoutMs: z.ZodNumber;
|
|
193
|
+
networkPolicy: z.ZodLiteral<"none">;
|
|
194
|
+
}, z.core.$strict>>;
|
|
195
|
+
}, z.core.$strict>;
|
|
196
|
+
population: z.ZodArray<z.ZodObject<{
|
|
197
|
+
receiptId: z.ZodString;
|
|
198
|
+
taskId: z.ZodString;
|
|
199
|
+
seed: z.ZodString;
|
|
200
|
+
fixtureId: z.ZodNullable<z.ZodString>;
|
|
201
|
+
}, z.core.$strict>>;
|
|
202
|
+
runtimeTarget: z.ZodObject<{
|
|
203
|
+
adapterId: z.ZodString;
|
|
204
|
+
placement: z.ZodEnum<{
|
|
205
|
+
local: "local";
|
|
206
|
+
remote: "remote";
|
|
207
|
+
colocated: "colocated";
|
|
208
|
+
provider_native: "provider_native";
|
|
209
|
+
}>;
|
|
210
|
+
runtimeVersion: z.ZodString;
|
|
211
|
+
capabilityReceipt: z.ZodString;
|
|
212
|
+
}, z.core.$strict>;
|
|
213
|
+
limits: z.ZodObject<{
|
|
214
|
+
maxTurns: z.ZodNumber;
|
|
215
|
+
timeoutMs: z.ZodNumber;
|
|
216
|
+
maxOutputBytes: z.ZodNumber;
|
|
217
|
+
maximumSpendUsd: z.ZodNullable<z.ZodNumber>;
|
|
218
|
+
}, z.core.$strict>;
|
|
219
|
+
createdAt: z.ZodString;
|
|
220
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
221
|
+
contentHash: z.ZodString;
|
|
222
|
+
}, z.core.$strict>;
|
|
223
|
+
export type TasksetRunManifest = z.infer<typeof TasksetRunManifestSchema>;
|
|
224
|
+
export declare function createTasksetRunManifest(input: z.input<typeof TasksetRunManifestContentSchema>): TasksetRunManifest;
|
|
225
|
+
export declare function tasksetRunMetricPolicy(taskset: TasksetRelease): TasksetMetricPolicy;
|
|
226
|
+
/** Admission verifies this before dispatch. Package byte verification belongs
|
|
227
|
+
* to the package loader; this validates the release and population semantics. */
|
|
228
|
+
export declare function assertTasksetRunRelease(manifest: TasksetRunManifest, taskset: TasksetRelease): void;
|
|
229
|
+
/** Complete runs cannot drop failed members, add convenient attempts or relabel
|
|
230
|
+
* another task/seed's evidence. Ordering is always the admitted population's. */
|
|
231
|
+
export declare function orderTasksetRunReceipts(manifest: TasksetRunManifest, receipts: AttemptReceipt[]): AttemptReceipt[];
|
|
232
|
+
//# sourceMappingURL=taskset-run-contract.d.ts.map
|
|
@@ -0,0 +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;AACzF,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiB1C,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;iFACiF;AACjF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAclH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openpond/evals",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Portable Tasksets, graders, evaluation runs, receipts, conformance fixtures, and Work evidence for OpenPond Harnesses",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
"zod": "^4.1.13"
|
|
159
159
|
},
|
|
160
160
|
"peerDependencies": {
|
|
161
|
-
"@openpond/harness": "^0.2.0"
|
|
161
|
+
"@openpond/harness": "^0.2.0 || ^0.3.0"
|
|
162
162
|
},
|
|
163
163
|
"devDependencies": {
|
|
164
164
|
"@openpond/harness": "workspace:*",
|