@camstack/addon-model-studio 1.1.183 → 1.1.185

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 (18) hide show
  1. package/dist/{MotionZonesSettings-D5fe7czg.mjs → MotionZonesSettings-BMBdBynK.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-C2hylmd3.mjs → PrivacyMaskSettings-BtHe1X7p.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-CLZ8DeD3.mjs → SceneMonitorEditor-BL0s-kmP.mjs} +3 -3
  4. package/dist/_stub.js +11 -11
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-Ca-jPREF.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-B2jX6pjx.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-HasgddgR.mjs +26 -0
  7. package/dist/{hostInit-DiUsU_UL.mjs → hostInit-CEbB8v9j.mjs} +2 -2
  8. package/dist/model-studio.addon.js +299 -47
  9. package/dist/model-studio.addon.mjs +299 -47
  10. package/dist/{player-overlays-CgxP2Qzw.mjs → player-overlays-l9kwK0z6.mjs} +1 -1
  11. package/dist/remoteEntry.js +1 -1
  12. package/dist/{responsive-F2i_EZ7a.mjs → responsive-BG96U0np.mjs} +1 -1
  13. package/dist/{scene-monitor-copy-RkL6wtjU.mjs → scene-monitor-copy-BHXO3Tgl.mjs} +1 -1
  14. package/dist/{square-C4QMTFWA.mjs → square-dnjRtQXi.mjs} +1 -1
  15. package/dist/{trash-2-BtfILwcu.mjs → trash-2-ZwGX8k-d.mjs} +1 -1
  16. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DflrE0ec.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BzKM4skN.mjs} +1 -1
  17. package/package.json +1 -1
  18. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CEWbeCwN.mjs +0 -26
@@ -5941,7 +5941,7 @@ var ZodIssueCode = {
5941
5941
  var ZodFirstPartyTypeKind;
5942
5942
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5943
5943
  //#endregion
5944
- //#region ../types/dist/sleep-C-v96WpE.mjs
5944
+ //#region ../types/dist/sleep-gU6hqv4_.mjs
5945
5945
  /**
5946
5946
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5947
5947
  * window to float samples (D455).
@@ -8051,7 +8051,59 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
8051
8051
  return DeviceRole;
8052
8052
  }({});
8053
8053
  //#endregion
8054
- //#region ../types/dist/composition-BK-GTFYb.mjs
8054
+ //#region ../types/dist/composition-Dq42XWp0.mjs
8055
+ /**
8056
+ * The ffmpeg build every CamStack node downloads, per platform and arch.
8057
+ *
8058
+ * ## Why a download, on every node, including the container
8059
+ *
8060
+ * The version of ffmpeg used to be CODE: baked into the image, changeable only
8061
+ * by rebuilding and rolling it. Now it is DATA — this file states the release,
8062
+ * and a node that boots with a different one downloads it. Changing ffmpeg is a
8063
+ * framework bump, not an image rebuild.
8064
+ *
8065
+ * It also settles the licence question by removing it. FFmpeg's licence is
8066
+ * chosen at compile time: the core is LGPL 2.1+, `--enable-gpl` makes it GPL
8067
+ * (for x264/x265), `--enable-version3` makes that v3, and `--enable-nonfree`
8068
+ * makes the result undistributable. These are GPL v3 builds, and we do not
8069
+ * distribute them: the user's own node fetches the archive from the project
8070
+ * that publishes it, so we convey no GPL work and inherit none of the
8071
+ * obligations that come with conveying one. That is the whole reason the image
8072
+ * no longer installs ffmpeg at all — not a technical preference.
8073
+ *
8074
+ * ## Why jellyfin-ffmpeg
8075
+ *
8076
+ * One vendor covering linux-amd64, linux-arm64, darwin-arm64 and darwin-x64
8077
+ * from one release, with the widest hardware surface of anything maintained:
8078
+ * VAAPI, QSV, NVENC/NVDEC, AMF, Vulkan, OpenCL and DRM on amd64, plus Rockchip
8079
+ * MPP on arm64. It reaches the vendor libraries through dlopen trampolines,
8080
+ * so the binary is not linked against a driver stack it may not find.
8081
+ *
8082
+ * **What it still needs from the host, measured 2026-09-19.** On the Unraid
8083
+ * HOST, which has no libva, `-vaapi_device` aborts the process outright —
8084
+ * `implib-gen: libva-drm.so.2: failed to load library ... Assertion '0 &&
8085
+ * "Assertion in generated code"' failed`. Inside our container, which installs
8086
+ * libva plus the iHD driver, the same command encodes: verified end to end with
8087
+ * `testsrc → format=nv12,hwupload → h264_vaapi`. So the image drops ffmpeg and
8088
+ * KEEPS the Intel media stack; the drivers are the part a binary cannot bring.
8089
+ *
8090
+ * ## Why each artifact carries a checksum and a claim
8091
+ *
8092
+ * The download is now the only source, so `sha256` is verified before anything
8093
+ * is extracted — jellyfin publishes no checksums on its release assets, so
8094
+ * these are ours, taken at the version bump. And `expectedHwaccels` is what the
8095
+ * build is supposed to be able to do: a binary that probes short of its own
8096
+ * claim is a source that changed under us, which is precisely what went
8097
+ * unnoticed for months when a static build turned out to carry no VAAPI at all
8098
+ * (D536).
8099
+ */
8100
+ /** The pinned jellyfin-ffmpeg release. Changing this is the version change. */
8101
+ var FFMPEG_RELEASE = "8.1.2-5";
8102
+ var BASE = `https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${FFMPEG_RELEASE}`;
8103
+ function portable(target) {
8104
+ return `${BASE}/jellyfin-ffmpeg_${FFMPEG_RELEASE}_portable_${target}-gpl.tar.xz`;
8105
+ }
8106
+ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
8055
8107
  /**
8056
8108
  * LA tabella "quale booleano di questo tipo di device conta come ALTO", e il
8057
8109
  * valutatore puro del suo FRONTE.
@@ -9523,6 +9575,82 @@ var ArchivedDebugNoteQueryInputSchema = object({
9523
9575
  /** Max rows returned, newest-first. */
9524
9576
  limit: number().int().min(1).max(1e3).optional()
9525
9577
  });
