@camstack/types 1.2.451 → 1.2.453

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/addon/base-addon.d.ts +27 -0
  3. package/dist/addon.js +8 -3
  4. package/dist/addon.mjs +8 -3
  5. package/dist/automation/condition-eval.d.ts +20 -5
  6. package/dist/automation/detection-subject.d.ts +154 -0
  7. package/dist/automation/detection-trigger.d.ts +16 -6
  8. package/dist/automation/index.d.ts +10 -4
  9. package/dist/automation/legacy-recipe.d.ts +130 -0
  10. package/dist/automation/normalize-units.d.ts +4 -3
  11. package/dist/automation/recipe.d.ts +286 -142
  12. package/dist/automation/stationary-trigger.d.ts +4 -4
  13. package/dist/automation/step-runner.d.ts +3 -1
  14. package/dist/automation/trace.d.ts +51 -6
  15. package/dist/automation/when.d.ts +295 -0
  16. package/dist/capabilities/actions.cap.d.ts +10 -0
  17. package/dist/capabilities/addon-settings.cap.d.ts +18 -0
  18. package/dist/capabilities/core-blocks.cap.d.ts +2546 -51
  19. package/dist/capabilities/device-discovery.cap.d.ts +2 -0
  20. package/dist/capabilities/device-manager.cap.d.ts +16 -1
  21. package/dist/capabilities/device-provider.cap.d.ts +165 -0
  22. package/dist/capabilities/index.d.ts +3 -3
  23. package/dist/capabilities/integrations.cap.d.ts +1 -0
  24. package/dist/capabilities/keychain.cap.d.ts +12 -0
  25. package/dist/capabilities/local-network.cap.d.ts +198 -0
  26. package/dist/capabilities/storage-admin.cap.d.ts +155 -0
  27. package/dist/capabilities/terminal-session.cap.d.ts +7 -0
  28. package/dist/client.js +8 -1
  29. package/dist/client.mjs +8 -1
  30. package/dist/device/base-device-provider.d.ts +17 -0
  31. package/dist/generated/addon-api.d.ts +84 -0
  32. package/dist/generated/collection-array-methods.d.ts +1 -1
  33. package/dist/generated/method-access-map.d.ts +1 -1
  34. package/dist/generated/system-proxy.d.ts +3 -3
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.js +1969 -706
  37. package/dist/index.mjs +1934 -703
  38. package/dist/interfaces/addon.d.ts +16 -0
  39. package/dist/interfaces/config-ui-secrets.d.ts +5 -3
  40. package/dist/interfaces/config-ui.d.ts +34 -1
  41. package/dist/{sleep-BSPhInRm.js → sleep-CewR0zRz.js} +125 -6
  42. package/dist/{sleep-63gM_1JR.mjs → sleep-CeyhrcOk.mjs} +125 -6
  43. package/dist/vendor-login-proxy/cookie-jar.d.ts +30 -0
  44. package/dist/vendor-login-proxy/index.d.ts +1 -0
  45. package/dist/vendor-login-proxy/login-proxy.d.ts +6 -0
  46. package/dist/vendor-login-proxy/url-rewrite.d.ts +9 -2
  47. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as toNodeId, $n as RECORD_SECRET_COLLECTION_PREFIX, $r as SECRET_CLEAR, $t as entryBody, A as HF_REPO, An as RECORDS_ERROR_CODES, Ar as resolveSecretMarkers, At as FrameHandleSchema, B as DEVICE_CHILDREN_BATCH_MAX, Bn as asRecordsError, Br as normalizeNodeId, Bt as parseProfileBrokerId, Cn as BatchTooLargeError, Cr as mergeSecretStatePaths, Ct as BrokerStatusSchema, D as createSliceHandle, Dn as InvalidRecordError, Dr as KeychainWriteRefusedError, Dt as CamStreamResolutionSchema, E as createMirrorSource, En as ForeignSecretMarkerError, Er as secretTreeFromSchema, Et as CamStreamKindSchema, F as RawStateResultSchema, Fn as RecordsError, Fr as formatSecretScope, Ft as StreamSourceSchema, G as describeCustomActions, Gn as RECORD_DATABASES, Gr as WELL_KNOWN_TABS, Gt as ReadingQuantitySchema, H as withoutCallerStamp, Hn as RECORD_BATCH_MAX, Hr as createEvent, Ht as DEFAULT_DISPLAY_PREFERENCE, I as deviceOpsCapability, In as RevConflictError, Ir as globalSecretScope, It as SubscribeAudioChunksInputSchema, J as AddonPageDeclarationSchema, Jn as RECORD_ID_MAX_LENGTH, Jr as collectHydratedFieldValues, Jt as historyUnitFor, K as deviceCustomAction, Kn as RECORD_DEFAULT_MAX_DATA_BYTES, Kr as WELL_KNOWN_TAB_MAP, Kt as baseUnitOf, L as viewerUiCapability, Ln as TransactRefusedError, Lr as isSecretRef, Lt as SubscribeAudioChunksResultSchema, Mn as RecordSecretUnavailableError, Mr as SECRET_REF_SCHEME, Mt as ProfileSlotSchema, N as CAP_NAMES, Nn as RecordTooLargeError, Nr as arrayItemFieldPath, Nt as ProfileSlotStatusSchema, O as DEFAULT_TOKEN_EXPIRY, On as NoCallerError, Or as collectSecretMarkerRefs, Ot as CameraStreamSchema, Pn as RecordUniqueViolationError, Pr as buildSecretRef, Pt as StreamSourceEntrySchema, Q as readNodePin, Qn as RECORD_QUERY_MAX, Qr as resolveHydratedFieldValue, Qt as defineEntryKind, R as PipelineRunResultBridge, Rn as UnindexedFilterError, Rr as normalizeSecretOwner, Rt as makeProfileBrokerId, S as invokeTrpcLeaf, Sn as isZodSecret, Sr as normalizeAddonInitResult, St as BrokerStatsSchema, T as createLazyTrpcSource, Tn as FilterRequiredError, Tr as secretTreeFromPaths, Tt as CamProfileSchema, U as customAction, Un as RECORD_BATCH_MAX_BYTES, Ur as emitReadiness, Ut as DISPLAY_PREFERENCES, V as CALLER_STAMPED_CAPABILITIES, Vn as recordsErrorFromMessage, Vr as createDurableState, Vt as selectAssignedProfileSlots, W as defineCustomActions, Wn as RECORD_CLASSES, Wr as isEvent, Wt as QUANTITY_BASE, X as CAP_NODE_PIN_CONTEXT_KEY, Xn as RECORD_MAX_INDEXES, Xr as dehydrateSchema, Xt as readingMeta, Y as addonPagesSourceCapability, Yn as RECORD_MAX_DATA_BYTES, Yr as dehydrateConfigField, Yt as isReadingQuantity, Z as nodePin, Zn as RECORD_MAX_INDEX_FIELDS, Zr as hydrateSchema, Zt as makeInMemoryRecords, _ as readErrorI18n, _i as isAudioChunkFormat, _n as recordSecretCollection, _r as DATAPLANE_SECRET_HEADER, _t as emitDownForOwnedCaps, a as asJsonArray, ai as makeSecretMarker, an as RecordKindDeclarationSchema, ar as MIN_SCRUBBED_LENGTH, at as PROVIDER_PIN_FIELD, b as isDeviceScopedCap, bn as SECRET_META, br as BaseAddon, bt as AudioChunkFormatSchema, c as asString, ci as collectKeychainStoredKeys, cn as StoredRecordKindDeclarationSchema, cr as knownSecretCount, ct as historyItemFieldPath, d as parseJsonUnknown, di as isSecretConfigField, dn as defineRecordKinds, dr as shortSecretRefHash, dt as optionalMethod, ei as classifySecretWrite, en as createRecordsAccess, er as RECORD_SETTINGS_MAX_ROWS, et as DEFAULT_RUNTIME_STATE_DURABILITY, f as hfModelUrl, fi as omitTransientConfig, fn as REMOVE_LEAF, fr as PEER_BYTES_CHUNK_BYTES, ft as resolveCapMount, g as ErrorI18nPayloadSchema, gi as expandAudioChunkToF32le, gn as recordArrayItemPath, gr as PeerBytesTicketSchema, gt as ReadinessTimeoutError, h as ErrorCodeSchema, hi as audioChunkBytesPerSample, hn as parseSecretPath, hr as PEER_BYTES_TICKET_TTL_MS, ht as ReadinessRegistry, i as asBoolean, ii as isSecretMarkerLike, in as RecordIndexSchema, ir as createSecretsAccess, it as HISTORY_UNIT_LABELS, j as RUNTIME_DEFAULTS, jn as RecordNotFoundError, jr as transformSecretWrite, jt as ProfileRtspEntrySchema, k as HF_BASE_URL, kn as PlaintextSecretError, kr as isSecretRefOwnedBy, kt as DecodedAudioChunkSchema, l as parseJsonArray, li as collectSecretConfigKeys, ln as assertValidDeclaration, lr as registerKnownSecret, lt as isDeviceConfigCap, m as CamstackError, mi as AUDIO_CHUNK_FORMATS, mn as mapSecretLeaves, mr as PEER_BYTES_STALL_MS, mt as MODEL_FORMATS, n as sleepCancellable, ni as isSecretFieldView, nn as EntryDescriptorSchema, nr as resolveSecretViewsIn, nt as DEVICE_STATUS_METHOD, o as asJsonObject, oi as toSecretFieldView, on as RecordKindNameSchema, or as clearKnownSecrets, ot as event, p as BOOT_RECOVERY_BACKOFF_MS, pi as schemaDeclaresAnyField, pn as collectSecretLeaves, pr as PEER_BYTES_MAX_OUTSTANDING, pt as systemMethod, q as adminUiCapability, qn as RECORD_DELETE_BATCH, qr as collectHydratedFieldEntries, qt as displayUnitFor, r as maskUrlCredentials, ri as isSecretMarker, rn as RecordFieldPathSchema, rr as REVALIDATE_AFTER_MS, rt as HISTORY_DEFAULT_MIN_INTERVAL_MS, s as asNumber, si as REDACTED_SECRET, sn as RecordRetentionSchema, sr as forgetKnownSecret, st as expandCapMethods, t as sleep, ti as isSecretClear, tn as assertTransactScope, tr as RECORD_SWEEP_INTERVAL_MS, tt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, u as parseJsonObject, ui as isKeychainStoredField, un as declarationsOf, ur as scrubKnownSecrets, ut as method, v as userError, vn as recordSecretRef, vr as SHARE_VIEW_KINDS, vt as readinessKey, w as createEventBusSliceSource, wn as DeclarationRefusedError, wr as parseSecretStatePath, wt as CAM_PROFILE_ORDER, x as createDeviceProxy, xn as collectZodSecretPaths, xr as classifyStoreError, xt as AudioStreamPickSchema, y as DEVICE_SCOPED_CAPS, yn as secretArrayPrefixes, yr as DisposerChain, yt as scopeKey, z as PipelineStepInputSchema, zn as UnknownRecordKindError, zr as parseSecretRef, zt as makeSourceBrokerId } from "./sleep-63gM_1JR.mjs";
1
+ import { $ as toNodeId, $n as RECORD_SECRET_COLLECTION_PREFIX, $r as SECRET_CLEAR, $t as entryBody, A as HF_REPO, An as RECORDS_ERROR_CODES, Ar as resolveSecretMarkers, At as FrameHandleSchema, B as DEVICE_CHILDREN_BATCH_MAX, Bn as asRecordsError, Br as normalizeNodeId, Bt as parseProfileBrokerId, Cn as BatchTooLargeError, Cr as mergeSecretStatePaths, Ct as BrokerStatusSchema, D as createSliceHandle, Dn as InvalidRecordError, Dr as KeychainWriteRefusedError, Dt as CamStreamResolutionSchema, E as createMirrorSource, En as ForeignSecretMarkerError, Er as secretTreeFromSchema, Et as CamStreamKindSchema, F as RawStateResultSchema, Fn as RecordsError, Fr as formatSecretScope, Ft as StreamSourceSchema, G as describeCustomActions, Gn as RECORD_DATABASES, Gr as WELL_KNOWN_TABS, Gt as ReadingQuantitySchema, H as withoutCallerStamp, Hn as RECORD_BATCH_MAX, Hr as createEvent, Ht as DEFAULT_DISPLAY_PREFERENCE, I as deviceOpsCapability, In as RevConflictError, Ir as globalSecretScope, It as SubscribeAudioChunksInputSchema, J as AddonPageDeclarationSchema, Jn as RECORD_ID_MAX_LENGTH, Jr as collectHydratedFieldValues, Jt as historyUnitFor, K as deviceCustomAction, Kn as RECORD_DEFAULT_MAX_DATA_BYTES, Kr as WELL_KNOWN_TAB_MAP, Kt as baseUnitOf, L as viewerUiCapability, Ln as TransactRefusedError, Lr as isSecretRef, Lt as SubscribeAudioChunksResultSchema, Mn as RecordSecretUnavailableError, Mr as SECRET_REF_SCHEME, Mt as ProfileSlotSchema, N as CAP_NAMES, Nn as RecordTooLargeError, Nr as arrayItemFieldPath, Nt as ProfileSlotStatusSchema, O as DEFAULT_TOKEN_EXPIRY, On as NoCallerError, Or as collectSecretMarkerRefs, Ot as CameraStreamSchema, Pn as RecordUniqueViolationError, Pr as buildSecretRef, Pt as StreamSourceEntrySchema, Q as readNodePin, Qn as RECORD_QUERY_MAX, Qr as resolveHydratedFieldValue, Qt as defineEntryKind, R as PipelineRunResultBridge, Rn as UnindexedFilterError, Rr as normalizeSecretOwner, Rt as makeProfileBrokerId, S as invokeTrpcLeaf, Sn as isZodSecret, Sr as normalizeAddonInitResult, St as BrokerStatsSchema, T as createLazyTrpcSource, Tn as FilterRequiredError, Tr as secretTreeFromPaths, Tt as CamProfileSchema, U as customAction, Un as RECORD_BATCH_MAX_BYTES, Ur as emitReadiness, Ut as DISPLAY_PREFERENCES, V as CALLER_STAMPED_CAPABILITIES, Vn as recordsErrorFromMessage, Vr as createDurableState, Vt as selectAssignedProfileSlots, W as defineCustomActions, Wn as RECORD_CLASSES, Wr as isEvent, Wt as QUANTITY_BASE, X as CAP_NODE_PIN_CONTEXT_KEY, Xn as RECORD_MAX_INDEXES, Xr as dehydrateSchema, Xt as readingMeta, Y as addonPagesSourceCapability, Yn as RECORD_MAX_DATA_BYTES, Yr as dehydrateConfigField, Yt as isReadingQuantity, Z as nodePin, Zn as RECORD_MAX_INDEX_FIELDS, Zr as hydrateSchema, Zt as makeInMemoryRecords, _ as readErrorI18n, _i as isAudioChunkFormat, _n as recordSecretCollection, _r as DATAPLANE_SECRET_HEADER, _t as emitDownForOwnedCaps, a as asJsonArray, ai as makeSecretMarker, an as RecordKindDeclarationSchema, ar as MIN_SCRUBBED_LENGTH, at as PROVIDER_PIN_FIELD, b as isDeviceScopedCap, bn as SECRET_META, br as BaseAddon, bt as AudioChunkFormatSchema, c as asString, ci as collectKeychainStoredKeys, cn as StoredRecordKindDeclarationSchema, cr as knownSecretCount, ct as historyItemFieldPath, d as parseJsonUnknown, di as isSecretConfigField, dn as defineRecordKinds, dr as shortSecretRefHash, dt as optionalMethod, ei as classifySecretWrite, en as createRecordsAccess, er as RECORD_SETTINGS_MAX_ROWS, et as DEFAULT_RUNTIME_STATE_DURABILITY, f as hfModelUrl, fi as omitTransientConfig, fn as REMOVE_LEAF, fr as PEER_BYTES_CHUNK_BYTES, ft as resolveCapMount, g as ErrorI18nPayloadSchema, gi as expandAudioChunkToF32le, gn as recordArrayItemPath, gr as PeerBytesTicketSchema, gt as ReadinessTimeoutError, h as ErrorCodeSchema, hi as audioChunkBytesPerSample, hn as parseSecretPath, hr as PEER_BYTES_TICKET_TTL_MS, ht as ReadinessRegistry, i as asBoolean, ii as isSecretMarkerLike, in as RecordIndexSchema, ir as createSecretsAccess, it as HISTORY_UNIT_LABELS, j as RUNTIME_DEFAULTS, jn as RecordNotFoundError, jr as transformSecretWrite, jt as ProfileRtspEntrySchema, k as HF_BASE_URL, kn as PlaintextSecretError, kr as isSecretRefOwnedBy, kt as DecodedAudioChunkSchema, l as parseJsonArray, li as collectSecretConfigKeys, ln as assertValidDeclaration, lr as registerKnownSecret, lt as isDeviceConfigCap, m as CamstackError, mi as AUDIO_CHUNK_FORMATS, mn as mapSecretLeaves, mr as PEER_BYTES_STALL_MS, mt as MODEL_FORMATS, n as sleepCancellable, ni as isSecretFieldView, nn as EntryDescriptorSchema, nr as resolveSecretViewsIn, nt as DEVICE_STATUS_METHOD, o as asJsonObject, oi as toSecretFieldView, on as RecordKindNameSchema, or as clearKnownSecrets, ot as event, p as BOOT_RECOVERY_BACKOFF_MS, pi as schemaDeclaresAnyField, pn as collectSecretLeaves, pr as PEER_BYTES_MAX_OUTSTANDING, pt as systemMethod, q as adminUiCapability, qn as RECORD_DELETE_BATCH, qr as collectHydratedFieldEntries, qt as displayUnitFor, r as maskUrlCredentials, ri as isSecretMarker, rn as RecordFieldPathSchema, rr as REVALIDATE_AFTER_MS, rt as HISTORY_DEFAULT_MIN_INTERVAL_MS, s as asNumber, si as REDACTED_SECRET, sn as RecordRetentionSchema, sr as forgetKnownSecret, st as expandCapMethods, t as sleep, ti as isSecretClear, tn as assertTransactScope, tr as RECORD_SWEEP_INTERVAL_MS, tt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, u as parseJsonObject, ui as isKeychainStoredField, un as declarationsOf, ur as scrubKnownSecrets, ut as method, v as userError, vn as recordSecretRef, vr as SHARE_VIEW_KINDS, vt as readinessKey, w as createEventBusSliceSource, wn as DeclarationRefusedError, wr as parseSecretStatePath, wt as CAM_PROFILE_ORDER, x as createDeviceProxy, xn as collectZodSecretPaths, xr as classifyStoreError, xt as AudioStreamPickSchema, y as DEVICE_SCOPED_CAPS, yn as secretArrayPrefixes, yr as DisposerChain, yt as scopeKey, z as PipelineStepInputSchema, zn as UnknownRecordKindError, zr as parseSecretRef, zt as makeSourceBrokerId } from "./sleep-CeyhrcOk.mjs";
2
2
  import { i as publicEventCategories, n as OWNER_ONLY_EVENT_CATEGORIES, r as isOwnerOnlyEventCategory, t as EventCategory } from "./event-category-DmZDPDf_.mjs";
3
3
  import { $ as ExpressionHelperSpecSchema, $n as pickVideoEncoder, $t as evaluateExpressionSource, A as MAX_COMPOSITION_ITEMS, An as evaluateSensorEdge, At as nextLocalMidnight, B as fieldReads, Bt as evaluateStatistic, C as CompositionSchema, Cn as ExpressionEvalError, Ct as MIN_CUSTOM_MINUTES, D as MAX_COMPOSITION_CODE_LENGTH, Dn as SOURCE_CAP_ACTIVE_FIELD, Dt as StatisticWindowSchema, E as FORWARD_INPUT_KEY, En as SOURCE_CAPS, Et as RollingWindowSchema, F as compositionReadKey, Fn as FFMPEG_PATH_ENV, Ft as rollingDurationMs, G as ActiveCriterionSchema, Gn as audioPlanFromEncodeProfile, Gt as APPLIANCE_KINDS, H as ACTIVE_CRITERIA, Hn as Fmp4BoxSplitter, Ht as KWH_PER_WATT_MS, I as compositionSliceKey, It as statisticCadenceMs, J as ArithmeticHelperSpecSchema, Jn as buildInputArgs, Jt as isApplianceKind, K as AggregateReducerSchema, Kn as buildAudioArgs, Kt as APPLIANCE_TEMPLATE_ID, L as compositionSourceKey, Lt as SERIES_KINDS, M as composedDeviceStableId, Mn as isSourceCap, Mt as openStatistic, N as compositionFeatureEnabled, Nn as sliceActiveValue, Nt as planResetTier, O as MAX_COMPOSITION_FEATURES, On as SOURCE_CAP_CHANGED_AT_FIELD, Ot as integralCadenceMs, P as compositionItemFieldPath, Pn as sliceChangedAt, Pt as planStatisticTier, Q as EXPRESSION_OUTPUTS, Qn as logBannerArgs, Qt as createStatefulExpressionMemory, R as featureFieldEntries, Rt as STATISTIC_STATS, S as CompositionPassthroughFeatureSchema, Sn as isStatefulBuiltin, St as MINUTE_MS, T as CompositionTargetSchema, Tn as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, Tt as ROLLING_SPANS, U as AGGREGATE_REDUCERS, Un as AUDIO_PRESETS, Ut as wattMillisecondsToKwh, V as isForwardInputRef, Vn as canonicalHash, Vt as integrateReading, W as ARITHMETIC_OPS, Wn as RESTREAM_INPUT_PROBE, Wt as APPLIANCE_DEFAULTS, X as DERIVATIVE_UNITS, Xn as invocationFromEncodeProfile, Xt as EXPRESSION_INJECTED_NOW, Y as BINARY_AGGREGATES, Yn as buildVideoArgs, Yt as sourcePickForAppliance, Z as DerivativeHelperSpecSchema, Zn as isSoftwareDecode, Zt as cloneStatefulExpressionMemory, _ as CompositionForwardCommandSchema, _n as EXPRESSION_BUILTINS, _t as DEFAULT_HISTORY_RETENTION, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, an as compileExpression, at as INTEGRAL_OUTPUTS, b as CompositionLiteralBindingSchema, bn as evaluateCount, bt as HISTORY_TIERS, c as CompositionCodeSourceSchema, cn as tokenize, ct as NUMERIC_AGGREGATES, d as CompositionExpressionSourceSchema, dn as MAX_EXPRESSION_AST_NODES, dt as helperMembers, en as evaluateStatefulExpressionCall, er as resolveStreamMaps, et as GROUP_TEMPLATE_IDS, f as CompositionFeatureSchema, fn as MAX_EXPRESSION_BINDINGS, ft as isHistoryHelper, g as CompositionForwardArgSchema, gn as RESERVED_BINDING_NAMES, gt as DAY_MS, h as CompositionFieldsFeatureSchema, hn as MAX_EXPRESSION_SOURCE_LENGTH, ht as CalendarWindowSchema, i as COMPOSITION_ITEM_KEY_RE, in as evaluateAst, it as HelperSpecSchema, j as composedDeviceRef, jn as evaluateSensorLevelEdge, jt as openReset, k as MAX_COMPOSITION_FIELDS_PER_FEATURE, kn as SOURCE_DEVICE_TYPES, kt as maxDurationMs, l as CompositionCommandTargetSchema, ln as EXPRESSION_COMPILE_CACHE_CAPACITY, lt as StatisticHelperSpecSchema, m as CompositionFieldSourceSchema, mn as MAX_EXPRESSION_EVAL_STEPS, mt as CALENDAR_PERIODS, n as COMPOSER_ADDON_ID, nn as validateExpressionSource, nt as GroupTemplateIdSchema, o as CompositionAggregateSourceSchema, on as compileExpressionSafe, ot as IntegralHelperSpecSchema, p as CompositionFieldReadSchema, pn as MAX_EXPRESSION_CALL_ARGS, pt as CompositionSourceRefSchema, q as ApplianceHelperSpecSchema, qn as buildFfmpegArgs, qt as applianceDeviceType, r as COMPOSITION_ITEM_ARRAY_PATH, rn as createExpressionScope, rt as HelperMemberSchema, s as CompositionBindingSchema, sn as parseExpression, st as MAX_HELPER_MEMBERS, t as COMPOSED_DEVICE_STABLE_ID_PREFIX, tn as toExpressionValue, tt as GroupHelperSpecSchema, u as CompositionExistingTargetSchema, un as EXPRESSION_IDENTIFIER_RE, ut as ThresholdHelperSpecSchema, v as CompositionFromSourceSchema, vn as EXPRESSION_BUILTIN_NAMES, vt as HISTORY_FAST_MS, w as CompositionSeriesSourceSchema, wn as ExpressionParseError, wt as RESET_PERIODS, x as CompositionNewTargetSchema, xn as evaluateRose, xt as HOUR_MS, y as CompositionItemEntrySchema, yn as disarmRoseMemory, yt as HISTORY_SLOW_MS, z as featureSources, zt as evaluateDerivative } from "./composition-C7WdThmP.mjs";
4
4
  import { NODE_COLOR_IDS, NodeColorIdSchema, assignNodeColorId } from "./node-color.mjs";
@@ -8844,47 +8844,664 @@ function paramMetaOf(field) {
8844
8844
  return metaOf(field) ?? metaOf(unwrapSchema(field));
8845
8845
  }
8846
8846
  //#endregion
8847
- //#region src/automation/recipe.ts
8847
+ //#region src/catalogs/coco-classmap.ts
8848
+ var COCO_80_LABELS = [
8849
+ {
8850
+ id: "person",
8851
+ name: "Person"
8852
+ },
8853
+ {
8854
+ id: "bicycle",
8855
+ name: "Bicycle"
8856
+ },
8857
+ {
8858
+ id: "car",
8859
+ name: "Car"
8860
+ },
8861
+ {
8862
+ id: "motorcycle",
8863
+ name: "Motorcycle"
8864
+ },
8865
+ {
8866
+ id: "airplane",
8867
+ name: "Airplane"
8868
+ },
8869
+ {
8870
+ id: "bus",
8871
+ name: "Bus"
8872
+ },
8873
+ {
8874
+ id: "train",
8875
+ name: "Train"
8876
+ },
8877
+ {
8878
+ id: "truck",
8879
+ name: "Truck"
8880
+ },
8881
+ {
8882
+ id: "boat",
8883
+ name: "Boat"
8884
+ },
8885
+ {
8886
+ id: "traffic light",
8887
+ name: "Traffic Light"
8888
+ },
8889
+ {
8890
+ id: "fire hydrant",
8891
+ name: "Fire Hydrant"
8892
+ },
8893
+ {
8894
+ id: "stop sign",
8895
+ name: "Stop Sign"
8896
+ },
8897
+ {
8898
+ id: "parking meter",
8899
+ name: "Parking Meter"
8900
+ },
8901
+ {
8902
+ id: "bench",
8903
+ name: "Bench"
8904
+ },
8905
+ {
8906
+ id: "bird",
8907
+ name: "Bird"
8908
+ },
8909
+ {
8910
+ id: "cat",
8911
+ name: "Cat"
8912
+ },
8913
+ {
8914
+ id: "dog",
8915
+ name: "Dog"
8916
+ },
8917
+ {
8918
+ id: "horse",
8919
+ name: "Horse"
8920
+ },
8921
+ {
8922
+ id: "sheep",
8923
+ name: "Sheep"
8924
+ },
8925
+ {
8926
+ id: "cow",
8927
+ name: "Cow"
8928
+ },
8929
+ {
8930
+ id: "elephant",
8931
+ name: "Elephant"
8932
+ },
8933
+ {
8934
+ id: "bear",
8935
+ name: "Bear"
8936
+ },
8937
+ {
8938
+ id: "zebra",
8939
+ name: "Zebra"
8940
+ },
8941
+ {
8942
+ id: "giraffe",
8943
+ name: "Giraffe"
8944
+ },
8945
+ {
8946
+ id: "backpack",
8947
+ name: "Backpack"
8948
+ },
8949
+ {
8950
+ id: "umbrella",
8951
+ name: "Umbrella"
8952
+ },
8953
+ {
8954
+ id: "handbag",
8955
+ name: "Handbag"
8956
+ },
8957
+ {
8958
+ id: "tie",
8959
+ name: "Tie"
8960
+ },
8961
+ {
8962
+ id: "suitcase",
8963
+ name: "Suitcase"
8964
+ },
8965
+ {
8966
+ id: "frisbee",
8967
+ name: "Frisbee"
8968
+ },
8969
+ {
8970
+ id: "skis",
8971
+ name: "Skis"
8972
+ },
8973
+ {
8974
+ id: "snowboard",
8975
+ name: "Snowboard"
8976
+ },
8977
+ {
8978
+ id: "sports ball",
8979
+ name: "Sports Ball"
8980
+ },
8981
+ {
8982
+ id: "kite",
8983
+ name: "Kite"
8984
+ },
8985
+ {
8986
+ id: "baseball bat",
8987
+ name: "Baseball Bat"
8988
+ },
8989
+ {
8990
+ id: "baseball glove",
8991
+ name: "Baseball Glove"
8992
+ },
8993
+ {
8994
+ id: "skateboard",
8995
+ name: "Skateboard"
8996
+ },
8997
+ {
8998
+ id: "surfboard",
8999
+ name: "Surfboard"
9000
+ },
9001
+ {
9002
+ id: "tennis racket",
9003
+ name: "Tennis Racket"
9004
+ },
9005
+ {
9006
+ id: "bottle",
9007
+ name: "Bottle"
9008
+ },
9009
+ {
9010
+ id: "wine glass",
9011
+ name: "Wine Glass"
9012
+ },
9013
+ {
9014
+ id: "cup",
9015
+ name: "Cup"
9016
+ },
9017
+ {
9018
+ id: "fork",
9019
+ name: "Fork"
9020
+ },
9021
+ {
9022
+ id: "knife",
9023
+ name: "Knife"
9024
+ },
9025
+ {
9026
+ id: "spoon",
9027
+ name: "Spoon"
9028
+ },
9029
+ {
9030
+ id: "bowl",
9031
+ name: "Bowl"
9032
+ },
9033
+ {
9034
+ id: "banana",
9035
+ name: "Banana"
9036
+ },
9037
+ {
9038
+ id: "apple",
9039
+ name: "Apple"
9040
+ },
9041
+ {
9042
+ id: "sandwich",
9043
+ name: "Sandwich"
9044
+ },
9045
+ {
9046
+ id: "orange",
9047
+ name: "Orange"
9048
+ },
9049
+ {
9050
+ id: "broccoli",
9051
+ name: "Broccoli"
9052
+ },
9053
+ {
9054
+ id: "carrot",
9055
+ name: "Carrot"
9056
+ },
9057
+ {
9058
+ id: "hot dog",
9059
+ name: "Hot Dog"
9060
+ },
9061
+ {
9062
+ id: "pizza",
9063
+ name: "Pizza"
9064
+ },
9065
+ {
9066
+ id: "donut",
9067
+ name: "Donut"
9068
+ },
9069
+ {
9070
+ id: "cake",
9071
+ name: "Cake"
9072
+ },
9073
+ {
9074
+ id: "chair",
9075
+ name: "Chair"
9076
+ },
9077
+ {
9078
+ id: "couch",
9079
+ name: "Couch"
9080
+ },
9081
+ {
9082
+ id: "potted plant",
9083
+ name: "Potted Plant"
9084
+ },
9085
+ {
9086
+ id: "bed",
9087
+ name: "Bed"
9088
+ },
9089
+ {
9090
+ id: "dining table",
9091
+ name: "Dining Table"
9092
+ },
9093
+ {
9094
+ id: "toilet",
9095
+ name: "Toilet"
9096
+ },
9097
+ {
9098
+ id: "tv",
9099
+ name: "TV"
9100
+ },
9101
+ {
9102
+ id: "laptop",
9103
+ name: "Laptop"
9104
+ },
9105
+ {
9106
+ id: "mouse",
9107
+ name: "Mouse"
9108
+ },
9109
+ {
9110
+ id: "remote",
9111
+ name: "Remote"
9112
+ },
9113
+ {
9114
+ id: "keyboard",
9115
+ name: "Keyboard"
9116
+ },
9117
+ {
9118
+ id: "cell phone",
9119
+ name: "Cell Phone"
9120
+ },
9121
+ {
9122
+ id: "microwave",
9123
+ name: "Microwave"
9124
+ },
9125
+ {
9126
+ id: "oven",
9127
+ name: "Oven"
9128
+ },
9129
+ {
9130
+ id: "toaster",
9131
+ name: "Toaster"
9132
+ },
9133
+ {
9134
+ id: "sink",
9135
+ name: "Sink"
9136
+ },
9137
+ {
9138
+ id: "refrigerator",
9139
+ name: "Refrigerator"
9140
+ },
9141
+ {
9142
+ id: "book",
9143
+ name: "Book"
9144
+ },
9145
+ {
9146
+ id: "clock",
9147
+ name: "Clock"
9148
+ },
9149
+ {
9150
+ id: "vase",
9151
+ name: "Vase"
9152
+ },
9153
+ {
9154
+ id: "scissors",
9155
+ name: "Scissors"
9156
+ },
9157
+ {
9158
+ id: "teddy bear",
9159
+ name: "Teddy Bear"
9160
+ },
9161
+ {
9162
+ id: "hair drier",
9163
+ name: "Hair Drier"
9164
+ },
9165
+ {
9166
+ id: "toothbrush",
9167
+ name: "Toothbrush"
9168
+ }
9169
+ ];
9170
+ var MACRO_LABELS = [
9171
+ {
9172
+ id: "person",
9173
+ name: "Person"
9174
+ },
9175
+ {
9176
+ id: "vehicle",
9177
+ name: "Vehicle"
9178
+ },
9179
+ {
9180
+ id: "animal",
9181
+ name: "Animal"
9182
+ },
9183
+ {
9184
+ id: "package",
9185
+ name: "Package"
9186
+ }
9187
+ ];
8848
9188
  /**
8849
- * The automation RECIPE — what a visually-authored automation is, before it
8850
- * becomes code.
9189
+ * The class names a per-class COUNT can ever be keyed on — the macro ids, and
9190
+ * only those.
8851
9191
  *
8852
- * This is the data half of `docs/design/2026-08-08-automation-scripts-custom-devices.md`
8853
- * Phase 6. A recipe is not an engine and never evaluates anything: it is a
8854
- * declarative description that {@link generateAutomationBlock} compiles to the
8855
- * TypeScript of an ordinary core block. There is therefore no second rule
8856
- * engine, no second store and no second runtime — the block runner is the
8857
- * runtime, `core_blocks` is the store (§2.1).
9192
+ * `preserveOriginal: false` below is the whole reason this set exists: the
9193
+ * executor maps each raw COCO label onto its macro and DROPS everything else,
9194
+ * so a tracked detection's `className` is always one of {@link MACRO_LABELS}.
9195
+ * Any surface that indexes counts by class name — the ZoneAnalytics occupancy
9196
+ * snapshot's `byClass`, and therefore every occupancy rule — can match nothing
9197
+ * else. Derived from the catalog, never hand-listed, so a new macro joins it by
9198
+ * being declared once.
9199
+ *
9200
+ * Cost of not having it, 2026-08-12: the notification rule editor offered the
9201
+ * full taxonomy for an occupancy class (occupancy is the one condition that
9202
+ * does not go through the engine's macro-expanding `expandClassSelector`), two
9203
+ * live rules were authored on `car`, and both counters read 0 forever.
9204
+ */
9205
+ var DETECTION_MACRO_CLASSES = new Set(MACRO_LABELS.map((l) => l.id));
9206
+ /** True when `className` is a macro the detector can actually emit (and hence a
9207
+ * class a count can be keyed on) — see {@link DETECTION_MACRO_CLASSES}. */
9208
+ function isDetectionMacroClass(className) {
9209
+ return DETECTION_MACRO_CLASSES.has(className.trim().toLowerCase());
9210
+ }
9211
+ var COCO_TO_MACRO = {
9212
+ mapping: {
9213
+ person: "person",
9214
+ bicycle: "vehicle",
9215
+ car: "vehicle",
9216
+ motorcycle: "vehicle",
9217
+ airplane: "vehicle",
9218
+ bus: "vehicle",
9219
+ train: "vehicle",
9220
+ truck: "vehicle",
9221
+ boat: "vehicle",
9222
+ bird: "animal",
9223
+ cat: "animal",
9224
+ dog: "animal",
9225
+ horse: "animal",
9226
+ sheep: "animal",
9227
+ cow: "animal",
9228
+ elephant: "animal",
9229
+ bear: "animal",
9230
+ zebra: "animal",
9231
+ giraffe: "animal",
9232
+ suitcase: "package",
9233
+ backpack: "package",
9234
+ handbag: "package"
9235
+ },
9236
+ preserveOriginal: false
9237
+ };
9238
+ //#endregion
9239
+ //#region src/automation/detection-subject.ts
9240
+ /**
9241
+ * WHAT a detection-shaped leaf is about: one MACRO class (person, vehicle,
9242
+ * animal, package) plus an OPTIONAL label that narrows it.
8858
9243
  *
8859
- * Three vocabularies, each salvaged rather than invented:
9244
+ * The taxonomy is `COCO_TO_MACRO` (and `CLASS_MAP_MACRO_TARGETS`) — never a
9245
+ * second list. The label that fits depends on the macro class:
8860
9246
  *
8861
- * - **Triggers** — the only genuinely new surface. Seven members, none of which
8862
- * touches notification delivery. The NC keeps its four *pipeline* triggers;
8863
- * these are device/time triggers and the two sets do not overlap.
8864
- * - **Conditions** — `ALL`/`ANY`/`NOT` over three leaf kinds, bounded. The
8865
- * expression leaf is the bounded engine at `../expression/`, which is where
8866
- * arithmetic between two device fields lives and the only place it lives.
8867
- * - **Actions** — `NcRuleActionSchema`'s two steps, plus the `{kind:'code'}`
8868
- * fragment of §3.2.2. See {@link AutomationActionSchema} for the ONE place
8869
- * this had to diverge from "verbatim", and why.
9247
+ * - `animal` → a sub-class (`dog`, `cat`, …);
9248
+ * - `person` → a known face (an identity of the `face-gallery`);
9249
+ * - `vehicle` → a plate (its text) or a sub-class (`car`, `truck`, …);
9250
+ * - `package` → a sub-class.
9251
+ *
9252
+ * `other` exists only so a class the taxonomy does not know (a custom model's
9253
+ * `forklift`) survives the conversion of a stored recipe without widening.
9254
+ *
9255
+ * A label is decided LATE (D683): face recognition and LPR land after the
9256
+ * detection starts. The track-lifecycle `update` event carries the newly
9257
+ * resolved `label` / `plateText`, which is why a leaf with a label fires when
9258
+ * the subject GETS it — not at the first detection.
9259
+ */
9260
+ var SubClassLabelSchema = z.object({
9261
+ kind: z.literal("sub-class"),
9262
+ className: z.string().min(1)
9263
+ });
9264
+ var IdentityLabelSchema = z.object({
9265
+ kind: z.literal("identity"),
9266
+ /** The `face-gallery` identity id (stable across a rename). */
9267
+ identityId: z.string().min(1),
9268
+ /** The identity's name — what a track-lifecycle event carries as `label`. */
9269
+ name: z.string().min(1)
9270
+ });
9271
+ var PlateLabelSchema = z.object({
9272
+ kind: z.literal("plate"),
9273
+ text: z.string().min(1)
9274
+ });
9275
+ function macroOf$1(className) {
9276
+ return COCO_TO_MACRO.mapping[className.toLowerCase()] ?? className.toLowerCase();
9277
+ }
9278
+ /** A sub-class label must belong to the macro it is under. */
9279
+ function subClassBelongs(macro, label) {
9280
+ return label === void 0 || macroOf$1(label.className) === macro;
9281
+ }
9282
+ var subClassOf = (macro) => SubClassLabelSchema.refine((l) => subClassBelongs(macro, l), { message: `that class is not a kind of ${macro} in the detection taxonomy` });
9283
+ var DetectionSubjectSchema = z.discriminatedUnion("macro", [
9284
+ z.object({
9285
+ macro: z.literal("animal"),
9286
+ label: subClassOf("animal").optional()
9287
+ }),
9288
+ z.object({
9289
+ macro: z.literal("person"),
9290
+ label: IdentityLabelSchema.optional()
9291
+ }),
9292
+ z.object({
9293
+ macro: z.literal("vehicle"),
9294
+ label: z.discriminatedUnion("kind", [SubClassLabelSchema.refine((l) => subClassBelongs("vehicle", l), { message: "that class is not a kind of vehicle in the detection taxonomy" }), PlateLabelSchema]).optional()
9295
+ }),
9296
+ z.object({
9297
+ macro: z.literal("package"),
9298
+ label: subClassOf("package").optional()
9299
+ }),
9300
+ z.object({
9301
+ macro: z.literal("other"),
9302
+ className: z.string().min(1)
9303
+ })
9304
+ ]);
9305
+ /**
9306
+ * The subject of a PARKED object. The stationary registry's event carries a
9307
+ * class and a zone, no face and no plate — an identity or plate label there
9308
+ * could never match, so the schema refuses it instead of letting it sit dead.
9309
+ */
9310
+ var StationarySubjectSchema = DetectionSubjectSchema.refine((s) => s.macro === "other" || s.label === void 0 || s.label.kind === "sub-class", { message: "a parked object carries no face or plate — only a class can narrow it" });
9311
+ /**
9312
+ * Where an editor lists the labels of a macro class. Sub-classes come from the
9313
+ * taxonomy (`subClassesOf`); identities and plates come from the galleries'
9314
+ * own methods, so a picker reads the cap and never a copy of it.
9315
+ */
9316
+ var DETECTION_LABEL_SOURCES = {
9317
+ animal: [{ kind: "sub-class" }],
9318
+ person: [{
9319
+ kind: "cap",
9320
+ cap: "face-gallery",
9321
+ method: "listIdentities",
9322
+ label: "identity"
9323
+ }],
9324
+ vehicle: [{
9325
+ kind: "cap",
9326
+ cap: "plate-gallery",
9327
+ method: "listPlates",
9328
+ label: "plate"
9329
+ }, { kind: "sub-class" }],
9330
+ package: [{ kind: "sub-class" }]
9331
+ };
9332
+ /** The raw classes the taxonomy files under a macro class. */
9333
+ function subClassesOf(macro) {
9334
+ return Object.entries(COCO_TO_MACRO.mapping).filter(([, m]) => m === macro).map(([raw]) => raw);
9335
+ }
9336
+ /**
9337
+ * A stored class string as a subject: a macro name stays a macro; a raw class
9338
+ * the taxonomy files under a macro becomes that macro plus the sub-class label
9339
+ * (`dog` → animal / dog); anything else is `other`, kept verbatim.
9340
+ */
9341
+ function subjectFromClassName(className) {
9342
+ const name = className.trim().toLowerCase();
9343
+ const macro = COCO_TO_MACRO.mapping[name];
9344
+ if (new Set(Object.values(COCO_TO_MACRO.mapping)).has(name)) return macroOnly(name);
9345
+ if (macro === void 0) return {
9346
+ macro: "other",
9347
+ className
9348
+ };
9349
+ const label = {
9350
+ kind: "sub-class",
9351
+ className: name
9352
+ };
9353
+ switch (macro) {
9354
+ case "animal": return {
9355
+ macro: "animal",
9356
+ label
9357
+ };
9358
+ case "vehicle": return {
9359
+ macro: "vehicle",
9360
+ label
9361
+ };
9362
+ case "package": return {
9363
+ macro: "package",
9364
+ label
9365
+ };
9366
+ default: return {
9367
+ macro: "other",
9368
+ className
9369
+ };
9370
+ }
9371
+ }
9372
+ function macroOnly(macro) {
9373
+ switch (macro) {
9374
+ case "animal": return { macro: "animal" };
9375
+ case "person": return { macro: "person" };
9376
+ case "vehicle": return { macro: "vehicle" };
9377
+ case "package": return { macro: "package" };
9378
+ default: return {
9379
+ macro: "other",
9380
+ className: macro
9381
+ };
9382
+ }
9383
+ }
9384
+ function normalisePlate(text) {
9385
+ return text.toUpperCase().replace(/[^A-Z0-9]/g, "");
9386
+ }
9387
+ /** A human name for a subject, for a reason line. */
9388
+ function describeSubject(subject) {
9389
+ if (subject.macro === "other") return subject.className;
9390
+ const label = subject.label;
9391
+ if (label === void 0) return subject.macro;
9392
+ switch (label.kind) {
9393
+ case "sub-class": return `${subject.macro} ${label.className}`;
9394
+ case "identity": return `${subject.macro} ${label.name}`;
9395
+ case "plate": return `${subject.macro} plate ${label.text}`;
9396
+ }
9397
+ }
9398
+ /** Does one observation satisfy one subject, and which label did it match? */
9399
+ function subjectMatches(subject, observed) {
9400
+ const className = observed.className.toLowerCase();
9401
+ if (subject.macro === "other") return className === subject.className.toLowerCase() ? {
9402
+ matches: true,
9403
+ label: ""
9404
+ } : {
9405
+ matches: false,
9406
+ reason: `class ${observed.className || "unknown"} is not ${subject.className}`
9407
+ };
9408
+ if (macroOf$1(className) !== subject.macro) return {
9409
+ matches: false,
9410
+ reason: `class ${observed.className || "unknown"} is not a ${subject.macro}`
9411
+ };
9412
+ const label = subject.label;
9413
+ if (label === void 0) return {
9414
+ matches: true,
9415
+ label: ""
9416
+ };
9417
+ switch (label.kind) {
9418
+ case "sub-class": {
9419
+ const wanted = label.className.toLowerCase();
9420
+ return [
9421
+ className,
9422
+ ...observed.classes ?? [],
9423
+ observed.label ?? ""
9424
+ ].map((c) => c.toLowerCase()).includes(wanted) ? {
9425
+ matches: true,
9426
+ label: label.className
9427
+ } : {
9428
+ matches: false,
9429
+ reason: `${subject.macro} ${label.className} not seen yet`
9430
+ };
9431
+ }
9432
+ case "identity": {
9433
+ const byId = observed.identityId !== void 0 && observed.identityId === label.identityId;
9434
+ const byName = observed.label !== void 0 && observed.label.toLowerCase() === label.name.toLowerCase();
9435
+ return byId || byName ? {
9436
+ matches: true,
9437
+ label: label.name
9438
+ } : {
9439
+ matches: false,
9440
+ reason: `face ${label.name} not recognised yet${observed.label === void 0 || observed.label === "" ? "" : ` (seen as ${observed.label})`}`
9441
+ };
9442
+ }
9443
+ case "plate": {
9444
+ const text = observed.plateText ?? observed.label ?? "";
9445
+ return text !== "" && normalisePlate(text) === normalisePlate(label.text) ? {
9446
+ matches: true,
9447
+ label: label.text
9448
+ } : {
9449
+ matches: false,
9450
+ reason: `plate ${label.text} not read yet${text === "" ? "" : ` (read ${text})`}`
9451
+ };
9452
+ }
9453
+ }
9454
+ }
9455
+ /** The first subject an observation satisfies, else why the last one did not. */
9456
+ function anySubjectMatches(subjects, observed) {
9457
+ let lastReason = "no subject listed";
9458
+ for (const subject of subjects) {
9459
+ const verdict = subjectMatches(subject, observed);
9460
+ if (verdict.matches) return verdict;
9461
+ lastReason = verdict.reason;
9462
+ }
9463
+ return {
9464
+ matches: false,
9465
+ reason: subjects.length === 1 ? lastReason : `none of [${subjects.map(describeSubject).join(", ")}] matches (${observed.className || "unknown"})`
9466
+ };
9467
+ }
9468
+ //#endregion
9469
+ //#region src/automation/when.ts
9470
+ /**
9471
+ * The `when` tree — the ONE place an automation says when it runs.
9472
+ *
9473
+ * Containers are `all` / `any` / `not`. Leaves come in two kinds, told apart by
9474
+ * what they ARE, not by which section of a form they sit in:
9475
+ *
9476
+ * - **event leaves (instants)** — something HAPPENS: a device field *becomes*
9477
+ * a value, a device event, a schedule tick, an interval, a manual run, a
9478
+ * detection, a parked object appearing or leaving;
9479
+ * - **state leaves (durations)** — something IS true: a device field *is*
9480
+ * compared to a value, a parked object is present, an expression holds.
8870
9481
  *
8871
- * Bounds are a guard, not a paragraph (§3.2.1): depth ≤ 3, ≤ 32 leaves. They are
8872
- * enforced by {@link validateRecipeBounds} AND by the schema, so a recipe that
8873
- * arrives over the wire cannot skip the check that the editor applies.
9482
+ * Firing rule (ADR, "one tree"):
9483
+ * 1. A tree with event leaves fires when ONE of them occurs AND the whole tree
9484
+ * is true at that instant. The event that occurred is true; every other
9485
+ * event leaf is false.
9486
+ * 2. A tree of state leaves only fires when it goes false → true. The first
9487
+ * evaluation seeds the state, so it never fires because it was already true.
9488
+ * 3. Two event leaves that can only be satisfied together are refused at
9489
+ * author time ({@link validateWhenTree}).
8874
9490
  */
8875
9491
  /**
8876
- * Depth of a condition tree, counting the root container as level 1.
9492
+ * Depth of the `when` tree, counting the root container as level 1. The old
9493
+ * condition tree was bounded at 3 under a flat list of triggers; the trigger
9494
+ * list is now the tree's top `any`, one level, so the bound is 3 + 1 and a
9495
+ * converted recipe never exceeds it.
8877
9496
  *
8878
- * Three is enough and is not arbitrary: `NOT` over a group is always rewritable
8879
- * by De Morgan (`not(any(a,b))` ≡ `all(not a, not b)`), so the shapes that would
8880
- * need a fourth level have an equivalent at three. An editor that refuses depth
8881
- * 4 should offer that rewrite rather than refusing blankly.
9497
+ * `NOT` over a group is always rewritable by De Morgan, so the shapes that
9498
+ * would need a fifth level have an equivalent at four.
8882
9499
  */
8883
- var MAX_CONDITION_DEPTH = 3;
9500
+ var MAX_WHEN_DEPTH = 4;
8884
9501
  /** Leaves per automation. A UI that grows without a bound becomes a language. */
8885
- var MAX_CONDITION_LEAVES = 32;
8886
- /** How a leaf compares a device field to a value. Derived from the field's
8887
- * `kind` in `deviceManager.getWireableFields`, never hand-maintained. */
9502
+ var MAX_WHEN_LEAVES = 32;
9503
+ /** How a state leaf compares a device field to a value. Derived from the
9504
+ * field's `kind` in `deviceManager.getWireableFields`, never hand-maintained. */
8888
9505
  var AutomationConditionOperatorSchema = z.enum([
8889
9506
  "eq",
8890
9507
  "ne",
@@ -8895,12 +9512,76 @@ var AutomationConditionOperatorSchema = z.enum([
8895
9512
  "contains",
8896
9513
  "in"
8897
9514
  ]);
8898
- var AutomationConditionLeafSchema = z.object({
8899
- kind: z.literal("condition"),
9515
+ /**
9516
+ * D8 compliance, and it is the reason a "becomes" leaf is not merely an event
9517
+ * subscription: it evaluates against the **state mirror**, which is reconciled,
9518
+ * and an event only WAKES the evaluation. A dropped event therefore DELAYS a
9519
+ * fire; it does not lose it.
9520
+ */
9521
+ var DeviceBecomesLeafSchema = z.object({
9522
+ kind: z.literal("device-becomes"),
9523
+ deviceId: z.number().int().nonnegative(),
9524
+ cap: z.string().min(1),
9525
+ fieldPath: z.string().min(1),
9526
+ /** Fire when the field takes this value. Omit to fire on any change. */
9527
+ becomes: z.union([
9528
+ z.string(),
9529
+ z.number(),
9530
+ z.boolean()
9531
+ ]).optional(),
9532
+ /** Only on a CHANGE of value, not on every re-report. */
9533
+ edge: z.boolean().optional(),
9534
+ /** The new value must hold this long before it counts. */
9535
+ forMs: z.number().int().min(0).max(864e5).optional(),
9536
+ /** Collapse a burst into one occurrence. */
9537
+ debounceMs: z.number().int().min(0).max(6e5).optional()
9538
+ });
9539
+ var DeviceEventLeafSchema = z.object({
9540
+ kind: z.literal("device-event"),
9541
+ /** An `EventCategory` value. */
9542
+ category: z.string().min(1),
9543
+ deviceId: z.number().int().nonnegative().optional()
9544
+ });
9545
+ var ScheduleLeafSchema = z.object({
9546
+ kind: z.literal("schedule"),
9547
+ cron: z.string().min(1).max(120)
9548
+ });
9549
+ var ManualLeafSchema = z.object({ kind: z.literal("manual") });
9550
+ var IntervalLeafSchema = z.object({
9551
+ kind: z.literal("interval"),
9552
+ minutes: z.number().int().min(1).max(1440)
9553
+ });
9554
+ var DetectionLeafSchema = z.object({
9555
+ kind: z.literal("detection"),
9556
+ /** One macro class each, optionally narrowed by a label; a track of any listed subject fires. */
9557
+ subjects: z.array(DetectionSubjectSchema).min(1),
9558
+ deviceIds: z.array(z.number().int().nonnegative()).min(1),
9559
+ /** The track must have visited at least one of these zones. */
9560
+ zones: z.array(z.string().min(1)).min(1).optional(),
9561
+ /** Best-so-far confidence the track must reach. */
9562
+ minScore: z.number().min(0).max(1).optional()
9563
+ });
9564
+ var StationaryLeafSchema = z.object({
9565
+ kind: z.literal("stationary"),
9566
+ deviceIds: z.array(z.number().int().nonnegative()).min(1),
9567
+ subjects: z.array(StationarySubjectSchema).min(1).optional(),
9568
+ zones: z.array(z.string().min(1)).min(1).optional(),
9569
+ /** `appeared`: it became parked. `departed`: the registry retired it. */
9570
+ phase: z.enum(["appeared", "departed"])
9571
+ });
9572
+ /** "is": one device field compared to one value, NOW. */
9573
+ var DeviceIsLeafSchema = z.object({
9574
+ kind: z.literal("device-is"),
8900
9575
  deviceId: z.number().int().nonnegative(),
8901
9576
  cap: z.string().min(1),
8902
9577
  fieldPath: z.string().min(1),
8903
9578
  operator: AutomationConditionOperatorSchema,
9579
+ /**
9580
+ * The value. A number on a quantity field is stored in the field's base unit
9581
+ * (D944); a quantity value is the WRITE form, which the save boundary
9582
+ * replaces with the converted number and `unit`. A leaf that still carries
9583
+ * one is never evaluated (it fails).
9584
+ */
8904
9585
  value: z.union([
8905
9586
  z.string(),
8906
9587
  z.number(),
@@ -8908,24 +9589,26 @@ var AutomationConditionLeafSchema = z.object({
8908
9589
  z.array(z.union([z.string(), z.number()])),
8909
9590
  QuantityValueSchema
8910
9591
  ]),
9592
+ /** The unit the person picked for `value` (display only; `value` is in the base unit). */
8911
9593
  unit: z.string().min(1).optional()
8912
9594
  });
8913
- var AutomationConditionStationaryPresentSchema = z.object({
9595
+ /**
9596
+ * True when the camera currently has a PARKED object matching `subjects` in at
9597
+ * least one of `zones`. Reads the zone-analytics snapshot through the same
9598
+ * mirror as every other state leaf, so a dropped event never decides it (D49).
9599
+ */
9600
+ var StationaryPresentLeafSchema = z.object({
8914
9601
  kind: z.literal("stationary-present"),
8915
9602
  deviceId: z.number().int().nonnegative(),
8916
- /** Class names; a macro class matches every raw class that maps to it. */
8917
- classes: z.array(z.string().min(1)).min(1).optional(),
8918
- /** The parked object must be in at least one of these zones. */
9603
+ subjects: z.array(StationarySubjectSchema).min(1).optional(),
8919
9604
  zones: z.array(z.string().min(1)).min(1).optional()
8920
9605
  });
8921
9606
  /**
8922
- * The expression leaf, declared as a plain object rather than an intersection
8923
- * with {@link ExpressionSourceSchema}: a discriminated union has to be able to
8924
- * read `kind` off each option, and an intersection hides it. The author-time
8925
- * validation is the SAME function `ExpressionSourceSchema` runs, so the two
8926
- * cannot drift — an expression that one accepts, the other accepts.
9607
+ * The escape hatch: the bounded expression engine over named device bindings.
9608
+ * Declared as a plain object so a discriminated union can read `kind`; the
9609
+ * author-time validation is the SAME function `ExpressionSourceSchema` runs.
8927
9610
  */
8928
- var AutomationConditionExpressionSchema = z.object({
9611
+ var ExpressionLeafSchema = z.object({
8929
9612
  kind: z.literal("expression"),
8930
9613
  expr: z.string().min(1).max(MAX_EXPRESSION_SOURCE_LENGTH),
8931
9614
  bindings: z.record(z.string().regex(EXPRESSION_IDENTIFIER_RE), ExpressionBindingSourceSchema)
@@ -8937,55 +9620,180 @@ var AutomationConditionExpressionSchema = z.object({
8937
9620
  path: ["expr"]
8938
9621
  });
8939
9622
  });
8940
- var AutomationConditionSchema = z.lazy(() => z.discriminatedUnion("kind", [
9623
+ var AutomationWhenSchema = z.lazy(() => z.discriminatedUnion("kind", [
8941
9624
  z.object({
8942
9625
  kind: z.literal("all"),
8943
- children: z.array(AutomationConditionSchema)
9626
+ children: z.array(AutomationWhenSchema)
8944
9627
  }),
8945
9628
  z.object({
8946
9629
  kind: z.literal("any"),
8947
- children: z.array(AutomationConditionSchema)
9630
+ children: z.array(AutomationWhenSchema)
8948
9631
  }),
8949
9632
  z.object({
8950
9633
  kind: z.literal("not"),
8951
- child: AutomationConditionSchema
9634
+ child: AutomationWhenSchema
8952
9635
  }),
8953
- AutomationConditionLeafSchema,
8954
- AutomationConditionExpressionSchema,
8955
- AutomationConditionStationaryPresentSchema
9636
+ DeviceBecomesLeafSchema,
9637
+ DeviceEventLeafSchema,
9638
+ ScheduleLeafSchema,
9639
+ ManualLeafSchema,
9640
+ IntervalLeafSchema,
9641
+ DetectionLeafSchema,
9642
+ StationaryLeafSchema,
9643
+ DeviceIsLeafSchema,
9644
+ StationaryPresentLeafSchema,
9645
+ ExpressionLeafSchema
8956
9646
  ]));
9647
+ var EVENT_KINDS = new Set([
9648
+ "device-becomes",
9649
+ "device-event",
9650
+ "schedule",
9651
+ "manual",
9652
+ "interval",
9653
+ "detection",
9654
+ "stationary"
9655
+ ]);
9656
+ function isEventLeaf(node) {
9657
+ return EVENT_KINDS.has(node.kind);
9658
+ }
9659
+ function isLeaf(node) {
9660
+ return node.kind !== "all" && node.kind !== "any" && node.kind !== "not";
9661
+ }
9662
+ /** Depth of a tree, root container = 1. A bare leaf is depth 1. */
9663
+ function whenDepth(node) {
9664
+ if (isLeaf(node)) return 1;
9665
+ if (node.kind === "not") return 1 + whenDepth(node.child);
9666
+ let deepest = 0;
9667
+ for (const child of node.children) deepest = Math.max(deepest, whenDepth(child));
9668
+ return 1 + deepest;
9669
+ }
9670
+ /** Leaves only — containers do not count toward the leaf budget. */
9671
+ function countWhenLeaves(node) {
9672
+ if (isLeaf(node)) return 1;
9673
+ if (node.kind === "not") return countWhenLeaves(node.child);
9674
+ let total = 0;
9675
+ for (const child of node.children) total += countWhenLeaves(child);
9676
+ return total;
9677
+ }
9678
+ /** Every leaf with its path (`when`, `when.0`, `when.0.1`, `when.0` under a `not`). */
9679
+ function forEachLeaf(node, visit, path = "when") {
9680
+ if (isLeaf(node)) {
9681
+ visit(node, path);
9682
+ return;
9683
+ }
9684
+ if (node.kind === "not") {
9685
+ forEachLeaf(node.child, visit, `${path}.0`);
9686
+ return;
9687
+ }
9688
+ node.children.forEach((child, i) => {
9689
+ forEachLeaf(child, visit, `${path}.${i}`);
9690
+ });
9691
+ }
9692
+ function hasEventLeaves(node) {
9693
+ let found = false;
9694
+ forEachLeaf(node, (leaf) => {
9695
+ if (isEventLeaf(leaf)) found = true;
9696
+ });
9697
+ return found;
9698
+ }
9699
+ function hasEmptyContainer(node) {
9700
+ if (isLeaf(node)) return false;
9701
+ if (node.kind === "not") return hasEmptyContainer(node.child);
9702
+ if (node.children.length === 0) return true;
9703
+ return node.children.some(hasEmptyContainer);
9704
+ }
9705
+ var LEAF_WORDS = {
9706
+ "device-becomes": "a device value that becomes",
9707
+ "device-event": "a device event",
9708
+ schedule: "a schedule",
9709
+ manual: "a manual run",
9710
+ interval: "an interval",
9711
+ detection: "a detection",
9712
+ stationary: "a parked object appearing or leaving"
9713
+ };
9714
+ function say(kind) {
9715
+ return LEAF_WORDS[kind] ?? kind;
9716
+ }
8957
9717
  /**
8958
- * What starts a run.
8959
- *
8960
- * D8 compliance, and it is the reason `device-state` is not merely an event
8961
- * subscription: the trigger evaluates against the **state mirror**, which is
8962
- * reconciled, and an event only WAKES the evaluation. A dropped event therefore
8963
- * DELAYS a trigger; it does not lose it. `schedule` uses `croner` — the one
8964
- * already in the repo — because `setInterval(24h)` drifts and "at 23:30" does
8965
- * not.
9718
+ * The cheapest set of event leaves that makes `node` true, with negation pushed
9719
+ * down to the leaves first (De Morgan), so `not(any(A, B))` and `all(not A,
9720
+ * not B)` are the same shape to the check. A negated event is its own error: an
9721
+ * event is an instant, "the event did not occur" is true at every other moment.
8966
9722
  */
8967
- var AutomationTriggerSchema = z.discriminatedUnion("kind", [
9723
+ function eventNeed(node, path, negated) {
9724
+ if (isLeaf(node)) {
9725
+ if (!isEventLeaf(node)) return { paths: [] };
9726
+ if (negated) return { error: `"not" is applied to ${say(node.kind)} (${path}) — an event is an instant, so "it did not happen" is true at every other moment and can never start a run. Negate a state ("is") instead, or remove the "not"` };
9727
+ return { paths: [{
9728
+ path,
9729
+ kind: node.kind
9730
+ }] };
9731
+ }
9732
+ if (node.kind === "not") return eventNeed(node.child, `${path}.0`, !negated);
9733
+ const conjunctive = node.kind === "all" !== negated;
9734
+ const parts = [];
9735
+ for (let i = 0; i < node.children.length; i += 1) {
9736
+ const child = node.children[i];
9737
+ if (child === void 0) continue;
9738
+ const need = eventNeed(child, `${path}.${i}`, negated);
9739
+ if ("error" in need) return need;
9740
+ parts.push(need);
9741
+ }
9742
+ if (conjunctive) return { paths: parts.flatMap((p) => p.paths) };
9743
+ let best;
9744
+ for (const part of parts) if (best === void 0 || part.paths.length < best.paths.length) best = part;
9745
+ return best ?? { paths: [] };
9746
+ }
9747
+ /**
9748
+ * Author-time bounds and sense check of a `when` tree. Returns `null` when it
9749
+ * is legal, else a message the editor shows verbatim.
9750
+ */
9751
+ function validateWhenTree(when) {
9752
+ if (hasEmptyContainer(when)) return "a group is empty — group existing rows instead of leaving a container to fill";
9753
+ const depth = whenDepth(when);
9754
+ if (depth > 4) return `the rules nest ${depth} levels deep — the limit is 4. "not (any of …)" is the same as "all of (not …)", which is one level shallower`;
9755
+ const leaves = countWhenLeaves(when);
9756
+ if (leaves > 32) return `the rules use ${leaves} rows — the limit is 32`;
9757
+ const need = eventNeed(when, "when", false);
9758
+ if ("error" in need) return need.error;
9759
+ const [first, second] = need.paths;
9760
+ if (first !== void 0 && second !== void 0) return `${say(first.kind)} (${first.path}) and ${say(second.kind)} (${second.path}) would both have to happen at the same instant, and an event happens at one moment — this can never run. Use "any of" to start on either, or turn one of them into a state ("is") that must already hold`;
9761
+ return null;
9762
+ }
9763
+ //#endregion
9764
+ //#region src/automation/legacy-recipe.ts
9765
+ /**
9766
+ * The recipe shape before the single `when` tree: a flat list of triggers
9767
+ * (OR'd, each an instant) and an optional condition tree. Stored recipes —
9768
+ * the `AUTOMATION_RECIPE` literal of every block saved so far, and whatever an
9769
+ * older client still posts — are in this shape, so it stays READABLE here, and
9770
+ * {@link convertLegacyRecipe} turns it into the new one, losslessly and one
9771
+ * way. Nothing writes this shape any more.
9772
+ *
9773
+ * `{ triggers: [t1…tn], conditions?: C }`
9774
+ * → `when = all(any(t1…tn), C)`, or `any(t1…tn)` without `C`;
9775
+ * a single trigger is not wrapped in `any`.
9776
+ * a `condition` leaf → a `device-is` leaf (the "is" verb);
9777
+ * a `device-state` trigger → a `device-becomes` leaf (the "becomes" verb);
9778
+ * `classes: ['dog']` → the macro `animal` with the label `dog`.
9779
+ */
9780
+ var LegacyTriggerSchema = z.discriminatedUnion("kind", [
8968
9781
  z.object({
8969
9782
  kind: z.literal("device-state"),
8970
9783
  deviceId: z.number().int().nonnegative(),
8971
9784
  cap: z.string().min(1),
8972
9785
  fieldPath: z.string().min(1),
8973
- /** Fire when the field takes this value. Omit to fire on any change. */
8974
9786
  becomes: z.union([
8975
9787
  z.string(),
8976
9788
  z.number(),
8977
9789
  z.boolean()
8978
9790
  ]).optional(),
8979
- /** Only on a CHANGE of value, not on every re-report. */
8980
9791
  edge: z.boolean().optional(),
8981
- /** The condition must hold this long before the run starts. */
8982
9792
  forMs: z.number().int().min(0).max(864e5).optional(),
8983
- /** Collapse a burst into one run. */
8984
9793
  debounceMs: z.number().int().min(0).max(6e5).optional()
8985
9794
  }),
8986
9795
  z.object({
8987
9796
  kind: z.literal("device-event"),
8988
- /** An `EventCategory` value. */
8989
9797
  category: z.string().min(1),
8990
9798
  deviceId: z.number().int().nonnegative().optional()
8991
9799
  }),
@@ -8996,25 +9804,16 @@ var AutomationTriggerSchema = z.discriminatedUnion("kind", [
8996
9804
  z.object({ kind: z.literal("manual") }),
8997
9805
  z.object({
8998
9806
  kind: z.literal("detection"),
8999
- /** Class names. A macro class (`animal`, `vehicle`, `person`, `package`)
9000
- * matches every raw class that maps to it; any other name matches
9001
- * exactly. */
9002
9807
  classes: z.array(z.string().min(1)).min(1),
9003
9808
  deviceIds: z.array(z.number().int().nonnegative()).min(1),
9004
- /** The track must have visited at least one of these zones. */
9005
9809
  zones: z.array(z.string().min(1)).min(1).optional(),
9006
- /** Best-so-far confidence the track must reach. */
9007
9810
  minScore: z.number().min(0).max(1).optional()
9008
9811
  }),
9009
9812
  z.object({
9010
9813
  kind: z.literal("stationary"),
9011
9814
  deviceIds: z.array(z.number().int().nonnegative()).min(1),
9012
- /** Class names; a macro class matches like the detection trigger. */
9013
9815
  classes: z.array(z.string().min(1)).min(1).optional(),
9014
- /** The parked object must be in at least one of these zones. */
9015
9816
  zones: z.array(z.string().min(1)).min(1).optional(),
9016
- /** `appeared`: it became parked. `departed`: the registry retired it.
9017
- * The vocabulary of `PipelineAnalyticsStationaryChanged`. */
9018
9817
  phase: z.enum(["appeared", "departed"])
9019
9818
  }),
9020
9819
  z.object({
@@ -9022,6 +9821,145 @@ var AutomationTriggerSchema = z.discriminatedUnion("kind", [
9022
9821
  minutes: z.number().int().min(1).max(1440)
9023
9822
  })
9024
9823
  ]);
9824
+ var LegacyConditionLeafSchema = z.object({
9825
+ kind: z.literal("condition"),
9826
+ deviceId: z.number().int().nonnegative(),
9827
+ cap: z.string().min(1),
9828
+ fieldPath: z.string().min(1),
9829
+ operator: AutomationConditionOperatorSchema,
9830
+ value: z.union([
9831
+ z.string(),
9832
+ z.number(),
9833
+ z.boolean(),
9834
+ z.array(z.union([z.string(), z.number()])),
9835
+ QuantityValueSchema
9836
+ ]),
9837
+ unit: z.string().min(1).optional()
9838
+ });
9839
+ var LegacyStationaryPresentSchema = z.object({
9840
+ kind: z.literal("stationary-present"),
9841
+ deviceId: z.number().int().nonnegative(),
9842
+ classes: z.array(z.string().min(1)).min(1).optional(),
9843
+ zones: z.array(z.string().min(1)).min(1).optional()
9844
+ });
9845
+ var LegacyExpressionSchema = z.object({
9846
+ kind: z.literal("expression"),
9847
+ expr: z.string().min(1).max(MAX_EXPRESSION_SOURCE_LENGTH),
9848
+ bindings: z.record(z.string().regex(EXPRESSION_IDENTIFIER_RE), ExpressionBindingSourceSchema)
9849
+ }).superRefine((src, ctx) => {
9850
+ const err = validateExpressionSource(src);
9851
+ if (err !== null) ctx.addIssue({
9852
+ code: "custom",
9853
+ message: err,
9854
+ path: ["expr"]
9855
+ });
9856
+ });
9857
+ var LegacyConditionSchema = z.lazy(() => z.discriminatedUnion("kind", [
9858
+ z.object({
9859
+ kind: z.literal("all"),
9860
+ children: z.array(LegacyConditionSchema)
9861
+ }),
9862
+ z.object({
9863
+ kind: z.literal("any"),
9864
+ children: z.array(LegacyConditionSchema)
9865
+ }),
9866
+ z.object({
9867
+ kind: z.literal("not"),
9868
+ child: LegacyConditionSchema
9869
+ }),
9870
+ LegacyConditionLeafSchema,
9871
+ LegacyExpressionSchema,
9872
+ LegacyStationaryPresentSchema
9873
+ ]));
9874
+ function convertTrigger(trigger) {
9875
+ switch (trigger.kind) {
9876
+ case "device-state": return {
9877
+ ...trigger,
9878
+ kind: "device-becomes"
9879
+ };
9880
+ case "detection": {
9881
+ const { classes, ...rest } = trigger;
9882
+ return {
9883
+ ...rest,
9884
+ subjects: classes.map(subjectFromClassName)
9885
+ };
9886
+ }
9887
+ case "stationary": {
9888
+ const { classes, ...rest } = trigger;
9889
+ return {
9890
+ ...rest,
9891
+ ...classes === void 0 ? {} : { subjects: classes.map(subjectFromClassName) }
9892
+ };
9893
+ }
9894
+ default: return trigger;
9895
+ }
9896
+ }
9897
+ /** An old condition tree as a `when` subtree: `condition` → "is", classes → subjects. */
9898
+ function convertLegacyCondition(condition) {
9899
+ switch (condition.kind) {
9900
+ case "condition": return {
9901
+ ...condition,
9902
+ kind: "device-is"
9903
+ };
9904
+ case "stationary-present": {
9905
+ const { classes, ...rest } = condition;
9906
+ return {
9907
+ ...rest,
9908
+ ...classes === void 0 ? {} : { subjects: classes.map(subjectFromClassName) }
9909
+ };
9910
+ }
9911
+ case "expression": return condition;
9912
+ case "not": return {
9913
+ kind: "not",
9914
+ child: convertLegacyCondition(condition.child)
9915
+ };
9916
+ case "all":
9917
+ case "any": return {
9918
+ kind: condition.kind,
9919
+ children: condition.children.map(convertLegacyCondition)
9920
+ };
9921
+ }
9922
+ }
9923
+ /** `all(any(t1…tn), C)`, or `any(t1…tn)`; a single trigger is not wrapped in `any`. */
9924
+ function convertLegacyWhen(half) {
9925
+ const leaves = half.triggers.map(convertTrigger);
9926
+ const first = leaves[0];
9927
+ const triggers = leaves.length === 1 && first !== void 0 ? first : {
9928
+ kind: "any",
9929
+ children: leaves
9930
+ };
9931
+ if (half.conditions === void 0) return triggers;
9932
+ return {
9933
+ kind: "all",
9934
+ children: [triggers, convertLegacyCondition(half.conditions)]
9935
+ };
9936
+ }
9937
+ //#endregion
9938
+ //#region src/automation/recipe.ts
9939
+ /**
9940
+ * The automation RECIPE — what a visually-authored automation is, before it
9941
+ * becomes code.
9942
+ *
9943
+ * This is the data half of `docs/design/2026-08-08-automation-scripts-custom-devices.md`
9944
+ * Phase 6. A recipe is not an engine and never evaluates anything: it is a
9945
+ * declarative description that {@link generateAutomationBlock} compiles to the
9946
+ * TypeScript of an ordinary core block. There is therefore no second rule
9947
+ * engine, no second store and no second runtime — the block runner is the
9948
+ * runtime, `core_blocks` is the store (§2.1).
9949
+ *
9950
+ * Two parts:
9951
+ *
9952
+ * - **`when`** — ONE tree (`./when.ts`) of all/any/not over event leaves
9953
+ * (instants) and state leaves (durations). It replaces the flat trigger list
9954
+ * plus the separate condition tree; the firing rule is in that file and in
9955
+ * ADR "one tree".
9956
+ * - **Actions** — `NcRuleActionSchema`'s two steps, plus the `{kind:'code'}`
9957
+ * fragment of §3.2.2. See {@link AutomationActionSchema} for the ONE place
9958
+ * this had to diverge from "verbatim", and why.
9959
+ *
9960
+ * A recipe stored in the old shape (`triggers` + `conditions`) still LOADS:
9961
+ * {@link AutomationRecipeSchema} (the parse-anywhere schema) converts it on parse. Nothing writes it.
9962
+ */
9025
9963
  /**
9026
9964
  * One action step.
9027
9965
  *
@@ -9127,61 +10065,49 @@ var AutomationRunModeSchema = z.discriminatedUnion("mode", [
9127
10065
  /** Run traces kept per automation when the recipe does not say. */
9128
10066
  var DEFAULT_TRACE_KEEP = 20;
9129
10067
  var MAX_TRACE_KEEP = 100;
9130
- var AutomationRecipeSchema = z.object({
9131
- triggers: z.array(AutomationTriggerSchema),
9132
- conditions: AutomationConditionSchema.optional(),
10068
+ var CurrentAutomationRecipeSchema = z.object({
10069
+ when: AutomationWhenSchema,
9133
10070
  actions: z.array(AutomationActionSchema),
9134
10071
  runMode: AutomationRunModeSchema.optional(),
9135
10072
  /** How many run traces the automation keeps (default {@link DEFAULT_TRACE_KEEP}). */
9136
10073
  keepTraces: z.number().int().min(1).max(100).optional()
9137
10074
  });
9138
- function isLeaf(cond) {
9139
- return cond.kind === "condition" || cond.kind === "expression" || cond.kind === "stationary-present";
9140
- }
9141
- /** Depth of a tree, root container = 1. A bare leaf is depth 1. */
9142
- function conditionDepth(cond) {
9143
- if (isLeaf(cond)) return 1;
9144
- if (cond.kind === "not") return 1 + conditionDepth(cond.child);
9145
- const children = cond.children;
9146
- if (children.length === 0) return 1;
9147
- let deepest = 0;
9148
- for (const child of children) {
9149
- const d = conditionDepth(child);
9150
- if (d > deepest) deepest = d;
9151
- }
9152
- return 1 + deepest;
9153
- }
9154
- /** Leaves only — containers do not count toward the leaf budget. */
9155
- function countConditionLeaves(cond) {
9156
- if (isLeaf(cond)) return 1;
9157
- if (cond.kind === "not") return countConditionLeaves(cond.child);
9158
- let total = 0;
9159
- for (const child of cond.children) total += countConditionLeaves(child);
9160
- return total;
9161
- }
9162
- function findEmptyContainer(cond) {
9163
- if (isLeaf(cond)) return false;
9164
- if (cond.kind === "not") return findEmptyContainer(cond.child);
9165
- if (cond.children.length === 0) return true;
9166
- return cond.children.some(findEmptyContainer);
10075
+ /** A recipe as it was stored before the single tree. Read-only: nothing writes this. */
10076
+ var LegacyAutomationRecipeSchema = z.object({
10077
+ triggers: z.array(LegacyTriggerSchema),
10078
+ conditions: LegacyConditionSchema.optional(),
10079
+ actions: z.array(AutomationActionSchema),
10080
+ runMode: AutomationRunModeSchema.optional(),
10081
+ keepTraces: z.number().int().min(1).max(100).optional()
10082
+ });
10083
+ /** The old shape as the new one, lossless. */
10084
+ function convertLegacyRecipe(legacy) {
10085
+ const { triggers, conditions, ...rest } = legacy;
10086
+ return {
10087
+ when: convertLegacyWhen({
10088
+ triggers,
10089
+ conditions
10090
+ }),
10091
+ ...rest
10092
+ };
9167
10093
  }
9168
10094
  /**
9169
- * Author-time bounds check. Returns `null` when the recipe is legal, else a
9170
- * message naming the bound it broke — the editor shows it verbatim, so it has
9171
- * to read like something an operator can act on.
10095
+ * Where recipes are PARSED (the core-blocks cap, the MCP tool, the literal a
10096
+ * saved block carries): the new shape as it is, or the old shape converted to
10097
+ * it. The output type is always the new one.
10098
+ */
10099
+ var AutomationRecipeSchema = z.union([CurrentAutomationRecipeSchema, LegacyAutomationRecipeSchema.transform(convertLegacyRecipe)]);
10100
+ /** Bounds, shared by `when` and the old names the guards still know. */
10101
+ var MAX_CONDITION_DEPTH = 4;
10102
+ var MAX_CONDITION_LEAVES = 32;
10103
+ /**
10104
+ * Author-time check. Returns `null` when the recipe is legal, else a message
10105
+ * naming what is wrong — the editor shows it verbatim, so it has to read like
10106
+ * something an operator can act on.
9172
10107
  */
9173
10108
  function validateRecipeBounds(recipe) {
9174
- if (recipe.triggers.length === 0) return "an automation needs at least one trigger — without one nothing can start a run";
9175
10109
  if (recipe.actions.length === 0) return "an automation needs at least one action — a rule that does nothing is not a rule";
9176
- const cond = recipe.conditions;
9177
- if (cond !== void 0) {
9178
- if (findEmptyContainer(cond)) return "a condition group is empty — group existing rows instead of leaving a container to fill";
9179
- const depth = conditionDepth(cond);
9180
- if (depth > 3) return `conditions nest ${depth} levels deep — the limit is 3. "not (any of …)" is the same as "all of (not …)", which is one level shallower`;
9181
- const leaves = countConditionLeaves(cond);
9182
- if (leaves > 32) return `conditions use ${leaves} leaves — the limit is 32`;
9183
- }
9184
- return null;
10110
+ return validateWhenTree(recipe.when);
9185
10111
  }
9186
10112
  //#endregion
9187
10113
  //#region src/automation/codegen.ts
@@ -9205,9 +10131,10 @@ function stepMetaOf(action) {
9205
10131
  function j(value) {
9206
10132
  return JSON.stringify(value);
9207
10133
  }
9208
- function emitTrigger(trigger, index) {
10134
+ function emitLeaf(trigger, path) {
10135
+ const at = j(path);
9209
10136
  switch (trigger.kind) {
9210
- case "schedule": return ` // trigger ${index}: schedule — armed to the next minute boundary and
10137
+ case "schedule": return ` // event leaf ${path}: schedule — armed to the next minute boundary and
9211
10138
  // RE-ARMED from the wall clock every tick, so it cannot drift the way a
9212
10139
  // setInterval(24h) does. No cron library: a block cannot resolve one.
9213
10140
  {
@@ -9215,7 +10142,7 @@ function emitTrigger(trigger, index) {
9215
10142
  const arm = (): void => {
9216
10143
  timer = setTimeout(() => {
9217
10144
  if (cronMatches(${j(trigger.cron)}, new Date())) {
9218
- void run({ kind: 'schedule', at: Date.now() })
10145
+ void run({ kind: 'schedule', leaf: ${at}, at: Date.now() })
9219
10146
  }
9220
10147
  arm()
9221
10148
  }, nextMinuteBoundary())
@@ -9223,13 +10150,14 @@ function emitTrigger(trigger, index) {
9223
10150
  arm()
9224
10151
  disposers.push(() => { if (timer !== undefined) clearTimeout(timer) })
9225
10152
  }`;
9226
- case "device-event": return ` // trigger ${index}: device event
10153
+ case "device-event": return ` // event leaf ${path}: device event
9227
10154
  disposers.push(
9228
10155
  ctx.eventBus.subscribe(
9229
10156
  { category: ${j(trigger.category)}${trigger.deviceId === void 0 ? "" : `, deviceId: ${j(trigger.deviceId)}`} },
9230
10157
  (event) => {
9231
10158
  void run({
9232
10159
  kind: 'device-event',
10160
+ leaf: ${at},
9233
10161
  at: Date.now(),
9234
10162
  deviceId: event.deviceId,
9235
10163
  category: ${j(trigger.category)},
@@ -9237,9 +10165,9 @@ function emitTrigger(trigger, index) {
9237
10165
  },
9238
10166
  ),
9239
10167
  )`;
9240
- case "device-state": {
10168
+ case "device-becomes": {
9241
10169
  const becomes = trigger.becomes === void 0 ? "undefined" : j(trigger.becomes);
9242
- return ` // trigger ${index}: device state — the mirror is the authority, the
10170
+ return ` // event leaf ${path}: device state — the mirror is the authority, the
9243
10171
  // event only WAKES the evaluation, so a dropped event delays and never loses.
9244
10172
  {
9245
10173
  let previous: unknown = undefined
@@ -9260,7 +10188,8 @@ function emitTrigger(trigger, index) {
9260
10188
  }
9261
10189
  heldSince = undefined
9262
10190
  void run({
9263
- kind: 'device-state',
10191
+ kind: 'device-becomes',
10192
+ leaf: ${at},
9264
10193
  at: Date.now(),
9265
10194
  deviceId: ${j(trigger.deviceId)},
9266
10195
  cap: ${j(trigger.cap)},
@@ -9279,23 +10208,23 @@ function emitTrigger(trigger, index) {
9279
10208
  disposers.push(() => clearInterval(reconcile))
9280
10209
  }`;
9281
10210
  }
9282
- case "manual": return ` // trigger ${index}: manual — fired by automation-control.trigger
10211
+ case "manual": return ` // event leaf ${path}: manual — fired by automation-control.trigger
9283
10212
  // ("Run actions"), which runs the THEN half with an EMPTY vars bag. A manual
9284
10213
  // run bypasses only the cooldown wait, never the single/queued limits.`;
9285
- case "interval": return ` // trigger ${index}: interval — every ${trigger.minutes} min, first run jittered so
10214
+ case "interval": return ` // event leaf ${path}: interval — every ${trigger.minutes} min, first run jittered so
9286
10215
  // blocks restarted together do not all fire on the same second.
9287
10216
  {
9288
10217
  let interval: ReturnType<typeof setInterval> | undefined
9289
10218
  const first = setTimeout(() => {
9290
- void run({ kind: 'interval', at: Date.now() })
9291
- interval = setInterval(() => { void run({ kind: 'interval', at: Date.now() }) }, ${j(trigger.minutes * 6e4)})
10219
+ void run({ kind: 'interval', leaf: ${at}, at: Date.now() })
10220
+ interval = setInterval(() => { void run({ kind: 'interval', leaf: ${at}, at: Date.now() }) }, ${j(trigger.minutes * 6e4)})
9292
10221
  }, Math.floor(Math.random() * Math.min(${j(trigger.minutes * 6e4)}, 30_000)) + 1)
9293
10222
  disposers.push(() => {
9294
10223
  clearTimeout(first)
9295
10224
  if (interval !== undefined) clearInterval(interval)
9296
10225
  })
9297
10226
  }`;
9298
- case "detection": return ` // trigger ${index}: detection — ONE fire per (device, track); a rejected event is
10227
+ case "detection": return ` // event leaf ${path}: detection — ONE fire per (device, track); a rejected event is
9299
10228
  // traced with its reason and never fires.
9300
10229
  {
9301
10230
  const filter = new DetectionTriggerFilter(${j(trigger)})
@@ -9312,7 +10241,7 @@ function emitTrigger(trigger, index) {
9312
10241
  })
9313
10242
  }
9314
10243
  void run(
9315
- { kind: 'detection', at: Date.now(), ...decision.vars },
10244
+ { kind: 'detection', leaf: ${at}, at: Date.now(), ...decision.vars },
9316
10245
  decision.reason,
9317
10246
  decision.kind === 'fire',
9318
10247
  )
@@ -9320,9 +10249,9 @@ function emitTrigger(trigger, index) {
9320
10249
  ),
9321
10250
  )
9322
10251
  }`;
9323
- case "stationary": return ` // trigger ${index}: stationary — a parked object appeared / departed. Stateless:
10252
+ case "stationary": return ` // event leaf ${path}: stationary — a parked object appeared / departed. Stateless:
9324
10253
  // the registry emits one event per transition. A dropped event only misses a fire;
9325
- // the stationary-present CONDITION reads the registry, not this event.
10254
+ // the stationary-present STATE leaf reads the registry, not this event.
9326
10255
  {
9327
10256
  const trigger = ${j(trigger)} as const
9328
10257
  disposers.push(
@@ -9338,7 +10267,7 @@ function emitTrigger(trigger, index) {
9338
10267
  })
9339
10268
  }
9340
10269
  void run(
9341
- { kind: 'stationary', at: Date.now(), ...decision.vars },
10270
+ { kind: 'stationary', leaf: ${at}, at: Date.now(), ...decision.vars },
9342
10271
  decision.reason,
9343
10272
  decision.kind === 'fire',
9344
10273
  )
@@ -9360,11 +10289,11 @@ ${body}
9360
10289
  case "cap":
9361
10290
  if (Array.isArray(action.deviceId)) return step(` for (const deviceId of ${j(action.deviceId)}) {
9362
10291
  scope.setDeviceId(deviceId)
9363
- await actuate(deviceId, ${j(action.cap)}, ${j(action.method)}, ${j(action.args ?? {})}, vars)
10292
+ await actuate(scope, deviceId, ${j(action.cap)}, ${j(action.method)}, ${j(action.args ?? {})}, vars)
9364
10293
  }`);
9365
10294
  return step(` const deviceId = ${typeof action.deviceId === "number" ? j(action.deviceId) : `resolveTarget(vars, ${j(action.deviceId.$var)})`}
9366
10295
  scope.setDeviceId(deviceId)
9367
- await actuate(deviceId, ${j(action.cap)}, ${j(action.method)}, ${j(action.args ?? {})}, vars)`);
10296
+ await actuate(scope, deviceId, ${j(action.cap)}, ${j(action.method)}, ${j(action.args ?? {})}, vars)`);
9368
10297
  case "action": return step(` // an Action run, awaited: the step takes THAT run's outcome
9369
10298
  const result = await ctx.api.actions.run.mutate({
9370
10299
  actionId: ${j(action.actionId)},
@@ -9394,6 +10323,13 @@ function generateAutomationBlock(input) {
9394
10323
  const { name, recipe } = input;
9395
10324
  const runMode = recipe.runMode ?? { mode: "single" };
9396
10325
  const stepMeta = recipe.actions.map(stepMetaOf);
10326
+ const eventLeaves = [];
10327
+ forEachLeaf(recipe.when, (leaf, path) => {
10328
+ if (isEventLeaf(leaf)) eventLeaves.push({
10329
+ leaf,
10330
+ path
10331
+ });
10332
+ });
9397
10333
  return `import type {
9398
10334
  AddonContext,
9399
10335
  AutomationConditionTraceNode,
@@ -9401,6 +10337,7 @@ function generateAutomationBlock(input) {
9401
10337
  AutomationRunVerdict,
9402
10338
  AutomationStepTrace,
9403
10339
  RunnableStep,
10340
+ StepScope,
9404
10341
  } from '@camstack/types'
9405
10342
  import {
9406
10343
  ConditionMirror,
@@ -9408,9 +10345,9 @@ import {
9408
10345
  EventCategory,
9409
10346
  RunGate,
9410
10347
  buildTriggerTrace,
9411
- collectMirrorSources,
10348
+ collectWhenMirrorSources,
9412
10349
  coreBlockIdFromAddonId,
9413
- evaluateConditionTree,
10350
+ evaluateWhenTree,
9414
10351
  evaluateStationaryTrigger,
9415
10352
  isSkippedTrace,
9416
10353
  mergeSkipTraces,
@@ -9438,7 +10375,11 @@ const RUN_MODE = ${j(runMode)} as const
9438
10375
  /** Run traces kept (a ring, held in the hub's runs ledger). */
9439
10376
  const KEEP_TRACES = ${recipe.keepTraces ?? 20}
9440
10377
 
9441
- const CONDITIONS = ${recipe.conditions === void 0 ? "undefined" : "AUTOMATION_RECIPE.conditions"}
10378
+ /** The ONE tree: event leaves (instants) and state leaves (durations). */
10379
+ const WHEN = AUTOMATION_RECIPE.when
10380
+
10381
+ /** No event leaf: the automation fires when the tree goes false → true, never because it was already true. */
10382
+ const STATE_ONLY = ${!hasEventLeaves(recipe.when)}
9442
10383
 
9443
10384
  /** Skips that repeat are folded into one trace; it goes to the hub after this. */
9444
10385
  const SKIP_FLUSH_MS = 5_000
@@ -9497,7 +10438,8 @@ function matchField(field: string, value: number): boolean {
9497
10438
  export default function block(ctx: AddonContext) {
9498
10439
  const disposers: Array<() => void> = []
9499
10440
  const gate = new RunGate(RUN_MODE)
9500
- const mirror = new ConditionMirror(collectMirrorSources(CONDITIONS))
10441
+ const MIRROR_SOURCES = collectWhenMirrorSources(WHEN)
10442
+ const mirror = new ConditionMirror(MIRROR_SOURCES)
9501
10443
  const BLOCK_ID = coreBlockIdFromAddonId(ctx.id)
9502
10444
  /** The cooldown stamp: memory is the authority at fire time (D49); the hub ledger is read once at start. */
9503
10445
  let lastRunStartedAt: number | null = null
@@ -9663,6 +10605,7 @@ export default function block(ctx: AddonContext) {
9663
10605
  }
9664
10606
 
9665
10607
  async function actuate(
10608
+ scope: StepScope,
9666
10609
  deviceId: number,
9667
10610
  cap: string,
9668
10611
  method: string,
@@ -9672,6 +10615,7 @@ export default function block(ctx: AddonContext) {
9672
10615
  const substituted = substitute(args, vars)
9673
10616
  const resolved: Record<string, unknown> =
9674
10617
  substituted !== null && typeof substituted === 'object' ? { ...substituted } : {}
10618
+ scope.setArgs(resolved)
9675
10619
  // Forked-addon ctx.api namespaces are tRPC Proxies over a noop function
9676
10620
  // (typeof === 'function'), not plain objects — reject only null/undefined.
9677
10621
  const client: unknown = Reflect.get(ctx.api, capToRouterKey(cap))
@@ -9760,10 +10704,13 @@ ${recipe.actions.map((a, i) => emitAction(a, i)).join("\n")}
9760
10704
  let nodes: AutomationConditionTraceNode[] = []
9761
10705
  let steps: AutomationStepTrace[] = []
9762
10706
  try {
9763
- const evaluation = evaluateConditionTree(CONDITIONS, mirror, Date.now())
10707
+ const firedLeaf = trigger['leaf']
10708
+ const evaluation = evaluateWhenTree(WHEN, mirror, Date.now(), {
10709
+ ...(typeof firedLeaf === 'string' ? { firedPath: firedLeaf } : {}),
10710
+ })
9764
10711
  nodes = [...evaluation.nodes]
9765
10712
  for (const node of nodes) {
9766
- if (node.kind === 'condition' && node.observed === null && node.deviceId !== undefined) {
10713
+ if (node.kind === 'device-is' && node.observed === null && node.deviceId !== undefined) {
9767
10714
  ctx.logger.warn('condition leaf value unknown — treated as false', {
9768
10715
  tags: { deviceId: node.deviceId },
9769
10716
  path: node.path,
@@ -9774,7 +10721,7 @@ ${recipe.actions.map((a, i) => emitAction(a, i)).join("\n")}
9774
10721
  }
9775
10722
  if (!evaluation.pass) {
9776
10723
  outcome = 'skipped-conditions'
9777
- ctx.logger.debug('automation did not run — conditions were false', { trigger, ...deviceTags(trigger) })
10724
+ ctx.logger.debug('automation did not run — the rule tree was false at that instant', { trigger, ...deviceTags(trigger) })
9778
10725
  return
9779
10726
  }
9780
10727
  const letThrough = stampUnknown && RUN_MODE.mode === 'cooldown'
@@ -9873,9 +10820,30 @@ ${recipe.actions.map((a, i) => emitAction(a, i)).join("\n")}
9873
10820
  const ready: Promise<void> = (async () => {
9874
10821
  await loadState()
9875
10822
  await refreshMirror()
10823
+ stateWatching = true
10824
+ evaluateStateTree()
9876
10825
  })()
9877
10826
 
9878
- if (CONDITIONS !== undefined) {
10827
+ /**
10828
+ * Rule 2 — a tree of states only. It fires when the tree goes false → true.
10829
+ * The FIRST evaluation only seeds \`treeWasTrue\` (a tree that is already true
10830
+ * when the hub or runner starts must not fire), and an evaluation that read an
10831
+ * unknown value neither seeds nor moves it: unknown is not false.
10832
+ */
10833
+ let treeWasTrue: boolean | undefined
10834
+ let stateWatching = false
10835
+ function evaluateStateTree(): void {
10836
+ if (!STATE_ONLY || !stateWatching || stopped) return
10837
+ const evaluation = evaluateWhenTree(WHEN, mirror, Date.now())
10838
+ if (evaluation.unknown) return
10839
+ const was = treeWasTrue
10840
+ treeWasTrue = evaluation.pass
10841
+ if (was === false && evaluation.pass) {
10842
+ void run({ kind: 'state', leaf: 'when', at: Date.now() }, 'the rules became true', true)
10843
+ }
10844
+ }
10845
+
10846
+ if (MIRROR_SOURCES.length > 0) {
9879
10847
  disposers.push(
9880
10848
  ctx.eventBus.subscribe({ category: EventCategory.DeviceStateChanged }, (event) => {
9881
10849
  const data = event.data
@@ -9883,14 +10851,17 @@ ${recipe.actions.map((a, i) => emitAction(a, i)).join("\n")}
9883
10851
  const capName = data['capName']
9884
10852
  if (typeof deviceId === 'number' && typeof capName === 'string') {
9885
10853
  mirror.apply(deviceId, capName, data['slice'])
10854
+ evaluateStateTree()
9886
10855
  }
9887
10856
  }),
9888
10857
  )
9889
- const mirrorReconcile = setInterval(() => { void refreshMirror() }, RECONCILE_MS)
10858
+ const mirrorReconcile = setInterval(() => {
10859
+ void refreshMirror().then(evaluateStateTree)
10860
+ }, RECONCILE_MS)
9890
10861
  disposers.push(() => clearInterval(mirrorReconcile))
9891
10862
  }
9892
10863
 
9893
- ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
10864
+ ${eventLeaves.map(({ leaf, path }) => emitLeaf(leaf, path)).join("\n\n")}
9894
10865
 
9895
10866
  return () => {
9896
10867
  stopped = true
@@ -9906,494 +10877,6 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
9906
10877
  `;
9907
10878
  }
9908
10879
  //#endregion
9909
- //#region src/catalogs/coco-classmap.ts
9910
- var COCO_80_LABELS = [
9911
- {
9912
- id: "person",
9913
- name: "Person"
9914
- },
9915
- {
9916
- id: "bicycle",
9917
- name: "Bicycle"
9918
- },
9919
- {
9920
- id: "car",
9921
- name: "Car"
9922
- },
9923
- {
9924
- id: "motorcycle",
9925
- name: "Motorcycle"
9926
- },
9927
- {
9928
- id: "airplane",
9929
- name: "Airplane"
9930
- },
9931
- {
9932
- id: "bus",
9933
- name: "Bus"
9934
- },
9935
- {
9936
- id: "train",
9937
- name: "Train"
9938
- },
9939
- {
9940
- id: "truck",
9941
- name: "Truck"
9942
- },
9943
- {
9944
- id: "boat",
9945
- name: "Boat"
9946
- },
9947
- {
9948
- id: "traffic light",
9949
- name: "Traffic Light"
9950
- },
9951
- {
9952
- id: "fire hydrant",
9953
- name: "Fire Hydrant"
9954
- },
9955
- {
9956
- id: "stop sign",
9957
- name: "Stop Sign"
9958
- },
9959
- {
9960
- id: "parking meter",
9961
- name: "Parking Meter"
9962
- },
9963
- {
9964
- id: "bench",
9965
- name: "Bench"
9966
- },
9967
- {
9968
- id: "bird",
9969
- name: "Bird"
9970
- },
9971
- {
9972
- id: "cat",
9973
- name: "Cat"
9974
- },
9975
- {
9976
- id: "dog",
9977
- name: "Dog"
9978
- },
9979
- {
9980
- id: "horse",
9981
- name: "Horse"
9982
- },
9983
- {
9984
- id: "sheep",
9985
- name: "Sheep"
9986
- },
9987
- {
9988
- id: "cow",
9989
- name: "Cow"
9990
- },
9991
- {
9992
- id: "elephant",
9993
- name: "Elephant"
9994
- },
9995
- {
9996
- id: "bear",
9997
- name: "Bear"
9998
- },
9999
- {
10000
- id: "zebra",
10001
- name: "Zebra"
10002
- },
10003
- {
10004
- id: "giraffe",
10005
- name: "Giraffe"
10006
- },
10007
- {
10008
- id: "backpack",
10009
- name: "Backpack"
10010
- },
10011
- {
10012
- id: "umbrella",
10013
- name: "Umbrella"
10014
- },
10015
- {
10016
- id: "handbag",
10017
- name: "Handbag"
10018
- },
10019
- {
10020
- id: "tie",
10021
- name: "Tie"
10022
- },
10023
- {
10024
- id: "suitcase",
10025
- name: "Suitcase"
10026
- },
10027
- {
10028
- id: "frisbee",
10029
- name: "Frisbee"
10030
- },
10031
- {
10032
- id: "skis",
10033
- name: "Skis"
10034
- },
10035
- {
10036
- id: "snowboard",
10037
- name: "Snowboard"
10038
- },
10039
- {
10040
- id: "sports ball",
10041
- name: "Sports Ball"
10042
- },
10043
- {
10044
- id: "kite",
10045
- name: "Kite"
10046
- },
10047
- {
10048
- id: "baseball bat",
10049
- name: "Baseball Bat"
10050
- },
10051
- {
10052
- id: "baseball glove",
10053
- name: "Baseball Glove"
10054
- },
10055
- {
10056
- id: "skateboard",
10057
- name: "Skateboard"
10058
- },
10059
- {
10060
- id: "surfboard",
10061
- name: "Surfboard"
10062
- },
10063
- {
10064
- id: "tennis racket",
10065
- name: "Tennis Racket"
10066
- },
10067
- {
10068
- id: "bottle",
10069
- name: "Bottle"
10070
- },
10071
- {
10072
- id: "wine glass",
10073
- name: "Wine Glass"
10074
- },
10075
- {
10076
- id: "cup",
10077
- name: "Cup"
10078
- },
10079
- {
10080
- id: "fork",
10081
- name: "Fork"
10082
- },
10083
- {
10084
- id: "knife",
10085
- name: "Knife"
10086
- },
10087
- {
10088
- id: "spoon",
10089
- name: "Spoon"
10090
- },
10091
- {
10092
- id: "bowl",
10093
- name: "Bowl"
10094
- },
10095
- {
10096
- id: "banana",
10097
- name: "Banana"
10098
- },
10099
- {
10100
- id: "apple",
10101
- name: "Apple"
10102
- },
10103
- {
10104
- id: "sandwich",
10105
- name: "Sandwich"
10106
- },
10107
- {
10108
- id: "orange",
10109
- name: "Orange"
10110
- },
10111
- {
10112
- id: "broccoli",
10113
- name: "Broccoli"
10114
- },
10115
- {
10116
- id: "carrot",
10117
- name: "Carrot"
10118
- },
10119
- {
10120
- id: "hot dog",
10121
- name: "Hot Dog"
10122
- },
10123
- {
10124
- id: "pizza",
10125
- name: "Pizza"
10126
- },
10127
- {
10128
- id: "donut",
10129
- name: "Donut"
10130
- },
10131
- {
10132
- id: "cake",
10133
- name: "Cake"
10134
- },
10135
- {
10136
- id: "chair",
10137
- name: "Chair"
10138
- },
10139
- {
10140
- id: "couch",
10141
- name: "Couch"
10142
- },
10143
- {
10144
- id: "potted plant",
10145
- name: "Potted Plant"
10146
- },
10147
- {
10148
- id: "bed",
10149
- name: "Bed"
10150
- },
10151
- {
10152
- id: "dining table",
10153
- name: "Dining Table"
10154
- },
10155
- {
10156
- id: "toilet",
10157
- name: "Toilet"
10158
- },
10159
- {
10160
- id: "tv",
10161
- name: "TV"
10162
- },
10163
- {
10164
- id: "laptop",
10165
- name: "Laptop"
10166
- },
10167
- {
10168
- id: "mouse",
10169
- name: "Mouse"
10170
- },
10171
- {
10172
- id: "remote",
10173
- name: "Remote"
10174
- },
10175
- {
10176
- id: "keyboard",
10177
- name: "Keyboard"
10178
- },
10179
- {
10180
- id: "cell phone",
10181
- name: "Cell Phone"
10182
- },
10183
- {
10184
- id: "microwave",
10185
- name: "Microwave"
10186
- },
10187
- {
10188
- id: "oven",
10189
- name: "Oven"
10190
- },
10191
- {
10192
- id: "toaster",
10193
- name: "Toaster"
10194
- },
10195
- {
10196
- id: "sink",
10197
- name: "Sink"
10198
- },
10199
- {
10200
- id: "refrigerator",
10201
- name: "Refrigerator"
10202
- },
10203
- {
10204
- id: "book",
10205
- name: "Book"
10206
- },
10207
- {
10208
- id: "clock",
10209
- name: "Clock"
10210
- },
10211
- {
10212
- id: "vase",
10213
- name: "Vase"
10214
- },
10215
- {
10216
- id: "scissors",
10217
- name: "Scissors"
10218
- },
10219
- {
10220
- id: "teddy bear",
10221
- name: "Teddy Bear"
10222
- },
10223
- {
10224
- id: "hair drier",
10225
- name: "Hair Drier"
10226
- },
10227
- {
10228
- id: "toothbrush",
10229
- name: "Toothbrush"
10230
- }
10231
- ];
10232
- var MACRO_LABELS = [
10233
- {
10234
- id: "person",
10235
- name: "Person"
10236
- },
10237
- {
10238
- id: "vehicle",
10239
- name: "Vehicle"
10240
- },
10241
- {
10242
- id: "animal",
10243
- name: "Animal"
10244
- },
10245
- {
10246
- id: "package",
10247
- name: "Package"
10248
- }
10249
- ];
10250
- /**
10251
- * The class names a per-class COUNT can ever be keyed on — the macro ids, and
10252
- * only those.
10253
- *
10254
- * `preserveOriginal: false` below is the whole reason this set exists: the
10255
- * executor maps each raw COCO label onto its macro and DROPS everything else,
10256
- * so a tracked detection's `className` is always one of {@link MACRO_LABELS}.
10257
- * Any surface that indexes counts by class name — the ZoneAnalytics occupancy
10258
- * snapshot's `byClass`, and therefore every occupancy rule — can match nothing
10259
- * else. Derived from the catalog, never hand-listed, so a new macro joins it by
10260
- * being declared once.
10261
- *
10262
- * Cost of not having it, 2026-08-12: the notification rule editor offered the
10263
- * full taxonomy for an occupancy class (occupancy is the one condition that
10264
- * does not go through the engine's macro-expanding `expandClassSelector`), two
10265
- * live rules were authored on `car`, and both counters read 0 forever.
10266
- */
10267
- var DETECTION_MACRO_CLASSES = new Set(MACRO_LABELS.map((l) => l.id));
10268
- /** True when `className` is a macro the detector can actually emit (and hence a
10269
- * class a count can be keyed on) — see {@link DETECTION_MACRO_CLASSES}. */
10270
- function isDetectionMacroClass(className) {
10271
- return DETECTION_MACRO_CLASSES.has(className.trim().toLowerCase());
10272
- }
10273
- var COCO_TO_MACRO = {
10274
- mapping: {
10275
- person: "person",
10276
- bicycle: "vehicle",
10277
- car: "vehicle",
10278
- motorcycle: "vehicle",
10279
- airplane: "vehicle",
10280
- bus: "vehicle",
10281
- train: "vehicle",
10282
- truck: "vehicle",
10283
- boat: "vehicle",
10284
- bird: "animal",
10285
- cat: "animal",
10286
- dog: "animal",
10287
- horse: "animal",
10288
- sheep: "animal",
10289
- cow: "animal",
10290
- elephant: "animal",
10291
- bear: "animal",
10292
- zebra: "animal",
10293
- giraffe: "animal",
10294
- suitcase: "package",
10295
- backpack: "package",
10296
- handbag: "package"
10297
- },
10298
- preserveOriginal: false
10299
- };
10300
- var MACRO_NAMES = new Set(Object.values(COCO_TO_MACRO.mapping));
10301
- function macroOf(className) {
10302
- return COCO_TO_MACRO.mapping[className] ?? className;
10303
- }
10304
- /** `animal` matches a dog; `dog` matches only a dog (a cat is also an animal). */
10305
- function detectionClassMatches(wanted, actual) {
10306
- const w = wanted.toLowerCase();
10307
- const a = actual.toLowerCase();
10308
- if (w === a) return true;
10309
- return MACRO_NAMES.has(w) && macroOf(a) === w;
10310
- }
10311
- function isPhase$1(value) {
10312
- return value === "start" || value === "update" || value === "end";
10313
- }
10314
- var DetectionTriggerFilter = class {
10315
- trigger;
10316
- /** `${deviceId}|${trackId}` → fired at. Insertion-ordered, so the oldest is first. */
10317
- fired = /* @__PURE__ */ new Map();
10318
- constructor(trigger) {
10319
- this.trigger = trigger;
10320
- }
10321
- get firedCount() {
10322
- return this.fired.size;
10323
- }
10324
- evaluate(event, now) {
10325
- const { deviceId, trackId, phase } = event;
10326
- if (typeof deviceId !== "number" || typeof trackId !== "string" || !isPhase$1(phase)) return {
10327
- kind: "ignore",
10328
- why: "malformed track-lifecycle event"
10329
- };
10330
- if (!this.trigger.deviceIds.includes(deviceId)) return {
10331
- kind: "ignore",
10332
- why: `device ${deviceId} is not one of the trigger's devices`
10333
- };
10334
- const key = `${deviceId}|${trackId}`;
10335
- if (phase === "end") {
10336
- this.fired.delete(key);
10337
- return {
10338
- kind: "ignore",
10339
- why: "track ended"
10340
- };
10341
- }
10342
- this.expire(now);
10343
- const className = typeof event.bestClassName === "string" ? event.bestClassName : "";
10344
- const score = typeof event.bestConfidence === "number" ? event.bestConfidence : 0;
10345
- const vars = {
10346
- deviceId,
10347
- className,
10348
- trackId,
10349
- score
10350
- };
10351
- if (this.fired.has(key)) return {
10352
- kind: "reject",
10353
- reason: `already fired for track ${trackId}`,
10354
- vars
10355
- };
10356
- if (!this.trigger.classes.some((c) => detectionClassMatches(c, className))) return {
10357
- kind: "reject",
10358
- reason: `class ${className || "unknown"} not in [${this.trigger.classes.join(", ")}]`,
10359
- vars
10360
- };
10361
- if (this.trigger.minScore !== void 0 && score < this.trigger.minScore) return {
10362
- kind: "reject",
10363
- reason: `score ${score} < ${this.trigger.minScore}`,
10364
- vars
10365
- };
10366
- if (this.trigger.zones !== void 0) {
10367
- const visited = Array.isArray(event.zonesVisited) ? event.zonesVisited.filter((z) => typeof z === "string") : [];
10368
- if (!this.trigger.zones.some((z) => visited.includes(z))) return {
10369
- kind: "reject",
10370
- reason: `zone mismatch: visited [${visited.join(", ")}], wanted [${this.trigger.zones.join(", ")}]`,
10371
- vars
10372
- };
10373
- }
10374
- this.remember(key, now);
10375
- return {
10376
- kind: "fire",
10377
- reason: `${className} ${score} on device ${deviceId}`,
10378
- vars
10379
- };
10380
- }
10381
- remember(key, now) {
10382
- this.fired.set(key, now);
10383
- while (this.fired.size > 512) {
10384
- const oldest = this.fired.keys().next();
10385
- if (oldest.done === true) break;
10386
- this.fired.delete(oldest.value);
10387
- }
10388
- }
10389
- expire(now) {
10390
- for (const [key, at] of this.fired) {
10391
- if (now - at < 9e5) break;
10392
- this.fired.delete(key);
10393
- }
10394
- }
10395
- };
10396
- //#endregion
10397
10880
  //#region src/automation/condition-eval.ts
10398
10881
  /**
10399
10882
  * Evaluating an automation's condition tree against the ConditionMirror.
@@ -10420,7 +10903,7 @@ function collectInto(cond, out) {
10420
10903
  case "not":
10421
10904
  collectInto(cond.child, out);
10422
10905
  return;
10423
- case "condition":
10906
+ case "device-is":
10424
10907
  out.push({
10425
10908
  kind: "device",
10426
10909
  deviceId: cond.deviceId,
@@ -10441,10 +10924,11 @@ function collectInto(cond, out) {
10441
10924
  cap: binding.cap
10442
10925
  });
10443
10926
  return;
10927
+ default: return;
10444
10928
  }
10445
10929
  }
10446
- /** Every (device, cap) a tree reads, deduplicated. */
10447
- function collectMirrorSources(cond) {
10930
+ /** Every (device, cap) a `when` tree's STATE leaves read, deduplicated. */
10931
+ function collectWhenMirrorSources(cond) {
10448
10932
  if (cond === void 0) return [];
10449
10933
  const all = [];
10450
10934
  collectInto(cond, all);
@@ -10456,6 +10940,10 @@ function collectMirrorSources(cond) {
10456
10940
  return true;
10457
10941
  });
10458
10942
  }
10943
+ /** Legacy name, for blocks generated before the single tree: an old condition tree. */
10944
+ function collectMirrorSources(cond) {
10945
+ return collectWhenMirrorSources(cond === void 0 ? void 0 : convertLegacyCondition(cond));
10946
+ }
10459
10947
  function sliceKey(deviceId, cap) {
10460
10948
  return `${deviceId}|${cap}`;
10461
10949
  }
@@ -10609,7 +11097,8 @@ function zonesOfParked(zones, parkedId) {
10609
11097
  function judgeStationaryPresent(cond, reader) {
10610
11098
  if (reader.read(cond.deviceId, ZONE_ANALYTICS_CAP, "frame") === void 0) return {
10611
11099
  pass: false,
10612
- why: `device ${cond.deviceId} occupancy snapshot unknown`
11100
+ why: `device ${cond.deviceId} occupancy snapshot unknown`,
11101
+ unknown: true
10613
11102
  };
10614
11103
  const parked = parkedObjectsOf(reader.read(cond.deviceId, ZONE_ANALYTICS_CAP, "stationaryObjects"));
10615
11104
  if (parked.length === 0) return {
@@ -10618,7 +11107,7 @@ function judgeStationaryPresent(cond, reader) {
10618
11107
  };
10619
11108
  const zones = reader.read(cond.deviceId, ZONE_ANALYTICS_CAP, "zones");
10620
11109
  for (const obj of parked) {
10621
- if (cond.classes !== void 0 && !cond.classes.some((c) => detectionClassMatches(c, obj.className))) continue;
11110
+ if (cond.subjects !== void 0 && !anySubjectMatches(cond.subjects, { className: obj.className }).matches) continue;
10622
11111
  if (cond.zones !== void 0) {
10623
11112
  const inZones = zonesOfParked(zones, obj.id);
10624
11113
  if (!cond.zones.some((z) => inZones.includes(z))) continue;
@@ -10633,9 +11122,20 @@ function judgeStationaryPresent(cond, reader) {
10633
11122
  why: `${parked.length} parked on device ${cond.deviceId}, none matching the class/zone filter`
10634
11123
  };
10635
11124
  }
10636
- function evalNode(cond, path, reader, now, out) {
11125
+ function evalEventLeaf(cond, path, state, out) {
11126
+ const occurred = state.firedPath === path;
11127
+ out.push({
11128
+ path,
11129
+ kind: cond.kind,
11130
+ outcome: occurred ? "pass" : "fail",
11131
+ reason: occurred ? `${cond.kind} occurred → pass` : `${cond.kind} is an instant and did not occur now → fail`
11132
+ });
11133
+ return occurred;
11134
+ }
11135
+ function evalNode(cond, path, reader, now, out, state) {
11136
+ if (isEventLeaf(cond)) return evalEventLeaf(cond, path, state, out);
10637
11137
  switch (cond.kind) {
10638
- case "condition": {
11138
+ case "device-is": {
10639
11139
  const observed = reader.read(cond.deviceId, cond.cap, cond.fieldPath);
10640
11140
  const base = {
10641
11141
  path,
@@ -10656,6 +11156,7 @@ function evalNode(cond, path, reader, now, out) {
10656
11156
  return false;
10657
11157
  }
10658
11158
  if (observed === void 0) {
11159
+ state.unknown = true;
10659
11160
  out.push({
10660
11161
  ...base,
10661
11162
  outcome: "fail",
@@ -10673,6 +11174,7 @@ function evalNode(cond, path, reader, now, out) {
10673
11174
  }
10674
11175
  case "stationary-present": {
10675
11176
  const verdict = judgeStationaryPresent(cond, reader);
11177
+ if (verdict.unknown === true) state.unknown = true;
10676
11178
  out.push({
10677
11179
  path,
10678
11180
  kind: cond.kind,
@@ -10698,6 +11200,7 @@ function evalNode(cond, path, reader, now, out) {
10698
11200
  outcome: "fail",
10699
11201
  reason: `${alias} value unknown → fail`
10700
11202
  });
11203
+ state.unknown = true;
10701
11204
  return false;
10702
11205
  }
10703
11206
  values[alias] = toExpressionValue(raw) ?? null;
@@ -10729,7 +11232,7 @@ function evalNode(cond, path, reader, now, out) {
10729
11232
  outcome: "not-evaluated",
10730
11233
  reason: ""
10731
11234
  });
10732
- const inner = evalNode(cond.child, `${path}.0`, reader, now, out);
11235
+ const inner = evalNode(cond.child, `${path}.0`, reader, now, out, state);
10733
11236
  const ok = !inner;
10734
11237
  out.splice(at, 1, {
10735
11238
  path,
@@ -10757,7 +11260,7 @@ function evalNode(cond, path, reader, now, out) {
10757
11260
  markSkipped(child, `${path}.${i}`, `short-circuited by ${path}.${decided}`, out);
10758
11261
  continue;
10759
11262
  }
10760
- const ok = evalNode(child, `${path}.${i}`, reader, now, out);
11263
+ const ok = evalNode(child, `${path}.${i}`, reader, now, out, state);
10761
11264
  if (isAll ? !ok : ok) decided = i;
10762
11265
  }
10763
11266
  const ok = isAll ? decided === null : decided !== null;
@@ -10772,20 +11275,167 @@ function evalNode(cond, path, reader, now, out) {
10772
11275
  }
10773
11276
  }
10774
11277
  }
10775
- /** No condition tree is a pass with no nodes. */
11278
+ /** Evaluate a `when` tree: the fired event leaf is true, every other event leaf false. */
11279
+ function evaluateWhenTree(when, reader, now, options = {}) {
11280
+ const nodes = [];
11281
+ const state = {
11282
+ firedPath: options.firedPath,
11283
+ unknown: false
11284
+ };
11285
+ return {
11286
+ pass: evalNode(when, options.rootPath ?? "when", reader, now, nodes, state),
11287
+ unknown: state.unknown,
11288
+ nodes
11289
+ };
11290
+ }
11291
+ /** Legacy name, for blocks generated before the single tree. No tree is a pass with no nodes. */
10776
11292
  function evaluateConditionTree(cond, reader, now) {
10777
11293
  if (cond === void 0) return {
10778
11294
  pass: true,
11295
+ unknown: false,
10779
11296
  nodes: []
10780
11297
  };
10781
- const nodes = [];
10782
- return {
10783
- pass: evalNode(cond, "conditions", reader, now, nodes),
10784
- nodes
10785
- };
11298
+ return evaluateWhenTree(convertLegacyCondition(cond), reader, now, { rootPath: "conditions" });
11299
+ }
11300
+ //#endregion
11301
+ //#region src/automation/detection-trigger.ts
11302
+ /**
11303
+ * The `detection` trigger's per-event decision: does this track-lifecycle
11304
+ * event start a run, and if not, WHY not.
11305
+ *
11306
+ * Source: `EventCategory.PipelineAnalyticsTrackLifecycle` — payload
11307
+ * {@link PipelineAnalyticsTrackLifecyclePayload} (`deviceId`, `trackId`,
11308
+ * `phase` start|update|end, `bestClassName`, `bestConfidence`,
11309
+ * `zonesVisited`). The event carries the device in its DATA, not on its
11310
+ * `source`, so the filter reads `data.deviceId`.
11311
+ *
11312
+ * ONE fire per `(deviceId, trackId)`: a track fires the first time it satisfies
11313
+ * the subject, score and zone conditions (which may be on an `update`, once its
11314
+ * best confidence has risen, or once its face or plate has been resolved — D683
11315
+ * decides identity late, so a leaf with a label fires on the update that
11316
+ * carries it, never on the first detection), and never again. The fired set is bounded and
11317
+ * forgets a track on its `end` or after {@link FIRED_TTL_MS}, so a track whose
11318
+ * `end` was dropped (events are telemetry, D8) cannot pin memory.
11319
+ */
11320
+ /** The subjects a trigger asks for, whichever shape it has. */
11321
+ function subjectsOf(trigger) {
11322
+ return "subjects" in trigger ? trigger.subjects : trigger.classes.map(subjectFromClassName);
11323
+ }
11324
+ var MACRO_NAMES = new Set(Object.values(COCO_TO_MACRO.mapping));
11325
+ function macroOf(className) {
11326
+ return COCO_TO_MACRO.mapping[className] ?? className;
11327
+ }
11328
+ /** `animal` matches a dog; `dog` matches only a dog (a cat is also an animal). */
11329
+ function detectionClassMatches(wanted, actual) {
11330
+ const w = wanted.toLowerCase();
11331
+ const a = actual.toLowerCase();
11332
+ if (w === a) return true;
11333
+ return MACRO_NAMES.has(w) && macroOf(a) === w;
10786
11334
  }
11335
+ function isPhase$1(value) {
11336
+ return value === "start" || value === "update" || value === "end";
11337
+ }
11338
+ var DetectionTriggerFilter = class {
11339
+ trigger;
11340
+ /** `${deviceId}|${trackId}` → fired at. Insertion-ordered, so the oldest is first. */
11341
+ fired = /* @__PURE__ */ new Map();
11342
+ subjects;
11343
+ constructor(trigger) {
11344
+ this.trigger = trigger;
11345
+ this.subjects = subjectsOf(trigger);
11346
+ }
11347
+ get firedCount() {
11348
+ return this.fired.size;
11349
+ }
11350
+ evaluate(event, now) {
11351
+ const { deviceId, trackId, phase } = event;
11352
+ if (typeof deviceId !== "number" || typeof trackId !== "string" || !isPhase$1(phase)) return {
11353
+ kind: "ignore",
11354
+ why: "malformed track-lifecycle event"
11355
+ };
11356
+ if (!this.trigger.deviceIds.includes(deviceId)) return {
11357
+ kind: "ignore",
11358
+ why: `device ${deviceId} is not one of the trigger's devices`
11359
+ };
11360
+ const key = `${deviceId}|${trackId}`;
11361
+ if (phase === "end") {
11362
+ this.fired.delete(key);
11363
+ return {
11364
+ kind: "ignore",
11365
+ why: "track ended"
11366
+ };
11367
+ }
11368
+ this.expire(now);
11369
+ const className = typeof event.bestClassName === "string" ? event.bestClassName : "";
11370
+ const score = typeof event.bestConfidence === "number" ? event.bestConfidence : 0;
11371
+ const vars = {
11372
+ deviceId,
11373
+ className,
11374
+ trackId,
11375
+ score,
11376
+ label: ""
11377
+ };
11378
+ if (this.fired.has(key)) return {
11379
+ kind: "reject",
11380
+ reason: `already fired for track ${trackId}`,
11381
+ vars
11382
+ };
11383
+ const verdict = anySubjectMatches(this.subjects, {
11384
+ className,
11385
+ ...Array.isArray(event.classes) ? { classes: event.classes.filter((c) => typeof c === "string") } : {},
11386
+ ...typeof event.label === "string" ? { label: event.label } : {},
11387
+ ...typeof event.identityId === "string" ? { identityId: event.identityId } : {},
11388
+ ...typeof event.plateText === "string" ? { plateText: event.plateText } : {}
11389
+ });
11390
+ if (!verdict.matches) return {
11391
+ kind: "reject",
11392
+ reason: verdict.reason,
11393
+ vars
11394
+ };
11395
+ const matched = {
11396
+ ...vars,
11397
+ label: verdict.label
11398
+ };
11399
+ if (this.trigger.minScore !== void 0 && score < this.trigger.minScore) return {
11400
+ kind: "reject",
11401
+ reason: `score ${score} < ${this.trigger.minScore}`,
11402
+ vars: matched
11403
+ };
11404
+ if (this.trigger.zones !== void 0) {
11405
+ const visited = Array.isArray(event.zonesVisited) ? event.zonesVisited.filter((z) => typeof z === "string") : [];
11406
+ if (!this.trigger.zones.some((z) => visited.includes(z))) return {
11407
+ kind: "reject",
11408
+ reason: `zone mismatch: visited [${visited.join(", ")}], wanted [${this.trigger.zones.join(", ")}]`,
11409
+ vars: matched
11410
+ };
11411
+ }
11412
+ this.remember(key, now);
11413
+ return {
11414
+ kind: "fire",
11415
+ reason: `${verdict.label === "" ? className : verdict.label} ${score} on device ${deviceId}`,
11416
+ vars: matched
11417
+ };
11418
+ }
11419
+ remember(key, now) {
11420
+ this.fired.set(key, now);
11421
+ while (this.fired.size > 512) {
11422
+ const oldest = this.fired.keys().next();
11423
+ if (oldest.done === true) break;
11424
+ this.fired.delete(oldest.value);
11425
+ }
11426
+ }
11427
+ expire(now) {
11428
+ for (const [key, at] of this.fired) {
11429
+ if (now - at < 9e5) break;
11430
+ this.fired.delete(key);
11431
+ }
11432
+ }
11433
+ };
10787
11434
  //#endregion
10788
11435
  //#region src/automation/stationary-trigger.ts
11436
+ function isLegacyStationary(trigger) {
11437
+ return "classes" in trigger;
11438
+ }
10789
11439
  function isPhase(value) {
10790
11440
  return value === "appeared" || value === "departed";
10791
11441
  }
@@ -10812,11 +11462,15 @@ function evaluateStationaryTrigger(trigger, event) {
10812
11462
  phase,
10813
11463
  entryId
10814
11464
  };
10815
- if (trigger.classes !== void 0 && !trigger.classes.some((c) => detectionClassMatches(c, className))) return {
10816
- kind: "reject",
10817
- reason: `class ${className || "unknown"} not in [${trigger.classes.join(", ")}]`,
10818
- vars
10819
- };
11465
+ const subjects = isLegacyStationary(trigger) ? trigger.classes?.map(subjectFromClassName) : trigger.subjects;
11466
+ if (subjects !== void 0) {
11467
+ const verdict = anySubjectMatches(subjects, { className });
11468
+ if (!verdict.matches) return {
11469
+ kind: "reject",
11470
+ reason: verdict.reason,
11471
+ vars
11472
+ };
11473
+ }
10820
11474
  if (trigger.zones !== void 0 && !trigger.zones.some((z) => zones.includes(z))) return {
10821
11475
  kind: "reject",
10822
11476
  reason: `zone mismatch: in [${zones.join(", ")}], wanted [${trigger.zones.join(", ")}]`,
@@ -10955,11 +11609,12 @@ var RunGate = class {
10955
11609
  * Run traces — what an automation (or, later, an Action run) DID, node by node,
10956
11610
  * so the editor can paint every block green or red with its reason.
10957
11611
  *
10958
- * A trace is data, not a log: it covers the WHOLE tree — the trigger stage,
10959
- * every condition node (containers and leaves, including the ones a
10960
- * short-circuit never reached), the run-mode verdict and every action step —
10961
- * each addressed by a stable path (`conditions.0.1`, `actions.2`, or `steps.N`
10962
- * for an Action run). Skipped
11612
+ * A trace is data, not a log: it covers the WHOLE tree — the event leaf that
11613
+ * fired, every node of the `when` tree (containers and leaves, including the
11614
+ * ones a short-circuit never reached), the run-mode verdict and every action
11615
+ * step — each addressed by a stable path (`when.0.1`, `actions.2`, or `steps.N`
11616
+ * for an Action run). Traces written before the single tree carry
11617
+ * `conditions.*` paths and still parse. Skipped
10963
11618
  * evaluations are traced too, and identical consecutive skips collapse into a
10964
11619
  * repeat count so a trigger that fails every 5 minutes cannot flush real runs.
10965
11620
  *
@@ -10991,6 +11646,8 @@ var TraceNodeOutcomeSchema = z.enum([
10991
11646
  ]);
10992
11647
  var AutomationTriggerTraceSchema = z.object({
10993
11648
  kind: z.string().min(1),
11649
+ /** The event leaf that fired (`when`, `when.0.1`); absent on traces written before the single tree. */
11650
+ path: z.string().min(1).optional(),
10994
11651
  outcome: z.enum(["pass", "fail"]),
10995
11652
  /** Why an event was rejected ("class person not in [dog]") or what fired. */
10996
11653
  reason: z.string(),
@@ -10998,15 +11655,23 @@ var AutomationTriggerTraceSchema = z.object({
10998
11655
  vars: z.record(z.string(), TraceValueSchema)
10999
11656
  });
11000
11657
  var AutomationConditionTraceNodeSchema = z.object({
11001
- /** `conditions` for the root, `conditions.<i>` for its i-th child, … */
11658
+ /** `when` for the root, `when.<i>` for its i-th child, … (`conditions…` on an old trace). */
11002
11659
  path: z.string().min(1),
11003
11660
  kind: z.enum([
11004
11661
  "all",
11005
11662
  "any",
11006
11663
  "not",
11007
11664
  "condition",
11665
+ "device-is",
11008
11666
  "expression",
11009
- "stationary-present"
11667
+ "stationary-present",
11668
+ "device-becomes",
11669
+ "device-event",
11670
+ "schedule",
11671
+ "interval",
11672
+ "manual",
11673
+ "detection",
11674
+ "stationary"
11010
11675
  ]),
11011
11676
  outcome: TraceNodeOutcomeSchema,
11012
11677
  reason: z.string(),
@@ -11040,6 +11705,12 @@ var AutomationStepTraceSchema = z.object({
11040
11705
  deviceId: z.number().int().optional(),
11041
11706
  startedAt: z.number().optional(),
11042
11707
  endedAt: z.number().optional(),
11708
+ /**
11709
+ * The parameters the step SENT, after `{{vars.x}}` substitution — what the
11710
+ * device was actually asked. Bounded like trigger `vars`; a secret parameter
11711
+ * is shown as {@link REDACTED_ARG}. Absent on traces written before it existed.
11712
+ */
11713
+ args: z.record(z.string(), TraceValueSchema).optional(),
11043
11714
  outcome: z.enum([
11044
11715
  "ok",
11045
11716
  "error",
@@ -11131,20 +11802,53 @@ function appendTrace(ring, trace, keep) {
11131
11802
  }
11132
11803
  return next;
11133
11804
  }
11805
+ /** What a secret parameter is shown as in a trace. */
11806
+ var REDACTED_ARG = "[redacted]";
11807
+ /** Parameters kept per step trace; the rest are counted in `…`. */
11808
+ var MAX_TRACE_ARGS = 32;
11809
+ /** A string value is cut here. */
11810
+ var MAX_TRACE_ARG_LENGTH = 200;
11811
+ /** A parameter whose NAME says it is a credential. */
11812
+ var SECRET_ARG_NAME = /pass(word|phrase|code)?|secret|token|api[-_]?key|credential|\bpin\b|auth/i;
11813
+ function isSecretArg(name, value) {
11814
+ return SECRET_ARG_NAME.test(name) || isSecretMarkerLike(value);
11815
+ }
11816
+ /**
11817
+ * The parameters a step sent, as a trace may show them: primitives and short
11818
+ * lists of them (anything deeper is its JSON text, cut), at most
11819
+ * {@link MAX_TRACE_ARGS} of them. No cap method declares a parameter secret, so
11820
+ * a parameter is redacted by what it is called or by being a keychain marker,
11821
+ * and `secretKeys` names the ones a caller knows about.
11822
+ */
11823
+ function buildStepArgsTrace(args, secretKeys = []) {
11824
+ const out = {};
11825
+ for (const [key, value] of Object.entries(args).slice(0, 32)) if (secretKeys.includes(key) || isSecretArg(key, value)) out[key] = REDACTED_ARG;
11826
+ else if (typeof value === "string") out[key] = value.length > 200 ? `${value.slice(0, 200)}…` : value;
11827
+ else if (typeof value === "number" || typeof value === "boolean" || value === null) out[key] = value;
11828
+ else if (Array.isArray(value) && value.every((v) => typeof v === "string" || typeof v === "number")) out[key] = value;
11829
+ else if (value !== void 0) {
11830
+ const text = JSON.stringify(value) ?? "";
11831
+ out[key] = text.length > 200 ? `${text.slice(0, 200)}…` : text;
11832
+ }
11833
+ return out;
11834
+ }
11134
11835
  /**
11135
11836
  * The trigger stage of a trace from the bag a trigger handed to `run()`:
11136
11837
  * primitives and short lists of them (a device-state `to` that is an object is left out), minus the
11137
- * bookkeeping keys `kind` and `at`.
11838
+ * bookkeeping keys `kind`, `at` and `leaf` (the fired leaf's path, which moves to `path`).
11138
11839
  */
11139
11840
  function buildTriggerTrace(trigger, outcome, reason) {
11140
11841
  const vars = {};
11141
11842
  for (const [key, value] of Object.entries(trigger)) {
11142
- if (key === "kind" || key === "at") continue;
11843
+ if (key === "kind" || key === "at" || key === "leaf") continue;
11143
11844
  if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || value === null) vars[key] = value;
11144
11845
  else if (Array.isArray(value) && value.every((v) => typeof v === "string" || typeof v === "number")) vars[key] = value;
11145
11846
  }
11847
+ const kind = typeof trigger["kind"] === "string" ? trigger["kind"] : "unknown";
11848
+ const path = typeof trigger["leaf"] === "string" ? trigger["leaf"] : void 0;
11146
11849
  return {
11147
- kind: typeof trigger["kind"] === "string" ? trigger["kind"] : "unknown",
11850
+ kind,
11851
+ ...path === void 0 ? {} : { path },
11148
11852
  outcome,
11149
11853
  reason,
11150
11854
  vars
@@ -11382,14 +12086,22 @@ async function runSteps(steps, options) {
11382
12086
  }
11383
12087
  const startedAt = options.now();
11384
12088
  let deviceId = step.meta.deviceId;
11385
- const scope = { setDeviceId: (id) => {
11386
- deviceId = id;
11387
- } };
12089
+ let sent;
12090
+ const scope = {
12091
+ setDeviceId: (id) => {
12092
+ deviceId = id;
12093
+ },
12094
+ setArgs: (args) => {
12095
+ sent = args;
12096
+ }
12097
+ };
12098
+ const argsTrace = () => sent === void 0 ? {} : { args: buildStepArgsTrace(sent) };
11388
12099
  try {
11389
12100
  await step.run(scope);
11390
12101
  traces.push({
11391
12102
  ...step.meta,
11392
12103
  ...deviceId === void 0 ? {} : { deviceId },
12104
+ ...argsTrace(),
11393
12105
  path,
11394
12106
  startedAt,
11395
12107
  endedAt: options.now(),
@@ -11407,6 +12119,7 @@ async function runSteps(steps, options) {
11407
12119
  traces.push({
11408
12120
  ...step.meta,
11409
12121
  ...deviceId === void 0 ? {} : { deviceId },
12122
+ ...argsTrace(),
11410
12123
  path,
11411
12124
  startedAt,
11412
12125
  endedAt: options.now(),
@@ -11493,6 +12206,7 @@ function buildActionSteps(steps, vars, deps) {
11493
12206
  const targets = typeof step.deviceId === "number" ? [step.deviceId] : Array.isArray(step.deviceId) ? step.deviceId : [resolveDeviceTarget(vars, step.deviceId.$var)];
11494
12207
  for (const deviceId of targets) {
11495
12208
  scope.setDeviceId(deviceId);
12209
+ scope.setArgs(args);
11496
12210
  await deps.invokeCap({
11497
12211
  deviceId,
11498
12212
  cap: step.cap,
@@ -11632,9 +12346,9 @@ function normalizeLeaf(leaf, resolver, path) {
11632
12346
  };
11633
12347
  }
11634
12348
  /** Normalise every leaf of a condition tree. Throws {@link QuantityUnitError}. */
11635
- function normalizeConditionUnits(condition, resolver, path = "conditions") {
12349
+ function normalizeConditionUnits(condition, resolver, path = "when") {
11636
12350
  switch (condition.kind) {
11637
- case "condition": {
12351
+ case "device-is": {
11638
12352
  const { leaf, warnings } = normalizeLeaf(condition, resolver, path);
11639
12353
  return {
11640
12354
  value: leaf,
@@ -11727,17 +12441,17 @@ function normalizeActionUnits(actions, resolver, path = "steps") {
11727
12441
  warnings
11728
12442
  };
11729
12443
  }
11730
- /** Normalise a whole recipe: its condition tree and its actions. */
12444
+ /** Normalise a whole recipe: its `when` tree and its actions. */
11731
12445
  function normalizeRecipeUnits(recipe, resolver) {
11732
- const conditions = recipe.conditions === void 0 ? void 0 : normalizeConditionUnits(recipe.conditions, resolver, "conditions");
12446
+ const when = normalizeConditionUnits(recipe.when, resolver, "when");
11733
12447
  const actions = normalizeActionUnits(recipe.actions, resolver, "actions");
11734
12448
  return {
11735
12449
  value: {
11736
12450
  ...recipe,
11737
- ...conditions === void 0 ? {} : { conditions: conditions.value },
12451
+ when: when.value,
11738
12452
  actions: actions.value
11739
12453
  },
11740
- warnings: [...conditions?.warnings ?? [], ...actions.warnings]
12454
+ warnings: [...when.warnings, ...actions.warnings]
11741
12455
  };
11742
12456
  }
11743
12457
  //#endregion
@@ -11760,7 +12474,7 @@ function normalizeRecipeUnits(recipe, resolver) {
11760
12474
  */
11761
12475
  function stampCondition(condition, resolver) {
11762
12476
  switch (condition.kind) {
11763
- case "condition": {
12477
+ case "device-is": {
11764
12478
  if (typeof condition.value !== "number" || condition.unit !== void 0) return condition;
11765
12479
  const quantity = resolver.fieldQuantity(condition.cap, condition.fieldPath);
11766
12480
  if (quantity === void 0 || unitsForQuantity(quantity).length < 2) return condition;
@@ -11803,7 +12517,7 @@ function stampAction(action, resolver) {
11803
12517
  function prepareRecipeUnits(recipe, resolver) {
11804
12518
  const stamped = {
11805
12519
  ...recipe,
11806
- ...recipe.conditions === void 0 ? {} : { conditions: stampCondition(recipe.conditions, resolver) },
12520
+ when: stampCondition(recipe.when, resolver),
11807
12521
  actions: recipe.actions.map((action) => stampAction(action, resolver))
11808
12522
  };
11809
12523
  try {
@@ -12608,6 +13322,25 @@ var addonSettingsCapability = {
12608
13322
  addonId: z.string(),
12609
13323
  nodeId: z.string().optional()
12610
13324
  }), SettingsSchemaWithValuesSchema.nullable()),
13325
+ getDeclaredSettingsKeys: method(z.object({
13326
+ addonId: z.string(),
13327
+ nodeId: z.string().optional()
13328
+ }), z.object({ keys: z.array(z.string()) }).nullable(), { auth: "admin" }),
13329
+ unsetStoredSettingsKeys: method(z.object({
13330
+ addonId: z.string(),
13331
+ nodeId: z.string().optional(),
13332
+ keys: z.array(z.string())
13333
+ }), z.object({
13334
+ removed: z.array(z.string()),
13335
+ refused: z.array(z.object({
13336
+ key: z.string(),
13337
+ reason: z.string()
13338
+ })),
13339
+ secretsCleared: z.number()
13340
+ }), {
13341
+ kind: "mutation",
13342
+ auth: "admin"
13343
+ }),
12611
13344
  getDeviceSettings: method(z.object({
12612
13345
  addonId: z.string(),
12613
13346
  deviceId: z.number(),
@@ -20746,6 +21479,8 @@ var StorageKindSchema = z.object({
20746
21479
  "orphaned",
20747
21480
  "dropped"
20748
21481
  ]),
21482
+ /** An owner declared this kind since the engine started. */
21483
+ declaredThisBoot: z.boolean(),
20749
21484
  /** `null` when the caller asked for no counts (`counts: false`). */
20750
21485
  rows: z.number().int().nonnegative().nullable(),
20751
21486
  /** Rows x the average size of a sample; null for an empty kind. */
@@ -20757,6 +21492,51 @@ var StorageKindSchema = z.object({
20757
21492
  /** The whole declaration, secret paths and entry descriptor included (the entries service builds its handle from it). */
20758
21493
  declaration: RecordKindDeclarationSchema
20759
21494
  });
21495
+ z.enum([
21496
+ "orphaned",
21497
+ "stale",
21498
+ "unknown"
21499
+ ]);
21500
+ /** A record kind nobody declared since its owner started, or whose owner is gone. */
21501
+ var StaleKindFindingSchema = z.object({
21502
+ owner: z.string(),
21503
+ kind: z.string(),
21504
+ /** `unknown`: the owner could not be judged (not running, or its state unreadable) - never dropped. */
21505
+ verdict: z.enum(["orphaned", "unknown"]),
21506
+ reason: z.string(),
21507
+ rows: z.number().int().nonnegative().nullable(),
21508
+ /** local-auth's tables are never dropped by this audit. */
21509
+ protected: z.boolean()
21510
+ });
21511
+ /** A stored global-settings key the running addon no longer declares. */
21512
+ var StaleSettingsKeyFindingSchema = z.object({
21513
+ addonId: z.string(),
21514
+ /** The stored key as written, a per-node `<key>@<nodeId>` suffix included. */
21515
+ key: z.string(),
21516
+ /**
21517
+ * Keychain refs whose ONLY marker sits under this key: in use by stale data,
21518
+ * not orphans yet. Removing the key releases them.
21519
+ */
21520
+ secretRefs: z.array(z.string())
21521
+ });
21522
+ /** An addon the audit could not judge, with the reason. Never reported as stale. */
21523
+ var StaleUnknownSchema = z.object({
21524
+ subject: z.string(),
21525
+ reason: z.string()
21526
+ });
21527
+ var StaleDataReportSchema = z.object({
21528
+ /** Epoch ms of the last finished scan; `null` before the first. */
21529
+ scannedAt: z.number().nullable(),
21530
+ scanning: z.boolean(),
21531
+ trigger: z.enum([
21532
+ "boot",
21533
+ "interval",
21534
+ "manual"
21535
+ ]).nullable(),
21536
+ kinds: z.array(StaleKindFindingSchema),
21537
+ settingsKeys: z.array(StaleSettingsKeyFindingSchema),
21538
+ unknown: z.array(StaleUnknownSchema)
21539
+ });
20760
21540
  /**
20761
21541
  * storage-admin - the operator's maintenance reach into the databases: list
20762
21542
  * their tables and record kinds, read a kind for diagnosis. Read-only: a table
@@ -20793,7 +21573,49 @@ var storageAdminCapability = {
20793
21573
  readRecords: method(RecordQueryInputSchema.extend({
20794
21574
  owner: z.string().min(1),
20795
21575
  kind: RecordKindNameSchema
20796
- }), RecordQueryResultSchema, { auth: "admin" })
21576
+ }), RecordQueryResultSchema, { auth: "admin" }),
21577
+ /**
21578
+ * The last stale-data scan (read-only detection): record kinds left behind
21579
+ * and settings keys no running addon declares. Held in memory; a scan runs
21580
+ * at hub boot, every 24 h and on `scanStaleData`.
21581
+ */
21582
+ staleDataReport: method(z.object({}), StaleDataReportSchema, { auth: "admin" }),
21583
+ /** Scan now. Detection only: it logs findings (owner and key, never values) and changes nothing. */
21584
+ scanStaleData: method(z.object({}), StaleDataReportSchema, {
21585
+ kind: "mutation",
21586
+ auth: "admin"
21587
+ }),
21588
+ /**
21589
+ * Drop an ORPHANED kind: its rows, their keychain values, then mark it
21590
+ * dropped. The verdict is re-checked at call time; anything not still
21591
+ * orphaned (or a protected owner) is refused.
21592
+ */
21593
+ dropOrphanedKind: method(z.object({
21594
+ owner: z.string().min(1),
21595
+ kind: RecordKindNameSchema
21596
+ }), z.object({
21597
+ deleted: z.number().int().nonnegative(),
21598
+ secretsReleased: z.number().int().nonnegative()
21599
+ }), {
21600
+ kind: "mutation",
21601
+ auth: "admin",
21602
+ caller: "required"
21603
+ }),
21604
+ /**
21605
+ * Unset one stale settings key on a running addon (an owner-side write that
21606
+ * also clears the keychain values the key held). Re-checked at call time.
21607
+ */
21608
+ unsetStaleSettingsKey: method(z.object({
21609
+ addonId: z.string().min(1),
21610
+ key: z.string().min(1)
21611
+ }), z.object({
21612
+ removed: z.boolean(),
21613
+ secretsCleared: z.number().int().nonnegative()
21614
+ }), {
21615
+ kind: "mutation",
21616
+ auth: "admin",
21617
+ caller: "required"
21618
+ })
20797
21619
  }
20798
21620
  };
20799
21621
  //#endregion
@@ -20973,6 +21795,19 @@ var keychainCapability = {
20973
21795
  kind: "mutation",
20974
21796
  auth: "admin"
20975
21797
  }),
21798
+ /**
21799
+ * Release the values rows of a DROPPED record kind held, whatever the kind's
21800
+ * owner (stale-data audit). Reserved to `sqlite-settings`, the engine that
21801
+ * just deleted the rows: only refs scoped `row/records:<kind>/...` are
21802
+ * accepted, and the audit names the operator it acted for. Answers a count.
21803
+ */
21804
+ releaseRecordRefs: method(z.object({
21805
+ refs: RefListSchema,
21806
+ onBehalfOf: z.string().min(1)
21807
+ }), z.object({ released: z.number().int() }), {
21808
+ kind: "mutation",
21809
+ auth: "admin"
21810
+ }),
20976
21811
  /** The caller's own refs, metadata only. */
20977
21812
  listMeta: method(z.object({}), z.array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }),
20978
21813
  /** Whether values can be served — the save path refuses a write while locked. */
@@ -22293,7 +23128,9 @@ var DiscoveredChildDeviceSchema = z.lazy(() => z.object({
22293
23128
  /** Upstream-system identity + rendering hints for the candidate. */
22294
23129
  sourceInfo: SourceInfoSchema.optional(),
22295
23130
  /** Nested entity-children for accordion preview — integrations populate, Hubs omit. */
22296
- children: z.array(DiscoveredChildDeviceSchema).readonly().optional()
23131
+ children: z.array(DiscoveredChildDeviceSchema).readonly().optional(),
23132
+ /** `childNativeId` of the gateway candidate in the same list this device sits behind. */
23133
+ parentStableId: z.string().optional()
22297
23134
  }));
22298
23135
  /**
22299
23136
  * Status block — populated by the integration after each
@@ -42899,6 +43736,79 @@ var DiscoveredDeviceSchema = z.object({
42899
43736
  metadata: z.record(z.string(), z.unknown()).optional()
42900
43737
  });
42901
43738
  /**
43739
+ * HOW a provider can be found on the network. The provider only DECLARES the
43740
+ * mode; the `local-network` scan engine runs it once for every provider that
43741
+ * asked (one multicast browse, one host sweep) and hands the raw hits back to
43742
+ * `classifyDiscoveryHits`. A provider never opens a discovery socket itself,
43743
+ * except through a `custom` mode.
43744
+ */
43745
+ var DiscoveryModeSchema = z.discriminatedUnion("kind", [
43746
+ z.object({
43747
+ kind: z.literal("mdns"),
43748
+ /** DNS-SD service type, e.g. `_esphomelib._tcp`. */
43749
+ serviceType: z.string().min(1),
43750
+ /** Regular expression an instance name must match (case-insensitive). */
43751
+ instancePattern: z.string().optional()
43752
+ }),
43753
+ z.object({
43754
+ kind: z.literal("ws-discovery"),
43755
+ /** Probe types (e.g. `dn:NetworkVideoTransmitter`); omitted = any device. */
43756
+ types: z.array(z.string()).optional()
43757
+ }),
43758
+ z.object({
43759
+ kind: z.literal("ssdp"),
43760
+ searchTarget: z.string().min(1)
43761
+ }),
43762
+ z.object({
43763
+ kind: z.literal("udp-broadcast"),
43764
+ port: z.number().int().min(1).max(65535),
43765
+ payloadHex: z.string().regex(/^([0-9a-fA-F]{2})*$/),
43766
+ /** Port replies arrive on, when the device answers somewhere other than the source port. */
43767
+ listenPort: z.number().int().min(1).max(65535).optional()
43768
+ }),
43769
+ z.object({
43770
+ kind: z.literal("http-probe"),
43771
+ port: z.number().int().min(1).max(65535),
43772
+ path: z.string().startsWith("/"),
43773
+ method: z.enum(["GET", "POST"]).default("GET"),
43774
+ bodyText: z.string().optional(),
43775
+ contentType: z.string().optional(),
43776
+ tls: z.boolean().default(false),
43777
+ /** Status codes that count as a hit. Omitted = any HTTP answer. */
43778
+ acceptStatus: z.array(z.number().int()).optional()
43779
+ }),
43780
+ z.object({
43781
+ kind: z.literal("custom"),
43782
+ /** Why the engine cannot do it (an allowlisted exception, e.g. a vendor UDP protocol). */
43783
+ reason: z.string().min(1)
43784
+ })
43785
+ ]);
43786
+ /** What the engine saw on the wire for ONE declared mode; the provider classifies it. */
43787
+ var DiscoveryHitSchema = z.object({
43788
+ /** Index into the provider's own `getDiscoveryModes()` array. */
43789
+ modeIndex: z.number().int().min(0),
43790
+ host: z.string(),
43791
+ port: z.number().int(),
43792
+ http: z.object({
43793
+ status: z.number().int(),
43794
+ headers: z.record(z.string(), z.string()),
43795
+ /** At most 16 KiB. */
43796
+ bodyText: z.string()
43797
+ }).optional(),
43798
+ mdns: z.object({
43799
+ instance: z.string(),
43800
+ host: z.string(),
43801
+ port: z.number().int(),
43802
+ txt: z.record(z.string(), z.string())
43803
+ }).optional(),
43804
+ udp: z.object({ payloadHex: z.string() }).optional(),
43805
+ wsd: z.object({
43806
+ xaddrs: z.array(z.string()),
43807
+ types: z.array(z.string()),
43808
+ scopes: z.array(z.string())
43809
+ }).optional()
43810
+ });
43811
+ /**
42902
43812
  * Candidate handed back from discovery and accepted by
42903
43813
  * `adoptDiscoveredDevice`. Shape mirrors the in-process
42904
43814
  * `DiscoveredDevice` interface used by `DeviceDiscovery`.
@@ -42933,7 +43843,17 @@ var DiscoveryCandidateSchema = z.object({
42933
43843
  /** Numeric id of the device this candidate was matched to. Set with `alreadyOnboarded`. */
42934
43844
  onboardedDeviceId: z.number().optional(),
42935
43845
  /** Operator-facing name of the matched device, so the UI can say WHICH one it is. */
42936
- onboardedName: z.string().optional()
43846
+ onboardedName: z.string().optional(),
43847
+ /**
43848
+ * This candidate is an INTEGRATION to set up (a gateway, a hub, a controller),
43849
+ * not a device to adopt. Replaces the `prefilledConfig.setupIntegration` marker,
43850
+ * which is still read for one release.
43851
+ */
43852
+ setupIntegration: z.boolean().optional(),
43853
+ /** `stableId` of the gateway candidate this device was found BEHIND. */
43854
+ parentStableId: z.string().optional(),
43855
+ /** `false` = shown for context but not pickable. Default true. */
43856
+ selectable: z.boolean().optional()
42937
43857
  });
42938
43858
  /**
42939
43859
  * Flat device summary returned by `createDevice` / `adoptDiscoveredDevice`.
@@ -43030,6 +43950,24 @@ var deviceProviderCapability = {
43030
43950
  auth: "admin"
43031
43951
  }),
43032
43952
  /**
43953
+ * How this provider is found on the network. `[]` = the provider has no
43954
+ * declarative mode and keeps answering `discoverDevices` itself.
43955
+ */
43956
+ getDiscoveryModes: method(z.object({}), z.array(DiscoveryModeSchema)),
43957
+ /**
43958
+ * Turn the engine's raw hits into candidates. The provider may make
43959
+ * follow-up UNICAST requests to a hit host (an authenticated call, an
43960
+ * identity check) and never sweeps a subnet. `params` is the per-scan form
43961
+ * from `getDiscoveryParamsSchema`.
43962
+ */
43963
+ classifyDiscoveryHits: method(z.object({
43964
+ hits: z.array(DiscoveryHitSchema),
43965
+ params: z.record(z.string(), z.unknown()).optional()
43966
+ }), z.array(DiscoveryCandidateSchema), {
43967
+ kind: "mutation",
43968
+ auth: "admin"
43969
+ }),
43970
+ /**
43033
43971
  * Optional form schema (`ConfigUISchema`) for the EXTRA per-scan inputs a
43034
43972
  * provider accepts (e.g. Gree's broadcast address for a different subnet).
43035
43973
  * `null` when the provider takes no extra scan params — the generic
@@ -44387,20 +45325,26 @@ var deviceManagerCapability = {
44387
45325
  label: z.string()
44388
45326
  })).readonly() }), { auth: "admin" }),
44389
45327
  /** Scan EVERY discovery-capable provider; returns candidates grouped by addon. */
44390
- discoverAllProviders: method(z.object({}), z.object({ groups: z.array(z.object({
44391
- addonId: z.string(),
44392
- label: z.string(),
44393
- candidates: z.array(DiscoveryCandidateSchema).readonly(),
44394
- error: z.string().nullable()
44395
- })).readonly() }), {
44396
- kind: "mutation",
44397
- auth: "admin"
44398
- }),
45328
+ discoverAllProviders: method(
45329
+ /** `subnets`: extra CIDRs for THIS scan, on top of the hub's own and the saved list. */
45330
+ z.object({ subnets: z.array(z.string()).optional() }),
45331
+ z.object({ groups: z.array(z.object({
45332
+ addonId: z.string(),
45333
+ label: z.string(),
45334
+ candidates: z.array(DiscoveryCandidateSchema).readonly(),
45335
+ error: z.string().nullable()
45336
+ })).readonly() }),
45337
+ {
45338
+ kind: "mutation",
45339
+ auth: "admin"
45340
+ }
45341
+ ),
44399
45342
  /** Scan ONE provider with optional provider-specific params (subnet /
44400
45343
  * broadcast addr) — the per-integration "Scan network" surface. */
44401
45344
  discoverProvider: method(z.object({
44402
45345
  addonId: z.string(),
44403
- params: z.record(z.string(), z.unknown()).optional()
45346
+ params: z.record(z.string(), z.unknown()).optional(),
45347
+ subnets: z.array(z.string()).optional()
44404
45348
  }), z.object({ candidates: z.array(DiscoveryCandidateSchema).readonly() }), {
44405
45349
  kind: "mutation",
44406
45350
  auth: "admin"
@@ -62503,6 +63447,12 @@ var TerminalInstanceInfoSchema = z.object({
62503
63447
  instanceId: z.string(),
62504
63448
  cameraStableId: z.string(),
62505
63449
  nodeId: z.string(),
63450
+ /**
63451
+ * False while the node the instance is bound to is not in the cluster
63452
+ * topology (forgotten, renamed, re-paired). The instance is kept; the
63453
+ * operator re-points it with `updateInstance({ targetNodeId })`.
63454
+ */
63455
+ nodeInCluster: z.boolean(),
62506
63456
  profileId: z.string(),
62507
63457
  profileLabel: z.string(),
62508
63458
  name: z.string(),
@@ -62569,6 +63519,8 @@ var terminalSessionCapability = {
62569
63519
  }),
62570
63520
  updateInstance: method(z.object({
62571
63521
  instanceId: z.string().min(1),
63522
+ /** Re-point the instance to another node; the profile must exist there. */
63523
+ targetNodeId: z.string().min(1).max(256).optional(),
62572
63524
  name: z.string().trim().min(1).max(160).optional(),
62573
63525
  executable: z.string().max(1024).optional(),
62574
63526
  args: z.array(z.string().max(2048)).max(64).optional(),
@@ -70960,7 +71912,9 @@ var integrationsCapability = {
70960
71912
  id: z.string(),
70961
71913
  settings: z.record(z.string(), z.unknown()),
70962
71914
  /** Keys the form's schema declares secret (by type) — keychain-stored (D787). */
70963
- secretKeys: z.array(z.string()).optional()
71915
+ secretKeys: z.array(z.string()).optional(),
71916
+ /** The integration's own addon applies the change in-process and asks the hub not to respawn it. */
71917
+ skipRestart: z.boolean().optional()
70964
71918
  }), z.object({ success: z.boolean() }), {
70965
71919
  kind: "mutation",
70966
71920
  auth: "admin"
@@ -71606,6 +72560,39 @@ var TlsStatusSchema = z.object({
71606
72560
  hasCa: z.boolean()
71607
72561
  }).nullable()
71608
72562
  });
72563
+ /** One provider's ask of the scan engine: the modes it declared. */
72564
+ var ScanRequestSchema = z.object({
72565
+ providerId: z.string().min(1),
72566
+ modes: z.array(DiscoveryModeSchema)
72567
+ });
72568
+ var ScanErrorSchema = z.object({
72569
+ /** Absent for a failure that is the scan's own (a bad subnet, a socket that would not open). */
72570
+ providerId: z.string().optional(),
72571
+ /** The mode family that failed (`mdns`, `http-probe`, …). */
72572
+ mode: z.string().optional(),
72573
+ message: z.string()
72574
+ });
72575
+ /** What one scan did, per mode family; the engine logs the same numbers once. */
72576
+ var ScanStatsSchema = z.object({
72577
+ hostsProbed: z.number().int(),
72578
+ hits: z.number().int(),
72579
+ timeouts: z.number().int(),
72580
+ byMode: z.record(z.string(), z.object({
72581
+ probed: z.number().int(),
72582
+ hits: z.number().int(),
72583
+ timeouts: z.number().int()
72584
+ }))
72585
+ });
72586
+ var ScanNetworkResultSchema = z.object({
72587
+ hits: z.array(z.object({
72588
+ providerId: z.string(),
72589
+ hit: DiscoveryHitSchema
72590
+ })),
72591
+ /** CIDRs actually covered: the hub's own /24s, the saved list and the per-call list. */
72592
+ subnetsScanned: z.array(z.string()),
72593
+ errors: z.array(ScanErrorSchema),
72594
+ stats: ScanStatsSchema
72595
+ });
71609
72596
  var localNetworkCapability = {
71610
72597
  name: "local-network",
71611
72598
  scope: "system",
@@ -71819,6 +72806,34 @@ var localNetworkCapability = {
71819
72806
  kind: "mutation",
71820
72807
  auth: "admin"
71821
72808
  }),
72809
+ /**
72810
+ * The LAN discovery engine. Every provider that declared discovery modes
72811
+ * (`device-provider.getDiscoveryModes`) is scanned in ONE pass: a single
72812
+ * mDNS browse for the union of service types, one WS-Discovery probe, one
72813
+ * SSDP search per target and one sweep that visits each host once and runs
72814
+ * every http-probe of every provider. Subnets scanned = the hub's own
72815
+ * non-internal IPv4 /24s ∪ the saved list (`getScanSubnets`) ∪ `subnets`.
72816
+ * A bad CIDR, or more than 4096 hosts in total, refuses the scan.
72817
+ */
72818
+ scanNetwork: method(z.object({
72819
+ requests: z.array(ScanRequestSchema),
72820
+ subnets: z.array(z.string()).optional()
72821
+ }), ScanNetworkResultSchema, {
72822
+ kind: "mutation",
72823
+ auth: "admin",
72824
+ timeoutMs: 9e4
72825
+ }),
72826
+ /** Extra subnets every scan covers besides the hub's own, as CIDR strings. */
72827
+ getScanSubnets: method(z.void(), z.object({ subnets: z.array(z.string()) }), { auth: "admin" }),
72828
+ /**
72829
+ * Replace the saved extra subnets (a cluster setting). Each entry is IPv4
72830
+ * CIDR, at most a /22; the list is refused when it is invalid or its hosts
72831
+ * would exceed the scan cap.
72832
+ */
72833
+ setScanSubnets: method(z.object({ subnets: z.array(z.string()) }), z.object({ subnets: z.array(z.string()) }), {
72834
+ kind: "mutation",
72835
+ auth: "admin"
72836
+ }),
71822
72837
  /** Return to the generated local CA. The uploaded certificate stays stored (D873). */
71823
72838
  revertToGeneratedCertificate: method(z.void(), TlsStatusSchema, {
71824
72839
  kind: "mutation",
@@ -88642,6 +89657,17 @@ var BaseDeviceProvider = class extends BaseAddon {
88642
89657
  async discoverDevices(_input) {
88643
89658
  return [];
88644
89659
  }
89660
+ /**
89661
+ * How the scan engine finds this provider. Default `[]`: the provider is
89662
+ * not migrated and keeps answering `discoverDevices` itself.
89663
+ */
89664
+ async getDiscoveryModes() {
89665
+ return [];
89666
+ }
89667
+ /** Turn the scan engine's raw hits into candidates. Default: none. */
89668
+ async classifyDiscoveryHits(_input) {
89669
+ return [];
89670
+ }
88645
89671
  /** Extra per-scan input form (e.g. a broadcast address for another subnet).
88646
89672
  * Null = no extra params. Override in providers that support scoped scans. */
88647
89673
  async getDiscoveryParamsSchema() {
@@ -90332,6 +91358,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
90332
91358
  access: "create",
90333
91359
  role: "admin"
90334
91360
  },
91361
+ "addonSettings.getDeclaredSettingsKeys": {
91362
+ capName: "addon-settings",
91363
+ capScope: "system",
91364
+ addonId: null,
91365
+ access: "view",
91366
+ role: "admin"
91367
+ },
90335
91368
  "addonSettings.getDeviceSettings": {
90336
91369
  capName: "addon-settings",
90337
91370
  capScope: "system",
@@ -90353,6 +91386,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
90353
91386
  access: "view",
90354
91387
  role: "admin"
90355
91388
  },
91389
+ "addonSettings.unsetStoredSettingsKeys": {
91390
+ capName: "addon-settings",
91391
+ capScope: "system",
91392
+ addonId: null,
91393
+ access: "create",
91394
+ role: "admin"
91395
+ },
90356
91396
  "addonSettings.updateDeviceSettings": {
90357
91397
  capName: "addon-settings",
90358
91398
  capScope: "system",
@@ -92768,6 +93808,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
92768
93808
  access: "create",
92769
93809
  role: "admin"
92770
93810
  },
93811
+ "deviceProvider.classifyDiscoveryHits": {
93812
+ capName: "device-provider",
93813
+ capScope: "system",
93814
+ addonId: null,
93815
+ access: "create",
93816
+ role: "admin"
93817
+ },
92771
93818
  "deviceProvider.createDevice": {
92772
93819
  capName: "device-provider",
92773
93820
  capScope: "system",
@@ -92796,6 +93843,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
92796
93843
  access: "view",
92797
93844
  role: "admin"
92798
93845
  },
93846
+ "deviceProvider.getDiscoveryModes": {
93847
+ capName: "device-provider",
93848
+ capScope: "system",
93849
+ addonId: null,
93850
+ access: "view",
93851
+ role: "admin"
93852
+ },
92799
93853
  "deviceProvider.getDiscoveryParamsSchema": {
92800
93854
  capName: "device-provider",
92801
93855
  capScope: "system",
@@ -93573,6 +94627,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
93573
94627
  access: "create",
93574
94628
  role: "admin"
93575
94629
  },
94630
+ "keychain.releaseRecordRefs": {
94631
+ capName: "keychain",
94632
+ capScope: "system",
94633
+ addonId: null,
94634
+ access: "create",
94635
+ role: "admin"
94636
+ },
93576
94637
  "keychain.resolve": {
93577
94638
  capName: "keychain",
93578
94639
  capScope: "system",
@@ -93993,6 +95054,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
93993
95054
  access: "view",
93994
95055
  role: "admin"
93995
95056
  },
95057
+ "localNetwork.getScanSubnets": {
95058
+ capName: "local-network",
95059
+ capScope: "system",
95060
+ addonId: null,
95061
+ access: "view",
95062
+ role: "admin"
95063
+ },
93996
95064
  "localNetwork.getTlsStatus": {
93997
95065
  capName: "local-network",
93998
95066
  capScope: "system",
@@ -94042,6 +95110,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
94042
95110
  access: "create",
94043
95111
  role: "admin"
94044
95112
  },
95113
+ "localNetwork.scanNetwork": {
95114
+ capName: "local-network",
95115
+ capScope: "system",
95116
+ addonId: null,
95117
+ access: "create",
95118
+ role: "admin"
95119
+ },
94045
95120
  "localNetwork.setAddressRole": {
94046
95121
  capName: "local-network",
94047
95122
  capScope: "system",
@@ -94063,6 +95138,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
94063
95138
  access: "create",
94064
95139
  role: "admin"
94065
95140
  },
95141
+ "localNetwork.setScanSubnets": {
95142
+ capName: "local-network",
95143
+ capScope: "system",
95144
+ addonId: null,
95145
+ access: "create",
95146
+ role: "admin"
95147
+ },
94066
95148
  "localNetwork.setViewerEndpoints": {
94067
95149
  capName: "local-network",
94068
95150
  capScope: "system",
@@ -98284,6 +99366,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
98284
99366
  access: "create",
98285
99367
  role: "admin"
98286
99368
  },
99369
+ "storageAdmin.dropOrphanedKind": {
99370
+ capName: "storage-admin",
99371
+ capScope: "system",
99372
+ addonId: null,
99373
+ access: "delete",
99374
+ role: "admin"
99375
+ },
98287
99376
  "storageAdmin.listKinds": {
98288
99377
  capName: "storage-admin",
98289
99378
  capScope: "system",
@@ -98305,6 +99394,27 @@ var METHOD_ACCESS_MAP = Object.freeze({
98305
99394
  access: "view",
98306
99395
  role: "admin"
98307
99396
  },
99397
+ "storageAdmin.scanStaleData": {
99398
+ capName: "storage-admin",
99399
+ capScope: "system",
99400
+ addonId: null,
99401
+ access: "create",
99402
+ role: "admin"
99403
+ },
99404
+ "storageAdmin.staleDataReport": {
99405
+ capName: "storage-admin",
99406
+ capScope: "system",
99407
+ addonId: null,
99408
+ access: "view",
99409
+ role: "admin"
99410
+ },
99411
+ "storageAdmin.unsetStaleSettingsKey": {
99412
+ capName: "storage-admin",
99413
+ capScope: "system",
99414
+ addonId: null,
99415
+ access: "create",
99416
+ role: "admin"
99417
+ },
98308
99418
  "storageEvictable.evict": {
98309
99419
  capName: "storage-evictable",
98310
99420
  capScope: "system",
@@ -111510,7 +112620,9 @@ function createSystemProxy(api) {
111510
112620
  addonSettings: {
111511
112621
  getGlobalSettings: (input) => dispatch("addonSettings", "getGlobalSettings", "query", input),
111512
112622
  updateGlobalSettings: (input) => dispatch("addonSettings", "updateGlobalSettings", "mutation", input),
111513
- getIntegrationSettings: (input) => dispatch("addonSettings", "getIntegrationSettings", "query", input)
112623
+ getIntegrationSettings: (input) => dispatch("addonSettings", "getIntegrationSettings", "query", input),
112624
+ getDeclaredSettingsKeys: (input) => dispatch("addonSettings", "getDeclaredSettingsKeys", "query", input),
112625
+ unsetStoredSettingsKeys: (input) => dispatch("addonSettings", "unsetStoredSettingsKeys", "mutation", input)
111514
112626
  },
111515
112627
  addonWidgets: { listWidgets: (input) => dispatch("addonWidgets", "listWidgets", "query", input) },
111516
112628
  alerts: {
@@ -111725,6 +112837,8 @@ function createSystemProxy(api) {
111725
112837
  reloadDevice: (input) => dispatch("deviceProvider", "reloadDevice", "mutation", input),
111726
112838
  supportsDiscovery: (input) => dispatch("deviceProvider", "supportsDiscovery", "query", input),
111727
112839
  discoverDevices: (input) => dispatch("deviceProvider", "discoverDevices", "mutation", input),
112840
+ getDiscoveryModes: (input) => dispatch("deviceProvider", "getDiscoveryModes", "query", input),
112841
+ classifyDiscoveryHits: (input) => dispatch("deviceProvider", "classifyDiscoveryHits", "mutation", input),
111728
112842
  getDiscoveryParamsSchema: (input) => dispatch("deviceProvider", "getDiscoveryParamsSchema", "query", input),
111729
112843
  getManualCreationType: (input) => dispatch("deviceProvider", "getManualCreationType", "query", input),
111730
112844
  adoptDiscoveredDevice: (input) => dispatch("deviceProvider", "adoptDiscoveredDevice", "mutation", input),
@@ -111830,6 +112944,9 @@ function createSystemProxy(api) {
111830
112944
  uploadCertificate: (input) => dispatch("localNetwork", "uploadCertificate", "mutation", input),
111831
112945
  downloadCa: (input) => dispatch("localNetwork", "downloadCa", "query", input),
111832
112946
  useStoredUploadedCertificate: (input) => dispatch("localNetwork", "useStoredUploadedCertificate", "mutation", input),
112947
+ scanNetwork: (input) => dispatch("localNetwork", "scanNetwork", "mutation", input),
112948
+ getScanSubnets: (input) => dispatch("localNetwork", "getScanSubnets", "query", input),
112949
+ setScanSubnets: (input) => dispatch("localNetwork", "setScanSubnets", "mutation", input),
111833
112950
  revertToGeneratedCertificate: (input) => dispatch("localNetwork", "revertToGeneratedCertificate", "mutation", input)
111834
112951
  },
111835
112952
  meshNetwork: {
@@ -121366,12 +122483,22 @@ function rewriteBody(body, kind, currentUpstream, route) {
121366
122483
  /**
121367
122484
  * A vendor `Set-Cookie` for the browser: no `Domain` (the cookie belongs to the hub
121368
122485
  * origin), `Path` narrowed to this attempt's prefix, `Secure` kept (the hub is HTTPS).
121369
- */
121370
- function rewriteSetCookie(cookie, route) {
121371
- const kept = cookie.split(";").map((part) => part.trim()).filter((part, index) => {
122486
+ * `browserSafe` (the server keeps its own jar, so this copy only serves the page's script):
122487
+ * also no `Secure` / `SameSite`, which a plain-http hub makes the browser refuse, and no
122488
+ * `__Host-` / `__Secure-` cookie, whose rules a narrowed Path breaks.
122489
+ */
122490
+ function rewriteSetCookie(cookie, route, options = {}) {
122491
+ const parts = cookie.split(";").map((part) => part.trim());
122492
+ const dropped = options.browserSafe === true ? [
122493
+ "domain",
122494
+ "path",
122495
+ "secure",
122496
+ "samesite"
122497
+ ] : ["domain", "path"];
122498
+ const kept = parts.filter((part, index) => {
121372
122499
  if (index === 0) return true;
121373
122500
  const name = part.split("=")[0]?.trim().toLowerCase() ?? "";
121374
- return name !== "domain" && name !== "path";
122501
+ return !dropped.includes(name);
121375
122502
  });
121376
122503
  kept.push(`Path=${route.basePath}/`);
121377
122504
  return kept.join("; ");
@@ -121382,10 +122509,10 @@ function rewriteSetCookie(cookie, route) {
121382
122509
  * one, so a past-dated set that only deleted the other domain's copy would delete the
121383
122510
  * live one the same response just set: that deletion is dropped.
121384
122511
  */
121385
- function rewriteSetCookies(cookies, route) {
122512
+ function rewriteSetCookies(cookies, route, options = {}) {
121386
122513
  const now = Date.now();
121387
122514
  const liveNames = new Set(cookies.filter((c) => !isExpiredCookie(c, now)).map(cookieName));
121388
- return cookies.filter((c) => !(isExpiredCookie(c, now) && liveNames.has(cookieName(c)))).map((c) => rewriteSetCookie(c, route));
122515
+ return cookies.filter((c) => !(isExpiredCookie(c, now) && liveNames.has(cookieName(c)))).filter((c) => options.browserSafe !== true || !/^__(?:host|secure)-/i.test(cookieName(c))).map((c) => rewriteSetCookie(c, route, options));
121389
122516
  }
121390
122517
  function cookieName(cookie) {
121391
122518
  return cookie.split(";")[0]?.split("=")[0]?.trim() ?? "";
@@ -121446,6 +122573,101 @@ function filterForwardedCookies(cookieHeader) {
121446
122573
  return cookieHeader.split(";").map((part) => part.trim()).filter((part) => part.length > 0 && !part.toLowerCase().startsWith("camstack_")).join("; ");
121447
122574
  }
121448
122575
  //#endregion
122576
+ //#region src/vendor-login-proxy/cookie-jar.ts
122577
+ /**
122578
+ * Server-side cookie jar of ONE vendor sign-in attempt (D955).
122579
+ *
122580
+ * A vendor login (an identity provider's cookie/JS check page) refuses a flow that arrives
122581
+ * without the cookies it set a step earlier. Relying on the browser to store them under the
122582
+ * hub origin loses them whenever the browser refuses the rewritten cookie (a `Secure` cookie
122583
+ * on a plain-http hub, a `__Host-` name with a narrowed Path, a `SameSite=None` without
122584
+ * `Secure`). The proxy therefore keeps every vendor cookie itself and sends them upstream,
122585
+ * whatever the browser did. Values never leave this object except as the upstream `Cookie`
122586
+ * header; nothing here logs.
122587
+ */
122588
+ function attributeValue(attrs, name) {
122589
+ const found = attrs.find((a) => a.split("=")[0]?.trim().toLowerCase() === name);
122590
+ if (found === void 0) return void 0;
122591
+ const eq = found.indexOf("=");
122592
+ return eq === -1 ? "" : found.slice(eq + 1).trim();
122593
+ }
122594
+ function hasFlag(attrs, name) {
122595
+ return attrs.some((a) => a.toLowerCase() === name);
122596
+ }
122597
+ function expiryOf(attrs, nowMs) {
122598
+ const maxAge = attributeValue(attrs, "max-age");
122599
+ if (maxAge !== void 0 && maxAge.length > 0 && Number.isFinite(Number(maxAge))) return nowMs + Number(maxAge) * 1e3;
122600
+ const expires = attributeValue(attrs, "expires");
122601
+ if (expires === void 0) return null;
122602
+ const at = Date.parse(expires);
122603
+ return Number.isFinite(at) ? at : null;
122604
+ }
122605
+ function defaultPath(requestPath) {
122606
+ const last = requestPath.lastIndexOf("/");
122607
+ return last <= 0 ? "/" : requestPath.slice(0, last);
122608
+ }
122609
+ function pathMatches(cookiePath, requestPath) {
122610
+ if (requestPath === cookiePath) return true;
122611
+ if (!requestPath.startsWith(cookiePath)) return false;
122612
+ return cookiePath.endsWith("/") || requestPath.charAt(cookiePath.length) === "/";
122613
+ }
122614
+ function hostMatches(cookie, host) {
122615
+ if (cookie.domain === null) return cookie.originHost === host;
122616
+ const bare = hostWithoutPort(host);
122617
+ return bare === cookie.domain || bare.endsWith(`.${cookie.domain}`);
122618
+ }
122619
+ var VendorCookieJar = class {
122620
+ #cookies = /* @__PURE__ */ new Map();
122621
+ /** Store (or delete, when expired) the cookies of one upstream response. */
122622
+ store(setCookies, origin, nowMs) {
122623
+ for (const raw of setCookies) {
122624
+ const [first, ...rest] = raw.split(";").map((part) => part.trim());
122625
+ const eq = first?.indexOf("=") ?? -1;
122626
+ if (first === void 0 || eq <= 0) continue;
122627
+ const name = first.slice(0, eq);
122628
+ const attrs = rest;
122629
+ const domainAttr = attributeValue(attrs, "domain");
122630
+ const domain = domainAttr === void 0 || domainAttr.length === 0 ? null : domainAttr.replace(/^\./, "").toLowerCase();
122631
+ const pathAttr = attributeValue(attrs, "path");
122632
+ const path = pathAttr !== void 0 && pathAttr.startsWith("/") ? pathAttr : defaultPath(origin.pathname);
122633
+ const originBare = hostWithoutPort(origin.host);
122634
+ if (domain !== null && originBare !== domain && !originBare.endsWith(`.${domain}`)) continue;
122635
+ const expiresAtMs = expiryOf(attrs, nowMs);
122636
+ const key = `${name}|${domain ?? origin.host}|${path}`;
122637
+ if (expiresAtMs !== null && expiresAtMs <= nowMs) {
122638
+ this.#cookies.delete(key);
122639
+ continue;
122640
+ }
122641
+ this.#cookies.set(key, {
122642
+ name,
122643
+ value: first.slice(eq + 1),
122644
+ originHost: origin.host,
122645
+ domain,
122646
+ path,
122647
+ secure: hasFlag(attrs, "secure"),
122648
+ expiresAtMs
122649
+ });
122650
+ }
122651
+ }
122652
+ /** The `Cookie` header value for a request to `host` + `pathname`, or null when none applies. */
122653
+ headerFor(target, nowMs) {
122654
+ const secureOk = target.scheme === "https" || isLoopbackHost(target.host);
122655
+ const matching = [...this.#cookies.values()].filter((c) => (c.expiresAtMs === null || c.expiresAtMs > nowMs) && (!c.secure || secureOk) && hostMatches(c, target.host) && pathMatches(c.path, target.pathname)).sort((a, b) => b.path.length - a.path.length);
122656
+ if (matching.length === 0) return null;
122657
+ return matching.map((c) => `${c.name}=${c.value}`).join("; ");
122658
+ }
122659
+ };
122660
+ /** Cookie names carried by a `Cookie` header value. */
122661
+ function cookieHeaderNames(header) {
122662
+ return new Set(header.split(";").map((part) => part.split("=")[0]?.trim() ?? "").filter((name) => name.length > 0));
122663
+ }
122664
+ /** `browser` cookies not shadowed by the jar's, then the jar's: the jar is the truth. */
122665
+ function mergeCookieHeaders(browser, jar) {
122666
+ if (jar === null) return browser;
122667
+ const shadowed = cookieHeaderNames(jar);
122668
+ return [...browser.split(";").map((part) => part.trim()).filter((part) => part.length > 0 && !shadowed.has(part.split("=")[0]?.trim() ?? "")), jar].join("; ");
122669
+ }
122670
+ //#endregion
121449
122671
  //#region src/vendor-login-proxy/flow-trace.ts
121450
122672
  /** A short stable label for the attempt: enough to group lines, useless as a capability. */
121451
122673
  function attemptLabel(attemptId) {
@@ -121644,6 +122866,7 @@ var VendorLoginProxy = class {
121644
122866
  this.#attempts.set(spec.attemptId, {
121645
122867
  expiresAtMs: spec.expiresAtMs,
121646
122868
  upstreams: spec.upstreams,
122869
+ jar: spec.serverCookieJar === true ? new VendorCookieJar() : null,
121647
122870
  evaluate: async (view) => {
121648
122871
  const verdict = await spec.terminal(view);
121649
122872
  if (verdict.kind === "continue") return verdict;
@@ -121740,7 +122963,7 @@ var VendorLoginProxy = class {
121740
122963
  body = Buffer.from(rewriteFormBody(formBodyRaw, route), "utf8");
121741
122964
  } else body = read;
121742
122965
  }
121743
- const headers = this.#requestHeaders(req, route, upstream);
122966
+ const headers = this.#requestHeaders(req, route, upstream, attempt.jar, target);
121744
122967
  const upstreamRes = await this.#fetch(target, {
121745
122968
  method,
121746
122969
  headers,
@@ -121749,6 +122972,10 @@ var VendorLoginProxy = class {
121749
122972
  });
121750
122973
  const location = upstreamRes.headers.get("location");
121751
122974
  const setCookies = upstreamRes.headers.getSetCookie();
122975
+ attempt.jar?.store(setCookies, {
122976
+ host: upstream.host,
122977
+ pathname: target.pathname
122978
+ }, this.#now());
121752
122979
  const kind = bodyKindOf(upstreamRes.headers.get("content-type") ?? "");
121753
122980
  const declaredLength = Number(upstreamRes.headers.get("content-length") ?? "0");
121754
122981
  const text = kind !== null && !(declaredLength > MAX_TEXT_BODY_BYTES) && method !== "HEAD" ? await upstreamRes.text() : null;
@@ -121796,7 +123023,7 @@ var VendorLoginProxy = class {
121796
123023
  upstreamRes.headers.forEach((value, name) => {
121797
123024
  if (!DROP_RESPONSE_HEADERS.has(name.toLowerCase())) out[name] = value;
121798
123025
  });
121799
- if (setCookies.length > 0) out["set-cookie"] = rewriteSetCookies(setCookies, route);
123026
+ if (setCookies.length > 0) out["set-cookie"] = rewriteSetCookies(setCookies, route, { browserSafe: attempt.jar !== null });
121800
123027
  if (location !== null) out["location"] = rewriteLocation(location, upstream, route);
121801
123028
  out["cache-control"] = "no-store";
121802
123029
  if (text !== null && kind !== null) {
@@ -121818,15 +123045,19 @@ var VendorLoginProxy = class {
121818
123045
  ...flowTraceMeta(input)
121819
123046
  } });
121820
123047
  }
121821
- #requestHeaders(req, route, upstream) {
123048
+ #requestHeaders(req, route, upstream, jar, target) {
121822
123049
  const headers = {};
121823
123050
  for (const [name, value] of Object.entries(req.headers)) {
121824
123051
  const lower = name.toLowerCase();
121825
123052
  if (DROP_REQUEST_HEADERS.has(lower) || value === void 0) continue;
121826
123053
  headers[lower] = Array.isArray(value) ? value.join(", ") : value;
121827
123054
  }
121828
- const cookie = filterForwardedCookies(firstHeader(req.headers["cookie"]) ?? "");
121829
- if (cookie.length > 0) headers["cookie"] = cookie;
123055
+ const merged = mergeCookieHeaders(filterForwardedCookies(firstHeader(req.headers["cookie"]) ?? ""), jar?.headerFor({
123056
+ host: upstream.host,
123057
+ pathname: target.pathname,
123058
+ scheme: upstream.scheme
123059
+ }, this.#now()) ?? null);
123060
+ if (merged.length > 0) headers["cookie"] = merged;
121830
123061
  if (req.headers["origin"] !== void 0) headers["origin"] = `${upstream.scheme}://${upstream.host}`;
121831
123062
  const referer = firstHeader(req.headers["referer"]);
121832
123063
  if (referer !== void 0) {
@@ -123013,4 +124244,4 @@ function parseSmartIr(document) {
123013
124244
  };
123014
124245
  }
123015
124246
  //#endregion
123016
- export { ACCESSORY_LABEL, ACCESS_ROLES, ACTIVE_CRITERIA, ACTUATOR_METHODS, ACTUATOR_TEMPLATE_IDS, ADMIN_SCOPE, AGENT_MDNS_QUERY_NAME, AGENT_MDNS_SERVICE_TYPE, AGENT_MDNS_TXT_KEYS, AGGREGATE_REDUCERS, AGGREGATE_THROUGHPUT_BY_KIND, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, ALL_METHOD_ACCESS, APPEARANCE_BIN_COUNT, APPEARANCE_BLOCKS, APPEARANCE_DESCRIPTOR_VERSION, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT, APPLE_SA_TO_MACRO, APPLIANCE_DEFAULTS, APPLIANCE_EXPORT, APPLIANCE_KINDS, APPLIANCE_TEMPLATE_ID, APP_AUTH_CALLBACK_MAX_LENGTH, APP_AUTH_CALLBACK_URLS, APP_FLOW_DEFAULT_REDIRECT, APP_FLOW_REFUSAL_MESSAGES, APP_FLOW_STATE_PREFIX, APP_REFUSED_PATH, APP_START_REFUSAL_MESSAGES, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, ARITHMETIC_OPS, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_CHUNK_FORMATS, AUDIO_GRADIENT_ALPHAS, AUDIO_MACRO_LABELS, AUDIO_NOT_CLASSIFIED_REASONS, AUDIO_PRESETS, AUDIO_SCALE_EPOCH_ISO, AUDIO_SCALE_EPOCH_MS, AUTOMATIC_HUB_ADDRESS_FLAGS, AUTO_SHARE_HEADROOM, AUTO_TUNE_FAMILY, AcceleratorComputeSchema, AcceleratorKindSchema, AccessoriesStatusSchema, AccessoryKind, ActionEntrySchema, ActionError, ActionErrorCodeSchema, ActionInputSchema, ActionLinksSchema, ActionRunChangedSchema, ActionRunOriginSchema, ActionRunOutcomeSchema, ActionRunResultSchema, ActionSourceKindSchema, ActionStatusSchema, ActionStepSchema, ActionVariableSchema, ActionVariableTypeSchema, ActionVariableValueSchema, ActiveCriterionSchema, AddBrokerInputSchema, AddRetrainFrameFromRecordingResultSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AddonRoutesScopeSchema, AdminLinkTargetEnum, 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, AggregateReducerSchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertEpisodePayloadSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, AnalyticsLtsSeriesSchema, AppFlowPurposeSchema, AppLoginPathSchema, AppPageLangSchema, AppleFmAvailabilitySchema, AppleFmUnavailableReasonSchema, ApplianceHelperSpecSchema, ArchiveEntrySchema, ArchiveManifestSchema, ArchiveSqliteSnapshotSchema, ArchivedDebugNoteQueryInputSchema, ArchivedDebugNoteSchema, ArithmeticHelperSpecSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioAttachDeviceInputSchema, AudioAttachDeviceResultSchema, AudioChunkFormatSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioClassifyOutcomeSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioDetachDeviceResultSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AudioStreamPickSchema, AuthResultSchema, AutoTuneApplyInputSchema, AutoTuneApplyResultSchema, AutoTuneOptionsSchema, AutoTunePhaseResultSchema, AutoTunePlanSchema, AutoTuneWarningSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationCapStepSchema, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationConditionTraceNodeSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationRunModeSchema, AutomationRunOutcomeSchema, AutomationRunTraceSchema, AutomationRunVerdictSchema, AutomationStateDocSchema, AutomationStepTraceSchema, AutomationTriggerSchema, AutomationTriggerTraceSchema, AutomationWaitStepSchema, AvailableIntegrationTypeSchema, BASE_DEVICE_CAPS, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BATTERY_UNREACHABLE_AFTER_MS, BENCH_ROOT_STEP_ID, BINARY_AGGREGATES, BIRTH_DECISION_DEFAULT_LIMIT, BOOT_RECOVERY_BACKOFF_MS, BUILTIN_REMOTE_COMPONENTS, BUILTIN_RESULT_KINDS, BackgroundRunRegistry, BacklightModeSchema, BackupArchiveEncryptionSchema, BackupDestinationInfoSchema, BackupEncryptionStatusSchema, BackupEntrySchema, BackupRunPhaseSchema, BackupRunSchema, BackupRunStateSchema, BackupTriggerResultSchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatchTooLargeError, BatteryStatusSchema, BinaryStatusSchema, BirthDecisionCropSourceSchema, BirthDecisionQueryInputSchema, BirthDecisionRecordSchema, BirthDecisionVerdictSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerInfoSchema as UnifiedBrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, BucketAccumulator, BulkRecordSchema, CALENDAR_PERIODS, CALLER_STAMPED_CAPABILITIES, CAMERA_SENSORS_NOT_LOADED, CAMERA_SENSORS_SETTINGS_KEY, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAMERA_TRIGGER, CAMSTACK_APP_LINK_ORIGIN, CAMSTACK_EVENT_PREFIX, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_CUSTOMIZE_CATALOG, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, CAP_RUNTIME_FIELD_UNITS, CAP_VOCABULARY, CAP_VOCABULARY_BY_NAME, CATALOG_LANGS, CLASS_MAP_MACRO_TARGETS, CLIP_BROKER_PACED_RATES, CLIP_LABEL_EVENT_FETCH_LIMIT, CLIP_PLAYBACK_OPTIONS, CLIP_REALTIME_SOURCE_RATES, CLIP_REASON_HEADER_MAX, CLIP_SEARCH_STRICTNESS, CLIP_STILL_DISPOSITION_HEADER, CLIP_STILL_REASON_CODE_HEADER, CLIP_STILL_REASON_HEADER, CLIP_STREAM_SOURCE_RATES, CLIP_STREAM_TRANSPORT_HEADER, CLIP_STRICTNESS_FACTOR, CLIP_VECTOR_INDEX_PATTERN, CLUSTER_MODEL_CHOICE_UNREADABLE_REASONS, CLUSTER_MODEL_SCOPED_STEPS, CLUSTER_MODEL_SECTION_ID, CLUSTER_STEP_SETTING_FIELDS, COCO_80_LABELS, COCO_TO_MACRO, COMPOSED_DEVICE_STABLE_ID_PREFIX, COMPOSED_ITEM_FIXED_FIELDS, COMPOSER_ADDON_ID, COMPOSER_RUNNER_ID, COMPOSITION_EVENT_CATEGORY, COMPOSITION_ITEM_ARRAY_PATH, COMPOSITION_ITEM_KEY_RE, CONNECTION_TEST_TIMEOUT_MS, CONTAINER_CHILD_PRIORITY, CORAL_DEFAULT_MODEL_ID, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CORE_ULTRA_265K_IGPU_CLOCK_MHZ, CORE_ULTRA_265K_IGPU_EU, CREDENTIAL_TOKEN_AUDIENCE, CREDENTIAL_TOKEN_KIND, CROP_CLASS_FLOORS, CROP_SUPPLY_SOURCES, CROP_SUPPLY_STEP_IDS, CUSTOMIZATION_BLOCK_NAME_PREFIX, CalendarColorSchema, CalendarEntrySchema, CalendarEventSchema, CalendarInfoSchema, CalendarListEventsInputSchema, CalendarPreferenceEntrySchema, CalendarPreferencesSchema, CalendarSetPreferenceInputSchema, CalendarSourceKindSchema, CalendarWindowSchema, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionSourceSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraOccupancySnapshotForDeviceSchema, CameraOwnMotionSchema, CameraRawLevelSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSensorAttachmentSchema, CameraSensorEntrySchema, CameraSensorModeSchema, CameraSensorRefSchema, CameraSensorsConfigSchema, CameraSensorsNotEnforcedSchema, CameraSensorsNotForwardedSchema, CameraSensorsStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CameraSwitchWarningSchema, CamstackError, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CapacityFallbackSchema, CapacitySourceSchema, CarbonMonoxideStatusSchema, CatalogFileSchema, CatalogLangSchema, ChargingStatus, ClaimOutcomeSchema, ClaimsListingSchema, CleanupDeletedDevicesResultSchema, ClearTrackRelationInputSchema, ClearTrackRelationResultSchema, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipBytesOfferSchema, ClipBytesSchema, ClipExportFailureSchema, ClipModelMetaSchema, ClipPlaybackOptionsSchema, ClipPlaybackSchema, ClipSchema, ClipSearchStrictnessSchema, ClipSourceAvailabilitySchema, ClipSourceSchema, ClipStillDispositionSchema, ClipStillRefusalCodeSchema, ClipStreamAudioReasonSchema, ClipStreamAudioSchema, ClipStreamDialSchema, ClipWakeSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, ClusterModelChoiceSchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, CompleteEnrollmentInputSchema, CompleteEnrollmentOutputSchema, CompleteEnrollmentResultSchema, ComposableCapabilitiesSchema, ComposableCapabilitySchema, ComposableFieldSchema, ComposerApplyInputSchema, ComposerApplyResultSchema, ComposerBlockSchema, ComposerBlockVerdictSchema, ComposerUnreadableBlockSchema, CompositionAggregateSourceSchema, CompositionBindingSchema, CompositionBlockInputSchema, CompositionBlockStateSchema, CompositionCodeSourceSchema, CompositionCommandTargetSchema, CompositionCustomizationReadSchema, CompositionEventPlanSchema, CompositionExistingTargetSchema, CompositionExpressionSourceSchema, CompositionFeatureModeSchema, CompositionFeaturePlanSchema, CompositionFeatureSchema, CompositionFieldItemSchema, CompositionFieldKindSchema, CompositionFieldPlanSchema, CompositionFieldReadSchema, CompositionFieldRoleSchema, CompositionFieldSourceSchema, CompositionFieldStateKindSchema, CompositionFieldStateSchema, CompositionFieldsFeatureSchema, CompositionForwardArgSchema, CompositionForwardCommandSchema, CompositionFromSourceSchema, CompositionGetReadSchema, CompositionGraphError, CompositionItemEntrySchema, CompositionListReadSchema, CompositionLiteralBindingSchema, CompositionNewTargetSchema, CompositionPassthroughFeatureSchema, CompositionProblemCodeSchema, CompositionProblemSchema, CompositionRunStatusSchema, CompositionSchema, CompositionSeriesSourceSchema, CompositionSourceRefSchema, CompositionStateReadSchema, CompositionTargetSchema, CompositionUnavailableModeSchema, CompositionValidationSchema, CompositionViewSchema, ConditionMirror, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableFormSchema, ConsumableItemSchema, ConsumableKindSchema, ConsumableLevelSchema, ConsumableRemainingKindSchema, ConsumableRemainingSchema, ConsumableStatusSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileInputSchema, CoreBlockCompileResultSchema, CoreBlockFilesSchema, CoreBlockInputFieldsSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockSourceSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateIntegrationInputSchema, CreateUserInputSchema, CredentialScopeSchema, CredentialTokenClaimsSchema, CustomActionInputSchema, CustomModelDescriptorSchema, CustomizeAssignmentStatusSchema, DATABASE_SNAPSHOT_PARTIAL_SUFFIX, DATABASE_SNAPSHOT_SUFFIX, DATABASE_SNAPSHOT_TIMEOUT_MS, DATAPLANE_SECRET_HEADER, DATA_STORE_DATABASES, DAYS_PER_WEEK, DAY_MS, DAY_NAMES, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_CAMERA_FPS, DEFAULT_CAMERA_SENSOR_MODE, DEFAULT_CATALOG_LANG, DEFAULT_CLUSTER_STEP_MODELS, DEFAULT_CLUSTER_STEP_SETTINGS, DEFAULT_CORE_BLOCK_ENTRY, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_DISPLAY_PREFERENCE, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, DEFAULT_HEADROOM, DEFAULT_HISTORY_RETENTION, DEFAULT_MIN_LANDMARK_FACE_SIZE_PX, DEFAULT_MIN_SESSIONS_PER_DEVICE, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_OVERLAY_LAYERS, DEFAULT_POOL_MEMORY_POLICY, DEFAULT_RECORDING_PROFILES, DEFAULT_RETENTION, DEFAULT_RUNTIME_STATE_DURABILITY, DEFAULT_SESSION_LOST_DEBOUNCE_MS, DEFAULT_SESSION_PLACEMENT_POLICY, DEFAULT_SHARE_SOURCE, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFAULT_TOKEN_EXPIRY, DEFAULT_TRACE_KEEP, DEFAULT_VIEWER_SCOPE, DEFINITIVE_DEVICE_REFUSALS, DERIVATIVE_UNITS, DERIVED_CAMERA_SILENCED_CAP_NAMES, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_MACRO_CLASSES, DETECTION_PIPELINE_CAP_NAME, DETECTOR_ACCURACY, DETECTOR_PERF, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_CERT_RENEW_WINDOW_DAYS, DEVICE_CERT_SIGNATURE, DEVICE_CERT_VALIDITY_DAYS, DEVICE_CHILDREN_BATCH_MAX, DEVICE_DEFINITIVE_REFUSALS_BEFORE_DELETE, DEVICE_DO_ACTIONS, DEVICE_ENROLLMENT_TTL_MS, DEVICE_HISTORY_ENERGY_KEY, DEVICE_HISTORY_ORPHAN_DELETE_MAX, DEVICE_HISTORY_ORPHAN_LIST_MAX, DEVICE_HISTORY_QUERY_MANY_MAX_ITEMS, DEVICE_ID_FIELD, DEVICE_NONCE_TTL_MS, DEVICE_PROFILES, DEVICE_RAMP, DEVICE_REFRESH_REFUSAL_PREFIX, DEVICE_RESTORE_RETRY_CONCURRENCY, DEVICE_RESTORE_RETRY_DELAYS_MS, DEVICE_SAN_CREDENTIAL_PREFIX, DEVICE_SAN_USER_PREFIX, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_SIGNATURE_MESSAGE_VERSION, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TOMBSTONE_RETENTION_MS, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_DO_CAPS, DEVICE_TYPE_INFO, DISPLAY_PREFERENCES, DISPLAY_PRESETS, DOORBELL_RISE_DEBOUNCE_MS, DataStoreDatabaseSchema, EngineInfoSchema as DataStoreEngineInfoSchema, DatabaseSnapshotRequestSchema, DatabaseSnapshotResultSchema, DatabaseSnapshotTableSchema, DatabaseSnapshotTargetsSchema, DatabaseSnapshotWrittenSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclarationRefusedError, DeclareCollectionInputSchema, DeclareKindResultSchema, DeclaredDevices, DecodedAudioChunkSchema, DeleteIntegrationResultSchema, DeliveryParamSchema, DeliveryParamValueSchema, DerivativeHelperSpecSchema, DesktopAppStatusSchema, DetailCropConventionSchema, DetectionCatalogClassMapSchema, DetectionSourceSchema, DetectionSourcesSchema, DetectionTriggerFilter, DeviceAdminLinkSchema, DeviceCaStatusSchema, DeviceCertificateLoginMethodSchema, DeviceCertificateSettingsSchema, DeviceChallengeResultSchema, DeviceChallengeSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceCredentialSchema, DeviceCredentialStatusSchema, DeviceDataEntrySchema, DeviceDiscoveryStatusSchema, DeviceEnrollProofSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceHistoryKindSchema, DeviceHistoryOrphanDeleteRefusalSchema, DeviceHistoryOrphanReasonSchema, DeviceHistoryProducerKindSchema, DeviceHistoryRefusalReasonSchema, DeviceHistoryResolutionSchema, DeviceHistoryStatusSchema, DeviceHistorySubjectSchema, DeviceInfoSchema, DeviceModelChoiceSchema, DeviceNetworkStatsSchema, DevicePlatformSchema, DeviceProofInputSchema, DeviceRecommendationSchema, DeviceRefusalReasonSchema, DeviceRefusalSchema, DeviceRemovedInputSchema, DeviceRemovedResultSchema, DeviceRestoreRetryScheduler, DeviceRole, DeviceRuntimeState, DeviceSelectorSchema, DeviceSignaturePurposeSchema, DeviceStatusSchema, DeviceTombstoneSchema, DeviceType, DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DishwasherAccessSchema, DishwasherAvailabilitySchema, DishwasherOperationStateSchema, DishwasherOptionDescriptorSchema, DishwasherOptionsSchema, DishwasherProgramSchema, DishwasherStateSchema, DishwasherStatusSchema, DishwasherValueSchema, DiskReconcileJobSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EMBEDDING_MODEL_FAILED, EMBEDDING_REQUIREMENTS_FAILED, EMBEDDING_REQUIREMENTS_UNAVAILABLE, EMPTY_AUTOMATION_STATE, EMPTY_REMOTE_ASSUMED_STATE, EMPTY_REMOTE_CONFIG, ESTIMATE_COMPUTE_RATIO_MAX, ESTIMATE_COMPUTE_RATIO_MIN, EVENTFUL_CAP_NAMES, EVENT_DENSITY_BATCH_MAX, EVENT_KIND_BY_CAP, EVENT_KIND_LABELS, EVENT_KIND_LABEL_KEYS, EVENT_OWNER_TYPES, EVENT_PAD_MS, EVENT_TAXONOMY, EXPORT_DENSE_MAX_RANGES, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EXPRESSION_OUTPUTS, EXTENSION_HOST_DEVICE_TYPES, EXTENSION_SLOTS, EXTENSION_SLOT_IDS, EXTENSION_SLOT_LISTING_METHOD, EXTENSION_SLOT_REF_SEPARATOR, EffectiveDeviceShareSchema, EffectiveNodeShareSchema, EffectiveSharesSchema, EffectiveTuningSchema, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingFailedModelSchema, EmbeddingFailedRequirementSchema, EmbeddingInfoSchema, EmbeddingRefusalCodeSchema, EmbeddingResultSchema, EmbeddingTowerSchema, EncodeProfileSchema, EnrichedWidgetMetadataSchema, EnrollSelfInputSchema, EntryDescriptorSchema, EntryKindInfoSchema, EntryViewSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, ErrorCodeSchema, ErrorI18nPayloadSchema, EventCategory, EventDensityBucketSchema, EventDensityForDeviceSchema, EventEmitterStatusSchema, EventFireSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventOwnerTypeSchema, EventSourceType, ExportBytesSchema, ExportClipSubjectSchema, ExportDenseRangeSchema, ExportDenseSchema, ExportDownloadSchema, ExportEntityKindSchema, ExportEntityRefSchema, ExportFootageSubjectSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportSubjectSchema, ExportTimelapseSchema, ExposeEntityInputSchema, ExposedDeviceSchema, ExposedEntitySchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionHelperSpecSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, ExtensionCandidateSchema, ExtensionCandidatesSchema, ExtensionSetResultSchema, ExtensionSetSlotInputSchema, ExtensionSlotActivationSchema, ExtensionSlotIdSchema, ExtensionSlotRefInputSchema, ExtensionSlotRowSchema, ExtensionSlotSourceSchema, ExtensionSlotStateSchema, ExtensionSlotUnreachableSchema, ExtensionSlotValueSchema, ExtensionSourceAvailabilitySchema, ExtensionSourceHealthSchema, ExtensionSourceSchema, ExternalIdentityKeySchema, ExternalIdentitySchema, FACE_RESCORE_INTERVAL_FIELD, FACE_RESCORE_INTERVAL_KEY, FACE_RESCORE_INTERVAL_MIN_RUNNING, FACE_RESCORE_SECTION_ID, FAN_OUT_CONCURRENCY, FEEDER_EXAMPLE_ADDON_ID, FEEDER_EXAMPLE_HA_DEVICE_ID, FFMPEG_PATH_ENV, FIRST_LEVEL_MACRO_CLASSES, FORWARD_INPUT_KEY, FULL_IMAGE_BBOX, FailureContributionSchema, FailureCounters, FailureReasonCountSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FieldClaimModeSchema, FieldClaimSchema, FilterRequiredError, FloodStatusSchema, Fmp4BoxSplitter, ForeignSecretMarkerError, FrameHandleSchema, FrameInputSchema, FrameLazyCountersSchema, FrameLazyMetricsSchema, G711_SCALE_CORRECTION_DB, GROUP_TEMPLATES, GROUP_TEMPLATE_IDS, GasStatusSchema, GetLoggingSettingsInputSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, GridLayoutPatchSchema, GridLayoutViewSchema, GroupActiveSchema, GroupCommandResultSchema, GroupCommandsSchema, GroupHelperSpecSchema, GroupStatusSchema, GroupTemplateIdSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HISTORY_BUCKET_MS, HISTORY_CATALOG, HISTORY_DEFAULT_MIN_INTERVAL_MS, HISTORY_FAST_MS, HISTORY_ITEM_CATALOG, HISTORY_NONE_CAPS, HISTORY_SLOW_MS, HISTORY_TIERS, HISTORY_UNIT_LABELS, HOURS_PER_DAY, HOUR_MS, HUB_ADDRESS_ROLES, HUB_MDNS_QUERY_NAME, HUB_MDNS_ROLE, HUB_MDNS_SERVICE_TYPE, HUB_MDNS_TXT_KEYS, HUB_VIEWER_MOUNT, HWACCEL_OPTIONS, HardwareClassIdSchema, HealthStatusSchema, HeatingValveStatusSchema, HelperMemberSchema, HelperSpecSchema, HfModelResolutionSchema, HistoryPointSchema, HistoryResolutionEnum, HttpsLeafInfoSchema, HubAddressRoleSchema, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ICON_CATALOG_SOURCE, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, IDLE_ACTION_STATUS, INFERENCE_DEVICE_EXCLUSION_REASONS, INITIAL_PULSE, INITIAL_SPAN, INTEGRAL_OUTPUTS, INTERNAL_ACTION_PREFIX, INVERTIBLE_CAPS, IR_TIMINGS_MAX, IconKeySchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, ImportModelBundleInputSchema, ImportModelBundleResultSchema, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, InstallDesktopUpdateReasonSchema, InstallDesktopUpdateResultSchema, InstalledPackageSchema, IntegralHelperSpecSchema, IntegrationLiteSchema, IntegrationSessionReporter, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, InvalidRecordError, IrCodecError, IrMediumSchema, IrPayloadSchema, IrSendResultSchema, IrTimingsSchema, IrTransmitterInfoSchema, KEYCHAIN_MAX_REFS_PER_CALL, KEYCHAIN_RESET_CONFIRMATION, KEYCHAIN_RESET_TRIGGER_ACTOR, KNOWN_CAP_NAMES, KWH_PER_WATT_MS, KeptReasonSchema, KeyEventSchema, KeychainAdminSecretSchema, KeychainAuditActionSchema, KeychainAuditEntrySchema, KeychainKeySourceKindSchema, KeychainKeySourceSchema, KeychainResetRecordSchema, KeychainResolveEntrySchema, KeychainResolveResultSchema, KeychainSecretMetaSchema, KeychainSecretUsageSchema, KeychainStateSchema, KeychainStatusSchema, KeychainUnavailableReasonSchema, KeychainWriteRefusedError, LABEL_SUPPLY_MACRO, LABEL_SUPPLY_STEP_IDS, LABEL_SUPPLY_VOCABULARIES, LAYOUT_EDIT_REFUSALS, LEGACY_READ_ONLY_CONFIG_KEY, LIGHT_SHARED_CAPS, LINKED_DEVICES_SLOT, LINKED_LABEL_STEP_PREFIX, LLM_PROFILE_KIND_PATTERN, LOAD_CONTRIBUTION_ATTRIBUTIONS, LOAD_CONTRIBUTION_ROLES, LOCATION_DESCRIPTION_MAX, LOCATION_ICON_FALLBACK, LOG_CHANNEL_TICK_MS, LOG_LEVEL_RANK, LTS_SCOPE_CLASS_SEPARATOR, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LatencySourceSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LedgerWalkDeviceReportSchema, LedgerWalkInputSchema, LedgerWalkRefusalSchema, LedgerWalkReportSchema, LedgerWalkSkipCountsSchema, LedgerWalkSkipReasonSchema, LegacyStorageLocationDefaultSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LinkedDevicesSlotValueSchema, ListNodeBenchmarkResultsInputSchema, ListTrackRelationsInputSchema, ListTrackRelationsResultSchema, LiveViewerCountSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmDownloadProgressSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmListModelsErrorCodeSchema, LlmListModelsInputSchema, LlmListModelsResultSchema, LlmModelFeaturesSchema, LlmModelInfoSchema, LlmNodeModelSchema, LlmProfileFieldSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmProviderConfigSchema, LlmProviderWidgetSchema, LlmRefusalSourceSchema, LlmRetryPolicySchema, LlmRuntimeAppleCompleteInputSchema, LlmRuntimeCancelInputSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmTimeoutDefaults, LlmUsageRollupSchema, LlmUsageSchema, LoadBalancingSharesInputSchema, LoadContributionSchema, LocateSegmentResultSchema, LocationDescriptionAssignmentSchema, LocationIconAssignmentSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogChannelApplyResultSchema, LogChannelDescriptorSchema, LogChannelGate, LogChannelLevelSchema, LogChannelRegistry, LogChannelWindowPatchSchema, LogChannelWindowSchema, LogChannelWindowStateSchema, LogEntrySchema, LogLevelSchema, LogReadCapabilitiesSchema, LogReadEntrySchema, LogReadQuerySchema, LogReadResultSchema, LogStreamEntrySchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LoginMethodContributionSchema, LoginStageEnum, LtsBucketSchema, MACRO_LABELS, MASK_EMITTING_POSTPROCESSORS, MASK_SUPPLY_STEP_IDS, MAX_ARCHIVED_DEBUG_NOTES, MAX_BIRTH_DECISION_RECORDS, MAX_BIRTH_LATENCY_PROXY_MS, MAX_CAMERA_SENSORS, MAX_CLIP_EVENT_IDS, MAX_CLIP_LABELS, MAX_COMPONENT_BUTTONS, MAX_COMPOSITION_CODE_LENGTH, MAX_COMPOSITION_FEATURES, MAX_COMPOSITION_FIELDS_PER_FEATURE, MAX_COMPOSITION_ITEMS, 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, MAX_HELPER_MEMBERS, MAX_KEYS, MAX_LAYOUT_GROUPS, MAX_LAYOUT_SPAN, MAX_REASONS_PER_KEY, MAX_REMOTE_BINDINGS, MAX_REMOTE_CUSTOM_BUTTONS, MAX_REQUEUED_BUCKETS_PER_SERIES, MAX_SENSOR_TRIGGER_DEVICES, MAX_TRACE_KEEP, MAX_TRACK_DEBUG_NOTE_LEN, MAX_TRACK_PURITIES, MAX_TRACK_RELATIONS, MEDIA_OWNER_TYPES, MEDIA_PRESENCE_OWNER_KINDS, METHOD_ACCESS_MAP, METHOD_DEVICE_SELECTORS, MINUTES_PER_DAY, MINUTE_MS, MIN_CUSTOM_MINUTES, MIN_SCRUBBED_LENGTH, MIN_SESSIONS_PER_DEVICE_RANGE, MODEL_FORMATS, MODEL_HOSTING, MODEL_PROVIDER_IDS, MOTION_CLOSE_AFTER_MS, MOTION_CROP_DISPATCH_KEY, MOTION_CROP_MAX_REGIONS, MOTION_CROP_MOTION_PAD, MOTION_CROP_TRACKED_PAD, MOTION_SOURCE_LABELS, MOTION_SPAN_TIMEOUT_MS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelExtraFileSchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileKindEnum, MediaFileRefSchema, MediaFileSchema, MediaPlayerAssumedFieldSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStateSourceSchema, MediaPlayerStatusSchema, MediaPresenceOwnerKindSchema, MediaRelocateModeSchema, MeshLeafInfoSchema, MeshPeerSchema, MeshStatusSchema, MeterStatusSchema, MethodAccessSchema, MigrateDeviceResultSchema, MigrateSwitchOutcomeSchema, MigrateSwitchReportSchema, ModelBundleFileSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatPrecisionSchema, ModelFormatsSchema, ModelLicenseSchema, ModelOnDiskStateSchema, ModelPinChangeSchema, ModelProviderIdSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionTriggeredBySchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, BrokerInfoSchema$1 as MqttBrokerInfoSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, N100_IGPU_CLOCK_MHZ, N100_IGPU_EU, 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_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, NAVIGATION_ACTION_CATALOG, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, NC_ALARM_CONTROLLABLE_CAPS, NC_ALARM_DEFAULT_PROFILE_ID, NC_ALARM_DEFAULT_PROFILE_NAME, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC, NC_ALARM_DELAY_FIELDS, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_NONBLOCKING_MAX, NC_ALARM_NOTIFY_FIELDS, NC_ALARM_OPENING_EVENT_KINDS, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_DEFAULT_DELAYS, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_AUDIO_CONFIRM_HITS_DEFAULT, NC_AUDIO_CONFIRM_HITS_MAX, NC_AUDIO_CONFIRM_HITS_MIN, NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, NC_AUDIO_DBFS_FLOOR, NC_AUDIO_DB_MAX, NC_AUDIO_DB_MIN, NC_AUDIO_DB_OFFERED, NC_AUDIO_DB_STEP, NC_AUDIO_DEFAULTS, NC_AUDIO_HIT_PERCENT_MAX, NC_AUDIO_HIT_PERCENT_MIN, NC_AUDIO_SAMPLING_MAX_SEC, NC_AUDIO_SAMPLING_MIN_SEC, NC_AUDIO_SEED, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BASE_CONDITION_KEYS, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CAMERA_SCOPE_CAP_NAME, NC_CLIP_POST_ROLL_DEFAULT_SEC, NC_CLIP_PRE_ROLL_DEFAULT_SEC, NC_CLIP_RETENTION_MAX_SEC, 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_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_DEFAULT_SNOOZE_MINUTES, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_LEGACY_SYSTEM_EVENT_KINDS, NC_MAX_PER_TRACK_IMMEDIATE, NC_MEDIA_IMAGE_MODES, NC_OCCUPANCY_DEFAULTS, NC_RULE_CLEARABLE_KEYS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_RETIRED_CLEAR_KEYS, NC_RULE_SECTIONS, NC_SENSOR_RAISED_FIELD_BY_KIND, NC_SENSOR_TRANSITION_KINDS, NC_SENSOR_TRANSITION_NEVER_FIRES_WARNING, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, NC_SERVER_PACKAGE_NAME, NC_SNOOZE_MAX_MINUTES, NC_STATE_SUMMARY_SECTION_IDS, NC_SYSTEM_DELIVERY, NC_SYSTEM_EVENT_CLASS_SPECS, NC_SYSTEM_EVENT_CONDITION_FILTER_KEYS, NC_SYSTEM_EVENT_FAMILIES, NC_SYSTEM_EVENT_FAMILY, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_FILTER_KEYS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, NC_SYSTEM_RULE_KINDS, NC_TAXONOMY, NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, NC_UPDATE_EVENT_PACKAGE_NAMES, NETWORK_LINK_TYPES, NETWORK_LINK_UNKNOWN, NODE_BENCHMARK_DEFAULTS, NODE_COLOR_IDS, NO_MEASURED_CAPACITY, NUMERIC_AGGREGATES, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionOptionsSchema, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionSettingsPatchSchema, NativeObjectDetectionStatusSchema, NativeObjectGeometryEnum, NavigationActionEntrySchema, NavigationActionIdSchema, NavigationEntryKindSchema, NavigationFeaturesSchema, NavigationLightModeSchema, NavigationModeSchema, NavigationMoveCommandSchema, NavigationPointSchema, NavigationRuntimeStateSchema, NavigationStatusSchema, NcActionBindingSchema, NcAlarmBlockingEditSchema, NcAlarmBlockingSchema, NcAlarmConfigSchema, NcAlarmCreateProfileInputSchema, NcAlarmModeCoverageSchema, NcAlarmModeDelaysEditSchema, NcAlarmModeDelaysSchema, NcAlarmModeDeviceListSchema, NcAlarmNonBlockingEditSchema, NcAlarmNonBlockingSchema, NcAlarmPostTriggeredActionSchema, NcAlarmProfileIdInputSchema, NcAlarmProfileMetaSchema, NcAlarmProfilesViewSchema, NcAlarmRenameProfileInputSchema, NcAlarmSecureOnArmEditSchema, NcAlarmSecureOnArmOffSchema, NcAlarmSensorReadingSchema, NcAlarmSensorStateSchema, NcAlarmSensorsInputSchema, NcAlarmSensorsSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcAlarmSkipReasonSchema, NcAlarmSkippedDeviceSchema, NcAudioConditionSchema, NcClipRetentionAskSchema, NcClipRetentionPlanSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcConfirmExpectSchema, NcConfirmSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcHookBindingsSchema, NcLegacyRuleActionSequenceSchema, NcLinkedCameraModeSchema, NcMediaFrameSchema, NcMediaImageSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleClearableKeySchema, NcRuleInputSchema, NcRuleKindSchema, NcRuleLastRunSchema, NcRuleLastRunsSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcRuleUpdateInputSchema, NcSceneConditionSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSensorTransitionSchema, NcSharedSequenceInputSchema, NcSharedSequenceSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcStateSummaryPreviewRowSchema, NcStateSummaryPreviewSchema, NcStateSummaryPreviewSectionSchema, NcStateSummarySectionIdSchema, NcStateSummarySplitSchema, NcSystemEventConditionSchema, NcSystemEventDeliveryModeSchema, NcSystemEventDeliverySchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTemplateFamilySchema, NcTemplateFieldSchema, NcTemplatePreviewInputSchema, NcTemplatePreviewSchema, NcTemplateVarContextSchema, NcTemplateVarDescriptorSchema, NcTemplateVarGroupSchema, NcTemplateVarKindSchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NetworkLinkStatusSchema, NetworkTunnelStartedDataSchema, NoCallerError, NodeBenchCellSchema, NodeBenchClipSchema, NodeBenchDeviceCellSchema, NodeBenchFingerprintSchema, NodeBenchLimitSchema, NodeBenchPipelineCellSchema, NodeBenchProgressSchema, NodeBenchRampStepSchema, NodeBenchRunnerInputSchema, NodeBenchRunnerStateSchema, NodeBenchRunnerStatusSchema, NodeBenchmarkCandidatesSchema, NodeBenchmarkDevicePlanSchema, NodeBenchmarkEndReasonSchema, NodeBenchmarkManifestSchema, NodeBenchmarkMovingCameraSchema, NodeBenchmarkPhaseSchema, NodeBenchmarkPlanSchema, NodeBenchmarkPreflightSchema, NodeBenchmarkRefusalKindSchema, NodeBenchmarkRefusalSchema, NodeBenchmarkResultSchema, NodeBenchmarkResultViewSchema, NodeBenchmarkRunSchema, NodeBenchmarkStateSchema, NodeBenchmarkStatusSchema, NodeBenchmarkStayingCameraSchema, NodeColorIdSchema, NodeDeviceChangeSchema, NodeDirectoryEntrySchema, NodeDirectorySchema, NodeHttpsStateSchema, NodeRecommendationSchema, NodeRemovedInputSchema, NodeRemovedResultSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OAUTH_LANDING_PATH, OAUTH_LANDING_REASONS, OBJECT_DETECTION_STEP_ID, OPERATOR_WRITTEN_STALE_MS, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OVERFLOW_REASON, OVERLAY_LAYERS, OWNER_ONLY_EVENT_CATEGORIES, OauthIntegrationDescriptorSchema, ObjectEventSchema, OccupancyBurstRefusalSchema, OccupancyLookAnswerSchema, OccupancyLookRefusalSchema, OccupancyLookRequestSchema, OidcConnectionSchema, OidcConnectionUpdateInputSchema, OnboardFieldSupportSchema, OnboardRecordTrackSchema, OnboardScheduleSupportSchema, OnboardStorageSchema, OnboardStorageVolumeSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OrphanDeviceDataSchema, OsdNamedTemplateSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, OsdTemplateBindingSchema, OsdTemplateFormatSchema, OsdTemplatePickSchema, OsdTemplateTokenKindSchema, OverrideDraftSchema, PALETTE_BACKGROUNDS, PALETTE_ENTRY_IDS, PALETTE_MIN_CONTRAST, PALETTE_MIN_DELTA_E, PALETTE_MIN_DELTA_E_MARK, PALETTE_PRESET_IDS, PEER_BYTES_CHUNK_BYTES, PEER_BYTES_MAX_OUTSTANDING, PEER_BYTES_STALL_MS, PEER_BYTES_TICKET_TTL_MS, PENDING_BLOCK_ID, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PHOENIX_780M_CU, PIPELINE_ANALYTICS_CAP_NAME, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PIPELINE_RAMP, PLUG_APPLIANCE_TYPES, PLUS_CATALOG_CLASS_FLOORS, PLUS_CATALOG_STOCK_CLASS_FLOORS, PLUS_CATALOG_TO_MACRO, PLUS_CATALOG_UNMAPPED_LABELS, PREFERENCES_MAX_DEVICE_ID_LENGTH, PREFERENCES_MAX_NAMESPACES, PREFERENCES_MAX_VALUE_BYTES, PREFERENCES_NAMESPACE_PATTERN, PREFERENCES_SELF_SCOPE, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PROVIDER_PIN_FIELD, PUBLIC_ENDPOINT_HTTP_REASON, PYTHON_SCRIPT, PackageInstallationSchema, PackageInstallationsSchema, PackageLlmVerdictSchema, PackageUpdateSchema, PackageVersionInfoSchema, PaletteRejectedError, ParkRefusalSchema, ParkTrackFrameResultSchema, ParkedFrameKindSchema, ParkedTrackFrameSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PeerBytesTicketSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PetFountainStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineModelFormatStatusSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PlacementDeviceStatsSchema, PlacementNodeStatsSchema, PlacementStatsInputSchema, PlacementStatsSchema, PlaintextSecretError, PolygonPointSchema, PoolMemoryWatchdog, PowerMeterStatusSchema, PrecisionGopsSchema, PreferenceDeviceIdSchema, PreferenceNamespaceSchema, PreferenceRowSchema, PreferenceValueSchema, PreferencesChangedSinceInputSchema, PreferencesChangedSinceOutputSchema, PreferencesDeleteInputSchema, PreferencesDeleteOutputSchema, PreferencesGetInputSchema, PreferencesGetOutputSchema, PreferencesPutInputSchema, PreferencesPutOutputSchema, PreferencesSelfScopeSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProbeTargetConfigResultSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderJobStateSchema, ProviderJobStatusSchema, ProviderMotionDataSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzHomePresetSchema, PtzHomeReturnSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetFunctionSchema, PtzPresetSchema, PtzStatusSchema, QUANTITY_BASE, QuantityUnitError, QuantityValueSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECALL_TIE, RECOGNITION_TYPES, RECORDING_AUDIO_TRIGGER_OFFERED_DBFS, RECORDING_EXPORT_MAX_READ_BYTES, RECORDING_SOURCE_CAMSTACK, RECORDING_SOURCE_CAMSTACK_ADDON, RECORDING_TIMELINE_BATCH_MAX, RECORDS_ERROR_CODES, RECORD_BATCH_MAX, RECORD_BATCH_MAX_BYTES, RECORD_CLASSES, RECORD_DATABASES, RECORD_DEFAULT_MAX_DATA_BYTES, RECORD_DELETE_BATCH, RECORD_ID_MAX_LENGTH, RECORD_MAX_DATA_BYTES, RECORD_MAX_INDEXES, RECORD_MAX_INDEX_FIELDS, RECORD_QUERY_MAX, RECORD_SECRET_COLLECTION_PREFIX, RECORD_SETTINGS_MAX_ROWS, RECORD_SWEEP_INTERVAL_MS, RECOVERY_CROP_MAX_SIDE_PX, RECOVERY_CROP_MIN_SIDE_PX, RECOVERY_CROP_PADDING_RATIO, RECOVERY_EDGE_MARGIN_PX, RECOVERY_FUSE_CONTAINMENT, RECOVERY_FUSE_IOU, RECOVERY_MAX_CROPS_PER_FRAME, RECOVERY_MAX_REGION_FRAME_FRACTION, RECOVERY_MIN_INTERVAL_MS, RECOVERY_MIN_UNCOVERED_FRACTION, RECOVERY_MOTION_MAX_AGE_MS, RECOVERY_VIEW_PX, REDACTED_SECRET, REFERENCE_COMPUTE, REFERENCE_MATCH_FRACTION, REMOTE_BUTTON_SHAPES, REMOTE_BUTTON_TONES, REMOTE_COMPONENT_CATEGORIES, REMOTE_CONFIG_REFUSALS, REMOTE_CUSTOM_ROLE_PREFIX, REMOTE_GROUP_FRAMES, REMOTE_KNOWN_ROLES, REMOTE_MAX_REPEAT, REMOTE_MEDIA_COMMANDS, REMOTE_POWER_MODES, REMOTE_REFUSAL_REASONS, REMOVAL_RECONCILE_INTERVAL_MS, REMOVED_MODEL_IDS, REMOVE_LEAF, RESERVED_BINDING_NAMES, RESERVED_COLLECTION_SOURCES, RESET_PERIODS, RESTORED_CAP_NAMES, RESTREAM_INPUT_PROBE, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, REVALIDATE_AFTER_MS, ROLLING_SPANS, ROOM_EXAMPLE_MOTION_SOURCES, ROOM_EXAMPLE_TEMPERATURE_SOURCES, ROOM_OCCUPANCY_WINDOW_MS, ROOT_BUCKET_KEY, ROOT_CHILD_CONTAINMENT_MIN, ROOT_FACE_REFINE_INPUT_PX, ROOT_FACE_REFINE_SCALE, ROOT_SUPPLIABLE_STEP_IDS, RUNNING_POWER_START_DELAY_MS, RUNNING_POWER_STOP_DELAY_MS, RUNNING_POWER_THRESHOLD_WATTS, RUNNING_STATE_COLD, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, RUNTIME_TO_FORMAT, RawSecretMigrationInputSchema, RawSecretMigrationReportSchema, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadWindowBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, ReadingQuantitySchema, RebuildObjectEmbeddingsRefusalSchema, RecentTracksPageSchema, RecentTracksQueryInput, RecommendationReasonSchema, RecordBodySchema, RecordFieldPathSchema, RecordIdSchema, RecordIndexSchema, RecordInputSchema, RecordKindDeclarationSchema, RecordKindNameSchema, RecordNotFoundError, RecordQueryInputSchema, RecordQueryResultSchema, RecordRetentionSchema, RecordSecretRefsSchema, RecordSecretUnavailableError, RecordTooLargeError, RecordTransactOpSchema, RecordTriggerSchema, RecordUniqueViolationError, RecordViewSchema, RecordWhereSchema, RecordWindowSchema, RecordingAvailabilityForDeviceSchema, RecordingAvailabilitySchema, RecordingBandAudioSchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysForDeviceSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingObjectTriggerClassSchema, RecordingOnboardOptionsSchema, RecordingOnboardPatchSchema, RecordingOnboardStatusSchema, RecordingPlaybackSchema, RecordingRangeSchema, RecordingReadSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingSignalRuntimeStateSchema, RecordingSignalStatusSchema, RecordingSourceAvailabilitySchema, RecordingSourceOptionsSchema, RecordingSourceSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RecordsError, RedirectLoginMethodSchema, RelocatableMediaCountInputSchema, RelocatableMediaCountSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RelocateResidueInputSchema, RelocateResidueSchema, RemoteAssumedStateSchema, RemoteBindingActionSchema, RemoteBindingSchema, RemoteBoundCommandSchema, RemoteButtonShapeSchema, RemoteButtonToneSchema, RemoteCommandListSchema, RemoteComponentButtonSchema, RemoteComponentCategorySchema, RemoteConfigSchema, RemoteCustomButtonSchema, RemoteGroupFrameSchema, RemoteLayoutButtonSchema, RemoteLayoutComponentSchema, RemoteLayoutGroupSchema, RemoteLayoutPayloadSchema, RemoteMediaCommandResultSchema, RemoteMediaCommandSchema, RemotePowerModeSchema, RemoteRefusalReasonSchema, RemoteRoleSchema, RemoteSendResultSchema, RemoteSetConfigResultSchema, RenderedAsSchema, RenewDeviceCertificateOutputSchema, RenewDeviceCertificateResultSchema, ReportMotionInputSchema, ReportedFailureContributionSchema, ReportedLoadContributionSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainArchiveResultSchema, RetrainArchiveTargetSchema, RetrainAssistProfileSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainBoxReviewSchema, RetrainCollectionCreateResultSchema, RetrainCollectionRenameResultSchema, RetrainCollectionSchema, RetrainCopyRefusalSchema, RetrainCorpusFilterSchema, RetrainCorpusKpiCameraRowSchema, RetrainCorpusKpiSchema, RetrainCorpusPageFrameSchema, RetrainCorpusPageSchema, RetrainDatasetSelectionSchema, RetrainDatasetStatsSchema, RetrainDatasetVersionSchema, RetrainDismissedSchema, RetrainExportFilterSchema, RetrainExportLayoutSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameOriginSchema, RetrainFrameReviewSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainFrameWorkStateSchema, RetrainLlmAssistResultSchema, RetrainLlmProposalSchema, RetrainLlmReviewSchema, RetrainMacroClassSchema, RetrainOriginSchema, RetrainPipelineBoxSchema, RetrainReviewStatusSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTrainingCorpusResolveResultSchema, RetrainTrainingCorpusSelectionSchema, RetrainTransitionResultSchema, RevConflictError, RevokeOwnDeviceCertificateResultSchema, RingBuffer, RollingWindowSchema, RootStepSupplySchema, RtpSourceSchema, RtspRestreamEntrySchema, RunGate, RunnerBootCheckSchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerJumpStepProvisioningSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, RunnerRefusalSchema, RunningStateSourceSchema, RunningStateStatusSchema, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, SCOPE_PRESETS, SECRET_CLEAR, SECRET_META, SECRET_REF_SCHEME, SENSOR_FEATURES, SENSOR_MAP, SERIAL_CAPACITY_CAMERA_FPS, SERIES_KINDS, SERVER_NAME_MAX_LENGTH, SERVER_NAME_SETTING_KEY, SESSION_LOST_ALERT_CATEGORY, SESSION_PLACEMENT_SETTING_KEY, SHARE_AFFINITY_TOLERANCE_SESSIONS, SHARE_SOURCE_SETTING_KEY, SHARE_VIEW_KINDS, SHARE_VIEW_MAX_DEVICES, SINGLE_HUB_ADDRESS_ROLES, SOURCE_CAPS, SOURCE_CAP_ACTIVE_FIELD, SOURCE_CAP_CHANGED_AT_FIELD, SOURCE_DEVICE_TYPES, SOURCE_INFO_METADATA_KEY, SSO_STATE_COOKIE, SSO_STATE_COOKIE_MAX_AGE_SEC, STATE_LABELS, STATE_LABEL_KEYS, STATIONARY_OVERLAY_STYLE, STATISTIC_STATS, STORAGE_ACCESS_FALLBACK, STORAGE_BYTES_PER_GB, STORAGE_LOCATION_MODES, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUBJECT_PATH_DWELL_EPS, SUBJECT_PATH_FULL_FRAME_COVERAGE, SUBJECT_PATH_MAX_POINTS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SYSTEM_SCOPE_DEVICE_METHODS, SceneCheckSchema, SceneConditionSchema, SceneConfirmSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusForDeviceSchema, SceneMonitorStatusSchema, SceneReferenceSchema, SceneUnavailableSchema, SceneUncoveredPolicySchema, SceneVerdictSchema, ScopedTokenSchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerNameInfoSchema, ServerNameSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateOutcomeSchema, ServerUpdateStateSchema, SessionHealthTracker, SessionPlacementPolicySchema, SessionTriggerSchema, SetCameraSensorsInputSchema, SetLoggingSettingsInputSchema, SetShareSourceInputSchema, SetSiteLocationInputSchema, SetTrackPurityInputSchema, SetTrackPurityResultSchema, SetTrackRelationInputSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShareSourceSchema, ShareViewGrantSchema, ShareViewScopeSchema, ShareWeightsSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, SiteZoneSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StaleDevicePinSchema, StartEmbeddedInputSchema, StartEnrollmentOutputSchema, StationaryObjectSchema, StatisticHelperSpecSchema, StatisticWindowSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, StorageAccessSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, StorageCleanupInputSchema, StorageCleanupJobSchema, StorageCleanupPhaseSchema, StorageCleanupStatusInputSchema, StorageDrainProgressSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, StorageEvictionPolicySchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageKindSchema, StorageLocationDeclarationSchema, StorageLocationModeSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationDrainInputSchema, StorageMigrationFindingCodeSchema, StorageMigrationFindingSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLaneSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationModeSchema, StorageMigrationMoveProgressSchema, StorageMigrationMoveSchema, StorageMigrationMoverSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, StorageMigrationResidueSchema, StorageMigrationSourcesSchema, StorageOccupancyReportSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, StorageTableSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StoredRecordKindDeclarationSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSignalSchema, StreamSignalsStatusSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SuggestSharesInputSchema, SuggestSharesResultSchema, SuggestedDeviceShareSchema, SuggestedNodeShareSchema, SuppliedRootOutputSchema, SwitchStatusSchema, SystemHeldSecretNameSchema, SystemMetricsSchema, SystemMirror, TEMPLATE_KINDS, TEMPLATE_PAYLOAD_SCHEMAS, TEMPLATE_WRITE_REFUSALS, TIMELAPSE_DENSE_FLOOR_SEC, TIMEZONES, TRACK_RELATIONS_DEFAULT_LIMIT, TRAINING_JOB_SCHEMA, TRAINING_RESULT_SCHEMA, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TemplateDeleteResultSchema, TemplateKindSchema, TemplateRecordSchema, TemplateUserSchema, TemplateWriteResultSchema, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, ThresholdHelperSpecSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TraceNodeOutcomeSchema, TraceValueSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackPlacementSchema, TrackProjectionSchema, TrackPuritySchema, TrackPurityValueSchema, TrackRelationKindSchema, TrackRelationRefusalSchema, TrackRelationSchema, TrackSchema, TrackSideSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainerSourceRefSchema, TrainingAcceleratorRefSchema, TrainingBaseModelSchema, TrainingCanarySchema, TrainingCanaryTargetSchema, TrainingCatalogDraftSchema, TrainingCorpusSelectionSchema, TrainingCredentialCheckSchema, TrainingEvalClassSchema, TrainingEvalReportSchema, TrainingEventSchema, TrainingExportDeviceTotalsSchema, TrainingExportSchema, TrainingExportSummarySchema, TrainingFailureReasonSchema, TrainingGpuOptionSchema, TrainingJobPlanSchema, TrainingJobRequestSchema, TrainingJobSchema, TrainingJobSpecSchema, TrainingJobStateSchema, TrainingLogLineSchema, TrainingPresetSchema, TrainingProgressPointSchema, TrainingProviderDefaultsSchema, TrainingProviderDescriptorSchema, TrainingProviderEntrySchema, TrainingProviderTypeSchema, TrainingProviderUpdateEntryInputSchema, TrainingRefusalReasonSchema, TrainingRegionOptionSchema, TrainingResultFileSchema, TrainingResultSchema, TrainingSplitPlanSchema, TrainingStageSchema, TransactRefusedError, TransmitSettingKeySchema, TransmitSettingsSchema, TransportPlaneCountsSchema, TransportPlaneSchema, TurnServerSchema, UNATTRIBUTED_BUCKET_KEY, UNIT_TABLE, UNLOCK_CONFIRMATION, USE_ROOT_MODEL_DEFAULTS, USE_ROOT_MODEL_SETTING_KEY, UnexposeEntityInputSchema, UnindexedFilterError, UninstallNodeOutcomeSchema, UninstallNodeResultSchema, UninstallPackageResultSchema, UnitConversionError, UnitWarningSchema, UnknownRecordKindError, UnreleasedClaimSchema, UnstampedEventMediaCountSchema, UnstampedRowsSchema, UpdateBlockerSchema, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserScopeSchema, UserSummarySchema, VECTOR_INDEX_DIM_CONFLICT, VENDOR_LOGIN_PROXY_PREFIX, VIDEOCLIPS_MAX_OFFER_BYTES, VIDEOCLIPS_MAX_READ_BYTES, VIEWER_FEATURES, VIEWER_FEATURE_IDS, VISIT_MERGE_GAP_MS, VOCAB_TEMPLATES, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VendorLoginProxy, VibrationStatusSchema, VideoEncodeSchema, ViewerDeviceAllowSchema, ViewerFeatureIdSchema, ViewerTokenScopeSchema, WEBRTC_CLIMB_HOLD_CODES, WEBRTC_EGRESS_PROFILE, WEBRTC_TRY_BLOCKERS, WEEKLY_MASK_LENGTH, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcClimbHoldSchema, WebrtcLadderDecisionSchema, WebrtcSessionDebugSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WebrtcTierFailureSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, WrapperActivationReadSchema, WrapperEvidenceSchema, WrapperIdentitySchema, WrapperKindSchema, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, __resetLogChannelRegistryForTests, acceleratorKindOf, accessoriesCapability, accessoryChildrenComplete, accessoryChildrenUnknown, accessoryStableId, actionSourceCapability, actionsCapability, actionsForBoundCaps, actionsForDevice, actionsForDeviceType, actionsForDevices, activateAlarmProfile, activeForReducer, actuatorMethodRow, addonCatalogHref, addonIdOfActionId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advertisedHubOrigins, aggregateThroughputFactor, airQualitySensorCapability, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPanelCapability, alarmPatchLanded, alarmProfileById, alertEpisodeId, alertEpisodeKind, alertEpisodePayload, alertNodeId, alertsCapability, allDoActions, allowedSuppliedEffect, ambientLightSensorCapability, annotateClipsWithEventLabels, appFlowLocation, appendTrace, applianceDeviceType, applianceExport, applyBlockingEdit, applyCropClassFloors, applyModeDelaysEdits, applyModeDeviceListEdit, applyModelBoundSettings, applyNonBlockingEdit, applySecureOnArmEdit, arithmeticDraft, armRemovalReconcile, arrayItemFieldPath, asBoolean, asJsonArray, asJsonObject, asNumber, asRecordsError, asString, assertTimelapseCadences, assertTransactScope, assertValidDeclaration, assignNodeColorId, audioAnalysisCapability, audioAnalyzerCapability, audioChunkBytesPerSample, audioCodecCapability, audioIsFailClosed, audioKindId, audioLabelChoices, audioMetricsCapability, audioModeOf, audioOrDefaults, audioPlanFromEncodeProfile, audioScaleEraOf, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, baseUnitForQuantity, baseUnitOf, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, bucketStartOf, buildActionSteps, buildAddonRouteProvider, buildAudioArgs, buildBenchStepTree, buildCapabilityLookup, buildDeviceAdminUrl, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildPlusCatalogClassMap, buildRoleScopes, buildSecretRef, buildSessionLostAlert, buildStreamParamsConfigSchema, buildSubjectPath, buildTriggerTrace, buildVideoArgs, buildViewerLink, builtCapabilityBlockers, builtinRemoteComponent, bundledCamstack, buttonCapability, calendarEventLocalSpan, calendarEventOnLocalDay, calendarSourceCapability, calendarsCapability, cameraCredentialsCapability, cameraGridLayoutCapability, cameraOwnsMotionViaSensor, cameraPipelineConfigCapability, cameraScopedStepSettings, cameraSensorRefKey, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, canonicalIconKey, canonicalizeAppCallback, capUnitResolver, capabilityScopesOf, capacityForModel, capacitySessionsOf, carbonMonoxideCapability, cellsToRects, checkRoleAddress, checkTemplatePayload, claimedRequestOrigins, classifyBearerPrincipal, classifyCamerasForBenchmark, classifyFieldSource, classifyInferenceHardware, classifyRetrainReview, classifySecretWrite, classifyStoreError, classifyStream, classifyStreams, clearKnownSecrets, clearModelBoundOverrides, clearModelBoundSetting, climateControlCapability, clipEventLabelDepsFromApi, clipExportFailure, clipExportFailureOf, clipLabelsForWindow, clipReasonHeaderValue, cloneAlarmSettings, cloneStatefulExpressionMemory, clusterModelSettingKey, clusterStepSettingFieldsFor, clusterStepSettingKey, codecIsAccepted, collectHydratedFieldEntries, collectHydratedFieldValues, collectKeychainStoredKeys, collectMirrorSources, collectModelBoundKeys, collectSecretConfigKeys, collectSecretLeaves, collectSecretMarkerRefs, collectZodSecretPaths, colorCapability, colorForKind, commandMethodProblems, commandedMethods, commitWatchdogRestart, compareToTarget, compileExpression, compileExpressionSafe, compileHelper, compileKeyedArrayOverride, compilePulseOverride, compileScalarOverride, compileSpanOverride, composeSwitchedOff, composedDeviceRef, composedDeviceStableId, composerCapability, compositionEdges, compositionFeatureEnabled, compositionFieldKey, compositionFillStatus, compositionItemFieldPath, compositionReadKey, compositionSliceKey, compositionSourceKey, compositionSourceRefs, computeCapacityShares, computeScores, conditionDepth, conditionExclusionReason, conditionVisibleForKind, connectionTestCapability, connectivityCapability, consumableFormOf, consumableKindOf, consumableLowPercentOf, consumablesCapability, contactCapability, containingParentIndex, controlCapability, convertPresetFeature, convertQuantityInput, convertUnit, convertUnitTargets, coralUsableUnits, coreBlockAddonId, coreBlockComposition, coreBlockIdFromAddonId, coreBlockSourceKind, coreBlocksCapability, cosineSimilarity, countConditionLeaves, countRecoverySkips, coverCapability, createAlarmProfile, createDeviceExtensionProvider, createDeviceProxy, createDurableState, createEvent, createEventBusSliceSource, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createLogChannelsProvider, createMirrorSource, createRecordsAccess, createRuntimeStateBridge, createSecretsAccess, createSliceHandle, createStatefulExpressionMemory, createSystemProxy, customAction, customKeyOfRole, customModelRegistryCapability, customRole, dataStoreProviderCapability, databaseSnapshotCapability, dayNightCapability, dayOfWeekToIndex, declarationOwnerNodeId, declarationsOf, declareLogChannel, declaredSeriesKind, decodeCompositionToCards, decodeKeyedArrayOverride, decodePronto, decodePulseOverride, decodeScalarOverride, decodeVectorBase64, decoderCapability, defaultDeliveryForSection, defaultDeviceFor, defineCustomActions, defineEntryKind, defineExtensionSlotProvider, defineRecordKinds, dehydrateConfigField, dehydrateSchema, deleteAlarmProfile, deliveryParamsDeclaredBy, derivativeDraft, derivativeUnitLabel, deriveBatteryPresence, deriveCameraSwitches, deriveDetailCropRect, deriveMaskSupplies, derivePostTriggeredAction, deriveRecordingMode, deriveRootFaceRefineRect, deriveRootSupplies, describeComposableCaps, describeCustomActions, describeModelVariant, describeOnboardClamp, describeOnboardRefusal, describeRootSupplies, describeRootSupply, describeStateField, describeSystemEventDeliveryProblem, describeSystemEventFamilyProblem, describeTopLevelStateFields, detectAccessRole, detectionClassMatches, detectionPipelineCapability, deviceAdminLinkCapability, deviceAdoptionCapability, deviceAttentionKind, deviceBackendToFormat, deviceCredentialsCapability, deviceCustomAction, deviceDiscoveryCapability, deviceDoFamily, deviceExportCapability, deviceExtensionCapability, deviceHistoryCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceRefusalFromMessage, deviceRemovalHookCapability, deviceSelectorMatches, deviceStateCapability, deviceStatusCapability, diffStepSettings, disarmRoseMemory, dishwasherCapability, displayPaletteCapability, displayUnitFor, doActionSelectValue, dominantClipLabels, doorbellCapability, droppedConditionsForKind, edgetpuDelegateDevice, effectiveStepSettings, egressTranscodeSharingKey, egressTransportFromRequest, electByShare, electByShareWithAffinity, eligibleUnderBenchmark, embeddingEncoderCapability, embeddingModelFailedError, embeddingModelFailedOf, embeddingRefusalOf, embeddingRequirementsFailedError, embeddingRequirementsUnavailableError, emitDownForOwnedCaps, emitReadiness, emitsCollectionSelector, encodeCardsToComposition, encodeProfileFromStreamShape, encodeVectorBase64, ensureAlarmProfiles, entryBody, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, estimateNodeBenchmarkDurationMs, evaluateAggregate, evaluateAst, evaluateCompositionField, evaluateConditionTree, evaluateCount, evaluateDerivative, evaluateExpressionSource, evaluatePoolMemory, evaluateRose, evaluateSensorEdge, evaluateSensorLevelEdge, evaluateStatefulExpressionCall, evaluateStationaryTrigger, evaluateStatistic, evaluateZoneRules, event, eventEmitterCapability, eventKindLabel, eventOverlapsClipWindow, evictionPolicyForMode, evictionPolicyOfLocation, expandAudioChunkToF32le, expandCapMethods, expandContainer, expandSystemEventClasses, exportSubjectOf, exposeBlockDevices, expressionContainsBuiltinCall, expressionDraft, extensionSlotRef, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, failureContributionCapability, failureRate, fanControlCapability, fanOutTargets, featureFieldEntries, featureForwards, featureOfRole, featureProbeCapability, featureSources, feederCustomizationExample, feederExampleSources, ffmpegRate, fieldEntryToSource, fieldReads, fieldUnitKeys, fieldsPinnedAtValueBelow, filesystemBrowseCapability, fillWidthScale, findCandidateCycles, findCompositionCycles, findTimezone, floodCapability, foldSnapshotByFunction, foreignCapacityCells, forgetKnownSecret, formatDeviceRevoker, formatForRuntime, formatMediaOwnerKey, formatMinutes, formatPaletteViolations, formatParkedFor, formatReading, formatSecretScope, formulaProblem, forwardProblems, forwardSourceProblems, forwardSourceRefs, freshResults, fuseRecoveredDetections, gasCapability, gbToBytes, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getLogChannelRegistry, getTaxonomyEntry, gifDeriveSpeed, gifFilterComplex, gifFromMp4Args, globalSecretScope, grantRowsOf, groupActiveCapability, groupCommandsCapability, groupStatusCapability, groupTemplate, hasModelBoundOverrides, hasMotionTrigger, hasUrlScheme, heatingValveCapability, helperMembers, helperSaveProblems, hfModelUrl, historyFieldsFor, historyItemFieldPath, historyUnitFor, htmlToText, hubAddressHostname, hubMotionNativeProvider, humidifierCapability, humiditySensorCapability, hydrateSchema, iconCategoryLabel, iconEntry, iconsInCategory, imageCapability, imageModesForKind, imageSettingsCapability, inferExpressionKinds, inferModelProvider, ingestReading, initialPoolMemoryState, insertComponent, integralCadenceMs, integralDraft, integrateReading, integrationsCapability, intercomCapability, internalActionId, interpolate, interpretStoredClusterModel, invalidClusterStepModelEntries, invertPresetFeature, invocationFromEncodeProfile, irTransmitterCapability, isAgentOnlyPlacement, isAlarmControllableCap, isAlertEpisodeOpen, isAlertEpisodeSeverity, isAppLinkBase, isAppStartRefusal, isApplianceKind, isArrayOutputSchema, isAudioChunkFormat, isAudioClassName, isAudioLabelSelected, isAudioRule, isAutomaticShareSource, isBaseConditionKey, isBatteryPresenceFault, isClusterScopedStep, isCollectionArrayMethod, isCredentialTokenPayload, isDefaultAlarmProfileId, isDefaultAppConnectionEndpoint, isDefinitiveDeviceRefusal, isDeployableToAgent, isDetectionMacroClass, isDeviceConfigCap, isDeviceScopedCap, isDoActionActuatable, isDoPickerDeviceType, isDrawableSubjectPath, isEmbeddingModelFailed, isEvent, isEventKindLabelKey, isEventOwnerType, isFirstLevelMacroClass, isForwardInputRef, isHeldBackTemplateVar, isHistoryHelper, isIconKey, isInternalActionId, isIsolatedBuiltin, isKeychainStoredField, isKnownTemplateVar, isLabelSupplyStepId, isLocationEnabled, isMediaOwnerType, isModelScopedStepSettingKey, isNode, isOauthLandingReason, isObjectInput, isOccupancyRule, isOwnerOnlyEventCategory, isPlugApplianceType, isQuantityValue, isReadingQuantity, isRemoteCustomKey, isRemoteKnownRole, isRemoteRole, isRemovedModelId, isRestoredCap, isRetiredClearKey, isRootSuppliableStepId, isSameAddonId, isScheduleActive, isSecretClear, isSecretConfigField, isSecretFieldView, isSecretMarker, isSecretMarkerLike, isSecretRef, isSecretRefOwnedBy, isSingleHubAddressRole, isSkippedTrace, isSoftwareDecode, isSourceCap, isStateLabelKey, isStatefulBuiltin, isStorageLocationMode, isSystemDelivery, isSystemEventFamily, isSystemEventRecoveryKind, isSystemEventSummaryRule, isSystemRuleKind, isTemplateKind, isUnfilledRequiredProblem, isVectorIndexDimConflict, isVoidInput, isZodSecret, ituDbfsFromPreEpoch, jobKindSchema, kebabToCamel, keychainAdminCapability, keychainCapability, kindOfValue, kindsForDiscriminator, knownSecretCount, knownValues, lawnMowerControlCapability, legacyAutoLinkIds, legacyImageMode, legacyModeOf, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, linkedLabelStepId, linkedStepOf, listBenchDetailSteps, llmCapability, llmRuntimeCapability, loadContributionCapability, localNetworkCapability, localizeConfigTree, locationIconKey, locationSimilarity, lockControlCapability, logBannerArgs, logChannelsCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeInMemoryRecords, makeProfileBrokerId, makeSecretMarker, makeSourceBrokerId, mapAudioLabelToMacro, mapSecretLeaves, markFieldEdited, markdownToHtmlLite, markdownToText, maskUrlCredentials, matchDoAction, maxDurationMs, mayReadLocation, mayWriteToLocation, measuredCapacityFromResults, measuredDetectorCells, mediaPlayerCapability, memoizePinnedFfmpeg, mergeClipLabels, mergeKeyedArrayItem, mergeOverrides, mergeScalarTarget, mergeSecretStatePaths, mergeSettingsBags, mergeSkipTraces, mergeSourceInfo, meshNetworkCapability, meterCapability, method, methodAccessForHttpMethod, methodRefusal, methodRoleOf, metricsProviderCapability, migrateLegacyDeviceSignalConfig, minutesToTimeOfDay, modeMayRead, modeMayWrite, modelBindingKey, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, modelScopedStepSettingKeys, motionCapability, motionDetectionCapability, motionSourceLabel, motionTriggerCapability, motionZonesCapability, moveGroup, mqttBrokerCapability, nativeObjectDetectionCapability, navigationCapability, ncAlarmSystemDefaultSettings, ncMediaPolicyError, networkAccessCapability, networkLinkCapability, networkQualityCapability, nextLocalMidnight, nodeBenchmarkRefusals, nodeCertificatesCapability, nodePickerItems, nodePin, nodeRemovalHookCapability, nodesCapability, normalizeActionUnits, normalizeAddonInitResult, normalizeAudioLabel, normalizeConditionUnits, normalizeCoreBlockWrite, normalizeNcMediaPolicy, normalizeNodeId, normalizeOrigin, normalizeRecipeUnits, normalizeSecretOwner, normalizeTokenScopes, normalizeUnit, normalizedArea, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, oauthLandingUrl, objectInputDeclaresAddonId, objectInputDeclaresRequiredDeviceId, occupancyScope, oidcConnectionsCapability, omitTransientConfig, openReset, openStatistic, optionalAncestors, optionalMethod, osdCapability, osdManagerCapability, overlayClusterStepSettings, ownedSlice, packagePickerItems, paintHex, paletteEntryLabel, paletteFromInput, paletteFromStored, paletteLegend, paletteResultSchema, paletteSwatchSchema, paramMeta, paramMetaOf, parseAcceleratorFactsJson, parseAdminBase, parseAlertEpisodePayload, parseAppAuthCallback, parseAppFlowRequest, parseAppPageLang, parseCameraStreamConfig, parseColorInput, parseCredentialScopes, parseDeviceEnrollmentLink, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseMediaOwnerKey, parseOauthLandingFragment, parseOccupancyScope, parseProcStatus, parseProfileBrokerId, parseRetrainRevisionConflict, parseRuleSection, parseSecretPath, parseSecretRef, parseSecretStatePath, parseSessionPlacementPolicy, parseShareSource, parseSmartIr, parseStreamParamsFormPatch, parseTrainingEventLine, patchAudio, petFeederCapability, petFountainCapability, petFountainFromEntitiesComposition, pickAccessoryControl, pickAppLinkHub, pickClusterStepModels, pickClusterStepSettings, pickDetailCropConvention, pickFaceRescoreIntervalMinutes, pickInvalidClusterStepModels, pickNativeLeaseOverride, pickPreferredRtspEntry, pickRequestOrigin, pickRestartCandidate, pickVideoEncoder, pickerForCondition, pickerForRuleClasses, pinUnderBenchmark, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, planComposition, planCompositionEvents, planItems, planMotionCropRegions, planMotionCrops, planRecoveryCrops, planResetTier, planStatisticTier, plateGalleryCapability, platformProbeCapability, plusCatalogDefaultClassFloors, plusCatalogLabelFields, poolMemoryThreshold, powerMeterCapability, prepareNotification, prepareRecipeUnits, presenceCapability, presetById, pressureSensorCapability, primaryCapForRole, principalMayReachAddon, privacyMaskCapability, problemsBlockSave, procedureAuthKey, projectKeyedArrayAssignment, projectPulseAssignment, projectScalarAssignment, projectSpanAssignment, projectSubjectPath, providerMotionEvent, pruneDeletedEntities, ptzAutotrackCapability, ptzCapability, publicEventCategories, pythonScriptForBackend, quantityFromUnit, rankStreams, readClusterStepModels, readClusterStepSettings, readDetailCropConvention, readDeviceStateFrom, readErrorI18n, readFaceRescoreIntervalMinutes, readHubMotionDetected, readHubMotionStatus, readKeyedArrayItems, readMotionTriggeredBy, readNativeLeaseOverride, readNodePin, readRecoveryRecipe, readRecoveryRecipeForSteps, readTimelapseGeneratedAt, readUseRootModel, readinessKey, readingMeta, rebootCapability, recommendNode, reconcileBlockDevices, reconcileRemovedDevices, recordArrayItemPath, recordEntriesCapability, recordSecretCollection, recordSecretRef, recordingArchiveCapability, recordingCapability, recordingExportCapability, recordingOnboardCapability, recordingSignalCapability, recordsCapability, recordsErrorFromMessage, rectContains, rectsOverlap, rectsToCells, reducePoints, reducerForActive, registerKnownSecret, remapCropDetections, remoteCapability, remoteLayoutComponentsCapability, removeGroup, removeScalarTarget, renameAlarmProfile, renderVocabPhrase, replacedFieldKeys, reportIsScalable, requestMountPrefix, requiredTopLevelKeys, requiresPython, reservedSourceOwner, resetPoolBaseline, resolveActionVariables, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAppConnections, resolveBucketMs, resolveCapMount, resolveClipSearchMinScore, resolveClusterStepModelId, resolveContainerPrimaryChild, resolveCoreBlockEntry, resolveCoreBlockFiles, resolveCreateExportSubject, resolveDeliveryParams, resolveDeviceControlKind, resolveDeviceProfile, resolveDeviceTarget, resolveEffectiveShares, resolveEgressDecodeHwAccel, resolveExportProfiles, resolveFormat, resolveHubAddressRoles, resolveHydratedFieldValue, resolveIconKey, resolveInternalAddress, resolveLatencyColumn, resolveLocationMode, resolveMethodAuth, resolveMethodRole, resolveModeDelays, resolveModeNotifyPolicy, resolveModelBoundSetting, resolveMutate, resolveNcMediaImage, resolveNotificationTapAddress, resolvePoolMemoryPolicy, resolvePublicEndpoint, resolveRecordingProfiles, resolveRootSupply, resolveRunnerId, resolveSecretMarkers, resolveSecretViewsIn, resolveServerName, resolveStepArgs, resolveStreamMaps, resolveVariantModelId, resolveViewableDeviceIds, resultCellKey, resultStandings, retrainBoxIou, retrainRevisionConflictMessage, rewriteBody as rewriteLoginProxyBody, rewriteLocation as rewriteLoginProxyLocation, rewriteReferer as rewriteLoginProxyReferer, rewriteSetCookie as rewriteLoginProxySetCookie, roleSpec, rollingDurationMs, roomCompositionExample, rootSuppliesOf, rootSupplyServes, ruleAutoTriggersAlarm, ruleBelongsToAlarm, ruleDeviceCompatCapNames, ruleDeviceCompatCapQueries, ruleEditorSectionsForKind, ruleGatedOnArmedState, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, ruleTriggerZoneIds, runExportedAction, runFanOut, runInferenceStep, runSteps, runningFromDishwasherOperation, runningFromLawnMower, runningFromMediaPlayer, runningFromVacuumState, runningStateCapability, runtimeDevices, runtimeFieldUnit, runtimeStatePolicyFor, sameDoFamily, sameHelperBody, sameRead, scalarTargetCount, sceneMonitorCapability, scheduleForSendTimes, schemaDeclaresAnyField, scopeInherits, scopeKey, scopesAllowAddon, scopesAllowAddonRoutes, scopesAllowDeviceCap, scopesAllowOwnPreferences, scopesGrantAdmin, scoreRuntimes, scriptRunnerCapability, scrubKnownSecrets, searchIcons, secretArrayPrefixes, secretTreeFromPaths, secretTreeFromSchema, secureActuationFor, selectAppConnectionEndpoints, selectAssignedProfileSlots, selectRecoveryStep, sendTimesForEditor, sendTimesOfSchedule, sendToExportedTarget, sensorRaisedOf, sensorTransitionNeverFires, sensorTransitionOffered, servedTemplateVars, serverManagementCapability, sessionLostAlertId, sessionsOfDeviceCell, setByPath, setFormulaExpr, setPaletteInputSchema, settingValuesEqual, settingsBelow, settingsStoreCapability, shareViewGrantOf, sharedActuatorFeatures, sharedActuatorMethods, sharedColorModes, sharedLightCaps, shortHostname, shortSecretRefHash, signalPercentFromBars, signalPercentFromRssi, siteZoneKey, skipSignature, sleep, sleepCancellable, sliceActiveValue, sliceChangedAt, smartIrDraft, smokeCapability, smtpProviderCapability, snapshotCapability, sourcePickForAppliance, sourcePickForHistory, sourcePickForMath, sourcePickForTemplate, splitTranslationRef, squareAround, ssoBridgeCapability, startMoverUnderClearance, startReachabilityPoll, stateLabel, stateVocabularyFor, statisticCadenceMs, statisticDraft, stepModelRunsOnFormat, stepPulse, stepSettingSource, stepSpan, storageAdminCapability, storageCapability, storageEvictableCapability, storageMigrationCapability, storageOccupancyCapability, storageProviderCapability, storedFromReady, storedPaletteSchema, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, streamSignalsCapability, stripRetiredBandPreBufferSec, strippedOfLegacyReadOnly, subKindsOf, subjectHasPath, subjectPathSampleFromBox, subjectPathSvgPoints, summarisePrivacyAudio, summarizeEffectiveScope, summarizeReview, supplyFor, supportedRuntimes, swatchHex, switchCapability, switchedOffIds, syncActiveAlarmProfileSettings, synthesizeSourceInfo, systemCapability, systemEventClassKinds, systemEventClassOf, systemEventClassesFor, systemEventDeliveryProblems, systemEventFamilyOf, systemEventFamilyProblems, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, systemEventKindNamesOf, systemEventKindsOfFamily, systemEventSummaryScheduleOf, systemEventSummarySplitOf, systemFamilyOfKind, systemRuleKindOf, tamperCapability, targetFeature, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, templateCapability, templateCarriesSummary, templateDeviceType, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, templateVarsFor, terminalSessionCapability, textToHtml, thresholdDraft, thresholdToBase, thresholdToDisplay, timeOfDayToMinutes, toAppLinkHubOrigin, toDeviceSummary, toExpressionValue, toNodeId, toPercentShares, toSecretFieldView, toStreamSourceEntry, toTimings, toastCapability, toggleAudioLabel, tokenize, trainingCapability, trainingProviderCapability, transcodeBody, transformSecretWrite, tryConvertDelta, tryConvertUnit, turnProviderCapability, ungroup, unitCompanionField, unitDimension, unitsForDimension, unitsForQuantity, unreachableExtensionSlotRow, unwrapSchema, updateCapability, userError, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateComposition, validateCustomAddress, validateExpressionSource, validatePalette, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorIndexDimConflictError, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerAdmitsDevice, viewerHoldsRole, viewerLinkBaseOf, viewerScopeOf, viewerUiCapability, actionsForDevice$1 as vocabularyActionsForDevice, triggersForDevice as vocabularyTriggersForDevice, waterHeaterCapability, wattMillisecondsToKwh, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, weeklyMaskIndex, weeklyMaskIsUniform, weeklyMaskToWindows, widenDeviceConstructor, windowsToWeeklyMask, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, withClipEventLabels, withFieldFrom, withLocationMode, withSystemEventClasses, withoutCallerStamp, withoutField, withoutKeyedArrayItem, writeModelBoundSetting, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
124247
+ export { ACCESSORY_LABEL, ACCESS_ROLES, ACTIVE_CRITERIA, ACTUATOR_METHODS, ACTUATOR_TEMPLATE_IDS, ADMIN_SCOPE, AGENT_MDNS_QUERY_NAME, AGENT_MDNS_SERVICE_TYPE, AGENT_MDNS_TXT_KEYS, AGGREGATE_REDUCERS, AGGREGATE_THROUGHPUT_BY_KIND, ALEXA_EGRESS_PROFILE, ALL_CAPABILITY_DEFINITIONS, ALL_METHOD_ACCESS, APPEARANCE_BIN_COUNT, APPEARANCE_BLOCKS, APPEARANCE_DESCRIPTOR_VERSION, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT, APPLE_SA_TO_MACRO, APPLIANCE_DEFAULTS, APPLIANCE_EXPORT, APPLIANCE_KINDS, APPLIANCE_TEMPLATE_ID, APP_AUTH_CALLBACK_MAX_LENGTH, APP_AUTH_CALLBACK_URLS, APP_FLOW_DEFAULT_REDIRECT, APP_FLOW_REFUSAL_MESSAGES, APP_FLOW_STATE_PREFIX, APP_REFUSED_PATH, APP_START_REFUSAL_MESSAGES, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT, ARITHMETIC_OPS, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_CHUNK_FORMATS, AUDIO_GRADIENT_ALPHAS, AUDIO_MACRO_LABELS, AUDIO_NOT_CLASSIFIED_REASONS, AUDIO_PRESETS, AUDIO_SCALE_EPOCH_ISO, AUDIO_SCALE_EPOCH_MS, AUTOMATIC_HUB_ADDRESS_FLAGS, AUTO_SHARE_HEADROOM, AUTO_TUNE_FAMILY, AcceleratorComputeSchema, AcceleratorKindSchema, AccessoriesStatusSchema, AccessoryKind, ActionEntrySchema, ActionError, ActionErrorCodeSchema, ActionInputSchema, ActionLinksSchema, ActionRunChangedSchema, ActionRunOriginSchema, ActionRunOutcomeSchema, ActionRunResultSchema, ActionSourceKindSchema, ActionStatusSchema, ActionStepSchema, ActionVariableSchema, ActionVariableTypeSchema, ActionVariableValueSchema, ActiveCriterionSchema, AddBrokerInputSchema, AddRetrainFrameFromRecordingResultSchema, AddonAutoUpdateSchema, AddonListItemSchema, AddonPageDeclarationSchema, AddonPageInfoSchema, AddonRoutesScopeSchema, AdminLinkTargetEnum, 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, AggregateReducerSchema, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertEpisodePayloadSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, AnalyticsLtsSeriesSchema, AppFlowPurposeSchema, AppLoginPathSchema, AppPageLangSchema, AppleFmAvailabilitySchema, AppleFmUnavailableReasonSchema, ApplianceHelperSpecSchema, ArchiveEntrySchema, ArchiveManifestSchema, ArchiveSqliteSnapshotSchema, ArchivedDebugNoteQueryInputSchema, ArchivedDebugNoteSchema, ArithmeticHelperSpecSchema, AttachmentMediaTypeSchema, AttachmentSchema, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioAttachDeviceInputSchema, AudioAttachDeviceResultSchema, AudioChunkFormatSchema, AudioChunkInputSchema, AudioClassSummarySchema, AudioClassificationLabelSchema, AudioClassificationResultSchema, AudioClassifyOutcomeSchema, AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioDetachDeviceResultSchema, AudioEncodeSchema, AudioEncodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEventSchema, AudioLevelSchema, AudioMetricsHistoryPointSchema, AudioMetricsHistorySchema, AudioMetricsSnapshotSchema, AudioPcmChunkSchema, AudioStreamPickSchema, AuthResultSchema, AutoTuneApplyInputSchema, AutoTuneApplyResultSchema, AutoTuneOptionsSchema, AutoTunePhaseResultSchema, AutoTunePlanSchema, AutoTuneWarningSchema, AutoUpdateSettingsSchema, AutomationActionSchema, AutomationCapStepSchema, AutomationConditionOperatorSchema, AutomationConditionTraceNodeSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationRunModeSchema, AutomationRunOutcomeSchema, AutomationRunTraceSchema, AutomationRunVerdictSchema, AutomationStateDocSchema, AutomationStepTraceSchema, AutomationTriggerTraceSchema, AutomationWaitStepSchema, AutomationWhenSchema, AvailableIntegrationTypeSchema, BASE_DEVICE_CAPS, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BATTERY_UNREACHABLE_AFTER_MS, BENCH_ROOT_STEP_ID, BINARY_AGGREGATES, BIRTH_DECISION_DEFAULT_LIMIT, BOOT_RECOVERY_BACKOFF_MS, BUILTIN_REMOTE_COMPONENTS, BUILTIN_RESULT_KINDS, BackgroundRunRegistry, BacklightModeSchema, BackupArchiveEncryptionSchema, BackupDestinationInfoSchema, BackupEncryptionStatusSchema, BackupEntrySchema, BackupRunPhaseSchema, BackupRunSchema, BackupRunStateSchema, BackupTriggerResultSchema, BaseAddon, BaseDevice, BaseDeviceProvider, BatchTooLargeError, BatteryStatusSchema, BinaryStatusSchema, BirthDecisionCropSourceSchema, BirthDecisionQueryInputSchema, BirthDecisionRecordSchema, BirthDecisionVerdictSchema, BoundingBoxSchema, BrightnessStatusSchema, AddInputSchema as BrokerAddInputSchema, BrokerAudioClientSchema, BrokerClientsSchema, BrokerConnectionDetailsSchema, BrokerConsumerAttributionSchema, BrokerConsumerKindSchema, BrokerEncodedClientSchema, GetStateInputSchema as BrokerGetStateInputSchema, BrokerInfoSchema, BrokerInfoSchema as UnifiedBrokerInfoSchema, BrokerProviderInfoSchema, PublishInputSchema as BrokerPublishInputSchema, RegistryStatusSchema as BrokerRegistryStatusSchema, BrokerRtspClientSchema, BrokerStatsSchema, BrokerStatusEnum, BrokerStatusSchema, SubscribeInputSchema as BrokerSubscribeInputSchema, SubscribeResultSchema as BrokerSubscribeResultSchema, TestConnectionResultSchema as BrokerTestConnectionResultSchema, UnsubscribeInputSchema as BrokerUnsubscribeInputSchema, BucketAccumulator, BulkRecordSchema, CALENDAR_PERIODS, CALLER_STAMPED_CAPABILITIES, CAMERA_SENSORS_NOT_LOADED, CAMERA_SENSORS_SETTINGS_KEY, CAMERA_SWITCH_CATALOG, CAMERA_SWITCH_ORDER, CAMERA_TRIGGER, CAMSTACK_APP_LINK_ORIGIN, CAMSTACK_EVENT_PREFIX, CAM_PROFILE_ORDER, CAPABILITY_NAMES, CAPABILITY_ROUTER_KEYS, CAP_CUSTOMIZE_CATALOG, CAP_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, CAP_RUNTIME_FIELD_UNITS, CAP_VOCABULARY, CAP_VOCABULARY_BY_NAME, CATALOG_LANGS, CLASS_MAP_MACRO_TARGETS, CLIP_BROKER_PACED_RATES, CLIP_LABEL_EVENT_FETCH_LIMIT, CLIP_PLAYBACK_OPTIONS, CLIP_REALTIME_SOURCE_RATES, CLIP_REASON_HEADER_MAX, CLIP_SEARCH_STRICTNESS, CLIP_STILL_DISPOSITION_HEADER, CLIP_STILL_REASON_CODE_HEADER, CLIP_STILL_REASON_HEADER, CLIP_STREAM_SOURCE_RATES, CLIP_STREAM_TRANSPORT_HEADER, CLIP_STRICTNESS_FACTOR, CLIP_VECTOR_INDEX_PATTERN, CLUSTER_MODEL_CHOICE_UNREADABLE_REASONS, CLUSTER_MODEL_SCOPED_STEPS, CLUSTER_MODEL_SECTION_ID, CLUSTER_STEP_SETTING_FIELDS, COCO_80_LABELS, COCO_TO_MACRO, COMPOSED_DEVICE_STABLE_ID_PREFIX, COMPOSED_ITEM_FIXED_FIELDS, COMPOSER_ADDON_ID, COMPOSER_RUNNER_ID, COMPOSITION_EVENT_CATEGORY, COMPOSITION_ITEM_ARRAY_PATH, COMPOSITION_ITEM_KEY_RE, CONNECTION_TEST_TIMEOUT_MS, CONTAINER_CHILD_PRIORITY, CORAL_DEFAULT_MODEL_ID, CORE_BLOCKS_ADDON_ID, CORE_BLOCK_ADDON_PREFIX, CORE_ULTRA_265K_IGPU_CLOCK_MHZ, CORE_ULTRA_265K_IGPU_EU, CREDENTIAL_TOKEN_AUDIENCE, CREDENTIAL_TOKEN_KIND, CROP_CLASS_FLOORS, CROP_SUPPLY_SOURCES, CROP_SUPPLY_STEP_IDS, CUSTOMIZATION_BLOCK_NAME_PREFIX, CalendarColorSchema, CalendarEntrySchema, CalendarEventSchema, CalendarInfoSchema, CalendarListEventsInputSchema, CalendarPreferenceEntrySchema, CalendarPreferencesSchema, CalendarSetPreferenceInputSchema, CalendarSourceKindSchema, CalendarWindowSchema, CamProfileSchema, CamStreamDescriptorSchema, CamStreamKindSchema, CamStreamResolutionSchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraCredentialsSchema, CameraCredentialsStatusSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionSourceSchema, CameraDetectionStatusSchema, CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, CameraMotionStatusSchema, CameraOccupancySnapshotForDeviceSchema, CameraOwnMotionSchema, CameraRawLevelSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSensorAttachmentSchema, CameraSensorEntrySchema, CameraSensorModeSchema, CameraSensorRefSchema, CameraSensorsConfigSchema, CameraSensorsNotEnforcedSchema, CameraSensorsNotForwardedSchema, CameraSensorsStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CameraStreamSchema, CameraSwitchAuthoritySchema, CameraSwitchGroupSchema, CameraSwitchIdSchema, CameraSwitchSchema, CameraSwitchUnavailableReasonSchema, CameraSwitchWarningSchema, CamstackError, CandidateQueryFilterSchema, CapScopeSchema, CapabilityBindingsSchema, CapacityFallbackSchema, CapacitySourceSchema, CarbonMonoxideStatusSchema, CatalogFileSchema, CatalogLangSchema, ChargingStatus, ClaimOutcomeSchema, ClaimsListingSchema, CleanupDeletedDevicesResultSchema, ClearTrackRelationInputSchema, ClearTrackRelationResultSchema, ClientNetworkStatsSchema, ClimateControlStatusSchema, ClipBytesOfferSchema, ClipBytesSchema, ClipExportFailureSchema, ClipModelMetaSchema, ClipPlaybackOptionsSchema, ClipPlaybackSchema, ClipSchema, ClipSearchStrictnessSchema, ClipSourceAvailabilitySchema, ClipSourceSchema, ClipStillDispositionSchema, ClipStillRefusalCodeSchema, ClipStreamAudioReasonSchema, ClipStreamAudioSchema, ClipStreamDialSchema, ClipWakeSchema, ClusterAddonNodeDeploymentSchema, ClusterAddonStatusEntrySchema, ClusterModelChoiceSchema, CollectionColumnSchema, CollectionIndexSchema, ColorStatusSchema, CompleteEnrollmentInputSchema, CompleteEnrollmentOutputSchema, CompleteEnrollmentResultSchema, ComposableCapabilitiesSchema, ComposableCapabilitySchema, ComposableFieldSchema, ComposerApplyInputSchema, ComposerApplyResultSchema, ComposerBlockSchema, ComposerBlockVerdictSchema, ComposerUnreadableBlockSchema, CompositionAggregateSourceSchema, CompositionBindingSchema, CompositionBlockInputSchema, CompositionBlockStateSchema, CompositionCodeSourceSchema, CompositionCommandTargetSchema, CompositionCustomizationReadSchema, CompositionEventPlanSchema, CompositionExistingTargetSchema, CompositionExpressionSourceSchema, CompositionFeatureModeSchema, CompositionFeaturePlanSchema, CompositionFeatureSchema, CompositionFieldItemSchema, CompositionFieldKindSchema, CompositionFieldPlanSchema, CompositionFieldReadSchema, CompositionFieldRoleSchema, CompositionFieldSourceSchema, CompositionFieldStateKindSchema, CompositionFieldStateSchema, CompositionFieldsFeatureSchema, CompositionForwardArgSchema, CompositionForwardCommandSchema, CompositionFromSourceSchema, CompositionGetReadSchema, CompositionGraphError, CompositionItemEntrySchema, CompositionListReadSchema, CompositionLiteralBindingSchema, CompositionNewTargetSchema, CompositionPassthroughFeatureSchema, CompositionProblemCodeSchema, CompositionProblemSchema, CompositionRunStatusSchema, CompositionSchema, CompositionSeriesSourceSchema, CompositionSourceRefSchema, CompositionStateReadSchema, CompositionTargetSchema, CompositionUnavailableModeSchema, CompositionValidationSchema, CompositionViewSchema, ConditionMirror, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableFormSchema, ConsumableItemSchema, ConsumableKindSchema, ConsumableLevelSchema, ConsumableRemainingKindSchema, ConsumableRemainingSchema, ConsumableStatusSchema, ConsumablesStatusSchema, ContactStatusSchema, ControlKindSchema, ControlStatusSchema, ConvertArtifactSchema, ConvertResultSchema, ConvertTargetSchema, CoreBlockCompileInputSchema, CoreBlockCompileResultSchema, CoreBlockFilesSchema, CoreBlockInputFieldsSchema, CoreBlockInputSchema, CoreBlockPlacementSchema, CoreBlockSchema, CoreBlockSourceSchema, CoreBlockStatusSchema, CoverStateSchema, CoverStatusSchema, CreateIntegrationInputSchema, CreateUserInputSchema, CredentialScopeSchema, CredentialTokenClaimsSchema, CurrentAutomationRecipeSchema, CustomActionInputSchema, CustomModelDescriptorSchema, CustomizeAssignmentStatusSchema, DATABASE_SNAPSHOT_PARTIAL_SUFFIX, DATABASE_SNAPSHOT_SUFFIX, DATABASE_SNAPSHOT_TIMEOUT_MS, DATAPLANE_SECRET_HEADER, DATA_STORE_DATABASES, DAYS_PER_WEEK, DAY_MS, DAY_NAMES, DECLARED_DEVICE_SWEEP_LIMIT, DECLARED_INTEGRATION_FIXED_KEY, DEFAULT_ADDON_PLACEMENT, DEFAULT_AUDIO_ANALYZER_CONFIG, DEFAULT_CAMERA_FPS, DEFAULT_CAMERA_SENSOR_MODE, DEFAULT_CATALOG_LANG, DEFAULT_CLUSTER_STEP_MODELS, DEFAULT_CLUSTER_STEP_SETTINGS, DEFAULT_CORE_BLOCK_ENTRY, DEFAULT_DECODER_HWACCEL_CONFIG, DEFAULT_DETAIL_CROP_CONVENTION, DEFAULT_DISPLAY_PREFERENCE, DEFAULT_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, DEFAULT_HEADROOM, DEFAULT_HISTORY_RETENTION, DEFAULT_MIN_LANDMARK_FACE_SIZE_PX, DEFAULT_MIN_SESSIONS_PER_DEVICE, DEFAULT_NATIVE_LEASE_SETTINGS, DEFAULT_OVERLAY_LAYERS, DEFAULT_POOL_MEMORY_POLICY, DEFAULT_RECORDING_PROFILES, DEFAULT_RETENTION, DEFAULT_RUNTIME_STATE_DURABILITY, DEFAULT_SESSION_LOST_DEBOUNCE_MS, DEFAULT_SESSION_PLACEMENT_POLICY, DEFAULT_SHARE_SOURCE, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFAULT_TOKEN_EXPIRY, DEFAULT_TRACE_KEEP, DEFAULT_VIEWER_SCOPE, DEFINITIVE_DEVICE_REFUSALS, DERIVATIVE_UNITS, DERIVED_CAMERA_SILENCED_CAP_NAMES, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, DETECTION_LABEL_SOURCES, DETECTION_MACRO_CLASSES, DETECTION_PIPELINE_CAP_NAME, DETECTOR_ACCURACY, DETECTOR_PERF, DEVICE_BACKEND_TO_FORMAT, DEVICE_CAP_NAMES, DEVICE_CERT_RENEW_WINDOW_DAYS, DEVICE_CERT_SIGNATURE, DEVICE_CERT_VALIDITY_DAYS, DEVICE_CHILDREN_BATCH_MAX, DEVICE_DEFINITIVE_REFUSALS_BEFORE_DELETE, DEVICE_DO_ACTIONS, DEVICE_ENROLLMENT_TTL_MS, DEVICE_HISTORY_ENERGY_KEY, DEVICE_HISTORY_ORPHAN_DELETE_MAX, DEVICE_HISTORY_ORPHAN_LIST_MAX, DEVICE_HISTORY_QUERY_MANY_MAX_ITEMS, DEVICE_ID_FIELD, DEVICE_NONCE_TTL_MS, DEVICE_PROFILES, DEVICE_RAMP, DEVICE_REFRESH_REFUSAL_PREFIX, DEVICE_RESTORE_RETRY_CONCURRENCY, DEVICE_RESTORE_RETRY_DELAYS_MS, DEVICE_SAN_CREDENTIAL_PREFIX, DEVICE_SAN_USER_PREFIX, DEVICE_SCOPED_CAPS, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_SIGNATURE_MESSAGE_VERSION, DEVICE_STATE_READERS, DEVICE_STATUS_METHOD, DEVICE_TOMBSTONE_RETENTION_MS, DEVICE_TYPE_CONTROL_KIND, DEVICE_TYPE_DO_CAPS, DEVICE_TYPE_INFO, DISPLAY_PREFERENCES, DISPLAY_PRESETS, DOORBELL_RISE_DEBOUNCE_MS, DataStoreDatabaseSchema, EngineInfoSchema as DataStoreEngineInfoSchema, DatabaseSnapshotRequestSchema, DatabaseSnapshotResultSchema, DatabaseSnapshotTableSchema, DatabaseSnapshotTargetsSchema, DatabaseSnapshotWrittenSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclarationRefusedError, DeclareCollectionInputSchema, DeclareKindResultSchema, DeclaredDevices, DecodedAudioChunkSchema, DeleteIntegrationResultSchema, DeliveryParamSchema, DeliveryParamValueSchema, DerivativeHelperSpecSchema, DesktopAppStatusSchema, DetailCropConventionSchema, DetectionCatalogClassMapSchema, DetectionSourceSchema, DetectionSourcesSchema, DetectionSubjectSchema, DetectionTriggerFilter, DeviceAdminLinkSchema, DeviceCaStatusSchema, DeviceCertificateLoginMethodSchema, DeviceCertificateSettingsSchema, DeviceChallengeResultSchema, DeviceChallengeSchema, DeviceCodeSeveritySchema, DeviceConfig, DeviceCredentialSchema, DeviceCredentialStatusSchema, DeviceDataEntrySchema, DeviceDiscoveryStatusSchema, DeviceEnrollProofSchema, ExposeInputSchema as DeviceExportExposeInputSchema, DeviceExportStatusSchema, UnexposeInputSchema as DeviceExportUnexposeInputSchema, DeviceFeature, DeviceHistoryKindSchema, DeviceHistoryOrphanDeleteRefusalSchema, DeviceHistoryOrphanReasonSchema, DeviceHistoryProducerKindSchema, DeviceHistoryRefusalReasonSchema, DeviceHistoryResolutionSchema, DeviceHistoryStatusSchema, DeviceHistorySubjectSchema, DeviceInfoSchema, DeviceModelChoiceSchema, DeviceNetworkStatsSchema, DevicePlatformSchema, DeviceProofInputSchema, DeviceRecommendationSchema, DeviceRefusalReasonSchema, DeviceRefusalSchema, DeviceRemovedInputSchema, DeviceRemovedResultSchema, DeviceRestoreRetryScheduler, DeviceRole, DeviceRuntimeState, DeviceSelectorSchema, DeviceSignaturePurposeSchema, DeviceStatusSchema, DeviceTombstoneSchema, DeviceType, DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, DiscoveredChildDeviceSchema, DiscoveredChildStatusSchema, DiscoveredDeviceSchema, DiscoveredTargetSchema, DiscoveryHitSchema, DiscoveryModeSchema, DishwasherAccessSchema, DishwasherAvailabilitySchema, DishwasherOperationStateSchema, DishwasherOptionDescriptorSchema, DishwasherOptionsSchema, DishwasherProgramSchema, DishwasherStateSchema, DishwasherStatusSchema, DishwasherValueSchema, DiskReconcileJobSchema, DisposerChain, DoorbellPressEventSchema, DoorbellStatusSchema, EMBEDDING_MODEL_FAILED, EMBEDDING_REQUIREMENTS_FAILED, EMBEDDING_REQUIREMENTS_UNAVAILABLE, EMPTY_AUTOMATION_STATE, EMPTY_REMOTE_ASSUMED_STATE, EMPTY_REMOTE_CONFIG, ESTIMATE_COMPUTE_RATIO_MAX, ESTIMATE_COMPUTE_RATIO_MIN, EVENTFUL_CAP_NAMES, EVENT_DENSITY_BATCH_MAX, EVENT_KIND_BY_CAP, EVENT_KIND_LABELS, EVENT_KIND_LABEL_KEYS, EVENT_OWNER_TYPES, EVENT_PAD_MS, EVENT_TAXONOMY, EXPORT_DENSE_MAX_RANGES, EXPRESSION_BUILTINS, EXPRESSION_BUILTIN_NAMES, EXPRESSION_COMPILE_CACHE_CAPACITY, EXPRESSION_IDENTIFIER_RE, EXPRESSION_INJECTED_NOW, EXPRESSION_OUTPUTS, EXTENSION_HOST_DEVICE_TYPES, EXTENSION_SLOTS, EXTENSION_SLOT_IDS, EXTENSION_SLOT_LISTING_METHOD, EXTENSION_SLOT_REF_SEPARATOR, EffectiveDeviceShareSchema, EffectiveNodeShareSchema, EffectiveSharesSchema, EffectiveTuningSchema, EgressEncodeSchema, EgressRateControlSchema, EgressTranscodeRequestSchema, EgressTranscodeSchema, ElementConfigStore, EmbeddingFailedModelSchema, EmbeddingFailedRequirementSchema, EmbeddingInfoSchema, EmbeddingRefusalCodeSchema, EmbeddingResultSchema, EmbeddingTowerSchema, EncodeProfileSchema, EnrichedWidgetMetadataSchema, EnrollSelfInputSchema, EntryDescriptorSchema, EntryKindInfoSchema, EntryViewSchema, EnumSensorDateTimeFormatSchema, EnumSensorStatusSchema, ErrorCodeSchema, ErrorI18nPayloadSchema, EventCategory, EventDensityBucketSchema, EventDensityForDeviceSchema, EventEmitterStatusSchema, EventFireSchema, EventKindCategorySchema, EventKindDescriptorSchema, EventKindIconSchema, EventKindSchema, EventKindsForDeviceSchema, EventMediaArtifactSchema, EventMediaCoverageSchema, EventMediaKindSchema, EventMediaProductionSchema, EventOwnerTypeSchema, EventSourceType, ExportBytesSchema, ExportClipSubjectSchema, ExportDenseRangeSchema, ExportDenseSchema, ExportDownloadSchema, ExportEntityKindSchema, ExportEntityRefSchema, ExportFootageSubjectSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportSubjectSchema, ExportTimelapseSchema, ExposeEntityInputSchema, ExposedDeviceSchema, ExposedEntitySchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, ExpressionHelperSpecSchema, ExpressionLiteralBindingSchema, ExpressionParseError, ExpressionSourceSchema, ExtensionCandidateSchema, ExtensionCandidatesSchema, ExtensionSetResultSchema, ExtensionSetSlotInputSchema, ExtensionSlotActivationSchema, ExtensionSlotIdSchema, ExtensionSlotRefInputSchema, ExtensionSlotRowSchema, ExtensionSlotSourceSchema, ExtensionSlotStateSchema, ExtensionSlotUnreachableSchema, ExtensionSlotValueSchema, ExtensionSourceAvailabilitySchema, ExtensionSourceHealthSchema, ExtensionSourceSchema, ExternalIdentityKeySchema, ExternalIdentitySchema, FACE_RESCORE_INTERVAL_FIELD, FACE_RESCORE_INTERVAL_KEY, FACE_RESCORE_INTERVAL_MIN_RUNNING, FACE_RESCORE_SECTION_ID, FAN_OUT_CONCURRENCY, FEEDER_EXAMPLE_ADDON_ID, FEEDER_EXAMPLE_HA_DEVICE_ID, FFMPEG_PATH_ENV, FIRST_LEVEL_MACRO_CLASSES, FORWARD_INPUT_KEY, FULL_IMAGE_BBOX, FailureContributionSchema, FailureCounters, FailureReasonCountSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FieldClaimModeSchema, FieldClaimSchema, FilterRequiredError, FloodStatusSchema, Fmp4BoxSplitter, ForeignSecretMarkerError, FrameHandleSchema, FrameInputSchema, FrameLazyCountersSchema, FrameLazyMetricsSchema, G711_SCALE_CORRECTION_DB, GROUP_TEMPLATES, GROUP_TEMPLATE_IDS, GasStatusSchema, GetLoggingSettingsInputSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, GridLayoutPatchSchema, GridLayoutViewSchema, GroupActiveSchema, GroupCommandResultSchema, GroupCommandsSchema, GroupHelperSpecSchema, GroupStatusSchema, GroupTemplateIdSchema, HAP_AUDIO_BASE, HAP_AUDIO_BITRATE_KBPS, HAP_AUDIO_VBV_KBITS, HAP_KEYFRAME_INTERVAL_SEC, HF_BASE_URL, HF_REPO, HISTORY_BUCKET_MS, HISTORY_CATALOG, HISTORY_DEFAULT_MIN_INTERVAL_MS, HISTORY_FAST_MS, HISTORY_ITEM_CATALOG, HISTORY_NONE_CAPS, HISTORY_SLOW_MS, HISTORY_TIERS, HISTORY_UNIT_LABELS, HOURS_PER_DAY, HOUR_MS, HUB_ADDRESS_ROLES, HUB_MDNS_QUERY_NAME, HUB_MDNS_ROLE, HUB_MDNS_SERVICE_TYPE, HUB_MDNS_TXT_KEYS, HUB_VIEWER_MOUNT, HWACCEL_OPTIONS, HardwareClassIdSchema, HealthStatusSchema, HeatingValveStatusSchema, HelperMemberSchema, HelperSpecSchema, HfModelResolutionSchema, HistoryPointSchema, HistoryResolutionEnum, HttpsLeafInfoSchema, HubAddressRoleSchema, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ICON_CATALOG_SOURCE, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, IDLE_ACTION_STATUS, INFERENCE_DEVICE_EXCLUSION_REASONS, INITIAL_PULSE, INITIAL_SPAN, INTEGRAL_OUTPUTS, INTERNAL_ACTION_PREFIX, INVERTIBLE_CAPS, IR_TIMINGS_MAX, IconKeySchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, ImportModelBundleInputSchema, ImportModelBundleResultSchema, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, InstallDesktopUpdateReasonSchema, InstallDesktopUpdateResultSchema, InstalledPackageSchema, IntegralHelperSpecSchema, IntegrationLiteSchema, IntegrationSessionReporter, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, InvalidRecordError, IrCodecError, IrMediumSchema, IrPayloadSchema, IrSendResultSchema, IrTimingsSchema, IrTransmitterInfoSchema, KEYCHAIN_MAX_REFS_PER_CALL, KEYCHAIN_RESET_CONFIRMATION, KEYCHAIN_RESET_TRIGGER_ACTOR, KNOWN_CAP_NAMES, KWH_PER_WATT_MS, KeptReasonSchema, KeyEventSchema, KeychainAdminSecretSchema, KeychainAuditActionSchema, KeychainAuditEntrySchema, KeychainKeySourceKindSchema, KeychainKeySourceSchema, KeychainResetRecordSchema, KeychainResolveEntrySchema, KeychainResolveResultSchema, KeychainSecretMetaSchema, KeychainSecretUsageSchema, KeychainStateSchema, KeychainStatusSchema, KeychainUnavailableReasonSchema, KeychainWriteRefusedError, LABEL_SUPPLY_MACRO, LABEL_SUPPLY_STEP_IDS, LABEL_SUPPLY_VOCABULARIES, LAYOUT_EDIT_REFUSALS, LEGACY_READ_ONLY_CONFIG_KEY, LIGHT_SHARED_CAPS, LINKED_DEVICES_SLOT, LINKED_LABEL_STEP_PREFIX, LLM_PROFILE_KIND_PATTERN, LOAD_CONTRIBUTION_ATTRIBUTIONS, LOAD_CONTRIBUTION_ROLES, LOCATION_DESCRIPTION_MAX, LOCATION_ICON_FALLBACK, LOG_CHANNEL_TICK_MS, LOG_LEVEL_RANK, LTS_SCOPE_CLASS_SEPARATOR, LabelAttributionSchema, LabelDefinitionSchema, LabelTierSchema, LatencySourceSchema, LawnMowerActivitySchema, LawnMowerControlStatusSchema, LedgerWalkDeviceReportSchema, LedgerWalkInputSchema, LedgerWalkRefusalSchema, LedgerWalkReportSchema, LedgerWalkSkipCountsSchema, LedgerWalkSkipReasonSchema, LegacyAutomationRecipeSchema, LegacyConditionSchema, LegacyStorageLocationDefaultSchema, LegacyTriggerSchema, LinkedDeviceSchema, LinkedDevicesModeSchema, LinkedDevicesSlotValueSchema, ListNodeBenchmarkResultsInputSchema, ListTrackRelationsInputSchema, ListTrackRelationsResultSchema, LiveViewerCountSchema, LlmDefaultSchema, LlmDefaultSelectorSchema, LlmDownloadProgressSchema, LlmErrorCodeSchema, LlmGenerateBaseInputSchema, LlmGenerateErrSchema, LlmGenerateOkSchema, LlmGenerateResultSchema, LlmImageSchema, LlmListModelsErrorCodeSchema, LlmListModelsInputSchema, LlmListModelsResultSchema, LlmModelFeaturesSchema, LlmModelInfoSchema, LlmNodeModelSchema, LlmProfileFieldSchema, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, LlmProviderConfigSchema, LlmProviderWidgetSchema, LlmRefusalSourceSchema, LlmRetryPolicySchema, LlmRuntimeAppleCompleteInputSchema, LlmRuntimeCancelInputSchema, LlmRuntimeCompleteInputSchema, LlmRuntimeDiskUsageSchema, LlmRuntimeNodeSchema, LlmRuntimeStatusSchema, LlmTimeoutDefaults, LlmUsageRollupSchema, LlmUsageSchema, LoadBalancingSharesInputSchema, LoadContributionSchema, LocateSegmentResultSchema, LocationDescriptionAssignmentSchema, LocationIconAssignmentSchema, LocationStatSchema, LockControlStatusSchema, LockStateSchema, LogChannelApplyResultSchema, LogChannelDescriptorSchema, LogChannelGate, LogChannelLevelSchema, LogChannelRegistry, LogChannelWindowPatchSchema, LogChannelWindowSchema, LogChannelWindowStateSchema, LogEntrySchema, LogLevelSchema, LogReadCapabilitiesSchema, LogReadEntrySchema, LogReadQuerySchema, LogReadResultSchema, LogStreamEntrySchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LoginMethodContributionSchema, LoginStageEnum, LtsBucketSchema, MACRO_LABELS, MASK_EMITTING_POSTPROCESSORS, MASK_SUPPLY_STEP_IDS, MAX_ARCHIVED_DEBUG_NOTES, MAX_BIRTH_DECISION_RECORDS, MAX_BIRTH_LATENCY_PROXY_MS, MAX_CAMERA_SENSORS, MAX_CLIP_EVENT_IDS, MAX_CLIP_LABELS, MAX_COMPONENT_BUTTONS, MAX_COMPOSITION_CODE_LENGTH, MAX_COMPOSITION_FEATURES, MAX_COMPOSITION_FIELDS_PER_FEATURE, MAX_COMPOSITION_ITEMS, 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, MAX_HELPER_MEMBERS, MAX_KEYS, MAX_LAYOUT_GROUPS, MAX_LAYOUT_SPAN, MAX_REASONS_PER_KEY, MAX_REMOTE_BINDINGS, MAX_REMOTE_CUSTOM_BUTTONS, MAX_REQUEUED_BUCKETS_PER_SERIES, MAX_SENSOR_TRIGGER_DEVICES, MAX_TRACE_ARGS, MAX_TRACE_ARG_LENGTH, MAX_TRACE_KEEP, MAX_TRACK_DEBUG_NOTE_LEN, MAX_TRACK_PURITIES, MAX_TRACK_RELATIONS, MAX_WHEN_DEPTH, MAX_WHEN_LEAVES, MEDIA_OWNER_TYPES, MEDIA_PRESENCE_OWNER_KINDS, METHOD_ACCESS_MAP, METHOD_DEVICE_SELECTORS, MINUTES_PER_DAY, MINUTE_MS, MIN_CUSTOM_MINUTES, MIN_SCRUBBED_LENGTH, MIN_SESSIONS_PER_DEVICE_RANGE, MODEL_FORMATS, MODEL_HOSTING, MODEL_PROVIDER_IDS, MOTION_CLOSE_AFTER_MS, MOTION_CROP_DISPATCH_KEY, MOTION_CROP_MAX_REGIONS, MOTION_CROP_MOTION_PAD, MOTION_CROP_TRACKED_PAD, MOTION_SOURCE_LABELS, MOTION_SPAN_TIMEOUT_MS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelExtraFileSchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileKindEnum, MediaFileRefSchema, MediaFileSchema, MediaPlayerAssumedFieldSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStateSourceSchema, MediaPlayerStatusSchema, MediaPresenceOwnerKindSchema, MediaRelocateModeSchema, MeshLeafInfoSchema, MeshPeerSchema, MeshStatusSchema, MeterStatusSchema, MethodAccessSchema, MigrateDeviceResultSchema, MigrateSwitchOutcomeSchema, MigrateSwitchReportSchema, ModelBundleFileSchema, ModelCatalogEntrySchema, ModelConvertInputSchema, ModelConvertMetadataSchema, ModelDistributeInputSchema, ModelDistributeResultSchema, ModelExtraFileSchema, ModelFormatEntrySchema, ModelFormatPrecisionSchema, ModelFormatsSchema, ModelLicenseSchema, ModelOnDiskStateSchema, ModelPinChangeSchema, ModelProviderIdSchema, ModelSubstitutionSchema, ModelVariantGroupSchema, MotionAnalysisResultSchema, MotionEventSchema, MotionOnMotionChangedDataSchema, MotionRegionSchema, MotionSourceEnum, MotionSourcesSchema, MotionStatusSchema, MotionTriggerRuntimeStateSchema, MotionTriggerStatusSchema, MotionTriggeredBySchema, MotionZoneOptionsSchema, MotionZonePatchSchema, MotionZoneRegionSchema, MotionZoneStatusSchema, BrokerInfoSchema$1 as MqttBrokerInfoSchema, StatusSchema as MqttBrokerStatusSchema, MutationFilterSchema, N100_IGPU_CLOCK_MHZ, N100_IGPU_EU, 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_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, NAVIGATION_ACTION_CATALOG, NAVIGATION_LIGHT_LEVEL_MAX, NAVIGATION_LIGHT_LEVEL_MIN, NC_ALARM_CONTROLLABLE_CAPS, NC_ALARM_DEFAULT_PROFILE_ID, NC_ALARM_DEFAULT_PROFILE_NAME, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC, NC_ALARM_DELAY_FIELDS, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_NONBLOCKING_MAX, NC_ALARM_NOTIFY_FIELDS, NC_ALARM_OPENING_EVENT_KINDS, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_DEFAULT_DELAYS, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_AUDIO_CONFIRM_HITS_DEFAULT, NC_AUDIO_CONFIRM_HITS_MAX, NC_AUDIO_CONFIRM_HITS_MIN, NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, NC_AUDIO_DBFS_FLOOR, NC_AUDIO_DB_MAX, NC_AUDIO_DB_MIN, NC_AUDIO_DB_OFFERED, NC_AUDIO_DB_STEP, NC_AUDIO_DEFAULTS, NC_AUDIO_HIT_PERCENT_MAX, NC_AUDIO_HIT_PERCENT_MIN, NC_AUDIO_SAMPLING_MAX_SEC, NC_AUDIO_SAMPLING_MIN_SEC, NC_AUDIO_SEED, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BASE_CONDITION_KEYS, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CAMERA_SCOPE_CAP_NAME, NC_CLIP_POST_ROLL_DEFAULT_SEC, NC_CLIP_PRE_ROLL_DEFAULT_SEC, NC_CLIP_RETENTION_MAX_SEC, 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_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_DEFAULT_SNOOZE_MINUTES, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_LEGACY_SYSTEM_EVENT_KINDS, NC_MAX_PER_TRACK_IMMEDIATE, NC_MEDIA_IMAGE_MODES, NC_OCCUPANCY_DEFAULTS, NC_RULE_CLEARABLE_KEYS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_RETIRED_CLEAR_KEYS, NC_RULE_SECTIONS, NC_SENSOR_RAISED_FIELD_BY_KIND, NC_SENSOR_TRANSITION_KINDS, NC_SENSOR_TRANSITION_NEVER_FIRES_WARNING, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, NC_SERVER_PACKAGE_NAME, NC_SNOOZE_MAX_MINUTES, NC_STATE_SUMMARY_SECTION_IDS, NC_SYSTEM_DELIVERY, NC_SYSTEM_EVENT_CLASS_SPECS, NC_SYSTEM_EVENT_CONDITION_FILTER_KEYS, NC_SYSTEM_EVENT_FAMILIES, NC_SYSTEM_EVENT_FAMILY, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_FILTER_KEYS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, NC_SYSTEM_EVENT_SUMMARY_FAMILIES, NC_SYSTEM_RULE_KINDS, NC_TAXONOMY, NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, NC_UPDATE_EVENT_PACKAGE_NAMES, NETWORK_LINK_TYPES, NETWORK_LINK_UNKNOWN, NODE_BENCHMARK_DEFAULTS, NODE_COLOR_IDS, NO_MEASURED_CAPACITY, NUMERIC_AGGREGATES, NativeCropBboxSchema, NativeCropRefSchema, NativeCropResultSchema, NativeDetectionSchema, NativeLeaseAdmissionSchema, NativeLeaseSettingsSchema, NativeObjectClassEnum, NativeObjectDetectionOptionsSchema, NativeObjectDetectionRuntimeStateSchema, NativeObjectDetectionSettingsPatchSchema, NativeObjectDetectionStatusSchema, NativeObjectGeometryEnum, NavigationActionEntrySchema, NavigationActionIdSchema, NavigationEntryKindSchema, NavigationFeaturesSchema, NavigationLightModeSchema, NavigationModeSchema, NavigationMoveCommandSchema, NavigationPointSchema, NavigationRuntimeStateSchema, NavigationStatusSchema, NcActionBindingSchema, NcAlarmBlockingEditSchema, NcAlarmBlockingSchema, NcAlarmConfigSchema, NcAlarmCreateProfileInputSchema, NcAlarmModeCoverageSchema, NcAlarmModeDelaysEditSchema, NcAlarmModeDelaysSchema, NcAlarmModeDeviceListSchema, NcAlarmNonBlockingEditSchema, NcAlarmNonBlockingSchema, NcAlarmPostTriggeredActionSchema, NcAlarmProfileIdInputSchema, NcAlarmProfileMetaSchema, NcAlarmProfilesViewSchema, NcAlarmRenameProfileInputSchema, NcAlarmSecureOnArmEditSchema, NcAlarmSecureOnArmOffSchema, NcAlarmSensorReadingSchema, NcAlarmSensorStateSchema, NcAlarmSensorsInputSchema, NcAlarmSensorsSchema, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, NcAlarmSkipReasonSchema, NcAlarmSkippedDeviceSchema, NcAudioConditionSchema, NcClipRetentionAskSchema, NcClipRetentionPlanSchema, NcConditionDescriptorSchema, NcConditionsSchema, NcConfirmExpectSchema, NcConfirmSchema, NcCrossingSchema, NcDeliverySchema, NcDeviceStateConditionSchema, NcHistoryEntrySchema, NcHistoryFilterSchema, NcHistoryRecordKindSchema, NcHistoryStatusSchema, NcHistorySubjectSchema, NcHookBindingsSchema, NcLegacyRuleActionSequenceSchema, NcLinkedCameraModeSchema, NcMediaFrameSchema, NcMediaImageSchema, NcMediaPolicySchema, NcOccupancyConditionSchema, NcPlateMatcherSchema, NcRuleActionSchema, NcRuleActionSequenceSchema, NcRuleActionsSchema, NcRuleClearableKeySchema, NcRuleInputSchema, NcRuleKindSchema, NcRuleLastRunSchema, NcRuleLastRunsSchema, NcRuleNotificationButtonSchema, NcRulePatchSchema, NcRuleSchema, NcRuleTargetSchema, NcRuleUpdateInputSchema, NcSceneConditionSchema, NcScheduleSchema, NcScheduleWindowSchema, NcSensorTransitionSchema, NcSharedSequenceInputSchema, NcSharedSequenceSchema, NcSnoozeInputSchema, NcSnoozeSchema, NcSnoozeScopeSchema, NcSnoozeSuppressedSchema, NcStateSummaryPreviewRowSchema, NcStateSummaryPreviewSchema, NcStateSummaryPreviewSectionSchema, NcStateSummarySectionIdSchema, NcStateSummarySplitSchema, NcSystemEventConditionSchema, NcSystemEventDeliveryModeSchema, NcSystemEventDeliverySchema, NcSystemEventKindSchema, NcTaxonomyEntrySchema, NcTaxonomySchema, NcTemplateFamilySchema, NcTemplateFieldSchema, NcTemplatePreviewInputSchema, NcTemplatePreviewSchema, NcTemplateVarContextSchema, NcTemplateVarDescriptorSchema, NcTemplateVarGroupSchema, NcTemplateVarKindSchema, NcTestResultSchema, NcThrottleGranularitySchema, NcThrottleSchema, NcZoneConditionSchema, NetworkAccessStatusSchema, NetworkAddressSchema, NetworkEndpointSchema, NetworkLinkStatusSchema, NetworkTunnelStartedDataSchema, NoCallerError, NodeBenchCellSchema, NodeBenchClipSchema, NodeBenchDeviceCellSchema, NodeBenchFingerprintSchema, NodeBenchLimitSchema, NodeBenchPipelineCellSchema, NodeBenchProgressSchema, NodeBenchRampStepSchema, NodeBenchRunnerInputSchema, NodeBenchRunnerStateSchema, NodeBenchRunnerStatusSchema, NodeBenchmarkCandidatesSchema, NodeBenchmarkDevicePlanSchema, NodeBenchmarkEndReasonSchema, NodeBenchmarkManifestSchema, NodeBenchmarkMovingCameraSchema, NodeBenchmarkPhaseSchema, NodeBenchmarkPlanSchema, NodeBenchmarkPreflightSchema, NodeBenchmarkRefusalKindSchema, NodeBenchmarkRefusalSchema, NodeBenchmarkResultSchema, NodeBenchmarkResultViewSchema, NodeBenchmarkRunSchema, NodeBenchmarkStateSchema, NodeBenchmarkStatusSchema, NodeBenchmarkStayingCameraSchema, NodeColorIdSchema, NodeDeviceChangeSchema, NodeDirectoryEntrySchema, NodeDirectorySchema, NodeHttpsStateSchema, NodeRecommendationSchema, NodeRemovedInputSchema, NodeRemovedResultSchema, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OAUTH_LANDING_PATH, OAUTH_LANDING_REASONS, OBJECT_DETECTION_STEP_ID, OPERATOR_WRITTEN_STALE_MS, OPS_LOG_DEFAULT_LIMIT, OPS_LOG_RING_DEFAULT_MAX, OVERFLOW_REASON, OVERLAY_LAYERS, OWNER_ONLY_EVENT_CATEGORIES, OauthIntegrationDescriptorSchema, ObjectEventSchema, OccupancyBurstRefusalSchema, OccupancyLookAnswerSchema, OccupancyLookRefusalSchema, OccupancyLookRequestSchema, OidcConnectionSchema, OidcConnectionUpdateInputSchema, OnboardFieldSupportSchema, OnboardRecordTrackSchema, OnboardScheduleSupportSchema, OnboardStorageSchema, OnboardStorageVolumeSchema, OpsLogDomainSchema, OpsLogEntrySchema, OpsLogOpSchema, OpsLogQueryInputSchema, OpsLogReasonSchema, OrchestratorMetricsSchema, OrphanDeviceDataSchema, OsdNamedTemplateSchema, OsdOverlayKindEnum, OsdOverlayPatchSchema, OsdOverlaySchema, OsdPositionEnum, OsdRenderOutcomeEnum, OsdRenderResultSchema, OsdSlotBindingSchema, OsdSlotViewSchema, OsdSourceOptionSchema, OsdSourceSchema, OsdSourceValueTypeEnum, OsdStatusSchema, OsdTemplateBindingSchema, OsdTemplateFormatSchema, OsdTemplatePickSchema, OsdTemplateTokenKindSchema, OverrideDraftSchema, PALETTE_BACKGROUNDS, PALETTE_ENTRY_IDS, PALETTE_MIN_CONTRAST, PALETTE_MIN_DELTA_E, PALETTE_MIN_DELTA_E_MARK, PALETTE_PRESET_IDS, PEER_BYTES_CHUNK_BYTES, PEER_BYTES_MAX_OUTSTANDING, PEER_BYTES_STALL_MS, PEER_BYTES_TICKET_TTL_MS, PENDING_BLOCK_ID, PET_FEEDER_MANUAL_FEED_MAX, PET_FEEDER_MANUAL_FEED_MIN, PHOENIX_780M_CU, PIPELINE_ANALYTICS_CAP_NAME, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PIPELINE_RAMP, PLUG_APPLIANCE_TYPES, PLUS_CATALOG_CLASS_FLOORS, PLUS_CATALOG_STOCK_CLASS_FLOORS, PLUS_CATALOG_TO_MACRO, PLUS_CATALOG_UNMAPPED_LABELS, PREFERENCES_MAX_DEVICE_ID_LENGTH, PREFERENCES_MAX_NAMESPACES, PREFERENCES_MAX_VALUE_BYTES, PREFERENCES_NAMESPACE_PATTERN, PREFERENCES_SELF_SCOPE, PRIVACY_MASK_CAP_NAME, PROVIDER_KIND_CAP_NAMES, PROVIDER_PIN_FIELD, PUBLIC_ENDPOINT_HTTP_REASON, PYTHON_SCRIPT, PackageInstallationSchema, PackageInstallationsSchema, PackageLlmVerdictSchema, PackageUpdateSchema, PackageVersionInfoSchema, PaletteRejectedError, ParkRefusalSchema, ParkTrackFrameResultSchema, ParkedFrameKindSchema, ParkedTrackFrameSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PeerBytesTicketSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PetFountainStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineModelFormatStatusSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PlacementDeviceStatsSchema, PlacementNodeStatsSchema, PlacementStatsInputSchema, PlacementStatsSchema, PlaintextSecretError, PolygonPointSchema, PoolMemoryWatchdog, PowerMeterStatusSchema, PrecisionGopsSchema, PreferenceDeviceIdSchema, PreferenceNamespaceSchema, PreferenceRowSchema, PreferenceValueSchema, PreferencesChangedSinceInputSchema, PreferencesChangedSinceOutputSchema, PreferencesDeleteInputSchema, PreferencesDeleteOutputSchema, PreferencesGetInputSchema, PreferencesGetOutputSchema, PreferencesPutInputSchema, PreferencesPutOutputSchema, PreferencesSelfScopeSchema, PresenceStatusSchema, PressureSensorStatusSchema, PrivacyMaskOptionsSchema, PrivacyMaskPatchSchema, PrivacyMaskRegionSchema, PrivacyMaskShapeSchema, PrivacyMaskStatusSchema, ProbeTargetConfigResultSchema, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, ProviderJobStateSchema, ProviderJobStatusSchema, ProviderMotionDataSchema, ProviderStatusSchema, PtzAutotrackRuntimeStateSchema, PtzAutotrackSettingsSchema, PtzAutotrackStatusSchema, PtzAutotrackTargetOptionSchema, PtzHomePresetSchema, PtzHomeReturnSchema, PtzMoveCommandSchema, PtzOptionsSchema, PtzPositionSchema, PtzPresetFunctionSchema, PtzPresetSchema, PtzStatusSchema, QUANTITY_BASE, QuantityUnitError, QuantityValueSchema, QueryFilterSchema, RATE_CONTROL_RELAXED, RATE_CONTROL_TIGHT, REACHABILITY_FAILURES_TO_OFFLINE, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_PROBE_TIMEOUT_MS, RECALL_TIE, RECOGNITION_TYPES, RECORDING_AUDIO_TRIGGER_OFFERED_DBFS, RECORDING_EXPORT_MAX_READ_BYTES, RECORDING_SOURCE_CAMSTACK, RECORDING_SOURCE_CAMSTACK_ADDON, RECORDING_TIMELINE_BATCH_MAX, RECORDS_ERROR_CODES, RECORD_BATCH_MAX, RECORD_BATCH_MAX_BYTES, RECORD_CLASSES, RECORD_DATABASES, RECORD_DEFAULT_MAX_DATA_BYTES, RECORD_DELETE_BATCH, RECORD_ID_MAX_LENGTH, RECORD_MAX_DATA_BYTES, RECORD_MAX_INDEXES, RECORD_MAX_INDEX_FIELDS, RECORD_QUERY_MAX, RECORD_SECRET_COLLECTION_PREFIX, RECORD_SETTINGS_MAX_ROWS, RECORD_SWEEP_INTERVAL_MS, RECOVERY_CROP_MAX_SIDE_PX, RECOVERY_CROP_MIN_SIDE_PX, RECOVERY_CROP_PADDING_RATIO, RECOVERY_EDGE_MARGIN_PX, RECOVERY_FUSE_CONTAINMENT, RECOVERY_FUSE_IOU, RECOVERY_MAX_CROPS_PER_FRAME, RECOVERY_MAX_REGION_FRAME_FRACTION, RECOVERY_MIN_INTERVAL_MS, RECOVERY_MIN_UNCOVERED_FRACTION, RECOVERY_MOTION_MAX_AGE_MS, RECOVERY_VIEW_PX, REDACTED_ARG, REDACTED_SECRET, REFERENCE_COMPUTE, REFERENCE_MATCH_FRACTION, REMOTE_BUTTON_SHAPES, REMOTE_BUTTON_TONES, REMOTE_COMPONENT_CATEGORIES, REMOTE_CONFIG_REFUSALS, REMOTE_CUSTOM_ROLE_PREFIX, REMOTE_GROUP_FRAMES, REMOTE_KNOWN_ROLES, REMOTE_MAX_REPEAT, REMOTE_MEDIA_COMMANDS, REMOTE_POWER_MODES, REMOTE_REFUSAL_REASONS, REMOVAL_RECONCILE_INTERVAL_MS, REMOVED_MODEL_IDS, REMOVE_LEAF, RESERVED_BINDING_NAMES, RESERVED_COLLECTION_SOURCES, RESET_PERIODS, RESTORED_CAP_NAMES, RESTREAM_INPUT_PROBE, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, REVALIDATE_AFTER_MS, ROLLING_SPANS, ROOM_EXAMPLE_MOTION_SOURCES, ROOM_EXAMPLE_TEMPERATURE_SOURCES, ROOM_OCCUPANCY_WINDOW_MS, ROOT_BUCKET_KEY, ROOT_CHILD_CONTAINMENT_MIN, ROOT_FACE_REFINE_INPUT_PX, ROOT_FACE_REFINE_SCALE, ROOT_SUPPLIABLE_STEP_IDS, RUNNING_POWER_START_DELAY_MS, RUNNING_POWER_STOP_DELAY_MS, RUNNING_POWER_THRESHOLD_WATTS, RUNNING_STATE_COLD, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, RUNTIME_TO_FORMAT, RawSecretMigrationInputSchema, RawSecretMigrationReportSchema, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadWindowBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, ReadingQuantitySchema, RebuildObjectEmbeddingsRefusalSchema, RecentTracksPageSchema, RecentTracksQueryInput, RecommendationReasonSchema, RecordBodySchema, RecordFieldPathSchema, RecordIdSchema, RecordIndexSchema, RecordInputSchema, RecordKindDeclarationSchema, RecordKindNameSchema, RecordNotFoundError, RecordQueryInputSchema, RecordQueryResultSchema, RecordRetentionSchema, RecordSecretRefsSchema, RecordSecretUnavailableError, RecordTooLargeError, RecordTransactOpSchema, RecordTriggerSchema, RecordUniqueViolationError, RecordViewSchema, RecordWhereSchema, RecordWindowSchema, RecordingAvailabilityForDeviceSchema, RecordingAvailabilitySchema, RecordingBandAudioSchema, RecordingBandModeSchema, RecordingBandSchema, RecordingBandTriggersSchema, RecordingConfigSchema, RecordingDaysForDeviceSchema, RecordingDaysSchema, RecordingDeviceUsageSchema, RecordingLocationUsageSchema, RecordingManifestSchema, RecordingObjectTriggerClassSchema, RecordingOnboardOptionsSchema, RecordingOnboardPatchSchema, RecordingOnboardStatusSchema, RecordingPlaybackSchema, RecordingRangeSchema, RecordingReadSchema, RecordingRebalanceInputSchema, RecordingRebalanceMoveSchema, RecordingRebalancePlanSchema, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, RecordingRetentionSchema, RecordingSignalRuntimeStateSchema, RecordingSignalStatusSchema, RecordingSourceAvailabilitySchema, RecordingSourceOptionsSchema, RecordingSourceSchema, RecordingStatusSchema, RecordingStorageModeSchema, RecordingStorageUsageSchema, RecordingTriggersSchema, RecordingWeekdaySchema, RecordsError, RedirectLoginMethodSchema, RelocatableMediaCountInputSchema, RelocatableMediaCountSchema, RelocateFootageClassSchema, RelocateFootageInputSchema, RelocateJobSchema, RelocateJobStateSchema, RelocateMediaInputSchema, RelocateResidueInputSchema, RelocateResidueSchema, RemoteAssumedStateSchema, RemoteBindingActionSchema, RemoteBindingSchema, RemoteBoundCommandSchema, RemoteButtonShapeSchema, RemoteButtonToneSchema, RemoteCommandListSchema, RemoteComponentButtonSchema, RemoteComponentCategorySchema, RemoteConfigSchema, RemoteCustomButtonSchema, RemoteGroupFrameSchema, RemoteLayoutButtonSchema, RemoteLayoutComponentSchema, RemoteLayoutGroupSchema, RemoteLayoutPayloadSchema, RemoteMediaCommandResultSchema, RemoteMediaCommandSchema, RemotePowerModeSchema, RemoteRefusalReasonSchema, RemoteRoleSchema, RemoteSendResultSchema, RemoteSetConfigResultSchema, RenderedAsSchema, RenewDeviceCertificateOutputSchema, RenewDeviceCertificateResultSchema, ReportMotionInputSchema, ReportedFailureContributionSchema, ReportedLoadContributionSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, RetrainArchiveResultSchema, RetrainArchiveTargetSchema, RetrainAssistProfileSchema, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainBoxReviewSchema, RetrainCollectionCreateResultSchema, RetrainCollectionRenameResultSchema, RetrainCollectionSchema, RetrainCopyRefusalSchema, RetrainCorpusFilterSchema, RetrainCorpusKpiCameraRowSchema, RetrainCorpusKpiSchema, RetrainCorpusPageFrameSchema, RetrainCorpusPageSchema, RetrainDatasetSelectionSchema, RetrainDatasetStatsSchema, RetrainDatasetVersionSchema, RetrainDismissedSchema, RetrainExportFilterSchema, RetrainExportLayoutSchema, RetrainFrameCandidateSchema, RetrainFrameListSchema, RetrainFrameOriginSchema, RetrainFrameReviewSchema, RetrainFrameSchema, RetrainFrameSelectionSchema, RetrainFrameWorkStateSchema, RetrainLlmAssistResultSchema, RetrainLlmProposalSchema, RetrainLlmReviewSchema, RetrainMacroClassSchema, RetrainOriginSchema, RetrainPipelineBoxSchema, RetrainReviewStatusSchema, RetrainStatusSchema, RetrainTrackSchema, RetrainTrainingCorpusResolveResultSchema, RetrainTrainingCorpusSelectionSchema, RetrainTransitionResultSchema, RevConflictError, RevokeOwnDeviceCertificateResultSchema, RingBuffer, RollingWindowSchema, RootStepSupplySchema, RtpSourceSchema, RtspRestreamEntrySchema, RunGate, RunnerBootCheckSchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerJumpStepProvisioningSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, RunnerRefusalSchema, RunningStateSourceSchema, RunningStateStatusSchema, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, SCOPE_PRESETS, SECRET_CLEAR, SECRET_META, SECRET_REF_SCHEME, SENSOR_FEATURES, SENSOR_MAP, SERIAL_CAPACITY_CAMERA_FPS, SERIES_KINDS, SERVER_NAME_MAX_LENGTH, SERVER_NAME_SETTING_KEY, SESSION_LOST_ALERT_CATEGORY, SESSION_PLACEMENT_SETTING_KEY, SHARE_AFFINITY_TOLERANCE_SESSIONS, SHARE_SOURCE_SETTING_KEY, SHARE_VIEW_KINDS, SHARE_VIEW_MAX_DEVICES, SINGLE_HUB_ADDRESS_ROLES, SOURCE_CAPS, SOURCE_CAP_ACTIVE_FIELD, SOURCE_CAP_CHANGED_AT_FIELD, SOURCE_DEVICE_TYPES, SOURCE_INFO_METADATA_KEY, SSO_STATE_COOKIE, SSO_STATE_COOKIE_MAX_AGE_SEC, STATE_LABELS, STATE_LABEL_KEYS, STATIONARY_OVERLAY_STYLE, STATISTIC_STATS, STORAGE_ACCESS_FALLBACK, STORAGE_BYTES_PER_GB, STORAGE_LOCATION_MODES, STREAM_PROFILE_META, STREAM_QUALITY_LABELS, SUBJECT_PATH_DWELL_EPS, SUBJECT_PATH_FULL_FRAME_COVERAGE, SUBJECT_PATH_MAX_POINTS, SUB_DETECTION_TYPES, SYSTEM_CAP_NAMES, SYSTEM_SCOPE_DEVICE_METHODS, SceneCheckSchema, SceneConditionSchema, SceneConfirmSchema, SceneMonitorSchema, SceneMonitorStateSchema, SceneMonitorStatusForDeviceSchema, SceneMonitorStatusSchema, SceneReferenceSchema, SceneUnavailableSchema, SceneUncoveredPolicySchema, SceneVerdictSchema, ScopedTokenSchema, ScoredObjectEventSchema, ScriptRunnerStatusSchema, SearchResultSchema, SendEmailInputSchema, SendEmailResultSchema, SendResultSchema, SensorEventSchema, ServerBootModeSchema, ServerNameInfoSchema, ServerNameSchema, ServerPackageStatusSchema, ServerRollbackInfoSchema, ServerUpdateActionResultSchema, ServerUpdateCheckResultSchema, ServerUpdateOutcomeSchema, ServerUpdateStateSchema, SessionHealthTracker, SessionPlacementPolicySchema, SessionTriggerSchema, SetCameraSensorsInputSchema, SetLoggingSettingsInputSchema, SetShareSourceInputSchema, SetSiteLocationInputSchema, SetTrackPurityInputSchema, SetTrackPurityResultSchema, SetTrackRelationInputSchema, SettingsPatchSchema, SettingsRecordSchema, SettingsSchemaWithValuesSchema, SettingsUpdateResultSchema, ShareSourceSchema, ShareViewGrantSchema, ShareViewScopeSchema, ShareWeightsSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, SiteZoneSchema, SmokeStatusSchema, SmtpStatusSchema, SnapshotImageSchema, SourceInfoSchema, SpatialDetectionSchema, SsoBridgeClaimsSchema, StaleDataReportSchema, StaleDevicePinSchema, StaleKindFindingSchema, StaleSettingsKeyFindingSchema, StartEmbeddedInputSchema, StartEnrollmentOutputSchema, StationaryObjectSchema, StationarySubjectSchema, StatisticHelperSpecSchema, StatisticWindowSchema, AbortUploadInputSchema as StorageAbortUploadInputSchema, StorageAccessSchema, BeginDownloadInputSchema as StorageBeginDownloadInputSchema, BeginDownloadResultSchema as StorageBeginDownloadResultSchema, BeginUploadInputSchema as StorageBeginUploadInputSchema, BeginUploadResultSchema as StorageBeginUploadResultSchema, StorageCleanupInputSchema, StorageCleanupJobSchema, StorageCleanupPhaseSchema, StorageCleanupStatusInputSchema, StorageDrainProgressSchema, EndDownloadInputSchema as StorageEndDownloadInputSchema, StorageEvictionPolicySchema, FinalizeUploadInputSchema as StorageFinalizeUploadInputSchema, StorageKindSchema, StorageLocationDeclarationSchema, StorageLocationModeSchema, StorageLocationRefSchema, StorageLocationSchema, StorageLocationTypeSchema, StorageMigrationClassSchema, StorageMigrationDestinationsSchema, StorageMigrationDrainInputSchema, StorageMigrationFindingCodeSchema, StorageMigrationFindingSchema, StorageMigrationFootageMoveInputSchema, StorageMigrationInputSchema, StorageMigrationJobSchema, StorageMigrationLaneSchema, StorageMigrationLeaseInputSchema, StorageMigrationMediaMoveInputSchema, StorageMigrationModeSchema, StorageMigrationMoveProgressSchema, StorageMigrationMoveSchema, StorageMigrationMoverSchema, StorageMigrationParticipantSchema, StorageMigrationPhaseSchema, StorageMigrationPlanSchema, StorageMigrationResidueSchema, StorageMigrationSourcesSchema, StorageOccupancyReportSchema, ProviderInfoSchema as StorageProviderInfoSchema, ReadChunkInputSchema as StorageReadChunkInputSchema, StorageTableSchema, TestLocationResultSchema as StorageTestLocationResultSchema, WriteChunkInputSchema as StorageWriteChunkInputSchema, StoredRecordKindDeclarationSchema, StreamCodecSchema, StreamFormatSchema, StreamNetworkStatsSchema, StreamParamsOptionsSchema, StreamParamsStatusSchema, StreamProfileConfigSchema, StreamProfileOptionsSchema, StreamProfilePatchSchema, StreamProfileSchema, StreamSignalSchema, StreamSignalsStatusSchema, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, SuggestSharesInputSchema, SuggestSharesResultSchema, SuggestedDeviceShareSchema, SuggestedNodeShareSchema, SuppliedRootOutputSchema, SwitchStatusSchema, SystemHeldSecretNameSchema, SystemMetricsSchema, SystemMirror, TEMPLATE_KINDS, TEMPLATE_PAYLOAD_SCHEMAS, TEMPLATE_WRITE_REFUSALS, TIMELAPSE_DENSE_FLOOR_SEC, TIMEZONES, TRACK_RELATIONS_DEFAULT_LIMIT, TRAINING_JOB_SCHEMA, TRAINING_RESULT_SCHEMA, TRANSCODE_DOWN_MAX_BITRATE_KBPS, TRANSCODE_DOWN_MAX_HEIGHT, TamperStatusSchema, TargetKindCapsSchema, TargetKindLevelSchema, TargetKindSchema, TargetSchema, TemperatureSensorStatusSchema, TemplateDeleteResultSchema, TemplateKindSchema, TemplateRecordSchema, TemplateUserSchema, TemplateWriteResultSchema, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, ThresholdHelperSpecSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TraceNodeOutcomeSchema, TraceValueSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, TrackPlacementSchema, TrackProjectionSchema, TrackPuritySchema, TrackPurityValueSchema, TrackRelationKindSchema, TrackRelationRefusalSchema, TrackRelationSchema, TrackSchema, TrackSideSchema, TrackSourceSchema, TrackStateSchema, TrackZoneFilterSchema, TrackedDetectionSchema, TrainerSourceRefSchema, TrainingAcceleratorRefSchema, TrainingBaseModelSchema, TrainingCanarySchema, TrainingCanaryTargetSchema, TrainingCatalogDraftSchema, TrainingCorpusSelectionSchema, TrainingCredentialCheckSchema, TrainingEvalClassSchema, TrainingEvalReportSchema, TrainingEventSchema, TrainingExportDeviceTotalsSchema, TrainingExportSchema, TrainingExportSummarySchema, TrainingFailureReasonSchema, TrainingGpuOptionSchema, TrainingJobPlanSchema, TrainingJobRequestSchema, TrainingJobSchema, TrainingJobSpecSchema, TrainingJobStateSchema, TrainingLogLineSchema, TrainingPresetSchema, TrainingProgressPointSchema, TrainingProviderDefaultsSchema, TrainingProviderDescriptorSchema, TrainingProviderEntrySchema, TrainingProviderTypeSchema, TrainingProviderUpdateEntryInputSchema, TrainingRefusalReasonSchema, TrainingRegionOptionSchema, TrainingResultFileSchema, TrainingResultSchema, TrainingSplitPlanSchema, TrainingStageSchema, TransactRefusedError, TransmitSettingKeySchema, TransmitSettingsSchema, TransportPlaneCountsSchema, TransportPlaneSchema, TurnServerSchema, UNATTRIBUTED_BUCKET_KEY, UNIT_TABLE, UNLOCK_CONFIRMATION, USE_ROOT_MODEL_DEFAULTS, USE_ROOT_MODEL_SETTING_KEY, UnexposeEntityInputSchema, UnindexedFilterError, UninstallNodeOutcomeSchema, UninstallNodeResultSchema, UninstallPackageResultSchema, UnitConversionError, UnitWarningSchema, UnknownRecordKindError, UnreleasedClaimSchema, UnstampedEventMediaCountSchema, UnstampedRowsSchema, UpdateBlockerSchema, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserScopeSchema, UserSummarySchema, VECTOR_INDEX_DIM_CONFLICT, VENDOR_LOGIN_PROXY_PREFIX, VIDEOCLIPS_MAX_OFFER_BYTES, VIDEOCLIPS_MAX_READ_BYTES, VIEWER_FEATURES, VIEWER_FEATURE_IDS, VISIT_MERGE_GAP_MS, VOCAB_TEMPLATES, VacuumControlStatusSchema, VacuumStateSchema, ValveStateSchema, ValveStatusSchema, VectorDeclareIndexInputSchema, VectorDeleteByFilterInputSchema, VectorDeleteInputSchema, VectorDeleteResultSchema, VectorFilterSchema, VectorGetInputSchema, VectorGetResultSchema, VectorItemSchema, VectorMatchSchema, VectorMetadataSchema, VectorMetricSchema, VectorQueryInputSchema, VectorQueryResultSchema, VectorStatsInputSchema, VectorStatsResultSchema, VectorUpsertInputSchema, VectorUpsertResultSchema, VendorLoginProxy, VibrationStatusSchema, VideoEncodeSchema, ViewerDeviceAllowSchema, ViewerFeatureIdSchema, ViewerTokenScopeSchema, WEBRTC_CLIMB_HOLD_CODES, WEBRTC_EGRESS_PROFILE, WEBRTC_TRY_BLOCKERS, WEEKLY_MASK_LENGTH, WELL_KNOWN_TABS, WELL_KNOWN_TAB_MAP, WaterHeaterStatusSchema, WeatherStatusSchema, WebrtcClimbHoldSchema, WebrtcLadderDecisionSchema, WebrtcSessionDebugSchema, WebrtcStreamChoiceSchema, WebrtcStreamTargetSchema, WebrtcTierFailureSchema, WhiteBalanceModeSchema, WidgetHostEnum, WidgetLoginMethodSchema, WidgetMetadataSchema, WidgetRemoteSchema, WidgetSizeEnum, WrapperActivationReadSchema, WrapperEvidenceSchema, WrapperIdentitySchema, WrapperKindSchema, YAMNET_TO_MACRO, ZoneCrossingDirectionSchema, ZoneCrossingSchema, ZoneKindEnum, ZoneRuleModeEnum, ZoneRuleSchema, ZoneRuleStageEnum, ZoneRulesArraySchema, ZoneSchema, ZoneScopeBreakdownSchema, __resetLogChannelRegistryForTests, acceleratorKindOf, accessoriesCapability, accessoryChildrenComplete, accessoryChildrenUnknown, accessoryStableId, actionSourceCapability, actionsCapability, actionsForBoundCaps, actionsForDevice, actionsForDeviceType, actionsForDevices, activateAlarmProfile, activeForReducer, actuatorMethodRow, addonCatalogHref, addonIdOfActionId, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advertisedHubOrigins, aggregateThroughputFactor, airQualitySensorCapability, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPanelCapability, alarmPatchLanded, alarmProfileById, alertEpisodeId, alertEpisodeKind, alertEpisodePayload, alertNodeId, alertsCapability, allDoActions, allowedSuppliedEffect, ambientLightSensorCapability, annotateClipsWithEventLabels, anySubjectMatches, appFlowLocation, appendTrace, applianceDeviceType, applianceExport, applyBlockingEdit, applyCropClassFloors, applyModeDelaysEdits, applyModeDeviceListEdit, applyModelBoundSettings, applyNonBlockingEdit, applySecureOnArmEdit, arithmeticDraft, armRemovalReconcile, arrayItemFieldPath, asBoolean, asJsonArray, asJsonObject, asNumber, asRecordsError, asString, assertTimelapseCadences, assertTransactScope, assertValidDeclaration, assignNodeColorId, audioAnalysisCapability, audioAnalyzerCapability, audioChunkBytesPerSample, audioCodecCapability, audioIsFailClosed, audioKindId, audioLabelChoices, audioMetricsCapability, audioModeOf, audioOrDefaults, audioPlanFromEncodeProfile, audioScaleEraOf, authProviderCapability, autoAssignProfiles, automationControlCapability, backupCapability, bareAddonId, baseUnitForQuantity, baseUnitOf, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, bucketStartOf, buildActionSteps, buildAddonRouteProvider, buildAudioArgs, buildBenchStepTree, buildCapabilityLookup, buildDeviceAdminUrl, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, buildEventKindDescriptor, buildFfmpegArgs, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildPlusCatalogClassMap, buildRoleScopes, buildSecretRef, buildSessionLostAlert, buildStepArgsTrace, buildStreamParamsConfigSchema, buildSubjectPath, buildTriggerTrace, buildVideoArgs, buildViewerLink, builtCapabilityBlockers, builtinRemoteComponent, bundledCamstack, buttonCapability, calendarEventLocalSpan, calendarEventOnLocalDay, calendarSourceCapability, calendarsCapability, cameraCredentialsCapability, cameraGridLayoutCapability, cameraOwnsMotionViaSensor, cameraPipelineConfigCapability, cameraScopedStepSettings, cameraSensorRefKey, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, canonicalIconKey, canonicalizeAppCallback, capUnitResolver, capabilityScopesOf, capacityForModel, capacitySessionsOf, carbonMonoxideCapability, cellsToRects, checkRoleAddress, checkTemplatePayload, claimedRequestOrigins, classifyBearerPrincipal, classifyCamerasForBenchmark, classifyFieldSource, classifyInferenceHardware, classifyRetrainReview, classifySecretWrite, classifyStoreError, classifyStream, classifyStreams, clearKnownSecrets, clearModelBoundOverrides, clearModelBoundSetting, climateControlCapability, clipEventLabelDepsFromApi, clipExportFailure, clipExportFailureOf, clipLabelsForWindow, clipReasonHeaderValue, cloneAlarmSettings, cloneStatefulExpressionMemory, clusterModelSettingKey, clusterStepSettingFieldsFor, clusterStepSettingKey, codecIsAccepted, collectHydratedFieldEntries, collectHydratedFieldValues, collectKeychainStoredKeys, collectMirrorSources, collectModelBoundKeys, collectSecretConfigKeys, collectSecretLeaves, collectSecretMarkerRefs, collectWhenMirrorSources, collectZodSecretPaths, colorCapability, colorForKind, commandMethodProblems, commandedMethods, commitWatchdogRestart, compareToTarget, compileExpression, compileExpressionSafe, compileHelper, compileKeyedArrayOverride, compilePulseOverride, compileScalarOverride, compileSpanOverride, composeSwitchedOff, composedDeviceRef, composedDeviceStableId, composerCapability, compositionEdges, compositionFeatureEnabled, compositionFieldKey, compositionFillStatus, compositionItemFieldPath, compositionReadKey, compositionSliceKey, compositionSourceKey, compositionSourceRefs, computeCapacityShares, computeScores, conditionExclusionReason, conditionVisibleForKind, connectionTestCapability, connectivityCapability, consumableFormOf, consumableKindOf, consumableLowPercentOf, consumablesCapability, contactCapability, containingParentIndex, controlCapability, convertLegacyCondition, convertLegacyRecipe, convertLegacyWhen, convertPresetFeature, convertQuantityInput, convertUnit, convertUnitTargets, coralUsableUnits, coreBlockAddonId, coreBlockComposition, coreBlockIdFromAddonId, coreBlockSourceKind, coreBlocksCapability, cosineSimilarity, countRecoverySkips, countWhenLeaves, coverCapability, createAlarmProfile, createDeviceExtensionProvider, createDeviceProxy, createDurableState, createEvent, createEventBusSliceSource, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createLogChannelsProvider, createMirrorSource, createRecordsAccess, createRuntimeStateBridge, createSecretsAccess, createSliceHandle, createStatefulExpressionMemory, createSystemProxy, customAction, customKeyOfRole, customModelRegistryCapability, customRole, dataStoreProviderCapability, databaseSnapshotCapability, dayNightCapability, dayOfWeekToIndex, declarationOwnerNodeId, declarationsOf, declareLogChannel, declaredSeriesKind, decodeCompositionToCards, decodeKeyedArrayOverride, decodePronto, decodePulseOverride, decodeScalarOverride, decodeVectorBase64, decoderCapability, defaultDeliveryForSection, defaultDeviceFor, defineCustomActions, defineEntryKind, defineExtensionSlotProvider, defineRecordKinds, dehydrateConfigField, dehydrateSchema, deleteAlarmProfile, deliveryParamsDeclaredBy, derivativeDraft, derivativeUnitLabel, deriveBatteryPresence, deriveCameraSwitches, deriveDetailCropRect, deriveMaskSupplies, derivePostTriggeredAction, deriveRecordingMode, deriveRootFaceRefineRect, deriveRootSupplies, describeComposableCaps, describeCustomActions, describeModelVariant, describeOnboardClamp, describeOnboardRefusal, describeRootSupplies, describeRootSupply, describeStateField, describeSubject, describeSystemEventDeliveryProblem, describeSystemEventFamilyProblem, describeTopLevelStateFields, detectAccessRole, detectionClassMatches, detectionPipelineCapability, deviceAdminLinkCapability, deviceAdoptionCapability, deviceAttentionKind, deviceBackendToFormat, deviceCredentialsCapability, deviceCustomAction, deviceDiscoveryCapability, deviceDoFamily, deviceExportCapability, deviceExtensionCapability, deviceHistoryCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceRefusalFromMessage, deviceRemovalHookCapability, deviceSelectorMatches, deviceStateCapability, deviceStatusCapability, diffStepSettings, disarmRoseMemory, dishwasherCapability, displayPaletteCapability, displayUnitFor, doActionSelectValue, dominantClipLabels, doorbellCapability, droppedConditionsForKind, edgetpuDelegateDevice, effectiveStepSettings, egressTranscodeSharingKey, egressTransportFromRequest, electByShare, electByShareWithAffinity, eligibleUnderBenchmark, embeddingEncoderCapability, embeddingModelFailedError, embeddingModelFailedOf, embeddingRefusalOf, embeddingRequirementsFailedError, embeddingRequirementsUnavailableError, emitDownForOwnedCaps, emitReadiness, emitsCollectionSelector, encodeCardsToComposition, encodeProfileFromStreamShape, encodeVectorBase64, ensureAlarmProfiles, entryBody, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, estimateNodeBenchmarkDurationMs, evaluateAggregate, evaluateAst, evaluateCompositionField, evaluateConditionTree, evaluateCount, evaluateDerivative, evaluateExpressionSource, evaluatePoolMemory, evaluateRose, evaluateSensorEdge, evaluateSensorLevelEdge, evaluateStatefulExpressionCall, evaluateStationaryTrigger, evaluateStatistic, evaluateWhenTree, evaluateZoneRules, event, eventEmitterCapability, eventKindLabel, eventOverlapsClipWindow, evictionPolicyForMode, evictionPolicyOfLocation, expandAudioChunkToF32le, expandCapMethods, expandContainer, expandSystemEventClasses, exportSubjectOf, exposeBlockDevices, expressionContainsBuiltinCall, expressionDraft, extensionSlotRef, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, failureContributionCapability, failureRate, fanControlCapability, fanOutTargets, featureFieldEntries, featureForwards, featureOfRole, featureProbeCapability, featureSources, feederCustomizationExample, feederExampleSources, ffmpegRate, fieldEntryToSource, fieldReads, fieldUnitKeys, fieldsPinnedAtValueBelow, filesystemBrowseCapability, fillWidthScale, findCandidateCycles, findCompositionCycles, findTimezone, floodCapability, foldSnapshotByFunction, forEachLeaf, foreignCapacityCells, forgetKnownSecret, formatDeviceRevoker, formatForRuntime, formatMediaOwnerKey, formatMinutes, formatPaletteViolations, formatParkedFor, formatReading, formatSecretScope, formulaProblem, forwardProblems, forwardSourceProblems, forwardSourceRefs, freshResults, fuseRecoveredDetections, gasCapability, gbToBytes, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getLogChannelRegistry, getTaxonomyEntry, gifDeriveSpeed, gifFilterComplex, gifFromMp4Args, globalSecretScope, grantRowsOf, groupActiveCapability, groupCommandsCapability, groupStatusCapability, groupTemplate, hasEventLeaves, hasModelBoundOverrides, hasMotionTrigger, hasUrlScheme, heatingValveCapability, helperMembers, helperSaveProblems, hfModelUrl, historyFieldsFor, historyItemFieldPath, historyUnitFor, htmlToText, hubAddressHostname, hubMotionNativeProvider, humidifierCapability, humiditySensorCapability, hydrateSchema, iconCategoryLabel, iconEntry, iconsInCategory, imageCapability, imageModesForKind, imageSettingsCapability, inferExpressionKinds, inferModelProvider, ingestReading, initialPoolMemoryState, insertComponent, integralCadenceMs, integralDraft, integrateReading, integrationsCapability, intercomCapability, internalActionId, interpolate, interpretStoredClusterModel, invalidClusterStepModelEntries, invertPresetFeature, invocationFromEncodeProfile, irTransmitterCapability, isAgentOnlyPlacement, isAlarmControllableCap, isAlertEpisodeOpen, isAlertEpisodeSeverity, isAppLinkBase, isAppStartRefusal, isApplianceKind, isArrayOutputSchema, isAudioChunkFormat, isAudioClassName, isAudioLabelSelected, isAudioRule, isAutomaticShareSource, isBaseConditionKey, isBatteryPresenceFault, isClusterScopedStep, isCollectionArrayMethod, isCredentialTokenPayload, isDefaultAlarmProfileId, isDefaultAppConnectionEndpoint, isDefinitiveDeviceRefusal, isDeployableToAgent, isDetectionMacroClass, isDeviceConfigCap, isDeviceScopedCap, isDoActionActuatable, isDoPickerDeviceType, isDrawableSubjectPath, isEmbeddingModelFailed, isEvent, isEventKindLabelKey, isEventLeaf, isEventOwnerType, isFirstLevelMacroClass, isForwardInputRef, isHeldBackTemplateVar, isHistoryHelper, isIconKey, isInternalActionId, isIsolatedBuiltin, isKeychainStoredField, isKnownTemplateVar, isLabelSupplyStepId, isLeaf, isLocationEnabled, isMediaOwnerType, isModelScopedStepSettingKey, isNode, isOauthLandingReason, isObjectInput, isOccupancyRule, isOwnerOnlyEventCategory, isPlugApplianceType, isQuantityValue, isReadingQuantity, isRemoteCustomKey, isRemoteKnownRole, isRemoteRole, isRemovedModelId, isRestoredCap, isRetiredClearKey, isRootSuppliableStepId, isSameAddonId, isScheduleActive, isSecretClear, isSecretConfigField, isSecretFieldView, isSecretMarker, isSecretMarkerLike, isSecretRef, isSecretRefOwnedBy, isSingleHubAddressRole, isSkippedTrace, isSoftwareDecode, isSourceCap, isStateLabelKey, isStatefulBuiltin, isStorageLocationMode, isSystemDelivery, isSystemEventFamily, isSystemEventRecoveryKind, isSystemEventSummaryRule, isSystemRuleKind, isTemplateKind, isUnfilledRequiredProblem, isVectorIndexDimConflict, isVoidInput, isZodSecret, ituDbfsFromPreEpoch, jobKindSchema, kebabToCamel, keychainAdminCapability, keychainCapability, kindOfValue, kindsForDiscriminator, knownSecretCount, knownValues, lawnMowerControlCapability, legacyAutoLinkIds, legacyImageMode, legacyModeOf, lifecycleJobSchema, lifecycleJobScopeSchema, lifecycleJobStateSchema, lifecycleTaskSchema, linkedLabelStepId, linkedStepOf, listBenchDetailSteps, llmCapability, llmRuntimeCapability, loadContributionCapability, localNetworkCapability, localizeConfigTree, locationIconKey, locationSimilarity, lockControlCapability, logBannerArgs, logChannelsCapability, logDestinationCapability, logLevelAtMost, loginMethodCapability, looseSchema, makeInMemoryRecords, makeProfileBrokerId, makeSecretMarker, makeSourceBrokerId, mapAudioLabelToMacro, mapSecretLeaves, markFieldEdited, markdownToHtmlLite, markdownToText, maskUrlCredentials, matchDoAction, maxDurationMs, mayReadLocation, mayWriteToLocation, measuredCapacityFromResults, measuredDetectorCells, mediaPlayerCapability, memoizePinnedFfmpeg, mergeClipLabels, mergeKeyedArrayItem, mergeOverrides, mergeScalarTarget, mergeSecretStatePaths, mergeSettingsBags, mergeSkipTraces, mergeSourceInfo, meshNetworkCapability, meterCapability, method, methodAccessForHttpMethod, methodRefusal, methodRoleOf, metricsProviderCapability, migrateLegacyDeviceSignalConfig, minutesToTimeOfDay, modeMayRead, modeMayWrite, modelBindingKey, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, modelScopedStepSettingKeys, motionCapability, motionDetectionCapability, motionSourceLabel, motionTriggerCapability, motionZonesCapability, moveGroup, mqttBrokerCapability, nativeObjectDetectionCapability, navigationCapability, ncAlarmSystemDefaultSettings, ncMediaPolicyError, networkAccessCapability, networkLinkCapability, networkQualityCapability, nextLocalMidnight, nodeBenchmarkRefusals, nodeCertificatesCapability, nodePickerItems, nodePin, nodeRemovalHookCapability, nodesCapability, normalizeActionUnits, normalizeAddonInitResult, normalizeAudioLabel, normalizeConditionUnits, normalizeCoreBlockWrite, normalizeNcMediaPolicy, normalizeNodeId, normalizeOrigin, normalizeRecipeUnits, normalizeSecretOwner, normalizeTokenScopes, normalizeUnit, normalizedArea, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, oauthLandingUrl, objectInputDeclaresAddonId, objectInputDeclaresRequiredDeviceId, occupancyScope, oidcConnectionsCapability, omitTransientConfig, openReset, openStatistic, optionalAncestors, optionalMethod, osdCapability, osdManagerCapability, overlayClusterStepSettings, ownedSlice, packagePickerItems, paintHex, paletteEntryLabel, paletteFromInput, paletteFromStored, paletteLegend, paletteResultSchema, paletteSwatchSchema, paramMeta, paramMetaOf, parseAcceleratorFactsJson, parseAdminBase, parseAlertEpisodePayload, parseAppAuthCallback, parseAppFlowRequest, parseAppPageLang, parseCameraStreamConfig, parseColorInput, parseCredentialScopes, parseDeviceEnrollmentLink, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseMediaOwnerKey, parseOauthLandingFragment, parseOccupancyScope, parseProcStatus, parseProfileBrokerId, parseRetrainRevisionConflict, parseRuleSection, parseSecretPath, parseSecretRef, parseSecretStatePath, parseSessionPlacementPolicy, parseShareSource, parseSmartIr, parseStreamParamsFormPatch, parseTrainingEventLine, patchAudio, petFeederCapability, petFountainCapability, petFountainFromEntitiesComposition, pickAccessoryControl, pickAppLinkHub, pickClusterStepModels, pickClusterStepSettings, pickDetailCropConvention, pickFaceRescoreIntervalMinutes, pickInvalidClusterStepModels, pickNativeLeaseOverride, pickPreferredRtspEntry, pickRequestOrigin, pickRestartCandidate, pickVideoEncoder, pickerForCondition, pickerForRuleClasses, pinUnderBenchmark, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, planComposition, planCompositionEvents, planItems, planMotionCropRegions, planMotionCrops, planRecoveryCrops, planResetTier, planStatisticTier, plateGalleryCapability, platformProbeCapability, plusCatalogDefaultClassFloors, plusCatalogLabelFields, poolMemoryThreshold, powerMeterCapability, prepareNotification, prepareRecipeUnits, presenceCapability, presetById, pressureSensorCapability, primaryCapForRole, principalMayReachAddon, privacyMaskCapability, problemsBlockSave, procedureAuthKey, projectKeyedArrayAssignment, projectPulseAssignment, projectScalarAssignment, projectSpanAssignment, projectSubjectPath, providerMotionEvent, pruneDeletedEntities, ptzAutotrackCapability, ptzCapability, publicEventCategories, pythonScriptForBackend, quantityFromUnit, rankStreams, readClusterStepModels, readClusterStepSettings, readDetailCropConvention, readDeviceStateFrom, readErrorI18n, readFaceRescoreIntervalMinutes, readHubMotionDetected, readHubMotionStatus, readKeyedArrayItems, readMotionTriggeredBy, readNativeLeaseOverride, readNodePin, readRecoveryRecipe, readRecoveryRecipeForSteps, readTimelapseGeneratedAt, readUseRootModel, readinessKey, readingMeta, rebootCapability, recommendNode, reconcileBlockDevices, reconcileRemovedDevices, recordArrayItemPath, recordEntriesCapability, recordSecretCollection, recordSecretRef, recordingArchiveCapability, recordingCapability, recordingExportCapability, recordingOnboardCapability, recordingSignalCapability, recordsCapability, recordsErrorFromMessage, rectContains, rectsOverlap, rectsToCells, reducePoints, reducerForActive, registerKnownSecret, remapCropDetections, remoteCapability, remoteLayoutComponentsCapability, removeGroup, removeScalarTarget, renameAlarmProfile, renderVocabPhrase, replacedFieldKeys, reportIsScalable, requestMountPrefix, requiredTopLevelKeys, requiresPython, reservedSourceOwner, resetPoolBaseline, resolveActionVariables, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAppConnections, resolveBucketMs, resolveCapMount, resolveClipSearchMinScore, resolveClusterStepModelId, resolveContainerPrimaryChild, resolveCoreBlockEntry, resolveCoreBlockFiles, resolveCreateExportSubject, resolveDeliveryParams, resolveDeviceControlKind, resolveDeviceProfile, resolveDeviceTarget, resolveEffectiveShares, resolveEgressDecodeHwAccel, resolveExportProfiles, resolveFormat, resolveHubAddressRoles, resolveHydratedFieldValue, resolveIconKey, resolveInternalAddress, resolveLatencyColumn, resolveLocationMode, resolveMethodAuth, resolveMethodRole, resolveModeDelays, resolveModeNotifyPolicy, resolveModelBoundSetting, resolveMutate, resolveNcMediaImage, resolveNotificationTapAddress, resolvePoolMemoryPolicy, resolvePublicEndpoint, resolveRecordingProfiles, resolveRootSupply, resolveRunnerId, resolveSecretMarkers, resolveSecretViewsIn, resolveServerName, resolveStepArgs, resolveStreamMaps, resolveVariantModelId, resolveViewableDeviceIds, resultCellKey, resultStandings, retrainBoxIou, retrainRevisionConflictMessage, rewriteBody as rewriteLoginProxyBody, rewriteLocation as rewriteLoginProxyLocation, rewriteReferer as rewriteLoginProxyReferer, rewriteSetCookie as rewriteLoginProxySetCookie, roleSpec, rollingDurationMs, roomCompositionExample, rootSuppliesOf, rootSupplyServes, ruleAutoTriggersAlarm, ruleBelongsToAlarm, ruleDeviceCompatCapNames, ruleDeviceCompatCapQueries, ruleEditorSectionsForKind, ruleGatedOnArmedState, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, ruleTriggerZoneIds, runExportedAction, runFanOut, runInferenceStep, runSteps, runningFromDishwasherOperation, runningFromLawnMower, runningFromMediaPlayer, runningFromVacuumState, runningStateCapability, runtimeDevices, runtimeFieldUnit, runtimeStatePolicyFor, sameDoFamily, sameHelperBody, sameRead, scalarTargetCount, sceneMonitorCapability, scheduleForSendTimes, schemaDeclaresAnyField, scopeInherits, scopeKey, scopesAllowAddon, scopesAllowAddonRoutes, scopesAllowDeviceCap, scopesAllowOwnPreferences, scopesGrantAdmin, scoreRuntimes, scriptRunnerCapability, scrubKnownSecrets, searchIcons, secretArrayPrefixes, secretTreeFromPaths, secretTreeFromSchema, secureActuationFor, selectAppConnectionEndpoints, selectAssignedProfileSlots, selectRecoveryStep, sendTimesForEditor, sendTimesOfSchedule, sendToExportedTarget, sensorRaisedOf, sensorTransitionNeverFires, sensorTransitionOffered, servedTemplateVars, serverManagementCapability, sessionLostAlertId, sessionsOfDeviceCell, setByPath, setFormulaExpr, setPaletteInputSchema, settingValuesEqual, settingsBelow, settingsStoreCapability, shareViewGrantOf, sharedActuatorFeatures, sharedActuatorMethods, sharedColorModes, sharedLightCaps, shortHostname, shortSecretRefHash, signalPercentFromBars, signalPercentFromRssi, siteZoneKey, skipSignature, sleep, sleepCancellable, sliceActiveValue, sliceChangedAt, smartIrDraft, smokeCapability, smtpProviderCapability, snapshotCapability, sourcePickForAppliance, sourcePickForHistory, sourcePickForMath, sourcePickForTemplate, splitTranslationRef, squareAround, ssoBridgeCapability, startMoverUnderClearance, startReachabilityPoll, stateLabel, stateVocabularyFor, statisticCadenceMs, statisticDraft, stepModelRunsOnFormat, stepPulse, stepSettingSource, stepSpan, storageAdminCapability, storageCapability, storageEvictableCapability, storageMigrationCapability, storageOccupancyCapability, storageProviderCapability, storedFromReady, storedPaletteSchema, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, streamSignalsCapability, stripRetiredBandPreBufferSec, strippedOfLegacyReadOnly, subClassesOf, subKindsOf, subjectFromClassName, subjectHasPath, subjectMatches, subjectPathSampleFromBox, subjectPathSvgPoints, summarisePrivacyAudio, summarizeEffectiveScope, summarizeReview, supplyFor, supportedRuntimes, swatchHex, switchCapability, switchedOffIds, syncActiveAlarmProfileSettings, synthesizeSourceInfo, systemCapability, systemEventClassKinds, systemEventClassOf, systemEventClassesFor, systemEventDeliveryProblems, systemEventFamilyOf, systemEventFamilyProblems, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, systemEventKindNamesOf, systemEventKindsOfFamily, systemEventSummaryScheduleOf, systemEventSummarySplitOf, systemFamilyOfKind, systemRuleKindOf, tamperCapability, targetFeature, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, templateCapability, templateCarriesSummary, templateDeviceType, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, templateVarsFor, terminalSessionCapability, textToHtml, thresholdDraft, thresholdToBase, thresholdToDisplay, timeOfDayToMinutes, toAppLinkHubOrigin, toDeviceSummary, toExpressionValue, toNodeId, toPercentShares, toSecretFieldView, toStreamSourceEntry, toTimings, toastCapability, toggleAudioLabel, tokenize, trainingCapability, trainingProviderCapability, transcodeBody, transformSecretWrite, tryConvertDelta, tryConvertUnit, turnProviderCapability, ungroup, unitCompanionField, unitDimension, unitsForDimension, unitsForQuantity, unreachableExtensionSlotRow, unwrapSchema, updateCapability, userError, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateComposition, validateCustomAddress, validateExpressionSource, validatePalette, validateRecipeBounds, validateWhenTree, valveCapability, vectorDimFromBase64, vectorIndexDimConflictError, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerAdmitsDevice, viewerHoldsRole, viewerLinkBaseOf, viewerScopeOf, viewerUiCapability, actionsForDevice$1 as vocabularyActionsForDevice, triggersForDevice as vocabularyTriggersForDevice, waterHeaterCapability, wattMillisecondsToKwh, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, weeklyMaskIndex, weeklyMaskIsUniform, weeklyMaskToWindows, whenDepth, widenDeviceConstructor, windowsToWeeklyMask, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, withClipEventLabels, withFieldFrom, withLocationMode, withSystemEventClasses, withoutCallerStamp, withoutField, withoutKeyedArrayItem, writeModelBoundSetting, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };