@camstack/addon-agent-ui 1.2.156 → 1.2.158

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 (2) hide show
  1. package/dist/addon.js +300 -48
  2. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -5371,7 +5371,7 @@ var ZodIssueCode = {
5371
5371
  var ZodFirstPartyTypeKind;
5372
5372
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5373
5373
  //#endregion
5374
- //#region ../types/dist/sleep-C-v96WpE.mjs
5374
+ //#region ../types/dist/sleep-gU6hqv4_.mjs
5375
5375
  /**
5376
5376
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5377
5377
  * window to float samples (D455).
@@ -7418,7 +7418,59 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
7418
7418
  return DeviceRole;
7419
7419
  }({});
7420
7420
  //#endregion
7421
- //#region ../types/dist/composition-BK-GTFYb.mjs
7421
+ //#region ../types/dist/composition-Dq42XWp0.mjs
7422
+ /**
7423
+ * The ffmpeg build every CamStack node downloads, per platform and arch.
7424
+ *
7425
+ * ## Why a download, on every node, including the container
7426
+ *
7427
+ * The version of ffmpeg used to be CODE: baked into the image, changeable only
7428
+ * by rebuilding and rolling it. Now it is DATA — this file states the release,
7429
+ * and a node that boots with a different one downloads it. Changing ffmpeg is a
7430
+ * framework bump, not an image rebuild.
7431
+ *
7432
+ * It also settles the licence question by removing it. FFmpeg's licence is
7433
+ * chosen at compile time: the core is LGPL 2.1+, `--enable-gpl` makes it GPL
7434
+ * (for x264/x265), `--enable-version3` makes that v3, and `--enable-nonfree`
7435
+ * makes the result undistributable. These are GPL v3 builds, and we do not
7436
+ * distribute them: the user's own node fetches the archive from the project
7437
+ * that publishes it, so we convey no GPL work and inherit none of the
7438
+ * obligations that come with conveying one. That is the whole reason the image
7439
+ * no longer installs ffmpeg at all — not a technical preference.
7440
+ *
7441
+ * ## Why jellyfin-ffmpeg
7442
+ *
7443
+ * One vendor covering linux-amd64, linux-arm64, darwin-arm64 and darwin-x64
7444
+ * from one release, with the widest hardware surface of anything maintained:
7445
+ * VAAPI, QSV, NVENC/NVDEC, AMF, Vulkan, OpenCL and DRM on amd64, plus Rockchip
7446
+ * MPP on arm64. It reaches the vendor libraries through dlopen trampolines,
7447
+ * so the binary is not linked against a driver stack it may not find.
7448
+ *
7449
+ * **What it still needs from the host, measured 2026-09-19.** On the Unraid
7450
+ * HOST, which has no libva, `-vaapi_device` aborts the process outright —
7451
+ * `implib-gen: libva-drm.so.2: failed to load library ... Assertion '0 &&
7452
+ * "Assertion in generated code"' failed`. Inside our container, which installs
7453
+ * libva plus the iHD driver, the same command encodes: verified end to end with
7454
+ * `testsrc → format=nv12,hwupload → h264_vaapi`. So the image drops ffmpeg and
7455
+ * KEEPS the Intel media stack; the drivers are the part a binary cannot bring.
7456
+ *
7457
+ * ## Why each artifact carries a checksum and a claim
7458
+ *
7459
+ * The download is now the only source, so `sha256` is verified before anything
7460
+ * is extracted — jellyfin publishes no checksums on its release assets, so
7461
+ * these are ours, taken at the version bump. And `expectedHwaccels` is what the
7462
+ * build is supposed to be able to do: a binary that probes short of its own
7463
+ * claim is a source that changed under us, which is precisely what went
7464
+ * unnoticed for months when a static build turned out to carry no VAAPI at all
7465
+ * (D536).
7466
+ */
7467
+ /** The pinned jellyfin-ffmpeg release. Changing this is the version change. */
7468
+ var FFMPEG_RELEASE = "8.1.2-5";
7469
+ var BASE = `https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${FFMPEG_RELEASE}`;
7470
+ function portable(target) {
7471
+ return `${BASE}/jellyfin-ffmpeg_${FFMPEG_RELEASE}_portable_${target}-gpl.tar.xz`;
7472
+ }
7473
+ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
7422
7474
  /**
7423
7475
  * LA tabella "quale booleano di questo tipo di device conta come ALTO", e il
7424
7476
  * valutatore puro del suo FRONTE.
@@ -8890,6 +8942,82 @@ var ArchivedDebugNoteQueryInputSchema = object({
8890
8942
  /** Max rows returned, newest-first. */
8891
8943
  limit: number().int().min(1).max(1e3).optional()
8892
8944
  });
