@openpond/evals 0.4.2 → 0.6.0

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 (64) hide show
  1. package/CONTRACT.md +27 -1
  2. package/README.md +31 -2
  3. package/conformance/telemetry/v1/invalid-batch.json +17 -0
  4. package/conformance/telemetry/v1/valid-batch.json +58 -0
  5. package/dist/artifact-verification.js +172 -0
  6. package/dist/builtin-benchmarks/harness-refiner.js +469 -24
  7. package/dist/execution-contracts.js +153 -0
  8. package/dist/execution-receipts.js +185 -0
  9. package/dist/graders.js +8 -2
  10. package/dist/index.js +10 -0
  11. package/dist/learned-preference.js +334 -0
  12. package/dist/preferences.js +803 -0
  13. package/dist/rollouts.js +241 -0
  14. package/dist/tasksets.js +24 -0
  15. package/dist/telemetry/index.js +4 -0
  16. package/dist/telemetry-analysis.js +183 -0
  17. package/dist/telemetry-bundle.js +60 -0
  18. package/dist/telemetry-catalog.js +50 -0
  19. package/dist/telemetry.js +112 -0
  20. package/dist/types/artifact-verification.d.ts +31 -0
  21. package/dist/types/artifact-verification.d.ts.map +1 -0
  22. package/dist/types/builtin-benchmarks/harness-refiner.d.ts +22 -0
  23. package/dist/types/builtin-benchmarks/harness-refiner.d.ts.map +1 -1
  24. package/dist/types/conformance.d.ts +44 -0
  25. package/dist/types/conformance.d.ts.map +1 -1
  26. package/dist/types/evidence/conformance.d.ts +24 -24
  27. package/dist/types/evidence/contracts.d.ts +42 -42
  28. package/dist/types/execution-contracts.d.ts +806 -0
  29. package/dist/types/execution-contracts.d.ts.map +1 -0
  30. package/dist/types/execution-receipts.d.ts +55 -0
  31. package/dist/types/execution-receipts.d.ts.map +1 -0
  32. package/dist/types/graders.d.ts.map +1 -1
  33. package/dist/types/index.d.ts +10 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/learned-preference.d.ts +282 -0
  36. package/dist/types/learned-preference.d.ts.map +1 -0
  37. package/dist/types/preferences.d.ts +583 -0
  38. package/dist/types/preferences.d.ts.map +1 -0
  39. package/dist/types/review-conformance.d.ts +20 -15
  40. package/dist/types/review-conformance.d.ts.map +1 -1
  41. package/dist/types/rollouts.d.ts +221 -0
  42. package/dist/types/rollouts.d.ts.map +1 -0
  43. package/dist/types/tasksets.d.ts +89 -0
  44. package/dist/types/tasksets.d.ts.map +1 -1
  45. package/dist/types/telemetry/index.d.ts +5 -0
  46. package/dist/types/telemetry/index.d.ts.map +1 -0
  47. package/dist/types/telemetry-analysis.d.ts +116 -0
  48. package/dist/types/telemetry-analysis.d.ts.map +1 -0
  49. package/dist/types/telemetry-bundle.d.ts +309 -0
  50. package/dist/types/telemetry-bundle.d.ts.map +1 -0
  51. package/dist/types/telemetry-catalog.d.ts +269 -0
  52. package/dist/types/telemetry-catalog.d.ts.map +1 -0
  53. package/dist/types/telemetry.d.ts +266 -0
  54. package/dist/types/telemetry.d.ts.map +1 -0
  55. package/package.json +20 -2
  56. package/schemas/telemetry/v1/evidence-completeness.schema.json +82 -0
  57. package/schemas/telemetry/v1/evidence-reference.schema.json +41 -0
  58. package/schemas/telemetry/v1/metric-definition.schema.json +96 -0
  59. package/schemas/telemetry/v1/metric-observation.schema.json +182 -0
  60. package/schemas/telemetry/v1/run-metric-summary.schema.json +98 -0
  61. package/schemas/telemetry/v1/run-telemetry-batch.schema.json +405 -0
  62. package/schemas/telemetry/v1/run-telemetry-event.schema.json +201 -0
  63. package/schemas/telemetry/v1/telemetry-cohort.schema.json +100 -0
  64. package/schemas/telemetry/v1/telemetry-export-bundle.schema.json +655 -0
