@camstack/types 1.2.402 → 1.2.404

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 (57) hide show
  1. package/dist/addon.js +2 -2
  2. package/dist/addon.mjs +2 -2
  3. package/dist/auth/credential-scope.d.ts +23 -3
  4. package/dist/auth/viewer-access.d.ts +112 -0
  5. package/dist/capabilities/capability-definition.d.ts +14 -0
  6. package/dist/capabilities/face-gallery.cap.d.ts +3 -0
  7. package/dist/capabilities/index.d.ts +3 -3
  8. package/dist/capabilities/pipeline-analytics.cap.d.ts +82 -0
  9. package/dist/capabilities/pipeline-executor.cap.d.ts +0 -64
  10. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +32 -124
  11. package/dist/capabilities/plate-gallery.cap.d.ts +3 -0
  12. package/dist/capabilities/scene-monitor.cap.d.ts +3 -0
  13. package/dist/capabilities/training.cap.d.ts +91 -71
  14. package/dist/capabilities/user-management.cap.d.ts +108 -18
  15. package/dist/client.js +9 -8
  16. package/dist/client.mjs +9 -8
  17. package/dist/clips/clip-event-labels.d.ts +96 -0
  18. package/dist/device/cap-vocabulary/entries/actuators.d.ts +5 -0
  19. package/dist/device/cap-vocabulary/entries/appliances.d.ts +5 -0
  20. package/dist/device/cap-vocabulary/entries/camera.d.ts +5 -0
  21. package/dist/device/cap-vocabulary/entries/sensors.d.ts +5 -0
  22. package/dist/device/cap-vocabulary/entries/system.d.ts +8 -0
  23. package/dist/device/cap-vocabulary/index.d.ts +9 -0
  24. package/dist/device/cap-vocabulary/l10n.d.ts +7 -0
  25. package/dist/device/cap-vocabulary/resolve.d.ts +100 -0
  26. package/dist/device/cap-vocabulary/templates.d.ts +11 -0
  27. package/dist/device/cap-vocabulary/types.d.ts +398 -0
  28. package/dist/device/cap-vocabulary/vocabulary.d.ts +5 -0
  29. package/dist/device/device-do-actions.d.ts +8 -2
  30. package/dist/enums/event-category.d.ts +2 -3
  31. package/dist/enums.js +1 -1
  32. package/dist/enums.mjs +1 -1
  33. package/dist/{event-category-7AwNbPjm.js → event-category-CXrwjC3e.js} +2 -3
  34. package/dist/{event-category-BfJwUd2S.mjs → event-category-fDPduoeC.mjs} +2 -3
  35. package/dist/generated/addon-api.d.ts +52 -56
  36. package/dist/generated/device-proxy.d.ts +1 -1
  37. package/dist/generated/method-access-map.d.ts +4 -1
  38. package/dist/generated/method-device-selectors.d.ts +2 -2
  39. package/dist/generated/system-proxy.d.ts +3 -3
  40. package/dist/index.d.ts +8 -3
  41. package/dist/index.js +7406 -2133
  42. package/dist/index.mjs +7372 -2132
  43. package/dist/interfaces/api-responses.d.ts +1 -1
  44. package/dist/interfaces/auth.d.ts +2 -2
  45. package/dist/interfaces/birth-decision-ledger.d.ts +20 -0
  46. package/dist/interfaces/pipeline-executor-capability.d.ts +2 -8
  47. package/dist/pipeline/auto-tune/plan-schemas.d.ts +8 -80
  48. package/dist/pipeline/step-settings-layers.d.ts +7 -8
  49. package/dist/schemas/auth-records.d.ts +77 -13
  50. package/dist/schemas/device-selector.d.ts +23 -4
  51. package/dist/{sleep-DVovpDRU.js → sleep-BKS4OPMo.js} +2 -4
  52. package/dist/{sleep-CUp20JkO.mjs → sleep-CHIEEJkY.mjs} +2 -4
  53. package/dist/types/agent-pipeline-settings.d.ts +37 -70
  54. package/dist/types/camera-pipeline.d.ts +2 -2
  55. package/dist/types/detection.d.ts +19 -0
  56. package/dist/types/pipeline-step.d.ts +0 -16
  57. package/package.json +1 -1
@@ -6,7 +6,17 @@ declare const UserSummarySchema: z.ZodObject<{
6
6
  isAdmin: z.ZodDefault<z.ZodBoolean>;
7
7
  allowedProviders: z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>;
8
8
  allowedDevices: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>;
9
- scopes: z.ZodDefault<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
9
+ scopes: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
10
+ type: z.ZodLiteral<"viewer">;
11
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
12
+ block: z.ZodArray<z.ZodNumber>;
13
+ features: z.ZodArray<z.ZodEnum<{
14
+ "face-assignment": "face-assignment";
15
+ "plate-assignment": "plate-assignment";
16
+ retrain: "retrain";
17
+ scenes: "scenes";
18
+ }>>;
19
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
10
20
  type: z.ZodLiteral<"category">;
11
21
  target: z.ZodEnum<{
12
22
  device: "device";
@@ -53,7 +63,7 @@ declare const UserSummarySchema: z.ZodObject<{
53
63
  view: "view";
54
64
  }>>;
55
65
  includeLinked: z.ZodOptional<z.ZodBoolean>;
56
- }, z.core.$strip>], "type">>>>;
66
+ }, z.core.$strip>], "type">>]>>>;
57
67
  totpEnabled: z.ZodDefault<z.ZodBoolean>;
