@openpond/evals 0.10.2 → 0.10.4

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 +39 -0
  2. package/dist/learning/contracts.js +1 -0
  3. package/dist/learning/index.js +4 -0
  4. package/dist/learning/iteration-candidate-decision.js +51 -0
  5. package/dist/learning/repository.js +2 -0
  6. package/dist/learning/schedule-contracts.js +45 -0
  7. package/dist/learning/schedule-service.js +31 -0
  8. package/dist/learning/schedule-worker.js +96 -0
  9. package/dist/learning/service.js +7 -0
  10. package/dist/types/learning/contracts.d.ts +10 -0
  11. package/dist/types/learning/contracts.d.ts.map +1 -1
  12. package/dist/types/learning/index.d.ts +4 -0
  13. package/dist/types/learning/index.d.ts.map +1 -1
  14. package/dist/types/learning/iteration-candidate-decision.d.ts +94 -0
  15. package/dist/types/learning/iteration-candidate-decision.d.ts.map +1 -0
  16. package/dist/types/learning/repository.d.ts +71 -1
  17. package/dist/types/learning/repository.d.ts.map +1 -1
  18. package/dist/types/learning/schedule-contracts.d.ts +69 -0
  19. package/dist/types/learning/schedule-contracts.d.ts.map +1 -0
  20. package/dist/types/learning/schedule-service.d.ts +30 -0
  21. package/dist/types/learning/schedule-service.d.ts.map +1 -0
  22. package/dist/types/learning/schedule-worker.d.ts +12 -0
  23. package/dist/types/learning/schedule-worker.d.ts.map +1 -0
  24. package/dist/types/learning/service.d.ts.map +1 -1
  25. package/dist/types/learning/transport.d.ts +72 -2
  26. package/dist/types/learning/transport.d.ts.map +1 -1
  27. package/package.json +1 -1
  28. package/schemas/learning/v1/iteration.schema.json +12 -0
  29. package/schemas/learning/v1/read-request.schema.json +2 -0
  30. package/schemas/learning/v1/schedule.schema.json +188 -0
  31. package/schemas/learning/v1/schedule_fire.schema.json +163 -0
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ /** The durable timer is operational state; every fire retains its own policy. */
3
+ export declare const LearningScheduleSchema: z.ZodObject<{
4
+ schemaVersion: z.ZodLiteral<"openpond.learningSchedule.v1">;
5
+ id: z.ZodString;
6
+ revision: z.ZodNumber;
7
+ policy: z.ZodObject<{
8
+ id: z.ZodString;
9
+ contentHash: z.ZodString;
10
+ revision: z.ZodNumber;
11
+ }, z.core.$strict>;
12
+ modelProjectId: z.ZodString;
13
+ executionOwner: z.ZodEnum<{
14
+ local: "local";
15
+ hosted: "hosted";
16
+ }>;
17
+ state: z.ZodEnum<{
18
+ blocked: "blocked";
19
+ scheduled: "scheduled";
20
+ disabled: "disabled";
21
+ }>;
22
+ intervalSeconds: z.ZodNullable<z.ZodNumber>;
23
+ nextRunAt: z.ZodNullable<z.ZodString>;
24
+ lastFire: z.ZodNullable<z.ZodObject<{
25
+ id: z.ZodString;
26
+ contentHash: z.ZodString;
27
+ revision: z.ZodNumber;
28
+ }, z.core.$strict>>;
29
+ consecutiveFailures: z.ZodNumber;
30
+ nextAttemptAt: z.ZodNullable<z.ZodString>;
31
+ lastError: z.ZodNullable<z.ZodString>;
32
+ createdAt: z.ZodString;
33
+ updatedAt: z.ZodString;
34
+ }, z.core.$strict>;
35
+ /** Immutable occurrence evidence survives timer edits and coalesced downtime. */
36
+ export declare const LearningScheduleFireSchema: z.ZodObject<{
37
+ schemaVersion: z.ZodLiteral<"openpond.learningScheduleFire.v1">;
38
+ id: z.ZodString;
39
+ revision: z.ZodLiteral<1>;
40
+ scheduleId: z.ZodString;
41
+ policy: z.ZodObject<{
42
+ id: z.ZodString;
43
+ contentHash: z.ZodString;
44
+ revision: z.ZodNumber;
45
+ }, z.core.$strict>;
46
+ scheduledAt: z.ZodString;
47
+ coalescedThroughAt: z.ZodString;
48
+ coalescedCount: z.ZodNumber;
49
+ outcome: z.ZodEnum<{
50
+ skipped: "skipped";
51
+ waiting_for_data: "waiting_for_data";
52
+ waiting_for_review: "waiting_for_review";
53
+ reserved: "reserved";
54
+ }>;
55
+ reason: z.ZodNullable<z.ZodEnum<{
56
+ active_iteration: "active_iteration";
57
+ cooldown: "cooldown";
58
+ daily_budget: "daily_budget";
59
+ }>>;
60
+ iteration: z.ZodNullable<z.ZodObject<{
61
+ id: z.ZodString;
62
+ revision: z.ZodNumber;
63
+ }, z.core.$strict>>;
64
+ createdAt: z.ZodString;
65
+ contentHash: z.ZodString;
66
+ }, z.core.$strict>;
67
+ export type LearningSchedule = z.infer<typeof LearningScheduleSchema>;
68
+ export type LearningScheduleFire = z.infer<typeof LearningScheduleFireSchema>;
69
+ //# sourceMappingURL=schedule-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-contracts.d.ts","sourceRoot":"","sources":["../../../../../src/learning/schedule-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,iFAAiF;AACjF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqBjC,CAAC;AAEH,iFAAiF;AACjF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiBrC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type LearningPolicy } from "./contracts.js";
2
+ import { type LearningTransaction } from "./repository.js";
3
+ export declare function learningScheduleId(policyId: string): string;
4
+ /** Called atomically with policy publication. No external timer or Work is made. */
5
+ export declare function synchronizeLearningSchedule(tx: LearningTransaction, policy: LearningPolicy, now: string): Promise<{
6
+ schemaVersion: "openpond.learningSchedule.v1";
7
+ id: string;
8
+ revision: number;
9
+ policy: {
10
+ id: string;
11
+ contentHash: string;
12
+ revision: number;
13
+ };
14
+ modelProjectId: string;
15
+ executionOwner: "local" | "hosted";
16
+ state: "blocked" | "scheduled" | "disabled";
17
+ intervalSeconds: number | null;
18
+ nextRunAt: string | null;
19
+ lastFire: {
20
+ id: string;
21
+ contentHash: string;
22
+ revision: number;
23
+ } | null;
24
+ consecutiveFailures: number;
25
+ nextAttemptAt: string | null;
26
+ lastError: string | null;
27
+ createdAt: string;
28
+ updatedAt: string;
29
+ }>;
30
+ //# sourceMappingURL=schedule-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-service.d.ts","sourceRoot":"","sources":["../../../../../src/learning/schedule-service.ts"],"names":[],"mappings":"AACA,OAAO,EAA2D,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG9G,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,UAAiD;AAEpG,oFAAoF;AACpF,wBAAsB,2BAA2B,CAAC,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;GAqB7G"}
@@ -0,0 +1,12 @@
1
+ import { type LearningSchedule } from "./schedule-contracts.js";
2
+ import { type LearningRepository } from "./repository.js";
3
+ /** Like a durable scheduled Work fire, the occurrence and timer advance commit
4
+ * together. Here the typed target is a learning reservation, never a prompt or
5
+ * provider submission. All work inside the transaction is repository-only. */
6
+ export declare function createLearningScheduleWorker(repository: LearningRepository, options: {
7
+ executionOwner: "local" | "hosted";
8
+ now?: () => string;
9
+ }): {
10
+ run: (scope: string, scheduleId: string, actorId: string) => Promise<LearningSchedule>;
11
+ };
12
+ //# sourceMappingURL=schedule-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-worker.d.ts","sourceRoot":"","sources":["../../../../../src/learning/schedule-worker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsD,KAAK,gBAAgB,EAA6B,MAAM,yBAAyB,CAAC;AAC/I,OAAO,EAAmD,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAO3G;;8EAE8E;AAC9E,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE;IACpF,cAAc,EAAE,OAAO,GAAG,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACxD;iBAG2B,MAAM,cAAc,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAAC;EAuElG"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/learning/service.ts"],"names":[],"mappings":"AAYA,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;6BAyPtE,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":"AAaA,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;6BA0PtE,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"}
@@ -1459,14 +1459,16 @@ export declare const LearningReadRequestSchema: z.ZodDiscriminatedUnion<[z.ZodOb
1459
1459
  binding: "binding";
1460
1460
  batch: "batch";
1461
1461
  grade: "grade";
1462
+ schedule: "schedule";
1462
1463
  definition: "definition";
1463
1464
  draft: "draft";
1465
+ iteration: "iteration";
1464
1466
  reward_check: "reward_check";
1465
1467
  chain: "chain";
1466
1468
  consumption: "consumption";
1467
1469
  reservation: "reservation";
1468
1470
  dispatch: "dispatch";
1469
- iteration: "iteration";
1471
+ schedule_fire: "schedule_fire";
1470
1472
  package: "package";
1471
1473
  }>;
