@camstack/types 1.2.61 → 1.2.63

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.
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * filesystem-browse — per-node capability for browsing the node's local
3
- * filesystem, sandboxed to operator-configured allowed roots. Used by the
3
+ * filesystem. Reads are unconfined (whole filesystem, from `/` down); WRITES
4
+ * are sandboxed to operator-configured allowed roots (D115). Used by the
4
5
  * admin "Add filesystem location" flow to pick a node + path. `mode:'per-node'`
5
6
  * (one provider per node); the hub calls it with `{nodeId}` so the codegen
6
7
  * routes to that exact node (default `nodeIdMode:'routing'`).
@@ -13,9 +14,9 @@ export declare const filesystemBrowseCapability: {
13
14
  readonly mode: "singleton";
14
15
  readonly internal: true;
15
16
  readonly methods: {
16
- /** The allowed roots browsing is sandboxed to on this node. */
17
+ /** The roots `createDir` is sandboxed to on this node. Browsing is not confined to them. */
17
18
  readonly listAllowedRoots: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodString>>, import("./capability-definition.js").CapabilityMethodKind>;
18
- /** Immediate subdirectories of `path` (must be within an allowed root) + free/total bytes. */
19
+ /** Immediate subdirectories of any absolute `path` + free/total bytes. Read-only. */
19
20
  readonly browse: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
20
21
  path: z.ZodString;
21
22
  }, z.core.$strip>, z.ZodObject<{
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `recordingExport` cap — render a footage time range into a single downloadable
2
+ * `recording-export` cap — render a footage time range into a single downloadable
3
3
  * MP4 (regular / accelerated / decelerated / timelapse, ± audio), kept for a
4
4
  * bounded lifetime with a durable history, auto-expiry, and optional
5
5
  * delete-after-download.
@@ -183,7 +183,7 @@ export declare const ExportBytesSchema: z.ZodObject<{
183
183
  }, z.core.$strip>;
184
184
  export type ExportBytes = z.infer<typeof ExportBytesSchema>;
185
185
  export declare const recordingExportCapability: {
186
- readonly name: "recordingExport";
186
+ readonly name: "recording-export";
187
187
  readonly scope: "system";
188
188
  readonly mode: "singleton";
189
189
  readonly methods: {
@@ -29,6 +29,7 @@ declare const BeginUploadInputSchema: z.ZodObject<{
29
29
  nodeId: z.ZodOptional<z.ZodString>;
30
30
  isDefault: z.ZodDefault<z.ZodBoolean>;
31
31
  isSystem: z.ZodDefault<z.ZodBoolean>;
32
+ enabled: z.ZodOptional<z.ZodBoolean>;
32
33
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
33
34
  totalBytes: z.ZodNumber;
34
35
  availableBytes: z.ZodNumber;
@@ -63,6 +64,7 @@ declare const BeginDownloadInputSchema: z.ZodObject<{
63
64
  nodeId: z.ZodOptional<z.ZodString>;
64
65
  isDefault: z.ZodDefault<z.ZodBoolean>;
65
66
  isSystem: z.ZodDefault<z.ZodBoolean>;
67
+ enabled: z.ZodOptional<z.ZodBoolean>;
66
68
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
67
69
  totalBytes: z.ZodNumber;
68
70
  availableBytes: z.ZodNumber;
@@ -143,6 +145,7 @@ export declare const storageProviderCapability: {
143
145
  nodeId: z.ZodOptional<z.ZodString>;
144
146
  isDefault: z.ZodDefault<z.ZodBoolean>;
145
147
  isSystem: z.ZodDefault<z.ZodBoolean>;
148
+ enabled: z.ZodOptional<z.ZodBoolean>;
146
149
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
147
150
  totalBytes: z.ZodNumber;
148
151
  availableBytes: z.ZodNumber;
@@ -162,6 +165,7 @@ export declare const storageProviderCapability: {
162
165
  nodeId: z.ZodOptional<z.ZodString>;
163
166
  isDefault: z.ZodDefault<z.ZodBoolean>;
164
167
  isSystem: z.ZodDefault<z.ZodBoolean>;
168
+ enabled: z.ZodOptional<z.ZodBoolean>;
165
169
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
166
170
  totalBytes: z.ZodNumber;
167
171
  availableBytes: z.ZodNumber;
@@ -182,6 +186,7 @@ export declare const storageProviderCapability: {
182
186
  nodeId: z.ZodOptional<z.ZodString>;
183
187
  isDefault: z.ZodDefault<z.ZodBoolean>;
184
188
  isSystem: z.ZodDefault<z.ZodBoolean>;
189
+ enabled: z.ZodOptional<z.ZodBoolean>;
185
190
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
186
191
  totalBytes: z.ZodNumber;
187
192
  availableBytes: z.ZodNumber;
@@ -201,6 +206,7 @@ export declare const storageProviderCapability: {
201
206
  nodeId: z.ZodOptional<z.ZodString>;
202
207
  isDefault: z.ZodDefault<z.ZodBoolean>;
203
208
  isSystem: z.ZodDefault<z.ZodBoolean>;
209
+ enabled: z.ZodOptional<z.ZodBoolean>;
204
210
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
205
211
  totalBytes: z.ZodNumber;
206
212
  availableBytes: z.ZodNumber;
@@ -220,6 +226,7 @@ export declare const storageProviderCapability: {
220
226
  nodeId: z.ZodOptional<z.ZodString>;
221
227
  isDefault: z.ZodDefault<z.ZodBoolean>;
222
228
  isSystem: z.ZodDefault<z.ZodBoolean>;
229
+ enabled: z.ZodOptional<z.ZodBoolean>;
223
230
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
224
231
  totalBytes: z.ZodNumber;
225
232
  availableBytes: z.ZodNumber;
@@ -239,6 +246,7 @@ export declare const storageProviderCapability: {
239
246
  nodeId: z.ZodOptional<z.ZodString>;
240
247
  isDefault: z.ZodDefault<z.ZodBoolean>;
241
248
  isSystem: z.ZodDefault<z.ZodBoolean>;
249
+ enabled: z.ZodOptional<z.ZodBoolean>;
242
250
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
243
251
  totalBytes: z.ZodNumber;
244
252
  availableBytes: z.ZodNumber;
@@ -258,6 +266,7 @@ export declare const storageProviderCapability: {
258
266
  nodeId: z.ZodOptional<z.ZodString>;
259
267
  isDefault: z.ZodDefault<z.ZodBoolean>;
260
268
  isSystem: z.ZodDefault<z.ZodBoolean>;
269
+ enabled: z.ZodOptional<z.ZodBoolean>;
261
270
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
262
271
  totalBytes: z.ZodNumber;
263
272
  availableBytes: z.ZodNumber;
@@ -276,6 +285,7 @@ export declare const storageProviderCapability: {
276
285
  nodeId: z.ZodOptional<z.ZodString>;
277
286
  isDefault: z.ZodDefault<z.ZodBoolean>;
278
287
  isSystem: z.ZodDefault<z.ZodBoolean>;
288
+ enabled: z.ZodOptional<z.ZodBoolean>;
279
289
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
280
290
  totalBytes: z.ZodNumber;
281
291
  availableBytes: z.ZodNumber;
@@ -309,6 +319,7 @@ export declare const storageProviderCapability: {
309
319
  nodeId: z.ZodOptional<z.ZodString>;
310
320
  isDefault: z.ZodDefault<z.ZodBoolean>;
311
321
  isSystem: z.ZodDefault<z.ZodBoolean>;
322
+ enabled: z.ZodOptional<z.ZodBoolean>;
312
323
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
313
324
  totalBytes: z.ZodNumber;
314
325
  availableBytes: z.ZodNumber;
@@ -96,6 +96,7 @@ export declare const storageCapability: {
96
96
  nodeId: z.ZodOptional<z.ZodString>;
97
97
  isDefault: z.ZodDefault<z.ZodBoolean>;
98
98
  isSystem: z.ZodDefault<z.ZodBoolean>;
99
+ enabled: z.ZodOptional<z.ZodBoolean>;
99
100
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
100
101
  totalBytes: z.ZodNumber;
101
102
  availableBytes: z.ZodNumber;
@@ -114,6 +115,7 @@ export declare const storageCapability: {
114
115
  nodeId: z.ZodOptional<z.ZodString>;
115
116
  isDefault: z.ZodDefault<z.ZodBoolean>;
116
117
  isSystem: z.ZodDefault<z.ZodBoolean>;
118
+ enabled: z.ZodOptional<z.ZodBoolean>;
117
119
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
118
120
  totalBytes: z.ZodNumber;
119
121
  availableBytes: z.ZodNumber;
@@ -145,6 +147,7 @@ export declare const storageCapability: {
145
147
  nodeId: z.ZodOptional<z.ZodString>;
146
148
  isDefault: z.ZodDefault<z.ZodBoolean>;
147
149
  isSystem: z.ZodDefault<z.ZodBoolean>;
150
+ enabled: z.ZodOptional<z.ZodBoolean>;
148
151
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
149
152
  totalBytes: z.ZodNumber;
150
153
  availableBytes: z.ZodNumber;
@@ -158,6 +161,7 @@ export declare const storageCapability: {
158
161
  nodeId: z.ZodOptional<z.ZodString>;
159
162
  isDefault: z.ZodDefault<z.ZodBoolean>;
160
163
  isSystem: z.ZodDefault<z.ZodBoolean>;
164
+ enabled: z.ZodOptional<z.ZodBoolean>;
161
165
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
162
166
  totalBytes: z.ZodNumber;
163
167
  availableBytes: z.ZodNumber;
@@ -259,7 +259,7 @@ export declare const CAPABILITY_NAMES: {
259
259
  readonly ptzAutotrack: "ptz-autotrack";
260
260
  readonly reboot: "reboot";
261
261
  readonly recording: "recording";
262
- readonly recordingExport: "recordingExport";
262
+ readonly recordingExport: "recording-export";
263
263
  readonly sceneMonitor: "scene-monitor";
264
264
  readonly scriptRunner: "script-runner";
265
265
  readonly serverManagement: "server-management";
@@ -462,7 +462,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
462
462
  readonly zones: TRouter;
463
463
  }
464
464
  /** Capability names whose mode is `singleton` (125 caps). */
465
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recordingExport", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
465
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recording-export", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
466
466
  /** Union of singleton capability names (literal string union). */
467
467
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
468
468
  /** Capability names whose mode is `collection` (24 caps). */
package/dist/index.js CHANGED
@@ -1857,6 +1857,21 @@ var StorageLocationSchema = zod.z.object({
1857
1857
  nodeId: zod.z.string().optional(),
1858
1858
  isDefault: zod.z.boolean().default(false),
1859
1859
  isSystem: zod.z.boolean().default(false),
1860
+ /**
1861
+ * Operator opt-in: whether consumers that BALANCE across several locations
1862
+ * of a type may write here. Recordings reads it today; event media and
1863
+ * backups are the next consumers, which is why the flag lives on the
1864
+ * location rather than in any one addon's store — nothing has to be
1865
+ * extended to add the next consumer.
1866
+ *
1867
+ * OPTIONAL, and ABSENT MEANS ACTIVE. Every location persisted before the
1868
+ * flag existed reads back with no flag and keeps working exactly as before;
1869
+ * that is the whole compat story, and it is why no migration ships with it.
1870
+ * A newly CREATED sibling is stamped `false` by the orchestrator (creating a
1871
+ * disk must not silently start writing to it); the default of a type is
1872
+ * always stamped `true`.
1873
+ */
1874
+ enabled: zod.z.boolean().optional(),
1860
1875
  /** COMPUTED at read time by the orchestrator (statfs of the backing volume
1861
1876
  * for node-local locations it can reach) — never persisted, absent when the
1862
1877
  * volume is remote/unreachable. The single capacity truth every UI reads. */
@@ -9296,7 +9311,8 @@ var embeddingEncoderCapability = {
9296
9311
  //#region src/capabilities/filesystem-browse.cap.ts
9297
9312
  /**
9298
9313
  * filesystem-browse — per-node capability for browsing the node's local
9299
- * filesystem, sandboxed to operator-configured allowed roots. Used by the
9314
+ * filesystem. Reads are unconfined (whole filesystem, from `/` down); WRITES
9315
+ * are sandboxed to operator-configured allowed roots (D115). Used by the
9300
9316
  * admin "Add filesystem location" flow to pick a node + path. `mode:'per-node'`
9301
9317
  * (one provider per node); the hub calls it with `{nodeId}` so the codegen
9302
9318
  * routes to that exact node (default `nodeIdMode:'routing'`).
@@ -9317,9 +9333,9 @@ var filesystemBrowseCapability = {
9317
9333
  mode: "singleton",
9318
9334
  internal: true,
9319
9335
  methods: {
9320
- /** The allowed roots browsing is sandboxed to on this node. */
9336
+ /** The roots `createDir` is sandboxed to on this node. Browsing is not confined to them. */
9321
9337
  listAllowedRoots: require_sleep.method(zod.z.void(), zod.z.array(zod.z.string()).readonly(), { auth: "admin" }),
9322
- /** Immediate subdirectories of `path` (must be within an allowed root) + free/total bytes. */
9338
+ /** Immediate subdirectories of any absolute `path` + free/total bytes. Read-only. */
9323
9339
  browse: require_sleep.method(zod.z.object({ path: zod.z.string() }), BrowseResultSchema, { auth: "admin" }),
9324
9340
  /** Create a subdirectory (within an allowed root). Returns its absolute path. */
9325
9341
  createDir: require_sleep.method(zod.z.object({ path: zod.z.string() }), zod.z.object({ path: zod.z.string() }), {
@@ -25882,7 +25898,7 @@ var recordingCapability = {
25882
25898
  //#endregion
25883
25899
  //#region src/capabilities/recording-export.cap.ts
25884
25900
  /**
25885
- * `recordingExport` cap — render a footage time range into a single downloadable
25901
+ * `recording-export` cap — render a footage time range into a single downloadable
25886
25902
  * MP4 (regular / accelerated / decelerated / timelapse, ± audio), kept for a
25887
25903
  * bounded lifetime with a durable history, auto-expiry, and optional
25888
25904
  * delete-after-download.
@@ -26033,7 +26049,7 @@ var ExportBytesSchema = zod.z.object({
26033
26049
  bytes: zod.z.number().int().nonnegative()
26034
26050
  });
26035
26051
  var recordingExportCapability = {
26036
- name: "recordingExport",
26052
+ name: "recording-export",
26037
26053
  scope: "system",
26038
26054
  mode: "singleton",
26039
26055
  methods: {
@@ -30948,7 +30964,7 @@ var CAPABILITY_NAMES = {
30948
30964
  ptzAutotrack: "ptz-autotrack",
30949
30965
  reboot: "reboot",
30950
30966
  recording: "recording",
30951
- recordingExport: "recordingExport",
30967
+ recordingExport: "recording-export",
30952
30968
  sceneMonitor: "scene-monitor",
30953
30969
  scriptRunner: "script-runner",
30954
30970
  serverManagement: "server-management",
@@ -31435,7 +31451,7 @@ var CAPABILITY_ROUTER_KEYS = [
31435
31451
  },
31436
31452
  {
31437
31453
  key: "recordingExport",
31438
- name: "recordingExport"
31454
+ name: "recording-export"
31439
31455
  },
31440
31456
  {
31441
31457
  key: "sceneMonitor",
@@ -35950,43 +35966,43 @@ var METHOD_ACCESS_MAP = Object.freeze({
35950
35966
  access: "create"
35951
35967
  },
35952
35968
  "recordingExport.cancelExport": {
35953
- capName: "recordingExport",
35969
+ capName: "recording-export",
35954
35970
  capScope: "system",
35955
35971
  addonId: null,
35956
35972
  access: "create"
35957
35973
  },
35958
35974
  "recordingExport.createExport": {
35959
- capName: "recordingExport",
35975
+ capName: "recording-export",
35960
35976
  capScope: "system",
35961
35977
  addonId: null,
35962
35978
  access: "create"
35963
35979
  },
35964
35980
  "recordingExport.deleteExport": {
35965
- capName: "recordingExport",
35981
+ capName: "recording-export",
35966
35982
  capScope: "system",
35967
35983
  addonId: null,
35968
35984
  access: "delete"
35969
35985
  },
35970
35986
  "recordingExport.getDownloadUrl": {
35971
- capName: "recordingExport",
35987
+ capName: "recording-export",
35972
35988
  capScope: "system",
35973
35989
  addonId: null,
35974
35990
  access: "view"
35975
35991
  },
35976
35992
  "recordingExport.getExport": {
35977
- capName: "recordingExport",
35993
+ capName: "recording-export",
35978
35994
  capScope: "system",
35979
35995
  addonId: null,
35980
35996
  access: "view"
35981
35997
  },
35982
35998
  "recordingExport.listExports": {
35983
- capName: "recordingExport",
35999
+ capName: "recording-export",
35984
36000
  capScope: "system",
35985
36001
  addonId: null,
35986
36002
  access: "view"
35987
36003
  },
35988
36004
  "recordingExport.readExportBytes": {
35989
- capName: "recordingExport",
36005
+ capName: "recording-export",
35990
36006
  capScope: "system",
35991
36007
  addonId: null,
35992
36008
  access: "view"
@@ -37410,7 +37426,7 @@ var KNOWN_CAP_NAMES = [
37410
37426
  "ptz-autotrack",
37411
37427
  "reboot",
37412
37428
  "recording",
37413
- "recordingExport",
37429
+ "recording-export",
37414
37430
  "scene-monitor",
37415
37431
  "script-runner",
37416
37432
  "server-management",
@@ -37554,7 +37570,7 @@ var SYSTEM_CAP_NAMES = [
37554
37570
  "plate-gallery",
37555
37571
  "platform-probe",
37556
37572
  "recording",
37557
- "recordingExport",
37573
+ "recording-export",
37558
37574
  "server-management",
37559
37575
  "settings-store",
37560
37576
  "smtp-provider",
package/dist/index.mjs CHANGED
@@ -1856,6 +1856,21 @@ var StorageLocationSchema = z.object({
1856
1856
  nodeId: z.string().optional(),
1857
1857
  isDefault: z.boolean().default(false),
1858
1858
  isSystem: z.boolean().default(false),
1859
+ /**
1860
+ * Operator opt-in: whether consumers that BALANCE across several locations
1861
+ * of a type may write here. Recordings reads it today; event media and
1862
+ * backups are the next consumers, which is why the flag lives on the
1863
+ * location rather than in any one addon's store — nothing has to be
1864
+ * extended to add the next consumer.
1865
+ *
1866
+ * OPTIONAL, and ABSENT MEANS ACTIVE. Every location persisted before the
1867
+ * flag existed reads back with no flag and keeps working exactly as before;
1868
+ * that is the whole compat story, and it is why no migration ships with it.
1869
+ * A newly CREATED sibling is stamped `false` by the orchestrator (creating a
1870
+ * disk must not silently start writing to it); the default of a type is
1871
+ * always stamped `true`.
1872
+ */
1873
+ enabled: z.boolean().optional(),
1859
1874
  /** COMPUTED at read time by the orchestrator (statfs of the backing volume
1860
1875
  * for node-local locations it can reach) — never persisted, absent when the
1861
1876
  * volume is remote/unreachable. The single capacity truth every UI reads. */
@@ -9295,7 +9310,8 @@ var embeddingEncoderCapability = {
9295
9310
  //#region src/capabilities/filesystem-browse.cap.ts
9296
9311
  /**
9297
9312
  * filesystem-browse — per-node capability for browsing the node's local
9298
- * filesystem, sandboxed to operator-configured allowed roots. Used by the
9313
+ * filesystem. Reads are unconfined (whole filesystem, from `/` down); WRITES
9314
+ * are sandboxed to operator-configured allowed roots (D115). Used by the
9299
9315
  * admin "Add filesystem location" flow to pick a node + path. `mode:'per-node'`
9300
9316
  * (one provider per node); the hub calls it with `{nodeId}` so the codegen
9301
9317
  * routes to that exact node (default `nodeIdMode:'routing'`).
@@ -9316,9 +9332,9 @@ var filesystemBrowseCapability = {
9316
9332
  mode: "singleton",
9317
9333
  internal: true,
9318
9334
  methods: {
9319
- /** The allowed roots browsing is sandboxed to on this node. */
9335
+ /** The roots `createDir` is sandboxed to on this node. Browsing is not confined to them. */
9320
9336
  listAllowedRoots: method(z.void(), z.array(z.string()).readonly(), { auth: "admin" }),
9321
- /** Immediate subdirectories of `path` (must be within an allowed root) + free/total bytes. */
9337
+ /** Immediate subdirectories of any absolute `path` + free/total bytes. Read-only. */
9322
9338
  browse: method(z.object({ path: z.string() }), BrowseResultSchema, { auth: "admin" }),
9323
9339
  /** Create a subdirectory (within an allowed root). Returns its absolute path. */
9324
9340
  createDir: method(z.object({ path: z.string() }), z.object({ path: z.string() }), {
@@ -25881,7 +25897,7 @@ var recordingCapability = {
25881
25897
  //#endregion
25882
25898
  //#region src/capabilities/recording-export.cap.ts
25883
25899
  /**
25884
- * `recordingExport` cap — render a footage time range into a single downloadable
25900
+ * `recording-export` cap — render a footage time range into a single downloadable
25885
25901
  * MP4 (regular / accelerated / decelerated / timelapse, ± audio), kept for a
25886
25902
  * bounded lifetime with a durable history, auto-expiry, and optional
25887
25903
  * delete-after-download.
@@ -26032,7 +26048,7 @@ var ExportBytesSchema = z.object({
26032
26048
  bytes: z.number().int().nonnegative()
26033
26049
  });
26034
26050
  var recordingExportCapability = {
26035
- name: "recordingExport",
26051
+ name: "recording-export",
26036
26052
  scope: "system",
26037
26053
  mode: "singleton",
26038
26054
  methods: {
@@ -30947,7 +30963,7 @@ var CAPABILITY_NAMES = {
30947
30963
  ptzAutotrack: "ptz-autotrack",
30948
30964
  reboot: "reboot",
30949
30965
  recording: "recording",
30950
- recordingExport: "recordingExport",
30966
+ recordingExport: "recording-export",
30951
30967
  sceneMonitor: "scene-monitor",
30952
30968
  scriptRunner: "script-runner",
30953
30969
  serverManagement: "server-management",
@@ -31434,7 +31450,7 @@ var CAPABILITY_ROUTER_KEYS = [
31434
31450
  },
31435
31451
  {
31436
31452
  key: "recordingExport",
31437
- name: "recordingExport"
31453
+ name: "recording-export"
31438
31454
  },
31439
31455
  {
31440
31456
  key: "sceneMonitor",
@@ -35949,43 +35965,43 @@ var METHOD_ACCESS_MAP = Object.freeze({
35949
35965
  access: "create"
35950
35966
  },
35951
35967
  "recordingExport.cancelExport": {
35952
- capName: "recordingExport",
35968
+ capName: "recording-export",
35953
35969
  capScope: "system",
35954
35970
  addonId: null,
35955
35971
  access: "create"
35956
35972
  },
35957
35973
  "recordingExport.createExport": {
35958
- capName: "recordingExport",
35974
+ capName: "recording-export",
35959
35975
  capScope: "system",
35960
35976
  addonId: null,
35961
35977
  access: "create"
35962
35978
  },
35963
35979
  "recordingExport.deleteExport": {
35964
- capName: "recordingExport",
35980
+ capName: "recording-export",
35965
35981
  capScope: "system",
35966
35982
  addonId: null,
35967
35983
  access: "delete"
35968
35984
  },
35969
35985
  "recordingExport.getDownloadUrl": {
35970
- capName: "recordingExport",
35986
+ capName: "recording-export",
35971
35987
  capScope: "system",
35972
35988
  addonId: null,
35973
35989
  access: "view"
35974
35990
  },
35975
35991
  "recordingExport.getExport": {
35976
- capName: "recordingExport",
35992
+ capName: "recording-export",
35977
35993
  capScope: "system",
35978
35994
  addonId: null,
35979
35995
  access: "view"
35980
35996
  },
35981
35997
  "recordingExport.listExports": {
35982
- capName: "recordingExport",
35998
+ capName: "recording-export",
35983
35999
  capScope: "system",
35984
36000
  addonId: null,
35985
36001
  access: "view"
35986
36002
  },
35987
36003
  "recordingExport.readExportBytes": {
35988
- capName: "recordingExport",
36004
+ capName: "recording-export",
35989
36005
  capScope: "system",
35990
36006
  addonId: null,
35991
36007
  access: "view"
@@ -37409,7 +37425,7 @@ var KNOWN_CAP_NAMES = [
37409
37425
  "ptz-autotrack",
37410
37426
  "reboot",
37411
37427
  "recording",
37412
- "recordingExport",
37428
+ "recording-export",
37413
37429
  "scene-monitor",
37414
37430
  "script-runner",
37415
37431
  "server-management",
@@ -37553,7 +37569,7 @@ var SYSTEM_CAP_NAMES = [
37553
37569
  "plate-gallery",
37554
37570
  "platform-probe",
37555
37571
  "recording",
37556
- "recordingExport",
37572
+ "recording-export",
37557
37573
  "server-management",
37558
37574
  "settings-store",
37559
37575
  "smtp-provider",
@@ -48,6 +48,7 @@ export declare const StorageLocationSchema: z.ZodObject<{
48
48
  nodeId: z.ZodOptional<z.ZodString>;
49
49
  isDefault: z.ZodDefault<z.ZodBoolean>;
50
50
  isSystem: z.ZodDefault<z.ZodBoolean>;
51
+ enabled: z.ZodOptional<z.ZodBoolean>;
51
52
  capacity: z.ZodOptional<z.ZodNullable<z.ZodObject<{
52
53
  totalBytes: z.ZodNumber;
53
54
  availableBytes: z.ZodNumber;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.61",
3
+ "version": "1.2.63",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",