@camstack/types 1.2.404 → 1.2.406

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.
Files changed (58) hide show
  1. package/dist/addon.js +21 -2
  2. package/dist/addon.mjs +21 -2
  3. package/dist/capabilities/index.d.ts +6 -3
  4. package/dist/capabilities/notification-rules.cap.d.ts +3 -78
  5. package/dist/capabilities/osd-manager.cap.d.ts +0 -18
  6. package/dist/capabilities/pipeline-analytics.cap.d.ts +24 -0
  7. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +36 -0
  8. package/dist/capabilities/platform-probe.cap.d.ts +34 -0
  9. package/dist/capabilities/running-state.cap.d.ts +76 -0
  10. package/dist/capabilities/schemas/package-llm-verdict.d.ts +14 -0
  11. package/dist/capabilities/schemas/zone-rule.d.ts +4 -0
  12. package/dist/capabilities/zone-rules.cap.d.ts +10 -0
  13. package/dist/client.js +10 -62
  14. package/dist/client.mjs +10 -62
  15. package/dist/{composition-eoYYVfOp.js → composition-RmnnN39T.js} +86 -2
  16. package/dist/{composition-CB6PMT9p.mjs → composition-xz-ud5EQ.mjs} +86 -2
  17. package/dist/device/cap-vocabulary/entries/appliances.d.ts +1 -1
  18. package/dist/enums/event-category.d.ts +4 -0
  19. package/dist/enums.js +1 -1
  20. package/dist/enums.mjs +1 -1
  21. package/dist/{event-category-fDPduoeC.mjs → event-category-Ceif8n-v.mjs} +4 -0
  22. package/dist/{event-category-CXrwjC3e.js → event-category-DG6Vir8Z.js} +4 -0
  23. package/dist/expression/builtins.d.ts +7 -18
  24. package/dist/expression/expression-source.d.ts +14 -2
  25. package/dist/generated/addon-api.d.ts +14 -0
  26. package/dist/generated/addon-cap-facts.d.ts +1 -1
  27. package/dist/generated/cap-status-types.d.ts +3 -1
  28. package/dist/generated/capability-router-map.d.ts +5 -2
  29. package/dist/generated/device-local-state.d.ts +3 -0
  30. package/dist/generated/device-proxy.d.ts +3 -0
  31. package/dist/generated/device-scoped-caps.d.ts +1 -1
  32. package/dist/generated/history-catalog.d.ts +1 -1
  33. package/dist/generated/method-access-map.d.ts +1 -1
  34. package/dist/generated/method-device-selectors.d.ts +1 -1
  35. package/dist/generated/runtime-state-durability.d.ts +1 -1
  36. package/dist/index.d.ts +4 -0
  37. package/dist/index.js +2534 -1415
  38. package/dist/index.mjs +2471 -1415
  39. package/dist/interfaces/config-ui.d.ts +69 -2
  40. package/dist/interfaces/platform.d.ts +7 -0
  41. package/dist/node-color.d.ts +1 -1
  42. package/dist/node.js +1 -1
  43. package/dist/node.mjs +1 -1
  44. package/dist/pipeline/auto-tune/accelerator-compute.d.ts +116 -0
  45. package/dist/pipeline/auto-tune/detector-performance.d.ts +5 -0
  46. package/dist/pipeline/auto-tune/hardware-class.d.ts +5 -4
  47. package/dist/pipeline/auto-tune/index.d.ts +1 -0
  48. package/dist/pipeline/auto-tune/plan-schemas.d.ts +100 -0
  49. package/dist/pipeline/auto-tune/recommend.d.ts +31 -9
  50. package/dist/pipeline/second-pass/index.d.ts +2 -0
  51. package/dist/pipeline/second-pass/motion-crop-plan.d.ts +183 -0
  52. package/dist/pipeline/second-pass/small-subject-recovery.d.ts +216 -0
  53. package/dist/running-state/assignment.d.ts +34 -0
  54. package/dist/running-state/defaults.d.ts +3 -0
  55. package/dist/running-state/from-operation.d.ts +14 -0
  56. package/dist/{sleep-CHIEEJkY.mjs → sleep-CYfIZzGv.mjs} +7 -3
  57. package/dist/{sleep-BKS4OPMo.js → sleep-UP964hNP.js} +7 -3
  58. package/package.json +1 -1
