camstack 1.2.102 → 1.2.103
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.
|
@@ -23633,9 +23633,9 @@ var require_zod = __commonJS({
|
|
|
23633
23633
|
}
|
|
23634
23634
|
});
|
|
23635
23635
|
|
|
23636
|
-
// ../system/dist/dist-
|
|
23637
|
-
var
|
|
23638
|
-
"../system/dist/dist-
|
|
23636
|
+
// ../system/dist/dist-C7g13BfN.js
|
|
23637
|
+
var require_dist_C7g13BfN = __commonJS({
|
|
23638
|
+
"../system/dist/dist-C7g13BfN.js"(exports) {
|
|
23639
23639
|
"use strict";
|
|
23640
23640
|
var zod = require_zod();
|
|
23641
23641
|
var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
|
|
@@ -47493,6 +47493,169 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
47493
47493
|
*/
|
|
47494
47494
|
durability: "session"
|
|
47495
47495
|
};
|
|
47496
|
+
var NavigationMoveCommandSchema = zod.z.object({
|
|
47497
|
+
pan: zod.z.number().min(-1).max(1).optional(),
|
|
47498
|
+
tilt: zod.z.number().min(-1).max(1).optional(),
|
|
47499
|
+
speed: zod.z.number().min(0).max(1).optional()
|
|
47500
|
+
});
|
|
47501
|
+
var NavigationActionIdSchema = zod.z.enum([
|
|
47502
|
+
"goHome",
|
|
47503
|
+
"locate",
|
|
47504
|
+
"spotClean",
|
|
47505
|
+
"findPet",
|
|
47506
|
+
"personFollow",
|
|
47507
|
+
"stop",
|
|
47508
|
+
"startClean",
|
|
47509
|
+
"pauseClean",
|
|
47510
|
+
"dockWash",
|
|
47511
|
+
"autoEmpty",
|
|
47512
|
+
"flashOn",
|
|
47513
|
+
"flashOff"
|
|
47514
|
+
]);
|
|
47515
|
+
var NavigationEntryKindSchema = zod.z.enum(["action", "sound"]);
|
|
47516
|
+
var NavigationActionEntrySchema = zod.z.object({
|
|
47517
|
+
id: zod.z.string(),
|
|
47518
|
+
kind: NavigationEntryKindSchema,
|
|
47519
|
+
label: zod.z.string(),
|
|
47520
|
+
icon: zod.z.string(),
|
|
47521
|
+
/** Present only on `kind:'sound'` entries — the id to pass to `playSound`. */
|
|
47522
|
+
soundId: zod.z.number().int().optional(),
|
|
47523
|
+
/** Per-device feature flag — render this entry only when true. */
|
|
47524
|
+
enabled: zod.z.boolean()
|
|
47525
|
+
});
|
|
47526
|
+
var NavigationPointSchema = zod.z.object({
|
|
47527
|
+
x: zod.z.number(),
|
|
47528
|
+
y: zod.z.number()
|
|
47529
|
+
});
|
|
47530
|
+
var NavigationFeaturesSchema = zod.z.object({
|
|
47531
|
+
move: zod.z.boolean(),
|
|
47532
|
+
stop: zod.z.boolean(),
|
|
47533
|
+
goToPoint: zod.z.boolean(),
|
|
47534
|
+
runAction: zod.z.boolean(),
|
|
47535
|
+
playSound: zod.z.boolean(),
|
|
47536
|
+
light: zod.z.boolean(),
|
|
47537
|
+
lightMode: zod.z.boolean()
|
|
47538
|
+
});
|
|
47539
|
+
var NavigationLightModeSchema = zod.z.enum(["auto", "manual"]);
|
|
47540
|
+
var NavigationModeSchema = zod.z.enum([
|
|
47541
|
+
"idle",
|
|
47542
|
+
"cleaning",
|
|
47543
|
+
"spot",
|
|
47544
|
+
"following",
|
|
47545
|
+
"goto",
|
|
47546
|
+
"returning",
|
|
47547
|
+
"paused",
|
|
47548
|
+
"unknown"
|
|
47549
|
+
]);
|
|
47550
|
+
var NavigationStatusSchema = zod.z.object({
|
|
47551
|
+
mode: NavigationModeSchema,
|
|
47552
|
+
following: zod.z.boolean(),
|
|
47553
|
+
flash: zod.z.boolean(),
|
|
47554
|
+
lightMode: NavigationLightModeSchema,
|
|
47555
|
+
lightLevel: zod.z.number().min(40).max(100),
|
|
47556
|
+
/** Ms epoch when the slice was last updated. */
|
|
47557
|
+
lastChangedAt: zod.z.number()
|
|
47558
|
+
});
|
|
47559
|
+
var NavigationRuntimeStateSchema = NavigationStatusSchema.extend({ lastFetchedAt: zod.z.number() });
|
|
47560
|
+
var navigationCapability = {
|
|
47561
|
+
name: "navigation",
|
|
47562
|
+
scope: "device",
|
|
47563
|
+
deviceNative: true,
|
|
47564
|
+
mode: "singleton",
|
|
47565
|
+
deviceTypes: [DeviceType.Camera],
|
|
47566
|
+
deviceConfig: { ui: {
|
|
47567
|
+
kind: "widget",
|
|
47568
|
+
widgetId: "host/navigation-panel",
|
|
47569
|
+
tab: "navigation",
|
|
47570
|
+
topTab: true,
|
|
47571
|
+
label: "Navigation",
|
|
47572
|
+
order: 0
|
|
47573
|
+
} },
|
|
47574
|
+
methods: {
|
|
47575
|
+
/**
|
|
47576
|
+
* Momentary drive nudge (the robot moves). `protected` — mirrors
|
|
47577
|
+
* `ptz.continuousMove` so the Viewer navigation panel (and the PTZ-mimic
|
|
47578
|
+
* path) works for any authenticated user, not admin-only. The UI sends
|
|
47579
|
+
* these at ~1 Hz while a control is held; the provider forwards each one to
|
|
47580
|
+
* a single drive write WITHOUT debouncing.
|
|
47581
|
+
*/
|
|
47582
|
+
move: method(NavigationMoveCommandSchema.extend({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
47583
|
+
/** Halt all motion immediately (zero drive vector). */
|
|
47584
|
+
stop: method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
47585
|
+
/** Send the robot to a point on its live map. */
|
|
47586
|
+
goToPoint: method(NavigationPointSchema.extend({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
47587
|
+
/**
|
|
47588
|
+
* Enumerate the discrete controls THIS device supports (data-driven UI +
|
|
47589
|
+
* PTZ mimic). Camera-probed subset of {@link NAVIGATION_ACTION_CATALOG}.
|
|
47590
|
+
*/
|
|
47591
|
+
listActions: method(zod.z.object({ deviceId: zod.z.number() }), zod.z.array(NavigationActionEntrySchema)),
|
|
47592
|
+
/**
|
|
47593
|
+
* Run one discrete action (a `kind:'action'` dictionary entry). Invalid /
|
|
47594
|
+
* unsupported action ids are rejected by the provider.
|
|
47595
|
+
*/
|
|
47596
|
+
runAction: method(zod.z.object({
|
|
47597
|
+
deviceId: zod.z.number(),
|
|
47598
|
+
actionId: NavigationActionIdSchema
|
|
47599
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47600
|
+
/** Play a sound by its wire id (the `soundId` of a `kind:'sound'` entry). */
|
|
47601
|
+
playSound: method(zod.z.object({
|
|
47602
|
+
deviceId: zod.z.number(),
|
|
47603
|
+
soundId: zod.z.number().int()
|
|
47604
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47605
|
+
/**
|
|
47606
|
+
* Turn the on-camera fill light on / off (the `OpenFullLight` control —
|
|
47607
|
+
* works anytime, no active stream required).
|
|
47608
|
+
*/
|
|
47609
|
+
setLightOn: method(zod.z.object({
|
|
47610
|
+
deviceId: zod.z.number(),
|
|
47611
|
+
on: zod.z.boolean()
|
|
47612
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47613
|
+
/**
|
|
47614
|
+
* Set the fill-light mode (auto vs manual). `manual` optionally carries the
|
|
47615
|
+
* initial `level`. The auto/manual + level control is a CAMERA-service
|
|
47616
|
+
* action that generally needs an active camera stream/monitor session — the
|
|
47617
|
+
* UI shows the manual level slider ONLY when `mode === 'manual'`.
|
|
47618
|
+
*/
|
|
47619
|
+
setLightMode: method(zod.z.object({
|
|
47620
|
+
deviceId: zod.z.number(),
|
|
47621
|
+
mode: NavigationLightModeSchema,
|
|
47622
|
+
level: zod.z.number().min(40).max(100).optional()
|
|
47623
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47624
|
+
/** Set the MANUAL fill-light level (40..100). Implies `manual` mode. */
|
|
47625
|
+
setLightLevel: method(zod.z.object({
|
|
47626
|
+
deviceId: zod.z.number(),
|
|
47627
|
+
level: zod.z.number().min(40).max(100)
|
|
47628
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47629
|
+
/**
|
|
47630
|
+
* Per-device FEATURE-FLAG report for the general primitives — drives which
|
|
47631
|
+
* controls the UI shows (the per-entry flags for the dictionary come back on
|
|
47632
|
+
* `listActions`).
|
|
47633
|
+
*/
|
|
47634
|
+
getFeatures: method(zod.z.object({ deviceId: zod.z.number() }), NavigationFeaturesSchema)
|
|
47635
|
+
},
|
|
47636
|
+
events: { onStatusChanged: { data: zod.z.object({
|
|
47637
|
+
deviceId: zod.z.number(),
|
|
47638
|
+
status: NavigationStatusSchema
|
|
47639
|
+
}) } },
|
|
47640
|
+
status: {
|
|
47641
|
+
schema: NavigationStatusSchema,
|
|
47642
|
+
kind: "push"
|
|
47643
|
+
},
|
|
47644
|
+
/**
|
|
47645
|
+
* Runtime-state slice mirrored by the kernel. The navigation panel watches it
|
|
47646
|
+
* for live mode / follow / flash changes.
|
|
47647
|
+
*/
|
|
47648
|
+
runtimeState: NavigationRuntimeStateSchema,
|
|
47649
|
+
/**
|
|
47650
|
+
* Runtime-state durability: **session** — like `vacuum-control`, a restored
|
|
47651
|
+
* `mode: cleaning` / `following: true` is a robot that is not actually doing
|
|
47652
|
+
* that. The live handle re-publishes on connect.
|
|
47653
|
+
*
|
|
47654
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
47655
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
47656
|
+
*/
|
|
47657
|
+
durability: "session"
|
|
47658
|
+
};
|
|
47496
47659
|
var rebootCapability = {
|
|
47497
47660
|
name: "reboot",
|
|
47498
47661
|
scope: "device",
|
|
@@ -50813,6 +50976,7 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
50813
50976
|
"motion-zones",
|
|
50814
50977
|
"mqtt-broker",
|
|
50815
50978
|
"native-object-detection",
|
|
50979
|
+
"navigation",
|
|
50816
50980
|
"network-link",
|
|
50817
50981
|
"notifier",
|
|
50818
50982
|
"numeric-sensor",
|
|
@@ -50930,6 +51094,7 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
50930
51094
|
motionZonesCapability,
|
|
50931
51095
|
mqttBrokerCapability,
|
|
50932
51096
|
nativeObjectDetectionCapability,
|
|
51097
|
+
navigationCapability,
|
|
50933
51098
|
networkAccessCapability,
|
|
50934
51099
|
networkLinkCapability,
|
|
50935
51100
|
networkQualityCapability,
|
|
@@ -53732,6 +53897,66 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
53732
53897
|
addonId: null,
|
|
53733
53898
|
access: "create"
|
|
53734
53899
|
},
|
|
53900
|
+
"navigation.getFeatures": {
|
|
53901
|
+
capName: "navigation",
|
|
53902
|
+
capScope: "device",
|
|
53903
|
+
addonId: null,
|
|
53904
|
+
access: "view"
|
|
53905
|
+
},
|
|
53906
|
+
"navigation.goToPoint": {
|
|
53907
|
+
capName: "navigation",
|
|
53908
|
+
capScope: "device",
|
|
53909
|
+
addonId: null,
|
|
53910
|
+
access: "create"
|
|
53911
|
+
},
|
|
53912
|
+
"navigation.listActions": {
|
|
53913
|
+
capName: "navigation",
|
|
53914
|
+
capScope: "device",
|
|
53915
|
+
addonId: null,
|
|
53916
|
+
access: "view"
|
|
53917
|
+
},
|
|
53918
|
+
"navigation.move": {
|
|
53919
|
+
capName: "navigation",
|
|
53920
|
+
capScope: "device",
|
|
53921
|
+
addonId: null,
|
|
53922
|
+
access: "create"
|
|
53923
|
+
},
|
|
53924
|
+
"navigation.playSound": {
|
|
53925
|
+
capName: "navigation",
|
|
53926
|
+
capScope: "device",
|
|
53927
|
+
addonId: null,
|
|
53928
|
+
access: "create"
|
|
53929
|
+
},
|
|
53930
|
+
"navigation.runAction": {
|
|
53931
|
+
capName: "navigation",
|
|
53932
|
+
capScope: "device",
|
|
53933
|
+
addonId: null,
|
|
53934
|
+
access: "create"
|
|
53935
|
+
},
|
|
53936
|
+
"navigation.setLightLevel": {
|
|
53937
|
+
capName: "navigation",
|
|
53938
|
+
capScope: "device",
|
|
53939
|
+
addonId: null,
|
|
53940
|
+
access: "create"
|
|
53941
|
+
},
|
|
53942
|
+
"navigation.setLightMode": {
|
|
53943
|
+
capName: "navigation",
|
|
53944
|
+
capScope: "device",
|
|
53945
|
+
addonId: null,
|
|
53946
|
+
access: "create"
|
|
53947
|
+
},
|
|
53948
|
+
"navigation.setLightOn": {
|
|
53949
|
+
capName: "navigation",
|
|
53950
|
+
capScope: "device",
|
|
53951
|
+
addonId: null,
|
|
53952
|
+
access: "create"
|
|
53953
|
+
},
|
|
53954
|
+
"navigation.stop": {
|
|
53955
|
+
capName: "navigation",
|
|
53956
|
+
capScope: "device",
|
|
53957
|
+
addonId: null,
|
|
53958
|
+
access: "create"
|
|
53959
|
+
},
|
|
53735
53960
|
"networkAccess.getEndpoint": {
|
|
53736
53961
|
capName: "network-access",
|
|
53737
53962
|
capScope: "system",
|
|
@@ -57827,6 +58052,56 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
57827
58052
|
form: "single",
|
|
57828
58053
|
optional: false
|
|
57829
58054
|
}],
|
|
58055
|
+
"navigation.getFeatures": [{
|
|
58056
|
+
name: "deviceId",
|
|
58057
|
+
form: "single",
|
|
58058
|
+
optional: false
|
|
58059
|
+
}],
|
|
58060
|
+
"navigation.goToPoint": [{
|
|
58061
|
+
name: "deviceId",
|
|
58062
|
+
form: "single",
|
|
58063
|
+
optional: false
|
|
58064
|
+
}],
|
|
58065
|
+
"navigation.listActions": [{
|
|
58066
|
+
name: "deviceId",
|
|
58067
|
+
form: "single",
|
|
58068
|
+
optional: false
|
|
58069
|
+
}],
|
|
58070
|
+
"navigation.move": [{
|
|
58071
|
+
name: "deviceId",
|
|
58072
|
+
form: "single",
|
|
58073
|
+
optional: false
|
|
58074
|
+
}],
|
|
58075
|
+
"navigation.playSound": [{
|
|
58076
|
+
name: "deviceId",
|
|
58077
|
+
form: "single",
|
|
58078
|
+
optional: false
|
|
58079
|
+
}],
|
|
58080
|
+
"navigation.runAction": [{
|
|
58081
|
+
name: "deviceId",
|
|
58082
|
+
form: "single",
|
|
58083
|
+
optional: false
|
|
58084
|
+
}],
|
|
58085
|
+
"navigation.setLightLevel": [{
|
|
58086
|
+
name: "deviceId",
|
|
58087
|
+
form: "single",
|
|
58088
|
+
optional: false
|
|
58089
|
+
}],
|
|
58090
|
+
"navigation.setLightMode": [{
|
|
58091
|
+
name: "deviceId",
|
|
58092
|
+
form: "single",
|
|
58093
|
+
optional: false
|
|
58094
|
+
}],
|
|
58095
|
+
"navigation.setLightOn": [{
|
|
58096
|
+
name: "deviceId",
|
|
58097
|
+
form: "single",
|
|
58098
|
+
optional: false
|
|
58099
|
+
}],
|
|
58100
|
+
"navigation.stop": [{
|
|
58101
|
+
name: "deviceId",
|
|
58102
|
+
form: "single",
|
|
58103
|
+
optional: false
|
|
58104
|
+
}],
|
|
57830
58105
|
"networkQuality.getDeviceStats": [{
|
|
57831
58106
|
name: "deviceId",
|
|
57832
58107
|
form: "single",
|
|
@@ -59024,6 +59299,10 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
59024
59299
|
durability: "restored",
|
|
59025
59300
|
volatileFields: ["lastFetchedAt"]
|
|
59026
59301
|
},
|
|
59302
|
+
"navigation": {
|
|
59303
|
+
durability: "session",
|
|
59304
|
+
volatileFields: []
|
|
59305
|
+
},
|
|
59027
59306
|
"network-link": {
|
|
59028
59307
|
durability: "restored",
|
|
59029
59308
|
volatileFields: ["lastUpdated"]
|
|
@@ -60278,7 +60557,7 @@ var require_alerts_addon = __commonJS({
|
|
|
60278
60557
|
[Symbol.toStringTag]: { value: "Module" }
|
|
60279
60558
|
});
|
|
60280
60559
|
require_chunk_Cek0wNdY();
|
|
60281
|
-
var require_dist10 =
|
|
60560
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
60282
60561
|
function selectExpired(alerts, cutoffMs) {
|
|
60283
60562
|
return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
|
|
60284
60563
|
}
|
|
@@ -61097,7 +61376,7 @@ var require_console_logging = __commonJS({
|
|
|
61097
61376
|
[Symbol.toStringTag]: { value: "Module" }
|
|
61098
61377
|
});
|
|
61099
61378
|
require_chunk_Cek0wNdY();
|
|
61100
|
-
var require_dist10 =
|
|
61379
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
61101
61380
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
61102
61381
|
var LEVEL_RANK = {
|
|
61103
61382
|
debug: 0,
|
|
@@ -61191,7 +61470,7 @@ var require_core_blocks_addon = __commonJS({
|
|
|
61191
61470
|
"use strict";
|
|
61192
61471
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
61193
61472
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
61194
|
-
var require_dist10 =
|
|
61473
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
61195
61474
|
var node_crypto = __require("crypto");
|
|
61196
61475
|
var node_fs_promises = __require("fs/promises");
|
|
61197
61476
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -62088,11 +62367,11 @@ var require_core_blocks = __commonJS({
|
|
|
62088
62367
|
}
|
|
62089
62368
|
});
|
|
62090
62369
|
|
|
62091
|
-
// ../system/dist/retired-settings-keys-
|
|
62092
|
-
var
|
|
62093
|
-
"../system/dist/retired-settings-keys-
|
|
62370
|
+
// ../system/dist/retired-settings-keys-BT_YDV75.js
|
|
62371
|
+
var require_retired_settings_keys_BT_YDV75 = __commonJS({
|
|
62372
|
+
"../system/dist/retired-settings-keys-BT_YDV75.js"(exports) {
|
|
62094
62373
|
"use strict";
|
|
62095
|
-
var require_dist10 =
|
|
62374
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
62096
62375
|
function settingsStoreIsAuthoritativeHere(env) {
|
|
62097
62376
|
const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
|
|
62098
62377
|
return raw === "" || raw === "hub";
|
|
@@ -64306,8 +64585,8 @@ var require_device_manager_addon = __commonJS({
|
|
|
64306
64585
|
[Symbol.toStringTag]: { value: "Module" }
|
|
64307
64586
|
});
|
|
64308
64587
|
require_chunk_Cek0wNdY();
|
|
64309
|
-
var require_dist10 =
|
|
64310
|
-
var require_retired_settings_keys =
|
|
64588
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
64589
|
+
var require_retired_settings_keys = require_retired_settings_keys_BT_YDV75();
|
|
64311
64590
|
var node_crypto = __require("crypto");
|
|
64312
64591
|
var _camstack_types_node = require_node();
|
|
64313
64592
|
var JOB_HISTORY = 20;
|
|
@@ -69822,7 +70101,7 @@ var require_hub_forwarder = __commonJS({
|
|
|
69822
70101
|
[Symbol.toStringTag]: { value: "Module" }
|
|
69823
70102
|
});
|
|
69824
70103
|
require_chunk_Cek0wNdY();
|
|
69825
|
-
var require_dist10 =
|
|
70104
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
69826
70105
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
69827
70106
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
69828
70107
|
var HubForwarderDestination = class {
|
|
@@ -69959,7 +70238,7 @@ var require_liveness_monitor_addon = __commonJS({
|
|
|
69959
70238
|
"use strict";
|
|
69960
70239
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
69961
70240
|
require_chunk_Cek0wNdY();
|
|
69962
|
-
var require_dist10 =
|
|
70241
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
69963
70242
|
var NO_DEVICES = "liveness:no-devices";
|
|
69964
70243
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
69965
70244
|
var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
|
|
@@ -70155,7 +70434,7 @@ var require_local_auth_addon = __commonJS({
|
|
|
70155
70434
|
[Symbol.toStringTag]: { value: "Module" }
|
|
70156
70435
|
});
|
|
70157
70436
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
70158
|
-
var require_dist10 =
|
|
70437
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
70159
70438
|
var node_crypto = __require("crypto");
|
|
70160
70439
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
70161
70440
|
var crypto$1 = __require("crypto");
|
|
@@ -77968,7 +78247,7 @@ var require_loki_logging = __commonJS({
|
|
|
77968
78247
|
[Symbol.toStringTag]: { value: "Module" }
|
|
77969
78248
|
});
|
|
77970
78249
|
require_chunk_Cek0wNdY();
|
|
77971
|
-
var require_dist10 =
|
|
78250
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
77972
78251
|
function sanitizeLabelName(raw) {
|
|
77973
78252
|
const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
|
|
77974
78253
|
return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
|
|
@@ -78533,7 +78812,7 @@ var require_native_metrics_addon = __commonJS({
|
|
|
78533
78812
|
[Symbol.toStringTag]: { value: "Module" }
|
|
78534
78813
|
});
|
|
78535
78814
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
78536
|
-
var require_dist10 =
|
|
78815
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
78537
78816
|
var node_fs_promises = __require("fs/promises");
|
|
78538
78817
|
var node_child_process = __require("child_process");
|
|
78539
78818
|
var node_util = __require("util");
|
|
@@ -81117,7 +81396,7 @@ var require_filesystem_storage_addon = __commonJS({
|
|
|
81117
81396
|
[Symbol.toStringTag]: { value: "Module" }
|
|
81118
81397
|
});
|
|
81119
81398
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
81120
|
-
var require_dist10 =
|
|
81399
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
81121
81400
|
var node_crypto = __require("crypto");
|
|
81122
81401
|
var node_fs_promises = __require("fs/promises");
|
|
81123
81402
|
var node_path = __require("path");
|
|
@@ -82233,8 +82512,8 @@ var require_sqlite_settings_addon = __commonJS({
|
|
|
82233
82512
|
[Symbol.toStringTag]: { value: "Module" }
|
|
82234
82513
|
});
|
|
82235
82514
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
82236
|
-
var require_dist10 =
|
|
82237
|
-
var require_retired_settings_keys =
|
|
82515
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
82516
|
+
var require_retired_settings_keys = require_retired_settings_keys_BT_YDV75();
|
|
82238
82517
|
var node_crypto = __require("crypto");
|
|
82239
82518
|
var node_fs = __require("fs");
|
|
82240
82519
|
var node_module = __require("module");
|
|
@@ -84724,7 +85003,7 @@ var require_storage_orchestrator_addon = __commonJS({
|
|
|
84724
85003
|
[Symbol.toStringTag]: { value: "Module" }
|
|
84725
85004
|
});
|
|
84726
85005
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
84727
|
-
var require_dist10 =
|
|
85006
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
84728
85007
|
var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
|
|
84729
85008
|
var zod = require_zod();
|
|
84730
85009
|
var node_crypto = __require("crypto");
|
|
@@ -87675,7 +87954,7 @@ var require_system_config_addon = __commonJS({
|
|
|
87675
87954
|
[Symbol.toStringTag]: { value: "Module" }
|
|
87676
87955
|
});
|
|
87677
87956
|
require_chunk_Cek0wNdY();
|
|
87678
|
-
var require_dist10 =
|
|
87957
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
87679
87958
|
var SECTION_TITLES = {
|
|
87680
87959
|
server: "Server",
|
|
87681
87960
|
auth: "Authentication"
|
|
@@ -105736,7 +106015,7 @@ var require_winston_logging = __commonJS({
|
|
|
105736
106015
|
[Symbol.toStringTag]: { value: "Module" }
|
|
105737
106016
|
});
|
|
105738
106017
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
105739
|
-
var require_dist10 =
|
|
106018
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
105740
106019
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
105741
106020
|
var node_path = __require("path");
|
|
105742
106021
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -107680,9 +107959,9 @@ var require_event_category_b8kBSOTT = __commonJS({
|
|
|
107680
107959
|
}
|
|
107681
107960
|
});
|
|
107682
107961
|
|
|
107683
|
-
// ../types/dist/sleep-
|
|
107684
|
-
var
|
|
107685
|
-
"../types/dist/sleep-
|
|
107962
|
+
// ../types/dist/sleep-Dp0uukHR.js
|
|
107963
|
+
var require_sleep_Dp0uukHR = __commonJS({
|
|
107964
|
+
"../types/dist/sleep-Dp0uukHR.js"(exports) {
|
|
107686
107965
|
"use strict";
|
|
107687
107966
|
var require_event_category = require_event_category_b8kBSOTT();
|
|
107688
107967
|
var zod = require_zod();
|
|
@@ -110077,6 +110356,7 @@ var require_sleep_TVipGseU = __commonJS({
|
|
|
110077
110356
|
motionTrigger: createSliceHandle(stateSource, binding.deviceId, "motion-trigger"),
|
|
110078
110357
|
motionZones: createSliceHandle(stateSource, binding.deviceId, "motion-zones"),
|
|
110079
110358
|
nativeObjectDetection: createSliceHandle(stateSource, binding.deviceId, "native-object-detection"),
|
|
110359
|
+
navigation: createSliceHandle(stateSource, binding.deviceId, "navigation"),
|
|
110080
110360
|
networkLink: createSliceHandle(stateSource, binding.deviceId, "network-link"),
|
|
110081
110361
|
notifier: createSliceHandle(stateSource, binding.deviceId, "notifier"),
|
|
110082
110362
|
numericSensor: createSliceHandle(stateSource, binding.deviceId, "numeric-sensor"),
|
|
@@ -110311,6 +110591,19 @@ var require_sleep_TVipGseU = __commonJS({
|
|
|
110311
110591
|
setEnabled: (input) => dispatch("native-object-detection", "nativeObjectDetection", "setEnabled", "mutation", input),
|
|
110312
110592
|
getStatus: (input) => dispatch("native-object-detection", "nativeObjectDetection", "getStatus", "query", input)
|
|
110313
110593
|
},
|
|
110594
|
+
navigation: {
|
|
110595
|
+
move: (input) => dispatch("navigation", "navigation", "move", "mutation", input),
|
|
110596
|
+
stop: (input) => dispatch("navigation", "navigation", "stop", "mutation", input),
|
|
110597
|
+
goToPoint: (input) => dispatch("navigation", "navigation", "goToPoint", "mutation", input),
|
|
110598
|
+
listActions: (input) => dispatch("navigation", "navigation", "listActions", "query", input),
|
|
110599
|
+
runAction: (input) => dispatch("navigation", "navigation", "runAction", "mutation", input),
|
|
110600
|
+
playSound: (input) => dispatch("navigation", "navigation", "playSound", "mutation", input),
|
|
110601
|
+
setLightOn: (input) => dispatch("navigation", "navigation", "setLightOn", "mutation", input),
|
|
110602
|
+
setLightMode: (input) => dispatch("navigation", "navigation", "setLightMode", "mutation", input),
|
|
110603
|
+
setLightLevel: (input) => dispatch("navigation", "navigation", "setLightLevel", "mutation", input),
|
|
110604
|
+
getFeatures: (input) => dispatch("navigation", "navigation", "getFeatures", "query", input),
|
|
110605
|
+
getStatus: (input) => dispatch("navigation", "navigation", "getStatus", "query", input)
|
|
110606
|
+
},
|
|
110314
110607
|
networkLink: { getStatus: (input) => dispatch("network-link", "networkLink", "getStatus", "query", input) },
|
|
110315
110608
|
notificationRules: {
|
|
110316
110609
|
listRules: (input) => dispatch("notification-rules", "notificationRules", "listRules", "query", input),
|
|
@@ -110758,6 +111051,8 @@ var require_sleep_TVipGseU = __commonJS({
|
|
|
110758
111051
|
"motion-trigger",
|
|
110759
111052
|
"motion-zones",
|
|
110760
111053
|
"native-object-detection",
|
|
111054
|
+
"navigation",
|
|
111055
|
+
"network-link",
|
|
110761
111056
|
"notifier",
|
|
110762
111057
|
"numeric-sensor",
|
|
110763
111058
|
"osd",
|
|
@@ -111374,7 +111669,7 @@ var require_addon = __commonJS({
|
|
|
111374
111669
|
"use strict";
|
|
111375
111670
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
111376
111671
|
var require_event_category = require_event_category_b8kBSOTT();
|
|
111377
|
-
var require_sleep =
|
|
111672
|
+
var require_sleep = require_sleep_Dp0uukHR();
|
|
111378
111673
|
var require_err_msg = require_err_msg_COpsHMw2();
|
|
111379
111674
|
var CAP_INPUT_DEFAULTS = Object.freeze({
|
|
111380
111675
|
"addons": { "getLogs": { "limit": 100 } },
|
|
@@ -130334,7 +130629,7 @@ var require_dist3 = __commonJS({
|
|
|
130334
130629
|
"use strict";
|
|
130335
130630
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
130336
130631
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
130337
|
-
var require_dist10 =
|
|
130632
|
+
var require_dist10 = require_dist_C7g13BfN();
|
|
130338
130633
|
var require_builtins_alerts_alerts_addon = require_alerts_addon();
|
|
130339
130634
|
require_alerts();
|
|
130340
130635
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
@@ -211451,7 +211746,7 @@ var require_dist4 = __commonJS({
|
|
|
211451
211746
|
"use strict";
|
|
211452
211747
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
211453
211748
|
var require_event_category = require_event_category_b8kBSOTT();
|
|
211454
|
-
var require_sleep =
|
|
211749
|
+
var require_sleep = require_sleep_Dp0uukHR();
|
|
211455
211750
|
var require_canonical_hash = require_canonical_hash_DNV8S5ET();
|
|
211456
211751
|
var require_enums2 = require_enums();
|
|
211457
211752
|
var require_err_msg = require_err_msg_COpsHMw2();
|
|
@@ -236175,6 +236470,297 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
236175
236470
|
*/
|
|
236176
236471
|
durability: "session"
|
|
236177
236472
|
};
|
|
236473
|
+
var NavigationMoveCommandSchema = zod.z.object({
|
|
236474
|
+
pan: zod.z.number().min(-1).max(1).optional(),
|
|
236475
|
+
tilt: zod.z.number().min(-1).max(1).optional(),
|
|
236476
|
+
speed: zod.z.number().min(0).max(1).optional()
|
|
236477
|
+
});
|
|
236478
|
+
var NavigationActionIdSchema = zod.z.enum([
|
|
236479
|
+
"goHome",
|
|
236480
|
+
"locate",
|
|
236481
|
+
"spotClean",
|
|
236482
|
+
"findPet",
|
|
236483
|
+
"personFollow",
|
|
236484
|
+
"stop",
|
|
236485
|
+
"startClean",
|
|
236486
|
+
"pauseClean",
|
|
236487
|
+
"dockWash",
|
|
236488
|
+
"autoEmpty",
|
|
236489
|
+
"flashOn",
|
|
236490
|
+
"flashOff"
|
|
236491
|
+
]);
|
|
236492
|
+
var NavigationEntryKindSchema = zod.z.enum(["action", "sound"]);
|
|
236493
|
+
var NavigationActionEntrySchema = zod.z.object({
|
|
236494
|
+
id: zod.z.string(),
|
|
236495
|
+
kind: NavigationEntryKindSchema,
|
|
236496
|
+
label: zod.z.string(),
|
|
236497
|
+
icon: zod.z.string(),
|
|
236498
|
+
/** Present only on `kind:'sound'` entries — the id to pass to `playSound`. */
|
|
236499
|
+
soundId: zod.z.number().int().optional(),
|
|
236500
|
+
/** Per-device feature flag — render this entry only when true. */
|
|
236501
|
+
enabled: zod.z.boolean()
|
|
236502
|
+
});
|
|
236503
|
+
var NAVIGATION_ACTION_CATALOG = [
|
|
236504
|
+
{
|
|
236505
|
+
id: "startClean",
|
|
236506
|
+
kind: "action",
|
|
236507
|
+
label: "Start cleaning",
|
|
236508
|
+
icon: "play",
|
|
236509
|
+
enabled: true
|
|
236510
|
+
},
|
|
236511
|
+
{
|
|
236512
|
+
id: "pauseClean",
|
|
236513
|
+
kind: "action",
|
|
236514
|
+
label: "Pause cleaning",
|
|
236515
|
+
icon: "pause",
|
|
236516
|
+
enabled: true
|
|
236517
|
+
},
|
|
236518
|
+
{
|
|
236519
|
+
id: "stop",
|
|
236520
|
+
kind: "action",
|
|
236521
|
+
label: "Stop",
|
|
236522
|
+
icon: "hand",
|
|
236523
|
+
enabled: true
|
|
236524
|
+
},
|
|
236525
|
+
{
|
|
236526
|
+
id: "goHome",
|
|
236527
|
+
kind: "action",
|
|
236528
|
+
label: "Return to dock",
|
|
236529
|
+
icon: "home",
|
|
236530
|
+
enabled: true
|
|
236531
|
+
},
|
|
236532
|
+
{
|
|
236533
|
+
id: "locate",
|
|
236534
|
+
kind: "action",
|
|
236535
|
+
label: "Locate",
|
|
236536
|
+
icon: "bell",
|
|
236537
|
+
enabled: true
|
|
236538
|
+
},
|
|
236539
|
+
{
|
|
236540
|
+
id: "spotClean",
|
|
236541
|
+
kind: "action",
|
|
236542
|
+
label: "Spot clean here",
|
|
236543
|
+
icon: "crosshair",
|
|
236544
|
+
enabled: true
|
|
236545
|
+
},
|
|
236546
|
+
{
|
|
236547
|
+
id: "findPet",
|
|
236548
|
+
kind: "action",
|
|
236549
|
+
label: "Find pet",
|
|
236550
|
+
icon: "paw-print",
|
|
236551
|
+
enabled: true
|
|
236552
|
+
},
|
|
236553
|
+
{
|
|
236554
|
+
id: "personFollow",
|
|
236555
|
+
kind: "action",
|
|
236556
|
+
label: "Follow me",
|
|
236557
|
+
icon: "footprints",
|
|
236558
|
+
enabled: true
|
|
236559
|
+
},
|
|
236560
|
+
{
|
|
236561
|
+
id: "dockWash",
|
|
236562
|
+
kind: "action",
|
|
236563
|
+
label: "Wash mop",
|
|
236564
|
+
icon: "droplets",
|
|
236565
|
+
enabled: true
|
|
236566
|
+
},
|
|
236567
|
+
{
|
|
236568
|
+
id: "autoEmpty",
|
|
236569
|
+
kind: "action",
|
|
236570
|
+
label: "Empty dustbin",
|
|
236571
|
+
icon: "trash-2",
|
|
236572
|
+
enabled: true
|
|
236573
|
+
},
|
|
236574
|
+
{
|
|
236575
|
+
id: "flashOn",
|
|
236576
|
+
kind: "action",
|
|
236577
|
+
label: "Flash on",
|
|
236578
|
+
icon: "flashlight",
|
|
236579
|
+
enabled: true
|
|
236580
|
+
},
|
|
236581
|
+
{
|
|
236582
|
+
id: "flashOff",
|
|
236583
|
+
kind: "action",
|
|
236584
|
+
label: "Flash off",
|
|
236585
|
+
icon: "flashlight-off",
|
|
236586
|
+
enabled: true
|
|
236587
|
+
},
|
|
236588
|
+
{
|
|
236589
|
+
id: "sound:meow",
|
|
236590
|
+
kind: "sound",
|
|
236591
|
+
label: "Meow",
|
|
236592
|
+
icon: "cat",
|
|
236593
|
+
soundId: 684,
|
|
236594
|
+
enabled: true
|
|
236595
|
+
},
|
|
236596
|
+
{
|
|
236597
|
+
id: "sound:bark",
|
|
236598
|
+
kind: "sound",
|
|
236599
|
+
label: "Woof",
|
|
236600
|
+
icon: "dog",
|
|
236601
|
+
soundId: 685,
|
|
236602
|
+
enabled: true
|
|
236603
|
+
},
|
|
236604
|
+
{
|
|
236605
|
+
id: "sound:footsteps",
|
|
236606
|
+
kind: "sound",
|
|
236607
|
+
label: "Footsteps",
|
|
236608
|
+
icon: "footprints",
|
|
236609
|
+
soundId: 686,
|
|
236610
|
+
enabled: true
|
|
236611
|
+
},
|
|
236612
|
+
{
|
|
236613
|
+
id: "sound:purring",
|
|
236614
|
+
kind: "sound",
|
|
236615
|
+
label: "Purring",
|
|
236616
|
+
icon: "cat",
|
|
236617
|
+
soundId: 687,
|
|
236618
|
+
enabled: true
|
|
236619
|
+
},
|
|
236620
|
+
{
|
|
236621
|
+
id: "sound:tickTock",
|
|
236622
|
+
kind: "sound",
|
|
236623
|
+
label: "Tick-tock",
|
|
236624
|
+
icon: "clock",
|
|
236625
|
+
soundId: 688,
|
|
236626
|
+
enabled: true
|
|
236627
|
+
}
|
|
236628
|
+
];
|
|
236629
|
+
var NavigationPointSchema = zod.z.object({
|
|
236630
|
+
x: zod.z.number(),
|
|
236631
|
+
y: zod.z.number()
|
|
236632
|
+
});
|
|
236633
|
+
var NavigationFeaturesSchema = zod.z.object({
|
|
236634
|
+
move: zod.z.boolean(),
|
|
236635
|
+
stop: zod.z.boolean(),
|
|
236636
|
+
goToPoint: zod.z.boolean(),
|
|
236637
|
+
runAction: zod.z.boolean(),
|
|
236638
|
+
playSound: zod.z.boolean(),
|
|
236639
|
+
light: zod.z.boolean(),
|
|
236640
|
+
lightMode: zod.z.boolean()
|
|
236641
|
+
});
|
|
236642
|
+
var NavigationLightModeSchema = zod.z.enum(["auto", "manual"]);
|
|
236643
|
+
var NAVIGATION_LIGHT_LEVEL_MIN = 40;
|
|
236644
|
+
var NAVIGATION_LIGHT_LEVEL_MAX = 100;
|
|
236645
|
+
var NavigationModeSchema = zod.z.enum([
|
|
236646
|
+
"idle",
|
|
236647
|
+
"cleaning",
|
|
236648
|
+
"spot",
|
|
236649
|
+
"following",
|
|
236650
|
+
"goto",
|
|
236651
|
+
"returning",
|
|
236652
|
+
"paused",
|
|
236653
|
+
"unknown"
|
|
236654
|
+
]);
|
|
236655
|
+
var NavigationStatusSchema = zod.z.object({
|
|
236656
|
+
mode: NavigationModeSchema,
|
|
236657
|
+
following: zod.z.boolean(),
|
|
236658
|
+
flash: zod.z.boolean(),
|
|
236659
|
+
lightMode: NavigationLightModeSchema,
|
|
236660
|
+
lightLevel: zod.z.number().min(40).max(100),
|
|
236661
|
+
/** Ms epoch when the slice was last updated. */
|
|
236662
|
+
lastChangedAt: zod.z.number()
|
|
236663
|
+
});
|
|
236664
|
+
var NavigationRuntimeStateSchema = NavigationStatusSchema.extend({ lastFetchedAt: zod.z.number() });
|
|
236665
|
+
var navigationCapability = {
|
|
236666
|
+
name: "navigation",
|
|
236667
|
+
scope: "device",
|
|
236668
|
+
deviceNative: true,
|
|
236669
|
+
mode: "singleton",
|
|
236670
|
+
deviceTypes: [require_sleep.DeviceType.Camera],
|
|
236671
|
+
deviceConfig: { ui: {
|
|
236672
|
+
kind: "widget",
|
|
236673
|
+
widgetId: "host/navigation-panel",
|
|
236674
|
+
tab: "navigation",
|
|
236675
|
+
topTab: true,
|
|
236676
|
+
label: "Navigation",
|
|
236677
|
+
order: 0
|
|
236678
|
+
} },
|
|
236679
|
+
methods: {
|
|
236680
|
+
/**
|
|
236681
|
+
* Momentary drive nudge (the robot moves). `protected` — mirrors
|
|
236682
|
+
* `ptz.continuousMove` so the Viewer navigation panel (and the PTZ-mimic
|
|
236683
|
+
* path) works for any authenticated user, not admin-only. The UI sends
|
|
236684
|
+
* these at ~1 Hz while a control is held; the provider forwards each one to
|
|
236685
|
+
* a single drive write WITHOUT debouncing.
|
|
236686
|
+
*/
|
|
236687
|
+
move: require_sleep.method(NavigationMoveCommandSchema.extend({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
236688
|
+
/** Halt all motion immediately (zero drive vector). */
|
|
236689
|
+
stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
236690
|
+
/** Send the robot to a point on its live map. */
|
|
236691
|
+
goToPoint: require_sleep.method(NavigationPointSchema.extend({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
236692
|
+
/**
|
|
236693
|
+
* Enumerate the discrete controls THIS device supports (data-driven UI +
|
|
236694
|
+
* PTZ mimic). Camera-probed subset of {@link NAVIGATION_ACTION_CATALOG}.
|
|
236695
|
+
*/
|
|
236696
|
+
listActions: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.array(NavigationActionEntrySchema)),
|
|
236697
|
+
/**
|
|
236698
|
+
* Run one discrete action (a `kind:'action'` dictionary entry). Invalid /
|
|
236699
|
+
* unsupported action ids are rejected by the provider.
|
|
236700
|
+
*/
|
|
236701
|
+
runAction: require_sleep.method(zod.z.object({
|
|
236702
|
+
deviceId: zod.z.number(),
|
|
236703
|
+
actionId: NavigationActionIdSchema
|
|
236704
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236705
|
+
/** Play a sound by its wire id (the `soundId` of a `kind:'sound'` entry). */
|
|
236706
|
+
playSound: require_sleep.method(zod.z.object({
|
|
236707
|
+
deviceId: zod.z.number(),
|
|
236708
|
+
soundId: zod.z.number().int()
|
|
236709
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236710
|
+
/**
|
|
236711
|
+
* Turn the on-camera fill light on / off (the `OpenFullLight` control —
|
|
236712
|
+
* works anytime, no active stream required).
|
|
236713
|
+
*/
|
|
236714
|
+
setLightOn: require_sleep.method(zod.z.object({
|
|
236715
|
+
deviceId: zod.z.number(),
|
|
236716
|
+
on: zod.z.boolean()
|
|
236717
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236718
|
+
/**
|
|
236719
|
+
* Set the fill-light mode (auto vs manual). `manual` optionally carries the
|
|
236720
|
+
* initial `level`. The auto/manual + level control is a CAMERA-service
|
|
236721
|
+
* action that generally needs an active camera stream/monitor session — the
|
|
236722
|
+
* UI shows the manual level slider ONLY when `mode === 'manual'`.
|
|
236723
|
+
*/
|
|
236724
|
+
setLightMode: require_sleep.method(zod.z.object({
|
|
236725
|
+
deviceId: zod.z.number(),
|
|
236726
|
+
mode: NavigationLightModeSchema,
|
|
236727
|
+
level: zod.z.number().min(40).max(100).optional()
|
|
236728
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236729
|
+
/** Set the MANUAL fill-light level (40..100). Implies `manual` mode. */
|
|
236730
|
+
setLightLevel: require_sleep.method(zod.z.object({
|
|
236731
|
+
deviceId: zod.z.number(),
|
|
236732
|
+
level: zod.z.number().min(40).max(100)
|
|
236733
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236734
|
+
/**
|
|
236735
|
+
* Per-device FEATURE-FLAG report for the general primitives — drives which
|
|
236736
|
+
* controls the UI shows (the per-entry flags for the dictionary come back on
|
|
236737
|
+
* `listActions`).
|
|
236738
|
+
*/
|
|
236739
|
+
getFeatures: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), NavigationFeaturesSchema)
|
|
236740
|
+
},
|
|
236741
|
+
events: { onStatusChanged: { data: zod.z.object({
|
|
236742
|
+
deviceId: zod.z.number(),
|
|
236743
|
+
status: NavigationStatusSchema
|
|
236744
|
+
}) } },
|
|
236745
|
+
status: {
|
|
236746
|
+
schema: NavigationStatusSchema,
|
|
236747
|
+
kind: "push"
|
|
236748
|
+
},
|
|
236749
|
+
/**
|
|
236750
|
+
* Runtime-state slice mirrored by the kernel. The navigation panel watches it
|
|
236751
|
+
* for live mode / follow / flash changes.
|
|
236752
|
+
*/
|
|
236753
|
+
runtimeState: NavigationRuntimeStateSchema,
|
|
236754
|
+
/**
|
|
236755
|
+
* Runtime-state durability: **session** — like `vacuum-control`, a restored
|
|
236756
|
+
* `mode: cleaning` / `following: true` is a robot that is not actually doing
|
|
236757
|
+
* that. The live handle re-publishes on connect.
|
|
236758
|
+
*
|
|
236759
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
236760
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
236761
|
+
*/
|
|
236762
|
+
durability: "session"
|
|
236763
|
+
};
|
|
236178
236764
|
var rebootCapability = {
|
|
236179
236765
|
name: "reboot",
|
|
236180
236766
|
scope: "device",
|
|
@@ -239546,6 +240132,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
239546
240132
|
motionTrigger: motionTriggerCapability,
|
|
239547
240133
|
motionZones: motionZonesCapability,
|
|
239548
240134
|
nativeObjectDetection: nativeObjectDetectionCapability,
|
|
240135
|
+
navigation: navigationCapability,
|
|
239549
240136
|
networkLink: networkLinkCapability,
|
|
239550
240137
|
notifier: notifierCapability,
|
|
239551
240138
|
numericSensor: numericSensorCapability,
|
|
@@ -242026,6 +242613,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
242026
242613
|
"motion-zones",
|
|
242027
242614
|
"mqtt-broker",
|
|
242028
242615
|
"native-object-detection",
|
|
242616
|
+
"navigation",
|
|
242029
242617
|
"network-link",
|
|
242030
242618
|
"notifier",
|
|
242031
242619
|
"numeric-sensor",
|
|
@@ -242143,6 +242731,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
242143
242731
|
motionZones: "motion-zones",
|
|
242144
242732
|
mqttBroker: "mqtt-broker",
|
|
242145
242733
|
nativeObjectDetection: "native-object-detection",
|
|
242734
|
+
navigation: "navigation",
|
|
242146
242735
|
networkAccess: "network-access",
|
|
242147
242736
|
networkLink: "network-link",
|
|
242148
242737
|
networkQuality: "network-quality",
|
|
@@ -242565,6 +243154,10 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
242565
243154
|
key: "nativeObjectDetection",
|
|
242566
243155
|
name: "native-object-detection"
|
|
242567
243156
|
},
|
|
243157
|
+
{
|
|
243158
|
+
key: "navigation",
|
|
243159
|
+
name: "navigation"
|
|
243160
|
+
},
|
|
242568
243161
|
{
|
|
242569
243162
|
key: "networkAccess",
|
|
242570
243163
|
name: "network-access"
|
|
@@ -242912,6 +243505,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
242912
243505
|
motionZonesCapability,
|
|
242913
243506
|
mqttBrokerCapability,
|
|
242914
243507
|
nativeObjectDetectionCapability,
|
|
243508
|
+
navigationCapability,
|
|
242915
243509
|
networkAccessCapability,
|
|
242916
243510
|
networkLinkCapability,
|
|
242917
243511
|
networkQualityCapability,
|
|
@@ -245714,6 +246308,66 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
245714
246308
|
addonId: null,
|
|
245715
246309
|
access: "create"
|
|
245716
246310
|
},
|
|
246311
|
+
"navigation.getFeatures": {
|
|
246312
|
+
capName: "navigation",
|
|
246313
|
+
capScope: "device",
|
|
246314
|
+
addonId: null,
|
|
246315
|
+
access: "view"
|
|
246316
|
+
},
|
|
246317
|
+
"navigation.goToPoint": {
|
|
246318
|
+
capName: "navigation",
|
|
246319
|
+
capScope: "device",
|
|
246320
|
+
addonId: null,
|
|
246321
|
+
access: "create"
|
|
246322
|
+
},
|
|
246323
|
+
"navigation.listActions": {
|
|
246324
|
+
capName: "navigation",
|
|
246325
|
+
capScope: "device",
|
|
246326
|
+
addonId: null,
|
|
246327
|
+
access: "view"
|
|
246328
|
+
},
|
|
246329
|
+
"navigation.move": {
|
|
246330
|
+
capName: "navigation",
|
|
246331
|
+
capScope: "device",
|
|
246332
|
+
addonId: null,
|
|
246333
|
+
access: "create"
|
|
246334
|
+
},
|
|
246335
|
+
"navigation.playSound": {
|
|
246336
|
+
capName: "navigation",
|
|
246337
|
+
capScope: "device",
|
|
246338
|
+
addonId: null,
|
|
246339
|
+
access: "create"
|
|
246340
|
+
},
|
|
246341
|
+
"navigation.runAction": {
|
|
246342
|
+
capName: "navigation",
|
|
246343
|
+
capScope: "device",
|
|
246344
|
+
addonId: null,
|
|
246345
|
+
access: "create"
|
|
246346
|
+
},
|
|
246347
|
+
"navigation.setLightLevel": {
|
|
246348
|
+
capName: "navigation",
|
|
246349
|
+
capScope: "device",
|
|
246350
|
+
addonId: null,
|
|
246351
|
+
access: "create"
|
|
246352
|
+
},
|
|
246353
|
+
"navigation.setLightMode": {
|
|
246354
|
+
capName: "navigation",
|
|
246355
|
+
capScope: "device",
|
|
246356
|
+
addonId: null,
|
|
246357
|
+
access: "create"
|
|
246358
|
+
},
|
|
246359
|
+
"navigation.setLightOn": {
|
|
246360
|
+
capName: "navigation",
|
|
246361
|
+
capScope: "device",
|
|
246362
|
+
addonId: null,
|
|
246363
|
+
access: "create"
|
|
246364
|
+
},
|
|
246365
|
+
"navigation.stop": {
|
|
246366
|
+
capName: "navigation",
|
|
246367
|
+
capScope: "device",
|
|
246368
|
+
addonId: null,
|
|
246369
|
+
access: "create"
|
|
246370
|
+
},
|
|
245717
246371
|
"networkAccess.getEndpoint": {
|
|
245718
246372
|
capName: "network-access",
|
|
245719
246373
|
capScope: "system",
|
|
@@ -249106,6 +249760,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
249106
249760
|
"motion-zones",
|
|
249107
249761
|
"mqtt-broker",
|
|
249108
249762
|
"native-object-detection",
|
|
249763
|
+
"navigation",
|
|
249109
249764
|
"network-access",
|
|
249110
249765
|
"network-quality",
|
|
249111
249766
|
"nodes",
|
|
@@ -249193,6 +249848,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
249193
249848
|
"motion-trigger",
|
|
249194
249849
|
"motion-zones",
|
|
249195
249850
|
"native-object-detection",
|
|
249851
|
+
"navigation",
|
|
249196
249852
|
"notifier",
|
|
249197
249853
|
"osd",
|
|
249198
249854
|
"pet-feeder",
|
|
@@ -250067,6 +250723,56 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
250067
250723
|
form: "single",
|
|
250068
250724
|
optional: false
|
|
250069
250725
|
}],
|
|
250726
|
+
"navigation.getFeatures": [{
|
|
250727
|
+
name: "deviceId",
|
|
250728
|
+
form: "single",
|
|
250729
|
+
optional: false
|
|
250730
|
+
}],
|
|
250731
|
+
"navigation.goToPoint": [{
|
|
250732
|
+
name: "deviceId",
|
|
250733
|
+
form: "single",
|
|
250734
|
+
optional: false
|
|
250735
|
+
}],
|
|
250736
|
+
"navigation.listActions": [{
|
|
250737
|
+
name: "deviceId",
|
|
250738
|
+
form: "single",
|
|
250739
|
+
optional: false
|
|
250740
|
+
}],
|
|
250741
|
+
"navigation.move": [{
|
|
250742
|
+
name: "deviceId",
|
|
250743
|
+
form: "single",
|
|
250744
|
+
optional: false
|
|
250745
|
+
}],
|
|
250746
|
+
"navigation.playSound": [{
|
|
250747
|
+
name: "deviceId",
|
|
250748
|
+
form: "single",
|
|
250749
|
+
optional: false
|
|
250750
|
+
}],
|
|
250751
|
+
"navigation.runAction": [{
|
|
250752
|
+
name: "deviceId",
|
|
250753
|
+
form: "single",
|
|
250754
|
+
optional: false
|
|
250755
|
+
}],
|
|
250756
|
+
"navigation.setLightLevel": [{
|
|
250757
|
+
name: "deviceId",
|
|
250758
|
+
form: "single",
|
|
250759
|
+
optional: false
|
|
250760
|
+
}],
|
|
250761
|
+
"navigation.setLightMode": [{
|
|
250762
|
+
name: "deviceId",
|
|
250763
|
+
form: "single",
|
|
250764
|
+
optional: false
|
|
250765
|
+
}],
|
|
250766
|
+
"navigation.setLightOn": [{
|
|
250767
|
+
name: "deviceId",
|
|
250768
|
+
form: "single",
|
|
250769
|
+
optional: false
|
|
250770
|
+
}],
|
|
250771
|
+
"navigation.stop": [{
|
|
250772
|
+
name: "deviceId",
|
|
250773
|
+
form: "single",
|
|
250774
|
+
optional: false
|
|
250775
|
+
}],
|
|
250070
250776
|
"networkQuality.getDeviceStats": [{
|
|
250071
250777
|
name: "deviceId",
|
|
250072
250778
|
form: "single",
|
|
@@ -251414,6 +252120,10 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
251414
252120
|
durability: "restored",
|
|
251415
252121
|
volatileFields: ["lastFetchedAt"]
|
|
251416
252122
|
},
|
|
252123
|
+
"navigation": {
|
|
252124
|
+
durability: "session",
|
|
252125
|
+
volatileFields: []
|
|
252126
|
+
},
|
|
251417
252127
|
"network-link": {
|
|
251418
252128
|
durability: "restored",
|
|
251419
252129
|
volatileFields: ["lastUpdated"]
|
|
@@ -255475,6 +256185,9 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
255475
256185
|
exports.NATIVE_LEASE_SECTION_ID = NATIVE_LEASE_SECTION_ID;
|
|
255476
256186
|
exports.NATIVE_LEASE_TILE_BUDGET_FIELD = NATIVE_LEASE_TILE_BUDGET_FIELD;
|
|
255477
256187
|
exports.NATIVE_LEASE_TILE_BUDGET_KEY = NATIVE_LEASE_TILE_BUDGET_KEY;
|
|
256188
|
+
exports.NAVIGATION_ACTION_CATALOG = NAVIGATION_ACTION_CATALOG;
|
|
256189
|
+
exports.NAVIGATION_LIGHT_LEVEL_MAX = NAVIGATION_LIGHT_LEVEL_MAX;
|
|
256190
|
+
exports.NAVIGATION_LIGHT_LEVEL_MIN = NAVIGATION_LIGHT_LEVEL_MIN;
|
|
255478
256191
|
exports.NC_ALARM_SYSTEM_EVENT_KINDS = NC_ALARM_SYSTEM_EVENT_KINDS;
|
|
255479
256192
|
exports.NC_AUDIO_CONFIRM_HITS_DEFAULT = NC_AUDIO_CONFIRM_HITS_DEFAULT;
|
|
255480
256193
|
exports.NC_AUDIO_CONFIRM_HITS_MAX = NC_AUDIO_CONFIRM_HITS_MAX;
|
|
@@ -255523,6 +256236,16 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
255523
256236
|
exports.NativeObjectClassEnum = NativeObjectClassEnum;
|
|
255524
256237
|
exports.NativeObjectDetectionRuntimeStateSchema = NativeObjectDetectionRuntimeStateSchema;
|
|
255525
256238
|
exports.NativeObjectDetectionStatusSchema = NativeObjectDetectionStatusSchema;
|
|
256239
|
+
exports.NavigationActionEntrySchema = NavigationActionEntrySchema;
|
|
256240
|
+
exports.NavigationActionIdSchema = NavigationActionIdSchema;
|
|
256241
|
+
exports.NavigationEntryKindSchema = NavigationEntryKindSchema;
|
|
256242
|
+
exports.NavigationFeaturesSchema = NavigationFeaturesSchema;
|
|
256243
|
+
exports.NavigationLightModeSchema = NavigationLightModeSchema;
|
|
256244
|
+
exports.NavigationModeSchema = NavigationModeSchema;
|
|
256245
|
+
exports.NavigationMoveCommandSchema = NavigationMoveCommandSchema;
|
|
256246
|
+
exports.NavigationPointSchema = NavigationPointSchema;
|
|
256247
|
+
exports.NavigationRuntimeStateSchema = NavigationRuntimeStateSchema;
|
|
256248
|
+
exports.NavigationStatusSchema = NavigationStatusSchema;
|
|
255526
256249
|
exports.NcAlarmConfigSchema = NcAlarmConfigSchema;
|
|
255527
256250
|
exports.NcAlarmModeCoverageSchema = NcAlarmModeCoverageSchema;
|
|
255528
256251
|
exports.NcAlarmSettingsPatchSchema = NcAlarmSettingsPatchSchema;
|
|
@@ -256231,6 +256954,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
256231
256954
|
exports.motionZonesCapability = motionZonesCapability;
|
|
256232
256955
|
exports.mqttBrokerCapability = mqttBrokerCapability;
|
|
256233
256956
|
exports.nativeObjectDetectionCapability = nativeObjectDetectionCapability;
|
|
256957
|
+
exports.navigationCapability = navigationCapability;
|
|
256234
256958
|
exports.networkAccessCapability = networkAccessCapability;
|
|
256235
256959
|
exports.networkLinkCapability = networkLinkCapability;
|
|
256236
256960
|
exports.networkQualityCapability = networkQualityCapability;
|