@camstack/addon-pipeline 1.2.351 → 1.2.352

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 (35) hide show
  1. package/dist/audio-analyzer/index.js +3 -3
  2. package/dist/audio-analyzer/index.mjs +3 -3
  3. package/dist/{custom-model-catalog-CPqbnIUh.js → custom-model-catalog-C0YLGfXW.js} +2 -2
  4. package/dist/{custom-model-catalog-DdHOXMKu.mjs → custom-model-catalog-DOdYtRQq.mjs} +2 -2
  5. package/dist/detection-pipeline/index.js +4 -4
  6. package/dist/detection-pipeline/index.mjs +4 -4
  7. package/dist/{dist-C2jSMJo_.js → dist-CfWjf81s.js} +246 -131
  8. package/dist/{dist-DFCl7PZV.mjs → dist-DcgsYeMF.mjs} +246 -131
  9. package/dist/{model-catalogs-Cind8NmH.mjs → model-catalogs--O6Q7mPI.mjs} +1 -1
  10. package/dist/{model-catalogs-CVhIiNhe.js → model-catalogs-CRfR_2eH.js} +1 -1
  11. package/dist/motion-wasm/index.js +1 -1
  12. package/dist/motion-wasm/index.mjs +1 -1
  13. package/dist/{node-B7ZinEw5.js → node-Bv8nTaz9.js} +1 -1
  14. package/dist/{node-C12l0K5V.mjs → node-Cm4a7kvq.mjs} +1 -1
  15. package/dist/pipeline-runner/index.js +47 -6
  16. package/dist/pipeline-runner/index.mjs +47 -6
  17. package/dist/{process-memory-3F1cP1ou.mjs → process-memory-C0vhr2Sz.mjs} +1 -1
  18. package/dist/{process-memory-C1s8YIw4.js → process-memory-CwlR-qz-.js} +1 -1
  19. package/dist/recorder/index.js +18 -3
  20. package/dist/recorder/index.mjs +18 -3
  21. package/dist/{segment-demux-js-B2IxTWms.js → segment-demux-js-CBOD3WJi.js} +1 -1
  22. package/dist/{segment-demux-js-7l4LsdU4.mjs → segment-demux-js-jCbu3l5p.mjs} +1 -1
  23. package/dist/stream-broker/_stub.js +2 -2
  24. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BgC3mSLA.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-sn-wRxB0.mjs} +2 -2
  25. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DvezLWc2.mjs +26 -0
  26. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DzwH8EBx.mjs +26 -0
  27. package/dist/stream-broker/demux-worker-child.js +1 -1
  28. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  29. package/dist/stream-broker/{hostInit-DfOhCBj-.mjs → hostInit-B-NLrwa0.mjs} +2 -2
  30. package/dist/stream-broker/index.js +3 -3
  31. package/dist/stream-broker/index.mjs +3 -3
  32. package/dist/stream-broker/remoteEntry.js +1 -1
  33. package/package.json +1 -1
  34. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CNhTe1NS.mjs +0 -26
  35. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BjeGYopB.mjs +0 -26
@@ -5377,7 +5377,7 @@ var ZodIssueCode = {
5377
5377
  var ZodFirstPartyTypeKind;
5378
5378
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5379
5379
  //#endregion
5380
- //#region ../types/dist/sleep-r3RWkGVx.mjs
5380
+ //#region ../types/dist/sleep-CI0n5D44.mjs
5381
5381
  /**
5382
5382
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5383
5383
  * window to float samples (D455).
@@ -10407,6 +10407,16 @@ var CompositionSchema = object({
10407
10407
  seen.add(feature.cap);
10408
10408
  });
10409
10409
  });
10410
+ var NodeColorIdSchema = _enum([
10411
+ "node-a",
10412
+ "node-b",
10413
+ "node-c",
10414
+ "node-d",
10415
+ "node-e",
10416
+ "node-f",
10417
+ "node-g",
10418
+ "node-h"
10419
+ ]);
10410
10420
  new Set([
10411
10421
  "track",
10412
10422
  "face",
@@ -27212,24 +27222,69 @@ var RetrainFrameListSchema = object({
27212
27222
  /** What the page pre-selects — the native key frame when one survives. */
27213
27223
  autoPickMediaId: number().int().optional()
27214
27224
  });
