@camstack/addon-agent-ui 1.2.178 → 1.2.180

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 +72 -40
  2. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -10478,7 +10478,18 @@ var LABEL_SUPPLY_STEP_IDS = [
10478
10478
  ];
10479
10479
  /** Steps whose box a root detection can BE. */
10480
10480
  var CROP_SUPPLY_STEP_IDS = ["plate-detection", "face-detection"];
10481
- [...LABEL_SUPPLY_STEP_IDS, ...CROP_SUPPLY_STEP_IDS];
10481
+ /**
10482
+ * Steps whose per-detection MASK a root detection can carry (D737). The live
10483
+ * mask step is `segmentation` — a frame-plane refiner that runs its own model
10484
+ * once per detection crop. (`instance-segmentation` is a dormant step id that
10485
+ * no camera tree carries.)
10486
+ */
10487
+ var MASK_SUPPLY_STEP_IDS = ["segmentation"];
10488
+ [
10489
+ ...LABEL_SUPPLY_STEP_IDS,
10490
+ ...CROP_SUPPLY_STEP_IDS,
10491
+ ...MASK_SUPPLY_STEP_IDS
10492
+ ];
10482
10493
  var MODEL_FORMATS = [
10483
10494
  "onnx",
10484
10495
  "coreml",
@@ -10621,25 +10632,36 @@ var ModelLicenseSchema = preprocess((value) => typeof value === "string" ? { wei
10621
10632
  * - `crop`: the root draws the box the step would have found (`license_plate`
10622
10633
  * for plate-detection, `face` for face-detection). The box becomes a detail
10623
10634
  * child of the `parentMacro` detection that contains it — never a track.
10635
+ * - `mask`: the root's decode emits an instance mask with every detection (a
10636
+ * YOLO26-seg root, D737) — the `segmentation` step's result, carried on the
10637
+ * detection in the shape that step produces. Derived from the model's
10638
+ * postprocessor on read, never stored by an import.
10624
10639
  */
10625
- var RootStepSupplySchema = discriminatedUnion("kind", [object({
10626
- kind: literal("label"),
10627
- stepId: _enum(LABEL_SUPPLY_STEP_IDS),
10628
- labelToEffect: record(string(), string()),
10629
- uncovered: array(string()).readonly()
10630
- }), object({
10631
- kind: literal("crop"),
10632
- stepId: _enum(CROP_SUPPLY_STEP_IDS),
10633
- rootLabels: array(string()).readonly(),
10634
- parentMacro: _enum(["vehicle", "person"]),
10635
- childClass: _enum(["plate", "face"]),
10636
- /**
10637
- * The root's smaller input side, stamped on read by `rootSuppliesOf` from
10638
- * the model entry — what a step's `minRootInputPx` gate judges. Never
10639
- * stored by an import.
10640
- */
10641
- rootInputPx: number().int().positive().optional()
10642
- })]);
10640
+ var RootStepSupplySchema = discriminatedUnion("kind", [
10641
+ object({
10642
+ kind: literal("label"),
10643
+ stepId: _enum(LABEL_SUPPLY_STEP_IDS),
10644
+ labelToEffect: record(string(), string()),
10645
+ uncovered: array(string()).readonly()
10646
+ }),
10647
+ object({
10648
+ kind: literal("crop"),
10649
+ stepId: _enum(CROP_SUPPLY_STEP_IDS),
10650
+ rootLabels: array(string()).readonly(),
10651
+ parentMacro: _enum(["vehicle", "person"]),
10652
+ childClass: _enum(["plate", "face"]),
10653
+ /**
10654
+ * The root's smaller input side, stamped on read by `rootSuppliesOf` from
10655
+ * the model entry — what a step's `minRootInputPx` gate judges. Never
10656
+ * stored by an import.
10657
+ */
10658
+ rootInputPx: number().int().positive().optional()
10659
+ }),
10660
+ object({
10661
+ kind: literal("mask"),
10662
+ stepId: _enum(MASK_SUPPLY_STEP_IDS)
10663
+ })
10664
+ ]);
10643
10665
  var ModelCatalogEntrySchema = object({
10644
10666
  id: string(),
10645
10667
  name: string(),
@@ -15934,6 +15956,12 @@ method(_void(), array(string()).readonly(), { auth: "admin" }), method(object({
15934
15956
  kind: "mutation",
15935
15957
  auth: "admin"
15936
15958
  });
15959
+ var HUB_ADDRESS_ROLES = [
15960
+ "appConnections",
15961
+ "notificationTaps",
15962
+ "internal",
15963
+ "publicEndpoint"
15964
+ ];
15937
15965
  /**
15938
15966
  * Transport bounds for AI capability methods.
15939
15967
  *
@@ -20105,7 +20133,13 @@ var NcAlarmModeDelaysListSchema = array(object({
20105
20133
  * Absent = false (logged, not sent). Even when true it is not sent when that same sensor
20106
20134
  * is the one that starts the entry delay — the entry-delay notification already names it.
20107
20135
  */
20108
- notifySensorRewatched: boolean().optional()
20136
+ notifySensorRewatched: boolean().optional(),
20137
+ /**
20138
+ * D735: notify "ignored" when a sensor this arm bypassed really MOVED while armed (its own
20139
+ * change time is after the arm) and set nothing off. Absent = false (logged, not sent). A
20140
+ * re-sync, a recovery from `unavailable` or a duplicate is never announced, switch or not.
20141
+ */
20142
+ notifySensorIgnored: boolean().optional()
20109
20143
  })).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
20110
20144
  var NcAlarmModeDelaysEditListSchema = array(object({
20111
20145
  mode: AlarmArmModeSchema,
@@ -20118,7 +20152,9 @@ var NcAlarmModeDelaysEditListSchema = array(object({
20118
20152
  /** D706: set the switch, or `null` to clear it (back to the default, false). */
20119
20153
  notifyDuringEntryDelay: boolean().nullable().optional(),
20120
20154
  /** D706: set the switch, or `null` to clear it (back to the default, false). */
20121
- notifySensorRewatched: boolean().nullable().optional()
20155
+ notifySensorRewatched: boolean().nullable().optional(),
20156
+ /** D735: set the switch, or `null` to clear it (back to the default, false). */
20157
+ notifySensorIgnored: boolean().nullable().optional()
20122
20158
  })).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
20123
20159
  /** One switch of the alarm table: put ONE device on, or take it off, ONE mode's list. */
20124
20160
  var NcAlarmNonBlockingEditSchema = object({
@@ -30623,7 +30659,7 @@ var GetConnectionEndpointsResultSchema = object({
30623
30659
  localPort: AdvertisedLocalPortSchema
30624
30660
  });
30625
30661
  /**
30626
- * The address flagged for notification links. `baseUrl: null` = AUTO, which
30662
+ * The address flagged for notification taps (`notificationTaps`). `baseUrl: null` = AUTO, which
30627
30663
  * since D709 is the CamStack app link; `resolved` reports the effective value,
30628
30664
  * so the UI can show it either way.
30629
30665
  */
@@ -30658,8 +30694,8 @@ var ViewerEndpointsSchema = object({
30658
30694
  });
30659
30695
  /**
30660
30696
  * DEPRECATED compatibility shape of `getHubAddresses` (D729 amendment, kept
30661
- * one release for addons built against it): `cluster` is the `agents` role,
30662
- * `browser` the `signIn` role; `override` is the flagged address.
30697
+ * for addons built against it): `cluster` is the `internal` role, `browser`
30698
+ * the `publicEndpoint` role; `override` is the flagged address.
30663
30699
  */
30664
30700
  var HubAddressSnapshotSchema = object({
30665
30701
  override: string().nullable(),
@@ -30675,15 +30711,11 @@ var HubAddressesSchema = object({
30675
30711
  browser: HubAddressSnapshotSchema
30676
30712
  });
30677
30713
  /**
30678
- * What an address is used for (`hub-address.ts`). `viewer` is many-valued;
30679
- * `notifications`, `agents` and `signIn` are carried by at most one address.
30714
+ * What an address is used for (`hub-address.ts`, D734). `appConnections` is
30715
+ * many-valued; `notificationTaps`, `publicEndpoint` and `internal` are carried
30716
+ * by at most one address.
30680
30717
  */
30681
- var HubAddressRoleSchema = _enum([
30682
- "viewer",
30683
- "notifications",
30684
- "agents",
30685
- "signIn"
30686
- ]);
30718
+ var HubAddressRoleSchema = _enum(HUB_ADDRESS_ROLES);
30687
30719
  var RoleSourceSchema = _enum([
30688
30720
  "flagged",
30689
30721
  "auto",
@@ -30697,8 +30729,8 @@ var HubAddressRoleResolutionSchema = object({
30697
30729
  resolved: string().nullable(),
30698
30730
  source: RoleSourceSchema
30699
30731
  });
30700
- var HubViewerResolutionSchema = object({
30701
- /** The addresses flagged `viewer`, or empty = automatic. */
30732
+ var HubAppConnectionsResolutionSchema = object({
30733
+ /** The addresses flagged `appConnections`, or empty = automatic. */
30702
30734
  flagged: array(string()).readonly(),
30703
30735
  /** What the apps race right now. */
30704
30736
  resolved: array(string()).readonly(),
@@ -30718,10 +30750,10 @@ var HubAddressBookSchema = object({
30718
30750
  eligible: array(HubAddressRoleSchema).readonly()
30719
30751
  })).readonly(),
30720
30752
  roles: object({
30721
- viewer: HubViewerResolutionSchema,
30722
- notifications: HubAddressRoleResolutionSchema,
30723
- agents: HubAddressRoleResolutionSchema,
30724
- signIn: HubAddressRoleResolutionSchema
30753
+ appConnections: HubAppConnectionsResolutionSchema,
30754
+ notificationTaps: HubAddressRoleResolutionSchema,
30755
+ internal: HubAddressRoleResolutionSchema,
30756
+ publicEndpoint: HubAddressRoleResolutionSchema
30725
30757
  }),
30726
30758
  /** The `hub=` an app link carries (D709), or null. */
30727
30759
  appLinkHub: string().nullable()
@@ -30769,7 +30801,7 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
30769
30801
  * tunnel always emits `https://` regardless. */
30770
30802
  scheme: _enum(["http", "https"]).optional(),
30771
30803
  /** Append the CamStack app link entry (`kind: 'app-link'`, D709) —
30772
- * an address notification links can be flagged with, not a hub
30804
+ * an address notification taps can be flagged with, not a hub
30773
30805
  * route. Default `false`: racers and rankers never see it. */
30774
30806
  includeAppLink: boolean().optional()
30775
30807
  }), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), ViewerEndpointsSchema), method(object({ baseUrls: array(string()).readonly() }), ViewerEndpointsSchema, { kind: "mutation" }), method(object({ scheme: _enum(["http", "https"]).optional() }).optional(), HubAddressBookSchema), method(object({
@@ -48682,7 +48714,7 @@ var AgentUIAddon = class extends BaseAddon {
48682
48714
  capability: adminUiCapability,
48683
48715
  provider: {
48684
48716
  getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
48685
- getVersion: async () => ({ version: "1.2.178" })
48717
+ getVersion: async () => ({ version: "1.2.180" })
48686
48718
  }
48687
48719
  }];
48688
48720
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-agent-ui",
3
- "version": "1.2.178",
3
+ "version": "1.2.180",
4
4
  "description": "Agent UI — lightweight status dashboard served by every agent node",
5
5
  "keywords": [
6
6
  "camstack",