@camstack/addon-model-studio 1.1.169 → 1.1.170

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-WwZvrN_o.mjs → MotionZonesSettings-BQUO-o7V.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-eoz9NK5G.mjs → PrivacyMaskSettings-DNTptTqU.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-BV4pet19.mjs → SceneMonitorEditor-DlFCIgLK.mjs} +3 -3
  4. package/dist/_stub.js +10 -10
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-B1nK3YSf.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-CzKIbASt.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-wbtR-IuO.mjs +26 -0
  7. package/dist/{hostInit-Cud424l-.mjs → hostInit-CqNbveFJ.mjs} +2 -2
  8. package/dist/model-studio.addon.js +242 -41
  9. package/dist/model-studio.addon.mjs +242 -41
  10. package/dist/{player-overlays-Cxpzecy1.mjs → player-overlays-BQcXFid_.mjs} +1 -1
  11. package/dist/remoteEntry.js +1 -1
  12. package/dist/{responsive-C1StxoX1.mjs → responsive-jf0lxp6K.mjs} +1 -1
  13. package/dist/{scene-monitor-copy-b4S8KzJH.mjs → scene-monitor-copy-CncglTT-.mjs} +1 -1
  14. package/dist/{square-BzuCtKO-.mjs → square-CKSQ7rAe.mjs} +1 -1
  15. package/dist/{trash-2-CWtVmull.mjs → trash-2-h_VbLaR6.mjs} +1 -1
  16. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CgCMXxAb.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CxcjtoPK.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-BvVNN6qP.mjs +0 -26
