@camstack/addon-osd-manager 0.1.182 → 0.1.184
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-zw2RZO3c.mjs → MotionZonesSettings-D6SgWxHM.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-MfIH7-Fl.mjs → PrivacyMaskSettings-CVXHA1TY.mjs} +4 -4
- package/dist/{SceneMonitorEditor-B9fe5VoP.mjs → SceneMonitorEditor-DfXktuc-.mjs} +3 -3
- package/dist/_stub.js +2106 -2106
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-16Cp8rtD.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-WQk_9a7Q.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CTH5s3ZX.mjs +26 -0
- package/dist/addon-osd-manager.css +1 -1
- package/dist/{hostInit-CGQt1oAH.mjs → hostInit-B13AG8B3.mjs} +3 -3
- package/dist/index.js +239 -181
- package/dist/index.mjs +239 -181
- package/dist/{player-overlays-DBos84dy.mjs → player-overlays-2U369Hn_.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-CSrcORLE.mjs → responsive-CX9nMQmP.mjs} +1 -1
- package/dist/{scene-monitor-copy-DvcsgzM2.mjs → scene-monitor-copy-mbiaJvpA.mjs} +1 -1
- package/dist/{square-BALj2dYA.mjs → square-c2Ehe_cj.mjs} +1 -1
- package/dist/{trash-2-BMJXCVQ3.mjs → trash-2-C8s1nBjB.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-sz6-3sRO.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Bi3cgGjf.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CWgx3QDa.mjs +0 -26
package/dist/index.mjs
CHANGED
|
@@ -5378,7 +5378,7 @@ var ZodIssueCode = {
|
|
|
5378
5378
|
var ZodFirstPartyTypeKind;
|
|
5379
5379
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5380
5380
|
//#endregion
|
|
5381
|
-
//#region ../types/dist/sleep-
|
|
5381
|
+
//#region ../types/dist/sleep-DAJ9Er57.mjs
|
|
5382
5382
|
/**
|
|
5383
5383
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5384
5384
|
* window to float samples (D455).
|
|
@@ -28081,148 +28081,17 @@ var pipelineExecutorCapability = {
|
|
|
28081
28081
|
}
|
|
28082
28082
|
};
|
|
28083
28083
|
/**
|
|
28084
|
-
* Wire shapes of the Load balancing surface (D748): the session placement
|
|
28085
|
-
* policy, the atomic share write, the observed placement statistics, the
|
|
28086
|
-
* hardware share suggestion and the stale device pins.
|
|
28087
|
-
*/
|
|
28088
|
-
/**
|
|
28089
|
-
* How a new detection session picks its node and device.
|
|
28090
|
-
* - `least-loaded` — the historical rule: lowest `attached / weight`, a
|
|
28091
|
-
* constant node order at a tie (D37). An idle node always ties at 0, so a
|
|
28092
|
-
* weight only bites once a node already holds a session.
|
|
28093
|
-
* - `share` — the share of PARALLEL sessions is held to the weights, and a
|
|
28094
|
-
* full or drowning node yields to a free one (D748).
|
|
28095
|
-
*/
|
|
28096
|
-
var SessionPlacementPolicySchema = _enum(["least-loaded", "share"]);
|
|
28097
|
-
var LoadBalancingSharesInputSchema = object({
|
|
28098
|
-
/** nodeId → share (> 0). A node left out keeps its weight. */
|
|
28099
|
-
nodes: record(string(), number().positive()).default({}),
|
|
28100
|
-
/** nodeId → deviceKey → share (> 0). A device left out keeps its weight. */
|
|
28101
|
-
devices: record(string(), record(string(), number().positive())).default({})
|
|
28102
|
-
});
|
|
28103
|
-
var PlacementStatsInputSchema = object({
|
|
28104
|
-
/** Window the observed shares are averaged over (default 1 h, max 24 h). */
|
|
28105
|
-
windowMs: number().int().min(6e4).max(1440 * 60 * 1e3).default(3600 * 1e3) });
|
|
28106
|
-
var PlacementDeviceStatsSchema = object({
|
|
28107
|
-
deviceKey: string(),
|
|
28108
|
-
/** Sessions running on this device now. */
|
|
28109
|
-
sessionsNow: number(),
|
|
28110
|
-
/** Sessions started on this device inside the window. */
|
|
28111
|
-
sessionsStarted: number(),
|
|
28112
|
-
/** Time-weighted share of the node's parallel sessions over the window (0–1); null = no session ran. */
|
|
28113
|
-
observedShare: number().nullable()
|
|
28114
|
-
});
|
|
28115
|
-
var PlacementNodeStatsSchema = object({
|
|
28116
|
-
nodeId: string(),
|
|
28117
|
-
sessionsNow: number(),
|
|
28118
|
-
sessionsStarted: number(),
|
|
28119
|
-
/** Time-weighted share of the cluster's parallel sessions over the window (0–1); null = none ran. */
|
|
28120
|
-
observedShare: number().nullable(),
|
|
28121
|
-
/** Most sessions this node ran at once inside the window. */
|
|
28122
|
-
peakSessions: number(),
|
|
28123
|
-
/** Sessions a share election handed elsewhere because this node was full or drowning. */
|
|
28124
|
-
yieldsAway: number(),
|
|
28125
|
-
devices: array(PlacementDeviceStatsSchema).readonly()
|
|
28126
|
-
});
|
|
28127
|
-
/** A camera's device pin that the session path cannot honour. */
|
|
28128
|
-
var StaleDevicePinSchema = object({
|
|
28129
|
-
deviceId: number(),
|
|
28130
|
-
deviceKey: string(),
|
|
28131
|
-
/** `disabled` — the key exists on some node but is not enabled anywhere; `absent` — no node has it. */
|
|
28132
|
-
reason: _enum(["disabled", "absent"])
|
|
28133
|
-
});
|
|
28134
|
-
var PlacementStatsSchema = object({
|
|
28135
|
-
policy: SessionPlacementPolicySchema,
|
|
28136
|
-
windowMs: number(),
|
|
28137
|
-
/** How much of the window was actually observed (the hub keeps it in memory). */
|
|
28138
|
-
observedForMs: number(),
|
|
28139
|
-
sessionsNow: number(),
|
|
28140
|
-
/** Most parallel sessions across the cluster inside the window. */
|
|
28141
|
-
clusterPeakSessions: number(),
|
|
28142
|
-
nodes: array(PlacementNodeStatsSchema).readonly(),
|
|
28143
|
-
stalePins: array(StaleDevicePinSchema).readonly()
|
|
28144
|
-
});
|
|
28145
|
-
var SuggestSharesInputSchema = object({ headroom: number().min(.3).max(.5).default(.4) });
|
|
28146
|
-
var SuggestedDeviceShareSchema = object({
|
|
28147
|
-
deviceKey: string(),
|
|
28148
|
-
/** Share of the node (0–100, rounded). */
|
|
28149
|
-
share: number(),
|
|
28150
|
-
modelId: string().nullable(),
|
|
28151
|
-
/** Inferences per second at that model, from the measured table. */
|
|
28152
|
-
fps: number().nullable(),
|
|
28153
|
-
measured: boolean(),
|
|
28154
|
-
/** Advisory session cap: ⌊fps × (1 − headroom) / camera fps⌋. Never enforced. */
|
|
28155
|
-
suggestedMaxSessions: number().nullable()
|
|
28156
|
-
});
|
|
28157
|
-
var SuggestedNodeShareSchema = object({
|
|
28158
|
-
nodeId: string(),
|
|
28159
|
-
/** Share of the cluster (0–100, rounded); null = node skipped (offline, unknown hardware). */
|
|
28160
|
-
share: number().nullable(),
|
|
28161
|
-
/** Parallel sessions the node sustains at the suggested models with the headroom kept free. */
|
|
28162
|
-
capacitySessions: number(),
|
|
28163
|
-
devices: array(SuggestedDeviceShareSchema).readonly(),
|
|
28164
|
-
skippedReason: string().nullable()
|
|
28165
|
-
});
|
|
28166
|
-
var SuggestSharesResultSchema = object({
|
|
28167
|
-
headroom: number(),
|
|
28168
|
-
/** Camera detection rate the capacity is counted in (the fastest camera's fps). */
|
|
28169
|
-
cameraFps: number(),
|
|
28170
|
-
/** How many share → model → capacity rounds ran before the shares stopped moving (≤ 3). */
|
|
28171
|
-
iterations: number(),
|
|
28172
|
-
nodes: array(SuggestedNodeShareSchema).readonly()
|
|
28173
|
-
});
|
|
28174
|
-
/**
|
|
28175
|
-
* Where the node and device shares come from (D750).
|
|
28176
|
-
* - `auto` — computed by the system from the cluster's measured capacity at
|
|
28177
|
-
* the Auto tune models, and recomputed whenever a node or device joins,
|
|
28178
|
-
* leaves, is switched on or off, or changes model.
|
|
28179
|
-
* - `manual` — the operator's stored sliders. A node or device that cannot
|
|
28180
|
-
* take sessions gives its share to the others in proportion; the stored
|
|
28181
|
-
* values are never rewritten for that.
|
|
28182
|
-
*/
|
|
28183
|
-
var ShareSourceSchema = _enum(["auto", "manual"]);
|
|
28184
|
-
var SetShareSourceInputSchema = object({ source: ShareSourceSchema });
|
|
28185
|
-
object({
|
|
28186
|
-
nodes: record(string(), number()),
|
|
28187
|
-
devices: record(string(), record(string(), number()))
|
|
28188
|
-
});
|
|
28189
|
-
var EffectiveDeviceShareSchema = object({
|
|
28190
|
-
deviceKey: string(),
|
|
28191
|
-
/** Can take sessions now (enabled, available, can run the root). */
|
|
28192
|
-
eligible: boolean(),
|
|
28193
|
-
/** The share the source assigns, as a percentage of the node's devices. */
|
|
28194
|
-
configuredPct: number(),
|
|
28195
|
-
/** The share actually used, after an ineligible device's share went to the others. */
|
|
28196
|
-
effectivePct: number()
|
|
28197
|
-
});
|
|
28198
|
-
var EffectiveNodeShareSchema = object({
|
|
28199
|
-
nodeId: string(),
|
|
28200
|
-
eligible: boolean(),
|
|
28201
|
-
configuredPct: number(),
|
|
28202
|
-
effectivePct: number(),
|
|
28203
|
-
devices: array(EffectiveDeviceShareSchema).readonly()
|
|
28204
|
-
});
|
|
28205
|
-
var EffectiveSharesSchema = object({
|
|
28206
|
-
source: ShareSourceSchema,
|
|
28207
|
-
policy: SessionPlacementPolicySchema,
|
|
28208
|
-
/** `auto` with no computed answer yet: the stored sliders are used meanwhile. */
|
|
28209
|
-
autoPending: boolean(),
|
|
28210
|
-
/** When the automatic shares were last computed (ms epoch); null = never. */
|
|
28211
|
-
computedAt: number().nullable(),
|
|
28212
|
-
/** What made the system recompute them last. */
|
|
28213
|
-
trigger: string().nullable(),
|
|
28214
|
-
nodes: array(EffectiveNodeShareSchema).readonly(),
|
|
28215
|
-
/** The relative weights the election reads (before eligibility). */
|
|
28216
|
-
nodeWeights: record(string(), number()),
|
|
28217
|
-
deviceWeights: record(string(), record(string(), number()))
|
|
28218
|
-
});
|
|
28219
|
-
/**
|
|
28220
28084
|
* The wire shapes of the Auto tune plan and apply (D745), used by the
|
|
28221
28085
|
* `pipeline-orchestrator` cap. The recommender's own types
|
|
28222
|
-
* (`recommend.ts
|
|
28086
|
+
* (`recommend.ts`) are the TS face of the same data; these
|
|
28223
28087
|
* schemas are what crosses the cap boundary.
|
|
28224
28088
|
*/
|
|
28225
28089
|
var ModelFormatSchema$1 = _enum(MODEL_FORMATS);
|
|
28090
|
+
/** The operator's range for it. */
|
|
28091
|
+
var MIN_SESSIONS_PER_DEVICE_RANGE = {
|
|
28092
|
+
min: 1,
|
|
28093
|
+
max: 8
|
|
28094
|
+
};
|
|
28226
28095
|
var HardwareClassIdSchema = _enum([
|
|
28227
28096
|
"intel-core-ultra",
|
|
28228
28097
|
"intel-n-series",
|
|
@@ -28240,8 +28109,9 @@ var AcceleratorKindSchema = _enum([
|
|
|
28240
28109
|
]);
|
|
28241
28110
|
var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
28242
28111
|
object({
|
|
28243
|
-
kind: literal("
|
|
28244
|
-
|
|
28112
|
+
kind: literal("capacity"),
|
|
28113
|
+
sessions: number(),
|
|
28114
|
+
minSessions: number()
|
|
28245
28115
|
}),
|
|
28246
28116
|
object({
|
|
28247
28117
|
kind: literal("tie-faster"),
|
|
@@ -28256,16 +28126,13 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
28256
28126
|
}),
|
|
28257
28127
|
object({
|
|
28258
28128
|
kind: literal("no-fit-lightest"),
|
|
28259
|
-
|
|
28129
|
+
sessions: number(),
|
|
28130
|
+
minSessions: number()
|
|
28260
28131
|
}),
|
|
28261
28132
|
object({
|
|
28262
28133
|
kind: literal("derived-latency"),
|
|
28263
28134
|
modelId: string()
|
|
28264
28135
|
}),
|
|
28265
|
-
object({
|
|
28266
|
-
kind: literal("estimated-load"),
|
|
28267
|
-
observedForMs: number().nullable()
|
|
28268
|
-
}),
|
|
28269
28136
|
object({ kind: literal("cpu-device") }),
|
|
28270
28137
|
object({ kind: literal("coral-untouched") }),
|
|
28271
28138
|
object({ kind: literal("device-disabled") }),
|
|
@@ -28281,28 +28148,13 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
28281
28148
|
format: ModelFormatSchema$1
|
|
28282
28149
|
})
|
|
28283
28150
|
]);
|
|
28284
|
-
var DeviceDemandSchema = object({
|
|
28285
|
-
nodeId: string(),
|
|
28286
|
-
deviceKey: string(),
|
|
28287
|
-
demandFps: number(),
|
|
28288
|
-
maxCameraFps: number(),
|
|
28289
|
-
alwaysOnCameras: number(),
|
|
28290
|
-
onMotionSessions: number(),
|
|
28291
|
-
onMotionSource: _enum([
|
|
28292
|
-
"observed-24h",
|
|
28293
|
-
"estimate",
|
|
28294
|
-
"none"
|
|
28295
|
-
]),
|
|
28296
|
-
observedForMs: number().nullable(),
|
|
28297
|
-
/** How on-motion sessions were charged: per-device observation, or split by share (D748). */
|
|
28298
|
-
placement: SessionPlacementPolicySchema
|
|
28299
|
-
});
|
|
28300
28151
|
var DeviceModelChoiceSchema = object({
|
|
28301
28152
|
modelId: string(),
|
|
28302
28153
|
p50Ms: number(),
|
|
28303
28154
|
fps: number(),
|
|
28304
28155
|
measured: boolean(),
|
|
28305
|
-
|
|
28156
|
+
/** Parallel sessions at the camera rate with the headroom kept free: ⌊fps × (1 − headroom) / camera fps⌋. */
|
|
28157
|
+
capacitySessions: number(),
|
|
28306
28158
|
personRecall: number()
|
|
28307
28159
|
});
|
|
28308
28160
|
var DeviceRecommendationSchema = object({
|
|
@@ -28310,7 +28162,6 @@ var DeviceRecommendationSchema = object({
|
|
|
28310
28162
|
accelerator: AcceleratorKindSchema.nullable(),
|
|
28311
28163
|
enabled: boolean(),
|
|
28312
28164
|
available: boolean(),
|
|
28313
|
-
demand: DeviceDemandSchema.nullable(),
|
|
28314
28165
|
chosen: DeviceModelChoiceSchema.nullable(),
|
|
28315
28166
|
reasons: array(RecommendationReasonSchema).readonly()
|
|
28316
28167
|
});
|
|
@@ -28371,20 +28222,20 @@ var AutoTuneOptionsSchema = object({
|
|
|
28371
28222
|
/** Share of each accelerator's throughput kept free (0.3–0.5). */
|
|
28372
28223
|
headroom: number().min(.3).max(.5).default(.4),
|
|
28373
28224
|
/**
|
|
28374
|
-
*
|
|
28375
|
-
*
|
|
28376
|
-
*
|
|
28377
|
-
* is stored.
|
|
28225
|
+
* The least number of parallel sessions every device must sustain at the
|
|
28226
|
+
* camera rate with the headroom kept free (D755). The most accurate model
|
|
28227
|
+
* that reaches it wins.
|
|
28378
28228
|
*/
|
|
28379
|
-
|
|
28229
|
+
minSessionsPerDevice: number().int().min(MIN_SESSIONS_PER_DEVICE_RANGE.min).max(MIN_SESSIONS_PER_DEVICE_RANGE.max).default(2)
|
|
28380
28230
|
});
|
|
28381
28231
|
var AutoTunePlanSchema = object({
|
|
28382
28232
|
/** Hash of everything the apply will write — the apply refuses a different one. */
|
|
28383
28233
|
planHash: string(),
|
|
28384
28234
|
family: literal("yolov9"),
|
|
28385
28235
|
headroom: number(),
|
|
28386
|
-
|
|
28387
|
-
|
|
28236
|
+
minSessionsPerDevice: number(),
|
|
28237
|
+
/** The detection rate a session is counted at (the fastest camera running the pipeline root). */
|
|
28238
|
+
cameraFps: number(),
|
|
28388
28239
|
generatedAt: number(),
|
|
28389
28240
|
nodes: array(NodeRecommendationSchema).readonly(),
|
|
28390
28241
|
nodeChanges: array(NodeDeviceChangeSchema).readonly(),
|
|
@@ -28394,7 +28245,8 @@ var AutoTunePlanSchema = object({
|
|
|
28394
28245
|
});
|
|
28395
28246
|
var AutoTuneApplyInputSchema = object({
|
|
28396
28247
|
planHash: string(),
|
|
28397
|
-
headroom: number().min(.3).max(.5).default(.4)
|
|
28248
|
+
headroom: number().min(.3).max(.5).default(.4),
|
|
28249
|
+
minSessionsPerDevice: number().int().min(MIN_SESSIONS_PER_DEVICE_RANGE.min).max(MIN_SESSIONS_PER_DEVICE_RANGE.max).default(2)
|
|
28398
28250
|
});
|
|
28399
28251
|
var AutoTunePhaseResultSchema = object({
|
|
28400
28252
|
phase: _enum([
|
|
@@ -28426,6 +28278,177 @@ var AutoTuneApplyResultSchema = discriminatedUnion("kind", [
|
|
|
28426
28278
|
reason: _enum(["apply-in-progress"])
|
|
28427
28279
|
})
|
|
28428
28280
|
]);
|
|
28281
|
+
/**
|
|
28282
|
+
* Wire shapes of the Load balancing surface (D748): the session placement
|
|
28283
|
+
* policy, the atomic share write, the observed placement statistics, the
|
|
28284
|
+
* hardware share suggestion and the stale device pins.
|
|
28285
|
+
*/
|
|
28286
|
+
/**
|
|
28287
|
+
* How a new detection session picks its node and device.
|
|
28288
|
+
* - `least-loaded` — the historical rule: lowest `attached / weight`, a
|
|
28289
|
+
* constant node order at a tie (D37). An idle node always ties at 0, so a
|
|
28290
|
+
* weight only bites once a node already holds a session.
|
|
28291
|
+
* - `share` — the share of PARALLEL sessions is held to the weights, and a
|
|
28292
|
+
* full or drowning node yields to a free one (D748).
|
|
28293
|
+
*/
|
|
28294
|
+
var SessionPlacementPolicySchema = _enum(["least-loaded", "share"]);
|
|
28295
|
+
var LoadBalancingSharesInputSchema = object({
|
|
28296
|
+
/** nodeId → share (> 0). A node left out keeps its weight. */
|
|
28297
|
+
nodes: record(string(), number().positive()).default({}),
|
|
28298
|
+
/** nodeId → deviceKey → share (> 0). A device left out keeps its weight. */
|
|
28299
|
+
devices: record(string(), record(string(), number().positive())).default({})
|
|
28300
|
+
});
|
|
28301
|
+
var PlacementStatsInputSchema = object({
|
|
28302
|
+
/** Window the observed shares are averaged over (default 1 h, max 24 h). */
|
|
28303
|
+
windowMs: number().int().min(6e4).max(1440 * 60 * 1e3).default(3600 * 1e3) });
|
|
28304
|
+
var PlacementDeviceStatsSchema = object({
|
|
28305
|
+
deviceKey: string(),
|
|
28306
|
+
/** Sessions running on this device now. */
|
|
28307
|
+
sessionsNow: number(),
|
|
28308
|
+
/** Sessions started on this device inside the window. */
|
|
28309
|
+
sessionsStarted: number(),
|
|
28310
|
+
/** Time-weighted share of the node's parallel sessions over the window (0–1); null = no session ran. */
|
|
28311
|
+
observedShare: number().nullable()
|
|
28312
|
+
});
|
|
28313
|
+
var PlacementNodeStatsSchema = object({
|
|
28314
|
+
nodeId: string(),
|
|
28315
|
+
sessionsNow: number(),
|
|
28316
|
+
sessionsStarted: number(),
|
|
28317
|
+
/** Time-weighted share of the cluster's parallel sessions over the window (0–1); null = none ran. */
|
|
28318
|
+
observedShare: number().nullable(),
|
|
28319
|
+
/** Most sessions this node ran at once inside the window. */
|
|
28320
|
+
peakSessions: number(),
|
|
28321
|
+
/** Sessions a share election handed elsewhere because this node was full or drowning. */
|
|
28322
|
+
yieldsAway: number(),
|
|
28323
|
+
devices: array(PlacementDeviceStatsSchema).readonly()
|
|
28324
|
+
});
|
|
28325
|
+
/** A camera's device pin that the session path cannot honour. */
|
|
28326
|
+
var StaleDevicePinSchema = object({
|
|
28327
|
+
deviceId: number(),
|
|
28328
|
+
deviceKey: string(),
|
|
28329
|
+
/** `disabled` — the key exists on some node but is not enabled anywhere; `absent` — no node has it. */
|
|
28330
|
+
reason: _enum(["disabled", "absent"])
|
|
28331
|
+
});
|
|
28332
|
+
var PlacementStatsSchema = object({
|
|
28333
|
+
policy: SessionPlacementPolicySchema,
|
|
28334
|
+
windowMs: number(),
|
|
28335
|
+
/** How much of the window was actually observed (the hub keeps it in memory). */
|
|
28336
|
+
observedForMs: number(),
|
|
28337
|
+
sessionsNow: number(),
|
|
28338
|
+
/** Most parallel sessions across the cluster inside the window. */
|
|
28339
|
+
clusterPeakSessions: number(),
|
|
28340
|
+
nodes: array(PlacementNodeStatsSchema).readonly(),
|
|
28341
|
+
stalePins: array(StaleDevicePinSchema).readonly()
|
|
28342
|
+
});
|
|
28343
|
+
/**
|
|
28344
|
+
* Where an automatic share's capacity comes from (D755).
|
|
28345
|
+
* - `hardware` — the static capacity of each device at its Auto tune model:
|
|
28346
|
+
* the measured latency table for the node's hardware class.
|
|
28347
|
+
* - `benchmark` — the node's own measured capacity (node benchmark results).
|
|
28348
|
+
* A node with no results falls back to `hardware`, and says so.
|
|
28349
|
+
*/
|
|
28350
|
+
var CapacitySourceSchema = _enum(["hardware", "benchmark"]);
|
|
28351
|
+
/** Why a node under the `benchmark` source was sized from hardware instead. */
|
|
28352
|
+
var CapacityFallbackSchema = _enum(["no-benchmark-results", "partial-benchmark-results"]);
|
|
28353
|
+
var SuggestSharesInputSchema = object({
|
|
28354
|
+
headroom: number().min(.3).max(.5).default(.4),
|
|
28355
|
+
/** Default `hardware`. */
|
|
28356
|
+
source: CapacitySourceSchema.default("hardware")
|
|
28357
|
+
});
|
|
28358
|
+
var SuggestedDeviceShareSchema = object({
|
|
28359
|
+
deviceKey: string(),
|
|
28360
|
+
/** Share of the node (0–100, rounded). */
|
|
28361
|
+
share: number(),
|
|
28362
|
+
modelId: string().nullable(),
|
|
28363
|
+
/** Inferences per second at that model, from the measured table; null when sized by a benchmark. */
|
|
28364
|
+
fps: number().nullable(),
|
|
28365
|
+
/** False for a table cell derived from another chip; true for a measured cell or a benchmark. */
|
|
28366
|
+
measured: boolean(),
|
|
28367
|
+
/**
|
|
28368
|
+
* Advisory session cap: ⌊fps × (1 − headroom) / camera fps⌋ from the table,
|
|
28369
|
+
* or the benchmark's measured max sessions. Never enforced.
|
|
28370
|
+
*/
|
|
28371
|
+
suggestedMaxSessions: number().nullable()
|
|
28372
|
+
});
|
|
28373
|
+
var SuggestedNodeShareSchema = object({
|
|
28374
|
+
nodeId: string(),
|
|
28375
|
+
/** Share of the cluster (0–100, rounded); null = node skipped (offline, unknown hardware). */
|
|
28376
|
+
share: number().nullable(),
|
|
28377
|
+
/** Parallel sessions the node sustains at the suggested models with the headroom kept free. */
|
|
28378
|
+
capacitySessions: number(),
|
|
28379
|
+
devices: array(SuggestedDeviceShareSchema).readonly(),
|
|
28380
|
+
skippedReason: string().nullable(),
|
|
28381
|
+
/** What this node's capacity was read from; null when the node is skipped. */
|
|
28382
|
+
capacitySource: CapacitySourceSchema.nullable(),
|
|
28383
|
+
/** Set when the `benchmark` source was asked for and this node used `hardware`. */
|
|
28384
|
+
capacityFallback: CapacityFallbackSchema.nullable()
|
|
28385
|
+
});
|
|
28386
|
+
var SuggestSharesResultSchema = object({
|
|
28387
|
+
headroom: number(),
|
|
28388
|
+
/** The source asked for; each node says what it actually used. */
|
|
28389
|
+
source: CapacitySourceSchema,
|
|
28390
|
+
/** Camera detection rate the capacity is counted in (the fastest camera's fps). */
|
|
28391
|
+
cameraFps: number(),
|
|
28392
|
+
/** The Auto tune capacity floor the models were picked at. */
|
|
28393
|
+
minSessionsPerDevice: number(),
|
|
28394
|
+
nodes: array(SuggestedNodeShareSchema).readonly()
|
|
28395
|
+
});
|
|
28396
|
+
/**
|
|
28397
|
+
* Where the node and device shares come from (D750, D755).
|
|
28398
|
+
* - `hardware` (default) — computed by the system from each node's static
|
|
28399
|
+
* capacity (its accelerators at their Auto tune models, from the measured
|
|
28400
|
+
* latency table), recomputed whenever a node or device joins, leaves, is
|
|
28401
|
+
* switched on or off, or changes model. No load input.
|
|
28402
|
+
* - `benchmark` — the same, from each node's measured capacity (node
|
|
28403
|
+
* benchmark results); a node without results falls back to `hardware`.
|
|
28404
|
+
* - `manual` — the operator's stored sliders.
|
|
28405
|
+
* Either way a node or device that cannot take sessions gives its share to
|
|
28406
|
+
* the others in proportion; the stored values are never rewritten for that.
|
|
28407
|
+
*/
|
|
28408
|
+
var ShareSourceSchema = _enum([
|
|
28409
|
+
"hardware",
|
|
28410
|
+
"benchmark",
|
|
28411
|
+
"manual"
|
|
28412
|
+
]);
|
|
28413
|
+
var SetShareSourceInputSchema = object({ source: ShareSourceSchema });
|
|
28414
|
+
object({
|
|
28415
|
+
nodes: record(string(), number()),
|
|
28416
|
+
devices: record(string(), record(string(), number()))
|
|
28417
|
+
});
|
|
28418
|
+
var EffectiveDeviceShareSchema = object({
|
|
28419
|
+
deviceKey: string(),
|
|
28420
|
+
/** Can take sessions now (enabled, available, can run the root). */
|
|
28421
|
+
eligible: boolean(),
|
|
28422
|
+
/** The share the source assigns, as a percentage of the node's devices. */
|
|
28423
|
+
configuredPct: number(),
|
|
28424
|
+
/** The share actually used, after an ineligible device's share went to the others. */
|
|
28425
|
+
effectivePct: number()
|
|
28426
|
+
});
|
|
28427
|
+
var EffectiveNodeShareSchema = object({
|
|
28428
|
+
nodeId: string(),
|
|
28429
|
+
eligible: boolean(),
|
|
28430
|
+
configuredPct: number(),
|
|
28431
|
+
effectivePct: number(),
|
|
28432
|
+
/** Automatic sources: what this node's share was computed from; null under `manual` or before the first answer. */
|
|
28433
|
+
capacitySource: CapacitySourceSchema.nullable(),
|
|
28434
|
+
/** Automatic `benchmark`: why this node used `hardware` instead. */
|
|
28435
|
+
capacityFallback: CapacityFallbackSchema.nullable(),
|
|
28436
|
+
devices: array(EffectiveDeviceShareSchema).readonly()
|
|
28437
|
+
});
|
|
28438
|
+
var EffectiveSharesSchema = object({
|
|
28439
|
+
source: ShareSourceSchema,
|
|
28440
|
+
policy: SessionPlacementPolicySchema,
|
|
28441
|
+
/** An automatic source with no computed answer yet: the stored sliders are used meanwhile. */
|
|
28442
|
+
autoPending: boolean(),
|
|
28443
|
+
/** When the automatic shares were last computed (ms epoch); null = never. */
|
|
28444
|
+
computedAt: number().nullable(),
|
|
28445
|
+
/** What made the system recompute them last. */
|
|
28446
|
+
trigger: string().nullable(),
|
|
28447
|
+
nodes: array(EffectiveNodeShareSchema).readonly(),
|
|
28448
|
+
/** The relative weights the election reads (before eligibility). */
|
|
28449
|
+
nodeWeights: record(string(), number()),
|
|
28450
|
+
deviceWeights: record(string(), record(string(), number()))
|
|
28451
|
+
});
|
|
28429
28452
|
object({
|
|
28430
28453
|
activeCameras: number(),
|
|
28431
28454
|
throttledCameras: number(),
|
|
@@ -29837,8 +29860,10 @@ var CameraStepOverridePatchSchema = object({
|
|
|
29837
29860
|
modelId: string().optional(),
|
|
29838
29861
|
settings: record(string(), unknown()).readonly().optional()
|
|
29839
29862
|
});
|
|
29863
|
+
var CameraStepSettingsSchema = record(string(), record(string(), unknown()).readonly());
|
|
29840
29864
|
var CameraPipelineSettingsSchema = object({
|
|
29841
29865
|
stepToggles: record(string(), boolean()).optional(),
|
|
29866
|
+
stepSettings: CameraStepSettingsSchema.optional(),
|
|
29842
29867
|
stepOverridesByDevice: record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).optional(),
|
|
29843
29868
|
pipelineByAgent: record(string(), CameraPipelineForAgentSchema).optional()
|
|
29844
29869
|
});
|
|
@@ -30604,9 +30629,11 @@ var pipelineOrchestratorCapability = {
|
|
|
30604
30629
|
auth: "admin"
|
|
30605
30630
|
}),
|
|
30606
30631
|
/**
|
|
30607
|
-
* Auto tune (D745) — DRY RUN. Recommends ONE detector family
|
|
30608
|
-
* for the whole cluster from each node's static hardware class
|
|
30609
|
-
* measured latency table
|
|
30632
|
+
* Auto tune (D745, D755) — DRY RUN. Recommends ONE detector family
|
|
30633
|
+
* (YOLOv9) for the whole cluster from each node's static hardware class
|
|
30634
|
+
* and the measured latency table: per device, the most accurate model
|
|
30635
|
+
* that sustains at least `minSessionsPerDevice` parallel sessions at the
|
|
30636
|
+
* camera rate with the headroom kept free (no load input), and lists every write
|
|
30610
30637
|
* the apply would make: the node model pins set, the enrichment pins and
|
|
30611
30638
|
* model-bound thresholds removed (node level and per camera), and the
|
|
30612
30639
|
* per-camera detector thresholds cleared. Writes nothing. Step
|
|
@@ -30645,10 +30672,12 @@ var pipelineOrchestratorCapability = {
|
|
|
30645
30672
|
*/
|
|
30646
30673
|
getPlacementStats: method(PlacementStatsInputSchema, PlacementStatsSchema, { auth: "admin" }),
|
|
30647
30674
|
/**
|
|
30648
|
-
* Load balancing (D748) — shares proportional to each node's
|
|
30649
|
-
* capacity
|
|
30650
|
-
*
|
|
30651
|
-
*
|
|
30675
|
+
* Load balancing (D748, D755) — shares proportional to each node's
|
|
30676
|
+
* capacity in parallel sessions: from the latency table at the models
|
|
30677
|
+
* Auto tune picks (`hardware`), or from node benchmark results
|
|
30678
|
+
* (`benchmark`, each node without results falling back to `hardware` and
|
|
30679
|
+
* saying so). The automatic shares are exactly this answer. Per device,
|
|
30680
|
+
* an ADVISORY session cap. Writes nothing.
|
|
30652
30681
|
*/
|
|
30653
30682
|
suggestShares: method(SuggestSharesInputSchema, SuggestSharesResultSchema, { auth: "admin" }),
|
|
30654
30683
|
/**
|
|
@@ -30659,9 +30688,11 @@ var pipelineOrchestratorCapability = {
|
|
|
30659
30688
|
*/
|
|
30660
30689
|
getEffectiveShares: method(_void(), EffectiveSharesSchema, { auth: "admin" }),
|
|
30661
30690
|
/**
|
|
30662
|
-
* Load balancing (D750) — switch
|
|
30663
|
-
*
|
|
30664
|
-
*
|
|
30691
|
+
* Load balancing (D750, D755) — switch the share source: `hardware`
|
|
30692
|
+
* (automatic, from static capacity), `benchmark` (automatic, from node
|
|
30693
|
+
* benchmark results) or `manual`. Going manual seeds the sliders with the
|
|
30694
|
+
* current automatic shares (one atomic write), so nothing jumps; going
|
|
30695
|
+
* to an automatic source recomputes at once.
|
|
30665
30696
|
*/
|
|
30666
30697
|
setShareSource: method(SetShareSourceInputSchema, object({ success: literal(true) }), {
|
|
30667
30698
|
kind: "mutation",
|
|
@@ -30696,6 +30727,22 @@ var pipelineOrchestratorCapability = {
|
|
|
30696
30727
|
kind: "mutation",
|
|
30697
30728
|
auth: "admin"
|
|
30698
30729
|
}),
|
|
30730
|
+
/**
|
|
30731
|
+
* Write or clear one step's CAMERA-WIDE settings (D754) — the fields this
|
|
30732
|
+
* camera overrides on every accelerator it runs on. `settings` is the
|
|
30733
|
+
* whole field-level bag for that step (only the overridden keys; a
|
|
30734
|
+
* model-bound field travels with its binding key); `null` or `{}` clears
|
|
30735
|
+
* it. Merged at dispatch between the node base and the per-(node,device)
|
|
30736
|
+
* override, key by key.
|
|
30737
|
+
*/
|
|
30738
|
+
setCameraStepSettings: method(object({
|
|
30739
|
+
deviceId: number(),
|
|
30740
|
+
addonId: string(),
|
|
30741
|
+
settings: record(string(), unknown()).nullable()
|
|
30742
|
+
}), object({ success: literal(true) }), {
|
|
30743
|
+
kind: "mutation",
|
|
30744
|
+
auth: "admin"
|
|
30745
|
+
}),
|
|
30699
30746
|
/** Write or clear the wholesale per-agent pipeline override. Pass `pipeline: null` to drop the override. */
|
|
30700
30747
|
setCameraPipelineForAgent: method(object({
|
|
30701
30748
|
deviceId: number(),
|
|
@@ -52036,6 +52083,12 @@ Object.freeze({
|
|
|
52036
52083
|
addonId: null,
|
|
52037
52084
|
access: "create"
|
|
52038
52085
|
},
|
|
52086
|
+
"pipelineOrchestrator.setCameraStepSettings": {
|
|
52087
|
+
capName: "pipeline-orchestrator",
|
|
52088
|
+
capScope: "system",
|
|
52089
|
+
addonId: null,
|
|
52090
|
+
access: "create"
|
|
52091
|
+
},
|
|
52039
52092
|
"pipelineOrchestrator.setCameraStepToggle": {
|
|
52040
52093
|
capName: "pipeline-orchestrator",
|
|
52041
52094
|
capScope: "system",
|
|
@@ -57660,6 +57713,11 @@ Object.freeze({
|
|
|
57660
57713
|
form: "single",
|
|
57661
57714
|
optional: false
|
|
57662
57715
|
}],
|
|
57716
|
+
"pipelineOrchestrator.setCameraStepSettings": [{
|
|
57717
|
+
name: "deviceId",
|
|
57718
|
+
form: "single",
|
|
57719
|
+
optional: false
|
|
57720
|
+
}],
|
|
57663
57721
|
"pipelineOrchestrator.setCameraStepToggle": [{
|
|
57664
57722
|
name: "deviceId",
|
|
57665
57723
|
form: "single",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { b as e, g as t, l as n, u as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C5jUMd7X.mjs";
|
|
2
|
-
import { c as i, s as a } from "./responsive-
|
|
2
|
+
import { c as i, s as a } from "./responsive-CX9nMQmP.mjs";
|
|
3
3
|
import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
|
|
4
4
|
var l = i("chevron-down", [["path", {
|
|
5
5
|
d: "m6 9 6 6 6-6",
|
package/dist/remoteEntry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-
|
|
1
|
+
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Bi3cgGjf.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
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_osd_manager_page__loadShare__react__loadShare__.js-C5jUMd7X.mjs";
|
|
2
2
|
import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
|
|
3
|
-
import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
3
|
+
import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CTH5s3ZX.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) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { b as e, c as t, g as n, m as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C5jUMd7X.mjs";
|
|
2
|
-
import { c as i } from "./responsive-
|
|
2
|
+
import { c as i } from "./responsive-CX9nMQmP.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_osd_manager_page-
|
|
2756
|
+
return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-WQk_9a7Q.mjs")).catch((e) => {
|
|
2757
2757
|
throw tr = void 0, e;
|
|
2758
2758
|
}), tr;
|
|
2759
2759
|
}
|