@camstack/types 1.2.332 → 1.2.334

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 (53) hide show
  1. package/dist/addon/base-addon.d.ts +32 -0
  2. package/dist/addon/secret-aware-context.d.ts +49 -6
  3. package/dist/addon/secret-settings-view.d.ts +23 -1
  4. package/dist/addon/secret-write-back.d.ts +40 -0
  5. package/dist/addon.js +5 -7
  6. package/dist/addon.mjs +5 -7
  7. package/dist/auth/app-callback.d.ts +28 -0
  8. package/dist/auth/sso-state.d.ts +16 -0
  9. package/dist/capabilities/addon-routes.cap.d.ts +3 -0
  10. package/dist/capabilities/addons.cap.d.ts +4 -4
  11. package/dist/capabilities/backup.cap.d.ts +101 -1
  12. package/dist/capabilities/broker.cap.d.ts +4 -4
  13. package/dist/capabilities/custom-model-registry.cap.d.ts +520 -0
  14. package/dist/capabilities/device-manager.cap.d.ts +4 -4
  15. package/dist/capabilities/hub-address.d.ts +2 -2
  16. package/dist/capabilities/index.d.ts +12 -6
  17. package/dist/capabilities/keychain-admin.cap.d.ts +83 -0
  18. package/dist/capabilities/login-method.cap.d.ts +5 -6
  19. package/dist/capabilities/nodes.cap.d.ts +8 -0
  20. package/dist/capabilities/notification-output.cap.d.ts +4 -4
  21. package/dist/capabilities/notification-rules.cap.d.ts +6 -6
  22. package/dist/capabilities/osd-manager.cap.d.ts +5 -5
  23. package/dist/capabilities/pipeline-analytics.cap.d.ts +39 -8
  24. package/dist/capabilities/recording.cap.d.ts +3 -3
  25. package/dist/capabilities/server-management.cap.d.ts +5 -5
  26. package/dist/capabilities/snapshot.cap.d.ts +2 -2
  27. package/dist/capabilities/sso-bridge.cap.d.ts +5 -2
  28. package/dist/capabilities/training-provider.cap.d.ts +373 -0
  29. package/dist/capabilities/training.cap.d.ts +1896 -0
  30. package/dist/capabilities/user-management.cap.d.ts +1 -64
  31. package/dist/capabilities/videoclips.cap.d.ts +3 -3
  32. package/dist/client.js +33 -5
  33. package/dist/client.mjs +33 -5
  34. package/dist/generated/addon-api.d.ts +872 -173
  35. package/dist/generated/cap-input-defaults.d.ts +1 -1
  36. package/dist/generated/capability-router-map.d.ts +10 -4
  37. package/dist/generated/collection-array-methods.d.ts +1 -1
  38. package/dist/generated/method-access-map.d.ts +1 -1
  39. package/dist/generated/method-device-selectors.d.ts +2 -2
  40. package/dist/generated/system-proxy.d.ts +5 -3
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.js +1469 -94
  43. package/dist/index.mjs +1420 -93
  44. package/dist/interfaces/addon-routes.d.ts +7 -0
  45. package/dist/interfaces/addon.d.ts +8 -0
  46. package/dist/interfaces/auth.d.ts +6 -3
  47. package/dist/interfaces/event-bus.d.ts +5 -0
  48. package/dist/schemas/auth-records.d.ts +1 -2
  49. package/dist/{sleep-ClNXPpWR.js → sleep-DiQYrfm9.js} +425 -75
  50. package/dist/{sleep-DujUvOcb.mjs → sleep-r3RWkGVx.mjs} +425 -75
  51. package/dist/training/index.d.ts +1 -0
  52. package/dist/training/trainer-contract.d.ts +468 -0
  53. package/package.json +1 -1
