@openpond/evals 0.10.5 → 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 (40) hide show
  1. package/LEARNING.md +24 -0
  2. package/dist/learning/admission.js +1 -0
  3. package/dist/learning/contracts.js +11 -1
  4. package/dist/learning/index.js +1 -0
  5. package/dist/learning/iteration-candidate-decision.js +12 -7
  6. package/dist/learning/iteration-reservation-contracts.js +2 -1
  7. package/dist/learning/iteration-reservation-service.js +5 -1
  8. package/dist/learning/iteration-training-parent.js +47 -0
  9. package/dist/learning/policy-inspection.js +15 -3
  10. package/dist/types/learning/admission.d.ts +18 -0
  11. package/dist/types/learning/admission.d.ts.map +1 -1
  12. package/dist/types/learning/batch-service.d.ts +14 -0
  13. package/dist/types/learning/batch-service.d.ts.map +1 -1
  14. package/dist/types/learning/contracts.d.ts +98 -0
  15. package/dist/types/learning/contracts.d.ts.map +1 -1
  16. package/dist/types/learning/index.d.ts +1 -0
  17. package/dist/types/learning/index.d.ts.map +1 -1
  18. package/dist/types/learning/iteration-candidate-decision.d.ts +16 -0
  19. package/dist/types/learning/iteration-candidate-decision.d.ts.map +1 -1
  20. package/dist/types/learning/iteration-reservation-contracts.d.ts +14 -0
  21. package/dist/types/learning/iteration-reservation-contracts.d.ts.map +1 -1
  22. package/dist/types/learning/iteration-reservation-service.d.ts.map +1 -1
  23. package/dist/types/learning/iteration-training-parent.d.ts +37 -0
  24. package/dist/types/learning/iteration-training-parent.d.ts.map +1 -0
  25. package/dist/types/learning/operations.d.ts +72 -0
  26. package/dist/types/learning/operations.d.ts.map +1 -1
  27. package/dist/types/learning/policy-inspection.d.ts +34 -0
  28. package/dist/types/learning/policy-inspection.d.ts.map +1 -1
  29. package/dist/types/learning/repository.d.ts +47 -0
  30. package/dist/types/learning/repository.d.ts.map +1 -1
  31. package/dist/types/learning/service.d.ts +34 -0
  32. package/dist/types/learning/service.d.ts.map +1 -1
  33. package/dist/types/learning/transport.d.ts +83 -0
  34. package/dist/types/learning/transport.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/schemas/learning/v1/chain.schema.json +75 -2
  37. package/schemas/learning/v1/command-request.schema.json +201 -136
  38. package/schemas/learning/v1/definition.schema.json +116 -14
  39. package/schemas/learning/v1/iteration.schema.json +47 -0
  40. 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
@@ -274,3 +292,9 @@ retained diagnostic; a new reviewed policy revision may resume it. Hosts must
274
292
  poll due timers for their execution owner and supply an authorized actor. This
275
293
  worker does not execute a Work prompt or submit a provider Job; the existing
276
294
  iteration dispatch worker owns that next transition.
295
+
296
+ Task Definitions may declare `requiredOutputs`. These optional contracts use
297
+ Taskset output paths, media types, schema references and size bounds. Evidence
298
+ conversion copies them into every task before grading or sealing a batch, so a
299
+ changed output contract requires a new definition and new matching evidence and
300
+ review receipts. Definitions without this field retain their existing hashes.
@@ -85,6 +85,7 @@ export function taskRecordFromEvidence(evidence, definition) {
85
85
  policyVisibleContext: { instructions: definition.instructions },
86
86
  privilegedContextRef: evidence.submission.evaluatorContext === null ? null : `task-evidence:${evidence.contentHash}`,
87
87
  artifactRefs: evidence.submission.assets, tags: [definition.category],
88
+ ...(definition.requiredOutputs ? { requiredOutputs: definition.requiredOutputs } : {}),
88
89
  });
89
90
  }