58
68
  createdAt: z.ZodNumber;
59
69
  updatedAt: z.ZodNumber;
@@ -64,7 +74,17 @@ declare const CreateUserInputSchema: z.ZodObject<{
64
74
  isAdmin: z.ZodDefault<z.ZodBoolean>;
65
75
  allowedProviders: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>;
66
76
  allowedDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>>;
67
- scopes: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
77
+ scopes: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
78
+ type: z.ZodLiteral<"viewer">;
79
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
80
+ block: z.ZodArray<z.ZodNumber>;
81
+ features: z.ZodArray<z.ZodEnum<{
82
+ "face-assignment": "face-assignment";
83
+ "plate-assignment": "plate-assignment";
84
+ retrain: "retrain";
85
+ scenes: "scenes";
86
+ }>>;
87
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
68
88
  type: z.ZodLiteral<"category">;
69
89
  target: z.ZodEnum<{
70
90
  device: "device";
@@ -111,14 +131,24 @@ declare const CreateUserInputSchema: z.ZodObject<{
111
131
  view: "view";
112
132
  }>>;
113
133
  includeLinked: z.ZodOptional<z.ZodBoolean>;
114
- }, z.core.$strip>], "type">>>>;
134
+ }, z.core.$strip>], "type">>]>>>;
115
135
  }, z.core.$strip>;
116
136
  declare const UpdateUserInputSchema: z.ZodObject<{
117
137
  id: z.ZodString;
118
138
  isAdmin: z.ZodOptional<z.ZodBoolean>;
119
139
  allowedProviders: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>;
120
140
  allowedDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>>;
121
- scopes: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
141
+ scopes: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
142
+ type: z.ZodLiteral<"viewer">;
143
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
144
+ block: z.ZodArray<z.ZodNumber>;
145
+ features: z.ZodArray<z.ZodEnum<{
146
+ "face-assignment": "face-assignment";
147
+ "plate-assignment": "plate-assignment";
148
+ retrain: "retrain";
149
+ scenes: "scenes";
150
+ }>>;
151
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
122
152
  type: z.ZodLiteral<"category">;
123
153
  target: z.ZodEnum<{
124
154
  device: "device";
@@ -165,7 +195,7 @@ declare const UpdateUserInputSchema: z.ZodObject<{
165
195
  view: "view";
166
196
  }>>;
167
197
  includeLinked: z.ZodOptional<z.ZodBoolean>;
168
- }, z.core.$strip>], "type">>>>;
198
+ }, z.core.$strip>], "type">>]>>>;
169
199
  }, z.core.$strip>;
170
200
  declare const OauthSessionSummarySchema: z.ZodObject<{
171
201
  id: z.ZodString;
@@ -256,7 +286,17 @@ export declare const userManagementCapability: {
256
286
  isAdmin: z.ZodDefault<z.ZodBoolean>;
257
287
  allowedProviders: z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>;
258
288
  allowedDevices: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>;
259
- scopes: z.ZodDefault<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
289
+ scopes: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
290
+ type: z.ZodLiteral<"viewer">;
291
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
292
+ block: z.ZodArray<z.ZodNumber>;
293
+ features: z.ZodArray<z.ZodEnum<{
294
+ "face-assignment": "face-assignment";
295
+ "plate-assignment": "plate-assignment";
296
+ retrain: "retrain";
297
+ scenes: "scenes";
298
+ }>>;
299
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
260
300
  type: z.ZodLiteral<"category">;
261
301
  target: z.ZodEnum<{
262
302
  device: "device";
@@ -303,7 +343,7 @@ export declare const userManagementCapability: {
303
343
  view: "view";
304
344
  }>>;
305
345
  includeLinked: z.ZodOptional<z.ZodBoolean>;
306
- }, z.core.$strip>], "type">>>>;
346
+ }, z.core.$strip>], "type">>]>>>;
307
347
  totpEnabled: z.ZodDefault<z.ZodBoolean>;
308
348
  createdAt: z.ZodNumber;
309
349
  updatedAt: z.ZodNumber;