@@ -1407,7 +1407,25 @@ export declare const pipelineOrchestratorCapability: {
1407
1407
  kind: z.ZodLiteral<"node-benchmark">;
1408
1408
  resultId: z.ZodString;
1409
1409
  measuredAtMs: z.ZodNumber;
1410
+ }, z.core.$strip>, z.ZodObject<{
1411
+ kind: z.ZodLiteral<"estimated">;
1412
+ estimatedFrom: z.ZodEnum<{
1413
+ "amd-phoenix": "amd-phoenix";
1414
+ "apple-m-base": "apple-m-base";
1415
+ "apple-m-pro": "apple-m-pro";
1416
+ "intel-core-ultra": "intel-core-ultra";
1417
+ "intel-n-series": "intel-n-series";
1418
+ unknown: "unknown";
1419
+ }>;
1410
1420
  }, z.core.$strip>], "kind">>;
1421
+ estimatedFrom: z.ZodOptional<z.ZodEnum<{
1422
+ "amd-phoenix": "amd-phoenix";
1423
+ "apple-m-base": "apple-m-base";
1424
+ "apple-m-pro": "apple-m-pro";
1425
+ "intel-core-ultra": "intel-core-ultra";
1426
+ "intel-n-series": "intel-n-series";
1427
+ unknown: "unknown";
1428
+ }>>;
1411
1429
  capacitySessions: z.ZodNumber;
1412
1430
  personRecall: z.ZodNumber;
1413
1431
  }, z.core.$strip>>;
@@ -1631,7 +1649,25 @@ export declare const pipelineOrchestratorCapability: {
1631
1649
  kind: z.ZodLiteral<"node-benchmark">;
1632
1650
  resultId: z.ZodString;
1633
1651
  measuredAtMs: z.ZodNumber;
1652
+ }, z.core.$strip>, z.ZodObject<{
1653
+ kind: z.ZodLiteral<"estimated">;
1654
+ estimatedFrom: z.ZodEnum<{
1655
+ "amd-phoenix": "amd-phoenix";
1656
+ "apple-m-base": "apple-m-base";
1657
+ "apple-m-pro": "apple-m-pro";
1658
+ "intel-core-ultra": "intel-core-ultra";
1659
+ "intel-n-series": "intel-n-series";
1660
+ unknown: "unknown";
1661
+ }>;
1634
1662
  }, z.core.$strip>], "kind">>;
1663
+ estimatedFrom: z.ZodOptional<z.ZodEnum<{
1664
+ "amd-phoenix": "amd-phoenix";
1665
+ "apple-m-base": "apple-m-base";
1666
+ "apple-m-pro": "apple-m-pro";
1667
+ "intel-core-ultra": "intel-core-ultra";
1668
+ "intel-n-series": "intel-n-series";
1669
+ unknown: "unknown";
1670
+ }>>;
1635
1671
  capacitySessions: z.ZodNumber;
1636
1672
  personRecall: z.ZodNumber;
1637
1673
  }, z.core.$strip>>;
@@ -223,6 +223,23 @@ export declare const platformProbeCapability: {
223
223
  }>;
224
224
  }, z.core.$strip>>>>;
225
225
  }, z.core.$strip>>>;
226
+ accelerators: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
227
+ deviceKey: z.ZodString;
228
+ fullDeviceName: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
229
+ executionUnits: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
230
+ clockMHz: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
231
+ gops: z.ZodNullable<z.ZodObject<{
232
+ int8: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
233
+ fp16: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
234
+ }, z.core.$strip>>;
235
+ architecture: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
236
+ npuName: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
237
+ tops: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
238
+ vendor: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
239
+ webgpuArchitecture: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
240
+ webgpuDevice: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
241
+ computeUnits: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
242
+ }, z.core.$strip>>>>;
226
243
  }, z.core.$strip>;
227
244
  scores: z.ZodReadonly<z.ZodArray<z.ZodObject<{
228
245
  runtime: z.ZodLiteral<"python">;
@@ -327,6 +344,23 @@ export declare const platformProbeCapability: {
327
344
  }>;
328
345
  }, z.core.$strip>>>>;
329
346
  }, z.core.$strip>>>;
347
+ accelerators: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
348
+ deviceKey: z.ZodString;
349
+ fullDeviceName: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
350
+ executionUnits: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
351
+ clockMHz: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
352
+ gops: z.ZodNullable<z.ZodObject<{
353
+ int8: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
354
+ fp16: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
355
+ }, z.core.$strip>>;
356
+ architecture: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
357
+ npuName: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
358
+ tops: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
359
+ vendor: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
360
+ webgpuArchitecture: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
361
+ webgpuDevice: z.ZodPipe<z.ZodNullable<z.ZodString>, z.ZodTransform<string | null, string | null>>;
362
+ computeUnits: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number | null, number | null>>;
363
+ }, z.core.$strip>>>>;
330
364
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
331
365
  readonly resolveInferenceConfig: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
