@openpond/evals 0.10.9 → 0.10.10

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 (74) hide show
  1. package/LEARNING.md +15 -0
  2. package/dist/graders.js +19 -4
  3. package/dist/learning/budgeted-reward-fixtures.js +34 -0
  4. package/dist/learning/contracts.js +3 -0
  5. package/dist/learning/grade-judge-budget.js +26 -0
  6. package/dist/learning/index.js +6 -0
  7. package/dist/learning/intake-history.js +2 -1
  8. package/dist/learning/intake-text.js +14 -0
  9. package/dist/learning/intake.js +5 -2
  10. package/dist/learning/judge-budget.js +59 -0
  11. package/dist/learning/model-judge.js +49 -0
  12. package/dist/learning/operations.js +3 -1
  13. package/dist/learning/reward-authoring.js +4 -0
  14. package/dist/learning/reward-calibration.js +66 -0
  15. package/dist/learning/reward-check-budget.js +27 -0
  16. package/dist/learning/reward-check-service.js +2 -2
  17. package/dist/learning/reward-check-worker.js +10 -2
  18. package/dist/learning/reward-checks.js +4 -1
  19. package/dist/learning/reward-fixture-executor.js +3 -2
  20. package/dist/learning/service.js +30 -5
  21. package/dist/rewards.js +15 -3
  22. package/dist/rollouts.js +2 -2
  23. package/dist/types/graders.d.ts +51 -0
  24. package/dist/types/graders.d.ts.map +1 -1
  25. package/dist/types/learning/admission.d.ts +5 -0
  26. package/dist/types/learning/admission.d.ts.map +1 -1
  27. package/dist/types/learning/budgeted-reward-fixtures.d.ts +27 -0
  28. package/dist/types/learning/budgeted-reward-fixtures.d.ts.map +1 -0
  29. package/dist/types/learning/contracts.d.ts +301 -0
  30. package/dist/types/learning/contracts.d.ts.map +1 -1
  31. package/dist/types/learning/grade-judge-budget.d.ts +10 -0
  32. package/dist/types/learning/grade-judge-budget.d.ts.map +1 -0
  33. package/dist/types/learning/index.d.ts +6 -0
  34. package/dist/types/learning/index.d.ts.map +1 -1
  35. package/dist/types/learning/intake-history.d.ts.map +1 -1
  36. package/dist/types/learning/intake-text.d.ts +6 -0
  37. package/dist/types/learning/intake-text.d.ts.map +1 -0
  38. package/dist/types/learning/intake.d.ts +1 -0
  39. package/dist/types/learning/intake.d.ts.map +1 -1
  40. package/dist/types/learning/iteration-dispatch-contracts.d.ts +1 -1
  41. package/dist/types/learning/iteration-reservation-contracts.d.ts +1 -1
  42. package/dist/types/learning/judge-budget.d.ts +43 -0
  43. package/dist/types/learning/judge-budget.d.ts.map +1 -0
  44. package/dist/types/learning/model-judge.d.ts +29 -0
  45. package/dist/types/learning/model-judge.d.ts.map +1 -0
  46. package/dist/types/learning/operations.d.ts +41 -0
  47. package/dist/types/learning/operations.d.ts.map +1 -1
  48. package/dist/types/learning/repository.d.ts +177 -4
  49. package/dist/types/learning/repository.d.ts.map +1 -1
  50. package/dist/types/learning/reward-authoring.d.ts.map +1 -1
  51. package/dist/types/learning/reward-calibration.d.ts +129 -0
  52. package/dist/types/learning/reward-calibration.d.ts.map +1 -0
  53. package/dist/types/learning/reward-check-budget.d.ts +12 -0
  54. package/dist/types/learning/reward-check-budget.d.ts.map +1 -0
  55. package/dist/types/learning/reward-check-service.d.ts +1 -1
  56. package/dist/types/learning/reward-check-service.d.ts.map +1 -1
  57. package/dist/types/learning/reward-check-worker.d.ts.map +1 -1
  58. package/dist/types/learning/reward-checks.d.ts +84 -0
  59. package/dist/types/learning/reward-checks.d.ts.map +1 -1
  60. package/dist/types/learning/reward-fixture-executor.d.ts +3 -0
  61. package/dist/types/learning/reward-fixture-executor.d.ts.map +1 -1
  62. package/dist/types/learning/schedule-contracts.d.ts +1 -1
  63. package/dist/types/learning/service.d.ts.map +1 -1
  64. package/dist/types/learning/transport.d.ts +198 -5
  65. package/dist/types/learning/transport.d.ts.map +1 -1
  66. package/dist/types/rewards.d.ts +107 -0
  67. package/dist/types/rewards.d.ts.map +1 -1
  68. package/dist/types/rollouts.d.ts.map +1 -1
  69. package/package.json +1 -1
  70. package/schemas/learning/v1/command-request.schema.json +225 -169
  71. package/schemas/learning/v1/decision.schema.json +192 -0
  72. package/schemas/learning/v1/grade.schema.json +335 -3
  73. package/schemas/learning/v1/reward.schema.json +22 -0
  74. package/schemas/learning/v1/reward_check.schema.json +335 -3