8945
+ var TrackRelationKindSchema = _enum(["same-subject", "different-subjects"]);
8946
+ var TrackSideSchema = _enum(["before", "after"]);
8947
+ var TrackPurityValueSchema = _enum(["mixed", "not-a-subject"]);
8948
+ var TrackRelationSchema = object({
8949
+ id: string(),
8950
+ deviceId: number().int(),
8951
+ leftTrackId: string(),
8952
+ rightTrackId: string(),
8953
+ leftSide: TrackSideSchema.nullable(),
8954
+ rightSide: TrackSideSchema.nullable(),
8955
+ relation: TrackRelationKindSchema,
8956
+ presence: literal("continuous").nullable(),
8957
+ leftStartedAt: number().int().nullable(),
8958
+ rightStartedAt: number().int().nullable(),
8959
+ createdAt: number().int(),
8960
+ updatedAt: number().int(),
8961
+ author: string().nullable()
8962
+ });
8963
+ var TrackPuritySchema = object({
8964
+ id: string(),
8965
+ deviceId: number().int(),
8966
+ sourceTrackId: string(),
8967
+ purity: TrackPurityValueSchema,
8968
+ switchAtMs: number().int().nullable(),
8969
+ startedAt: number().int().nullable(),
8970
+ createdAt: number().int(),
8971
+ updatedAt: number().int(),
8972
+ author: string().nullable()
8973
+ });
8974
+ var SetTrackRelationInputSchema = object({
8975
+ deviceId: number().int(),
8976
+ trackId: string().min(1),
8977
+ otherTrackId: string().min(1),
8978
+ relation: TrackRelationKindSchema,
8979
+ presence: literal("continuous").optional(),
8980
+ trackSide: TrackSideSchema.optional(),
8981
+ otherSide: TrackSideSchema.optional()
8982
+ });
8983
+ var ClearTrackRelationInputSchema = object({
8984
+ deviceId: number().int(),
8985
+ trackId: string().min(1),
8986
+ otherTrackId: string().min(1)
8987
+ });
8988
+ var ClearTrackRelationResultSchema = object({ cleared: boolean() });
8989
+ var SetTrackPurityInputSchema = object({
8990
+ deviceId: number().int(),
8991
+ trackId: string().min(1),
8992
+ purity: _enum([
8993
+ "pure",
8994
+ "mixed",
8995
+ "not-a-subject"
8996
+ ]),
8997
+ switchAtMs: number().int().optional()
8998
+ });
8999
+ /** `null` when `pure` cleared the row. */
9000
+ var SetTrackPurityResultSchema = object({ purity: TrackPuritySchema.nullable() });
9001
+ var ListTrackRelationsInputSchema = object({
9002
+ deviceId: number().int(),
9003
+ trackId: string().optional(),
9004
+ since: number().int().optional(),
9005
+ until: number().int().optional(),
9006
+ limit: number().int().min(1).max(5e3).optional()
9007
+ });
9008
+ var ListTrackRelationsResultSchema = object({
9009
+ relations: array(TrackRelationSchema).readonly(),
9010
+ purities: array(TrackPuritySchema).readonly(),
9011
+ truncated: boolean()
9012
+ });
9013
+ _enum([
9014
+ "unknown-track",
9015
+ "cross-device",
9016
+ "self-relation",
9017
+ "contradiction",
9018
+ "switch-outside-track",
9019
+ "switch-needs-mixed"
9020
+ ]);
8893
9021
  /**
8894
9022
  * Ops-log — the durable, append-only operations audit shared by the
8895
9023
  * recordings and events management surfaces.
@@ -12977,6 +13105,70 @@ var CompositionBlockStateSchema = object({
12977
13105
  reason: string().optional(),
12978
13106
  fields: array(CompositionFieldStateSchema)
12979
13107
  });
13108
+ var NUMBER = {
13109
+ kind: "fixed",
13110
+ result: ["number"]
13111
+ };
13112
+ var BOOLEAN = {
13113
+ kind: "fixed",
13114
+ result: ["boolean"]
13115
+ };
13116
+ Object.freeze({
13117
+ min: NUMBER,
13118
+ max: NUMBER,
13119
+ abs: NUMBER,
13120
+ floor: NUMBER,
13121
+ ceil: NUMBER,
13122
+ sqrt: NUMBER,
13123
+ round: NUMBER,
13124
+ pow: NUMBER,
13125
+ clamp: NUMBER,
13126
+ avg: NUMBER,
13127
+ sum: NUMBER,
13128
+ age: NUMBER,
13129
+ convert: NUMBER,
13130
+ coalesce: { kind: "coalesce" },
13131
+ any: BOOLEAN,
13132
+ all: BOOLEAN,
13133
+ within: BOOLEAN,
13134
+ latest: {
13135
+ kind: "fixed",
13136
+ result: ["number", "null"]
13137
+ },
13138
+ number: {
13139
+ kind: "fixed",
13140
+ result: ["number", "null"]
13141
+ },
13142
+ rose: {
13143
+ kind: "fixed",
13144
+ result: ["number", "null"]
13145
+ },
13146
+ count: NUMBER
13147
+ });
13148
+ `${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
13149
+ /**
13150
+ * What a composition may BUILD on a device type (G2, D676): the caps a new
13151
+ * device of that type, or an existing one that lacks them, can be given. The
13152
+ * blockers are the validator's own refusal codes, and a spec compares this
13153
+ * listing with `planComposition` for every capability — the editor can never
13154
+ * offer a feature the save would refuse for the same reason.
13155
+ */
13156
+ var ComposableFieldSchema = object({
13157
+ path: string(),
13158
+ kind: CompositionFieldKindSchema,
13159
+ nullable: boolean(),
13160
+ required: boolean(),
13161
+ enumValues: array(string()).optional()
13162
+ });
13163
+ var ComposableCapabilitiesSchema = object({ caps: array(object({
13164
+ cap: string(),
13165
+ fields: array(ComposableFieldSchema),
13166
+ /** Present for an item-array cap (`consumables.items`). */
13167
+ itemArray: object({
13168
+ path: string(),
13169
+ keyField: string()
13170
+ }).optional()
13171
+ })) });
12980
13172
  /** Where a block runs. The operator chooses — a block driving a device on an
12981
13173
  * agent is the reason placement is not fixed to the hub. */
