@camstack/addon-agent-ui 1.2.202 → 1.2.204

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.
package/dist/addon.js CHANGED
@@ -5378,7 +5378,7 @@ var ZodIssueCode = {
5378
5378
  var ZodFirstPartyTypeKind;
5379
5379
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5380
5380
  //#endregion
5381
- //#region ../types/dist/sleep-r3RWkGVx.mjs
5381
+ //#region ../types/dist/sleep-CI0n5D44.mjs
5382
5382
  /**
5383
5383
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5384
5384
  * window to float samples (D455).
@@ -9325,6 +9325,16 @@ var CompositionSchema = object({
9325
9325
  seen.add(feature.cap);
9326
9326
  });
9327
9327
  });
9328
+ var NodeColorIdSchema = _enum([
9329
+ "node-a",
9330
+ "node-b",
9331
+ "node-c",
9332
+ "node-d",
9333
+ "node-e",
9334
+ "node-f",
9335
+ "node-g",
9336
+ "node-h"
9337
+ ]);
9328
9338
  new Set([
9329
9339
  "track",
9330
9340
  "face",
@@ -23884,24 +23894,69 @@ var RetrainFrameListSchema = object({
23884
23894
  /** What the page pre-selects — the native key frame when one survives. */
23885
23895
  autoPickMediaId: number().int().optional()
23886
23896
  });
23897
+ /** Exclusive partition of a corpus copy's annotation progress (design §4.2). */
23898
+ var RetrainFrameWorkStateSchema = _enum([
23899
+ "unannotated",
23900
+ "annotated",
23901
+ "complete"
23902
+ ]);
23903
+ /**
23904
+ * Filters for paginated corpus list, KPI, and matching export (design §4.4).
23905
+ * Every narrowing field is ANDed; omitted fields impose no constraint.
23906
+ */
23907
+ var RetrainCorpusFilterSchema = object({
23908
+ workState: RetrainFrameWorkStateSchema.optional(),
23909
+ deviceIds: array(number()).max(500).optional(),
23910
+ /** When set, only frames in this named collection. */
23911
+ collectionId: string().optional(),
23912
+ /** Frames that carry at least one saved annotation in one of these classes. */
23913
+ classes: array(RetrainMacroClassSchema).optional(),
23914
+ page: number().int().positive().default(1),
23915
+ pageSize: number().int().positive().max(100).default(50)
23916
+ });
23917
+ var RetrainCorpusPageSchema = object({
23918
+ frames: array(RetrainFrameSchema.extend({ workState: RetrainFrameWorkStateSchema })).readonly(),
23919
+ total: number().int().nonnegative(),
23920
+ page: number().int().positive(),
23921
+ pageSize: number().int().positive()
23922
+ });
23923
+ var RetrainCorpusKpiCameraRowSchema = object({
23924
+ deviceId: number(),
23925
+ unannotated: number().int().nonnegative(),
23926
+ annotated: number().int().nonnegative(),
23927
+ complete: number().int().nonnegative(),
23928
+ /** This camera's `complete` count divided by corpus `total`, in `[0,1]`.
23929
+ * `null` when the corpus is empty (no ratio). */
23930
+ pctOfCorpus: number().min(0).max(1).nullable()
23931
+ });
23932
+ var RetrainCorpusKpiSchema = object({
23933
+ total: number().int().nonnegative(),
23934
+ unannotated: number().int().nonnegative(),
23935
+ annotated: number().int().nonnegative(),
23936
+ complete: number().int().nonnegative(),
23937
+ cameras: array(RetrainCorpusKpiCameraRowSchema).readonly()
23938
+ });
23887
23939
  /**
23888
23940
  * Which frames an annotated export carries. Every field narrows; an empty
23889
- * filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
23890
- * list owned by whoever trains (the training orchestrator), so `frameIds` is
23891
- * the primitive a version export uses; `batchId` re-selects what an earlier
23892
- * export carried (`exportedInBatch`).
23941
+ * filter is every annotated copy. `frameIds` is the primitive a job or
23942
+ * download uses; `batchId` re-selects what an earlier export carried
23943
+ * (`exportedInBatch`). Frozen dataset versions were removed — live selection
23944
+ * resolves to `frameIds` at plan/start.
23893
23945
  */