90
91
  export function taskAttemptEvidence(evidence, output) {
@@ -2,7 +2,7 @@ import { LearningDomainError } from "./errors.js";
2
2
  import { z } from "zod";
3
3
  import { ImmutableAssetRefSchema, ImmutableReleaseRefSchema, ReleaseHashSchema, ReleaseIdSchema, ReleaseTimestampSchema, contentHash } from "@openpond/harness";
4
4
  import { RewardBindingSchema, RewardCompositionSchema, RewardReleaseRefSchema, RewardReleaseSchema } from "../rewards.js";
5
- import { TaskSplitSchema, TasksetReleaseContentSchema } from "../tasksets.js";
5
+ import { TaskRecordSchema, TaskSplitSchema, TasksetReleaseContentSchema } from "../tasksets.js";
6
6
  import { assertBoundedTaskJson, validateTaskSchema } from "../task-schema.js";
7
7
  export const LearningJsonObjectSchema = z.record(z.string(), z.json());
8
8
  export const LearningRevisionRefSchema = RewardReleaseRefSchema;
@@ -18,6 +18,7 @@ export const TaskDefinitionContentSchema = z.object({
18
18
  familyNamespace: ReleaseIdSchema,
19
19
  inputSchema: z.record(z.string(), z.unknown()),
20
20
  outputSchema: z.record(z.string(), z.unknown()),
21
+ requiredOutputs: TaskRecordSchema.shape.requiredOutputs,
21
22
  rewardBinding: LearningRevisionRefSchema,
22
23
  harness: ImmutableReleaseRefSchema.nullable(),
23
24
  execution: TasksetReleaseContentSchema.pick({ policy: true, environment: true, environmentRelease: true, tools: true, capabilities: true, verifierSetRelease: true }).strict(),
@@ -216,6 +217,13 @@ export const LearningPolicyContentSchema = z.object({
216
217
  context.addIssue({ code: "custom", path: ["limits"], message: "Daily spend must permit the iteration budget." });
217
218
  });
218
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();
219
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"]);
220
228
  export const LearningIterationSchema = z.object({
221
229
  schemaVersion: z.literal("openpond.learningIteration.v1"),
@@ -227,12 +235,14 @@ export const LearningIterationSchema = z.object({
227
235
  batch: LearningRevisionRefSchema.nullable(),
228
236
  sourceWatermarks: z.record(ReleaseIdSchema, z.number().int().nonnegative()),
229
237
  trainingParent: ImmutableReleaseRefSchema,
238
+ trainingParentSelection: LearningAcceptedParentSchema.nullable().optional(),
230
239
  teacher: ImmutableReleaseRefSchema.nullable(),
231
240
  upstreamEvent: ImmutableReleaseRefSchema.nullable(),
232
241
  trainingJob: ImmutableReleaseRefSchema.nullable(),
233
242
  evaluationJob: ImmutableReleaseRefSchema.nullable(),
234
243
  candidateVersion: ImmutableReleaseRefSchema.nullable(),
235
244
  candidateDecision: LearningRevisionRefSchema.nullable().default(null),
245
+ candidateDecisionAt: ReleaseTimestampSchema.nullable().optional(),
236
246
  dispatchId: ReleaseIdSchema,
237
247
  retryCount: z.number().int().nonnegative(),
238
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 },
@@ -79,6 +79,24 @@ export declare const TaskBatchPackageMetadataSchema: z.ZodObject<{
79
79
  familyNamespace: z.ZodString;
80
80
  inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
81
81
  outputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
82
+ requiredOutputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
83
+ path: z.ZodString;
84
+ mediaType: z.ZodString;
85
+ schemaRef: z.ZodDefault<z.ZodNullable<z.ZodObject<{
86
+ id: z.ZodString;
87
+ path: z.ZodString;
88
+ contentHash: z.ZodString;
89
+ sizeBytes: z.ZodNumber;
90
+ mediaType: z.ZodString;
91
+ visibility: z.ZodEnum<{
92
+ policy: "policy";
93
+ verifier: "verifier";
94
+ host_private: "host_private";
95
+ }>;
96
+ }, z.core.$strict>>>;
97
+ maxBytes: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
98
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
99
+ }, z.core.$strict>>>;
82
100
  rewardBinding: z.ZodObject<{
83
101
  id: z.ZodString;
84
102
  contentHash: z.ZodString;
@@ -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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"}
@@ -312,6 +312,20 @@ export declare function prepareLearningBatch(transaction: LearningTransaction, i
312
312
  } | undefined;
313
313
  };
314
314
  contentHash: string;
315
+ requiredOutputs?: {
316
+ path: string;
317
+ mediaType: string;
318
+ schemaRef: {
319
+ id: string;
320
+ path: string;
321
+ contentHash: string;
322
+ sizeBytes: number;
323
+ mediaType: string;
324
+ visibility: "policy" | "verifier" | "host_private";
325
+ } | null;
326
+ maxBytes: number | null;
327
+ metadata: Record<string, unknown>;
328
+ }[] | undefined;
315
329
  };
316
330
  }>;
317
331
  export declare function requireCurrentLearningEvidence(transaction: LearningTransaction, ref: LearningRevisionRef): Promise<TaskEvidence>;
@@ -1 +1 @@
1
- {"version":3,"file":"batch-service.d.ts","sourceRoot":"","sources":["../../../../../src/learning/batch-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE3G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAA8E,KAAK,uBAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAErK,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAQ3M;AAED,kGAAkG;AAClG,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsBzK;AAED,wBAAsB,8BAA8B,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAKtI"}
1
+ {"version":3,"file":"batch-service.d.ts","sourceRoot":"","sources":["../../../../../src/learning/batch-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE3G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAA8E,KAAK,uBAAuB,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAErK,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAQ3M;AAED,kGAAkG;AAClG,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsBzK;AAED,wBAAsB,8BAA8B,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAKtI"}
@@ -23,6 +23,24 @@ export declare const TaskDefinitionContentSchema: z.ZodObject<{
23
23
  familyNamespace: z.ZodString;
24
24
  inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
25
25
  outputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
26
+ requiredOutputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
27
+ path: z.ZodString;
28
+ mediaType: z.ZodString;
29
+ schemaRef: z.ZodDefault<z.ZodNullable<z.ZodObject<{
30
+ id: z.ZodString;
31
+ path: z.ZodString;
32
+ contentHash: z.ZodString;
33
+ sizeBytes: z.ZodNumber;
34
+ mediaType: z.ZodString;
35
+ visibility: z.ZodEnum<{
36
+ policy: "policy";
37
+ verifier: "verifier";
38
+ host_private: "host_private";
39
+ }>;
40
+ }, z.core.$strict>>>;
41
+ maxBytes: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
42
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
43
+ }, z.core.$strict>>>;
26
44
  rewardBinding: z.ZodObject<{
27
45
  id: z.ZodString;
28
46
  contentHash: z.ZodString;
@@ -113,6 +131,24 @@ export declare const TaskDefinitionSchema: z.ZodObject<{
113
131
  familyNamespace: z.ZodString;
114
132
  inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
115
133
  outputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
134
+ requiredOutputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
135
+ path: z.ZodString;
136
+ mediaType: z.ZodString;
137
+ schemaRef: z.ZodDefault<z.ZodNullable<z.ZodObject<{
138
+ id: z.ZodString;
139
+ path: z.ZodString;
140
+ contentHash: z.ZodString;
141
+ sizeBytes: z.ZodNumber;
142
+ mediaType: z.ZodString;
143
+ visibility: z.ZodEnum<{
144
+ policy: "policy";
145
+ verifier: "verifier";
146
+ host_private: "host_private";
147
+ }>;
148
+ }, z.core.$strict>>>;
149
+ maxBytes: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
150
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
151
+ }, z.core.$strict>>>;
116
152
  rewardBinding: z.ZodObject<{
117
153
  id: z.ZodString;
118
154
  contentHash: z.ZodString;
@@ -1174,6 +1210,20 @@ export declare const LearningPolicySchema: z.ZodObject<{
1174
1210
  }, z.core.$strict>;
1175
1211
  contentHash: z.ZodString;
1176
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>;
1177
1227
  export declare const LearningIterationStatusSchema: z.ZodEnum<{
1178
1228
  failed: "failed";
1179
1229
  cancelled: "cancelled";
@@ -1226,6 +1276,20 @@ export declare const LearningIterationSchema: z.ZodObject<{
1226
1276
  id: z.ZodString;
1227
1277
  contentHash: z.ZodString;
1228
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>>>;
1229
1293
  teacher: z.ZodNullable<z.ZodObject<{
1230
1294
  id: z.ZodString;
1231
1295
  contentHash: z.ZodString;
@@ -1251,6 +1315,7 @@ export declare const LearningIterationSchema: z.ZodObject<{
1251
1315
  contentHash: z.ZodString;
1252
1316
  revision: z.ZodNumber;
1253
1317
  }, z.core.$strict>>>;
1318
+ candidateDecisionAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1254
1319
  dispatchId: z.ZodString;
1255
1320
  retryCount: z.ZodNumber;
1256
1321
  spendUsd: z.ZodNumber;
@@ -1366,6 +1431,24 @@ export declare const LearningResourceSchema: z.ZodUnion<readonly [z.ZodObject<{
1366
1431
  familyNamespace: z.ZodString;
1367
1432
  inputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1368
1433
  outputSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1434
+ requiredOutputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
1435
+ path: z.ZodString;
1436
+ mediaType: z.ZodString;
1437
+ schemaRef: z.ZodDefault<z.ZodNullable<z.ZodObject<{
1438
+ id: z.ZodString;
1439
+ path: z.ZodString;
1440
+ contentHash: z.ZodString;
1441
+ sizeBytes: z.ZodNumber;
1442
+ mediaType: z.ZodString;
1443
+ visibility: z.ZodEnum<{
1444
+ policy: "policy";
1445
+ verifier: "verifier";
1446
+ host_private: "host_private";
1447
+ }>;
1448
+ }, z.core.$strict>>>;
1449
+ maxBytes: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
1450
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1451
+ }, z.core.$strict>>>;
1369
1452
  rewardBinding: z.ZodObject<{
1370
1453
  id: z.ZodString;
1371
1454
  contentHash: z.ZodString;
@@ -2105,6 +2188,20 @@ export declare const LearningResourceSchema: z.ZodUnion<readonly [z.ZodObject<{
2105
2188
  id: z.ZodString;
2106
2189
  contentHash: z.ZodString;
2107
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>>>;
2108
2205
  teacher: z.ZodNullable<z.ZodObject<{
2109
2206
  id: z.ZodString;
2110
2207
  contentHash: z.ZodString;
@@ -2130,6 +2227,7 @@ export declare const LearningResourceSchema: z.ZodUnion<readonly [z.ZodObject<{
2130
2227
  contentHash: z.ZodString;
2131
2228
  revision: z.ZodNumber;
2132
2229
  }, z.core.$strict>>>;
2230
+ candidateDecisionAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2133
2231
  dispatchId: z.ZodString;
2134
2232
  retryCount: z.ZodNumber;
2135
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"}