@@ -0,0 +1,266 @@
1
+ import { z } from "zod";
2
+ export declare const RUN_TELEMETRY_SCHEMA_VERSION: "openpond.runTelemetryEvent.v1";
3
+ export declare const METRIC_DEFINITION_SCHEMA_VERSION: "openpond.metricDefinition.v1";
4
+ export declare const METRIC_OBSERVATION_SCHEMA_VERSION: "openpond.metricObservation.v1";
5
+ export declare const TelemetryVisibilitySchema: z.ZodEnum<{
6
+ host_private: "host_private";
7
+ policy_visible: "policy_visible";
8
+ team_visible: "team_visible";
9
+ }>;
10
+ export declare const TelemetrySourceSchema: z.ZodEnum<{
11
+ environment: "environment";
12
+ evaluation: "evaluation";
13
+ runtime: "runtime";
14
+ grader: "grader";
15
+ optimizer: "optimizer";
16
+ control_plane: "control_plane";
17
+ }>;
18
+ export declare const TelemetryEventTypeSchema: z.ZodEnum<{
19
+ cleanup_completed: "cleanup_completed";
20
+ run_started: "run_started";
21
+ run_state_changed: "run_state_changed";
22
+ rollout_group_started: "rollout_group_started";
23
+ attempt_completed: "attempt_completed";
24
+ grader_completed: "grader_completed";
25
+ reward_composed: "reward_composed";
26
+ optimizer_step_completed: "optimizer_step_completed";
27
+ checkpoint_committed: "checkpoint_committed";
28
+ evaluation_completed: "evaluation_completed";
29
+ run_completed: "run_completed";
30
+ run_failed: "run_failed";
31
+ }>;
32
+ export declare const RunTelemetryLineageSchema: z.ZodObject<{
33
+ modelProjectId: z.ZodString;
34
+ runId: z.ZodString;
35
+ modelVersionId: z.ZodNullable<z.ZodString>;
36
+ harnessReleaseHash: z.ZodString;
37
+ tasksetReleaseHash: z.ZodString;
38
+ environmentReleaseHash: z.ZodNullable<z.ZodString>;
39
+ checkpointId: z.ZodNullable<z.ZodString>;
40
+ step: z.ZodNullable<z.ZodNumber>;
41
+ rolloutGroupId: z.ZodNullable<z.ZodString>;
42
+ attemptId: z.ZodNullable<z.ZodString>;
43
+ scenarioId: z.ZodNullable<z.ZodString>;
44
+ }, z.core.$strict>;
45
+ export declare const RunTelemetryEventSchema: z.ZodObject<{
46
+ schemaVersion: z.ZodLiteral<"openpond.runTelemetryEvent.v1">;
47
+ eventId: z.ZodString;
48
+ sequence: z.ZodNumber;
49
+ occurredAt: z.ZodString;
50
+ source: z.ZodEnum<{
51
+ environment: "environment";
52
+ evaluation: "evaluation";
53
+ runtime: "runtime";
54
+ grader: "grader";
55
+ optimizer: "optimizer";
56
+ control_plane: "control_plane";
57
+ }>;
58
+ type: z.ZodEnum<{
59
+ cleanup_completed: "cleanup_completed";
60
+ run_started: "run_started";
61
+ run_state_changed: "run_state_changed";
62
+ rollout_group_started: "rollout_group_started";
63
+ attempt_completed: "attempt_completed";
64
+ grader_completed: "grader_completed";
65
+ reward_composed: "reward_composed";
66
+ optimizer_step_completed: "optimizer_step_completed";
67
+ checkpoint_committed: "checkpoint_committed";
68
+ evaluation_completed: "evaluation_completed";
69
+ run_completed: "run_completed";
70
+ run_failed: "run_failed";
71
+ }>;
72
+ visibility: z.ZodEnum<{
73
+ host_private: "host_private";
74
+ policy_visible: "policy_visible";
75
+ team_visible: "team_visible";
76
+ }>;
77
+ lineage: z.ZodObject<{
78
+ modelProjectId: z.ZodString;
79
+ runId: z.ZodString;
80
+ modelVersionId: z.ZodNullable<z.ZodString>;
81
+ harnessReleaseHash: z.ZodString;
82
+ tasksetReleaseHash: z.ZodString;
83
+ environmentReleaseHash: z.ZodNullable<z.ZodString>;
84
+ checkpointId: z.ZodNullable<z.ZodString>;
85
+ step: z.ZodNullable<z.ZodNumber>;
86
+ rolloutGroupId: z.ZodNullable<z.ZodString>;
87
+ attemptId: z.ZodNullable<z.ZodString>;
88
+ scenarioId: z.ZodNullable<z.ZodString>;
89
+ }, z.core.$strict>;
90
+ attributes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
91
+ }, z.core.$strict>;
92
+ export declare const MetricValueTypeSchema: z.ZodEnum<{
93
+ gauge: "gauge";
94
+ counter: "counter";
95
+ distribution: "distribution";
96
+ }>;
97
+ export declare const MetricUnitSchema: z.ZodEnum<{
98
+ ratio: "ratio";
99
+ count: "count";
100
+ seconds: "seconds";
101
+ milliseconds: "milliseconds";
102
+ tokens: "tokens";
103
+ bytes: "bytes";
104
+ usd: "usd";
105
+ scalar: "scalar";
106
+ }>;
107
+ export declare const MetricDirectionSchema: z.ZodEnum<{
108
+ higher: "higher";
109
+ lower: "lower";
110
+ neutral: "neutral";
111
+ }>;
112
+ export declare const MetricAggregationSchema: z.ZodEnum<{
113
+ last: "last";
114
+ sum: "sum";
115
+ mean: "mean";
116
+ min: "min";
117
+ max: "max";
118
+ p50: "p50";
119
+ p95: "p95";
120
+ }>;
121
+ export declare const MetricDefinitionSchema: z.ZodObject<{
122
+ schemaVersion: z.ZodLiteral<"openpond.metricDefinition.v1">;
123
+ id: z.ZodString;
124
+ displayName: z.ZodString;
125
+ description: z.ZodString;
126
+ valueType: z.ZodEnum<{
127
+ gauge: "gauge";
128
+ counter: "counter";
129
+ distribution: "distribution";
130
+ }>;
131
+ unit: z.ZodEnum<{
132
+ ratio: "ratio";
133
+ count: "count";
134
+ seconds: "seconds";
135
+ milliseconds: "milliseconds";
136
+ tokens: "tokens";
137
+ bytes: "bytes";
138
+ usd: "usd";
139
+ scalar: "scalar";
140
+ }>;
141
+ direction: z.ZodEnum<{
142
+ higher: "higher";
143
+ lower: "lower";
144
+ neutral: "neutral";
145
+ }>;
146
+ aggregation: z.ZodEnum<{
147
+ last: "last";
148
+ sum: "sum";
149
+ mean: "mean";
150
+ min: "min";
151
+ max: "max";
152
+ p50: "p50";
153
+ p95: "p95";
154
+ }>;
155
+ visibility: z.ZodEnum<{
156
+ host_private: "host_private";
157
+ policy_visible: "policy_visible";
158
+ team_visible: "team_visible";
159
+ }>;
160
+ boundedDimensions: z.ZodArray<z.ZodString>;
161
+ }, z.core.$strict>;
162
+ export declare const MetricObservationSchema: z.ZodObject<{
163
+ schemaVersion: z.ZodLiteral<"openpond.metricObservation.v1">;
164
+ observationId: z.ZodString;
165
+ metricId: z.ZodString;
166
+ eventId: z.ZodString;
167
+ sequence: z.ZodNumber;
168
+ observedAt: z.ZodString;
169
+ value: z.ZodNumber;
170
+ lineage: z.ZodObject<{
171
+ modelProjectId: z.ZodString;
172
+ runId: z.ZodString;
173
+ modelVersionId: z.ZodNullable<z.ZodString>;
174
+ harnessReleaseHash: z.ZodString;
175
+ tasksetReleaseHash: z.ZodString;
176
+ environmentReleaseHash: z.ZodNullable<z.ZodString>;
177
+ checkpointId: z.ZodNullable<z.ZodString>;
178
+ step: z.ZodNullable<z.ZodNumber>;
179
+ rolloutGroupId: z.ZodNullable<z.ZodString>;
180
+ attemptId: z.ZodNullable<z.ZodString>;
181
+ scenarioId: z.ZodNullable<z.ZodString>;
182
+ }, z.core.$strict>;
183
+ dimensions: z.ZodRecord<z.ZodString, z.ZodString>;
184
+ }, z.core.$strict>;
185
+ export declare const RunTelemetryBatchSchema: z.ZodObject<{
186
+ schemaVersion: z.ZodLiteral<"openpond.runTelemetryBatch.v1">;
187
+ events: z.ZodArray<z.ZodObject<{
188
+ schemaVersion: z.ZodLiteral<"openpond.runTelemetryEvent.v1">;
189
+ eventId: z.ZodString;
190
+ sequence: z.ZodNumber;
191
+ occurredAt: z.ZodString;
192
+ source: z.ZodEnum<{
193
+ environment: "environment";
194
+ evaluation: "evaluation";
195
+ runtime: "runtime";
196
+ grader: "grader";
197
+ optimizer: "optimizer";
198
+ control_plane: "control_plane";
199
+ }>;
200
+ type: z.ZodEnum<{
201
+ cleanup_completed: "cleanup_completed";
202
+ run_started: "run_started";
203
+ run_state_changed: "run_state_changed";
204
+ rollout_group_started: "rollout_group_started";
205
+ attempt_completed: "attempt_completed";
206
+ grader_completed: "grader_completed";
207
+ reward_composed: "reward_composed";
208
+ optimizer_step_completed: "optimizer_step_completed";
209
+ checkpoint_committed: "checkpoint_committed";
210
+ evaluation_completed: "evaluation_completed";
211
+ run_completed: "run_completed";
212
+ run_failed: "run_failed";
213
+ }>;
214
+ visibility: z.ZodEnum<{
215
+ host_private: "host_private";
216
+ policy_visible: "policy_visible";
217
+ team_visible: "team_visible";
218
+ }>;
219
+ lineage: z.ZodObject<{
220
+ modelProjectId: z.ZodString;
221
+ runId: z.ZodString;
222
+ modelVersionId: z.ZodNullable<z.ZodString>;
223
+ harnessReleaseHash: z.ZodString;
224
+ tasksetReleaseHash: z.ZodString;
225
+ environmentReleaseHash: z.ZodNullable<z.ZodString>;
226
+ checkpointId: z.ZodNullable<z.ZodString>;
227
+ step: z.ZodNullable<z.ZodNumber>;
228
+ rolloutGroupId: z.ZodNullable<z.ZodString>;
229
+ attemptId: z.ZodNullable<z.ZodString>;
230
+ scenarioId: z.ZodNullable<z.ZodString>;
231
+ }, z.core.$strict>;
232
+ attributes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
233
+ }, z.core.$strict>>;
234
+ observations: z.ZodArray<z.ZodObject<{
235
+ schemaVersion: z.ZodLiteral<"openpond.metricObservation.v1">;
236
+ observationId: z.ZodString;
237
+ metricId: z.ZodString;
238
+ eventId: z.ZodString;
239
+ sequence: z.ZodNumber;
240
+ observedAt: z.ZodString;
241
+ value: z.ZodNumber;
242
+ lineage: z.ZodObject<{
243
+ modelProjectId: z.ZodString;
244
+ runId: z.ZodString;
245
+ modelVersionId: z.ZodNullable<z.ZodString>;
246
+ harnessReleaseHash: z.ZodString;
247
+ tasksetReleaseHash: z.ZodString;
248
+ environmentReleaseHash: z.ZodNullable<z.ZodString>;
249
+ checkpointId: z.ZodNullable<z.ZodString>;
250
+ step: z.ZodNullable<z.ZodNumber>;
251
+ rolloutGroupId: z.ZodNullable<z.ZodString>;
252
+ attemptId: z.ZodNullable<z.ZodString>;
253
+ scenarioId: z.ZodNullable<z.ZodString>;
254
+ }, z.core.$strict>;
255
+ dimensions: z.ZodRecord<z.ZodString, z.ZodString>;
256
+ }, z.core.$strict>>;
257
+ }, z.core.$strict>;
258
+ export type TelemetryVisibility = z.infer<typeof TelemetryVisibilitySchema>;
259
+ export type TelemetrySource = z.infer<typeof TelemetrySourceSchema>;
260
+ export type TelemetryEventType = z.infer<typeof TelemetryEventTypeSchema>;
261
+ export type RunTelemetryLineage = z.infer<typeof RunTelemetryLineageSchema>;
262
+ export type RunTelemetryEvent = z.infer<typeof RunTelemetryEventSchema>;
263
+ export type MetricDefinition = z.infer<typeof MetricDefinitionSchema>;
264
+ export type MetricObservation = z.infer<typeof MetricObservationSchema>;
265
+ export type RunTelemetryBatch = z.infer<typeof RunTelemetryBatchSchema>;
266
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../../src/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,4BAA4B,EAAG,+BAAwC,CAAC;AACrF,eAAO,MAAM,gCAAgC,EAAG,8BAAuC,CAAC;AACxF,eAAO,MAAM,iCAAiC,EAAG,+BAAwC,CAAC;AAE1F,eAAO,MAAM,yBAAyB;;;;EAIpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;EAOhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;EAanC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;kBAY3B,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAUzB,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;EAA+C,CAAC;AAClF,eAAO,MAAM,gBAAgB;;;;;;;;;EAS3B,CAAC;AACH,eAAO,MAAM,qBAAqB;;;;EAAyC,CAAC;AAC5E,eAAO,MAAM,uBAAuB;;;;;;;;EAA8D,CAAC;AAEnG,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAWxB,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;kBAUzB,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAmBlC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openpond/evals",
3
- "version": "0.4.2",
3
+ "version": "0.6.0",
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",
@@ -8,6 +8,8 @@
8
8
  "types": "./dist/types/index.d.ts",