332
366
  requirements: z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -0,0 +1,76 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ export declare const RunningStateSourceSchema: z.ZodEnum<{
5
+ assigned: "assigned";
6
+ native: "native";
7
+ }>;
8
+ export type RunningStateSource = z.infer<typeof RunningStateSourceSchema>;
9
+ export declare const RunningStateStatusSchema: z.ZodObject<{
10
+ running: z.ZodNullable<z.ZodBoolean>;
11
+ since: z.ZodNullable<z.ZodNumber>;
12
+ source: z.ZodEnum<{
13
+ assigned: "assigned";
14
+ native: "native";
15
+ }>;
16
+ phase: z.ZodNullable<z.ZodString>;
17
+ lastFetchedAt: z.ZodNumber;
18
+ }, z.core.$strip>;
19
+ export type RunningStateStatus = z.infer<typeof RunningStateStatusSchema>;
20
+ export declare const runningStateCapability: {
21
+ readonly name: 'running-state';
22
+ readonly scope: 'device';
23
+ readonly deviceNative: true;
24
+ readonly mode: 'singleton';
25
+ readonly deviceTypes: DeviceType[];
26
+ readonly methods: {};
27
+ readonly events: {
28
+ readonly onStarted: {
29
+ readonly data: z.ZodObject<{
30
+ deviceId: z.ZodNumber;
31
+ since: z.ZodNullable<z.ZodNumber>;
32
+ phase: z.ZodNullable<z.ZodString>;
33
+ }, z.core.$strip>;
34
+ };
35
+ readonly onFinished: {
36
+ readonly data: z.ZodObject<{
37
+ deviceId: z.ZodNumber;
38
+ since: z.ZodNullable<z.ZodNumber>;
39
+ phase: z.ZodNullable<z.ZodString>;
40
+ }, z.core.$strip>;
41
+ };
42
+ };
43
+ readonly status: {
44
+ readonly schema: z.ZodObject<{
45
+ running: z.ZodNullable<z.ZodBoolean>;
46
+ since: z.ZodNullable<z.ZodNumber>;
47
+ source: z.ZodEnum<{
48
+ assigned: "assigned";
49
+ native: "native";
50
+ }>;
51
+ phase: z.ZodNullable<z.ZodString>;
52
+ lastFetchedAt: z.ZodNumber;
53
+ }, z.core.$strip>;
54
+ readonly kind: 'push';
55
+ };
56
+ readonly runtimeState: z.ZodObject<{
57
+ running: z.ZodNullable<z.ZodBoolean>;
58
+ since: z.ZodNullable<z.ZodNumber>;
59
+ source: z.ZodEnum<{
60
+ assigned: "assigned";
61
+ native: "native";
62
+ }>;
63
+ phase: z.ZodNullable<z.ZodString>;
64
+ lastFetchedAt: z.ZodNumber;
65
+ }, z.core.$strip>;
66
+ readonly durability: 'restored';
67
+ readonly history: {
68
+ readonly fields: {
69
+ readonly running: {
70
+ readonly kind: 'boolean';
71
+ };
72
+ };
73
+ };
74
+ readonly volatileStateFields: readonly ["lastFetchedAt"];
75
+ };
76
+ export type IRunningStateProvider = InferProvider<typeof runningStateCapability>;
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * What the vision model must answer before a package event is emitted
4
+ * when a packages rule has "Confirm with the LLM" on.
5
+ *
6
+ * `package` is the verdict. `confidence` is 0..1. `reason` is the model's
7
+ * one-line explanation, stored on the event so a drop is not silent.
8
+ */
9
+ export declare const PackageLlmVerdictSchema: z.ZodObject<{
10
+ package: z.ZodBoolean;
11
+ confidence: z.ZodNumber;
12
+ reason: z.ZodString;
13
+ }, z.core.$strip>;
14
+ export type PackageLlmVerdict = z.infer<typeof PackageLlmVerdictSchema>;
@@ -50,6 +50,8 @@ export declare const ZoneRuleSchema: z.ZodObject<{
50
50
  bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
51
51
  preferMask: z.ZodOptional<z.ZodBoolean>;
52
52
  enabled: z.ZodDefault<z.ZodBoolean>;
53
+ detectBySceneDifference: z.ZodOptional<z.ZodBoolean>;
54
+ confirmWithLlm: z.ZodOptional<z.ZodBoolean>;
53
55
  }, z.core.$strip>;
54
56
  export type ZoneRule = z.infer<typeof ZoneRuleSchema>;
