@camstack/addon-pipeline 1.2.618 → 1.2.620
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/audio-analyzer/index.js +3 -3
- package/dist/audio-analyzer/index.mjs +3 -3
- package/dist/{custom-model-catalog-BT8HKaes.mjs → custom-model-catalog-BW0-xhwJ.mjs} +2 -2
- package/dist/{custom-model-catalog-Yu1sxc4A.js → custom-model-catalog-YxQheit5.js} +2 -2
- package/dist/detection-pipeline/index.js +153 -6
- package/dist/detection-pipeline/index.mjs +153 -6
- package/dist/{dist-CGDR6bSg.js → dist-CoLjAw2z.js} +213 -86
- package/dist/{dist-OImyOnr3.mjs → dist-mOyFhoa8.mjs} +213 -86
- package/dist/{model-catalogs-DV562sqJ.js → model-catalogs-BstZN0ZA.js} +1 -1
- package/dist/{model-catalogs-Cj101H8x.mjs → model-catalogs-PmNZKpMR.mjs} +1 -1
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-CSFdbFlw.js → node-CzmiyMnw.js} +1 -1
- package/dist/{node-DciF_ZRl.mjs → node-Qmp6FkS2.mjs} +1 -1
- package/dist/pipeline-runner/index.js +52 -20
- package/dist/pipeline-runner/index.mjs +52 -20
- package/dist/{process-memory-CJEkTpRM.js → process-memory-C5Cw8Cxz.js} +1 -1
- package/dist/{process-memory-DjIov9TF.mjs → process-memory-DXbuHvOX.mjs} +1 -1
- package/dist/recorder/index.js +2 -72
- package/dist/recorder/index.mjs +2 -72
- package/dist/{segment-demux-js-BsqG99U7.js → segment-demux-js-DGFHiiIf.js} +1 -1
- package/dist/{segment-demux-js-B5PU-E-G.mjs → segment-demux-js-Din-INnw.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BZysHyCo.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets--TcGAfJ-.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BaoBRCJs.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dx-WrMx0.mjs +26 -0
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-NqO2jvV2.mjs → hostInit-DOiI--7i.mjs} +3 -3
- package/dist/stream-broker/index.js +3 -3
- package/dist/stream-broker/index.mjs +3 -3
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/python/inference_pool.py +2 -0
- package/python/pool_platform.py +35 -0
- package/python/test_pool_platform.py +48 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C1yyuAzs.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-TnEvW5tZ.mjs +0 -26
|
@@ -5564,7 +5564,7 @@ var ZodIssueCode = {
|
|
|
5564
5564
|
var ZodFirstPartyTypeKind;
|
|
5565
5565
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5566
5566
|
//#endregion
|
|
5567
|
-
//#region ../types/dist/sleep-
|
|
5567
|
+
//#region ../types/dist/sleep-CUp20JkO.mjs
|
|
5568
5568
|
/**
|
|
5569
5569
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5570
5570
|
* window to float samples (D455).
|
|
@@ -8773,7 +8773,11 @@ var ContributionSectionSchema = object({
|
|
|
8773
8773
|
literal(4)
|
|
8774
8774
|
]).optional(),
|
|
8775
8775
|
tab: string().optional(),
|
|
8776
|
-
location: _enum([
|
|
8776
|
+
location: _enum([
|
|
8777
|
+
"settings",
|
|
8778
|
+
"top-tab",
|
|
8779
|
+
"hero"
|
|
8780
|
+
]).optional(),
|
|
8777
8781
|
order: number().optional(),
|
|
8778
8782
|
fields: array(any())
|
|
8779
8783
|
});
|
|
@@ -16072,7 +16076,11 @@ var ConfigSectionWithValuesSchema = object({
|
|
|
16072
16076
|
literal(4)
|
|
16073
16077
|
]).optional(),
|
|
16074
16078
|
tab: string().optional(),
|
|
16075
|
-
location: _enum([
|
|
16079
|
+
location: _enum([
|
|
16080
|
+
"settings",
|
|
16081
|
+
"top-tab",
|
|
16082
|
+
"hero"
|
|
16083
|
+
]).optional(),
|
|
16076
16084
|
order: number().optional(),
|
|
16077
16085
|
fields: array(any())
|
|
16078
16086
|
});
|
|
@@ -20318,6 +20326,52 @@ var TierStatusSchema = object({
|
|
|
20318
20326
|
countedAt: number().nullable()
|
|
20319
20327
|
});
|
|
20320
20328
|
/** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
|
|
20329
|
+
/**
|
|
20330
|
+
* Why a series is orphan. `device-gone`: its device is absent from the
|
|
20331
|
+
* successful device listings (the departure clock). `undeclared`: its `cap:`
|
|
20332
|
+
* key is declared by no capability any more (a field a cap removed).
|
|
20333
|
+
*/
|
|
20334
|
+
var DeviceHistoryOrphanReasonSchema = _enum(["device-gone", "undeclared"]);
|
|
20335
|
+
/** Rows held per stored tier. */
|
|
20336
|
+
var TierRowsSchema = object({
|
|
20337
|
+
raw: number().int(),
|
|
20338
|
+
"5m": number().int(),
|
|
20339
|
+
"1h": number().int(),
|
|
20340
|
+
"1d": number().int()
|
|
20341
|
+
});
|
|
20342
|
+
var OrphanSeriesSchema = object({
|
|
20343
|
+
seriesId: number().int(),
|
|
20344
|
+
deviceId: number().int(),
|
|
20345
|
+
key: string(),
|
|
20346
|
+
scope: string(),
|
|
20347
|
+
/** The metric's display name; `null` when its metric row is gone too. */
|
|
20348
|
+
displayName: string().nullable(),
|
|
20349
|
+
reason: DeviceHistoryOrphanReasonSchema,
|
|
20350
|
+
/** `device-gone`: since when the device has been absent; `null` otherwise. */
|
|
20351
|
+
missingSince: number().nullable(),
|
|
20352
|
+
firstTs: number(),
|
|
20353
|
+
lastTs: number(),
|
|
20354
|
+
rows: TierRowsSchema
|
|
20355
|
+
});
|
|
20356
|
+
var DeviceHistoryOrphanDeleteRefusalSchema = _enum([
|
|
20357
|
+
"not-found",
|
|
20358
|
+
"not-orphan",
|
|
20359
|
+
"failed"
|
|
20360
|
+
]);
|
|
20361
|
+
var OrphanDeleteEntrySchema = discriminatedUnion("ok", [object({
|
|
20362
|
+
seriesId: number().int(),
|
|
20363
|
+
ok: literal(true),
|
|
20364
|
+
deleted: TierRowsSchema
|
|
20365
|
+
}), object({
|
|
20366
|
+
seriesId: number().int(),
|
|
20367
|
+
ok: literal(false),
|
|
20368
|
+
reason: DeviceHistoryOrphanDeleteRefusalSchema
|
|
20369
|
+
})]);
|
|
20370
|
+
var OrphanListSchema = object({
|
|
20371
|
+
series: array(OrphanSeriesSchema).readonly(),
|
|
20372
|
+
/** More orphans exist than {@link DEVICE_HISTORY_ORPHAN_LIST_MAX}. */
|
|
20373
|
+
truncated: boolean()
|
|
20374
|
+
});
|
|
20321
20375
|
var DeviceHistoryStatusSchema = object({
|
|
20322
20376
|
startedAt: number(),
|
|
20323
20377
|
/** The store is declared, series loaded and the first reconcile has answered. */
|
|
@@ -20415,7 +20469,10 @@ method(object({ deviceId: number().int() }), array(SeriesInfoSchema).readonly())
|
|
|
20415
20469
|
}), object({ enabled: boolean() }), {
|
|
20416
20470
|
kind: "mutation",
|
|
20417
20471
|
auth: "admin"
|
|
20418
|
-
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" })
|
|
20472
|
+
}), method(object({}), DeviceHistoryStatusSchema, { auth: "admin" }), method(object({}), OrphanListSchema, { auth: "admin" }), method(object({ seriesIds: array(number().int()).min(1).max(50) }), object({ results: array(OrphanDeleteEntrySchema).readonly() }), {
|
|
20473
|
+
kind: "mutation",
|
|
20474
|
+
auth: "admin"
|
|
20475
|
+
});
|
|
20419
20476
|
var DeviceCaStatusSchema = discriminatedUnion("state", [
|
|
20420
20477
|
object({ state: literal("absent") }),
|
|
20421
20478
|
object({
|
|
@@ -53989,6 +54046,19 @@ var NodeInferenceDeviceSchema = object({
|
|
|
53989
54046
|
/** Whether the node's live probe reports the device as usable right now. */
|
|
53990
54047
|
available: boolean(),
|
|
53991
54048
|
/**
|
|
54049
|
+
* Is the device on the node at all (D919)? `present` — the live probe
|
|
54050
|
+
* reported it; `absent` — the probe ANSWERED and did not report it, so only
|
|
54051
|
+
* its stored settings remain (unplugged, moved to another node): never
|
|
54052
|
+
* eligible, whatever its stored `enabled`, and forgettable with
|
|
54053
|
+
* `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
|
|
54054
|
+
* claimed (D315). Optional only for an orchestrator older than the field.
|
|
54055
|
+
*/
|
|
54056
|
+
presence: _enum([
|
|
54057
|
+
"present",
|
|
54058
|
+
"absent",
|
|
54059
|
+
"unknown"
|
|
54060
|
+
]).optional(),
|
|
54061
|
+
/**
|
|
53992
54062
|
* Whether this device participates in dispatch. AUTO default (spec C2):
|
|
53993
54063
|
* accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
|
|
53994
54064
|
* entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
|
|
@@ -54214,7 +54284,13 @@ method(object({
|
|
|
54214
54284
|
}), object({ success: literal(true) }), {
|
|
54215
54285
|
kind: "mutation",
|
|
54216
54286
|
auth: "admin"
|
|
54217
|
-
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
54287
|
+
}), method(object({ nodeId: string() }), NodeInferenceDevicesSchema), method(object({
|
|
54288
|
+
agentNodeId: string(),
|
|
54289
|
+
deviceKey: string()
|
|
54290
|
+
}), object({ success: literal(true) }), {
|
|
54291
|
+
kind: "mutation",
|
|
54292
|
+
auth: "admin"
|
|
54293
|
+
}), method(object({ agentNodeId: string() }), object({
|
|
54218
54294
|
success: literal(true),
|
|
54219
54295
|
/** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
|
|
54220
54296
|
effectiveModelId: string().nullable(),
|
|
@@ -58828,17 +58904,69 @@ object({
|
|
|
58828
58904
|
});
|
|
58829
58905
|
DeviceType.Sensor;
|
|
58830
58906
|
/**
|
|
58831
|
-
* Generic device-consumables capability —
|
|
58832
|
-
*
|
|
58833
|
-
* descaling cycles,
|
|
58834
|
-
*
|
|
58835
|
-
*
|
|
58836
|
-
*
|
|
58907
|
+
* Generic device-consumables capability — the ONE place a device reports what
|
|
58908
|
+
* it uses up or fills: wear parts (vacuum filters/brushes, cartridges,
|
|
58909
|
+
* descaling cycles), supplies it draws from (a vacuum's clean-water tank and
|
|
58910
|
+
* detergent, a dishwasher's salt and rinse aid) and waste it collects (a dirty
|
|
58911
|
+
* water tank, a dust bin). Each item carries its remaining life or fill and an
|
|
58912
|
+
* optional "Replaced" reset action. Device-agnostic: any provider that knows
|
|
58913
|
+
* its device tracks consumables registers it; the provider names each item
|
|
58914
|
+
* verbatim and says which `kind` it is.
|
|
58915
|
+
*
|
|
58916
|
+
* The admin UI renders it as ONE collapsible section directly under the
|
|
58917
|
+
* device page's hero card (`placement: 'hero'`), for every device bound to
|
|
58918
|
+
* this cap — never drawn by a device type's hero card itself (D915).
|
|
58837
58919
|
*
|
|
58838
58920
|
* Like `childLayout`, the cap is INERT until a provider sets items: no
|
|
58839
58921
|
* provider populates it by guessing (no HA inference). The UI renders a
|
|
58840
58922
|
* "No consumables reported" placeholder when `items` is empty.
|
|
58841
58923
|
*/
|
|
58924
|
+
/**
|
|
58925
|
+
* What an item IS, which decides which direction is bad:
|
|
58926
|
+
* - `wear` — a part that wears out (a brush, a filter); low life is bad.
|
|
58927
|
+
* - `supply` — something the device draws from (clean water, detergent,
|
|
58928
|
+
* salt, rinse aid); low or empty is bad.
|
|
58929
|
+
* - `waste` — something the device fills (dirty water, a dust bin); full is
|
|
58930
|
+
* bad.
|
|
58931
|
+
* Absent = `wear`.
|
|
58932
|
+
*/
|
|
58933
|
+
var ConsumableKindSchema = _enum([
|
|
58934
|
+
"wear",
|
|
58935
|
+
"supply",
|
|
58936
|
+
"waste"
|
|
58937
|
+
]);
|
|
58938
|
+
/**
|
|
58939
|
+
* What an item LOOKS like, which decides how a client draws it — independent
|
|
58940
|
+
* of `kind`, which decides which direction is bad:
|
|
58941
|
+
* - `part` — a part that wears (a brush, a filter, a mop pad): a wear bar,
|
|
58942
|
+
* remaining time and a reset.
|
|
58943
|
+
* - `tank` — a container of liquid (clean water, dirty water): a fill gauge.
|
|
58944
|
+
* - `product` — something bought and refilled (detergent, salt, rinse aid):
|
|
58945
|
+
* a stepped level and "refill".
|
|
58946
|
+
* - `bin` — a container that collects waste (a dust bin): a fill gauge
|
|
58947
|
+
* that warns when full.
|
|
58948
|
+
* Absent = derived from the kind ({@link consumableFormOf}).
|
|
58949
|
+
*/
|
|
58950
|
+
var ConsumableFormSchema = _enum([
|
|
58951
|
+
"part",
|
|
58952
|
+
"tank",
|
|
58953
|
+
"product",
|
|
58954
|
+
"bin"
|
|
58955
|
+
]);
|
|
58956
|
+
/** The provider's own discrete verdict on an item. */
|
|
58957
|
+
var ConsumableStatusSchema = _enum([
|
|
58958
|
+
"ok",
|
|
58959
|
+
"low",
|
|
58960
|
+
"empty",
|
|
58961
|
+
"full",
|
|
58962
|
+
"replace"
|
|
58963
|
+
]);
|
|
58964
|
+
_enum([
|
|
58965
|
+
"ok",
|
|
58966
|
+
"low",
|
|
58967
|
+
"empty",
|
|
58968
|
+
"full"
|
|
58969
|
+
]);
|
|
58842
58970
|
/** Units a remaining-life counter is reported in. Closed: the panel renders
|
|
58843
58971
|
* each. */
|
|
58844
58972
|
var ConsumableRemainingUnitSchema = _enum([
|
|
@@ -58858,10 +58986,14 @@ var ConsumablesStatusSchema = object({
|
|
|
58858
58986
|
key: string().min(1),
|
|
58859
58987
|
/** Display name. */
|
|
58860
58988
|
label: string().min(1),
|
|
58861
|
-
/** Remaining life % when known (0..100). */
|
|
58989
|
+
/** Remaining life % (`wear`) or fill % (`supply`, `waste`) when known (0..100). */
|
|
58862
58990
|
level: number().min(0).max(100).nullable(),
|
|
58863
|
-
/**
|
|
58864
|
-
status:
|
|
58991
|
+
/** The provider's discrete verdict when known (binary mode). */
|
|
58992
|
+
status: ConsumableStatusSchema.nullable(),
|
|
58993
|
+
/** What the item is — decides whether low or full is bad. Absent = `wear`. */
|
|
58994
|
+
kind: ConsumableKindSchema.optional(),
|
|
58995
|
+
/** How the item is drawn (part, tank, product, bin). Absent = derived from `kind`. */
|
|
58996
|
+
form: ConsumableFormSchema.optional(),
|
|
58865
58997
|
/** Ms epoch of the last replace, when known. */
|
|
58866
58998
|
lastResetAt: number().nullable(),
|
|
58867
58999
|
/** Whether `reset()` is meaningful for this item. */
|
|
@@ -59096,8 +59228,9 @@ object({
|
|
|
59096
59228
|
status: DeviceStatusSchema
|
|
59097
59229
|
});
|
|
59098
59230
|
/**
|
|
59099
|
-
* Smart-dishwasher cap — program lifecycle, door / remote-start gates
|
|
59100
|
-
*
|
|
59231
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates and
|
|
59232
|
+
* common program options. Salt and rinse aid are NOT here: they are items of
|
|
59233
|
+
* the device's `consumables` cap, like every other device's (D915).
|
|
59101
59234
|
*
|
|
59102
59235
|
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
59103
59236
|
* by any integration that exposes the same program / option surface.
|
|
@@ -59145,11 +59278,6 @@ var DishwasherAvailabilitySchema = _enum([
|
|
|
59145
59278
|
"offline",
|
|
59146
59279
|
"description-missing"
|
|
59147
59280
|
]);
|
|
59148
|
-
var DishwasherConsumableLevelSchema = _enum([
|
|
59149
|
-
"ok",
|
|
59150
|
-
"low",
|
|
59151
|
-
"empty"
|
|
59152
|
-
]);
|
|
59153
59281
|
object({
|
|
59154
59282
|
availability: DishwasherAvailabilitySchema,
|
|
59155
59283
|
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
@@ -59182,8 +59310,6 @@ object({
|
|
|
59182
59310
|
powerOn: boolean().nullable(),
|
|
59183
59311
|
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
59184
59312
|
powerState: string().nullable(),
|
|
59185
|
-
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
59186
|
-
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
59187
59313
|
/**
|
|
59188
59314
|
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
59189
59315
|
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
@@ -61223,7 +61349,7 @@ DeviceType.Light, DeviceType.Siren, DeviceType.Switch, method(object({
|
|
|
61223
61349
|
enabled: boolean()
|
|
61224
61350
|
}), _void(), {
|
|
61225
61351
|
kind: "mutation",
|
|
61226
|
-
auth: "
|
|
61352
|
+
auth: "protected"
|
|
61227
61353
|
}), object({
|
|
61228
61354
|
deviceId: number(),
|
|
61229
61355
|
enabled: boolean(),
|
|
@@ -61713,6 +61839,13 @@ var TopologyNodeSchema = object({
|
|
|
61713
61839
|
cpuModel: string().nullable(),
|
|
61714
61840
|
cpuCores: number(),
|
|
61715
61841
|
memoryMB: number(),
|
|
61842
|
+
/**
|
|
61843
|
+
* The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
|
|
61844
|
+
* openvino, edgetpu …) — not its devices. An installed runtime says nothing
|
|
61845
|
+
* about whether its hardware is there (a Coral delegate stays installed
|
|
61846
|
+
* after the stick leaves, D919); the live device set is
|
|
61847
|
+
* `pipelineOrchestrator.getNodeInferenceDevices`.
|
|
61848
|
+
*/
|
|
61716
61849
|
engines: array(string()).readonly(),
|
|
61717
61850
|
isHub: boolean(),
|
|
61718
61851
|
isOnline: boolean(),
|
|
@@ -62677,7 +62810,28 @@ var ResolvedInferenceConfigSchema = object({
|
|
|
62677
62810
|
format: ModelFormatSchema,
|
|
62678
62811
|
reason: string()
|
|
62679
62812
|
});
|
|
62680
|
-
|
|
62813
|
+
/**
|
|
62814
|
+
* The answer of an accelerator rescan (D919): the node's device list after
|
|
62815
|
+
* the re-probe, what changed, and the evidence that decided the Coral answer
|
|
62816
|
+
* (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
|
|
62817
|
+
* bus, the installed-delegate fallback, or nothing).
|
|
62818
|
+
*/
|
|
62819
|
+
var AcceleratorRescanSchema = object({
|
|
62820
|
+
devices: array(InferenceDeviceDescriptorSchema).readonly(),
|
|
62821
|
+
appeared: array(string()).readonly(),
|
|
62822
|
+
disappeared: array(string()).readonly(),
|
|
62823
|
+
usbBus: _enum(["observed", "unobservable"]),
|
|
62824
|
+
decidedBy: _enum([
|
|
62825
|
+
"usb-ids",
|
|
62826
|
+
"pci",
|
|
62827
|
+
"delegate-fallback",
|
|
62828
|
+
"none"
|
|
62829
|
+
])
|
|
62830
|
+
});
|
|
62831
|
+
method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), AcceleratorRescanSchema, {
|
|
62832
|
+
kind: "mutation",
|
|
62833
|
+
auth: "admin"
|
|
62834
|
+
});
|
|
62681
62835
|
object({
|
|
62682
62836
|
/** Instantaneous power draw in watts. */
|
|
62683
62837
|
watts: number().optional(),
|
|
@@ -66490,60 +66644,17 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
66490
66644
|
auth: "admin",
|
|
66491
66645
|
access: "delete"
|
|
66492
66646
|
});
|
|
66493
|
-
/**
|
|
66494
|
-
* Robot-vacuum cap. Models HA `vacuum.*` entities — anything with a
|
|
66495
|
-
* cleaning lifecycle plus a return-to-base / locate surface and an
|
|
66496
|
-
* optional fan-speed selector.
|
|
66497
|
-
*
|
|
66498
|
-
* State follows HA's canonical vacuum lifecycle: `idle` / `cleaning` /
|
|
66499
|
-
* `paused` / `returning` / `docked` / `error`. `batteryLevel`
|
|
66500
|
-
* (0..100) is nullable — some vacuums don't report a battery
|
|
66501
|
-
* percentage. `fanSpeed` is the current speed token (provider-verbatim,
|
|
66502
|
-
* e.g. `'standard'` / `'turbo'`) and `availableFanSpeeds` lists the
|
|
66503
|
-
* tokens the hardware accepts so the UI renders only supported choices.
|
|
66504
|
-
*
|
|
66505
|
-
* The `setFanSpeed` method takes the bare `speed` token — the provider
|
|
66506
|
-
* validates it against the vacuum's own list. `locate` triggers the
|
|
66507
|
-
* find-me chirp; `returnToBase` sends it home.
|
|
66508
|
-
*
|
|
66509
|
-
* Consumable / waste tanks: `cleanWater` / `dirtyWater` / `detergent` /
|
|
66510
|
-
* `dustBin` each carry a nullable `{ level (0..100 %), status ('ok' |
|
|
66511
|
-
* 'low' | 'full') }` reading. Native providers (e.g. Dreame, Roborock)
|
|
66512
|
-
* SHOULD populate whichever tanks the hardware has — leave a field `null`
|
|
66513
|
-
* only when the device has no such tank at all, and use a `TankStatus`
|
|
66514
|
-
* with both inner fields `null` when the tank exists but its level is
|
|
66515
|
-
* currently unknown. HA `vacuum.*` entities expose no per-tank telemetry,
|
|
66516
|
-
* so the HA provider leaves all four `null`.
|
|
66517
|
-
*/
|
|
66518
|
-
var VacuumStateSchema = _enum([
|
|
66519
|
-
"idle",
|
|
66520
|
-
"cleaning",
|
|
66521
|
-
"paused",
|
|
66522
|
-
"returning",
|
|
66523
|
-
"docked",
|
|
66524
|
-
"drying",
|
|
66525
|
-
"error"
|
|
66526
|
-
]);
|
|
66527
|
-
/**
|
|
66528
|
-
* One consumable / waste tank on a robot vacuum (clean-water, dirty-water,
|
|
66529
|
-
* detergent or dust-bin). A tank can report a numeric fill `level` (0..100),
|
|
66530
|
-
* a discrete `status` (binary-style hardware), or both. Both `null` means the
|
|
66531
|
-
* level is currently unknown; the OWNING field being `null` means the
|
|
66532
|
-
* hardware has no such tank at all.
|
|
66533
|
-
*/
|
|
66534
|
-
var TankStatusSchema = object({
|
|
66535
|
-
/** Numeric fill 0..100 when the hardware reports a percentage; null otherwise. */
|
|
66536
|
-
level: number().min(0).max(100).nullable(),
|
|
66537
|
-
/** Discrete state when the hardware is binary-mode; null otherwise. */
|
|
66538
|
-
status: _enum([
|
|
66539
|
-
"ok",
|
|
66540
|
-
"low",
|
|
66541
|
-
"full"
|
|
66542
|
-
]).nullable()
|
|
66543
|
-
});
|
|
66544
66647
|
object({
|
|
66545
66648
|
/** Lifecycle state of the vacuum. */
|
|
66546
|
-
state:
|
|
66649
|
+
state: _enum([
|
|
66650
|
+
"idle",
|
|
66651
|
+
"cleaning",
|
|
66652
|
+
"paused",
|
|
66653
|
+
"returning",
|
|
66654
|
+
"docked",
|
|
66655
|
+
"drying",
|
|
66656
|
+
"error"
|
|
66657
|
+
]),
|
|
66547
66658
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
66548
66659
|
* reading. */
|
|
66549
66660
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
@@ -66552,14 +66663,6 @@ object({
|
|
|
66552
66663
|
fanSpeed: string().nullable(),
|
|
66553
66664
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
66554
66665
|
availableFanSpeeds: array(string()),
|
|
66555
|
-
/** Clean-water (mop) tank. Null when the hardware has no clean-water tank. */
|
|
66556
|
-
cleanWater: TankStatusSchema.nullable(),
|
|
66557
|
-
/** Dirty-water (recovery) tank. Null when the hardware has no dirty-water tank. */
|
|
66558
|
-
dirtyWater: TankStatusSchema.nullable(),
|
|
66559
|
-
/** Detergent tank. Null when the hardware has no detergent tank. */
|
|
66560
|
-
detergent: TankStatusSchema.nullable(),
|
|
66561
|
-
/** Dust bin. Null when the hardware has no dust bin. */
|
|
66562
|
-
dustBin: TankStatusSchema.nullable(),
|
|
66563
66666
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
66564
66667
|
progressPercent: number().min(0).max(100).nullable(),
|
|
66565
66668
|
/** Current error code (0 / null = no error). */
|
|
@@ -69118,6 +69221,12 @@ Object.freeze({
|
|
|
69118
69221
|
addonId: null,
|
|
69119
69222
|
access: "create"
|
|
69120
69223
|
},
|
|
69224
|
+
"deviceHistory.deleteOrphanSeries": {
|
|
69225
|
+
capName: "device-history",
|
|
69226
|
+
capScope: "system",
|
|
69227
|
+
addonId: null,
|
|
69228
|
+
access: "delete"
|
|
69229
|
+
},
|
|
69121
69230
|
"deviceHistory.getDeviceEnabled": {
|
|
69122
69231
|
capName: "device-history",
|
|
69123
69232
|
capScope: "system",
|
|
@@ -69136,6 +69245,12 @@ Object.freeze({
|
|
|
69136
69245
|
addonId: null,
|
|
69137
69246
|
access: "view"
|
|
69138
69247
|
},
|
|
69248
|
+
"deviceHistory.listOrphanSeries": {
|
|
69249
|
+
capName: "device-history",
|
|
69250
|
+
capScope: "system",
|
|
69251
|
+
addonId: null,
|
|
69252
|
+
access: "view"
|
|
69253
|
+
},
|
|
69139
69254
|
"deviceHistory.listSeries": {
|
|
69140
69255
|
capName: "device-history",
|
|
69141
69256
|
capScope: "system",
|
|
@@ -72760,6 +72875,12 @@ Object.freeze({
|
|
|
72760
72875
|
addonId: null,
|
|
72761
72876
|
access: "delete"
|
|
72762
72877
|
},
|
|
72878
|
+
"pipelineOrchestrator.forgetInferenceDevice": {
|
|
72879
|
+
capName: "pipeline-orchestrator",
|
|
72880
|
+
capScope: "system",
|
|
72881
|
+
addonId: null,
|
|
72882
|
+
access: "delete"
|
|
72883
|
+
},
|
|
72763
72884
|
"pipelineOrchestrator.getAgentLoad": {
|
|
72764
72885
|
capName: "pipeline-orchestrator",
|
|
72765
72886
|
capScope: "system",
|
|
@@ -73336,6 +73457,12 @@ Object.freeze({
|
|
|
73336
73457
|
addonId: null,
|
|
73337
73458
|
access: "view"
|
|
73338
73459
|
},
|
|
73460
|
+
"platformProbe.rescanAccelerators": {
|
|
73461
|
+
capName: "platform-probe",
|
|
73462
|
+
capScope: "system",
|
|
73463
|
+
addonId: null,
|
|
73464
|
+
access: "create"
|
|
73465
|
+
},
|
|
73339
73466
|
"platformProbe.resolveHwAccel": {
|
|
73340
73467
|
capName: "platform-probe",
|
|
73341
73468
|
capScope: "system",
|
|
@@ -79191,7 +79318,7 @@ var STATE_SUMMARY_VARS = [
|
|
|
79191
79318
|
([...RULE_TEXT], [...COMBINED_ALARM]),
|
|
79192
79319
|
([...RULE_TEXT], [...DEVICE_EVENTS]),
|
|
79193
79320
|
([...RULE_TEXT], [...BATTERY, ...CONSUMABLE]),
|
|
79194
|
-
([...RULE_TEXT], [...CONSUMABLE]),
|
|
79321
|
+
([...RULE_TEXT], [...CONSUMABLE, ...TANK]),
|
|
79195
79322
|
([...RULE_TEXT], [...TANK]),
|
|
79196
79323
|
[...RULE_TEXT],
|
|
79197
79324
|
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
@@ -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-CoLjAw2z.js");
|
|
6
6
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as evaluateZoneRules, Gt as motionDetectionCapability, Kn as hydrateSchema, Pn as BaseAddon, jn as DeviceType } from "../dist-
|
|
1
|
+
import { Ct as evaluateZoneRules, Gt as motionDetectionCapability, Kn as hydrateSchema, Pn as BaseAddon, jn as DeviceType } from "../dist-mOyFhoa8.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { En as buildFfmpegArgs, Mn as errMsg, Tn as Fmp4BoxSplitter, kn as isSoftwareDecode } from "./dist-
|
|
1
|
+
import { En as buildFfmpegArgs, Mn as errMsg, Tn as Fmp4BoxSplitter, kn as isSoftwareDecode } from "./dist-mOyFhoa8.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { realpathSync } from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_custom_model_catalog = require("../custom-model-catalog-
|
|
6
|
+
const require_dist = require("../dist-CoLjAw2z.js");
|
|
7
|
+
const require_node = require("../node-CzmiyMnw.js");
|
|
8
|
+
const require_custom_model_catalog = require("../custom-model-catalog-YxQheit5.js");
|
|
9
9
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
10
10
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
11
11
|
const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
|
|
@@ -6073,10 +6073,15 @@ var PipelineTimingSampler = class {
|
|
|
6073
6073
|
belowFloor = new BelowFloorAccumulator();
|
|
6074
6074
|
reportTimer = null;
|
|
6075
6075
|
log = null;
|
|
6076
|
+
electedDeviceKey = null;
|
|
6076
6077
|
runtimeInfo = {};
|
|
6077
6078
|
setLogger(logger) {
|
|
6078
6079
|
this.log = logger;
|
|
6079
6080
|
}
|
|
6081
|
+
/** Who answers "which device serves this camera" for the per-camera line. */
|
|
6082
|
+
setElectedDeviceKeyResolver(resolver) {
|
|
6083
|
+
this.electedDeviceKey = resolver;
|
|
6084
|
+
}
|
|
6080
6085
|
start() {
|
|
6081
6086
|
if (this.reportTimer) return;
|
|
6082
6087
|
this.reportTimer = setInterval(() => this.report(), REPORT_INTERVAL_MS);
|
|
@@ -6194,6 +6199,7 @@ var PipelineTimingSampler = class {
|
|
|
6194
6199
|
detections: totalDet,
|
|
6195
6200
|
belowFloor: this.belowFloor.drain(deviceId),
|
|
6196
6201
|
dropped,
|
|
6202
|
+
deviceKey: this.electedDeviceKey?.(deviceId) ?? null,
|
|
6197
6203
|
pipelineRuntime: rt.pipelineRuntime ?? null,
|
|
6198
6204
|
pipelineModels: rt.pipelineModels ?? null
|
|
6199
6205
|
}
|
|
@@ -8105,6 +8111,40 @@ function isUsable(bbox) {
|
|
|
8105
8111
|
return bbox.width > 0 && bbox.height > 0;
|
|
8106
8112
|
}
|
|
8107
8113
|
//#endregion
|
|
8114
|
+
//#region src/pipeline-runner/local-resident-engines.ts
|
|
8115
|
+
var NO_LOCAL_EXECUTOR = "no pipeline-executor provider in this process";
|
|
8116
|
+
/**
|
|
8117
|
+
* The provider is the co-tenant's own object, in this process; the guard
|
|
8118
|
+
* checks the one method this read calls (the type boundary of an
|
|
8119
|
+
* untyped registry lookup).
|
|
8120
|
+
*/
|
|
8121
|
+
function isLocalEngineLister(value) {
|
|
8122
|
+
return typeof value === "object" && value !== null && "listLoadedEngines" in value && typeof value.listLoadedEngines === "function";
|
|
8123
|
+
}
|
|
8124
|
+
async function readLocalResidentEngines(capabilities) {
|
|
8125
|
+
const provider = capabilities?.get("pipeline-executor");
|
|
8126
|
+
if (!isLocalEngineLister(provider)) return {
|
|
8127
|
+
kind: "failed",
|
|
8128
|
+
error: NO_LOCAL_EXECUTOR
|
|
8129
|
+
};
|
|
8130
|
+
try {
|
|
8131
|
+
return {
|
|
8132
|
+
kind: "read",
|
|
8133
|
+
engines: (await provider.listLoadedEngines()).map((r) => ({
|
|
8134
|
+
backend: r.engine.backend,
|
|
8135
|
+
...r.engine.device !== void 0 ? { device: r.engine.device } : {},
|
|
8136
|
+
kind: r.kind,
|
|
8137
|
+
modelsLoaded: r.modelsLoaded
|
|
8138
|
+
}))
|
|
8139
|
+
};
|
|
8140
|
+
} catch (err) {
|
|
8141
|
+
return {
|
|
8142
|
+
kind: "failed",
|
|
8143
|
+
error: require_dist.errMsg(err)
|
|
8144
|
+
};
|
|
8145
|
+
}
|
|
8146
|
+
}
|
|
8147
|
+
//#endregion
|
|
8108
8148
|
//#region src/pipeline-runner/runtime-labels.ts
|
|
8109
8149
|
/**
|
|
8110
8150
|
* `null` means the read FAILED; `[]` means nothing is resident. Both omit the
|
|
@@ -8295,8 +8335,8 @@ var TILE_CUT_DROP_LOG_INTERVAL_MS = 6e4;
|
|
|
8295
8335
|
* operator re-selects one or lazy provisioning completes — not per frame.
|
|
8296
8336
|
*/
|
|
8297
8337
|
var RUNTIME_INFO_REFRESH_MS = 3e5;
|
|
8298
|
-
/** Sentinel for "no
|
|
8299
|
-
var
|
|
8338
|
+
/** Sentinel for "no context yet" so it is one transition, not a per-refresh line. */
|
|
8339
|
+
var NO_CONTEXT_FAILURE = "no addon context";
|
|
8300
8340
|
/** How often a camera reports parcels that left without a release (D422). */
|
|
8301
8341
|
var PARKED_EVICTION_LOG_INTERVAL_MS = 6e4;
|
|
8302
8342
|
/**
|
|
@@ -9082,6 +9122,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
|
|
|
9082
9122
|
workerFootprintMb: decodeWorkerFootprintMb(this.nativeLease.current())
|
|
9083
9123
|
});
|
|
9084
9124
|
this.runner.timingSampler.setLogger(this.ctx.logger.child("timing"));
|
|
9125
|
+
this.runner.timingSampler.setElectedDeviceKeyResolver((deviceId) => this.attached.get(deviceId)?.config?.deviceKey ?? null);
|
|
9085
9126
|
this.refreshRuntimeInfo();
|
|
9086
9127
|
this.runtimeInfoTimer = setInterval(() => void this.refreshRuntimeInfo(), RUNTIME_INFO_REFRESH_MS);
|
|
9087
9128
|
this.runtimeInfoTimer.unref?.();
|
|
@@ -10759,24 +10800,15 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
|
|
|
10759
10800
|
* field in the line is the signal, and the hub writes `info`.
|
|
10760
10801
|
*/
|
|
10761
10802
|
async refreshRuntimeInfo() {
|
|
10762
|
-
const
|
|
10803
|
+
const ctx = this.ctxIfReady;
|
|
10763
10804
|
const sampler = this.runner?.timingSampler;
|
|
10764
|
-
if (!
|
|
10765
|
-
this.noteRuntimeInfoFailure(
|
|
10805
|
+
if (!ctx || sampler === void 0 || sampler === null) {
|
|
10806
|
+
this.noteRuntimeInfoFailure(NO_CONTEXT_FAILURE);
|
|
10766
10807
|
return;
|
|
10767
10808
|
}
|
|
10768
|
-
|
|
10769
|
-
|
|
10770
|
-
|
|
10771
|
-
engines = (await api.pipelineExecutor.listLoadedEngines.query()).map((r) => ({
|
|
10772
|
-
backend: r.engine.backend,
|
|
10773
|
-
...r.engine.device !== void 0 ? { device: r.engine.device } : {},
|
|
10774
|
-
kind: r.kind,
|
|
10775
|
-
modelsLoaded: r.modelsLoaded
|
|
10776
|
-
}));
|
|
10777
|
-
} catch (err) {
|
|
10778
|
-
failure = require_dist.errMsg(err);
|
|
10779
|
-
}
|
|
10809
|
+
const read = await readLocalResidentEngines(ctx.capabilities);
|
|
10810
|
+
const engines = read.kind === "read" ? read.engines : null;
|
|
10811
|
+
const failure = read.kind === "failed" ? read.error : null;
|
|
10780
10812
|
this.noteRuntimeInfoFailure(failure);
|
|
10781
10813
|
sampler.runtimeInfo = {
|
|
10782
10814
|
...sampler.runtimeInfo,
|