1472
1474
  id: z.ZodString;
@@ -1485,14 +1487,16 @@ export declare const LearningReadRequestSchema: z.ZodDiscriminatedUnion<[z.ZodOb
1485
1487
  binding: "binding";
1486
1488
  batch: "batch";
1487
1489
  grade: "grade";
1490
+ schedule: "schedule";
1488
1491
  definition: "definition";
1489
1492
  draft: "draft";
1493
+ iteration: "iteration";
1490
1494
  reward_check: "reward_check";
1491
1495
  chain: "chain";
1492
1496
  consumption: "consumption";
1493
1497
  reservation: "reservation";
1494
1498
  dispatch: "dispatch";
1495
- iteration: "iteration";
1499
+ schedule_fire: "schedule_fire";
1496
1500
  package: "package";
1497
1501
  }>;
1498
1502
  parentId: z.ZodOptional<z.ZodString>;
@@ -2547,6 +2551,11 @@ export declare const LearningOperationResultSchema: z.ZodObject<{
2547
2551
  id: z.ZodString;
2548
2552
  contentHash: z.ZodString;
2549
2553
  }, z.core.$strict>>;
2554
+ candidateDecision: z.ZodDefault<z.ZodNullable<z.ZodObject<{
2555
+ id: z.ZodString;
2556
+ contentHash: z.ZodString;
2557
+ revision: z.ZodNumber;
2558
+ }, z.core.$strict>>>;
2550
2559
  dispatchId: z.ZodString;
