@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
@@ -5920,7 +5920,7 @@ var ZodIssueCode = {
5920
5920
  var ZodFirstPartyTypeKind;
5921
5921
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5922
5922
  //#endregion
5923
- //#region ../types/dist/sleep-C-v96WpE.mjs
5923
+ //#region ../types/dist/sleep-gU6hqv4_.mjs
5924
5924
  /**
5925
5925
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5926
5926
  * window to float samples (D455).
@@ -8030,7 +8030,59 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
8030
8030
  return DeviceRole;
8031
8031
  }({});
8032
8032
  //#endregion
8033
- //#region ../types/dist/composition-BK-GTFYb.mjs
8033
+ //#region ../types/dist/composition-Dq42XWp0.mjs
8034
+ /**
8035
+ * The ffmpeg build every CamStack node downloads, per platform and arch.
8036
+ *
8037
+ * ## Why a download, on every node, including the container
8038
+ *
8039
+ * The version of ffmpeg used to be CODE: baked into the image, changeable only
8040
+ * by rebuilding and rolling it. Now it is DATA — this file states the release,
8041
+ * and a node that boots with a different one downloads it. Changing ffmpeg is a
8042
+ * framework bump, not an image rebuild.
8043
+ *
8044
+ * It also settles the licence question by removing it. FFmpeg's licence is
8045
+ * chosen at compile time: the core is LGPL 2.1+, `--enable-gpl` makes it GPL
8046
+ * (for x264/x265), `--enable-version3` makes that v3, and `--enable-nonfree`
8047
+ * makes the result undistributable. These are GPL v3 builds, and we do not
8048
+ * distribute them: the user's own node fetches the archive from the project
8049
+ * that publishes it, so we convey no GPL work and inherit none of the
8050
+ * obligations that come with conveying one. That is the whole reason the image
8051
+ * no longer installs ffmpeg at all — not a technical preference.
8052
+ *
8053
+ * ## Why jellyfin-ffmpeg
8054
+ *
8055
+ * One vendor covering linux-amd64, linux-arm64, darwin-arm64 and darwin-x64
8056
+ * from one release, with the widest hardware surface of anything maintained:
8057
+ * VAAPI, QSV, NVENC/NVDEC, AMF, Vulkan, OpenCL and DRM on amd64, plus Rockchip
8058
+ * MPP on arm64. It reaches the vendor libraries through dlopen trampolines,
8059
+ * so the binary is not linked against a driver stack it may not find.
8060
+ *
8061
+ * **What it still needs from the host, measured 2026-09-19.** On the Unraid
8062
+ * HOST, which has no libva, `-vaapi_device` aborts the process outright —
8063
+ * `implib-gen: libva-drm.so.2: failed to load library ... Assertion '0 &&
8064
+ * "Assertion in generated code"' failed`. Inside our container, which installs
8065
+ * libva plus the iHD driver, the same command encodes: verified end to end with
8066
+ * `testsrc → format=nv12,hwupload → h264_vaapi`. So the image drops ffmpeg and
8067
+ * KEEPS the Intel media stack; the drivers are the part a binary cannot bring.
8068
+ *
8069
+ * ## Why each artifact carries a checksum and a claim
8070
+ *
8071
+ * The download is now the only source, so `sha256` is verified before anything
8072
+ * is extracted — jellyfin publishes no checksums on its release assets, so
8073
+ * these are ours, taken at the version bump. And `expectedHwaccels` is what the
8074
+ * build is supposed to be able to do: a binary that probes short of its own
8075
+ * claim is a source that changed under us, which is precisely what went
8076
+ * unnoticed for months when a static build turned out to carry no VAAPI at all
8077
+ * (D536).
8078
+ */
8079
+ /** The pinned jellyfin-ffmpeg release. Changing this is the version change. */
8080
+ var FFMPEG_RELEASE = "8.1.2-5";
8081
+ var BASE = `https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${FFMPEG_RELEASE}`;
8082
+ function portable(target) {
8083
+ return `${BASE}/jellyfin-ffmpeg_${FFMPEG_RELEASE}_portable_${target}-gpl.tar.xz`;
8084
+ }
8085
+ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
8034
8086
  /**
8035
8087
  * LA tabella "quale booleano di questo tipo di device conta come ALTO", e il
8036
8088
  * valutatore puro del suo FRONTE.
@@ -9502,6 +9554,82 @@ var ArchivedDebugNoteQueryInputSchema = object({
9502
9554
  /** Max rows returned, newest-first. */
9503
9555
  limit: number().int().min(1).max(1e3).optional()
9504
9556
  });