9578
+ var TrackRelationKindSchema = _enum(["same-subject", "different-subjects"]);
9579
+ var TrackSideSchema = _enum(["before", "after"]);
9580
+ var TrackPurityValueSchema = _enum(["mixed", "not-a-subject"]);
9581
+ var TrackRelationSchema = object({
9582
+ id: string(),
9583
+ deviceId: number().int(),
9584
+ leftTrackId: string(),
9585
+ rightTrackId: string(),
9586
+ leftSide: TrackSideSchema.nullable(),
9587
+ rightSide: TrackSideSchema.nullable(),
9588
+ relation: TrackRelationKindSchema,
9589
+ presence: literal("continuous").nullable(),
9590
+ leftStartedAt: number().int().nullable(),
9591
+ rightStartedAt: number().int().nullable(),
9592
+ createdAt: number().int(),
9593
+ updatedAt: number().int(),
9594
+ author: string().nullable()
9595
+ });
9596
+ var TrackPuritySchema = object({
9597
+ id: string(),
9598
+ deviceId: number().int(),
9599
+ sourceTrackId: string(),
9600
+ purity: TrackPurityValueSchema,
9601
+ switchAtMs: number().int().nullable(),
9602
+ startedAt: number().int().nullable(),
9603
+ createdAt: number().int(),
9604
+ updatedAt: number().int(),
9605
+ author: string().nullable()
9606
+ });
9607
+ var SetTrackRelationInputSchema = object({
9608
+ deviceId: number().int(),
9609
+ trackId: string().min(1),
9610
+ otherTrackId: string().min(1),
9611
+ relation: TrackRelationKindSchema,
9612
+ presence: literal("continuous").optional(),
9613
+ trackSide: TrackSideSchema.optional(),
9614
+ otherSide: TrackSideSchema.optional()
9615
+ });
9616
+ var ClearTrackRelationInputSchema = object({
9617
+ deviceId: number().int(),
9618
+ trackId: string().min(1),
9619
+ otherTrackId: string().min(1)
9620
+ });
9621
+ var ClearTrackRelationResultSchema = object({ cleared: boolean() });
9622
+ var SetTrackPurityInputSchema = object({
9623
+ deviceId: number().int(),
9624
+ trackId: string().min(1),
9625
+ purity: _enum([
9626
+ "pure",
9627
+ "mixed",
9628
+ "not-a-subject"
9629
+ ]),
9630
+ switchAtMs: number().int().optional()
9631
+ });
9632
+ /** `null` when `pure` cleared the row. */
9633
+ var SetTrackPurityResultSchema = object({ purity: TrackPuritySchema.nullable() });
9634
+ var ListTrackRelationsInputSchema = object({
9635
+ deviceId: number().int(),
9636
+ trackId: string().optional(),
9637
+ since: number().int().optional(),
9638
+ until: number().int().optional(),
9639
+ limit: number().int().min(1).max(5e3).optional()
9640
+ });
9641
+ var ListTrackRelationsResultSchema = object({
9642
+ relations: array(TrackRelationSchema).readonly(),
9643
+ purities: array(TrackPuritySchema).readonly(),
9644
+ truncated: boolean()
9645
+ });
9646
+ _enum([
9647
+ "unknown-track",
9648
+ "cross-device",
9649
+ "self-relation",
9650
+ "contradiction",
9651
+ "switch-outside-track",
9652
+ "switch-needs-mixed"
9653
+ ]);
9526
9654
  /**
9527
9655
  * Ops-log — the durable, append-only operations audit shared by the
9528
9656
  * recordings and events management surfaces.
@@ -13628,6 +13756,70 @@ var CompositionBlockStateSchema = object({
13628
13756
  reason: string().optional(),
13629
13757
  fields: array(CompositionFieldStateSchema)
13630
13758
  });
13759
+ var NUMBER = {
13760
+ kind: "fixed",
13761
+ result: ["number"]
13762
+ };
13763
+ var BOOLEAN = {
13764
+ kind: "fixed",
13765
+ result: ["boolean"]
13766
+ };
13767
+ Object.freeze({
13768
+ min: NUMBER,
13769
+ max: NUMBER,
13770
+ abs: NUMBER,
13771
+ floor: NUMBER,
13772
+ ceil: NUMBER,
13773
+ sqrt: NUMBER,
13774
+ round: NUMBER,
13775
+ pow: NUMBER,
13776
+ clamp: NUMBER,
13777
+ avg: NUMBER,
13778
+ sum: NUMBER,
13779
+ age: NUMBER,
13780
+ convert: NUMBER,
13781
+ coalesce: { kind: "coalesce" },
13782
+ any: BOOLEAN,
13783
+ all: BOOLEAN,
13784
+ within: BOOLEAN,
13785
+ latest: {
13786
+ kind: "fixed",
13787
+ result: ["number", "null"]
13788
+ },
13789
+ number: {
13790
+ kind: "fixed",
13791
+ result: ["number", "null"]
13792
+ },
13793
+ rose: {
13794
+ kind: "fixed",
13795
+ result: ["number", "null"]
13796
+ },
13797
+ count: NUMBER
13798
+ });
13799
+ `${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
13800
+ /**
13801
+ * What a composition may BUILD on a device type (G2, D676): the caps a new
13802
+ * device of that type, or an existing one that lacks them, can be given. The
13803
+ * blockers are the validator's own refusal codes, and a spec compares this
13804
+ * listing with `planComposition` for every capability — the editor can never
13805
+ * offer a feature the save would refuse for the same reason.
13806
+ */
13807
+ var ComposableFieldSchema = object({
13808
+ path: string(),
13809
+ kind: CompositionFieldKindSchema,
13810
+ nullable: boolean(),
13811
+ required: boolean(),
13812
+ enumValues: array(string()).optional()
13813
+ });
13814
+ var ComposableCapabilitiesSchema = object({ caps: array(object({
13815
+ cap: string(),
13816
+ fields: array(ComposableFieldSchema),
13817
+ /** Present for an item-array cap (`consumables.items`). */
13818
+ itemArray: object({
13819
+ path: string(),
13820
+ keyField: string()
13821
+ }).optional()
13822
+ })) });
13631
13823
  /** Where a block runs. The operator chooses — a block driving a device on an
13632
13824
  * agent is the reason placement is not fixed to the hub. */