27225
+ /** Exclusive partition of a corpus copy's annotation progress (design §4.2). */
27226
+ var RetrainFrameWorkStateSchema = _enum([
27227
+ "unannotated",
27228
+ "annotated",
27229
+ "complete"
27230
+ ]);
27231
+ /**
27232
+ * Filters for paginated corpus list, KPI, and matching export (design §4.4).
27233
+ * Every narrowing field is ANDed; omitted fields impose no constraint.
27234
+ */
27235
+ var RetrainCorpusFilterSchema = object({
27236
+ workState: RetrainFrameWorkStateSchema.optional(),
27237
+ deviceIds: array(number()).max(500).optional(),
27238
+ /** When set, only frames in this named collection. */
27239
+ collectionId: string().optional(),
27240
+ /** Frames that carry at least one saved annotation in one of these classes. */
27241
+ classes: array(RetrainMacroClassSchema).optional(),
27242
+ page: number().int().positive().default(1),
27243
+ pageSize: number().int().positive().max(100).default(50)
27244
+ });
27245
+ var RetrainCorpusPageSchema = object({
27246
+ frames: array(RetrainFrameSchema.extend({ workState: RetrainFrameWorkStateSchema })).readonly(),
27247
+ total: number().int().nonnegative(),
27248
+ page: number().int().positive(),
27249
+ pageSize: number().int().positive()
27250
+ });
27251
+ var RetrainCorpusKpiCameraRowSchema = object({
27252
+ deviceId: number(),
27253
+ unannotated: number().int().nonnegative(),
27254
+ annotated: number().int().nonnegative(),
27255
+ complete: number().int().nonnegative(),
27256
+ /** This camera's `complete` count divided by corpus `total`, in `[0,1]`.
27257
+ * `null` when the corpus is empty (no ratio). */
27258
+ pctOfCorpus: number().min(0).max(1).nullable()
27259
+ });
27260
+ var RetrainCorpusKpiSchema = object({
27261
+ total: number().int().nonnegative(),
27262
+ unannotated: number().int().nonnegative(),
27263
+ annotated: number().int().nonnegative(),
27264
+ complete: number().int().nonnegative(),
27265
+ cameras: array(RetrainCorpusKpiCameraRowSchema).readonly()
27266
+ });
27215
27267
  /**
27216
27268
  * Which frames an annotated export carries. Every field narrows; an empty
27217
- * filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
27218
- * list owned by whoever trains (the training orchestrator), so `frameIds` is
27219
- * the primitive a version export uses; `batchId` re-selects what an earlier
27220
- * export carried (`exportedInBatch`).
27269
+ * filter is every annotated copy. `frameIds` is the primitive a job or
27270
+ * download uses; `batchId` re-selects what an earlier export carried
27271
+ * (`exportedInBatch`). Frozen dataset versions were removed — live selection
27272
+ * resolves to `frameIds` at plan/start.
27221
27273
  */
27222
27274
  var RetrainExportFilterSchema = object({
27223
27275
  deviceIds: array(number()).optional(),
27224
27276
  frameIds: array(string()).max(2e4).optional(),
27225
27277
  /** Only frames in at least one of these named collections. */
27226
27278
  collectionIds: array(string()).max(200).optional(),
27227
- /** Exactly the frames of this dataset version (and its completeOnly). An
27228
- * unknown id selects nothing. */
27229
- datasetVersionId: string().optional(),
27279
+ /** Single collection (Frames filter bar). ANDed with `collectionIds` when both set. */
27280
+ collectionId: string().optional(),
27230
27281
  batchId: string().optional(),
27231
27282
  /** Only frames the operator marked complete (all subjects boxed). */
27232
- completeOnly: boolean().optional()
27283
+ completeOnly: boolean().optional(),
27284
+ /** Exclusive work-state partition (`workStateOf`); same as the corpus list. */
27285
+ workState: RetrainFrameWorkStateSchema.optional(),
27286
+ /** Frames with at least one saved annotation in one of these classes. */
27287
+ classes: array(RetrainMacroClassSchema).optional()
27233
27288
  });
