@camstack/addon-post-analysis 1.1.40 → 1.1.42
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/{dist-DUcGHr9E.js → dist-BveR79HO.js} +127 -32
- package/dist/{dist-CO07v2sR.mjs → dist-Cgv25jQz.mjs} +127 -32
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/{node-B7HfyyIy.js → node-C-QTkE6o.js} +1 -1
- package/dist/pipeline-analytics/_stub.js +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-Nr0GGHJb.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DgeV9o4P.mjs} +2 -2
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CUKChUeW.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-4J_PYcat.mjs → hostInit-CnO6PKAO.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +452 -59
- package/dist/pipeline-analytics/index.mjs +451 -58
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-B4AjHkeF.mjs +0 -26
|
@@ -11246,10 +11246,7 @@ var ConfigUISchemaNullableBridge = custom();
|
|
|
11246
11246
|
var InferenceCapabilitiesBridge = custom();
|
|
11247
11247
|
var ModelAvailabilityListBridge = custom();
|
|
11248
11248
|
var PipelineRunResultBridge = custom();
|
|
11249
|
-
method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(_void(),
|
|
11250
|
-
kind: "mutation",
|
|
11251
|
-
auth: "admin"
|
|
11252
|
-
}), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
|
|
11249
|
+
method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
|
|
11253
11250
|
modelId: string(),
|
|
11254
11251
|
settings: record(string(), unknown()).readonly()
|
|
11255
11252
|
}))), method(object({ steps: record(string(), object({
|
|
@@ -11367,8 +11364,18 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
11367
11364
|
* - `runtime` — main camera-serving engine (no idle TTL).
|
|
11368
11365
|
* - `warm-override` — benchmark/test override held in the warm
|
|
11369
11366
|
* cache; auto-disposed after the idle TTL.
|
|
11367
|
+
* - `device-pool` — a concurrent per-device pool (Phase 2
|
|
11368
|
+
* multi-device, keyed by `deviceKey`) resolved
|
|
11369
|
+
* via `resolveDeviceFactory`. Runs alongside the
|
|
11370
|
+
* `runtime` engine on a DIFFERENT accelerator
|
|
11371
|
+
* (NPU / iGPU / Coral) — this is how the
|
|
11372
|
+
* Engines tab shows all pools running at once.
|
|
11370
11373
|
*/
|
|
11371
|
-
kind: _enum([
|
|
11374
|
+
kind: _enum([
|
|
11375
|
+
"runtime",
|
|
11376
|
+
"warm-override",
|
|
11377
|
+
"device-pool"
|
|
11378
|
+
]),
|
|
11372
11379
|
/** Native pid of the underlying Python pool (null when no pool). */
|
|
11373
11380
|
poolPid: number().nullable(),
|
|
11374
11381
|
/** ms since this factory was last used (null when not warm-tracked). */
|
|
@@ -11738,6 +11745,19 @@ var RunnerLocalLoadSchema = object({
|
|
|
11738
11745
|
avgInferenceTimeMs: number(),
|
|
11739
11746
|
/** Total queue depth across motion + detection queues. */
|
|
11740
11747
|
queueDepthTotal: number(),
|
|
11748
|
+
/**
|
|
11749
|
+
* Per-inference-device live load (multi-device C4). One entry per deviceKey
|
|
11750
|
+
* this runner currently has attached cameras on, so the orchestrator's second
|
|
11751
|
+
* `balance()` pass (over a node's devices) weights on real per-pool session
|
|
11752
|
+
* counts. Empty on single-device / pre-multi-device runners. `queueDepthTotal`
|
|
11753
|
+
* per device is 0 until the pool backlog gets a public accessor (follow-up).
|
|
11754
|
+
*/
|
|
11755
|
+
devices: array(object({
|
|
11756
|
+
deviceKey: string(),
|
|
11757
|
+
backend: string(),
|
|
11758
|
+
attachedCameras: number(),
|
|
11759
|
+
queueDepthTotal: number()
|
|
11760
|
+
})).default([]),
|
|
11741
11761
|
/** Hardware capability flags reported by this node. */
|
|
11742
11762
|
hardware: object({
|
|
11743
11763
|
hasGpu: boolean(),
|
|
@@ -17130,13 +17150,11 @@ var PipelineTemplateSchema = object({
|
|
|
17130
17150
|
createdAt: string(),
|
|
17131
17151
|
updatedAt: string()
|
|
17132
17152
|
});
|
|
17133
|
-
var
|
|
17134
|
-
enabled: boolean(),
|
|
17153
|
+
var DeviceStepConfigSchema = object({
|
|
17135
17154
|
modelId: string().optional(),
|
|
17136
|
-
settings: record(string(), unknown()).
|
|
17155
|
+
settings: record(string(), unknown()).optional()
|
|
17137
17156
|
});
|
|
17138
17157
|
var AgentPipelineSettingsSchema = object({
|
|
17139
|
-
addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
|
|
17140
17158
|
maxCameras: number().int().nonnegative().nullable().default(null),
|
|
17141
17159
|
/** Per-node detection weight (relative share for the quota balancer). */
|
|
17142
17160
|
detectWeight: number().positive().optional(),
|
|
@@ -17160,7 +17178,22 @@ var AgentPipelineSettingsSchema = object({
|
|
|
17160
17178
|
* it already uses to reach the hub). Set this only when the auto-detected
|
|
17161
17179
|
* address is wrong (multi-homed host, NAT, custom interface).
|
|
17162
17180
|
*/
|
|
17163
|
-
reachableHost: string().optional()
|
|
17181
|
+
reachableHost: string().optional(),
|
|
17182
|
+
/**
|
|
17183
|
+
* Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
|
|
17184
|
+
* weight, steps}. Absent / all-disabled ⇒ the node's single default
|
|
17185
|
+
* accelerator (safe default); two+ enabled ⇒ the dispatcher balances
|
|
17186
|
+
* detection sessions across them so they run CONCURRENTLY. `steps` is the
|
|
17187
|
+
* per-(node,device) BASE provisioning (`stepId → {modelId?, settings?}`) —
|
|
17188
|
+
* the default model/settings for every camera landing on that accelerator;
|
|
17189
|
+
* a stepId absent ⇒ the step uses that device's format default.
|
|
17190
|
+
*/
|
|
17191
|
+
inferenceDevices: record(string(), object({
|
|
17192
|
+
enabled: boolean(),
|
|
17193
|
+
weight: number().positive().optional(),
|
|
17194
|
+
maxSessions: number().int().positive().optional(),
|
|
17195
|
+
steps: record(string(), DeviceStepConfigSchema).optional()
|
|
17196
|
+
})).optional()
|
|
17164
17197
|
});
|
|
17165
17198
|
var CameraPipelineForAgentSchema = object({
|
|
17166
17199
|
steps: array(PipelineStepInputSchema).readonly(),
|
|
@@ -17170,14 +17203,13 @@ var CameraPipelineForAgentSchema = object({
|
|
|
17170
17203
|
}).nullable()
|
|
17171
17204
|
});
|
|
17172
17205
|
var CameraStepOverridePatchSchema = object({
|
|
17173
|
-
enabled: boolean().optional(),
|
|
17174
17206
|
modelId: string().optional(),
|
|
17175
17207
|
settings: record(string(), unknown()).readonly().optional()
|
|
17176
17208
|
});
|
|
17177
17209
|
var CameraPipelineSettingsSchema = object({
|
|
17178
17210
|
pinnedAgentNodeId: string().optional(),
|
|
17179
17211
|
stepToggles: record(string(), boolean()).optional(),
|
|
17180
|
-
|
|
17212
|
+
stepOverridesByDevice: record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).optional(),
|
|
17181
17213
|
pipelineByAgent: record(string(), CameraPipelineForAgentSchema).optional()
|
|
17182
17214
|
});
|
|
17183
17215
|
/**
|
|
@@ -17391,6 +17423,44 @@ var CameraStatusSchema = object({
|
|
|
17391
17423
|
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
17392
17424
|
fetchedAt: number()
|
|
17393
17425
|
});
|
|
17426
|
+
var NodeInferenceDeviceSchema = object({
|
|
17427
|
+
/** Stable per-node device key, e.g. `openvino:npu`, `edgetpu:usb`, `cpu`. */
|
|
17428
|
+
key: string(),
|
|
17429
|
+
backend: string(),
|
|
17430
|
+
device: string(),
|
|
17431
|
+
format: _enum(MODEL_FORMATS),
|
|
17432
|
+
/** Whether the node's live probe reports the device as usable right now. */
|
|
17433
|
+
available: boolean(),
|
|
17434
|
+
/**
|
|
17435
|
+
* Whether this device participates in dispatch. AUTO default (spec C2):
|
|
17436
|
+
* accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
|
|
17437
|
+
* entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
|
|
17438
|
+
* not a balanced target). An explicit stored value always wins; a stored-only
|
|
17439
|
+
* (unavailable) key keeps its stored value.
|
|
17440
|
+
*/
|
|
17441
|
+
enabled: boolean(),
|
|
17442
|
+
/** Relative balancer weight for the enabled device (default 1). */
|
|
17443
|
+
weight: number(),
|
|
17444
|
+
/** Per-device concurrent-session cap; null = unlimited (multi-device C4). */
|
|
17445
|
+
maxSessions: number().nullable(),
|
|
17446
|
+
/** Object-detection model the executor defaults to for this deviceKey. */
|
|
17447
|
+
defaultModelId: string(),
|
|
17448
|
+
/**
|
|
17449
|
+
* Per-(node,device) BASE provisioning (C7.2/C7.4) — the RAW stored
|
|
17450
|
+
* `stepId → {modelId?, settings?}` map from `inferenceDevices[key].steps`.
|
|
17451
|
+
* Absent/empty ⇒ no base (every step uses its device format default). The
|
|
17452
|
+
* UI cross-references `pipelineExecutor.getSchema` for the models actually
|
|
17453
|
+
* available per format; this is the stored selection that becomes the
|
|
17454
|
+
* default for EVERY camera landing on this accelerator.
|
|
17455
|
+
*/
|
|
17456
|
+
steps: record(string(), DeviceStepConfigSchema).optional()
|
|
17457
|
+
});
|
|
17458
|
+
var NodeInferenceDevicesSchema = object({
|
|
17459
|
+
nodeId: string(),
|
|
17460
|
+
/** False when the node's platform-probe was unreachable (no live device set). */
|
|
17461
|
+
reachable: boolean(),
|
|
17462
|
+
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17463
|
+
});
|
|
17394
17464
|
method(object({
|
|
17395
17465
|
deviceId: number(),
|
|
17396
17466
|
agentNodeId: string()
|
|
@@ -17400,7 +17470,13 @@ method(object({
|
|
|
17400
17470
|
}), method(object({ deviceId: number() }), object({ success: literal(true) }), {
|
|
17401
17471
|
kind: "mutation",
|
|
17402
17472
|
auth: "admin"
|
|
17403
|
-
}), method(
|
|
17473
|
+
}), method(object({
|
|
17474
|
+
deviceId: number(),
|
|
17475
|
+
deviceKey: string()
|
|
17476
|
+
}), object({ success: literal(true) }), {
|
|
17477
|
+
kind: "mutation",
|
|
17478
|
+
auth: "admin"
|
|
17479
|
+
}), method(object({ deviceId: number() }), object({ deviceKey: string().nullable() })), method(_void(), object({ migrated: number() }), {
|
|
17404
17480
|
kind: "mutation",
|
|
17405
17481
|
auth: "admin"
|
|
17406
17482
|
}), method(_void(), array(PipelineAssignmentSchema).readonly()), method(object({ deviceId: number() }), PipelineAssignmentSchema.nullable()), method(_void(), array(AgentLoadSummarySchema).readonly()), method(_void(), GlobalMetricsSchema), method(object({ deviceId: number() }), CameraMetricsSchema.nullable()), method(object({ nodeId: string() }), CapabilityBindingsSchema), method(object({
|
|
@@ -17434,13 +17510,7 @@ method(object({
|
|
|
17434
17510
|
}))), method(object({ agentNodeId: string() }), AgentPipelineSettingsSchema.nullable()), method(_void(), array(object({
|
|
17435
17511
|
nodeId: string(),
|
|
17436
17512
|
settings: AgentPipelineSettingsSchema
|
|
17437
|
-
})).readonly()), method(object({
|
|
17438
|
-
agentNodeId: string(),
|
|
17439
|
-
defaults: record(string(), AgentAddonConfigSchema)
|
|
17440
|
-
}), object({ success: literal(true) }), {
|
|
17441
|
-
kind: "mutation",
|
|
17442
|
-
auth: "admin"
|
|
17443
|
-
}), method(object({ agentNodeId: string() }), object({
|
|
17513
|
+
})).readonly()), method(object({ agentNodeId: string() }), object({
|
|
17444
17514
|
success: boolean(),
|
|
17445
17515
|
removed: boolean()
|
|
17446
17516
|
}), {
|
|
@@ -17472,7 +17542,18 @@ method(object({
|
|
|
17472
17542
|
}), object({ success: literal(true) }), {
|
|
17473
17543
|
kind: "mutation",
|
|
17474
17544
|
auth: "admin"
|
|
17475
|
-
}), method(object({
|
|
17545
|
+
}), method(object({
|
|
17546
|
+
agentNodeId: string(),
|
|
17547
|
+
inferenceDevices: record(string(), object({
|
|
17548
|
+
enabled: boolean(),
|
|
17549
|
+
weight: number().positive().optional(),
|
|
17550
|
+
maxSessions: number().int().positive().optional(),
|
|
17551
|
+
steps: record(string(), DeviceStepConfigSchema).optional()
|
|
17552
|
+
}))
|
|
17553
|
+
}), object({ success: literal(true) }), {
|
|
17554
|
+
kind: "mutation",
|
|
17555
|
+
auth: "admin"
|
|
17556
|
+
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({ agentNodeId: string() }), object({
|
|
17476
17557
|
success: literal(true),
|
|
17477
17558
|
/** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
|
|
17478
17559
|
effectiveModelId: string().nullable(),
|
|
@@ -17488,9 +17569,10 @@ method(object({
|
|
|
17488
17569
|
}), object({ success: literal(true) }), {
|
|
17489
17570
|
kind: "mutation",
|
|
17490
17571
|
auth: "admin"
|
|
17491
|
-
}), method(object({ deviceId: number() }), record(string(), record(string(), CameraStepOverridePatchSchema)).nullable()), method(object({
|
|
17572
|
+
}), method(object({ deviceId: number() }), record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).nullable()), method(object({
|
|
17492
17573
|
deviceId: number(),
|
|
17493
17574
|
agentNodeId: string(),
|
|
17575
|
+
deviceKey: string(),
|
|
17494
17576
|
addonId: string(),
|
|
17495
17577
|
patch: CameraStepOverridePatchSchema.nullable()
|
|
17496
17578
|
}), object({ success: literal(true) }), {
|
|
@@ -17642,7 +17724,8 @@ method(_void(), ServerPackageStatusSchema, { auth: "admin" }), method(_void(), S
|
|
|
17642
17724
|
/** Explicit target version; omitted = latest from the registry. */
|
|
17643
17725
|
version: string().optional() }), ServerUpdateActionResultSchema, {
|
|
17644
17726
|
kind: "mutation",
|
|
17645
|
-
auth: "admin"
|
|
17727
|
+
auth: "admin",
|
|
17728
|
+
timeoutMs: 16 * 6e4
|
|
17646
17729
|
}), method(_void(), ServerUpdateActionResultSchema, {
|
|
17647
17730
|
kind: "mutation",
|
|
17648
17731
|
auth: "admin"
|
|
@@ -23811,12 +23894,6 @@ Object.freeze({
|
|
|
23811
23894
|
addonId: null,
|
|
23812
23895
|
access: "view"
|
|
23813
23896
|
},
|
|
23814
|
-
"pipelineExecutor.reprobeEngine": {
|
|
23815
|
-
capName: "pipeline-executor",
|
|
23816
|
-
capScope: "system",
|
|
23817
|
-
addonId: null,
|
|
23818
|
-
access: "create"
|
|
23819
|
-
},
|
|
23820
23897
|
"pipelineExecutor.runAudioTest": {
|
|
23821
23898
|
capName: "pipeline-executor",
|
|
23822
23899
|
capScope: "system",
|
|
@@ -23967,6 +24044,12 @@ Object.freeze({
|
|
|
23967
24044
|
addonId: null,
|
|
23968
24045
|
access: "view"
|
|
23969
24046
|
},
|
|
24047
|
+
"pipelineOrchestrator.getNodeInferenceDevices": {
|
|
24048
|
+
capName: "pipeline-orchestrator",
|
|
24049
|
+
capScope: "system",
|
|
24050
|
+
addonId: null,
|
|
24051
|
+
access: "view"
|
|
24052
|
+
},
|
|
23970
24053
|
"pipelineOrchestrator.getPipelineAssignment": {
|
|
23971
24054
|
capName: "pipeline-orchestrator",
|
|
23972
24055
|
capScope: "system",
|
|
@@ -23979,6 +24062,12 @@ Object.freeze({
|
|
|
23979
24062
|
addonId: null,
|
|
23980
24063
|
access: "view"
|
|
23981
24064
|
},
|
|
24065
|
+
"pipelineOrchestrator.getPipelineDevicePin": {
|
|
24066
|
+
capName: "pipeline-orchestrator",
|
|
24067
|
+
capScope: "system",
|
|
24068
|
+
addonId: null,
|
|
24069
|
+
access: "view"
|
|
24070
|
+
},
|
|
23982
24071
|
"pipelineOrchestrator.listAgentSettings": {
|
|
23983
24072
|
capName: "pipeline-orchestrator",
|
|
23984
24073
|
capScope: "system",
|
|
@@ -24021,19 +24110,19 @@ Object.freeze({
|
|
|
24021
24110
|
addonId: null,
|
|
24022
24111
|
access: "create"
|
|
24023
24112
|
},
|
|
24024
|
-
"pipelineOrchestrator.
|
|
24113
|
+
"pipelineOrchestrator.setAgentCapabilities": {
|
|
24025
24114
|
capName: "pipeline-orchestrator",
|
|
24026
24115
|
capScope: "system",
|
|
24027
24116
|
addonId: null,
|
|
24028
24117
|
access: "create"
|
|
24029
24118
|
},
|
|
24030
|
-
"pipelineOrchestrator.
|
|
24119
|
+
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
24031
24120
|
capName: "pipeline-orchestrator",
|
|
24032
24121
|
capScope: "system",
|
|
24033
24122
|
addonId: null,
|
|
24034
24123
|
access: "create"
|
|
24035
24124
|
},
|
|
24036
|
-
"pipelineOrchestrator.
|
|
24125
|
+
"pipelineOrchestrator.setAgentInferenceDevices": {
|
|
24037
24126
|
capName: "pipeline-orchestrator",
|
|
24038
24127
|
capScope: "system",
|
|
24039
24128
|
addonId: null,
|
|
@@ -24075,6 +24164,12 @@ Object.freeze({
|
|
|
24075
24164
|
addonId: null,
|
|
24076
24165
|
access: "create"
|
|
24077
24166
|
},
|
|
24167
|
+
"pipelineOrchestrator.setPipelineDevicePin": {
|
|
24168
|
+
capName: "pipeline-orchestrator",
|
|
24169
|
+
capScope: "system",
|
|
24170
|
+
addonId: null,
|
|
24171
|
+
access: "create"
|
|
24172
|
+
},
|
|
24078
24173
|
"pipelineOrchestrator.unassignAudio": {
|
|
24079
24174
|
capName: "pipeline-orchestrator",
|
|
24080
24175
|
capScope: "system",
|
|
@@ -11224,10 +11224,7 @@ var ConfigUISchemaNullableBridge = custom();
|
|
|
11224
11224
|
var InferenceCapabilitiesBridge = custom();
|
|
11225
11225
|
var ModelAvailabilityListBridge = custom();
|
|
11226
11226
|
var PipelineRunResultBridge = custom();
|
|
11227
|
-
method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(_void(),
|
|
11228
|
-
kind: "mutation",
|
|
11229
|
-
auth: "admin"
|
|
11230
|
-
}), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
|
|
11227
|
+
method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
|
|
11231
11228
|
modelId: string(),
|
|
11232
11229
|
settings: record(string(), unknown()).readonly()
|
|
11233
11230
|
}))), method(object({ steps: record(string(), object({
|
|
@@ -11345,8 +11342,18 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
11345
11342
|
* - `runtime` — main camera-serving engine (no idle TTL).
|
|
11346
11343
|
* - `warm-override` — benchmark/test override held in the warm
|
|
11347
11344
|
* cache; auto-disposed after the idle TTL.
|
|
11345
|
+
* - `device-pool` — a concurrent per-device pool (Phase 2
|
|
11346
|
+
* multi-device, keyed by `deviceKey`) resolved
|
|
11347
|
+
* via `resolveDeviceFactory`. Runs alongside the
|
|
11348
|
+
* `runtime` engine on a DIFFERENT accelerator
|
|
11349
|
+
* (NPU / iGPU / Coral) — this is how the
|
|
11350
|
+
* Engines tab shows all pools running at once.
|
|
11348
11351
|
*/
|
|
11349
|
-
kind: _enum([
|
|
11352
|
+
kind: _enum([
|
|
11353
|
+
"runtime",
|
|
11354
|
+
"warm-override",
|
|
11355
|
+
"device-pool"
|
|
11356
|
+
]),
|
|
11350
11357
|
/** Native pid of the underlying Python pool (null when no pool). */
|
|
11351
11358
|
poolPid: number().nullable(),
|
|
11352
11359
|
/** ms since this factory was last used (null when not warm-tracked). */
|
|
@@ -11716,6 +11723,19 @@ var RunnerLocalLoadSchema = object({
|
|
|
11716
11723
|
avgInferenceTimeMs: number(),
|
|
11717
11724
|
/** Total queue depth across motion + detection queues. */
|
|
11718
11725
|
queueDepthTotal: number(),
|
|
11726
|
+
/**
|
|
11727
|
+
* Per-inference-device live load (multi-device C4). One entry per deviceKey
|
|
11728
|
+
* this runner currently has attached cameras on, so the orchestrator's second
|
|
11729
|
+
* `balance()` pass (over a node's devices) weights on real per-pool session
|
|
11730
|
+
* counts. Empty on single-device / pre-multi-device runners. `queueDepthTotal`
|
|
11731
|
+
* per device is 0 until the pool backlog gets a public accessor (follow-up).
|
|
11732
|
+
*/
|
|
11733
|
+
devices: array(object({
|
|
11734
|
+
deviceKey: string(),
|
|
11735
|
+
backend: string(),
|
|
11736
|
+
attachedCameras: number(),
|
|
11737
|
+
queueDepthTotal: number()
|
|
11738
|
+
})).default([]),
|
|
11719
11739
|
/** Hardware capability flags reported by this node. */
|
|
11720
11740
|
hardware: object({
|
|
11721
11741
|
hasGpu: boolean(),
|
|
@@ -17108,13 +17128,11 @@ var PipelineTemplateSchema = object({
|
|
|
17108
17128
|
createdAt: string(),
|
|
17109
17129
|
updatedAt: string()
|
|
17110
17130
|
});
|
|
17111
|
-
var
|
|
17112
|
-
enabled: boolean(),
|
|
17131
|
+
var DeviceStepConfigSchema = object({
|
|
17113
17132
|
modelId: string().optional(),
|
|
17114
|
-
settings: record(string(), unknown()).
|
|
17133
|
+
settings: record(string(), unknown()).optional()
|
|
17115
17134
|
});
|
|
17116
17135
|
var AgentPipelineSettingsSchema = object({
|
|
17117
|
-
addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
|
|
17118
17136
|
maxCameras: number().int().nonnegative().nullable().default(null),
|
|
17119
17137
|
/** Per-node detection weight (relative share for the quota balancer). */
|
|
17120
17138
|
detectWeight: number().positive().optional(),
|
|
@@ -17138,7 +17156,22 @@ var AgentPipelineSettingsSchema = object({
|
|
|
17138
17156
|
* it already uses to reach the hub). Set this only when the auto-detected
|
|
17139
17157
|
* address is wrong (multi-homed host, NAT, custom interface).
|
|
17140
17158
|
*/
|
|
17141
|
-
reachableHost: string().optional()
|
|
17159
|
+
reachableHost: string().optional(),
|
|
17160
|
+
/**
|
|
17161
|
+
* Multi-device inference opt-in (Phase 4). Per-node map deviceKey → {enabled,
|
|
17162
|
+
* weight, steps}. Absent / all-disabled ⇒ the node's single default
|
|
17163
|
+
* accelerator (safe default); two+ enabled ⇒ the dispatcher balances
|
|
17164
|
+
* detection sessions across them so they run CONCURRENTLY. `steps` is the
|
|
17165
|
+
* per-(node,device) BASE provisioning (`stepId → {modelId?, settings?}`) —
|
|
17166
|
+
* the default model/settings for every camera landing on that accelerator;
|
|
17167
|
+
* a stepId absent ⇒ the step uses that device's format default.
|
|
17168
|
+
*/
|
|
17169
|
+
inferenceDevices: record(string(), object({
|
|
17170
|
+
enabled: boolean(),
|
|
17171
|
+
weight: number().positive().optional(),
|
|
17172
|
+
maxSessions: number().int().positive().optional(),
|
|
17173
|
+
steps: record(string(), DeviceStepConfigSchema).optional()
|
|
17174
|
+
})).optional()
|
|
17142
17175
|
});
|
|
17143
17176
|
var CameraPipelineForAgentSchema = object({
|
|
17144
17177
|
steps: array(PipelineStepInputSchema).readonly(),
|
|
@@ -17148,14 +17181,13 @@ var CameraPipelineForAgentSchema = object({
|
|
|
17148
17181
|
}).nullable()
|
|
17149
17182
|
});
|
|
17150
17183
|
var CameraStepOverridePatchSchema = object({
|
|
17151
|
-
enabled: boolean().optional(),
|
|
17152
17184
|
modelId: string().optional(),
|
|
17153
17185
|
settings: record(string(), unknown()).readonly().optional()
|
|
17154
17186
|
});
|
|
17155
17187
|
var CameraPipelineSettingsSchema = object({
|
|
17156
17188
|
pinnedAgentNodeId: string().optional(),
|
|
17157
17189
|
stepToggles: record(string(), boolean()).optional(),
|
|
17158
|
-
|
|
17190
|
+
stepOverridesByDevice: record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).optional(),
|
|
17159
17191
|
pipelineByAgent: record(string(), CameraPipelineForAgentSchema).optional()
|
|
17160
17192
|
});
|
|
17161
17193
|
/**
|
|
@@ -17369,6 +17401,44 @@ var CameraStatusSchema = object({
|
|
|
17369
17401
|
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
17370
17402
|
fetchedAt: number()
|
|
17371
17403
|
});
|
|
17404
|
+
var NodeInferenceDeviceSchema = object({
|
|
17405
|
+
/** Stable per-node device key, e.g. `openvino:npu`, `edgetpu:usb`, `cpu`. */
|
|
17406
|
+
key: string(),
|
|
17407
|
+
backend: string(),
|
|
17408
|
+
device: string(),
|
|
17409
|
+
format: _enum(MODEL_FORMATS),
|
|
17410
|
+
/** Whether the node's live probe reports the device as usable right now. */
|
|
17411
|
+
available: boolean(),
|
|
17412
|
+
/**
|
|
17413
|
+
* Whether this device participates in dispatch. AUTO default (spec C2):
|
|
17414
|
+
* accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
|
|
17415
|
+
* entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
|
|
17416
|
+
* not a balanced target). An explicit stored value always wins; a stored-only
|
|
17417
|
+
* (unavailable) key keeps its stored value.
|
|
17418
|
+
*/
|
|
17419
|
+
enabled: boolean(),
|
|
17420
|
+
/** Relative balancer weight for the enabled device (default 1). */
|
|
17421
|
+
weight: number(),
|
|
17422
|
+
/** Per-device concurrent-session cap; null = unlimited (multi-device C4). */
|
|
17423
|
+
maxSessions: number().nullable(),
|
|
17424
|
+
/** Object-detection model the executor defaults to for this deviceKey. */
|
|
17425
|
+
defaultModelId: string(),
|
|
17426
|
+
/**
|
|
17427
|
+
* Per-(node,device) BASE provisioning (C7.2/C7.4) — the RAW stored
|
|
17428
|
+
* `stepId → {modelId?, settings?}` map from `inferenceDevices[key].steps`.
|
|
17429
|
+
* Absent/empty ⇒ no base (every step uses its device format default). The
|
|
17430
|
+
* UI cross-references `pipelineExecutor.getSchema` for the models actually
|
|
17431
|
+
* available per format; this is the stored selection that becomes the
|
|
17432
|
+
* default for EVERY camera landing on this accelerator.
|
|
17433
|
+
*/
|
|
17434
|
+
steps: record(string(), DeviceStepConfigSchema).optional()
|
|
17435
|
+
});
|
|
17436
|
+
var NodeInferenceDevicesSchema = object({
|
|
17437
|
+
nodeId: string(),
|
|
17438
|
+
/** False when the node's platform-probe was unreachable (no live device set). */
|
|
17439
|
+
reachable: boolean(),
|
|
17440
|
+
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17441
|
+
});
|
|
17372
17442
|
method(object({
|
|
17373
17443
|
deviceId: number(),
|
|
17374
17444
|
agentNodeId: string()
|
|
@@ -17378,7 +17448,13 @@ method(object({
|
|
|
17378
17448
|
}), method(object({ deviceId: number() }), object({ success: literal(true) }), {
|
|
17379
17449
|
kind: "mutation",
|
|
17380
17450
|
auth: "admin"
|
|
17381
|
-
}), method(
|
|
17451
|
+
}), method(object({
|
|
17452
|
+
deviceId: number(),
|
|
17453
|
+
deviceKey: string()
|
|
17454
|
+
}), object({ success: literal(true) }), {
|
|
17455
|
+
kind: "mutation",
|
|
17456
|
+
auth: "admin"
|
|
17457
|
+
}), method(object({ deviceId: number() }), object({ deviceKey: string().nullable() })), method(_void(), object({ migrated: number() }), {
|
|
17382
17458
|
kind: "mutation",
|
|
17383
17459
|
auth: "admin"
|
|
17384
17460
|
}), method(_void(), array(PipelineAssignmentSchema).readonly()), method(object({ deviceId: number() }), PipelineAssignmentSchema.nullable()), method(_void(), array(AgentLoadSummarySchema).readonly()), method(_void(), GlobalMetricsSchema), method(object({ deviceId: number() }), CameraMetricsSchema.nullable()), method(object({ nodeId: string() }), CapabilityBindingsSchema), method(object({
|
|
@@ -17412,13 +17488,7 @@ method(object({
|
|
|
17412
17488
|
}))), method(object({ agentNodeId: string() }), AgentPipelineSettingsSchema.nullable()), method(_void(), array(object({
|
|
17413
17489
|
nodeId: string(),
|
|
17414
17490
|
settings: AgentPipelineSettingsSchema
|
|
17415
|
-
})).readonly()), method(object({
|
|
17416
|
-
agentNodeId: string(),
|
|
17417
|
-
defaults: record(string(), AgentAddonConfigSchema)
|
|
17418
|
-
}), object({ success: literal(true) }), {
|
|
17419
|
-
kind: "mutation",
|
|
17420
|
-
auth: "admin"
|
|
17421
|
-
}), method(object({ agentNodeId: string() }), object({
|
|
17491
|
+
})).readonly()), method(object({ agentNodeId: string() }), object({
|
|
17422
17492
|
success: boolean(),
|
|
17423
17493
|
removed: boolean()
|
|
17424
17494
|
}), {
|
|
@@ -17450,7 +17520,18 @@ method(object({
|
|
|
17450
17520
|
}), object({ success: literal(true) }), {
|
|
17451
17521
|
kind: "mutation",
|
|
17452
17522
|
auth: "admin"
|
|
17453
|
-
}), method(object({
|
|
17523
|
+
}), method(object({
|
|
17524
|
+
agentNodeId: string(),
|
|
17525
|
+
inferenceDevices: record(string(), object({
|
|
17526
|
+
enabled: boolean(),
|
|
17527
|
+
weight: number().positive().optional(),
|
|
17528
|
+
maxSessions: number().int().positive().optional(),
|
|
17529
|
+
steps: record(string(), DeviceStepConfigSchema).optional()
|
|
17530
|
+
}))
|
|
17531
|
+
}), object({ success: literal(true) }), {
|
|
17532
|
+
kind: "mutation",
|
|
17533
|
+
auth: "admin"
|
|
17534
|
+
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({ agentNodeId: string() }), object({
|
|
17454
17535
|
success: literal(true),
|
|
17455
17536
|
/** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
|
|
17456
17537
|
effectiveModelId: string().nullable(),
|
|
@@ -17466,9 +17547,10 @@ method(object({
|
|
|
17466
17547
|
}), object({ success: literal(true) }), {
|
|
17467
17548
|
kind: "mutation",
|
|
17468
17549
|
auth: "admin"
|
|
17469
|
-
}), method(object({ deviceId: number() }), record(string(), record(string(), CameraStepOverridePatchSchema)).nullable()), method(object({
|
|
17550
|
+
}), method(object({ deviceId: number() }), record(string(), record(string(), record(string(), CameraStepOverridePatchSchema))).nullable()), method(object({
|
|
17470
17551
|
deviceId: number(),
|
|
17471
17552
|
agentNodeId: string(),
|
|
17553
|
+
deviceKey: string(),
|
|
17472
17554
|
addonId: string(),
|
|
17473
17555
|
patch: CameraStepOverridePatchSchema.nullable()
|
|
17474
17556
|
}), object({ success: literal(true) }), {
|
|
@@ -17620,7 +17702,8 @@ method(_void(), ServerPackageStatusSchema, { auth: "admin" }), method(_void(), S
|
|
|
17620
17702
|
/** Explicit target version; omitted = latest from the registry. */
|
|
17621
17703
|
version: string().optional() }), ServerUpdateActionResultSchema, {
|
|
17622
17704
|
kind: "mutation",
|
|
17623
|
-
auth: "admin"
|
|
17705
|
+
auth: "admin",
|
|
17706
|
+
timeoutMs: 16 * 6e4
|
|
17624
17707
|
}), method(_void(), ServerUpdateActionResultSchema, {
|
|
17625
17708
|
kind: "mutation",
|
|
17626
17709
|
auth: "admin"
|
|
@@ -23789,12 +23872,6 @@ Object.freeze({
|
|
|
23789
23872
|
addonId: null,
|
|
23790
23873
|
access: "view"
|
|
23791
23874
|
},
|
|
23792
|
-
"pipelineExecutor.reprobeEngine": {
|
|
23793
|
-
capName: "pipeline-executor",
|
|
23794
|
-
capScope: "system",
|
|
23795
|
-
addonId: null,
|
|
23796
|
-
access: "create"
|
|
23797
|
-
},
|
|
23798
23875
|
"pipelineExecutor.runAudioTest": {
|
|
23799
23876
|
capName: "pipeline-executor",
|
|
23800
23877
|
capScope: "system",
|
|
@@ -23945,6 +24022,12 @@ Object.freeze({
|
|
|
23945
24022
|
addonId: null,
|
|
23946
24023
|
access: "view"
|
|
23947
24024
|
},
|
|
24025
|
+
"pipelineOrchestrator.getNodeInferenceDevices": {
|
|
24026
|
+
capName: "pipeline-orchestrator",
|
|
24027
|
+
capScope: "system",
|
|
24028
|
+
addonId: null,
|
|
24029
|
+
access: "view"
|
|
24030
|
+
},
|
|
23948
24031
|
"pipelineOrchestrator.getPipelineAssignment": {
|
|
23949
24032
|
capName: "pipeline-orchestrator",
|
|
23950
24033
|
capScope: "system",
|
|
@@ -23957,6 +24040,12 @@ Object.freeze({
|
|
|
23957
24040
|
addonId: null,
|
|
23958
24041
|
access: "view"
|
|
23959
24042
|
},
|
|
24043
|
+
"pipelineOrchestrator.getPipelineDevicePin": {
|
|
24044
|
+
capName: "pipeline-orchestrator",
|
|
24045
|
+
capScope: "system",
|
|
24046
|
+
addonId: null,
|
|
24047
|
+
access: "view"
|
|
24048
|
+
},
|
|
23960
24049
|
"pipelineOrchestrator.listAgentSettings": {
|
|
23961
24050
|
capName: "pipeline-orchestrator",
|
|
23962
24051
|
capScope: "system",
|
|
@@ -23999,19 +24088,19 @@ Object.freeze({
|
|
|
23999
24088
|
addonId: null,
|
|
24000
24089
|
access: "create"
|
|
24001
24090
|
},
|
|
24002
|
-
"pipelineOrchestrator.
|
|
24091
|
+
"pipelineOrchestrator.setAgentCapabilities": {
|
|
24003
24092
|
capName: "pipeline-orchestrator",
|
|
24004
24093
|
capScope: "system",
|
|
24005
24094
|
addonId: null,
|
|
24006
24095
|
access: "create"
|
|
24007
24096
|
},
|
|
24008
|
-
"pipelineOrchestrator.
|
|
24097
|
+
"pipelineOrchestrator.setAgentDetectWeight": {
|
|
24009
24098
|
capName: "pipeline-orchestrator",
|
|
24010
24099
|
capScope: "system",
|
|
24011
24100
|
addonId: null,
|
|
24012
24101
|
access: "create"
|
|
24013
24102
|
},
|
|
24014
|
-
"pipelineOrchestrator.
|
|
24103
|
+
"pipelineOrchestrator.setAgentInferenceDevices": {
|
|
24015
24104
|
capName: "pipeline-orchestrator",
|
|
24016
24105
|
capScope: "system",
|
|
24017
24106
|
addonId: null,
|
|
@@ -24053,6 +24142,12 @@ Object.freeze({
|
|
|
24053
24142
|
addonId: null,
|
|
24054
24143
|
access: "create"
|
|
24055
24144
|
},
|
|
24145
|
+
"pipelineOrchestrator.setPipelineDevicePin": {
|
|
24146
|
+
capName: "pipeline-orchestrator",
|
|
24147
|
+
capScope: "system",
|
|
24148
|
+
addonId: null,
|
|
24149
|
+
access: "create"
|
|
24150
|
+
},
|
|
24056
24151
|
"pipelineOrchestrator.unassignAudio": {
|
|
24057
24152
|
capName: "pipeline-orchestrator",
|
|
24058
24153
|
capScope: "system",
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-BveR79HO.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
let node_fs$1 = require_dist.__toESM(node_fs, 1);
|
|
8
8
|
node_fs = require_dist.__toESM(node_fs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as BaseAddon, f as hfModelUrl, u as embeddingEncoderCapability } from "../dist-
|
|
1
|
+
import { b as BaseAddon, f as hfModelUrl, u as embeddingEncoderCapability } from "../dist-Cgv25jQz.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-C0AuF9av.mjs";
|
|
2
2
|
import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
|
|
3
|
-
import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
3
|
+
import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CUKChUeW.mjs";
|
|
4
4
|
import { n as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-Bm-iyjmq.mjs";
|
|
5
5
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils.js
|
|
6
6
|
var _ = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), v = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), y = (e) => {
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.1.
|
|
21
|
+
version: "1.1.58",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.1.
|
|
36
|
+
version: "1.1.46",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|