@camstack/addon-agent-ui 1.2.157 → 1.2.159

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 +211 -7
  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).
@@ -8942,6 +8942,82 @@ var ArchivedDebugNoteQueryInputSchema = object({
8942
8942
  /** Max rows returned, newest-first. */
8943
8943
  limit: number().int().min(1).max(1e3).optional()
8944
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
+ ]);
8945
9021
  /**
8946
9022
  * Ops-log — the durable, append-only operations audit shared by the
8947
9023
  * recordings and events management surfaces.
@@ -18281,8 +18357,14 @@ var NcSensorTransitionSchema = _enum(["raised", "cleared"]);
18281
18357
  /** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
18282
18358
  var NcZoneConditionSchema = object({
18283
18359
  ids: array(string().min(1)).min(1),
18284
- /** Quantifier over `ids` — at least one / every one visited. */
18285
- match: _enum(["any", "all"]).default("any")
18360
+ /**
18361
+ * LEGACY quantifier over `ids`. Absent = `any` (at least one visited), which
18362
+ * is what both editors mean and all they write since D690: "all of" was
18363
+ * removed from the editors because on an immediate rule it asked one
18364
+ * detection to stand in every zone at once. Still ACCEPTED, and `all` still
18365
+ * evaluated, so a stored rule keeps parsing and meaning what it meant.
18366
+ */
18367
+ match: _enum(["any", "all"]).optional()
18286
18368
  });
18287
18369
  /**
18288
18370
  * The P1 condition set — a flat AND of groups; absent group = pass;
@@ -22062,7 +22144,8 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
22062
22144
  trackIds: array(string()).min(1)
22063
22145
  }), object({
22064
22146
  deleted: number().int(),
22065
- failed: array(string()).readonly()
22147
+ failed: array(string()).readonly(),
22148
+ sparedMediaIds: array(number().int()).readonly().optional()
22066
22149
  }), {
22067
22150
  kind: "mutation",
22068
22151
  auth: "admin"
@@ -22071,7 +22154,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
22071
22154
  deviceId: number(),
22072
22155
  trackId: string(),
22073
22156
  flags: TrackFlagsPatchSchema
22074
- }), TrackFlagsSchema, { kind: "mutation" }), method(ArchivedDebugNoteQueryInputSchema, array(ArchivedDebugNoteSchema).readonly(), { kind: "query" }), method(BirthDecisionQueryInputSchema, array(BirthDecisionRecordSchema).readonly(), { kind: "query" }), method(object({}), EventStoreFootprintSchema, {
22157
+ }), 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, {
22075
22158
  kind: "query",
22076
22159
  auth: "admin"
22077
22160
  }), method(object({ deviceId: number().int().optional() }), EventMediaKindBreakdownSchema, {
@@ -24251,7 +24334,42 @@ var SetCameraSensorsInputSchema = object({
24251
24334
  /** `null` removes the attachment: the camera goes back to `not-configured`. */
24252
24335
  config: CameraSensorsConfigSchema.nullable()
24253
24336
  });