@@ -314,7 +354,17 @@ export declare const userManagementCapability: {
314
354
  isAdmin: z.ZodDefault<z.ZodBoolean>;
315
355
  allowedProviders: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>;
316
356
  allowedDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>>;
317
- scopes: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
357
+ scopes: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
358
+ type: z.ZodLiteral<"viewer">;
359
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
360
+ block: z.ZodArray<z.ZodNumber>;
361
+ features: z.ZodArray<z.ZodEnum<{
362
+ "face-assignment": "face-assignment";
363
+ "plate-assignment": "plate-assignment";
364
+ retrain: "retrain";
365
+ scenes: "scenes";
366
+ }>>;
367
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
318
368
  type: z.ZodLiteral<"category">;
319
369
  target: z.ZodEnum<{
320
370
  device: "device";
@@ -361,14 +411,24 @@ export declare const userManagementCapability: {
361
411
  view: "view";
362
412
  }>>;
363
413
  includeLinked: z.ZodOptional<z.ZodBoolean>;
364
- }, z.core.$strip>], "type">>>>;
414
+ }, z.core.$strip>], "type">>]>>>;
365
415
  }, z.core.$strip>, z.ZodObject<{
366
416
  id: z.ZodString;
367
417
  username: z.ZodString;
368
418
  isAdmin: z.ZodDefault<z.ZodBoolean>;
369
419
  allowedProviders: z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>;
370
420
  allowedDevices: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>;
371
- scopes: z.ZodDefault<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
421
+ scopes: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
422
+ type: z.ZodLiteral<"viewer">;
423
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
424
+ block: z.ZodArray<z.ZodNumber>;
425
+ features: z.ZodArray<z.ZodEnum<{
426
+ "face-assignment": "face-assignment";
427
+ "plate-assignment": "plate-assignment";
428
+ retrain: "retrain";
429
+ scenes: "scenes";
430
+ }>>;
431
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
372
432
  type: z.ZodLiteral<"category">;
373
433
  target: z.ZodEnum<{
374
434
  device: "device";
@@ -415,7 +475,7 @@ export declare const userManagementCapability: {
415
475
  view: "view";
416
476
  }>>;
417
477
  includeLinked: z.ZodOptional<z.ZodBoolean>;
418
- }, z.core.$strip>], "type">>>>;
478
+ }, z.core.$strip>], "type">>]>>>;
419
479
  totpEnabled: z.ZodDefault<z.ZodBoolean>;
420
480
  createdAt: z.ZodNumber;
421
481
  updatedAt: z.ZodNumber;
@@ -425,7 +485,17 @@ export declare const userManagementCapability: {
425
485
  isAdmin: z.ZodOptional<z.ZodBoolean>;
426
486
  allowedProviders: z.ZodOptional<z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>;
427
487
  allowedDevices: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>>;
428
- scopes: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
488
+ scopes: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
489
+ type: z.ZodLiteral<"viewer">;
490
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
491
+ block: z.ZodArray<z.ZodNumber>;
492
+ features: z.ZodArray<z.ZodEnum<{
493
+ "face-assignment": "face-assignment";
494
+ "plate-assignment": "plate-assignment";
495
+ retrain: "retrain";
496
+ scenes: "scenes";
497
+ }>>;
498
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
429
499
  type: z.ZodLiteral<"category">;
430
500
  target: z.ZodEnum<{
431
501
  device: "device";
@@ -472,7 +542,7 @@ export declare const userManagementCapability: {
472
542
  view: "view";
473
543
  }>>;
474
544
  includeLinked: z.ZodOptional<z.ZodBoolean>;
475
- }, z.core.$strip>], "type">>>>;
545
+ }, z.core.$strip>], "type">>]>>>;
476
546
  }, z.core.$strip>, z.ZodObject<{
477
547
  success: z.ZodLiteral<true>;
478
548
  }, z.core.$strip>, "mutation">;
@@ -489,7 +559,17 @@ export declare const userManagementCapability: {
489
559
  }, z.core.$strip>, "mutation">;
490
560
  readonly setUserScopes: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
491
561
  userId: z.ZodString;
492
- scopes: z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
562
+ scopes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
563
+ type: z.ZodLiteral<"viewer">;
564
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
565
+ block: z.ZodArray<z.ZodNumber>;
566
+ features: z.ZodArray<z.ZodEnum<{
567
+ "face-assignment": "face-assignment";
568
+ "plate-assignment": "plate-assignment";
569
+ retrain: "retrain";
570
+ scenes: "scenes";
571
+ }>>;
572
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
493
573
  type: z.ZodLiteral<"category">;
494
574
  target: z.ZodEnum<{
495
575
  device: "device";
@@ -536,7 +616,7 @@ export declare const userManagementCapability: {
536
616
  view: "view";
537
617
  }>>;
538
618
  includeLinked: z.ZodOptional<z.ZodBoolean>;
539
- }, z.core.$strip>], "type">>>;
619
+ }, z.core.$strip>], "type">>]>>;
540
620
  }, z.core.$strip>, z.ZodObject<{
541
621
  success: z.ZodLiteral<true>;
542
622
  }, z.core.$strip>, "mutation">;
@@ -549,7 +629,17 @@ export declare const userManagementCapability: {
549
629
  isAdmin: z.ZodDefault<z.ZodBoolean>;
550
630
  allowedProviders: z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>;
551
631
  allowedDevices: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodLiteral<"*">]>>;