55
57
  /**
@@ -69,5 +71,7 @@ export declare const ZoneRulesArraySchema: z.ZodReadonly<z.ZodArray<z.ZodObject<
69
71
  bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
70
72
  preferMask: z.ZodOptional<z.ZodBoolean>;
71
73
  enabled: z.ZodDefault<z.ZodBoolean>;
74
+ detectBySceneDifference: z.ZodOptional<z.ZodBoolean>;
75
+ confirmWithLlm: z.ZodOptional<z.ZodBoolean>;
72
76
  }, z.core.$strip>>>;
73
77
  export type ZoneRules = z.infer<typeof ZoneRulesArraySchema>;
@@ -61,6 +61,8 @@ export declare const zoneRulesCapability: {
61
61
  bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
62
62
  preferMask: z.ZodOptional<z.ZodBoolean>;
63
63
  enabled: z.ZodDefault<z.ZodBoolean>;
64
+ detectBySceneDifference: z.ZodOptional<z.ZodBoolean>;
65
+ confirmWithLlm: z.ZodOptional<z.ZodBoolean>;
64
66
  }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
65
67
  /** Bulk-replace the rule list for one stage. The provider validates
66
68
  * each entry against {@link ZoneRuleSchema} (zoneIds non-empty,
@@ -86,6 +88,8 @@ export declare const zoneRulesCapability: {
86
88
  bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
87
89
  preferMask: z.ZodOptional<z.ZodBoolean>;
88
90
  enabled: z.ZodDefault<z.ZodBoolean>;
91
+ detectBySceneDifference: z.ZodOptional<z.ZodBoolean>;
92
+ confirmWithLlm: z.ZodOptional<z.ZodBoolean>;
89
93
  }, z.core.$strip>>>;
90
94
  }, z.core.$strip>, z.ZodVoid, "mutation">;
91
95
  };
@@ -119,6 +123,8 @@ export declare const zoneRulesCapability: {
119
123
  bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
120
124
  preferMask: z.ZodOptional<z.ZodBoolean>;
121
125
  enabled: z.ZodDefault<z.ZodBoolean>;
126
+ detectBySceneDifference: z.ZodOptional<z.ZodBoolean>;
127
+ confirmWithLlm: z.ZodOptional<z.ZodBoolean>;
122
128
  }, z.core.$strip>>>;
123
129
  detection: z.ZodReadonly<z.ZodArray<z.ZodObject<{
124
130
  id: z.ZodString;
@@ -133,6 +139,8 @@ export declare const zoneRulesCapability: {
133
139
  bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
134
140
  preferMask: z.ZodOptional<z.ZodBoolean>;
135
141
  enabled: z.ZodDefault<z.ZodBoolean>;
142
+ detectBySceneDifference: z.ZodOptional<z.ZodBoolean>;
143
+ confirmWithLlm: z.ZodOptional<z.ZodBoolean>;
136
144
  }, z.core.$strip>>>;
137
145
  package: z.ZodReadonly<z.ZodArray<z.ZodObject<{
138
146
  id: z.ZodString;
@@ -147,6 +155,8 @@ export declare const zoneRulesCapability: {
147
155
  bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
148
156
  preferMask: z.ZodOptional<z.ZodBoolean>;
149
157
  enabled: z.ZodDefault<z.ZodBoolean>;
158
+ detectBySceneDifference: z.ZodOptional<z.ZodBoolean>;
159
+ confirmWithLlm: z.ZodOptional<z.ZodBoolean>;
150
160
  }, z.core.$strip>>>;
151
161
  }, z.core.$strip>;
152
162
  /**
package/dist/client.js CHANGED
@@ -22259,9 +22259,6 @@ var NcSystemEventKindSchema = zod.z.enum([
22259
22259
  "device-battery-normal",
22260
22260
  "device-consumable-low",
22261
22261
  "device-consumable-normal",
22262
- "device-tank-low",
22263
- "device-tank-full",
22264
- "device-tank-normal",
22265
22262
  "stream-online",
22266
22263
  "stream-offline",
22267
22264
  "node-online",
@@ -22308,13 +22305,14 @@ var NcSystemEventKindSchema = zod.z.enum([
22308
22305
  "camera-enabled"
22309
22306
  ]);
22310
22307
  /** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
22311
- var NC_LEGACY_SYSTEM_EVENT_KINDS = new Set([
22308
+ var NC_LEGACY_SYSTEM_EVENT_KINDS = [
22312
22309
  "camera-online",
22313
22310
  "camera-offline",
22314
22311
  "camera-disabled",
22315
22312
  "camera-enabled"
22316
- ]);
22317
- NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KINDS.has(kind));
22313
+ ];
22314
+ var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
22315
+ NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
22318
22316
  /**
22319
22317
  * The panel's transitions, as ONE list.
22320
22318
  *
@@ -23491,18 +23489,11 @@ var NcRuleSchema = NcRuleInputSchema.extend({
23491
23489
  */
23492
23490
  disabledTargetIds: zod.z.array(zod.z.string()).default([])
23493
23491
  });
