@camstack/types 1.2.64 → 1.2.65

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.
@@ -17,13 +17,24 @@ import { type InferProvider } from './capability-definition.js';
17
17
  /** Playback-speed multiplier for the render (1 = realtime). */
18
18
  export declare const ExportSpeedSchema: z.ZodNumber;
19
19
  /**
20
- * One dense interval, in SECONDS FROM THE EXPORT'S OWN `fromMs`.
20
+ * One dense interval, in WALL-CLOCK SECONDS FROM THE EXPORT'S OWN `fromMs`.
21
21
  *
22
- * Relative and not absolute epoch on purpose: the renderer's frame-select
23
- * expression sees ffmpeg's `t`, which starts at 0 for the export's source
24
- * playlist. Handing it absolute epochs would make every call site responsible
25
- * for the same subtraction, and the one that forgot would emit a filter that
26
- * selects nothing silently, as a uniform timelapse.
22
+ * **Wall clock, not ffmpeg's `t`** and the recorder translates. A caller
23
+ * derives these bounds from things that happened at a TIME (a track's
24
+ * `firstSeen`), while `t` runs over the source playlist: the concatenation of
25
+ * every segment present for the range, with each recording GAP removed. The
26
+ * two agree only on a window that recorded without one interruption, and only
27
+ * the render side knows the segments, so the translation lives there
28
+ * (`export-dense-map.ts`, addon-pipeline).
29
+ *
30
+ * It was not always so. These seconds were fed to `between(t,…)` verbatim, and
31
+ * on a 10 h window holding 29,393 s of footage every range landed late by the
32
+ * gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
33
+ * the video was a uniform timelapse, and the log line reported the five ranges
34
+ * that had been ASKED for (2026-08-13, export `57d14363`, camera 615).
35
+ *
36
+ * Relative and not absolute epoch, because an absolute epoch would make every
37
+ * call site responsible for the same subtraction.
27
38
  */