27234
27289
  /**
27235
27290
  * `frames`: the full frame copies, boxes in `annotations.json`.
@@ -27429,8 +27484,7 @@ var RetrainDatasetStatsSchema = object({
27429
27484
  completeFrames: number().int()
27430
27485
  })).readonly()
27431
27486
  });
27432
- /** An immutable dataset version, without its frame list. */
27433
- var RetrainDatasetVersionSchema = object({
27487
+ object({
27434
27488
  id: string(),
27435
27489
  name: string(),
27436
27490
  createdAt: number(),
@@ -27438,22 +27492,33 @@ var RetrainDatasetVersionSchema = object({
27438
27492
  layout: RetrainExportLayoutSchema,
27439
27493
  completeOnly: boolean(),
27440
27494
  frameCount: number().int(),
27441
- /** sha256 of what the frames taught when the version was frozen. */
27442
27495
  annotationHash: string(),
27443
- /** The export manifest schema the version was cut under. */
27444
27496
  manifestSchema: string(),
27445
27497
  stats: RetrainDatasetStatsSchema
27446
27498
  });
27447
- var CreateRetrainDatasetVersionResultSchema = discriminatedUnion("kind", [object({
27448
- kind: literal("created"),
27449
- version: RetrainDatasetVersionSchema
27499
+ /**
27500
+ * Live training corpus criteria — same shape as `TrainingCorpusSelection` on
27501
+ * the training cap. Resolved here so plan/start and the annotated export share
27502
+ * one definition of "the frames" (`buildRetrainExportPlan`).
27503
+ */
27504
+ var RetrainTrainingCorpusSelectionSchema = object({
27505
+ collectionIds: array(string()).min(1),
27506
+ workState: _enum([
27507
+ "complete",
27508
+ "annotated_or_complete",
27509
+ "any_annotated"
27510
+ ]).default("complete")
27511
+ });
27512
+ var RetrainTrainingCorpusResolveResultSchema = discriminatedUnion("kind", [object({
27513
+ kind: literal("resolved"),
27514
+ frameIds: array(string()).max(2e4).readonly(),
27515
+ stats: RetrainDatasetStatsSchema,
27516
+ annotationHash: string(),
27517
+ layout: RetrainExportLayoutSchema
27450
27518
  }), object({
27451
27519
  kind: literal("refused"),
27452
- reason: _enum([
27453
- "empty-name",
27454
- "duplicate-name",
27455
- "no-frames"
27456
- ])
27520
+ reason: _enum(["unknown-collection", "no-frames"]),
27521
+ detail: string()
27457
27522
  })]);
27458
27523
  /** The outcome of a lifecycle move owned by the retrain page. */
27459
27524
  var RetrainTransitionResultSchema = object({
@@ -28160,6 +28225,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
28160
28225
  }), array(RetrainTrackSchema).readonly(), {
28161
28226
  kind: "query",
28162
28227
  auth: "admin"
28228
+ }), method(RetrainCorpusFilterSchema, RetrainCorpusPageSchema, {
28229
+ kind: "query",
28230
+ auth: "admin"
28231
+ }), method(object({}), RetrainCorpusKpiSchema, {
28232
+ kind: "query",
28233
+ auth: "admin"
28163
28234
  }), method(object({ trackId: string() }), RetrainFrameListSchema, {
28164
28235
  kind: "query",
28165
28236
  auth: "admin"
@@ -28255,36 +28326,6 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
28255
28326
  kind: "mutation",
28256
28327
  auth: "admin",
28257
28328
  timeoutMs: 12e4
28258
- }), method(object({
28259
- selection: RetrainDatasetSelectionSchema,
28260
- completeOnly: boolean().optional()
28261
- }), RetrainDatasetStatsSchema, {
28262
- kind: "query",
28263
- auth: "admin"
28264
- }), method(object({
28265
- name: string().max(120),
28266
- selection: RetrainDatasetSelectionSchema,
28267
- layout: RetrainExportLayoutSchema,
28268
- completeOnly: boolean()
28269
- }), CreateRetrainDatasetVersionResultSchema, {
28270
- kind: "mutation",
28271
- auth: "admin",
28272
- timeoutMs: 12e4
28273
- }), method(object({}), array(RetrainDatasetVersionSchema).readonly(), {
28274
- kind: "query",
28275
- auth: "admin"
28276
- }), method(object({ id: string() }), object({ deleted: boolean() }), {
28277
- kind: "mutation",
28278
- auth: "admin"
28279
- }), method(object({ id: string() }), object({
28280
- found: boolean(),
28281
- annotationHash: string(),
28282
- matches: boolean(),
28283
- missingFrames: number().int()
28284
- }), {
28285
- kind: "query",
28286
- auth: "admin",
28287
- timeoutMs: 12e4
28288
28329
  }), method(object({}), array(RetrainAssistProfileSchema).readonly(), {
28289
28330
  kind: "query",
28290
28331
  auth: "admin"
@@ -28311,6 +28352,10 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
28311
28352
  }), method(object({}), array(RetrainCollectionSchema).readonly(), {
28312
28353
  kind: "query",
28313
28354
  auth: "admin"
28355
+ }), method(RetrainTrainingCorpusSelectionSchema, RetrainTrainingCorpusResolveResultSchema, {
28356
+ kind: "query",
28357
+ auth: "admin",
28358
+ timeoutMs: 6e4
28314
28359
  }), method(object({
28315
28360
  id: string(),
28316
28361
  name: string().max(120)
@@ -31232,6 +31277,8 @@ var AgentPipelineSettingsSchema = object({
31232
31277
  * address is wrong (multi-homed host, NAT, custom interface).
31233
31278
  */
31234
31279
  reachableHost: string().optional(),
31280
+ /** Hub-persisted UI colour (`--color-node-*` theme tokens). */
31281
+ color: NodeColorIdSchema.optional(),
31235
31282
  /**
31236
31283
  * Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
31237
31284
  * weight, steps}. Absent / all-disabled ⇒ the node's single default
@@ -31781,8 +31828,9 @@ method(object({
31781
31828
  auth: "admin"
31782
31829
  }), method(object({
31783
31830
  agentNodeId: string(),
31784
- reachableHost: string().nullable()
31785
- }), object({ success: literal(true) }), {
31831
+ reachableHost: string().nullable().optional(),
31832
+ color: NodeColorIdSchema.nullable().optional()
31833
+ }).refine((v) => v.reachableHost !== void 0 || v.color !== void 0, { message: "reachableHost or color required" }), object({ success: literal(true) }), {
31786
31834
  kind: "mutation",
31787
31835
  auth: "admin"
31788
31836
  }), method(object({
@@ -44014,9 +44062,11 @@ DeviceType.Camera, method(object({
44014
44062
  * once is what makes a second provider (RunPod, a local NVIDIA node) a new
44015
44063
  * manifest entry and nothing else.
44016
44064
  *
44017
- * Collection, routed by the `addonId` in every single-row input (the `llm` /
44018
- * `notification-output` posture); `describe` concat-fans across providers.
44019
- * Every method is `admin`: these spend money.
44065
+ * Collection of provider **types** (addons). Each addon owns zero or more
44066
+ * **entries** (credentials + defaults). Concat-fans: `describe`,
44067
+ * `describeTypes`, `listEntries`, `listJobs`. Single-row work is keyed by
44068
+ * `entryId`; callers also pass the owning `addonId` as the collection
44069
+ * selector (broker posture). Every method is `admin`: these spend money.
44020
44070
  *
44021
44071
  * Every cloud object a provider creates is tagged with the orchestrator's
44022
44072
  * `jobKey`, so a retried submit finds the job it already started instead of
@@ -44040,8 +44090,8 @@ var TrainingRegionOptionSchema = object({
44040
44090
  priceMultiplier: number().positive()
44041
44091
  });
44042
44092
  /**
44043
- * The provider's per-account settings, as the orchestrator reads them. They
44044
- * live in the PROVIDER addon's settings (operator decision 2026-10-08: they
44093
+ * The provider's per-entry settings, as the orchestrator reads them. They
44094
+ * live on the PROVIDER addon's entry (operator decision 2026-10-08: they
44045
44095
  * depend on the user's account), never hard-coded in the orchestrator.
44046
44096
  */
44047
44097
  var TrainingProviderDefaultsSchema = object({
@@ -44052,9 +44102,32 @@ var TrainingProviderDefaultsSchema = object({
44052
44102
  /** Hours a FAILED job's cloud dataset is kept for debugging; 0 = delete at once. */
44053
44103
  failedDatasetGraceHours: number().nonnegative()
44054
44104
  });
44105
+ /** One creatable provider type, for the Add-entry dialog. */
44106
+ var TrainingProviderTypeSchema = object({
44107
+ typeId: string(),
44108
+ label: string(),
44109
+ /** Path under the addon package (e.g. `assets/training-modal/icon.svg`). */
44110
+ iconAsset: string(),
44111
+ /** Owning `training-provider` addon — collection selector for createEntry. */
44112
+ addonId: string()
44113
+ });
44114
+ /** One configured account / workspace under a provider type. */
44115
+ var TrainingProviderEntrySchema = object({
44116
+ entryId: string(),
44117
+ typeId: string(),
44118
+ name: string(),
44119
+ addonId: string(),
44120
+ /** Credentials are present — never the values. */
44121
+ configured: boolean()
44122
+ });
44055
44123
  var TrainingProviderDescriptorSchema = object({
44056
44124
  addonId: string(),
44057
- /** `modal`, `runpod`, `fake`, … */
44125
+ entryId: string(),
44126
+ typeId: string(),
44127
+ /** Operator-chosen entry name. */
44128
+ name: string(),
44129
+ iconAsset: string(),
44130
+ /** `modal`, `runpod`, `fake`, … — same as typeId for current providers. */
44058
44131
  kind: string(),
44059
44132
  label: string(),
44060
44133
  gpuTypes: array(TrainingGpuOptionSchema).readonly(),
@@ -44118,20 +44191,30 @@ var TrainerSourceRefSchema = object({
44118
44191
  /** A commit sha (never a branch) — the job must be reproducible. */
44119
44192
  revision: string().regex(/^[0-9a-f]{7,64}$/)
44120
44193
  });
44194
+ /** Cloud job identity — route with the owning addon's `addonId` selector. */
44121
44195
  var JobRef = {
44122
- addonId: string(),
44196
+ entryId: string().min(1),
44123
44197
  jobKey: string().uuid()
44124
44198
  };
44125
44199
  var TrainingLogLineSchema = object({
44126
44200
  ts: number(),
44127
44201
  text: string()
44128
44202
  });
44129
- method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "admin" }), method(object({ addonId: string() }), TrainingCredentialCheckSchema, {
44203
+ method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "admin" }), method(object({}), array(TrainingProviderTypeSchema).readonly(), { auth: "admin" }), method(object({}), array(TrainingProviderEntrySchema).readonly(), { auth: "admin" }), method(object({
44204
+ typeId: string().min(1),
44205
+ name: string().min(1)
44206
+ }), object({ entryId: string() }), {
44207
+ kind: "mutation",
44208
+ auth: "admin"
44209
+ }), method(object({ entryId: string().min(1) }), object({ ok: literal(true) }), {
44210
+ kind: "mutation",
44211
+ auth: "admin"
44212
+ }), method(object({ entryId: string().min(1) }), TrainingCredentialCheckSchema, {
44130
44213
  kind: "mutation",
44131
44214
  auth: "admin",
44132
44215
  timeoutMs: 3e4
44133
44216
  }), method(object({
44134
- addonId: string(),
44217
+ entryId: string().min(1),
44135
44218
  gpuType: string(),
44136
44219
  region: string(),
44137
44220
  datasetBytes: number().int().nonnegative(),
@@ -44197,7 +44280,7 @@ method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "
44197
44280
  kind: "mutation",
44198
44281
  auth: "admin",
44199
44282
  timeoutMs: 5 * 6e4
44200
- }), method(object({ addonId: string() }), array(ProviderJobStatusSchema).readonly(), {
44283
+ }), method(object({ entryId: string().min(1).optional() }), array(ProviderJobStatusSchema).readonly(), {
44201
44284
  auth: "admin",
44202
44285
  timeoutMs: 2 * 6e4
44203
44286
  });
@@ -44207,20 +44290,31 @@ method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "
44207
44290
  *
44208
44291
  * It owns what every provider must agree on, written once:
44209
44292
  *
44210
- * - **Dataset versions.** Taken over from pipeline-analytics (D796): the rows
44211
- * live here (D808); pipeline-analytics still CUTS a version (it owns the corpus and
44212
- * the export plan) and reaches this store through the five row methods
44213
- * below, so the Retrain page and the export did not change.
44214
44293
  * - **Jobs.** A persisted state machine, a reconcile loop against the
44215
44294
  * provider, a cost guard, a daily orphan sweep and the retention rules.
44216
44295
  * - **The return flow.** Verified artefacts → Model Studio
44217
44296
  * (`custom-model-registry.importModelBundle`) → canary on cameras →
44218
44297
  * rollback. Nothing is ever registered automatically.
44219
44298
  *
44299
+ * Plan/start takes a live {@link TrainingCorpusSelection} (collections +
44300
+ * work-state rule); frame ids are resolved via pipeline-analytics at that
44301
+ * moment and snapshotted on the job. No frozen dataset version.
44302
+ *
44220
44303
  * Every method is `admin`.
44221
44304
  */
44222
- /** A version WITH its frame list — what the export and a job read. */
44223
- var TrainingDatasetVersionRowSchema = RetrainDatasetVersionSchema.omit({ frameCount: true }).extend({ frameIds: array(string()).max(2e4).readonly() });
44305
+ /**
44306
+ * Live corpus criteria for plan/start (design §5.2). Default is complete-only.
44307
+ * Frame ids are resolved at plan/start — never a frozen version id.
44308
+ */
44309
+ var TrainingCorpusSelectionSchema = object({
44310
+ collectionIds: array(string()).min(1),
44311
+ /** Default complete-only for v1 */
44312
+ workState: _enum([
44313
+ "complete",
44314
+ "annotated_or_complete",
44315
+ "any_annotated"
44316
+ ]).default("complete")
44317
+ });
44224
44318
  /** A base model a detector job can fine-tune, and the baseline it is judged against. */
44225
44319
  var TrainingBaseModelSchema = object({
44226
44320
  modelId: string(),
@@ -44238,9 +44332,13 @@ var TrainingPresetSchema = _enum([
44238
44332
  "thorough"
44239
44333
  ]);
44240
44334
  var TrainingJobRequestSchema = object({
44241
- datasetVersionId: string().min(1),
44242
- /** The `training-provider` addon that runs it. */
44243
- addonId: string().min(1),
44335
+ /** Live collection + work-state criteria; resolved at plan/start. */
44336
+ selection: TrainingCorpusSelectionSchema,
44337
+ /**
44338
+ * The provider **entry** that runs it (credentials + defaults).
44339
+ * Resolve to an owning addon via `training-provider.describe` / `listEntries`.
44340
+ */
44341
+ entryId: string().min(1),
44244
44342
  gpuType: string().min(1),
44245
44343
  region: string(),
44246
44344
  baseModelId: string().min(1),
@@ -44299,6 +44397,7 @@ var TrainingJobPlanSchema = object({
44299
44397
  * result lives after the operator acted on it.
44300
44398
  */
44301
44399
  var TrainingJobStateSchema = _enum([
44400
+ "queued",
44302
44401
  "uploading",
44303
44402
  "submitted",
44304
44403
  "starting",
@@ -44352,6 +44451,11 @@ var TrainingJobSchema = object({
44352
44451
  createdAt: number(),
44353
44452
  updatedAt: number(),
44354
44453
  state: TrainingJobStateSchema,
44454
+ /**
44455
+ * Shared by every job enqueued together via `startJobBatch`.
44456
+ * `null` for a lone `startJob`. The engine advances queued siblings by this id.
44457
+ */
44458
+ batchId: string().nullable().default(null),
44355
44459
  stage: TrainingStageSchema.nullable(),
44356
44460
  failure: object({
44357
44461
  reason: TrainingFailureReasonSchema,
@@ -44363,6 +44467,12 @@ var TrainingJobSchema = object({
44363
44467
  maxRuntimeSec: number().int().positive(),
44364
44468
  trainer: TrainerSourceRefSchema,
44365
44469
  datasetLayout: RetrainExportLayoutSchema,
44470
+ /** Frame count snapshotted when the job started (audit; equals `frameIds.length`). */
44471
+ frameCount: number().int().nonnegative(),
44472
+ /** Resolved frame ids at start — the archive ships exactly these. */
44473
+ frameIds: array(string()).max(2e4).readonly(),
44474
+ /** Hash of what those frames taught at start (trainer `dataset.annotationHash`). */
44475
+ annotationHash: string(),
44366
44476
  dataset: object({
44367
44477
  bytes: number().int(),
44368
44478
  sha256: string(),
@@ -44404,13 +44514,7 @@ var TrainingJobSchema = object({
44404
44514
  canary: TrainingCanarySchema.nullable()
44405
44515
  });
44406
44516
  var IdInput = object({ id: string().min(1) });
44407
- method(TrainingDatasetVersionRowSchema, object({ stored: boolean() }), {
44408
- kind: "mutation",
44409
- auth: "admin"
44410
- }), method(IdInput, TrainingDatasetVersionRowSchema.nullable(), { auth: "admin" }), method(object({}), array(RetrainDatasetVersionSchema).readonly(), { auth: "admin" }), method(object({ name: string() }), object({ id: string().nullable() }), { auth: "admin" }), method(IdInput, object({ removed: boolean() }), {
44411
- kind: "mutation",
44412
- auth: "admin"
44413
- }), method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" }), method(TrainingJobRequestSchema, TrainingJobPlanSchema, {
44517
+ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" }), method(TrainingJobRequestSchema, TrainingJobPlanSchema, {
44414
44518
  auth: "admin",
44415
44519
  timeoutMs: 6e4
44416
44520
  }), method(TrainingJobRequestSchema.extend({
@@ -44429,6 +44533,24 @@ method(TrainingDatasetVersionRowSchema, object({ stored: boolean() }), {
44429
44533
  kind: "mutation",
44430
44534
  auth: "admin",
44431
44535
  timeoutMs: 12e4
44536
+ }), method(TrainingJobRequestSchema.omit({ baseModelId: true }).extend({
44537
+ baseModelIds: array(string().min(1)).min(1),
44538
+ name: string().min(1).max(120),
44539
+ maxCostUsd: number().positive(),
44540
+ maxRuntimeSec: number().int().positive(),
44541
+ idempotencyKey: string().min(8).max(80)
44542
+ }), discriminatedUnion("kind", [object({
44543
+ kind: literal("started"),
44544
+ batchId: string(),
44545
+ jobs: array(TrainingJobSchema).min(1).readonly()
44546
+ }), object({
44547
+ kind: literal("refused"),
44548
+ reason: TrainingRefusalReasonSchema,
44549
+ detail: string()
44550
+ })]), {
44551
+ kind: "mutation",
44552
+ auth: "admin",
44553
+ timeoutMs: 12e4
44432
44554
  }), method(object({}), array(TrainingJobSchema).readonly(), { auth: "admin" }), method(IdInput, TrainingJobSchema.nullable(), { auth: "admin" }), method(IdInput, TrainingJobSchema, {
44433
44555
  kind: "mutation",
44434
44556
  auth: "admin",
@@ -48692,12 +48814,6 @@ Object.freeze({
48692
48814
  addonId: null,
48693
48815
  access: "create"
48694
48816
  },
48695
- "pipelineAnalytics.createRetrainDatasetVersion": {
48696
- capName: "pipeline-analytics",
48697
- capScope: "device",
48698
- addonId: null,
48699
- access: "create"
48700
- },
48701
48817
  "pipelineAnalytics.deleteDeviceEvents": {
48702
48818
  capName: "pipeline-analytics",
48703
48819
  capScope: "device",
@@ -48710,12 +48826,6 @@ Object.freeze({
48710
48826
  addonId: null,
48711
48827
  access: "delete"
48712
48828
  },
48713
- "pipelineAnalytics.deleteRetrainDatasetVersion": {
48714
- capName: "pipeline-analytics",
48715
- capScope: "device",
48716
- addonId: null,
48717
- access: "delete"
48718
- },
48719
48829
  "pipelineAnalytics.deleteTracks": {
48720
48830
  capName: "pipeline-analytics",
48721
48831
  capScope: "device",
@@ -48818,6 +48928,12 @@ Object.freeze({
48818
48928
  addonId: null,
48819
48929
  access: "view"
48820
48930
  },
48931
+ "pipelineAnalytics.getRetrainCorpusKpi": {
48932
+ capName: "pipeline-analytics",
48933
+ capScope: "device",
48934
+ addonId: null,
48935
+ access: "view"
48936
+ },
48821
48937
  "pipelineAnalytics.getRetrainExportUrl": {
48822
48938
  capName: "pipeline-analytics",
48823
48939
  capScope: "device",
@@ -48938,7 +49054,7 @@ Object.freeze({
48938
49054
  addonId: null,
48939
49055
  access: "view"
48940
49056
  },
48941
- "pipelineAnalytics.listRetrainDatasetVersions": {
49057
+ "pipelineAnalytics.listRetrainCorpusPage": {
48942
49058
  capName: "pipeline-analytics",
48943
49059
  capScope: "device",
48944
49060
  addonId: null,
@@ -48992,12 +49108,6 @@ Object.freeze({
48992
49108
  addonId: null,
48993
49109
  access: "create"
48994
49110
  },
48995
- "pipelineAnalytics.previewRetrainDataset": {
48996
- capName: "pipeline-analytics",
48997
- capScope: "device",
48998
- addonId: null,
48999
- access: "view"
49000
- },
49001
49111
  "pipelineAnalytics.proposeRetrainAnnotations": {
49002
49112
  capName: "pipeline-analytics",
49003
49113
  capScope: "device",
@@ -49076,6 +49186,12 @@ Object.freeze({
49076
49186
  addonId: null,
49077
49187
  access: "create"
49078
49188
  },
49189
+ "pipelineAnalytics.resolveRetrainTrainingCorpus": {
49190
+ capName: "pipeline-analytics",
49191
+ capScope: "device",
49192
+ addonId: null,
49193
+ access: "view"
49194
+ },
49079
49195
  "pipelineAnalytics.restageRetrainTrack": {
49080
49196
  capName: "pipeline-analytics",
49081
49197
  capScope: "device",
@@ -49136,12 +49252,6 @@ Object.freeze({
49136
49252
  addonId: null,
49137
49253
  access: "create"
49138
49254
  },
49139
- "pipelineAnalytics.verifyRetrainDatasetVersion": {
49140
- capName: "pipeline-analytics",
49141
- capScope: "device",
49142
- addonId: null,
49143
- access: "view"
49144
- },
49145
49255
  "pipelineAnalytics.wipeAllAnalytics": {
49146
49256
  capName: "pipeline-analytics",
49147
49257
  capScope: "device",
@@ -51536,18 +51646,6 @@ Object.freeze({
51536
51646
  addonId: null,
51537
51647
  access: "create"
51538
51648
  },
51539
- "training.findDatasetVersionIdByName": {
51540
- capName: "training",
51541
- capScope: "system",
51542
- addonId: null,
51543
- access: "view"
51544
- },
51545
- "training.getDatasetVersion": {
51546
- capName: "training",
51547
- capScope: "system",
51548
- addonId: null,
51549
- access: "view"
51550
- },
51551
51649
  "training.getJob": {
51552
51650
  capName: "training",
51553
51651
  capScope: "system",
@@ -51566,12 +51664,6 @@ Object.freeze({
51566
51664
  addonId: null,
51567
51665
  access: "view"
51568
51666
  },
51569
- "training.listDatasetVersions": {
51570
- capName: "training",
51571
- capScope: "system",
51572
- addonId: null,
51573
- access: "view"
51574
- },
51575
51667
  "training.listJobs": {
51576
51668
  capName: "training",
51577
51669
  capScope: "system",
@@ -51584,54 +51676,66 @@ Object.freeze({
51584
51676
  addonId: null,
51585
51677
  access: "view"
51586
51678
  },
51587
- "training.putDatasetVersion": {
51679
+ "training.registerResult": {
51588
51680
  capName: "training",
51589
51681
  capScope: "system",
51590
51682
  addonId: null,
51591
51683
  access: "create"
51592
51684
  },
51593
- "training.registerResult": {
51685
+ "training.rollbackCanary": {
51594
51686
  capName: "training",
51595
51687
  capScope: "system",
51596
51688
  addonId: null,
51597
51689
  access: "create"
51598
51690
  },
51599
- "training.removeDatasetVersion": {
51691
+ "training.startJob": {
51600
51692
  capName: "training",
51601
51693
  capScope: "system",
51602
51694
  addonId: null,
51603
- access: "delete"
51695
+ access: "create"
51604
51696
  },
51605
- "training.rollbackCanary": {
51697
+ "training.startJobBatch": {
51606
51698
  capName: "training",
51607
51699
  capScope: "system",
51608
51700
  addonId: null,
51609
51701
  access: "create"
51610
51702
  },
51611
- "training.startJob": {
51612
- capName: "training",
51703
+ "trainingProvider.cancelJob": {
51704
+ capName: "training-provider",
51613
51705
  capScope: "system",
51614
51706
  addonId: null,
51615
51707
  access: "create"
51616
51708
  },
51617
- "trainingProvider.cancelJob": {
51709
+ "trainingProvider.cleanupJob": {
51618
51710
  capName: "training-provider",
51619
51711
  capScope: "system",
51620
51712
  addonId: null,
51621
51713
  access: "create"
51622
51714
  },
51623
- "trainingProvider.cleanupJob": {
51715
+ "trainingProvider.createEntry": {
51624
51716
  capName: "training-provider",
51625
51717
  capScope: "system",
51626
51718
  addonId: null,
51627
51719
  access: "create"
51628
51720
  },
51721
+ "trainingProvider.deleteEntry": {
51722
+ capName: "training-provider",
51723
+ capScope: "system",
51724
+ addonId: null,
51725
+ access: "delete"
51726
+ },
51629
51727
  "trainingProvider.describe": {
51630
51728
  capName: "training-provider",
51631
51729
  capScope: "system",
51632
51730
  addonId: null,
51633
51731
  access: "view"
51634
51732
  },
51733
+ "trainingProvider.describeTypes": {
51734
+ capName: "training-provider",
51735
+ capScope: "system",
51736
+ addonId: null,
51737
+ access: "view"
51738
+ },
51635
51739
  "trainingProvider.estimateJob": {
51636
51740
  capName: "training-provider",
51637
51741
  capScope: "system",
@@ -51644,6 +51748,12 @@ Object.freeze({
51644
51748
  addonId: null,
51645
51749
  access: "view"
51646
51750
  },
51751
+ "trainingProvider.listEntries": {
51752
+ capName: "training-provider",
51753
+ capScope: "system",
51754
+ addonId: null,
51755
+ access: "view"
51756
+ },
51647
51757
  "trainingProvider.listJobEvents": {
51648
51758
  capName: "training-provider",
51649
51759
  capScope: "system",
@@ -55100,6 +55210,11 @@ Object.freeze({
55100
55210
  form: "array",
55101
55211
  optional: false
55102
55212
  }],
55213
+ "pipelineAnalytics.listRetrainCorpusPage": [{
55214
+ name: "deviceIds",
55215
+ form: "array",
55216
+ optional: true
55217
+ }],
55103
55218
  "pipelineAnalytics.listRetrainStaging": [{
55104
55219
  name: "deviceIds",
55105
55220
  form: "array",
@@ -1,4 +1,4 @@
1
- import { jt as hfModelUrl } from "./dist-DFCl7PZV.mjs";
1
+ import { jt as hfModelUrl } from "./dist-DcgsYeMF.mjs";
2
2
  //#region src/detection-pipeline/registry/model-licenses.ts
3
3
  var COCO_DATA = {
4
4
  name: "COCO 2017",