552
- scopes: z.ZodDefault<z.ZodArray<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
632
+ scopes: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
633
+ type: z.ZodLiteral<"viewer">;
634
+ allow: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodNumber>]>;
635
+ block: z.ZodArray<z.ZodNumber>;
636
+ features: z.ZodArray<z.ZodEnum<{
637
+ "face-assignment": "face-assignment";
638
+ "plate-assignment": "plate-assignment";
639
+ retrain: "retrain";
640
+ scenes: "scenes";
641
+ }>>;
642
+ }, z.core.$strip>, z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
553
643
  type: z.ZodLiteral<"category">;
554
644
  target: z.ZodEnum<{
555
645
  device: "device";
@@ -596,7 +686,7 @@ export declare const userManagementCapability: {
596
686
  view: "view";
597
687
  }>>;
598
688
  includeLinked: z.ZodOptional<z.ZodBoolean>;
599
- }, z.core.$strip>], "type">>>>;
689
+ }, z.core.$strip>], "type">>]>>>;
600
690
  totpEnabled: z.ZodDefault<z.ZodBoolean>;
601
691
  createdAt: z.ZodNumber;
602
692
  updatedAt: z.ZodNumber;
package/dist/client.js CHANGED
@@ -997,6 +997,7 @@ function method(input, output, options) {
997
997
  kind: options?.kind ?? "query",
998
998
  ...options?.auth !== void 0 ? { auth: options.auth } : {},
999
999
  ...options?.access !== void 0 ? { access: options.access } : {},
1000
+ ...options?.role !== void 0 ? { role: options.role } : {},
1000
1001
  ...options?.caller !== void 0 ? { caller: options.caller } : {},
1001
1002
  timeoutMs: options?.timeoutMs
1002
1003
  };
