@openpond/evals 0.12.4 → 0.12.5

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 (32) hide show
  1. package/LEARNING.md +21 -0
  2. package/dist/javascript-isolate-process-entry.js +4 -1
  3. package/dist/javascript-isolate-process-source.js +1 -1
  4. package/dist/javascript-isolate-process.js +36 -2
  5. package/dist/javascript-isolate.js +8 -2
  6. package/dist/javascript-verifier-node.js +1 -0
  7. package/dist/javascript-verifier-worker-source.js +1 -1
  8. package/dist/learning/index.js +1 -0
  9. package/dist/learning/iteration-dispatch-commands.js +1 -1
  10. package/dist/learning/iteration-dispatch-contracts.js +27 -0
  11. package/dist/learning/iteration-dispatch-deferral.js +28 -0
  12. package/dist/learning/iteration-dispatch-worker.js +34 -5
  13. package/dist/types/javascript-isolate-process.d.ts +7 -0
  14. package/dist/types/javascript-isolate-process.d.ts.map +1 -1
  15. package/dist/types/javascript-isolate.d.ts +3 -1
  16. package/dist/types/javascript-isolate.d.ts.map +1 -1
  17. package/dist/types/javascript-verifier-node.d.ts +1 -0
  18. package/dist/types/javascript-verifier-node.d.ts.map +1 -1
  19. package/dist/types/learning/index.d.ts +1 -0
  20. package/dist/types/learning/index.d.ts.map +1 -1
  21. package/dist/types/learning/iteration-dispatch-contracts.d.ts +45 -0
  22. package/dist/types/learning/iteration-dispatch-contracts.d.ts.map +1 -1
  23. package/dist/types/learning/iteration-dispatch-deferral.d.ts +71 -0
  24. package/dist/types/learning/iteration-dispatch-deferral.d.ts.map +1 -0
  25. package/dist/types/learning/iteration-dispatch-worker.d.ts +7 -2
  26. package/dist/types/learning/iteration-dispatch-worker.d.ts.map +1 -1
  27. package/dist/types/learning/repository.d.ts +20 -0
  28. package/dist/types/learning/repository.d.ts.map +1 -1
  29. package/dist/types/learning/transport.d.ts +20 -0
  30. package/dist/types/learning/transport.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/schemas/learning/v1/dispatch.schema.json +100 -1
@@ -25,6 +25,7 @@ export * from "./reward-fixture-executor.js";
25
25
  export * from "./iteration-reservation-contracts.js";
26
26
  export * from "./iteration-dispatch-contracts.js";
27
27
  export * from "./iteration-dispatch-worker.js";
28
+ export * from "./iteration-dispatch-deferral.js";
28
29
  export * from "./iteration-candidate-decision.js";
29
30
  export { resolveLearningTrainingParent } from "./iteration-training-parent.js";
30
31
  export * from "./schedule-contracts.js";
@@ -22,7 +22,7 @@ export async function commandLearningIterationDispatch(tx, input, now) {
22
22
  const resumed = LearningIterationDispatchSchema.parse({ ...dispatch, revision: dispatch.revision + 1,
23
23
  state: dispatch.execution ? "submitted" : dispatch.submission ? "prepared" : "preparing",
24
24
  cancelRequestedAt: cancelling ? dispatch.cancelRequestedAt ?? now : null,
25
- consecutiveFailures: 0, nextAttemptAt: null, lastError: null, updatedAt: now });
25
+ consecutiveFailures: 0, nextAttemptAt: null, lastError: null, admission: null, updatedAt: now });
26
26
  // Preserve an in-flight lease. Its owner observes cancellation on the next
27
27
  // transition, and a replacement worker may claim only after that lease ends.
28
28
  await tx.put("dispatch", resumed, dispatch.revision, { parentId: iteration.id, status: resumed.state });
@@ -8,6 +8,24 @@ export const LearningIterationSubmissionSchema = z.object({
8
8
  protocol: ReleaseIdSchema,
9
9
  payload: LearningJsonObjectSchema,
10
10
  }).strict();