23494
- /**
23495
- * The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
23496
- * report a still-true state. `addons` is the crash-looped addons only and
23497
- * `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
23498
- * job is not an open state, and the alarm stays instant.
23499
- */
23500
23492
  var NcStateSummarySectionIdSchema = zod.z.enum([
23501
23493
  "device-state",
23502
23494
  "streams",
23503
23495
  "battery",
23504
23496
  "consumables",
23505
- "tanks",
23506
23497
  "detection-blind",
23507
23498
  "nodes",
23508
23499
  "addons",
@@ -26520,6 +26511,7 @@ function createDeviceProxy(api, binding, opts) {
26520
26511
  getStatus: (input) => dispatch("recording-onboard", "recordingOnboard", "getStatus", "query", input)
26521
26512
  };
26522
26513
  const recordingSignalInterface = { getStatus: (input) => dispatch("recording-signal", "recordingSignal", "getStatus", "query", input) };
26514
+ const runningStateInterface = { getStatus: (input) => dispatch("running-state", "runningState", "getStatus", "query", input) };
26523
26515
  const sceneMonitorInterface = {
26524
26516
  listScenes: (input) => dispatch("scene-monitor", "sceneMonitor", "listScenes", "query", input),
26525
26517
  listScenesBatch: (input) => dispatch("scene-monitor", "sceneMonitor", "listScenesBatch", "query", input),
@@ -26846,6 +26838,7 @@ function createDeviceProxy(api, binding, opts) {
26846
26838
  ptzAutotrack: createSliceHandle(stateSource, binding.deviceId, "ptz-autotrack"),
26847
26839
  recordingOnboard: createSliceHandle(stateSource, binding.deviceId, "recording-onboard"),
26848
26840
  recordingSignal: createSliceHandle(stateSource, binding.deviceId, "recording-signal"),
26841
+ runningState: createSliceHandle(stateSource, binding.deviceId, "running-state"),
26849
26842
  sceneMonitor: createSliceHandle(stateSource, binding.deviceId, "scene-monitor"),
26850
26843
  scriptRunner: createSliceHandle(stateSource, binding.deviceId, "script-runner"),
26851
26844
  smoke: createSliceHandle(stateSource, binding.deviceId, "smoke"),
@@ -26934,6 +26927,7 @@ function createDeviceProxy(api, binding, opts) {
26934
26927
  ...bound("recording") ? { recording: recordingInterface } : {},
26935
26928
  ...bound("recording-onboard") ? { recordingOnboard: recordingOnboardInterface } : {},
26936
26929
  ...bound("recording-signal") ? { recordingSignal: recordingSignalInterface } : {},
26930
+ ...bound("running-state") ? { runningState: runningStateInterface } : {},
26937
26931
  ...bound("scene-monitor") ? { sceneMonitor: sceneMonitorInterface } : {},
26938
26932
  ...bound("script-runner") ? { scriptRunner: scriptRunnerInterface } : {},
26939
26933
  ...bound("smoke") ? { smoke: smokeInterface } : {},
@@ -28736,6 +28730,7 @@ new Set(["devices", "classes"]);
28736
28730
  * narrows, and still fails CLOSED on a subject that cannot produce the identity
28737
28731
  * it tests (a device the mirror cannot name is not evidence of a camera).
28738
28732
  */
28733
+ var LEGACY_KINDS_WITHOUT_FILTERS = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
28739
28734
  /**
28740
28735
  * Every filter, for the callers that must cover all of them (guards, tests).
28741
28736
  *
@@ -28759,6 +28754,7 @@ var NC_SYSTEM_EVENT_FILTER_KEYS = [
28759
28754
  * ignores it and an editor hides its input. It never means "excluded".
28760
28755
  */
28761
28756
  function systemEventFilterApplies(kind, filter) {
28757
+ if (LEGACY_KINDS_WITHOUT_FILTERS.has(kind)) return false;
28762
28758
  switch (filter) {
28763
28759
  case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind.startsWith("motion-") || kind.startsWith("recording-") || kind === "alarm-triggered";
28764
28760
  case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind" || kind.startsWith("motion-");
@@ -28813,9 +28809,6 @@ var NC_SYSTEM_EVENT_FAMILY = {
28813
28809
  "device-battery-normal": "device-events",
28814
28810
  "device-consumable-low": "device-events",
28815
28811
  "device-consumable-normal": "device-events",
28816
- "device-tank-low": "device-events",
28817
- "device-tank-full": "device-events",
28818
- "device-tank-normal": "device-events",
28819
28812
  "stream-online": "device-events",
28820
28813
  "stream-offline": "device-events",
28821
28814
  "detection-blind": "device-events",
@@ -28910,16 +28903,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
28910
28903
  label: "Consumables",
28911
28904
  kinds: ["device-consumable-low", "device-consumable-normal"]
28912
28905
  },
28913
- {
28914
- id: "tanks",
28915
- family: "device-events",
28916
- label: "Tanks",
28917
- kinds: [
28918
- "device-tank-low",
28919
- "device-tank-full",
28920
- "device-tank-normal"
28921
- ]
28922
- },
28923
28906
  {
28924
28907
  id: "detection-blind",
28925
28908
  family: "device-events",
@@ -29893,11 +29876,6 @@ var RULE_BODY_ONLY = ["body"];
29893
29876
  var RULE_TEXT = ["title", "body"];
29894
29877
  var BATTERY = ["device-battery-low", "device-battery-normal"];
29895
29878
  var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
29896
- var TANK = [
29897
- "device-tank-low",
29898
- "device-tank-full",
29899
- "device-tank-normal"
29900
- ];
29901
29879
  var ALERT_EPISODE = [
29902
29880
  "alert-critical",
29903
29881
  "alert-error",
@@ -29929,7 +29907,6 @@ var DEVICE_EVENTS = [
29929
29907
  "device-enabled",
29930
29908
  ...BATTERY,
29931
29909
  ...CONSUMABLE,
29932
- ...TANK,
29933
29910
  "stream-online",
29934
29911
  "stream-offline",
29935
29912
  "detection-blind",
@@ -29975,12 +29952,6 @@ var STATE_SUMMARY_SECTION_VARS = [
29975
29952
  example: "Robot — filter 10 %",
29976
29953
  kinds: CONSUMABLE
29977
29954
  },
29978
- {
29979
- name: "summaryTanks",
29980
- label: "Summary: tanks",
29981
- example: "Robot — clean water low",
29982
- kinds: TANK
29983
- },
29984
29955
  {
29985
29956
  name: "summaryDetection",
29986
29957
  label: "Summary: cameras detecting nothing",
@@ -30389,18 +30360,7 @@ var NC_TEMPLATE_VARS = [
30389
30360
  families: ["rule"],
30390
30361
  fields: [...RULE_TEXT],
30391
30362
  kinds: ["system"],
30392
- systemEventKinds: [...CONSUMABLE, ...TANK]
30393
- },
30394
- {
30395
- name: "tank",
30396
- label: "Tank",
30397
- description: "Which tank, as a stable token: cleanWater, dirtyWater, detergent, dustBin, or the device key of any other supply (salt, rinse aid).",
30398
- example: "clean water",
30399
- group: "system",
30400
- families: ["rule"],
30401
- fields: [...RULE_TEXT],
30402
- kinds: ["system"],
30403
- systemEventKinds: [...TANK]
30363
+ systemEventKinds: [...CONSUMABLE]
30404
30364
  },
30405
30365
  {
30406
30366
  name: "profile",
@@ -31051,9 +31011,6 @@ var NC_TEMPLATE_VARS = [
31051
31011
  * delete it from here then, and the served catalog names it again.
31052
31012
  */
31053
31013
  var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
31054
- "device-tank-low",
31055
- "device-tank-full",
31056
- "device-tank-normal",
31057
31014
  "node-restarting",
31058
31015
  "node-updating",
31059
31016
  "alert-critical",
@@ -31166,15 +31123,6 @@ var NC_SYSTEM_EVENT_CLASS_SPECS = [
31166
31123
  snapshotLabel: "Consumables low now",
31167
31124
  snapshotSection: "consumables"
31168
31125
  },
31169
- {
31170
- id: "tanks",
31171
- family: "device-events",
31172
- label: "Tanks (low or full / back to normal)",
31173
- bad: ["device-tank-low", "device-tank-full"],
31174
- recovery: ["device-tank-normal"],
31175
- snapshotLabel: "Tanks low or full now",
31176
- snapshotSection: "tanks"
31177
- },
31178
31126
  {
31179
31127
  id: "motion-noise",
31180
31128
  family: "device-events",
package/dist/client.mjs CHANGED
@@ -22258,9 +22258,6 @@ var NcSystemEventKindSchema = z.enum([
22258
22258
  "device-battery-normal",
22259
22259
  "device-consumable-low",
22260
22260
  "device-consumable-normal",
22261
- "device-tank-low",
22262
- "device-tank-full",
22263
- "device-tank-normal",
22264
22261
  "stream-online",
22265
22262
  "stream-offline",
22266
22263
  "node-online",
@@ -22307,13 +22304,14 @@ var NcSystemEventKindSchema = z.enum([
22307
22304
  "camera-enabled"
22308
22305
  ]);
22309
22306
  /** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
22310
- var NC_LEGACY_SYSTEM_EVENT_KINDS = new Set([
22307
+ var NC_LEGACY_SYSTEM_EVENT_KINDS = [
22311
22308
  "camera-online",
22312
22309
  "camera-offline",
22313
22310
  "camera-disabled",
22314
22311
  "camera-enabled"
22315
- ]);
22316
- NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KINDS.has(kind));
22312
+ ];
22313
+ var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
22314
+ NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
22317
22315
  /**
22318
22316
  * The panel's transitions, as ONE list.
22319
22317
  *
@@ -23490,18 +23488,11 @@ var NcRuleSchema = NcRuleInputSchema.extend({
23490
23488
  */
23491
23489
  disabledTargetIds: z.array(z.string()).default([])
23492
23490
  });
23493
- /**
23494
- * The state-summary SECTIONS (D647 / D698 / D708): the D637 kind groups that
23495
- * report a still-true state. `addons` is the crash-looped addons only and
23496
- * `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
23497
- * job is not an open state, and the alarm stays instant.
23498
- */
23499
23491
  var NcStateSummarySectionIdSchema = z.enum([
23500
23492
  "device-state",
23501
23493
  "streams",
23502
23494
  "battery",
23503
23495
  "consumables",
23504
- "tanks",
23505
23496
  "detection-blind",
23506
23497
  "nodes",
23507
23498
  "addons",
@@ -26519,6 +26510,7 @@ function createDeviceProxy(api, binding, opts) {
26519
26510
  getStatus: (input) => dispatch("recording-onboard", "recordingOnboard", "getStatus", "query", input)
26520
26511
  };
26521
26512
  const recordingSignalInterface = { getStatus: (input) => dispatch("recording-signal", "recordingSignal", "getStatus", "query", input) };
26513
+ const runningStateInterface = { getStatus: (input) => dispatch("running-state", "runningState", "getStatus", "query", input) };
26522
26514
  const sceneMonitorInterface = {
26523
26515
  listScenes: (input) => dispatch("scene-monitor", "sceneMonitor", "listScenes", "query", input),
26524
26516
  listScenesBatch: (input) => dispatch("scene-monitor", "sceneMonitor", "listScenesBatch", "query", input),
@@ -26845,6 +26837,7 @@ function createDeviceProxy(api, binding, opts) {
26845
26837
  ptzAutotrack: createSliceHandle(stateSource, binding.deviceId, "ptz-autotrack"),
26846
26838
  recordingOnboard: createSliceHandle(stateSource, binding.deviceId, "recording-onboard"),
26847
26839
  recordingSignal: createSliceHandle(stateSource, binding.deviceId, "recording-signal"),
26840
+ runningState: createSliceHandle(stateSource, binding.deviceId, "running-state"),
26848
26841
  sceneMonitor: createSliceHandle(stateSource, binding.deviceId, "scene-monitor"),
26849
26842
  scriptRunner: createSliceHandle(stateSource, binding.deviceId, "script-runner"),
26850
26843
  smoke: createSliceHandle(stateSource, binding.deviceId, "smoke"),
@@ -26933,6 +26926,7 @@ function createDeviceProxy(api, binding, opts) {
26933
26926
  ...bound("recording") ? { recording: recordingInterface } : {},
26934
26927
  ...bound("recording-onboard") ? { recordingOnboard: recordingOnboardInterface } : {},
26935
26928
  ...bound("recording-signal") ? { recordingSignal: recordingSignalInterface } : {},
26929
+ ...bound("running-state") ? { runningState: runningStateInterface } : {},
26936
26930
  ...bound("scene-monitor") ? { sceneMonitor: sceneMonitorInterface } : {},
26937
26931
  ...bound("script-runner") ? { scriptRunner: scriptRunnerInterface } : {},
26938
26932
  ...bound("smoke") ? { smoke: smokeInterface } : {},
@@ -28735,6 +28729,7 @@ new Set(["devices", "classes"]);
28735
28729
  * narrows, and still fails CLOSED on a subject that cannot produce the identity
28736
28730
  * it tests (a device the mirror cannot name is not evidence of a camera).
28737
28731
  */
28732
+ var LEGACY_KINDS_WITHOUT_FILTERS = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
28738
28733
  /**
28739
28734
  * Every filter, for the callers that must cover all of them (guards, tests).
28740
28735
  *
@@ -28758,6 +28753,7 @@ var NC_SYSTEM_EVENT_FILTER_KEYS = [
28758
28753
  * ignores it and an editor hides its input. It never means "excluded".
28759
28754
  */
28760
28755
  function systemEventFilterApplies(kind, filter) {
28756
+ if (LEGACY_KINDS_WITHOUT_FILTERS.has(kind)) return false;
28761
28757
  switch (filter) {
28762
28758
  case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind.startsWith("motion-") || kind.startsWith("recording-") || kind === "alarm-triggered";
28763
28759
  case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind" || kind.startsWith("motion-");
@@ -28812,9 +28808,6 @@ var NC_SYSTEM_EVENT_FAMILY = {
28812
28808
  "device-battery-normal": "device-events",
28813
28809
  "device-consumable-low": "device-events",
28814
28810
  "device-consumable-normal": "device-events",
28815
- "device-tank-low": "device-events",
28816
- "device-tank-full": "device-events",
28817
- "device-tank-normal": "device-events",
28818
28811
  "stream-online": "device-events",
28819
28812
  "stream-offline": "device-events",
28820
28813
  "detection-blind": "device-events",
@@ -28909,16 +28902,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
28909
28902
  label: "Consumables",
28910
28903
  kinds: ["device-consumable-low", "device-consumable-normal"]
28911
28904
  },
28912
- {
28913
- id: "tanks",
28914
- family: "device-events",
28915
- label: "Tanks",
28916
- kinds: [
28917
- "device-tank-low",
28918
- "device-tank-full",
28919
- "device-tank-normal"
28920
- ]
28921
- },
28922
28905
  {
28923
28906
  id: "detection-blind",
28924
28907
  family: "device-events",
@@ -29892,11 +29875,6 @@ var RULE_BODY_ONLY = ["body"];
29892
29875
  var RULE_TEXT = ["title", "body"];
29893
29876
  var BATTERY = ["device-battery-low", "device-battery-normal"];
29894
29877
  var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
29895
- var TANK = [
29896
- "device-tank-low",
29897
- "device-tank-full",
29898
- "device-tank-normal"
29899
- ];
29900
29878
  var ALERT_EPISODE = [
29901
29879
  "alert-critical",
29902
29880
  "alert-error",
@@ -29928,7 +29906,6 @@ var DEVICE_EVENTS = [
29928
29906
  "device-enabled",
29929
29907
  ...BATTERY,
29930
29908
  ...CONSUMABLE,
29931
- ...TANK,
29932
29909
  "stream-online",
29933
29910
  "stream-offline",
29934
29911
  "detection-blind",
@@ -29974,12 +29951,6 @@ var STATE_SUMMARY_SECTION_VARS = [
29974
29951
  example: "Robot — filter 10 %",
29975
29952
  kinds: CONSUMABLE
29976
29953
  },
29977
- {
29978
- name: "summaryTanks",
29979
- label: "Summary: tanks",
29980
- example: "Robot — clean water low",
29981
- kinds: TANK
29982
- },
29983
29954
  {
29984
29955
  name: "summaryDetection",
29985
29956
  label: "Summary: cameras detecting nothing",
@@ -30388,18 +30359,7 @@ var NC_TEMPLATE_VARS = [
30388
30359
  families: ["rule"],
30389
30360
  fields: [...RULE_TEXT],
30390
30361
  kinds: ["system"],
30391
- systemEventKinds: [...CONSUMABLE, ...TANK]
30392
- },
30393
- {
30394
- name: "tank",
30395
- label: "Tank",
30396
- description: "Which tank, as a stable token: cleanWater, dirtyWater, detergent, dustBin, or the device key of any other supply (salt, rinse aid).",
30397
- example: "clean water",
30398
- group: "system",
30399
- families: ["rule"],
30400
- fields: [...RULE_TEXT],
30401
- kinds: ["system"],
30402
- systemEventKinds: [...TANK]
30362
+ systemEventKinds: [...CONSUMABLE]
30403
30363
  },
30404
30364
  {
30405
30365
  name: "profile",
@@ -31050,9 +31010,6 @@ var NC_TEMPLATE_VARS = [
31050
31010
  * delete it from here then, and the served catalog names it again.
31051
31011
  */
31052
31012
  var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
31053
- "device-tank-low",
31054
- "device-tank-full",
31055
- "device-tank-normal",
31056
31013
  "node-restarting",
31057
31014
  "node-updating",
31058
31015
  "alert-critical",
@@ -31165,15 +31122,6 @@ var NC_SYSTEM_EVENT_CLASS_SPECS = [
31165
31122
  snapshotLabel: "Consumables low now",
31166
31123
  snapshotSection: "consumables"
31167
31124
  },
31168
- {
31169
- id: "tanks",
31170
- family: "device-events",
31171
- label: "Tanks (low or full / back to normal)",
31172
- bad: ["device-tank-low", "device-tank-full"],
31173
- recovery: ["device-tank-normal"],
31174
- snapshotLabel: "Tanks low or full now",
31175
- snapshotSection: "tanks"
31176
- },
31177
31125
  {
31178
31126
  id: "motion-noise",
31179
31127
  family: "device-events",