13633
13825
  var CoreBlockPlacementSchema = union([literal("hub"), string().min(1)]);
@@ -13792,7 +13984,7 @@ method(object({}), object({ blocks: array(CoreBlockSchema) }), { auth: "admin" }
13792
13984
  }), method(object({ blockId: string() }), CompositionGetReadSchema, { auth: "admin" }), method(object({}), CompositionListReadSchema, { auth: "admin" }), method(object({
13793
13985
  addonId: string().min(1),
13794
13986
  stableId: string().min(1)
13795
- }), CompositionCustomizationReadSchema, { auth: "admin" }), method(object({
13987
+ }), CompositionCustomizationReadSchema, { auth: "admin" }), method(object({ deviceType: _enum(DeviceType) }), ComposableCapabilitiesSchema, { auth: "admin" }), method(object({
13796
13988
  composition: CompositionSchema,
13797
13989
  blockId: string().optional()
13798
13990
  }), CompositionValidationSchema, {
@@ -20714,7 +20906,7 @@ function cameraSensorRefKey(ref) {
20714
20906
  }
20715
20907
  /** CS-1 accepts exactly one mode; CS-2 (D673) widens it to confirm / replace. */
20716
20908
  var CameraSensorsModeSchema = _enum(["in-addition"]);
20717
- object({
20909
+ var CameraSensorsConfigSchema = object({
20718
20910
  mode: CameraSensorsModeSchema,
20719
20911
  sensors: array(CameraSensorRefSchema).min(1).max(8)
20720
20912
  }).superRefine((value, ctx) => {
@@ -21704,6 +21896,21 @@ var ObjectEventSchema = object({
21704
21896
  keyFrameMediaId: number().int().optional(),
21705
21897
  /** Populated by B5 (recording playback URL for this event). */
21706
21898
  mediaUrl: string().optional(),
21899
+ /**
21900
+ * When the change this row records HAPPENED, epoch ms, when that is earlier
21901
+ * than {@link timestamp} and the producer could date it (D684).
21902
+ *
21903
+ * Set on a package PICK-UP row only: its `timestamp` is when the departure
21904
+ * was CONCLUDED — five minutes of unseen observed time after the parcel went
21905
+ * — and a notification's footage has to be cut around the pick-up, not the
21906
+ * empty doormat after it (D682). Stored so every path that rebuilds a
21907
+ * notification subject from the row (the boot reconcile, a dry-run) anchors
21908
+ * on the same instant the live hook did.
21909
+ *
21910
+ * `timestamp` keeps its meaning. Absent on every other row and on every
21911
+ * pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
21912
+ */
21913
+ observedAt: number().optional(),
21707
21914
  /** The parent track's key-event importance [0,1], propagated to every object
21708
21915
  * event of the track (so an event row can be sorted by importance without a
21709
21916
  * track join). Absent on legacy rows / before the track was scored. */
@@ -22613,7 +22820,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
22613
22820
  deviceId: number(),
22614
22821
  trackId: string(),
22615
22822
  flags: TrackFlagsPatchSchema
22616
- }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(BirthDecisionQueryInputSchema, array(BirthDecisionRecordSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
22823
+ }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(SetTrackRelationInputSchema, TrackRelationSchema, { kind: "mutation" }), method(ClearTrackRelationInputSchema, ClearTrackRelationResultSchema, { kind: "mutation" }), method(SetTrackPurityInputSchema, SetTrackPurityResultSchema, { kind: "mutation" }), method(ListTrackRelationsInputSchema, ListTrackRelationsResultSchema, { kind: "query" }), method(BirthDecisionQueryInputSchema, array(BirthDecisionRecordSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
22617
22824
  kind: "query",
22618
22825
  auth: "admin"
22619
22826
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -24771,6 +24978,28 @@ var NodeInferenceDevicesSchema = object({
24771
24978
  reachable: boolean(),
24772
24979
  devices: array(NodeInferenceDeviceSchema).readonly()
24773
24980
  });
24981
+ /**
24982
+ * Pipeline Orchestrator capability — global load balancer + camera dispatcher.
24983
+ *
24984
+ * Lives on the hub. Tracks the camera-to-agent assignment map, listens to
24985
+ * device lifecycle events, queries each runner's capacity + hardware
24986
+ * profile, and dispatches `attachCamera` / `detachCamera` cap calls to the
24987
+ * appropriate runner instances. Persists assignments via the multi-level
24988
+ * settings store so they survive hub restarts.
24989
+ *
24990
+ * Strictly the control plane: never sees a frame, never calls inference,
24991
+ * never drains queues. The runner does that work locally on each agent.
24992
+ */
24993
+ /**
24994
+ * The input of `setCameraSensors` (G5, D676): the ONE typed write path of a
24995
+ * camera's attached sensors (D672). `config: null` removes the attachment —
24996
+ * the camera reads `not-configured` again, never `unreadable`.
24997
+ */
24998
+ var SetCameraSensorsInputSchema = object({
24999
+ deviceId: number().int().nonnegative(),
25000
+ /** `null` removes the attachment: the camera goes back to `not-configured`. */
25001
+ config: CameraSensorsConfigSchema.nullable()
25002
+ });
24774
25003
  method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24775
25004
  kind: "mutation",
24776
25005
  auth: "admin"
@@ -24925,7 +25154,10 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24925
25154
  }), CameraSwitchGroupSchema, {
24926
25155
  kind: "mutation",
24927
25156
  auth: "admin"
24928
- }), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), DiskReconcileJobSchema, {
25157
+ }), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(SetCameraSensorsInputSchema, object({ success: literal(true) }), {
25158
+ kind: "mutation",
25159
+ auth: "admin"
25160
+ }), method(_void(), DiskReconcileJobSchema, {
24929
25161
  kind: "mutation",
24930
25162
  auth: "admin"
24931
25163
  }), method(_void(), DiskReconcileJobSchema, { auth: "admin" }), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
@@ -35826,47 +36058,6 @@ DeviceType.Camera, method(object({
35826
36058
  detection: array(ZoneRuleSchema).readonly(),
35827
36059
  package: array(ZoneRuleSchema).readonly()
35828
36060
  });
35829
- var NUMBER = {
35830
- kind: "fixed",
35831
- result: ["number"]
35832
- };
35833
- var BOOLEAN = {
35834
- kind: "fixed",
35835
- result: ["boolean"]
35836
- };
35837
- Object.freeze({
35838
- min: NUMBER,
35839
- max: NUMBER,
35840
- abs: NUMBER,
35841
- floor: NUMBER,
35842
- ceil: NUMBER,
35843
- sqrt: NUMBER,
35844
- round: NUMBER,
35845
- pow: NUMBER,
35846
- clamp: NUMBER,
35847
- avg: NUMBER,
35848
- sum: NUMBER,
35849
- age: NUMBER,
35850
- convert: NUMBER,
35851
- coalesce: { kind: "coalesce" },
35852
- any: BOOLEAN,
35853
- all: BOOLEAN,
35854
- within: BOOLEAN,
35855
- latest: {
35856
- kind: "fixed",
35857
- result: ["number", "null"]
35858
- },
35859
- number: {
35860
- kind: "fixed",
35861
- result: ["number", "null"]
35862
- },
35863
- rose: {
35864
- kind: "fixed",
35865
- result: ["number", "null"]
35866
- },
35867
- count: NUMBER
35868
- });
35869
- `${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
35870
36061
  /**
35871
36062
  * Accessory device helpers — shared across drivers.
35872
36063
  *
@@ -38289,6 +38480,12 @@ Object.freeze({
38289
38480
  addonId: null,
38290
38481
  access: "view"
38291
38482
  },
38483
+ "coreBlocks.listComposableCaps": {
38484
+ capName: "core-blocks",
38485
+ capScope: "system",
38486
+ addonId: null,
38487
+ access: "view"
38488
+ },
38292
38489
  "coreBlocks.listCompositions": {
38293
38490
  capName: "core-blocks",
38294
38491
  capScope: "system",
@@ -41103,6 +41300,12 @@ Object.freeze({
41103
41300
  addonId: null,
41104
41301
  access: "create"
41105
41302
  },
41303
+ "pipelineAnalytics.clearTrackRelation": {
41304
+ capName: "pipeline-analytics",
41305
+ capScope: "device",
41306
+ addonId: null,
41307
+ access: "delete"
41308
+ },
41106
41309
  "pipelineAnalytics.clearTracks": {
41107
41310
  capName: "pipeline-analytics",
41108
41311
  capScope: "device",
@@ -41355,6 +41558,12 @@ Object.freeze({
41355
41558
  addonId: null,
41356
41559
  access: "view"
41357
41560
  },
41561
+ "pipelineAnalytics.listTrackRelations": {
41562
+ capName: "pipeline-analytics",
41563
+ capScope: "device",
41564
+ addonId: null,
41565
+ access: "view"
41566
+ },
41358
41567
  "pipelineAnalytics.listTracks": {
41359
41568
  capName: "pipeline-analytics",
41360
41569
  capScope: "device",
@@ -41469,6 +41678,18 @@ Object.freeze({
41469
41678
  addonId: null,
41470
41679
  access: "create"
41471
41680
  },
41681
+ "pipelineAnalytics.setTrackPurity": {
41682
+ capName: "pipeline-analytics",
41683
+ capScope: "device",
41684
+ addonId: null,
41685
+ access: "create"
41686
+ },
41687
+ "pipelineAnalytics.setTrackRelation": {
41688
+ capName: "pipeline-analytics",
41689
+ capScope: "device",
41690
+ addonId: null,
41691
+ access: "create"
41692
+ },
41472
41693
  "pipelineAnalytics.startStorageMigrationMove": {
41473
41694
  capName: "pipeline-analytics",
41474
41695
  capScope: "device",
@@ -41973,6 +42194,12 @@ Object.freeze({
41973
42194
  addonId: null,
41974
42195
  access: "create"
41975
42196
  },
42197
+ "pipelineOrchestrator.setCameraSensors": {
42198
+ capName: "pipeline-orchestrator",
42199
+ capScope: "system",
42200
+ addonId: null,
42201
+ access: "create"
42202
+ },
41976
42203
  "pipelineOrchestrator.setCameraStepOverride": {
41977
42204
  capName: "pipeline-orchestrator",
41978
42205
  capScope: "system",
@@ -45383,6 +45610,11 @@ Object.freeze({
45383
45610
  form: "single",
45384
45611
  optional: false
45385
45612
  }],
45613
+ "pipelineAnalytics.clearTrackRelation": [{
45614
+ name: "deviceId",
45615
+ form: "single",
45616
+ optional: false
45617
+ }],
45386
45618
  "pipelineAnalytics.clearTracks": [{
45387
45619
  name: "deviceId",
45388
45620
  form: "single",
@@ -45533,6 +45765,11 @@ Object.freeze({
45533
45765
  form: "single",
45534
45766
  optional: false
45535
45767
  }],
45768
+ "pipelineAnalytics.listTrackRelations": [{
45769
+ name: "deviceId",
45770
+ form: "single",
45771
+ optional: false
45772
+ }],
45536
45773
  "pipelineAnalytics.listTracks": [{
45537
45774
  name: "deviceId",
45538
45775
  form: "single",
@@ -45603,6 +45840,16 @@ Object.freeze({
45603
45840
  form: "single",
45604
45841
  optional: false
45605
45842
  }],
45843
+ "pipelineAnalytics.setTrackPurity": [{
45844
+ name: "deviceId",
45845
+ form: "single",
45846
+ optional: false
45847
+ }],
45848
+ "pipelineAnalytics.setTrackRelation": [{
45849
+ name: "deviceId",
45850
+ form: "single",
45851
+ optional: false
45852
+ }],
45606
45853
  "pipelineAnalytics.wipeAllAnalytics": [{
45607
45854
  name: "deviceId",
45608
45855
  form: "single",
@@ -45683,6 +45930,11 @@ Object.freeze({
45683
45930
  form: "single",
45684
45931
  optional: false
45685
45932
  }],
45933
+ "pipelineOrchestrator.setCameraSensors": [{
45934
+ name: "deviceId",
45935
+ form: "single",
45936
+ optional: false
45937
+ }],
45686
45938
  "pipelineOrchestrator.setCameraStepOverride": [{
45687
45939
  name: "deviceId",
45688
45940
  form: "single",