9557
+ var TrackRelationKindSchema = _enum(["same-subject", "different-subjects"]);
9558
+ var TrackSideSchema = _enum(["before", "after"]);
9559
+ var TrackPurityValueSchema = _enum(["mixed", "not-a-subject"]);
9560
+ var TrackRelationSchema = object({
9561
+ id: string(),
9562
+ deviceId: number().int(),
9563
+ leftTrackId: string(),
9564
+ rightTrackId: string(),
9565
+ leftSide: TrackSideSchema.nullable(),
9566
+ rightSide: TrackSideSchema.nullable(),
9567
+ relation: TrackRelationKindSchema,
9568
+ presence: literal("continuous").nullable(),
9569
+ leftStartedAt: number().int().nullable(),
9570
+ rightStartedAt: number().int().nullable(),
9571
+ createdAt: number().int(),
9572
+ updatedAt: number().int(),
9573
+ author: string().nullable()
9574
+ });
9575
+ var TrackPuritySchema = object({
9576
+ id: string(),
9577
+ deviceId: number().int(),
9578
+ sourceTrackId: string(),
9579
+ purity: TrackPurityValueSchema,
9580
+ switchAtMs: number().int().nullable(),
9581
+ startedAt: number().int().nullable(),
9582
+ createdAt: number().int(),
9583
+ updatedAt: number().int(),
9584
+ author: string().nullable()
9585
+ });
9586
+ var SetTrackRelationInputSchema = object({
9587
+ deviceId: number().int(),
9588
+ trackId: string().min(1),
9589
+ otherTrackId: string().min(1),
9590
+ relation: TrackRelationKindSchema,
9591
+ presence: literal("continuous").optional(),
9592
+ trackSide: TrackSideSchema.optional(),
9593
+ otherSide: TrackSideSchema.optional()
9594
+ });
9595
+ var ClearTrackRelationInputSchema = object({
9596
+ deviceId: number().int(),
9597
+ trackId: string().min(1),
9598
+ otherTrackId: string().min(1)
9599
+ });
9600
+ var ClearTrackRelationResultSchema = object({ cleared: boolean() });
9601
+ var SetTrackPurityInputSchema = object({
9602
+ deviceId: number().int(),
9603
+ trackId: string().min(1),
9604
+ purity: _enum([
9605
+ "pure",
9606
+ "mixed",
9607
+ "not-a-subject"
9608
+ ]),
9609
+ switchAtMs: number().int().optional()
9610
+ });
9611
+ /** `null` when `pure` cleared the row. */
9612
+ var SetTrackPurityResultSchema = object({ purity: TrackPuritySchema.nullable() });
9613
+ var ListTrackRelationsInputSchema = object({
9614
+ deviceId: number().int(),
9615
+ trackId: string().optional(),
9616
+ since: number().int().optional(),
9617
+ until: number().int().optional(),
9618
+ limit: number().int().min(1).max(5e3).optional()
9619
+ });
9620
+ var ListTrackRelationsResultSchema = object({
9621
+ relations: array(TrackRelationSchema).readonly(),
9622
+ purities: array(TrackPuritySchema).readonly(),
9623
+ truncated: boolean()
9624
+ });
9625
+ _enum([
9626
+ "unknown-track",
9627
+ "cross-device",
9628
+ "self-relation",
9629
+ "contradiction",
9630
+ "switch-outside-track",
9631
+ "switch-needs-mixed"
9632
+ ]);
9505
9633
  /**
9506
9634
  * Ops-log — the durable, append-only operations audit shared by the
9507
9635
  * recordings and events management surfaces.
@@ -13607,6 +13735,70 @@ var CompositionBlockStateSchema = object({
13607
13735
  reason: string().optional(),
13608
13736
  fields: array(CompositionFieldStateSchema)
13609
13737
  });
13738
+ var NUMBER = {
13739
+ kind: "fixed",
13740
+ result: ["number"]
13741
+ };
13742
+ var BOOLEAN = {
13743
+ kind: "fixed",
13744
+ result: ["boolean"]
13745
+ };
13746
+ Object.freeze({
13747
+ min: NUMBER,
13748
+ max: NUMBER,
13749
+ abs: NUMBER,
13750
+ floor: NUMBER,
13751
+ ceil: NUMBER,
13752
+ sqrt: NUMBER,
13753
+ round: NUMBER,
13754
+ pow: NUMBER,
13755
+ clamp: NUMBER,
13756
+ avg: NUMBER,
13757
+ sum: NUMBER,
13758
+ age: NUMBER,
13759
+ convert: NUMBER,
13760
+ coalesce: { kind: "coalesce" },
13761
+ any: BOOLEAN,
13762
+ all: BOOLEAN,
13763
+ within: BOOLEAN,
13764
+ latest: {
13765
+ kind: "fixed",
13766
+ result: ["number", "null"]
13767
+ },
13768
+ number: {
13769
+ kind: "fixed",
13770
+ result: ["number", "null"]
13771
+ },
13772
+ rose: {
13773
+ kind: "fixed",
13774
+ result: ["number", "null"]
13775
+ },
13776
+ count: NUMBER
13777
+ });
13778
+ `${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
13779
+ /**
13780
+ * What a composition may BUILD on a device type (G2, D676): the caps a new
13781
+ * device of that type, or an existing one that lacks them, can be given. The
13782
+ * blockers are the validator's own refusal codes, and a spec compares this
13783
+ * listing with `planComposition` for every capability — the editor can never
13784
+ * offer a feature the save would refuse for the same reason.
13785
+ */
13786
+ var ComposableFieldSchema = object({
13787
+ path: string(),
13788
+ kind: CompositionFieldKindSchema,
13789
+ nullable: boolean(),
13790
+ required: boolean(),
13791
+ enumValues: array(string()).optional()
13792
+ });
13793
+ var ComposableCapabilitiesSchema = object({ caps: array(object({
13794
+ cap: string(),
13795
+ fields: array(ComposableFieldSchema),
13796
+ /** Present for an item-array cap (`consumables.items`). */
13797
+ itemArray: object({
13798
+ path: string(),
13799
+ keyField: string()
13800
+ }).optional()
13801
+ })) });
13610
13802
  /** Where a block runs. The operator chooses — a block driving a device on an
13611
13803
  * agent is the reason placement is not fixed to the hub. */