28
39
  export declare const ExportDenseRangeSchema: z.ZodObject<{
29
40
  fromSec: z.ZodNumber;
package/dist/index.d.ts CHANGED
@@ -191,7 +191,7 @@ export { isScheduleActive } from './notification/schedule.js';
191
191
  export type { TimelapseCadencePair, TimelapsePreviewMode, TimelapseRule, TimelapseRuleInput, TimelapseRulePatch, TimelapseTemplate, } from './notification/timelapse-rule.js';
192
192
  export { assertTimelapseCadences, DEFAULT_TIMELAPSE_PREVIEW_TEXT, readTimelapseGeneratedAt, TIMELAPSE_DENSE_FLOOR_SEC, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, } from './notification/timelapse-rule.js';
193
193
  export { DEFAULT_DETAIL_CROP_CONVENTION, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, type DetailCropConvention, DetailCropConventionSchema, type DetailCropRect, deriveDetailCropRect, type HydratedSettingsSection, type HydratedSettingsView, pickDetailCropConvention, readDetailCropConvention, } from './pipeline/detail-crop.js';
194
- export { DEFAULT_NATIVE_LEASE_SETTINGS, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TTL_FIELD, NATIVE_LEASE_TTL_KEY, type NativeLeaseAdmission, NativeLeaseAdmissionSchema, type NativeLeaseKnob, type NativeLeaseNumberKnob, type NativeLeaseSettings, type NativeLeaseSettingsOverride, NativeLeaseSettingsSchema, pickNativeLeaseOverride, readNativeLeaseOverride, } from './pipeline/native-lease.js';
194
+ export { DEFAULT_NATIVE_LEASE_SETTINGS, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, type NativeLeaseAdmission, NativeLeaseAdmissionSchema, type NativeLeaseKnob, type NativeLeaseNumberKnob, type NativeLeaseSettings, type NativeLeaseSettingsOverride, NativeLeaseSettingsSchema, pickNativeLeaseOverride, readNativeLeaseOverride, } from './pipeline/native-lease.js';
195
195
  export { type ApiKeyRecord, ApiKeyRecordSchema, type CapScope, CapScopeSchema, type MethodAccess, MethodAccessSchema, type ScopedToken, ScopedTokenSchema, type TokenScope, TokenScopeSchema, type UserRecord, UserRecordSchema, } from './schemas/auth-records.js';
196
196
  export type { CameraDetectionCapabilities, CameraMotionConfig, CameraNativeDetectionConfig, } from './types/camera-detection.js';
197
197
  export { DEVICE_TYPE_INFO, type DeviceTypeInfo } from './types/device-type.js';
package/dist/index.js CHANGED
@@ -26324,13 +26324,24 @@ var recordingCapability = {
26324
26324
  /** Playback-speed multiplier for the render (1 = realtime). */
26325
26325
  var ExportSpeedSchema = zod.z.number().min(.25).max(32);
26326
26326
  /**
26327
- * One dense interval, in SECONDS FROM THE EXPORT'S OWN `fromMs`.
26327
+ * One dense interval, in WALL-CLOCK SECONDS FROM THE EXPORT'S OWN `fromMs`.
26328
26328
  *
26329
- * Relative and not absolute epoch on purpose: the renderer's frame-select
26330
- * expression sees ffmpeg's `t`, which starts at 0 for the export's source
26331
- * playlist. Handing it absolute epochs would make every call site responsible
26332
- * for the same subtraction, and the one that forgot would emit a filter that
26333
- * selects nothing silently, as a uniform timelapse.
26329
+ * **Wall clock, not ffmpeg's `t`** and the recorder translates. A caller
26330
+ * derives these bounds from things that happened at a TIME (a track's
26331
+ * `firstSeen`), while `t` runs over the source playlist: the concatenation of
26332
+ * every segment present for the range, with each recording GAP removed. The
26333
+ * two agree only on a window that recorded without one interruption, and only
26334
+ * the render side knows the segments, so the translation lives there
26335
+ * (`export-dense-map.ts`, addon-pipeline).
26336
+ *
26337
+ * It was not always so. These seconds were fed to `between(t,…)` verbatim, and
26338
+ * on a 10 h window holding 29,393 s of footage every range landed late by the
26339
+ * gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
26340
+ * the video was a uniform timelapse, and the log line reported the five ranges
26341
+ * that had been ASKED for (2026-08-13, export `57d14363`, camera 615).
26342
+ *
26343
+ * Relative and not absolute epoch, because an absolute epoch would make every
26344
+ * call site responsible for the same subtraction.
26334
26345
  */
26335
26346
  var ExportDenseRangeSchema = zod.z.object({
26336
26347
  fromSec: zod.z.number().nonnegative(),
@@ -39603,8 +39614,8 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39603
39614
  //#endregion
39604
39615
  //#region src/pipeline/native-lease.ts
39605
39616
  /**
39606
- * THE native-frame **lease** knobs — TTL, RAM budget and demand window for the
39607
- * decode worker's native-resolution frame retention.
39617
+ * THE native-frame **lease** knobs — hold depth, RAM budget, demand window and
39618
+ * subject-tile budget for the decode worker's native-resolution retention.
39608
39619
  *
39609
39620
  * ## Why they live here and not in the addon that reads them
39610
39621
  *
@@ -39620,20 +39631,25 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39620
39631
  * The lease is a per-decode-worker RAM window. Its purpose — the late
39621
39632
  * cross-process native crop landing on a full-resolution frame rather than the
39622
39633
  * ≤640 detection fallback — is a property of the PIPELINE, not of a node's
39623
- * hardware: a per-node TTL would mean the same camera produces different crop
39634
+ * hardware: a per-node window would mean the same camera produces different crop
39624
39635
  * quality depending on which node the balancer placed it on, and nobody could
39625
39636
  * tell that from the stored media. Node-level RAM pressure is already handled
39626
39637
  * by the per-session budget ceiling, which is itself one of these knobs.
39627
39638
  *
39628
39639
  * ## What each knob costs
39629
39640
  *
39630
- * A retained frame is a full NATIVE-resolution copy in system RAM. With the
39641
+ * A HELD frame is a full NATIVE-resolution copy in system RAM. With the
39631
39642
  * default pinned-RGB24 lease path (`CAMSTACK_SESSION_PINNED_RGB_CROP`, on):
39632
39643
  * 4K ≈ 24.9 MB/frame, 1080p ≈ 6.2 MB/frame. On the YUV420P path (flag off, and
39633
39644
  * for software-decoded sessions): 4K ≈ 12.4 MB, 1080p ≈ 3.1 MB. Worst-case
39634
- * resident RAM for ONE busy camera frameBytes × deliveredFps × ttlSeconds,
39635
- * clamped by the budget ceiling. See `docs/design/decode-path.md` "Lease
39636
- * admission" for what actually gets admitted.
39645
+ * resident RAM for ONE busy camera is now `frameBytes × holdFrames`, clamped by
39646
+ * the budget ceiling bounded by a COUNT because a held frame is waiting for
39647
+ * one specific event (its own detection result), not for a clock.
39648
+ *
39649
+ * A TILE is one subject at native resolution, JPEG-encoded: ~60-120 KB on 4K,
39650
+ * and nothing at all on a frame that detected nothing. That is the asymmetry
39651
+ * this whole shape exists for — see
39652
+ * `docs/design/2026-08-13-native-lease-two-tier-redesign.md`.
39637
39653
  */
39638
39654
  /**
39639
39655
  * Store identity of the lease knobs in `pipeline-orchestrator`'s GLOBAL
@@ -39641,10 +39657,11 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39641
39657
  * the reader can walk every section instead of trusting the section id.
39642
39658
  */
39643
39659
  var NATIVE_LEASE_SECTION_ID = "native-lease";
39644
- var NATIVE_LEASE_TTL_KEY = "nativeLeaseTtlMs";
39660
+ var NATIVE_LEASE_HOLD_KEY = "nativeLeaseHoldFrames";
39645
39661
  var NATIVE_LEASE_BUDGET_KEY = "nativeLeaseBudgetMb";
39646
39662
  var NATIVE_LEASE_ACTIVITY_KEY = "nativeLeaseActivityMs";
39647
39663
  var NATIVE_LEASE_ADMISSION_KEY = "nativeLeaseAdmission";
39664
+ var NATIVE_LEASE_TILE_BUDGET_KEY = "nativeTileBudgetMb";
39648
39665
  /**
39649
39666
  * WHICH delivered frames the decode worker retains a native copy of.
39650
39667
  *
@@ -39671,25 +39688,32 @@ var NativeLeaseAdmissionSchema = zod.z.enum(["all", "inferred"]);
39671
39688
  */
39672
39689
  var NativeLeaseSettingsSchema = zod.z.object({
39673
39690
  /**
39674
- * How long a retained native frame is served before it counts as a miss.
39691
+ * How many delivered frames the worker HOLDS at once, waiting for each one's
39692
+ * detection result.
39675
39693
  *
39676
- * Must cover the FULL late-crop horizon: detection inference + the
39677
- * cross-process inference-result hop to hub post-analysis + tracking + the
39678
- * tRPC crop round-trip back. Below ~500 ms the busiest cameras' subject crops
39679
- * outrun it and fall back to the ≤640 detection frame; above ~3 s the resident
39680
- * RAM per busy camera grows linearly with no measured hit-rate gain.
39694
+ * This replaced a TTL on 2026-08-13, and the replacement is the whole point:
39695
+ * a time window was never related to the event the pixels were waiting for.
39696
+ * A held frame now lives from delivery until the runner has its `FrameResult`
39697
+ * at which moment the runner cuts the subject tiles it actually wanted and
39698
+ * releases the frame. The bound exists only so a runner that stops answering
39699
+ * cannot pin RAM: above it the OLDEST held frame is dropped and counted.
39700
+ *
39701
+ * Sizing: the steady state is `inferenceLatency × deliveredFps`, measured at
39702
+ * 40-160 ms × ≤25 fps = 1-4 frames. The default leaves headroom for a hiccup
39703
+ * without ever approaching the old resident set (43 frames × 24.9 MB at 4K).
39704
+ * Raising it does not buy hit rate — it buys tolerance for a slow runner, and
39705
+ * `holdOverflow` on the metrics line is what says you need it.
39681
39706
  */
39682
- ttlMs: zod.z.number().int().min(250).max(1e4),
39707
+ holdFrames: zod.z.number().int().min(1).max(64),
39683
39708
  /**
39684
39709
  * Hard per-decode-worker RAM ceiling for retained native frames, in MB.
39685
39710
  *
39686
- * Intended as a SAFETY ceiling with the TTL as the effective cap — but check
39687
- * which one is actually binding before reasoning from that. At the shipped
39688
- * 1024 MB and a 2 800 ms TTL, a 4K camera hits the CEILING first (~43 frames
39689
- * at ~24 MB each) and the TTL never gets to expire anything; `leaseMb` /
39690
- * `leaseFrames` on the metrics line say which. When the ceiling binds, a
39691
- * change that admits fewer frames buys retention WINDOW at constant RAM
39692
- * rather than giving RAM back — lower this knob if RAM is what you wanted.
39711
+ * Since 2026-08-13 this is a SAFETY ceiling and nothing else: `holdFrames`
39712
+ * is what decides how much is held, and the ceiling is the number above which
39713
+ * something is wrong. Before that it was the effective cap at 1024 MB with
39714
+ * a 2 800 ms TTL a 4K camera sat pinned at `leaseMb:1020, leaseFrames:43`
39715
+ * with the TTL expiring nothing, which is exactly the confusion the hold
39716
+ * removes. `leaseMb` / `leaseFrames` still say what is resident.
39693
39717
  * `0` DISABLES the lease entirely and falls the worker back to the tiny
39694
39718
  * leak-prone GPU surface ring (~85% crop miss; that is what the lease exists
39695
39719
  * to replace).
@@ -39715,25 +39739,47 @@ var NativeLeaseSettingsSchema = zod.z.object({
39715
39739
  * there is the signal that some caller names frames outside the inference set
39716
39740
  * and that this must go back to `all`.
39717
39741
  */
39718
- admission: NativeLeaseAdmissionSchema
39742
+ admission: NativeLeaseAdmissionSchema,
39743
+ /**
39744
+ * RAM ceiling per decode worker, in MB, for the SUBJECT TILES — the
39745
+ * compressed native crops the worker cuts at the moment a frame's detection
39746
+ * result arrives, and keeps long after the frame itself is freed.
39747
+ *
39748
+ * This is the knob that replaced the old retention window, and it buys about
39749
+ * three orders of magnitude more of it: a tile is one subject at native
39750
+ * resolution, JPEG-encoded (~60-120 KB on a 4K person), against ~24.9 MB for
39751
+ * the frame it was cut from. A frame on which nothing was detected costs
39752
+ * nothing at all, which is the real change — the old lease paid per FRAME and
39753
+ * was interrogated per SUBJECT.
39754
+ *
39755
+ * `0` DISABLES tiles, leaving only the hold window and the ≤640 RAM
39756
+ * fallback — i.e. the pre-2026-08-13 miss profile. Set it there only to
39757
+ * reproduce that.
39758
+ */
39759
+ tileBudgetMb: zod.z.number().int().min(0).max(1024)
39719
39760
  });
39720
39761
  /**
39721
- * The values in force when the operator has set nothing — byte-for-byte the
39722
- * constants the decode worker shipped with as env-var defaults, so making these
39723
- * settings changed no behaviour on the day it landed.
39762
+ * The values in force when the operator has set nothing.
39763
+ *
39764
+ * `budgetMb` stays at 1024 on the day the hold landed, deliberately: it stopped
39765
+ * being the retention window and became the OOM ceiling, and lowering a ceiling
39766
+ * in the same change that redefines it would make a regression and a retune
39767
+ * indistinguishable. Cut it once `tileHits` / `holdOverflow` have been read on
39768
+ * live traffic.
39724
39769
  */
39725
39770
  var DEFAULT_NATIVE_LEASE_SETTINGS = {
39726
- ttlMs: 1200,
39771
+ holdFrames: 8,
39727
39772
  budgetMb: 1024,
39728
39773
  activityMs: 15e3,
39774
+ tileBudgetMb: 64,
39729
39775
  admission: "inferred"
39730
39776
  };
39731
39777
  /** Slider bounds for the operator-facing knobs (orchestrator settings UI). */
39732
- var NATIVE_LEASE_TTL_FIELD = {
39733
- min: 250,
39734
- max: 1e4,
39735
- step: 50,
39736
- default: DEFAULT_NATIVE_LEASE_SETTINGS.ttlMs
39778
+ var NATIVE_LEASE_HOLD_FIELD = {
39779
+ min: 1,
39780
+ max: 64,
39781
+ step: 1,
39782
+ default: DEFAULT_NATIVE_LEASE_SETTINGS.holdFrames
39737
39783
  };
39738
39784
  var NATIVE_LEASE_BUDGET_FIELD = {
39739
39785
  min: 0,
@@ -39747,6 +39793,12 @@ var NATIVE_LEASE_ACTIVITY_FIELD = {
39747
39793
  step: 1e3,
39748
39794
  default: DEFAULT_NATIVE_LEASE_SETTINGS.activityMs
39749
39795
  };
39796
+ var NATIVE_LEASE_TILE_BUDGET_FIELD = {
39797
+ min: 0,
39798
+ max: 1024,
39799
+ step: 16,
39800
+ default: DEFAULT_NATIVE_LEASE_SETTINGS.tileBudgetMb
39801
+ };
39750
39802
  /** Select options for the admission knob (orchestrator settings UI). */
39751
39803
  var NATIVE_LEASE_ADMISSION_FIELD = {
39752
39804
  options: [{
@@ -39766,7 +39818,7 @@ var NATIVE_LEASE_ADMISSION_FIELD = {
39766
39818
  * precedence being true and being a lie. `addon-settings.getGlobalSettings`
39767
39819
  * returns a HYDRATED payload, and `hydrateField` fills an unstored field with
39768
39820
  * the schema's own `default` (verified live on the hub: a cluster that has never
39769
- * opened the form still reports `nativeLeaseTtlMs = 1200`). A reader that took
39821
+ * opened the form still reports `nativeLeaseHoldFrames = 8`). A reader that took
39770
39822
  * that at face value would report all three knobs as "set" on every cluster on
39771
39823
  * the day this shipped, permanently retiring the `CAMSTACK_SESSION_NATIVE_LEASE_*`
39772
39824
  * emergency override that the precedence promises. There is no raw-store read on
@@ -39800,25 +39852,28 @@ function readAdmissionKnob(raw) {
39800
39852
  * {@link readKnob} for why the default counts as unset.
39801
39853
  */
39802
39854
  function readNativeLeaseOverride(config) {
39803
- const ttlMs = readKnob("ttlMs", config[NATIVE_LEASE_TTL_KEY]);
39855
+ const holdFrames = readKnob("holdFrames", config[NATIVE_LEASE_HOLD_KEY]);
39804
39856
  const budgetMb = readKnob("budgetMb", config[NATIVE_LEASE_BUDGET_KEY]);
39805
39857
  const activityMs = readKnob("activityMs", config[NATIVE_LEASE_ACTIVITY_KEY]);
39806
39858
  const admission = readAdmissionKnob(config[NATIVE_LEASE_ADMISSION_KEY]);
39859
+ const tileBudgetMb = readKnob("tileBudgetMb", config[NATIVE_LEASE_TILE_BUDGET_KEY]);
39807
39860
  return {
39808
- ...ttlMs === null ? {} : { ttlMs },
39861
+ ...holdFrames === null ? {} : { holdFrames },
39809
39862
  ...budgetMb === null ? {} : { budgetMb },
39810
39863
  ...activityMs === null ? {} : { activityMs },
39811
- ...admission === null ? {} : { admission }
39864
+ ...admission === null ? {} : { admission },
39865
+ ...tileBudgetMb === null ? {} : { tileBudgetMb }
39812
39866
  };
39813
39867
  }
39814
39868
  function isHydratedField(entry) {
39815
39869
  return typeof entry === "object" && entry !== null && "key" in entry;
39816
39870
  }
39817
39871
  var LEASE_KEYS = [
39818
- NATIVE_LEASE_TTL_KEY,
39872
+ NATIVE_LEASE_HOLD_KEY,
39819
39873
  NATIVE_LEASE_BUDGET_KEY,
39820
39874
  NATIVE_LEASE_ACTIVITY_KEY,
39821
- NATIVE_LEASE_ADMISSION_KEY
39875
+ NATIVE_LEASE_ADMISSION_KEY,
39876
+ NATIVE_LEASE_TILE_BUDGET_KEY
39822
39877
  ];
39823
39878
  /**
39824
39879
  * Extract the operator's lease overrides from an
@@ -41597,9 +41652,11 @@ exports.NATIVE_LEASE_ADMISSION_FIELD = NATIVE_LEASE_ADMISSION_FIELD;
41597
41652
  exports.NATIVE_LEASE_ADMISSION_KEY = NATIVE_LEASE_ADMISSION_KEY;
41598
41653
  exports.NATIVE_LEASE_BUDGET_FIELD = NATIVE_LEASE_BUDGET_FIELD;
41599
41654
  exports.NATIVE_LEASE_BUDGET_KEY = NATIVE_LEASE_BUDGET_KEY;
41655
+ exports.NATIVE_LEASE_HOLD_FIELD = NATIVE_LEASE_HOLD_FIELD;
41656
+ exports.NATIVE_LEASE_HOLD_KEY = NATIVE_LEASE_HOLD_KEY;
41600
41657
  exports.NATIVE_LEASE_SECTION_ID = NATIVE_LEASE_SECTION_ID;
41601
- exports.NATIVE_LEASE_TTL_FIELD = NATIVE_LEASE_TTL_FIELD;
41602
- exports.NATIVE_LEASE_TTL_KEY = NATIVE_LEASE_TTL_KEY;
41658
+ exports.NATIVE_LEASE_TILE_BUDGET_FIELD = NATIVE_LEASE_TILE_BUDGET_FIELD;
41659
+ exports.NATIVE_LEASE_TILE_BUDGET_KEY = NATIVE_LEASE_TILE_BUDGET_KEY;
41603
41660
  exports.NC_ALARM_SYSTEM_EVENT_KINDS = NC_ALARM_SYSTEM_EVENT_KINDS;
41604
41661
  exports.NC_AUDIO_DBFS_FLOOR = NC_AUDIO_DBFS_FLOOR;
41605
41662
  exports.NC_AUTHORABLE_SYSTEM_EVENT_KINDS = NC_AUTHORABLE_SYSTEM_EVENT_KINDS;
package/dist/index.mjs CHANGED
@@ -26323,13 +26323,24 @@ var recordingCapability = {
26323
26323
  /** Playback-speed multiplier for the render (1 = realtime). */
26324
26324
  var ExportSpeedSchema = z.number().min(.25).max(32);
26325
26325
  /**
26326
- * One dense interval, in SECONDS FROM THE EXPORT'S OWN `fromMs`.
26326
+ * One dense interval, in WALL-CLOCK SECONDS FROM THE EXPORT'S OWN `fromMs`.
26327
26327
  *
26328
- * Relative and not absolute epoch on purpose: the renderer's frame-select
26329
- * expression sees ffmpeg's `t`, which starts at 0 for the export's source
26330
- * playlist. Handing it absolute epochs would make every call site responsible
26331
- * for the same subtraction, and the one that forgot would emit a filter that
26332
- * selects nothing silently, as a uniform timelapse.
26328
+ * **Wall clock, not ffmpeg's `t`** and the recorder translates. A caller
26329
+ * derives these bounds from things that happened at a TIME (a track's
26330
+ * `firstSeen`), while `t` runs over the source playlist: the concatenation of
26331
+ * every segment present for the range, with each recording GAP removed. The
26332
+ * two agree only on a window that recorded without one interruption, and only
26333
+ * the render side knows the segments, so the translation lives there
26334
+ * (`export-dense-map.ts`, addon-pipeline).
26335
+ *
26336
+ * It was not always so. These seconds were fed to `between(t,…)` verbatim, and
26337
+ * on a 10 h window holding 29,393 s of footage every range landed late by the
26338
+ * gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
26339
+ * the video was a uniform timelapse, and the log line reported the five ranges
26340
+ * that had been ASKED for (2026-08-13, export `57d14363`, camera 615).
26341
+ *
26342
+ * Relative and not absolute epoch, because an absolute epoch would make every
26343
+ * call site responsible for the same subtraction.
26333
26344
  */
26334
26345
  var ExportDenseRangeSchema = z.object({
26335
26346
  fromSec: z.number().nonnegative(),
@@ -39602,8 +39613,8 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39602
39613
  //#endregion
39603
39614
  //#region src/pipeline/native-lease.ts
39604
39615
  /**
39605
- * THE native-frame **lease** knobs — TTL, RAM budget and demand window for the
39606
- * decode worker's native-resolution frame retention.
39616
+ * THE native-frame **lease** knobs — hold depth, RAM budget, demand window and
39617
+ * subject-tile budget for the decode worker's native-resolution retention.
39607
39618
  *
39608
39619
  * ## Why they live here and not in the addon that reads them
39609
39620
  *
@@ -39619,20 +39630,25 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39619
39630
  * The lease is a per-decode-worker RAM window. Its purpose — the late
39620
39631
  * cross-process native crop landing on a full-resolution frame rather than the
39621
39632
  * ≤640 detection fallback — is a property of the PIPELINE, not of a node's
39622
- * hardware: a per-node TTL would mean the same camera produces different crop
39633
+ * hardware: a per-node window would mean the same camera produces different crop
39623
39634
  * quality depending on which node the balancer placed it on, and nobody could
39624
39635
  * tell that from the stored media. Node-level RAM pressure is already handled
39625
39636
  * by the per-session budget ceiling, which is itself one of these knobs.
39626
39637
  *
39627
39638
  * ## What each knob costs
39628
39639
  *
39629
- * A retained frame is a full NATIVE-resolution copy in system RAM. With the
39640
+ * A HELD frame is a full NATIVE-resolution copy in system RAM. With the
39630
39641
  * default pinned-RGB24 lease path (`CAMSTACK_SESSION_PINNED_RGB_CROP`, on):
39631
39642
  * 4K ≈ 24.9 MB/frame, 1080p ≈ 6.2 MB/frame. On the YUV420P path (flag off, and
39632
39643
  * for software-decoded sessions): 4K ≈ 12.4 MB, 1080p ≈ 3.1 MB. Worst-case
39633
- * resident RAM for ONE busy camera frameBytes × deliveredFps × ttlSeconds,
39634
- * clamped by the budget ceiling. See `docs/design/decode-path.md` "Lease
39635
- * admission" for what actually gets admitted.
39644
+ * resident RAM for ONE busy camera is now `frameBytes × holdFrames`, clamped by
39645
+ * the budget ceiling bounded by a COUNT because a held frame is waiting for
39646
+ * one specific event (its own detection result), not for a clock.
39647
+ *
39648
+ * A TILE is one subject at native resolution, JPEG-encoded: ~60-120 KB on 4K,
39649
+ * and nothing at all on a frame that detected nothing. That is the asymmetry
39650
+ * this whole shape exists for — see
39651
+ * `docs/design/2026-08-13-native-lease-two-tier-redesign.md`.
39636
39652
  */
39637
39653
  /**
39638
39654
  * Store identity of the lease knobs in `pipeline-orchestrator`'s GLOBAL
@@ -39640,10 +39656,11 @@ function slideInsideFrame(rect, frameWidth, frameHeight) {
39640
39656
  * the reader can walk every section instead of trusting the section id.
39641
39657
  */
39642
39658
  var NATIVE_LEASE_SECTION_ID = "native-lease";
39643
- var NATIVE_LEASE_TTL_KEY = "nativeLeaseTtlMs";
39659
+ var NATIVE_LEASE_HOLD_KEY = "nativeLeaseHoldFrames";
39644
39660
  var NATIVE_LEASE_BUDGET_KEY = "nativeLeaseBudgetMb";
39645
39661
  var NATIVE_LEASE_ACTIVITY_KEY = "nativeLeaseActivityMs";
39646
39662
  var NATIVE_LEASE_ADMISSION_KEY = "nativeLeaseAdmission";
39663
+ var NATIVE_LEASE_TILE_BUDGET_KEY = "nativeTileBudgetMb";
39647
39664
  /**
39648
39665
  * WHICH delivered frames the decode worker retains a native copy of.
39649
39666
  *
@@ -39670,25 +39687,32 @@ var NativeLeaseAdmissionSchema = z.enum(["all", "inferred"]);
39670
39687
  */
39671
39688
  var NativeLeaseSettingsSchema = z.object({
39672
39689
  /**
39673
- * How long a retained native frame is served before it counts as a miss.
39690
+ * How many delivered frames the worker HOLDS at once, waiting for each one's
39691
+ * detection result.
39674
39692
  *
39675
- * Must cover the FULL late-crop horizon: detection inference + the
39676
- * cross-process inference-result hop to hub post-analysis + tracking + the
39677
- * tRPC crop round-trip back. Below ~500 ms the busiest cameras' subject crops
39678
- * outrun it and fall back to the ≤640 detection frame; above ~3 s the resident
39679
- * RAM per busy camera grows linearly with no measured hit-rate gain.
39693
+ * This replaced a TTL on 2026-08-13, and the replacement is the whole point:
39694
+ * a time window was never related to the event the pixels were waiting for.
39695
+ * A held frame now lives from delivery until the runner has its `FrameResult`
39696
+ * at which moment the runner cuts the subject tiles it actually wanted and
39697
+ * releases the frame. The bound exists only so a runner that stops answering
39698
+ * cannot pin RAM: above it the OLDEST held frame is dropped and counted.
39699
+ *
39700
+ * Sizing: the steady state is `inferenceLatency × deliveredFps`, measured at
39701
+ * 40-160 ms × ≤25 fps = 1-4 frames. The default leaves headroom for a hiccup
39702
+ * without ever approaching the old resident set (43 frames × 24.9 MB at 4K).
39703
+ * Raising it does not buy hit rate — it buys tolerance for a slow runner, and
39704
+ * `holdOverflow` on the metrics line is what says you need it.
39680
39705
  */
39681
- ttlMs: z.number().int().min(250).max(1e4),
39706
+ holdFrames: z.number().int().min(1).max(64),
39682
39707
  /**
39683
39708
  * Hard per-decode-worker RAM ceiling for retained native frames, in MB.
39684
39709
  *
39685
- * Intended as a SAFETY ceiling with the TTL as the effective cap — but check
39686
- * which one is actually binding before reasoning from that. At the shipped
39687
- * 1024 MB and a 2 800 ms TTL, a 4K camera hits the CEILING first (~43 frames
39688
- * at ~24 MB each) and the TTL never gets to expire anything; `leaseMb` /
39689
- * `leaseFrames` on the metrics line say which. When the ceiling binds, a
39690
- * change that admits fewer frames buys retention WINDOW at constant RAM
39691
- * rather than giving RAM back — lower this knob if RAM is what you wanted.
39710
+ * Since 2026-08-13 this is a SAFETY ceiling and nothing else: `holdFrames`
39711
+ * is what decides how much is held, and the ceiling is the number above which
39712
+ * something is wrong. Before that it was the effective cap at 1024 MB with
39713
+ * a 2 800 ms TTL a 4K camera sat pinned at `leaseMb:1020, leaseFrames:43`
39714
+ * with the TTL expiring nothing, which is exactly the confusion the hold
39715
+ * removes. `leaseMb` / `leaseFrames` still say what is resident.
39692
39716
  * `0` DISABLES the lease entirely and falls the worker back to the tiny
39693
39717
  * leak-prone GPU surface ring (~85% crop miss; that is what the lease exists
39694
39718
  * to replace).
@@ -39714,25 +39738,47 @@ var NativeLeaseSettingsSchema = z.object({
39714
39738
  * there is the signal that some caller names frames outside the inference set
39715
39739
  * and that this must go back to `all`.
39716
39740
  */
39717
- admission: NativeLeaseAdmissionSchema
39741
+ admission: NativeLeaseAdmissionSchema,
39742
+ /**
39743
+ * RAM ceiling per decode worker, in MB, for the SUBJECT TILES — the
39744
+ * compressed native crops the worker cuts at the moment a frame's detection
39745
+ * result arrives, and keeps long after the frame itself is freed.
39746
+ *
39747
+ * This is the knob that replaced the old retention window, and it buys about
39748
+ * three orders of magnitude more of it: a tile is one subject at native
39749
+ * resolution, JPEG-encoded (~60-120 KB on a 4K person), against ~24.9 MB for
39750
+ * the frame it was cut from. A frame on which nothing was detected costs
39751
+ * nothing at all, which is the real change — the old lease paid per FRAME and
39752
+ * was interrogated per SUBJECT.
39753
+ *
39754
+ * `0` DISABLES tiles, leaving only the hold window and the ≤640 RAM
39755
+ * fallback — i.e. the pre-2026-08-13 miss profile. Set it there only to
39756
+ * reproduce that.
39757
+ */
39758
+ tileBudgetMb: z.number().int().min(0).max(1024)
39718
39759
  });
39719
39760
  /**
39720
- * The values in force when the operator has set nothing — byte-for-byte the
39721
- * constants the decode worker shipped with as env-var defaults, so making these
39722
- * settings changed no behaviour on the day it landed.
39761
+ * The values in force when the operator has set nothing.
39762
+ *
39763
+ * `budgetMb` stays at 1024 on the day the hold landed, deliberately: it stopped
39764
+ * being the retention window and became the OOM ceiling, and lowering a ceiling
39765
+ * in the same change that redefines it would make a regression and a retune
39766
+ * indistinguishable. Cut it once `tileHits` / `holdOverflow` have been read on
39767
+ * live traffic.
39723
39768
  */
39724
39769
  var DEFAULT_NATIVE_LEASE_SETTINGS = {
39725
- ttlMs: 1200,
39770
+ holdFrames: 8,
39726
39771
  budgetMb: 1024,
39727
39772
  activityMs: 15e3,
39773
+ tileBudgetMb: 64,
39728
39774
  admission: "inferred"
39729
39775
  };
39730
39776
  /** Slider bounds for the operator-facing knobs (orchestrator settings UI). */
39731
- var NATIVE_LEASE_TTL_FIELD = {
39732
- min: 250,
39733
- max: 1e4,
39734
- step: 50,
39735
- default: DEFAULT_NATIVE_LEASE_SETTINGS.ttlMs
39777
+ var NATIVE_LEASE_HOLD_FIELD = {
39778
+ min: 1,
39779
+ max: 64,
39780
+ step: 1,
39781
+ default: DEFAULT_NATIVE_LEASE_SETTINGS.holdFrames
39736
39782
  };
39737
39783
  var NATIVE_LEASE_BUDGET_FIELD = {
39738
39784
  min: 0,
@@ -39746,6 +39792,12 @@ var NATIVE_LEASE_ACTIVITY_FIELD = {
39746
39792
  step: 1e3,
39747
39793
  default: DEFAULT_NATIVE_LEASE_SETTINGS.activityMs
39748
39794
  };
39795
+ var NATIVE_LEASE_TILE_BUDGET_FIELD = {
39796
+ min: 0,
39797
+ max: 1024,
39798
+ step: 16,
39799
+ default: DEFAULT_NATIVE_LEASE_SETTINGS.tileBudgetMb
39800
+ };
39749
39801
  /** Select options for the admission knob (orchestrator settings UI). */
39750
39802
  var NATIVE_LEASE_ADMISSION_FIELD = {
39751
39803
  options: [{
@@ -39765,7 +39817,7 @@ var NATIVE_LEASE_ADMISSION_FIELD = {
39765
39817
  * precedence being true and being a lie. `addon-settings.getGlobalSettings`
39766
39818
  * returns a HYDRATED payload, and `hydrateField` fills an unstored field with
39767
39819
  * the schema's own `default` (verified live on the hub: a cluster that has never
39768
- * opened the form still reports `nativeLeaseTtlMs = 1200`). A reader that took
39820
+ * opened the form still reports `nativeLeaseHoldFrames = 8`). A reader that took
39769
39821
  * that at face value would report all three knobs as "set" on every cluster on
39770
39822
  * the day this shipped, permanently retiring the `CAMSTACK_SESSION_NATIVE_LEASE_*`
39771
39823
  * emergency override that the precedence promises. There is no raw-store read on
@@ -39799,25 +39851,28 @@ function readAdmissionKnob(raw) {
39799
39851
  * {@link readKnob} for why the default counts as unset.
39800
39852
  */
39801
39853
  function readNativeLeaseOverride(config) {
39802
- const ttlMs = readKnob("ttlMs", config[NATIVE_LEASE_TTL_KEY]);
39854
+ const holdFrames = readKnob("holdFrames", config[NATIVE_LEASE_HOLD_KEY]);
39803
39855
  const budgetMb = readKnob("budgetMb", config[NATIVE_LEASE_BUDGET_KEY]);
39804
39856
  const activityMs = readKnob("activityMs", config[NATIVE_LEASE_ACTIVITY_KEY]);
39805
39857
  const admission = readAdmissionKnob(config[NATIVE_LEASE_ADMISSION_KEY]);
39858
+ const tileBudgetMb = readKnob("tileBudgetMb", config[NATIVE_LEASE_TILE_BUDGET_KEY]);
39806
39859
  return {
39807
- ...ttlMs === null ? {} : { ttlMs },
39860
+ ...holdFrames === null ? {} : { holdFrames },
39808
39861
  ...budgetMb === null ? {} : { budgetMb },
39809
39862
  ...activityMs === null ? {} : { activityMs },
39810
- ...admission === null ? {} : { admission }
39863
+ ...admission === null ? {} : { admission },
39864
+ ...tileBudgetMb === null ? {} : { tileBudgetMb }
39811
39865
  };
39812
39866
  }
39813
39867
  function isHydratedField(entry) {
39814
39868
  return typeof entry === "object" && entry !== null && "key" in entry;
39815
39869
  }
39816
39870
  var LEASE_KEYS = [
39817
- NATIVE_LEASE_TTL_KEY,
39871
+ NATIVE_LEASE_HOLD_KEY,
39818
39872
  NATIVE_LEASE_BUDGET_KEY,
39819
39873
  NATIVE_LEASE_ACTIVITY_KEY,
39820
- NATIVE_LEASE_ADMISSION_KEY
39874
+ NATIVE_LEASE_ADMISSION_KEY,
39875
+ NATIVE_LEASE_TILE_BUDGET_KEY
39821
39876
  ];
39822
39877
  /**
39823
39878
  * Extract the operator's lease overrides from an
@@ -41149,4 +41204,4 @@ function enumerateInferenceDevices(hw) {
41149
41204
  return out;
41150
41205
  }
41151
41206
  //#endregion
41152
- export { ACCESSORY_LABEL, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AUDIO_PRESETS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionCandidateResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, AdoptionJobSchema, AdoptionJobStateSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, AdoptionOutcomeSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileResultSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, EngineInfoSchema as DataStoreEngineInfoSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclaredDevices, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPORT_DENSE_MAX_RANGES, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventSourceType, ExportBytesSchema, ExportDenseRangeSchema, ExportDenseSchema, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TTL_FIELD, NATIVE_LEASE_TTL_KEY, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcAlarmConfigSchema, NcAlarmModeCoverageSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcAlarmSkipReasonSchema, NcAlarmSkippedDeviceSchema, NcAudioConditionSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcConfirmExpectSchema, NcConfirmSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleInputSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcSystemEventConditionSchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RECORDING_EXPORT_MAX_READ_BYTES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingRangeSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationMoveSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMELAPSE_DENSE_FLOOR_SEC, TIMEZONES, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackProjectionSchema, TrackSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainingExportDeviceTotalsSchema, TrainingExportSummarySchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VibrationStatusSchema, VideoEncodeSchema, WEBRTC_EGRESS_PROFILE, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, assertTimelapseCadences, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, audioPlanFromEncodeProfile, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, composeSwitchedOff, conditionDepth, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, decodeVectorBase64, decoderCapability, defaultDeviceFor, defineCustomActions, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isDeviceScopedCap, isEvent, isIsolatedBuiltin, isNode, isObjectInput, isSameAddonId, isScheduleActive, isSoftwareDecode, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageMigrationCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, summarisePrivacyAudio, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
41207
+ export { ACCESSORY_LABEL, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, APPLE_SA_TO_MACRO, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_MACRO_LABELS, AUDIO_PRESETS, AccessoriesStatusSchema, AccessoryKind, AddBrokerInputSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AdoptInputSchema as AdoptionAdoptInputSchema, AdoptResultSchema as AdoptionAdoptResultSchema, AdoptionCandidateResultSchema, AdoptionFilterSchema, GetCandidateInputSchema as AdoptionGetCandidateInputSchema, AdoptionJobSchema, AdoptionJobStateSchema, ListCandidatesInputSchema as AdoptionListCandidatesInputSchema, ListCandidatesOutputSchema as AdoptionListCandidatesOutputSchema, AdoptionOutcomeSchema, ReleaseInputSchema as AdoptionReleaseInputSchema, AdoptionStatusSchema, AgentLoadSummarySchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, ApiKeyRecordSchema, ApiKeySummarySchema, ArchiveEntrySchema, ArchiveManifestSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AuthResultSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BACKEND_TO_FORMAT, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BacklightModeSchema, BackupDestinationInfoSchema, BackupEntrySchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatteryStatusSchema, BinaryStatusSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerDecodedClientSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, COCO_80_LABELS, COCO_TO_MACRO, CONNECTION_TEST_TIMEOUT_MS, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CarbonMonoxideStatusSchema, ChargingStatus, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipPlaybackSchema, ClipSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableItemSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileResultSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateIntegrationInputSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, CustomActionInputSchema, CustomModelDescriptorSchema, DATAPLANE_SECRET_HEADER, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_RETENTION, DEFAULT_SCRUB_THUMBNAIL_PRESET, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_PIPELINE_CAP_NAME, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_PROFILES, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_INFO, EngineInfoSchema as DataStoreEngineInfoSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclaredDevices, DecodedAudioChunkSchema, DecodedFrameSchema, DecoderSessionConfigSchema, DecoderStatsSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionSourceSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceDiscoveryStatusSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceInfoSchema, DeviceNetworkStatsSchema, DeviceRole, DeviceRuntimeState, DeviceStatusSchema, DeviceType, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EVENTFUL_CAP_NAMES, EVENT_KIND_BY_CAP, EVENT_PAD_MS, EVENT_TAXONOMY, EXPORT_DENSE_MAX_RANGES, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingInfoSchema, EmbeddingResultSchema, EncodeProfileSchema, EncodedPacketSchema, EnrichedWidgetMetadataSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, EventCategory, EventEmitterStatusSchema, EventFireSchema, EventItemSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventSourceType, ExportBytesSchema, ExportDenseRangeSchema, ExportDenseSchema, ExportDownloadSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FloodStatusSchema, Fmp4BoxSplitter, FrameHandleFormatSchema, FrameHandleSchema, FrameInputSchema, GasStatusSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HWACCEL_OPTIONS, HealthStatusSchema, HistoryPointSchema, HistoryResolutionEnum, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, KNOWN_CAP_NAMES, KeyEventSchema, LOG_LEVEL_RANK, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmNodeModelSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmUsageRollupSchema, LlmUsageSchema, LocateSegmentResultSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogEntrySchema, LogLevelSchema, LogStreamEntrySchema, LoginMethodContributionSchema, LoginStageEnum, MACRO_LABELS, MAX_CONDITION_DEPTH, MAX_CONDITION_LEAVES, MAX_EXPRESSION_AST_NODES, MAX_EXPRESSION_BINDINGS, MAX_EXPRESSION_CALL_ARGS, MAX_EXPRESSION_EVAL_STEPS, MAX_EXPRESSION_SOURCE_LENGTH, METHOD_ACCESS_MAP, MODEL_FORMATS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MeshPeerSchema, MeshStatusSchema, MethodAccessSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatsSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BASE_CONDITION_KEYS, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, NC_TAXONOMY, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionStatusSchema, NcAlarmConfigSchema, NcAlarmModeCoverageSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcAlarmSkipReasonSchema, NcAlarmSkippedDeviceSchema, NcAudioConditionSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcConfirmExpectSchema, NcConfirmSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcMediaFrameSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleInputSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcSystemEventConditionSchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OauthIntegrationDescriptorSchema, ObjectEventSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PYTHON_SCRIPT, PackageUpdateSchema, PackageVersionInfoSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PolygonPointSchema, PowerMeterStatusSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, PtzStatusSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECOGNITION_TYPES, RECORDING_EXPORT_MAX_READ_BYTES, RESERVED_BINDING_NAMES, RUNTIME_DEFAULTS, RUNTIME_TO_FORMAT, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, RecentTracksPageSchema, RecentTracksQueryInput, RecordingAvailabilitySchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingRangeSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RedirectLoginMethodSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RenderedAsSchema, ReportMotionInputSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainMacroClassSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTransitionResultSchema, RingBuffer, RtpSourceSchema, RtspRestreamEntrySchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, SCOPE_PRESETS, SCRUB_THUMBNAIL_PRESETS, SCRUB_THUMBNAIL_PRESET_LABELS, SCRUB_THUMBNAIL_PRESET_ORDER, SENSOR_FEATURES, SENSOR_MAP, SOURCE_INFO_METADATA_KEY, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SceneCheckSchema, SceneConditionSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusSchema, SceneReferenceSchema, ScopedTokenSchema, ScopedTokenSummarySchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, ScrubThumbnailPresetSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateStateSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShmRingStatsSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StartEmbeddedInputSchema, StationaryObjectSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageLocationDeclarationSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationMoveSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SubscribeFramesInputSchema, SubscribeFramesResultSchema, SwitchStatusSchema, SystemMetricsSchema, SystemMirror, TAXONOMY_COLORS, TIMELAPSE_DENSE_FLOOR_SEC, TIMEZONES, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TankStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackProjectionSchema, TrackSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainingExportDeviceTotalsSchema, TrainingExportSummarySchema, TurnServerSchema, UNIT_TABLE, BrokerInfoSchema$1 as UnifiedBrokerInfoSchema, UnitConversionError, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserSummarySchema, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VibrationStatusSchema, VideoEncodeSchema, WEBRTC_EGRESS_PROFILE, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, accessoriesCapability, accessoryStableId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, airQualitySensorCapability, alarmPanelCapability, alertsCapability, ambientLightSensorCapability, asBoolean, asJsonArray, asJsonObject, asNumber, asString, assertTimelapseCadences, audioAnalysisCapability, audioAnalyzerCapability, audioCodecCapability, audioMetricsCapability, audioPlanFromEncodeProfile, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, buildAddonRouteProvider, buildAudioArgs, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildStreamParamsConfigSchema, buildVideoArgs, buttonCapability, cameraCredentialsCapability, cameraPipelineConfigCapability, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, carbonMonoxideCapability, cellsToRects, classifyBearerPrincipal, classifyStream, classifyStreams, climateControlCapability, collectHydratedFieldEntries, collectHydratedFieldValues, colorCapability, colorForKind, compileExpression, compileExpressionSafe, composeSwitchedOff, conditionDepth, connectionTestCapability, connectivityCapability, consumablesCapability, contactCapability, controlCapability, convertUnit, coreBlockAddonId, coreBlockIdFromAddonId, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createDeviceProxy, createDurableState, createEvent, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createMirrorSource, createRuntimeStateBridge, createSliceHandle, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, dayNightCapability, declarationOwnerNodeId, decodeVectorBase64, decoderCapability, defaultDeviceFor, defineCustomActions, deriveCameraSwitches, deriveDetailCropRect, deriveRecordingMode, describeModelVariant, detectionPipelineCapability, deviceAdoptionCapability, deviceBackendToFormat, deviceCustomAction, deviceDiscoveryCapability, deviceExportCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceStateCapability, deviceStatusCapability, doorbellCapability, egressTranscodeSharingKey, egressTransportFromRequest, embeddingEncoderCapability, emitDownForOwnedCaps, emitReadiness, encodeProfileFromStreamShape, encodeVectorBase64, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, evaluateAst, evaluateExpressionSource, evaluateZoneRules, event, eventEmitterCapability, eventsCapability, expandCapMethods, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, fanControlCapability, featureProbeCapability, filesystemBrowseCapability, findTimezone, floodCapability, formatForBackend, formatForRuntime, gasCapability, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getTaxonomyEntry, hasMotionTrigger, hfModelUrl, htmlToText, humidifierCapability, humiditySensorCapability, hydrateSchema, imageCapability, imageSettingsCapability, integrationsCapability, intercomCapability, invocationFromEncodeProfile, isAgentOnlyPlacement, isArrayOutputSchema, isBaseConditionKey, isCollectionArrayMethod, isDeployableToAgent, isDeviceConfigCap, isDeviceScopedCap, isEvent, isIsolatedBuiltin, isNode, isObjectInput, isSameAddonId, isScheduleActive, isSoftwareDecode, isVoidInput, jobKindSchema, kebabToCamel, knownValues, lawnMowerControlCapability, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, llmCapability, llmRuntimeCapability, localNetworkCapability, locationSimilarity, lockControlCapability, logBannerArgs, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeProfileBrokerId, makeSourceBrokerId, mapAudioLabelToMacro, markdownToHtmlLite, markdownToText, maskUrlCredentials, mediaPlayerCapability, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, metricsProviderCapability, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, motionCapability, motionDetectionCapability, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, networkAccessCapability, networkQualityCapability, nodePin, nodesCapability, normalizeAddonInitResult, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, objectInputDeclaresAddonId, osdCapability, osdManagerCapability, parseCameraStreamConfig, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseProfileBrokerId, parseStreamParamsFormPatch, petFeederCapability, pickAccessoryControl, pickDetailCropConvention, pickNativeLeaseOverride, pickPreferredRtspEntry, pickVideoEncoder, pickerForCondition, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, plateGalleryCapability, platformProbeCapability, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, ptzAutotrackCapability, ptzCapability, pythonScriptForBackend, readDetailCropConvention, readDeviceStateFrom, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readinessKey, rebootCapability, recordingCapability, recordingExportCapability, rectsToCells, requiresPython, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAddonRuntime, resolveCapMount, resolveDetectionRuntime, resolveDeviceControlKind, resolveDeviceProfile, resolveEgressDecodeHwAccel, resolveFormat, resolveHydratedFieldValue, resolveModelFormat, resolveMutate, resolveRunnerId, resolveScrubThumbnailGeometry, resolveVariantModelId, runInferenceStep, runtimeDevices, sceneMonitorCapability, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, scoreRuntimes, scriptRunnerCapability, selectAssignedProfileSlots, serverManagementCapability, setByPath, settingsStoreCapability, sleep, sleepCancellable, smokeCapability, smtpProviderCapability, snapshotCapability, ssoBridgeCapability, startReachabilityPoll, stateVocabularyFor, storageCapability, storageEvictableCapability, storageMigrationCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, subKindsOf, summarisePrivacyAudio, supportedRuntimes, switchCapability, switchedOffIds, synthesizeSourceInfo, systemCapability, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, terminalSessionCapability, textToHtml, toDeviceSummary, toExpressionValue, toNodeId, toStreamSourceEntry, toastCapability, tokenize, transcodeBody, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, updateCapability, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerUiCapability, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
@@ -1,6 +1,6 @@
1
1
  /**
2
- * THE native-frame **lease** knobs — TTL, RAM budget and demand window for the
3
- * decode worker's native-resolution frame retention.
2
+ * THE native-frame **lease** knobs — hold depth, RAM budget, demand window and
3
+ * subject-tile budget for the decode worker's native-resolution retention.
4
4
  *
5
5
  * ## Why they live here and not in the addon that reads them
6
6
  *
@@ -16,20 +16,25 @@
16
16
  * The lease is a per-decode-worker RAM window. Its purpose — the late
17
17
  * cross-process native crop landing on a full-resolution frame rather than the
18
18
  * ≤640 detection fallback — is a property of the PIPELINE, not of a node's
19
- * hardware: a per-node TTL would mean the same camera produces different crop
19
+ * hardware: a per-node window would mean the same camera produces different crop
20
20
  * quality depending on which node the balancer placed it on, and nobody could
21
21
  * tell that from the stored media. Node-level RAM pressure is already handled
22
22
  * by the per-session budget ceiling, which is itself one of these knobs.
23
23
  *
24
24
  * ## What each knob costs
25
25
  *
26
- * A retained frame is a full NATIVE-resolution copy in system RAM. With the
26
+ * A HELD frame is a full NATIVE-resolution copy in system RAM. With the
27
27
  * default pinned-RGB24 lease path (`CAMSTACK_SESSION_PINNED_RGB_CROP`, on):
28
28
  * 4K ≈ 24.9 MB/frame, 1080p ≈ 6.2 MB/frame. On the YUV420P path (flag off, and
29
29
  * for software-decoded sessions): 4K ≈ 12.4 MB, 1080p ≈ 3.1 MB. Worst-case
30
- * resident RAM for ONE busy camera frameBytes × deliveredFps × ttlSeconds,
31
- * clamped by the budget ceiling. See `docs/design/decode-path.md` "Lease
32
- * admission" for what actually gets admitted.
30
+ * resident RAM for ONE busy camera is now `frameBytes × holdFrames`, clamped by
31
+ * the budget ceiling bounded by a COUNT because a held frame is waiting for
32
+ * one specific event (its own detection result), not for a clock.
33
+ *
34
+ * A TILE is one subject at native resolution, JPEG-encoded: ~60-120 KB on 4K,
35
+ * and nothing at all on a frame that detected nothing. That is the asymmetry
36
+ * this whole shape exists for — see
37
+ * `docs/design/2026-08-13-native-lease-two-tier-redesign.md`.
33
38
  */
34
39
  import { z } from 'zod';
35
40
  import type { HydratedSettingsView } from './detail-crop.js';
@@ -39,10 +44,11 @@ import type { HydratedSettingsView } from './detail-crop.js';
39
44
  * the reader can walk every section instead of trusting the section id.
40
45
  */
41
46
  export declare const NATIVE_LEASE_SECTION_ID = "native-lease";
42
- export declare const NATIVE_LEASE_TTL_KEY = "nativeLeaseTtlMs";
47
+ export declare const NATIVE_LEASE_HOLD_KEY = "nativeLeaseHoldFrames";
43
48
  export declare const NATIVE_LEASE_BUDGET_KEY = "nativeLeaseBudgetMb";
44
49
  export declare const NATIVE_LEASE_ACTIVITY_KEY = "nativeLeaseActivityMs";
45
50
  export declare const NATIVE_LEASE_ADMISSION_KEY = "nativeLeaseAdmission";
51
+ export declare const NATIVE_LEASE_TILE_BUDGET_KEY = "nativeTileBudgetMb";
46
52
  /**
47
53
  * WHICH delivered frames the decode worker retains a native copy of.
48
54
  *
@@ -72,19 +78,24 @@ export type NativeLeaseAdmission = z.infer<typeof NativeLeaseAdmissionSchema>;
72
78
  * junk number would silently become a 0-length or unbounded retention window.
73
79
  */
74
80
  export declare const NativeLeaseSettingsSchema: z.ZodObject<{
75
- ttlMs: z.ZodNumber;
81
+ holdFrames: z.ZodNumber;
76
82
  budgetMb: z.ZodNumber;
77
83
  activityMs: z.ZodNumber;
78
84
  admission: z.ZodEnum<{
79
85
  all: "all";
80
86
  inferred: "inferred";
81
87
  }>;
88
+ tileBudgetMb: z.ZodNumber;
82
89
  }, z.core.$strip>;
83
90
  export type NativeLeaseSettings = z.infer<typeof NativeLeaseSettingsSchema>;
84
91
  /**
85
- * The values in force when the operator has set nothing — byte-for-byte the
86
- * constants the decode worker shipped with as env-var defaults, so making these
87
- * settings changed no behaviour on the day it landed.
92
+ * The values in force when the operator has set nothing.
93
+ *
94
+ * `budgetMb` stays at 1024 on the day the hold landed, deliberately: it stopped
95
+ * being the retention window and became the OOM ceiling, and lowering a ceiling
96
+ * in the same change that redefines it would make a regression and a retune
97
+ * indistinguishable. Cut it once `tileHits` / `holdOverflow` have been read on
98
+ * live traffic.
88
99
  */
89
100
  export declare const DEFAULT_NATIVE_LEASE_SETTINGS: NativeLeaseSettings;
90
101
  /**
@@ -94,10 +105,10 @@ export declare const DEFAULT_NATIVE_LEASE_SETTINGS: NativeLeaseSettings;
94
105
  */
95
106
  export type NativeLeaseSettingsOverride = Partial<NativeLeaseSettings>;
96
107
  /** Slider bounds for the operator-facing knobs (orchestrator settings UI). */
97
- export declare const NATIVE_LEASE_TTL_FIELD: {
98
- readonly min: 250;
99
- readonly max: 10000;
100
- readonly step: 50;
108
+ export declare const NATIVE_LEASE_HOLD_FIELD: {
109
+ readonly min: 1;
110
+ readonly max: 64;
111
+ readonly step: 1;
101
112
  readonly default: number;
102
113
  };
103
114
  export declare const NATIVE_LEASE_BUDGET_FIELD: {
@@ -112,6 +123,12 @@ export declare const NATIVE_LEASE_ACTIVITY_FIELD: {
112
123
  readonly step: 1000;
113
124
  readonly default: number;
114
125
  };
126
+ export declare const NATIVE_LEASE_TILE_BUDGET_FIELD: {
127
+ readonly min: 0;
128
+ readonly max: 1024;
129
+ readonly step: 16;
130
+ readonly default: number;
131
+ };
115
132
  /** Select options for the admission knob (orchestrator settings UI). */
116
133
  export declare const NATIVE_LEASE_ADMISSION_FIELD: {
117
134
  readonly options: readonly [{
@@ -123,10 +140,10 @@ export declare const NATIVE_LEASE_ADMISSION_FIELD: {
123
140
  }];
124
141
  readonly default: "all" | "inferred";
125
142
  };
126
- /** The four knobs, as a key union. */
143
+ /** Every knob, as a key union. */
127
144
  export type NativeLeaseKnob = keyof NativeLeaseSettings;
128
- /** The three knobs whose value is a bounded integer (everything but `admission`). */
129
- export type NativeLeaseNumberKnob = 'ttlMs' | 'budgetMb' | 'activityMs';
145
+ /** The knobs whose value is a bounded integer (everything but `admission`). */
146
+ export type NativeLeaseNumberKnob = 'holdFrames' | 'budgetMb' | 'activityMs' | 'tileBudgetMb';
130
147
  /**
131
148
  * Narrow a FLAT settings record to the knobs the operator set.
132
149
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.64",
3
+ "version": "1.2.65",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",