camstack 1.2.102 → 1.2.104
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-Qnc3kuba.js
|
|
23637
|
+
var require_dist_Qnc3kuba = __commonJS({
|
|
23638
|
+
"../system/dist/dist-Qnc3kuba.js"(exports) {
|
|
23639
23639
|
"use strict";
|
|
23640
23640
|
var zod = require_zod();
|
|
23641
23641
|
var EventCategory = /* @__PURE__ */ (function(EventCategory2) {
|
|
@@ -23866,6 +23866,12 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
23866
23866
|
icon: "move",
|
|
23867
23867
|
order: 40
|
|
23868
23868
|
},
|
|
23869
|
+
{
|
|
23870
|
+
id: "navigation",
|
|
23871
|
+
label: "Navigation",
|
|
23872
|
+
icon: "compass",
|
|
23873
|
+
order: 41
|
|
23874
|
+
},
|
|
23869
23875
|
{
|
|
23870
23876
|
id: "consumables",
|
|
23871
23877
|
label: "Consumables",
|
|
@@ -47493,6 +47499,169 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
47493
47499
|
*/
|
|
47494
47500
|
durability: "session"
|
|
47495
47501
|
};
|
|
47502
|
+
var NavigationMoveCommandSchema = zod.z.object({
|
|
47503
|
+
pan: zod.z.number().min(-1).max(1).optional(),
|
|
47504
|
+
tilt: zod.z.number().min(-1).max(1).optional(),
|
|
47505
|
+
speed: zod.z.number().min(0).max(1).optional()
|
|
47506
|
+
});
|
|
47507
|
+
var NavigationActionIdSchema = zod.z.enum([
|
|
47508
|
+
"goHome",
|
|
47509
|
+
"locate",
|
|
47510
|
+
"spotClean",
|
|
47511
|
+
"findPet",
|
|
47512
|
+
"personFollow",
|
|
47513
|
+
"stop",
|
|
47514
|
+
"startClean",
|
|
47515
|
+
"pauseClean",
|
|
47516
|
+
"dockWash",
|
|
47517
|
+
"autoEmpty",
|
|
47518
|
+
"flashOn",
|
|
47519
|
+
"flashOff"
|
|
47520
|
+
]);
|
|
47521
|
+
var NavigationEntryKindSchema = zod.z.enum(["action", "sound"]);
|
|
47522
|
+
var NavigationActionEntrySchema = zod.z.object({
|
|
47523
|
+
id: zod.z.string(),
|
|
47524
|
+
kind: NavigationEntryKindSchema,
|
|
47525
|
+
label: zod.z.string(),
|
|
47526
|
+
icon: zod.z.string(),
|
|
47527
|
+
/** Present only on `kind:'sound'` entries — the id to pass to `playSound`. */
|
|
47528
|
+
soundId: zod.z.number().int().optional(),
|
|
47529
|
+
/** Per-device feature flag — render this entry only when true. */
|
|
47530
|
+
enabled: zod.z.boolean()
|
|
47531
|
+
});
|
|
47532
|
+
var NavigationPointSchema = zod.z.object({
|
|
47533
|
+
x: zod.z.number(),
|
|
47534
|
+
y: zod.z.number()
|
|
47535
|
+
});
|
|
47536
|
+
var NavigationFeaturesSchema = zod.z.object({
|
|
47537
|
+
move: zod.z.boolean(),
|
|
47538
|
+
stop: zod.z.boolean(),
|
|
47539
|
+
goToPoint: zod.z.boolean(),
|
|
47540
|
+
runAction: zod.z.boolean(),
|
|
47541
|
+
playSound: zod.z.boolean(),
|
|
47542
|
+
light: zod.z.boolean(),
|
|
47543
|
+
lightMode: zod.z.boolean()
|
|
47544
|
+
});
|
|
47545
|
+
var NavigationLightModeSchema = zod.z.enum(["auto", "manual"]);
|
|
47546
|
+
var NavigationModeSchema = zod.z.enum([
|
|
47547
|
+
"idle",
|
|
47548
|
+
"cleaning",
|
|
47549
|
+
"spot",
|
|
47550
|
+
"following",
|
|
47551
|
+
"goto",
|
|
47552
|
+
"returning",
|
|
47553
|
+
"paused",
|
|
47554
|
+
"unknown"
|
|
47555
|
+
]);
|
|
47556
|
+
var NavigationStatusSchema = zod.z.object({
|
|
47557
|
+
mode: NavigationModeSchema,
|
|
47558
|
+
following: zod.z.boolean(),
|
|
47559
|
+
flash: zod.z.boolean(),
|
|
47560
|
+
lightMode: NavigationLightModeSchema,
|
|
47561
|
+
lightLevel: zod.z.number().min(40).max(100),
|
|
47562
|
+
/** Ms epoch when the slice was last updated. */
|
|
47563
|
+
lastChangedAt: zod.z.number()
|
|
47564
|
+
});
|
|
47565
|
+
var NavigationRuntimeStateSchema = NavigationStatusSchema.extend({ lastFetchedAt: zod.z.number() });
|
|
47566
|
+
var navigationCapability = {
|
|
47567
|
+
name: "navigation",
|
|
47568
|
+
scope: "device",
|
|
47569
|
+
deviceNative: true,
|
|
47570
|
+
mode: "singleton",
|
|
47571
|
+
deviceTypes: [DeviceType.Camera],
|
|
47572
|
+
deviceConfig: { ui: {
|
|
47573
|
+
kind: "widget",
|
|
47574
|
+
widgetId: "host/navigation-panel",
|
|
47575
|
+
tab: "navigation",
|
|
47576
|
+
topTab: true,
|
|
47577
|
+
label: "Navigation",
|
|
47578
|
+
order: 0
|
|
47579
|
+
} },
|
|
47580
|
+
methods: {
|
|
47581
|
+
/**
|
|
47582
|
+
* Momentary drive nudge (the robot moves). `protected` — mirrors
|
|
47583
|
+
* `ptz.continuousMove` so the Viewer navigation panel (and the PTZ-mimic
|
|
47584
|
+
* path) works for any authenticated user, not admin-only. The UI sends
|
|
47585
|
+
* these at ~1 Hz while a control is held; the provider forwards each one to
|
|
47586
|
+
* a single drive write WITHOUT debouncing.
|
|
47587
|
+
*/
|
|
47588
|
+
move: method(NavigationMoveCommandSchema.extend({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
47589
|
+
/** Halt all motion immediately (zero drive vector). */
|
|
47590
|
+
stop: method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
47591
|
+
/** Send the robot to a point on its live map. */
|
|
47592
|
+
goToPoint: method(NavigationPointSchema.extend({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
47593
|
+
/**
|
|
47594
|
+
* Enumerate the discrete controls THIS device supports (data-driven UI +
|
|
47595
|
+
* PTZ mimic). Camera-probed subset of {@link NAVIGATION_ACTION_CATALOG}.
|
|
47596
|
+
*/
|
|
47597
|
+
listActions: method(zod.z.object({ deviceId: zod.z.number() }), zod.z.array(NavigationActionEntrySchema)),
|
|
47598
|
+
/**
|
|
47599
|
+
* Run one discrete action (a `kind:'action'` dictionary entry). Invalid /
|
|
47600
|
+
* unsupported action ids are rejected by the provider.
|
|
47601
|
+
*/
|
|
47602
|
+
runAction: method(zod.z.object({
|
|
47603
|
+
deviceId: zod.z.number(),
|
|
47604
|
+
actionId: NavigationActionIdSchema
|
|
47605
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47606
|
+
/** Play a sound by its wire id (the `soundId` of a `kind:'sound'` entry). */
|
|
47607
|
+
playSound: method(zod.z.object({
|
|
47608
|
+
deviceId: zod.z.number(),
|
|
47609
|
+
soundId: zod.z.number().int()
|
|
47610
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47611
|
+
/**
|
|
47612
|
+
* Turn the on-camera fill light on / off (the `OpenFullLight` control —
|
|
47613
|
+
* works anytime, no active stream required).
|
|
47614
|
+
*/
|
|
47615
|
+
setLightOn: method(zod.z.object({
|
|
47616
|
+
deviceId: zod.z.number(),
|
|
47617
|
+
on: zod.z.boolean()
|
|
47618
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47619
|
+
/**
|
|
47620
|
+
* Set the fill-light mode (auto vs manual). `manual` optionally carries the
|
|
47621
|
+
* initial `level`. The auto/manual + level control is a CAMERA-service
|
|
47622
|
+
* action that generally needs an active camera stream/monitor session — the
|
|
47623
|
+
* UI shows the manual level slider ONLY when `mode === 'manual'`.
|
|
47624
|
+
*/
|
|
47625
|
+
setLightMode: method(zod.z.object({
|
|
47626
|
+
deviceId: zod.z.number(),
|
|
47627
|
+
mode: NavigationLightModeSchema,
|
|
47628
|
+
level: zod.z.number().min(40).max(100).optional()
|
|
47629
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47630
|
+
/** Set the MANUAL fill-light level (40..100). Implies `manual` mode. */
|
|
47631
|
+
setLightLevel: method(zod.z.object({
|
|
47632
|
+
deviceId: zod.z.number(),
|
|
47633
|
+
level: zod.z.number().min(40).max(100)
|
|
47634
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
47635
|
+
/**
|
|
47636
|
+
* Per-device FEATURE-FLAG report for the general primitives — drives which
|
|
47637
|
+
* controls the UI shows (the per-entry flags for the dictionary come back on
|
|
47638
|
+
* `listActions`).
|
|
47639
|
+
*/
|
|
47640
|
+
getFeatures: method(zod.z.object({ deviceId: zod.z.number() }), NavigationFeaturesSchema)
|
|
47641
|
+
},
|
|
47642
|
+
events: { onStatusChanged: { data: zod.z.object({
|
|
47643
|
+
deviceId: zod.z.number(),
|
|
47644
|
+
status: NavigationStatusSchema
|
|
47645
|
+
}) } },
|
|
47646
|
+
status: {
|
|
47647
|
+
schema: NavigationStatusSchema,
|
|
47648
|
+
kind: "push"
|
|
47649
|
+
},
|
|
47650
|
+
/**
|
|
47651
|
+
* Runtime-state slice mirrored by the kernel. The navigation panel watches it
|
|
47652
|
+
* for live mode / follow / flash changes.
|
|
47653
|
+
*/
|
|
47654
|
+
runtimeState: NavigationRuntimeStateSchema,
|
|
47655
|
+
/**
|
|
47656
|
+
* Runtime-state durability: **session** — like `vacuum-control`, a restored
|
|
47657
|
+
* `mode: cleaning` / `following: true` is a robot that is not actually doing
|
|
47658
|
+
* that. The live handle re-publishes on connect.
|
|
47659
|
+
*
|
|
47660
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
47661
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
47662
|
+
*/
|
|
47663
|
+
durability: "session"
|
|
47664
|
+
};
|
|
47496
47665
|
var rebootCapability = {
|
|
47497
47666
|
name: "reboot",
|
|
47498
47667
|
scope: "device",
|
|
@@ -50813,6 +50982,7 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
50813
50982
|
"motion-zones",
|
|
50814
50983
|
"mqtt-broker",
|
|
50815
50984
|
"native-object-detection",
|
|
50985
|
+
"navigation",
|
|
50816
50986
|
"network-link",
|
|
50817
50987
|
"notifier",
|
|
50818
50988
|
"numeric-sensor",
|
|
@@ -50930,6 +51100,7 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
50930
51100
|
motionZonesCapability,
|
|
50931
51101
|
mqttBrokerCapability,
|
|
50932
51102
|
nativeObjectDetectionCapability,
|
|
51103
|
+
navigationCapability,
|
|
50933
51104
|
networkAccessCapability,
|
|
50934
51105
|
networkLinkCapability,
|
|
50935
51106
|
networkQualityCapability,
|
|
@@ -53732,6 +53903,66 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
53732
53903
|
addonId: null,
|
|
53733
53904
|
access: "create"
|
|
53734
53905
|
},
|
|
53906
|
+
"navigation.getFeatures": {
|
|
53907
|
+
capName: "navigation",
|
|
53908
|
+
capScope: "device",
|
|
53909
|
+
addonId: null,
|
|
53910
|
+
access: "view"
|
|
53911
|
+
},
|
|
53912
|
+
"navigation.goToPoint": {
|
|
53913
|
+
capName: "navigation",
|
|
53914
|
+
capScope: "device",
|
|
53915
|
+
addonId: null,
|
|
53916
|
+
access: "create"
|
|
53917
|
+
},
|
|
53918
|
+
"navigation.listActions": {
|
|
53919
|
+
capName: "navigation",
|
|
53920
|
+
capScope: "device",
|
|
53921
|
+
addonId: null,
|
|
53922
|
+
access: "view"
|
|
53923
|
+
},
|
|
53924
|
+
"navigation.move": {
|
|
53925
|
+
capName: "navigation",
|
|
53926
|
+
capScope: "device",
|
|
53927
|
+
addonId: null,
|
|
53928
|
+
access: "create"
|
|
53929
|
+
},
|
|
53930
|
+
"navigation.playSound": {
|
|
53931
|
+
capName: "navigation",
|
|
53932
|
+
capScope: "device",
|
|
53933
|
+
addonId: null,
|
|
53934
|
+
access: "create"
|
|
53935
|
+
},
|
|
53936
|
+
"navigation.runAction": {
|
|
53937
|
+
capName: "navigation",
|
|
53938
|
+
capScope: "device",
|
|
53939
|
+
addonId: null,
|
|
53940
|
+
access: "create"
|
|
53941
|
+
},
|
|
53942
|
+
"navigation.setLightLevel": {
|
|
53943
|
+
capName: "navigation",
|
|
53944
|
+
capScope: "device",
|
|
53945
|
+
addonId: null,
|
|
53946
|
+
access: "create"
|
|
53947
|
+
},
|
|
53948
|
+
"navigation.setLightMode": {
|
|
53949
|
+
capName: "navigation",
|
|
53950
|
+
capScope: "device",
|
|
53951
|
+
addonId: null,
|
|
53952
|
+
access: "create"
|
|
53953
|
+
},
|
|
53954
|
+
"navigation.setLightOn": {
|
|
53955
|
+
capName: "navigation",
|
|
53956
|
+
capScope: "device",
|
|
53957
|
+
addonId: null,
|
|
53958
|
+
access: "create"
|
|
53959
|
+
},
|
|
53960
|
+
"navigation.stop": {
|
|
53961
|
+
capName: "navigation",
|
|
53962
|
+
capScope: "device",
|
|
53963
|
+
addonId: null,
|
|
53964
|
+
access: "create"
|
|
53965
|
+
},
|
|
53735
53966
|
"networkAccess.getEndpoint": {
|
|
53736
53967
|
capName: "network-access",
|
|
53737
53968
|
capScope: "system",
|
|
@@ -57827,6 +58058,56 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
57827
58058
|
form: "single",
|
|
57828
58059
|
optional: false
|
|
57829
58060
|
}],
|
|
58061
|
+
"navigation.getFeatures": [{
|
|
58062
|
+
name: "deviceId",
|
|
58063
|
+
form: "single",
|
|
58064
|
+
optional: false
|
|
58065
|
+
}],
|
|
58066
|
+
"navigation.goToPoint": [{
|
|
58067
|
+
name: "deviceId",
|
|
58068
|
+
form: "single",
|
|
58069
|
+
optional: false
|
|
58070
|
+
}],
|
|
58071
|
+
"navigation.listActions": [{
|
|
58072
|
+
name: "deviceId",
|
|
58073
|
+
form: "single",
|
|
58074
|
+
optional: false
|
|
58075
|
+
}],
|
|
58076
|
+
"navigation.move": [{
|
|
58077
|
+
name: "deviceId",
|
|
58078
|
+
form: "single",
|
|
58079
|
+
optional: false
|
|
58080
|
+
}],
|
|
58081
|
+
"navigation.playSound": [{
|
|
58082
|
+
name: "deviceId",
|
|
58083
|
+
form: "single",
|
|
58084
|
+
optional: false
|
|
58085
|
+
}],
|
|
58086
|
+
"navigation.runAction": [{
|
|
58087
|
+
name: "deviceId",
|
|
58088
|
+
form: "single",
|
|
58089
|
+
optional: false
|
|
58090
|
+
}],
|
|
58091
|
+
"navigation.setLightLevel": [{
|
|
58092
|
+
name: "deviceId",
|
|
58093
|
+
form: "single",
|
|
58094
|
+
optional: false
|
|
58095
|
+
}],
|
|
58096
|
+
"navigation.setLightMode": [{
|
|
58097
|
+
name: "deviceId",
|
|
58098
|
+
form: "single",
|
|
58099
|
+
optional: false
|
|
58100
|
+
}],
|
|
58101
|
+
"navigation.setLightOn": [{
|
|
58102
|
+
name: "deviceId",
|
|
58103
|
+
form: "single",
|
|
58104
|
+
optional: false
|
|
58105
|
+
}],
|
|
58106
|
+
"navigation.stop": [{
|
|
58107
|
+
name: "deviceId",
|
|
58108
|
+
form: "single",
|
|
58109
|
+
optional: false
|
|
58110
|
+
}],
|
|
57830
58111
|
"networkQuality.getDeviceStats": [{
|
|
57831
58112
|
name: "deviceId",
|
|
57832
58113
|
form: "single",
|
|
@@ -59024,6 +59305,10 @@ var require_dist_B0Cf6q_P = __commonJS({
|
|
|
59024
59305
|
durability: "restored",
|
|
59025
59306
|
volatileFields: ["lastFetchedAt"]
|
|
59026
59307
|
},
|
|
59308
|
+
"navigation": {
|
|
59309
|
+
durability: "session",
|
|
59310
|
+
volatileFields: []
|
|
59311
|
+
},
|
|
59027
59312
|
"network-link": {
|
|
59028
59313
|
durability: "restored",
|
|
59029
59314
|
volatileFields: ["lastUpdated"]
|
|
@@ -60278,7 +60563,7 @@ var require_alerts_addon = __commonJS({
|
|
|
60278
60563
|
[Symbol.toStringTag]: { value: "Module" }
|
|
60279
60564
|
});
|
|
60280
60565
|
require_chunk_Cek0wNdY();
|
|
60281
|
-
var require_dist10 =
|
|
60566
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
60282
60567
|
function selectExpired(alerts, cutoffMs) {
|
|
60283
60568
|
return alerts.filter((a) => a.createdAt < cutoffMs).sort((a, b) => a.createdAt - b.createdAt).map((a) => a.id);
|
|
60284
60569
|
}
|
|
@@ -61097,7 +61382,7 @@ var require_console_logging = __commonJS({
|
|
|
61097
61382
|
[Symbol.toStringTag]: { value: "Module" }
|
|
61098
61383
|
});
|
|
61099
61384
|
require_chunk_Cek0wNdY();
|
|
61100
|
-
var require_dist10 =
|
|
61385
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
61101
61386
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
61102
61387
|
var LEVEL_RANK = {
|
|
61103
61388
|
debug: 0,
|
|
@@ -61191,7 +61476,7 @@ var require_core_blocks_addon = __commonJS({
|
|
|
61191
61476
|
"use strict";
|
|
61192
61477
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
61193
61478
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
61194
|
-
var require_dist10 =
|
|
61479
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
61195
61480
|
var node_crypto = __require("crypto");
|
|
61196
61481
|
var node_fs_promises = __require("fs/promises");
|
|
61197
61482
|
node_fs_promises = require_chunk.__toESM(node_fs_promises);
|
|
@@ -62088,11 +62373,11 @@ var require_core_blocks = __commonJS({
|
|
|
62088
62373
|
}
|
|
62089
62374
|
});
|
|
62090
62375
|
|
|
62091
|
-
// ../system/dist/retired-settings-keys-
|
|
62092
|
-
var
|
|
62093
|
-
"../system/dist/retired-settings-keys-
|
|
62376
|
+
// ../system/dist/retired-settings-keys-C_h6HXZi.js
|
|
62377
|
+
var require_retired_settings_keys_C_h6HXZi = __commonJS({
|
|
62378
|
+
"../system/dist/retired-settings-keys-C_h6HXZi.js"(exports) {
|
|
62094
62379
|
"use strict";
|
|
62095
|
-
var require_dist10 =
|
|
62380
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
62096
62381
|
function settingsStoreIsAuthoritativeHere(env) {
|
|
62097
62382
|
const raw = (env["CAMSTACK_ROLE"] ?? "").trim().toLowerCase();
|
|
62098
62383
|
return raw === "" || raw === "hub";
|
|
@@ -64306,8 +64591,8 @@ var require_device_manager_addon = __commonJS({
|
|
|
64306
64591
|
[Symbol.toStringTag]: { value: "Module" }
|
|
64307
64592
|
});
|
|
64308
64593
|
require_chunk_Cek0wNdY();
|
|
64309
|
-
var require_dist10 =
|
|
64310
|
-
var require_retired_settings_keys =
|
|
64594
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
64595
|
+
var require_retired_settings_keys = require_retired_settings_keys_C_h6HXZi();
|
|
64311
64596
|
var node_crypto = __require("crypto");
|
|
64312
64597
|
var _camstack_types_node = require_node();
|
|
64313
64598
|
var JOB_HISTORY = 20;
|
|
@@ -69822,7 +70107,7 @@ var require_hub_forwarder = __commonJS({
|
|
|
69822
70107
|
[Symbol.toStringTag]: { value: "Module" }
|
|
69823
70108
|
});
|
|
69824
70109
|
require_chunk_Cek0wNdY();
|
|
69825
|
-
var require_dist10 =
|
|
70110
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
69826
70111
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
69827
70112
|
var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
|
|
69828
70113
|
var HubForwarderDestination = class {
|
|
@@ -69959,7 +70244,7 @@ var require_liveness_monitor_addon = __commonJS({
|
|
|
69959
70244
|
"use strict";
|
|
69960
70245
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
69961
70246
|
require_chunk_Cek0wNdY();
|
|
69962
|
-
var require_dist10 =
|
|
70247
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
69963
70248
|
var NO_DEVICES = "liveness:no-devices";
|
|
69964
70249
|
var ALL_OFFLINE = "liveness:all-devices-offline";
|
|
69965
70250
|
var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
|
|
@@ -70155,7 +70440,7 @@ var require_local_auth_addon = __commonJS({
|
|
|
70155
70440
|
[Symbol.toStringTag]: { value: "Module" }
|
|
70156
70441
|
});
|
|
70157
70442
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
70158
|
-
var require_dist10 =
|
|
70443
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
70159
70444
|
var node_crypto = __require("crypto");
|
|
70160
70445
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
70161
70446
|
var crypto$1 = __require("crypto");
|
|
@@ -77968,7 +78253,7 @@ var require_loki_logging = __commonJS({
|
|
|
77968
78253
|
[Symbol.toStringTag]: { value: "Module" }
|
|
77969
78254
|
});
|
|
77970
78255
|
require_chunk_Cek0wNdY();
|
|
77971
|
-
var require_dist10 =
|
|
78256
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
77972
78257
|
function sanitizeLabelName(raw) {
|
|
77973
78258
|
const replaced = raw.replaceAll(/[^a-zA-Z0-9_]/g, "_");
|
|
77974
78259
|
return /^[a-zA-Z_]/.test(replaced) ? replaced : `_${replaced}`;
|
|
@@ -78533,7 +78818,7 @@ var require_native_metrics_addon = __commonJS({
|
|
|
78533
78818
|
[Symbol.toStringTag]: { value: "Module" }
|
|
78534
78819
|
});
|
|
78535
78820
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
78536
|
-
var require_dist10 =
|
|
78821
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
78537
78822
|
var node_fs_promises = __require("fs/promises");
|
|
78538
78823
|
var node_child_process = __require("child_process");
|
|
78539
78824
|
var node_util = __require("util");
|
|
@@ -81117,7 +81402,7 @@ var require_filesystem_storage_addon = __commonJS({
|
|
|
81117
81402
|
[Symbol.toStringTag]: { value: "Module" }
|
|
81118
81403
|
});
|
|
81119
81404
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
81120
|
-
var require_dist10 =
|
|
81405
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
81121
81406
|
var node_crypto = __require("crypto");
|
|
81122
81407
|
var node_fs_promises = __require("fs/promises");
|
|
81123
81408
|
var node_path = __require("path");
|
|
@@ -82233,8 +82518,8 @@ var require_sqlite_settings_addon = __commonJS({
|
|
|
82233
82518
|
[Symbol.toStringTag]: { value: "Module" }
|
|
82234
82519
|
});
|
|
82235
82520
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
82236
|
-
var require_dist10 =
|
|
82237
|
-
var require_retired_settings_keys =
|
|
82521
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
82522
|
+
var require_retired_settings_keys = require_retired_settings_keys_C_h6HXZi();
|
|
82238
82523
|
var node_crypto = __require("crypto");
|
|
82239
82524
|
var node_fs = __require("fs");
|
|
82240
82525
|
var node_module = __require("module");
|
|
@@ -84724,7 +85009,7 @@ var require_storage_orchestrator_addon = __commonJS({
|
|
|
84724
85009
|
[Symbol.toStringTag]: { value: "Module" }
|
|
84725
85010
|
});
|
|
84726
85011
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
84727
|
-
var require_dist10 =
|
|
85012
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
84728
85013
|
var require_hub_cap_forward = require_hub_cap_forward_DmHNjbB0();
|
|
84729
85014
|
var zod = require_zod();
|
|
84730
85015
|
var node_crypto = __require("crypto");
|
|
@@ -87675,7 +87960,7 @@ var require_system_config_addon = __commonJS({
|
|
|
87675
87960
|
[Symbol.toStringTag]: { value: "Module" }
|
|
87676
87961
|
});
|
|
87677
87962
|
require_chunk_Cek0wNdY();
|
|
87678
|
-
var require_dist10 =
|
|
87963
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
87679
87964
|
var SECTION_TITLES = {
|
|
87680
87965
|
server: "Server",
|
|
87681
87966
|
auth: "Authentication"
|
|
@@ -105736,7 +106021,7 @@ var require_winston_logging = __commonJS({
|
|
|
105736
106021
|
[Symbol.toStringTag]: { value: "Module" }
|
|
105737
106022
|
});
|
|
105738
106023
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
105739
|
-
var require_dist10 =
|
|
106024
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
105740
106025
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
105741
106026
|
var node_path = __require("path");
|
|
105742
106027
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -107680,9 +107965,9 @@ var require_event_category_b8kBSOTT = __commonJS({
|
|
|
107680
107965
|
}
|
|
107681
107966
|
});
|
|
107682
107967
|
|
|
107683
|
-
// ../types/dist/sleep-
|
|
107684
|
-
var
|
|
107685
|
-
"../types/dist/sleep-
|
|
107968
|
+
// ../types/dist/sleep-QEBby1J6.js
|
|
107969
|
+
var require_sleep_QEBby1J6 = __commonJS({
|
|
107970
|
+
"../types/dist/sleep-QEBby1J6.js"(exports) {
|
|
107686
107971
|
"use strict";
|
|
107687
107972
|
var require_event_category = require_event_category_b8kBSOTT();
|
|
107688
107973
|
var zod = require_zod();
|
|
@@ -107759,6 +108044,12 @@ var require_sleep_TVipGseU = __commonJS({
|
|
|
107759
108044
|
icon: "move",
|
|
107760
108045
|
order: 40
|
|
107761
108046
|
},
|
|
108047
|
+
{
|
|
108048
|
+
id: "navigation",
|
|
108049
|
+
label: "Navigation",
|
|
108050
|
+
icon: "compass",
|
|
108051
|
+
order: 41
|
|
108052
|
+
},
|
|
107762
108053
|
{
|
|
107763
108054
|
id: "consumables",
|
|
107764
108055
|
label: "Consumables",
|
|
@@ -110077,6 +110368,7 @@ var require_sleep_TVipGseU = __commonJS({
|
|
|
110077
110368
|
motionTrigger: createSliceHandle(stateSource, binding.deviceId, "motion-trigger"),
|
|
110078
110369
|
motionZones: createSliceHandle(stateSource, binding.deviceId, "motion-zones"),
|
|
110079
110370
|
nativeObjectDetection: createSliceHandle(stateSource, binding.deviceId, "native-object-detection"),
|
|
110371
|
+
navigation: createSliceHandle(stateSource, binding.deviceId, "navigation"),
|
|
110080
110372
|
networkLink: createSliceHandle(stateSource, binding.deviceId, "network-link"),
|
|
110081
110373
|
notifier: createSliceHandle(stateSource, binding.deviceId, "notifier"),
|
|
110082
110374
|
numericSensor: createSliceHandle(stateSource, binding.deviceId, "numeric-sensor"),
|
|
@@ -110311,6 +110603,19 @@ var require_sleep_TVipGseU = __commonJS({
|
|
|
110311
110603
|
setEnabled: (input) => dispatch("native-object-detection", "nativeObjectDetection", "setEnabled", "mutation", input),
|
|
110312
110604
|
getStatus: (input) => dispatch("native-object-detection", "nativeObjectDetection", "getStatus", "query", input)
|
|
110313
110605
|
},
|
|
110606
|
+
navigation: {
|
|
110607
|
+
move: (input) => dispatch("navigation", "navigation", "move", "mutation", input),
|
|
110608
|
+
stop: (input) => dispatch("navigation", "navigation", "stop", "mutation", input),
|
|
110609
|
+
goToPoint: (input) => dispatch("navigation", "navigation", "goToPoint", "mutation", input),
|
|
110610
|
+
listActions: (input) => dispatch("navigation", "navigation", "listActions", "query", input),
|
|
110611
|
+
runAction: (input) => dispatch("navigation", "navigation", "runAction", "mutation", input),
|
|
110612
|
+
playSound: (input) => dispatch("navigation", "navigation", "playSound", "mutation", input),
|
|
110613
|
+
setLightOn: (input) => dispatch("navigation", "navigation", "setLightOn", "mutation", input),
|
|
110614
|
+
setLightMode: (input) => dispatch("navigation", "navigation", "setLightMode", "mutation", input),
|
|
110615
|
+
setLightLevel: (input) => dispatch("navigation", "navigation", "setLightLevel", "mutation", input),
|
|
110616
|
+
getFeatures: (input) => dispatch("navigation", "navigation", "getFeatures", "query", input),
|
|
110617
|
+
getStatus: (input) => dispatch("navigation", "navigation", "getStatus", "query", input)
|
|
110618
|
+
},
|
|
110314
110619
|
networkLink: { getStatus: (input) => dispatch("network-link", "networkLink", "getStatus", "query", input) },
|
|
110315
110620
|
notificationRules: {
|
|
110316
110621
|
listRules: (input) => dispatch("notification-rules", "notificationRules", "listRules", "query", input),
|
|
@@ -110758,6 +111063,8 @@ var require_sleep_TVipGseU = __commonJS({
|
|
|
110758
111063
|
"motion-trigger",
|
|
110759
111064
|
"motion-zones",
|
|
110760
111065
|
"native-object-detection",
|
|
111066
|
+
"navigation",
|
|
111067
|
+
"network-link",
|
|
110761
111068
|
"notifier",
|
|
110762
111069
|
"numeric-sensor",
|
|
110763
111070
|
"osd",
|
|
@@ -111374,7 +111681,7 @@ var require_addon = __commonJS({
|
|
|
111374
111681
|
"use strict";
|
|
111375
111682
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
111376
111683
|
var require_event_category = require_event_category_b8kBSOTT();
|
|
111377
|
-
var require_sleep =
|
|
111684
|
+
var require_sleep = require_sleep_QEBby1J6();
|
|
111378
111685
|
var require_err_msg = require_err_msg_COpsHMw2();
|
|
111379
111686
|
var CAP_INPUT_DEFAULTS = Object.freeze({
|
|
111380
111687
|
"addons": { "getLogs": { "limit": 100 } },
|
|
@@ -130334,7 +130641,7 @@ var require_dist3 = __commonJS({
|
|
|
130334
130641
|
"use strict";
|
|
130335
130642
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
130336
130643
|
var require_chunk = require_chunk_Cek0wNdY();
|
|
130337
|
-
var require_dist10 =
|
|
130644
|
+
var require_dist10 = require_dist_Qnc3kuba();
|
|
130338
130645
|
var require_builtins_alerts_alerts_addon = require_alerts_addon();
|
|
130339
130646
|
require_alerts();
|
|
130340
130647
|
var require_formatter = require_formatter_DqAKDlvN();
|
|
@@ -211451,7 +211758,7 @@ var require_dist4 = __commonJS({
|
|
|
211451
211758
|
"use strict";
|
|
211452
211759
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
211453
211760
|
var require_event_category = require_event_category_b8kBSOTT();
|
|
211454
|
-
var require_sleep =
|
|
211761
|
+
var require_sleep = require_sleep_QEBby1J6();
|
|
211455
211762
|
var require_canonical_hash = require_canonical_hash_DNV8S5ET();
|
|
211456
211763
|
var require_enums2 = require_enums();
|
|
211457
211764
|
var require_err_msg = require_err_msg_COpsHMw2();
|
|
@@ -236175,6 +236482,297 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
236175
236482
|
*/
|
|
236176
236483
|
durability: "session"
|
|
236177
236484
|
};
|
|
236485
|
+
var NavigationMoveCommandSchema = zod.z.object({
|
|
236486
|
+
pan: zod.z.number().min(-1).max(1).optional(),
|
|
236487
|
+
tilt: zod.z.number().min(-1).max(1).optional(),
|
|
236488
|
+
speed: zod.z.number().min(0).max(1).optional()
|
|
236489
|
+
});
|
|
236490
|
+
var NavigationActionIdSchema = zod.z.enum([
|
|
236491
|
+
"goHome",
|
|
236492
|
+
"locate",
|
|
236493
|
+
"spotClean",
|
|
236494
|
+
"findPet",
|
|
236495
|
+
"personFollow",
|
|
236496
|
+
"stop",
|
|
236497
|
+
"startClean",
|
|
236498
|
+
"pauseClean",
|
|
236499
|
+
"dockWash",
|
|
236500
|
+
"autoEmpty",
|
|
236501
|
+
"flashOn",
|
|
236502
|
+
"flashOff"
|
|
236503
|
+
]);
|
|
236504
|
+
var NavigationEntryKindSchema = zod.z.enum(["action", "sound"]);
|
|
236505
|
+
var NavigationActionEntrySchema = zod.z.object({
|
|
236506
|
+
id: zod.z.string(),
|
|
236507
|
+
kind: NavigationEntryKindSchema,
|
|
236508
|
+
label: zod.z.string(),
|
|
236509
|
+
icon: zod.z.string(),
|
|
236510
|
+
/** Present only on `kind:'sound'` entries — the id to pass to `playSound`. */
|
|
236511
|
+
soundId: zod.z.number().int().optional(),
|
|
236512
|
+
/** Per-device feature flag — render this entry only when true. */
|
|
236513
|
+
enabled: zod.z.boolean()
|
|
236514
|
+
});
|
|
236515
|
+
var NAVIGATION_ACTION_CATALOG = [
|
|
236516
|
+
{
|
|
236517
|
+
id: "startClean",
|
|
236518
|
+
kind: "action",
|
|
236519
|
+
label: "Start cleaning",
|
|
236520
|
+
icon: "play",
|
|
236521
|
+
enabled: true
|
|
236522
|
+
},
|
|
236523
|
+
{
|
|
236524
|
+
id: "pauseClean",
|
|
236525
|
+
kind: "action",
|
|
236526
|
+
label: "Pause cleaning",
|
|
236527
|
+
icon: "pause",
|
|
236528
|
+
enabled: true
|
|
236529
|
+
},
|
|
236530
|
+
{
|
|
236531
|
+
id: "stop",
|
|
236532
|
+
kind: "action",
|
|
236533
|
+
label: "Stop",
|
|
236534
|
+
icon: "hand",
|
|
236535
|
+
enabled: true
|
|
236536
|
+
},
|
|
236537
|
+
{
|
|
236538
|
+
id: "goHome",
|
|
236539
|
+
kind: "action",
|
|
236540
|
+
label: "Return to dock",
|
|
236541
|
+
icon: "home",
|
|
236542
|
+
enabled: true
|
|
236543
|
+
},
|
|
236544
|
+
{
|
|
236545
|
+
id: "locate",
|
|
236546
|
+
kind: "action",
|
|
236547
|
+
label: "Locate",
|
|
236548
|
+
icon: "bell",
|
|
236549
|
+
enabled: true
|
|
236550
|
+
},
|
|
236551
|
+
{
|
|
236552
|
+
id: "spotClean",
|
|
236553
|
+
kind: "action",
|
|
236554
|
+
label: "Spot clean here",
|
|
236555
|
+
icon: "crosshair",
|
|
236556
|
+
enabled: true
|
|
236557
|
+
},
|
|
236558
|
+
{
|
|
236559
|
+
id: "findPet",
|
|
236560
|
+
kind: "action",
|
|
236561
|
+
label: "Find pet",
|
|
236562
|
+
icon: "paw-print",
|
|
236563
|
+
enabled: true
|
|
236564
|
+
},
|
|
236565
|
+
{
|
|
236566
|
+
id: "personFollow",
|
|
236567
|
+
kind: "action",
|
|
236568
|
+
label: "Follow me",
|
|
236569
|
+
icon: "footprints",
|
|
236570
|
+
enabled: true
|
|
236571
|
+
},
|
|
236572
|
+
{
|
|
236573
|
+
id: "dockWash",
|
|
236574
|
+
kind: "action",
|
|
236575
|
+
label: "Wash mop",
|
|
236576
|
+
icon: "droplets",
|
|
236577
|
+
enabled: true
|
|
236578
|
+
},
|
|
236579
|
+
{
|
|
236580
|
+
id: "autoEmpty",
|
|
236581
|
+
kind: "action",
|
|
236582
|
+
label: "Empty dustbin",
|
|
236583
|
+
icon: "trash-2",
|
|
236584
|
+
enabled: true
|
|
236585
|
+
},
|
|
236586
|
+
{
|
|
236587
|
+
id: "flashOn",
|
|
236588
|
+
kind: "action",
|
|
236589
|
+
label: "Flash on",
|
|
236590
|
+
icon: "flashlight",
|
|
236591
|
+
enabled: true
|
|
236592
|
+
},
|
|
236593
|
+
{
|
|
236594
|
+
id: "flashOff",
|
|
236595
|
+
kind: "action",
|
|
236596
|
+
label: "Flash off",
|
|
236597
|
+
icon: "flashlight-off",
|
|
236598
|
+
enabled: true
|
|
236599
|
+
},
|
|
236600
|
+
{
|
|
236601
|
+
id: "sound:meow",
|
|
236602
|
+
kind: "sound",
|
|
236603
|
+
label: "Meow",
|
|
236604
|
+
icon: "cat",
|
|
236605
|
+
soundId: 684,
|
|
236606
|
+
enabled: true
|
|
236607
|
+
},
|
|
236608
|
+
{
|
|
236609
|
+
id: "sound:bark",
|
|
236610
|
+
kind: "sound",
|
|
236611
|
+
label: "Woof",
|
|
236612
|
+
icon: "dog",
|
|
236613
|
+
soundId: 685,
|
|
236614
|
+
enabled: true
|
|
236615
|
+
},
|
|
236616
|
+
{
|
|
236617
|
+
id: "sound:footsteps",
|
|
236618
|
+
kind: "sound",
|
|
236619
|
+
label: "Footsteps",
|
|
236620
|
+
icon: "footprints",
|
|
236621
|
+
soundId: 686,
|
|
236622
|
+
enabled: true
|
|
236623
|
+
},
|
|
236624
|
+
{
|
|
236625
|
+
id: "sound:purring",
|
|
236626
|
+
kind: "sound",
|
|
236627
|
+
label: "Purring",
|
|
236628
|
+
icon: "cat",
|
|
236629
|
+
soundId: 687,
|
|
236630
|
+
enabled: true
|
|
236631
|
+
},
|
|
236632
|
+
{
|
|
236633
|
+
id: "sound:tickTock",
|
|
236634
|
+
kind: "sound",
|
|
236635
|
+
label: "Tick-tock",
|
|
236636
|
+
icon: "clock",
|
|
236637
|
+
soundId: 688,
|
|
236638
|
+
enabled: true
|
|
236639
|
+
}
|
|
236640
|
+
];
|
|
236641
|
+
var NavigationPointSchema = zod.z.object({
|
|
236642
|
+
x: zod.z.number(),
|
|
236643
|
+
y: zod.z.number()
|
|
236644
|
+
});
|
|
236645
|
+
var NavigationFeaturesSchema = zod.z.object({
|
|
236646
|
+
move: zod.z.boolean(),
|
|
236647
|
+
stop: zod.z.boolean(),
|
|
236648
|
+
goToPoint: zod.z.boolean(),
|
|
236649
|
+
runAction: zod.z.boolean(),
|
|
236650
|
+
playSound: zod.z.boolean(),
|
|
236651
|
+
light: zod.z.boolean(),
|
|
236652
|
+
lightMode: zod.z.boolean()
|
|
236653
|
+
});
|
|
236654
|
+
var NavigationLightModeSchema = zod.z.enum(["auto", "manual"]);
|
|
236655
|
+
var NAVIGATION_LIGHT_LEVEL_MIN = 40;
|
|
236656
|
+
var NAVIGATION_LIGHT_LEVEL_MAX = 100;
|
|
236657
|
+
var NavigationModeSchema = zod.z.enum([
|
|
236658
|
+
"idle",
|
|
236659
|
+
"cleaning",
|
|
236660
|
+
"spot",
|
|
236661
|
+
"following",
|
|
236662
|
+
"goto",
|
|
236663
|
+
"returning",
|
|
236664
|
+
"paused",
|
|
236665
|
+
"unknown"
|
|
236666
|
+
]);
|
|
236667
|
+
var NavigationStatusSchema = zod.z.object({
|
|
236668
|
+
mode: NavigationModeSchema,
|
|
236669
|
+
following: zod.z.boolean(),
|
|
236670
|
+
flash: zod.z.boolean(),
|
|
236671
|
+
lightMode: NavigationLightModeSchema,
|
|
236672
|
+
lightLevel: zod.z.number().min(40).max(100),
|
|
236673
|
+
/** Ms epoch when the slice was last updated. */
|
|
236674
|
+
lastChangedAt: zod.z.number()
|
|
236675
|
+
});
|
|
236676
|
+
var NavigationRuntimeStateSchema = NavigationStatusSchema.extend({ lastFetchedAt: zod.z.number() });
|
|
236677
|
+
var navigationCapability = {
|
|
236678
|
+
name: "navigation",
|
|
236679
|
+
scope: "device",
|
|
236680
|
+
deviceNative: true,
|
|
236681
|
+
mode: "singleton",
|
|
236682
|
+
deviceTypes: [require_sleep.DeviceType.Camera],
|
|
236683
|
+
deviceConfig: { ui: {
|
|
236684
|
+
kind: "widget",
|
|
236685
|
+
widgetId: "host/navigation-panel",
|
|
236686
|
+
tab: "navigation",
|
|
236687
|
+
topTab: true,
|
|
236688
|
+
label: "Navigation",
|
|
236689
|
+
order: 0
|
|
236690
|
+
} },
|
|
236691
|
+
methods: {
|
|
236692
|
+
/**
|
|
236693
|
+
* Momentary drive nudge (the robot moves). `protected` — mirrors
|
|
236694
|
+
* `ptz.continuousMove` so the Viewer navigation panel (and the PTZ-mimic
|
|
236695
|
+
* path) works for any authenticated user, not admin-only. The UI sends
|
|
236696
|
+
* these at ~1 Hz while a control is held; the provider forwards each one to
|
|
236697
|
+
* a single drive write WITHOUT debouncing.
|
|
236698
|
+
*/
|
|
236699
|
+
move: require_sleep.method(NavigationMoveCommandSchema.extend({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
236700
|
+
/** Halt all motion immediately (zero drive vector). */
|
|
236701
|
+
stop: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
236702
|
+
/** Send the robot to a point on its live map. */
|
|
236703
|
+
goToPoint: require_sleep.method(NavigationPointSchema.extend({ deviceId: zod.z.number() }), zod.z.void(), { kind: "mutation" }),
|
|
236704
|
+
/**
|
|
236705
|
+
* Enumerate the discrete controls THIS device supports (data-driven UI +
|
|
236706
|
+
* PTZ mimic). Camera-probed subset of {@link NAVIGATION_ACTION_CATALOG}.
|
|
236707
|
+
*/
|
|
236708
|
+
listActions: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.array(NavigationActionEntrySchema)),
|
|
236709
|
+
/**
|
|
236710
|
+
* Run one discrete action (a `kind:'action'` dictionary entry). Invalid /
|
|
236711
|
+
* unsupported action ids are rejected by the provider.
|
|
236712
|
+
*/
|
|
236713
|
+
runAction: require_sleep.method(zod.z.object({
|
|
236714
|
+
deviceId: zod.z.number(),
|
|
236715
|
+
actionId: NavigationActionIdSchema
|
|
236716
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236717
|
+
/** Play a sound by its wire id (the `soundId` of a `kind:'sound'` entry). */
|
|
236718
|
+
playSound: require_sleep.method(zod.z.object({
|
|
236719
|
+
deviceId: zod.z.number(),
|
|
236720
|
+
soundId: zod.z.number().int()
|
|
236721
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236722
|
+
/**
|
|
236723
|
+
* Turn the on-camera fill light on / off (the `OpenFullLight` control —
|
|
236724
|
+
* works anytime, no active stream required).
|
|
236725
|
+
*/
|
|
236726
|
+
setLightOn: require_sleep.method(zod.z.object({
|
|
236727
|
+
deviceId: zod.z.number(),
|
|
236728
|
+
on: zod.z.boolean()
|
|
236729
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236730
|
+
/**
|
|
236731
|
+
* Set the fill-light mode (auto vs manual). `manual` optionally carries the
|
|
236732
|
+
* initial `level`. The auto/manual + level control is a CAMERA-service
|
|
236733
|
+
* action that generally needs an active camera stream/monitor session — the
|
|
236734
|
+
* UI shows the manual level slider ONLY when `mode === 'manual'`.
|
|
236735
|
+
*/
|
|
236736
|
+
setLightMode: require_sleep.method(zod.z.object({
|
|
236737
|
+
deviceId: zod.z.number(),
|
|
236738
|
+
mode: NavigationLightModeSchema,
|
|
236739
|
+
level: zod.z.number().min(40).max(100).optional()
|
|
236740
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236741
|
+
/** Set the MANUAL fill-light level (40..100). Implies `manual` mode. */
|
|
236742
|
+
setLightLevel: require_sleep.method(zod.z.object({
|
|
236743
|
+
deviceId: zod.z.number(),
|
|
236744
|
+
level: zod.z.number().min(40).max(100)
|
|
236745
|
+
}), zod.z.void(), { kind: "mutation" }),
|
|
236746
|
+
/**
|
|
236747
|
+
* Per-device FEATURE-FLAG report for the general primitives — drives which
|
|
236748
|
+
* controls the UI shows (the per-entry flags for the dictionary come back on
|
|
236749
|
+
* `listActions`).
|
|
236750
|
+
*/
|
|
236751
|
+
getFeatures: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), NavigationFeaturesSchema)
|
|
236752
|
+
},
|
|
236753
|
+
events: { onStatusChanged: { data: zod.z.object({
|
|
236754
|
+
deviceId: zod.z.number(),
|
|
236755
|
+
status: NavigationStatusSchema
|
|
236756
|
+
}) } },
|
|
236757
|
+
status: {
|
|
236758
|
+
schema: NavigationStatusSchema,
|
|
236759
|
+
kind: "push"
|
|
236760
|
+
},
|
|
236761
|
+
/**
|
|
236762
|
+
* Runtime-state slice mirrored by the kernel. The navigation panel watches it
|
|
236763
|
+
* for live mode / follow / flash changes.
|
|
236764
|
+
*/
|
|
236765
|
+
runtimeState: NavigationRuntimeStateSchema,
|
|
236766
|
+
/**
|
|
236767
|
+
* Runtime-state durability: **session** — like `vacuum-control`, a restored
|
|
236768
|
+
* `mode: cleaning` / `following: true` is a robot that is not actually doing
|
|
236769
|
+
* that. The live handle re-publishes on connect.
|
|
236770
|
+
*
|
|
236771
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
236772
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
236773
|
+
*/
|
|
236774
|
+
durability: "session"
|
|
236775
|
+
};
|
|
236178
236776
|
var rebootCapability = {
|
|
236179
236777
|
name: "reboot",
|
|
236180
236778
|
scope: "device",
|
|
@@ -239546,6 +240144,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
239546
240144
|
motionTrigger: motionTriggerCapability,
|
|
239547
240145
|
motionZones: motionZonesCapability,
|
|
239548
240146
|
nativeObjectDetection: nativeObjectDetectionCapability,
|
|
240147
|
+
navigation: navigationCapability,
|
|
239549
240148
|
networkLink: networkLinkCapability,
|
|
239550
240149
|
notifier: notifierCapability,
|
|
239551
240150
|
numericSensor: numericSensorCapability,
|
|
@@ -242026,6 +242625,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
242026
242625
|
"motion-zones",
|
|
242027
242626
|
"mqtt-broker",
|
|
242028
242627
|
"native-object-detection",
|
|
242628
|
+
"navigation",
|
|
242029
242629
|
"network-link",
|
|
242030
242630
|
"notifier",
|
|
242031
242631
|
"numeric-sensor",
|
|
@@ -242143,6 +242743,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
242143
242743
|
motionZones: "motion-zones",
|
|
242144
242744
|
mqttBroker: "mqtt-broker",
|
|
242145
242745
|
nativeObjectDetection: "native-object-detection",
|
|
242746
|
+
navigation: "navigation",
|
|
242146
242747
|
networkAccess: "network-access",
|
|
242147
242748
|
networkLink: "network-link",
|
|
242148
242749
|
networkQuality: "network-quality",
|
|
@@ -242565,6 +243166,10 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
242565
243166
|
key: "nativeObjectDetection",
|
|
242566
243167
|
name: "native-object-detection"
|
|
242567
243168
|
},
|
|
243169
|
+
{
|
|
243170
|
+
key: "navigation",
|
|
243171
|
+
name: "navigation"
|
|
243172
|
+
},
|
|
242568
243173
|
{
|
|
242569
243174
|
key: "networkAccess",
|
|
242570
243175
|
name: "network-access"
|
|
@@ -242912,6 +243517,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
242912
243517
|
motionZonesCapability,
|
|
242913
243518
|
mqttBrokerCapability,
|
|
242914
243519
|
nativeObjectDetectionCapability,
|
|
243520
|
+
navigationCapability,
|
|
242915
243521
|
networkAccessCapability,
|
|
242916
243522
|
networkLinkCapability,
|
|
242917
243523
|
networkQualityCapability,
|
|
@@ -245714,6 +246320,66 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
245714
246320
|
addonId: null,
|
|
245715
246321
|
access: "create"
|
|
245716
246322
|
},
|
|
246323
|
+
"navigation.getFeatures": {
|
|
246324
|
+
capName: "navigation",
|
|
246325
|
+
capScope: "device",
|
|
246326
|
+
addonId: null,
|
|
246327
|
+
access: "view"
|
|
246328
|
+
},
|
|
246329
|
+
"navigation.goToPoint": {
|
|
246330
|
+
capName: "navigation",
|
|
246331
|
+
capScope: "device",
|
|
246332
|
+
addonId: null,
|
|
246333
|
+
access: "create"
|
|
246334
|
+
},
|
|
246335
|
+
"navigation.listActions": {
|
|
246336
|
+
capName: "navigation",
|
|
246337
|
+
capScope: "device",
|
|
246338
|
+
addonId: null,
|
|
246339
|
+
access: "view"
|
|
246340
|
+
},
|
|
246341
|
+
"navigation.move": {
|
|
246342
|
+
capName: "navigation",
|
|
246343
|
+
capScope: "device",
|
|
246344
|
+
addonId: null,
|
|
246345
|
+
access: "create"
|
|
246346
|
+
},
|
|
246347
|
+
"navigation.playSound": {
|
|
246348
|
+
capName: "navigation",
|
|
246349
|
+
capScope: "device",
|
|
246350
|
+
addonId: null,
|
|
246351
|
+
access: "create"
|
|
246352
|
+
},
|
|
246353
|
+
"navigation.runAction": {
|
|
246354
|
+
capName: "navigation",
|
|
246355
|
+
capScope: "device",
|
|
246356
|
+
addonId: null,
|
|
246357
|
+
access: "create"
|
|
246358
|
+
},
|
|
246359
|
+
"navigation.setLightLevel": {
|
|
246360
|
+
capName: "navigation",
|
|
246361
|
+
capScope: "device",
|
|
246362
|
+
addonId: null,
|
|
246363
|
+
access: "create"
|
|
246364
|
+
},
|
|
246365
|
+
"navigation.setLightMode": {
|
|
246366
|
+
capName: "navigation",
|
|
246367
|
+
capScope: "device",
|
|
246368
|
+
addonId: null,
|
|
246369
|
+
access: "create"
|
|
246370
|
+
},
|
|
246371
|
+
"navigation.setLightOn": {
|
|
246372
|
+
capName: "navigation",
|
|
246373
|
+
capScope: "device",
|
|
246374
|
+
addonId: null,
|
|
246375
|
+
access: "create"
|
|
246376
|
+
},
|
|
246377
|
+
"navigation.stop": {
|
|
246378
|
+
capName: "navigation",
|
|
246379
|
+
capScope: "device",
|
|
246380
|
+
addonId: null,
|
|
246381
|
+
access: "create"
|
|
246382
|
+
},
|
|
245717
246383
|
"networkAccess.getEndpoint": {
|
|
245718
246384
|
capName: "network-access",
|
|
245719
246385
|
capScope: "system",
|
|
@@ -249106,6 +249772,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
249106
249772
|
"motion-zones",
|
|
249107
249773
|
"mqtt-broker",
|
|
249108
249774
|
"native-object-detection",
|
|
249775
|
+
"navigation",
|
|
249109
249776
|
"network-access",
|
|
249110
249777
|
"network-quality",
|
|
249111
249778
|
"nodes",
|
|
@@ -249193,6 +249860,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
249193
249860
|
"motion-trigger",
|
|
249194
249861
|
"motion-zones",
|
|
249195
249862
|
"native-object-detection",
|
|
249863
|
+
"navigation",
|
|
249196
249864
|
"notifier",
|
|
249197
249865
|
"osd",
|
|
249198
249866
|
"pet-feeder",
|
|
@@ -250067,6 +250735,56 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
250067
250735
|
form: "single",
|
|
250068
250736
|
optional: false
|
|
250069
250737
|
}],
|
|
250738
|
+
"navigation.getFeatures": [{
|
|
250739
|
+
name: "deviceId",
|
|
250740
|
+
form: "single",
|
|
250741
|
+
optional: false
|
|
250742
|
+
}],
|
|
250743
|
+
"navigation.goToPoint": [{
|
|
250744
|
+
name: "deviceId",
|
|
250745
|
+
form: "single",
|
|
250746
|
+
optional: false
|
|
250747
|
+
}],
|
|
250748
|
+
"navigation.listActions": [{
|
|
250749
|
+
name: "deviceId",
|
|
250750
|
+
form: "single",
|
|
250751
|
+
optional: false
|
|
250752
|
+
}],
|
|
250753
|
+
"navigation.move": [{
|
|
250754
|
+
name: "deviceId",
|
|
250755
|
+
form: "single",
|
|
250756
|
+
optional: false
|
|
250757
|
+
}],
|
|
250758
|
+
"navigation.playSound": [{
|
|
250759
|
+
name: "deviceId",
|
|
250760
|
+
form: "single",
|
|
250761
|
+
optional: false
|
|
250762
|
+
}],
|
|
250763
|
+
"navigation.runAction": [{
|
|
250764
|
+
name: "deviceId",
|
|
250765
|
+
form: "single",
|
|
250766
|
+
optional: false
|
|
250767
|
+
}],
|
|
250768
|
+
"navigation.setLightLevel": [{
|
|
250769
|
+
name: "deviceId",
|
|
250770
|
+
form: "single",
|
|
250771
|
+
optional: false
|
|
250772
|
+
}],
|
|
250773
|
+
"navigation.setLightMode": [{
|
|
250774
|
+
name: "deviceId",
|
|
250775
|
+
form: "single",
|
|
250776
|
+
optional: false
|
|
250777
|
+
}],
|
|
250778
|
+
"navigation.setLightOn": [{
|
|
250779
|
+
name: "deviceId",
|
|
250780
|
+
form: "single",
|
|
250781
|
+
optional: false
|
|
250782
|
+
}],
|
|
250783
|
+
"navigation.stop": [{
|
|
250784
|
+
name: "deviceId",
|
|
250785
|
+
form: "single",
|
|
250786
|
+
optional: false
|
|
250787
|
+
}],
|
|
250070
250788
|
"networkQuality.getDeviceStats": [{
|
|
250071
250789
|
name: "deviceId",
|
|
250072
250790
|
form: "single",
|
|
@@ -251414,6 +252132,10 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
251414
252132
|
durability: "restored",
|
|
251415
252133
|
volatileFields: ["lastFetchedAt"]
|
|
251416
252134
|
},
|
|
252135
|
+
"navigation": {
|
|
252136
|
+
durability: "session",
|
|
252137
|
+
volatileFields: []
|
|
252138
|
+
},
|
|
251417
252139
|
"network-link": {
|
|
251418
252140
|
durability: "restored",
|
|
251419
252141
|
volatileFields: ["lastUpdated"]
|
|
@@ -255475,6 +256197,9 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
255475
256197
|
exports.NATIVE_LEASE_SECTION_ID = NATIVE_LEASE_SECTION_ID;
|
|
255476
256198
|
exports.NATIVE_LEASE_TILE_BUDGET_FIELD = NATIVE_LEASE_TILE_BUDGET_FIELD;
|
|
255477
256199
|
exports.NATIVE_LEASE_TILE_BUDGET_KEY = NATIVE_LEASE_TILE_BUDGET_KEY;
|
|
256200
|
+
exports.NAVIGATION_ACTION_CATALOG = NAVIGATION_ACTION_CATALOG;
|
|
256201
|
+
exports.NAVIGATION_LIGHT_LEVEL_MAX = NAVIGATION_LIGHT_LEVEL_MAX;
|
|
256202
|
+
exports.NAVIGATION_LIGHT_LEVEL_MIN = NAVIGATION_LIGHT_LEVEL_MIN;
|
|
255478
256203
|
exports.NC_ALARM_SYSTEM_EVENT_KINDS = NC_ALARM_SYSTEM_EVENT_KINDS;
|
|
255479
256204
|
exports.NC_AUDIO_CONFIRM_HITS_DEFAULT = NC_AUDIO_CONFIRM_HITS_DEFAULT;
|
|
255480
256205
|
exports.NC_AUDIO_CONFIRM_HITS_MAX = NC_AUDIO_CONFIRM_HITS_MAX;
|
|
@@ -255523,6 +256248,16 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
255523
256248
|
exports.NativeObjectClassEnum = NativeObjectClassEnum;
|
|
255524
256249
|
exports.NativeObjectDetectionRuntimeStateSchema = NativeObjectDetectionRuntimeStateSchema;
|
|
255525
256250
|
exports.NativeObjectDetectionStatusSchema = NativeObjectDetectionStatusSchema;
|
|
256251
|
+
exports.NavigationActionEntrySchema = NavigationActionEntrySchema;
|
|
256252
|
+
exports.NavigationActionIdSchema = NavigationActionIdSchema;
|
|
256253
|
+
exports.NavigationEntryKindSchema = NavigationEntryKindSchema;
|
|
256254
|
+
exports.NavigationFeaturesSchema = NavigationFeaturesSchema;
|
|
256255
|
+
exports.NavigationLightModeSchema = NavigationLightModeSchema;
|
|
256256
|
+
exports.NavigationModeSchema = NavigationModeSchema;
|
|
256257
|
+
exports.NavigationMoveCommandSchema = NavigationMoveCommandSchema;
|
|
256258
|
+
exports.NavigationPointSchema = NavigationPointSchema;
|
|
256259
|
+
exports.NavigationRuntimeStateSchema = NavigationRuntimeStateSchema;
|
|
256260
|
+
exports.NavigationStatusSchema = NavigationStatusSchema;
|
|
255526
256261
|
exports.NcAlarmConfigSchema = NcAlarmConfigSchema;
|
|
255527
256262
|
exports.NcAlarmModeCoverageSchema = NcAlarmModeCoverageSchema;
|
|
255528
256263
|
exports.NcAlarmSettingsPatchSchema = NcAlarmSettingsPatchSchema;
|
|
@@ -256231,6 +256966,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
|
|
|
256231
256966
|
exports.motionZonesCapability = motionZonesCapability;
|
|
256232
256967
|
exports.mqttBrokerCapability = mqttBrokerCapability;
|
|
256233
256968
|
exports.nativeObjectDetectionCapability = nativeObjectDetectionCapability;
|
|
256969
|
+
exports.navigationCapability = navigationCapability;
|
|
256234
256970
|
exports.networkAccessCapability = networkAccessCapability;
|
|
256235
256971
|
exports.networkLinkCapability = networkLinkCapability;
|
|
256236
256972
|
exports.networkQualityCapability = networkQualityCapability;
|