@camstack/addon-model-studio 1.1.212 → 1.1.214
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-C4g96eMz.mjs → MaskShapeCanvas-DBaZffFb.mjs} +113 -113
- package/dist/{MotionZonesSettings-B_oqRPy4.mjs → MotionZonesSettings-BQ0UOfb8.mjs} +121 -121
- package/dist/{PrivacyMaskSettings-D8qtXvxt.mjs → PrivacyMaskSettings-q_9yxl4v.mjs} +25 -25
- package/dist/{SceneMonitorEditor-D87pvPnW.mjs → SceneMonitorEditor-Bmz5Y9X5.mjs} +299 -299
- package/dist/_stub.js +4893 -4652
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-DWCpUk01.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-uW1Zd-nw.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CL_c14D8.mjs +26 -0
- package/dist/{_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs → _virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs} +1 -1
- package/dist/addon-model-studio.css +1 -1
- package/dist/{hostInit-DN2AYYxs.mjs → hostInit-XNV3DgEX.mjs} +3 -3
- package/dist/model-studio.addon.js +214 -171
- package/dist/model-studio.addon.mjs +214 -171
- package/dist/{player-overlays-HkGtf6Z8.mjs → player-overlays-DyBPgoW8.mjs} +11 -11
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-MsnrmZeO.mjs → responsive-CvxBWUH9.mjs} +22 -22
- package/dist/{scene-monitor-copy-DUC8dxNl.mjs → scene-monitor-copy-Bbrh5uOi.mjs} +13 -13
- package/dist/{square--tUmo3yW.mjs → square-Ebm5mZPx.mjs} +1 -1
- package/dist/{trash-2-m2KUou0G.mjs → trash-2-BX4TiX8o.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-f7LkcCOd.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-r8bN15Ml.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C9x9vbel.mjs +0 -26
|
@@ -5747,7 +5747,7 @@ var ZodIssueCode = {
|
|
|
5747
5747
|
var ZodFirstPartyTypeKind;
|
|
5748
5748
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5749
5749
|
//#endregion
|
|
5750
|
-
//#region ../types/dist/sleep-
|
|
5750
|
+
//#region ../types/dist/sleep-DAJ9Er57.mjs
|
|
5751
5751
|
/**
|
|
5752
5752
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5753
5753
|
* window to float samples (D455).
|
|
@@ -24267,148 +24267,17 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
24267
24267
|
settings: record(string(), unknown()).optional()
|
|
24268
24268
|
}), AudioTestResultSchema, { kind: "mutation" }), method(_void(), ConfigUISchemaNullableBridge);
|
|
24269
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
|
-
* Where the node and device shares come from (D750).
|
|
24362
|
-
* - `auto` — computed by the system from the cluster's measured capacity at
|
|
24363
|
-
* the Auto tune models, and recomputed whenever a node or device joins,
|
|
24364
|
-
* leaves, is switched on or off, or changes model.
|
|
24365
|
-
* - `manual` — the operator's stored sliders. A node or device that cannot
|
|
24366
|
-
* take sessions gives its share to the others in proportion; the stored
|
|
24367
|
-
* values are never rewritten for that.
|
|
24368
|
-
*/
|
|
24369
|
-
var ShareSourceSchema = _enum(["auto", "manual"]);
|
|
24370
|
-
var SetShareSourceInputSchema = object({ source: ShareSourceSchema });
|
|
24371
|
-
object({
|
|
24372
|
-
nodes: record(string(), number()),
|
|
24373
|
-
devices: record(string(), record(string(), number()))
|
|
24374
|
-
});
|
|
24375
|
-
var EffectiveDeviceShareSchema = object({
|
|
24376
|
-
deviceKey: string(),
|
|
24377
|
-
/** Can take sessions now (enabled, available, can run the root). */
|
|
24378
|
-
eligible: boolean(),
|
|
24379
|
-
/** The share the source assigns, as a percentage of the node's devices. */
|
|
24380
|
-
configuredPct: number(),
|
|
24381
|
-
/** The share actually used, after an ineligible device's share went to the others. */
|
|
24382
|
-
effectivePct: number()
|
|
24383
|
-
});
|
|
24384
|
-
var EffectiveNodeShareSchema = object({
|
|
24385
|
-
nodeId: string(),
|
|
24386
|
-
eligible: boolean(),
|
|
24387
|
-
configuredPct: number(),
|
|
24388
|
-
effectivePct: number(),
|
|
24389
|
-
devices: array(EffectiveDeviceShareSchema).readonly()
|
|
24390
|
-
});
|
|
24391
|
-
var EffectiveSharesSchema = object({
|
|
24392
|
-
source: ShareSourceSchema,
|
|
24393
|
-
policy: SessionPlacementPolicySchema,
|
|
24394
|
-
/** `auto` with no computed answer yet: the stored sliders are used meanwhile. */
|
|
24395
|
-
autoPending: boolean(),
|
|
24396
|
-
/** When the automatic shares were last computed (ms epoch); null = never. */
|
|
24397
|
-
computedAt: number().nullable(),
|
|
24398
|
-
/** What made the system recompute them last. */
|
|
24399
|
-
trigger: string().nullable(),
|
|
24400
|
-
nodes: array(EffectiveNodeShareSchema).readonly(),
|
|
24401
|
-
/** The relative weights the election reads (before eligibility). */
|
|
24402
|
-
nodeWeights: record(string(), number()),
|
|
24403
|
-
deviceWeights: record(string(), record(string(), number()))
|
|
24404
|
-
});
|
|
24405
|
-
/**
|
|
24406
24270
|
* The wire shapes of the Auto tune plan and apply (D745), used by the
|
|
24407
24271
|
* `pipeline-orchestrator` cap. The recommender's own types
|
|
24408
|
-
* (`recommend.ts
|
|
24272
|
+
* (`recommend.ts`) are the TS face of the same data; these
|
|
24409
24273
|
* schemas are what crosses the cap boundary.
|
|
24410
24274
|
*/
|
|
24411
24275
|
var ModelFormatSchema$1 = _enum(MODEL_FORMATS);
|
|
24276
|
+
/** The operator's range for it. */
|
|
24277
|
+
var MIN_SESSIONS_PER_DEVICE_RANGE = {
|
|
24278
|
+
min: 1,
|
|
24279
|
+
max: 8
|
|
24280
|
+
};
|
|
24412
24281
|
var HardwareClassIdSchema = _enum([
|
|
24413
24282
|
"intel-core-ultra",
|
|
24414
24283
|
"intel-n-series",
|
|
@@ -24426,8 +24295,9 @@ var AcceleratorKindSchema = _enum([
|
|
|
24426
24295
|
]);
|
|
24427
24296
|
var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
24428
24297
|
object({
|
|
24429
|
-
kind: literal("
|
|
24430
|
-
|
|
24298
|
+
kind: literal("capacity"),
|
|
24299
|
+
sessions: number(),
|
|
24300
|
+
minSessions: number()
|
|
24431
24301
|
}),
|
|
24432
24302
|
object({
|
|
24433
24303
|
kind: literal("tie-faster"),
|
|
@@ -24442,16 +24312,13 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
24442
24312
|
}),
|
|
24443
24313
|
object({
|
|
24444
24314
|
kind: literal("no-fit-lightest"),
|
|
24445
|
-
|
|
24315
|
+
sessions: number(),
|
|
24316
|
+
minSessions: number()
|
|
24446
24317
|
}),
|
|
24447
24318
|
object({
|
|
24448
24319
|
kind: literal("derived-latency"),
|
|
24449
24320
|
modelId: string()
|
|
24450
24321
|
}),
|
|
24451
|
-
object({
|
|
24452
|
-
kind: literal("estimated-load"),
|
|
24453
|
-
observedForMs: number().nullable()
|
|
24454
|
-
}),
|
|
24455
24322
|
object({ kind: literal("cpu-device") }),
|
|
24456
24323
|
object({ kind: literal("coral-untouched") }),
|
|
24457
24324
|
object({ kind: literal("device-disabled") }),
|
|
@@ -24467,28 +24334,13 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
24467
24334
|
format: ModelFormatSchema$1
|
|
24468
24335
|
})
|
|
24469
24336
|
]);
|
|
24470
|
-
var DeviceDemandSchema = object({
|
|
24471
|
-
nodeId: string(),
|
|
24472
|
-
deviceKey: string(),
|
|
24473
|
-
demandFps: number(),
|
|
24474
|
-
maxCameraFps: number(),
|
|
24475
|
-
alwaysOnCameras: number(),
|
|
24476
|
-
onMotionSessions: number(),
|
|
24477
|
-
onMotionSource: _enum([
|
|
24478
|
-
"observed-24h",
|
|
24479
|
-
"estimate",
|
|
24480
|
-
"none"
|
|
24481
|
-
]),
|
|
24482
|
-
observedForMs: number().nullable(),
|
|
24483
|
-
/** How on-motion sessions were charged: per-device observation, or split by share (D748). */
|
|
24484
|
-
placement: SessionPlacementPolicySchema
|
|
24485
|
-
});
|
|
24486
24337
|
var DeviceModelChoiceSchema = object({
|
|
24487
24338
|
modelId: string(),
|
|
24488
24339
|
p50Ms: number(),
|
|
24489
24340
|
fps: number(),
|
|
24490
24341
|
measured: boolean(),
|
|
24491
|
-
|
|
24342
|
+
/** Parallel sessions at the camera rate with the headroom kept free: ⌊fps × (1 − headroom) / camera fps⌋. */
|
|
24343
|
+
capacitySessions: number(),
|
|
24492
24344
|
personRecall: number()
|
|
24493
24345
|
});
|
|
24494
24346
|
var DeviceRecommendationSchema = object({
|
|
@@ -24496,7 +24348,6 @@ var DeviceRecommendationSchema = object({
|
|
|
24496
24348
|
accelerator: AcceleratorKindSchema.nullable(),
|
|
24497
24349
|
enabled: boolean(),
|
|
24498
24350
|
available: boolean(),
|
|
24499
|
-
demand: DeviceDemandSchema.nullable(),
|
|
24500
24351
|
chosen: DeviceModelChoiceSchema.nullable(),
|
|
24501
24352
|
reasons: array(RecommendationReasonSchema).readonly()
|
|
24502
24353
|
});
|
|
@@ -24557,20 +24408,20 @@ var AutoTuneOptionsSchema = object({
|
|
|
24557
24408
|
/** Share of each accelerator's throughput kept free (0.3–0.5). */
|
|
24558
24409
|
headroom: number().min(.3).max(.5).default(.4),
|
|
24559
24410
|
/**
|
|
24560
|
-
*
|
|
24561
|
-
*
|
|
24562
|
-
*
|
|
24563
|
-
* is stored.
|
|
24411
|
+
* The least number of parallel sessions every device must sustain at the
|
|
24412
|
+
* camera rate with the headroom kept free (D755). The most accurate model
|
|
24413
|
+
* that reaches it wins.
|
|
24564
24414
|
*/
|
|
24565
|
-
|
|
24415
|
+
minSessionsPerDevice: number().int().min(MIN_SESSIONS_PER_DEVICE_RANGE.min).max(MIN_SESSIONS_PER_DEVICE_RANGE.max).default(2)
|
|
24566
24416
|
});
|
|
24567
24417
|
var AutoTunePlanSchema = object({
|
|
24568
24418
|
/** Hash of everything the apply will write — the apply refuses a different one. */
|
|
24569
24419
|
planHash: string(),
|
|
24570
24420
|
family: literal("yolov9"),
|
|
24571
24421
|
headroom: number(),
|
|
24572
|
-
|
|
24573
|
-
|
|
24422
|
+
minSessionsPerDevice: number(),
|
|
24423
|
+
/** The detection rate a session is counted at (the fastest camera running the pipeline root). */
|
|
24424
|
+
cameraFps: number(),
|
|
24574
24425
|
generatedAt: number(),
|
|
24575
24426
|
nodes: array(NodeRecommendationSchema).readonly(),
|
|
24576
24427
|
nodeChanges: array(NodeDeviceChangeSchema).readonly(),
|
|
@@ -24580,7 +24431,8 @@ var AutoTunePlanSchema = object({
|
|
|
24580
24431
|
});
|
|
24581
24432
|
var AutoTuneApplyInputSchema = object({
|
|
24582
24433
|
planHash: string(),
|
|
24583
|
-
headroom: number().min(.3).max(.5).default(.4)
|
|
24434
|
+
headroom: number().min(.3).max(.5).default(.4),
|
|
24435
|
+
minSessionsPerDevice: number().int().min(MIN_SESSIONS_PER_DEVICE_RANGE.min).max(MIN_SESSIONS_PER_DEVICE_RANGE.max).default(2)
|
|
24584
24436
|
});
|
|
24585
24437
|
var AutoTunePhaseResultSchema = object({
|
|
24586
24438
|
phase: _enum([
|
|
@@ -24612,6 +24464,177 @@ var AutoTuneApplyResultSchema = discriminatedUnion("kind", [
|
|
|
24612
24464
|
reason: _enum(["apply-in-progress"])
|
|
24613
24465
|
})
|
|
24614
24466
|
]);
|
|
24467
|
+
/**
|
|
24468
|
+
* Wire shapes of the Load balancing surface (D748): the session placement
|
|
24469
|
+
* policy, the atomic share write, the observed placement statistics, the
|
|
24470
|
+
* hardware share suggestion and the stale device pins.
|
|
24471
|
+
*/
|
|
24472
|
+
/**
|
|
24473
|
+
* How a new detection session picks its node and device.
|
|
24474
|
+
* - `least-loaded` — the historical rule: lowest `attached / weight`, a
|
|
24475
|
+
* constant node order at a tie (D37). An idle node always ties at 0, so a
|
|
24476
|
+
* weight only bites once a node already holds a session.
|
|
24477
|
+
* - `share` — the share of PARALLEL sessions is held to the weights, and a
|
|
24478
|
+
* full or drowning node yields to a free one (D748).
|
|
24479
|
+
*/
|
|
24480
|
+
var SessionPlacementPolicySchema = _enum(["least-loaded", "share"]);
|
|
24481
|
+
var LoadBalancingSharesInputSchema = object({
|
|
24482
|
+
/** nodeId → share (> 0). A node left out keeps its weight. */
|
|
24483
|
+
nodes: record(string(), number().positive()).default({}),
|
|
24484
|
+
/** nodeId → deviceKey → share (> 0). A device left out keeps its weight. */
|
|
24485
|
+
devices: record(string(), record(string(), number().positive())).default({})
|
|
24486
|
+
});
|
|
24487
|
+
var PlacementStatsInputSchema = object({
|
|
24488
|
+
/** Window the observed shares are averaged over (default 1 h, max 24 h). */
|
|
24489
|
+
windowMs: number().int().min(6e4).max(1440 * 60 * 1e3).default(3600 * 1e3) });
|
|
24490
|
+
var PlacementDeviceStatsSchema = object({
|
|
24491
|
+
deviceKey: string(),
|
|
24492
|
+
/** Sessions running on this device now. */
|
|
24493
|
+
sessionsNow: number(),
|
|
24494
|
+
/** Sessions started on this device inside the window. */
|
|
24495
|
+
sessionsStarted: number(),
|
|
24496
|
+
/** Time-weighted share of the node's parallel sessions over the window (0–1); null = no session ran. */
|
|
24497
|
+
observedShare: number().nullable()
|
|
24498
|
+
});
|
|
24499
|
+
var PlacementNodeStatsSchema = object({
|
|
24500
|
+
nodeId: string(),
|
|
24501
|
+
sessionsNow: number(),
|
|
24502
|
+
sessionsStarted: number(),
|
|
24503
|
+
/** Time-weighted share of the cluster's parallel sessions over the window (0–1); null = none ran. */
|
|
24504
|
+
observedShare: number().nullable(),
|
|
24505
|
+
/** Most sessions this node ran at once inside the window. */
|
|
24506
|
+
peakSessions: number(),
|
|
24507
|
+
/** Sessions a share election handed elsewhere because this node was full or drowning. */
|
|
24508
|
+
yieldsAway: number(),
|
|
24509
|
+
devices: array(PlacementDeviceStatsSchema).readonly()
|
|
24510
|
+
});
|
|
24511
|
+
/** A camera's device pin that the session path cannot honour. */
|
|
24512
|
+
var StaleDevicePinSchema = object({
|
|
24513
|
+
deviceId: number(),
|
|
24514
|
+
deviceKey: string(),
|
|
24515
|
+
/** `disabled` — the key exists on some node but is not enabled anywhere; `absent` — no node has it. */
|
|
24516
|
+
reason: _enum(["disabled", "absent"])
|
|
24517
|
+
});
|
|
24518
|
+
var PlacementStatsSchema = object({
|
|
24519
|
+
policy: SessionPlacementPolicySchema,
|
|
24520
|
+
windowMs: number(),
|
|
24521
|
+
/** How much of the window was actually observed (the hub keeps it in memory). */
|
|
24522
|
+
observedForMs: number(),
|
|
24523
|
+
sessionsNow: number(),
|
|
24524
|
+
/** Most parallel sessions across the cluster inside the window. */
|
|
24525
|
+
clusterPeakSessions: number(),
|
|
24526
|
+
nodes: array(PlacementNodeStatsSchema).readonly(),
|
|
24527
|
+
stalePins: array(StaleDevicePinSchema).readonly()
|
|
24528
|
+
});
|
|
24529
|
+
/**
|
|
24530
|
+
* Where an automatic share's capacity comes from (D755).
|
|
24531
|
+
* - `hardware` — the static capacity of each device at its Auto tune model:
|
|
24532
|
+
* the measured latency table for the node's hardware class.
|
|
24533
|
+
* - `benchmark` — the node's own measured capacity (node benchmark results).
|
|
24534
|
+
* A node with no results falls back to `hardware`, and says so.
|
|
24535
|
+
*/
|
|
24536
|
+
var CapacitySourceSchema = _enum(["hardware", "benchmark"]);
|
|
24537
|
+
/** Why a node under the `benchmark` source was sized from hardware instead. */
|
|
24538
|
+
var CapacityFallbackSchema = _enum(["no-benchmark-results", "partial-benchmark-results"]);
|
|
24539
|
+
var SuggestSharesInputSchema = object({
|
|
24540
|
+
headroom: number().min(.3).max(.5).default(.4),
|
|
24541
|
+
/** Default `hardware`. */
|
|
24542
|
+
source: CapacitySourceSchema.default("hardware")
|
|
24543
|
+
});
|
|
24544
|
+
var SuggestedDeviceShareSchema = object({
|
|
24545
|
+
deviceKey: string(),
|
|
24546
|
+
/** Share of the node (0–100, rounded). */
|
|
24547
|
+
share: number(),
|
|
24548
|
+
modelId: string().nullable(),
|
|
24549
|
+
/** Inferences per second at that model, from the measured table; null when sized by a benchmark. */
|
|
24550
|
+
fps: number().nullable(),
|
|
24551
|
+
/** False for a table cell derived from another chip; true for a measured cell or a benchmark. */
|
|
24552
|
+
measured: boolean(),
|
|
24553
|
+
/**
|
|
24554
|
+
* Advisory session cap: ⌊fps × (1 − headroom) / camera fps⌋ from the table,
|
|
24555
|
+
* or the benchmark's measured max sessions. Never enforced.
|
|
24556
|
+
*/
|
|
24557
|
+
suggestedMaxSessions: number().nullable()
|
|
24558
|
+
});
|
|
24559
|
+
var SuggestedNodeShareSchema = object({
|
|
24560
|
+
nodeId: string(),
|
|
24561
|
+
/** Share of the cluster (0–100, rounded); null = node skipped (offline, unknown hardware). */
|
|
24562
|
+
share: number().nullable(),
|
|
24563
|
+
/** Parallel sessions the node sustains at the suggested models with the headroom kept free. */
|
|
24564
|
+
capacitySessions: number(),
|
|
24565
|
+
devices: array(SuggestedDeviceShareSchema).readonly(),
|
|
24566
|
+
skippedReason: string().nullable(),
|
|
24567
|
+
/** What this node's capacity was read from; null when the node is skipped. */
|
|
24568
|
+
capacitySource: CapacitySourceSchema.nullable(),
|
|
24569
|
+
/** Set when the `benchmark` source was asked for and this node used `hardware`. */
|
|
24570
|
+
capacityFallback: CapacityFallbackSchema.nullable()
|
|
24571
|
+
});
|
|
24572
|
+
var SuggestSharesResultSchema = object({
|
|
24573
|
+
headroom: number(),
|
|
24574
|
+
/** The source asked for; each node says what it actually used. */
|
|
24575
|
+
source: CapacitySourceSchema,
|
|
24576
|
+
/** Camera detection rate the capacity is counted in (the fastest camera's fps). */
|
|
24577
|
+
cameraFps: number(),
|
|
24578
|
+
/** The Auto tune capacity floor the models were picked at. */
|
|
24579
|
+
minSessionsPerDevice: number(),
|
|
24580
|
+
nodes: array(SuggestedNodeShareSchema).readonly()
|
|
24581
|
+
});
|
|
24582
|
+
/**
|
|
24583
|
+
* Where the node and device shares come from (D750, D755).
|
|
24584
|
+
* - `hardware` (default) — computed by the system from each node's static
|
|
24585
|
+
* capacity (its accelerators at their Auto tune models, from the measured
|
|
24586
|
+
* latency table), recomputed whenever a node or device joins, leaves, is
|
|
24587
|
+
* switched on or off, or changes model. No load input.
|
|
24588
|
+
* - `benchmark` — the same, from each node's measured capacity (node
|
|
24589
|
+
* benchmark results); a node without results falls back to `hardware`.
|
|
24590
|
+
* - `manual` — the operator's stored sliders.
|
|
24591
|
+
* Either way a node or device that cannot take sessions gives its share to
|
|
24592
|
+
* the others in proportion; the stored values are never rewritten for that.
|
|
24593
|
+
*/
|
|
24594
|
+
var ShareSourceSchema = _enum([
|
|
24595
|
+
"hardware",
|
|
24596
|
+
"benchmark",
|
|
24597
|
+
"manual"
|
|
24598
|
+
]);
|
|
24599
|
+
var SetShareSourceInputSchema = object({ source: ShareSourceSchema });
|
|
24600
|
+
object({
|
|
24601
|
+
nodes: record(string(), number()),
|
|
24602
|
+
devices: record(string(), record(string(), number()))
|
|
24603
|
+
});
|
|
24604
|
+
var EffectiveDeviceShareSchema = object({
|
|
24605
|
+
deviceKey: string(),
|
|
24606
|
+
/** Can take sessions now (enabled, available, can run the root). */
|
|
24607
|
+
eligible: boolean(),
|
|
24608
|
+
/** The share the source assigns, as a percentage of the node's devices. */
|
|
24609
|
+
configuredPct: number(),
|
|
24610
|
+
/** The share actually used, after an ineligible device's share went to the others. */
|
|
24611
|
+
effectivePct: number()
|
|
24612
|
+
});
|
|
24613
|
+
var EffectiveNodeShareSchema = object({
|
|
24614
|
+
nodeId: string(),
|
|
24615
|
+
eligible: boolean(),
|
|
24616
|
+
configuredPct: number(),
|
|
24617
|
+
effectivePct: number(),
|
|
24618
|
+
/** Automatic sources: what this node's share was computed from; null under `manual` or before the first answer. */
|
|
24619
|
+
capacitySource: CapacitySourceSchema.nullable(),
|
|
24620
|
+
/** Automatic `benchmark`: why this node used `hardware` instead. */
|
|
24621
|
+
capacityFallback: CapacityFallbackSchema.nullable(),
|
|
24622
|
+
devices: array(EffectiveDeviceShareSchema).readonly()
|
|
24623
|
+
});
|
|
24624
|
+
var EffectiveSharesSchema = object({
|
|
24625
|
+
source: ShareSourceSchema,
|
|
24626
|
+
policy: SessionPlacementPolicySchema,
|
|
24627
|
+
/** An automatic source with no computed answer yet: the stored sliders are used meanwhile. */
|
|
24628
|
+
autoPending: boolean(),
|
|
24629
|
+
/** When the automatic shares were last computed (ms epoch); null = never. */
|
|
24630
|
+
computedAt: number().nullable(),
|
|
24631
|
+
/** What made the system recompute them last. */
|
|
24632
|
+
trigger: string().nullable(),
|
|
24633
|
+
nodes: array(EffectiveNodeShareSchema).readonly(),
|
|
24634
|
+
/** The relative weights the election reads (before eligibility). */
|
|
24635
|
+
nodeWeights: record(string(), number()),
|
|
24636
|
+
deviceWeights: record(string(), record(string(), number()))
|
|
24637
|
+
});
|
|
24615
24638
|
object({
|
|
24616
24639
|
activeCameras: number(),
|
|
24617
24640
|
throttledCameras: number(),
|
|
@@ -25791,8 +25814,10 @@ var CameraStepOverridePatchSchema = object({
|
|
|
25791
25814
|
modelId: string().optional(),
|
|
25792
25815
|
settings: record(string(), unknown()).readonly().optional()
|
|
25793
25816
|
});
|
|
25817
|
+
var CameraStepSettingsSchema = record(string(), record(string(), unknown()).readonly());
|
|
25794
25818
|
var CameraPipelineSettingsSchema = object({
|
|
25795
25819
|
stepToggles: record(string(), boolean()).optional(),
|
|
25820
|
+
stepSettings: CameraStepSettingsSchema.optional(),
|
|
25796
25821
|
stepOverridesByDevice: record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).optional(),
|
|
25797
25822
|
pipelineByAgent: record(string(), CameraPipelineForAgentSchema).optional()
|
|
25798
25823
|
});
|
|
@@ -26356,6 +26381,13 @@ method(object({
|
|
|
26356
26381
|
}), object({ success: literal(true) }), {
|
|
26357
26382
|
kind: "mutation",
|
|
26358
26383
|
auth: "admin"
|
|
26384
|
+
}), method(object({
|
|
26385
|
+
deviceId: number(),
|
|
26386
|
+
addonId: string(),
|
|
26387
|
+
settings: record(string(), unknown()).nullable()
|
|
26388
|
+
}), object({ success: literal(true) }), {
|
|
26389
|
+
kind: "mutation",
|
|
26390
|
+
auth: "admin"
|
|
26359
26391
|
}), method(object({
|
|
26360
26392
|
deviceId: number(),
|
|
26361
26393
|
agentNodeId: string(),
|
|
@@ -42529,6 +42561,12 @@ Object.freeze({
|
|
|
42529
42561
|
addonId: null,
|
|
42530
42562
|
access: "create"
|
|
42531
42563
|
},
|
|
42564
|
+
"pipelineOrchestrator.setCameraStepSettings": {
|
|
42565
|
+
capName: "pipeline-orchestrator",
|
|
42566
|
+
capScope: "system",
|
|
42567
|
+
addonId: null,
|
|
42568
|
+
access: "create"
|
|
42569
|
+
},
|
|
42532
42570
|
"pipelineOrchestrator.setCameraStepToggle": {
|
|
42533
42571
|
capName: "pipeline-orchestrator",
|
|
42534
42572
|
capScope: "system",
|
|
@@ -47977,6 +48015,11 @@ Object.freeze({
|
|
|
47977
48015
|
form: "single",
|
|
47978
48016
|
optional: false
|
|
47979
48017
|
}],
|
|
48018
|
+
"pipelineOrchestrator.setCameraStepSettings": [{
|
|
48019
|
+
name: "deviceId",
|
|
48020
|
+
form: "single",
|
|
48021
|
+
optional: false
|
|
48022
|
+
}],
|
|
47980
48023
|
"pipelineOrchestrator.setCameraStepToggle": [{
|
|
47981
48024
|
name: "deviceId",
|
|
47982
48025
|
form: "single",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { b as i, y as a } from "./responsive-
|
|
1
|
+
import { b as e, g as t, l as n, u as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.mjs";
|
|
2
|
+
import { b as i, y as a } from "./responsive-CvxBWUH9.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
4
|
var l = i("chevron-down", [["path", {
|
|
5
5
|
d: "m6 9 6 6 6-6",
|
|
@@ -10,11 +10,11 @@ var l = i("chevron-down", [["path", {
|
|
|
10
10
|
}]]);
|
|
11
11
|
//#endregion
|
|
12
12
|
//#region ../ui-library/src/composites/widget-panel.tsx
|
|
13
|
-
|
|
14
|
-
function d({ title:
|
|
15
|
-
let [p, m] =
|
|
13
|
+
e();
|
|
14
|
+
function d({ title: e, icon: n, headerRight: r, collapsible: i = !1, defaultOpen: a = !0, bodyClassName: d = "p-3", children: f }) {
|
|
15
|
+
let [p, m] = t(a), h = !i || p, g = /* @__PURE__ */ s(c, { children: [/* @__PURE__ */ s("span", {
|
|
16
16
|
className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-wider text-foreground",
|
|
17
|
-
children: [n,
|
|
17
|
+
children: [n, e]
|
|
18
18
|
}), i ? o(p ? l : u, { className: "h-3.5 w-3.5 text-foreground-subtle" }) : r] }), _ = `px-4 py-2 flex items-center justify-between ${h ? "border-b border-border" : ""}`;
|
|
19
19
|
return /* @__PURE__ */ s("div", {
|
|
20
20
|
className: "rounded-lg border border-border bg-surface overflow-hidden",
|
|
@@ -32,13 +32,13 @@ function d({ title: t, icon: n, headerRight: r, collapsible: i = !1, defaultOpen
|
|
|
32
32
|
}) : null]
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
e(), a("camstack:player-overlays-state", null);
|
|
36
36
|
var f = a("camstack:player-overlays-actions", null);
|
|
37
37
|
function p(e) {
|
|
38
|
-
let
|
|
39
|
-
|
|
40
|
-
if (!(!
|
|
41
|
-
}, [
|
|
38
|
+
let t = n(f);
|
|
39
|
+
r(() => {
|
|
40
|
+
if (!(!t || !e)) return t.setLayer(e), () => t.removeLayer(e.id);
|
|
41
|
+
}, [t, e]);
|
|
42
42
|
}
|
|
43
43
|
//#endregion
|
|
44
44
|
export { l as i, d as n, u as r, p as t };
|
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-r8bN15Ml.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as e, b as t, c as n, g as r, l as i, m as a, n as o, r as s, t as c, u as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-CHL8loOl.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 {
|
|
3
|
+
import { f as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CL_c14D8.mjs";
|
|
4
4
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
5
|
-
|
|
5
|
+
t();
|
|
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) => {
|
|
7
7
|
let t = p(e);
|
|
8
8
|
return t.charAt(0).toUpperCase() + t.slice(1);
|
|
@@ -19,23 +19,23 @@ var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) =
|
|
|
19
19
|
}, g = (e) => {
|
|
20
20
|
for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
|
|
21
21
|
return !1;
|
|
22
|
-
}, _ =
|
|
22
|
+
}, _ = s(({ color: e = "currentColor", size: t = 24, strokeWidth: n = 2, absoluteStrokeWidth: r, className: i = "", children: a, iconNode: s, ...c }, l) => o("svg", {
|
|
23
23
|
ref: l,
|
|
24
24
|
...h,
|
|
25
25
|
width: t,
|
|
26
26
|
height: t,
|
|
27
27
|
stroke: e,
|
|
28
28
|
strokeWidth: r ? Number(n) * 24 / Number(t) : n,
|
|
29
|
-
className: d("lucide",
|
|
30
|
-
...!
|
|
29
|
+
className: d("lucide", i),
|
|
30
|
+
...!a && !g(c) && { "aria-hidden": "true" },
|
|
31
31
|
...c
|
|
32
|
-
}, [...s.map(([e, t]) =>
|
|
32
|
+
}, [...s.map(([e, t]) => o(e, t)), ...Array.isArray(a) ? a : [a]]));
|
|
33
33
|
//#endregion
|
|
34
34
|
//#region ../../node_modules/lucide-react/dist/esm/createLucideIcon.js
|
|
35
|
-
|
|
35
|
+
t();
|
|
36
36
|
var v = (e, t) => {
|
|
37
|
-
let n =
|
|
38
|
-
ref:
|
|
37
|
+
let n = s(({ className: n, ...r }, i) => o(_, {
|
|
38
|
+
ref: i,
|
|
39
39
|
iconNode: t,
|
|
40
40
|
className: d(`lucide-${f(m(e))}`, `lucide-${e}`, n),
|
|
41
41
|
...r
|
|
@@ -44,32 +44,32 @@ var v = (e, t) => {
|
|
|
44
44
|
};
|
|
45
45
|
//#endregion
|
|
46
46
|
//#region ../ui-library/src/lib/shared-context.ts
|
|
47
|
-
|
|
47
|
+
t();
|
|
48
48
|
function y(e, t) {
|
|
49
|
-
if (typeof globalThis > "u") return
|
|
49
|
+
if (typeof globalThis > "u") return c(t);
|
|
50
50
|
let n = globalThis.__camstackSharedContexts, r = n ?? /* @__PURE__ */ new Map();
|
|
51
51
|
n || (globalThis.__camstackSharedContexts = r);
|
|
52
52
|
let i = r.get(e);
|
|
53
53
|
if (i) return i;
|
|
54
|
-
let a =
|
|
54
|
+
let a = c(t);
|
|
55
55
|
return r.set(e, a), a;
|
|
56
56
|
}
|
|
57
57
|
//#endregion
|
|
58
58
|
//#region ../ui-library/src/contexts/system-context.tsx
|
|
59
|
-
|
|
59
|
+
t();
|
|
60
60
|
var b = y("camstack:system", null);
|
|
61
61
|
function x() {
|
|
62
|
-
let e =
|
|
62
|
+
let e = i(b);
|
|
63
63
|
if (!e) throw Error("useSystem(): no <SystemProvider> in tree");
|
|
64
64
|
return e;
|
|
65
65
|
}
|
|
66
66
|
//#endregion
|
|
67
67
|
//#region ../ui-library/src/hooks/use-device-proxy.ts
|
|
68
|
-
|
|
68
|
+
t();
|
|
69
69
|
var S = "capability.binding-changed";
|
|
70
70
|
function C(e, t) {
|
|
71
|
-
let [
|
|
72
|
-
return
|
|
71
|
+
let [n, i] = r(null);
|
|
72
|
+
return l(() => {
|
|
73
73
|
if (t === null) {
|
|
74
74
|
i(null);
|
|
75
75
|
return;
|
|
@@ -94,11 +94,11 @@ function C(e, t) {
|
|
|
94
94
|
return () => {
|
|
95
95
|
n = !0, a?.unsubscribe();
|
|
96
96
|
};
|
|
97
|
-
}, [e, t]), a(() =>
|
|
97
|
+
}, [e, t]), a(() => n ? u(e, n) : null, [e, n]);
|
|
98
98
|
}
|
|
99
|
-
function w(
|
|
100
|
-
let r =
|
|
101
|
-
return
|
|
99
|
+
function w(t) {
|
|
100
|
+
let r = n((e) => t ? t.subscribe(() => e()) : () => void 0, [t]), i = n(() => t?.value, [t]);
|
|
101
|
+
return e(r, i, i);
|
|
102
102
|
}
|
|
103
103
|
//#endregion
|
|
104
104
|
//#region ../ui-library/src/lib/cap-error.ts
|