9
9
  "files": [
10
10
  "dist",
11
+ "conformance",
12
+ "schemas",
11
13
  "README.md",
12
14
  "CONTRACT.md",
13
15
  "RELEASING.md",
@@ -38,6 +40,22 @@
38
40
  "types": "./dist/types/runs.d.ts",
39
41
  "import": "./dist/runs.js"
40
42
  },
43
+ "./rollouts": {
44
+ "types": "./dist/types/rollouts.d.ts",
45
+ "import": "./dist/rollouts.js"
46
+ },
47
+ "./telemetry": {
48
+ "types": "./dist/types/telemetry/index.d.ts",
49
+ "import": "./dist/telemetry/index.js"
50
+ },
51
+ "./preferences": {
52
+ "types": "./dist/types/preferences.d.ts",
53
+ "import": "./dist/preferences.js"
54
+ },
55
+ "./learned-preference": {
56
+ "types": "./dist/types/learned-preference.d.ts",
57
+ "import": "./dist/learned-preference.js"
58
+ },
41
59
  "./review": {
42
60
  "types": "./dist/types/review-conformance.d.ts",
43
61
  "import": "./dist/review-conformance.js"
@@ -73,7 +91,7 @@
73
91
  "node": ">=22.14.0 <25"
74
92
  },
