@camstack/addon-model-studio 1.1.208 → 1.1.210
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/MotionZonesSettings-BLaYYr6d.mjs +310 -0
- package/dist/{PrivacyMaskSettings-BR1W0Jdz.mjs → PrivacyMaskSettings-B4oPm8qu.mjs} +5 -5
- package/dist/{SceneMonitorEditor-C2hv7m4b.mjs → SceneMonitorEditor-CcIjo0eV.mjs} +285 -285
- package/dist/_stub.js +6463 -5786
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BXiGIO9F.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-D1rfSf3r.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-AVR0uSTS.mjs +26 -0
- package/dist/addon-model-studio.css +1 -1
- package/dist/{hostInit-BjI6ZGeQ.mjs → hostInit-BQhrSAl4.mjs} +2 -2
- package/dist/model-studio.addon.js +417 -23
- package/dist/model-studio.addon.mjs +417 -23
- package/dist/{player-overlays-DyvbN32a.mjs → player-overlays-BNudDM5z.mjs} +5 -5
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-B85nuotM.mjs → responsive-DBGZzpZ7.mjs} +3 -3
- package/dist/{scene-monitor-copy-DY98vLAG.mjs → scene-monitor-copy-dhKSDV9I.mjs} +1 -1
- package/dist/{square-CqTd_dbN.mjs → square-D-YyUKDq.mjs} +1 -1
- package/dist/{trash-2-CwTAu8_U.mjs → trash-2-DZs2uO6z.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CejkP6cN.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BP6zmpFK.mjs} +1 -1
- package/package.json +1 -1
- package/dist/MotionZonesSettings-CfPlD9DG.mjs +0 -310
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CVVm4Mi7.mjs +0 -26
|
@@ -11073,7 +11073,53 @@ var ModelFormatEntrySchema = object({
|
|
|
11073
11073
|
/** Multi-file payload (directory members or sibling files). */
|
|
11074
11074
|
files: array(string()).readonly().optional(),
|
|
11075
11075
|
/** Runtime(s) that can use this format. If omitted, inferred from ModelFormat key */
|
|
11076
|
-
runtimes: array(_enum(["python"])).readonly().optional()
|
|
11076
|
+
runtimes: array(_enum(["python"])).readonly().optional(),
|
|
11077
|
+
/**
|
|
11078
|
+
* Content revision of the artefact, for one hosted OFF the CamStack mirror.
|
|
11079
|
+
* A format on the mirror leaves it unset: its revision (the sha256 of its
|
|
11080
|
+
* weight file) comes from the downloader's generated table, kept in step
|
|
11081
|
+
* with the mirror by `scripts/check-hosted-model-revisions.ts` (D744). A
|
|
11082
|
+
* node records the revision it downloaded next to the file
|
|
11083
|
+
* (`<file>.revision`); a copy with no record or a different one is stale
|
|
11084
|
+
* unless its weight file hashes to the revision, and a stale copy is
|
|
11085
|
+
* downloaded again, the old one serving until the new one is complete. No
|
|
11086
|
+
* revision at all ⇒ a file on disk is current, whatever it holds (D743).
|
|
11087
|
+
*/
|
|
11088
|
+
revision: string().min(1).optional()
|
|
11089
|
+
});
|
|
11090
|
+
/**
|
|
11091
|
+
* What a node holds for one (model, format) (D746). `current` is a complete
|
|
11092
|
+
* copy at its catalog revision — exactly what `downloaded: true` means.
|
|
11093
|
+
* `stale` is bytes on disk that are not (yet) proven current under D743/D744:
|
|
11094
|
+
* no or a different revision record, or a missing sibling. `missing` is no
|
|
11095
|
+
* copy. `downloaded` alone folds `stale` into "not downloaded", which hid
|
|
11096
|
+
* reclaimable bytes and a copy about to be replaced.
|
|
11097
|
+
*/
|
|
11098
|
+
var ModelOnDiskStateSchema = _enum([
|
|
11099
|
+
"current",
|
|
11100
|
+
"stale",
|
|
11101
|
+
"missing"
|
|
11102
|
+
]);
|
|
11103
|
+
/**
|
|
11104
|
+
* The numeric precision of one format's BUILD (D746) — reported only when the
|
|
11105
|
+
* build states it (file-name token, an INT8 variant, an EdgeTPU compile, a
|
|
11106
|
+
* CamStack Core ML export). Absent means "not stated", never "fp32".
|
|
11107
|
+
*/
|
|
11108
|
+
var ModelFormatPrecisionSchema = _enum([
|
|
11109
|
+
"fp32",
|
|
11110
|
+
"fp16",
|
|
11111
|
+
"int8"
|
|
11112
|
+
]);
|
|
11113
|
+
/**
|
|
11114
|
+
* One format of one model as a node's `pipelineExecutor.getSchema` reports it.
|
|
11115
|
+
* `onDisk` / `precision` are optional for version skew: a runner that predates
|
|
11116
|
+
* them omits them, and a reader falls back to `downloaded`.
|
|
11117
|
+
*/
|
|
11118
|
+
var PipelineModelFormatStatusSchema = object({
|
|
11119
|
+
downloaded: boolean(),
|
|
11120
|
+
sizeMB: number(),
|
|
11121
|
+
onDisk: ModelOnDiskStateSchema.optional(),
|
|
11122
|
+
precision: ModelFormatPrecisionSchema.optional()
|
|
11077
11123
|
});
|
|
11078
11124
|
/**
|
|
11079
11125
|
* Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
|
|
@@ -23765,7 +23811,7 @@ var FrameRefSchema = object({
|
|
|
23765
23811
|
timestamp: number(),
|
|
23766
23812
|
capturedAt: number().optional()
|
|
23767
23813
|
});
|
|
23768
|
-
var ModelFormatSchema$
|
|
23814
|
+
var ModelFormatSchema$2 = _enum([
|
|
23769
23815
|
"onnx",
|
|
23770
23816
|
"coreml",
|
|
23771
23817
|
"openvino",
|
|
@@ -23783,7 +23829,7 @@ var PipelineSlotSchema = _enum([
|
|
|
23783
23829
|
var PipelineEngineChoiceSchema = object({
|
|
23784
23830
|
runtime: literal("python"),
|
|
23785
23831
|
backend: string(),
|
|
23786
|
-
format: ModelFormatSchema$
|
|
23832
|
+
format: ModelFormatSchema$2,
|
|
23787
23833
|
device: string().optional()
|
|
23788
23834
|
});
|
|
23789
23835
|
/**
|
|
@@ -23840,10 +23886,7 @@ var PipelineTemplateSchema$1 = object({
|
|
|
23840
23886
|
var PipelineModelOptionSchema = object({
|
|
23841
23887
|
id: string(),
|
|
23842
23888
|
name: string(),
|
|
23843
|
-
formats: record(string(),
|
|
23844
|
-
downloaded: boolean(),
|
|
23845
|
-
sizeMB: number()
|
|
23846
|
-
})),
|
|
23889
|
+
formats: record(string(), PipelineModelFormatStatusSchema),
|
|
23847
23890
|
group: ModelVariantGroupSchema.optional(),
|
|
23848
23891
|
legacy: boolean().optional(),
|
|
23849
23892
|
provider: ModelProviderIdSchema.optional(),
|
|
@@ -24010,6 +24053,22 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
24010
24053
|
}), {
|
|
24011
24054
|
kind: "mutation",
|
|
24012
24055
|
auth: "admin"
|
|
24056
|
+
}), method(object({
|
|
24057
|
+
nodeId: string(),
|
|
24058
|
+
deviceIds: array(number()).readonly().optional(),
|
|
24059
|
+
dryRun: boolean()
|
|
24060
|
+
}), object({
|
|
24061
|
+
entries: array(object({
|
|
24062
|
+
deviceId: number(),
|
|
24063
|
+
keys: array(string()).readonly()
|
|
24064
|
+
})).readonly(),
|
|
24065
|
+
refused: array(object({
|
|
24066
|
+
deviceId: number(),
|
|
24067
|
+
reason: string()
|
|
24068
|
+
})).readonly()
|
|
24069
|
+
}), {
|
|
24070
|
+
kind: "mutation",
|
|
24071
|
+
auth: "admin"
|
|
24013
24072
|
}), method(object({ nodeId: string() }), object({ unhealthy: array(object({
|
|
24014
24073
|
/** `<backend>:<device>`, e.g. `openvino:gpu`. */
|
|
24015
24074
|
deviceKey: string(),
|
|
@@ -24046,11 +24105,11 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
24046
24105
|
}), PipelineTemplateSchema$1, { kind: "mutation" }), method(object({ id: string() }), _void(), { kind: "mutation" }), method(_void(), InferenceCapabilitiesBridge), method(object({ addonId: string() }), ModelAvailabilityListBridge), method(object({
|
|
24047
24106
|
addonId: string(),
|
|
24048
24107
|
modelId: string(),
|
|
24049
|
-
format: ModelFormatSchema$
|
|
24108
|
+
format: ModelFormatSchema$2
|
|
24050
24109
|
}), DownloadModelResultSchema, { kind: "mutation" }), method(object({
|
|
24051
24110
|
addonId: string(),
|
|
24052
24111
|
modelId: string(),
|
|
24053
|
-
format: ModelFormatSchema$
|
|
24112
|
+
format: ModelFormatSchema$2
|
|
24054
24113
|
}), object({ success: literal(true) }), { kind: "mutation" }), method(object({
|
|
24055
24114
|
steps: array(PipelineStepInputSchema).min(1),
|
|
24056
24115
|
frame: FrameInputSchema.optional(),
|
|
@@ -24207,6 +24266,307 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
24207
24266
|
filename: string().optional(),
|
|
24208
24267
|
settings: record(string(), unknown()).optional()
|
|
24209
24268
|
}), AudioTestResultSchema, { kind: "mutation" }), method(_void(), ConfigUISchemaNullableBridge);
|
|
24269
|
+
/**
|
|
24270
|
+
* Wire shapes of the Load balancing surface (D748): the session placement
|
|
24271
|
+
* policy, the atomic share write, the observed placement statistics, the
|
|
24272
|
+
* hardware share suggestion and the stale device pins.
|
|
24273
|
+
*/
|
|
24274
|
+
/**
|
|
24275
|
+
* How a new detection session picks its node and device.
|
|
24276
|
+
* - `least-loaded` — the historical rule: lowest `attached / weight`, a
|
|
24277
|
+
* constant node order at a tie (D37). An idle node always ties at 0, so a
|
|
24278
|
+
* weight only bites once a node already holds a session.
|
|
24279
|
+
* - `share` — the share of PARALLEL sessions is held to the weights, and a
|
|
24280
|
+
* full or drowning node yields to a free one (D748).
|
|
24281
|
+
*/
|
|
24282
|
+
var SessionPlacementPolicySchema = _enum(["least-loaded", "share"]);
|
|
24283
|
+
var LoadBalancingSharesInputSchema = object({
|
|
24284
|
+
/** nodeId → share (> 0). A node left out keeps its weight. */
|
|
24285
|
+
nodes: record(string(), number().positive()).default({}),
|
|
24286
|
+
/** nodeId → deviceKey → share (> 0). A device left out keeps its weight. */
|
|
24287
|
+
devices: record(string(), record(string(), number().positive())).default({})
|
|
24288
|
+
});
|
|
24289
|
+
var PlacementStatsInputSchema = object({
|
|
24290
|
+
/** Window the observed shares are averaged over (default 1 h, max 24 h). */
|
|
24291
|
+
windowMs: number().int().min(6e4).max(1440 * 60 * 1e3).default(3600 * 1e3) });
|
|
24292
|
+
var PlacementDeviceStatsSchema = object({
|
|
24293
|
+
deviceKey: string(),
|
|
24294
|
+
/** Sessions running on this device now. */
|
|
24295
|
+
sessionsNow: number(),
|
|
24296
|
+
/** Sessions started on this device inside the window. */
|
|
24297
|
+
sessionsStarted: number(),
|
|
24298
|
+
/** Time-weighted share of the node's parallel sessions over the window (0–1); null = no session ran. */
|
|
24299
|
+
observedShare: number().nullable()
|
|
24300
|
+
});
|
|
24301
|
+
var PlacementNodeStatsSchema = object({
|
|
24302
|
+
nodeId: string(),
|
|
24303
|
+
sessionsNow: number(),
|
|
24304
|
+
sessionsStarted: number(),
|
|
24305
|
+
/** Time-weighted share of the cluster's parallel sessions over the window (0–1); null = none ran. */
|
|
24306
|
+
observedShare: number().nullable(),
|
|
24307
|
+
/** Most sessions this node ran at once inside the window. */
|
|
24308
|
+
peakSessions: number(),
|
|
24309
|
+
/** Sessions a share election handed elsewhere because this node was full or drowning. */
|
|
24310
|
+
yieldsAway: number(),
|
|
24311
|
+
devices: array(PlacementDeviceStatsSchema).readonly()
|
|
24312
|
+
});
|
|
24313
|
+
/** A camera's device pin that the session path cannot honour. */
|
|
24314
|
+
var StaleDevicePinSchema = object({
|
|
24315
|
+
deviceId: number(),
|
|
24316
|
+
deviceKey: string(),
|
|
24317
|
+
/** `disabled` — the key exists on some node but is not enabled anywhere; `absent` — no node has it. */
|
|
24318
|
+
reason: _enum(["disabled", "absent"])
|
|
24319
|
+
});
|
|
24320
|
+
var PlacementStatsSchema = object({
|
|
24321
|
+
policy: SessionPlacementPolicySchema,
|
|
24322
|
+
windowMs: number(),
|
|
24323
|
+
/** How much of the window was actually observed (the hub keeps it in memory). */
|
|
24324
|
+
observedForMs: number(),
|
|
24325
|
+
sessionsNow: number(),
|
|
24326
|
+
/** Most parallel sessions across the cluster inside the window. */
|
|
24327
|
+
clusterPeakSessions: number(),
|
|
24328
|
+
nodes: array(PlacementNodeStatsSchema).readonly(),
|
|
24329
|
+
stalePins: array(StaleDevicePinSchema).readonly()
|
|
24330
|
+
});
|
|
24331
|
+
var SuggestSharesInputSchema = object({ headroom: number().min(.3).max(.5).default(.4) });
|
|
24332
|
+
var SuggestedDeviceShareSchema = object({
|
|
24333
|
+
deviceKey: string(),
|
|
24334
|
+
/** Share of the node (0–100, rounded). */
|
|
24335
|
+
share: number(),
|
|
24336
|
+
modelId: string().nullable(),
|
|
24337
|
+
/** Inferences per second at that model, from the measured table. */
|
|
24338
|
+
fps: number().nullable(),
|
|
24339
|
+
measured: boolean(),
|
|
24340
|
+
/** Advisory session cap: ⌊fps × (1 − headroom) / camera fps⌋. Never enforced. */
|
|
24341
|
+
suggestedMaxSessions: number().nullable()
|
|
24342
|
+
});
|
|
24343
|
+
var SuggestedNodeShareSchema = object({
|
|
24344
|
+
nodeId: string(),
|
|
24345
|
+
/** Share of the cluster (0–100, rounded); null = node skipped (offline, unknown hardware). */
|
|
24346
|
+
share: number().nullable(),
|
|
24347
|
+
/** Parallel sessions the node sustains at the suggested models with the headroom kept free. */
|
|
24348
|
+
capacitySessions: number(),
|
|
24349
|
+
devices: array(SuggestedDeviceShareSchema).readonly(),
|
|
24350
|
+
skippedReason: string().nullable()
|
|
24351
|
+
});
|
|
24352
|
+
var SuggestSharesResultSchema = object({
|
|
24353
|
+
headroom: number(),
|
|
24354
|
+
/** Camera detection rate the capacity is counted in (the fastest camera's fps). */
|
|
24355
|
+
cameraFps: number(),
|
|
24356
|
+
/** How many share → model → capacity rounds ran before the shares stopped moving (≤ 3). */
|
|
24357
|
+
iterations: number(),
|
|
24358
|
+
nodes: array(SuggestedNodeShareSchema).readonly()
|
|
24359
|
+
});
|
|
24360
|
+
/**
|
|
24361
|
+
* The wire shapes of the Best settings plan and apply (D745), used by the
|
|
24362
|
+
* `pipeline-orchestrator` cap. The recommender's own types
|
|
24363
|
+
* (`recommend.ts`, `demand.ts`) are the TS face of the same data; these
|
|
24364
|
+
* schemas are what crosses the cap boundary.
|
|
24365
|
+
*/
|
|
24366
|
+
var ModelFormatSchema$1 = _enum(MODEL_FORMATS);
|
|
24367
|
+
var HardwareClassIdSchema = _enum([
|
|
24368
|
+
"intel-core-ultra",
|
|
24369
|
+
"intel-n-series",
|
|
24370
|
+
"apple-m-base",
|
|
24371
|
+
"apple-m-pro",
|
|
24372
|
+
"unknown"
|
|
24373
|
+
]);
|
|
24374
|
+
var AcceleratorKindSchema = _enum([
|
|
24375
|
+
"intel-npu",
|
|
24376
|
+
"intel-igpu",
|
|
24377
|
+
"x86-cpu",
|
|
24378
|
+
"arm-cpu",
|
|
24379
|
+
"apple-ane",
|
|
24380
|
+
"coral"
|
|
24381
|
+
]);
|
|
24382
|
+
var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
24383
|
+
object({
|
|
24384
|
+
kind: literal("fits"),
|
|
24385
|
+
utilisation: number()
|
|
24386
|
+
}),
|
|
24387
|
+
object({
|
|
24388
|
+
kind: literal("tie-faster"),
|
|
24389
|
+
over: string(),
|
|
24390
|
+
recallDelta: number()
|
|
24391
|
+
}),
|
|
24392
|
+
object({
|
|
24393
|
+
kind: literal("stepped-down"),
|
|
24394
|
+
from: string(),
|
|
24395
|
+
to: string(),
|
|
24396
|
+
limitedBy: string()
|
|
24397
|
+
}),
|
|
24398
|
+
object({
|
|
24399
|
+
kind: literal("no-fit-lightest"),
|
|
24400
|
+
utilisation: number()
|
|
24401
|
+
}),
|
|
24402
|
+
object({
|
|
24403
|
+
kind: literal("derived-latency"),
|
|
24404
|
+
modelId: string()
|
|
24405
|
+
}),
|
|
24406
|
+
object({
|
|
24407
|
+
kind: literal("estimated-load"),
|
|
24408
|
+
observedForMs: number().nullable()
|
|
24409
|
+
}),
|
|
24410
|
+
object({ kind: literal("cpu-device") }),
|
|
24411
|
+
object({ kind: literal("coral-untouched") }),
|
|
24412
|
+
object({ kind: literal("device-disabled") }),
|
|
24413
|
+
object({ kind: literal("device-unavailable") }),
|
|
24414
|
+
object({ kind: literal("node-offline") }),
|
|
24415
|
+
object({ kind: literal("no-hardware-facts") }),
|
|
24416
|
+
object({
|
|
24417
|
+
kind: literal("no-measured-data"),
|
|
24418
|
+
hardwareClass: HardwareClassIdSchema
|
|
24419
|
+
}),
|
|
24420
|
+
object({
|
|
24421
|
+
kind: literal("no-family-build"),
|
|
24422
|
+
format: ModelFormatSchema$1
|
|
24423
|
+
})
|
|
24424
|
+
]);
|
|
24425
|
+
var DeviceDemandSchema = object({
|
|
24426
|
+
nodeId: string(),
|
|
24427
|
+
deviceKey: string(),
|
|
24428
|
+
demandFps: number(),
|
|
24429
|
+
maxCameraFps: number(),
|
|
24430
|
+
alwaysOnCameras: number(),
|
|
24431
|
+
onMotionSessions: number(),
|
|
24432
|
+
onMotionSource: _enum([
|
|
24433
|
+
"observed-24h",
|
|
24434
|
+
"estimate",
|
|
24435
|
+
"none"
|
|
24436
|
+
]),
|
|
24437
|
+
observedForMs: number().nullable(),
|
|
24438
|
+
/** How on-motion sessions were charged: per-device observation, or split by share (D748). */
|
|
24439
|
+
placement: SessionPlacementPolicySchema
|
|
24440
|
+
});
|
|
24441
|
+
var DeviceModelChoiceSchema = object({
|
|
24442
|
+
modelId: string(),
|
|
24443
|
+
p50Ms: number(),
|
|
24444
|
+
fps: number(),
|
|
24445
|
+
measured: boolean(),
|
|
24446
|
+
utilisation: number(),
|
|
24447
|
+
personRecall: number()
|
|
24448
|
+
});
|
|
24449
|
+
var DeviceRecommendationSchema = object({
|
|
24450
|
+
deviceKey: string(),
|
|
24451
|
+
accelerator: AcceleratorKindSchema.nullable(),
|
|
24452
|
+
enabled: boolean(),
|
|
24453
|
+
available: boolean(),
|
|
24454
|
+
demand: DeviceDemandSchema.nullable(),
|
|
24455
|
+
chosen: DeviceModelChoiceSchema.nullable(),
|
|
24456
|
+
reasons: array(RecommendationReasonSchema).readonly()
|
|
24457
|
+
});
|
|
24458
|
+
var NodeRecommendationSchema = object({
|
|
24459
|
+
nodeId: string(),
|
|
24460
|
+
reachable: boolean(),
|
|
24461
|
+
hardwareClass: HardwareClassIdSchema.nullable(),
|
|
24462
|
+
cpuModel: string().nullable(),
|
|
24463
|
+
skipped: boolean(),
|
|
24464
|
+
acceleratorModelId: string().nullable(),
|
|
24465
|
+
devices: array(DeviceRecommendationSchema).readonly(),
|
|
24466
|
+
reasons: array(RecommendationReasonSchema).readonly()
|
|
24467
|
+
});
|
|
24468
|
+
var ModelPinChangeSchema = object({
|
|
24469
|
+
stepId: string(),
|
|
24470
|
+
before: string().nullable(),
|
|
24471
|
+
after: string().nullable()
|
|
24472
|
+
});
|
|
24473
|
+
var NodeDeviceChangeSchema = object({
|
|
24474
|
+
nodeId: string(),
|
|
24475
|
+
deviceKey: string(),
|
|
24476
|
+
madeExplicit: boolean(),
|
|
24477
|
+
modelPins: array(ModelPinChangeSchema).readonly(),
|
|
24478
|
+
thresholds: array(object({
|
|
24479
|
+
stepId: string(),
|
|
24480
|
+
keys: array(string()).readonly()
|
|
24481
|
+
})).readonly()
|
|
24482
|
+
});
|
|
24483
|
+
var CameraOverrideClearSchema = object({
|
|
24484
|
+
deviceId: number(),
|
|
24485
|
+
source: _enum(["step-override", "wholesale"]),
|
|
24486
|
+
nodeId: string(),
|
|
24487
|
+
deviceKey: string().nullable(),
|
|
24488
|
+
stepId: string(),
|
|
24489
|
+
modelIdBefore: string().nullable(),
|
|
24490
|
+
keys: array(string()).readonly()
|
|
24491
|
+
});
|
|
24492
|
+
var DetectorStoreClearSchema = object({
|
|
24493
|
+
deviceId: number(),
|
|
24494
|
+
keys: array(string()).readonly()
|
|
24495
|
+
});
|
|
24496
|
+
var BestSettingsWarningSchema = discriminatedUnion("kind", [
|
|
24497
|
+
object({
|
|
24498
|
+
kind: literal("detector-store-cluster-wide"),
|
|
24499
|
+
skippedNodes: array(string()).readonly()
|
|
24500
|
+
}),
|
|
24501
|
+
object({
|
|
24502
|
+
kind: literal("detector-store-unreadable"),
|
|
24503
|
+
error: string()
|
|
24504
|
+
}),
|
|
24505
|
+
object({
|
|
24506
|
+
kind: literal("coral-enabled"),
|
|
24507
|
+
nodeId: string(),
|
|
24508
|
+
deviceKey: string()
|
|
24509
|
+
})
|
|
24510
|
+
]);
|
|
24511
|
+
var BestSettingsOptionsSchema = object({
|
|
24512
|
+
/** Share of each accelerator's throughput kept free (0.3–0.5). */
|
|
24513
|
+
headroom: number().min(.3).max(.5).default(.4),
|
|
24514
|
+
/**
|
|
24515
|
+
* What-if shares (D748): plan as if these node/device shares were stored
|
|
24516
|
+
* and the policy were `share`. Absent = the stored shares under the stored
|
|
24517
|
+
* policy. A what-if plan is for display; apply always re-plans from what
|
|
24518
|
+
* is stored.
|
|
24519
|
+
*/
|
|
24520
|
+
shares: LoadBalancingSharesInputSchema.optional()
|
|
24521
|
+
});
|
|
24522
|
+
var BestSettingsPlanSchema = object({
|
|
24523
|
+
/** Hash of everything the apply will write — the apply refuses a different one. */
|
|
24524
|
+
planHash: string(),
|
|
24525
|
+
family: literal("yolov9"),
|
|
24526
|
+
headroom: number(),
|
|
24527
|
+
/** Planned under what-if shares (D748): for display — apply refuses it as stale. */
|
|
24528
|
+
whatIf: boolean(),
|
|
24529
|
+
generatedAt: number(),
|
|
24530
|
+
nodes: array(NodeRecommendationSchema).readonly(),
|
|
24531
|
+
nodeChanges: array(NodeDeviceChangeSchema).readonly(),
|
|
24532
|
+
cameraClears: array(CameraOverrideClearSchema).readonly(),
|
|
24533
|
+
detectorStoreClears: array(DetectorStoreClearSchema).readonly(),
|
|
24534
|
+
warnings: array(BestSettingsWarningSchema).readonly()
|
|
24535
|
+
});
|
|
24536
|
+
var BestSettingsApplyInputSchema = object({
|
|
24537
|
+
planHash: string(),
|
|
24538
|
+
headroom: number().min(.3).max(.5).default(.4)
|
|
24539
|
+
});
|
|
24540
|
+
var BestSettingsPhaseResultSchema = object({
|
|
24541
|
+
phase: _enum([
|
|
24542
|
+
"download",
|
|
24543
|
+
"camera-overrides",
|
|
24544
|
+
"detector-thresholds",
|
|
24545
|
+
"node-models",
|
|
24546
|
+
"redispatch"
|
|
24547
|
+
]),
|
|
24548
|
+
ok: boolean(),
|
|
24549
|
+
detail: string()
|
|
24550
|
+
});
|
|
24551
|
+
var BestSettingsApplyResultSchema = discriminatedUnion("kind", [
|
|
24552
|
+
object({
|
|
24553
|
+
kind: literal("applied"),
|
|
24554
|
+
planHash: string(),
|
|
24555
|
+
phases: array(BestSettingsPhaseResultSchema).readonly()
|
|
24556
|
+
}),
|
|
24557
|
+
object({
|
|
24558
|
+
kind: literal("aborted"),
|
|
24559
|
+
phases: array(BestSettingsPhaseResultSchema).readonly()
|
|
24560
|
+
}),
|
|
24561
|
+
object({
|
|
24562
|
+
kind: literal("stale"),
|
|
24563
|
+
plan: BestSettingsPlanSchema
|
|
24564
|
+
}),
|
|
24565
|
+
object({
|
|
24566
|
+
kind: literal("refused"),
|
|
24567
|
+
reason: _enum(["apply-in-progress"])
|
|
24568
|
+
})
|
|
24569
|
+
]);
|
|
24210
24570
|
object({
|
|
24211
24571
|
activeCameras: number(),
|
|
24212
24572
|
throttledCameras: number(),
|
|
@@ -25387,7 +25747,6 @@ var CameraStepOverridePatchSchema = object({
|
|
|
25387
25747
|
settings: record(string(), unknown()).readonly().optional()
|
|
25388
25748
|
});
|
|
25389
25749
|
var CameraPipelineSettingsSchema = object({
|
|
25390
|
-
pinnedAgentNodeId: string().optional(),
|
|
25391
25750
|
stepToggles: record(string(), boolean()).optional(),
|
|
25392
25751
|
stepOverridesByDevice: record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).optional(),
|
|
25393
25752
|
pipelineByAgent: record(string(), CameraPipelineForAgentSchema).optional()
|
|
@@ -25886,12 +26245,6 @@ method(object({
|
|
|
25886
26245
|
}), object({ success: literal(true) }), {
|
|
25887
26246
|
kind: "mutation",
|
|
25888
26247
|
auth: "admin"
|
|
25889
|
-
}), method(object({
|
|
25890
|
-
agentNodeId: string(),
|
|
25891
|
-
detectWeight: number().positive().nullable()
|
|
25892
|
-
}), object({ success: literal(true) }), {
|
|
25893
|
-
kind: "mutation",
|
|
25894
|
-
auth: "admin"
|
|
25895
26248
|
}), method(object({
|
|
25896
26249
|
agentNodeId: string(),
|
|
25897
26250
|
detect: boolean().nullable().optional(),
|
|
@@ -25933,7 +26286,13 @@ method(object({
|
|
|
25933
26286
|
}), {
|
|
25934
26287
|
kind: "mutation",
|
|
25935
26288
|
auth: "admin"
|
|
25936
|
-
}), method(
|
|
26289
|
+
}), method(BestSettingsOptionsSchema, BestSettingsPlanSchema, { auth: "admin" }), method(BestSettingsApplyInputSchema, BestSettingsApplyResultSchema, {
|
|
26290
|
+
kind: "mutation",
|
|
26291
|
+
auth: "admin"
|
|
26292
|
+
}), method(LoadBalancingSharesInputSchema, object({ success: literal(true) }), {
|
|
26293
|
+
kind: "mutation",
|
|
26294
|
+
auth: "admin"
|
|
26295
|
+
}), method(PlacementStatsInputSchema, PlacementStatsSchema, { auth: "admin" }), method(SuggestSharesInputSchema, SuggestSharesResultSchema, { auth: "admin" }), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
|
|
25937
26296
|
deviceId: number(),
|
|
25938
26297
|
addonId: string(),
|
|
25939
26298
|
enabled: boolean().nullable()
|
|
@@ -41606,6 +41965,12 @@ Object.freeze({
|
|
|
41606
41965
|
addonId: null,
|
|
41607
41966
|
access: "delete"
|
|
41608
41967
|
},
|
|
41968
|
+
"pipelineExecutor.clearModelBoundDeviceOverrides": {
|
|
41969
|
+
capName: "pipeline-executor",
|
|
41970
|
+
capScope: "system",
|
|
41971
|
+
addonId: null,
|
|
41972
|
+
access: "delete"
|
|
41973
|
+
},
|
|
41609
41974
|
"pipelineExecutor.deleteModel": {
|
|
41610
41975
|
capName: "pipeline-executor",
|
|
41611
41976
|
capScope: "system",
|
|
@@ -41822,6 +42187,12 @@ Object.freeze({
|
|
|
41822
42187
|
addonId: null,
|
|
41823
42188
|
access: "view"
|
|
41824
42189
|
},
|
|
42190
|
+
"pipelineOrchestrator.applyBestSettings": {
|
|
42191
|
+
capName: "pipeline-orchestrator",
|
|
42192
|
+
capScope: "system",
|
|
42193
|
+
addonId: null,
|
|
42194
|
+
access: "create"
|
|
42195
|
+
},
|
|
41825
42196
|
"pipelineOrchestrator.applyDeviceSettingsPatch": {
|
|
41826
42197
|
capName: "pipeline-orchestrator",
|
|
41827
42198
|
capScope: "system",
|
|
@@ -41972,6 +42343,12 @@ Object.freeze({
|
|
|
41972
42343
|
addonId: null,
|
|
41973
42344
|
access: "view"
|
|
41974
42345
|
},
|
|
42346
|
+
"pipelineOrchestrator.getPlacementStats": {
|
|
42347
|
+
capName: "pipeline-orchestrator",
|
|
42348
|
+
capScope: "system",
|
|
42349
|
+
addonId: null,
|
|
42350
|
+
access: "view"
|
|
42351
|
+
},
|
|
41975
42352
|
"pipelineOrchestrator.getReconcileFromDiskStatus": {
|
|
41976
42353
|
capName: "pipeline-orchestrator",
|
|
41977
42354
|
capScope: "system",
|
|
@@ -41996,6 +42373,12 @@ Object.freeze({
|
|
|
41996
42373
|
addonId: null,
|
|
41997
42374
|
access: "create"
|
|
41998
42375
|
},
|
|
42376
|
+
"pipelineOrchestrator.planBestSettings": {
|
|
42377
|
+
capName: "pipeline-orchestrator",
|
|
42378
|
+
capScope: "system",
|
|
42379
|
+
addonId: null,
|
|
42380
|
+
access: "view"
|
|
42381
|
+
},
|
|
41999
42382
|
"pipelineOrchestrator.rebalance": {
|
|
42000
42383
|
capName: "pipeline-orchestrator",
|
|
42001
42384
|
capScope: "system",
|
|
@@ -42056,12 +42439,6 @@ Object.freeze({
|
|
|
42056
42439
|
addonId: null,
|
|
42057
42440
|
access: "create"
|
|
42058
42441
|
},
|
|
42059
|
-
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
42060
|
-
capName: "pipeline-orchestrator",
|
|
42061
|
-
capScope: "system",
|
|
42062
|
-
addonId: null,
|
|
42063
|
-
access: "create"
|
|
42064
|
-
},
|
|
42065
42442
|
"pipelineOrchestrator.setAgentInferenceDevices": {
|
|
42066
42443
|
capName: "pipeline-orchestrator",
|
|
42067
42444
|
capScope: "system",
|
|
@@ -42116,12 +42493,24 @@ Object.freeze({
|
|
|
42116
42493
|
addonId: null,
|
|
42117
42494
|
access: "create"
|
|
42118
42495
|
},
|
|
42496
|
+
"pipelineOrchestrator.setLoadBalancingShares": {
|
|
42497
|
+
capName: "pipeline-orchestrator",
|
|
42498
|
+
capScope: "system",
|
|
42499
|
+
addonId: null,
|
|
42500
|
+
access: "create"
|
|
42501
|
+
},
|
|
42119
42502
|
"pipelineOrchestrator.setPipelineDevicePin": {
|
|
42120
42503
|
capName: "pipeline-orchestrator",
|
|
42121
42504
|
capScope: "system",
|
|
42122
42505
|
addonId: null,
|
|
42123
42506
|
access: "create"
|
|
42124
42507
|
},
|
|
42508
|
+
"pipelineOrchestrator.suggestShares": {
|
|
42509
|
+
capName: "pipeline-orchestrator",
|
|
42510
|
+
capScope: "system",
|
|
42511
|
+
addonId: null,
|
|
42512
|
+
access: "view"
|
|
42513
|
+
},
|
|
42125
42514
|
"pipelineOrchestrator.unassignAudio": {
|
|
42126
42515
|
capName: "pipeline-orchestrator",
|
|
42127
42516
|
capScope: "system",
|
|
@@ -47418,6 +47807,11 @@ Object.freeze({
|
|
|
47418
47807
|
form: "single",
|
|
47419
47808
|
optional: false
|
|
47420
47809
|
}],
|
|
47810
|
+
"pipelineExecutor.clearModelBoundDeviceOverrides": [{
|
|
47811
|
+
name: "deviceIds",
|
|
47812
|
+
form: "array",
|
|
47813
|
+
optional: true
|
|
47814
|
+
}],
|
|
47421
47815
|
"pipelineExecutor.runPipeline": [{
|
|
47422
47816
|
name: "deviceId",
|
|
47423
47817
|
form: "single",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { h as e, l as t, u as n, y as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { b as i, y as a } from "./responsive-DBGZzpZ7.mjs";
|
|
3
3
|
import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
4
|
-
var l =
|
|
4
|
+
var l = i("chevron-down", [["path", {
|
|
5
5
|
d: "m6 9 6 6 6-6",
|
|
6
6
|
key: "qrunsl"
|
|
7
|
-
}]]), u =
|
|
7
|
+
}]]), u = i("chevron-right", [["path", {
|
|
8
8
|
d: "m9 18 6-6-6-6",
|
|
9
9
|
key: "mthhwq"
|
|
10
10
|
}]]);
|
|
@@ -32,8 +32,8 @@ function d({ title: t, icon: n, headerRight: r, collapsible: i = !1, defaultOpen
|
|
|
32
32
|
}) : null]
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
r(),
|
|
36
|
-
var f =
|
|
35
|
+
r(), a("camstack:player-overlays-state", null);
|
|
36
|
+
var f = a("camstack:player-overlays-actions", null);
|
|
37
37
|
function p(e) {
|
|
38
38
|
let r = t(f);
|
|
39
39
|
n(() => {
|
package/dist/remoteEntry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-
|
|
1
|
+
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BP6zmpFK.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { c as e, g as t, h as n, l as r, n as i, p as a, r as o, t as s, u as c, y as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
|
|
2
2
|
import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
|
|
3
|
-
import { d as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
3
|
+
import { d as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-AVR0uSTS.mjs";
|
|
4
4
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
5
5
|
l();
|
|
6
6
|
var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
|
|
@@ -117,6 +117,6 @@ function E(e) {
|
|
|
117
117
|
}
|
|
118
118
|
//#endregion
|
|
119
119
|
//#region ../ui-library/src/lib/responsive.ts
|
|
120
|
-
var D = "text-[10px] text-foreground-subtle";
|
|
120
|
+
var D = "rounded-lg border border-border bg-surface overflow-hidden", O = "border-b border-border px-3 sm:px-4 py-1.5 sm:py-2", k = "space-y-3 sm:space-y-4", A = "flex min-w-0 flex-col gap-0.5 py-1.5 sm:flex-row sm:items-center", j = "min-w-0 text-[11px] leading-tight text-foreground-subtle sm:w-32 sm:shrink-0 sm:pr-2", M = "flex w-full min-w-0 items-center gap-1 sm:flex-1", N = "min-w-0 break-all text-xs text-foreground sm:truncate", P = "text-[10px] sm:text-[11px] font-semibold text-foreground uppercase tracking-wider", F = "text-[10px] text-foreground-subtle", I = "inline-flex items-center justify-center gap-1 rounded border border-primary/40 bg-primary/15 px-1.5 py-0.5 sm:px-2 sm:py-1 text-[10px] sm:text-[11px] font-medium text-primary hover:bg-primary/25 transition-colors disabled:opacity-40", L = "inline-flex items-center justify-center gap-1 rounded border border-danger/40 bg-danger/10 px-1.5 py-0.5 sm:px-2 sm:py-1 text-[10px] sm:text-[11px] font-medium text-danger hover:bg-danger/20 transition-colors disabled:opacity-40", R = "inline-flex items-center gap-1 rounded-full border px-1.5 py-0.5 text-[10px] font-medium transition-colors", z = "border-primary/50 bg-primary/15 text-primary", B = "border-border bg-surface text-foreground-subtle hover:bg-surface-hover";
|
|
121
121
|
//#endregion
|
|
122
|
-
export {
|
|
122
|
+
export { w as _, B as a, v as b, A as c, N as d, k as f, C as g, E as h, R as i, j as l, P as m, I as n, D as o, F as p, z as r, O as s, L as t, M as u, x as v, y };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { c as e, h as t, p as n, y as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { b as i } from "./responsive-DBGZzpZ7.mjs";
|
|
3
3
|
var a = i("camera", [["path", {
|
|
4
4
|
d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
|
|
5
5
|
key: "18u6gg"
|
|
@@ -2753,7 +2753,7 @@ async function rr(e) {
|
|
|
2753
2753
|
}
|
|
2754
2754
|
}
|
|
2755
2755
|
async function ir() {
|
|
2756
|
-
return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-
|
|
2756
|
+
return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-D1rfSf3r.mjs")).catch((e) => {
|
|
2757
2757
|
throw tr = void 0, e;
|
|
2758
2758
|
}), tr;
|
|
2759
2759
|
}
|