@@ -5863,7 +5863,7 @@ var ZodIssueCode = {
5863
5863
  var ZodFirstPartyTypeKind;
5864
5864
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5865
5865
  //#endregion
5866
- //#region ../types/dist/sleep-pM_J7YnY.mjs
5866
+ //#region ../types/dist/sleep-D_4W7xuQ.mjs
5867
5867
  /**
5868
5868
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5869
5869
  * window to float samples (D455).
@@ -7921,11 +7921,17 @@ var RawStateResultSchema = object({
7921
7921
  method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(object({ deviceId: number() }), array(ConfigEntrySchema$1)), method(object({
7922
7922
  deviceId: number(),
7923
7923
  values: record(string(), unknown())
7924
- }), _void(), { kind: "mutation" }), method(object({
7924
+ }), _void(), {
7925
+ kind: "mutation",
7926
+ auth: "admin"
7927
+ }), method(object({
7925
7928
  deviceId: number(),
7926
7929
  action: string().min(1),
7927
7930
  input: unknown()
7928
- }), unknown(), { kind: "mutation" }), method(object({ deviceId: number() }), _void(), { kind: "mutation" }), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
7931
+ }), unknown(), { kind: "mutation" }), method(object({ deviceId: number() }), _void(), {
7932
+ kind: "mutation",
7933
+ auth: "admin"
7934
+ }), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
7929
7935
  new Set([
7930
7936
  "track",
7931
7937
  "summary",
@@ -12167,7 +12173,7 @@ method(ListInputSchema, array(BrokerInfoSchema$1)), method(GetInputSchema, Broke
12167
12173
  }), method(UnsubscribeInputSchema, _void(), {
12168
12174
  kind: "mutation",
12169
12175
  auth: "admin"
12170
- }), method(GetStateInputSchema, unknown().nullable()), method(_void(), RegistryStatusSchema);
12176
+ }), method(GetStateInputSchema, unknown().nullable(), { auth: "admin" }), method(_void(), RegistryStatusSchema);
12171
12177
  DeviceType.Camera;
12172
12178
  /** Stream delivery format. (Relocated from the retired `streaming-engine` cap.) */
12173
12179
  var StreamFormatSchema = _enum([
@@ -13264,17 +13270,20 @@ method(object({
13264
13270
  namespace: string().optional(),
13265
13271
  collection: string(),
13266
13272
  key: string()
13267
- }), unknown()), method(object({
13273
+ }), unknown(), { auth: "admin" }), method(object({
13268
13274
  namespace: string().optional(),
13269
13275
  collection: string(),
13270
13276
  key: string(),
13271
13277
  value: unknown()
13272
- }), _void(), { kind: "mutation" }), method(object({
13278
+ }), _void(), {
13279
+ kind: "mutation",
13280
+ auth: "admin"
13281
+ }), method(object({
13273
13282
  namespace: string().optional(),
13274
13283
  collection: string(),
13275
13284
  filter: QueryFilterSchema.optional(),
13276
13285
  columns: array(string()).readonly().optional()
13277
- }), array(SettingsRecordSchema).readonly()), method(object({
13286
+ }), array(SettingsRecordSchema).readonly(), { auth: "admin" }), method(object({
13278
13287
  namespace: string().optional(),
13279
13288
  collection: string(),
13280
13289
  /** Declared columns identifying the slot; must be covered by a UNIQUE
@@ -13284,7 +13293,10 @@ method(object({
13284
13293
  }), object({
13285
13294
  /** The id the row HAS: assigned by SQLite on an insert, or the existing
13286
13295
  * row's own id on an update. */
13287
- id: union([string(), number()]) }), { kind: "mutation" }), method(object({
13296
+ id: union([string(), number()]) }), {
13297
+ kind: "mutation",
13298
+ auth: "admin"
13299
+ }), method(object({
13288
13300
  namespace: string().optional(),
13289
13301
  collection: string(),
13290
13302
  record: object({
@@ -13297,38 +13309,56 @@ id: union([string(), number()]) }), { kind: "mutation" }), method(object({
13297
13309
  * for an absent one, or the ROWID SQLite assigned on an `INTEGER`
13298
13310
  * primary key — which is the only place an auto key is knowable.
13299
13311
  */
13300
- id: union([string(), number()]) }), { kind: "mutation" }), method(object({
13312
+ id: union([string(), number()]) }), {
13313
+ kind: "mutation",
13314
+ auth: "admin"
13315
+ }), method(object({
13301
13316
  namespace: string().optional(),
13302
13317
  collection: string(),
13303
13318
  records: array(BulkRecordSchema).readonly()
13304
- }), object({ inserted: number().int() }), { kind: "mutation" }), method(object({
13319
+ }), object({ inserted: number().int() }), {
13320
+ kind: "mutation",
13321
+ auth: "admin"
13322
+ }), method(object({
13305
13323
  namespace: string().optional(),
13306
13324
  collection: string(),
13307
13325
  id: string(),
13308
13326
  data: record(string(), unknown())
13309
- }), _void(), { kind: "mutation" }), method(object({
13327
+ }), _void(), {
13328
+ kind: "mutation",
13329
+ auth: "admin"
13330
+ }), method(object({
13310
13331
  namespace: string().optional(),
13311
13332
  collection: string(),
13312
13333
  key: string()
13313
- }), _void(), { kind: "mutation" }), method(object({
13334
+ }), _void(), {
13335
+ kind: "mutation",
13336
+ auth: "admin"
13337
+ }), method(object({
13314
13338
  namespace: string().optional(),
13315
13339
  collection: string(),
13316
13340
  filter: MutationFilterSchema
13317
- }), object({ deleted: number().int() }), { kind: "mutation" }), method(object({
13341
+ }), object({ deleted: number().int() }), {
13342
+ kind: "mutation",
13343
+ auth: "admin"
13344
+ }), method(object({
13318
13345
  namespace: string().optional(),
13319
13346
  collection: string(),
13320
13347
  filter: MutationFilterSchema,
13321
13348
  data: record(string(), unknown())
13322
- }), object({ updated: number().int() }), { kind: "mutation" }), method(object({
13349
+ }), object({ updated: number().int() }), {
13350
+ kind: "mutation",
13351
+ auth: "admin"
13352
+ }), method(object({
13323
13353
  namespace: string().optional(),
13324
13354
  collection: string(),
13325
13355
  filter: QueryFilterSchema.optional()
13326
- }), number()), method(object({
13356
+ }), number(), { auth: "admin" }), method(object({
13327
13357
  namespace: string().optional(),
13328
13358
  collection: string(),
13329
13359
  fields: array(AggregateFieldSchema).readonly(),
13330
13360
  filter: QueryFilterSchema.optional()
13331
- }), AggregateResultSchema), method(object({
13361
+ }), AggregateResultSchema, { auth: "admin" }), method(object({
13332
13362
  namespace: string().optional(),
13333
13363
  collection: string(),
13334
13364
  field: string(),
@@ -13338,15 +13368,18 @@ id: union([string(), number()]) }), { kind: "mutation" }), method(object({
13338
13368
  }), array(object({
13339
13369
  bucket: number().int(),
13340
13370
  count: number().int()
13341
- })).readonly()), method(object({
13371
+ })).readonly(), { auth: "admin" }), method(object({
13342
13372
  namespace: string().optional(),
13343
13373
  collection: string()
13344
- }), boolean()), method(object({
13374
+ }), boolean(), { auth: "admin" }), method(object({
13345
13375
  namespace: string().optional(),
13346
13376
  collection: string(),
13347
13377
  columns: array(CollectionColumnSchema).readonly(),
13348
13378
  indexes: array(CollectionIndexSchema).readonly().optional()
13349
- }), _void(), { kind: "mutation" });
13379
+ }), _void(), {
13380
+ kind: "mutation",
13381
+ auth: "admin"
13382
+ });
13350
13383
  /**
13351
13384
  * What one engine says about itself. The orchestrator uses `kind` to pick
13352
13385
  * a registrant for a collection; `engineId` is what a log line names when
@@ -14030,7 +14063,13 @@ var ExposeInputSchema = object({
14030
14063
  capabilities: array(string()).optional()
14031
14064
  });
14032
14065
  var UnexposeInputSchema = object({ deviceId: string() });
14033
- method(_void(), DeviceExportStatusSchema), method(_void(), array(DeviceKindSchema)), method(_void(), array(ExposedDeviceSchema)), method(ExposeInputSchema, _void(), { kind: "mutation" }), method(UnexposeInputSchema, _void(), { kind: "mutation" });
14066
+ method(_void(), DeviceExportStatusSchema), method(_void(), array(DeviceKindSchema)), method(_void(), array(ExposedDeviceSchema)), method(ExposeInputSchema, _void(), {
14067
+ kind: "mutation",
14068
+ auth: "admin"
14069
+ }), method(UnexposeInputSchema, _void(), {
14070
+ kind: "mutation",
14071
+ auth: "admin"
14072
+ });
14034
14073
  /** Wire/storage schema for one icon id. */
14035
14074
  var LocationIconIdSchema = _enum([
14036
14075
  "map-pin",
@@ -14534,7 +14573,10 @@ method(object({
14534
14573
  kind: "mutation",
14535
14574
  auth: "admin",
14536
14575
  timeoutMs: 12 * 6e4
14537
- }), method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }), method(DeviceRemovePayloadSchema, _void(), { kind: "mutation" }), method(DevicePersistConfigPayloadSchema, _void(), { kind: "mutation" }), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), DeviceMetaSchema.nullable()), method(object({
14576
+ }), method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }), method(DeviceRemovePayloadSchema, _void(), { kind: "mutation" }), method(DevicePersistConfigPayloadSchema, _void(), {
14577
+ kind: "mutation",
14578
+ auth: "admin"
14579
+ }), method(object({ deviceId: number() }), record(string(), unknown()), { auth: "admin" }), method(object({ deviceId: number() }), record(string(), unknown()), { auth: "admin" }), method(object({ deviceId: number() }), DeviceMetaSchema.nullable()), method(object({
14538
14580
  deviceId: number(),
14539
14581
  name: string()
14540
14582
  }), _void(), {
@@ -14739,7 +14781,7 @@ method(object({
14739
14781
  }), method(object({ deviceId: number() }), array(StreamProbeResultSchema), {
14740
14782
  kind: "mutation",
14741
14783
  auth: "admin"
14742
- }), method(object({ deviceId: number() }), DeviceBindingsForDeviceSchema), method(object({ deviceIds: array(number()) }), array(DeviceBindingsForDeviceSchema)), method(object({}), array(DeviceBindingsForDeviceSchema)), method(object({
14784
+ }), method(object({ deviceId: number() }), DeviceBindingsForDeviceSchema), method(object({ deviceIds: array(number()) }), array(DeviceBindingsForDeviceSchema)), method(object({}), array(DeviceBindingsForDeviceSchema)), method(object({ capNames: array(string().min(1)).min(1).max(16) }), array(number())), method(object({
14743
14785
  deviceId: number(),
14744
14786
  capName: string(),
14745
14787
  wrapperAddonId: string(),
@@ -16292,7 +16334,22 @@ var StatusSchema = object({
16292
16334
  brokerCount: number(),
16293
16335
  embeddedRunning: boolean()
16294
16336
  });
16295
- method(_void(), array(BrokerInfoSchema)), method(IdInputSchema, BrokerConnectionDetailsSchema), method(AddBrokerInputSchema, AddBrokerResultSchema, { kind: "mutation" }), method(IdInputSchema, _void(), { kind: "mutation" }), method(IdInputSchema, TestResultSchema$1, { kind: "mutation" }), method(StartEmbeddedInputSchema, StartEmbeddedResultSchema, { kind: "mutation" }), method(IdInputSchema, _void(), { kind: "mutation" }), method(_void(), StatusSchema);
16337
+ method(_void(), array(BrokerInfoSchema)), method(IdInputSchema, BrokerConnectionDetailsSchema, { auth: "admin" }), method(AddBrokerInputSchema, AddBrokerResultSchema, {
16338
+ kind: "mutation",
16339
+ auth: "admin"
16340
+ }), method(IdInputSchema, _void(), {
16341
+ kind: "mutation",
16342
+ auth: "admin"
16343
+ }), method(IdInputSchema, TestResultSchema$1, {
16344
+ kind: "mutation",
16345
+ auth: "admin"
16346
+ }), method(StartEmbeddedInputSchema, StartEmbeddedResultSchema, {
16347
+ kind: "mutation",
16348
+ auth: "admin"
16349
+ }), method(IdInputSchema, _void(), {
16350
+ kind: "mutation",
16351
+ auth: "admin"
16352
+ }), method(_void(), StatusSchema);
16296
16353
  var NetworkEndpointSchema = object({
16297
16354
  url: string(),
16298
16355
  hostname: string(),
@@ -16587,6 +16644,18 @@ var TargetKindSchema = object({
16587
16644
  */
16588
16645
  iconMediaType: string().optional(),
16589
16646
  configSchema: ConfigSchemaPassthrough,
16647
+ /**
16648
+ * The config keys that decide WHERE this kind's secrets are sent (server,
16649
+ * base URL, instance, chat, recipient). A save that changes any of them
16650
+ * while leaving a secret redacted is refused by the provider (D634), so an
16651
+ * editor uses this to ask for the secret on exactly those edits instead of
16652
+ * on every edit.
16653
+ *
16654
+ * Optional: absent from a provider that holds no secret (the Home Assistant
16655
+ * kinds) and from a provider older than this field — an editor that finds
16656
+ * it absent must assume ANY edit may need the secret.
16657
+ */
16658
+ destinationKeys: array(string()).optional(),
16590
16659
  supportsDiscovery: boolean(),
16591
16660
  caps: TargetKindCapsSchema
16592
16661
  });
@@ -16625,19 +16694,34 @@ var SendResultSchema = object({
16625
16694
  });
16626
16695
  /** Same shape as SendResult — kept as a distinct name for the test panel. */
16627
16696
  var TestResultSchema = SendResultSchema;
16628
- method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSchema)), method(object({
16697
+ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSchema), { auth: "admin" }), method(object({
16629
16698
  kind: string(),
16630
16699
  config: record(string(), unknown()).optional()
16631
- }), array(DiscoveredTargetSchema)), method(object({
16700
+ }), array(DiscoveredTargetSchema), { auth: "admin" }), method(object({
16632
16701
  targetId: string(),
16633
16702
  notification: NotificationSchema
16634
- }), SendResultSchema, { kind: "mutation" }), method(object({
16703
+ }), SendResultSchema, {
16704
+ kind: "mutation",
16705
+ auth: "admin"
16706
+ }), method(object({
16635
16707
  targetId: string(),
16636
16708
  sample: NotificationSchema.optional()
16637
- }), TestResultSchema, { kind: "mutation" }), method(object({ target: TargetSchema }), TargetSchema, { kind: "mutation" }), method(object({ targetId: string() }), _void(), { kind: "mutation" }), method(object({
16709
+ }), TestResultSchema, {
16710
+ kind: "mutation",
16711
+ auth: "admin"
16712
+ }), method(object({ target: TargetSchema }), TargetSchema, {
16713
+ kind: "mutation",
16714
+ auth: "admin"
16715
+ }), method(object({ targetId: string() }), _void(), {
16716
+ kind: "mutation",
16717
+ auth: "admin"
16718
+ }), method(object({
16638
16719
  targetId: string(),
16639
16720
  enabled: boolean()
16640
- }), _void(), { kind: "mutation" });
16721
+ }), _void(), {
16722
+ kind: "mutation",
16723
+ auth: "admin"
16724
+ });
16641
16725
  new Set([
16642
16726
  {
16643
16727
  id: "person",
@@ -17480,6 +17564,19 @@ var NcSystemEventConditionSchema = object({
17480
17564
  * does not carry) matches no `deviceTypes` list.
17481
17565
  */
17482
17566
  deviceTypes: array(string().min(1)).min(1).optional(),
17567
+ /**
17568
+ * Devices this rule NEVER speaks about, whatever else matched. Scoped to the
17569
+ * same kind family as `deviceIds` (`systemEventFilterApplies(kind,
17570
+ * 'deviceIds')`) and applied AFTER it: include first, then exclude. A
17571
+ * consumable subject (`consumable:<id>:<key>`) is excluded by its device id.
17572
+ *
17573
+ * It never fails closed: a subject that carries no device id is not in the
17574
+ * list, so it is not excluded. "Every battery except the one thermometer that
17575
+ * reads 0 % forever" is the question this answers — expressed as an include
17576
+ * list it would have to name every other battery device, and every device
17577
+ * adopted later would be silently left out (D636).
17578
+ */
17579
+ excludeDeviceIds: array(number().int()).min(1).optional(),
17483
17580
  nodeIds: array(string().min(1)).min(1).optional(),
17484
17581
  packageNames: array(string().min(1)).min(1).optional()
17485
17582
  });
@@ -24013,41 +24110,65 @@ var ProviderListEntrySchema = discriminatedUnion("shouldSaveDiskSpace", [object(
24013
24110
  method(object({
24014
24111
  location: StorageLocationRefSchema,
24015
24112
  relativePath: string()
24016
- }), string()), method(object({
24113
+ }), string(), { auth: "admin" }), method(object({
24017
24114
  location: StorageLocationRefSchema,
24018
24115
  relativePath: string(),
24019
24116
  data: _instanceof(Uint8Array)
24020
- }), _void(), { kind: "mutation" }), method(object({
24117
+ }), _void(), {
24118
+ kind: "mutation",
24119
+ auth: "admin"
24120
+ }), method(object({
24021
24121
  location: StorageLocationRefSchema,
24022
24122
  relativePath: string()
24023
- }), _instanceof(Uint8Array)), method(object({
24123
+ }), _instanceof(Uint8Array), { auth: "admin" }), method(object({
24024
24124
  location: StorageLocationRefSchema,
24025
24125
  relativePath: string()
24026
- }), boolean()), method(object({
24126
+ }), boolean(), { auth: "admin" }), method(object({
24027
24127
  location: StorageLocationRefSchema,
24028
24128
  prefix: string().optional()
24029
- }), array(string()).readonly()), method(object({
24129
+ }), array(string()).readonly(), { auth: "admin" }), method(object({
24030
24130
  location: StorageLocationRefSchema,
24031
24131
  relativePath: string()
24032
- }), _void(), { kind: "mutation" }), method(object({ location: StorageLocationRefSchema }), number().nullable()), method(object({
24132
+ }), _void(), {
24133
+ kind: "mutation",
24134
+ auth: "admin"
24135
+ }), method(object({ location: StorageLocationRefSchema }), number().nullable()), method(object({
24033
24136
  location: StorageLocationRefSchema,
24034
24137
  relativePath: string(),
24035
24138
  sizeBytes: number().optional()
24036
- }), object({ uploadId: string() }), { kind: "mutation" }), method(object({
24139
+ }), object({ uploadId: string() }), {
24140
+ kind: "mutation",
24141
+ auth: "admin"
24142
+ }), method(object({
24037
24143
  uploadId: string(),
24038
24144
  offset: number(),
24039
24145
  data: _instanceof(Uint8Array)
24040
- }), _void(), { kind: "mutation" }), method(object({ uploadId: string() }), _void(), { kind: "mutation" }), method(object({ uploadId: string() }), _void(), { kind: "mutation" }), method(object({
24146
+ }), _void(), {
24147
+ kind: "mutation",
24148
+ auth: "admin"
24149
+ }), method(object({ uploadId: string() }), _void(), {
24150
+ kind: "mutation",
24151
+ auth: "admin"
24152
+ }), method(object({ uploadId: string() }), _void(), {
24153
+ kind: "mutation",
24154
+ auth: "admin"
24155
+ }), method(object({
24041
24156
  location: StorageLocationRefSchema,
24042
24157
  relativePath: string()
24043
24158
  }), object({
24044
24159
  downloadId: string(),
24045
24160
  sizeBytes: number()
24046
- }), { kind: "mutation" }), method(object({
24161
+ }), {
24162
+ kind: "mutation",
24163
+ auth: "admin"
24164
+ }), method(object({
24047
24165
  downloadId: string(),
24048
24166
  offset: number(),
24049
24167
  length: number()
24050
- }), _instanceof(Uint8Array)), method(object({ downloadId: string() }), _void(), { kind: "mutation" }), method(object({ type: StorageLocationTypeSchema.optional() }), array(StorageLocationSchema).readonly()), method(_void(), array(StorageLocationDeclarationSchema).readonly()), method(StorageLocationSchema.omit({
24168
+ }), _instanceof(Uint8Array), { auth: "admin" }), method(object({ downloadId: string() }), _void(), {
24169
+ kind: "mutation",
24170
+ auth: "admin"
24171
+ }), method(object({ type: StorageLocationTypeSchema.optional() }), array(StorageLocationSchema).readonly()), method(_void(), array(StorageLocationDeclarationSchema).readonly()), method(StorageLocationSchema.omit({
24051
24172
  createdAt: true,
24052
24173
  updatedAt: true
24053
24174
  }), StorageLocationSchema, {
@@ -25623,7 +25744,67 @@ var WebrtcLadderDecisionSchema = object({
25623
25744
  serverSending: boolean().nullable(),
25624
25745
  /** Epoch ms. The overlay prints its age; a decision from 40 minutes ago
25625
25746
  * must not read like one from this second. */
25626
- at: number()
25747
+ at: number(),
25748
+ /** The broker's own cause when it is finer than `cause` can carry, e.g.
25749
+ * `trial-revert` (reported as `stall`/`loss` for older consumers). Optional:
25750
+ * an older server strips it instead of rejecting the answer. */
25751
+ causeDetail: string().optional()
25752
+ });
25753
+ var WebrtcClimbHoldSchema = object({
25754
+ /** `stall-building` — the client receives ≪ what is sent; `delivery` — the
25755
+ * current rung is not landing whole; `no-evidence` — no receiver feedback;
25756
+ * `warming` — healthy, accumulating the streak; `cooldown` — too soon after
25757
+ * a change; `capacity` — a MEASURED probe below the next rung's bar;
25758
+ * `try-unclean` — no capacity evidence, and the path is not clean enough to
25759
+ * try; `try-backoff` — a try reverted, waiting out its backoff; `trial` —
25760
+ * this rung IS a try, reverting if it does not land; `suspended` —
25761
+ * recorded playback on the track. */
25762
+ code: string(),
25763
+ /** The rung a climb would go to. */
25764
+ nextTier: CamProfileSchema,
25765
+ /** Bytes received ÷ bytes sent over the delivery window (≥ one GOP). */
25766
+ deliveryRatio: number().nullable(),
25767
+ deliveryWindowMs: number().nullable(),
25768
+ /** The ratio a climb requires. */
25769
+ climbDeliveryRatio: number(),
25770
+ /** The receiver's bandwidth estimate (REMB), kbps. Capped by what is sent. */
25771
+ capacityKbps: number().nullable(),
25772
+ /** The viewer's downlink probe for this session, kbps. */
25773
+ probeKbps: number().nullable(),
25774
+ /** The next rung's measured bitrate, kbps. */
25775
+ nextTierKbps: number().nullable(),
25776
+ capacityMargin: number(),
25777
+ /** The capacity a climb to `nextTier` needs, kbps (bitrate × margin, or the
25778
+ * client ladder threshold when the rung has measured nothing). */
25779
+ neededKbps: number().nullable(),
25780
+ /** For `try-unclean`: which clean-path condition failed (a `WebrtcTryBlocker`,
25781
+ * carried as a string for the same reason as `code`). */
25782
+ tryBlockedBy: string().nullable(),
25783
+ /** The delivery ratio and the loss ratio a try requires / must stay under.
25784
+ * Optional, like every field added to this schema after it first shipped:
25785
+ * the router validates output, so a REQUIRED new field makes a newer server
25786
+ * reject an older broker's whole answer (review m1). */
25787
+ tryDeliveryRatio: number().optional(),
25788
+ tryMaxLossRatio: number().optional(),
25789
+ /** For `try-backoff`: time until the next try, ms. */
25790
+ retryInMs: number().nullable(),
25791
+ /** The last try that reverted in this viewer session. */
25792
+ lastRevert: object({
25793
+ tier: CamProfileSchema,
25794
+ deliveryRatio: number().nullable(),
25795
+ stalled: boolean(),
25796
+ at: number()
25797
+ }).nullable(),
25798
+ /** For `trial`: how long this rung has been on trial, and for how long it must hold. */
25799
+ trialForMs: number().nullable(),
25800
+ trialMs: number().nullable(),
25801
+ healthyForMs: number().nullable(),
25802
+ requiredHealthyMs: number().nullable(),
25803
+ /** Epoch ms this hold's code began. */
25804
+ since: number(),
25805
+ /** The same one-line account the broker logs, e.g.
25806
+ * `held: delivery 0.97 over 4.0s ok, REMB 480 kbps < mid 1800 kbps × 1.2`. */
25807
+ summary: string()
25627
25808
  });
25628
25809
  /** Per-tier count of MEASURED downgrades this viewer session has suffered. */
25629
25810
  var WebrtcTierFailureSchema = object({
@@ -25687,7 +25868,12 @@ var WebrtcSessionDebugSchema = object({
25687
25868
  tierFailures: array(WebrtcTierFailureSchema),
25688
25869
  /** Successful promotions in this viewer session (drives the progressive
25689
25870
  * healthy timer). Null when no ladder is running. */
25690
- upgradeCount: number().nullable()
25871
+ upgradeCount: number().nullable(),
25872
+ /** Why the ladder is not climbing right now. Null when no ladder runs, it
25873
+ * is at the top rung, or it just moved. Optional because this output is
25874
+ * validated by the router: a server carrying this schema must still accept
25875
+ * the answer of a stream-broker deployed before the field existed. */
25876
+ climbHold: WebrtcClimbHoldSchema.nullable().optional()
25691
25877
  });
25692
25878
  DeviceType.Camera, method(object({ deviceId: number().int().nonnegative() }), array(WebrtcStreamChoiceSchema)), method(object({
25693
25879
  deviceId: number().int().nonnegative(),
@@ -29379,6 +29565,11 @@ var ClientNetworkStatsSchema = object({
29379
29565
  jitterMs: number(),
29380
29566
  estimatedBandwidthKbps: number(),
29381
29567
  packetLossPercent: number().min(0).max(100),
29568
+ /** The viewer's latest `/adaptive-probe` reading, Mbps — whatever it read
29569
+ * (D635 I4). Absent when it never probed or the probe failed (unknown). */
29570
+ downlinkMbps: number().optional(),
29571
+ /** Age of that reading when this report was sent, ms. */
29572
+ downlinkAgeMs: number().optional(),
29382
29573
  lastUpdated: number()
29383
29574
  });
29384
29575
  var DeviceNetworkStatsSchema = object({
@@ -29391,7 +29582,11 @@ method(object({ deviceId: number() }), DeviceNetworkStatsSchema.nullable()), met
29391
29582
  rttMs: number().min(0).max(6e4),
29392
29583
  jitterMs: number().min(0).max(1e4),
29393
29584
  estimatedBandwidthKbps: number().min(0).max(1e6),
29394
- packetLossPercent: number().min(0).max(100)
29585
+ packetLossPercent: number().min(0).max(100),
29586
+ /** Latest downlink probe, Mbps, whatever it read; absent = never / failed. */
29587
+ downlinkMbps: number().min(0).max(1e5).optional(),
29588
+ /** Age of that probe when this report is sent, ms. */
29589
+ downlinkAgeMs: number().min(0).max(864e5).optional()
29395
29590
  }), _void(), { kind: "mutation" });
29396
29591
  /**
29397
29592
  * nodes — system-scoped singleton capability for cluster topology
@@ -36973,6 +37168,12 @@ Object.freeze({
36973
37168
  addonId: null,
36974
37169
  access: "view"
36975
37170
  },
37171
+ "deviceManager.listDeviceIdsByCaps": {
37172
+ capName: "device-manager",
37173
+ capScope: "system",
37174
+ addonId: null,
37175
+ access: "view"
37176
+ },
36976
37177
  "deviceManager.listLocationDescriptions": {
36977
37178
  capName: "device-manager",
36978
37179
  capScope: "system",
@@ -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-C1StxoX1.mjs";
2
+ import { o as i, s as a } from "./responsive-jf0lxp6K.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-CgCMXxAb.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CxcjtoPK.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-BvVNN6qP.mjs";
3
+ import { n as u } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-wbtR-IuO.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-C1StxoX1.mjs";
2
+ import { s as i } from "./responsive-jf0lxp6K.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-C1StxoX1.mjs";
1
+ import { s as e } from "./responsive-jf0lxp6K.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-C1StxoX1.mjs";
1
+ import { s as e } from "./responsive-jf0lxp6K.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-B1nK3YSf.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-CzKIbASt.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.169",
3
+ "version": "1.1.170",
4
4
  "description": "Custom detection model registry, conversion & distribution for CamStack",
5
5
  "keywords": [
6
6
  "camstack",