75
93
  "scripts": {
76
- "build": "tsx scripts/build.ts",
94
+ "build": "tsx scripts/generate-telemetry-schemas.ts && tsx scripts/build.ts",
77
95
  "typecheck": "tsc --noEmit --project tsconfig.json",
78
96
  "test": "vitest run --root ../.. --config vitest.config.ts --project evals",
79
97
  "check:api": "tsx scripts/check-public-package.ts",
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": {
6
+ "type": "string",
7
+ "const": "openpond.telemetryEvidenceCompleteness.v1"
8
+ },
9
+ "runId": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "maxLength": 240
13
+ },
14
+ "status": {
15
+ "type": "string",
16
+ "enum": [
17
+ "complete",
18
+ "partial",
19
+ "missing"
20
+ ]
21
+ },
22
+ "expectedEventTypes": {
23
+ "maxItems": 100,
24
+ "type": "array",
25
+ "items": {
26
+ "type": "string",
27
+ "minLength": 1,
28
+ "maxLength": 100
29
+ }
30
+ },
31
+ "observedEventTypes": {
32
+ "maxItems": 100,
33
+ "type": "array",
34
+ "items": {
35
+ "type": "string",
36
+ "minLength": 1,
37
+ "maxLength": 100
38
+ }
39
+ },
40
+ "missingEventTypes": {
41
+ "maxItems": 100,
42
+ "type": "array",
43
+ "items": {
44
+ "type": "string",
45
+ "minLength": 1,
46
+ "maxLength": 100
47
+ }
48
+ },
49
+ "lastSequence": {
50
+ "anyOf": [
51
+ {
52
+ "type": "integer",
53
+ "minimum": 0,
54
+ "maximum": 9007199254740991
55
+ },
56
+ {
57
+ "type": "null"
58
+ }
59
+ ]
60
+ },
61
+ "sequenceGaps": {
62
+ "maxItems": 10000,
63
+ "type": "array",
64
+ "items": {
65
+ "type": "integer",
66
+ "minimum": 0,
67
+ "maximum": 9007199254740991
68
+ }
69
+ }
70
+ },
71
+ "required": [
72
+ "schemaVersion",
73
+ "runId",
74
+ "status",
75
+ "expectedEventTypes",
76
+ "observedEventTypes",
77
+ "missingEventTypes",
78
+ "lastSequence",
79
+ "sequenceGaps"
80
+ ],
81
+ "additionalProperties": false
82
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "maxLength": 240
9
+ },
10
+ "contentHash": {
11
+ "type": "string",
12
+ "pattern": "^[a-f0-9]{64}$"
13
+ },
14
+ "kind": {
15
+ "type": "string",
16
+ "enum": [
17
+ "rollout",
18
+ "attempt",
19
+ "trace",
20
+ "grader",
21
+ "checkpoint",
22
+ "artifact"
23
+ ]
24
+ },
25
+ "visibility": {
26
+ "type": "string",
27
+ "enum": [
28
+ "policy_visible",
29
+ "team_visible",
30
+ "host_private"
31
+ ]
32
+ }
33
+ },
34
+ "required": [
35
+ "id",
36
+ "contentHash",
37
+ "kind",
38
+ "visibility"
39
+ ],
40
+ "additionalProperties": false
41
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": {
6
+ "type": "string",
7
+ "const": "openpond.metricDefinition.v1"
8
+ },
9
+ "id": {
10
+ "type": "string",
11
+ "minLength": 1,
12
+ "maxLength": 240
13
+ },
14
+ "displayName": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "maxLength": 200
18
+ },
19
+ "description": {
20
+ "type": "string",
21
+ "minLength": 1,
22
+ "maxLength": 2000
23
+ },
24
+ "valueType": {
25
+ "type": "string",
26
+ "enum": [
27
+ "gauge",
28
+ "counter",
29
+ "distribution"
30
+ ]
31
+ },
32
+ "unit": {
33
+ "type": "string",
34
+ "enum": [
35
+ "ratio",
36
+ "count",
37
+ "seconds",
38
+ "milliseconds",
39
+ "tokens",
40
+ "bytes",
41
+ "usd",
42
+ "scalar"
43
+ ]
44
+ },
45
+ "direction": {
46
+ "type": "string",
47
+ "enum": [
48
+ "higher",
49
+ "lower",
50
+ "neutral"
51
+ ]
52
+ },
53
+ "aggregation": {
54
+ "type": "string",
55
+ "enum": [
56
+ "last",
57
+ "sum",
58
+ "mean",
59
+ "min",
60
+ "max",
61
+ "p50",
62
+ "p95"
63
+ ]
64
+ },
65
+ "visibility": {
66
+ "type": "string",
67
+ "enum": [
68
+ "policy_visible",
69
+ "team_visible",
70
+ "host_private"
71
+ ]
72
+ },
73
+ "boundedDimensions": {
74
+ "maxItems": 32,
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string",
78
+ "minLength": 1,
79
+ "maxLength": 100
80
+ }
81
+ }
82
+ },
83
+ "required": [
84
+ "schemaVersion",
85
+ "id",
86
+ "displayName",
87
+ "description",
88
+ "valueType",
89
+ "unit",
90
+ "direction",
91
+ "aggregation",
92
+ "visibility",
93
+ "boundedDimensions"
94
+ ],
95
+ "additionalProperties": false
96
+ }