@@ -25805,21 +25806,27 @@ method(zod.z.object({
25805
25806
  path: ["profiles"]
25806
25807
  });
25807
25808
  }), ExportRecordSchema, {
25809
+ role: "viewer",
25808
25810
  kind: "mutation",
25809
25811
  auth: "protected"
25810
25812
  }), method(zod.z.object({ deviceId: zod.z.number().optional() }), zod.z.array(ExportRecordSchema), {
25813
+ role: "viewer",
25811
25814
  kind: "query",
25812
25815
  auth: "protected"
25813
25816
  }), method(zod.z.object({ exportId: zod.z.string() }), ExportRecordSchema, {
25817
+ role: "viewer",
25814
25818
  kind: "query",
25815
25819
  auth: "protected"
25816
25820
  }), method(zod.z.object({ exportId: zod.z.string() }), ExportRecordSchema, {
25821
+ role: "viewer",
25817
25822
  kind: "mutation",
25818
25823
  auth: "protected"
25819
25824
  }), method(zod.z.object({ exportId: zod.z.string() }), ExportRecordSchema, {
25825
+ role: "viewer",
25820
25826
  kind: "mutation",
25821
25827
  auth: "protected"
25822
25828
  }), method(zod.z.object({ exportId: zod.z.string() }), ExportDownloadSchema, {
25829
+ role: "viewer",
25823
25830
  kind: "query",
25824
25831
  auth: "protected"
25825
25832
  }), method(zod.z.object({ exportId: zod.z.string() }), ExportBytesSchema, {
@@ -26726,10 +26733,7 @@ function createDeviceProxy(api, binding, opts) {
26726
26733
  setCameraStepToggle: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepToggle", "mutation", input),
26727
26734
  getCameraDetectionSource: (input) => dispatchSystem("pipelineOrchestrator", "getCameraDetectionSource", "query", input),
26728
26735
  setCameraDetectionSource: (input) => dispatchSystem("pipelineOrchestrator", "setCameraDetectionSource", "mutation", input),
26729
- getCameraStepOverrides: (input) => dispatchSystem("pipelineOrchestrator", "getCameraStepOverrides", "query", input),
26730
- setCameraStepOverride: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepOverride", "mutation", input),
26731
26736
  setCameraStepSettings: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepSettings", "mutation", input),
26732
- setCameraPipelineForAgent: (input) => dispatchSystem("pipelineOrchestrator", "setCameraPipelineForAgent", "mutation", input),
26733
26737
  resolvePipeline: (input) => dispatchSystem("pipelineOrchestrator", "resolvePipeline", "query", input),
26734
26738
  getCameraSwitches: (input) => dispatchSystem("pipelineOrchestrator", "getCameraSwitches", "query", input),
26735
26739
  setCameraSwitch: (input) => dispatchSystem("pipelineOrchestrator", "setCameraSwitch", "mutation", input),
@@ -28121,17 +28125,12 @@ function createSystemProxy(api) {
28121
28125
  pipelineExecutor: {
28122
28126
  getAvailableEngines: (input) => dispatch("pipelineExecutor", "getAvailableEngines", "query", input),
28123
28127
  getSelectedEngine: (input) => dispatch("pipelineExecutor", "getSelectedEngine", "query", input),
28124
- getDefaultSteps: (input) => dispatch("pipelineExecutor", "getDefaultSteps", "query", input),
28125
28128
  getEngineProvisioning: (input) => dispatch("pipelineExecutor", "getEngineProvisioning", "query", input),
28126
28129
  getVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "getVideoPipelineSteps", "query", input),
28127
28130
  setVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "setVideoPipelineSteps", "mutation", input),
28128
- clearDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearDeviceOverrides", "mutation", input),
28129
- clearModelBoundDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearModelBoundDeviceOverrides", "mutation", input),
28130
28131
  getInferenceDeviceHealth: (input) => dispatch("pipelineExecutor", "getInferenceDeviceHealth", "query", input),
28131
28132
  rearmInferenceDevice: (input) => dispatch("pipelineExecutor", "rearmInferenceDevice", "mutation", input),
28132
28133
  getSchema: (input) => dispatch("pipelineExecutor", "getSchema", "query", input),
28133
- getGlobalSteps: (input) => dispatch("pipelineExecutor", "getGlobalSteps", "query", input),
28134
- getGlobalPipelineConfig: (input) => dispatch("pipelineExecutor", "getGlobalPipelineConfig", "query", input),
28135
28134
  getOrchestratorConfigSchema: (input) => dispatch("pipelineExecutor", "getOrchestratorConfigSchema", "query", input),
28136
28135
  validatePipeline: (input) => dispatch("pipelineExecutor", "validatePipeline", "query", input),
28137
28136
  getCapabilities: (input) => dispatch("pipelineExecutor", "getCapabilities", "query", input),
@@ -28175,6 +28174,7 @@ function createSystemProxy(api) {
28175
28174
  setAgentDecodeLimits: (input) => dispatch("pipelineOrchestrator", "setAgentDecodeLimits", "mutation", input),
28176
28175
  setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
28177
28176
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
28177
+ setNodeStepSettings: (input) => dispatch("pipelineOrchestrator", "setNodeStepSettings", "mutation", input),
28178
28178
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
28179
28179
  forgetInferenceDevice: (input) => dispatch("pipelineOrchestrator", "forgetInferenceDevice", "mutation", input),
28180
28180
  resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
@@ -28395,6 +28395,7 @@ function createSystemProxy(api) {
28395
28395
  getJob: (input) => dispatch("training", "getJob", "query", input),
28396
28396
  cancelJob: (input) => dispatch("training", "cancelJob", "mutation", input),
28397
28397
  getJobResult: (input) => dispatch("training", "getJobResult", "query", input),
28398
+ listCanaryTargets: (input) => dispatch("training", "listCanaryTargets", "query", input),
28398
28399
  registerResult: (input) => dispatch("training", "registerResult", "mutation", input),
28399
28400
  canaryResult: (input) => dispatch("training", "canaryResult", "mutation", input),
28400
28401
  rollbackCanary: (input) => dispatch("training", "rollbackCanary", "mutation", input),
package/dist/client.mjs CHANGED
@@ -996,6 +996,7 @@ function method(input, output, options) {
996
996
  kind: options?.kind ?? "query",
997
997
  ...options?.auth !== void 0 ? { auth: options.auth } : {},
998
998
  ...options?.access !== void 0 ? { access: options.access } : {},
999
+ ...options?.role !== void 0 ? { role: options.role } : {},
999
1000
  ...options?.caller !== void 0 ? { caller: options.caller } : {},
1000
1001
  timeoutMs: options?.timeoutMs
1001
1002
  };
@@ -25804,21 +25805,27 @@ method(z.object({
25804
25805
  path: ["profiles"]
25805
25806
  });
25806
25807
  }), ExportRecordSchema, {
25808
+ role: "viewer",
25807
25809
  kind: "mutation",
25808
25810
  auth: "protected"
25809
25811
  }), method(z.object({ deviceId: z.number().optional() }), z.array(ExportRecordSchema), {
25812
+ role: "viewer",
25810
25813
  kind: "query",
25811
25814
  auth: "protected"
25812
25815
  }), method(z.object({ exportId: z.string() }), ExportRecordSchema, {
25816
+ role: "viewer",
25813
25817
  kind: "query",
25814
25818
  auth: "protected"
25815
25819
  }), method(z.object({ exportId: z.string() }), ExportRecordSchema, {
25820
+ role: "viewer",
25816
25821
  kind: "mutation",
25817
25822
  auth: "protected"
25818
25823
  }), method(z.object({ exportId: z.string() }), ExportRecordSchema, {
25824
+ role: "viewer",
25819
25825
  kind: "mutation",
25820
25826
  auth: "protected"
25821
25827
  }), method(z.object({ exportId: z.string() }), ExportDownloadSchema, {
25828
+ role: "viewer",
25822
25829
  kind: "query",
25823
25830
  auth: "protected"
25824
25831
  }), method(z.object({ exportId: z.string() }), ExportBytesSchema, {
@@ -26725,10 +26732,7 @@ function createDeviceProxy(api, binding, opts) {
26725
26732
  setCameraStepToggle: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepToggle", "mutation", input),
26726
26733
  getCameraDetectionSource: (input) => dispatchSystem("pipelineOrchestrator", "getCameraDetectionSource", "query", input),
26727
26734
  setCameraDetectionSource: (input) => dispatchSystem("pipelineOrchestrator", "setCameraDetectionSource", "mutation", input),
26728
- getCameraStepOverrides: (input) => dispatchSystem("pipelineOrchestrator", "getCameraStepOverrides", "query", input),
26729
- setCameraStepOverride: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepOverride", "mutation", input),
26730
26735
  setCameraStepSettings: (input) => dispatchSystem("pipelineOrchestrator", "setCameraStepSettings", "mutation", input),
26731
- setCameraPipelineForAgent: (input) => dispatchSystem("pipelineOrchestrator", "setCameraPipelineForAgent", "mutation", input),
26732
26736
  resolvePipeline: (input) => dispatchSystem("pipelineOrchestrator", "resolvePipeline", "query", input),
26733
26737
  getCameraSwitches: (input) => dispatchSystem("pipelineOrchestrator", "getCameraSwitches", "query", input),
26734
26738
  setCameraSwitch: (input) => dispatchSystem("pipelineOrchestrator", "setCameraSwitch", "mutation", input),
@@ -28120,17 +28124,12 @@ function createSystemProxy(api) {
28120
28124
  pipelineExecutor: {
28121
28125
  getAvailableEngines: (input) => dispatch("pipelineExecutor", "getAvailableEngines", "query", input),
28122
28126
  getSelectedEngine: (input) => dispatch("pipelineExecutor", "getSelectedEngine", "query", input),
28123
- getDefaultSteps: (input) => dispatch("pipelineExecutor", "getDefaultSteps", "query", input),
28124
28127
  getEngineProvisioning: (input) => dispatch("pipelineExecutor", "getEngineProvisioning", "query", input),
28125
28128
  getVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "getVideoPipelineSteps", "query", input),
28126
28129
  setVideoPipelineSteps: (input) => dispatch("pipelineExecutor", "setVideoPipelineSteps", "mutation", input),
28127
- clearDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearDeviceOverrides", "mutation", input),
28128
- clearModelBoundDeviceOverrides: (input) => dispatch("pipelineExecutor", "clearModelBoundDeviceOverrides", "mutation", input),
28129
28130
  getInferenceDeviceHealth: (input) => dispatch("pipelineExecutor", "getInferenceDeviceHealth", "query", input),
28130
28131
  rearmInferenceDevice: (input) => dispatch("pipelineExecutor", "rearmInferenceDevice", "mutation", input),
28131
28132
  getSchema: (input) => dispatch("pipelineExecutor", "getSchema", "query", input),
28132
- getGlobalSteps: (input) => dispatch("pipelineExecutor", "getGlobalSteps", "query", input),
28133
- getGlobalPipelineConfig: (input) => dispatch("pipelineExecutor", "getGlobalPipelineConfig", "query", input),
28134
28133
  getOrchestratorConfigSchema: (input) => dispatch("pipelineExecutor", "getOrchestratorConfigSchema", "query", input),
28135
28134
  validatePipeline: (input) => dispatch("pipelineExecutor", "validatePipeline", "query", input),
28136
28135
  getCapabilities: (input) => dispatch("pipelineExecutor", "getCapabilities", "query", input),
@@ -28174,6 +28173,7 @@ function createSystemProxy(api) {
28174
28173
  setAgentDecodeLimits: (input) => dispatch("pipelineOrchestrator", "setAgentDecodeLimits", "mutation", input),
28175
28174
  setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
28176
28175
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
28176
+ setNodeStepSettings: (input) => dispatch("pipelineOrchestrator", "setNodeStepSettings", "mutation", input),
28177
28177
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
28178
28178
  forgetInferenceDevice: (input) => dispatch("pipelineOrchestrator", "forgetInferenceDevice", "mutation", input),
28179
28179
  resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
@@ -28394,6 +28394,7 @@ function createSystemProxy(api) {
28394
28394
  getJob: (input) => dispatch("training", "getJob", "query", input),
28395
28395
  cancelJob: (input) => dispatch("training", "cancelJob", "mutation", input),
28396
28396
  getJobResult: (input) => dispatch("training", "getJobResult", "query", input),
28397
+ listCanaryTargets: (input) => dispatch("training", "listCanaryTargets", "query", input),
28397
28398
  registerResult: (input) => dispatch("training", "registerResult", "mutation", input),
28398
28399
  canaryResult: (input) => dispatch("training", "canaryResult", "mutation", input),
28399
28400
  rollbackCanary: (input) => dispatch("training", "rollbackCanary", "mutation", input),
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Which of OUR object detections a clip window holds — the ONE overlap rule
3
+ * and the ONE label ranking, for every clip source (D923).
4
+ *
5
+ * The recorder's visits (`videoclip-visits.ts`) were the only clips labelled
6
+ * by CamStack's detections; a clip the CAMERA recorded (Hikvision, Reolink,
7
+ * Amcrest onboard storage) carried only what its firmware said, so a person
8
+ * our pipeline saw inside a native clip never showed on it. The rule that
9
+ * attaches an event to a window lives here so the visits and the native rows
10
+ * cannot attach by two slightly different rules.
11
+ *
12
+ * Pure, except {@link withClipEventLabels}, which only composes a provider's
13
+ * own `listClips` with a fetch the provider's addon supplies (`ctx.api` —
14
+ * addons never import each other). It runs in the PROVIDER, never in the cap
15
+ * mount: a mount routes, it does not compose addon output with other state.
16
+ */
17
+ import { type Clip, type IVideoclipsProvider } from '../capabilities/videoclips.cap.js';
18
+ import type { IScopedLogger } from '../interfaces/logging.js';
19
+ /** A time window a clip covers. */
20
+ export interface ClipEventWindow {
21
+ readonly startMs: number;
22
+ readonly endMs: number;
23
+ }
24
+ /** The pad an event is widened by before it is tested against a window. */
25
+ export interface ClipEventPad {
26
+ readonly preMs: number;
27
+ readonly postMs: number;
28
+ }
29
+ /** The two fields of an object event the join reads. */
30
+ export interface ClipObjectEvent {
31
+ readonly timestamp: number;
32
+ readonly className?: string;
33
+ }
34
+ /**
35
+ * Does an event at `timestamp` belong to `window`? Inside it, or its padded
36
+ * window (`timestamp − preMs … timestamp + postMs`) crosses it.
37
+ */
38
+ export declare function eventOverlapsClipWindow(timestamp: number, window: ClipEventWindow, pad: ClipEventPad): boolean;
39
+ /**
40
+ * The distinct object classes among `events`, most frequent first, capped at
41
+ * {@link MAX_CLIP_LABELS}. Empty when nothing classified is there — the caller
42
+ * then omits the field rather than carrying an empty array.
43
+ */
44
+ export declare function dominantClipLabels(events: readonly ClipObjectEvent[]): string[];
45
+ /** Our labels for one window: the overlapping events, ranked. */
46
+ export declare function clipLabelsForWindow(window: ClipEventWindow, events: readonly ClipObjectEvent[], pad: ClipEventPad): string[];
47
+ /**
48
+ * A row's labels once ours are joined: the source's own first (it named its
49
+ * own clip, and `nativeTypes` keeps its unmapped words), then ours that it did
50
+ * not already say, capped at {@link MAX_CLIP_LABELS}.
51
+ */
52
+ export declare function mergeClipLabels(own: readonly string[] | undefined, ours: readonly string[]): string[];
53
+ /** Backstop on the event read behind one listing; hitting it is logged. */
54
+ export declare const CLIP_LABEL_EVENT_FETCH_LIMIT = 5000;
55
+ /** What a provider's addon supplies for the join. */
56
+ export interface ClipEventLabelDeps {
57
+ readonly pad: ClipEventPad;
58
+ /** Our object events for the device in `[since, until]` — `ctx.api`. */
59
+ fetchObjectEvents(input: {
60
+ readonly deviceId: number;
61
+ readonly since: number;
62
+ readonly until: number;
63
+ readonly limit: number;
64
+ }): Promise<readonly ClipObjectEvent[]>;
65
+ readonly logger: Pick<IScopedLogger, 'info' | 'warn'>;
66
+ }
67
+ /**
68
+ * Join our object events onto a listing. A read that FAILS changes nothing
69
+ * (D49): the rows go out as the source listed them, and the line says so.
70
+ */
71
+ export declare function annotateClipsWithEventLabels(deviceId: number, clips: readonly Clip[], deps: ClipEventLabelDeps): Promise<readonly Clip[]>;
72
+ /** The one read the join needs, as an addon's `ctx.api` serves it. */
73
+ export interface ClipObjectEventsApi {
74
+ readonly pipelineAnalytics: {
75
+ readonly getObjectEvents: {
76
+ query(input: {
77
+ readonly deviceId: number;
78
+ readonly since: number;
79
+ readonly until: number;
80
+ readonly limit: number;
81
+ readonly projection: 'slim';
82
+ }): Promise<readonly ClipObjectEvent[]>;
83
+ };
84
+ };
85
+ }
86
+ /**
87
+ * The join's deps from an addon's own `ctx.api` and logger, with the
88
+ * canonical event pad the recorder's visits use (`EVENT_PAD_MS`) — one place,
89
+ * so every native provider asks the same question.
90
+ */
91
+ export declare function clipEventLabelDepsFromApi(api: ClipObjectEventsApi, logger: Pick<IScopedLogger, 'info' | 'warn'>): ClipEventLabelDeps;
92
+ /**
93
+ * The provider, with our detections joined onto every listing it answers.
94
+ * Every other method is the provider's own.
95
+ */
96
+ export declare function withClipEventLabels(provider: IVideoclipsProvider, deps: ClipEventLabelDeps): IVideoclipsProvider;
@@ -0,0 +1,5 @@
1
+ import type { CapVocabularySlice } from '../types.js';
2
+ type ActuatorCap = 'switch' | 'brightness' | 'color' | 'cover' | 'valve' | 'lock-control' | 'climate-control' | 'fan-control' | 'humidifier' | 'water-heater' | 'heating-valve' | 'alarm-panel' | 'button' | 'control' | 'motion-trigger';
3
+ /** The actuator family of the vocabulary. */
4
+ export declare const ACTUATOR_CAP_VOCABULARY: CapVocabularySlice<ActuatorCap>;
5
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { CapVocabularySlice } from '../types.js';
2
+ type ApplianceCap = 'vacuum-control' | 'lawn-mower-control' | 'dishwasher' | 'pet-feeder' | 'media-player' | 'consumables' | 'navigation' | 'script-runner' | 'automation-control' | 'notifier' | 'update';
3
+ /** The appliance family of the vocabulary. */
4
+ export declare const APPLIANCE_CAP_VOCABULARY: CapVocabularySlice<ApplianceCap>;
5
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { CapVocabularySlice } from '../types.js';
2
+ type CameraCap = 'accessories' | 'audio-analysis' | 'audio-metrics' | 'camera-credentials' | 'camera-grid-layout' | 'camera-pipeline-config' | 'camera-streams' | 'day-night' | 'detection-pipeline' | 'device-admin-link' | 'device-discovery' | 'device-extension' | 'device-ops' | 'feature-probe' | 'image' | 'image-settings' | 'intercom' | 'motion-detection' | 'motion-zones' | 'native-object-detection' | 'osd' | 'pipeline-analytics' | 'privacy-mask' | 'ptz' | 'ptz-autotrack' | 'reboot' | 'recording' | 'recording-onboard' | 'recording-signal' | 'scene-monitor' | 'snapshot' | 'stream-catalog' | 'stream-params' | 'stream-signals' | 'videoclips' | 'webrtc-session' | 'zone-analytics' | 'zone-rules' | 'zones';
3
+ /** The camera and platform family of the vocabulary. */
4
+ export declare const CAMERA_CAP_VOCABULARY: CapVocabularySlice<CameraCap>;
5
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { CapVocabularySlice } from '../types.js';
2
+ type SensorCap = 'air-quality-sensor' | 'ambient-light-sensor' | 'binary' | 'carbon-monoxide' | 'connectivity' | 'contact' | 'enum-sensor' | 'flood' | 'gas' | 'humidity-sensor' | 'motion' | 'numeric-sensor' | 'power-meter' | 'presence' | 'pressure-sensor' | 'smoke' | 'tamper' | 'temperature-sensor' | 'vibration' | 'weather' | 'battery' | 'network-link' | 'device-status' | 'doorbell' | 'event-emitter';
3
+ /** The sensor family of the vocabulary. */
4
+ export declare const SENSOR_CAP_VOCABULARY: CapVocabularySlice<SensorCap>;
5
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * System-scoped caps. None is part of a DEVICE's vocabulary: they are the
3
+ * cluster's own machinery, administered from their own pages. Each still has
4
+ * an entry, so a new cap is a decision rather than an omission.
5
+ */
6
+ import type { CapVocabularySlice, SystemVocabCapName } from '../types.js';
7
+ /** Every system-scoped cap, with why it is not a device's vocabulary. */
8
+ export declare const SYSTEM_CAP_VOCABULARY: CapVocabularySlice<SystemVocabCapName>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The cap vocabulary (D920) — what every capability lets an operator DO to a
3
+ * device and WATCH it for, in one cap-keyed map outside the caps.
4
+ */
5
+ export type { ResolvedBooleanTrigger, ResolvedEnumTrigger, ResolvedEnumValue, ResolvedEventTrigger, ResolvedNumericTrigger, ResolvedValueTrigger, ResolvedVocabAction, ResolvedVocabTrigger, VocabBindingsInput, } from './resolve.js';
6
+ export { actionsForDevice, renderVocabPhrase, triggersForDevice, } from './resolve.js';
7
+ export { VOCAB_TEMPLATES } from './templates.js';
8
+ export type { ActionArgKey, ActionArgs, BooleanOffer, CapEventName, CapMethodName, CapStatusField, CapVocabularyEntry, CapVocabularyMap, CapVocabularySlice, DeviceCapVocabulary, DeviceVocabCapName, DynamicOffer, EnumOffer, EnumStateValue, L10n, LooseCapVocabularyEntry, LooseDynamicOffer, LooseVocabAction, LooseVocabOffer, LooseVocabOpenArg, LooseVocabStateTrigger, NumberOffer, SystemCapVocabulary, SystemVocabCapName, TextOffer, VocabAction, VocabCapName, VocabChoice, VocabEventTrigger, VocabIcon, VocabLocale, VocabOffer, VocabOpenArg, VocabStateTrigger, } from './types.js';
9
+ export { CAP_VOCABULARY, CAP_VOCABULARY_BY_NAME } from './vocabulary.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The one way the vocabulary writes a human string: English and Italian side
3
+ * by side, so neither language can be forgotten in a diff.
4
+ */
5
+ import type { L10n } from './types.js';
6
+ /** A string in English and Italian. */
7
+ export declare function t(en: string, it: string): L10n;