@camstack/addon-training 0.1.5 → 0.1.7
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/MaskShapeCanvas-Kfg9dl6B.mjs +686 -0
- package/dist/MotionZonesSettings-DKtYdHUO.mjs +292 -0
- package/dist/{PrivacyMaskSettings-BwYjIkQR.mjs → PrivacyMaskSettings-BvLUVz86.mjs} +45 -70
- package/dist/ReactKonva-DGuYUN0L.mjs +5416 -0
- package/dist/{SceneMonitorEditor-BBfow3Lm.mjs → SceneMonitorEditor-rFYGkGHV.mjs} +344 -344
- package/dist/_stub.js +25672 -10252
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-CGhkyuU-.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-B3xXUcaU.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C7dks3FG.mjs +26 -0
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-DpjirGmB.mjs +89 -0
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-CFCVuRAs.mjs +58 -0
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-BkvDudqY.mjs +62 -0
- package/dist/{_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-BT_wL8s3.mjs → _virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-DeDbF7NI.mjs} +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs +34 -0
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_2_dom__loadShare__.js-DAZkHxxU.mjs +45 -0
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-CHqN9NLt.mjs +34 -0
- package/dist/addon-training.css +1 -1
- package/dist/{dist-BiSFqfpy.js → dist-DVDBSrjw.js} +282 -147
- package/dist/{dist-B_79m03G.mjs → dist-Phot2UwD.mjs} +283 -142
- package/dist/grid-2x2-Bl3xw1w7.mjs +21 -0
- package/dist/{hostInit-BEPknhsh.mjs → hostInit-BAGO4XYA.mjs} +2 -2
- package/dist/index.js +100 -39
- package/dist/index.mjs +99 -38
- package/dist/lib-CVGFTwe0.mjs +7770 -0
- package/dist/orchestrator/training.addon.js +376 -222
- package/dist/orchestrator/training.addon.mjs +376 -222
- package/dist/{player-overlays-wE5IcDiI.mjs → player-overlays-BT-6fK9N.mjs} +29 -10
- package/dist/providers/modal/training-modal.addon.js +361 -155
- package/dist/providers/modal/training-modal.addon.mjs +364 -158
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-D17kMsm1.mjs → responsive-Dy5RAD1s.mjs} +42 -38
- package/dist/{scene-monitor-copy-LjlvhSRM.mjs → scene-monitor-copy-7HImRbA5.mjs} +4 -4
- package/dist/{square-JGDHhLlY.mjs → square-DoPBhbZN.mjs} +29 -4
- package/dist/{trash-2-zeFnLJvf.mjs → trash-2-BwunNgLf.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-C0RB_rkV.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-gU49KvnZ.mjs} +399 -390
- package/package.json +1 -1
- package/dist/MaskShapeCanvas-BokARvOj.mjs +0 -13806
- package/dist/MotionZonesSettings-aj085Nrn.mjs +0 -310
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BkKuzhOJ.mjs +0 -26
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CaB1jnkt.mjs +0 -25
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-B3rryujf.mjs +0 -25
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-nL4MGFRP.mjs +0 -26
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DDBEvLdo.mjs +0 -26
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_2_dom__loadShare__.js-i_pnGDxd.mjs +0 -25
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-gTIQrhKs.mjs +0 -25
|
@@ -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).
|
|
@@ -9306,6 +9306,16 @@ var CompositionSchema = object({
|
|
|
9306
9306
|
seen.add(feature.cap);
|
|
9307
9307
|
});
|
|
9308
9308
|
});
|
|
9309
|
+
var NodeColorIdSchema = _enum([
|
|
9310
|
+
"node-a",
|
|
9311
|
+
"node-b",
|
|
9312
|
+
"node-c",
|
|
9313
|
+
"node-d",
|
|
9314
|
+
"node-e",
|
|
9315
|
+
"node-f",
|
|
9316
|
+
"node-g",
|
|
9317
|
+
"node-h"
|
|
9318
|
+
]);
|
|
9309
9319
|
new Set([
|
|
9310
9320
|
"track",
|
|
9311
9321
|
"face",
|
|
@@ -23900,24 +23910,69 @@ var RetrainFrameListSchema = object({
|
|
|
23900
23910
|
/** What the page pre-selects — the native key frame when one survives. */
|
|
23901
23911
|
autoPickMediaId: number().int().optional()
|
|
23902
23912
|
});
|
|
23913
|
+
/** Exclusive partition of a corpus copy's annotation progress (design §4.2). */
|
|
23914
|
+
var RetrainFrameWorkStateSchema = _enum([
|
|
23915
|
+
"unannotated",
|
|
23916
|
+
"annotated",
|
|
23917
|
+
"complete"
|
|
23918
|
+
]);
|
|
23919
|
+
/**
|
|
23920
|
+
* Filters for paginated corpus list, KPI, and matching export (design §4.4).
|
|
23921
|
+
* Every narrowing field is ANDed; omitted fields impose no constraint.
|
|
23922
|
+
*/
|
|
23923
|
+
var RetrainCorpusFilterSchema = object({
|
|
23924
|
+
workState: RetrainFrameWorkStateSchema.optional(),
|
|
23925
|
+
deviceIds: array(number()).max(500).optional(),
|
|
23926
|
+
/** When set, only frames in this named collection. */
|
|
23927
|
+
collectionId: string().optional(),
|
|
23928
|
+
/** Frames that carry at least one saved annotation in one of these classes. */
|
|
23929
|
+
classes: array(RetrainMacroClassSchema).optional(),
|
|
23930
|
+
page: number().int().positive().default(1),
|
|
23931
|
+
pageSize: number().int().positive().max(100).default(50)
|
|
23932
|
+
});
|
|
23933
|
+
var RetrainCorpusPageSchema = object({
|
|
23934
|
+
frames: array(RetrainFrameSchema.extend({ workState: RetrainFrameWorkStateSchema })).readonly(),
|
|
23935
|
+
total: number().int().nonnegative(),
|
|
23936
|
+
page: number().int().positive(),
|
|
23937
|
+
pageSize: number().int().positive()
|
|
23938
|
+
});
|
|
23939
|
+
var RetrainCorpusKpiCameraRowSchema = object({
|
|
23940
|
+
deviceId: number(),
|
|
23941
|
+
unannotated: number().int().nonnegative(),
|
|
23942
|
+
annotated: number().int().nonnegative(),
|
|
23943
|
+
complete: number().int().nonnegative(),
|
|
23944
|
+
/** This camera's `complete` count divided by corpus `total`, in `[0,1]`.
|
|
23945
|
+
* `null` when the corpus is empty (no ratio). */
|
|
23946
|
+
pctOfCorpus: number().min(0).max(1).nullable()
|
|
23947
|
+
});
|
|
23948
|
+
var RetrainCorpusKpiSchema = object({
|
|
23949
|
+
total: number().int().nonnegative(),
|
|
23950
|
+
unannotated: number().int().nonnegative(),
|
|
23951
|
+
annotated: number().int().nonnegative(),
|
|
23952
|
+
complete: number().int().nonnegative(),
|
|
23953
|
+
cameras: array(RetrainCorpusKpiCameraRowSchema).readonly()
|
|
23954
|
+
});
|
|
23903
23955
|
/**
|
|
23904
23956
|
* Which frames an annotated export carries. Every field narrows; an empty
|
|
23905
|
-
* filter is every annotated copy.
|
|
23906
|
-
*
|
|
23907
|
-
*
|
|
23908
|
-
*
|
|
23957
|
+
* filter is every annotated copy. `frameIds` is the primitive a job or
|
|
23958
|
+
* download uses; `batchId` re-selects what an earlier export carried
|
|
23959
|
+
* (`exportedInBatch`). Frozen dataset versions were removed — live selection
|
|
23960
|
+
* resolves to `frameIds` at plan/start.
|
|
23909
23961
|
*/
|
|
23910
23962
|
var RetrainExportFilterSchema = object({
|
|
23911
23963
|
deviceIds: array(number()).optional(),
|
|
23912
23964
|
frameIds: array(string()).max(2e4).optional(),
|
|
23913
23965
|
/** Only frames in at least one of these named collections. */
|
|
23914
23966
|
collectionIds: array(string()).max(200).optional(),
|
|
23915
|
-
/**
|
|
23916
|
-
|
|
23917
|
-
datasetVersionId: string().optional(),
|
|
23967
|
+
/** Single collection (Frames filter bar). ANDed with `collectionIds` when both set. */
|
|
23968
|
+
collectionId: string().optional(),
|
|
23918
23969
|
batchId: string().optional(),
|
|
23919
23970
|
/** Only frames the operator marked complete (all subjects boxed). */
|
|
23920
|
-
completeOnly: boolean().optional()
|
|
23971
|
+
completeOnly: boolean().optional(),
|
|
23972
|
+
/** Exclusive work-state partition (`workStateOf`); same as the corpus list. */
|
|
23973
|
+
workState: RetrainFrameWorkStateSchema.optional(),
|
|
23974
|
+
/** Frames with at least one saved annotation in one of these classes. */
|
|
23975
|
+
classes: array(RetrainMacroClassSchema).optional()
|
|
23921
23976
|
});
|
|
23922
23977
|
/**
|
|
23923
23978
|
* `frames`: the full frame copies, boxes in `annotations.json`.
|
|
@@ -24117,8 +24172,7 @@ var RetrainDatasetStatsSchema = object({
|
|
|
24117
24172
|
completeFrames: number().int()
|
|
24118
24173
|
})).readonly()
|
|
24119
24174
|
});
|
|
24120
|
-
|
|
24121
|
-
var RetrainDatasetVersionSchema = object({
|
|
24175
|
+
object({
|
|
24122
24176
|
id: string(),
|
|
24123
24177
|
name: string(),
|
|
24124
24178
|
createdAt: number(),
|
|
@@ -24126,22 +24180,33 @@ var RetrainDatasetVersionSchema = object({
|
|
|
24126
24180
|
layout: RetrainExportLayoutSchema,
|
|
24127
24181
|
completeOnly: boolean(),
|
|
24128
24182
|
frameCount: number().int(),
|
|
24129
|
-
/** sha256 of what the frames taught when the version was frozen. */
|
|
24130
24183
|
annotationHash: string(),
|
|
24131
|
-
/** The export manifest schema the version was cut under. */
|
|
24132
24184
|
manifestSchema: string(),
|
|
24133
24185
|
stats: RetrainDatasetStatsSchema
|
|
24134
24186
|
});
|
|
24135
|
-
|
|
24136
|
-
|
|
24137
|
-
|
|
24187
|
+
/**
|
|
24188
|
+
* Live training corpus criteria — same shape as `TrainingCorpusSelection` on
|
|
24189
|
+
* the training cap. Resolved here so plan/start and the annotated export share
|
|
24190
|
+
* one definition of "the frames" (`buildRetrainExportPlan`).
|
|
24191
|
+
*/
|
|
24192
|
+
var RetrainTrainingCorpusSelectionSchema = object({
|
|
24193
|
+
collectionIds: array(string()).min(1),
|
|
24194
|
+
workState: _enum([
|
|
24195
|
+
"complete",
|
|
24196
|
+
"annotated_or_complete",
|
|
24197
|
+
"any_annotated"
|
|
24198
|
+
]).default("complete")
|
|
24199
|
+
});
|
|
24200
|
+
var RetrainTrainingCorpusResolveResultSchema = discriminatedUnion("kind", [object({
|
|
24201
|
+
kind: literal("resolved"),
|
|
24202
|
+
frameIds: array(string()).max(2e4).readonly(),
|
|
24203
|
+
stats: RetrainDatasetStatsSchema,
|
|
24204
|
+
annotationHash: string(),
|
|
24205
|
+
layout: RetrainExportLayoutSchema
|
|
24138
24206
|
}), object({
|
|
24139
24207
|
kind: literal("refused"),
|
|
24140
|
-
reason: _enum([
|
|
24141
|
-
|
|
24142
|
-
"duplicate-name",
|
|
24143
|
-
"no-frames"
|
|
24144
|
-
])
|
|
24208
|
+
reason: _enum(["unknown-collection", "no-frames"]),
|
|
24209
|
+
detail: string()
|
|
24145
24210
|
})]);
|
|
24146
24211
|
/** The outcome of a lifecycle move owned by the retrain page. */
|
|
24147
24212
|
var RetrainTransitionResultSchema = object({
|
|
@@ -24848,6 +24913,12 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
24848
24913
|
}), array(RetrainTrackSchema).readonly(), {
|
|
24849
24914
|
kind: "query",
|
|
24850
24915
|
auth: "admin"
|
|
24916
|
+
}), method(RetrainCorpusFilterSchema, RetrainCorpusPageSchema, {
|
|
24917
|
+
kind: "query",
|
|
24918
|
+
auth: "admin"
|
|
24919
|
+
}), method(object({}), RetrainCorpusKpiSchema, {
|
|
24920
|
+
kind: "query",
|
|
24921
|
+
auth: "admin"
|
|
24851
24922
|
}), method(object({ trackId: string() }), RetrainFrameListSchema, {
|
|
24852
24923
|
kind: "query",
|
|
24853
24924
|
auth: "admin"
|
|
@@ -24943,36 +25014,6 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
24943
25014
|
kind: "mutation",
|
|
24944
25015
|
auth: "admin",
|
|
24945
25016
|
timeoutMs: 12e4
|
|
24946
|
-
}), method(object({
|
|
24947
|
-
selection: RetrainDatasetSelectionSchema,
|
|
24948
|
-
completeOnly: boolean().optional()
|
|
24949
|
-
}), RetrainDatasetStatsSchema, {
|
|
24950
|
-
kind: "query",
|
|
24951
|
-
auth: "admin"
|
|
24952
|
-
}), method(object({
|
|
24953
|
-
name: string().max(120),
|
|
24954
|
-
selection: RetrainDatasetSelectionSchema,
|
|
24955
|
-
layout: RetrainExportLayoutSchema,
|
|
24956
|
-
completeOnly: boolean()
|
|
24957
|
-
}), CreateRetrainDatasetVersionResultSchema, {
|
|
24958
|
-
kind: "mutation",
|
|
24959
|
-
auth: "admin",
|
|
24960
|
-
timeoutMs: 12e4
|
|
24961
|
-
}), method(object({}), array(RetrainDatasetVersionSchema).readonly(), {
|
|
24962
|
-
kind: "query",
|
|
24963
|
-
auth: "admin"
|
|
24964
|
-
}), method(object({ id: string() }), object({ deleted: boolean() }), {
|
|
24965
|
-
kind: "mutation",
|
|
24966
|
-
auth: "admin"
|
|
24967
|
-
}), method(object({ id: string() }), object({
|
|
24968
|
-
found: boolean(),
|
|
24969
|
-
annotationHash: string(),
|
|
24970
|
-
matches: boolean(),
|
|
24971
|
-
missingFrames: number().int()
|
|
24972
|
-
}), {
|
|
24973
|
-
kind: "query",
|
|
24974
|
-
auth: "admin",
|
|
24975
|
-
timeoutMs: 12e4
|
|
24976
25017
|
}), method(object({}), array(RetrainAssistProfileSchema).readonly(), {
|
|
24977
25018
|
kind: "query",
|
|
24978
25019
|
auth: "admin"
|
|
@@ -24999,6 +25040,10 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
24999
25040
|
}), method(object({}), array(RetrainCollectionSchema).readonly(), {
|
|
25000
25041
|
kind: "query",
|
|
25001
25042
|
auth: "admin"
|
|
25043
|
+
}), method(RetrainTrainingCorpusSelectionSchema, RetrainTrainingCorpusResolveResultSchema, {
|
|
25044
|
+
kind: "query",
|
|
25045
|
+
auth: "admin",
|
|
25046
|
+
timeoutMs: 6e4
|
|
25002
25047
|
}), method(object({
|
|
25003
25048
|
id: string(),
|
|
25004
25049
|
name: string().max(120)
|
|
@@ -25615,11 +25660,14 @@ var HardwareClassIdSchema = _enum([
|
|
|
25615
25660
|
"intel-n-series",
|
|
25616
25661
|
"apple-m-base",
|
|
25617
25662
|
"apple-m-pro",
|
|
25663
|
+
"amd-phoenix",
|
|
25618
25664
|
"unknown"
|
|
25619
25665
|
]);
|
|
25620
25666
|
var AcceleratorKindSchema = _enum([
|
|
25621
25667
|
"intel-npu",
|
|
25622
25668
|
"intel-igpu",
|
|
25669
|
+
"amd-igpu",
|
|
25670
|
+
"amd-npu",
|
|
25623
25671
|
"x86-cpu",
|
|
25624
25672
|
"arm-cpu",
|
|
25625
25673
|
"apple-ane",
|
|
@@ -27509,6 +27557,8 @@ var AgentPipelineSettingsSchema = object({
|
|
|
27509
27557
|
* address is wrong (multi-homed host, NAT, custom interface).
|
|
27510
27558
|
*/
|
|
27511
27559
|
reachableHost: string().optional(),
|
|
27560
|
+
/** Hub-persisted UI colour (`--color-node-*` theme tokens). */
|
|
27561
|
+
color: NodeColorIdSchema.optional(),
|
|
27512
27562
|
/**
|
|
27513
27563
|
* Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
|
|
27514
27564
|
* weight, steps}. Absent / all-disabled ⇒ the node's single default
|
|
@@ -28058,8 +28108,9 @@ method(object({
|
|
|
28058
28108
|
auth: "admin"
|
|
28059
28109
|
}), method(object({
|
|
28060
28110
|
agentNodeId: string(),
|
|
28061
|
-
reachableHost: string().nullable()
|
|
28062
|
-
|
|
28111
|
+
reachableHost: string().nullable().optional(),
|
|
28112
|
+
color: NodeColorIdSchema.nullable().optional()
|
|
28113
|
+
}).refine((v) => v.reachableHost !== void 0 || v.color !== void 0, { message: "reachableHost or color required" }), object({ success: literal(true) }), {
|
|
28063
28114
|
kind: "mutation",
|
|
28064
28115
|
auth: "admin"
|
|
28065
28116
|
}), method(object({
|
|
@@ -35505,7 +35556,15 @@ var GpuInfoSchema = object({
|
|
|
35505
35556
|
name: string(),
|
|
35506
35557
|
memoryMB: number().optional()
|
|
35507
35558
|
});
|
|
35508
|
-
var NpuInfoSchema = object({
|
|
35559
|
+
var NpuInfoSchema = object({
|
|
35560
|
+
type: _enum([
|
|
35561
|
+
"apple-ane",
|
|
35562
|
+
"intel-npu",
|
|
35563
|
+
"amd-xdna"
|
|
35564
|
+
]),
|
|
35565
|
+
name: string().optional(),
|
|
35566
|
+
generation: _enum(["xdna1", "xdna2"]).optional()
|
|
35567
|
+
});
|
|
35509
35568
|
var CoralInfoSchema = object({
|
|
35510
35569
|
type: literal("coral-edgetpu"),
|
|
35511
35570
|
bus: string().optional()
|
|
@@ -39267,9 +39326,11 @@ DeviceType.Camera, method(object({
|
|
|
39267
39326
|
* once is what makes a second provider (RunPod, a local NVIDIA node) a new
|
|
39268
39327
|
* manifest entry and nothing else.
|
|
39269
39328
|
*
|
|
39270
|
-
* Collection
|
|
39271
|
-
*
|
|
39272
|
-
*
|
|
39329
|
+
* Collection of provider **types** (addons). Each addon owns zero or more
|
|
39330
|
+
* **entries** (credentials + defaults). Concat-fans: `describe`,
|
|
39331
|
+
* `describeTypes`, `listEntries`, `listJobs`. Single-row work is keyed by
|
|
39332
|
+
* `entryId`; callers also pass the owning `addonId` as the collection
|
|
39333
|
+
* selector (broker posture). Every method is `admin`: these spend money.
|
|
39273
39334
|
*
|
|
39274
39335
|
* Every cloud object a provider creates is tagged with the orchestrator's
|
|
39275
39336
|
* `jobKey`, so a retried submit finds the job it already started instead of
|
|
@@ -39293,8 +39354,8 @@ var TrainingRegionOptionSchema = object({
|
|
|
39293
39354
|
priceMultiplier: number().positive()
|
|
39294
39355
|
});
|
|
39295
39356
|
/**
|
|
39296
|
-
* The provider's per-
|
|
39297
|
-
* live
|
|
39357
|
+
* The provider's per-entry settings, as the orchestrator reads them. They
|
|
39358
|
+
* live on the PROVIDER addon's entry (operator decision 2026-10-08: they
|
|
39298
39359
|
* depend on the user's account), never hard-coded in the orchestrator.
|
|
39299
39360
|
*/
|
|
39300
39361
|
var TrainingProviderDefaultsSchema = object({
|
|
@@ -39305,9 +39366,32 @@ var TrainingProviderDefaultsSchema = object({
|
|
|
39305
39366
|
/** Hours a FAILED job's cloud dataset is kept for debugging; 0 = delete at once. */
|
|
39306
39367
|
failedDatasetGraceHours: number().nonnegative()
|
|
39307
39368
|
});
|
|
39369
|
+
/** One creatable provider type, for the Add-entry dialog. */
|
|
39370
|
+
var TrainingProviderTypeSchema = object({
|
|
39371
|
+
typeId: string(),
|
|
39372
|
+
label: string(),
|
|
39373
|
+
/** Path under the addon package (e.g. `assets/training-modal/icon.svg`). */
|
|
39374
|
+
iconAsset: string(),
|
|
39375
|
+
/** Owning `training-provider` addon — collection selector for createEntry. */
|
|
39376
|
+
addonId: string()
|
|
39377
|
+
});
|
|
39378
|
+
/** One configured account / workspace under a provider type. */
|
|
39379
|
+
var TrainingProviderEntrySchema = object({
|
|
39380
|
+
entryId: string(),
|
|
39381
|
+
typeId: string(),
|
|
39382
|
+
name: string(),
|
|
39383
|
+
addonId: string(),
|
|
39384
|
+
/** Credentials are present — never the values. */
|
|
39385
|
+
configured: boolean()
|
|
39386
|
+
});
|
|
39308
39387
|
var TrainingProviderDescriptorSchema = object({
|
|
39309
39388
|
addonId: string(),
|
|
39310
|
-
|
|
39389
|
+
entryId: string(),
|
|
39390
|
+
typeId: string(),
|
|
39391
|
+
/** Operator-chosen entry name. */
|
|
39392
|
+
name: string(),
|
|
39393
|
+
iconAsset: string(),
|
|
39394
|
+
/** `modal`, `runpod`, `fake`, … — same as typeId for current providers. */
|
|
39311
39395
|
kind: string(),
|
|
39312
39396
|
label: string(),
|
|
39313
39397
|
gpuTypes: array(TrainingGpuOptionSchema).readonly(),
|
|
@@ -39371,8 +39455,9 @@ var TrainerSourceRefSchema = object({
|
|
|
39371
39455
|
/** A commit sha (never a branch) — the job must be reproducible. */
|
|
39372
39456
|
revision: string().regex(/^[0-9a-f]{7,64}$/)
|
|
39373
39457
|
});
|
|
39458
|
+
/** Cloud job identity — route with the owning addon's `addonId` selector. */
|
|
39374
39459
|
var JobRef = {
|
|
39375
|
-
|
|
39460
|
+
entryId: string().min(1),
|
|
39376
39461
|
jobKey: string().uuid()
|
|
39377
39462
|
};
|
|
39378
39463
|
var TrainingLogLineSchema = object({
|
|
@@ -39385,17 +39470,37 @@ var trainingProviderCapability = {
|
|
|
39385
39470
|
mode: "collection",
|
|
39386
39471
|
internal: true,
|
|
39387
39472
|
methods: {
|
|
39388
|
-
/** Every
|
|
39473
|
+
/** Every entry's offer and settings. Concat-fans across providers. */
|
|
39389
39474
|
describe: method(object({}), array(TrainingProviderDescriptorSchema).readonly(), { auth: "admin" }),
|
|
39390
|
-
/**
|
|
39391
|
-
|
|
39475
|
+
/** Creatable types for the Add-entry dialog. Concat-fans. */
|
|
39476
|
+
describeTypes: method(object({}), array(TrainingProviderTypeSchema).readonly(), { auth: "admin" }),
|
|
39477
|
+
/** Configured entries (pills). Concat-fans. */
|
|
39478
|
+
listEntries: method(object({}), array(TrainingProviderEntrySchema).readonly(), { auth: "admin" }),
|
|
39479
|
+
/**
|
|
39480
|
+
* Create an entry under this provider type. Pin with `{ addonId }` of the
|
|
39481
|
+
* type's owning addon (from describeTypes).
|
|
39482
|
+
*/
|
|
39483
|
+
createEntry: method(object({
|
|
39484
|
+
typeId: string().min(1),
|
|
39485
|
+
name: string().min(1)
|
|
39486
|
+
}), object({ entryId: string() }), {
|
|
39487
|
+
kind: "mutation",
|
|
39488
|
+
auth: "admin"
|
|
39489
|
+
}),
|
|
39490
|
+
/** Delete an entry. Pin with the owning `{ addonId }`. */
|
|
39491
|
+
deleteEntry: method(object({ entryId: string().min(1) }), object({ ok: literal(true) }), {
|
|
39492
|
+
kind: "mutation",
|
|
39493
|
+
auth: "admin"
|
|
39494
|
+
}),
|
|
39495
|
+
/** Call the provider with the entry's stored credentials. Never returns them. */
|
|
39496
|
+
validateCredentials: method(object({ entryId: string().min(1) }), TrainingCredentialCheckSchema, {
|
|
39392
39497
|
kind: "mutation",
|
|
39393
39498
|
auth: "admin",
|
|
39394
39499
|
timeoutMs: 3e4
|
|
39395
39500
|
}),
|
|
39396
39501
|
/** USD range for a run of `gpuSeconds` on `gpuType` in `region`. */
|
|
39397
39502
|
estimateJob: method(object({
|
|
39398
|
-
|
|
39503
|
+
entryId: string().min(1),
|
|
39399
39504
|
gpuType: string(),
|
|
39400
39505
|
region: string(),
|
|
39401
39506
|
datasetBytes: number().int().nonnegative(),
|
|
@@ -39491,8 +39596,11 @@ var trainingProviderCapability = {
|
|
|
39491
39596
|
auth: "admin",
|
|
39492
39597
|
timeoutMs: 5 * 6e4
|
|
39493
39598
|
}),
|
|
39494
|
-
/**
|
|
39495
|
-
|
|
39599
|
+
/**
|
|
39600
|
+
* Jobs this provider can still see. Optional `entryId` filters; omit to
|
|
39601
|
+
* list every entry (orphan sweep). Pin with `{ addonId }`.
|
|
39602
|
+
*/
|
|
39603
|
+
listJobs: method(object({ entryId: string().min(1).optional() }), array(ProviderJobStatusSchema).readonly(), {
|
|
39496
39604
|
auth: "admin",
|
|
39497
39605
|
timeoutMs: 2 * 6e4
|
|
39498
39606
|
})
|
|
@@ -39504,20 +39612,31 @@ var trainingProviderCapability = {
|
|
|
39504
39612
|
*
|
|
39505
39613
|
* It owns what every provider must agree on, written once:
|
|
39506
39614
|
*
|
|
39507
|
-
* - **Dataset versions.** Taken over from pipeline-analytics (D796): the rows
|
|
39508
|
-
* live here (D808); pipeline-analytics still CUTS a version (it owns the corpus and
|
|
39509
|
-
* the export plan) and reaches this store through the five row methods
|
|
39510
|
-
* below, so the Retrain page and the export did not change.
|
|
39511
39615
|
* - **Jobs.** A persisted state machine, a reconcile loop against the
|
|
39512
39616
|
* provider, a cost guard, a daily orphan sweep and the retention rules.
|
|
39513
39617
|
* - **The return flow.** Verified artefacts → Model Studio
|
|
39514
39618
|
* (`custom-model-registry.importModelBundle`) → canary on cameras →
|
|
39515
39619
|
* rollback. Nothing is ever registered automatically.
|
|
39516
39620
|
*
|
|
39621
|
+
* Plan/start takes a live {@link TrainingCorpusSelection} (collections +
|
|
39622
|
+
* work-state rule); frame ids are resolved via pipeline-analytics at that
|
|
39623
|
+
* moment and snapshotted on the job. No frozen dataset version.
|
|
39624
|
+
*
|
|
39517
39625
|
* Every method is `admin`.
|
|
39518
39626
|
*/
|
|
39519
|
-
/**
|
|
39520
|
-
|
|
39627
|
+
/**
|
|
39628
|
+
* Live corpus criteria for plan/start (design §5.2). Default is complete-only.
|
|
39629
|
+
* Frame ids are resolved at plan/start — never a frozen version id.
|
|
39630
|
+
*/
|
|
39631
|
+
var TrainingCorpusSelectionSchema = object({
|
|
39632
|
+
collectionIds: array(string()).min(1),
|
|
39633
|
+
/** Default complete-only for v1 */
|
|
39634
|
+
workState: _enum([
|
|
39635
|
+
"complete",
|
|
39636
|
+
"annotated_or_complete",
|
|
39637
|
+
"any_annotated"
|
|
39638
|
+
]).default("complete")
|
|
39639
|
+
});
|
|
39521
39640
|
/** A base model a detector job can fine-tune, and the baseline it is judged against. */
|
|
39522
39641
|
var TrainingBaseModelSchema = object({
|
|
39523
39642
|
modelId: string(),
|
|
@@ -39535,9 +39654,13 @@ var TrainingPresetSchema = _enum([
|
|
|
39535
39654
|
"thorough"
|
|
39536
39655
|
]);
|
|
39537
39656
|
var TrainingJobRequestSchema = object({
|
|
39538
|
-
|
|
39539
|
-
|
|
39540
|
-
|
|
39657
|
+
/** Live collection + work-state criteria; resolved at plan/start. */
|
|
39658
|
+
selection: TrainingCorpusSelectionSchema,
|
|
39659
|
+
/**
|
|
39660
|
+
* The provider **entry** that runs it (credentials + defaults).
|
|
39661
|
+
* Resolve to an owning addon via `training-provider.describe` / `listEntries`.
|
|
39662
|
+
*/
|
|
39663
|
+
entryId: string().min(1),
|
|
39541
39664
|
gpuType: string().min(1),
|
|
39542
39665
|
region: string(),
|
|
39543
39666
|
baseModelId: string().min(1),
|
|
@@ -39596,6 +39719,7 @@ var TrainingJobPlanSchema = object({
|
|
|
39596
39719
|
* result lives after the operator acted on it.
|
|
39597
39720
|
*/
|
|
39598
39721
|
var TrainingJobStateSchema = _enum([
|
|
39722
|
+
"queued",
|
|
39599
39723
|
"uploading",
|
|
39600
39724
|
"submitted",
|
|
39601
39725
|
"starting",
|
|
@@ -39649,6 +39773,11 @@ var TrainingJobSchema = object({
|
|
|
39649
39773
|
createdAt: number(),
|
|
39650
39774
|
updatedAt: number(),
|
|
39651
39775
|
state: TrainingJobStateSchema,
|
|
39776
|
+
/**
|
|
39777
|
+
* Shared by every job enqueued together via `startJobBatch`.
|
|
39778
|
+
* `null` for a lone `startJob`. The engine advances queued siblings by this id.
|
|
39779
|
+
*/
|
|
39780
|
+
batchId: string().nullable().default(null),
|
|
39652
39781
|
stage: TrainingStageSchema.nullable(),
|
|
39653
39782
|
failure: object({
|
|
39654
39783
|
reason: TrainingFailureReasonSchema,
|
|
@@ -39660,6 +39789,12 @@ var TrainingJobSchema = object({
|
|
|
39660
39789
|
maxRuntimeSec: number().int().positive(),
|
|
39661
39790
|
trainer: TrainerSourceRefSchema,
|
|
39662
39791
|
datasetLayout: RetrainExportLayoutSchema,
|
|
39792
|
+
/** Frame count snapshotted when the job started (audit; equals `frameIds.length`). */
|
|
39793
|
+
frameCount: number().int().nonnegative(),
|
|
39794
|
+
/** Resolved frame ids at start — the archive ships exactly these. */
|
|
39795
|
+
frameIds: array(string()).max(2e4).readonly(),
|
|
39796
|
+
/** Hash of what those frames taught at start (trainer `dataset.annotationHash`). */
|
|
39797
|
+
annotationHash: string(),
|
|
39663
39798
|
dataset: object({
|
|
39664
39799
|
bytes: number().int(),
|
|
39665
39800
|
sha256: string(),
|
|
@@ -39707,19 +39842,6 @@ var trainingCapability = {
|
|
|
39707
39842
|
mode: "singleton",
|
|
39708
39843
|
mount: { kind: "hub-only" },
|
|
39709
39844
|
methods: {
|
|
39710
|
-
/** Store a version once. `stored: false` = that id already exists (immutable). */
|
|
39711
|
-
putDatasetVersion: method(TrainingDatasetVersionRowSchema, object({ stored: boolean() }), {
|
|
39712
|
-
kind: "mutation",
|
|
39713
|
-
auth: "admin"
|
|
39714
|
-
}),
|
|
39715
|
-
getDatasetVersion: method(IdInput, TrainingDatasetVersionRowSchema.nullable(), { auth: "admin" }),
|
|
39716
|
-
/** Every version without its frame list, newest first. */
|
|
39717
|
-
listDatasetVersions: method(object({}), array(RetrainDatasetVersionSchema).readonly(), { auth: "admin" }),
|
|
39718
|
-
findDatasetVersionIdByName: method(object({ name: string() }), object({ id: string().nullable() }), { auth: "admin" }),
|
|
39719
|
-
removeDatasetVersion: method(IdInput, object({ removed: boolean() }), {
|
|
39720
|
-
kind: "mutation",
|
|
39721
|
-
auth: "admin"
|
|
39722
|
-
}),
|
|
39723
39845
|
listBaseModels: method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" }),
|
|
39724
39846
|
/** Split, estimate, defaults and any named refusal — nothing is started. */
|
|
39725
39847
|
planJob: method(TrainingJobRequestSchema, TrainingJobPlanSchema, {
|
|
@@ -39748,6 +39870,32 @@ var trainingCapability = {
|
|
|
39748
39870
|
auth: "admin",
|
|
39749
39871
|
timeoutMs: 12e4
|
|
39750
39872
|
}),
|
|
39873
|
+
/**
|
|
39874
|
+
* Enqueue one job per base model (same selection, entry, caps). The first
|
|
39875
|
+
* becomes `uploading`; the rest stay `queued` until the prior job settles.
|
|
39876
|
+
* One ACTIVE job at a time — a parallel `startJob` still gets
|
|
39877
|
+
* `job-already-running`. The same `idempotencyKey` returns the batch it
|
|
39878
|
+
* already started.
|
|
39879
|
+
*/
|
|
39880
|
+
startJobBatch: method(TrainingJobRequestSchema.omit({ baseModelId: true }).extend({
|
|
39881
|
+
baseModelIds: array(string().min(1)).min(1),
|
|
39882
|
+
name: string().min(1).max(120),
|
|
39883
|
+
maxCostUsd: number().positive(),
|
|
39884
|
+
maxRuntimeSec: number().int().positive(),
|
|
39885
|
+
idempotencyKey: string().min(8).max(80)
|
|
39886
|
+
}), discriminatedUnion("kind", [object({
|
|
39887
|
+
kind: literal("started"),
|
|
39888
|
+
batchId: string(),
|
|
39889
|
+
jobs: array(TrainingJobSchema).min(1).readonly()
|
|
39890
|
+
}), object({
|
|
39891
|
+
kind: literal("refused"),
|
|
39892
|
+
reason: TrainingRefusalReasonSchema,
|
|
39893
|
+
detail: string()
|
|
39894
|
+
})]), {
|
|
39895
|
+
kind: "mutation",
|
|
39896
|
+
auth: "admin",
|
|
39897
|
+
timeoutMs: 12e4
|
|
39898
|
+
}),
|
|
39751
39899
|
listJobs: method(object({}), array(TrainingJobSchema).readonly(), { auth: "admin" }),
|
|
39752
39900
|
getJob: method(IdInput, TrainingJobSchema.nullable(), { auth: "admin" }),
|
|
39753
39901
|
cancelJob: method(IdInput, TrainingJobSchema, {
|
|
@@ -44005,12 +44153,6 @@ Object.freeze({
|
|
|
44005
44153
|
addonId: null,
|
|
44006
44154
|
access: "create"
|
|
44007
44155
|
},
|
|
44008
|
-
"pipelineAnalytics.createRetrainDatasetVersion": {
|
|
44009
|
-
capName: "pipeline-analytics",
|
|
44010
|
-
capScope: "device",
|
|
44011
|
-
addonId: null,
|
|
44012
|
-
access: "create"
|
|
44013
|
-
},
|
|
44014
44156
|
"pipelineAnalytics.deleteDeviceEvents": {
|
|
44015
44157
|
capName: "pipeline-analytics",
|
|
44016
44158
|
capScope: "device",
|
|
@@ -44023,12 +44165,6 @@ Object.freeze({
|
|
|
44023
44165
|
addonId: null,
|
|
44024
44166
|
access: "delete"
|
|
44025
44167
|
},
|
|
44026
|
-
"pipelineAnalytics.deleteRetrainDatasetVersion": {
|
|
44027
|
-
capName: "pipeline-analytics",
|
|
44028
|
-
capScope: "device",
|
|
44029
|
-
addonId: null,
|
|
44030
|
-
access: "delete"
|
|
44031
|
-
},
|
|
44032
44168
|
"pipelineAnalytics.deleteTracks": {
|
|
44033
44169
|
capName: "pipeline-analytics",
|
|
44034
44170
|
capScope: "device",
|
|
@@ -44131,6 +44267,12 @@ Object.freeze({
|
|
|
44131
44267
|
addonId: null,
|
|
44132
44268
|
access: "view"
|
|
44133
44269
|
},
|
|
44270
|
+
"pipelineAnalytics.getRetrainCorpusKpi": {
|
|
44271
|
+
capName: "pipeline-analytics",
|
|
44272
|
+
capScope: "device",
|
|
44273
|
+
addonId: null,
|
|
44274
|
+
access: "view"
|
|
44275
|
+
},
|
|
44134
44276
|
"pipelineAnalytics.getRetrainExportUrl": {
|
|
44135
44277
|
capName: "pipeline-analytics",
|
|
44136
44278
|
capScope: "device",
|
|
@@ -44251,7 +44393,7 @@ Object.freeze({
|
|
|
44251
44393
|
addonId: null,
|
|
44252
44394
|
access: "view"
|
|
44253
44395
|
},
|
|
44254
|
-
"pipelineAnalytics.
|
|
44396
|
+
"pipelineAnalytics.listRetrainCorpusPage": {
|
|
44255
44397
|
capName: "pipeline-analytics",
|
|
44256
44398
|
capScope: "device",
|
|
44257
44399
|
addonId: null,
|
|
@@ -44305,12 +44447,6 @@ Object.freeze({
|
|
|
44305
44447
|
addonId: null,
|
|
44306
44448
|
access: "create"
|
|
44307
44449
|
},
|
|
44308
|
-
"pipelineAnalytics.previewRetrainDataset": {
|
|
44309
|
-
capName: "pipeline-analytics",
|
|
44310
|
-
capScope: "device",
|
|
44311
|
-
addonId: null,
|
|
44312
|
-
access: "view"
|
|
44313
|
-
},
|
|
44314
44450
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
44315
44451
|
capName: "pipeline-analytics",
|
|
44316
44452
|
capScope: "device",
|
|
@@ -44389,6 +44525,12 @@ Object.freeze({
|
|
|
44389
44525
|
addonId: null,
|
|
44390
44526
|
access: "create"
|
|
44391
44527
|
},
|
|
44528
|
+
"pipelineAnalytics.resolveRetrainTrainingCorpus": {
|
|
44529
|
+
capName: "pipeline-analytics",
|
|
44530
|
+
capScope: "device",
|
|
44531
|
+
addonId: null,
|
|
44532
|
+
access: "view"
|
|
44533
|
+
},
|
|
44392
44534
|
"pipelineAnalytics.restageRetrainTrack": {
|
|
44393
44535
|
capName: "pipeline-analytics",
|
|
44394
44536
|
capScope: "device",
|
|
@@ -44449,12 +44591,6 @@ Object.freeze({
|
|
|
44449
44591
|
addonId: null,
|
|
44450
44592
|
access: "create"
|
|
44451
44593
|
},
|
|
44452
|
-
"pipelineAnalytics.verifyRetrainDatasetVersion": {
|
|
44453
|
-
capName: "pipeline-analytics",
|
|
44454
|
-
capScope: "device",
|
|
44455
|
-
addonId: null,
|
|
44456
|
-
access: "view"
|
|
44457
|
-
},
|
|
44458
44594
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
44459
44595
|
capName: "pipeline-analytics",
|
|
44460
44596
|
capScope: "device",
|
|
@@ -46849,18 +46985,6 @@ Object.freeze({
|
|
|
46849
46985
|
addonId: null,
|
|
46850
46986
|
access: "create"
|
|
46851
46987
|
},
|
|
46852
|
-
"training.findDatasetVersionIdByName": {
|
|
46853
|
-
capName: "training",
|
|
46854
|
-
capScope: "system",
|
|
46855
|
-
addonId: null,
|
|
46856
|
-
access: "view"
|
|
46857
|
-
},
|
|
46858
|
-
"training.getDatasetVersion": {
|
|
46859
|
-
capName: "training",
|
|
46860
|
-
capScope: "system",
|
|
46861
|
-
addonId: null,
|
|
46862
|
-
access: "view"
|
|
46863
|
-
},
|
|
46864
46988
|
"training.getJob": {
|
|
46865
46989
|
capName: "training",
|
|
46866
46990
|
capScope: "system",
|
|
@@ -46879,12 +47003,6 @@ Object.freeze({
|
|
|
46879
47003
|
addonId: null,
|
|
46880
47004
|
access: "view"
|
|
46881
47005
|
},
|
|
46882
|
-
"training.listDatasetVersions": {
|
|
46883
|
-
capName: "training",
|
|
46884
|
-
capScope: "system",
|
|
46885
|
-
addonId: null,
|
|
46886
|
-
access: "view"
|
|
46887
|
-
},
|
|
46888
47006
|
"training.listJobs": {
|
|
46889
47007
|
capName: "training",
|
|
46890
47008
|
capScope: "system",
|
|
@@ -46897,54 +47015,66 @@ Object.freeze({
|
|
|
46897
47015
|
addonId: null,
|
|
46898
47016
|
access: "view"
|
|
46899
47017
|
},
|
|
46900
|
-
"training.
|
|
47018
|
+
"training.registerResult": {
|
|
46901
47019
|
capName: "training",
|
|
46902
47020
|
capScope: "system",
|
|
46903
47021
|
addonId: null,
|
|
46904
47022
|
access: "create"
|
|
46905
47023
|
},
|
|
46906
|
-
"training.
|
|
47024
|
+
"training.rollbackCanary": {
|
|
46907
47025
|
capName: "training",
|
|
46908
47026
|
capScope: "system",
|
|
46909
47027
|
addonId: null,
|
|
46910
47028
|
access: "create"
|
|
46911
47029
|
},
|
|
46912
|
-
"training.
|
|
47030
|
+
"training.startJob": {
|
|
46913
47031
|
capName: "training",
|
|
46914
47032
|
capScope: "system",
|
|
46915
47033
|
addonId: null,
|
|
46916
|
-
access: "
|
|
47034
|
+
access: "create"
|
|
46917
47035
|
},
|
|
46918
|
-
"training.
|
|
47036
|
+
"training.startJobBatch": {
|
|
46919
47037
|
capName: "training",
|
|
46920
47038
|
capScope: "system",
|
|
46921
47039
|
addonId: null,
|
|
46922
47040
|
access: "create"
|
|
46923
47041
|
},
|
|
46924
|
-
"
|
|
46925
|
-
capName: "training",
|
|
47042
|
+
"trainingProvider.cancelJob": {
|
|
47043
|
+
capName: "training-provider",
|
|
46926
47044
|
capScope: "system",
|
|
46927
47045
|
addonId: null,
|
|
46928
47046
|
access: "create"
|
|
46929
47047
|
},
|
|
46930
|
-
"trainingProvider.
|
|
47048
|
+
"trainingProvider.cleanupJob": {
|
|
46931
47049
|
capName: "training-provider",
|
|
46932
47050
|
capScope: "system",
|
|
46933
47051
|
addonId: null,
|
|
46934
47052
|
access: "create"
|
|
46935
47053
|
},
|
|
46936
|
-
"trainingProvider.
|
|
47054
|
+
"trainingProvider.createEntry": {
|
|
46937
47055
|
capName: "training-provider",
|
|
46938
47056
|
capScope: "system",
|
|
46939
47057
|
addonId: null,
|
|
46940
47058
|
access: "create"
|
|
46941
47059
|
},
|
|
47060
|
+
"trainingProvider.deleteEntry": {
|
|
47061
|
+
capName: "training-provider",
|
|
47062
|
+
capScope: "system",
|
|
47063
|
+
addonId: null,
|
|
47064
|
+
access: "delete"
|
|
47065
|
+
},
|
|
46942
47066
|
"trainingProvider.describe": {
|
|
46943
47067
|
capName: "training-provider",
|
|
46944
47068
|
capScope: "system",
|
|
46945
47069
|
addonId: null,
|
|
46946
47070
|
access: "view"
|
|
46947
47071
|
},
|
|
47072
|
+
"trainingProvider.describeTypes": {
|
|
47073
|
+
capName: "training-provider",
|
|
47074
|
+
capScope: "system",
|
|
47075
|
+
addonId: null,
|
|
47076
|
+
access: "view"
|
|
47077
|
+
},
|
|
46948
47078
|
"trainingProvider.estimateJob": {
|
|
46949
47079
|
capName: "training-provider",
|
|
46950
47080
|
capScope: "system",
|
|
@@ -46957,6 +47087,12 @@ Object.freeze({
|
|
|
46957
47087
|
addonId: null,
|
|
46958
47088
|
access: "view"
|
|
46959
47089
|
},
|
|
47090
|
+
"trainingProvider.listEntries": {
|
|
47091
|
+
capName: "training-provider",
|
|
47092
|
+
capScope: "system",
|
|
47093
|
+
addonId: null,
|
|
47094
|
+
access: "view"
|
|
47095
|
+
},
|
|
46960
47096
|
"trainingProvider.listJobEvents": {
|
|
46961
47097
|
capName: "training-provider",
|
|
46962
47098
|
capScope: "system",
|
|
@@ -50413,6 +50549,11 @@ Object.freeze({
|
|
|
50413
50549
|
form: "array",
|
|
50414
50550
|
optional: false
|
|
50415
50551
|
}],
|
|
50552
|
+
"pipelineAnalytics.listRetrainCorpusPage": [{
|
|
50553
|
+
name: "deviceIds",
|
|
50554
|
+
form: "array",
|
|
50555
|
+
optional: true
|
|
50556
|
+
}],
|
|
50416
50557
|
"pipelineAnalytics.listRetrainStaging": [{
|
|
50417
50558
|
name: "deviceIds",
|
|
50418
50559
|
form: "array",
|
|
@@ -52561,4 +52702,4 @@ DEFAULT_NATIVE_LEASE_SETTINGS.admission;
|
|
|
52561
52702
|
var MB = 1024 * 1024;
|
|
52562
52703
|
1024 * MB, 3072 * MB;
|
|
52563
52704
|
//#endregion
|
|
52564
|
-
export {
|
|
52705
|
+
export { addonPagesSourceCapability as a, trainingProviderCapability as c, number as d, object as f, TrainingResultSchema as i, BaseAddon as l, string as m, TrainingJobSchema as n, parseTrainingEventLine as o, record as p, TrainingJobSpecSchema as r, trainingCapability as s, TRAINING_JOB_SCHEMA as t, boolean as u };
|