24254
- method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24337
+ /**
24338
+ * Why an early occupancy look (D691) was not scheduled.
24339
+ *
24340
+ * - `unknown-camera` — no session was ever dispatched for it, so there is no
24341
+ * node and no config to attach a burst with.
24342
+ * - `out-of-range` — the ask is negative or further out than the orchestrator
24343
+ * will hold a timer for; the parked-object cadence is the answer there.
24344
+ * - `no-burst-producer` — this build has no burst producer at all.
24345
+ * - `already-looked` — this camera's ONE early look since its last session has
24346
+ * been spent. A look's own burst can re-arm a flickering flip, and a look
24347
+ * per arm would chain a burst every ~30 s forever (review H2); the next
24348
+ * real session re-arms the budget.
24349
+ */
24350
+ var OccupancyLookRefusalSchema = _enum([
24351
+ "unknown-camera",
24352
+ "out-of-range",
24353
+ "no-burst-producer",
24354
+ "already-looked"
24355
+ ]);
24356
+ method(object({
24357
+ deviceId: number().int().nonnegative(),
24358
+ /** How long from NOW until the pending flip's sustain window ends. RELATIVE,
24359
+ * so the caller's clock and the orchestrator's never have to agree. */
24360
+ afterMs: number().finite(),
24361
+ /** Why, for the log. */
24362
+ reason: string()
24363
+ }), object({
24364
+ scheduled: boolean(),
24365
+ /** When `scheduled`: how long until the burst is dialled. */
24366
+ dueInMs: number().optional(),
24367
+ /** When not `scheduled`: why. */
24368
+ refusedBecause: OccupancyLookRefusalSchema.optional()
24369
+ }), {
24370
+ kind: "mutation",
24371
+ auth: "admin"
24372
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
24255
24373
  kind: "mutation",
24256
24374
  auth: "admin"
24257
24375
  }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
@@ -40551,6 +40669,12 @@ Object.freeze({
40551
40669
  addonId: null,
40552
40670
  access: "create"
40553
40671
  },
40672
+ "pipelineAnalytics.clearTrackRelation": {
40673
+ capName: "pipeline-analytics",
40674
+ capScope: "device",
40675
+ addonId: null,
40676
+ access: "delete"
40677
+ },
40554
40678
  "pipelineAnalytics.clearTracks": {
40555
40679
  capName: "pipeline-analytics",
40556
40680
  capScope: "device",
@@ -40803,6 +40927,12 @@ Object.freeze({
40803
40927
  addonId: null,
40804
40928
  access: "view"
40805
40929
  },
40930
+ "pipelineAnalytics.listTrackRelations": {
40931
+ capName: "pipeline-analytics",
40932
+ capScope: "device",
40933
+ addonId: null,
40934
+ access: "view"
40935
+ },
40806
40936
  "pipelineAnalytics.listTracks": {
40807
40937
  capName: "pipeline-analytics",
40808
40938
  capScope: "device",
@@ -40917,6 +41047,18 @@ Object.freeze({
40917
41047
  addonId: null,
40918
41048
  access: "create"
40919
41049
  },
41050
+ "pipelineAnalytics.setTrackPurity": {
41051
+ capName: "pipeline-analytics",
41052
+ capScope: "device",
41053
+ addonId: null,
41054
+ access: "create"
41055
+ },
41056
+ "pipelineAnalytics.setTrackRelation": {
41057
+ capName: "pipeline-analytics",
41058
+ capScope: "device",
41059
+ addonId: null,
41060
+ access: "create"
41061
+ },
40920
41062
  "pipelineAnalytics.startStorageMigrationMove": {
40921
41063
  capName: "pipeline-analytics",
40922
41064
  capScope: "device",
@@ -41355,6 +41497,12 @@ Object.freeze({
41355
41497
  addonId: null,
41356
41498
  access: "delete"
41357
41499
  },
41500
+ "pipelineOrchestrator.requestOccupancyLook": {
41501
+ capName: "pipeline-orchestrator",
41502
+ capScope: "system",
41503
+ addonId: null,
41504
+ access: "create"
41505
+ },
41358
41506
  "pipelineOrchestrator.resetNodePipelineDefaults": {
41359
41507
  capName: "pipeline-orchestrator",
41360
41508
  capScope: "system",
@@ -44837,6 +44985,11 @@ Object.freeze({
44837
44985
  form: "single",
44838
44986
  optional: false
44839
44987
  }],
44988
+ "pipelineAnalytics.clearTrackRelation": [{
44989
+ name: "deviceId",
44990
+ form: "single",
44991
+ optional: false
44992
+ }],
44840
44993
  "pipelineAnalytics.clearTracks": [{
44841
44994
  name: "deviceId",
44842
44995
  form: "single",
@@ -44987,6 +45140,11 @@ Object.freeze({
44987
45140
  form: "single",
44988
45141
  optional: false
44989
45142
  }],
45143
+ "pipelineAnalytics.listTrackRelations": [{
45144
+ name: "deviceId",
45145
+ form: "single",
45146
+ optional: false
45147
+ }],
44990
45148
  "pipelineAnalytics.listTracks": [{
44991
45149
  name: "deviceId",
44992
45150
  form: "single",
@@ -45057,6 +45215,16 @@ Object.freeze({
45057
45215
  form: "single",
45058
45216
  optional: false
45059
45217
  }],
45218
+ "pipelineAnalytics.setTrackPurity": [{
45219
+ name: "deviceId",
45220
+ form: "single",
45221
+ optional: false
45222
+ }],
45223
+ "pipelineAnalytics.setTrackRelation": [{
45224
+ name: "deviceId",
45225
+ form: "single",
45226
+ optional: false
45227
+ }],
45060
45228
  "pipelineAnalytics.wipeAllAnalytics": [{
45061
45229
  name: "deviceId",
45062
45230
  form: "single",
@@ -45127,6 +45295,11 @@ Object.freeze({
45127
45295
  form: "single",
45128
45296
  optional: false
45129
45297
  }],
45298
+ "pipelineOrchestrator.requestOccupancyLook": [{
45299
+ name: "deviceId",
45300
+ form: "single",
45301
+ optional: false
45302
+ }],
45130
45303
  "pipelineOrchestrator.resolvePipeline": [{
45131
45304
  name: "deviceId",
45132
45305
  form: "single",
@@ -46364,6 +46537,37 @@ var STATE_SUMMARY_VARS = [
46364
46537
  [...RULE_TEXT],
46365
46538
  ...STATE_SUMMARY_VARS
46366
46539
  ];
46540
+ new Set([
46541
+ "disarmed",
46542
+ "armed_home",
46543
+ "armed_away",
46544
+ "armed_night",
46545
+ "armed_vacation",
46546
+ "armed_custom_bypass",
46547
+ "arming",
46548
+ "disarming",
46549
+ "pending",
46550
+ "triggered",
46551
+ "open",
46552
+ "opening",
46553
+ "closing",
46554
+ "closed",
46555
+ "stopped",
46556
+ "locked",
46557
+ "unlocked",
46558
+ "locking",
46559
+ "unlocking",
46560
+ "jammed",
46561
+ "on",
46562
+ "off",
46563
+ "home",
46564
+ "not_home",
46565
+ "matched",
46566
+ "diverged",
46567
+ "unknown",
46568
+ "latched",
46569
+ "live"
46570
+ ]);
46367
46571
  /**
46368
46572
  * TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
46369
46573
  *
@@ -46798,7 +47002,7 @@ var AgentUIAddon = class extends BaseAddon {
46798
47002
  capability: adminUiCapability,
46799
47003
  provider: {
46800
47004
  getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
46801
- getVersion: async () => ({ version: "1.2.157" })
47005
+ getVersion: async () => ({ version: "1.2.159" })
46802
47006
  }
46803
47007
  }];
46804
47008
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-agent-ui",
3
- "version": "1.2.157",
3
+ "version": "1.2.159",
4
4
  "description": "Agent UI — lightweight status dashboard served by every agent node",
5
5
  "keywords": [
6
6
  "camstack",