@openpond/evals 0.10.6 → 0.10.7

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 (31) hide show
  1. package/LEARNING.md +18 -0
  2. package/dist/learning/contracts.js +9 -0
  3. package/dist/learning/index.js +1 -0
  4. package/dist/learning/iteration-candidate-decision.js +12 -7
  5. package/dist/learning/iteration-reservation-contracts.js +2 -1
  6. package/dist/learning/iteration-reservation-service.js +5 -1
  7. package/dist/learning/iteration-training-parent.js +47 -0
  8. package/dist/learning/policy-inspection.js +15 -3
  9. package/dist/types/learning/contracts.d.ts +44 -0
  10. package/dist/types/learning/contracts.d.ts.map +1 -1
  11. package/dist/types/learning/index.d.ts +1 -0
  12. package/dist/types/learning/index.d.ts.map +1 -1
  13. package/dist/types/learning/iteration-candidate-decision.d.ts +16 -0
  14. package/dist/types/learning/iteration-candidate-decision.d.ts.map +1 -1
  15. package/dist/types/learning/iteration-reservation-contracts.d.ts +14 -0
  16. package/dist/types/learning/iteration-reservation-contracts.d.ts.map +1 -1
  17. package/dist/types/learning/iteration-reservation-service.d.ts.map +1 -1
  18. package/dist/types/learning/iteration-training-parent.d.ts +37 -0
  19. package/dist/types/learning/iteration-training-parent.d.ts.map +1 -0
  20. package/dist/types/learning/policy-inspection.d.ts +34 -0
  21. package/dist/types/learning/policy-inspection.d.ts.map +1 -1
  22. package/dist/types/learning/repository.d.ts +29 -0
  23. package/dist/types/learning/repository.d.ts.map +1 -1
  24. package/dist/types/learning/service.d.ts +34 -0
  25. package/dist/types/learning/service.d.ts.map +1 -1
  26. package/dist/types/learning/transport.d.ts +29 -0
  27. package/dist/types/learning/transport.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/schemas/learning/v1/chain.schema.json +75 -2
  30. package/schemas/learning/v1/iteration.schema.json +47 -0
  31. package/schemas/learning/v1/policy-inspection.schema.json +127 -33
package/LEARNING.md CHANGED
@@ -79,6 +79,24 @@ for untrusted schemas and deliberately rejects unsupported capabilities.
79
79
 
80
80
  ## Host responsibilities
81
81
 
82
+ ### Accepted checkpoints between iterations
83
+
84
+ Candidate decisions are reconciled with their verified `decidedAt`, immutable
85
+ decision reference, execution, evaluation and terminal receipt. The chain records
86
+ the latest accepted candidate. New reservations capture its exact accepted
87
+ iteration revision in `trainingParentSelection`; `trainingParent` becomes that
88
+ candidate's artifact reference. Before the first acceptance, the configured base
89
+ parent is used. A rejected candidate is removed from future parent selection;
90
+ already reserved iterations keep their captured parent and original review.
91
+
92
+ `inspectPolicy` returns the resolved next `trainingParent`, or a blocker when its
93
+ accepted evidence or underlying model/method is incompatible. Execution owners
94
+ must resolve the captured iteration revision, verify the team/Model-scoped
95
+ terminal checkpoint and materialize it through their existing continuation
96
+ adapter. The hosted adapter uses fresh optimizer state. Acceptance does not
97
+ activate serving. Candidate decisions lacking verified timing must be reconciled
98
+ from their retained provider receipts before another reservation can use them.
99
+
82
100
  ### Reward fixture checks
83
101
 
84
102
  Reward drafts may contain up to 50 named fixtures. JSON and numeric editor fields
@@ -217,6 +217,13 @@ export const LearningPolicyContentSchema = z.object({
217
217
  context.addIssue({ code: "custom", path: ["limits"], message: "Daily spend must permit the iteration budget." });
218
218
  });
219
219
  export const LearningPolicySchema = LearningPolicyContentSchema.safeExtend({ contentHash: ReleaseHashSchema }).strict();
220
+ export const LearningAcceptedParentSchema = z.object({
221
+ iterationId: ReleaseIdSchema,
222
+ iterationRevision: z.number().int().positive(),
223
+ candidate: ImmutableReleaseRefSchema,
224
+ decision: LearningRevisionRefSchema,
225
+ decidedAt: ReleaseTimestampSchema,
226
+ }).strict();
220
227
  export const LearningIterationStatusSchema = z.enum(["waiting_for_data", "waiting_for_review", "ready", "dispatching", "training", "evaluating", "candidate_ready", "accepted", "rejected", "paused", "failed", "cancelling", "cancelled", "completed_without_candidate"]);