13612
13804
  var CoreBlockPlacementSchema = union([literal("hub"), string().min(1)]);
@@ -13771,7 +13963,7 @@ method(object({}), object({ blocks: array(CoreBlockSchema) }), { auth: "admin" }
13771
13963
  }), method(object({ blockId: string() }), CompositionGetReadSchema, { auth: "admin" }), method(object({}), CompositionListReadSchema, { auth: "admin" }), method(object({
13772
13964
  addonId: string().min(1),
13773
13965
  stableId: string().min(1)
13774
- }), CompositionCustomizationReadSchema, { auth: "admin" }), method(object({
13966
+ }), CompositionCustomizationReadSchema, { auth: "admin" }), method(object({ deviceType: _enum(DeviceType) }), ComposableCapabilitiesSchema, { auth: "admin" }), method(object({
13775
13967
  composition: CompositionSchema,
13776
13968
  blockId: string().optional()
13777
13969
  }), CompositionValidationSchema, {
@@ -20693,7 +20885,7 @@ function cameraSensorRefKey(ref) {
20693
20885
  }
20694
20886
  /** CS-1 accepts exactly one mode; CS-2 (D673) widens it to confirm / replace. */
20695
20887
  var CameraSensorsModeSchema = _enum(["in-addition"]);
20696
- object({
20888
+ var CameraSensorsConfigSchema = object({
20697
20889
  mode: CameraSensorsModeSchema,
20698
20890
  sensors: array(CameraSensorRefSchema).min(1).max(8)
20699
20891
  }).superRefine((value, ctx) => {
@@ -21683,6 +21875,21 @@ var ObjectEventSchema = object({
21683
21875
  keyFrameMediaId: number().int().optional(),
21684
21876
  /** Populated by B5 (recording playback URL for this event). */
21685
21877
  mediaUrl: string().optional(),
21878
+ /**
21879
+ * When the change this row records HAPPENED, epoch ms, when that is earlier
21880
+ * than {@link timestamp} and the producer could date it (D684).
21881
+ *
21882
+ * Set on a package PICK-UP row only: its `timestamp` is when the departure
21883
+ * was CONCLUDED — five minutes of unseen observed time after the parcel went
21884
+ * — and a notification's footage has to be cut around the pick-up, not the
21885
+ * empty doormat after it (D682). Stored so every path that rebuilds a
21886
+ * notification subject from the row (the boot reconcile, a dry-run) anchors
21887
+ * on the same instant the live hook did.
21888
+ *
21889
+ * `timestamp` keeps its meaning. Absent on every other row and on every
21890
+ * pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
21891
+ */
21892
+ observedAt: number().optional(),
21686
21893
  /** The parent track's key-event importance [0,1], propagated to every object
21687
21894
  * event of the track (so an event row can be sorted by importance without a
21688
21895
  * track join). Absent on legacy rows / before the track was scored. */
@@ -22592,7 +22799,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
22592
22799
  deviceId: number(),
22593
22800
  trackId: string(),
22594
22801
  flags: TrackFlagsPatchSchema
22595
- }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(BirthDecisionQueryInputSchema, array(BirthDecisionRecordSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
22802
+ }), 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, {
22596
22803
  kind: "query",
22597
22804
  auth: "admin"
22598
22805
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -24750,6 +24957,28 @@ var NodeInferenceDevicesSchema = object({
24750
24957
  reachable: boolean(),
24751
24958
  devices: array(NodeInferenceDeviceSchema).readonly()
24752
24959
  });
24960
+ /**
24961
+ * Pipeline Orchestrator capability — global load balancer + camera dispatcher.
24962
+ *
24963
+ * Lives on the hub. Tracks the camera-to-agent assignment map, listens to
24964
+ * device lifecycle events, queries each runner's capacity + hardware
24965
+ * profile, and dispatches `attachCamera` / `detachCamera` cap calls to the
24966
+ * appropriate runner instances. Persists assignments via the multi-level
24967
+ * settings store so they survive hub restarts.
24968
+ *
24969
+ * Strictly the control plane: never sees a frame, never calls inference,
24970
+ * never drains queues. The runner does that work locally on each agent.
24971
+ */
24972
+ /**
24973
+ * The input of `setCameraSensors` (G5, D676): the ONE typed write path of a
24974
+ * camera's attached sensors (D672). `config: null` removes the attachment —
24975
+ * the camera reads `not-configured` again, never `unreadable`.
24976
+ */
24977
+ var SetCameraSensorsInputSchema = object({
24978
+ deviceId: number().int().nonnegative(),
24979
+ /** `null` removes the attachment: the camera goes back to `not-configured`. */
24980
+ config: CameraSensorsConfigSchema.nullable()
24981
+ });
24753
24982
  method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24754
24983
  kind: "mutation",
24755
24984
  auth: "admin"
@@ -24904,7 +25133,10 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24904
25133
  }), CameraSwitchGroupSchema, {
24905
25134
  kind: "mutation",
24906
25135
  auth: "admin"
24907
- }), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), DiskReconcileJobSchema, {
25136
+ }), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(SetCameraSensorsInputSchema, object({ success: literal(true) }), {
25137
+ kind: "mutation",
25138
+ auth: "admin"
25139
+ }), method(_void(), DiskReconcileJobSchema, {
24908
25140
  kind: "mutation",
24909
25141
  auth: "admin"
24910
25142
  }), method(_void(), DiskReconcileJobSchema, { auth: "admin" }), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
@@ -35805,47 +36037,6 @@ DeviceType.Camera, method(object({
35805
36037
  detection: array(ZoneRuleSchema).readonly(),
35806
36038
  package: array(ZoneRuleSchema).readonly()
35807
36039
  });
35808
- var NUMBER = {
35809
- kind: "fixed",
35810
- result: ["number"]
35811
- };
35812
- var BOOLEAN = {
35813
- kind: "fixed",
35814
- result: ["boolean"]
35815
- };
35816
- Object.freeze({
35817
- min: NUMBER,
35818
- max: NUMBER,
35819
- abs: NUMBER,
35820
- floor: NUMBER,
35821
- ceil: NUMBER,
35822
- sqrt: NUMBER,
35823
- round: NUMBER,
35824
- pow: NUMBER,
35825
- clamp: NUMBER,
35826
- avg: NUMBER,
35827
- sum: NUMBER,
35828
- age: NUMBER,
35829
- convert: NUMBER,
35830
- coalesce: { kind: "coalesce" },
35831
- any: BOOLEAN,
35832
- all: BOOLEAN,
35833
- within: BOOLEAN,
35834
- latest: {
35835
- kind: "fixed",
35836
- result: ["number", "null"]
35837
- },
35838
- number: {
35839
- kind: "fixed",
35840
- result: ["number", "null"]
35841
- },
35842
- rose: {
35843
- kind: "fixed",
35844
- result: ["number", "null"]
35845
- },
35846
- count: NUMBER
35847
- });
35848
- `${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
35849
36040
  /**
35850
36041
  * Accessory device helpers — shared across drivers.
35851
36042
  *
@@ -38268,6 +38459,12 @@ Object.freeze({
38268
38459
  addonId: null,
38269
38460
  access: "view"
38270
38461
  },
38462
+ "coreBlocks.listComposableCaps": {
38463
+ capName: "core-blocks",
38464
+ capScope: "system",
38465
+ addonId: null,
38466
+ access: "view"
38467
+ },
38271
38468
  "coreBlocks.listCompositions": {
38272
38469
  capName: "core-blocks",
38273
38470
  capScope: "system",
@@ -41082,6 +41279,12 @@ Object.freeze({
41082
41279
  addonId: null,
41083
41280
  access: "create"
41084
41281
  },
41282
+ "pipelineAnalytics.clearTrackRelation": {
41283
+ capName: "pipeline-analytics",
41284
+ capScope: "device",
41285
+ addonId: null,
41286
+ access: "delete"
41287
+ },
41085
41288
  "pipelineAnalytics.clearTracks": {
41086
41289
  capName: "pipeline-analytics",
41087
41290
  capScope: "device",
@@ -41334,6 +41537,12 @@ Object.freeze({
41334
41537
  addonId: null,
41335
41538
  access: "view"
41336
41539
  },
41540
+ "pipelineAnalytics.listTrackRelations": {
41541
+ capName: "pipeline-analytics",
41542
+ capScope: "device",
41543
+ addonId: null,
41544
+ access: "view"
41545
+ },
41337
41546
  "pipelineAnalytics.listTracks": {
41338
41547
  capName: "pipeline-analytics",
41339
41548
  capScope: "device",
@@ -41448,6 +41657,18 @@ Object.freeze({
41448
41657
  addonId: null,
41449
41658
  access: "create"
41450
41659
  },
41660
+ "pipelineAnalytics.setTrackPurity": {
41661
+ capName: "pipeline-analytics",
41662
+ capScope: "device",
41663
+ addonId: null,
41664
+ access: "create"
41665
+ },
41666
+ "pipelineAnalytics.setTrackRelation": {
41667
+ capName: "pipeline-analytics",
41668
+ capScope: "device",
41669
+ addonId: null,
41670
+ access: "create"
41671
+ },
41451
41672
  "pipelineAnalytics.startStorageMigrationMove": {
41452
41673
  capName: "pipeline-analytics",
41453
41674
  capScope: "device",
@@ -41952,6 +42173,12 @@ Object.freeze({
41952
42173
  addonId: null,
41953
42174
  access: "create"
41954
42175
  },
42176
+ "pipelineOrchestrator.setCameraSensors": {
42177
+ capName: "pipeline-orchestrator",
42178
+ capScope: "system",
42179
+ addonId: null,
42180
+ access: "create"
42181
+ },
41955
42182
  "pipelineOrchestrator.setCameraStepOverride": {
41956
42183
  capName: "pipeline-orchestrator",
41957
42184
  capScope: "system",
@@ -45362,6 +45589,11 @@ Object.freeze({
45362
45589
  form: "single",
45363
45590
  optional: false
45364
45591
  }],
45592
+ "pipelineAnalytics.clearTrackRelation": [{
45593
+ name: "deviceId",
45594
+ form: "single",
45595
+ optional: false
45596
+ }],
45365
45597
  "pipelineAnalytics.clearTracks": [{
45366
45598
  name: "deviceId",
45367
45599
  form: "single",
@@ -45512,6 +45744,11 @@ Object.freeze({
45512
45744
  form: "single",
45513
45745
  optional: false
45514
45746
  }],
45747
+ "pipelineAnalytics.listTrackRelations": [{
45748
+ name: "deviceId",
45749
+ form: "single",
45750
+ optional: false
45751
+ }],
45515
45752
  "pipelineAnalytics.listTracks": [{
45516
45753
  name: "deviceId",
45517
45754
  form: "single",
@@ -45582,6 +45819,16 @@ Object.freeze({
45582
45819
  form: "single",
45583
45820
  optional: false
45584
45821
  }],
45822
+ "pipelineAnalytics.setTrackPurity": [{
45823
+ name: "deviceId",
45824
+ form: "single",
45825
+ optional: false
45826
+ }],
45827
+ "pipelineAnalytics.setTrackRelation": [{
45828
+ name: "deviceId",
45829
+ form: "single",
45830
+ optional: false
45831
+ }],
45585
45832
  "pipelineAnalytics.wipeAllAnalytics": [{
45586
45833
  name: "deviceId",
45587
45834
  form: "single",
@@ -45662,6 +45909,11 @@ Object.freeze({
45662
45909
  form: "single",
45663
45910
  optional: false
45664
45911
  }],
45912
+ "pipelineOrchestrator.setCameraSensors": [{
45913
+ name: "deviceId",
45914
+ form: "single",
45915
+ optional: false
45916
+ }],
45665
45917
  "pipelineOrchestrator.setCameraStepOverride": [{
45666
45918
  name: "deviceId",
45667
45919
  form: "single",
@@ -1,5 +1,5 @@
1
1
  import { h as e, l as t, u as n, y as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
2
- import { o as i, s as a } from "./responsive-F2i_EZ7a.mjs";
2
+ import { o as i, s as a } from "./responsive-BG96U0np.mjs";
3
3
  import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
4
4
  var l = a("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DflrE0ec.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-BzKM4skN.mjs";
2
2
  export { t as get, e as init };
@@ -1,6 +1,6 @@
1
1
  import { c as e, g as t, h as n, l as r, n as i, p as a, r as o, t as s, u as c, y as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
2
2
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
3
- import { n as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CEWbeCwN.mjs";
3
+ import { n as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-HasgddgR.mjs";
4
4
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5
5
  l();
6
6
  var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
@@ -1,5 +1,5 @@
1
1
  import { c as e, h as t, p as n, y as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
2
- import { s as i } from "./responsive-F2i_EZ7a.mjs";
2
+ import { s as i } from "./responsive-BG96U0np.mjs";
3
3
  var a = i("camera", [["path", {
4
4
  d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
5
5
  key: "18u6gg"
@@ -1,4 +1,4 @@
1
- import { s as e } from "./responsive-F2i_EZ7a.mjs";
1
+ import { s as e } from "./responsive-BG96U0np.mjs";
2
2
  var t = e("eye-off", [
3
3
  ["path", {
4
4
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
@@ -1,4 +1,4 @@
1
- import { s as e } from "./responsive-F2i_EZ7a.mjs";
1
+ import { s as e } from "./responsive-BG96U0np.mjs";
2
2
  var t = e("trash-2", [
3
3
  ["path", {
4
4
  d: "M10 11v6",
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-Ca-jPREF.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-B2jX6pjx.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-model-studio",
3
- "version": "1.1.183",
3
+ "version": "1.1.185",
4
4
  "description": "Custom detection model registry, conversion & distribution for CamStack",
5
5
  "keywords": [
6
6
  "camstack",