@camstack/types 1.2.233 → 1.2.234

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.
@@ -9,7 +9,7 @@ import type { CustomModelMetadata, ModelCatalogEntry, ModelFormat, ModelOutputFo
9
9
  * Multiple addons can contribute sections to the same tab.
10
10
  */
11
11
  /** Predefined tab identifiers that addons reference by ID. */
12
- export type WellKnownTabId = 'overview' | 'general' | 'image' | 'light' | 'motion' | 'audio' | 'snapshot' | 'osd' | 'alarms' | 'pipeline' | 'detection-pipeline' | 'stream-broker' | 'streaming' | 'ptz' | 'navigation' | 'consumables' | 'zones' | 'analytics' | 'live-stats' | 'recording' | 'notifications' | 'network' | 'storage' | 'engine' | 'scheduler' | 'decoder' | 'advanced';
12
+ export type WellKnownTabId = 'overview' | 'general' | 'image' | 'light' | 'motion' | 'audio' | 'snapshot' | 'osd' | 'alarms' | 'pipeline' | 'detection-pipeline' | 'stream-broker' | 'streaming' | 'ptz' | 'navigation' | 'consumables' | 'zones' | 'analytics' | 'live-stats' | 'recording' | 'clips' | 'notifications' | 'network' | 'storage' | 'engine' | 'scheduler' | 'decoder' | 'advanced';
13
13
  export interface WellKnownTab {
14
14
  readonly id: WellKnownTabId;
15
15
  readonly label: string;
@@ -62,6 +62,20 @@ export interface ICapabilityRegistry {
62
62
  }>;
63
63
  /** List device-scoped capability names that apply to a device type. */
64
64
  listDeviceScopedCapsForType(deviceType: string): readonly string[];
65
+ /**
66
+ * Mirror one device's persisted SOURCE deactivations for a collection cap
67
+ * onto the resolution path (D556).
68
+ *
69
+ * The registry holds only the PROJECTION: the authority is the
70
+ * device-manager's persisted wrapper activation, and
71
+ * `device-source-activation.ts` is the only writer. An empty list means
72
+ * every source — never "none".
73
+ */
74
+ setDeviceDisabledSources(deviceId: string, capability: string, addonIds: readonly string[]): void;
75
+ /** The addon ids switched OFF as sources of this device. Empty = every source. */
76
+ getDeviceDisabledSources(deviceId: string, capability: string): readonly string[];
77
+ /** Is `addonId` switched off as a source of this device for `capability`? */
78
+ isDeviceSourceDisabled(deviceId: string, capability: string, addonId: string): boolean;
65
79
  }
66
80
  /** An engine instance returned by IEngineManager — typed interface instead of raw ICamstackAddon */
67
81
  export interface IEngineInstance {
@@ -244,6 +244,12 @@ var WELL_KNOWN_TABS = [
244
244
  icon: "circle-dot",
245
245
  order: 40
246
246
  },
247
+ {
248
+ id: "clips",
249
+ label: "Clips",
250
+ icon: "clapperboard",
251
+ order: 41
252
+ },
247
253
  {
248
254
  id: "engine",
249
255
  label: "Inference Engine",
@@ -2317,6 +2323,7 @@ var DEFAULT_RUNTIME_STATE_DURABILITY = "session";
2317
2323
  function resolveCapMount(def) {
2318
2324
  if (def.mount) return def.mount;
2319
2325
  if (def.deviceNative === true) return { kind: "device-native" };
2326
+ if (def.scope === "device" && def.kind === "wrapper") return { kind: "device-scoped" };
2320
2327
  if (def.mode === "collection") return { kind: "collection" };
2321
2328
  return { kind: "singleton" };
2322
2329
  }
@@ -3873,6 +3880,7 @@ function createDeviceProxy(api, binding, opts) {
3873
3880
  vibration: { getStatus: (input) => dispatch("vibration", "vibration", "getStatus", "query", input) },
3874
3881
  videoclips: {
3875
3882
  listClips: (input) => dispatch("videoclips", "videoclips", "listClips", "query", input),
3883
+ listSources: (input) => dispatch("videoclips", "videoclips", "listSources", "query", input),
3876
3884
  getClipPlayback: (input) => dispatch("videoclips", "videoclips", "getClipPlayback", "query", input)
3877
3885
  },
3878
3886
  waterHeater: {
@@ -244,6 +244,12 @@ var WELL_KNOWN_TABS = [
244
244
  icon: "circle-dot",
245
245
  order: 40
246
246
  },
247
+ {
248
+ id: "clips",
249
+ label: "Clips",
250
+ icon: "clapperboard",
251
+ order: 41
252
+ },
247
253
  {
248
254
  id: "engine",
249
255
  label: "Inference Engine",
@@ -2317,6 +2323,7 @@ var DEFAULT_RUNTIME_STATE_DURABILITY = "session";
2317
2323
  function resolveCapMount(def) {
2318
2324
  if (def.mount) return def.mount;
2319
2325
  if (def.deviceNative === true) return { kind: "device-native" };
2326
+ if (def.scope === "device" && def.kind === "wrapper") return { kind: "device-scoped" };
2320
2327
  if (def.mode === "collection") return { kind: "collection" };
2321
2328
  return { kind: "singleton" };
2322
2329
  }
@@ -3873,6 +3880,7 @@ function createDeviceProxy(api, binding, opts) {
3873
3880
  vibration: { getStatus: (input) => dispatch("vibration", "vibration", "getStatus", "query", input) },
3874
3881
  videoclips: {
3875
3882
  listClips: (input) => dispatch("videoclips", "videoclips", "listClips", "query", input),
3883
+ listSources: (input) => dispatch("videoclips", "videoclips", "listSources", "query", input),
3876
3884
  getClipPlayback: (input) => dispatch("videoclips", "videoclips", "getClipPlayback", "query", input)
3877
3885
  },
3878
3886
  waterHeater: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.233",
3
+ "version": "1.2.234",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",