11
+ /** Normal capacity/calendar waits are not failed execution attempts. */
12
+ export const LearningIterationAdmissionSchema = z.discriminatedUnion("status", [
13
+ z.object({ status: z.literal("ready") }).strict(),
14
+ z.object({ status: z.literal("deferred"), retryAt: ReleaseTimestampSchema,
15
+ reason: z.string().trim().min(1).max(2_000) }).strict(),
16
+ ]);
17
+ /** The execution owner has durably rejected/fenced this exact attempt before
18
+ * creating an execution or spending. A timeout/absence read is not this proof. */
19
+ export const LearningIterationSubmissionDeferralSchema = z.object({
20
+ scope: ReleaseIdSchema,
21
+ dispatchId: ReleaseIdSchema,
22
+ submissionHash: z.string().regex(/^[a-f0-9]{64}$/),
23
+ leaseGeneration: z.number().int().positive(),
24
+ status: z.literal("deferred"),
25
+ retryAt: ReleaseTimestampSchema,
26
+ reason: z.string().trim().min(1).max(2_000),
27
+ receipt: ImmutableReleaseRefSchema,
28
+ }).strict();
11
29
  export const LearningIterationDispatchSchema = z.object({
12
30
  schemaVersion: z.literal("openpond.learningIterationDispatch.v1"),
13
31
  id: ReleaseIdSchema,
@@ -28,6 +46,8 @@ export const LearningIterationDispatchSchema = z.object({
28
46
  leaseExpiresAt: ReleaseTimestampSchema.nullable(),
29
47
  consecutiveFailures: z.number().int().nonnegative(),
30
48
  nextAttemptAt: ReleaseTimestampSchema.nullable(),
49
+ admission: LearningIterationAdmissionSchema.nullable().optional(),
50
+ lastSubmissionDeferral: LearningIterationSubmissionDeferralSchema.optional(),
31
51
  lastError: z.string().max(20_000).nullable(),
32
52
  createdAt: ReleaseTimestampSchema,
33
53
  updatedAt: ReleaseTimestampSchema,
@@ -37,6 +57,13 @@ export const LearningIterationDispatchSchema = z.object({
37
57
  }
38
58
  if (value.submissionStartedAt && !value.submission)
39
59
  context.addIssue({ code: "custom", path: ["submission"], message: "A started dispatch requires its persisted submission." });
60
+ if (value.admission?.status === "deferred" && (value.submissionStartedAt || value.state !== "prepared" || value.nextAttemptAt !== value.admission.retryAt)) {
61
+ context.addIssue({ code: "custom", path: ["admission"], message: "Admission deferral requires an unstarted prepared dispatch and its retry time." });
62
+ }
63
+ if (value.lastSubmissionDeferral && (value.lastSubmissionDeferral.dispatchId !== value.id ||
64
+ value.lastSubmissionDeferral.submissionHash !== value.submissionHash || value.lastSubmissionDeferral.leaseGeneration >= value.leaseGeneration)) {
65
+ context.addIssue({ code: "custom", path: ["lastSubmissionDeferral"], message: "A retained deferral must identify an earlier fenced attempt of this submission." });
66
+ }
40
67
  if (value.execution && !value.submissionStartedAt)
41
68
  context.addIssue({ code: "custom", path: ["execution"], message: "An execution requires a started dispatch." });
42
69
  if (["prepared", "submitted"].includes(value.state) && !value.submission)
@@ -0,0 +1,28 @@
1
+ import { LearningIterationSchema } from "./contracts.js";
2
+ import { LearningDomainError } from "./errors.js";
3
+ import { LearningIterationDispatchSchema, LearningIterationSubmissionDeferralSchema } from "./iteration-dispatch-contracts.js";
4
+ /** Call under the dispatch's scope lock. The execution owner must first fence
5
+ * this attempt and prove no execution/charge exists. When the owner shares this
6
+ * repository, commit this mutation in its native admission transaction instead:
7
+ * late submits then fail the same generation fence as lease replacement.
8
+ */
9
+ export async function deferLearningIterationSubmission(tx, scope, current, iteration, value, now) {
10
+ const outcome = LearningIterationSubmissionDeferralSchema.parse(value);
11
+ if (outcome.scope !== scope || outcome.dispatchId !== current.id || outcome.submissionHash !== current.submissionHash ||
12
+ outcome.leaseGeneration !== current.leaseGeneration || !current.submissionStartedAt || current.execution ||
13
+ current.state !== "prepared" || !current.leaseOwner ||
14
+ !current.leaseExpiresAt || Date.parse(current.leaseExpiresAt) <= Date.parse(now) ||
15
+ iteration.id !== current.iterationId || (iteration.status !== "dispatching" && !(current.cancelRequestedAt && iteration.status === "cancelling")))
16
+ throw new LearningDomainError("learning_submission_deferral_fenced", 409);
17
+ const retryAt = new Date(Math.max(Date.parse(outcome.retryAt), Date.parse(now) + 1_000)).toISOString();
18
+ const dispatch = LearningIterationDispatchSchema.parse({ ...current, revision: current.revision + 1,
19
+ submissionStartedAt: null, leaseGeneration: current.leaseGeneration + 1, leaseOwner: null, leaseExpiresAt: null,
20
+ admission: current.cancelRequestedAt ? null : { status: "deferred", reason: outcome.reason, retryAt },
21
+ nextAttemptAt: current.cancelRequestedAt ? null : retryAt, lastSubmissionDeferral: outcome,
22
+ consecutiveFailures: 0, lastError: null, updatedAt: now });
23
+ await tx.put("dispatch", dispatch, current.revision, { parentId: current.iterationId, status: dispatch.state });
24
+ if (iteration.failure)
25
+ await tx.put("iteration", LearningIterationSchema.parse({ ...iteration,
26
+ revision: iteration.revision + 1, failure: null, updatedAt: now }), iteration.revision, { parentId: current.chainId, status: iteration.status });
27
+ return dispatch;
28
+ }
@@ -2,8 +2,10 @@ import { contentHash } from "@openpond/harness";
2
2
  import { LearningIterationSchema } from "./contracts.js";
3
3
  import { LearningDomainError } from "./errors.js";
4
4
  import { LearningChainSchema, LearningIterationReservationSchema } from "./iteration-reservation-contracts.js";
5
- import { LearningIterationDispatchSchema, LearningIterationObservationSchema, LearningIterationSubmissionSchema, } from "./iteration-dispatch-contracts.js";
5
+ import { LearningIterationAdmissionSchema, LearningIterationDispatchSchema, LearningIterationObservationSchema, LearningIterationSubmissionSchema, } from "./iteration-dispatch-contracts.js";
6
6
  import { requireLearningRelease, requireLearningResource } from "./repository.js";
7
+ import { deferLearningIterationSubmission } from "./iteration-dispatch-deferral.js";
8
+ import { LearningIterationSubmissionDeferralSchema } from "./iteration-dispatch-contracts.js";
7
9
  const closed = new Set(["accepted", "rejected", "failed", "cancelled", "completed_without_candidate"]);
8
10
  export function createLearningIterationWorker(repository, executor, options) {
9
11
  const now = options.now ?? (() => new Date().toISOString());
@@ -20,7 +22,7 @@ export function createLearningIterationWorker(repository, executor, options) {
20
22
  const stamp = now();
21
23
  if (current?.state === "settled" || (current?.state === "blocked" && !current.cancelRequestedAt)
22
24
  || (current?.leaseExpiresAt && Date.parse(current.leaseExpiresAt) > Date.parse(stamp))
23
- || (current?.nextAttemptAt && Date.parse(current.nextAttemptAt) > Date.parse(stamp)))
25
+ || (!current?.cancelRequestedAt && current?.nextAttemptAt && Date.parse(current.nextAttemptAt) > Date.parse(stamp)))
24
26
  return null;
25
27
  const policy = await requireLearningRelease(tx, "policy", iteration.policy);
26
28
  if (policy.executionOwner !== options.executionOwner)
@@ -80,7 +82,7 @@ export function createLearningIterationWorker(repository, executor, options) {
80
82
  });
81
83
  await tx.put("iteration", updated, iteration.revision, { parentId: current.chainId, status });
82
84
  await saveDispatch(tx, current, { state: terminal ? "settled" : "submitted", execution: outcome?.execution ?? current.execution,
83
- terminalReceipt: outcome?.receipt ?? null, leaseOwner: null, leaseExpiresAt: null,
85
+ terminalReceipt: outcome?.receipt ?? null, leaseOwner: null, leaseExpiresAt: null, admission: null,
84
86
  nextAttemptAt: terminal ? null : new Date(Date.parse(now()) + 5_000).toISOString(), consecutiveFailures: 0, lastError: null });
85
87
  if (terminal) {
86
88
  const reservation = await requireLearningResource(tx, "reservation", iteration.id);
@@ -124,6 +126,25 @@ export function createLearningIterationWorker(repository, executor, options) {
124
126
  return read();
125
127
  dispatch = prepared;
126
128
  }
129
+ if (!dispatch.submissionStartedAt && !dispatch.cancelRequestedAt && executor.admit) {
130
+ const checkedAt = now();
131
+ const admission = LearningIterationAdmissionSchema.parse(await bounded(input => executor.admit(input)));
132
+ if (admission.status === "deferred") {
133
+ if (Date.parse(admission.retryAt) <= Date.parse(checkedAt))
134
+ throw new LearningDomainError("learning_admission_retry_time_invalid", 409);
135
+ await fenced(scope, dispatch, async (tx, current, iteration) => {
136
+ if (current.cancelRequestedAt)
137
+ return settle(tx, current, iteration, null);
138
+ const retryAt = new Date(Math.max(Date.parse(admission.retryAt), Date.parse(now()) + 1_000)).toISOString();
139
+ await saveDispatch(tx, current, { admission: { ...admission, retryAt }, nextAttemptAt: retryAt,
140
+ consecutiveFailures: 0, lastError: null, leaseOwner: null, leaseExpiresAt: null });
141
+ if (iteration.failure)
142
+ await tx.put("iteration", LearningIterationSchema.parse({ ...iteration,
143
+ revision: iteration.revision + 1, failure: null, updatedAt: now() }), iteration.revision, { parentId: current.chainId, status: iteration.status });
144
+ });
145
+ return read();
146
+ }
147
+ }
127
148
  const starting = await fenced(scope, dispatch, async (tx, current, iteration) => {
128
149
  if (current.cancelRequestedAt && !current.submissionStartedAt) {
129
150
  await settle(tx, current, iteration, null);
@@ -134,7 +155,7 @@ export function createLearningIterationWorker(repository, executor, options) {
134
155
  await saveDispatch(tx, current, { leaseOwner: null, leaseExpiresAt: null });
135
156
  return null;
136
157
  }
137
- return saveDispatch(tx, current, { submissionStartedAt: current.submissionStartedAt ?? now() });
158
+ return saveDispatch(tx, current, { submissionStartedAt: current.submissionStartedAt ?? now(), admission: null });
138
159
  });
139
160
  if (!starting)
140
161
  return read();
@@ -147,6 +168,14 @@ export function createLearningIterationWorker(repository, executor, options) {
147
168
  dispatch = refreshed;
148
169
  observed = dispatch.cancelRequestedAt ? await bounded(input => executor.cancel(input)) : await bounded(input => executor.submit(input));
149
170
  }
171
+ if (observed.status === "deferred") {
172
+ const outcome = LearningIterationSubmissionDeferralSchema.parse(observed);
173
+ if (outcome.scope !== scope || outcome.dispatchId !== dispatch.id || outcome.submissionHash !== dispatch.submissionHash ||
174
+ outcome.leaseGeneration !== dispatch.leaseGeneration)
175
+ throw new LearningDomainError("learning_execution_identity_mismatch", 409);
176
+ await fenced(scope, dispatch, (tx, current, iteration) => deferLearningIterationSubmission(tx, scope, current, iteration, outcome, now()));
177
+ return read();
178
+ }
150
179
  const outcome = LearningIterationObservationSchema.parse(observed);
151
180
  if (outcome.scope !== scope || outcome.dispatchId !== dispatch.id || outcome.submissionHash !== dispatch.submissionHash
152
181
  || (dispatch.execution && contentHash(outcome.execution) !== contentHash(dispatch.execution)))
@@ -165,7 +194,7 @@ export function createLearningIterationWorker(repository, executor, options) {
165
194
  const blocked = failures > acquired.policy.limits.maxRetries;
166
195
  const message = (error instanceof Error ? error.message : "Learning dispatch failed.").slice(0, 20_000);
167
196
  await saveDispatch(tx, current, { state: blocked ? "blocked" : current.state, consecutiveFailures: failures,
168
- lastError: message, leaseOwner: null, leaseExpiresAt: null,
197
+ lastError: message, leaseOwner: null, leaseExpiresAt: null, admission: null,
169
198
  nextAttemptAt: blocked ? null : new Date(Date.parse(now()) + Math.min(60_000, 1_000 * 2 ** Math.min(failures, 6))).toISOString() });
170
199
  const updated = LearningIterationSchema.parse({ ...iteration, revision: iteration.revision + 1, retryCount: iteration.retryCount + 1,
171
200
  failure: { code: blocked ? "learning_dispatch_attention_required" : "learning_dispatch_retry_pending", message }, updatedAt: now() });
@@ -1,4 +1,11 @@
1
1
  import { type JavaScriptIsolateInput } from "./javascript-isolate.js";
2
+ /** Created only by the trusted parent wall timer, never from guest error text.
3
+ * The process executor rejects with this error only after child exit. */
4
+ export declare class JavaScriptVerifierHostTimeoutError extends Error {
5
+ readonly timeoutMs: number;
6
+ readonly elapsedMs: number;
7
+ constructor(timeoutMs: number, elapsedMs: number);
8
+ }
2
9
  /** A Node subprocess owns the interpreter; completion always waits for its exit. */
3
10
  export declare function executeJavaScriptIsolateInProcess(input: JavaScriptIsolateInput & {
4
11
  stripTypeScript?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"javascript-isolate-process.d.ts","sourceRoot":"","sources":["../../src/javascript-isolate-process.ts"],"names":[],"mappings":"AACA,OAAO,EAAmE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGvI,oFAAoF;AACpF,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,sBAAsB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA0DvI"}
1
+ {"version":3,"file":"javascript-isolate-process.d.ts","sourceRoot":"","sources":["../../src/javascript-isolate-process.ts"],"names":[],"mappings":"AACA,OAAO,EAAmE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGvI;yEACyE;AACzE,qBAAa,kCAAmC,SAAQ,KAAK;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM;IAAlE,YAAqB,SAAS,EAAE,MAAM,EAAW,SAAS,EAAE,MAAM,EAGjE;CACF;AAED,oFAAoF;AACpF,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,sBAAsB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA8EvI"}
@@ -12,6 +12,8 @@ export declare class JavaScriptIsolateExecutionError extends Error {
12
12
  constructor(message: string);
13
13
  }
14
14
  /** Authored code is interpreter data, with no host functions or module loader. */
15
- export declare function executeJavaScriptIsolate(input: JavaScriptIsolateInput): Promise<unknown>;
15
+ export declare function executeJavaScriptIsolate(input: JavaScriptIsolateInput, host?: {
16
+ onExecutionReady(): void;
17
+ }): Promise<unknown>;
16
18
  export declare function validateJavaScriptIsolateInput(input: JavaScriptIsolateInput): void;
17
19
  //# sourceMappingURL=javascript-isolate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"javascript-isolate.d.ts","sourceRoot":"","sources":["../../src/javascript-isolate.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;CAClE;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,YAAY,OAAO,EAAE,MAAM,EAAoE;CAChG;AAED,kFAAkF;AAClF,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuC9F;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAKlF"}
1
+ {"version":3,"file":"javascript-isolate.d.ts","sourceRoot":"","sources":["../../src/javascript-isolate.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;CAClE;AAED,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,YAAY,OAAO,EAAE,MAAM,EAAoE;CAChG;AAED,kFAAkF;AAClF,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,EAAE,IAAI,CAAC,EAAE;IAAE,gBAAgB,IAAI,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA0CnI;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAKlF"}
@@ -1,5 +1,6 @@
1
1
  import type { executeJavaScriptVerifier } from "./javascript-verifier.js";
2
2
  import { type JavaScriptVerifierResult } from "./javascript-verifier-contract.js";
3
+ export { JavaScriptVerifierHostTimeoutError } from "./javascript-isolate-process.js";
3
4
  /** Resolves/rejects only after the execution owner has stopped the worker. */
4
5
  export declare function executeJavaScriptVerifierInWorker(input: Parameters<typeof executeJavaScriptVerifier>[0]): Promise<JavaScriptVerifierResult>;
5
6
  /** Uses a Node child process and waits for exit on success, failure, or cancellation. */
@@ -1 +1 @@
1
- {"version":3,"file":"javascript-verifier-node.d.ts","sourceRoot":"","sources":["../../src/javascript-verifier-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAiE,KAAK,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAIjJ,8EAA8E;AAC9E,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAGjJ;AAED,yFAAyF;AACzF,wBAAsB,kCAAkC,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAGlJ"}
1
+ {"version":3,"file":"javascript-verifier-node.d.ts","sourceRoot":"","sources":["../../src/javascript-verifier-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAiE,KAAK,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAGjJ,OAAO,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAErF,8EAA8E;AAC9E,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAGjJ;AAED,yFAAyF;AACzF,wBAAsB,kCAAkC,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAGlJ"}
@@ -25,6 +25,7 @@ export * from "./reward-fixture-executor.js";
25
25
  export * from "./iteration-reservation-contracts.js";
26
26
  export * from "./iteration-dispatch-contracts.js";
27
27
  export * from "./iteration-dispatch-worker.js";
28
+ export * from "./iteration-dispatch-deferral.js";
28
29
  export * from "./iteration-candidate-decision.js";
29
30
  export { resolveLearningTrainingParent } from "./iteration-training-parent.js";
30
31
  export * from "./schedule-contracts.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,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,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,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,2BAA2B,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAChG,cAAc,yBAAyB,CAAC;AACxC,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,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,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,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,2BAA2B,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAChG,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
@@ -6,6 +6,30 @@ export declare const LearningIterationSubmissionSchema: z.ZodObject<{
6
6
  protocol: z.ZodString;
7
7
  payload: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
8
8
  }, z.core.$strict>;
9
+ /** Normal capacity/calendar waits are not failed execution attempts. */
10
+ export declare const LearningIterationAdmissionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
11
+ status: z.ZodLiteral<"ready">;
12
+ }, z.core.$strict>, z.ZodObject<{
13
+ status: z.ZodLiteral<"deferred">;
14
+ retryAt: z.ZodString;
15
+ reason: z.ZodString;
16
+ }, z.core.$strict>], "status">;
17
+ /** The execution owner has durably rejected/fenced this exact attempt before
18
+ * creating an execution or spending. A timeout/absence read is not this proof. */
19
+ export declare const LearningIterationSubmissionDeferralSchema: z.ZodObject<{
20
+ scope: z.ZodString;
21
+ dispatchId: z.ZodString;
22
+ submissionHash: z.ZodString;
23
+ leaseGeneration: z.ZodNumber;
24
+ status: z.ZodLiteral<"deferred">;
25
+ retryAt: z.ZodString;
26
+ reason: z.ZodString;
27
+ receipt: z.ZodObject<{
28
+ id: z.ZodString;
29
+ contentHash: z.ZodString;
30
+ }, z.core.$strict>;
31
+ }, z.core.$strict>;
32
+ export type LearningIterationSubmissionDeferral = z.infer<typeof LearningIterationSubmissionDeferralSchema>;
9
33
  export declare const LearningIterationDispatchSchema: z.ZodObject<{
10
34
  schemaVersion: z.ZodLiteral<"openpond.learningIterationDispatch.v1">;
11
35
  id: z.ZodString;
@@ -50,6 +74,26 @@ export declare const LearningIterationDispatchSchema: z.ZodObject<{
50
74
  leaseExpiresAt: z.ZodNullable<z.ZodString>;
51
75
  consecutiveFailures: z.ZodNumber;
52
76
  nextAttemptAt: z.ZodNullable<z.ZodString>;
77
+ admission: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
78
+ status: z.ZodLiteral<"ready">;
79
+ }, z.core.$strict>, z.ZodObject<{
80
+ status: z.ZodLiteral<"deferred">;
81
+ retryAt: z.ZodString;
82
+ reason: z.ZodString;
83
+ }, z.core.$strict>], "status">>>;
84
+ lastSubmissionDeferral: z.ZodOptional<z.ZodObject<{
85
+ scope: z.ZodString;
86
+ dispatchId: z.ZodString;
87
+ submissionHash: z.ZodString;
88
+ leaseGeneration: z.ZodNumber;
89
+ status: z.ZodLiteral<"deferred">;
90
+ retryAt: z.ZodString;
91
+ reason: z.ZodString;
92
+ receipt: z.ZodObject<{
93
+ id: z.ZodString;
94
+ contentHash: z.ZodString;
95
+ }, z.core.$strict>;
96
+ }, z.core.$strict>>;
53
97
  lastError: z.ZodNullable<z.ZodString>;
54
98
  createdAt: z.ZodString;
55
99
  updatedAt: z.ZodString;
@@ -90,4 +134,5 @@ export declare const LearningIterationObservationSchema: z.ZodObject<{
90
134
  export type LearningIterationSubmission = z.infer<typeof LearningIterationSubmissionSchema>;
91
135
  export type LearningIterationDispatch = z.infer<typeof LearningIterationDispatchSchema>;
92
136
  export type LearningIterationObservation = z.infer<typeof LearningIterationObservationSchema>;
137
+ export type LearningIterationAdmission = z.infer<typeof LearningIterationAdmissionSchema>;
93
138
  //# sourceMappingURL=iteration-dispatch-contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"iteration-dispatch-contracts.d.ts","sourceRoot":"","sources":["../../../src/learning/iteration-dispatch-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;kFACkF;AAClF,eAAO,MAAM,iCAAiC;;;;kBAInC,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiC1C,CAAC;AAEH;wEACwE;AACxE,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkB7C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC"}
1
+ {"version":3,"file":"iteration-dispatch-contracts.d.ts","sourceRoot":"","sources":["../../../src/learning/iteration-dispatch-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;kFACkF;AAClF,eAAO,MAAM,iCAAiC;;;;kBAInC,CAAC;AAEZ,wEAAwE;AACxE,eAAO,MAAM,gCAAgC;;;;;;8BAI3C,CAAC;AAEH;kFACkF;AAClF,eAAO,MAAM,yCAAyC;;;;;;;;;;;;kBAS3C,CAAC;AACZ,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yCAAyC,CAAC,CAAC;AAE5G,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0C1C,CAAC;AAEH;wEACwE;AACxE,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkB7C,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { type LearningIteration } from "./contracts.js";
2
+ import { type LearningIterationDispatch } from "./iteration-dispatch-contracts.js";
3
+ import type { LearningTransaction } from "./repository.js";
4
+ /** Call under the dispatch's scope lock. The execution owner must first fence
5
+ * this attempt and prove no execution/charge exists. When the owner shares this
6
+ * repository, commit this mutation in its native admission transaction instead:
7
+ * late submits then fail the same generation fence as lease replacement.
8
+ */
9
+ export declare function deferLearningIterationSubmission(tx: LearningTransaction, scope: string, current: LearningIterationDispatch, iteration: LearningIteration, value: unknown, now: string): Promise<{
10
+ schemaVersion: "openpond.learningIterationDispatch.v1";
11
+ id: string;
12
+ revision: number;
13
+ iterationId: string;
14
+ chainId: string;
15
+ policy: {
16
+ id: string;
17
+ contentHash: string;
18
+ revision: number;
19
+ };
20
+ batch: {
21
+ id: string;
22
+ contentHash: string;
23
+ revision: number;
24
+ };
25
+ state: "blocked" | "prepared" | "preparing" | "settled" | "submitted";
26
+ submission: {
27
+ provider: string;
28
+ protocol: string;
29
+ payload: Record<string, import("zod").JSONType>;
30
+ } | null;
31
+ submissionHash: string | null;
32
+ submissionStartedAt: string | null;
33
+ execution: {
34
+ id: string;
35
+ contentHash: string;
36
+ } | null;
37
+ terminalReceipt: {
38
+ id: string;
39
+ contentHash: string;
40
+ } | null;
41
+ cancelRequestedAt: string | null;
42
+ leaseOwner: string | null;
43
+ leaseGeneration: number;
44
+ leaseExpiresAt: string | null;
45
+ consecutiveFailures: number;
46
+ nextAttemptAt: string | null;
47
+ admission?: {
48
+ status: "ready";
49
+ } | {
50
+ status: "deferred";
51
+ retryAt: string;
52
+ reason: string;
53
+ } | null | undefined;
54
+ lastSubmissionDeferral?: {
55
+ scope: string;
56
+ dispatchId: string;
57
+ submissionHash: string;
58
+ leaseGeneration: number;
59
+ status: "deferred";
60
+ retryAt: string;
61
+ reason: string;
62
+ receipt: {
63
+ id: string;
64
+ contentHash: string;
65
+ };
66
+ } | undefined;
67
+ lastError: string | null;
68
+ createdAt: string;
69
+ updatedAt: string;
70
+ }>;
71
+ //# sourceMappingURL=iteration-dispatch-deferral.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iteration-dispatch-deferral.d.ts","sourceRoot":"","sources":["../../../src/learning/iteration-dispatch-deferral.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjF,OAAO,EACL,KAAK,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;;GAIG;AACH,wBAAsB,gCAAgC,CAAC,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAC3F,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmB9F"}
@@ -1,6 +1,7 @@
1
1
  import { type LearningIteration, type LearningPolicy, type TaskBatch } from "./contracts.js";
2
- import { type LearningIterationDispatch, type LearningIterationObservation, type LearningIterationSubmission } from "./iteration-dispatch-contracts.js";
2
+ import { type LearningIterationAdmission, type LearningIterationDispatch, type LearningIterationObservation, type LearningIterationSubmission } from "./iteration-dispatch-contracts.js";
3
3
  import { type LearningRepository } from "./repository.js";
4
+ import { type LearningIterationSubmissionDeferral } from "./iteration-dispatch-contracts.js";
4
5
  export type LearningIterationExecutionContext = {
5
6
  scope: string;
6
7
  dispatch: LearningIterationDispatch;
@@ -12,12 +13,16 @@ export type LearningIterationExecutionContext = {
12
13
  export interface LearningIterationExecutor {
13
14
  /** Resolve immutable inputs and validate compatibility. Must not launch compute. */
14
15
  prepare(input: LearningIterationExecutionContext): Promise<LearningIterationSubmission>;
16
+ /** Check calendar/capacity for the persisted submission before its first
17
+ * attempt. May reserve admission custody, but must not create an execution,
18
+ * launch compute or spend. Submit must still enforce current authority. */
19
+ admit?(input: LearningIterationExecutionContext): Promise<LearningIterationAdmission>;
15
20
  /** Return the existing execution under dispatch.id; null means not found.
16
21
  * An unavailable owner must throw, never report absence. */
17
22
  reconcile(input: LearningIterationExecutionContext): Promise<LearningIterationObservation | null>;
18
23
  /** Idempotently submit exactly dispatch.submission under dispatch.id, across
19
24
  * crashes, lease owners and retries. Never create a different Job on retry. */
20
- submit(input: LearningIterationExecutionContext): Promise<LearningIterationObservation>;
25
+ submit(input: LearningIterationExecutionContext): Promise<LearningIterationObservation | LearningIterationSubmissionDeferral>;
21
26
  /** Cancel by dispatch identity, including an ambiguous initial submission.
22
27
  * Terminal confirmation MUST fence late submits under that identity, including
23
28
  * when no Job was created. A network abort alone is not cleanup confirmation. */
@@ -1 +1 @@
1
- {"version":3,"file":"iteration-dispatch-worker.d.ts","sourceRoot":"","sources":["../../../src/learning/iteration-dispatch-worker.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGtH,OAAO,EAEL,KAAK,yBAAyB,EAAE,KAAK,4BAA4B,EAAE,KAAK,2BAA2B,EACpG,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAmD,KAAK,kBAAkB,EAA4B,MAAM,iBAAiB,CAAC;AAErI,MAAM,MAAM,iCAAiC,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,yBAAyB,CAAC;IACpC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AACF,MAAM,WAAW,yBAAyB;IACxC,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACxF;gEAC4D;IAC5D,SAAS,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;IAClG;mFAC+E;IAC/E,MAAM,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACxF;;qFAEiF;IACjF,MAAM,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;CACzF;AAID,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,OAAO,EAAE;IAC1H,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;iBAsF2B,MAAM,eAAe,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAAC;EA8DnF"}
1
+ {"version":3,"file":"iteration-dispatch-worker.d.ts","sourceRoot":"","sources":["../../../src/learning/iteration-dispatch-worker.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGtH,OAAO,EAEL,KAAK,0BAA0B,EAAE,KAAK,yBAAyB,EAAE,KAAK,4BAA4B,EAAE,KAAK,2BAA2B,EACrI,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAmD,KAAK,kBAAkB,EAA4B,MAAM,iBAAiB,CAAC;AAErI,OAAO,EAA6C,KAAK,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AAExI,MAAM,MAAM,iCAAiC,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,yBAAyB,CAAC;IACpC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AACF,MAAM,WAAW,yBAAyB;IACxC,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACxF;;+EAE2E;IAC3E,KAAK,CAAC,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACtF;gEAC4D;IAC5D,SAAS,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;IAClG;mFAC+E;IAG/E,MAAM,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,4BAA4B,GAAG,mCAAmC,CAAC,CAAC;IAC9H;;qFAEiF;IACjF,MAAM,CAAC,KAAK,EAAE,iCAAiC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;CACzF;AAID,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,OAAO,EAAE;IAC1H,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;iBAsF2B,MAAM,eAAe,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAAC;EAsFnF"}
@@ -1739,6 +1739,26 @@ export declare const learningResourceSchemas: {
1739
1739
  leaseExpiresAt: z.ZodNullable<z.ZodString>;
1740
1740
  consecutiveFailures: z.ZodNumber;
1741
1741
  nextAttemptAt: z.ZodNullable<z.ZodString>;
1742
+ admission: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
1743
+ status: z.ZodLiteral<"ready">;
1744
+ }, z.core.$strict>, z.ZodObject<{
1745
+ status: z.ZodLiteral<"deferred">;
1746
+ retryAt: z.ZodString;
1747
+ reason: z.ZodString;
1748
+ }, z.core.$strict>], "status">>>;
1749
+ lastSubmissionDeferral: z.ZodOptional<z.ZodObject<{
1750
+ scope: z.ZodString;
1751
+ dispatchId: z.ZodString;
1752
+ submissionHash: z.ZodString;
1753
+ leaseGeneration: z.ZodNumber;
1754
+ status: z.ZodLiteral<"deferred">;
1755
+ retryAt: z.ZodString;
1756
+ reason: z.ZodString;
1757
+ receipt: z.ZodObject<{
1758
+ id: z.ZodString;
1759
+ contentHash: z.ZodString;
1760
+ }, z.core.$strict>;
1761
+ }, z.core.$strict>>;
1742
1762
  lastError: z.ZodNullable<z.ZodString>;
1743
1763
  createdAt: z.ZodString;
1744
1764
  updatedAt: z.ZodString;
@@ -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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"}
@@ -3096,6 +3096,26 @@ export declare const LearningOperationResultSchema: z.ZodObject<{
3096
3096
  leaseExpiresAt: z.ZodNullable<z.ZodString>;
3097
3097
  consecutiveFailures: z.ZodNumber;
3098
3098
  nextAttemptAt: z.ZodNullable<z.ZodString>;
3099
+ admission: z.ZodOptional<z.ZodNullable<z.ZodDiscriminatedUnion<[z.ZodObject<{
3100
+ status: z.ZodLiteral<"ready">;
3101
+ }, z.core.$strict>, z.ZodObject<{
3102
+ status: z.ZodLiteral<"deferred">;
3103
+ retryAt: z.ZodString;
3104
+ reason: z.ZodString;
3105
+ }, z.core.$strict>], "status">>>;
3106
+ lastSubmissionDeferral: z.ZodOptional<z.ZodObject<{
3107
+ scope: z.ZodString;
3108
+ dispatchId: z.ZodString;
3109
+ submissionHash: z.ZodString;
3110
+ leaseGeneration: z.ZodNumber;
3111
+ status: z.ZodLiteral<"deferred">;
3112
+ retryAt: z.ZodString;
3113
+ reason: z.ZodString;
3114
+ receipt: z.ZodObject<{
3115
+ id: z.ZodString;
3116
+ contentHash: z.ZodString;
3117
+ }, z.core.$strict>;
3118
+ }, z.core.$strict>>;
3099
3119
  lastError: z.ZodNullable<z.ZodString>;
3100
3120
  createdAt: z.ZodString;
3101
3121
  updatedAt: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/learning/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,mFAAmF;AACnF,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAG5D;AAED,0FAA0F;AAC1F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAgF,CAAC;AAC1H,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAMpC,CAAC;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;kBAOpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAG/B,CAAC"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/learning/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,mFAAmF;AACnF,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAG5D;AAED,0FAA0F;AAC1F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAgF,CAAC;AAC1H,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAMpC,CAAC;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;kBAOpC,CAAC;AACZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAC9F,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAG/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openpond/evals",
3
- "version": "0.12.4",
3
+ "version": "0.12.5",
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",