12982
13174
  var CoreBlockPlacementSchema = union([literal("hub"), string().min(1)]);
@@ -13141,7 +13333,7 @@ method(object({}), object({ blocks: array(CoreBlockSchema) }), { auth: "admin" }
13141
13333
  }), method(object({ blockId: string() }), CompositionGetReadSchema, { auth: "admin" }), method(object({}), CompositionListReadSchema, { auth: "admin" }), method(object({
13142
13334
  addonId: string().min(1),
13143
13335
  stableId: string().min(1)
13144
- }), CompositionCustomizationReadSchema, { auth: "admin" }), method(object({
13336
+ }), CompositionCustomizationReadSchema, { auth: "admin" }), method(object({ deviceType: _enum(DeviceType) }), ComposableCapabilitiesSchema, { auth: "admin" }), method(object({
13145
13337
  composition: CompositionSchema,
13146
13338
  blockId: string().optional()
13147
13339
  }), CompositionValidationSchema, {
@@ -20041,7 +20233,7 @@ function cameraSensorRefKey(ref) {
20041
20233
  }
20042
20234
  /** CS-1 accepts exactly one mode; CS-2 (D673) widens it to confirm / replace. */
20043
20235
  var CameraSensorsModeSchema = _enum(["in-addition"]);
20044
- object({
20236
+ var CameraSensorsConfigSchema = object({
20045
20237
  mode: CameraSensorsModeSchema,
20046
20238
  sensors: array(CameraSensorRefSchema).min(1).max(8)
20047
20239
  }).superRefine((value, ctx) => {
@@ -21031,6 +21223,21 @@ var ObjectEventSchema = object({
21031
21223
  keyFrameMediaId: number().int().optional(),
21032
21224
  /** Populated by B5 (recording playback URL for this event). */
21033
21225
  mediaUrl: string().optional(),
21226
+ /**
21227
+ * When the change this row records HAPPENED, epoch ms, when that is earlier
21228
+ * than {@link timestamp} and the producer could date it (D684).
21229
+ *
21230
+ * Set on a package PICK-UP row only: its `timestamp` is when the departure
21231
+ * was CONCLUDED — five minutes of unseen observed time after the parcel went
21232
+ * — and a notification's footage has to be cut around the pick-up, not the
21233
+ * empty doormat after it (D682). Stored so every path that rebuilds a
21234
+ * notification subject from the row (the boot reconcile, a dry-run) anchors
21235
+ * on the same instant the live hook did.
21236
+ *
21237
+ * `timestamp` keeps its meaning. Absent on every other row and on every
21238
+ * pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
21239
+ */
21240
+ observedAt: number().optional(),
21034
21241
  /** The parent track's key-event importance [0,1], propagated to every object
21035
21242
  * event of the track (so an event row can be sorted by importance without a
21036
21243
  * track join). Absent on legacy rows / before the track was scored. */
@@ -21940,7 +22147,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
21940
22147
  deviceId: number(),
21941
22148
  trackId: string(),
21942
22149
  flags: TrackFlagsPatchSchema
21943
- }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(BirthDecisionQueryInputSchema, array(BirthDecisionRecordSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
22150
+ }), 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, {
21944
22151
  kind: "query",
21945
22152
  auth: "admin"
21946
22153
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -24098,6 +24305,28 @@ var NodeInferenceDevicesSchema = object({
24098
24305
  reachable: boolean(),
24099
24306
  devices: array(NodeInferenceDeviceSchema).readonly()
24100
24307
  });
24308
+ /**
24309
+ * Pipeline Orchestrator capability — global load balancer + camera dispatcher.
24310
+ *
24311
+ * Lives on the hub. Tracks the camera-to-agent assignment map, listens to
24312
+ * device lifecycle events, queries each runner's capacity + hardware
24313
+ * profile, and dispatches `attachCamera` / `detachCamera` cap calls to the
24314
+ * appropriate runner instances. Persists assignments via the multi-level
24315
+ * settings store so they survive hub restarts.
24316
+ *
24317
+ * Strictly the control plane: never sees a frame, never calls inference,
24318
+ * never drains queues. The runner does that work locally on each agent.
24319
+ */
24320
+ /**
24321
+ * The input of `setCameraSensors` (G5, D676): the ONE typed write path of a
24322
+ * camera's attached sensors (D672). `config: null` removes the attachment —
24323
+ * the camera reads `not-configured` again, never `unreadable`.
24324
+ */
24325
+ var SetCameraSensorsInputSchema = object({
24326
+ deviceId: number().int().nonnegative(),
24327
+ /** `null` removes the attachment: the camera goes back to `not-configured`. */
24328
+ config: CameraSensorsConfigSchema.nullable()
24329
+ });
24101
24330
  method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24102
24331
  kind: "mutation",
24103
24332
  auth: "admin"
@@ -24252,7 +24481,10 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24252
24481
  }), CameraSwitchGroupSchema, {
24253
24482
  kind: "mutation",
24254
24483
  auth: "admin"
24255
- }), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), DiskReconcileJobSchema, {
24484
+ }), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(SetCameraSensorsInputSchema, object({ success: literal(true) }), {
24485
+ kind: "mutation",
24486
+ auth: "admin"
24487
+ }), method(_void(), DiskReconcileJobSchema, {
24256
24488
  kind: "mutation",
24257
24489
  auth: "admin"
24258
24490
  }), method(_void(), DiskReconcileJobSchema, { auth: "admin" }), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
@@ -35153,47 +35385,6 @@ DeviceType.Camera, method(object({
35153
35385
  detection: array(ZoneRuleSchema).readonly(),
35154
35386
  package: array(ZoneRuleSchema).readonly()
35155
35387
  });
35156
- var NUMBER = {
35157
- kind: "fixed",
35158
- result: ["number"]
35159
- };
35160
- var BOOLEAN = {
35161
- kind: "fixed",
35162
- result: ["boolean"]
35163
- };
35164
- Object.freeze({
35165
- min: NUMBER,
35166
- max: NUMBER,
35167
- abs: NUMBER,
35168
- floor: NUMBER,
35169
- ceil: NUMBER,
35170
- sqrt: NUMBER,
35171
- round: NUMBER,
35172
- pow: NUMBER,
35173
- clamp: NUMBER,
35174
- avg: NUMBER,
35175
- sum: NUMBER,
35176
- age: NUMBER,
35177
- convert: NUMBER,
35178
- coalesce: { kind: "coalesce" },
35179
- any: BOOLEAN,
35180
- all: BOOLEAN,
35181
- within: BOOLEAN,
35182
- latest: {
35183
- kind: "fixed",
35184
- result: ["number", "null"]
35185
- },
35186
- number: {
35187
- kind: "fixed",
35188
- result: ["number", "null"]
35189
- },
35190
- rose: {
35191
- kind: "fixed",
35192
- result: ["number", "null"]
35193
- },
35194
- count: NUMBER
35195
- });
35196
- `${COMPOSED_DEVICE_STABLE_ID_PREFIX}`;
35197
35388
  /**
35198
35389
  * Accessory device helpers — shared across drivers.
35199
35390
  *
@@ -37616,6 +37807,12 @@ Object.freeze({
37616
37807
  addonId: null,
37617
37808
  access: "view"
37618
37809
  },
37810
+ "coreBlocks.listComposableCaps": {
37811
+ capName: "core-blocks",
37812
+ capScope: "system",
37813
+ addonId: null,
37814
+ access: "view"
37815
+ },
37619
37816
  "coreBlocks.listCompositions": {
37620
37817
  capName: "core-blocks",
37621
37818
  capScope: "system",
@@ -40430,6 +40627,12 @@ Object.freeze({
40430
40627
  addonId: null,
40431
40628
  access: "create"
40432
40629
  },
40630
+ "pipelineAnalytics.clearTrackRelation": {
40631
+ capName: "pipeline-analytics",
40632
+ capScope: "device",
40633
+ addonId: null,
40634
+ access: "delete"
40635
+ },
40433
40636
  "pipelineAnalytics.clearTracks": {
40434
40637
  capName: "pipeline-analytics",
40435
40638
  capScope: "device",
@@ -40682,6 +40885,12 @@ Object.freeze({
40682
40885
  addonId: null,
40683
40886
  access: "view"
40684
40887
  },
40888
+ "pipelineAnalytics.listTrackRelations": {
40889
+ capName: "pipeline-analytics",
40890
+ capScope: "device",
40891
+ addonId: null,
40892
+ access: "view"
40893
+ },
40685
40894
  "pipelineAnalytics.listTracks": {
40686
40895
  capName: "pipeline-analytics",
40687
40896
  capScope: "device",
@@ -40796,6 +41005,18 @@ Object.freeze({
40796
41005
  addonId: null,
40797
41006
  access: "create"
40798
41007
  },
41008
+ "pipelineAnalytics.setTrackPurity": {
41009
+ capName: "pipeline-analytics",
41010
+ capScope: "device",
41011
+ addonId: null,
41012
+ access: "create"
41013
+ },
41014
+ "pipelineAnalytics.setTrackRelation": {
41015
+ capName: "pipeline-analytics",
41016
+ capScope: "device",
41017
+ addonId: null,
41018
+ access: "create"
41019
+ },
40799
41020
  "pipelineAnalytics.startStorageMigrationMove": {
40800
41021
  capName: "pipeline-analytics",
40801
41022
  capScope: "device",
@@ -41300,6 +41521,12 @@ Object.freeze({
41300
41521
  addonId: null,
41301
41522
  access: "create"
41302
41523
  },
41524
+ "pipelineOrchestrator.setCameraSensors": {
41525
+ capName: "pipeline-orchestrator",
41526
+ capScope: "system",
41527
+ addonId: null,
41528
+ access: "create"
41529
+ },
41303
41530
  "pipelineOrchestrator.setCameraStepOverride": {
41304
41531
  capName: "pipeline-orchestrator",
41305
41532
  capScope: "system",
@@ -44710,6 +44937,11 @@ Object.freeze({
44710
44937
  form: "single",
44711
44938
  optional: false
44712
44939
  }],
44940
+ "pipelineAnalytics.clearTrackRelation": [{
44941
+ name: "deviceId",
44942
+ form: "single",
44943
+ optional: false
44944
+ }],
44713
44945
  "pipelineAnalytics.clearTracks": [{
44714
44946
  name: "deviceId",
44715
44947
  form: "single",
@@ -44860,6 +45092,11 @@ Object.freeze({
44860
45092
  form: "single",
44861
45093
  optional: false
44862
45094
  }],
45095
+ "pipelineAnalytics.listTrackRelations": [{
45096
+ name: "deviceId",
45097
+ form: "single",
45098
+ optional: false
45099
+ }],
44863
45100
  "pipelineAnalytics.listTracks": [{
44864
45101
  name: "deviceId",
44865
45102
  form: "single",
@@ -44930,6 +45167,16 @@ Object.freeze({
44930
45167
  form: "single",
44931
45168
  optional: false
44932
45169
  }],
45170
+ "pipelineAnalytics.setTrackPurity": [{
45171
+ name: "deviceId",
45172
+ form: "single",
45173
+ optional: false
45174
+ }],
45175
+ "pipelineAnalytics.setTrackRelation": [{
45176
+ name: "deviceId",
45177
+ form: "single",
45178
+ optional: false
45179
+ }],
44933
45180
  "pipelineAnalytics.wipeAllAnalytics": [{
44934
45181
  name: "deviceId",
44935
45182
  form: "single",
@@ -45010,6 +45257,11 @@ Object.freeze({
45010
45257
  form: "single",
45011
45258
  optional: false
45012
45259
  }],
45260
+ "pipelineOrchestrator.setCameraSensors": [{
45261
+ name: "deviceId",
45262
+ form: "single",
45263
+ optional: false
45264
+ }],
45013
45265
  "pipelineOrchestrator.setCameraStepOverride": [{
45014
45266
  name: "deviceId",
45015
45267
  form: "single",
@@ -46666,7 +46918,7 @@ var AgentUIAddon = class extends BaseAddon {
46666
46918
  capability: adminUiCapability,
46667
46919
  provider: {
46668
46920
  getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
46669
- getVersion: async () => ({ version: "1.2.156" })
46921
+ getVersion: async () => ({ version: "1.2.158" })
46670
46922
  }
46671
46923
  }];
46672
46924
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-agent-ui",
3
- "version": "1.2.156",
3
+ "version": "1.2.158",
4
4
  "description": "Agent UI — lightweight status dashboard served by every agent node",
5
5
  "keywords": [
6
6
  "camstack",