2551
2560
  retryCount: z.ZodNumber;
2552
2561
  spendUsd: z.ZodNumber;
@@ -2968,6 +2977,67 @@ export declare const LearningOperationResultSchema: z.ZodObject<{
2968
2977
  lastError: z.ZodNullable<z.ZodString>;
2969
2978
  createdAt: z.ZodString;
2970
2979
  updatedAt: z.ZodString;
2980
+ }, z.core.$strict> | z.ZodObject<{
2981
+ schemaVersion: z.ZodLiteral<"openpond.learningSchedule.v1">;
2982
+ id: z.ZodString;
2983
+ revision: z.ZodNumber;
2984
+ policy: z.ZodObject<{
2985
+ id: z.ZodString;
2986
+ contentHash: z.ZodString;
2987
+ revision: z.ZodNumber;
2988
+ }, z.core.$strict>;
2989
+ modelProjectId: z.ZodString;
2990
+ executionOwner: z.ZodEnum<{
2991
+ local: "local";
2992
+ hosted: "hosted";
2993
+ }>;
2994
+ state: z.ZodEnum<{
2995
+ blocked: "blocked";
2996
+ scheduled: "scheduled";
2997
+ disabled: "disabled";
2998
+ }>;
2999
+ intervalSeconds: z.ZodNullable<z.ZodNumber>;
3000
+ nextRunAt: z.ZodNullable<z.ZodString>;
3001
+ lastFire: z.ZodNullable<z.ZodObject<{
3002
+ id: z.ZodString;
3003
+ contentHash: z.ZodString;
3004
+ revision: z.ZodNumber;
3005
+ }, z.core.$strict>>;
3006
+ consecutiveFailures: z.ZodNumber;
3007
+ nextAttemptAt: z.ZodNullable<z.ZodString>;
3008
+ lastError: z.ZodNullable<z.ZodString>;
3009
+ createdAt: z.ZodString;
3010
+ updatedAt: z.ZodString;
3011
+ }, z.core.$strict> | z.ZodObject<{
3012
+ schemaVersion: z.ZodLiteral<"openpond.learningScheduleFire.v1">;
3013
+ id: z.ZodString;
3014
+ revision: z.ZodLiteral<1>;
3015
+ scheduleId: z.ZodString;
3016
+ policy: z.ZodObject<{
3017
+ id: z.ZodString;
3018
+ contentHash: z.ZodString;
3019
+ revision: z.ZodNumber;
3020
+ }, z.core.$strict>;
3021
+ scheduledAt: z.ZodString;
3022
+ coalescedThroughAt: z.ZodString;
3023
+ coalescedCount: z.ZodNumber;
3024
+ outcome: z.ZodEnum<{
3025
+ skipped: "skipped";
3026
+ waiting_for_data: "waiting_for_data";
3027
+ waiting_for_review: "waiting_for_review";
3028
+ reserved: "reserved";
3029
+ }>;
3030
+ reason: z.ZodNullable<z.ZodEnum<{
3031
+ active_iteration: "active_iteration";
3032
+ cooldown: "cooldown";
3033
+ daily_budget: "daily_budget";
3034
+ }>>;
3035
+ iteration: z.ZodNullable<z.ZodObject<{
3036
+ id: z.ZodString;
3037
+ revision: z.ZodNumber;
3038
+ }, z.core.$strict>>;
3039
+ createdAt: z.ZodString;
3040
+ contentHash: z.ZodString;
2971
3041
  }, z.core.$strict> | z.ZodObject<{
2972
3042
  schemaVersion: z.ZodLiteral<"openpond.rewardCheckRun.v1">;
2973
3043
  id: 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAIpC,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":"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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.2",
3
+ "version": "0.10.4",
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",
@@ -113,6 +113,17 @@
113
113
  }
