@camstack/addon-pipeline-orchestrator 1.1.19 → 1.1.20
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/_stub.js +24 -24
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-C4w2ofvg.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-BM9L-K3j.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DPNDc6_1.mjs +26 -0
- package/dist/{_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-mTCScrpS.mjs → _virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DdDNCPJ5.mjs} +2 -2
- package/dist/{hostInit--XrsIsAe.mjs → hostInit-Db9cKu1A.mjs} +3 -3
- package/dist/index.js +386 -29
- package/dist/index.mjs +386 -29
- package/dist/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-pdYzvu0J.mjs +0 -26
package/dist/index.mjs
CHANGED
|
@@ -4627,7 +4627,7 @@ function _instanceof(cls, params = {}) {
|
|
|
4627
4627
|
return inst;
|
|
4628
4628
|
}
|
|
4629
4629
|
//#endregion
|
|
4630
|
-
//#region ../types/dist/sleep-
|
|
4630
|
+
//#region ../types/dist/sleep-BiDFW0E7.mjs
|
|
4631
4631
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4632
4632
|
EventCategory["SystemBoot"] = "system.boot";
|
|
4633
4633
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -5456,6 +5456,100 @@ function createDurableState(deps) {
|
|
|
5456
5456
|
};
|
|
5457
5457
|
}
|
|
5458
5458
|
/**
|
|
5459
|
+
* Per-node scoping for the shared addon-settings blob.
|
|
5460
|
+
*
|
|
5461
|
+
* An addon's settings store is hub-central (the `addon-settings` cap is
|
|
5462
|
+
* hub-routed — the hub instance answers for every node), so fields whose
|
|
5463
|
+
* value is a NODE fact (decoder backend, engine pick, probed hardware
|
|
5464
|
+
* capabilities) persist under the node-scoped key `<key>@<nodeId>` inside
|
|
5465
|
+
* the single shared blob. The SCHEMA field key stays bare: the write path
|
|
5466
|
+
* ({@link scopePatch}) maps the bare field onto the target node's scoped
|
|
5467
|
+
* key; the read/hydrate path ({@link projectStore}) maps THIS node's value
|
|
5468
|
+
* back, so UI forms and `resolveConfig` only ever see the bare key.
|
|
5469
|
+
*
|
|
5470
|
+
* Fields opt in via the `perNode: true` schema marker on `ConfigFieldBase`
|
|
5471
|
+
* (`interfaces/config-ui.ts`); `BaseAddon` derives the key set from the
|
|
5472
|
+
* schema and routes reads/writes through these helpers.
|
|
5473
|
+
*
|
|
5474
|
+
* ## No bare-key fallback — deliberate
|
|
5475
|
+
*
|
|
5476
|
+
* {@link readNodeValue} reads the node-scoped key ONLY. A node with no
|
|
5477
|
+
* scoped key resolves to `undefined` so the field's schema `default` wins —
|
|
5478
|
+
* NEVER `store[base]` and never another node's value. A bare legacy key in
|
|
5479
|
+
* the store is invisible to every node, hub included, so one node's
|
|
5480
|
+
* selection can never leak onto another. (This generalizes the
|
|
5481
|
+
* `decoder-backend-keys.ts` semantics — the no-fallback variant — over an
|
|
5482
|
+
* arbitrary set of per-node field keys.)
|
|
5483
|
+
*
|
|
5484
|
+
* Pure functions only — no I/O, no imports beyond the language. This is a
|
|
5485
|
+
* LEAF module: import it via its deep path, never from the root barrel.
|
|
5486
|
+
*/
|
|
5487
|
+
/**
|
|
5488
|
+
* Normalize a raw kernel node id to the bare node id used for scoping.
|
|
5489
|
+
* `localNodeId` can carry a `<node>/<addon>` suffix on forked child
|
|
5490
|
+
* processes; per-node settings are per-NODE, so strip the addon segment.
|
|
5491
|
+
* `undefined` / `null` / empty falls back to `'hub'`.
|
|
5492
|
+
*/
|
|
5493
|
+
function normalizeNodeId(raw) {
|
|
5494
|
+
if (raw === void 0 || raw === null || raw === "") return "hub";
|
|
5495
|
+
const slashIdx = raw.indexOf("/");
|
|
5496
|
+
if (slashIdx < 0) return raw;
|
|
5497
|
+
const bare = raw.slice(0, slashIdx);
|
|
5498
|
+
return bare === "" ? "hub" : bare;
|
|
5499
|
+
}
|
|
5500
|
+
/** The node-scoped store key for a per-node field: `<base>@<nodeId>`. */
|
|
5501
|
+
function nodeScopedKey(base, nodeId) {
|
|
5502
|
+
return `${base}@${normalizeNodeId(nodeId)}`;
|
|
5503
|
+
}
|
|
5504
|
+
/**
|
|
5505
|
+
* Read a node's value for a per-node field from the raw shared store:
|
|
5506
|
+
* the node-scoped key when present, otherwise `undefined`.
|
|
5507
|
+
* Deliberately NO bare-key fallback (see module doc) — the caller lets the
|
|
5508
|
+
* schema `default` win on `undefined`.
|
|
5509
|
+
*/
|
|
5510
|
+
function readNodeValue(store, base, nodeId) {
|
|
5511
|
+
return store[nodeScopedKey(base, nodeId)];
|
|
5512
|
+
}
|
|
5513
|
+
/**
|
|
5514
|
+
* Re-map a UI/settings patch so every bare perNode field persists under the
|
|
5515
|
+
* TARGET node's scoped key; all other keys pass through unchanged. Used on
|
|
5516
|
+
* the write path so a save for one node never clobbers another node's value
|
|
5517
|
+
* (and the bare key is never written). Returns a new object — the input
|
|
5518
|
+
* patch is not mutated.
|
|
5519
|
+
*/
|
|
5520
|
+
function scopePatch(patch, perNodeKeys, nodeId) {
|
|
5521
|
+
const out = {};
|
|
5522
|
+
for (const [key, value] of Object.entries(patch)) out[perNodeKeys.has(key) ? nodeScopedKey(key, nodeId) : key] = value;
|
|
5523
|
+
return out;
|
|
5524
|
+
}
|
|
5525
|
+
/**
|
|
5526
|
+
* Project the raw shared store onto the bare schema keys for ONE node so a
|
|
5527
|
+
* UI schema (whose field keys are bare) hydrates from that node's own
|
|
5528
|
+
* values:
|
|
5529
|
+
*
|
|
5530
|
+
* - EVERY `@`-scoped key (any node's) is dropped from the pass-through.
|
|
5531
|
+
* - Every bare perNode key is dropped from the pass-through (a stray bare
|
|
5532
|
+
* legacy key must never hydrate any node — no bare fallback).
|
|
5533
|
+
* - THIS node's effective value ({@link readNodeValue}) is then laid onto
|
|
5534
|
+
* each bare perNode key; when the node has no scoped key the bare key is
|
|
5535
|
+
* left ABSENT so the field's schema `default` wins.
|
|
5536
|
+
*
|
|
5537
|
+
* Returns a new object — the input store is not mutated.
|
|
5538
|
+
*/
|
|
5539
|
+
function projectStore(store, perNodeKeys, nodeId) {
|
|
5540
|
+
const out = {};
|
|
5541
|
+
for (const [key, value] of Object.entries(store)) {
|
|
5542
|
+
if (key.includes("@")) continue;
|
|
5543
|
+
if (perNodeKeys.has(key)) continue;
|
|
5544
|
+
out[key] = value;
|
|
5545
|
+
}
|
|
5546
|
+
for (const base of perNodeKeys) {
|
|
5547
|
+
const value = readNodeValue(store, base, nodeId);
|
|
5548
|
+
if (value !== void 0) out[base] = value;
|
|
5549
|
+
}
|
|
5550
|
+
return out;
|
|
5551
|
+
}
|
|
5552
|
+
/**
|
|
5459
5553
|
* Base class for CamStack addons. Eliminates settings boilerplate:
|
|
5460
5554
|
*
|
|
5461
5555
|
* - Typed `config` property with automatic resolution from store + defaults
|
|
@@ -5623,23 +5717,63 @@ var BaseAddon = class {
|
|
|
5623
5717
|
deviceSettingsSchema() {
|
|
5624
5718
|
return null;
|
|
5625
5719
|
}
|
|
5626
|
-
async getGlobalSettings(overlay, cap,
|
|
5720
|
+
async getGlobalSettings(overlay, cap, nodeId) {
|
|
5627
5721
|
const schema = this.globalSettingsSchema(cap);
|
|
5628
5722
|
if (!schema) return { sections: [] };
|
|
5629
|
-
const
|
|
5723
|
+
const projected = await this.resolveGlobalStore(nodeId, cap);
|
|
5630
5724
|
return hydrateSchema(schema, overlay ? {
|
|
5631
|
-
...
|
|
5725
|
+
...projected,
|
|
5632
5726
|
...overlay
|
|
5633
|
-
} :
|
|
5727
|
+
} : projected);
|
|
5634
5728
|
}
|
|
5635
|
-
|
|
5636
|
-
|
|
5729
|
+
/**
|
|
5730
|
+
* The raw addon store PROJECTED onto the target node's bare per-node keys:
|
|
5731
|
+
* every `perNode: true` field carries THAT node's scoped value on its bare
|
|
5732
|
+
* key (absent scoped key ⇒ key absent, so the schema `default` wins — no
|
|
5733
|
+
* bare fallback), all `@`-scoped and stray bare per-node keys are dropped.
|
|
5734
|
+
* A no-op passthrough when the schema declares no `perNode` field.
|
|
5735
|
+
*
|
|
5736
|
+
* This is the sanctioned way for a `getGlobalSettings` OVERRIDE that needs
|
|
5737
|
+
* the store for custom option logic (option narrowing, value snapping) to
|
|
5738
|
+
* read it per-node — never `ctx.settings.readAddonStore()` directly.
|
|
5739
|
+
* `nodeId` omitted ⇒ the local node (node-blind injection from ctx).
|
|
5740
|
+
*/
|
|
5741
|
+
async resolveGlobalStore(nodeId, cap) {
|
|
5742
|
+
const raw = await this._ctx?.settings?.readAddonStore() ?? {};
|
|
5743
|
+
const keys = this.perNodeKeys(cap);
|
|
5744
|
+
const node = normalizeNodeId(nodeId ?? this._ctx?.kernel?.localNodeId);
|
|
5745
|
+
return keys.size > 0 ? projectStore(raw, keys, node) : raw;
|
|
5746
|
+
}
|
|
5747
|
+
async updateGlobalSettings(patch, nodeId) {
|
|
5748
|
+
const keys = this.perNodeKeys();
|
|
5749
|
+
const localNode = normalizeNodeId(this._ctx?.kernel?.localNodeId);
|
|
5750
|
+
const target = normalizeNodeId(nodeId ?? this._ctx?.kernel?.localNodeId);
|
|
5751
|
+
const barePatch = patch;
|
|
5752
|
+
const scoped = keys.size > 0 ? scopePatch(barePatch, keys, target) : barePatch;
|
|
5753
|
+
await this._ctx?.settings?.writeAddonStore(scoped);
|
|
5754
|
+
if (target !== localNode) return;
|
|
5637
5755
|
await this.resolveConfig();
|
|
5638
5756
|
await this.onConfigChanged();
|
|
5639
5757
|
this.emitLifecycle(EventCategory.AddonUpdated, { level: "global" });
|
|
5640
5758
|
this.maybeAutoRestart(patch, this.globalSettingsSchema());
|
|
5641
5759
|
}
|
|
5642
5760
|
/**
|
|
5761
|
+
* The set of field keys the global settings schema declares `perNode: true`
|
|
5762
|
+
* — derived once per `cap` argument and memoized (schemas are static
|
|
5763
|
+
* declarations). Empty set ⇒ every per-node code path is bypassed and the
|
|
5764
|
+
* settings API behaves exactly like the legacy node-agnostic one.
|
|
5765
|
+
*/
|
|
5766
|
+
_perNodeKeysCache = /* @__PURE__ */ new Map();
|
|
5767
|
+
perNodeKeys(cap) {
|
|
5768
|
+
const cacheKey = cap ?? "";
|
|
5769
|
+
const cached = this._perNodeKeysCache.get(cacheKey);
|
|
5770
|
+
if (cached) return cached;
|
|
5771
|
+
const schema = this.globalSettingsSchema(cap);
|
|
5772
|
+
const keys = new Set(schema ? schema.sections.flatMap((section) => collectPerNodeFieldKeys(section.fields)) : []);
|
|
5773
|
+
this._perNodeKeysCache.set(cacheKey, keys);
|
|
5774
|
+
return keys;
|
|
5775
|
+
}
|
|
5776
|
+
/**
|
|
5643
5777
|
* If any field in `patch` is marked `requiresRestart` in `schema`,
|
|
5644
5778
|
* schedule an addon restart for the next tick. Deferred via
|
|
5645
5779
|
* `setImmediate` so the tRPC mutation that triggered the write has
|
|
@@ -5792,12 +5926,19 @@ var BaseAddon = class {
|
|
|
5792
5926
|
* The merge is shallow: each key in `defaults` is checked against the store.
|
|
5793
5927
|
* Only keys present in defaults are read — the store can contain extra keys
|
|
5794
5928
|
* (e.g. from older versions) without polluting the typed config.
|
|
5929
|
+
*
|
|
5930
|
+
* Keys the global settings schema declares `perNode: true` resolve from
|
|
5931
|
+
* THIS node's scoped key (`<key>@<localNode>`) via `readNodeValue` — never
|
|
5932
|
+
* from the bare key — so a per-node field resolves to this node's own
|
|
5933
|
+
* selection at boot (absent scoped key ⇒ the constructor default wins).
|
|
5795
5934
|
*/
|
|
5796
5935
|
async resolveConfig() {
|
|
5797
5936
|
const stored = await this.readAddonStoreWithRetry();
|
|
5937
|
+
const perNode = this.perNodeKeys();
|
|
5938
|
+
const localNode = normalizeNodeId(this._ctx?.kernel?.localNodeId);
|
|
5798
5939
|
const resolved = { ...this.defaults };
|
|
5799
5940
|
for (const key of Object.keys(this.defaults)) {
|
|
5800
|
-
const storedValue = stored[key];
|
|
5941
|
+
const storedValue = perNode.has(key) ? readNodeValue(stored, key, localNode) : stored[key];
|
|
5801
5942
|
if (storedValue !== void 0 && storedValue !== null) {
|
|
5802
5943
|
const defaultType = typeof this.defaults[key];
|
|
5803
5944
|
if (typeof storedValue === defaultType) resolved[key] = storedValue;
|
|
@@ -5881,6 +6022,27 @@ var BaseAddon = class {
|
|
|
5881
6022
|
}
|
|
5882
6023
|
};
|
|
5883
6024
|
/**
|
|
6025
|
+
* Collect the keys of every field marked `perNode: true`, recursing into
|
|
6026
|
+
* layout containers (`group` fields and `sub-tabs` tabs) the same way
|
|
6027
|
+
* `hydrateSchema` does. Valueless structural fields (separator/info/…)
|
|
6028
|
+
* don't declare `perNode` and are excluded by the `in` narrowing.
|
|
6029
|
+
*/
|
|
6030
|
+
function collectPerNodeFieldKeys(fields) {
|
|
6031
|
+
const collected = [];
|
|
6032
|
+
for (const field of fields) {
|
|
6033
|
+
if (field.type === "group") {
|
|
6034
|
+
collected.push(...collectPerNodeFieldKeys(field.fields));
|
|
6035
|
+
continue;
|
|
6036
|
+
}
|
|
6037
|
+
if (field.type === "sub-tabs") {
|
|
6038
|
+
for (const tab of field.tabs) collected.push(...collectPerNodeFieldKeys(tab.fields));
|
|
6039
|
+
continue;
|
|
6040
|
+
}
|
|
6041
|
+
if ("perNode" in field && field.perNode === true) collected.push(field.key);
|
|
6042
|
+
}
|
|
6043
|
+
return collected;
|
|
6044
|
+
}
|
|
6045
|
+
/**
|
|
5884
6046
|
* Normalize an `ICamstackAddon.initialize()` return value into the
|
|
5885
6047
|
* `AddonInitResult` envelope. Arrays are wrapped into `{ providers }`;
|
|
5886
6048
|
* envelopes pass through; void stays void.
|
|
@@ -6648,6 +6810,13 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
6648
6810
|
/** Single still-image entity (HA `image.*`). Read-only display of an
|
|
6649
6811
|
* `entity_picture` signed URL the browser loads directly. `image` cap. */
|
|
6650
6812
|
DeviceType["Image"] = "image";
|
|
6813
|
+
/** Smart pet feeder — cloud-connected food dispenser with a bowl food
|
|
6814
|
+
* level, battery, desiccant life, feeding state and manual-feed /
|
|
6815
|
+
* call-pet / maintenance actions. Installed with the `pet-feeder` cap;
|
|
6816
|
+
* dual-hopper models (D4S/D4SH) expose per-hopper portions. Sources:
|
|
6817
|
+
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
6818
|
+
* integrations sharing the same food/desiccant/hopper surface. */
|
|
6819
|
+
DeviceType["PetFeeder"] = "pet-feeder";
|
|
6651
6820
|
return DeviceType;
|
|
6652
6821
|
}({});
|
|
6653
6822
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -10360,7 +10529,8 @@ var MotionAnalysisResultSchema = object({
|
|
|
10360
10529
|
});
|
|
10361
10530
|
method(object({
|
|
10362
10531
|
deviceId: number(),
|
|
10363
|
-
frame: FrameInputSchema
|
|
10532
|
+
frame: FrameInputSchema.optional(),
|
|
10533
|
+
frameHandle: FrameHandleSchema.optional()
|
|
10364
10534
|
}), MotionAnalysisResultSchema, { kind: "mutation" }), method(object({ deviceId: number() }), _void(), { kind: "mutation" }), method(_void(), _void(), { kind: "mutation" }), object({
|
|
10365
10535
|
deviceId: number(),
|
|
10366
10536
|
detected: boolean(),
|
|
@@ -10667,11 +10837,20 @@ var pipelineExecutorCapability = {
|
|
|
10667
10837
|
* legacy call shape used by existing benchmark code; once all
|
|
10668
10838
|
* callers pass it explicitly we make it required.
|
|
10669
10839
|
*
|
|
10670
|
-
* Exactly one of `frame`, `
|
|
10671
|
-
* provided:
|
|
10840
|
+
* Exactly one of `frame`, `frameHandle`, `imageBase64`,
|
|
10841
|
+
* `referenceImage` must be provided:
|
|
10672
10842
|
* - `frame`: runtime dispatch path (runner → decoded broker frame).
|
|
10673
10843
|
* Carries the raw buffer, dimensions, and format; the executor
|
|
10674
10844
|
* uses it directly without base64 round-tripping.
|
|
10845
|
+
* - `frameHandle` (CB5): a zero-pixel shm `FrameHandle` for the SAME
|
|
10846
|
+
* decoded frame. Both runner and executor are hub-local processes
|
|
10847
|
+
* sharing `/dev/shm`, so the executor maps the named segment and
|
|
10848
|
+
* reads the pixels back zero-copy — eliminating the ~1.2MB
|
|
10849
|
+
* re-serialisation over UDS/MsgPack the `frame` path pays per call.
|
|
10850
|
+
* High-risk: the FrameRing is a latest-wins seqlock with no
|
|
10851
|
+
* refcount, so a recycled slot yields a null read; the executor
|
|
10852
|
+
* then degrades to an empty result and the runner ships pixels via
|
|
10853
|
+
* `frame` as the fallback (queue-depth gated on the runner side).
|
|
10675
10854
|
* - `imageBase64`: one-shot test path (benchmark ImageTab).
|
|
10676
10855
|
* - `referenceImage`: named file from the reference-image store.
|
|
10677
10856
|
*/
|
|
@@ -10679,6 +10858,12 @@ var pipelineExecutorCapability = {
|
|
|
10679
10858
|
engine: PipelineEngineChoiceSchema.optional(),
|
|
10680
10859
|
steps: array(PipelineStepInputSchema).min(1),
|
|
10681
10860
|
frame: FrameInputSchema.optional(),
|
|
10861
|
+
/**
|
|
10862
|
+
* CB5 shm passthrough — a `FrameHandle` naming the same ring slot
|
|
10863
|
+
* the decoded pixels live in. One more member of the one-of
|
|
10864
|
+
* frame/frameHandle/image/imageBase64/referenceImage group.
|
|
10865
|
+
*/
|
|
10866
|
+
frameHandle: FrameHandleSchema.optional(),
|
|
10682
10867
|
imageBase64: string().optional(),
|
|
10683
10868
|
/**
|
|
10684
10869
|
* Binary JPEG bytes — preferred over `imageBase64` on internal
|
|
@@ -11572,6 +11757,113 @@ object({
|
|
|
11572
11757
|
lastFetchedAt: number()
|
|
11573
11758
|
});
|
|
11574
11759
|
DeviceType.Sensor;
|
|
11760
|
+
/**
|
|
11761
|
+
* Feeder connectivity / power status — mirrors the HA petkit device-status
|
|
11762
|
+
* enum: `normal` (online, mains), `offline` (not reaching PetKit cloud),
|
|
11763
|
+
* `on_batteries` (running on battery backup). `null` until first reported.
|
|
11764
|
+
*/
|
|
11765
|
+
var PetFeederDeviceStatusSchema = _enum([
|
|
11766
|
+
"normal",
|
|
11767
|
+
"offline",
|
|
11768
|
+
"on_batteries"
|
|
11769
|
+
]);
|
|
11770
|
+
var gramsPortion = number().int().min(4).max(200);
|
|
11771
|
+
object({
|
|
11772
|
+
/** Food currently in the bowl (grams). Null when the device has not
|
|
11773
|
+
* reported a reading yet. On dual-hopper models this is the combined
|
|
11774
|
+
* bowl reading; per-hopper levels live in `food1`/`food2`. */
|
|
11775
|
+
foodLevel: number().nullable(),
|
|
11776
|
+
/** Hopper-1 food level (grams) on dual-hopper feeders; null on
|
|
11777
|
+
* single-hopper models. */
|
|
11778
|
+
food1: number().nullable(),
|
|
11779
|
+
/** Hopper-2 food level (grams) on dual-hopper feeders; null on
|
|
11780
|
+
* single-hopper models. */
|
|
11781
|
+
food2: number().nullable(),
|
|
11782
|
+
/** Derived low-food flag — mirrors the HA `food_level` binary_sensor
|
|
11783
|
+
* (`device_class: problem`, on = low). True when the bowl is empty /
|
|
11784
|
+
* below the feeder's low threshold. */
|
|
11785
|
+
lowFood: boolean(),
|
|
11786
|
+
/** Battery charge 0..100 (%). Null on mains-powered models or when the
|
|
11787
|
+
* device has no battery reading. */
|
|
11788
|
+
batteryPower: number().min(0).max(100).nullable(),
|
|
11789
|
+
/** Days of desiccant life remaining. Null when the model has no
|
|
11790
|
+
* desiccant sensor. */
|
|
11791
|
+
desiccantLeftDays: number().nullable(),
|
|
11792
|
+
/** True while a feed is in progress. */
|
|
11793
|
+
feeding: boolean(),
|
|
11794
|
+
/** Decoded connectivity / power status (HA petkit device-status enum).
|
|
11795
|
+
* Null until the device has reported a status. */
|
|
11796
|
+
status: PetFeederDeviceStatusSchema.nullable(),
|
|
11797
|
+
/** Decoded human-readable fault message. Null (or the device's `no_error`
|
|
11798
|
+
* sentinel) means healthy; a non-null string is an active fault. Pairs
|
|
11799
|
+
* with `errorCode` for consumers that want the raw integer. */
|
|
11800
|
+
error: string().nullable(),
|
|
11801
|
+
/** Raw device error code (0 / null = no error). */
|
|
11802
|
+
errorCode: number().nullable(),
|
|
11803
|
+
/** True for D4S/D4SH dual-hopper hardware — gates the per-hopper UI. */
|
|
11804
|
+
isDualHopper: boolean(),
|
|
11805
|
+
/** Child-lock (manual-lock) setting — buttons on the unit are disabled. */
|
|
11806
|
+
childLock: boolean(),
|
|
11807
|
+
/** Front indicator-light setting. */
|
|
11808
|
+
indicatorLight: boolean(),
|
|
11809
|
+
/** Play a chime when dispensing. */
|
|
11810
|
+
feedSound: boolean(),
|
|
11811
|
+
/** Speaker / prompt volume level (device-scaled integer). */
|
|
11812
|
+
volume: number(),
|
|
11813
|
+
/** Ms epoch when the slice was last refreshed from the cloud. */
|
|
11814
|
+
lastFetchedAt: number()
|
|
11815
|
+
});
|
|
11816
|
+
DeviceType.PetFeeder, method(object({
|
|
11817
|
+
deviceId: number().int().nonnegative(),
|
|
11818
|
+
grams: gramsPortion.optional(),
|
|
11819
|
+
hopper1: gramsPortion.optional(),
|
|
11820
|
+
hopper2: gramsPortion.optional()
|
|
11821
|
+
}), _void(), {
|
|
11822
|
+
kind: "mutation",
|
|
11823
|
+
auth: "admin"
|
|
11824
|
+
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
11825
|
+
kind: "mutation",
|
|
11826
|
+
auth: "admin"
|
|
11827
|
+
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
11828
|
+
kind: "mutation",
|
|
11829
|
+
auth: "admin"
|
|
11830
|
+
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
11831
|
+
kind: "mutation",
|
|
11832
|
+
auth: "admin"
|
|
11833
|
+
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
11834
|
+
kind: "mutation",
|
|
11835
|
+
auth: "admin"
|
|
11836
|
+
}), method(object({
|
|
11837
|
+
deviceId: number().int().nonnegative(),
|
|
11838
|
+
soundId: number().int().nonnegative()
|
|
11839
|
+
}), _void(), {
|
|
11840
|
+
kind: "mutation",
|
|
11841
|
+
auth: "admin"
|
|
11842
|
+
}), method(object({
|
|
11843
|
+
deviceId: number().int().nonnegative(),
|
|
11844
|
+
on: boolean()
|
|
11845
|
+
}), _void(), {
|
|
11846
|
+
kind: "mutation",
|
|
11847
|
+
auth: "admin"
|
|
11848
|
+
}), method(object({
|
|
11849
|
+
deviceId: number().int().nonnegative(),
|
|
11850
|
+
on: boolean()
|
|
11851
|
+
}), _void(), {
|
|
11852
|
+
kind: "mutation",
|
|
11853
|
+
auth: "admin"
|
|
11854
|
+
}), method(object({
|
|
11855
|
+
deviceId: number().int().nonnegative(),
|
|
11856
|
+
on: boolean()
|
|
11857
|
+
}), _void(), {
|
|
11858
|
+
kind: "mutation",
|
|
11859
|
+
auth: "admin"
|
|
11860
|
+
}), method(object({
|
|
11861
|
+
deviceId: number().int().nonnegative(),
|
|
11862
|
+
level: number().int().nonnegative()
|
|
11863
|
+
}), _void(), {
|
|
11864
|
+
kind: "mutation",
|
|
11865
|
+
auth: "admin"
|
|
11866
|
+
});
|
|
11575
11867
|
object({
|
|
11576
11868
|
/** Instantaneous power draw in watts. */
|
|
11577
11869
|
watts: number().optional(),
|
|
@@ -13505,10 +13797,12 @@ method(object({ codec: string() }), boolean()), method(_void(), object({
|
|
|
13505
13797
|
url: string()
|
|
13506
13798
|
}), _void()), method(object({
|
|
13507
13799
|
sessionId: string(),
|
|
13508
|
-
maxCount: number().default(1)
|
|
13800
|
+
maxCount: number().default(1),
|
|
13801
|
+
waitMs: number().optional()
|
|
13509
13802
|
}), array(DecodedFrameSchema)), method(object({
|
|
13510
13803
|
sessionId: string(),
|
|
13511
|
-
maxCount: number().default(1)
|
|
13804
|
+
maxCount: number().default(1),
|
|
13805
|
+
waitMs: number().optional()
|
|
13512
13806
|
}), array(FrameHandleSchema)), method(object({ handle: FrameHandleSchema }), DecodedFrameSchema.nullable()), method(object({ sessionId: string() }), ShmRingStatsSchema.nullable()), method(object({
|
|
13513
13807
|
sessionId: string(),
|
|
13514
13808
|
config: DecoderSessionConfigSchema.partial()
|
|
@@ -18173,7 +18467,10 @@ var HwAccelBackendInputSchema = _enum([
|
|
|
18173
18467
|
"webgpu",
|
|
18174
18468
|
"none"
|
|
18175
18469
|
]).nullable().optional();
|
|
18176
|
-
var HwAccelResolutionSchema = object({
|
|
18470
|
+
var HwAccelResolutionSchema = object({
|
|
18471
|
+
preferred: array(string()).readonly(),
|
|
18472
|
+
rationale: string()
|
|
18473
|
+
});
|
|
18177
18474
|
var HardwareEncoderIdSchema = _enum([
|
|
18178
18475
|
"h264_videotoolbox",
|
|
18179
18476
|
"hevc_videotoolbox",
|
|
@@ -18278,10 +18575,7 @@ var ResolvedInferenceConfigSchema = object({
|
|
|
18278
18575
|
format: ModelFormatSchema,
|
|
18279
18576
|
reason: string()
|
|
18280
18577
|
});
|
|
18281
|
-
method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({
|
|
18282
|
-
prefer: HwAccelBackendInputSchema,
|
|
18283
|
-
nodeId: string().optional()
|
|
18284
|
-
}), HwAccelResolutionSchema), method(_void(), HardwareEncodersSchema), method(_void(), HardwareEncodersSchema, {
|
|
18578
|
+
method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema), method(object({ requirements: array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema), method(object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema), method(_void(), HardwareEncodersSchema), method(_void(), HardwareEncodersSchema, {
|
|
18285
18579
|
kind: "mutation",
|
|
18286
18580
|
auth: "admin"
|
|
18287
18581
|
}), method(_void(), HardwareDecodeAccelsSchema), method(_void(), HardwareDecodeAccelsSchema, {
|
|
@@ -21246,6 +21540,66 @@ Object.freeze({
|
|
|
21246
21540
|
addonId: null,
|
|
21247
21541
|
access: "create"
|
|
21248
21542
|
},
|
|
21543
|
+
"petFeeder.callPet": {
|
|
21544
|
+
capName: "pet-feeder",
|
|
21545
|
+
capScope: "device",
|
|
21546
|
+
addonId: null,
|
|
21547
|
+
access: "create"
|
|
21548
|
+
},
|
|
21549
|
+
"petFeeder.cancelFeed": {
|
|
21550
|
+
capName: "pet-feeder",
|
|
21551
|
+
capScope: "device",
|
|
21552
|
+
addonId: null,
|
|
21553
|
+
access: "create"
|
|
21554
|
+
},
|
|
21555
|
+
"petFeeder.feed": {
|
|
21556
|
+
capName: "pet-feeder",
|
|
21557
|
+
capScope: "device",
|
|
21558
|
+
addonId: null,
|
|
21559
|
+
access: "create"
|
|
21560
|
+
},
|
|
21561
|
+
"petFeeder.markFoodReplenished": {
|
|
21562
|
+
capName: "pet-feeder",
|
|
21563
|
+
capScope: "device",
|
|
21564
|
+
addonId: null,
|
|
21565
|
+
access: "create"
|
|
21566
|
+
},
|
|
21567
|
+
"petFeeder.playSound": {
|
|
21568
|
+
capName: "pet-feeder",
|
|
21569
|
+
capScope: "device",
|
|
21570
|
+
addonId: null,
|
|
21571
|
+
access: "create"
|
|
21572
|
+
},
|
|
21573
|
+
"petFeeder.resetDesiccant": {
|
|
21574
|
+
capName: "pet-feeder",
|
|
21575
|
+
capScope: "device",
|
|
21576
|
+
addonId: null,
|
|
21577
|
+
access: "delete"
|
|
21578
|
+
},
|
|
21579
|
+
"petFeeder.setChildLock": {
|
|
21580
|
+
capName: "pet-feeder",
|
|
21581
|
+
capScope: "device",
|
|
21582
|
+
addonId: null,
|
|
21583
|
+
access: "create"
|
|
21584
|
+
},
|
|
21585
|
+
"petFeeder.setFeedSound": {
|
|
21586
|
+
capName: "pet-feeder",
|
|
21587
|
+
capScope: "device",
|
|
21588
|
+
addonId: null,
|
|
21589
|
+
access: "create"
|
|
21590
|
+
},
|
|
21591
|
+
"petFeeder.setIndicatorLight": {
|
|
21592
|
+
capName: "pet-feeder",
|
|
21593
|
+
capScope: "device",
|
|
21594
|
+
addonId: null,
|
|
21595
|
+
access: "create"
|
|
21596
|
+
},
|
|
21597
|
+
"petFeeder.setVolume": {
|
|
21598
|
+
capName: "pet-feeder",
|
|
21599
|
+
capScope: "device",
|
|
21600
|
+
addonId: null,
|
|
21601
|
+
access: "create"
|
|
21602
|
+
},
|
|
21249
21603
|
"pipelineAnalytics.clearTracks": {
|
|
21250
21604
|
capName: "pipeline-analytics",
|
|
21251
21605
|
capScope: "device",
|
|
@@ -24618,6 +24972,14 @@ var PipelineOrchestratorAddon = class PipelineOrchestratorAddon extends BaseAddo
|
|
|
24618
24972
|
if (!this._cameraSettingsState) this._cameraSettingsState = this.state("cameraSettings", CameraSettingsMapSchema, {});
|
|
24619
24973
|
return this._cameraSettingsState;
|
|
24620
24974
|
}
|
|
24975
|
+
/** One-shot `migrateLegacyFlagsToBindings` guard flag. Absent or
|
|
24976
|
+
* corrupt ⇒ `false` (the migration runs — same fallback as the old
|
|
24977
|
+
* raw `store[key] === true` check). */
|
|
24978
|
+
_bindingsMigrationDoneState = null;
|
|
24979
|
+
get bindingsMigrationDoneState() {
|
|
24980
|
+
if (!this._bindingsMigrationDoneState) this._bindingsMigrationDoneState = this.state("bindingsMigration_v1_done", boolean(), false);
|
|
24981
|
+
return this._bindingsMigrationDoneState;
|
|
24982
|
+
}
|
|
24621
24983
|
/**
|
|
24622
24984
|
* Per-camera zones CRUD provider. Constructed lazily in `onInitialize`
|
|
24623
24985
|
* because it captures `this.ctx` for settings + api access; cleared
|
|
@@ -24797,7 +25159,7 @@ var PipelineOrchestratorAddon = class PipelineOrchestratorAddon extends BaseAddo
|
|
|
24797
25159
|
async onInitialize() {
|
|
24798
25160
|
this.initTimestamp = Date.now();
|
|
24799
25161
|
try {
|
|
24800
|
-
const stored = await this.
|
|
25162
|
+
const stored = await this.resolveGlobalStore();
|
|
24801
25163
|
this.globalSettings = { ...stored };
|
|
24802
25164
|
this.applyRuntimeSettings(this.globalSettings);
|
|
24803
25165
|
} catch (err) {
|
|
@@ -25009,7 +25371,7 @@ var PipelineOrchestratorAddon = class PipelineOrchestratorAddon extends BaseAddo
|
|
|
25009
25371
|
this.pendingRetryTimer = setInterval(() => void this.retryPendingDispatches(), PENDING_RETRY_INTERVAL_MS);
|
|
25010
25372
|
this.ctx.logger.info("Pipeline orchestrator detection-wiring subscriptions installed");
|
|
25011
25373
|
this.migrateLegacyFlagsToBindings().catch((err) => {
|
|
25012
|
-
this.
|
|
25374
|
+
this.ctxIfReady?.logger.warn("bindings migration failed — will retry on next boot", { meta: { error: errMsg(err) } });
|
|
25013
25375
|
});
|
|
25014
25376
|
this.zoneRulesProvider = new ZoneRulesProvider({
|
|
25015
25377
|
logger: this.ctx.logger.child("zone-rules"),
|
|
@@ -25139,9 +25501,7 @@ var PipelineOrchestratorAddon = class PipelineOrchestratorAddon extends BaseAddo
|
|
|
25139
25501
|
* persist the flag after a successful pass.
|
|
25140
25502
|
*/
|
|
25141
25503
|
async migrateLegacyFlagsToBindings() {
|
|
25142
|
-
|
|
25143
|
-
const store = await this.ctx.settings?.readAddonStore() ?? {};
|
|
25144
|
-
if (store[MIGRATION_KEY] === true) return;
|
|
25504
|
+
if (await this.bindingsMigrationDoneState.get()) return;
|
|
25145
25505
|
let api = this.api;
|
|
25146
25506
|
for (let i = 0; !api && i < 30; i++) {
|
|
25147
25507
|
await new Promise((r) => setTimeout(r, 200));
|
|
@@ -25197,10 +25557,7 @@ var PipelineOrchestratorAddon = class PipelineOrchestratorAddon extends BaseAddo
|
|
|
25197
25557
|
});
|
|
25198
25558
|
detectionDisabled++;
|
|
25199
25559
|
}
|
|
25200
|
-
await this.
|
|
25201
|
-
...store,
|
|
25202
|
-
[MIGRATION_KEY]: true
|
|
25203
|
-
});
|
|
25560
|
+
await this.bindingsMigrationDoneState.set(true);
|
|
25204
25561
|
this.ctx.logger.info("bindings migration complete", { meta: {
|
|
25205
25562
|
cameras: cameras.length,
|
|
25206
25563
|
audioDisabled,
|
|
@@ -27826,8 +28183,8 @@ var PipelineOrchestratorAddon = class PipelineOrchestratorAddon extends BaseAddo
|
|
|
27826
28183
|
] });
|
|
27827
28184
|
}
|
|
27828
28185
|
async updateGlobalSettings(patch) {
|
|
27829
|
-
await
|
|
27830
|
-
const full = await this.
|
|
28186
|
+
await super.updateGlobalSettings(patch);
|
|
28187
|
+
const full = await this.resolveGlobalStore();
|
|
27831
28188
|
this.globalSettings = { ...full };
|
|
27832
28189
|
this.applyRuntimeSettings(full);
|
|
27833
28190
|
const pausedIds = [...this.loadShedState.entries()].filter(([, s]) => s.pausedAt !== null).map(([id]) => id);
|
package/dist/remoteEntry.js
CHANGED
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-BM9L-K3j.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-pipeline-orchestrator",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.20",
|
|
4
4
|
"description": "Hub-side camera-to-agent load balancer — tracks runner capacity and dispatches attachCamera calls to the optimal pipeline-runner instance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
//#region \0virtual:mf:__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js
|
|
2
|
-
var e = "__mf_init__virtual:mf:__mfe_internal__addon_pipeline_orchestrator_widgets__mf_v__runtimeInit__mf_v__.js__", t = globalThis[e];
|
|
3
|
-
if (!t) {
|
|
4
|
-
let n, r, i = new Promise((e, t) => {
|
|
5
|
-
n = e, r = t;
|
|
6
|
-
});
|
|
7
|
-
t = globalThis[e] = {
|
|
8
|
-
initPromise: i,
|
|
9
|
-
initResolve: n,
|
|
10
|
-
initReject: r
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
var n = t.initPromise, r = "__mf_module_cache__";
|
|
14
|
-
globalThis[r] ||= {
|
|
15
|
-
share: {},
|
|
16
|
-
remote: {}
|
|
17
|
-
}, globalThis[r].share ||= {}, globalThis[r].remote ||= {};
|
|
18
|
-
var i = globalThis[r], a, o = (e) => {
|
|
19
|
-
e.ACCESSORY_LABEL, e.ALL_CAPABILITY_DEFINITIONS, e.APPLE_SA_TO_MACRO, e.AUDIO_BACKEND_CHOICES, e.AUDIO_MACRO_LABELS, e.AccessoriesStatusSchema, e.AccessoryKind, e.AddBrokerInputSchema, e.AddonAutoUpdateSchema, e.AddonListItemSchema, e.AddonPageDeclarationSchema, e.AddonPageInfoSchema, e.AdoptionAdoptInputSchema, e.AdoptionAdoptResultSchema, e.AdoptionFilterSchema, e.AdoptionGetCandidateInputSchema, e.AdoptionListCandidatesInputSchema, e.AdoptionListCandidatesOutputSchema, e.AdoptionReleaseInputSchema, e.AdoptionStatusSchema, e.AgentLoadSummarySchema, e.AirQualitySensorStatusSchema, e.AlarmArmModeSchema, e.AlarmPanelStatusSchema, e.AlarmStateSchema, e.AlertSchema, e.AlertSeveritySchema, e.AlertSourceSchema, e.AlertStatusSchema, e.AmbientLightSensorStatusSchema, e.ApiKeyRecordSchema, e.ApiKeySummarySchema, e.ArchiveEntrySchema, e.ArchiveManifestSchema, e.AttachmentMediaTypeSchema, e.AttachmentSchema, e.AudioAnalysisResultSchema, e.AudioAnalysisSettingsSchema, e.AudioChunkInputSchema, e.AudioClassSummarySchema, e.AudioClassificationLabelSchema, e.AudioClassificationResultSchema, e.AudioCodecInfoSchema, e.AudioDecodeSessionConfigSchema, e.AudioEncodeSchema, e.AudioEncodeSessionConfigSchema, e.AudioEncodedChunkSchema, e.AudioEventSchema, e.AudioLevelSchema, e.AudioMetricsHistoryPointSchema, e.AudioMetricsHistorySchema, e.AudioMetricsSnapshotSchema, e.AudioPcmChunkSchema, e.AuthResultSchema, e.AutoUpdateSettingsSchema, e.AutomationControlStatusSchema, e.AvailableIntegrationTypeSchema, e.BACKEND_TO_FORMAT, e.BATTERY_DEVICE_PROFILE, e.BackupDestinationInfoSchema, e.BackupEntrySchema, e.BaseAddon, e.BaseDevice, e.BaseDeviceProvider, e.BatteryStatusSchema, e.BinaryStatusSchema, e.BoundingBoxSchema, e.BrightnessStatusSchema, e.BrokerAddInputSchema, e.BrokerAudioClientSchema, e.BrokerClientsSchema, e.BrokerConnectionDetailsSchema, e.BrokerConsumerAttributionSchema, e.BrokerConsumerKindSchema, e.BrokerDecodedClientSchema, e.BrokerEncodedClientSchema, e.BrokerGetStateInputSchema, e.BrokerInfoSchema, e.BrokerProviderInfoSchema, e.BrokerPublishInputSchema, e.BrokerRegistryStatusSchema, e.BrokerRtspClientSchema, e.BrokerStatsSchema, e.BrokerStatusEnum, e.BrokerStatusSchema, e.BrokerSubscribeInputSchema, e.BrokerSubscribeResultSchema, e.BrokerTestConnectionResultSchema, e.BrokerUnsubscribeInputSchema, e.CAM_PROFILE_ORDER, e.CAPABILITY_NAMES, e.CAPABILITY_ROUTER_KEYS, e.CAP_NAMES_WITH_STATUS, e.CAP_NODE_PIN_CONTEXT_KEY, e.CAP_PROVIDER_KIND_MAP, e.COCO_80_LABELS, e.COCO_TO_MACRO, e.CamProfileSchema, e.CamStreamDescriptorSchema, e.CamStreamKindSchema, e.CamStreamResolutionSchema, e.CameraAssignmentStatusSchema, e.CameraAudioStatusSchema, e.CameraBrokerProfileSchema, e.CameraBrokerStatusSchema, e.CameraCredentialsSchema, e.CameraCredentialsStatusSchema, e.CameraDecoderShmSchema, e.CameraDecoderStatusSchema, e.CameraDetectionPhaseSchema, e.CameraDetectionProvisioningSchema, e.CameraDetectionProvisioningStateSchema, e.CameraDetectionStatusSchema, e.CameraMetricsSchema, e.CameraMetricsWithDeviceIdSchema, e.CameraMotionStatusSchema, e.CameraRecordingModeSchema, e.CameraRecordingStatusSchema, e.CameraSourceStatusSchema, e.CameraSourceStreamSchema, e.CameraStatusSchema, e.CameraStreamSchema, e.CandidateQueryFilterSchema, e.CapScopeSchema, e.CapabilityBindingsSchema, e.CarbonMonoxideStatusSchema, e.ChargingStatus, e.ClientNetworkStatsSchema, e.ClimateControlStatusSchema, e.ClipPlaybackSchema, e.ClipSchema, e.ClusterAddonNodeDeploymentSchema, e.ClusterAddonStatusEntrySchema, e.CollectionColumnSchema, e.CollectionIndexSchema, e.ColorStatusSchema, e.ConfigEntrySchema, e.ConfigSectionWithValuesSchema, e.ConfigTabDeclarationSchema, e.ConnectivityStatusSchema, e.ConsumableItemSchema, e.ConsumablesStatusSchema, e.ContactStatusSchema, e.ControlKindSchema, e.ControlStatusSchema, e.ConvertArtifactSchema, e.ConvertResultSchema, e.ConvertTargetSchema, e.CoverStateSchema, e.CoverStatusSchema, e.CreateApiKeyInputSchema, e.CreateApiKeyResultSchema, e.CreateIntegrationInputSchema, e.CreateScopedTokenInputSchema, e.CreateScopedTokenResultSchema, e.CreateUserInputSchema, e.CustomActionInputSchema, e.CustomModelDescriptorSchema, e.DATAPLANE_SECRET_HEADER, e.DEFAULT_ADDON_PLACEMENT, e.DEFAULT_AUDIO_ANALYZER_CONFIG, e.DEFAULT_DECODER_HWACCEL_CONFIG, e.DEFAULT_FEATURES, e.DEFAULT_RETENTION, e.DEVICE_CAP_NAMES, e.DEVICE_PROFILES, e.DEVICE_SETTINGS_CONTRIBUTION_METHODS, e.DEVICE_STATUS_METHOD, e.DEVICE_TYPE_INFO, e.DecodedAudioChunkSchema, e.DecodedFrameSchema, e.DecoderAssignmentSchema, e.DecoderSessionConfigSchema, e.DecoderStatsSchema, e.DeleteIntegrationResultSchema, e.DetectionSourceSchema, e.DetectorOutputSchema, e.DeviceCodeSeveritySchema, e.DeviceConfig, e.DeviceDiscoveryStatusSchema, e.DeviceExportExposeInputSchema, e.DeviceExportStatusSchema, e.DeviceExportUnexposeInputSchema, e.DeviceFeature, e.DeviceInfoSchema, e.DeviceNetworkStatsSchema, e.DeviceRole, e.DeviceRuntimeState, e.DeviceStatusSchema, e.DeviceType, e.DiscoveredChildDeviceSchema, e.DiscoveredChildStatusSchema, e.DiscoveredDeviceSchema, e.DiscoveredTargetSchema, e.DisposerChain, e.DoorbellPressEventSchema, e.DoorbellStatusSchema, e.EVENT_PAD_MS, e.EXPRESSION_BUILTINS, e.EXPRESSION_BUILTIN_NAMES, e.EXPRESSION_COMPILE_CACHE_CAPACITY, e.EXPRESSION_IDENTIFIER_RE, e.EXPRESSION_INJECTED_NOW, e.ElementConfigStore, e.EmbeddingInfoSchema, e.EmbeddingResultSchema, e.EncodeProfileSchema, e.EncodedPacketSchema, e.EnrichedWidgetMetadataSchema, e.EnumSensorDateTimeFormatSchema, e.EnumSensorStatusSchema, e.EventCategory, e.EventEmitterStatusSchema, e.EventFireSchema, e.EventItemSchema, e.EventKindSchema, e.EventSourceType, e.ExportSetupFieldSchema, e.ExportSetupSchema, e.ExposedDeviceSchema, e.ExposedResourceSchema, e.ExpressionEvalError, e.ExpressionParseError, e.FanControlStatusSchema, e.FanDirectionSchema, e.FeatureManifestSchema, e.FeatureProbeStatusSchema, e.FloodStatusSchema, e.FrameHandleFormatSchema, e.FrameHandleSchema, e.FrameInputSchema, e.GasStatusSchema, e.GetStreamWithCodecInputSchema, e.GlobalMetricsSchema, e.HF_BASE_URL, e.HF_REPO, e.HWACCEL_OPTIONS, e.HealthStatusSchema, e.HistoryPointSchema, e.HistoryResolutionEnum, e.HumidifierStatusSchema, e.HumiditySensorStatusSchema, e.HvacModeSchema, e.ImageStatusSchema, e.InstalledPackageSchema, e.IntegrationLiteSchema, e.IntegrationWithStateSchema, e.IntercomAbilitySchema, e.IntercomStatusSchema, e.KNOWN_CAP_NAMES, e.LabelDefinitionSchema, e.LawnMowerActivitySchema, e.LawnMowerControlStatusSchema, e.LocateSegmentResultSchema, e.LocationStatSchema, e.LockControlStatusSchema, e.LockStateSchema, e.LogEntrySchema, e.LogLevelSchema, e.LogStreamEntrySchema, a = e.MACRO_LABELS, e.MAX_EXPRESSION_AST_NODES, e.MAX_EXPRESSION_BINDINGS, e.MAX_EXPRESSION_CALL_ARGS, e.MAX_EXPRESSION_EVAL_STEPS, e.MAX_EXPRESSION_SOURCE_LENGTH, e.METHOD_ACCESS_MAP, e.MODEL_FORMATS, e.MaskGridDimsSchema, e.MaskGridShapeSchema, e.MaskLineShapeSchema, e.MaskPointSchema, e.MaskPolygonShapeSchema, e.MaskPolygonVerticesSchema, e.MaskRectShapeSchema, e.MaskShapeKindSchema, e.MaskShapeSchema, e.MediaFileSchema, e.MediaPlayerRepeatSchema, e.MediaPlayerStateSchema, e.MediaPlayerStatusSchema, e.MeshPeerSchema, e.MeshStatusSchema, e.MethodAccessSchema, e.ModelCatalogEntrySchema, e.ModelConvertInputSchema, e.ModelConvertMetadataSchema, e.ModelDistributeInputSchema, e.ModelDistributeResultSchema, e.ModelExtraFileSchema, e.ModelFormatEntrySchema, e.ModelFormatsSchema, e.MotionAnalysisResultSchema, e.MotionEventSchema, e.MotionOnMotionChangedDataSchema, e.MotionRegionSchema, e.MotionSourceEnum, e.MotionSourcesSchema, e.MotionStatusSchema, e.MotionTriggerRuntimeStateSchema, e.MotionTriggerStatusSchema, e.MotionZoneOptionsSchema, e.MotionZonePatchSchema, e.MotionZoneRegionSchema, e.MotionZoneStatusSchema, e.MqttBrokerStatusSchema, e.NativeDetectionSchema, e.NativeObjectClassEnum, e.NativeObjectDetectionRuntimeStateSchema, e.NativeObjectDetectionStatusSchema, e.NetworkAccessStatusSchema, e.NetworkAddressSchema, e.NetworkEndpointSchema, e.NotificationActionSchema, e.NotificationFormatSchema, e.NotificationHistoryEntrySchema, e.NotificationRuleSchema, e.NotificationSchema, e.NotifierStatusSchema, e.NumericSensorStatusSchema, e.OauthIntegrationDescriptorSchema, e.ObjectEventSchema, e.OrchestratorMetricsSchema, e.OsdOverlayKindEnum, e.OsdOverlayPatchSchema, e.OsdOverlaySchema, e.OsdPositionEnum, e.OsdStatusSchema, e.PIPELINE_FLOW_CAPABILITY_NAMES, e.PIPELINE_OWNER_CAPABILITY_NAMES, e.PROVIDER_KIND_CAP_NAMES, e.PYTHON_SCRIPT, e.PackageUpdateSchema, e.PackageVersionInfoSchema, e.PasskeySummarySchema, e.PcmSampleFormatSchema, e.PerScopeBreakdownSchema, e.PickStreamPreferencesSchema, e.PickStreamRequirementsSchema, e.PickedCamStreamSchema, e.PipelineAssignmentSchema, e.PipelineDefaultStepSchema, e.PipelineEngineChoiceSchema, e.PipelineRunResultBridge, e.PipelineStepInputSchema, e.PlaceholderReasonSchema, e.PolygonPointSchema, e.PowerMeterStatusSchema, e.PresenceStatusSchema, e.PressureSensorStatusSchema, e.PrivacyMaskOptionsSchema, e.PrivacyMaskPatchSchema, e.PrivacyMaskRegionSchema, e.PrivacyMaskShapeSchema, e.PrivacyMaskStatusSchema, e.ProfileRtspEntrySchema, e.ProfileSlotSchema, e.ProfileSlotStatusSchema, e.ProviderStatusSchema, e.PtzAutotrackRuntimeStateSchema, e.PtzAutotrackSettingsSchema, e.PtzAutotrackStatusSchema, e.PtzAutotrackTargetOptionSchema, e.PtzMoveCommandSchema, e.PtzPositionSchema, e.PtzPresetSchema, e.PtzStatusSchema, e.QueryFilterSchema, e.RECOGNITION_TYPES, e.RESERVED_BINDING_NAMES, e.RUNTIME_DEFAULTS, e.RUNTIME_TO_FORMAT, e.RawStateResultSchema, e.ReadSegmentBytesResultSchema, e.ReadinessRegistry, e.ReadinessTimeoutError, e.RecordingAvailabilitySchema, e.RecordingBandModeSchema, e.RecordingBandSchema, e.RecordingBandTriggersSchema, e.RecordingConfigSchema, e.RecordingDaysSchema, e.RecordingDeviceUsageSchema, e.RecordingLocationUsageSchema, e.RecordingManifestSchema, e.RecordingModeSchema, e.RecordingRangeSchema, e.RecordingRetentionSchema, e.RecordingRuleSchema, e.RecordingScheduleSchema, e.RecordingStatusSchema, e.RecordingStorageModeSchema, e.RecordingStorageUsageSchema, e.RecordingTriggersSchema, e.RecordingWeekdaySchema, e.RegisteredStreamSchema, e.RenderedAsSchema, e.ReportMotionInputSchema, e.RingBuffer, e.RtpSourceSchema, e.RtspRestreamEntrySchema, e.RunnerCameraConfigSchema, e.RunnerCameraDeviceUIFields, e.RunnerFrameSourceSchema, e.RunnerLocalLoadSchema, e.RunnerLocalMetricsSchema, e.SCOPE_PRESETS, e.SOURCE_INFO_METADATA_KEY, e.STREAM_PROFILE_META, e.STREAM_QUALITY_LABELS, e.SUB_DETECTION_TYPES, e.SYSTEM_CAP_NAMES, e.ScopedTokenSchema, e.ScopedTokenSummarySchema, e.ScoredObjectEventSchema, e.ScriptRunnerStatusSchema, e.SearchResultSchema, e.SendEmailInputSchema, e.SendEmailResultSchema, e.SendResultSchema, e.SettingsPatchSchema, e.SettingsRecordSchema, e.SettingsSchemaWithValuesSchema, e.SettingsUpdateResultSchema, e.ShmRingStatsSchema, e.SmokeStatusSchema, e.SmtpStatusSchema, e.SnapshotImageSchema, e.SourceInfoSchema, e.SpatialDetectionSchema, e.SsoBridgeClaimsSchema, e.StartEmbeddedInputSchema, e.StorageAbortUploadInputSchema, e.StorageBeginDownloadInputSchema, e.StorageBeginDownloadResultSchema, e.StorageBeginUploadInputSchema, e.StorageBeginUploadResultSchema, e.StorageEndDownloadInputSchema, e.StorageFinalizeUploadInputSchema, e.StorageLocationDeclarationSchema, e.StorageLocationRefSchema, e.StorageLocationSchema, e.StorageLocationTypeSchema, e.StorageProviderInfoSchema, e.StorageReadChunkInputSchema, e.StorageTestLocationResultSchema, e.StorageWriteChunkInputSchema, e.StreamCodecSchema, e.StreamFormatSchema, e.StreamInfoSchema, e.StreamNetworkStatsSchema, e.StreamParamsOptionsSchema, e.StreamParamsStatusSchema, e.StreamProfileConfigSchema, e.StreamProfileOptionsSchema, e.StreamProfilePatchSchema, e.StreamProfileSchema, e.StreamSourceEntrySchema, e.StreamSourceSchema, e.SubscribeAudioChunksInputSchema, e.SubscribeAudioChunksResultSchema, e.SubscribeFramesInputSchema, e.SubscribeFramesResultSchema, e.SwitchStatusSchema, e.SystemMetricsSchema, e.SystemMirror, e.TIMEZONES, e.TamperStatusSchema, e.TankStatusSchema, e.TargetKindCapsSchema, e.TargetKindLevelSchema, e.TargetKindSchema, e.TargetSchema, e.TemperatureSensorStatusSchema, e.TestConnectionResultSchema, e.TestResultSchema, e.ToastSchema, e.TokenScopeSchema, e.TopologyNodeSchema, e.TopologyProcessSchema, e.TopologyServiceSchema, e.TrackSchema, e.TrackStateSchema, e.TrackedDetectionSchema, e.TurnServerSchema, e.UNIT_TABLE, e.UnifiedBrokerInfoSchema, e.UnitConversionError, e.UpdateIntegrationInputSchema, e.UpdateStatusSchema, e.UpdateUserInputSchema, e.UserRecordSchema, e.UserSummarySchema, e.VacuumControlStatusSchema, e.VacuumStateSchema, e.ValveStateSchema, e.ValveStatusSchema, e.VibrationStatusSchema, e.VideoEncodeSchema, e.WELL_KNOWN_TABS, e.WELL_KNOWN_TAB_MAP, e.WaterHeaterStatusSchema, e.WeatherStatusSchema, e.WebrtcStreamChoiceSchema, e.WebrtcStreamTargetSchema, e.WidgetHostEnum, e.WidgetMetadataSchema, e.WidgetRemoteSchema, e.WidgetSizeEnum, e.YAMNET_TO_MACRO, e.ZoneKindEnum, e.ZoneRuleModeEnum, e.ZoneRuleSchema, e.ZoneRuleStageEnum, e.ZoneRulesArraySchema, e.ZoneSchema, e.ZoneScopeBreakdownSchema, e.accessoriesCapability, e.accessoryStableId, e.addonPagesCapability, e.addonPagesSourceCapability, e.addonRoutesCapability, e.addonSettingsCapability, e.addonWidgetsCapability, e.addonWidgetsSourceCapability, e.addonsCapability, e.adminUiCapability, e.advancedNotifierCapability, e.airQualitySensorCapability, e.alarmPanelCapability, e.alertsCapability, e.ambientLightSensorCapability, e.applyTransform, e.asBoolean, e.asJsonArray, e.asJsonObject, e.asNumber, e.asString, e.audioAnalysisCapability, e.audioAnalyzerCapability, e.audioCodecCapability, e.audioMetricsCapability, e.authProviderCapability, e.autoAssignProfiles, e.automationControlCapability, e.backupCapability, e.batteryCapability, e.bestLocationMatch, e.binaryCapability, e.bindAddonActions, e.brightnessCapability, e.brokerCapability, e.buildAddonRouteProvider, e.buildStreamParamsConfigSchema, e.buttonCapability, e.cameraCredentialsCapability, e.cameraPipelineConfigCapability, e.cameraStreamsCapability, e.canConvertUnit, e.carbonMonoxideCapability, e.cellsToRects, e.classifyStream, e.classifyStreams, e.climateControlCapability, e.colorCapability, e.compileExpression, e.compileExpressionSafe, e.connectivityCapability, e.consumablesCapability, e.contactCapability, e.controlCapability, e.convertUnit, e.cosineSimilarity, e.coverCapability, e.createDeviceProxy, e.createDurableState, e.createEvent, e.createExpressionScope, e.createLazyTrpcSource, e.createMirrorSource, e.createRuntimeStateBridge, e.createSliceHandle, e.createSystemProxy, e.customAction, e.customModelRegistryCapability, e.decoderCapability, e.defaultDeviceFor, e.defineCustomActions, e.detectionPipelineCapability, e.deviceAdoptionCapability, e.deviceCustomAction, e.deviceDiscoveryCapability, e.deviceExportCapability, e.deviceManagerCapability, e.deviceMatchesProfile, e.deviceOpsCapability, e.deviceProviderCapability, e.deviceStateCapability, e.deviceStatusCapability, e.doorbellCapability, e.embeddingEncoderCapability, e.emitDownForOwnedCaps, e.emitReadiness, e.encodeProfileFromStreamShape, e.enumSensorCapability, e.enumerateItemArrayFields, e.enumerateSchemaFields, e.errMsg, e.evaluateAst, e.evaluateLinkExpression, e.evaluateZoneRules, e.event, e.eventEmitterCapability, e.eventsCapability, e.expandCapMethods, e.extractSourceInfoFromMetadata, e.faceGalleryCapability, e.fanControlCapability, e.featureProbeCapability, e.filesystemBrowseCapability, e.findTimezone, e.floodCapability, e.formatForBackend, e.formatForRuntime, e.frameworkSwapConfirmSchema, e.frameworkSwapPackageSchema, e.gasCapability, e.getAudioMacroClassIds, e.getByPath, e.getCapsByProviderKind, e.hfModelUrl, e.htmlToText, e.humidifierCapability, e.humiditySensorCapability, e.hydrateSchema, e.imageCapability, e.integrationsCapability, e.intercomCapability, e.isAgentOnlyPlacement, e.isDeployableToAgent, e.isDeviceConfigCap, e.isEvent, e.jobKindSchema, e.lawnMowerControlCapability, e.lifecycleJobSchema, e.lifecycleJobScopeSchema, e.lifecycleJobStateSchema, e.lifecycleTaskSchema, e.localNetworkCapability, e.locationSimilarity, e.lockControlCapability, e.logDestinationCapability, e.makeProfileBrokerId, e.makeSourceBrokerId, e.mapAudioLabelToMacro, e.markdownToHtmlLite, e.markdownToText, e.maskUrlCredentials, e.mediaPlayerCapability, e.mergeSourceInfo, e.meshNetworkCapability, e.method, e.metricsProviderCapability, e.migrateConfigToBands, e.modelConvertCapability, e.modelDistributorCapability, e.modelFormatForRuntime, e.motionCapability, e.motionDetectionCapability, e.motionTriggerCapability, e.motionZonesCapability, e.mqttBrokerCapability, e.nativeObjectDetectionCapability, e.networkAccessCapability, e.networkQualityCapability, e.nodePin, e.nodesCapability, e.normalizeAddonInitResult, e.normalizeUnit, e.notificationOutputCapability, e.notifierCapability, e.numericSensorCapability, e.oauthIntegrationCapability, e.osdCapability, e.parseCameraStreamConfig, e.parseExpression, e.parseJsonArray, e.parseJsonObject, e.parseJsonUnknown, e.parseProfileBrokerId, e.parseStreamParamsFormPatch, e.pendingFrameworkSwapSchema, e.pickPreferredRtspEntry, e.pipelineAnalyticsCapability, e.pipelineExecutorCapability, e.pipelineOrchestratorCapability, e.pipelineRunnerCapability, e.plateGalleryCapability, e.platformProbeCapability, e.powerMeterCapability, e.prepareNotification, e.presenceCapability, e.pressureSensorCapability, e.privacyMaskCapability, e.ptzAutotrackCapability, e.ptzCapability, e.pythonScriptForBackend, e.readNodePin, e.readinessKey, e.rebootCapability, e.recordingCapability, e.rectsToCells, e.requiresPython, e.resolveAddonExecution, e.resolveAddonGroup, e.resolveAddonPlacement, e.resolveAddonRuntime, e.resolveCapMount, e.resolveDetectionRuntime, e.resolveDeviceProfile, e.resolveFormat, e.resolveModelFormat, e.resolveRunnerId, e.restreamerCapability, e.runInferenceStep, e.runtimeDevices, e.scopeKey, e.scoreRuntimes, e.scriptRunnerCapability, e.selectAssignedProfileSlots, e.setByPath, e.settingsStoreCapability, e.sleep, e.sleepCancellable, e.smokeCapability, e.smtpProviderCapability, e.snapshotCapability, e.snapshotProviderCapability, e.ssoBridgeCapability, e.storageCapability, e.storageEvictableCapability, e.storageProviderCapability, e.streamBrokerCapability, e.streamCatalogCapability, e.streamParamsCapability, e.streamPixels, e.streamQualityLabel, e.streamingEngineCapability, e.supportedRuntimes, e.switchCapability, e.synthesizeSourceInfo, e.systemCapability, e.tamperCapability, e.taskLogEntrySchema, e.taskPhaseSchema, e.taskTargetSchema, e.temperatureSensorCapability, e.textToHtml, e.toDeviceSummary, e.toExpressionValue, e.toStreamSourceEntry, e.toastCapability, e.tokenize, e.transcodeBody, e.tryConvertUnit, e.turnProviderCapability, e.unitDimension, e.unitsForDimension, e.updateCapability, e.userManagementCapability, e.userPasskeysCapability, e.vacuumControlCapability, e.validateExpressionSource, e.valveCapability, e.vibrationCapability, e.videoclipsCapability, e.waterHeaterCapability, e.weatherCapability, e.webrtcCapability, e.webrtcClientHintsSchema, e.webrtcSessionCapability, e.wiringAddonHealthSchema, e.wiringHealthSnapshotSchema, e.wiringNodeHealthSchema, e.wiringProbeKindSchema, e.wiringProbeResultSchema, e.zodEntriesToConfigUI, e.zoneAnalyticsCapability, e.zoneRulesCapability, e.zonesCapability, e.default;
|
|
20
|
-
}, s = i.share["default:@camstack/types"];
|
|
21
|
-
s === void 0 ? n.then(() => {
|
|
22
|
-
if (s = i.share["default:@camstack/types"], s === void 0) throw Error("[Module Federation] Shared module @camstack/types was imported before federation bootstrap finished.");
|
|
23
|
-
o(s);
|
|
24
|
-
}) : o(s);
|
|
25
|
-
//#endregion
|
|
26
|
-
export { a as t };
|