@@ -4,7 +4,8 @@ import { reserveLearningIteration } from "./iteration-reservation-service.js";
4
4
  import { synchronizeLearningSchedule } from "./schedule-service.js";
5
5
  import { inspectLearningPolicy } from "./policy-inspection.js";
6
6
  import { requireCurrentLearningEvidence as currentEvidence, sealLearningBatch } from "./batch-service.js";
7
- import { saveAuthoringDraft, archiveAuthoringDraft, finalizeAuthoringDraft } from "./authoring-service.js";
7
+ import { saveAuthoringDraft, archiveAuthoringDraft, finalizeAuthoringDraft, currentDraft } from "./authoring-service.js";
8
+ import { assertRewardCalibration, qualifyRewardCheck } from "./reward-calibration.js";
8
9
  import { queueRewardCheck, cancelRewardCheck } from "./reward-check-service.js";
9
10
  import { LearningDomainError } from "./errors.js";
10
11
  import { contentHash } from "@openpond/harness";
@@ -36,6 +37,29 @@ export function createLearningService(repository, options = {}) {
36
37
  }
37
38
  let pointers;
38
39
  switch (input.action) {
40
+ case "publish_checked_reward": {
41
+ const draft = await currentDraft(transaction, input.draft);
42
+ if (draft.targetKind !== "reward")
43
+ throw new LearningDomainError("reward_calibration_draft_kind_invalid", 422);
44
+ const base = draft.baseRelease ? await requireLearningRelease(transaction, "reward", draft.baseRelease) : null;
45
+ const check = await requireLearningResource(transaction, "reward_check", input.checkId, input.checkRevision);
46
+ const qualified = qualifyRewardCheck(draft, base, check);
47
+ const { contentHash: _rewardHash, ...content } = qualified.reward;
48
+ const publication = { action: "publish_resources", operationId: input.operationId,
49
+ finalizeDraft: { draft: input.draft, targetKind: "reward", release: learningRef(qualified.reward) },
50
+ resources: [
51
+ ...qualified.assets.map(({ contentHash: _assetHash, ...content }) => ({ kind: "asset", expectedRevision: 0, content })),
52
+ { kind: "reward", expectedRevision: base?.revision ?? 0, content },
53
+ ],
54
+ };
55
+ pointers = [];
56
+ for (const resource of publication.resources)
57
+ pointers.push(await publish(transaction, { ...resource, action: "publish", operationId: input.operationId }));
58
+ const finalized = await finalizeAuthoringDraft(transaction, publication, pointers, now());
59
+ if (finalized)
60
+ pointers.push(finalized);
61
+ break;
62
+ }
39
63
  case "import_intake":
40
64
  pointers = await importTaskIntake(transaction, input, now(), submit);
41
65
  break;
@@ -50,7 +74,7 @@ export function createLearningService(repository, options = {}) {
50
74
  pointers = await reserveLearningIteration(transaction, input, context.actor.id, now());
51
75
  break;
52
76
  case "queue_reward_check":
53
- pointers = [await queueRewardCheck(transaction, input, operationId, now())];
77
+ pointers = [await queueRewardCheck(transaction, input, operationId, now(), context.actor.id)];
54
78
  break;
55
79
  case "cancel_reward_check":
56
80
  pointers = [await cancelRewardCheck(transaction, input, now())];
@@ -83,7 +107,7 @@ export function createLearningService(repository, options = {}) {
83
107
  pointers = [await resolveFeedback(transaction, input, context.actor.id)];
84
108
  break;
85
109
  case "queue_grade":
86
- pointers = [await queueGrade(transaction, input, operationId)];
110
+ pointers = [await queueGrade(transaction, input, operationId, context.actor.id)];
87
111
  break;
88
112
  case "cancel_grade":
89
113
  pointers = [await cancelGrade(transaction, input)];
@@ -118,6 +142,7 @@ export function createLearningService(repository, options = {}) {
118
142
  }
119
143
  case "reward": {
120
144
  resource = createRewardRelease(input.content);
145
+ await assertRewardCalibration(transaction, resource);
121
146
  const implementation = input.content.implementation;
122
147
  const references = [
123
148
  ...input.content.assets,
@@ -282,7 +307,7 @@ export function createLearningService(repository, options = {}) {
282
307
  await transaction.put("feedback", resolved, feedback.revision, { parentId: learningEvidenceId(feedback.submission.sourceId, feedback.submission.exampleId, feedback.submission.attemptId), status: resolved.status });
283
308
  return pointer("feedback", resolved);
284
309
  }
285
- async function queueGrade(transaction, input, operationId) {
310
+ async function queueGrade(transaction, input, operationId, requestedBy) {
286
311
  const evidence = await currentEvidence(transaction, input.evidence);
287
312
  const definition = await requireLearningRelease(transaction, "definition", evidence.submission.taskDefinition);
288
313
  if (!inspectTaskEvidence(evidence, definition).taskReady)
@@ -296,7 +321,7 @@ export function createLearningService(repository, options = {}) {
296
321
  schemaVersion: "openpond.taskGradeRun.v1", id: `grade-${operationId}`, revision: 1,
297
322
  evidence: learningRef(evidence), binding: definition.rewardBinding, target: input.target, output,
298
323
  status: "queued", composition: null, leaseOwner: null, leaseExpiresAt: null, attemptCount: 0,
299
- timeoutMs: input.timeoutMs, maximumSpendUsd: input.maximumSpendUsd, failure: null, createdAt: now(), updatedAt: now(),
324
+ timeoutMs: input.timeoutMs, maximumSpendUsd: input.maximumSpendUsd, requestedBy, failure: null, createdAt: now(), updatedAt: now(),
300
325
  });
301
326
  await transaction.put("grade", grade, 0, { parentId: evidence.id, status: grade.status });
302
327
  return pointer("grade", grade);
package/dist/rewards.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LearningDomainError } from "./learning/errors.js";
2
2
  import { z } from "zod";
3
3
  import { ImmutableAssetRefSchema, ImmutableReleaseRefSchema, ReleaseHashSchema, ReleaseIdSchema, contentHash } from "@openpond/harness";
4
- import { gradeEvidence } from "./graders.js";
4
+ import { gradeEvidence, GraderEvidenceSchema } from "./graders.js";
5
5
  import { CustomVerifierGraderSpecSchema, DeterministicGraderSpecSchema, GraderSpecSchema, HumanGraderSpecSchema, ModelJudgeGraderSpecSchema } from "./tasksets.js";
6
6
  import { assertBoundedTaskJson, validateTaskSchema } from "./task-schema.js";
7
7
  const bindingFields = { id: true, version: true, weight: true, hardGate: true, rewardEligible: true, privileged: true };
@@ -22,6 +22,7 @@ export const RewardReleaseContentSchema = z.object({
22
22
  rawScore: z.object({ minimum: z.number().finite(), maximum: z.number().finite() }).strict(),
23
23
  assets: z.array(ImmutableAssetRefSchema).max(1_000),
24
24
  fixtureSetRef: ImmutableAssetRefSchema.optional(),
25
+ calibrationCheckRef: ImmutableReleaseRefSchema.extend({ revision: z.number().int().positive() }).optional(),
25
26
  }).strict().superRefine((reward, context) => {
26
27
  if (reward.fixtureSetRef && (reward.fixtureSetRef.visibility !== "verifier" || !reward.assets.some(asset => contentHash(asset) === contentHash(reward.fixtureSetRef))))
27
28
  context.addIssue({ code: "custom", path: ["fixtureSetRef"], message: "Reward fixtures must be included as a private verifier asset." });
@@ -86,6 +87,7 @@ export const BoundRewardResultSchema = z.object({
86
87
  normalizedScore: z.number().min(0).max(1).nullable(),
87
88
  passed: z.boolean().nullable(),
88
89
  evidenceHashes: z.array(ReleaseHashSchema).max(1_000),
90
+ graderEvidence: GraderEvidenceSchema.optional(),
89
91
  message: z.string().max(20_000).nullable(),
90
92
  }).strict();
91
93
  export const RewardCompositionContentSchema = z.object({
@@ -136,6 +138,8 @@ export function compileBoundGraders(binding, rewards) {
136
138
  }
137
139
  export async function executeRewardBinding(input) {
138
140
  const resolved = resolveBoundRewards(input.binding, input.rewards);
141
+ if (input.purpose === "fixture_calibration" && resolved.some(({ source }) => source.role !== "evaluation"))
142
+ throw new LearningDomainError("reward_calibration_requires_evaluation_binding");
139
143
  const results = [];
140
144
  for (const { source, reward } of resolved) {
141
145
  input.signal?.throwIfAborted();
@@ -154,10 +158,10 @@ export async function executeRewardBinding(input) {
154
158
  }
155
159
  }
156
160
  else {
157
- const [evidence] = await gradeEvidence({ task: input.task, evidence: input.evidence, graders: [compileSource(source, reward)], modelJudge: input.modelJudge, customVerifier: input.customVerifier });
161
+ const [evidence] = await gradeEvidence({ task: input.task, evidence: input.evidence, graders: [compileSource(source, reward)], modelJudge: input.modelJudge, customVerifier: input.customVerifier, purpose: input.purpose, signal: input.signal });
158
162
  if (!evidence)
159
163
  throw new LearningDomainError("reward_evidence_missing");
160
- Object.assign(result, { status: evidence.score === null ? "unavailable" : "scored", rawScore: evidence.score, passed: evidence.score === null ? null : evidence.passed, evidenceHashes: [evidence.contentHash], message: evidence.feedback.join("\n") });
164
+ Object.assign(result, { status: evidence.score === null ? "unavailable" : "scored", rawScore: evidence.score, passed: evidence.score === null ? null : evidence.passed, evidenceHashes: [evidence.contentHash], graderEvidence: evidence, message: evidence.feedback.join("\n") });
161
165
  }
162
166
  if (result.status === "scored") {
163
167
  if (result.rawScore === null || !Number.isFinite(result.rawScore) || result.rawScore < reward.rawScore.minimum || result.rawScore > reward.rawScore.maximum)
@@ -186,6 +190,14 @@ export function composeBoundRewards(input) {
186
190
  const result = results.find((candidate) => candidate.graderId === source.graderId);
187
191
  if (!result || contentHash(result.reward) !== contentHash(source.reward) || result.role !== source.role)
188
192
  throw new LearningDomainError("reward_result_binding_mismatch");
193
+ if (result.graderEvidence) {
194
+ const { contentHash: evidenceHash, ...body } = result.graderEvidence;
195
+ if (contentHash(body) !== evidenceHash || !result.evidenceHashes.includes(evidenceHash)
196
+ || body.graderId !== source.graderId || body.graderVersion !== String(source.reward.revision))
197
+ throw new LearningDomainError("reward_grader_evidence_mismatch");
198
+ if (result.status === "scored" && (body.score !== result.rawScore || body.passed !== result.passed))
199
+ throw new LearningDomainError("reward_grader_evidence_score_mismatch");
200
+ }
189
201
  if ((result.status === "scored") !== (result.rawScore !== null && result.normalizedScore !== null && result.passed !== null))
190
202
  throw new LearningDomainError("reward_result_score_state_invalid");
191
203
  if (result.status !== "scored" && (result.rawScore !== null || result.normalizedScore !== null || result.passed !== null))
package/dist/rollouts.js CHANGED
@@ -116,7 +116,7 @@ export const CanonicalRolloutRecordSchema = z.object({
116
116
  ...CanonicalRolloutRecordFieldsSchema.shape,
117
117
  contentHash: ReleaseHashSchema,
118
118
  }).strict().superRefine(validateCanonicalRolloutRecord);
119
- export const RolloutQualificationSchema = z.object({
119
+ export const RolloutQualificationSchema = /* @__PURE__ */ (() => z.object({
120
120
  schemaVersion: z.literal("openpond.rolloutQualification.v1"),
121
121
  rolloutCount: z.number().int().nonnegative(),
122
122
  scoredCount: z.number().int().nonnegative(),
@@ -128,7 +128,7 @@ export const RolloutQualificationSchema = z.object({
128
128
  distinctRewardCount: z.number().int().nonnegative(),
129
129
  eligibleForRl: z.boolean(),
130
130
  reasons: z.array(z.string().trim().min(1).max(1_000)).max(100),
131
- }).strict();
131
+ }).strict())();
132
132
  export function createCanonicalRolloutRecord(input) {
133
133
  const attemptReceipt = AttemptReceiptSchema.parse(input.attemptReceipt);
134
134
  if (!verifyAttemptReceipt(attemptReceipt)) {
@@ -1,6 +1,18 @@
1
1
  import { z } from "zod";
2
2
  import type { GraderSpec, TaskRecord } from "./tasksets.js";
3
3
  export { evaluateDeterministicGrader, portableDeterministicCheck } from "./deterministic-graders.js";
4
+ export declare const ModelJudgeReceiptSchema: z.ZodObject<{
5
+ schemaVersion: z.ZodLiteral<"openpond.modelJudgeReceipt.v1">;
6
+ providerId: z.ZodString;
7
+ modelId: z.ZodString;
8
+ modelRevision: z.ZodNullable<z.ZodString>;
9
+ responseId: z.ZodNullable<z.ZodString>;
10
+ requestHash: z.ZodString;
11
+ responseHash: z.ZodString;
12
+ inputTokens: z.ZodNullable<z.ZodNumber>;
13
+ outputTokens: z.ZodNullable<z.ZodNumber>;
14
+ costUsd: z.ZodNullable<z.ZodNumber>;
15
+ }, z.core.$strict>;
4
16
  export declare const GraderEvidenceContentSchema: z.ZodObject<{
5
17
  schemaVersion: z.ZodLiteral<"openpond.graderEvidence.v1">;
6
18
  graderId: z.ZodString;
@@ -19,6 +31,18 @@ export declare const GraderEvidenceContentSchema: z.ZodObject<{
19
31
  feedback: z.ZodArray<z.ZodString>;
20
32
  visibleEvidenceRefs: z.ZodArray<z.ZodString>;
21
33
  privilegedEvidenceRefs: z.ZodArray<z.ZodString>;
34
+ modelJudgeReceipt: z.ZodOptional<z.ZodObject<{
35
+ schemaVersion: z.ZodLiteral<"openpond.modelJudgeReceipt.v1">;
36
+ providerId: z.ZodString;
37
+ modelId: z.ZodString;
38
+ modelRevision: z.ZodNullable<z.ZodString>;
39
+ responseId: z.ZodNullable<z.ZodString>;
40
+ requestHash: z.ZodString;
41
+ responseHash: z.ZodString;
42
+ inputTokens: z.ZodNullable<z.ZodNumber>;
43
+ outputTokens: z.ZodNullable<z.ZodNumber>;
44
+ costUsd: z.ZodNullable<z.ZodNumber>;
45
+ }, z.core.$strict>>;
22
46
  }, z.core.$strict>;
23
47
  export declare const GraderEvidenceSchema: z.ZodObject<{
24
48
  schemaVersion: z.ZodLiteral<"openpond.graderEvidence.v1">;
@@ -38,6 +62,18 @@ export declare const GraderEvidenceSchema: z.ZodObject<{
38
62
  feedback: z.ZodArray<z.ZodString>;
39
63
  visibleEvidenceRefs: z.ZodArray<z.ZodString>;
40
64
  privilegedEvidenceRefs: z.ZodArray<z.ZodString>;
65
+ modelJudgeReceipt: z.ZodOptional<z.ZodObject<{
66
+ schemaVersion: z.ZodLiteral<"openpond.modelJudgeReceipt.v1">;
67
+ providerId: z.ZodString;
68
+ modelId: z.ZodString;
69
+ modelRevision: z.ZodNullable<z.ZodString>;
70
+ responseId: z.ZodNullable<z.ZodString>;
71
+ requestHash: z.ZodString;
72
+ responseHash: z.ZodString;
73
+ inputTokens: z.ZodNullable<z.ZodNumber>;
74
+ outputTokens: z.ZodNullable<z.ZodNumber>;
75
+ costUsd: z.ZodNullable<z.ZodNumber>;
76
+ }, z.core.$strict>>;
41
77
  contentHash: z.ZodString;
42
78
  }, z.core.$strict>;
43
79
  export type AttemptEvidence = {
@@ -52,6 +88,7 @@ export type ModelJudgeRunner = (input: {
52
88
  }>;
53
89
  task: TaskRecord;
54
90
  evidence: AttemptEvidence;
91
+ signal?: AbortSignal;
55
92
  }) => Promise<Omit<GraderEvidence, "schemaVersion" | "graderId" | "graderVersion" | "contentHash">>;
56
93
  export type CustomVerifierRunner = (input: {
57
94
  grader: Extract<GraderSpec, {
@@ -66,6 +103,8 @@ export declare function gradeEvidence(input: {
66
103
  graders: GraderSpec[];
67
104
  modelJudge?: ModelJudgeRunner;
68
105
  customVerifier?: CustomVerifierRunner;
106
+ purpose?: "grading" | "fixture_calibration";
107
+ signal?: AbortSignal;
69
108
  }): Promise<GraderEvidence[]>;
70
109
  export type GraderEvidence = z.infer<typeof GraderEvidenceSchema>;
71
110
  declare const GradeSummarySchema: z.ZodObject<{
@@ -132,6 +171,18 @@ export declare const TaskGradeSchema: z.ZodObject<{
132
171
  feedback: z.ZodArray<z.ZodString>;
133
172
  visibleEvidenceRefs: z.ZodArray<z.ZodString>;
134
173
  privilegedEvidenceRefs: z.ZodArray<z.ZodString>;
174
+ modelJudgeReceipt: z.ZodOptional<z.ZodObject<{
175
+ schemaVersion: z.ZodLiteral<"openpond.modelJudgeReceipt.v1">;
176
+ providerId: z.ZodString;
177
+ modelId: z.ZodString;
178
+ modelRevision: z.ZodNullable<z.ZodString>;
179
+ responseId: z.ZodNullable<z.ZodString>;
180
+ requestHash: z.ZodString;
181
+ responseHash: z.ZodString;
182
+ inputTokens: z.ZodNullable<z.ZodNumber>;
183
+ outputTokens: z.ZodNullable<z.ZodNumber>;
184
+ costUsd: z.ZodNullable<z.ZodNumber>;
185
+ }, z.core.$strict>>;
135
186
  contentHash: z.ZodString;
136
187
  }, z.core.$strict>>;
137
188
  contentHash: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"graders.d.ts","sourceRoot":"","sources":["../../../../src/graders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graders.d.ts","sourceRoot":"","sources":["../../../../src/graders.ts"],"names":[],"mappings":"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"}
@@ -337,6 +337,11 @@ export declare const TaskBatchPackageMetadataSchema: z.ZodObject<{
337
337
  host_private: "host_private";
338
338
  }>;
339
339
  }, z.core.$strict>>;
340
+ calibrationCheckRef: z.ZodOptional<z.ZodObject<{
341
+ id: z.ZodString;
342
+ contentHash: z.ZodString;
343
+ revision: z.ZodNumber;
344
+ }, z.core.$strict>>;
340
345
  contentHash: z.ZodString;
341
346
  }, z.core.$strict>>;
342
347
  admissions: z.ZodArray<z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../../../../src/learning/admission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admission.d.ts","sourceRoot":"","sources":["../../../../../src/learning/admission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { executeJavaScriptVerifier } from "../javascript-verifier.js";
2
+ import { type BoundJudgeRequest, type BoundJudgeResponse } from "./model-judge.js";
3
+ import { type LearningRepository } from "./repository.js";
4
+ import type { RewardCheckRun, RewardCheckRuntime } from "./reward-checks.js";
5
+ import type { RewardFixtureExecutor } from "./reward-check-worker.js";
6
+ export interface BoundJudgeProvider {
7
+ /** Resolve exact model configuration and a conservative charge ceiling without
8
+ * performing inference. dispatch settles after the provider request closes. */
9
+ prepare(request: BoundJudgeRequest, context?: {
10
+ scope: string;
11
+ run: Pick<RewardCheckRun, "id" | "requestedBy">;
12
+ }): Promise<{
13
+ maximumChargeUsd: number;
14
+ dispatch(signal?: AbortSignal): Promise<BoundJudgeResponse>;
15
+ }>;
16
+ cancel(input: {
17
+ scope: string;
18
+ run: Pick<RewardCheckRun, "id" | "judgeCalls">;
19
+ }): Promise<boolean>;
20
+ }
21
+ export declare function createBudgetedRewardFixtureExecutor(options: {
22
+ runtime: RewardCheckRuntime;
23
+ repository: LearningRepository;
24
+ provider: BoundJudgeProvider;
25
+ executeJavaScript: typeof executeJavaScriptVerifier;
26
+ }): RewardFixtureExecutor;
27
+ //# sourceMappingURL=budgeted-reward-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budgeted-reward-fixtures.d.ts","sourceRoot":"","sources":["../../../../../src/learning/budgeted-reward-fixtures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAG3E,OAAO,EAA+B,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGhH,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,MAAM,WAAW,kBAAkB;IACjC;mFAC+E;IAC/E,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,aAAa,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAE,CAAC,CAAC;IACtN,MAAM,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,YAAY,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpG;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE;IAC3D,OAAO,EAAE,kBAAkB,CAAC;IAAC,UAAU,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,kBAAkB,CAAC;IAC1F,iBAAiB,EAAE,OAAO,yBAAyB,CAAC;CACrD,GAAG,qBAAqB,CAwBxB"}