114
114
  ]
115
115
  },
116
+ "candidateDecision": {
117
+ "default": null,
118
+ "anyOf": [
119
+ {
120
+ "$ref": "#/$defs/__schema1"
121
+ },
122
+ {
123
+ "type": "null"
124
+ }
125
+ ]
126
+ },
116
127
  "dispatchId": {
117
128
  "$ref": "#/$defs/__schema0"
118
129
  },
@@ -171,6 +182,7 @@
171
182
  "trainingJob",
172
183
  "evaluationJob",
173
184
  "candidateVersion",
185
+ "candidateDecision",
174
186
  "dispatchId",
175
187
  "retryCount",
176
188
  "spendUsd",
@@ -137,6 +137,8 @@
137
137
  "consumption",
138
138
  "reservation",
139
139
  "dispatch",
140
+ "schedule",
141
+ "schedule_fire",
140
142
  "iteration",
141
143
  "grade",
142
144
  "package"
@@ -0,0 +1,188 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": {
6
+ "$ref": "#/$defs/__schema0"
7
+ },
8
+ "id": {
9
+ "$ref": "#/$defs/__schema1"
10
+ },
11
+ "revision": {
12
+ "$ref": "#/$defs/__schema2"
13
+ },
14
+ "policy": {
15
+ "$ref": "#/$defs/__schema3"
16
+ },
17
+ "modelProjectId": {
18
+ "$ref": "#/$defs/__schema1"
19
+ },
20
+ "executionOwner": {
21
+ "$ref": "#/$defs/__schema4"
22
+ },
23
+ "state": {
24
+ "$ref": "#/$defs/__schema5"
25
+ },
26
+ "intervalSeconds": {
27
+ "$ref": "#/$defs/__schema6"
28
+ },
29
+ "nextRunAt": {
30
+ "$ref": "#/$defs/__schema7"
31
+ },
32
+ "lastFire": {
33
+ "$ref": "#/$defs/__schema9"
34
+ },
35
+ "consecutiveFailures": {
36
+ "$ref": "#/$defs/__schema10"
37
+ },
38
+ "nextAttemptAt": {
39
+ "$ref": "#/$defs/__schema11"
40
+ },
41
+ "lastError": {
42
+ "$ref": "#/$defs/__schema12"
43
+ },
44
+ "createdAt": {
45
+ "$ref": "#/$defs/__schema8"
46
+ },
47
+ "updatedAt": {
48
+ "$ref": "#/$defs/__schema8"
49
+ }
50
+ },
51
+ "required": [
52
+ "schemaVersion",
53
+ "id",
54
+ "revision",
55
+ "policy",
56
+ "modelProjectId",
57
+ "executionOwner",
58
+ "state",
59
+ "intervalSeconds",
60
+ "nextRunAt",
61
+ "lastFire",
62
+ "consecutiveFailures",
63
+ "nextAttemptAt",
64
+ "lastError",
65
+ "createdAt",
66
+ "updatedAt"
67
+ ],
68
+ "additionalProperties": false,
69
+ "$defs": {
70
+ "__schema0": {
71
+ "type": "string",
72
+ "const": "openpond.learningSchedule.v1"
73
+ },
74
+ "__schema1": {
75
+ "type": "string",
76
+ "minLength": 1,
77
+ "maxLength": 240
78
+ },
79
+ "__schema2": {
80
+ "type": "integer",
81
+ "exclusiveMinimum": 0,
82
+ "maximum": 9007199254740991
83
+ },
84
+ "__schema3": {
85
+ "type": "object",
86
+ "properties": {
87
+ "id": {
88
+ "$ref": "#/$defs/__schema1"
89
+ },
90
+ "contentHash": {
91
+ "type": "string",
92
+ "pattern": "^[a-f0-9]{64}$"
93
+ },
94
+ "revision": {
95
+ "type": "integer",
96
+ "exclusiveMinimum": 0,
97
+ "maximum": 9007199254740991
98
+ }
99
+ },
100
+ "required": [
101
+ "id",
102
+ "contentHash",
103
+ "revision"
104
+ ],
105
+ "additionalProperties": false
106
+ },
107
+ "__schema4": {
108
+ "type": "string",
109
+ "enum": [
110
+ "local",
111
+ "hosted"
112
+ ]
113
+ },
114
+ "__schema5": {
115
+ "type": "string",
116
+ "enum": [
117
+ "scheduled",
118
+ "disabled",
119
+ "blocked"
120
+ ]
121
+ },
122
+ "__schema6": {
123
+ "anyOf": [
124
+ {
125
+ "type": "integer",
126
+ "minimum": 60,
127
+ "maximum": 31536000
128
+ },
129
+ {
130
+ "type": "null"
131
+ }
132
+ ]
133
+ },
134
+ "__schema7": {
135
+ "anyOf": [
136
+ {
137
+ "$ref": "#/$defs/__schema8"
138
+ },
139
+ {
140
+ "type": "null"
141
+ }
142
+ ]
143
+ },
144
+ "__schema8": {
145
+ "type": "string",
146
+ "format": "date-time",
147
+ "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)))$"
148
+ },
149
+ "__schema9": {
150
+ "anyOf": [
151
+ {
152
+ "$ref": "#/$defs/__schema3"
153
+ },
154
+ {
155
+ "type": "null"
156
+ }
157
+ ]
158
+ },
159
+ "__schema10": {
160
+ "type": "integer",
161
+ "minimum": 0,
162
+ "maximum": 9007199254740991
163
+ },
164
+ "__schema11": {
165
+ "anyOf": [
166
+ {
167
+ "$ref": "#/$defs/__schema8"
168
+ },
169
+ {
170
+ "type": "null"
171
+ }
172
+ ]
173
+ },
174
+ "__schema12": {
175
+ "anyOf": [
176
+ {
177
+ "type": "string",
178
+ "maxLength": 20000
179
+ },
180
+ {
181
+ "type": "null"
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ "$id": "urn:openpond:learning:v1:schedule",
187
+ "$comment": "Generated from @openpond/evals. Cross-resource identity, authorization, idempotency, admission, grading and split constraints are enforced by the shared domain service in addition to this structural schema."
188
+ }
@@ -0,0 +1,163 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": {
6
+ "$ref": "#/$defs/__schema0"
7
+ },
8
+ "id": {
9
+ "$ref": "#/$defs/__schema1"
10
+ },
11
+ "revision": {
12
+ "$ref": "#/$defs/__schema2"
13
+ },
14
+ "scheduleId": {
15
+ "$ref": "#/$defs/__schema1"
16
+ },
17
+ "policy": {
18
+ "$ref": "#/$defs/__schema3"
19
+ },
20
+ "scheduledAt": {
21
+ "$ref": "#/$defs/__schema5"
22
+ },
23
+ "coalescedThroughAt": {
24
+ "$ref": "#/$defs/__schema5"
25
+ },
26
+ "coalescedCount": {
27
+ "$ref": "#/$defs/__schema6"
28
+ },
29
+ "outcome": {
30
+ "$ref": "#/$defs/__schema7"
31
+ },
32
+ "reason": {
33
+ "$ref": "#/$defs/__schema8"
34
+ },
35
+ "iteration": {
36
+ "$ref": "#/$defs/__schema9"
37
+ },
38
+ "createdAt": {
39
+ "$ref": "#/$defs/__schema5"
40
+ },
41
+ "contentHash": {
42
+ "$ref": "#/$defs/__schema4"
43
+ }
44
+ },
45
+ "required": [
46
+ "schemaVersion",
47
+ "id",
48
+ "revision",
49
+ "scheduleId",
50
+ "policy",
51
+ "scheduledAt",
52
+ "coalescedThroughAt",
53
+ "coalescedCount",
54
+ "outcome",
55
+ "reason",
56
+ "iteration",
57
+ "createdAt",
58
+ "contentHash"
59
+ ],
60
+ "additionalProperties": false,
61
+ "$defs": {
62
+ "__schema0": {
63
+ "type": "string",
64
+ "const": "openpond.learningScheduleFire.v1"
65
+ },
66
+ "__schema1": {
67
+ "type": "string",
68
+ "minLength": 1,
69
+ "maxLength": 240
70
+ },
71
+ "__schema2": {
72
+ "type": "number",
73
+ "const": 1
74
+ },
75
+ "__schema3": {
76
+ "type": "object",
77
+ "properties": {
78
+ "id": {
79
+ "$ref": "#/$defs/__schema1"
80
+ },
81
+ "contentHash": {
82
+ "$ref": "#/$defs/__schema4"
83
+ },
84
+ "revision": {
85
+ "type": "integer",
86
+ "exclusiveMinimum": 0,
87
+ "maximum": 9007199254740991
88
+ }
89
+ },
90
+ "required": [
91
+ "id",
92
+ "contentHash",
93
+ "revision"
94
+ ],
95
+ "additionalProperties": false
96
+ },
97
+ "__schema4": {
98
+ "type": "string",
99
+ "pattern": "^[a-f0-9]{64}$"
100
+ },
101
+ "__schema5": {
102
+ "type": "string",
103
+ "format": "date-time",
104
+ "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)))$"
105
+ },
106
+ "__schema6": {
107
+ "type": "integer",
108
+ "minimum": 0,
109
+ "maximum": 9007199254740991
110
+ },
111
+ "__schema7": {
112
+ "type": "string",
113
+ "enum": [
114
+ "reserved",
115
+ "waiting_for_data",
116
+ "waiting_for_review",
117
+ "skipped"
118
+ ]
119
+ },
120
+ "__schema8": {
121
+ "anyOf": [
122
+ {
123
+ "type": "string",
124
+ "enum": [
125
+ "active_iteration",
126
+ "cooldown",
127
+ "daily_budget"
128
+ ]
129
+ },
130
+ {
131
+ "type": "null"
132
+ }
133
+ ]
134
+ },
135
+ "__schema9": {
136
+ "anyOf": [
137
+ {
138
+ "type": "object",
139
+ "properties": {
140
+ "id": {
141
+ "$ref": "#/$defs/__schema1"
142
+ },
143
+ "revision": {
144
+ "type": "integer",
145
+ "exclusiveMinimum": 0,
146
+ "maximum": 9007199254740991
147
+ }
148
+ },
149
+ "required": [
150
+ "id",
151
+ "revision"
152
+ ],
153
+ "additionalProperties": false
154
+ },
155
+ {
156
+ "type": "null"
157
+ }
158
+ ]
159
+ }
160
+ },
161
+ "$id": "urn:openpond:learning:v1:schedule_fire",
162
+ "$comment": "Generated from @openpond/evals. Cross-resource identity, authorization, idempotency, admission, grading and split constraints are enforced by the shared domain service in addition to this structural schema."
163
+ }