23894
23946
  var RetrainExportFilterSchema = object({
23895
23947
  deviceIds: array(number()).optional(),
23896
23948
  frameIds: array(string()).max(2e4).optional(),
23897
23949
  /** Only frames in at least one of these named collections. */
23898
23950
  collectionIds: array(string()).max(200).optional(),
23899
- /** Exactly the frames of this dataset version (and its completeOnly). An
23900
- * unknown id selects nothing. */
23901
- datasetVersionId: string().optional(),
23951
+ /** Single collection (Frames filter bar). ANDed with `collectionIds` when both set. */
23952
+ collectionId: string().optional(),
23902
23953
  batchId: string().optional(),
23903
23954
  /** Only frames the operator marked complete (all subjects boxed). */
23904
- completeOnly: boolean().optional()
23955
+ completeOnly: boolean().optional(),
23956
+ /** Exclusive work-state partition (`workStateOf`); same as the corpus list. */
23957
+ workState: RetrainFrameWorkStateSchema.optional(),
23958
+ /** Frames with at least one saved annotation in one of these classes. */
23959
+ classes: array(RetrainMacroClassSchema).optional()
23905
23960
  });
23906
23961
  /**
23907
23962
  * `frames`: the full frame copies, boxes in `annotations.json`.
@@ -24101,8 +24156,7 @@ var RetrainDatasetStatsSchema = object({
24101
24156
  completeFrames: number().int()
24102
24157
  })).readonly()
24103
24158
  });
24104
- /** An immutable dataset version, without its frame list. */
24105
- var RetrainDatasetVersionSchema = object({
24159
+ object({
24106
24160
  id: string(),
24107
24161
  name: string(),
24108
24162
  createdAt: number(),
@@ -24110,22 +24164,33 @@ var RetrainDatasetVersionSchema = object({
24110
24164
  layout: RetrainExportLayoutSchema,
24111
24165
  completeOnly: boolean(),
24112
24166
  frameCount: number().int(),
24113
- /** sha256 of what the frames taught when the version was frozen. */
24114
24167
  annotationHash: string(),
24115
- /** The export manifest schema the version was cut under. */
24116
24168
  manifestSchema: string(),
24117
24169
  stats: RetrainDatasetStatsSchema
24118
24170
  });
24119
- var CreateRetrainDatasetVersionResultSchema = discriminatedUnion("kind", [object({
24120
- kind: literal("created"),
24121
- version: RetrainDatasetVersionSchema
24171
+ /**
24172
+ * Live training corpus criteria — same shape as `TrainingCorpusSelection` on
24173
+ * the training cap. Resolved here so plan/start and the annotated export share
24174
+ * one definition of "the frames" (`buildRetrainExportPlan`).
24175
+ */
24176
+ var RetrainTrainingCorpusSelectionSchema = object({
24177
+ collectionIds: array(string()).min(1),
24178
+ workState: _enum([
24179
+ "complete",
24180
+ "annotated_or_complete",
24181
+ "any_annotated"
24182
+ ]).default("complete")
24183
+ });
24184
+ var RetrainTrainingCorpusResolveResultSchema = discriminatedUnion("kind", [object({
24185
+ kind: literal("resolved"),
24186
+ frameIds: array(string()).max(2e4).readonly(),
24187
+ stats: RetrainDatasetStatsSchema,
24188
+ annotationHash: string(),
24189
+ layout: RetrainExportLayoutSchema
24122
24190
  }), object({
24123
24191
  kind: literal("refused"),
24124
- reason: _enum([
24125
- "empty-name",
24126
- "duplicate-name",
24127
- "no-frames"
24128
- ])
24192
+ reason: _enum(["unknown-collection", "no-frames"]),
24193
+ detail: string()
24129
24194
  })]);
24130
24195
  /** The outcome of a lifecycle move owned by the retrain page. */
24131
24196
  var RetrainTransitionResultSchema = object({
@@ -24832,6 +24897,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
24832
24897
  }), array(RetrainTrackSchema).readonly(), {
24833
24898
  kind: "query",
24834
24899
  auth: "admin"
24900
+ }), method(RetrainCorpusFilterSchema, RetrainCorpusPageSchema, {
24901
+ kind: "query",
24902
+ auth: "admin"
24903
+ }), method(object({}), RetrainCorpusKpiSchema, {
24904
+ kind: "query",
24905
+ auth: "admin"
24835
24906
  }), method(object({ trackId: string() }), RetrainFrameListSchema, {
24836
24907
  kind: "query",
24837
24908
  auth: "admin"
@@ -24927,36 +24998,6 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
24927
24998
  kind: "mutation",
24928
24999
  auth: "admin",
24929
25000
  timeoutMs: 12e4
24930
- }), method(object({
24931
- selection: RetrainDatasetSelectionSchema,
24932
- completeOnly: boolean().optional()
24933
- }), RetrainDatasetStatsSchema, {
24934
- kind: "query",
24935
- auth: "admin"
24936
- }), method(object({
24937
- name: string().max(120),
24938
- selection: RetrainDatasetSelectionSchema,
24939
- layout: RetrainExportLayoutSchema,
24940
- completeOnly: boolean()
24941
- }), CreateRetrainDatasetVersionResultSchema, {
24942
- kind: "mutation",
24943
- auth: "admin",
24944
- timeoutMs: 12e4
24945
- }), method(object({}), array(RetrainDatasetVersionSchema).readonly(), {
24946
- kind: "query",
24947
- auth: "admin"
24948
- }), method(object({ id: string() }), object({ deleted: boolean() }), {
24949
- kind: "mutation",
24950
- auth: "admin"
24951
- }), method(object({ id: string() }), object({
24952
- found: boolean(),
24953
- annotationHash: string(),
24954
- matches: boolean(),
24955
- missingFrames: number().int()
24956
- }), {
24957
- kind: "query",
24958
- auth: "admin",
24959
- timeoutMs: 12e4
24960
25001
  }), method(object({}), array(RetrainAssistProfileSchema).readonly(), {
24961
25002
  kind: "query",
24962
25003
  auth: "admin"
@@ -24983,6 +25024,10 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
24983
25024
  }), method(object({}), array(RetrainCollectionSchema).readonly(), {
24984
25025
  kind: "query",
24985
25026
  auth: "admin"
25027
+ }), method(RetrainTrainingCorpusSelectionSchema, RetrainTrainingCorpusResolveResultSchema, {
25028
+ kind: "query",
25029
+ auth: "admin",
25030
+ timeoutMs: 6e4
24986
25031
  }), method(object({
24987
25032
  id: string(),
24988
25033
  name: string().max(120)
@@ -27496,6 +27541,8 @@ var AgentPipelineSettingsSchema = object({
27496
27541
  * address is wrong (multi-homed host, NAT, custom interface).
27497
27542
  */
27498
27543
  reachableHost: string().optional(),
27544
+ /** Hub-persisted UI colour (`--color-node-*` theme tokens). */
27545
+ color: NodeColorIdSchema.optional(),
27499
27546
  /**
27500
27547
  * Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
27501
27548
  * weight, steps}. Absent / all-disabled ⇒ the node's single default
@@ -28045,8 +28092,9 @@ method(object({
28045
28092
  auth: "admin"
28046
28093
  }), method(object({
28047
28094
  agentNodeId: string(),
28048
- reachableHost: string().nullable()
28049
- }), object({ success: literal(true) }), {
28095
+ reachableHost: string().nullable().optional(),
28096
+ color: NodeColorIdSchema.nullable().optional()
28097
+ }).refine((v) => v.reachableHost !== void 0 || v.color !== void 0, { message: "reachableHost or color required" }), object({ success: literal(true) }), {
28050
28098
  kind: "mutation",
28051
28099
  auth: "admin"
28052
28100
  }), method(object({
@@ -39262,9 +39310,11 @@ DeviceType.Camera, method(object({
39262
39310
  * once is what makes a second provider (RunPod, a local NVIDIA node) a new
39263
39311
  * manifest entry and nothing else.
39264
39312
  *
39265
- * Collection, routed by the `addonId` in every single-row input (the `llm` /
39266
- * `notification-output` posture); `describe` concat-fans across providers.
39267
- * Every method is `admin`: these spend money.
39313
+ * Collection of provider **types** (addons). Each addon owns zero or more
39314
+ * **entries** (credentials + defaults). Concat-fans: `describe`,
39315
+ * `describeTypes`, `listEntries`, `listJobs`. Single-row work is keyed by
39316
+ * `entryId`; callers also pass the owning `addonId` as the collection
39317
+ * selector (broker posture). Every method is `admin`: these spend money.
39268
39318
  *
39269
39319
  * Every cloud object a provider creates is tagged with the orchestrator's
39270
39320
  * `jobKey`, so a retried submit finds the job it already started instead of
@@ -39288,8 +39338,8 @@ var TrainingRegionOptionSchema = object({
39288
39338
  priceMultiplier: number().positive()
39289
39339
  });
39290
39340
  /**
39291
- * The provider's per-account settings, as the orchestrator reads them. They
39292
- * live in the PROVIDER addon's settings (operator decision 2026-10-08: they
39341
+ * The provider's per-entry settings, as the orchestrator reads them. They
39342
+ * live on the PROVIDER addon's entry (operator decision 2026-10-08: they
39293
39343
  * depend on the user's account), never hard-coded in the orchestrator.
39294
39344
  */
39295
39345
  var TrainingProviderDefaultsSchema = object({
@@ -39300,9 +39350,32 @@ var TrainingProviderDefaultsSchema = object({
39300
39350
  /** Hours a FAILED job's cloud dataset is kept for debugging; 0 = delete at once. */
39301
39351
  failedDatasetGraceHours: number().nonnegative()
39302
39352
  });
39353
+ /** One creatable provider type, for the Add-entry dialog. */
39354
+ var TrainingProviderTypeSchema = object({
39355
+ typeId: string(),
39356
+ label: string(),
39357
+ /** Path under the addon package (e.g. `assets/training-modal/icon.svg`). */
39358
+ iconAsset: string(),
39359
+ /** Owning `training-provider` addon — collection selector for createEntry. */
39360
+ addonId: string()
39361
+ });
39362
+ /** One configured account / workspace under a provider type. */
39363
+ var TrainingProviderEntrySchema = object({
39364
+ entryId: string(),
39365
+ typeId: string(),
39366
+ name: string(),
39367
+ addonId: string(),
39368
+ /** Credentials are present — never the values. */
39369
+ configured: boolean()
39370
+ });
39303
39371
  var TrainingProviderDescriptorSchema = object({
39304
39372
  addonId: string(),
39305
- /** `modal`, `runpod`, `fake`, … */
39373
+ entryId: string(),
39374
+ typeId: string(),
39375
+ /** Operator-chosen entry name. */
39376
+ name: string(),
39377
+ iconAsset: string(),
39378
+ /** `modal`, `runpod`, `fake`, … — same as typeId for current providers. */
39306
39379
  kind: string(),
39307
39380
  label: string(),
39308
39381
  gpuTypes: array(TrainingGpuOptionSchema).readonly(),
@@ -39366,20 +39439,30 @@ var TrainerSourceRefSchema = object({
39366
39439
  /** A commit sha (never a branch) — the job must be reproducible. */
39367
39440
  revision: string().regex(/^[0-9a-f]{7,64}$/)
39368
39441
  });
39442
+ /** Cloud job identity — route with the owning addon's `addonId` selector. */
39369
39443
  var JobRef = {
39370
- addonId: string(),
39444
+ entryId: string().min(1),
39371
39445
  jobKey: string().uuid()
39372
39446
  };
39373
39447
  var TrainingLogLineSchema = object({
39374
39448
  ts: number(),
39375
39449
  text: string()
39376
39450
  });
39377
- method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "admin" }), method(object({ addonId: string() }), TrainingCredentialCheckSchema, {
39451
+ method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "admin" }), method(object({}), array(TrainingProviderTypeSchema).readonly(), { auth: "admin" }), method(object({}), array(TrainingProviderEntrySchema).readonly(), { auth: "admin" }), method(object({
39452
+ typeId: string().min(1),
39453
+ name: string().min(1)
39454
+ }), object({ entryId: string() }), {
39455
+ kind: "mutation",
39456
+ auth: "admin"
39457
+ }), method(object({ entryId: string().min(1) }), object({ ok: literal(true) }), {
39458
+ kind: "mutation",
39459
+ auth: "admin"
39460
+ }), method(object({ entryId: string().min(1) }), TrainingCredentialCheckSchema, {
39378
39461
  kind: "mutation",
39379
39462
  auth: "admin",
39380
39463
  timeoutMs: 3e4
39381
39464
  }), method(object({
39382
- addonId: string(),
39465
+ entryId: string().min(1),
39383
39466
  gpuType: string(),
39384
39467
  region: string(),
39385
39468
  datasetBytes: number().int().nonnegative(),
@@ -39445,7 +39528,7 @@ method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "
39445
39528
  kind: "mutation",
39446
39529
  auth: "admin",
39447
39530
  timeoutMs: 5 * 6e4
39448
- }), method(object({ addonId: string() }), array(ProviderJobStatusSchema).readonly(), {
39531
+ }), method(object({ entryId: string().min(1).optional() }), array(ProviderJobStatusSchema).readonly(), {
39449
39532
  auth: "admin",
39450
39533
  timeoutMs: 2 * 6e4
39451
39534
  });
@@ -39455,20 +39538,31 @@ method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "
39455
39538
  *
39456
39539
  * It owns what every provider must agree on, written once:
39457
39540
  *
39458
- * - **Dataset versions.** Taken over from pipeline-analytics (D796): the rows
39459
- * live here (D808); pipeline-analytics still CUTS a version (it owns the corpus and
39460
- * the export plan) and reaches this store through the five row methods
39461
- * below, so the Retrain page and the export did not change.
39462
39541
  * - **Jobs.** A persisted state machine, a reconcile loop against the
39463
39542
  * provider, a cost guard, a daily orphan sweep and the retention rules.
39464
39543
  * - **The return flow.** Verified artefacts → Model Studio
39465
39544
  * (`custom-model-registry.importModelBundle`) → canary on cameras →
39466
39545
  * rollback. Nothing is ever registered automatically.
39467
39546
  *
39547
+ * Plan/start takes a live {@link TrainingCorpusSelection} (collections +
39548
+ * work-state rule); frame ids are resolved via pipeline-analytics at that
39549
+ * moment and snapshotted on the job. No frozen dataset version.
39550
+ *
39468
39551
  * Every method is `admin`.
39469
39552
  */
39470
- /** A version WITH its frame list — what the export and a job read. */
39471
- var TrainingDatasetVersionRowSchema = RetrainDatasetVersionSchema.omit({ frameCount: true }).extend({ frameIds: array(string()).max(2e4).readonly() });
39553
+ /**
39554
+ * Live corpus criteria for plan/start (design §5.2). Default is complete-only.
39555
+ * Frame ids are resolved at plan/start — never a frozen version id.
39556
+ */
39557
+ var TrainingCorpusSelectionSchema = object({
39558
+ collectionIds: array(string()).min(1),
39559
+ /** Default complete-only for v1 */
39560
+ workState: _enum([
39561
+ "complete",
39562
+ "annotated_or_complete",
39563
+ "any_annotated"
39564
+ ]).default("complete")
39565
+ });
39472
39566
  /** A base model a detector job can fine-tune, and the baseline it is judged against. */
39473
39567
  var TrainingBaseModelSchema = object({
39474
39568
  modelId: string(),
@@ -39486,9 +39580,13 @@ var TrainingPresetSchema = _enum([
39486
39580
  "thorough"
39487
39581
  ]);
39488
39582
  var TrainingJobRequestSchema = object({
39489
- datasetVersionId: string().min(1),
39490
- /** The `training-provider` addon that runs it. */
39491
- addonId: string().min(1),
39583
+ /** Live collection + work-state criteria; resolved at plan/start. */
39584
+ selection: TrainingCorpusSelectionSchema,
39585
+ /**
39586
+ * The provider **entry** that runs it (credentials + defaults).
39587
+ * Resolve to an owning addon via `training-provider.describe` / `listEntries`.
39588
+ */
39589
+ entryId: string().min(1),
39492
39590
  gpuType: string().min(1),
39493
39591
  region: string(),
39494
39592
  baseModelId: string().min(1),
@@ -39547,6 +39645,7 @@ var TrainingJobPlanSchema = object({
39547
39645
  * result lives after the operator acted on it.
39548
39646
  */
39549
39647
  var TrainingJobStateSchema = _enum([
39648
+ "queued",
39550
39649
  "uploading",
39551
39650
  "submitted",
39552
39651
  "starting",
@@ -39600,6 +39699,11 @@ var TrainingJobSchema = object({
39600
39699
  createdAt: number(),
39601
39700
  updatedAt: number(),
39602
39701
  state: TrainingJobStateSchema,
39702
+ /**
39703
+ * Shared by every job enqueued together via `startJobBatch`.
39704
+ * `null` for a lone `startJob`. The engine advances queued siblings by this id.
39705
+ */
39706
+ batchId: string().nullable().default(null),
39603
39707
  stage: TrainingStageSchema.nullable(),
39604
39708
  failure: object({
39605
39709
  reason: TrainingFailureReasonSchema,
@@ -39611,6 +39715,12 @@ var TrainingJobSchema = object({
39611
39715
  maxRuntimeSec: number().int().positive(),
39612
39716
  trainer: TrainerSourceRefSchema,
39613
39717
  datasetLayout: RetrainExportLayoutSchema,
39718
+ /** Frame count snapshotted when the job started (audit; equals `frameIds.length`). */
39719
+ frameCount: number().int().nonnegative(),
39720
+ /** Resolved frame ids at start — the archive ships exactly these. */
39721
+ frameIds: array(string()).max(2e4).readonly(),
39722
+ /** Hash of what those frames taught at start (trainer `dataset.annotationHash`). */
39723
+ annotationHash: string(),
39614
39724
  dataset: object({
39615
39725
  bytes: number().int(),
39616
39726
  sha256: string(),
@@ -39652,13 +39762,7 @@ var TrainingJobSchema = object({
39652
39762
  canary: TrainingCanarySchema.nullable()
39653
39763
  });
39654
39764
  var IdInput = object({ id: string().min(1) });
39655
- method(TrainingDatasetVersionRowSchema, object({ stored: boolean() }), {
39656
- kind: "mutation",
39657
- auth: "admin"
39658
- }), 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() }), {
39659
- kind: "mutation",
39660
- auth: "admin"
39661
- }), method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" }), method(TrainingJobRequestSchema, TrainingJobPlanSchema, {
39765
+ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" }), method(TrainingJobRequestSchema, TrainingJobPlanSchema, {
39662
39766
  auth: "admin",
39663
39767
  timeoutMs: 6e4
39664
39768
  }), method(TrainingJobRequestSchema.extend({
@@ -39677,6 +39781,24 @@ method(TrainingDatasetVersionRowSchema, object({ stored: boolean() }), {
39677
39781
  kind: "mutation",
39678
39782
  auth: "admin",
39679
39783
  timeoutMs: 12e4
39784
+ }), method(TrainingJobRequestSchema.omit({ baseModelId: true }).extend({
39785
+ baseModelIds: array(string().min(1)).min(1),
39786
+ name: string().min(1).max(120),
39787
+ maxCostUsd: number().positive(),
39788
+ maxRuntimeSec: number().int().positive(),
39789
+ idempotencyKey: string().min(8).max(80)
39790
+ }), discriminatedUnion("kind", [object({
39791
+ kind: literal("started"),
39792
+ batchId: string(),
39793
+ jobs: array(TrainingJobSchema).min(1).readonly()
39794
+ }), object({
39795
+ kind: literal("refused"),
39796
+ reason: TrainingRefusalReasonSchema,
39797
+ detail: string()
39798
+ })]), {
39799
+ kind: "mutation",
39800
+ auth: "admin",
39801
+ timeoutMs: 12e4
39680
39802
  }), method(object({}), array(TrainingJobSchema).readonly(), { auth: "admin" }), method(IdInput, TrainingJobSchema.nullable(), { auth: "admin" }), method(IdInput, TrainingJobSchema, {
39681
39803
  kind: "mutation",
39682
39804
  auth: "admin",
@@ -43920,12 +44042,6 @@ Object.freeze({
43920
44042
  addonId: null,
43921
44043
  access: "create"
43922
44044
  },
43923
- "pipelineAnalytics.createRetrainDatasetVersion": {
43924
- capName: "pipeline-analytics",
43925
- capScope: "device",
43926
- addonId: null,
43927
- access: "create"
43928
- },
43929
44045
  "pipelineAnalytics.deleteDeviceEvents": {
43930
44046
  capName: "pipeline-analytics",
43931
44047
  capScope: "device",
@@ -43938,12 +44054,6 @@ Object.freeze({
43938
44054
  addonId: null,
43939
44055
  access: "delete"
43940
44056
  },
43941
- "pipelineAnalytics.deleteRetrainDatasetVersion": {
43942
- capName: "pipeline-analytics",
43943
- capScope: "device",
43944
- addonId: null,
43945
- access: "delete"
43946
- },
43947
44057
  "pipelineAnalytics.deleteTracks": {
43948
44058
  capName: "pipeline-analytics",
43949
44059
  capScope: "device",
@@ -44046,6 +44156,12 @@ Object.freeze({
44046
44156
  addonId: null,
44047
44157
  access: "view"
44048
44158
  },
44159
+ "pipelineAnalytics.getRetrainCorpusKpi": {
44160
+ capName: "pipeline-analytics",
44161
+ capScope: "device",
44162
+ addonId: null,
44163
+ access: "view"
44164
+ },
44049
44165
  "pipelineAnalytics.getRetrainExportUrl": {
44050
44166
  capName: "pipeline-analytics",
44051
44167
  capScope: "device",
@@ -44166,7 +44282,7 @@ Object.freeze({
44166
44282
  addonId: null,
44167
44283
  access: "view"
44168
44284
  },
44169
- "pipelineAnalytics.listRetrainDatasetVersions": {
44285
+ "pipelineAnalytics.listRetrainCorpusPage": {
44170
44286
  capName: "pipeline-analytics",
44171
44287
  capScope: "device",
44172
44288
  addonId: null,
@@ -44220,12 +44336,6 @@ Object.freeze({
44220
44336
  addonId: null,
44221
44337
  access: "create"
44222
44338
  },
44223
- "pipelineAnalytics.previewRetrainDataset": {
44224
- capName: "pipeline-analytics",
44225
- capScope: "device",
44226
- addonId: null,
44227
- access: "view"
44228
- },
44229
44339
  "pipelineAnalytics.proposeRetrainAnnotations": {
44230
44340
  capName: "pipeline-analytics",
44231
44341
  capScope: "device",
@@ -44304,6 +44414,12 @@ Object.freeze({
44304
44414
  addonId: null,
44305
44415
  access: "create"
44306
44416
  },
44417
+ "pipelineAnalytics.resolveRetrainTrainingCorpus": {
44418
+ capName: "pipeline-analytics",
44419
+ capScope: "device",
44420
+ addonId: null,
44421
+ access: "view"
44422
+ },
44307
44423
  "pipelineAnalytics.restageRetrainTrack": {
44308
44424
  capName: "pipeline-analytics",
44309
44425
  capScope: "device",
@@ -44364,12 +44480,6 @@ Object.freeze({
44364
44480
  addonId: null,
44365
44481
  access: "create"
44366
44482
  },
44367
- "pipelineAnalytics.verifyRetrainDatasetVersion": {
44368
- capName: "pipeline-analytics",
44369
- capScope: "device",
44370
- addonId: null,
44371
- access: "view"
44372
- },
44373
44483
  "pipelineAnalytics.wipeAllAnalytics": {
44374
44484
  capName: "pipeline-analytics",
44375
44485
  capScope: "device",
@@ -46764,18 +46874,6 @@ Object.freeze({
46764
46874
  addonId: null,
46765
46875
  access: "create"
46766
46876
  },
46767
- "training.findDatasetVersionIdByName": {
46768
- capName: "training",
46769
- capScope: "system",
46770
- addonId: null,
46771
- access: "view"
46772
- },
46773
- "training.getDatasetVersion": {
46774
- capName: "training",
46775
- capScope: "system",
46776
- addonId: null,
46777
- access: "view"
46778
- },
46779
46877
  "training.getJob": {
46780
46878
  capName: "training",
46781
46879
  capScope: "system",
@@ -46794,12 +46892,6 @@ Object.freeze({
46794
46892
  addonId: null,
46795
46893
  access: "view"
46796
46894
  },
46797
- "training.listDatasetVersions": {
46798
- capName: "training",
46799
- capScope: "system",
46800
- addonId: null,
46801
- access: "view"
46802
- },
46803
46895
  "training.listJobs": {
46804
46896
  capName: "training",
46805
46897
  capScope: "system",
@@ -46812,54 +46904,66 @@ Object.freeze({
46812
46904
  addonId: null,
46813
46905
  access: "view"
46814
46906
  },
46815
- "training.putDatasetVersion": {
46907
+ "training.registerResult": {
46816
46908
  capName: "training",
46817
46909
  capScope: "system",
46818
46910
  addonId: null,
46819
46911
  access: "create"
46820
46912
  },
46821
- "training.registerResult": {
46913
+ "training.rollbackCanary": {
46822
46914
  capName: "training",
46823
46915
  capScope: "system",
46824
46916
  addonId: null,
46825
46917
  access: "create"
46826
46918
  },
46827
- "training.removeDatasetVersion": {
46919
+ "training.startJob": {
46828
46920
  capName: "training",
46829
46921
  capScope: "system",
46830
46922
  addonId: null,
46831
- access: "delete"
46923
+ access: "create"
46832
46924
  },
46833
- "training.rollbackCanary": {
46925
+ "training.startJobBatch": {
46834
46926
  capName: "training",
46835
46927
  capScope: "system",
46836
46928
  addonId: null,
46837
46929
  access: "create"
46838
46930
  },
46839
- "training.startJob": {
46840
- capName: "training",
46931
+ "trainingProvider.cancelJob": {
46932
+ capName: "training-provider",
46841
46933
  capScope: "system",
46842
46934
  addonId: null,
46843
46935
  access: "create"
46844
46936
  },
46845
- "trainingProvider.cancelJob": {
46937
+ "trainingProvider.cleanupJob": {
46846
46938
  capName: "training-provider",
46847
46939
  capScope: "system",
46848
46940
  addonId: null,
46849
46941
  access: "create"
46850
46942
  },
46851
- "trainingProvider.cleanupJob": {
46943
+ "trainingProvider.createEntry": {
46852
46944
  capName: "training-provider",
46853
46945
  capScope: "system",
46854
46946
  addonId: null,
46855
46947
  access: "create"
46856
46948
  },
46949
+ "trainingProvider.deleteEntry": {
46950
+ capName: "training-provider",
46951
+ capScope: "system",
46952
+ addonId: null,
46953
+ access: "delete"
46954
+ },
46857
46955
  "trainingProvider.describe": {
46858
46956
  capName: "training-provider",
46859
46957
  capScope: "system",
46860
46958
  addonId: null,
46861
46959
  access: "view"
46862
46960
  },
46961
+ "trainingProvider.describeTypes": {
46962
+ capName: "training-provider",
46963
+ capScope: "system",
46964
+ addonId: null,
46965
+ access: "view"
46966
+ },
46863
46967
  "trainingProvider.estimateJob": {
46864
46968
  capName: "training-provider",
46865
46969
  capScope: "system",
@@ -46872,6 +46976,12 @@ Object.freeze({
46872
46976
  addonId: null,
46873
46977
  access: "view"
46874
46978
  },
46979
+ "trainingProvider.listEntries": {
46980
+ capName: "training-provider",
46981
+ capScope: "system",
46982
+ addonId: null,
46983
+ access: "view"
46984
+ },
46875
46985
  "trainingProvider.listJobEvents": {
46876
46986
  capName: "training-provider",
46877
46987
  capScope: "system",
@@ -50328,6 +50438,11 @@ Object.freeze({
50328
50438
  form: "array",
50329
50439
  optional: false
50330
50440
  }],
50441
+ "pipelineAnalytics.listRetrainCorpusPage": [{
50442
+ name: "deviceIds",
50443
+ form: "array",
50444
+ optional: true
50445
+ }],
50331
50446
  "pipelineAnalytics.listRetrainStaging": [{
50332
50447
  name: "deviceIds",
50333
50448
  form: "array",
@@ -52496,7 +52611,7 @@ var AgentUIAddon = class extends BaseAddon {
52496
52611
  capability: adminUiCapability,
52497
52612
  provider: {
52498
52613
  getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
52499
- getVersion: async () => ({ version: "1.2.202" })
52614
+ getVersion: async () => ({ version: "1.2.204" })
52500
52615
  }
52501
52616
  }];
52502
52617
  }