@camstack/addon-pipeline 1.2.351 → 1.2.353
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/audio-analyzer/index.js +3 -3
- package/dist/audio-analyzer/index.mjs +3 -3
- package/dist/{custom-model-catalog-CPqbnIUh.js → custom-model-catalog-CcM0_qIN.js} +2 -2
- package/dist/{custom-model-catalog-DdHOXMKu.mjs → custom-model-catalog-DyxqA1u9.mjs} +2 -2
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-DFCl7PZV.mjs → dist-CaowKvfT.mjs} +247 -132
- package/dist/{dist-C2jSMJo_.js → dist-DRNpemKx.js} +247 -132
- package/dist/{model-catalogs-CVhIiNhe.js → model-catalogs-6-thMylQ.js} +1 -1
- package/dist/{model-catalogs-Cind8NmH.mjs → model-catalogs-CXYtFcrz.mjs} +1 -1
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-B7ZinEw5.js → node-CBk_VECq.js} +1 -1
- package/dist/{node-C12l0K5V.mjs → node-DMcXGPFt.mjs} +1 -1
- package/dist/pipeline-runner/index.js +47 -6
- package/dist/pipeline-runner/index.mjs +47 -6
- package/dist/{process-memory-3F1cP1ou.mjs → process-memory-BN5nJ58L.mjs} +1 -1
- package/dist/{process-memory-C1s8YIw4.js → process-memory-DfNOKqHq.js} +1 -1
- package/dist/recorder/index.js +18 -3
- package/dist/recorder/index.mjs +18 -3
- package/dist/{segment-demux-js-B2IxTWms.js → segment-demux-js-CHAWQeGH.js} +1 -1
- package/dist/{segment-demux-js-7l4LsdU4.mjs → segment-demux-js-Doi8WoXW.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BgC3mSLA.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-TaqoDThV.mjs} +2 -2
- 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
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Crceu1LP.mjs +26 -0
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-DfOhCBj-.mjs → hostInit-Cjjoqzsi.mjs} +2 -2
- package/dist/stream-broker/index.js +3 -3
- package/dist/stream-broker/index.mjs +3 -3
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- 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
- 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-
|
|
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.
|
|
27218
|
-
*
|
|
27219
|
-
*
|
|
27220
|
-
*
|
|
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
|
-
/**
|
|
27228
|
-
|
|
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
|
-
|
|
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
|
-
|
|
27448
|
-
|
|
27449
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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({
|
|
@@ -35243,7 +35291,7 @@ var CustomActionInputSchema = object({
|
|
|
35243
35291
|
action: string().min(1),
|
|
35244
35292
|
input: unknown()
|
|
35245
35293
|
});
|
|
35246
|
-
method(
|
|
35294
|
+
method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSchema).readonly()), method(object({
|
|
35247
35295
|
addonId: string(),
|
|
35248
35296
|
limit: number().min(1).max(500).default(100),
|
|
35249
35297
|
level: LogLevelSchema$2.optional()
|
|
@@ -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
|
|
44018
|
-
*
|
|
44019
|
-
*
|
|
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-
|
|
44044
|
-
* live
|
|
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
|
-
|
|
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
|
-
|
|
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({
|
|
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
|
-
|
|
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({
|
|
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
|
-
/**
|
|
44223
|
-
|
|
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
|
-
|
|
44242
|
-
|
|
44243
|
-
|
|
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(
|
|
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.
|
|
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.
|
|
51679
|
+
"training.registerResult": {
|
|
51588
51680
|
capName: "training",
|
|
51589
51681
|
capScope: "system",
|
|
51590
51682
|
addonId: null,
|
|
51591
51683
|
access: "create"
|
|
51592
51684
|
},
|
|
51593
|
-
"training.
|
|
51685
|
+
"training.rollbackCanary": {
|
|
51594
51686
|
capName: "training",
|
|
51595
51687
|
capScope: "system",
|
|
51596
51688
|
addonId: null,
|
|
51597
51689
|
access: "create"
|
|
51598
51690
|
},
|
|
51599
|
-
"training.
|
|
51691
|
+
"training.startJob": {
|
|
51600
51692
|
capName: "training",
|
|
51601
51693
|
capScope: "system",
|
|
51602
51694
|
addonId: null,
|
|
51603
|
-
access: "
|
|
51695
|
+
access: "create"
|
|
51604
51696
|
},
|
|
51605
|
-
"training.
|
|
51697
|
+
"training.startJobBatch": {
|
|
51606
51698
|
capName: "training",
|
|
51607
51699
|
capScope: "system",
|
|
51608
51700
|
addonId: null,
|
|
51609
51701
|
access: "create"
|
|
51610
51702
|
},
|
|
51611
|
-
"
|
|
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.
|
|
51709
|
+
"trainingProvider.cleanupJob": {
|
|
51618
51710
|
capName: "training-provider",
|
|
51619
51711
|
capScope: "system",
|
|
51620
51712
|
addonId: null,
|
|
51621
51713
|
access: "create"
|
|
51622
51714
|
},
|
|
51623
|
-
"trainingProvider.
|
|
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",
|