221
228
  export const LearningIterationSchema = z.object({
222
229
  schemaVersion: z.literal("openpond.learningIteration.v1"),
@@ -228,12 +235,14 @@ export const LearningIterationSchema = z.object({
228
235
  batch: LearningRevisionRefSchema.nullable(),
229
236
  sourceWatermarks: z.record(ReleaseIdSchema, z.number().int().nonnegative()),
230
237
  trainingParent: ImmutableReleaseRefSchema,
238
+ trainingParentSelection: LearningAcceptedParentSchema.nullable().optional(),
231
239
  teacher: ImmutableReleaseRefSchema.nullable(),
232
240
  upstreamEvent: ImmutableReleaseRefSchema.nullable(),
233
241
  trainingJob: ImmutableReleaseRefSchema.nullable(),
234
242
  evaluationJob: ImmutableReleaseRefSchema.nullable(),
235
243
  candidateVersion: ImmutableReleaseRefSchema.nullable(),
236
244
  candidateDecision: LearningRevisionRefSchema.nullable().default(null),
245
+ candidateDecisionAt: ReleaseTimestampSchema.nullable().optional(),
237
246
  dispatchId: ReleaseIdSchema,
238
247
  retryCount: z.number().int().nonnegative(),
239
248
  spendUsd: z.number().nonnegative(),
@@ -16,6 +16,7 @@ export * from "./iteration-reservation-contracts.js";
16
16
  export * from "./iteration-dispatch-contracts.js";
17
17
  export * from "./iteration-dispatch-worker.js";
18
18
  export * from "./iteration-candidate-decision.js";
19
+ export { resolveLearningTrainingParent } from "./iteration-training-parent.js";
19
20
  export * from "./schedule-contracts.js";
20
21
  export * from "./schedule-service.js";
21
22
  export * from "./schedule-worker.js";
@@ -1,13 +1,15 @@
1
1
  import { z } from "zod";
2
- import { ImmutableReleaseRefSchema, ReleaseIdSchema } from "@openpond/harness";
2
+ import { ImmutableReleaseRefSchema, ReleaseIdSchema, ReleaseTimestampSchema } from "@openpond/harness";
3
3
  import { LearningIterationSchema, LearningRevisionRefSchema } from "./contracts.js";
4
4
  import { LearningDomainError } from "./errors.js";
5
5
  import { LearningChainSchema } from "./iteration-reservation-contracts.js";
6
6
  import { requireLearningResource } from "./repository.js";
7
+ import { latestAcceptedLearningParent } from "./iteration-training-parent.js";
7
8
  export const LearningCandidateDecisionObservationSchema = z.object({
8
9
  scope: ReleaseIdSchema,
9
10
  iterationId: ReleaseIdSchema,
10
11
  decision: LearningRevisionRefSchema,
12
+ decidedAt: ReleaseTimestampSchema,
11
13
  outcome: z.enum(["accepted", "rejected"]),
12
14
  execution: ImmutableReleaseRefSchema,
13
15
  candidate: ImmutableReleaseRefSchema,
@@ -34,18 +36,21 @@ export async function reconcileLearningCandidateDecision(repository, value, opti
34
36
  if (previous && input.decision.revision < previous.revision)
35
37
  return iteration;
36
38
  if (previous && input.decision.revision === previous.revision) {
37
- if (!same(previous, input.decision) || iteration.status !== input.outcome)
39
+ if (!same(previous, input.decision) || iteration.status !== input.outcome
40
+ || (iteration.candidateDecisionAt != null && iteration.candidateDecisionAt !== input.decidedAt))
38
41
  throw new LearningDomainError("learning_candidate_decision_revision_conflict", 409);
39
- return iteration;
42
+ if (iteration.candidateDecisionAt != null)
43
+ return iteration;
40
44
  }
41
45
  const now = (options.now ?? (() => new Date().toISOString()))();
42
46
  const updated = LearningIterationSchema.parse({ ...iteration, revision: iteration.revision + 1,
43
- candidateDecision: input.decision, status: input.outcome, updatedAt: now });
47
+ candidateDecision: input.decision, candidateDecisionAt: input.decidedAt, status: input.outcome, updatedAt: now });
44
48
  await tx.put("iteration", updated, iteration.revision, { parentId: dispatch.chainId, status: updated.status });
45
49
  const chain = await requireLearningResource(tx, "chain", dispatch.chainId);
46
- if (chain.activeIterationId === iteration.id)
47
- await tx.put("chain", LearningChainSchema.parse({ ...chain,
48
- revision: chain.revision + 1, activeIterationId: null, updatedAt: now }), chain.revision, { parentId: chain.modelProjectId });
50
+ const acceptedParent = await latestAcceptedLearningParent(tx, chain.id);
51
+ await tx.put("chain", LearningChainSchema.parse({ ...chain, acceptedParent,
52
+ revision: chain.revision + 1, activeIterationId: chain.activeIterationId === iteration.id ? null : chain.activeIterationId,
53
+ updatedAt: now }), chain.revision, { parentId: chain.modelProjectId });
49
54
  return updated;
50
55
  });
51
56
  }
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { ReleaseHashSchema, ReleaseIdSchema, ReleaseTimestampSchema } from "@openpond/harness";
3
- import { LearningRevisionRefSchema } from "./contracts.js";
3
+ import { LearningAcceptedParentSchema, LearningRevisionRefSchema } from "./contracts.js";
4
4
  export const LearningIterationTriggerSchema = z.discriminatedUnion("kind", [
5
5
  z.object({ kind: z.literal("manual"), identity: ReleaseIdSchema }).strict(),
6
6
  z.object({ kind: z.literal("schedule"), scheduledAt: ReleaseTimestampSchema }).strict(),
@@ -12,6 +12,7 @@ export const LearningChainSchema = z.object({
12
12
  revision: z.number().int().positive(),
13
13
  modelProjectId: ReleaseIdSchema,
14
14
  activeIterationId: ReleaseIdSchema.nullable(),
15
+ acceptedParent: LearningAcceptedParentSchema.nullable().optional(),
15
16
  latestIterationId: ReleaseIdSchema,
16
17
  lastReservedAt: ReleaseTimestampSchema.nullable(),
17
18
  updatedAt: ReleaseTimestampSchema,
@@ -6,6 +6,7 @@ import { inspectIterationEligibility, learningChainId, learningConsumptionId } f
6
6
  import { readLearningIterationBudget } from "./iteration-budget.js";
7
7
  import { LearningChainSchema, LearningConsumptionSchema, LearningIterationReservationSchema } from "./iteration-reservation-contracts.js";
8
8
  import { requireLearningRelease, requireLearningResource } from "./repository.js";
9
+ import { latestAcceptedLearningParent, resolveLearningTrainingParent } from "./iteration-training-parent.js";
9
10
  /** The caller owns one scope-serialized transaction. This never submits a Job. */
10
11
  export async function reserveLearningIteration(transaction, input, actorId, now) {
11
12
  const policy = await requireLearningRelease(transaction, "policy", input.policy);
@@ -44,6 +45,8 @@ export async function reserveLearningIteration(transaction, input, actorId, now)
44
45
  const ready = eligibility.counts.eligible >= policy.admission.minimumApprovedExamples;
45
46
  const status = ready ? "ready" : eligibility.counts.awaitingReview > 0 ? "waiting_for_review" : "waiting_for_data";
46
47
  const pointers = [];
48
+ const acceptedParent = await latestAcceptedLearningParent(transaction, chainId, true);
49
+ const parent = await resolveLearningTrainingParent(transaction, policy, acceptedParent);
47
50
  let batch = null;
48
51
  if (ready) {
49
52
  await assertAvailableBudget(transaction, chainId, now, policy.limits.maxIterationSpendUsd, policy.limits.maxDailySpendUsd);
@@ -68,7 +71,7 @@ export async function reserveLearningIteration(transaction, input, actorId, now)
68
71
  triggerIdentity, batch,
69
72
  // Existing evidence has no ordered ingress sequence. Consumption records,
70
73
  // not a count or lexicographic ID cursor, decide whether an example is new.
71
- sourceWatermarks: {}, trainingParent: policy.trainingParent, teacher: policy.teacher, upstreamEvent: null,
74
+ sourceWatermarks: {}, ...parent, teacher: policy.teacher, upstreamEvent: null,
72
75
  trainingJob: null, evaluationJob: null, candidateVersion: null, dispatchId: `dispatch-${contentHash(id)}`,
73
76
  retryCount: 0, spendUsd: 0, failure: null, createdAt: now, updatedAt: now,
74
77
  });
@@ -82,6 +85,7 @@ export async function reserveLearningIteration(transaction, input, actorId, now)
82
85
  const updatedChain = LearningChainSchema.parse({
83
86
  schemaVersion: "openpond.learningChain.v1", id: chainId, revision: (chain?.revision ?? 0) + 1,
84
87
  modelProjectId: policy.modelProjectId, activeIterationId: ready ? id : null, latestIterationId: id,
88
+ acceptedParent,
85
89
  lastReservedAt: ready ? now : chain?.lastReservedAt ?? null, updatedAt: now,
86
90
  });
87
91
  await transaction.put("iteration", iteration, 0, { parentId: chainId, status });
@@ -0,0 +1,47 @@
1
+ import { LearningAcceptedParentSchema, sameLearningRef } from "./contracts.js";
2
+ import { LearningDomainError } from "./errors.js";
3
+ import { requireLearningRelease, requireLearningResource } from "./repository.js";
4
+ /** Select the latest accepted human decision. A later rejection removes that
5
+ * candidate from future selection without rewriting reserved descendants. */
6
+ export async function latestAcceptedLearningParent(tx, chainId, requireComplete = false) {
7
+ let selected = null;
8
+ let afterId;
9
+ do {
10
+ const page = await tx.list("iteration", { parentId: chainId, status: "accepted", limit: 100, ...(afterId ? { afterId } : {}) });
11
+ for (const iteration of page.items) {
12
+ if (!iteration.candidateVersion || !iteration.candidateDecision || !iteration.candidateDecisionAt || !iteration.trainingJob) {
13
+ if (requireComplete)
14
+ throw new LearningDomainError("learning_accepted_parent_evidence_missing", 409);
15
+ continue;
16
+ }
17
+ const candidate = LearningAcceptedParentSchema.parse({ iterationId: iteration.id, iterationRevision: iteration.revision,
18
+ candidate: iteration.candidateVersion, decision: iteration.candidateDecision, decidedAt: iteration.candidateDecisionAt });
19
+ const order = [Date.parse(candidate.decidedAt), candidate.decision.id, candidate.decision.revision];
20
+ const previous = selected ? [Date.parse(selected.decidedAt), selected.decision.id, selected.decision.revision] : null;
21
+ if (!previous || order[0] > previous[0] || (order[0] === previous[0]
22
+ && (order[1] > previous[1] || (order[1] === previous[1] && order[2] > previous[2]))))
23
+ selected = candidate;
24
+ }
25
+ afterId = page.nextCursor ?? undefined;
26
+ } while (afterId);
27
+ return selected;
28
+ }
29
+ /** Reservation captures an accepted revision before dispatch or later reviews.
30
+ * Switching the underlying base requires a separately reviewed learning chain. */
31
+ export async function resolveLearningTrainingParent(tx, policy, selection) {
32
+ if (!selection)
33
+ return { trainingParent: policy.trainingParent, trainingParentSelection: null };
34
+ const parent = await requireLearningResource(tx, "iteration", selection.iterationId, selection.iterationRevision);
35
+ const sourcePolicy = await requireLearningRelease(tx, "policy", parent.policy);
36
+ if (parent.status !== "accepted" || !parent.candidateVersion || !parent.candidateDecision || !parent.trainingJob
37
+ || parent.candidateVersion.id !== selection.candidate.id || parent.candidateVersion.contentHash !== selection.candidate.contentHash
38
+ || !sameLearningRef(parent.candidateDecision, selection.decision) || parent.candidateDecisionAt !== selection.decidedAt
39
+ || sourcePolicy.modelProjectId !== policy.modelProjectId || sourcePolicy.executionOwner !== policy.executionOwner) {
40
+ throw new LearningDomainError("learning_accepted_parent_evidence_mismatch", 409);
41
+ }
42
+ if (sourcePolicy.trainingParent.id !== policy.trainingParent.id || sourcePolicy.trainingParent.contentHash !== policy.trainingParent.contentHash
43
+ || sourcePolicy.training.method !== policy.training.method) {
44
+ throw new LearningDomainError("learning_accepted_parent_configuration_mismatch", 409, "The accepted checkpoint belongs to a different starting model or training method.");
45
+ }
46
+ return { trainingParent: selection.candidate, trainingParentSelection: selection };
47
+ }
@@ -1,12 +1,13 @@
1
- import { ReleaseIdSchema, ReleaseTimestampSchema } from "@openpond/harness";
1
+ import { ImmutableReleaseRefSchema, ReleaseIdSchema, ReleaseTimestampSchema } from "@openpond/harness";
2
2
  import { z } from "zod";
3
- import { LearningRevisionRefSchema, learningRef, sameLearningRef } from "./contracts.js";
3
+ import { LearningAcceptedParentSchema, LearningRevisionRefSchema, learningRef, sameLearningRef } from "./contracts.js";
4
4
  import { prepareLearningBatch } from "./batch-service.js";
5
5
  import { LearningDomainError } from "./errors.js";
6
6
  import { readLearningIterationBudget } from "./iteration-budget.js";
7
7
  import { inspectIterationEligibility, learningChainId } from "./iteration-eligibility.js";
8
8
  import { LearningChainSchema, LearningEligibilityCountsSchema } from "./iteration-reservation-contracts.js";
9
9
  import { requireLearningRelease, requireLearningResource } from "./repository.js";
10
+ import { latestAcceptedLearningParent, resolveLearningTrainingParent } from "./iteration-training-parent.js";
10
11
  /** A scope-serialized snapshot of shared reservation readiness, not a Job guarantee.
11
12
  * No iteration, timer, batch, consumption or operation record is written. */
12
13
  export const LearningPolicyInspectionResultSchema = z.object({
@@ -14,6 +15,7 @@ export const LearningPolicyInspectionResultSchema = z.object({
14
15
  modelProjectId: ReleaseIdSchema,
15
16
  inspectedAt: ReleaseTimestampSchema,
16
17
  chain: LearningChainSchema.nullable(),
18
+ trainingParent: z.object({ reference: ImmutableReleaseRefSchema, selection: LearningAcceptedParentSchema.nullable() }).strict().nullable().default(null),
17
19
  counts: LearningEligibilityCountsSchema.nullable(),
18
20
  minimumApprovedExamples: z.number().int().positive(),
19
21
  canReserve: z.boolean(),
@@ -73,8 +75,18 @@ export async function inspectLearningPolicy(transaction, reference, actorId, now
73
75
  // must remain visible while the Model's settings and history can still load.
74
76
  block(error.code, error.message.slice(0, 20_000));
75
77
  }
78
+ let trainingParent = null;
79
+ try {
80
+ const resolved = await resolveLearningTrainingParent(transaction, policy, await latestAcceptedLearningParent(transaction, chainId, true));
81
+ trainingParent = { reference: resolved.trainingParent, selection: resolved.trainingParentSelection };
82
+ }
83
+ catch (error) {
84
+ if (!(error instanceof LearningDomainError))
85
+ throw error;
86
+ block(error.code, error.message.slice(0, 20_000));
87
+ }
76
88
  return LearningPolicyInspectionResultSchema.parse({
77
- policy: learningRef(policy), modelProjectId: policy.modelProjectId, inspectedAt: now, chain,
89
+ policy: learningRef(policy), modelProjectId: policy.modelProjectId, inspectedAt: now, chain, trainingParent,
78
90
  counts, minimumApprovedExamples: policy.admission.minimumApprovedExamples, canReserve: blockers.length === 0,
79
91
  blockers, cooldownUntil,
80
92
  budget: { ...budget, maximumIterationSpendUsd: policy.limits.maxIterationSpendUsd, maximumDailySpendUsd: policy.limits.maxDailySpendUsd },
@@ -1210,6 +1210,20 @@ export declare const LearningPolicySchema: z.ZodObject<{
1210
1210
  }, z.core.$strict>;
1211
1211
  contentHash: z.ZodString;
1212
1212
  }, z.core.$strict>;
1213
+ export declare const LearningAcceptedParentSchema: z.ZodObject<{
1214
+ iterationId: z.ZodString;
1215
+ iterationRevision: z.ZodNumber;
1216
+ candidate: z.ZodObject<{
1217
+ id: z.ZodString;
1218
+ contentHash: z.ZodString;
1219
+ }, z.core.$strict>;
1220
+ decision: z.ZodObject<{
1221
+ id: z.ZodString;
1222
+ contentHash: z.ZodString;
1223
+ revision: z.ZodNumber;
1224
+ }, z.core.$strict>;
1225
+ decidedAt: z.ZodString;
1226
+ }, z.core.$strict>;
1213
1227
  export declare const LearningIterationStatusSchema: z.ZodEnum<{
1214
1228
  failed: "failed";
1215
1229
  cancelled: "cancelled";
@@ -1262,6 +1276,20 @@ export declare const LearningIterationSchema: z.ZodObject<{
1262
1276
  id: z.ZodString;
1263
1277
  contentHash: z.ZodString;
1264
1278
  }, z.core.$strict>;
1279
+ trainingParentSelection: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1280
+ iterationId: z.ZodString;
1281
+ iterationRevision: z.ZodNumber;
1282
+ candidate: z.ZodObject<{
1283
+ id: z.ZodString;
1284
+ contentHash: z.ZodString;
1285
+ }, z.core.$strict>;
1286
+ decision: z.ZodObject<{
1287
+ id: z.ZodString;
1288
+ contentHash: z.ZodString;
1289
+ revision: z.ZodNumber;
1290
+ }, z.core.$strict>;
1291
+ decidedAt: z.ZodString;
1292
+ }, z.core.$strict>>>;
1265
1293
  teacher: z.ZodNullable<z.ZodObject<{
1266
1294
  id: z.ZodString;
1267
1295
  contentHash: z.ZodString;
@@ -1287,6 +1315,7 @@ export declare const LearningIterationSchema: z.ZodObject<{
1287
1315
  contentHash: z.ZodString;
1288
1316
  revision: z.ZodNumber;
1289
1317
  }, z.core.$strict>>>;
1318
+ candidateDecisionAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1290
1319
  dispatchId: z.ZodString;
1291
1320
  retryCount: z.ZodNumber;
1292
1321
  spendUsd: z.ZodNumber;
@@ -2159,6 +2188,20 @@ export declare const LearningResourceSchema: z.ZodUnion<readonly [z.ZodObject<{
2159
2188
  id: z.ZodString;
2160
2189
  contentHash: z.ZodString;
2161
2190
  }, z.core.$strict>;
2191
+ trainingParentSelection: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2192
+ iterationId: z.ZodString;
2193
+ iterationRevision: z.ZodNumber;
2194
+ candidate: z.ZodObject<{
2195
+ id: z.ZodString;
2196
+ contentHash: z.ZodString;
2197
+ }, z.core.$strict>;
2198
+ decision: z.ZodObject<{
2199
+ id: z.ZodString;
2200
+ contentHash: z.ZodString;
2201
+ revision: z.ZodNumber;
2202
+ }, z.core.$strict>;
2203
+ decidedAt: z.ZodString;
2204
+ }, z.core.$strict>>>;
2162
2205
  teacher: z.ZodNullable<z.ZodObject<{
2163
2206
  id: z.ZodString;
2164
2207
  contentHash: z.ZodString;
@@ -2184,6 +2227,7 @@ export declare const LearningResourceSchema: z.ZodUnion<readonly [z.ZodObject<{
2184
2227
  contentHash: z.ZodString;
2185
2228
  revision: z.ZodNumber;
2186
2229
  }, z.core.$strict>>>;
2230
+ candidateDecisionAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2187
2231
  dispatchId: z.ZodString;
2188
2232
  retryCount: z.ZodNumber;
2189
2233
  spendUsd: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../../src/learning/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../../../src/learning/contracts.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export * from "./iteration-reservation-contracts.js";
16
16
  export * from "./iteration-dispatch-contracts.js";
17
17
  export * from "./iteration-dispatch-worker.js";
18
18
  export * from "./iteration-candidate-decision.js";
19
+ export { resolveLearningTrainingParent } from "./iteration-training-parent.js";
19
20
  export * from "./schedule-contracts.js";
20
21
  export * from "./schedule-service.js";
21
22
  export * from "./schedule-worker.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/learning/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/learning/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
@@ -8,6 +8,7 @@ export declare const LearningCandidateDecisionObservationSchema: z.ZodObject<{
8
8
  contentHash: z.ZodString;
9
9
  revision: z.ZodNumber;
10
10
  }, z.core.$strict>;
11
+ decidedAt: z.ZodString;
11
12
  outcome: z.ZodEnum<{
12
13
  rejected: "rejected";
13
14
  accepted: "accepted";
@@ -90,5 +91,20 @@ export declare function reconcileLearningCandidateDecision(repository: LearningR
90
91
  } | null;
91
92
  createdAt: string;
92
93
  updatedAt: string;
94
+ trainingParentSelection?: {
95
+ iterationId: string;
96
+ iterationRevision: number;
97
+ candidate: {
98
+ id: string;
99
+ contentHash: string;
100
+ };
101
+ decision: {
102
+ id: string;
103
+ contentHash: string;
104
+ revision: number;
105
+ };
106
+ decidedAt: string;
107
+ } | null | undefined;
108
+ candidateDecisionAt?: string | null | undefined;
93
109
  }>;
94
110
  //# sourceMappingURL=iteration-candidate-decision.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iteration-candidate-decision.d.ts","sourceRoot":"","sources":["../../../../../src/learning/iteration-candidate-decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEnF,eAAO,MAAM,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAS5C,CAAC;AACZ,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0CAA0C,CAAC,CAAC;AAE9G;;gEAEgE;AAChE,wBAAsB,kCAAkC,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,oCAAoC,EAClI,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BrC"}
1
+ {"version":3,"file":"iteration-candidate-decision.d.ts","sourceRoot":"","sources":["../../../../../src/learning/iteration-candidate-decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGnF,eAAO,MAAM,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAU5C,CAAC;AACZ,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0CAA0C,CAAC,CAAC;AAE9G;;gEAEgE;AAChE,wBAAsB,kCAAkC,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,oCAAoC,EAClI,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCrC"}
@@ -13,6 +13,20 @@ export declare const LearningChainSchema: z.ZodObject<{
13
13
  revision: z.ZodNumber;
14
14
  modelProjectId: z.ZodString;
15
15
  activeIterationId: z.ZodNullable<z.ZodString>;
16
+ acceptedParent: z.ZodOptional<z.ZodNullable<z.ZodObject<{
17
+ iterationId: z.ZodString;
18
+ iterationRevision: z.ZodNumber;
19
+ candidate: z.ZodObject<{
20
+ id: z.ZodString;
21
+ contentHash: z.ZodString;
22
+ }, z.core.$strict>;
23
+ decision: z.ZodObject<{
24
+ id: z.ZodString;
25
+ contentHash: z.ZodString;
26
+ revision: z.ZodNumber;
27
+ }, z.core.$strict>;
28
+ decidedAt: z.ZodString;
29
+ }, z.core.$strict>>>;
16
30
  latestIterationId: z.ZodString;
17
31
  lastReservedAt: z.ZodNullable<z.ZodString>;
18
32
  updatedAt: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"iteration-reservation-contracts.d.ts","sourceRoot":"","sources":["../../../../../src/learning/iteration-reservation-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,8BAA8B;;;;;;4BAGzC,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,mBAAmB;;;;;;;;;kBASrB,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;kBAKjC,CAAC;AAEZ;qFACqF;AACrF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;kBAS3B,CAAC;AAEZ,uFAAuF;AACvF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmBpC,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"iteration-reservation-contracts.d.ts","sourceRoot":"","sources":["../../../../../src/learning/iteration-reservation-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,8BAA8B;;;;;;4BAGzC,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;kBAUrB,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;kBAKjC,CAAC;AAEZ;qFACqF;AACrF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;kBAS3B,CAAC;AAEZ,uFAAuF;AACvF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmBpC,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"iteration-reservation-service.d.ts","sourceRoot":"","sources":["../../../../../src/learning/iteration-reservation-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAmD,KAAK,uBAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE1I,KAAK,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAAC;AAEhF,kFAAkF;AAClF,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA0ExK"}
1
+ {"version":3,"file":"iteration-reservation-service.d.ts","sourceRoot":"","sources":["../../../../../src/learning/iteration-reservation-service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAmD,KAAK,uBAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG1I,KAAK,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAAC;AAEhF,kFAAkF;AAClF,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA6ExK"}
@@ -0,0 +1,37 @@
1
+ import type { z } from "zod";
2
+ import { LearningAcceptedParentSchema, type LearningPolicy } from "./contracts.js";
3
+ import { type LearningTransaction } from "./repository.js";
4
+ type AcceptedParent = z.infer<typeof LearningAcceptedParentSchema>;
5
+ /** Select the latest accepted human decision. A later rejection removes that
6
+ * candidate from future selection without rewriting reserved descendants. */
7
+ export declare function latestAcceptedLearningParent(tx: LearningTransaction, chainId: string, requireComplete?: boolean): Promise<AcceptedParent | null>;
8
+ /** Reservation captures an accepted revision before dispatch or later reviews.
9
+ * Switching the underlying base requires a separately reviewed learning chain. */
10
+ export declare function resolveLearningTrainingParent(tx: LearningTransaction, policy: LearningPolicy, selection: AcceptedParent | null): Promise<{
11
+ trainingParent: {
12
+ id: string;
13
+ contentHash: string;
14
+ };
15
+ trainingParentSelection: null;
16
+ } | {
17
+ trainingParent: {
18
+ id: string;
19
+ contentHash: string;
20
+ };
21
+ trainingParentSelection: {
22
+ iterationId: string;
23
+ iterationRevision: number;
24
+ candidate: {
25
+ id: string;
26
+ contentHash: string;
27
+ };
28
+ decision: {
29
+ id: string;
30
+ contentHash: string;
31
+ revision: number;
32
+ };
33
+ decidedAt: string;
34
+ };
35
+ }>;
36
+ export {};
37
+ //# sourceMappingURL=iteration-training-parent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iteration-training-parent.d.ts","sourceRoot":"","sources":["../../../../../src/learning/iteration-training-parent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAAE,4BAA4B,EAAmB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEpG,OAAO,EAAmD,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE5G,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEnE;6EAC6E;AAC7E,wBAAsB,4BAA4B,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,UAAQ,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAoBpJ;AAED;kFACkF;AAClF,wBAAsB,6BAA6B,CAAC,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;GAgBpI"}
@@ -17,10 +17,44 @@ export declare const LearningPolicyInspectionResultSchema: z.ZodObject<{
17
17
  revision: z.ZodNumber;
18
18
  modelProjectId: z.ZodString;
19
19
  activeIterationId: z.ZodNullable<z.ZodString>;
20
+ acceptedParent: z.ZodOptional<z.ZodNullable<z.ZodObject<{
21
+ iterationId: z.ZodString;
22
+ iterationRevision: z.ZodNumber;
23
+ candidate: z.ZodObject<{
24
+ id: z.ZodString;
25
+ contentHash: z.ZodString;
26
+ }, z.core.$strict>;
27
+ decision: z.ZodObject<{
28
+ id: z.ZodString;
29
+ contentHash: z.ZodString;
30
+ revision: z.ZodNumber;
31
+ }, z.core.$strict>;
32
+ decidedAt: z.ZodString;
33
+ }, z.core.$strict>>>;
20
34
  latestIterationId: z.ZodString;
21
35
  lastReservedAt: z.ZodNullable<z.ZodString>;
22
36
  updatedAt: z.ZodString;
23
37
  }, z.core.$strict>>;
38
+ trainingParent: z.ZodDefault<z.ZodNullable<z.ZodObject<{
39
+ reference: z.ZodObject<{
40
+ id: z.ZodString;
41
+ contentHash: z.ZodString;
42
+ }, z.core.$strict>;
43
+ selection: z.ZodNullable<z.ZodObject<{
44
+ iterationId: z.ZodString;
45
+ iterationRevision: z.ZodNumber;
46
+ candidate: z.ZodObject<{
47
+ id: z.ZodString;
48
+ contentHash: z.ZodString;
49
+ }, z.core.$strict>;
50
+ decision: z.ZodObject<{
51
+ id: z.ZodString;
52
+ contentHash: z.ZodString;
53
+ revision: z.ZodNumber;
54
+ }, z.core.$strict>;
55
+ decidedAt: z.ZodString;
56
+ }, z.core.$strict>>;
57
+ }, z.core.$strict>>>;
24
58
  counts: z.ZodNullable<z.ZodObject<{
25
59
  eligible: z.ZodNumber;
26
60
  awaitingReview: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"policy-inspection.d.ts","sourceRoot":"","sources":["../../../../../src/learning/policy-inspection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,yBAAyB,EAAgC,MAAM,gBAAgB,CAAC;AAMzF,OAAO,EAAmD,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE5G;6EAC6E;AAC7E,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBActC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,CA6CzM"}
1
+ {"version":3,"file":"policy-inspection.d.ts","sourceRoot":"","sources":["../../../../../src/learning/policy-inspection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAgC,yBAAyB,EAAgC,MAAM,gBAAgB,CAAC;AAMvH,OAAO,EAAmD,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG5G;6EAC6E;AAC7E,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAetC,CAAC;AACZ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAqDzM"}
@@ -1061,6 +1061,20 @@ export declare const learningResourceSchemas: {
1061
1061
  revision: z.ZodNumber;
1062
1062
  modelProjectId: z.ZodString;
1063
1063
  activeIterationId: z.ZodNullable<z.ZodString>;
1064
+ acceptedParent: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1065
+ iterationId: z.ZodString;
1066
+ iterationRevision: z.ZodNumber;
1067
+ candidate: z.ZodObject<{
1068
+ id: z.ZodString;
1069
+ contentHash: z.ZodString;
1070
+ }, z.core.$strict>;
1071
+ decision: z.ZodObject<{
1072
+ id: z.ZodString;
1073
+ contentHash: z.ZodString;
1074
+ revision: z.ZodNumber;
1075
+ }, z.core.$strict>;
1076
+ decidedAt: z.ZodString;
1077
+ }, z.core.$strict>>>;
1064
1078
  latestIterationId: z.ZodString;
1065
1079
  lastReservedAt: z.ZodNullable<z.ZodString>;
1066
1080
  updatedAt: z.ZodString;
@@ -1269,6 +1283,20 @@ export declare const learningResourceSchemas: {
1269
1283
  id: z.ZodString;
1270
1284
  contentHash: z.ZodString;
1271
1285
  }, z.core.$strict>;
1286
+ trainingParentSelection: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1287
+ iterationId: z.ZodString;
1288
+ iterationRevision: z.ZodNumber;
1289
+ candidate: z.ZodObject<{
1290
+ id: z.ZodString;
1291
+ contentHash: z.ZodString;
1292
+ }, z.core.$strict>;
1293
+ decision: z.ZodObject<{
1294
+ id: z.ZodString;
1295
+ contentHash: z.ZodString;
1296
+ revision: z.ZodNumber;
1297
+ }, z.core.$strict>;
1298
+ decidedAt: z.ZodString;
1299
+ }, z.core.$strict>>>;
1272
1300
  teacher: z.ZodNullable<z.ZodObject<{
1273
1301
  id: z.ZodString;
1274
1302
  contentHash: z.ZodString;
@@ -1294,6 +1322,7 @@ export declare const learningResourceSchemas: {
1294
1322
  contentHash: z.ZodString;
1295
1323
  revision: z.ZodNumber;
1296
1324
  }, z.core.$strict>>>;
1325
+ candidateDecisionAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1297
1326
  dispatchId: z.ZodString;
1298
1327
  retryCount: z.ZodNumber;
1299
1328
  spendUsd: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../src/learning/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../../../src/learning/repository.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,40 @@ export declare function createLearningService(repository: LearningRepository, op
34
34
  latestIterationId: string;
35
35
  lastReservedAt: string | null;
36
36
  updatedAt: string;
37
+ acceptedParent?: {
38
+ iterationId: string;
39
+ iterationRevision: number;
40
+ candidate: {
41
+ id: string;
42
+ contentHash: string;
43
+ };
44
+ decision: {
45
+ id: string;
46
+ contentHash: string;
47
+ revision: number;
48
+ };
49
+ decidedAt: string;
50
+ } | null | undefined;
51
+ } | null;
52
+ trainingParent: {
53
+ reference: {
54
+ id: string;
55
+ contentHash: string;
56
+ };
57
+ selection: {
58
+ iterationId: string;
59
+ iterationRevision: number;
60
+ candidate: {
61
+ id: string;
62
+ contentHash: string;
63
+ };
64
+ decision: {
65
+ id: string;
66
+ contentHash: string;
67
+ revision: number;
68
+ };
69
+ decidedAt: string;
70
+ } | null;
37
71
  } | null;
38
72
  counts: {
39
73
  eligible: number;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/learning/service.ts"],"names":[],"mappings":"AAcA,OAAO,EAA+Q,KAAK,mBAAmB,EAAwC,MAAM,gBAAgB,CAAC;AAE7W,OAAO,EAAmH,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAgC,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAA4B,MAAM,iBAAiB,CAAC;AAK5W,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACtG,MAAM,MAAM,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,uBAAuB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,sBAAsB,EAAE,CAAA;CAAE,CAAC;AAEnG,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO;uBAGxE,sBAAsB,OAAO,OAAO,KAAG,OAAO,CAAC,uBAAuB,CAAC;2BA0PxE,sBAAsB,aAAa,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAKpD,sBAAsB,aAAa,mBAAmB;;;;;;;;;;;;;QAS3E,CAAC,SAAS,oBAAoB,WAAW,sBAAsB,QAAQ,CAAC,MAAM,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;SAIxI,CAAC,SAAS,oBAAoB,WAAW,sBAAsB,QAAQ,CAAC,UAAS,OAAO,CAAC,qBAAqB,CAAC,GAAQ,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;EAMrK"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/learning/service.ts"],"names":[],"mappings":"AAcA,OAAO,EAA+Q,KAAK,mBAAmB,EAAwC,MAAM,gBAAgB,CAAC;AAE7W,OAAO,EAAmH,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAgC,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAA4B,MAAM,iBAAiB,CAAC;AAK5W,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACtG,MAAM,MAAM,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,uBAAuB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,sBAAsB,EAAE,CAAA;CAAE,CAAC;AAEnG,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAO;uBAGxE,sBAAsB,OAAO,OAAO,KAAG,OAAO,CAAC,uBAAuB,CAAC;2BA0PxE,sBAAsB,aAAa,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAKpD,sBAAsB,aAAa,mBAAmB;;;;;;;;;;;;;QAS3E,CAAC,SAAS,oBAAoB,WAAW,sBAAsB,QAAQ,CAAC,MAAM,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;SAIxI,CAAC,SAAS,oBAAoB,WAAW,sBAAsB,QAAQ,CAAC,UAAS,OAAO,CAAC,qBAAqB,CAAC,GAAQ,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;EAMrK"}
@@ -2593,6 +2593,20 @@ export declare const LearningOperationResultSchema: z.ZodObject<{
2593
2593
  id: z.ZodString;
2594
2594
  contentHash: z.ZodString;
2595
2595
  }, z.core.$strict>;
2596
+ trainingParentSelection: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2597
+ iterationId: z.ZodString;
2598
+ iterationRevision: z.ZodNumber;
2599
+ candidate: z.ZodObject<{
2600
+ id: z.ZodString;
2601
+ contentHash: z.ZodString;
2602
+ }, z.core.$strict>;
2603
+ decision: z.ZodObject<{
2604
+ id: z.ZodString;
2605
+ contentHash: z.ZodString;
2606
+ revision: z.ZodNumber;
2607
+ }, z.core.$strict>;
2608
+ decidedAt: z.ZodString;
2609
+ }, z.core.$strict>>>;
2596
2610
  teacher: z.ZodNullable<z.ZodObject<{
2597
2611
  id: z.ZodString;
2598
2612
  contentHash: z.ZodString;
@@ -2618,6 +2632,7 @@ export declare const LearningOperationResultSchema: z.ZodObject<{
2618
2632
  contentHash: z.ZodString;
2619
2633
  revision: z.ZodNumber;
2620
2634
  }, z.core.$strict>>>;
2635
+ candidateDecisionAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2621
2636
  dispatchId: z.ZodString;
2622
2637
  retryCount: z.ZodNumber;
2623
2638
  spendUsd: z.ZodNumber;
@@ -2720,6 +2735,20 @@ export declare const LearningOperationResultSchema: z.ZodObject<{
2720
2735
  revision: z.ZodNumber;
2721
2736
  modelProjectId: z.ZodString;
2722
2737
  activeIterationId: z.ZodNullable<z.ZodString>;
2738
+ acceptedParent: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2739
+ iterationId: z.ZodString;
2740
+ iterationRevision: z.ZodNumber;
2741
+ candidate: z.ZodObject<{
2742
+ id: z.ZodString;
2743
+ contentHash: z.ZodString;
2744
+ }, z.core.$strict>;
2745
+ decision: z.ZodObject<{
2746
+ id: z.ZodString;
2747
+ contentHash: z.ZodString;
2748
+ revision: z.ZodNumber;
2749
+ }, z.core.$strict>;
2750
+ decidedAt: z.ZodString;
2751
+ }, z.core.$strict>>>;
2723
2752
  latestIterationId: z.ZodString;
2724
2753
  lastReservedAt: z.ZodNullable<z.ZodString>;
2725
2754
  updatedAt: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../../src/learning/transport.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAG/B,CAAC"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../../../src/learning/transport.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAG/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openpond/evals",
3
- "version": "0.10.6",
3
+ "version": "0.10.7",
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",
@@ -27,13 +27,82 @@
27
27
  }
28
28
  ]
29
29
  },
30
+ "acceptedParent": {
31
+ "anyOf": [
32
+ {
33
+ "type": "object",
34
+ "properties": {
35
+ "iterationId": {
36
+ "$ref": "#/$defs/__schema0"
37
+ },
38
+ "iterationRevision": {
39
+ "type": "integer",
40
+ "exclusiveMinimum": 0,
41
+ "maximum": 9007199254740991
42
+ },
43
+ "candidate": {
44
+ "type": "object",
45
+ "properties": {
46
+ "id": {
47
+ "$ref": "#/$defs/__schema0"
48
+ },
49
+ "contentHash": {
50
+ "$ref": "#/$defs/__schema1"
51
+ }
52
+ },
53
+ "required": [
54
+ "id",
55
+ "contentHash"
56
+ ],
57
+ "additionalProperties": false
58
+ },
59
+ "decision": {
60
+ "type": "object",
61
+ "properties": {
62
+ "id": {
63
+ "$ref": "#/$defs/__schema0"
64
+ },
65
+ "contentHash": {
66
+ "$ref": "#/$defs/__schema1"
67
+ },
68
+ "revision": {
69
+ "type": "integer",
70
+ "exclusiveMinimum": 0,
71
+ "maximum": 9007199254740991
72
+ }
73
+ },
74
+ "required": [
75
+ "id",
76
+ "contentHash",
77
+ "revision"
78
+ ],
79
+ "additionalProperties": false
80
+ },
81
+ "decidedAt": {
82
+ "$ref": "#/$defs/__schema2"
83
+ }
84
+ },
85
+ "required": [
86
+ "iterationId",
87
+ "iterationRevision",
88
+ "candidate",
89
+ "decision",
90
+ "decidedAt"
91
+ ],
92
+ "additionalProperties": false
93
+ },
94
+ {
95
+ "type": "null"
96
+ }
97
+ ]
98
+ },
30
99
  "latestIterationId": {
31
100
  "$ref": "#/$defs/__schema0"
32
101
  },
33
102
  "lastReservedAt": {
34
103
  "anyOf": [
35
104
  {
36
- "$ref": "#/$defs/__schema1"
105
+ "$ref": "#/$defs/__schema2"
37
106
  },
38
107
  {
39
108
  "type": "null"
@@ -41,7 +110,7 @@
41
110
  ]
42
111
  },
43
112
  "updatedAt": {
44
- "$ref": "#/$defs/__schema1"
113
+ "$ref": "#/$defs/__schema2"
45
114
  }
46
115
  },
47
116
  "required": [
@@ -62,6 +131,10 @@
62
131
  "maxLength": 240
63
132
  },
64
133
  "__schema1": {
134
+ "type": "string",
135
+ "pattern": "^[a-f0-9]{64}$"
136
+ },
137
+ "__schema2": {
65
138
  "type": "string",
66
139
  "format": "date-time",
67
140
  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
@@ -63,6 +63,43 @@
63
63
  "trainingParent": {
64
64
  "$ref": "#/$defs/__schema3"
65
65
  },
66
+ "trainingParentSelection": {
67
+ "anyOf": [
68
+ {
69
+ "type": "object",
70
+ "properties": {
71
+ "iterationId": {
72
+ "$ref": "#/$defs/__schema0"
73
+ },
74
+ "iterationRevision": {
75
+ "type": "integer",
76
+ "exclusiveMinimum": 0,
77
+ "maximum": 9007199254740991
78
+ },
79
+ "candidate": {
80
+ "$ref": "#/$defs/__schema3"
81
+ },
82
+ "decision": {
83
+ "$ref": "#/$defs/__schema1"
84
+ },
85
+ "decidedAt": {
86
+ "$ref": "#/$defs/__schema4"
87
+ }
88
+ },
89
+ "required": [
90
+ "iterationId",
91
+ "iterationRevision",
92
+ "candidate",
93
+ "decision",
94
+ "decidedAt"
95
+ ],
96
+ "additionalProperties": false
97
+ },
98
+ {
99
+ "type": "null"
100
+ }
101
+ ]
102
+ },
66
103
  "teacher": {
67
104
  "anyOf": [
68
105
  {
@@ -124,6 +161,16 @@
124
161
  }
125
162
  ]
126
163
  },
164
+ "candidateDecisionAt": {
165
+ "anyOf": [
166
+ {
167
+ "$ref": "#/$defs/__schema4"
168
+ },
169
+ {
170
+ "type": "null"
171
+ }
172
+ ]
173
+ },
127
174
  "dispatchId": {
128
175
  "$ref": "#/$defs/__schema0"
129
176
  },
@@ -3,33 +3,13 @@
3
3
  "type": "object",
4
4
  "properties": {
5
5
  "policy": {
6
- "type": "object",
7
- "properties": {
8
- "id": {
9
- "$ref": "#/$defs/__schema0"
10
- },
11
- "contentHash": {
12
- "type": "string",
13
- "pattern": "^[a-f0-9]{64}$"
14
- },
15
- "revision": {
16
- "type": "integer",
17
- "exclusiveMinimum": 0,
18
- "maximum": 9007199254740991
19
- }
20
- },
21
- "required": [
22
- "id",
23
- "contentHash",
24
- "revision"
25
- ],
26
- "additionalProperties": false
6
+ "$ref": "#/$defs/__schema0"
27
7
  },
28
8
  "modelProjectId": {
29
- "$ref": "#/$defs/__schema0"
9
+ "$ref": "#/$defs/__schema1"
30
10
  },
31
11
  "inspectedAt": {
32
- "$ref": "#/$defs/__schema1"
12
+ "$ref": "#/$defs/__schema3"
33
13
  },
34
14
  "chain": {
35
15
  "anyOf": [
@@ -41,7 +21,7 @@
41
21
  "const": "openpond.learningChain.v1"
42
22
  },
43
23
  "id": {
44
- "$ref": "#/$defs/__schema0"
24
+ "$ref": "#/$defs/__schema1"
45
25
  },
46
26
  "revision": {
47
27
  "type": "integer",
@@ -49,12 +29,22 @@
49
29
  "maximum": 9007199254740991
50
30
  },
51
31
  "modelProjectId": {
52
- "$ref": "#/$defs/__schema0"
32
+ "$ref": "#/$defs/__schema1"
53
33
  },
54
34
  "activeIterationId": {
55
35
  "anyOf": [
56
36
  {
57
- "$ref": "#/$defs/__schema0"
37
+ "$ref": "#/$defs/__schema1"
38
+ },
39
+ {
40
+ "type": "null"
41
+ }
42
+ ]
43
+ },
44
+ "acceptedParent": {
45
+ "anyOf": [
46
+ {
47
+ "$ref": "#/$defs/__schema4"
58
48
  },
59
49
  {
60
50
  "type": "null"
@@ -62,12 +52,12 @@
62
52
  ]
63
53
  },
64
54
  "latestIterationId": {
65
- "$ref": "#/$defs/__schema0"
55
+ "$ref": "#/$defs/__schema1"
66
56
  },
67
57
  "lastReservedAt": {
68
58
  "anyOf": [
69
59
  {
70
- "$ref": "#/$defs/__schema1"
60
+ "$ref": "#/$defs/__schema3"
71
61
  },
72
62
  {
73
63
  "type": "null"
@@ -75,7 +65,7 @@
75
65
  ]
76
66
  },
77
67
  "updatedAt": {
78
- "$ref": "#/$defs/__schema1"
68
+ "$ref": "#/$defs/__schema3"
79
69
  }
80
70
  },
81
71
  "required": [
@@ -95,6 +85,37 @@
95
85
  }
96
86
  ]
97
87
  },
88
+ "trainingParent": {
89
+ "default": null,
90
+ "anyOf": [
91
+ {
92
+ "type": "object",
93
+ "properties": {
94
+ "reference": {
95
+ "$ref": "#/$defs/__schema5"
96
+ },
97
+ "selection": {
98
+ "anyOf": [
99
+ {
100
+ "$ref": "#/$defs/__schema4"
101
+ },
102
+ {
103
+ "type": "null"
104
+ }
105
+ ]
106
+ }
107
+ },
108
+ "required": [
109
+ "reference",
110
+ "selection"
111
+ ],
112
+ "additionalProperties": false
113
+ },
114
+ {
115
+ "type": "null"
116
+ }
117
+ ]
118
+ },
98
119
  "counts": {
99
120
  "anyOf": [
100
121
  {
@@ -146,13 +167,13 @@
146
167
  "maxItems": 20,
147
168
  "type": "array",
148
169
  "items": {
149
- "$ref": "#/$defs/__schema2"
170
+ "$ref": "#/$defs/__schema6"
150
171
  }
151
172
  },
152
173
  "cooldownUntil": {
153
174
  "anyOf": [
154
175
  {
155
- "$ref": "#/$defs/__schema1"
176
+ "$ref": "#/$defs/__schema3"
156
177
  },
157
178
  {
158
179
  "type": "null"
@@ -198,6 +219,7 @@
198
219
  "modelProjectId",
199
220
  "inspectedAt",
200
221
  "chain",
222
+ "trainingParent",
201
223
  "counts",
202
224
  "minimumApprovedExamples",
203
225
  "canReserve",
@@ -208,16 +230,88 @@
208
230
  "additionalProperties": false,
209
231
  "$defs": {
210
232
  "__schema0": {
233
+ "type": "object",
234
+ "properties": {
235
+ "id": {
236
+ "$ref": "#/$defs/__schema1"
237
+ },
238
+ "contentHash": {
239
+ "$ref": "#/$defs/__schema2"
240
+ },
241
+ "revision": {
242
+ "type": "integer",
243
+ "exclusiveMinimum": 0,
244
+ "maximum": 9007199254740991
245
+ }
246
+ },
247
+ "required": [
248
+ "id",
249
+ "contentHash",
250
+ "revision"
251
+ ],
252
+ "additionalProperties": false
253
+ },
254
+ "__schema1": {
211
255
  "type": "string",
212
256
  "minLength": 1,
213
257
  "maxLength": 240
214
258
  },
215
- "__schema1": {
259
+ "__schema2": {
260
+ "type": "string",
261
+ "pattern": "^[a-f0-9]{64}$"
262
+ },
263
+ "__schema3": {
216
264
  "type": "string",
217
265
  "format": "date-time",
218
266
  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
219
267
  },
220
- "__schema2": {
268
+ "__schema4": {
269
+ "type": "object",
270
+ "properties": {
271
+ "iterationId": {
272
+ "$ref": "#/$defs/__schema1"
273
+ },
274
+ "iterationRevision": {
275
+ "type": "integer",
276
+ "exclusiveMinimum": 0,
277
+ "maximum": 9007199254740991
278
+ },
279
+ "candidate": {
280
+ "$ref": "#/$defs/__schema5"
281
+ },
282
+ "decision": {
283
+ "$ref": "#/$defs/__schema0"
284
+ },
285
+ "decidedAt": {
286
+ "$ref": "#/$defs/__schema3"
287
+ }
288
+ },
289
+ "required": [
290
+ "iterationId",
291
+ "iterationRevision",
292
+ "candidate",
293
+ "decision",
294
+ "decidedAt"
295
+ ],
296
+ "additionalProperties": false
297
+ },
298
+ "__schema5": {
299
+ "type": "object",
300
+ "properties": {
301
+ "id": {
302
+ "$ref": "#/$defs/__schema1"
303
+ },
304
+ "contentHash": {
305
+ "$ref": "#/$defs/__schema2"
306
+ }
307
+ },
308
+ "required": [
309
+ "id",
310
+ "contentHash"
311
+ ],
312
+ "additionalProperties": false
313
+ },
314
+ "__schema6": {
221
315
  "type": "object",
222
316
  "properties": {
223
317
  "code": {