@@ -0,0 +1,1896 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ /**
4
+ * `training` — the cloud-training orchestrator (D805). Hub-only singleton,
5
+ * provided by `addon-training`.
6
+ *
7
+ * It owns what every provider must agree on, written once:
8
+ *
9
+ * - **Dataset versions.** Taken over from pipeline-analytics (D796): the rows
10
+ * live here (D808); pipeline-analytics still CUTS a version (it owns the corpus and
11
+ * the export plan) and reaches this store through the five row methods
12
+ * below, so the Retrain page and the export did not change.
13
+ * - **Jobs.** A persisted state machine, a reconcile loop against the
14
+ * provider, a cost guard, a daily orphan sweep and the retention rules.
15
+ * - **The return flow.** Verified artefacts → Model Studio
16
+ * (`custom-model-registry.importModelBundle`) → canary on cameras →
17
+ * rollback. Nothing is ever registered automatically.
18
+ *
19
+ * Every method is `admin`.
20
+ */
21
+ /** A version WITH its frame list — what the export and a job read. */
22
+ export declare const TrainingDatasetVersionRowSchema: z.ZodObject<{
23
+ id: z.ZodString;
24
+ name: z.ZodString;
25
+ createdAt: z.ZodNumber;
26
+ completeOnly: z.ZodBoolean;
27
+ selection: z.ZodObject<{
28
+ deviceIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
29
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
30
+ frameIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
31
+ }, z.core.$strip>;
32
+ layout: z.ZodEnum<{
33
+ frames: "frames";
34
+ crops: "crops";
35
+ }>;
36
+ stats: z.ZodObject<{
37
+ frames: z.ZodNumber;
38
+ completeFrames: z.ZodNumber;
39
+ completeness: z.ZodNumber;
40
+ subjects: z.ZodNumber;
41
+ modelErrors: z.ZodNumber;
42
+ hardNegatives: z.ZodNumber;
43
+ cells: z.ZodReadonly<z.ZodArray<z.ZodObject<{
44
+ macroClass: z.ZodString;
45
+ deviceId: z.ZodNumber;
46
+ lighting: z.ZodEnum<{
47
+ unknown: "unknown";
48
+ day: "day";
49
+ night: "night";
50
+ }>;
51
+ subjects: z.ZodNumber;
52
+ frames: z.ZodNumber;
53
+ }, z.core.$strip>>>;
54
+ cameras: z.ZodReadonly<z.ZodArray<z.ZodObject<{
55
+ deviceId: z.ZodNumber;
56
+ frames: z.ZodNumber;
57
+ completeFrames: z.ZodNumber;
58
+ }, z.core.$strip>>>;
59
+ }, z.core.$strip>;
60
+ annotationHash: z.ZodString;
61
+ manifestSchema: z.ZodString;
62
+ frameIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
63
+ }, z.core.$strip>;
64
+ export type TrainingDatasetVersionRow = z.infer<typeof TrainingDatasetVersionRowSchema>;
65
+ /** A base model a detector job can fine-tune, and the baseline it is judged against. */
66
+ export declare const TrainingBaseModelSchema: z.ZodObject<{
67
+ modelId: z.ZodString;
68
+ label: z.ZodString;
69
+ weights: z.ZodString;
70
+ imgsz: z.ZodNumber;
71
+ baselineOnnxUrl: z.ZodString;
72
+ baselineFloors: z.ZodRecord<z.ZodString, z.ZodNumber>;
73
+ recommended: z.ZodBoolean;
74
+ }, z.core.$strip>;
75
+ export type TrainingBaseModel = z.infer<typeof TrainingBaseModelSchema>;
76
+ export declare const TrainingPresetSchema: z.ZodEnum<{
77
+ standard: "standard";
78
+ quick: "quick";
79
+ thorough: "thorough";
80
+ }>;
81
+ export type TrainingPreset = z.infer<typeof TrainingPresetSchema>;
82
+ export declare const TrainingJobRequestSchema: z.ZodObject<{
83
+ datasetVersionId: z.ZodString;
84
+ addonId: z.ZodString;
85
+ gpuType: z.ZodString;
86
+ region: z.ZodString;
87
+ baseModelId: z.ZodString;
88
+ preset: z.ZodEnum<{
89
+ standard: "standard";
90
+ quick: "quick";
91
+ thorough: "thorough";
92
+ }>;
93
+ freeze: z.ZodNullable<z.ZodNumber>;
94
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
95
+ }, z.core.$strip>;
96
+ export type TrainingJobRequest = z.infer<typeof TrainingJobRequestSchema>;
97
+ export declare const TrainingSplitPlanSchema: z.ZodObject<{
98
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
99
+ holdoutLastDays: z.ZodNumber;
100
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
101
+ trainSubjects: z.ZodNumber;
102
+ }, z.core.$strip>;
103
+ export type TrainingSplitPlan = z.infer<typeof TrainingSplitPlanSchema>;
104
+ export declare const TrainingRefusalReasonSchema: z.ZodEnum<{
105
+ "unknown-dataset": "unknown-dataset";
106
+ "unknown-provider": "unknown-provider";
107
+ "provider-not-configured": "provider-not-configured";
108
+ "unknown-base-model": "unknown-base-model";
109
+ "unknown-gpu": "unknown-gpu";
110
+ "dataset-too-large": "dataset-too-large";
111
+ "no-training-subjects": "no-training-subjects";
112
+ "job-already-running": "job-already-running";
113
+ }>;
114
+ export type TrainingRefusalReason = z.infer<typeof TrainingRefusalReasonSchema>;
115
+ export declare const TrainingJobPlanSchema: z.ZodObject<{
116
+ refusal: z.ZodNullable<z.ZodObject<{
117
+ reason: z.ZodEnum<{
118
+ "unknown-dataset": "unknown-dataset";
119
+ "unknown-provider": "unknown-provider";
120
+ "provider-not-configured": "provider-not-configured";
121
+ "unknown-base-model": "unknown-base-model";
122
+ "unknown-gpu": "unknown-gpu";
123
+ "dataset-too-large": "dataset-too-large";
124
+ "no-training-subjects": "no-training-subjects";
125
+ "job-already-running": "job-already-running";
126
+ }>;
127
+ detail: z.ZodString;
128
+ }, z.core.$strip>>;
129
+ warnings: z.ZodReadonly<z.ZodArray<z.ZodString>>;
130
+ split: z.ZodNullable<z.ZodObject<{
131
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
132
+ holdoutLastDays: z.ZodNumber;
133
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
134
+ trainSubjects: z.ZodNumber;
135
+ }, z.core.$strip>>;
136
+ estimate: z.ZodNullable<z.ZodObject<{
137
+ datasetBytes: z.ZodNumber;
138
+ uploadMinutesAt20Mbps: z.ZodNumber;
139
+ gpuSecondsLow: z.ZodNumber;
140
+ gpuSecondsHigh: z.ZodNumber;
141
+ usdLow: z.ZodNumber;
142
+ usdHigh: z.ZodNumber;
143
+ notes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
144
+ }, z.core.$strip>>;
145
+ defaults: z.ZodNullable<z.ZodObject<{
146
+ maxCostUsd: z.ZodNumber;
147
+ maxRuntimeSec: z.ZodNumber;
148
+ }, z.core.$strip>>;
149
+ dataNotice: z.ZodString;
150
+ }, z.core.$strip>;
151
+ export type TrainingJobPlan = z.infer<typeof TrainingJobPlanSchema>;
152
+ /**
153
+ * Orchestrator-owned states, persisted. `uploading` covers exporting the
154
+ * archive (it is streamed, never staged). Terminal: `failed`, `cancelled`,
155
+ * `lost`, `expired`, `discarded`. `registered` and `canary` are where a
156
+ * result lives after the operator acted on it.
157
+ */
158
+ export declare const TrainingJobStateSchema: z.ZodEnum<{
159
+ running: "running";
160
+ failed: "failed";
161
+ cancelled: "cancelled";
162
+ ready: "ready";
163
+ uploading: "uploading";
164
+ starting: "starting";
165
+ expired: "expired";
166
+ lost: "lost";
167
+ submitted: "submitted";
168
+ collecting: "collecting";
169
+ registered: "registered";
170
+ canary: "canary";
171
+ cancelling: "cancelling";
172
+ discarded: "discarded";
173
+ }>;
174
+ export type TrainingJobState = z.infer<typeof TrainingJobStateSchema>;
175
+ export declare const TrainingFailureReasonSchema: z.ZodEnum<{
176
+ "checksum-mismatch": "checksum-mismatch";
177
+ "fetch-failed": "fetch-failed";
178
+ "cost-cap": "cost-cap";
179
+ "runtime-cap": "runtime-cap";
180
+ "upload-failed": "upload-failed";
181
+ "submit-failed": "submit-failed";
182
+ "trainer-failed": "trainer-failed";
183
+ "result-invalid": "result-invalid";
184
+ "provider-error": "provider-error";
185
+ "hub-restart-during-upload": "hub-restart-during-upload";
186
+ }>;
187
+ export type TrainingFailureReason = z.infer<typeof TrainingFailureReasonSchema>;
188
+ export declare const TrainingProgressPointSchema: z.ZodObject<{
189
+ epoch: z.ZodNumber;
190
+ map50: z.ZodNullable<z.ZodNumber>;
191
+ map50_95: z.ZodNullable<z.ZodNumber>;
192
+ }, z.core.$strip>;
193
+ export type TrainingProgressPoint = z.infer<typeof TrainingProgressPointSchema>;
194
+ export declare const TrainingCanarySchema: z.ZodObject<{
195
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
196
+ since: z.ZodNumber;
197
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
198
+ deviceId: z.ZodNumber;
199
+ nodeId: z.ZodString;
200
+ deviceKey: z.ZodString;
201
+ patch: z.ZodNullable<z.ZodObject<{
202
+ modelId: z.ZodOptional<z.ZodString>;
203
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
204
+ }, z.core.$strip>>;
205
+ }, z.core.$strip>>>;
206
+ }, z.core.$strip>;
207
+ export type TrainingCanary = z.infer<typeof TrainingCanarySchema>;
208
+ export declare const TrainingJobSchema: z.ZodObject<{
209
+ id: z.ZodString;
210
+ idempotencyKey: z.ZodString;
211
+ name: z.ZodString;
212
+ createdAt: z.ZodNumber;
213
+ updatedAt: z.ZodNumber;
214
+ state: z.ZodEnum<{
215
+ running: "running";
216
+ failed: "failed";
217
+ cancelled: "cancelled";
218
+ ready: "ready";
219
+ uploading: "uploading";
220
+ starting: "starting";
221
+ expired: "expired";
222
+ lost: "lost";
223
+ submitted: "submitted";
224
+ collecting: "collecting";
225
+ registered: "registered";
226
+ canary: "canary";
227
+ cancelling: "cancelling";
228
+ discarded: "discarded";
229
+ }>;
230
+ stage: z.ZodNullable<z.ZodEnum<{
231
+ package: "package";
232
+ replay: "replay";
233
+ train: "train";
234
+ export: "export";
235
+ prepare: "prepare";
236
+ eval: "eval";
237
+ }>>;
238
+ failure: z.ZodNullable<z.ZodObject<{
239
+ reason: z.ZodEnum<{
240
+ "checksum-mismatch": "checksum-mismatch";
241
+ "fetch-failed": "fetch-failed";
242
+ "cost-cap": "cost-cap";
243
+ "runtime-cap": "runtime-cap";
244
+ "upload-failed": "upload-failed";
245
+ "submit-failed": "submit-failed";
246
+ "trainer-failed": "trainer-failed";
247
+ "result-invalid": "result-invalid";
248
+ "provider-error": "provider-error";
249
+ "hub-restart-during-upload": "hub-restart-during-upload";
250
+ }>;
251
+ stage: z.ZodNullable<z.ZodString>;
252
+ detail: z.ZodString;
253
+ }, z.core.$strip>>;
254
+ request: z.ZodObject<{
255
+ datasetVersionId: z.ZodString;
256
+ addonId: z.ZodString;
257
+ gpuType: z.ZodString;
258
+ region: z.ZodString;
259
+ baseModelId: z.ZodString;
260
+ preset: z.ZodEnum<{
261
+ standard: "standard";
262
+ quick: "quick";
263
+ thorough: "thorough";
264
+ }>;
265
+ freeze: z.ZodNullable<z.ZodNumber>;
266
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
267
+ }, z.core.$strip>;
268
+ maxCostUsd: z.ZodNumber;
269
+ maxRuntimeSec: z.ZodNumber;
270
+ trainer: z.ZodObject<{
271
+ repo: z.ZodString;
272
+ revision: z.ZodString;
273
+ }, z.core.$strip>;
274
+ datasetLayout: z.ZodEnum<{
275
+ frames: "frames";
276
+ crops: "crops";
277
+ }>;
278
+ dataset: z.ZodNullable<z.ZodObject<{
279
+ bytes: z.ZodNumber;
280
+ sha256: z.ZodString;
281
+ uploadedAt: z.ZodNumber;
282
+ }, z.core.$strip>>;
283
+ split: z.ZodObject<{
284
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
285
+ holdoutLastDays: z.ZodNumber;
286
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
287
+ trainSubjects: z.ZodNumber;
288
+ }, z.core.$strip>;
289
+ provider: z.ZodObject<{
290
+ state: z.ZodNullable<z.ZodEnum<{
291
+ running: "running";
292
+ failed: "failed";
293
+ cancelled: "cancelled";
294
+ pending: "pending";
295
+ succeeded: "succeeded";
296
+ starting: "starting";
297
+ lost: "lost";
298
+ }>>;
299
+ providerJobId: z.ZodNullable<z.ZodString>;
300
+ startedAt: z.ZodNullable<z.ZodNumber>;
301
+ endedAt: z.ZodNullable<z.ZodNumber>;
302
+ billedSeconds: z.ZodNumber;
303
+ costUsd: z.ZodNumber;
304
+ costIsEstimate: z.ZodBoolean;
305
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
306
+ }, z.core.$strip>;
307
+ progress: z.ZodObject<{
308
+ epoch: z.ZodNullable<z.ZodNumber>;
309
+ epochs: z.ZodNullable<z.ZodNumber>;
310
+ etaSec: z.ZodNullable<z.ZodNumber>;
311
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
312
+ epoch: z.ZodNumber;
313
+ map50: z.ZodNullable<z.ZodNumber>;
314
+ map50_95: z.ZodNullable<z.ZodNumber>;
315
+ }, z.core.$strip>>>;
316
+ }, z.core.$strip>;
317
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
318
+ logCursor: z.ZodNullable<z.ZodString>;
319
+ artifacts: z.ZodNullable<z.ZodObject<{
320
+ bundleBytes: z.ZodNumber;
321
+ bundleSha256: z.ZodString;
322
+ fetchedAt: z.ZodNumber;
323
+ expiresAt: z.ZodNumber;
324
+ }, z.core.$strip>>;
325
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
326
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
327
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
328
+ canary: z.ZodNullable<z.ZodObject<{
329
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
330
+ since: z.ZodNumber;
331
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
332
+ deviceId: z.ZodNumber;
333
+ nodeId: z.ZodString;
334
+ deviceKey: z.ZodString;
335
+ patch: z.ZodNullable<z.ZodObject<{
336
+ modelId: z.ZodOptional<z.ZodString>;
337
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
338
+ }, z.core.$strip>>;
339
+ }, z.core.$strip>>>;
340
+ }, z.core.$strip>>;
341
+ }, z.core.$strip>;
342
+ export type TrainingJob = z.infer<typeof TrainingJobSchema>;
343
+ export declare const trainingCapability: {
344
+ readonly name: "training";
345
+ readonly scope: "system";
346
+ readonly mode: "singleton";
347
+ readonly mount: {
348
+ readonly kind: "hub-only";
349
+ };
350
+ readonly methods: {
351
+ /** Store a version once. `stored: false` = that id already exists (immutable). */
352
+ readonly putDatasetVersion: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
353
+ id: z.ZodString;
354
+ name: z.ZodString;
355
+ createdAt: z.ZodNumber;
356
+ completeOnly: z.ZodBoolean;
357
+ selection: z.ZodObject<{
358
+ deviceIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
359
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
360
+ frameIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
361
+ }, z.core.$strip>;
362
+ layout: z.ZodEnum<{
363
+ frames: "frames";
364
+ crops: "crops";
365
+ }>;
366
+ stats: z.ZodObject<{
367
+ frames: z.ZodNumber;
368
+ completeFrames: z.ZodNumber;
369
+ completeness: z.ZodNumber;
370
+ subjects: z.ZodNumber;
371
+ modelErrors: z.ZodNumber;
372
+ hardNegatives: z.ZodNumber;
373
+ cells: z.ZodReadonly<z.ZodArray<z.ZodObject<{
374
+ macroClass: z.ZodString;
375
+ deviceId: z.ZodNumber;
376
+ lighting: z.ZodEnum<{
377
+ unknown: "unknown";
378
+ day: "day";
379
+ night: "night";
380
+ }>;
381
+ subjects: z.ZodNumber;
382
+ frames: z.ZodNumber;
383
+ }, z.core.$strip>>>;
384
+ cameras: z.ZodReadonly<z.ZodArray<z.ZodObject<{
385
+ deviceId: z.ZodNumber;
386
+ frames: z.ZodNumber;
387
+ completeFrames: z.ZodNumber;
388
+ }, z.core.$strip>>>;
389
+ }, z.core.$strip>;
390
+ annotationHash: z.ZodString;
391
+ manifestSchema: z.ZodString;
392
+ frameIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
393
+ }, z.core.$strip>, z.ZodObject<{
394
+ stored: z.ZodBoolean;
395
+ }, z.core.$strip>, "mutation">;
396
+ readonly getDatasetVersion: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
397
+ id: z.ZodString;
398
+ }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
399
+ id: z.ZodString;
400
+ name: z.ZodString;
401
+ createdAt: z.ZodNumber;
402
+ completeOnly: z.ZodBoolean;
403
+ selection: z.ZodObject<{
404
+ deviceIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
405
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
406
+ frameIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
407
+ }, z.core.$strip>;
408
+ layout: z.ZodEnum<{
409
+ frames: "frames";
410
+ crops: "crops";
411
+ }>;
412
+ stats: z.ZodObject<{
413
+ frames: z.ZodNumber;
414
+ completeFrames: z.ZodNumber;
415
+ completeness: z.ZodNumber;
416
+ subjects: z.ZodNumber;
417
+ modelErrors: z.ZodNumber;
418
+ hardNegatives: z.ZodNumber;
419
+ cells: z.ZodReadonly<z.ZodArray<z.ZodObject<{
420
+ macroClass: z.ZodString;
421
+ deviceId: z.ZodNumber;
422
+ lighting: z.ZodEnum<{
423
+ unknown: "unknown";
424
+ day: "day";
425
+ night: "night";
426
+ }>;
427
+ subjects: z.ZodNumber;
428
+ frames: z.ZodNumber;
429
+ }, z.core.$strip>>>;
430
+ cameras: z.ZodReadonly<z.ZodArray<z.ZodObject<{
431
+ deviceId: z.ZodNumber;
432
+ frames: z.ZodNumber;
433
+ completeFrames: z.ZodNumber;
434
+ }, z.core.$strip>>>;
435
+ }, z.core.$strip>;
436
+ annotationHash: z.ZodString;
437
+ manifestSchema: z.ZodString;
438
+ frameIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
439
+ }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
440
+ /** Every version without its frame list, newest first. */
441
+ readonly listDatasetVersions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
442
+ id: z.ZodString;
443
+ name: z.ZodString;
444
+ createdAt: z.ZodNumber;
445
+ selection: z.ZodObject<{
446
+ deviceIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodNumber>>>;
447
+ collectionIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
448
+ frameIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
449
+ }, z.core.$strip>;
450
+ layout: z.ZodEnum<{
451
+ frames: "frames";
452
+ crops: "crops";
453
+ }>;
454
+ completeOnly: z.ZodBoolean;
455
+ frameCount: z.ZodNumber;
456
+ annotationHash: z.ZodString;
457
+ manifestSchema: z.ZodString;
458
+ stats: z.ZodObject<{
459
+ frames: z.ZodNumber;
460
+ completeFrames: z.ZodNumber;
461
+ completeness: z.ZodNumber;
462
+ subjects: z.ZodNumber;
463
+ modelErrors: z.ZodNumber;
464
+ hardNegatives: z.ZodNumber;
465
+ cells: z.ZodReadonly<z.ZodArray<z.ZodObject<{
466
+ macroClass: z.ZodString;
467
+ deviceId: z.ZodNumber;
468
+ lighting: z.ZodEnum<{
469
+ unknown: "unknown";
470
+ day: "day";
471
+ night: "night";
472
+ }>;
473
+ subjects: z.ZodNumber;
474
+ frames: z.ZodNumber;
475
+ }, z.core.$strip>>>;
476
+ cameras: z.ZodReadonly<z.ZodArray<z.ZodObject<{
477
+ deviceId: z.ZodNumber;
478
+ frames: z.ZodNumber;
479
+ completeFrames: z.ZodNumber;
480
+ }, z.core.$strip>>>;
481
+ }, z.core.$strip>;
482
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
483
+ readonly findDatasetVersionIdByName: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
484
+ name: z.ZodString;
485
+ }, z.core.$strip>, z.ZodObject<{
486
+ id: z.ZodNullable<z.ZodString>;
487
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
488
+ readonly removeDatasetVersion: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
489
+ id: z.ZodString;
490
+ }, z.core.$strip>, z.ZodObject<{
491
+ removed: z.ZodBoolean;
492
+ }, z.core.$strip>, "mutation">;
493
+ readonly listBaseModels: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
494
+ modelId: z.ZodString;
495
+ label: z.ZodString;
496
+ weights: z.ZodString;
497
+ imgsz: z.ZodNumber;
498
+ baselineOnnxUrl: z.ZodString;
499
+ baselineFloors: z.ZodRecord<z.ZodString, z.ZodNumber>;
500
+ recommended: z.ZodBoolean;
501
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
502
+ /** Split, estimate, defaults and any named refusal — nothing is started. */
503
+ readonly planJob: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
504
+ datasetVersionId: z.ZodString;
505
+ addonId: z.ZodString;
506
+ gpuType: z.ZodString;
507
+ region: z.ZodString;
508
+ baseModelId: z.ZodString;
509
+ preset: z.ZodEnum<{
510
+ standard: "standard";
511
+ quick: "quick";
512
+ thorough: "thorough";
513
+ }>;
514
+ freeze: z.ZodNullable<z.ZodNumber>;
515
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
516
+ }, z.core.$strip>, z.ZodObject<{
517
+ refusal: z.ZodNullable<z.ZodObject<{
518
+ reason: z.ZodEnum<{
519
+ "unknown-dataset": "unknown-dataset";
520
+ "unknown-provider": "unknown-provider";
521
+ "provider-not-configured": "provider-not-configured";
522
+ "unknown-base-model": "unknown-base-model";
523
+ "unknown-gpu": "unknown-gpu";
524
+ "dataset-too-large": "dataset-too-large";
525
+ "no-training-subjects": "no-training-subjects";
526
+ "job-already-running": "job-already-running";
527
+ }>;
528
+ detail: z.ZodString;
529
+ }, z.core.$strip>>;
530
+ warnings: z.ZodReadonly<z.ZodArray<z.ZodString>>;
531
+ split: z.ZodNullable<z.ZodObject<{
532
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
533
+ holdoutLastDays: z.ZodNumber;
534
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
535
+ trainSubjects: z.ZodNumber;
536
+ }, z.core.$strip>>;
537
+ estimate: z.ZodNullable<z.ZodObject<{
538
+ datasetBytes: z.ZodNumber;
539
+ uploadMinutesAt20Mbps: z.ZodNumber;
540
+ gpuSecondsLow: z.ZodNumber;
541
+ gpuSecondsHigh: z.ZodNumber;
542
+ usdLow: z.ZodNumber;
543
+ usdHigh: z.ZodNumber;
544
+ notes: z.ZodReadonly<z.ZodArray<z.ZodString>>;
545
+ }, z.core.$strip>>;
546
+ defaults: z.ZodNullable<z.ZodObject<{
547
+ maxCostUsd: z.ZodNumber;
548
+ maxRuntimeSec: z.ZodNumber;
549
+ }, z.core.$strip>>;
550
+ dataNotice: z.ZodString;
551
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
552
+ /**
553
+ * Start a job. The same `idempotencyKey` returns the job it already
554
+ * started. Answers at once (`uploading`); the upload and the submit run in
555
+ * the background and the job record says how far they got.
556
+ */
557
+ readonly startJob: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
558
+ datasetVersionId: z.ZodString;
559
+ addonId: z.ZodString;
560
+ gpuType: z.ZodString;
561
+ region: z.ZodString;
562
+ baseModelId: z.ZodString;
563
+ preset: z.ZodEnum<{
564
+ standard: "standard";
565
+ quick: "quick";
566
+ thorough: "thorough";
567
+ }>;
568
+ freeze: z.ZodNullable<z.ZodNumber>;
569
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
570
+ name: z.ZodString;
571
+ maxCostUsd: z.ZodNumber;
572
+ maxRuntimeSec: z.ZodNumber;
573
+ idempotencyKey: z.ZodString;
574
+ }, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
575
+ kind: z.ZodLiteral<"started">;
576
+ job: z.ZodObject<{
577
+ id: z.ZodString;
578
+ idempotencyKey: z.ZodString;
579
+ name: z.ZodString;
580
+ createdAt: z.ZodNumber;
581
+ updatedAt: z.ZodNumber;
582
+ state: z.ZodEnum<{
583
+ running: "running";
584
+ failed: "failed";
585
+ cancelled: "cancelled";
586
+ ready: "ready";
587
+ uploading: "uploading";
588
+ starting: "starting";
589
+ expired: "expired";
590
+ lost: "lost";
591
+ submitted: "submitted";
592
+ collecting: "collecting";
593
+ registered: "registered";
594
+ canary: "canary";
595
+ cancelling: "cancelling";
596
+ discarded: "discarded";
597
+ }>;
598
+ stage: z.ZodNullable<z.ZodEnum<{
599
+ package: "package";
600
+ replay: "replay";
601
+ train: "train";
602
+ export: "export";
603
+ prepare: "prepare";
604
+ eval: "eval";
605
+ }>>;
606
+ failure: z.ZodNullable<z.ZodObject<{
607
+ reason: z.ZodEnum<{
608
+ "checksum-mismatch": "checksum-mismatch";
609
+ "fetch-failed": "fetch-failed";
610
+ "cost-cap": "cost-cap";
611
+ "runtime-cap": "runtime-cap";
612
+ "upload-failed": "upload-failed";
613
+ "submit-failed": "submit-failed";
614
+ "trainer-failed": "trainer-failed";
615
+ "result-invalid": "result-invalid";
616
+ "provider-error": "provider-error";
617
+ "hub-restart-during-upload": "hub-restart-during-upload";
618
+ }>;
619
+ stage: z.ZodNullable<z.ZodString>;
620
+ detail: z.ZodString;
621
+ }, z.core.$strip>>;
622
+ request: z.ZodObject<{
623
+ datasetVersionId: z.ZodString;
624
+ addonId: z.ZodString;
625
+ gpuType: z.ZodString;
626
+ region: z.ZodString;
627
+ baseModelId: z.ZodString;
628
+ preset: z.ZodEnum<{
629
+ standard: "standard";
630
+ quick: "quick";
631
+ thorough: "thorough";
632
+ }>;
633
+ freeze: z.ZodNullable<z.ZodNumber>;
634
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
635
+ }, z.core.$strip>;
636
+ maxCostUsd: z.ZodNumber;
637
+ maxRuntimeSec: z.ZodNumber;
638
+ trainer: z.ZodObject<{
639
+ repo: z.ZodString;
640
+ revision: z.ZodString;
641
+ }, z.core.$strip>;
642
+ datasetLayout: z.ZodEnum<{
643
+ frames: "frames";
644
+ crops: "crops";
645
+ }>;
646
+ dataset: z.ZodNullable<z.ZodObject<{
647
+ bytes: z.ZodNumber;
648
+ sha256: z.ZodString;
649
+ uploadedAt: z.ZodNumber;
650
+ }, z.core.$strip>>;
651
+ split: z.ZodObject<{
652
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
653
+ holdoutLastDays: z.ZodNumber;
654
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
655
+ trainSubjects: z.ZodNumber;
656
+ }, z.core.$strip>;
657
+ provider: z.ZodObject<{
658
+ state: z.ZodNullable<z.ZodEnum<{
659
+ running: "running";
660
+ failed: "failed";
661
+ cancelled: "cancelled";
662
+ pending: "pending";
663
+ succeeded: "succeeded";
664
+ starting: "starting";
665
+ lost: "lost";
666
+ }>>;
667
+ providerJobId: z.ZodNullable<z.ZodString>;
668
+ startedAt: z.ZodNullable<z.ZodNumber>;
669
+ endedAt: z.ZodNullable<z.ZodNumber>;
670
+ billedSeconds: z.ZodNumber;
671
+ costUsd: z.ZodNumber;
672
+ costIsEstimate: z.ZodBoolean;
673
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
674
+ }, z.core.$strip>;
675
+ progress: z.ZodObject<{
676
+ epoch: z.ZodNullable<z.ZodNumber>;
677
+ epochs: z.ZodNullable<z.ZodNumber>;
678
+ etaSec: z.ZodNullable<z.ZodNumber>;
679
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
680
+ epoch: z.ZodNumber;
681
+ map50: z.ZodNullable<z.ZodNumber>;
682
+ map50_95: z.ZodNullable<z.ZodNumber>;
683
+ }, z.core.$strip>>>;
684
+ }, z.core.$strip>;
685
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
686
+ logCursor: z.ZodNullable<z.ZodString>;
687
+ artifacts: z.ZodNullable<z.ZodObject<{
688
+ bundleBytes: z.ZodNumber;
689
+ bundleSha256: z.ZodString;
690
+ fetchedAt: z.ZodNumber;
691
+ expiresAt: z.ZodNumber;
692
+ }, z.core.$strip>>;
693
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
694
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
695
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
696
+ canary: z.ZodNullable<z.ZodObject<{
697
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
698
+ since: z.ZodNumber;
699
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
700
+ deviceId: z.ZodNumber;
701
+ nodeId: z.ZodString;
702
+ deviceKey: z.ZodString;
703
+ patch: z.ZodNullable<z.ZodObject<{
704
+ modelId: z.ZodOptional<z.ZodString>;
705
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
706
+ }, z.core.$strip>>;
707
+ }, z.core.$strip>>>;
708
+ }, z.core.$strip>>;
709
+ }, z.core.$strip>;
710
+ }, z.core.$strip>, z.ZodObject<{
711
+ kind: z.ZodLiteral<"refused">;
712
+ reason: z.ZodEnum<{
713
+ "unknown-dataset": "unknown-dataset";
714
+ "unknown-provider": "unknown-provider";
715
+ "provider-not-configured": "provider-not-configured";
716
+ "unknown-base-model": "unknown-base-model";
717
+ "unknown-gpu": "unknown-gpu";
718
+ "dataset-too-large": "dataset-too-large";
719
+ "no-training-subjects": "no-training-subjects";
720
+ "job-already-running": "job-already-running";
721
+ }>;
722
+ detail: z.ZodString;
723
+ }, z.core.$strip>], "kind">, "mutation">;
724
+ readonly listJobs: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
725
+ id: z.ZodString;
726
+ idempotencyKey: z.ZodString;
727
+ name: z.ZodString;
728
+ createdAt: z.ZodNumber;
729
+ updatedAt: z.ZodNumber;
730
+ state: z.ZodEnum<{
731
+ running: "running";
732
+ failed: "failed";
733
+ cancelled: "cancelled";
734
+ ready: "ready";
735
+ uploading: "uploading";
736
+ starting: "starting";
737
+ expired: "expired";
738
+ lost: "lost";
739
+ submitted: "submitted";
740
+ collecting: "collecting";
741
+ registered: "registered";
742
+ canary: "canary";
743
+ cancelling: "cancelling";
744
+ discarded: "discarded";
745
+ }>;
746
+ stage: z.ZodNullable<z.ZodEnum<{
747
+ package: "package";
748
+ replay: "replay";
749
+ train: "train";
750
+ export: "export";
751
+ prepare: "prepare";
752
+ eval: "eval";
753
+ }>>;
754
+ failure: z.ZodNullable<z.ZodObject<{
755
+ reason: z.ZodEnum<{
756
+ "checksum-mismatch": "checksum-mismatch";
757
+ "fetch-failed": "fetch-failed";
758
+ "cost-cap": "cost-cap";
759
+ "runtime-cap": "runtime-cap";
760
+ "upload-failed": "upload-failed";
761
+ "submit-failed": "submit-failed";
762
+ "trainer-failed": "trainer-failed";
763
+ "result-invalid": "result-invalid";
764
+ "provider-error": "provider-error";
765
+ "hub-restart-during-upload": "hub-restart-during-upload";
766
+ }>;
767
+ stage: z.ZodNullable<z.ZodString>;
768
+ detail: z.ZodString;
769
+ }, z.core.$strip>>;
770
+ request: z.ZodObject<{
771
+ datasetVersionId: z.ZodString;
772
+ addonId: z.ZodString;
773
+ gpuType: z.ZodString;
774
+ region: z.ZodString;
775
+ baseModelId: z.ZodString;
776
+ preset: z.ZodEnum<{
777
+ standard: "standard";
778
+ quick: "quick";
779
+ thorough: "thorough";
780
+ }>;
781
+ freeze: z.ZodNullable<z.ZodNumber>;
782
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
783
+ }, z.core.$strip>;
784
+ maxCostUsd: z.ZodNumber;
785
+ maxRuntimeSec: z.ZodNumber;
786
+ trainer: z.ZodObject<{
787
+ repo: z.ZodString;
788
+ revision: z.ZodString;
789
+ }, z.core.$strip>;
790
+ datasetLayout: z.ZodEnum<{
791
+ frames: "frames";
792
+ crops: "crops";
793
+ }>;
794
+ dataset: z.ZodNullable<z.ZodObject<{
795
+ bytes: z.ZodNumber;
796
+ sha256: z.ZodString;
797
+ uploadedAt: z.ZodNumber;
798
+ }, z.core.$strip>>;
799
+ split: z.ZodObject<{
800
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
801
+ holdoutLastDays: z.ZodNumber;
802
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
803
+ trainSubjects: z.ZodNumber;
804
+ }, z.core.$strip>;
805
+ provider: z.ZodObject<{
806
+ state: z.ZodNullable<z.ZodEnum<{
807
+ running: "running";
808
+ failed: "failed";
809
+ cancelled: "cancelled";
810
+ pending: "pending";
811
+ succeeded: "succeeded";
812
+ starting: "starting";
813
+ lost: "lost";
814
+ }>>;
815
+ providerJobId: z.ZodNullable<z.ZodString>;
816
+ startedAt: z.ZodNullable<z.ZodNumber>;
817
+ endedAt: z.ZodNullable<z.ZodNumber>;
818
+ billedSeconds: z.ZodNumber;
819
+ costUsd: z.ZodNumber;
820
+ costIsEstimate: z.ZodBoolean;
821
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
822
+ }, z.core.$strip>;
823
+ progress: z.ZodObject<{
824
+ epoch: z.ZodNullable<z.ZodNumber>;
825
+ epochs: z.ZodNullable<z.ZodNumber>;
826
+ etaSec: z.ZodNullable<z.ZodNumber>;
827
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
828
+ epoch: z.ZodNumber;
829
+ map50: z.ZodNullable<z.ZodNumber>;
830
+ map50_95: z.ZodNullable<z.ZodNumber>;
831
+ }, z.core.$strip>>>;
832
+ }, z.core.$strip>;
833
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
834
+ logCursor: z.ZodNullable<z.ZodString>;
835
+ artifacts: z.ZodNullable<z.ZodObject<{
836
+ bundleBytes: z.ZodNumber;
837
+ bundleSha256: z.ZodString;
838
+ fetchedAt: z.ZodNumber;
839
+ expiresAt: z.ZodNumber;
840
+ }, z.core.$strip>>;
841
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
842
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
843
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
844
+ canary: z.ZodNullable<z.ZodObject<{
845
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
846
+ since: z.ZodNumber;
847
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
848
+ deviceId: z.ZodNumber;
849
+ nodeId: z.ZodString;
850
+ deviceKey: z.ZodString;
851
+ patch: z.ZodNullable<z.ZodObject<{
852
+ modelId: z.ZodOptional<z.ZodString>;
853
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
854
+ }, z.core.$strip>>;
855
+ }, z.core.$strip>>>;
856
+ }, z.core.$strip>>;
857
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
858
+ readonly getJob: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
859
+ id: z.ZodString;
860
+ }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
861
+ id: z.ZodString;
862
+ idempotencyKey: z.ZodString;
863
+ name: z.ZodString;
864
+ createdAt: z.ZodNumber;
865
+ updatedAt: z.ZodNumber;
866
+ state: z.ZodEnum<{
867
+ running: "running";
868
+ failed: "failed";
869
+ cancelled: "cancelled";
870
+ ready: "ready";
871
+ uploading: "uploading";
872
+ starting: "starting";
873
+ expired: "expired";
874
+ lost: "lost";
875
+ submitted: "submitted";
876
+ collecting: "collecting";
877
+ registered: "registered";
878
+ canary: "canary";
879
+ cancelling: "cancelling";
880
+ discarded: "discarded";
881
+ }>;
882
+ stage: z.ZodNullable<z.ZodEnum<{
883
+ package: "package";
884
+ replay: "replay";
885
+ train: "train";
886
+ export: "export";
887
+ prepare: "prepare";
888
+ eval: "eval";
889
+ }>>;
890
+ failure: z.ZodNullable<z.ZodObject<{
891
+ reason: z.ZodEnum<{
892
+ "checksum-mismatch": "checksum-mismatch";
893
+ "fetch-failed": "fetch-failed";
894
+ "cost-cap": "cost-cap";
895
+ "runtime-cap": "runtime-cap";
896
+ "upload-failed": "upload-failed";
897
+ "submit-failed": "submit-failed";
898
+ "trainer-failed": "trainer-failed";
899
+ "result-invalid": "result-invalid";
900
+ "provider-error": "provider-error";
901
+ "hub-restart-during-upload": "hub-restart-during-upload";
902
+ }>;
903
+ stage: z.ZodNullable<z.ZodString>;
904
+ detail: z.ZodString;
905
+ }, z.core.$strip>>;
906
+ request: z.ZodObject<{
907
+ datasetVersionId: z.ZodString;
908
+ addonId: z.ZodString;
909
+ gpuType: z.ZodString;
910
+ region: z.ZodString;
911
+ baseModelId: z.ZodString;
912
+ preset: z.ZodEnum<{
913
+ standard: "standard";
914
+ quick: "quick";
915
+ thorough: "thorough";
916
+ }>;
917
+ freeze: z.ZodNullable<z.ZodNumber>;
918
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
919
+ }, z.core.$strip>;
920
+ maxCostUsd: z.ZodNumber;
921
+ maxRuntimeSec: z.ZodNumber;
922
+ trainer: z.ZodObject<{
923
+ repo: z.ZodString;
924
+ revision: z.ZodString;
925
+ }, z.core.$strip>;
926
+ datasetLayout: z.ZodEnum<{
927
+ frames: "frames";
928
+ crops: "crops";
929
+ }>;
930
+ dataset: z.ZodNullable<z.ZodObject<{
931
+ bytes: z.ZodNumber;
932
+ sha256: z.ZodString;
933
+ uploadedAt: z.ZodNumber;
934
+ }, z.core.$strip>>;
935
+ split: z.ZodObject<{
936
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
937
+ holdoutLastDays: z.ZodNumber;
938
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
939
+ trainSubjects: z.ZodNumber;
940
+ }, z.core.$strip>;
941
+ provider: z.ZodObject<{
942
+ state: z.ZodNullable<z.ZodEnum<{
943
+ running: "running";
944
+ failed: "failed";
945
+ cancelled: "cancelled";
946
+ pending: "pending";
947
+ succeeded: "succeeded";
948
+ starting: "starting";
949
+ lost: "lost";
950
+ }>>;
951
+ providerJobId: z.ZodNullable<z.ZodString>;
952
+ startedAt: z.ZodNullable<z.ZodNumber>;
953
+ endedAt: z.ZodNullable<z.ZodNumber>;
954
+ billedSeconds: z.ZodNumber;
955
+ costUsd: z.ZodNumber;
956
+ costIsEstimate: z.ZodBoolean;
957
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
958
+ }, z.core.$strip>;
959
+ progress: z.ZodObject<{
960
+ epoch: z.ZodNullable<z.ZodNumber>;
961
+ epochs: z.ZodNullable<z.ZodNumber>;
962
+ etaSec: z.ZodNullable<z.ZodNumber>;
963
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
964
+ epoch: z.ZodNumber;
965
+ map50: z.ZodNullable<z.ZodNumber>;
966
+ map50_95: z.ZodNullable<z.ZodNumber>;
967
+ }, z.core.$strip>>>;
968
+ }, z.core.$strip>;
969
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
970
+ logCursor: z.ZodNullable<z.ZodString>;
971
+ artifacts: z.ZodNullable<z.ZodObject<{
972
+ bundleBytes: z.ZodNumber;
973
+ bundleSha256: z.ZodString;
974
+ fetchedAt: z.ZodNumber;
975
+ expiresAt: z.ZodNumber;
976
+ }, z.core.$strip>>;
977
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
978
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
979
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
980
+ canary: z.ZodNullable<z.ZodObject<{
981
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
982
+ since: z.ZodNumber;
983
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
984
+ deviceId: z.ZodNumber;
985
+ nodeId: z.ZodString;
986
+ deviceKey: z.ZodString;
987
+ patch: z.ZodNullable<z.ZodObject<{
988
+ modelId: z.ZodOptional<z.ZodString>;
989
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
990
+ }, z.core.$strip>>;
991
+ }, z.core.$strip>>>;
992
+ }, z.core.$strip>>;
993
+ }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
994
+ readonly cancelJob: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
995
+ id: z.ZodString;
996
+ }, z.core.$strip>, z.ZodObject<{
997
+ id: z.ZodString;
998
+ idempotencyKey: z.ZodString;
999
+ name: z.ZodString;
1000
+ createdAt: z.ZodNumber;
1001
+ updatedAt: z.ZodNumber;
1002
+ state: z.ZodEnum<{
1003
+ running: "running";
1004
+ failed: "failed";
1005
+ cancelled: "cancelled";
1006
+ ready: "ready";
1007
+ uploading: "uploading";
1008
+ starting: "starting";
1009
+ expired: "expired";
1010
+ lost: "lost";
1011
+ submitted: "submitted";
1012
+ collecting: "collecting";
1013
+ registered: "registered";
1014
+ canary: "canary";
1015
+ cancelling: "cancelling";
1016
+ discarded: "discarded";
1017
+ }>;
1018
+ stage: z.ZodNullable<z.ZodEnum<{
1019
+ package: "package";
1020
+ replay: "replay";
1021
+ train: "train";
1022
+ export: "export";
1023
+ prepare: "prepare";
1024
+ eval: "eval";
1025
+ }>>;
1026
+ failure: z.ZodNullable<z.ZodObject<{
1027
+ reason: z.ZodEnum<{
1028
+ "checksum-mismatch": "checksum-mismatch";
1029
+ "fetch-failed": "fetch-failed";
1030
+ "cost-cap": "cost-cap";
1031
+ "runtime-cap": "runtime-cap";
1032
+ "upload-failed": "upload-failed";
1033
+ "submit-failed": "submit-failed";
1034
+ "trainer-failed": "trainer-failed";
1035
+ "result-invalid": "result-invalid";
1036
+ "provider-error": "provider-error";
1037
+ "hub-restart-during-upload": "hub-restart-during-upload";
1038
+ }>;
1039
+ stage: z.ZodNullable<z.ZodString>;
1040
+ detail: z.ZodString;
1041
+ }, z.core.$strip>>;
1042
+ request: z.ZodObject<{
1043
+ datasetVersionId: z.ZodString;
1044
+ addonId: z.ZodString;
1045
+ gpuType: z.ZodString;
1046
+ region: z.ZodString;
1047
+ baseModelId: z.ZodString;
1048
+ preset: z.ZodEnum<{
1049
+ standard: "standard";
1050
+ quick: "quick";
1051
+ thorough: "thorough";
1052
+ }>;
1053
+ freeze: z.ZodNullable<z.ZodNumber>;
1054
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
1055
+ }, z.core.$strip>;
1056
+ maxCostUsd: z.ZodNumber;
1057
+ maxRuntimeSec: z.ZodNumber;
1058
+ trainer: z.ZodObject<{
1059
+ repo: z.ZodString;
1060
+ revision: z.ZodString;
1061
+ }, z.core.$strip>;
1062
+ datasetLayout: z.ZodEnum<{
1063
+ frames: "frames";
1064
+ crops: "crops";
1065
+ }>;
1066
+ dataset: z.ZodNullable<z.ZodObject<{
1067
+ bytes: z.ZodNumber;
1068
+ sha256: z.ZodString;
1069
+ uploadedAt: z.ZodNumber;
1070
+ }, z.core.$strip>>;
1071
+ split: z.ZodObject<{
1072
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1073
+ holdoutLastDays: z.ZodNumber;
1074
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1075
+ trainSubjects: z.ZodNumber;
1076
+ }, z.core.$strip>;
1077
+ provider: z.ZodObject<{
1078
+ state: z.ZodNullable<z.ZodEnum<{
1079
+ running: "running";
1080
+ failed: "failed";
1081
+ cancelled: "cancelled";
1082
+ pending: "pending";
1083
+ succeeded: "succeeded";
1084
+ starting: "starting";
1085
+ lost: "lost";
1086
+ }>>;
1087
+ providerJobId: z.ZodNullable<z.ZodString>;
1088
+ startedAt: z.ZodNullable<z.ZodNumber>;
1089
+ endedAt: z.ZodNullable<z.ZodNumber>;
1090
+ billedSeconds: z.ZodNumber;
1091
+ costUsd: z.ZodNumber;
1092
+ costIsEstimate: z.ZodBoolean;
1093
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
1094
+ }, z.core.$strip>;
1095
+ progress: z.ZodObject<{
1096
+ epoch: z.ZodNullable<z.ZodNumber>;
1097
+ epochs: z.ZodNullable<z.ZodNumber>;
1098
+ etaSec: z.ZodNullable<z.ZodNumber>;
1099
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1100
+ epoch: z.ZodNumber;
1101
+ map50: z.ZodNullable<z.ZodNumber>;
1102
+ map50_95: z.ZodNullable<z.ZodNumber>;
1103
+ }, z.core.$strip>>>;
1104
+ }, z.core.$strip>;
1105
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1106
+ logCursor: z.ZodNullable<z.ZodString>;
1107
+ artifacts: z.ZodNullable<z.ZodObject<{
1108
+ bundleBytes: z.ZodNumber;
1109
+ bundleSha256: z.ZodString;
1110
+ fetchedAt: z.ZodNumber;
1111
+ expiresAt: z.ZodNumber;
1112
+ }, z.core.$strip>>;
1113
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
1114
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
1115
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1116
+ canary: z.ZodNullable<z.ZodObject<{
1117
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1118
+ since: z.ZodNumber;
1119
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1120
+ deviceId: z.ZodNumber;
1121
+ nodeId: z.ZodString;
1122
+ deviceKey: z.ZodString;
1123
+ patch: z.ZodNullable<z.ZodObject<{
1124
+ modelId: z.ZodOptional<z.ZodString>;
1125
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1126
+ }, z.core.$strip>>;
1127
+ }, z.core.$strip>>>;
1128
+ }, z.core.$strip>>;
1129
+ }, z.core.$strip>, "mutation">;
1130
+ /** The verified `result.json` of a job in `ready` or later; null before. */
1131
+ readonly getJobResult: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1132
+ id: z.ZodString;
1133
+ }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
1134
+ schema: z.ZodLiteral<"camstack.training-result/v1">;
1135
+ jobKey: z.ZodString;
1136
+ status: z.ZodEnum<{
1137
+ failed: "failed";
1138
+ succeeded: "succeeded";
1139
+ }>;
1140
+ error: z.ZodNullable<z.ZodObject<{
1141
+ stage: z.ZodString;
1142
+ code: z.ZodString;
1143
+ message: z.ZodString;
1144
+ }, z.core.$strip>>;
1145
+ trainer: z.ZodObject<{
1146
+ version: z.ZodString;
1147
+ revision: z.ZodString;
1148
+ }, z.core.$strip>;
1149
+ toolchain: z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodString>>;
1150
+ dataset: z.ZodOptional<z.ZodObject<{
1151
+ versionId: z.ZodString;
1152
+ annotationHash: z.ZodString;
1153
+ sha256: z.ZodString;
1154
+ frames: z.ZodObject<{
1155
+ train: z.ZodNumber;
1156
+ val: z.ZodNumber;
1157
+ holdout: z.ZodNumber;
1158
+ }, z.core.$strip>;
1159
+ holdoutCameras: z.ZodArray<z.ZodNumber>;
1160
+ replayImages: z.ZodNumber;
1161
+ }, z.core.$strip>>;
1162
+ training: z.ZodOptional<z.ZodObject<{
1163
+ epochsRun: z.ZodNumber;
1164
+ bestEpoch: z.ZodNumber;
1165
+ bestMap50: z.ZodNumber;
1166
+ bestMap50_95: z.ZodNumber;
1167
+ seconds: z.ZodNumber;
1168
+ }, z.core.$strip>>;
1169
+ evaluation: z.ZodOptional<z.ZodObject<{
1170
+ holdoutFrames: z.ZodNumber;
1171
+ baseline: z.ZodNullable<z.ZodObject<{
1172
+ frames: z.ZodNumber;
1173
+ classes: z.ZodRecord<z.ZodString, z.ZodObject<{
1174
+ positives: z.ZodNumber;
1175
+ floor: z.ZodNullable<z.ZodNumber>;
1176
+ tp: z.ZodNumber;
1177
+ fp: z.ZodNumber;
1178
+ fn: z.ZodNumber;
1179
+ precision: z.ZodNullable<z.ZodNumber>;
1180
+ recall: z.ZodNullable<z.ZodNumber>;
1181
+ ap50: z.ZodNullable<z.ZodNumber>;
1182
+ recallByCamera: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>>;
1183
+ recallByLight: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>>;
1184
+ fpByCamera: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1185
+ smallFound: z.ZodOptional<z.ZodNumber>;
1186
+ smallTotal: z.ZodOptional<z.ZodNumber>;
1187
+ }, z.core.$loose>>;
1188
+ }, z.core.$loose>>;
1189
+ candidate: z.ZodNullable<z.ZodObject<{
1190
+ frames: z.ZodNumber;
1191
+ classes: z.ZodRecord<z.ZodString, z.ZodObject<{
1192
+ positives: z.ZodNumber;
1193
+ floor: z.ZodNullable<z.ZodNumber>;
1194
+ tp: z.ZodNumber;
1195
+ fp: z.ZodNumber;
1196
+ fn: z.ZodNumber;
1197
+ precision: z.ZodNullable<z.ZodNumber>;
1198
+ recall: z.ZodNullable<z.ZodNumber>;
1199
+ ap50: z.ZodNullable<z.ZodNumber>;
1200
+ recallByCamera: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>>;
1201
+ recallByLight: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>>;
1202
+ fpByCamera: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1203
+ smallFound: z.ZodOptional<z.ZodNumber>;
1204
+ smallTotal: z.ZodOptional<z.ZodNumber>;
1205
+ }, z.core.$loose>>;
1206
+ }, z.core.$loose>>;
1207
+ candidateInt8: z.ZodNullable<z.ZodObject<{
1208
+ frames: z.ZodNumber;
1209
+ classes: z.ZodRecord<z.ZodString, z.ZodObject<{
1210
+ positives: z.ZodNumber;
1211
+ floor: z.ZodNullable<z.ZodNumber>;
1212
+ tp: z.ZodNumber;
1213
+ fp: z.ZodNumber;
1214
+ fn: z.ZodNumber;
1215
+ precision: z.ZodNullable<z.ZodNumber>;
1216
+ recall: z.ZodNullable<z.ZodNumber>;
1217
+ ap50: z.ZodNullable<z.ZodNumber>;
1218
+ recallByCamera: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>>;
1219
+ recallByLight: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>>;
1220
+ fpByCamera: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1221
+ smallFound: z.ZodOptional<z.ZodNumber>;
1222
+ smallTotal: z.ZodOptional<z.ZodNumber>;
1223
+ }, z.core.$loose>>;
1224
+ }, z.core.$loose>>;
1225
+ recallDeltaByCamera: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodNumber>>>;
1226
+ map50: z.ZodRecord<z.ZodString, z.ZodNullable<z.ZodNumber>>;
1227
+ }, z.core.$strip>>;
1228
+ floors: z.ZodOptional<z.ZodObject<{
1229
+ baseline: z.ZodRecord<z.ZodString, z.ZodNumber>;
1230
+ candidate: z.ZodRecord<z.ZodString, z.ZodNumber>;
1231
+ candidateInt8: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1232
+ notes: z.ZodArray<z.ZodString>;
1233
+ }, z.core.$strip>>;
1234
+ int8: z.ZodOptional<z.ZodObject<{
1235
+ kept: z.ZodBoolean;
1236
+ map50Fp16: z.ZodNullable<z.ZodNumber>;
1237
+ map50Int8: z.ZodNullable<z.ZodNumber>;
1238
+ reason: z.ZodNullable<z.ZodString>;
1239
+ }, z.core.$strip>>;
1240
+ exportsDropped: z.ZodOptional<z.ZodArray<z.ZodObject<{
1241
+ export: z.ZodString;
1242
+ reason: z.ZodString;
1243
+ }, z.core.$strip>>>;
1244
+ files: z.ZodOptional<z.ZodArray<z.ZodObject<{
1245
+ path: z.ZodString;
1246
+ bytes: z.ZodNumber;
1247
+ sha256: z.ZodString;
1248
+ format: z.ZodEnum<{
1249
+ onnx: "onnx";
1250
+ coreml: "coreml";
1251
+ openvino: "openvino";
1252
+ pt: "pt";
1253
+ }>;
1254
+ variant: z.ZodEnum<{
1255
+ int8: "int8";
1256
+ base: "base";
1257
+ }>;
1258
+ }, z.core.$strip>>>;
1259
+ bundle: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1260
+ path: z.ZodLiteral<"bundle.tar">;
1261
+ bytes: z.ZodNumber;
1262
+ sha256: z.ZodString;
1263
+ }, z.core.$strip>>>;
1264
+ catalogDraft: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1265
+ base: z.ZodObject<{
1266
+ id: z.ZodString;
1267
+ name: z.ZodString;
1268
+ description: z.ZodString;
1269
+ labels: z.ZodArray<z.ZodUnknown>;
1270
+ inputSize: z.ZodObject<{
1271
+ width: z.ZodNumber;
1272
+ height: z.ZodNumber;
1273
+ }, z.core.$strip>;
1274
+ preprocessMode: z.ZodLiteral<"letterbox">;
1275
+ defaultClassFloors: z.ZodRecord<z.ZodString, z.ZodNumber>;
1276
+ formats: z.ZodObject<{
1277
+ onnx: z.ZodOptional<z.ZodObject<{
1278
+ url: z.ZodString;
1279
+ sizeMB: z.ZodNumber;
1280
+ isDirectory: z.ZodOptional<z.ZodBoolean>;
1281
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
1282
+ runtimes: z.ZodOptional<z.ZodArray<z.ZodLiteral<"python">>>;
1283
+ revision: z.ZodString;
1284
+ }, z.core.$strip>>;
1285
+ openvino: z.ZodOptional<z.ZodObject<{
1286
+ url: z.ZodString;
1287
+ sizeMB: z.ZodNumber;
1288
+ isDirectory: z.ZodOptional<z.ZodBoolean>;
1289
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
1290
+ runtimes: z.ZodOptional<z.ZodArray<z.ZodLiteral<"python">>>;
1291
+ revision: z.ZodString;
1292
+ }, z.core.$strip>>;
1293
+ coreml: z.ZodOptional<z.ZodObject<{
1294
+ url: z.ZodString;
1295
+ sizeMB: z.ZodNumber;
1296
+ isDirectory: z.ZodOptional<z.ZodBoolean>;
1297
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
1298
+ runtimes: z.ZodOptional<z.ZodArray<z.ZodLiteral<"python">>>;
1299
+ revision: z.ZodString;
1300
+ }, z.core.$strip>>;
1301
+ }, z.core.$strip>;
1302
+ }, z.core.$strip>;
1303
+ int8: z.ZodNullable<z.ZodObject<{
1304
+ id: z.ZodString;
1305
+ name: z.ZodString;
1306
+ description: z.ZodString;
1307
+ labels: z.ZodArray<z.ZodUnknown>;
1308
+ inputSize: z.ZodObject<{
1309
+ width: z.ZodNumber;
1310
+ height: z.ZodNumber;
1311
+ }, z.core.$strip>;
1312
+ preprocessMode: z.ZodLiteral<"letterbox">;
1313
+ defaultClassFloors: z.ZodRecord<z.ZodString, z.ZodNumber>;
1314
+ formats: z.ZodObject<{
1315
+ onnx: z.ZodOptional<z.ZodObject<{
1316
+ url: z.ZodString;
1317
+ sizeMB: z.ZodNumber;
1318
+ isDirectory: z.ZodOptional<z.ZodBoolean>;
1319
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
1320
+ runtimes: z.ZodOptional<z.ZodArray<z.ZodLiteral<"python">>>;
1321
+ revision: z.ZodString;
1322
+ }, z.core.$strip>>;
1323
+ openvino: z.ZodOptional<z.ZodObject<{
1324
+ url: z.ZodString;
1325
+ sizeMB: z.ZodNumber;
1326
+ isDirectory: z.ZodOptional<z.ZodBoolean>;
1327
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
1328
+ runtimes: z.ZodOptional<z.ZodArray<z.ZodLiteral<"python">>>;
1329
+ revision: z.ZodString;
1330
+ }, z.core.$strip>>;
1331
+ coreml: z.ZodOptional<z.ZodObject<{
1332
+ url: z.ZodString;
1333
+ sizeMB: z.ZodNumber;
1334
+ isDirectory: z.ZodOptional<z.ZodBoolean>;
1335
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
1336
+ runtimes: z.ZodOptional<z.ZodArray<z.ZodLiteral<"python">>>;
1337
+ revision: z.ZodString;
1338
+ }, z.core.$strip>>;
1339
+ }, z.core.$strip>;
1340
+ }, z.core.$strip>>;
1341
+ }, z.core.$strip>>>;
1342
+ licence: z.ZodString;
1343
+ }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
1344
+ /** Hand the verified bundle to Model Studio; optionally canary right after. */
1345
+ readonly registerResult: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1346
+ id: z.ZodString;
1347
+ canaryDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1348
+ }, z.core.$strip>, z.ZodObject<{
1349
+ id: z.ZodString;
1350
+ idempotencyKey: z.ZodString;
1351
+ name: z.ZodString;
1352
+ createdAt: z.ZodNumber;
1353
+ updatedAt: z.ZodNumber;
1354
+ state: z.ZodEnum<{
1355
+ running: "running";
1356
+ failed: "failed";
1357
+ cancelled: "cancelled";
1358
+ ready: "ready";
1359
+ uploading: "uploading";
1360
+ starting: "starting";
1361
+ expired: "expired";
1362
+ lost: "lost";
1363
+ submitted: "submitted";
1364
+ collecting: "collecting";
1365
+ registered: "registered";
1366
+ canary: "canary";
1367
+ cancelling: "cancelling";
1368
+ discarded: "discarded";
1369
+ }>;
1370
+ stage: z.ZodNullable<z.ZodEnum<{
1371
+ package: "package";
1372
+ replay: "replay";
1373
+ train: "train";
1374
+ export: "export";
1375
+ prepare: "prepare";
1376
+ eval: "eval";
1377
+ }>>;
1378
+ failure: z.ZodNullable<z.ZodObject<{
1379
+ reason: z.ZodEnum<{
1380
+ "checksum-mismatch": "checksum-mismatch";
1381
+ "fetch-failed": "fetch-failed";
1382
+ "cost-cap": "cost-cap";
1383
+ "runtime-cap": "runtime-cap";
1384
+ "upload-failed": "upload-failed";
1385
+ "submit-failed": "submit-failed";
1386
+ "trainer-failed": "trainer-failed";
1387
+ "result-invalid": "result-invalid";
1388
+ "provider-error": "provider-error";
1389
+ "hub-restart-during-upload": "hub-restart-during-upload";
1390
+ }>;
1391
+ stage: z.ZodNullable<z.ZodString>;
1392
+ detail: z.ZodString;
1393
+ }, z.core.$strip>>;
1394
+ request: z.ZodObject<{
1395
+ datasetVersionId: z.ZodString;
1396
+ addonId: z.ZodString;
1397
+ gpuType: z.ZodString;
1398
+ region: z.ZodString;
1399
+ baseModelId: z.ZodString;
1400
+ preset: z.ZodEnum<{
1401
+ standard: "standard";
1402
+ quick: "quick";
1403
+ thorough: "thorough";
1404
+ }>;
1405
+ freeze: z.ZodNullable<z.ZodNumber>;
1406
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
1407
+ }, z.core.$strip>;
1408
+ maxCostUsd: z.ZodNumber;
1409
+ maxRuntimeSec: z.ZodNumber;
1410
+ trainer: z.ZodObject<{
1411
+ repo: z.ZodString;
1412
+ revision: z.ZodString;
1413
+ }, z.core.$strip>;
1414
+ datasetLayout: z.ZodEnum<{
1415
+ frames: "frames";
1416
+ crops: "crops";
1417
+ }>;
1418
+ dataset: z.ZodNullable<z.ZodObject<{
1419
+ bytes: z.ZodNumber;
1420
+ sha256: z.ZodString;
1421
+ uploadedAt: z.ZodNumber;
1422
+ }, z.core.$strip>>;
1423
+ split: z.ZodObject<{
1424
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1425
+ holdoutLastDays: z.ZodNumber;
1426
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1427
+ trainSubjects: z.ZodNumber;
1428
+ }, z.core.$strip>;
1429
+ provider: z.ZodObject<{
1430
+ state: z.ZodNullable<z.ZodEnum<{
1431
+ running: "running";
1432
+ failed: "failed";
1433
+ cancelled: "cancelled";
1434
+ pending: "pending";
1435
+ succeeded: "succeeded";
1436
+ starting: "starting";
1437
+ lost: "lost";
1438
+ }>>;
1439
+ providerJobId: z.ZodNullable<z.ZodString>;
1440
+ startedAt: z.ZodNullable<z.ZodNumber>;
1441
+ endedAt: z.ZodNullable<z.ZodNumber>;
1442
+ billedSeconds: z.ZodNumber;
1443
+ costUsd: z.ZodNumber;
1444
+ costIsEstimate: z.ZodBoolean;
1445
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
1446
+ }, z.core.$strip>;
1447
+ progress: z.ZodObject<{
1448
+ epoch: z.ZodNullable<z.ZodNumber>;
1449
+ epochs: z.ZodNullable<z.ZodNumber>;
1450
+ etaSec: z.ZodNullable<z.ZodNumber>;
1451
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1452
+ epoch: z.ZodNumber;
1453
+ map50: z.ZodNullable<z.ZodNumber>;
1454
+ map50_95: z.ZodNullable<z.ZodNumber>;
1455
+ }, z.core.$strip>>>;
1456
+ }, z.core.$strip>;
1457
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1458
+ logCursor: z.ZodNullable<z.ZodString>;
1459
+ artifacts: z.ZodNullable<z.ZodObject<{
1460
+ bundleBytes: z.ZodNumber;
1461
+ bundleSha256: z.ZodString;
1462
+ fetchedAt: z.ZodNumber;
1463
+ expiresAt: z.ZodNumber;
1464
+ }, z.core.$strip>>;
1465
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
1466
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
1467
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1468
+ canary: z.ZodNullable<z.ZodObject<{
1469
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1470
+ since: z.ZodNumber;
1471
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1472
+ deviceId: z.ZodNumber;
1473
+ nodeId: z.ZodString;
1474
+ deviceKey: z.ZodString;
1475
+ patch: z.ZodNullable<z.ZodObject<{
1476
+ modelId: z.ZodOptional<z.ZodString>;
1477
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1478
+ }, z.core.$strip>>;
1479
+ }, z.core.$strip>>>;
1480
+ }, z.core.$strip>>;
1481
+ }, z.core.$strip>, "mutation">;
1482
+ /** Pin the registered model on these cameras, remembering what it replaced. */
1483
+ readonly canaryResult: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1484
+ id: z.ZodString;
1485
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1486
+ }, z.core.$strip>, z.ZodObject<{
1487
+ id: z.ZodString;
1488
+ idempotencyKey: z.ZodString;
1489
+ name: z.ZodString;
1490
+ createdAt: z.ZodNumber;
1491
+ updatedAt: z.ZodNumber;
1492
+ state: z.ZodEnum<{
1493
+ running: "running";
1494
+ failed: "failed";
1495
+ cancelled: "cancelled";
1496
+ ready: "ready";
1497
+ uploading: "uploading";
1498
+ starting: "starting";
1499
+ expired: "expired";
1500
+ lost: "lost";
1501
+ submitted: "submitted";
1502
+ collecting: "collecting";
1503
+ registered: "registered";
1504
+ canary: "canary";
1505
+ cancelling: "cancelling";
1506
+ discarded: "discarded";
1507
+ }>;
1508
+ stage: z.ZodNullable<z.ZodEnum<{
1509
+ package: "package";
1510
+ replay: "replay";
1511
+ train: "train";
1512
+ export: "export";
1513
+ prepare: "prepare";
1514
+ eval: "eval";
1515
+ }>>;
1516
+ failure: z.ZodNullable<z.ZodObject<{
1517
+ reason: z.ZodEnum<{
1518
+ "checksum-mismatch": "checksum-mismatch";
1519
+ "fetch-failed": "fetch-failed";
1520
+ "cost-cap": "cost-cap";
1521
+ "runtime-cap": "runtime-cap";
1522
+ "upload-failed": "upload-failed";
1523
+ "submit-failed": "submit-failed";
1524
+ "trainer-failed": "trainer-failed";
1525
+ "result-invalid": "result-invalid";
1526
+ "provider-error": "provider-error";
1527
+ "hub-restart-during-upload": "hub-restart-during-upload";
1528
+ }>;
1529
+ stage: z.ZodNullable<z.ZodString>;
1530
+ detail: z.ZodString;
1531
+ }, z.core.$strip>>;
1532
+ request: z.ZodObject<{
1533
+ datasetVersionId: z.ZodString;
1534
+ addonId: z.ZodString;
1535
+ gpuType: z.ZodString;
1536
+ region: z.ZodString;
1537
+ baseModelId: z.ZodString;
1538
+ preset: z.ZodEnum<{
1539
+ standard: "standard";
1540
+ quick: "quick";
1541
+ thorough: "thorough";
1542
+ }>;
1543
+ freeze: z.ZodNullable<z.ZodNumber>;
1544
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
1545
+ }, z.core.$strip>;
1546
+ maxCostUsd: z.ZodNumber;
1547
+ maxRuntimeSec: z.ZodNumber;
1548
+ trainer: z.ZodObject<{
1549
+ repo: z.ZodString;
1550
+ revision: z.ZodString;
1551
+ }, z.core.$strip>;
1552
+ datasetLayout: z.ZodEnum<{
1553
+ frames: "frames";
1554
+ crops: "crops";
1555
+ }>;
1556
+ dataset: z.ZodNullable<z.ZodObject<{
1557
+ bytes: z.ZodNumber;
1558
+ sha256: z.ZodString;
1559
+ uploadedAt: z.ZodNumber;
1560
+ }, z.core.$strip>>;
1561
+ split: z.ZodObject<{
1562
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1563
+ holdoutLastDays: z.ZodNumber;
1564
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1565
+ trainSubjects: z.ZodNumber;
1566
+ }, z.core.$strip>;
1567
+ provider: z.ZodObject<{
1568
+ state: z.ZodNullable<z.ZodEnum<{
1569
+ running: "running";
1570
+ failed: "failed";
1571
+ cancelled: "cancelled";
1572
+ pending: "pending";
1573
+ succeeded: "succeeded";
1574
+ starting: "starting";
1575
+ lost: "lost";
1576
+ }>>;
1577
+ providerJobId: z.ZodNullable<z.ZodString>;
1578
+ startedAt: z.ZodNullable<z.ZodNumber>;
1579
+ endedAt: z.ZodNullable<z.ZodNumber>;
1580
+ billedSeconds: z.ZodNumber;
1581
+ costUsd: z.ZodNumber;
1582
+ costIsEstimate: z.ZodBoolean;
1583
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
1584
+ }, z.core.$strip>;
1585
+ progress: z.ZodObject<{
1586
+ epoch: z.ZodNullable<z.ZodNumber>;
1587
+ epochs: z.ZodNullable<z.ZodNumber>;
1588
+ etaSec: z.ZodNullable<z.ZodNumber>;
1589
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1590
+ epoch: z.ZodNumber;
1591
+ map50: z.ZodNullable<z.ZodNumber>;
1592
+ map50_95: z.ZodNullable<z.ZodNumber>;
1593
+ }, z.core.$strip>>>;
1594
+ }, z.core.$strip>;
1595
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1596
+ logCursor: z.ZodNullable<z.ZodString>;
1597
+ artifacts: z.ZodNullable<z.ZodObject<{
1598
+ bundleBytes: z.ZodNumber;
1599
+ bundleSha256: z.ZodString;
1600
+ fetchedAt: z.ZodNumber;
1601
+ expiresAt: z.ZodNumber;
1602
+ }, z.core.$strip>>;
1603
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
1604
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
1605
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1606
+ canary: z.ZodNullable<z.ZodObject<{
1607
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1608
+ since: z.ZodNumber;
1609
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1610
+ deviceId: z.ZodNumber;
1611
+ nodeId: z.ZodString;
1612
+ deviceKey: z.ZodString;
1613
+ patch: z.ZodNullable<z.ZodObject<{
1614
+ modelId: z.ZodOptional<z.ZodString>;
1615
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1616
+ }, z.core.$strip>>;
1617
+ }, z.core.$strip>>>;
1618
+ }, z.core.$strip>>;
1619
+ }, z.core.$strip>, "mutation">;
1620
+ /** Put every canary camera back exactly as it was. */
1621
+ readonly rollbackCanary: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1622
+ id: z.ZodString;
1623
+ }, z.core.$strip>, z.ZodObject<{
1624
+ id: z.ZodString;
1625
+ idempotencyKey: z.ZodString;
1626
+ name: z.ZodString;
1627
+ createdAt: z.ZodNumber;
1628
+ updatedAt: z.ZodNumber;
1629
+ state: z.ZodEnum<{
1630
+ running: "running";
1631
+ failed: "failed";
1632
+ cancelled: "cancelled";
1633
+ ready: "ready";
1634
+ uploading: "uploading";
1635
+ starting: "starting";
1636
+ expired: "expired";
1637
+ lost: "lost";
1638
+ submitted: "submitted";
1639
+ collecting: "collecting";
1640
+ registered: "registered";
1641
+ canary: "canary";
1642
+ cancelling: "cancelling";
1643
+ discarded: "discarded";
1644
+ }>;
1645
+ stage: z.ZodNullable<z.ZodEnum<{
1646
+ package: "package";
1647
+ replay: "replay";
1648
+ train: "train";
1649
+ export: "export";
1650
+ prepare: "prepare";
1651
+ eval: "eval";
1652
+ }>>;
1653
+ failure: z.ZodNullable<z.ZodObject<{
1654
+ reason: z.ZodEnum<{
1655
+ "checksum-mismatch": "checksum-mismatch";
1656
+ "fetch-failed": "fetch-failed";
1657
+ "cost-cap": "cost-cap";
1658
+ "runtime-cap": "runtime-cap";
1659
+ "upload-failed": "upload-failed";
1660
+ "submit-failed": "submit-failed";
1661
+ "trainer-failed": "trainer-failed";
1662
+ "result-invalid": "result-invalid";
1663
+ "provider-error": "provider-error";
1664
+ "hub-restart-during-upload": "hub-restart-during-upload";
1665
+ }>;
1666
+ stage: z.ZodNullable<z.ZodString>;
1667
+ detail: z.ZodString;
1668
+ }, z.core.$strip>>;
1669
+ request: z.ZodObject<{
1670
+ datasetVersionId: z.ZodString;
1671
+ addonId: z.ZodString;
1672
+ gpuType: z.ZodString;
1673
+ region: z.ZodString;
1674
+ baseModelId: z.ZodString;
1675
+ preset: z.ZodEnum<{
1676
+ standard: "standard";
1677
+ quick: "quick";
1678
+ thorough: "thorough";
1679
+ }>;
1680
+ freeze: z.ZodNullable<z.ZodNumber>;
1681
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
1682
+ }, z.core.$strip>;
1683
+ maxCostUsd: z.ZodNumber;
1684
+ maxRuntimeSec: z.ZodNumber;
1685
+ trainer: z.ZodObject<{
1686
+ repo: z.ZodString;
1687
+ revision: z.ZodString;
1688
+ }, z.core.$strip>;
1689
+ datasetLayout: z.ZodEnum<{
1690
+ frames: "frames";
1691
+ crops: "crops";
1692
+ }>;
1693
+ dataset: z.ZodNullable<z.ZodObject<{
1694
+ bytes: z.ZodNumber;
1695
+ sha256: z.ZodString;
1696
+ uploadedAt: z.ZodNumber;
1697
+ }, z.core.$strip>>;
1698
+ split: z.ZodObject<{
1699
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1700
+ holdoutLastDays: z.ZodNumber;
1701
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1702
+ trainSubjects: z.ZodNumber;
1703
+ }, z.core.$strip>;
1704
+ provider: z.ZodObject<{
1705
+ state: z.ZodNullable<z.ZodEnum<{
1706
+ running: "running";
1707
+ failed: "failed";
1708
+ cancelled: "cancelled";
1709
+ pending: "pending";
1710
+ succeeded: "succeeded";
1711
+ starting: "starting";
1712
+ lost: "lost";
1713
+ }>>;
1714
+ providerJobId: z.ZodNullable<z.ZodString>;
1715
+ startedAt: z.ZodNullable<z.ZodNumber>;
1716
+ endedAt: z.ZodNullable<z.ZodNumber>;
1717
+ billedSeconds: z.ZodNumber;
1718
+ costUsd: z.ZodNumber;
1719
+ costIsEstimate: z.ZodBoolean;
1720
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
1721
+ }, z.core.$strip>;
1722
+ progress: z.ZodObject<{
1723
+ epoch: z.ZodNullable<z.ZodNumber>;
1724
+ epochs: z.ZodNullable<z.ZodNumber>;
1725
+ etaSec: z.ZodNullable<z.ZodNumber>;
1726
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1727
+ epoch: z.ZodNumber;
1728
+ map50: z.ZodNullable<z.ZodNumber>;
1729
+ map50_95: z.ZodNullable<z.ZodNumber>;
1730
+ }, z.core.$strip>>>;
1731
+ }, z.core.$strip>;
1732
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1733
+ logCursor: z.ZodNullable<z.ZodString>;
1734
+ artifacts: z.ZodNullable<z.ZodObject<{
1735
+ bundleBytes: z.ZodNumber;
1736
+ bundleSha256: z.ZodString;
1737
+ fetchedAt: z.ZodNumber;
1738
+ expiresAt: z.ZodNumber;
1739
+ }, z.core.$strip>>;
1740
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
1741
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
1742
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1743
+ canary: z.ZodNullable<z.ZodObject<{
1744
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1745
+ since: z.ZodNumber;
1746
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1747
+ deviceId: z.ZodNumber;
1748
+ nodeId: z.ZodString;
1749
+ deviceKey: z.ZodString;
1750
+ patch: z.ZodNullable<z.ZodObject<{
1751
+ modelId: z.ZodOptional<z.ZodString>;
1752
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1753
+ }, z.core.$strip>>;
1754
+ }, z.core.$strip>>>;
1755
+ }, z.core.$strip>>;
1756
+ }, z.core.$strip>, "mutation">;
1757
+ /** Delete the staged artefacts of an unregistered result. */
1758
+ readonly discardResult: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1759
+ id: z.ZodString;
1760
+ }, z.core.$strip>, z.ZodObject<{
1761
+ id: z.ZodString;
1762
+ idempotencyKey: z.ZodString;
1763
+ name: z.ZodString;
1764
+ createdAt: z.ZodNumber;
1765
+ updatedAt: z.ZodNumber;
1766
+ state: z.ZodEnum<{
1767
+ running: "running";
1768
+ failed: "failed";
1769
+ cancelled: "cancelled";
1770
+ ready: "ready";
1771
+ uploading: "uploading";
1772
+ starting: "starting";
1773
+ expired: "expired";
1774
+ lost: "lost";
1775
+ submitted: "submitted";
1776
+ collecting: "collecting";
1777
+ registered: "registered";
1778
+ canary: "canary";
1779
+ cancelling: "cancelling";
1780
+ discarded: "discarded";
1781
+ }>;
1782
+ stage: z.ZodNullable<z.ZodEnum<{
1783
+ package: "package";
1784
+ replay: "replay";
1785
+ train: "train";
1786
+ export: "export";
1787
+ prepare: "prepare";
1788
+ eval: "eval";
1789
+ }>>;
1790
+ failure: z.ZodNullable<z.ZodObject<{
1791
+ reason: z.ZodEnum<{
1792
+ "checksum-mismatch": "checksum-mismatch";
1793
+ "fetch-failed": "fetch-failed";
1794
+ "cost-cap": "cost-cap";
1795
+ "runtime-cap": "runtime-cap";
1796
+ "upload-failed": "upload-failed";
1797
+ "submit-failed": "submit-failed";
1798
+ "trainer-failed": "trainer-failed";
1799
+ "result-invalid": "result-invalid";
1800
+ "provider-error": "provider-error";
1801
+ "hub-restart-during-upload": "hub-restart-during-upload";
1802
+ }>;
1803
+ stage: z.ZodNullable<z.ZodString>;
1804
+ detail: z.ZodString;
1805
+ }, z.core.$strip>>;
1806
+ request: z.ZodObject<{
1807
+ datasetVersionId: z.ZodString;
1808
+ addonId: z.ZodString;
1809
+ gpuType: z.ZodString;
1810
+ region: z.ZodString;
1811
+ baseModelId: z.ZodString;
1812
+ preset: z.ZodEnum<{
1813
+ standard: "standard";
1814
+ quick: "quick";
1815
+ thorough: "thorough";
1816
+ }>;
1817
+ freeze: z.ZodNullable<z.ZodNumber>;
1818
+ holdoutCameras: z.ZodNullable<z.ZodArray<z.ZodNumber>>;
1819
+ }, z.core.$strip>;
1820
+ maxCostUsd: z.ZodNumber;
1821
+ maxRuntimeSec: z.ZodNumber;
1822
+ trainer: z.ZodObject<{
1823
+ repo: z.ZodString;
1824
+ revision: z.ZodString;
1825
+ }, z.core.$strip>;
1826
+ datasetLayout: z.ZodEnum<{
1827
+ frames: "frames";
1828
+ crops: "crops";
1829
+ }>;
1830
+ dataset: z.ZodNullable<z.ZodObject<{
1831
+ bytes: z.ZodNumber;
1832
+ sha256: z.ZodString;
1833
+ uploadedAt: z.ZodNumber;
1834
+ }, z.core.$strip>>;
1835
+ split: z.ZodObject<{
1836
+ holdoutCameras: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1837
+ holdoutLastDays: z.ZodNumber;
1838
+ holdoutSupport: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>;
1839
+ trainSubjects: z.ZodNumber;
1840
+ }, z.core.$strip>;
1841
+ provider: z.ZodObject<{
1842
+ state: z.ZodNullable<z.ZodEnum<{
1843
+ running: "running";
1844
+ failed: "failed";
1845
+ cancelled: "cancelled";
1846
+ pending: "pending";
1847
+ succeeded: "succeeded";
1848
+ starting: "starting";
1849
+ lost: "lost";
1850
+ }>>;
1851
+ providerJobId: z.ZodNullable<z.ZodString>;
1852
+ startedAt: z.ZodNullable<z.ZodNumber>;
1853
+ endedAt: z.ZodNullable<z.ZodNumber>;
1854
+ billedSeconds: z.ZodNumber;
1855
+ costUsd: z.ZodNumber;
1856
+ costIsEstimate: z.ZodBoolean;
1857
+ lastPolledAt: z.ZodNullable<z.ZodNumber>;
1858
+ }, z.core.$strip>;
1859
+ progress: z.ZodObject<{
1860
+ epoch: z.ZodNullable<z.ZodNumber>;
1861
+ epochs: z.ZodNullable<z.ZodNumber>;
1862
+ etaSec: z.ZodNullable<z.ZodNumber>;
1863
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1864
+ epoch: z.ZodNumber;
1865
+ map50: z.ZodNullable<z.ZodNumber>;
1866
+ map50_95: z.ZodNullable<z.ZodNumber>;
1867
+ }, z.core.$strip>>>;
1868
+ }, z.core.$strip>;
1869
+ logTail: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1870
+ logCursor: z.ZodNullable<z.ZodString>;
1871
+ artifacts: z.ZodNullable<z.ZodObject<{
1872
+ bundleBytes: z.ZodNumber;
1873
+ bundleSha256: z.ZodString;
1874
+ fetchedAt: z.ZodNumber;
1875
+ expiresAt: z.ZodNumber;
1876
+ }, z.core.$strip>>;
1877
+ cloudDatasetDeletedAt: z.ZodNullable<z.ZodNumber>;
1878
+ cloudCleanupDueAt: z.ZodNullable<z.ZodNumber>;
1879
+ registeredModelIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
1880
+ canary: z.ZodNullable<z.ZodObject<{
1881
+ deviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
1882
+ since: z.ZodNumber;
1883
+ previous: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1884
+ deviceId: z.ZodNumber;
1885
+ nodeId: z.ZodString;
1886
+ deviceKey: z.ZodString;
1887
+ patch: z.ZodNullable<z.ZodObject<{
1888
+ modelId: z.ZodOptional<z.ZodString>;
1889
+ settings: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1890
+ }, z.core.$strip>>;
1891
+ }, z.core.$strip>>>;
1892
+ }, z.core.$strip>>;
1893
+ }, z.core.$strip>, "mutation">;
1894
+ };
1895
+ };
1896
+ export type ITrainingOrchestrator = InferProvider<typeof trainingCapability>;