@camstack/types 1.2.404 → 1.2.406
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.
- package/dist/addon.js +21 -2
- package/dist/addon.mjs +21 -2
- package/dist/capabilities/index.d.ts +6 -3
- package/dist/capabilities/notification-rules.cap.d.ts +3 -78
- package/dist/capabilities/osd-manager.cap.d.ts +0 -18
- package/dist/capabilities/pipeline-analytics.cap.d.ts +24 -0
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +36 -0
- package/dist/capabilities/platform-probe.cap.d.ts +34 -0
- package/dist/capabilities/running-state.cap.d.ts +76 -0
- package/dist/capabilities/schemas/package-llm-verdict.d.ts +14 -0
- package/dist/capabilities/schemas/zone-rule.d.ts +4 -0
- package/dist/capabilities/zone-rules.cap.d.ts +10 -0
- package/dist/client.js +10 -62
- package/dist/client.mjs +10 -62
- package/dist/{composition-eoYYVfOp.js → composition-RmnnN39T.js} +86 -2
- package/dist/{composition-CB6PMT9p.mjs → composition-xz-ud5EQ.mjs} +86 -2
- package/dist/device/cap-vocabulary/entries/appliances.d.ts +1 -1
- package/dist/enums/event-category.d.ts +4 -0
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-fDPduoeC.mjs → event-category-Ceif8n-v.mjs} +4 -0
- package/dist/{event-category-CXrwjC3e.js → event-category-DG6Vir8Z.js} +4 -0
- package/dist/expression/builtins.d.ts +7 -18
- package/dist/expression/expression-source.d.ts +14 -2
- package/dist/generated/addon-api.d.ts +14 -0
- package/dist/generated/addon-cap-facts.d.ts +1 -1
- package/dist/generated/cap-status-types.d.ts +3 -1
- package/dist/generated/capability-router-map.d.ts +5 -2
- package/dist/generated/device-local-state.d.ts +3 -0
- package/dist/generated/device-proxy.d.ts +3 -0
- package/dist/generated/device-scoped-caps.d.ts +1 -1
- package/dist/generated/history-catalog.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +1 -1
- package/dist/generated/runtime-state-durability.d.ts +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2534 -1415
- package/dist/index.mjs +2471 -1415
- package/dist/interfaces/config-ui.d.ts +69 -2
- package/dist/interfaces/platform.d.ts +7 -0
- package/dist/node-color.d.ts +1 -1
- package/dist/node.js +1 -1
- package/dist/node.mjs +1 -1
- package/dist/pipeline/auto-tune/accelerator-compute.d.ts +116 -0
- package/dist/pipeline/auto-tune/detector-performance.d.ts +5 -0
- package/dist/pipeline/auto-tune/hardware-class.d.ts +5 -4
- package/dist/pipeline/auto-tune/index.d.ts +1 -0
- package/dist/pipeline/auto-tune/plan-schemas.d.ts +100 -0
- package/dist/pipeline/auto-tune/recommend.d.ts +31 -9
- package/dist/pipeline/second-pass/index.d.ts +2 -0
- package/dist/pipeline/second-pass/motion-crop-plan.d.ts +183 -0
- package/dist/pipeline/second-pass/small-subject-recovery.d.ts +216 -0
- package/dist/running-state/assignment.d.ts +34 -0
- package/dist/running-state/defaults.d.ts +3 -0
- package/dist/running-state/from-operation.d.ts +14 -0
- package/dist/{sleep-CHIEEJkY.mjs → sleep-CYfIZzGv.mjs} +7 -3
- package/dist/{sleep-BKS4OPMo.js → sleep-UP964hNP.js} +7 -3
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { $ as method, $n as PEER_BYTES_TICKET_TTL_MS, $r as audioChunkBytesPerSample, $t as parseSecretPath, A as HF_REPO, An as RECORD_DEFAULT_MAX_DATA_BYTES, Ar as WELL_KNOWN_TAB_MAP, At as SubscribeAudioChunksResultSchema, B as describeCustomActions, Bn as resolveSecretViewsIn, Br as isSecretFieldView, Bt as EntryDescriptorSchema, Cn as UnknownRecordKindError, Cr as parseSecretRef, Ct as FrameHandleSchema, D as createSliceHandle, Dn as RECORD_BATCH_MAX_BYTES, Dr as emitReadiness, Dt as StreamSourceEntrySchema, E as createMirrorSource, En as RECORD_BATCH_MAX, Er as createEvent, Et as ProfileSlotStatusSchema, F as DEVICE_CHILDREN_BATCH_MAX, Fn as RECORD_MAX_INDEX_FIELDS, Fr as hydrateSchema, Ft as makeInMemoryRecords, G as DEVICE_STATUS_METHOD, Gn as forgetKnownSecret, Gr as REDACTED_SECRET, Gt as RecordRetentionSchema, H as adminUiCapability, Hn as createSecretsAccess, Hr as isSecretMarkerLike, Ht as RecordIndexSchema, I as CALLER_STAMPED_CAPABILITIES, In as RECORD_QUERY_MAX, Ir as resolveHydratedFieldValue, It as defineEntryKind, J as PROVIDER_PIN_FIELD, Jn as scrubKnownSecrets, Jr as isKeychainStoredField, Jt as declarationsOf, K as HISTORY_DEFAULT_MIN_INTERVAL_MS, Kn as knownSecretCount, Kr as collectKeychainStoredKeys, Kt as StoredRecordKindDeclarationSchema, L as withoutCallerStamp, Ln as RECORD_SECRET_COLLECTION_PREFIX, Lr as SECRET_CLEAR, Lt as entryBody, M as RawStateResultSchema, Mn as RECORD_ID_MAX_LENGTH, Mr as collectHydratedFieldValues, Mt as makeSourceBrokerId, N as deviceOpsCapability, Nn as RECORD_MAX_DATA_BYTES, Nr as dehydrateConfigField, Nt as parseProfileBrokerId, O as DEFAULT_TOKEN_EXPIRY, On as RECORD_CLASSES, Or as isEvent, Ot as StreamSourceSchema, P as viewerUiCapability, Pn as RECORD_MAX_INDEXES, Pr as dehydrateSchema, Pt as selectAssignedProfileSlots, Q as isDeviceConfigCap, Qn as PEER_BYTES_STALL_MS, Qr as AUDIO_CHUNK_FORMATS, Qt as mapSecretLeaves, R as customAction, Rn as RECORD_SETTINGS_MAX_ROWS, Rr as classifySecretWrite, Rt as createRecordsAccess, S as invokeTrpcLeaf, Sn as UnindexedFilterError, Sr as normalizeSecretOwner, St as DecodedAudioChunkSchema, T as createLazyTrpcSource, Tn as recordsErrorFromMessage, Tr as createDurableState, Tt as ProfileSlotSchema, U as DEFAULT_RUNTIME_STATE_DURABILITY, Un as MIN_SCRUBBED_LENGTH, Ur as makeSecretMarker, Ut as RecordKindDeclarationSchema, V as deviceCustomAction, Vn as REVALIDATE_AFTER_MS, Vr as isSecretMarker, Vt as RecordFieldPathSchema, W as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Wn as clearKnownSecrets, Wr as toSecretFieldView, Wt as RecordKindNameSchema, X as expandCapMethods, Xn as PEER_BYTES_CHUNK_BYTES, Xr as omitTransientConfig, Xt as REMOVE_LEAF, Y as event, Yn as shortSecretRefHash, Yr as isSecretConfigField, Yt as defineRecordKinds, Z as historyItemFieldPath, Zn as PEER_BYTES_MAX_OUTSTANDING, Zr as schemaDeclaresAnyField, Zt as collectSecretLeaves, _ as readErrorI18n, _n as RecordTooLargeError, _r as arrayItemFieldPath, _t as CAM_PROFILE_ORDER, a as asJsonArray, an as collectZodSecretPaths, ar as classifyStoreError, at as readNodePin, b as isDeviceScopedCap, bn as RevConflictError, br as globalSecretScope, bt as CamStreamResolutionSchema, c as asString, cn as DeclarationRefusedError, cr as parseSecretStatePath, ct as ReadinessRegistry, d as parseJsonUnknown, dn as InvalidRecordError, dr as KeychainWriteRefusedError, dt as readinessKey, ei as expandAudioChunkToF32le, en as recordArrayItemPath, er as PeerBytesTicketSchema, et as optionalMethod, f as hfModelUrl, fn as NoCallerError, fr as collectSecretMarkerRefs, ft as scopeKey, g as ErrorI18nPayloadSchema, gn as RecordSecretUnavailableError, gr as SECRET_REF_SCHEME, gt as BrokerStatusSchema, h as ErrorCodeSchema, hn as RecordNotFoundError, hr as transformSecretWrite, ht as BrokerStatsSchema, i as asBoolean, in as SECRET_META, ir as BaseAddon, it as nodePin, j as RUNTIME_DEFAULTS, jn as RECORD_DELETE_BATCH, jr as collectHydratedFieldEntries, jt as makeProfileBrokerId, k as HF_BASE_URL, kn as RECORD_DATABASES, kr as WELL_KNOWN_TABS, kt as SubscribeAudioChunksInputSchema, l as parseJsonArray, ln as FilterRequiredError, lr as secretTreeFromPaths, lt as ReadinessTimeoutError, m as CamstackError, mn as RECORDS_ERROR_CODES, mr as resolveSecretMarkers, mt as AudioStreamPickSchema, n as sleepCancellable, nn as recordSecretRef, nr as SHARE_VIEW_KINDS, nt as systemMethod, o as asJsonObject, on as isZodSecret, or as normalizeAddonInitResult, ot as toNodeId, p as BOOT_RECOVERY_BACKOFF_MS, pn as PlaintextSecretError, pr as isSecretRefOwnedBy, pt as AudioChunkFormatSchema, q as HISTORY_UNIT_LABELS, qn as registerKnownSecret, qr as collectSecretConfigKeys, qt as assertValidDeclaration, r as maskUrlCredentials, rn as secretArrayPrefixes, rr as DisposerChain, rt as CAP_NODE_PIN_CONTEXT_KEY, s as asNumber, sn as BatchTooLargeError, sr as mergeSecretStatePaths, st as MODEL_FORMATS, t as sleep, ti as isAudioChunkFormat, tn as recordSecretCollection, tr as DATAPLANE_SECRET_HEADER, tt as resolveCapMount, u as parseJsonObject, un as ForeignSecretMarkerError, ur as secretTreeFromSchema, ut as emitDownForOwnedCaps, v as userError, vn as RecordUniqueViolationError, vr as buildSecretRef, vt as CamProfileSchema, w as createEventBusSliceSource, wn as asRecordsError, wr as normalizeNodeId, wt as ProfileRtspEntrySchema, x as createDeviceProxy, xn as TransactRefusedError, xr as isSecretRef, xt as CameraStreamSchema, y as DEVICE_SCOPED_CAPS, yn as RecordsError, yr as formatSecretScope, yt as CamStreamKindSchema, z as defineCustomActions, zn as RECORD_SWEEP_INTERVAL_MS, zr as isSecretClear, zt as assertTransactScope } from "./sleep-
|
|
2
|
-
import { i as publicEventCategories, n as OWNER_ONLY_EVENT_CATEGORIES, r as isOwnerOnlyEventCategory, t as EventCategory } from "./event-category-
|
|
3
|
-
import { $ as MAX_EXPRESSION_AST_NODES, A as compositionFeatureEnabled, At as Fmp4BoxSplitter, B as createStatefulExpressionMemory, Bt as pickVideoEncoder, C as CompositionTargetSchema, Ct as FFMPEG_PATH_ENV, D as MAX_COMPOSITION_ITEMS, E as MAX_COMPOSITION_FIELDS_PER_FEATURE, F as featureFieldEntries, Ft as buildInputArgs, G as createExpressionScope, H as evaluateStatefulExpressionCall, I as featureSources, It as buildVideoArgs, J as compileExpressionSafe, K as evaluateAst, L as fieldReads, Lt as invocationFromEncodeProfile, M as compositionReadKey, Mt as audioPlanFromEncodeProfile, N as compositionSliceKey, Nt as buildAudioArgs, O as composedDeviceRef, P as compositionSourceKey, Pt as buildFfmpegArgs, Q as EXPRESSION_IDENTIFIER_RE, R as EXPRESSION_INJECTED_NOW, Rt as isSoftwareDecode, S as CompositionSourceRefSchema, St as sliceChangedAt, T as MAX_COMPOSITION_FEATURES, U as toExpressionValue, V as evaluateExpressionSource, Vt as resolveStreamMaps, W as validateExpressionSource, X as tokenize, Y as parseExpression, Z as EXPRESSION_COMPILE_CACHE_CAPACITY, _ as CompositionItemEntrySchema, _t as SOURCE_DEVICE_TYPES, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, at as EXPRESSION_BUILTINS, b as CompositionPassthroughFeatureSchema, bt as isSourceCap, c as CompositionCommandTargetSchema, ct as evaluateCount, d as CompositionFeatureSchema, dt as ExpressionEvalError, et as MAX_EXPRESSION_BINDINGS, f as CompositionFieldReadSchema, ft as ExpressionParseError, g as CompositionFromSourceSchema, gt as SOURCE_CAP_CHANGED_AT_FIELD, h as CompositionForwardCommandSchema, ht as SOURCE_CAP_ACTIVE_FIELD, i as COMPOSITION_ITEM_KEY_RE, it as RESERVED_BINDING_NAMES, j as compositionItemFieldPath, jt as AUDIO_PRESETS, k as composedDeviceStableId, kt as canonicalHash, l as CompositionExistingTargetSchema, lt as evaluateRose, m as CompositionFieldsFeatureSchema, mt as SOURCE_CAPS, n as COMPOSER_ADDON_ID, nt as MAX_EXPRESSION_EVAL_STEPS, o as CompositionBindingSchema, ot as EXPRESSION_BUILTIN_NAMES, p as CompositionFieldSourceSchema, pt as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, q as compileExpression, r as COMPOSITION_ITEM_ARRAY_PATH, rt as MAX_EXPRESSION_SOURCE_LENGTH, s as CompositionCodeSourceSchema, st as disarmRoseMemory, t as COMPOSED_DEVICE_STABLE_ID_PREFIX, tt as MAX_EXPRESSION_CALL_ARGS, u as CompositionExpressionSourceSchema, ut as isStatefulBuiltin, v as CompositionLiteralBindingSchema, vt as evaluateSensorEdge, w as MAX_COMPOSITION_CODE_LENGTH, x as CompositionSchema, xt as sliceActiveValue, y as CompositionNewTargetSchema, yt as evaluateSensorLevelEdge, z as cloneStatefulExpressionMemory, zt as logBannerArgs } from "./composition-
|
|
1
|
+
import { $ as method, $n as PEER_BYTES_TICKET_TTL_MS, $r as audioChunkBytesPerSample, $t as parseSecretPath, A as HF_REPO, An as RECORD_DEFAULT_MAX_DATA_BYTES, Ar as WELL_KNOWN_TAB_MAP, At as SubscribeAudioChunksResultSchema, B as describeCustomActions, Bn as resolveSecretViewsIn, Br as isSecretFieldView, Bt as EntryDescriptorSchema, Cn as UnknownRecordKindError, Cr as parseSecretRef, Ct as FrameHandleSchema, D as createSliceHandle, Dn as RECORD_BATCH_MAX_BYTES, Dr as emitReadiness, Dt as StreamSourceEntrySchema, E as createMirrorSource, En as RECORD_BATCH_MAX, Er as createEvent, Et as ProfileSlotStatusSchema, F as DEVICE_CHILDREN_BATCH_MAX, Fn as RECORD_MAX_INDEX_FIELDS, Fr as hydrateSchema, Ft as makeInMemoryRecords, G as DEVICE_STATUS_METHOD, Gn as forgetKnownSecret, Gr as REDACTED_SECRET, Gt as RecordRetentionSchema, H as adminUiCapability, Hn as createSecretsAccess, Hr as isSecretMarkerLike, Ht as RecordIndexSchema, I as CALLER_STAMPED_CAPABILITIES, In as RECORD_QUERY_MAX, Ir as resolveHydratedFieldValue, It as defineEntryKind, J as PROVIDER_PIN_FIELD, Jn as scrubKnownSecrets, Jr as isKeychainStoredField, Jt as declarationsOf, K as HISTORY_DEFAULT_MIN_INTERVAL_MS, Kn as knownSecretCount, Kr as collectKeychainStoredKeys, Kt as StoredRecordKindDeclarationSchema, L as withoutCallerStamp, Ln as RECORD_SECRET_COLLECTION_PREFIX, Lr as SECRET_CLEAR, Lt as entryBody, M as RawStateResultSchema, Mn as RECORD_ID_MAX_LENGTH, Mr as collectHydratedFieldValues, Mt as makeSourceBrokerId, N as deviceOpsCapability, Nn as RECORD_MAX_DATA_BYTES, Nr as dehydrateConfigField, Nt as parseProfileBrokerId, O as DEFAULT_TOKEN_EXPIRY, On as RECORD_CLASSES, Or as isEvent, Ot as StreamSourceSchema, P as viewerUiCapability, Pn as RECORD_MAX_INDEXES, Pr as dehydrateSchema, Pt as selectAssignedProfileSlots, Q as isDeviceConfigCap, Qn as PEER_BYTES_STALL_MS, Qr as AUDIO_CHUNK_FORMATS, Qt as mapSecretLeaves, R as customAction, Rn as RECORD_SETTINGS_MAX_ROWS, Rr as classifySecretWrite, Rt as createRecordsAccess, S as invokeTrpcLeaf, Sn as UnindexedFilterError, Sr as normalizeSecretOwner, St as DecodedAudioChunkSchema, T as createLazyTrpcSource, Tn as recordsErrorFromMessage, Tr as createDurableState, Tt as ProfileSlotSchema, U as DEFAULT_RUNTIME_STATE_DURABILITY, Un as MIN_SCRUBBED_LENGTH, Ur as makeSecretMarker, Ut as RecordKindDeclarationSchema, V as deviceCustomAction, Vn as REVALIDATE_AFTER_MS, Vr as isSecretMarker, Vt as RecordFieldPathSchema, W as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Wn as clearKnownSecrets, Wr as toSecretFieldView, Wt as RecordKindNameSchema, X as expandCapMethods, Xn as PEER_BYTES_CHUNK_BYTES, Xr as omitTransientConfig, Xt as REMOVE_LEAF, Y as event, Yn as shortSecretRefHash, Yr as isSecretConfigField, Yt as defineRecordKinds, Z as historyItemFieldPath, Zn as PEER_BYTES_MAX_OUTSTANDING, Zr as schemaDeclaresAnyField, Zt as collectSecretLeaves, _ as readErrorI18n, _n as RecordTooLargeError, _r as arrayItemFieldPath, _t as CAM_PROFILE_ORDER, a as asJsonArray, an as collectZodSecretPaths, ar as classifyStoreError, at as readNodePin, b as isDeviceScopedCap, bn as RevConflictError, br as globalSecretScope, bt as CamStreamResolutionSchema, c as asString, cn as DeclarationRefusedError, cr as parseSecretStatePath, ct as ReadinessRegistry, d as parseJsonUnknown, dn as InvalidRecordError, dr as KeychainWriteRefusedError, dt as readinessKey, ei as expandAudioChunkToF32le, en as recordArrayItemPath, er as PeerBytesTicketSchema, et as optionalMethod, f as hfModelUrl, fn as NoCallerError, fr as collectSecretMarkerRefs, ft as scopeKey, g as ErrorI18nPayloadSchema, gn as RecordSecretUnavailableError, gr as SECRET_REF_SCHEME, gt as BrokerStatusSchema, h as ErrorCodeSchema, hn as RecordNotFoundError, hr as transformSecretWrite, ht as BrokerStatsSchema, i as asBoolean, in as SECRET_META, ir as BaseAddon, it as nodePin, j as RUNTIME_DEFAULTS, jn as RECORD_DELETE_BATCH, jr as collectHydratedFieldEntries, jt as makeProfileBrokerId, k as HF_BASE_URL, kn as RECORD_DATABASES, kr as WELL_KNOWN_TABS, kt as SubscribeAudioChunksInputSchema, l as parseJsonArray, ln as FilterRequiredError, lr as secretTreeFromPaths, lt as ReadinessTimeoutError, m as CamstackError, mn as RECORDS_ERROR_CODES, mr as resolveSecretMarkers, mt as AudioStreamPickSchema, n as sleepCancellable, nn as recordSecretRef, nr as SHARE_VIEW_KINDS, nt as systemMethod, o as asJsonObject, on as isZodSecret, or as normalizeAddonInitResult, ot as toNodeId, p as BOOT_RECOVERY_BACKOFF_MS, pn as PlaintextSecretError, pr as isSecretRefOwnedBy, pt as AudioChunkFormatSchema, q as HISTORY_UNIT_LABELS, qn as registerKnownSecret, qr as collectSecretConfigKeys, qt as assertValidDeclaration, r as maskUrlCredentials, rn as secretArrayPrefixes, rr as DisposerChain, rt as CAP_NODE_PIN_CONTEXT_KEY, s as asNumber, sn as BatchTooLargeError, sr as mergeSecretStatePaths, st as MODEL_FORMATS, t as sleep, ti as isAudioChunkFormat, tn as recordSecretCollection, tr as DATAPLANE_SECRET_HEADER, tt as resolveCapMount, u as parseJsonObject, un as ForeignSecretMarkerError, ur as secretTreeFromSchema, ut as emitDownForOwnedCaps, v as userError, vn as RecordUniqueViolationError, vr as buildSecretRef, vt as CamProfileSchema, w as createEventBusSliceSource, wn as asRecordsError, wr as normalizeNodeId, wt as ProfileRtspEntrySchema, x as createDeviceProxy, xn as TransactRefusedError, xr as isSecretRef, xt as CameraStreamSchema, y as DEVICE_SCOPED_CAPS, yn as RecordsError, yr as formatSecretScope, yt as CamStreamKindSchema, z as defineCustomActions, zn as RECORD_SWEEP_INTERVAL_MS, zr as isSecretClear, zt as assertTransactScope } from "./sleep-CYfIZzGv.mjs";
|
|
2
|
+
import { i as publicEventCategories, n as OWNER_ONLY_EVENT_CATEGORIES, r as isOwnerOnlyEventCategory, t as EventCategory } from "./event-category-Ceif8n-v.mjs";
|
|
3
|
+
import { $ as MAX_EXPRESSION_AST_NODES, A as compositionFeatureEnabled, At as Fmp4BoxSplitter, B as createStatefulExpressionMemory, Bt as pickVideoEncoder, C as CompositionTargetSchema, Ct as FFMPEG_PATH_ENV, D as MAX_COMPOSITION_ITEMS, E as MAX_COMPOSITION_FIELDS_PER_FEATURE, F as featureFieldEntries, Ft as buildInputArgs, G as createExpressionScope, H as evaluateStatefulExpressionCall, I as featureSources, It as buildVideoArgs, J as compileExpressionSafe, K as evaluateAst, L as fieldReads, Lt as invocationFromEncodeProfile, M as compositionReadKey, Mt as audioPlanFromEncodeProfile, N as compositionSliceKey, Nt as buildAudioArgs, O as composedDeviceRef, P as compositionSourceKey, Pt as buildFfmpegArgs, Q as EXPRESSION_IDENTIFIER_RE, R as EXPRESSION_INJECTED_NOW, Rt as isSoftwareDecode, S as CompositionSourceRefSchema, St as sliceChangedAt, T as MAX_COMPOSITION_FEATURES, U as toExpressionValue, V as evaluateExpressionSource, Vt as resolveStreamMaps, W as validateExpressionSource, X as tokenize, Y as parseExpression, Z as EXPRESSION_COMPILE_CACHE_CAPACITY, _ as CompositionItemEntrySchema, _t as SOURCE_DEVICE_TYPES, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, at as EXPRESSION_BUILTINS, b as CompositionPassthroughFeatureSchema, bt as isSourceCap, c as CompositionCommandTargetSchema, ct as evaluateCount, d as CompositionFeatureSchema, dt as ExpressionEvalError, et as MAX_EXPRESSION_BINDINGS, f as CompositionFieldReadSchema, ft as ExpressionParseError, g as CompositionFromSourceSchema, gt as SOURCE_CAP_CHANGED_AT_FIELD, h as CompositionForwardCommandSchema, ht as SOURCE_CAP_ACTIVE_FIELD, i as COMPOSITION_ITEM_KEY_RE, it as RESERVED_BINDING_NAMES, j as compositionItemFieldPath, jt as AUDIO_PRESETS, k as composedDeviceStableId, kt as canonicalHash, l as CompositionExistingTargetSchema, lt as evaluateRose, m as CompositionFieldsFeatureSchema, mt as SOURCE_CAPS, n as COMPOSER_ADDON_ID, nt as MAX_EXPRESSION_EVAL_STEPS, o as CompositionBindingSchema, ot as EXPRESSION_BUILTIN_NAMES, p as CompositionFieldSourceSchema, pt as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, q as compileExpression, r as COMPOSITION_ITEM_ARRAY_PATH, rt as MAX_EXPRESSION_SOURCE_LENGTH, s as CompositionCodeSourceSchema, st as disarmRoseMemory, t as COMPOSED_DEVICE_STABLE_ID_PREFIX, tt as MAX_EXPRESSION_CALL_ARGS, u as CompositionExpressionSourceSchema, ut as isStatefulBuiltin, v as CompositionLiteralBindingSchema, vt as evaluateSensorEdge, w as MAX_COMPOSITION_CODE_LENGTH, x as CompositionSchema, xt as sliceActiveValue, y as CompositionNewTargetSchema, yt as evaluateSensorLevelEdge, z as cloneStatefulExpressionMemory, zt as logBannerArgs } from "./composition-xz-ud5EQ.mjs";
|
|
4
4
|
import { NODE_COLOR_IDS, NodeColorIdSchema, assignNodeColorId } from "./node-color.mjs";
|
|
5
5
|
import { a as DeviceType, i as DeviceRole, n as ChargingStatus, r as DeviceFeature, t as errMsg } from "./err-msg-BXKzRBwg.mjs";
|
|
6
6
|
import { EventSourceType } from "./enums.mjs";
|
|
@@ -12870,7 +12870,15 @@ var BUILTIN_RESULT_KINDS = Object.freeze({
|
|
|
12870
12870
|
kind: "fixed",
|
|
12871
12871
|
result: ["number", "null"]
|
|
12872
12872
|
},
|
|
12873
|
-
count: NUMBER
|
|
12873
|
+
count: NUMBER,
|
|
12874
|
+
dwell: {
|
|
12875
|
+
kind: "fixed",
|
|
12876
|
+
result: ["boolean", "null"]
|
|
12877
|
+
},
|
|
12878
|
+
latchedAt: {
|
|
12879
|
+
kind: "fixed",
|
|
12880
|
+
result: ["number", "null"]
|
|
12881
|
+
}
|
|
12874
12882
|
});
|
|
12875
12883
|
var KindInferenceError = class extends Error {};
|
|
12876
12884
|
function kindOfValue(value) {
|
|
@@ -12882,7 +12890,7 @@ function kindOfValue(value) {
|
|
|
12882
12890
|
function only(kind) {
|
|
12883
12891
|
return new Set([kind]);
|
|
12884
12892
|
}
|
|
12885
|
-
function union(...sets) {
|
|
12893
|
+
function union$1(...sets) {
|
|
12886
12894
|
return new Set(sets.flatMap((s) => [...s]));
|
|
12887
12895
|
}
|
|
12888
12896
|
function withoutNull(set) {
|
|
@@ -12910,8 +12918,8 @@ function callKinds(callee, args) {
|
|
|
12910
12918
|
const rule = BUILTIN_RESULT_KINDS[callee];
|
|
12911
12919
|
if (rule === void 0) throw new KindInferenceError(`no result-kind rule for builtin '${callee}'`);
|
|
12912
12920
|
if (rule.kind === "fixed") return new Set(rule.result);
|
|
12913
|
-
const nonNull = union(...args.map(withoutNull));
|
|
12914
|
-
return args.every((a) => a.has("null")) ? union(nonNull, only("null")) : nonNull;
|
|
12921
|
+
const nonNull = union$1(...args.map(withoutNull));
|
|
12922
|
+
return args.every((a) => a.has("null")) ? union$1(nonNull, only("null")) : nonNull;
|
|
12915
12923
|
}
|
|
12916
12924
|
function kindsOf(node, bindings) {
|
|
12917
12925
|
switch (node.kind) {
|
|
@@ -12924,8 +12932,8 @@ function kindsOf(node, bindings) {
|
|
|
12924
12932
|
}
|
|
12925
12933
|
case "unary": return only(node.op === "!" ? "boolean" : "number");
|
|
12926
12934
|
case "binary": return binaryKinds(node.op, kindsOf(node.left, bindings), kindsOf(node.right, bindings));
|
|
12927
|
-
case "logical": return union(kindsOf(node.left, bindings), kindsOf(node.right, bindings));
|
|
12928
|
-
case "conditional": return union(kindsOf(node.consequent, bindings), kindsOf(node.alternate, bindings));
|
|
12935
|
+
case "logical": return union$1(kindsOf(node.left, bindings), kindsOf(node.right, bindings));
|
|
12936
|
+
case "conditional": return union$1(kindsOf(node.consequent, bindings), kindsOf(node.alternate, bindings));
|
|
12929
12937
|
case "call": return callKinds(node.callee, node.args.map((a) => kindsOf(a, bindings)));
|
|
12930
12938
|
}
|
|
12931
12939
|
}
|
|
@@ -43725,9 +43733,6 @@ var NcSystemEventKindSchema = z.enum([
|
|
|
43725
43733
|
"device-battery-normal",
|
|
43726
43734
|
"device-consumable-low",
|
|
43727
43735
|
"device-consumable-normal",
|
|
43728
|
-
"device-tank-low",
|
|
43729
|
-
"device-tank-full",
|
|
43730
|
-
"device-tank-normal",
|
|
43731
43736
|
"stream-online",
|
|
43732
43737
|
"stream-offline",
|
|
43733
43738
|
"node-online",
|
|
@@ -43774,18 +43779,19 @@ var NcSystemEventKindSchema = z.enum([
|
|
|
43774
43779
|
"camera-enabled"
|
|
43775
43780
|
]);
|
|
43776
43781
|
/** The legacy tail of {@link NcSystemEventKindSchema} — see its docblock. */
|
|
43777
|
-
var NC_LEGACY_SYSTEM_EVENT_KINDS =
|
|
43782
|
+
var NC_LEGACY_SYSTEM_EVENT_KINDS = [
|
|
43778
43783
|
"camera-online",
|
|
43779
43784
|
"camera-offline",
|
|
43780
43785
|
"camera-disabled",
|
|
43781
43786
|
"camera-enabled"
|
|
43782
|
-
]
|
|
43787
|
+
];
|
|
43788
|
+
var NC_LEGACY_SYSTEM_EVENT_KIND_SET = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
43783
43789
|
/**
|
|
43784
43790
|
* The kinds a rule may be AUTHORED with — every schema member except the
|
|
43785
43791
|
* legacy tail. Editors render THIS list; the schema still parses the tail so a
|
|
43786
43792
|
* durable row (and an unmigrated rule) survives being read.
|
|
43787
43793
|
*/
|
|
43788
|
-
var NC_AUTHORABLE_SYSTEM_EVENT_KINDS = NcSystemEventKindSchema.options.filter((kind) => !
|
|
43794
|
+
var NC_AUTHORABLE_SYSTEM_EVENT_KINDS = NcSystemEventKindSchema.options.filter((kind) => !NC_LEGACY_SYSTEM_EVENT_KIND_SET.has(kind));
|
|
43789
43795
|
/**
|
|
43790
43796
|
* The panel's transitions, as ONE list.
|
|
43791
43797
|
*
|
|
@@ -43830,12 +43836,6 @@ var NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS = [
|
|
|
43830
43836
|
* and both editors read it.
|
|
43831
43837
|
*/
|
|
43832
43838
|
var NC_CONSUMABLE_SYSTEM_EVENT_KINDS = ["device-consumable-low", "device-consumable-normal"];
|
|
43833
|
-
/** A vacuum's tank alerts (D642) — raised on the provider's own verdict. */
|
|
43834
|
-
var NC_TANK_SYSTEM_EVENT_KINDS = [
|
|
43835
|
-
"device-tank-low",
|
|
43836
|
-
"device-tank-full",
|
|
43837
|
-
"device-tank-normal"
|
|
43838
|
-
];
|
|
43839
43839
|
/**
|
|
43840
43840
|
* The consumable threshold a rule that does not state one judges at (D642).
|
|
43841
43841
|
* The operator's number ("default 15 %, configurable on the rule"), and the
|
|
@@ -45071,18 +45071,18 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
45071
45071
|
* `addon-updates` the addons that are behind (D708 split them). `backups-exports` and `alarm` are not sections — a completed
|
|
45072
45072
|
* job is not an open state, and the alarm stays instant.
|
|
45073
45073
|
*/
|
|
45074
|
-
var
|
|
45074
|
+
var NC_STATE_SUMMARY_SECTION_IDS = [
|
|
45075
45075
|
"device-state",
|
|
45076
45076
|
"streams",
|
|
45077
45077
|
"battery",
|
|
45078
45078
|
"consumables",
|
|
45079
|
-
"tanks",
|
|
45080
45079
|
"detection-blind",
|
|
45081
45080
|
"nodes",
|
|
45082
45081
|
"addons",
|
|
45083
45082
|
"addon-updates",
|
|
45084
45083
|
"updates"
|
|
45085
|
-
]
|
|
45084
|
+
];
|
|
45085
|
+
var NcStateSummarySectionIdSchema = z.enum(NC_STATE_SUMMARY_SECTION_IDS);
|
|
45086
45086
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
45087
45087
|
var NcStateSummaryPreviewSectionSchema = z.object({
|
|
45088
45088
|
id: NcStateSummarySectionIdSchema,
|
|
@@ -45459,18 +45459,6 @@ var NC_CONDITION_CATALOG = [
|
|
|
45459
45459
|
value: "device-consumable-normal",
|
|
45460
45460
|
label: "Consumable replaced"
|
|
45461
45461
|
},
|
|
45462
|
-
{
|
|
45463
|
-
value: "device-tank-low",
|
|
45464
|
-
label: "Tank low (water, detergent)"
|
|
45465
|
-
},
|
|
45466
|
-
{
|
|
45467
|
-
value: "device-tank-full",
|
|
45468
|
-
label: "Tank full (dirty water, dust)"
|
|
45469
|
-
},
|
|
45470
|
-
{
|
|
45471
|
-
value: "device-tank-normal",
|
|
45472
|
-
label: "Tank back to normal"
|
|
45473
|
-
},
|
|
45474
45462
|
{
|
|
45475
45463
|
value: "export-completed",
|
|
45476
45464
|
label: "Export completed"
|
|
@@ -47288,6 +47276,20 @@ var CAMERA_SENSORS_NOT_LOADED = Object.freeze({
|
|
|
47288
47276
|
reason: "camera sensor mappings not loaded"
|
|
47289
47277
|
});
|
|
47290
47278
|
//#endregion
|
|
47279
|
+
//#region src/capabilities/schemas/package-llm-verdict.ts
|
|
47280
|
+
/**
|
|
47281
|
+
* What the vision model must answer before a package event is emitted
|
|
47282
|
+
* when a packages rule has "Confirm with the LLM" on.
|
|
47283
|
+
*
|
|
47284
|
+
* `package` is the verdict. `confidence` is 0..1. `reason` is the model's
|
|
47285
|
+
* one-line explanation, stored on the event so a drop is not silent.
|
|
47286
|
+
*/
|
|
47287
|
+
var PackageLlmVerdictSchema = z.object({
|
|
47288
|
+
package: z.boolean(),
|
|
47289
|
+
confidence: z.number().min(0).max(1),
|
|
47290
|
+
reason: z.string().min(1)
|
|
47291
|
+
});
|
|
47292
|
+
//#endregion
|
|
47291
47293
|
//#region src/pipeline/cluster-model-scope.ts
|
|
47292
47294
|
/**
|
|
47293
47295
|
* A model choice has a SCOPE, and a scope change has a workflow.
|
|
@@ -48406,6 +48408,21 @@ var ObjectEventSchema = z.object({
|
|
|
48406
48408
|
* pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
|
|
48407
48409
|
*/
|
|
48408
48410
|
observedAt: z.number().optional(),
|
|
48411
|
+
/**
|
|
48412
|
+
* The delivery was emitted without a vision-model yes (D931).
|
|
48413
|
+
*
|
|
48414
|
+
* Set only when the packages rule asked for an LLM confirm and the model
|
|
48415
|
+
* was unreachable, timed out, or answered something that did not parse.
|
|
48416
|
+
* A notification reads it so it can say "possible" instead of a definite
|
|
48417
|
+
* delivery. Absent on every other row, and on a confirm that said yes.
|
|
48418
|
+
*/
|
|
48419
|
+
packagePossible: z.boolean().optional(),
|
|
48420
|
+
/**
|
|
48421
|
+
* The vision model's verdict, when a packages rule asked for one and the
|
|
48422
|
+
* model answered the schema (D931). A "no" never becomes a row — the
|
|
48423
|
+
* detector drops it and logs the reason. Present on a yes.
|
|
48424
|
+
*/
|
|
48425
|
+
packageLlmVerdict: PackageLlmVerdictSchema.optional(),
|
|
48409
48426
|
/** The parent track's key-event importance [0,1], propagated to every object
|
|
48410
48427
|
* event of the track (so an event row can be sorted by importance without a
|
|
48411
48428
|
* track join). Absent on legacy rows / before the track was scored. */
|
|
@@ -51631,11 +51648,18 @@ var KeptReasonSchema = z.enum(["custom-pin"]);
|
|
|
51631
51648
|
* Where a choice's latency came from (D791): this node's own benchmark
|
|
51632
51649
|
* result, or the hardware-class table. Measured on the node beats the table.
|
|
51633
51650
|
*/
|
|
51634
|
-
var LatencySourceSchema = z.discriminatedUnion("kind", [
|
|
51635
|
-
kind: z.literal("
|
|
51636
|
-
|
|
51637
|
-
|
|
51638
|
-
|
|
51651
|
+
var LatencySourceSchema = z.discriminatedUnion("kind", [
|
|
51652
|
+
z.object({ kind: z.literal("table") }),
|
|
51653
|
+
z.object({
|
|
51654
|
+
kind: z.literal("node-benchmark"),
|
|
51655
|
+
resultId: z.string(),
|
|
51656
|
+
measuredAtMs: z.number()
|
|
51657
|
+
}),
|
|
51658
|
+
z.object({
|
|
51659
|
+
kind: z.literal("estimated"),
|
|
51660
|
+
estimatedFrom: HardwareClassIdSchema
|
|
51661
|
+
})
|
|
51662
|
+
]);
|
|
51639
51663
|
var DeviceModelChoiceSchema = z.object({
|
|
51640
51664
|
modelId: z.string(),
|
|
51641
51665
|
p50Ms: z.number(),
|
|
@@ -51643,6 +51667,11 @@ var DeviceModelChoiceSchema = z.object({
|
|
|
51643
51667
|
measured: z.boolean(),
|
|
51644
51668
|
/** Absent on a plan from before D791 — read as the table. */
|
|
51645
51669
|
source: LatencySourceSchema.optional(),
|
|
51670
|
+
/**
|
|
51671
|
+
* The measured class this latency was scaled from (D930). Absent when the
|
|
51672
|
+
* cell is the table or a node benchmark.
|
|
51673
|
+
*/
|
|
51674
|
+
estimatedFrom: HardwareClassIdSchema.optional(),
|
|
51646
51675
|
/** Parallel sessions at the camera rate with the headroom kept free: ⌊fps × (1 − headroom) / camera fps⌋. */
|
|
51647
51676
|
capacitySessions: z.number(),
|
|
51648
51677
|
personRecall: z.number()
|
|
@@ -67661,427 +67690,1201 @@ includeCrops: z.boolean().optional() }).optional(), z.array(VehicleSchema).reado
|
|
|
67661
67690
|
}
|
|
67662
67691
|
};
|
|
67663
67692
|
//#endregion
|
|
67664
|
-
//#region src/
|
|
67665
|
-
var
|
|
67666
|
-
|
|
67667
|
-
|
|
67668
|
-
|
|
67669
|
-
|
|
67670
|
-
|
|
67671
|
-
|
|
67672
|
-
|
|
67673
|
-
|
|
67674
|
-
|
|
67675
|
-
|
|
67676
|
-
|
|
67677
|
-
|
|
67678
|
-
|
|
67679
|
-
|
|
67680
|
-
|
|
67681
|
-
|
|
67682
|
-
|
|
67683
|
-
|
|
67684
|
-
|
|
67685
|
-
|
|
67686
|
-
|
|
67687
|
-
}
|
|
67688
|
-
|
|
67689
|
-
|
|
67690
|
-
|
|
67691
|
-
|
|
67692
|
-
|
|
67693
|
-
|
|
67694
|
-
|
|
67695
|
-
|
|
67696
|
-
|
|
67697
|
-
|
|
67698
|
-
|
|
67699
|
-
|
|
67700
|
-
|
|
67701
|
-
|
|
67702
|
-
|
|
67703
|
-
|
|
67704
|
-
|
|
67705
|
-
|
|
67706
|
-
|
|
67707
|
-
|
|
67708
|
-
|
|
67709
|
-
|
|
67710
|
-
|
|
67711
|
-
|
|
67712
|
-
|
|
67713
|
-
|
|
67714
|
-
|
|
67715
|
-
|
|
67716
|
-
|
|
67717
|
-
|
|
67718
|
-
|
|
67719
|
-
|
|
67720
|
-
|
|
67721
|
-
|
|
67722
|
-
|
|
67723
|
-
|
|
67724
|
-
|
|
67725
|
-
|
|
67726
|
-
|
|
67727
|
-
|
|
67728
|
-
"linux",
|
|
67729
|
-
"win32"
|
|
67730
|
-
]);
|
|
67731
|
-
var HardwareArchSchema = z.enum(["arm64", "x64"]);
|
|
67732
|
-
var GpuInfoSchema = z.object({
|
|
67733
|
-
type: z.enum([
|
|
67734
|
-
"nvidia",
|
|
67735
|
-
"amd",
|
|
67736
|
-
"intel",
|
|
67737
|
-
"apple"
|
|
67738
|
-
]),
|
|
67739
|
-
name: z.string(),
|
|
67740
|
-
memoryMB: z.number().optional()
|
|
67741
|
-
});
|
|
67742
|
-
var NpuInfoSchema = z.object({
|
|
67743
|
-
type: z.enum([
|
|
67744
|
-
"apple-ane",
|
|
67745
|
-
"intel-npu",
|
|
67746
|
-
"amd-xdna"
|
|
67747
|
-
]),
|
|
67748
|
-
name: z.string().optional(),
|
|
67749
|
-
generation: z.enum(["xdna1", "xdna2"]).optional()
|
|
67750
|
-
});
|
|
67751
|
-
var CoralBusSchema = z.enum(["usb", "pci"]);
|
|
67752
|
-
var CoralInfoSchema = z.object({
|
|
67753
|
-
type: z.literal("coral-edgetpu"),
|
|
67754
|
-
/** Legacy single-bus report (older nodes) — read via `coralUsableUnits`. */
|
|
67755
|
-
bus: z.string().optional(),
|
|
67756
|
-
/** Legacy USB unit count (older nodes) — read via `coralUsableUnits`. */
|
|
67757
|
-
count: z.number().int().nonnegative().optional(),
|
|
67758
|
-
/** Usable units per bus — each one is its own `edgetpu:<bus>[:N]` device. */
|
|
67759
|
-
units: z.array(z.object({
|
|
67760
|
-
bus: CoralBusSchema,
|
|
67761
|
-
count: z.number().int().nonnegative()
|
|
67762
|
-
})).readonly().optional(),
|
|
67763
|
-
/** Present-but-unusable units, each with its typed reason (never "absent"). */
|
|
67764
|
-
unavailable: z.array(z.object({
|
|
67765
|
-
bus: CoralBusSchema,
|
|
67766
|
-
count: z.number().int().nonnegative(),
|
|
67767
|
-
reason: z.enum(["driver-missing", "device-not-accessible"])
|
|
67768
|
-
})).readonly().optional()
|
|
67769
|
-
});
|
|
67770
|
-
var HardwareInfoSchema = z.object({
|
|
67771
|
-
platform: HardwarePlatformSchema,
|
|
67772
|
-
arch: HardwareArchSchema,
|
|
67773
|
-
cpuModel: z.string(),
|
|
67774
|
-
cpuCores: z.number(),
|
|
67775
|
-
totalRAM_MB: z.number(),
|
|
67776
|
-
availableRAM_MB: z.number(),
|
|
67777
|
-
gpu: GpuInfoSchema.nullable(),
|
|
67778
|
-
npu: NpuInfoSchema.nullable(),
|
|
67779
|
-
coral: CoralInfoSchema.nullable().optional()
|
|
67780
|
-
});
|
|
67781
|
-
var PlatformScoreSchema = z.object({
|
|
67782
|
-
runtime: z.literal("python"),
|
|
67783
|
-
backend: z.string(),
|
|
67784
|
-
format: z.enum([
|
|
67785
|
-
"onnx",
|
|
67786
|
-
"coreml",
|
|
67787
|
-
"openvino",
|
|
67788
|
-
"tflite"
|
|
67789
|
-
]),
|
|
67790
|
-
score: z.number(),
|
|
67791
|
-
reason: z.string(),
|
|
67792
|
-
available: z.boolean()
|
|
67793
|
-
});
|
|
67794
|
-
var InferenceDeviceDescriptorSchema = z.object({
|
|
67795
|
-
key: z.string(),
|
|
67796
|
-
backend: z.string(),
|
|
67797
|
-
device: z.string(),
|
|
67798
|
-
format: ModelFormatSchema,
|
|
67799
|
-
runtime: z.literal("python"),
|
|
67800
|
-
score: z.number(),
|
|
67801
|
-
available: z.boolean()
|
|
67802
|
-
});
|
|
67803
|
-
var PlatformCapabilitiesSchema = z.object({
|
|
67804
|
-
hardware: HardwareInfoSchema,
|
|
67805
|
-
scores: z.array(PlatformScoreSchema).readonly(),
|
|
67806
|
-
bestScore: PlatformScoreSchema,
|
|
67807
|
-
pythonPath: z.string().nullable(),
|
|
67808
|
-
devices: z.array(InferenceDeviceDescriptorSchema).readonly()
|
|
67809
|
-
});
|
|
67810
|
-
var ModelRequirementSchema = z.object({
|
|
67811
|
-
modelId: z.string(),
|
|
67812
|
-
name: z.string(),
|
|
67813
|
-
minRAM_MB: z.number(),
|
|
67814
|
-
accuracyScore: z.number(),
|
|
67815
|
-
formats: z.array(z.string()).readonly()
|
|
67816
|
-
});
|
|
67817
|
-
var ResolvedInferenceConfigSchema = z.object({
|
|
67818
|
-
modelId: z.string(),
|
|
67819
|
-
runtime: z.literal("python"),
|
|
67820
|
-
backend: z.string(),
|
|
67821
|
-
format: ModelFormatSchema,
|
|
67822
|
-
reason: z.string()
|
|
67823
|
-
});
|
|
67824
|
-
/**
|
|
67825
|
-
* The answer of an accelerator rescan (D919): the node's device list after
|
|
67826
|
-
* the re-probe, what changed, and the evidence that decided the Coral answer
|
|
67827
|
-
* (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
|
|
67828
|
-
* bus, the installed-delegate fallback, or nothing).
|
|
67829
|
-
*/
|
|
67830
|
-
var AcceleratorRescanSchema = z.object({
|
|
67831
|
-
devices: z.array(InferenceDeviceDescriptorSchema).readonly(),
|
|
67832
|
-
appeared: z.array(z.string()).readonly(),
|
|
67833
|
-
disappeared: z.array(z.string()).readonly(),
|
|
67834
|
-
usbBus: z.enum(["observed", "unobservable"]),
|
|
67835
|
-
decidedBy: z.enum([
|
|
67836
|
-
"usb-ids",
|
|
67837
|
-
"pci",
|
|
67838
|
-
"delegate-fallback",
|
|
67839
|
-
"none"
|
|
67840
|
-
])
|
|
67841
|
-
});
|
|
67842
|
-
var platformProbeCapability = {
|
|
67843
|
-
name: "platform-probe",
|
|
67844
|
-
scope: "system",
|
|
67845
|
-
mode: "singleton",
|
|
67846
|
-
methods: {
|
|
67847
|
-
getCapabilities: method(z.void(), PlatformCapabilitiesSchema),
|
|
67848
|
-
getHardware: method(z.void(), HardwareInfoSchema),
|
|
67849
|
-
resolveInferenceConfig: method(z.object({ requirements: z.array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema),
|
|
67850
|
-
resolveHwAccel: method(z.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema),
|
|
67851
|
-
/**
|
|
67852
|
-
* Re-probe this node's accelerators NOW (Coral USB ids + PCIe apex units;
|
|
67853
|
-
* `/sys` and `/dev` reads, no model load) and rebuild the device list that
|
|
67854
|
-
* `getCapabilities` serves. The same re-probe runs every 60 s on its own;
|
|
67855
|
-
* this is the operator's "rescan inference devices". Target a node with the
|
|
67856
|
-
* `{ nodeId }` routing input, like `getCapabilities`.
|
|
67857
|
-
*/
|
|
67858
|
-
rescanAccelerators: method(z.void(), AcceleratorRescanSchema, {
|
|
67859
|
-
kind: "mutation",
|
|
67860
|
-
auth: "admin"
|
|
67861
|
-
})
|
|
67862
|
-
}
|
|
67863
|
-
};
|
|
67864
|
-
//#endregion
|
|
67865
|
-
//#region src/capabilities/power-meter.cap.ts
|
|
67866
|
-
/**
|
|
67867
|
-
* Multi-metric electrical meter. One slice can carry any combination
|
|
67868
|
-
* of instantaneous power (W), cumulative energy (kWh), voltage (V),
|
|
67869
|
-
* and current (A) — all fields optional so a single-metric source
|
|
67870
|
-
* (HA `sensor` with `device_class: power`) populates only what it
|
|
67871
|
-
* has and aggregators (energy dashboards, billing exports) compose
|
|
67872
|
-
* across providers without needing one cap per metric.
|
|
67873
|
-
*
|
|
67874
|
-
* Trade-off acknowledged: a HomeKit export that wants to surface
|
|
67875
|
-
* "power" and "energy" as separate services has to crack open the
|
|
67876
|
-
* slice and emit two characteristics from one cap. Worth it to avoid
|
|
67877
|
-
* exploding the cap catalog with `power-w` / `energy-kwh` /
|
|
67878
|
-
* `voltage-v` / `current-a` quartets that always travel together
|
|
67879
|
-
* in real-world devices.
|
|
67880
|
-
*/
|
|
67881
|
-
var PowerMeterStatusSchema = z.object({
|
|
67882
|
-
/** Instantaneous power draw in watts. */
|
|
67883
|
-
watts: z.number().optional(),
|
|
67884
|
-
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
67885
|
-
kwhTotal: z.number().optional(),
|
|
67886
|
-
/** Voltage in volts. */
|
|
67887
|
-
volts: z.number().optional(),
|
|
67888
|
-
/** Current in amperes. */
|
|
67889
|
-
amps: z.number().optional(),
|
|
67890
|
-
/** Apparent power in volt-amperes (W × power-factor reciprocal). */
|
|
67891
|
-
va: z.number().optional(),
|
|
67892
|
-
/** Power factor (0..1) if reported. */
|
|
67893
|
-
powerFactor: z.number().min(0).max(1).optional(),
|
|
67894
|
-
/** Ms epoch when the slice was last updated. */
|
|
67895
|
-
lastFetchedAt: z.number(),
|
|
67896
|
-
/** Live display unit of the single metric this slice carries (e.g. HA
|
|
67897
|
-
* `attributes.unit_of_measurement` → 'V' / 'A' / 'W' / 'kW' / 'kWh').
|
|
67898
|
-
* Each upstream `sensor.*` entity surfaces ONE device_class, so one
|
|
67899
|
-
* unit per slice is unambiguous. The UI prefers this over the role's
|
|
67900
|
-
* canonical unit so a 'kW' / 'Wh' feed renders verbatim. */
|
|
67901
|
-
unit: z.string().optional(),
|
|
67902
|
-
/** Suggested decimal places for numeric display.
|
|
67903
|
-
* Populated live from the upstream source when provided (e.g. HA
|
|
67904
|
-
* `attributes.suggested_display_precision`). Falls back to
|
|
67905
|
-
* auto-formatting when absent. */
|
|
67906
|
-
precision: z.number().int().min(0).max(10).optional()
|
|
67907
|
-
});
|
|
67908
|
-
var powerMeterCapability = {
|
|
67909
|
-
name: "power-meter",
|
|
67910
|
-
scope: "device",
|
|
67911
|
-
deviceNative: true,
|
|
67912
|
-
mode: "singleton",
|
|
67913
|
-
deviceTypes: [DeviceType.Sensor],
|
|
67914
|
-
methods: {},
|
|
67915
|
-
status: {
|
|
67916
|
-
schema: PowerMeterStatusSchema,
|
|
67917
|
-
kind: "push"
|
|
67918
|
-
},
|
|
67919
|
-
runtimeState: PowerMeterStatusSchema,
|
|
67920
|
-
/**
|
|
67921
|
-
* Runtime-state durability: **restored** — as `numeric-sensor`; `kwhTotal` is an accumulator whose restored value is the baseline.
|
|
67922
|
-
*
|
|
67923
|
-
* See `RuntimeStateDurability`. Enforced by
|
|
67924
|
-
* `scripts/check-runtime-state-durability.ts`.
|
|
67925
|
-
*/
|
|
67926
|
-
durability: "restored",
|
|
67927
|
-
/**
|
|
67928
|
-
* History (D850): recorded series. Gauges are floored at 30 s; `kwhTotal` is the one monotonic meter (counter).
|
|
67929
|
-
*/
|
|
67930
|
-
history: { fields: {
|
|
67931
|
-
watts: {
|
|
67932
|
-
kind: "gauge",
|
|
67933
|
-
unit: "W",
|
|
67934
|
-
deadband: 1,
|
|
67935
|
-
minIntervalMs: 3e4
|
|
67936
|
-
},
|
|
67937
|
-
kwhTotal: {
|
|
67938
|
-
kind: "counter",
|
|
67939
|
-
unit: "kWh",
|
|
67940
|
-
deadband: .01,
|
|
67941
|
-
minIntervalMs: 6e4
|
|
67693
|
+
//#region src/pipeline/auto-tune/detector-performance.ts
|
|
67694
|
+
var DETECTOR_PERF = {
|
|
67695
|
+
"intel-core-ultra": {
|
|
67696
|
+
"intel-npu": {
|
|
67697
|
+
"yolov9t-320": {
|
|
67698
|
+
p50Ms: 2.9,
|
|
67699
|
+
fps: 383,
|
|
67700
|
+
measured: true
|
|
67701
|
+
},
|
|
67702
|
+
"yolov9t-320-int8": {
|
|
67703
|
+
p50Ms: 3.8,
|
|
67704
|
+
fps: 333,
|
|
67705
|
+
measured: true
|
|
67706
|
+
},
|
|
67707
|
+
"yolov9t-640": {
|
|
67708
|
+
p50Ms: 7.4,
|
|
67709
|
+
fps: 139,
|
|
67710
|
+
measured: true
|
|
67711
|
+
},
|
|
67712
|
+
"yolov9t-640-int8": {
|
|
67713
|
+
p50Ms: 7.5,
|
|
67714
|
+
fps: 144,
|
|
67715
|
+
measured: true
|
|
67716
|
+
},
|
|
67717
|
+
"yolov9s-320": {
|
|
67718
|
+
p50Ms: 4.4,
|
|
67719
|
+
fps: 241,
|
|
67720
|
+
measured: true
|
|
67721
|
+
},
|
|
67722
|
+
"yolov9s-320-int8": {
|
|
67723
|
+
p50Ms: 4.1,
|
|
67724
|
+
fps: 264,
|
|
67725
|
+
measured: true
|
|
67726
|
+
},
|
|
67727
|
+
"yolov9s-640": {
|
|
67728
|
+
p50Ms: 12.7,
|
|
67729
|
+
fps: 82,
|
|
67730
|
+
measured: true
|
|
67731
|
+
},
|
|
67732
|
+
"yolov9s-640-int8": {
|
|
67733
|
+
p50Ms: 10.7,
|
|
67734
|
+
fps: 99,
|
|
67735
|
+
measured: true
|
|
67736
|
+
},
|
|
67737
|
+
"yolov9m-320": {
|
|
67738
|
+
p50Ms: 8.4,
|
|
67739
|
+
fps: 123,
|
|
67740
|
+
measured: true
|
|
67741
|
+
},
|
|
67742
|
+
"yolov9m-320-int8": {
|
|
67743
|
+
p50Ms: 6.5,
|
|
67744
|
+
fps: 165,
|
|
67745
|
+
measured: true
|
|
67746
|
+
},
|
|
67747
|
+
"yolov9m-640": {
|
|
67748
|
+
p50Ms: 29.5,
|
|
67749
|
+
fps: 32,
|
|
67750
|
+
measured: true
|
|
67751
|
+
},
|
|
67752
|
+
"yolov9m-640-int8": {
|
|
67753
|
+
p50Ms: 19.5,
|
|
67754
|
+
fps: 52,
|
|
67755
|
+
measured: true
|
|
67756
|
+
}
|
|
67942
67757
|
},
|
|
67943
|
-
|
|
67944
|
-
|
|
67945
|
-
|
|
67946
|
-
|
|
67947
|
-
|
|
67758
|
+
"intel-igpu": {
|
|
67759
|
+
"yolov9t-320": {
|
|
67760
|
+
p50Ms: 2.6,
|
|
67761
|
+
fps: 405,
|
|
67762
|
+
measured: true
|
|
67763
|
+
},
|
|
67764
|
+
"yolov9t-320-int8": {
|
|
67765
|
+
p50Ms: 2.8,
|
|
67766
|
+
fps: 324,
|
|
67767
|
+
measured: true
|
|
67768
|
+
},
|
|
67769
|
+
"yolov9t-640": {
|
|
67770
|
+
p50Ms: 6.5,
|
|
67771
|
+
fps: 157,
|
|
67772
|
+
measured: true
|
|
67773
|
+
},
|
|
67774
|
+
"yolov9t-640-int8": {
|
|
67775
|
+
p50Ms: 5.6,
|
|
67776
|
+
fps: 185,
|
|
67777
|
+
measured: true
|
|
67778
|
+
},
|
|
67779
|
+
"yolov9s-320": {
|
|
67780
|
+
p50Ms: 4.6,
|
|
67781
|
+
fps: 200,
|
|
67782
|
+
measured: true
|
|
67783
|
+
},
|
|
67784
|
+
"yolov9s-320-int8": {
|
|
67785
|
+
p50Ms: 4.1,
|
|
67786
|
+
fps: 239,
|
|
67787
|
+
measured: true
|
|
67788
|
+
},
|
|
67789
|
+
"yolov9s-640": {
|
|
67790
|
+
p50Ms: 15.2,
|
|
67791
|
+
fps: 69,
|
|
67792
|
+
measured: true
|
|
67793
|
+
},
|
|
67794
|
+
"yolov9s-640-int8": {
|
|
67795
|
+
p50Ms: 10.5,
|
|
67796
|
+
fps: 99,
|
|
67797
|
+
measured: true
|
|
67798
|
+
},
|
|
67799
|
+
"yolov9m-320": {
|
|
67800
|
+
p50Ms: 11.4,
|
|
67801
|
+
fps: 88,
|
|
67802
|
+
measured: true
|
|
67803
|
+
},
|
|
67804
|
+
"yolov9m-320-int8": {
|
|
67805
|
+
p50Ms: 7,
|
|
67806
|
+
fps: 127,
|
|
67807
|
+
measured: true
|
|
67808
|
+
},
|
|
67809
|
+
"yolov9m-640": {
|
|
67810
|
+
p50Ms: 40,
|
|
67811
|
+
fps: 25,
|
|
67812
|
+
measured: true
|
|
67813
|
+
},
|
|
67814
|
+
"yolov9m-640-int8": {
|
|
67815
|
+
p50Ms: 23.5,
|
|
67816
|
+
fps: 44,
|
|
67817
|
+
measured: true
|
|
67818
|
+
}
|
|
67948
67819
|
},
|
|
67949
|
-
|
|
67950
|
-
|
|
67951
|
-
|
|
67952
|
-
|
|
67953
|
-
|
|
67820
|
+
"x86-cpu": {
|
|
67821
|
+
"yolov9t-320": {
|
|
67822
|
+
p50Ms: 6.9,
|
|
67823
|
+
fps: 145,
|
|
67824
|
+
measured: true
|
|
67825
|
+
},
|
|
67826
|
+
"yolov9t-320-int8": {
|
|
67827
|
+
p50Ms: 2.7,
|
|
67828
|
+
fps: 405,
|
|
67829
|
+
measured: true
|
|
67830
|
+
},
|
|
67831
|
+
"yolov9t-640": {
|
|
67832
|
+
p50Ms: 23,
|
|
67833
|
+
fps: 44,
|
|
67834
|
+
measured: true
|
|
67835
|
+
},
|
|
67836
|
+
"yolov9t-640-int8": {
|
|
67837
|
+
p50Ms: 8.8,
|
|
67838
|
+
fps: 124,
|
|
67839
|
+
measured: true
|
|
67840
|
+
},
|
|
67841
|
+
"yolov9s-320": {
|
|
67842
|
+
p50Ms: 15.8,
|
|
67843
|
+
fps: 63,
|
|
67844
|
+
measured: true
|
|
67845
|
+
},
|
|
67846
|
+
"yolov9s-320-int8": {
|
|
67847
|
+
p50Ms: 6.5,
|
|
67848
|
+
fps: 180,
|
|
67849
|
+
measured: true
|
|
67850
|
+
},
|
|
67851
|
+
"yolov9s-640": {
|
|
67852
|
+
p50Ms: 58.2,
|
|
67853
|
+
fps: 17,
|
|
67854
|
+
measured: true
|
|
67855
|
+
},
|
|
67856
|
+
"yolov9s-640-int8": {
|
|
67857
|
+
p50Ms: 20.1,
|
|
67858
|
+
fps: 52,
|
|
67859
|
+
measured: true
|
|
67860
|
+
},
|
|
67861
|
+
"yolov9m-320": {
|
|
67862
|
+
p50Ms: 40,
|
|
67863
|
+
fps: 25,
|
|
67864
|
+
measured: true
|
|
67865
|
+
},
|
|
67866
|
+
"yolov9m-320-int8": {
|
|
67867
|
+
p50Ms: 14.2,
|
|
67868
|
+
fps: 74,
|
|
67869
|
+
measured: true
|
|
67870
|
+
},
|
|
67871
|
+
"yolov9m-640": {
|
|
67872
|
+
p50Ms: 155.8,
|
|
67873
|
+
fps: 6,
|
|
67874
|
+
measured: true
|
|
67875
|
+
},
|
|
67876
|
+
"yolov9m-640-int8": {
|
|
67877
|
+
p50Ms: 52.4,
|
|
67878
|
+
fps: 19,
|
|
67879
|
+
measured: true
|
|
67880
|
+
}
|
|
67954
67881
|
},
|
|
67955
|
-
|
|
67956
|
-
|
|
67957
|
-
|
|
67958
|
-
|
|
67959
|
-
|
|
67882
|
+
coral: { "yolov9s-320-edgetpu": {
|
|
67883
|
+
p50Ms: 32,
|
|
67884
|
+
fps: 31,
|
|
67885
|
+
measured: false
|
|
67886
|
+
} }
|
|
67887
|
+
},
|
|
67888
|
+
"intel-n-series": {
|
|
67889
|
+
"intel-igpu": {
|
|
67890
|
+
"yolov9t-320": {
|
|
67891
|
+
p50Ms: 15,
|
|
67892
|
+
fps: 48,
|
|
67893
|
+
measured: true
|
|
67894
|
+
},
|
|
67895
|
+
"yolov9t-320-int8": {
|
|
67896
|
+
p50Ms: 14.1,
|
|
67897
|
+
fps: 67,
|
|
67898
|
+
measured: true
|
|
67899
|
+
},
|
|
67900
|
+
"yolov9t-640": {
|
|
67901
|
+
p50Ms: 38.5,
|
|
67902
|
+
fps: 26,
|
|
67903
|
+
measured: true
|
|
67904
|
+
},
|
|
67905
|
+
"yolov9t-640-int8": {
|
|
67906
|
+
p50Ms: 50,
|
|
67907
|
+
fps: 20,
|
|
67908
|
+
measured: true
|
|
67909
|
+
},
|
|
67910
|
+
"yolov9s-320": {
|
|
67911
|
+
p50Ms: 41.4,
|
|
67912
|
+
fps: 24,
|
|
67913
|
+
measured: true
|
|
67914
|
+
},
|
|
67915
|
+
"yolov9s-320-int8": {
|
|
67916
|
+
p50Ms: 23.3,
|
|
67917
|
+
fps: 34,
|
|
67918
|
+
measured: true
|
|
67919
|
+
},
|
|
67920
|
+
"yolov9s-640": {
|
|
67921
|
+
p50Ms: 127.4,
|
|
67922
|
+
fps: 8,
|
|
67923
|
+
measured: true
|
|
67924
|
+
},
|
|
67925
|
+
"yolov9s-640-int8": {
|
|
67926
|
+
p50Ms: 81,
|
|
67927
|
+
fps: 12,
|
|
67928
|
+
measured: true
|
|
67929
|
+
},
|
|
67930
|
+
"yolov9m-320": {
|
|
67931
|
+
p50Ms: 63.5,
|
|
67932
|
+
fps: 16,
|
|
67933
|
+
measured: true
|
|
67934
|
+
},
|
|
67935
|
+
"yolov9m-320-int8": {
|
|
67936
|
+
p50Ms: 66,
|
|
67937
|
+
fps: 15,
|
|
67938
|
+
measured: true
|
|
67939
|
+
},
|
|
67940
|
+
"yolov9m-640": {
|
|
67941
|
+
p50Ms: 215.5,
|
|
67942
|
+
fps: 5,
|
|
67943
|
+
measured: true
|
|
67944
|
+
},
|
|
67945
|
+
"yolov9m-640-int8": {
|
|
67946
|
+
p50Ms: 163,
|
|
67947
|
+
fps: 6,
|
|
67948
|
+
measured: true
|
|
67949
|
+
}
|
|
67960
67950
|
},
|
|
67961
|
-
|
|
67962
|
-
|
|
67963
|
-
|
|
67964
|
-
|
|
67965
|
-
|
|
67966
|
-
|
|
67967
|
-
|
|
67968
|
-
|
|
67969
|
-
|
|
67970
|
-
|
|
67951
|
+
"x86-cpu": {
|
|
67952
|
+
"yolov9t-320": {
|
|
67953
|
+
p50Ms: 86.2,
|
|
67954
|
+
fps: 12,
|
|
67955
|
+
measured: true
|
|
67956
|
+
},
|
|
67957
|
+
"yolov9t-320-int8": {
|
|
67958
|
+
p50Ms: 52.7,
|
|
67959
|
+
fps: 20,
|
|
67960
|
+
measured: true
|
|
67961
|
+
},
|
|
67962
|
+
"yolov9t-640": {
|
|
67963
|
+
p50Ms: 322.1,
|
|
67964
|
+
fps: 3,
|
|
67965
|
+
measured: true
|
|
67966
|
+
},
|
|
67967
|
+
"yolov9t-640-int8": {
|
|
67968
|
+
p50Ms: 205.6,
|
|
67969
|
+
fps: 5,
|
|
67970
|
+
measured: true
|
|
67971
|
+
},
|
|
67972
|
+
"yolov9s-320": {
|
|
67973
|
+
p50Ms: 164.4,
|
|
67974
|
+
fps: 6,
|
|
67975
|
+
measured: true
|
|
67976
|
+
},
|
|
67977
|
+
"yolov9s-320-int8": {
|
|
67978
|
+
p50Ms: 86.9,
|
|
67979
|
+
fps: 12,
|
|
67980
|
+
measured: true
|
|
67981
|
+
},
|
|
67982
|
+
"yolov9s-640": {
|
|
67983
|
+
p50Ms: 341.3,
|
|
67984
|
+
fps: 3,
|
|
67985
|
+
measured: true
|
|
67986
|
+
},
|
|
67987
|
+
"yolov9s-640-int8": {
|
|
67988
|
+
p50Ms: 185.3,
|
|
67989
|
+
fps: 5,
|
|
67990
|
+
measured: true
|
|
67991
|
+
},
|
|
67992
|
+
"yolov9m-320": {
|
|
67993
|
+
p50Ms: 166.8,
|
|
67994
|
+
fps: 6,
|
|
67995
|
+
measured: true
|
|
67996
|
+
},
|
|
67997
|
+
"yolov9m-320-int8": {
|
|
67998
|
+
p50Ms: 226.3,
|
|
67999
|
+
fps: 4,
|
|
68000
|
+
measured: true
|
|
68001
|
+
},
|
|
68002
|
+
"yolov9m-640": {
|
|
68003
|
+
p50Ms: 663.5,
|
|
68004
|
+
fps: 2,
|
|
68005
|
+
measured: true
|
|
68006
|
+
},
|
|
68007
|
+
"yolov9m-640-int8": {
|
|
68008
|
+
p50Ms: 324.4,
|
|
68009
|
+
fps: 3,
|
|
68010
|
+
measured: true
|
|
68011
|
+
}
|
|
68012
|
+
},
|
|
68013
|
+
coral: { "yolov9s-320-edgetpu": {
|
|
68014
|
+
p50Ms: 32,
|
|
68015
|
+
fps: 31,
|
|
68016
|
+
measured: false
|
|
68017
|
+
} }
|
|
68018
|
+
},
|
|
68019
|
+
"amd-phoenix": {
|
|
68020
|
+
"x86-cpu": {
|
|
68021
|
+
"yolov9t-320": {
|
|
68022
|
+
p50Ms: 24,
|
|
68023
|
+
fps: 42,
|
|
68024
|
+
measured: true
|
|
68025
|
+
},
|
|
68026
|
+
"yolov9t-320-int8": {
|
|
68027
|
+
p50Ms: 12,
|
|
68028
|
+
fps: 83,
|
|
68029
|
+
measured: true
|
|
68030
|
+
},
|
|
68031
|
+
"yolov9t-640": {
|
|
68032
|
+
p50Ms: 50,
|
|
68033
|
+
fps: 20,
|
|
68034
|
+
measured: true
|
|
68035
|
+
},
|
|
68036
|
+
"yolov9t-640-int8": {
|
|
68037
|
+
p50Ms: 20,
|
|
68038
|
+
fps: 50,
|
|
68039
|
+
measured: true
|
|
68040
|
+
},
|
|
68041
|
+
"yolov9s-320": {
|
|
68042
|
+
p50Ms: 30,
|
|
68043
|
+
fps: 33,
|
|
68044
|
+
measured: true
|
|
68045
|
+
},
|
|
68046
|
+
"yolov9s-320-int8": {
|
|
68047
|
+
p50Ms: 15,
|
|
68048
|
+
fps: 67,
|
|
68049
|
+
measured: true
|
|
68050
|
+
},
|
|
68051
|
+
"yolov9s-640": {
|
|
68052
|
+
p50Ms: 92,
|
|
68053
|
+
fps: 11,
|
|
68054
|
+
measured: true
|
|
68055
|
+
},
|
|
68056
|
+
"yolov9s-640-int8": {
|
|
68057
|
+
p50Ms: 27,
|
|
68058
|
+
fps: 37,
|
|
68059
|
+
measured: true
|
|
68060
|
+
},
|
|
68061
|
+
"yolov9m-320": {
|
|
68062
|
+
p50Ms: 67,
|
|
68063
|
+
fps: 15,
|
|
68064
|
+
measured: true
|
|
68065
|
+
},
|
|
68066
|
+
"yolov9m-320-int8": {
|
|
68067
|
+
p50Ms: 21,
|
|
68068
|
+
fps: 48,
|
|
68069
|
+
measured: true
|
|
68070
|
+
},
|
|
68071
|
+
"yolov9m-640": {
|
|
68072
|
+
p50Ms: 229,
|
|
68073
|
+
fps: 4,
|
|
68074
|
+
measured: true
|
|
68075
|
+
},
|
|
68076
|
+
"yolov9m-640-int8": {
|
|
68077
|
+
p50Ms: 48,
|
|
68078
|
+
fps: 21,
|
|
68079
|
+
measured: true
|
|
68080
|
+
}
|
|
68081
|
+
},
|
|
68082
|
+
"amd-igpu": {
|
|
68083
|
+
"yolov9t-320": {
|
|
68084
|
+
p50Ms: 40,
|
|
68085
|
+
fps: 25,
|
|
68086
|
+
measured: true
|
|
68087
|
+
},
|
|
68088
|
+
"yolov9t-640": {
|
|
68089
|
+
p50Ms: 89,
|
|
68090
|
+
fps: 11,
|
|
68091
|
+
measured: true
|
|
68092
|
+
},
|
|
68093
|
+
"yolov9s-320": {
|
|
68094
|
+
p50Ms: 65,
|
|
68095
|
+
fps: 15,
|
|
68096
|
+
measured: true
|
|
68097
|
+
},
|
|
68098
|
+
"yolov9s-640": {
|
|
68099
|
+
p50Ms: 125,
|
|
68100
|
+
fps: 8,
|
|
68101
|
+
measured: true
|
|
68102
|
+
},
|
|
68103
|
+
"yolov9m-320": {
|
|
68104
|
+
p50Ms: 85,
|
|
68105
|
+
fps: 12,
|
|
68106
|
+
measured: true
|
|
68107
|
+
},
|
|
68108
|
+
"yolov9m-640": {
|
|
68109
|
+
p50Ms: 228,
|
|
68110
|
+
fps: 4,
|
|
68111
|
+
measured: true
|
|
68112
|
+
}
|
|
68113
|
+
},
|
|
68114
|
+
coral: { "yolov9s-320-edgetpu": {
|
|
68115
|
+
p50Ms: 32,
|
|
68116
|
+
fps: 31,
|
|
68117
|
+
measured: true
|
|
68118
|
+
} }
|
|
68119
|
+
},
|
|
68120
|
+
"apple-m-pro": {
|
|
68121
|
+
"apple-ane": {
|
|
68122
|
+
"yolov9t-320": {
|
|
68123
|
+
p50Ms: 1.1,
|
|
68124
|
+
fps: 952,
|
|
68125
|
+
measured: true
|
|
68126
|
+
},
|
|
68127
|
+
"yolov9t-640": {
|
|
68128
|
+
p50Ms: 3,
|
|
68129
|
+
fps: 333,
|
|
68130
|
+
measured: true
|
|
68131
|
+
},
|
|
68132
|
+
"yolov9s-320": {
|
|
68133
|
+
p50Ms: 1.5,
|
|
68134
|
+
fps: 667,
|
|
68135
|
+
measured: true
|
|
68136
|
+
},
|
|
68137
|
+
"yolov9s-640": {
|
|
68138
|
+
p50Ms: 5.1,
|
|
68139
|
+
fps: 196,
|
|
68140
|
+
measured: true
|
|
68141
|
+
},
|
|
68142
|
+
"yolov9m-320": {
|
|
68143
|
+
p50Ms: 3.2,
|
|
68144
|
+
fps: 312,
|
|
68145
|
+
measured: true
|
|
68146
|
+
},
|
|
68147
|
+
"yolov9m-640": {
|
|
68148
|
+
p50Ms: 10.2,
|
|
68149
|
+
fps: 98,
|
|
68150
|
+
measured: true
|
|
68151
|
+
}
|
|
68152
|
+
},
|
|
68153
|
+
coral: { "yolov9s-320-edgetpu": {
|
|
68154
|
+
p50Ms: 32,
|
|
68155
|
+
fps: 31,
|
|
68156
|
+
measured: false
|
|
68157
|
+
} }
|
|
68158
|
+
},
|
|
68159
|
+
"apple-m-base": {
|
|
68160
|
+
"apple-ane": {
|
|
68161
|
+
"yolov9t-320": {
|
|
68162
|
+
p50Ms: 1.32,
|
|
68163
|
+
fps: 758,
|
|
68164
|
+
measured: false
|
|
68165
|
+
},
|
|
68166
|
+
"yolov9t-640": {
|
|
68167
|
+
p50Ms: 3.45,
|
|
68168
|
+
fps: 290,
|
|
68169
|
+
measured: true
|
|
68170
|
+
},
|
|
68171
|
+
"yolov9s-320": {
|
|
68172
|
+
p50Ms: 1.8,
|
|
68173
|
+
fps: 556,
|
|
68174
|
+
measured: false
|
|
68175
|
+
},
|
|
68176
|
+
"yolov9s-640": {
|
|
68177
|
+
p50Ms: 5.46,
|
|
68178
|
+
fps: 183,
|
|
68179
|
+
measured: true
|
|
68180
|
+
},
|
|
68181
|
+
"yolov9m-320": {
|
|
68182
|
+
p50Ms: 3.79,
|
|
68183
|
+
fps: 264,
|
|
68184
|
+
measured: true
|
|
68185
|
+
},
|
|
68186
|
+
"yolov9m-640": {
|
|
68187
|
+
p50Ms: 10.34,
|
|
68188
|
+
fps: 97,
|
|
68189
|
+
measured: true
|
|
68190
|
+
}
|
|
68191
|
+
},
|
|
68192
|
+
coral: { "yolov9s-320-edgetpu": {
|
|
68193
|
+
p50Ms: 32,
|
|
68194
|
+
fps: 31,
|
|
68195
|
+
measured: false
|
|
68196
|
+
} }
|
|
68197
|
+
}
|
|
67971
68198
|
};
|
|
67972
|
-
|
|
67973
|
-
|
|
67974
|
-
|
|
67975
|
-
|
|
67976
|
-
* on `DeviceType.Presence`. Read-only — no setters: presence is
|
|
67977
|
-
* derived from upstream signals (mobile-app location, router DHCP
|
|
67978
|
-
* lease, Bluetooth beacon, manual zone change) and pushed into the
|
|
67979
|
-
* slice.
|
|
67980
|
-
*
|
|
67981
|
-
* `state` follows HA's canonical values — `home` / `not_home` /
|
|
67982
|
-
* `<zone-name>` for any other named zone. The zone name is freeform
|
|
67983
|
-
* because users define arbitrary zones (`work`, `gym`, `school`).
|
|
67984
|
-
*
|
|
67985
|
-
* GPS coordinates are nullable — tracker types without location
|
|
67986
|
-
* (Bluetooth scanner, MQTT presence) omit them. The presence of
|
|
67987
|
-
* GPS data is signaled by `DeviceFeature.PresenceGps` for fast
|
|
67988
|
-
* UI map-pin rendering.
|
|
67989
|
-
*/
|
|
67990
|
-
var GpsLocationSchema = z.object({
|
|
67991
|
-
/** Latitude in decimal degrees, -90..90. */
|
|
67992
|
-
latitude: z.number().min(-90).max(90),
|
|
67993
|
-
/** Longitude in decimal degrees, -180..180. */
|
|
67994
|
-
longitude: z.number().min(-180).max(180),
|
|
67995
|
-
/** Reported accuracy in meters (lower = better). */
|
|
67996
|
-
accuracyMeters: z.number().nonnegative()
|
|
67997
|
-
});
|
|
67998
|
-
var PresenceStatusSchema = z.object({
|
|
67999
|
-
/** `home` / `not_home` / any user-defined zone name. */
|
|
68000
|
-
state: z.string(),
|
|
68001
|
-
/** Optional textual location label (zone name, city, address). Null
|
|
68002
|
-
* when only the binary state is known. */
|
|
68003
|
-
location: z.string().nullable(),
|
|
68004
|
-
/** GPS coordinates when available. Null otherwise. */
|
|
68005
|
-
gps: GpsLocationSchema.nullable(),
|
|
68006
|
-
/** Optional battery level of the tracking device (0..100). Null
|
|
68007
|
-
* when not reported. */
|
|
68008
|
-
batteryPercent: z.number().min(0).max(100).nullable(),
|
|
68009
|
-
/** Ms epoch when the slice was last updated. */
|
|
68010
|
-
lastChangedAt: z.number()
|
|
68011
|
-
});
|
|
68012
|
-
var presenceCapability = {
|
|
68013
|
-
name: "presence",
|
|
68014
|
-
scope: "device",
|
|
68015
|
-
deviceNative: true,
|
|
68016
|
-
mode: "singleton",
|
|
68017
|
-
deviceTypes: [DeviceType.Presence],
|
|
68018
|
-
methods: {},
|
|
68019
|
-
status: {
|
|
68020
|
-
schema: PresenceStatusSchema,
|
|
68021
|
-
kind: "push"
|
|
68199
|
+
var DETECTOR_ACCURACY = {
|
|
68200
|
+
"yolov9m-320": {
|
|
68201
|
+
personPrecision: .979,
|
|
68202
|
+
personRecall: .649
|
|
68022
68203
|
},
|
|
68023
|
-
|
|
68024
|
-
|
|
68025
|
-
|
|
68026
|
-
|
|
68027
|
-
|
|
68028
|
-
|
|
68029
|
-
|
|
68030
|
-
|
|
68031
|
-
|
|
68032
|
-
|
|
68033
|
-
|
|
68034
|
-
|
|
68035
|
-
|
|
68036
|
-
|
|
68037
|
-
|
|
68038
|
-
|
|
68039
|
-
|
|
68040
|
-
|
|
68041
|
-
|
|
68042
|
-
|
|
68043
|
-
|
|
68044
|
-
|
|
68045
|
-
|
|
68046
|
-
|
|
68047
|
-
|
|
68204
|
+
"yolov9m-320-int8": {
|
|
68205
|
+
personPrecision: .974,
|
|
68206
|
+
personRecall: .684
|
|
68207
|
+
},
|
|
68208
|
+
"yolov9m-640": {
|
|
68209
|
+
personPrecision: .976,
|
|
68210
|
+
personRecall: .854
|
|
68211
|
+
},
|
|
68212
|
+
"yolov9m-640-int8": {
|
|
68213
|
+
personPrecision: .976,
|
|
68214
|
+
personRecall: .847
|
|
68215
|
+
},
|
|
68216
|
+
"yolov9s-320": {
|
|
68217
|
+
personPrecision: .958,
|
|
68218
|
+
personRecall: .479
|
|
68219
|
+
},
|
|
68220
|
+
"yolov9s-320-int8": {
|
|
68221
|
+
personPrecision: .969,
|
|
68222
|
+
personRecall: .438
|
|
68223
|
+
},
|
|
68224
|
+
"yolov9s-640": {
|
|
68225
|
+
personPrecision: .986,
|
|
68226
|
+
personRecall: .753
|
|
68227
|
+
},
|
|
68228
|
+
"yolov9s-640-int8": {
|
|
68229
|
+
personPrecision: .963,
|
|
68230
|
+
personRecall: .823
|
|
68231
|
+
},
|
|
68232
|
+
"yolov9t-320": {
|
|
68233
|
+
personPrecision: .946,
|
|
68234
|
+
personRecall: .368
|
|
68235
|
+
},
|
|
68236
|
+
"yolov9t-320-int8": {
|
|
68237
|
+
personPrecision: .943,
|
|
68238
|
+
personRecall: .347
|
|
68239
|
+
},
|
|
68240
|
+
"yolov9t-640": {
|
|
68241
|
+
personPrecision: .979,
|
|
68242
|
+
personRecall: .646
|
|
68243
|
+
},
|
|
68244
|
+
"yolov9t-640-int8": {
|
|
68245
|
+
personPrecision: .979,
|
|
68246
|
+
personRecall: .646
|
|
68247
|
+
}
|
|
68048
68248
|
};
|
|
68049
68249
|
//#endregion
|
|
68050
|
-
//#region src/
|
|
68250
|
+
//#region src/pipeline/auto-tune/accelerator-compute.ts
|
|
68251
|
+
/**
|
|
68252
|
+
* Capacity of an accelerator we have not measured (D930).
|
|
68253
|
+
*
|
|
68254
|
+
* The latency table stays the measured columns. A device that reports compute
|
|
68255
|
+
* (OpenVINO GOPS, or execution units × clock, or compute units, or TOPS) is
|
|
68256
|
+
* estimated from the nearest measured column of the same accelerator kind,
|
|
68257
|
+
* scaled by the compute ratio and clamped. A node benchmark still replaces
|
|
68258
|
+
* the estimate. A device that reports neither compute nor a known class stays
|
|
68259
|
+
* `unknown`.
|
|
68260
|
+
*
|
|
68261
|
+
* A failed probe field is `null`, never `0` (D393): zero would be a compute
|
|
68262
|
+
* ratio of zero and would size the device as if it could not run.
|
|
68263
|
+
*/
|
|
68264
|
+
/**
|
|
68265
|
+
* An unmeasured device is never estimated outside this band of its reference.
|
|
68266
|
+
*
|
|
68267
|
+
* Peak GOPS and detector latency do not move together: a 640 model is memory
|
|
68268
|
+
* bound, a 320 model less so, and the N100→N305 public EU×clock ratio is
|
|
68269
|
+
* about 2.2×. 2× is the widest that spread justifies without a measurement
|
|
68270
|
+
* on the device; 0.5× is the symmetric floor so a tiny iGPU is not told it
|
|
68271
|
+
* is many times slower than the weakest column we measured. A node benchmark
|
|
68272
|
+
* replaces the estimate and is not clamped.
|
|
68273
|
+
*/
|
|
68274
|
+
var ESTIMATE_COMPUTE_RATIO_MIN = .5;
|
|
68275
|
+
var ESTIMATE_COMPUTE_RATIO_MAX = 2;
|
|
68276
|
+
/**
|
|
68277
|
+
* Within this of 1.0, a device whose class IS the reference is that measured
|
|
68278
|
+
* machine (a probe clock a few percent off the spec), not a different chip.
|
|
68279
|
+
* An unknown class is still estimated, so the plan says so.
|
|
68280
|
+
*/
|
|
68281
|
+
var REFERENCE_MATCH_FRACTION = .05;
|
|
68282
|
+
/** N100 iGPU: 24 execution units, 750 MHz graphics max (Intel specification). */
|
|
68283
|
+
var N100_IGPU_EU = 24;
|
|
68284
|
+
var N100_IGPU_CLOCK_MHZ = 750;
|
|
68285
|
+
/**
|
|
68286
|
+
* Core Ultra 7 265K iGPU: 4 Xe-cores. OpenVINO's execution-unit count for
|
|
68287
|
+
* Xe-LP is 16 per Xe-core, and the graphics max dynamic frequency is 2000 MHz.
|
|
68288
|
+
* Used only to choose the nearest column for a chip that is not itself a
|
|
68289
|
+
* Core Ultra — that class is the measurement and is never scaled.
|
|
68290
|
+
*/
|
|
68291
|
+
var CORE_ULTRA_265K_IGPU_EU = 64;
|
|
68292
|
+
var CORE_ULTRA_265K_IGPU_CLOCK_MHZ = 2e3;
|
|
68293
|
+
/** Phoenix / Hawk Point Radeon 780M: 12 compute units. */
|
|
68294
|
+
var PHOENIX_780M_CU = 12;
|
|
68295
|
+
var positiveOrNull = z.number().nullable().transform((value) => value !== null && Number.isFinite(value) && value > 0 ? value : null);
|
|
68296
|
+
var textOrNull = z.string().nullable().transform((value) => value !== null && value.trim() !== "" ? value : null);
|
|
68297
|
+
var PrecisionGopsSchema = z.object({
|
|
68298
|
+
int8: positiveOrNull,
|
|
68299
|
+
fp16: positiveOrNull
|
|
68300
|
+
});
|
|
68301
|
+
/** What one accelerator device reported. Every failed query is null. */
|
|
68302
|
+
var AcceleratorComputeSchema = z.object({
|
|
68303
|
+
deviceKey: z.string(),
|
|
68304
|
+
fullDeviceName: textOrNull,
|
|
68305
|
+
executionUnits: positiveOrNull,
|
|
68306
|
+
clockMHz: positiveOrNull,
|
|
68307
|
+
gops: PrecisionGopsSchema.nullable(),
|
|
68308
|
+
architecture: textOrNull,
|
|
68309
|
+
npuName: textOrNull,
|
|
68310
|
+
tops: positiveOrNull,
|
|
68311
|
+
vendor: textOrNull,
|
|
68312
|
+
webgpuArchitecture: textOrNull,
|
|
68313
|
+
webgpuDevice: textOrNull,
|
|
68314
|
+
computeUnits: positiveOrNull
|
|
68315
|
+
});
|
|
68316
|
+
var AcceleratorFactsPayloadSchema = z.object({ accelerators: z.array(AcceleratorComputeSchema).nullable() });
|
|
68317
|
+
/**
|
|
68318
|
+
* Compute of the machines the latency columns were measured on.
|
|
68319
|
+
* GOPS is preferred when a column carries it; none of these do yet — the
|
|
68320
|
+
* boxes were measured before the probe reported `DEVICE_GOPS` — so the scale
|
|
68321
|
+
* uses execution units × clock (Intel) or compute units (AMD) until a
|
|
68322
|
+
* re-measure locks a GOPS figure on the column.
|
|
68323
|
+
*/
|
|
68324
|
+
var REFERENCE_COMPUTE = [
|
|
68325
|
+
{
|
|
68326
|
+
hardwareClass: "intel-n-series",
|
|
68327
|
+
accelerator: "intel-igpu",
|
|
68328
|
+
score: {
|
|
68329
|
+
metric: "eu-mhz",
|
|
68330
|
+
value: 24 * 750
|
|
68331
|
+
}
|
|
68332
|
+
},
|
|
68333
|
+
{
|
|
68334
|
+
hardwareClass: "intel-core-ultra",
|
|
68335
|
+
accelerator: "intel-igpu",
|
|
68336
|
+
score: {
|
|
68337
|
+
metric: "eu-mhz",
|
|
68338
|
+
value: 64 * CORE_ULTRA_265K_IGPU_CLOCK_MHZ
|
|
68339
|
+
}
|
|
68340
|
+
},
|
|
68341
|
+
{
|
|
68342
|
+
hardwareClass: "amd-phoenix",
|
|
68343
|
+
accelerator: "amd-igpu",
|
|
68344
|
+
score: {
|
|
68345
|
+
metric: "cu",
|
|
68346
|
+
value: 12
|
|
68347
|
+
}
|
|
68348
|
+
}
|
|
68349
|
+
];
|
|
68350
|
+
/** Parse a probe payload. `null` means the probe failed — not "no accelerators". */
|
|
68351
|
+
function parseAcceleratorFactsJson(raw) {
|
|
68352
|
+
const parsed = AcceleratorFactsPayloadSchema.safeParse(raw);
|
|
68353
|
+
if (!parsed.success || parsed.data.accelerators === null) return null;
|
|
68354
|
+
return parsed.data.accelerators;
|
|
68355
|
+
}
|
|
68356
|
+
function positive$1(value) {
|
|
68357
|
+
return value !== null && value > 0 ? value : null;
|
|
68358
|
+
}
|
|
68359
|
+
/** Scores in the order the estimate prefers. A non-positive field is absent. */
|
|
68360
|
+
function computeScores(report) {
|
|
68361
|
+
const scores = [];
|
|
68362
|
+
const int8 = positive$1(report.gops?.int8 ?? null);
|
|
68363
|
+
if (int8 !== null) scores.push({
|
|
68364
|
+
metric: "gops-int8",
|
|
68365
|
+
value: int8
|
|
68366
|
+
});
|
|
68367
|
+
const fp16 = positive$1(report.gops?.fp16 ?? null);
|
|
68368
|
+
if (fp16 !== null) scores.push({
|
|
68369
|
+
metric: "gops-fp16",
|
|
68370
|
+
value: fp16
|
|
68371
|
+
});
|
|
68372
|
+
const units = positive$1(report.executionUnits);
|
|
68373
|
+
const clock = positive$1(report.clockMHz);
|
|
68374
|
+
if (units !== null && clock !== null) scores.push({
|
|
68375
|
+
metric: "eu-mhz",
|
|
68376
|
+
value: units * clock
|
|
68377
|
+
});
|
|
68378
|
+
const computeUnits = positive$1(report.computeUnits);
|
|
68379
|
+
if (computeUnits !== null) scores.push({
|
|
68380
|
+
metric: "cu",
|
|
68381
|
+
value: computeUnits
|
|
68382
|
+
});
|
|
68383
|
+
const tops = positive$1(report.tops);
|
|
68384
|
+
if (tops !== null) scores.push({
|
|
68385
|
+
metric: "tops",
|
|
68386
|
+
value: tops
|
|
68387
|
+
});
|
|
68388
|
+
return scores;
|
|
68389
|
+
}
|
|
68390
|
+
function nearestReference(kind, score, references) {
|
|
68391
|
+
const same = references.filter((ref) => ref.accelerator === kind && ref.score.metric === score.metric && ref.score.value > 0);
|
|
68392
|
+
const first = same[0];
|
|
68393
|
+
if (first === void 0) return null;
|
|
68394
|
+
return same.reduce((best, ref) => {
|
|
68395
|
+
return Math.abs(Math.log(score.value / ref.score.value)) < Math.abs(Math.log(score.value / best.score.value)) ? ref : best;
|
|
68396
|
+
}, first);
|
|
68397
|
+
}
|
|
68398
|
+
function scoreAgainstReferences(report, kind, references) {
|
|
68399
|
+
for (const score of computeScores(report)) if (nearestReference(kind, score, references) !== null) return score;
|
|
68400
|
+
return null;
|
|
68401
|
+
}
|
|
68402
|
+
/** True when this report can scale a measured column of `kind`. */
|
|
68403
|
+
function reportIsScalable(report, kind, references = REFERENCE_COMPUTE) {
|
|
68404
|
+
return scoreAgainstReferences(report, kind, references) !== null;
|
|
68405
|
+
}
|
|
68406
|
+
function classColumn(perf, hardwareClass, accelerator) {
|
|
68407
|
+
if (hardwareClass === "unknown") return void 0;
|
|
68408
|
+
return perf[hardwareClass]?.[accelerator];
|
|
68409
|
+
}
|
|
68410
|
+
function round1(value) {
|
|
68411
|
+
return Math.round(value * 10) / 10;
|
|
68412
|
+
}
|
|
68413
|
+
function clampRatio(ratio) {
|
|
68414
|
+
return Math.min(2, Math.max(ESTIMATE_COMPUTE_RATIO_MIN, ratio));
|
|
68415
|
+
}
|
|
68416
|
+
function scaleColumn(column, ratio, estimatedFrom) {
|
|
68417
|
+
const out = {};
|
|
68418
|
+
for (const [modelId, cell] of Object.entries(column)) out[modelId] = {
|
|
68419
|
+
p50Ms: round1(cell.p50Ms / ratio),
|
|
68420
|
+
fps: Math.max(1, Math.round(cell.fps * ratio)),
|
|
68421
|
+
measured: false,
|
|
68422
|
+
estimatedFrom
|
|
68423
|
+
};
|
|
68424
|
+
return out;
|
|
68425
|
+
}
|
|
68051
68426
|
/**
|
|
68052
|
-
*
|
|
68053
|
-
*
|
|
68054
|
-
*
|
|
68055
|
-
*
|
|
68056
|
-
* descriptor constant in the UI (ROLE_DESCRIPTOR), not stored in
|
|
68057
|
-
* `sourceInfo`.
|
|
68427
|
+
* The latency column for one device. A measured class other than the N-series
|
|
68428
|
+
* spread is returned unchanged — one class there is one measured machine.
|
|
68429
|
+
* `intel-n-series` is the N100 column; a different reported compute scales it.
|
|
68430
|
+
* An unknown class scales from the nearest reference of the same kind.
|
|
68058
68431
|
*/
|
|
68059
|
-
|
|
68060
|
-
|
|
68061
|
-
|
|
68062
|
-
|
|
68063
|
-
|
|
68064
|
-
|
|
68065
|
-
|
|
68066
|
-
|
|
68067
|
-
|
|
68068
|
-
|
|
68069
|
-
|
|
68070
|
-
|
|
68071
|
-
|
|
68072
|
-
|
|
68073
|
-
|
|
68074
|
-
|
|
68075
|
-
|
|
68076
|
-
|
|
68077
|
-
|
|
68078
|
-
|
|
68079
|
-
|
|
68080
|
-
|
|
68081
|
-
|
|
68082
|
-
|
|
68083
|
-
|
|
68084
|
-
|
|
68432
|
+
function resolveLatencyColumn(input) {
|
|
68433
|
+
const perf = input.perf ?? DETECTOR_PERF;
|
|
68434
|
+
const references = input.references ?? REFERENCE_COMPUTE;
|
|
68435
|
+
const measured = classColumn(perf, input.hardwareClass, input.accelerator);
|
|
68436
|
+
if (measured !== void 0 && input.hardwareClass !== "intel-n-series") return {
|
|
68437
|
+
column: measured,
|
|
68438
|
+
estimatedFrom: null
|
|
68439
|
+
};
|
|
68440
|
+
const score = input.report === null ? null : scoreAgainstReferences(input.report, input.accelerator, references);
|
|
68441
|
+
if (score === null) return measured === void 0 ? null : {
|
|
68442
|
+
column: measured,
|
|
68443
|
+
estimatedFrom: null
|
|
68444
|
+
};
|
|
68445
|
+
const nearest = nearestReference(input.accelerator, score, references);
|
|
68446
|
+
const base = nearest === null ? void 0 : classColumn(perf, nearest.hardwareClass, input.accelerator);
|
|
68447
|
+
if (nearest === null || base === void 0) return measured === void 0 ? null : {
|
|
68448
|
+
column: measured,
|
|
68449
|
+
estimatedFrom: null
|
|
68450
|
+
};
|
|
68451
|
+
const rawRatio = score.value / nearest.score.value;
|
|
68452
|
+
if (input.hardwareClass === nearest.hardwareClass && Math.abs(rawRatio - 1) <= .05) return {
|
|
68453
|
+
column: base,
|
|
68454
|
+
estimatedFrom: null
|
|
68455
|
+
};
|
|
68456
|
+
return {
|
|
68457
|
+
column: scaleColumn(base, clampRatio(rawRatio), nearest.hardwareClass),
|
|
68458
|
+
estimatedFrom: nearest.hardwareClass
|
|
68459
|
+
};
|
|
68460
|
+
}
|
|
68461
|
+
//#endregion
|
|
68462
|
+
//#region src/capabilities/platform-probe.cap.ts
|
|
68463
|
+
var ModelFormatSchema = z.enum(MODEL_FORMATS);
|
|
68464
|
+
var HwAccelBackendInputSchema = z.enum([
|
|
68465
|
+
"videotoolbox",
|
|
68466
|
+
"cuda",
|
|
68467
|
+
"nvdec",
|
|
68468
|
+
"vaapi",
|
|
68469
|
+
"qsv",
|
|
68470
|
+
"d3d11va",
|
|
68471
|
+
"dxva2",
|
|
68472
|
+
"amf",
|
|
68473
|
+
"vdpau",
|
|
68474
|
+
"drm",
|
|
68475
|
+
"coreml",
|
|
68476
|
+
"tensorrt",
|
|
68477
|
+
"openvino",
|
|
68478
|
+
"directml",
|
|
68479
|
+
"webgpu",
|
|
68480
|
+
"none"
|
|
68481
|
+
]).nullable().optional();
|
|
68482
|
+
var HwAccelResolutionSchema = z.object({
|
|
68483
|
+
preferred: z.array(z.string()).readonly(),
|
|
68484
|
+
rationale: z.string()
|
|
68485
|
+
});
|
|
68486
|
+
var HardwareEncoderIdSchema = z.enum([
|
|
68487
|
+
"h264_videotoolbox",
|
|
68488
|
+
"hevc_videotoolbox",
|
|
68489
|
+
"h264_vaapi",
|
|
68490
|
+
"hevc_vaapi",
|
|
68491
|
+
"h264_nvenc",
|
|
68492
|
+
"hevc_nvenc",
|
|
68493
|
+
"h264_qsv",
|
|
68494
|
+
"hevc_qsv",
|
|
68495
|
+
"h264_amf",
|
|
68496
|
+
"hevc_amf",
|
|
68497
|
+
"libx264",
|
|
68498
|
+
"libx265"
|
|
68499
|
+
]);
|
|
68500
|
+
var HardwareEncoderProbeSchema = z.object({
|
|
68501
|
+
encoder: HardwareEncoderIdSchema,
|
|
68502
|
+
codec: z.enum(["H264", "H265"]),
|
|
68503
|
+
family: z.enum([
|
|
68504
|
+
"videotoolbox",
|
|
68505
|
+
"vaapi",
|
|
68506
|
+
"nvenc",
|
|
68507
|
+
"qsv",
|
|
68508
|
+
"amf",
|
|
68509
|
+
"software"
|
|
68510
|
+
]),
|
|
68511
|
+
available: z.boolean(),
|
|
68512
|
+
reason: z.string().optional()
|
|
68513
|
+
});
|
|
68514
|
+
z.object({
|
|
68515
|
+
encoders: z.array(HardwareEncoderProbeSchema).readonly(),
|
|
68516
|
+
defaultH264: HardwareEncoderIdSchema,
|
|
68517
|
+
defaultH265: HardwareEncoderIdSchema,
|
|
68518
|
+
probedAt: z.number()
|
|
68519
|
+
});
|
|
68520
|
+
z.object({
|
|
68521
|
+
methods: z.array(z.string()).readonly(),
|
|
68522
|
+
probedAt: z.number()
|
|
68523
|
+
});
|
|
68524
|
+
var HardwarePlatformSchema = z.enum([
|
|
68525
|
+
"darwin",
|
|
68526
|
+
"linux",
|
|
68527
|
+
"win32"
|
|
68528
|
+
]);
|
|
68529
|
+
var HardwareArchSchema = z.enum(["arm64", "x64"]);
|
|
68530
|
+
var GpuInfoSchema = z.object({
|
|
68531
|
+
type: z.enum([
|
|
68532
|
+
"nvidia",
|
|
68533
|
+
"amd",
|
|
68534
|
+
"intel",
|
|
68535
|
+
"apple"
|
|
68536
|
+
]),
|
|
68537
|
+
name: z.string(),
|
|
68538
|
+
memoryMB: z.number().optional()
|
|
68539
|
+
});
|
|
68540
|
+
var NpuInfoSchema = z.object({
|
|
68541
|
+
type: z.enum([
|
|
68542
|
+
"apple-ane",
|
|
68543
|
+
"intel-npu",
|
|
68544
|
+
"amd-xdna"
|
|
68545
|
+
]),
|
|
68546
|
+
name: z.string().optional(),
|
|
68547
|
+
generation: z.enum(["xdna1", "xdna2"]).optional()
|
|
68548
|
+
});
|
|
68549
|
+
var CoralBusSchema = z.enum(["usb", "pci"]);
|
|
68550
|
+
var CoralInfoSchema = z.object({
|
|
68551
|
+
type: z.literal("coral-edgetpu"),
|
|
68552
|
+
/** Legacy single-bus report (older nodes) — read via `coralUsableUnits`. */
|
|
68553
|
+
bus: z.string().optional(),
|
|
68554
|
+
/** Legacy USB unit count (older nodes) — read via `coralUsableUnits`. */
|
|
68555
|
+
count: z.number().int().nonnegative().optional(),
|
|
68556
|
+
/** Usable units per bus — each one is its own `edgetpu:<bus>[:N]` device. */
|
|
68557
|
+
units: z.array(z.object({
|
|
68558
|
+
bus: CoralBusSchema,
|
|
68559
|
+
count: z.number().int().nonnegative()
|
|
68560
|
+
})).readonly().optional(),
|
|
68561
|
+
/** Present-but-unusable units, each with its typed reason (never "absent"). */
|
|
68562
|
+
unavailable: z.array(z.object({
|
|
68563
|
+
bus: CoralBusSchema,
|
|
68564
|
+
count: z.number().int().nonnegative(),
|
|
68565
|
+
reason: z.enum(["driver-missing", "device-not-accessible"])
|
|
68566
|
+
})).readonly().optional()
|
|
68567
|
+
});
|
|
68568
|
+
var HardwareInfoSchema = z.object({
|
|
68569
|
+
platform: HardwarePlatformSchema,
|
|
68570
|
+
arch: HardwareArchSchema,
|
|
68571
|
+
cpuModel: z.string(),
|
|
68572
|
+
cpuCores: z.number(),
|
|
68573
|
+
totalRAM_MB: z.number(),
|
|
68574
|
+
availableRAM_MB: z.number(),
|
|
68575
|
+
gpu: GpuInfoSchema.nullable(),
|
|
68576
|
+
npu: NpuInfoSchema.nullable(),
|
|
68577
|
+
coral: CoralInfoSchema.nullable().optional(),
|
|
68578
|
+
/**
|
|
68579
|
+
* Per-accelerator compute (D930). Omitted by a node that has not probed it.
|
|
68580
|
+
* `null` fields inside an entry are a failed query, never a zero.
|
|
68581
|
+
*/
|
|
68582
|
+
accelerators: z.array(AcceleratorComputeSchema).readonly().optional()
|
|
68583
|
+
});
|
|
68584
|
+
var PlatformScoreSchema = z.object({
|
|
68585
|
+
runtime: z.literal("python"),
|
|
68586
|
+
backend: z.string(),
|
|
68587
|
+
format: z.enum([
|
|
68588
|
+
"onnx",
|
|
68589
|
+
"coreml",
|
|
68590
|
+
"openvino",
|
|
68591
|
+
"tflite"
|
|
68592
|
+
]),
|
|
68593
|
+
score: z.number(),
|
|
68594
|
+
reason: z.string(),
|
|
68595
|
+
available: z.boolean()
|
|
68596
|
+
});
|
|
68597
|
+
var InferenceDeviceDescriptorSchema = z.object({
|
|
68598
|
+
key: z.string(),
|
|
68599
|
+
backend: z.string(),
|
|
68600
|
+
device: z.string(),
|
|
68601
|
+
format: ModelFormatSchema,
|
|
68602
|
+
runtime: z.literal("python"),
|
|
68603
|
+
score: z.number(),
|
|
68604
|
+
available: z.boolean()
|
|
68605
|
+
});
|
|
68606
|
+
var PlatformCapabilitiesSchema = z.object({
|
|
68607
|
+
hardware: HardwareInfoSchema,
|
|
68608
|
+
scores: z.array(PlatformScoreSchema).readonly(),
|
|
68609
|
+
bestScore: PlatformScoreSchema,
|
|
68610
|
+
pythonPath: z.string().nullable(),
|
|
68611
|
+
devices: z.array(InferenceDeviceDescriptorSchema).readonly()
|
|
68612
|
+
});
|
|
68613
|
+
var ModelRequirementSchema = z.object({
|
|
68614
|
+
modelId: z.string(),
|
|
68615
|
+
name: z.string(),
|
|
68616
|
+
minRAM_MB: z.number(),
|
|
68617
|
+
accuracyScore: z.number(),
|
|
68618
|
+
formats: z.array(z.string()).readonly()
|
|
68619
|
+
});
|
|
68620
|
+
var ResolvedInferenceConfigSchema = z.object({
|
|
68621
|
+
modelId: z.string(),
|
|
68622
|
+
runtime: z.literal("python"),
|
|
68623
|
+
backend: z.string(),
|
|
68624
|
+
format: ModelFormatSchema,
|
|
68625
|
+
reason: z.string()
|
|
68626
|
+
});
|
|
68627
|
+
/**
|
|
68628
|
+
* The answer of an accelerator rescan (D919): the node's device list after
|
|
68629
|
+
* the re-probe, what changed, and the evidence that decided the Coral answer
|
|
68630
|
+
* (`usbBus` — could the USB bus be read at all; `decidedBy` — USB ids, the PCI
|
|
68631
|
+
* bus, the installed-delegate fallback, or nothing).
|
|
68632
|
+
*/
|
|
68633
|
+
var AcceleratorRescanSchema = z.object({
|
|
68634
|
+
devices: z.array(InferenceDeviceDescriptorSchema).readonly(),
|
|
68635
|
+
appeared: z.array(z.string()).readonly(),
|
|
68636
|
+
disappeared: z.array(z.string()).readonly(),
|
|
68637
|
+
usbBus: z.enum(["observed", "unobservable"]),
|
|
68638
|
+
decidedBy: z.enum([
|
|
68639
|
+
"usb-ids",
|
|
68640
|
+
"pci",
|
|
68641
|
+
"delegate-fallback",
|
|
68642
|
+
"none"
|
|
68643
|
+
])
|
|
68644
|
+
});
|
|
68645
|
+
var platformProbeCapability = {
|
|
68646
|
+
name: "platform-probe",
|
|
68647
|
+
scope: "system",
|
|
68648
|
+
mode: "singleton",
|
|
68649
|
+
methods: {
|
|
68650
|
+
getCapabilities: method(z.void(), PlatformCapabilitiesSchema),
|
|
68651
|
+
getHardware: method(z.void(), HardwareInfoSchema),
|
|
68652
|
+
resolveInferenceConfig: method(z.object({ requirements: z.array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema),
|
|
68653
|
+
resolveHwAccel: method(z.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema),
|
|
68654
|
+
/**
|
|
68655
|
+
* Re-probe this node's accelerators NOW (Coral USB ids + PCIe apex units;
|
|
68656
|
+
* `/sys` and `/dev` reads, no model load) and rebuild the device list that
|
|
68657
|
+
* `getCapabilities` serves. The same re-probe runs every 60 s on its own;
|
|
68658
|
+
* this is the operator's "rescan inference devices". Target a node with the
|
|
68659
|
+
* `{ nodeId }` routing input, like `getCapabilities`.
|
|
68660
|
+
*/
|
|
68661
|
+
rescanAccelerators: method(z.void(), AcceleratorRescanSchema, {
|
|
68662
|
+
kind: "mutation",
|
|
68663
|
+
auth: "admin"
|
|
68664
|
+
})
|
|
68665
|
+
}
|
|
68666
|
+
};
|
|
68667
|
+
//#endregion
|
|
68668
|
+
//#region src/capabilities/power-meter.cap.ts
|
|
68669
|
+
/**
|
|
68670
|
+
* Multi-metric electrical meter. One slice can carry any combination
|
|
68671
|
+
* of instantaneous power (W), cumulative energy (kWh), voltage (V),
|
|
68672
|
+
* and current (A) — all fields optional so a single-metric source
|
|
68673
|
+
* (HA `sensor` with `device_class: power`) populates only what it
|
|
68674
|
+
* has and aggregators (energy dashboards, billing exports) compose
|
|
68675
|
+
* across providers without needing one cap per metric.
|
|
68676
|
+
*
|
|
68677
|
+
* Trade-off acknowledged: a HomeKit export that wants to surface
|
|
68678
|
+
* "power" and "energy" as separate services has to crack open the
|
|
68679
|
+
* slice and emit two characteristics from one cap. Worth it to avoid
|
|
68680
|
+
* exploding the cap catalog with `power-w` / `energy-kwh` /
|
|
68681
|
+
* `voltage-v` / `current-a` quartets that always travel together
|
|
68682
|
+
* in real-world devices.
|
|
68683
|
+
*/
|
|
68684
|
+
var PowerMeterStatusSchema = z.object({
|
|
68685
|
+
/** Instantaneous power draw in watts. */
|
|
68686
|
+
watts: z.number().optional(),
|
|
68687
|
+
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
68688
|
+
kwhTotal: z.number().optional(),
|
|
68689
|
+
/** Voltage in volts. */
|
|
68690
|
+
volts: z.number().optional(),
|
|
68691
|
+
/** Current in amperes. */
|
|
68692
|
+
amps: z.number().optional(),
|
|
68693
|
+
/** Apparent power in volt-amperes (W × power-factor reciprocal). */
|
|
68694
|
+
va: z.number().optional(),
|
|
68695
|
+
/** Power factor (0..1) if reported. */
|
|
68696
|
+
powerFactor: z.number().min(0).max(1).optional(),
|
|
68697
|
+
/** Ms epoch when the slice was last updated. */
|
|
68698
|
+
lastFetchedAt: z.number(),
|
|
68699
|
+
/** Live display unit of the single metric this slice carries (e.g. HA
|
|
68700
|
+
* `attributes.unit_of_measurement` → 'V' / 'A' / 'W' / 'kW' / 'kWh').
|
|
68701
|
+
* Each upstream `sensor.*` entity surfaces ONE device_class, so one
|
|
68702
|
+
* unit per slice is unambiguous. The UI prefers this over the role's
|
|
68703
|
+
* canonical unit so a 'kW' / 'Wh' feed renders verbatim. */
|
|
68704
|
+
unit: z.string().optional(),
|
|
68705
|
+
/** Suggested decimal places for numeric display.
|
|
68706
|
+
* Populated live from the upstream source when provided (e.g. HA
|
|
68707
|
+
* `attributes.suggested_display_precision`). Falls back to
|
|
68708
|
+
* auto-formatting when absent. */
|
|
68709
|
+
precision: z.number().int().min(0).max(10).optional()
|
|
68710
|
+
});
|
|
68711
|
+
var powerMeterCapability = {
|
|
68712
|
+
name: "power-meter",
|
|
68713
|
+
scope: "device",
|
|
68714
|
+
deviceNative: true,
|
|
68715
|
+
mode: "singleton",
|
|
68716
|
+
deviceTypes: [DeviceType.Sensor],
|
|
68717
|
+
methods: {},
|
|
68718
|
+
status: {
|
|
68719
|
+
schema: PowerMeterStatusSchema,
|
|
68720
|
+
kind: "push"
|
|
68721
|
+
},
|
|
68722
|
+
runtimeState: PowerMeterStatusSchema,
|
|
68723
|
+
/**
|
|
68724
|
+
* Runtime-state durability: **restored** — as `numeric-sensor`; `kwhTotal` is an accumulator whose restored value is the baseline.
|
|
68725
|
+
*
|
|
68726
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
68727
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
68728
|
+
*/
|
|
68729
|
+
durability: "restored",
|
|
68730
|
+
/**
|
|
68731
|
+
* History (D850): recorded series. Gauges are floored at 30 s; `kwhTotal` is the one monotonic meter (counter).
|
|
68732
|
+
*/
|
|
68733
|
+
history: { fields: {
|
|
68734
|
+
watts: {
|
|
68735
|
+
kind: "gauge",
|
|
68736
|
+
unit: "W",
|
|
68737
|
+
deadband: 1,
|
|
68738
|
+
minIntervalMs: 3e4
|
|
68739
|
+
},
|
|
68740
|
+
kwhTotal: {
|
|
68741
|
+
kind: "counter",
|
|
68742
|
+
unit: "kWh",
|
|
68743
|
+
deadband: .01,
|
|
68744
|
+
minIntervalMs: 6e4
|
|
68745
|
+
},
|
|
68746
|
+
volts: {
|
|
68747
|
+
kind: "gauge",
|
|
68748
|
+
unit: "V",
|
|
68749
|
+
deadband: 1,
|
|
68750
|
+
minIntervalMs: 3e4
|
|
68751
|
+
},
|
|
68752
|
+
amps: {
|
|
68753
|
+
kind: "gauge",
|
|
68754
|
+
unit: "A",
|
|
68755
|
+
deadband: .05,
|
|
68756
|
+
minIntervalMs: 3e4
|
|
68757
|
+
},
|
|
68758
|
+
va: {
|
|
68759
|
+
kind: "gauge",
|
|
68760
|
+
unit: "VA",
|
|
68761
|
+
deadband: 1,
|
|
68762
|
+
minIntervalMs: 3e4
|
|
68763
|
+
},
|
|
68764
|
+
powerFactor: {
|
|
68765
|
+
kind: "gauge",
|
|
68766
|
+
unit: "ratio",
|
|
68767
|
+
deadband: .01,
|
|
68768
|
+
minIntervalMs: 6e4
|
|
68769
|
+
}
|
|
68770
|
+
} },
|
|
68771
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
68772
|
+
* whether persisting is worth a SQLite commit. */
|
|
68773
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
68774
|
+
};
|
|
68775
|
+
//#endregion
|
|
68776
|
+
//#region src/capabilities/presence.cap.ts
|
|
68777
|
+
/**
|
|
68778
|
+
* Presence cap. Models HA `person.*` and `device_tracker.*` entities
|
|
68779
|
+
* on `DeviceType.Presence`. Read-only — no setters: presence is
|
|
68780
|
+
* derived from upstream signals (mobile-app location, router DHCP
|
|
68781
|
+
* lease, Bluetooth beacon, manual zone change) and pushed into the
|
|
68782
|
+
* slice.
|
|
68783
|
+
*
|
|
68784
|
+
* `state` follows HA's canonical values — `home` / `not_home` /
|
|
68785
|
+
* `<zone-name>` for any other named zone. The zone name is freeform
|
|
68786
|
+
* because users define arbitrary zones (`work`, `gym`, `school`).
|
|
68787
|
+
*
|
|
68788
|
+
* GPS coordinates are nullable — tracker types without location
|
|
68789
|
+
* (Bluetooth scanner, MQTT presence) omit them. The presence of
|
|
68790
|
+
* GPS data is signaled by `DeviceFeature.PresenceGps` for fast
|
|
68791
|
+
* UI map-pin rendering.
|
|
68792
|
+
*/
|
|
68793
|
+
var GpsLocationSchema = z.object({
|
|
68794
|
+
/** Latitude in decimal degrees, -90..90. */
|
|
68795
|
+
latitude: z.number().min(-90).max(90),
|
|
68796
|
+
/** Longitude in decimal degrees, -180..180. */
|
|
68797
|
+
longitude: z.number().min(-180).max(180),
|
|
68798
|
+
/** Reported accuracy in meters (lower = better). */
|
|
68799
|
+
accuracyMeters: z.number().nonnegative()
|
|
68800
|
+
});
|
|
68801
|
+
var PresenceStatusSchema = z.object({
|
|
68802
|
+
/** `home` / `not_home` / any user-defined zone name. */
|
|
68803
|
+
state: z.string(),
|
|
68804
|
+
/** Optional textual location label (zone name, city, address). Null
|
|
68805
|
+
* when only the binary state is known. */
|
|
68806
|
+
location: z.string().nullable(),
|
|
68807
|
+
/** GPS coordinates when available. Null otherwise. */
|
|
68808
|
+
gps: GpsLocationSchema.nullable(),
|
|
68809
|
+
/** Optional battery level of the tracking device (0..100). Null
|
|
68810
|
+
* when not reported. */
|
|
68811
|
+
batteryPercent: z.number().min(0).max(100).nullable(),
|
|
68812
|
+
/** Ms epoch when the slice was last updated. */
|
|
68813
|
+
lastChangedAt: z.number()
|
|
68814
|
+
});
|
|
68815
|
+
var presenceCapability = {
|
|
68816
|
+
name: "presence",
|
|
68817
|
+
scope: "device",
|
|
68818
|
+
deviceNative: true,
|
|
68819
|
+
mode: "singleton",
|
|
68820
|
+
deviceTypes: [DeviceType.Presence],
|
|
68821
|
+
methods: {},
|
|
68822
|
+
status: {
|
|
68823
|
+
schema: PresenceStatusSchema,
|
|
68824
|
+
kind: "push"
|
|
68825
|
+
},
|
|
68826
|
+
/**
|
|
68827
|
+
* Runtime-state slice — mirrored by the kernel. UI presence card
|
|
68828
|
+
* reads `state` + `location` for the text label; iff `gps !== null`
|
|
68829
|
+
* the map pin is rendered (use `DeviceFeature.PresenceGps` for the
|
|
68830
|
+
* pre-fetch fast-path check).
|
|
68831
|
+
*/
|
|
68832
|
+
runtimeState: PresenceStatusSchema,
|
|
68833
|
+
/**
|
|
68834
|
+
* Runtime-state durability: **restored** — occupancy-relevant: the restored state is what an occupancy rule compares the first post-restart observation against.
|
|
68835
|
+
*
|
|
68836
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
68837
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
68838
|
+
*/
|
|
68839
|
+
durability: "restored",
|
|
68840
|
+
/**
|
|
68841
|
+
* History (D850): recorded series.
|
|
68842
|
+
*/
|
|
68843
|
+
history: { fields: { batteryPercent: {
|
|
68844
|
+
kind: "gauge",
|
|
68845
|
+
unit: "%",
|
|
68846
|
+
deadband: 1
|
|
68847
|
+
} } },
|
|
68848
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
68849
|
+
* whether persisting is worth a SQLite commit. */
|
|
68850
|
+
volatileStateFields: ["lastChangedAt"]
|
|
68851
|
+
};
|
|
68852
|
+
//#endregion
|
|
68853
|
+
//#region src/capabilities/pressure-sensor.cap.ts
|
|
68854
|
+
/**
|
|
68855
|
+
* Atmospheric pressure reading in hectopascals. Drives Home Assistant
|
|
68856
|
+
* `sensor` entries with `device_class: pressure`.
|
|
68857
|
+
*
|
|
68858
|
+
* Unit normalisation: hPa. The canonical display unit (`hPa`) is a
|
|
68859
|
+
* descriptor constant in the UI (ROLE_DESCRIPTOR), not stored in
|
|
68860
|
+
* `sourceInfo`.
|
|
68861
|
+
*/
|
|
68862
|
+
var PressureSensorStatusSchema = z.object({
|
|
68863
|
+
/** Current pressure in hPa. */
|
|
68864
|
+
hpa: z.number(),
|
|
68865
|
+
/** Ms epoch when the slice was last updated. */
|
|
68866
|
+
lastFetchedAt: z.number(),
|
|
68867
|
+
/** Live display unit from the upstream source (e.g. HA
|
|
68868
|
+
* `attributes.unit_of_measurement`). The UI prefers this over the
|
|
68869
|
+
* role's canonical unit. Absent → fall back to the canonical unit. */
|
|
68870
|
+
unit: z.string().optional(),
|
|
68871
|
+
/** Suggested decimal places for numeric display.
|
|
68872
|
+
* Populated live from the upstream source when provided (e.g. HA
|
|
68873
|
+
* `attributes.suggested_display_precision`). Falls back to
|
|
68874
|
+
* auto-formatting when absent. */
|
|
68875
|
+
precision: z.number().int().min(0).max(10).optional()
|
|
68876
|
+
});
|
|
68877
|
+
var pressureSensorCapability = {
|
|
68878
|
+
name: "pressure-sensor",
|
|
68879
|
+
scope: "device",
|
|
68880
|
+
deviceNative: true,
|
|
68881
|
+
mode: "singleton",
|
|
68882
|
+
deviceTypes: [DeviceType.Sensor],
|
|
68883
|
+
methods: {},
|
|
68884
|
+
status: {
|
|
68885
|
+
schema: PressureSensorStatusSchema,
|
|
68886
|
+
kind: "push"
|
|
68887
|
+
},
|
|
68085
68888
|
runtimeState: PressureSensorStatusSchema,
|
|
68086
68889
|
/**
|
|
68087
68890
|
* Runtime-state durability: **restored** — as `numeric-sensor`.
|
|
@@ -68785,6 +69588,43 @@ var ptzAutotrackCapability = {
|
|
|
68785
69588
|
history: "none"
|
|
68786
69589
|
};
|
|
68787
69590
|
//#endregion
|
|
69591
|
+
//#region src/capabilities/running-state.cap.ts
|
|
69592
|
+
var RunningStateSourceSchema = z.enum(["native", "assigned"]);
|
|
69593
|
+
var RunningStateStatusSchema = z.object({
|
|
69594
|
+
/** null = unknown — never coerced to false (D393). */
|
|
69595
|
+
running: z.boolean().nullable(),
|
|
69596
|
+
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
69597
|
+
since: z.number().nullable(),
|
|
69598
|
+
source: RunningStateSourceSchema,
|
|
69599
|
+
phase: z.string().nullable(),
|
|
69600
|
+
lastFetchedAt: z.number()
|
|
69601
|
+
});
|
|
69602
|
+
var RunningFlipEventDataSchema = z.object({
|
|
69603
|
+
deviceId: z.number(),
|
|
69604
|
+
since: z.number().nullable(),
|
|
69605
|
+
phase: z.string().nullable()
|
|
69606
|
+
});
|
|
69607
|
+
var runningStateCapability = {
|
|
69608
|
+
name: "running-state",
|
|
69609
|
+
scope: "device",
|
|
69610
|
+
deviceNative: true,
|
|
69611
|
+
mode: "singleton",
|
|
69612
|
+
deviceTypes: Object.values(DeviceType),
|
|
69613
|
+
methods: {},
|
|
69614
|
+
events: {
|
|
69615
|
+
onStarted: { data: RunningFlipEventDataSchema },
|
|
69616
|
+
onFinished: { data: RunningFlipEventDataSchema }
|
|
69617
|
+
},
|
|
69618
|
+
status: {
|
|
69619
|
+
schema: RunningStateStatusSchema,
|
|
69620
|
+
kind: "push"
|
|
69621
|
+
},
|
|
69622
|
+
runtimeState: RunningStateStatusSchema,
|
|
69623
|
+
durability: "restored",
|
|
69624
|
+
history: { fields: { running: { kind: "boolean" } } },
|
|
69625
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
69626
|
+
};
|
|
69627
|
+
//#endregion
|
|
68788
69628
|
//#region src/capabilities/reboot.cap.ts
|
|
68789
69629
|
/**
|
|
68790
69630
|
* reboot — device-scoped capability for "soft" device reboots (firmware
|
|
@@ -71685,7 +72525,20 @@ var ZoneRuleSchema = z.object({
|
|
|
71685
72525
|
* Defaults to `true` so operators creating a rule via the UI
|
|
71686
72526
|
* see it active immediately.
|
|
71687
72527
|
*/
|
|
71688
|
-
enabled: z.boolean().default(true)
|
|
72528
|
+
enabled: z.boolean().default(true),
|
|
72529
|
+
/**
|
|
72530
|
+
* Package stage only. When true, a package candidate may open from a
|
|
72531
|
+
* scene difference in this rule's zone after a person leaves. The
|
|
72532
|
+
* package model, when it boxes something overlapping, is extra evidence
|
|
72533
|
+
* and is not the gate. Absent or false keeps today's model path.
|
|
72534
|
+
*/
|
|
72535
|
+
detectBySceneDifference: z.boolean().optional(),
|
|
72536
|
+
/**
|
|
72537
|
+
* Package stage only. When true, a promoted package is shown to the
|
|
72538
|
+
* `llm` cap before the delivery event is emitted. Absent or false emits
|
|
72539
|
+
* as today. Usable with or without `detectBySceneDifference`.
|
|
72540
|
+
*/
|
|
72541
|
+
confirmWithLlm: z.boolean().optional()
|
|
71689
72542
|
});
|
|
71690
72543
|
/**
|
|
71691
72544
|
* Convenience array schema — used by addon device-settings
|
|
@@ -74998,6 +75851,215 @@ var PIPELINE_OWNER_CAPABILITY_NAMES = [
|
|
|
74998
75851
|
"pipeline-runner"
|
|
74999
75852
|
];
|
|
75000
75853
|
//#endregion
|
|
75854
|
+
//#region src/running-state/assignment.ts
|
|
75855
|
+
function constant(literal) {
|
|
75856
|
+
return {
|
|
75857
|
+
kind: "expression",
|
|
75858
|
+
expr: literal,
|
|
75859
|
+
bindings: {}
|
|
75860
|
+
};
|
|
75861
|
+
}
|
|
75862
|
+
function fromRead(source, cap, fieldPath) {
|
|
75863
|
+
return {
|
|
75864
|
+
kind: "from",
|
|
75865
|
+
source,
|
|
75866
|
+
cap,
|
|
75867
|
+
fieldPath
|
|
75868
|
+
};
|
|
75869
|
+
}
|
|
75870
|
+
function sortKeys(value) {
|
|
75871
|
+
if (Array.isArray(value)) return value.map(sortKeys);
|
|
75872
|
+
if (typeof value !== "object" || value === null) return value;
|
|
75873
|
+
return Object.fromEntries(Object.entries(value).toSorted(([a], [b]) => a.localeCompare(b)).map(([key, inner]) => [key, sortKeys(inner)]));
|
|
75874
|
+
}
|
|
75875
|
+
function sameFeature(a, b) {
|
|
75876
|
+
return JSON.stringify(sortKeys(a)) === JSON.stringify(sortKeys(b));
|
|
75877
|
+
}
|
|
75878
|
+
function booleanRunningField(input) {
|
|
75879
|
+
if (input.source.kind !== "boolean") return null;
|
|
75880
|
+
const read = fromRead(input.source.source, input.source.cap, input.source.fieldPath);
|
|
75881
|
+
if (!input.invert) return read;
|
|
75882
|
+
return {
|
|
75883
|
+
kind: "expression",
|
|
75884
|
+
expr: "!x",
|
|
75885
|
+
bindings: { x: read }
|
|
75886
|
+
};
|
|
75887
|
+
}
|
|
75888
|
+
function sinceField(input) {
|
|
75889
|
+
if (input.source.kind === "boolean" && input.changedAtField !== null) return fromRead(input.source.source, input.source.cap, input.changedAtField);
|
|
75890
|
+
return {
|
|
75891
|
+
kind: "expression",
|
|
75892
|
+
expr: "latchedAt(running)",
|
|
75893
|
+
bindings: { running: fromRead(input.target, "running-state", "running") }
|
|
75894
|
+
};
|
|
75895
|
+
}
|
|
75896
|
+
function powerRunningField(input) {
|
|
75897
|
+
if (input.source.kind !== "number") return null;
|
|
75898
|
+
if (!Number.isFinite(input.thresholdWatts) || !Number.isFinite(input.startDelayMs) || !Number.isFinite(input.stopDelayMs) || input.thresholdWatts < 0 || input.startDelayMs < 0 || input.stopDelayMs < 0) return null;
|
|
75899
|
+
const read = fromRead(input.source.source, input.source.cap, input.source.fieldPath);
|
|
75900
|
+
return {
|
|
75901
|
+
kind: "expression",
|
|
75902
|
+
expr: `dwell(x >= ${input.thresholdWatts}, ${input.startDelayMs}, ${input.stopDelayMs})`,
|
|
75903
|
+
bindings: { x: read }
|
|
75904
|
+
};
|
|
75905
|
+
}
|
|
75906
|
+
function runningAssignmentFeature(input) {
|
|
75907
|
+
const running = input.source.kind === "number" ? powerRunningField(input) : booleanRunningField(input);
|
|
75908
|
+
if (running === null) return null;
|
|
75909
|
+
return {
|
|
75910
|
+
kind: "fields",
|
|
75911
|
+
cap: "running-state",
|
|
75912
|
+
fields: {
|
|
75913
|
+
source: constant("\"assigned\""),
|
|
75914
|
+
phase: constant("null"),
|
|
75915
|
+
lastFetchedAt: constant("now"),
|
|
75916
|
+
running,
|
|
75917
|
+
since: sinceField(input)
|
|
75918
|
+
}
|
|
75919
|
+
};
|
|
75920
|
+
}
|
|
75921
|
+
function booleanSourceFromRunningField(source) {
|
|
75922
|
+
if (source === void 0) return null;
|
|
75923
|
+
if (source.kind === "from") return {
|
|
75924
|
+
source: source.source,
|
|
75925
|
+
cap: source.cap,
|
|
75926
|
+
fieldPath: source.fieldPath,
|
|
75927
|
+
kind: "boolean"
|
|
75928
|
+
};
|
|
75929
|
+
if (source.kind !== "expression" || source.expr !== "!x") return null;
|
|
75930
|
+
const x = source.bindings["x"];
|
|
75931
|
+
if (x === void 0 || x.kind !== "from") return null;
|
|
75932
|
+
return {
|
|
75933
|
+
source: x.source,
|
|
75934
|
+
cap: x.cap,
|
|
75935
|
+
fieldPath: x.fieldPath,
|
|
75936
|
+
kind: "boolean"
|
|
75937
|
+
};
|
|
75938
|
+
}
|
|
75939
|
+
function recoverPowerRunning(running) {
|
|
75940
|
+
if (running === void 0 || running.kind !== "expression") return null;
|
|
75941
|
+
const match = /^dwell\(x >= ([\d.]+), (\d+), (\d+)\)$/.exec(running.expr);
|
|
75942
|
+
if (match === null) return null;
|
|
75943
|
+
const x = running.bindings["x"];
|
|
75944
|
+
if (x === void 0 || x.kind !== "from") return null;
|
|
75945
|
+
const thresholdWatts = Number(match[1]);
|
|
75946
|
+
const startDelayMs = Number(match[2]);
|
|
75947
|
+
const stopDelayMs = Number(match[3]);
|
|
75948
|
+
if (!Number.isFinite(thresholdWatts) || !Number.isFinite(startDelayMs) || !Number.isFinite(stopDelayMs)) return null;
|
|
75949
|
+
return {
|
|
75950
|
+
source: {
|
|
75951
|
+
...x,
|
|
75952
|
+
kind: "number"
|
|
75953
|
+
},
|
|
75954
|
+
invert: false,
|
|
75955
|
+
thresholdWatts,
|
|
75956
|
+
startDelayMs,
|
|
75957
|
+
stopDelayMs
|
|
75958
|
+
};
|
|
75959
|
+
}
|
|
75960
|
+
/** Recover what {@link runningAssignmentFeature} wrote, else null. */
|
|
75961
|
+
function runningAssignmentRecovered(stored, target) {
|
|
75962
|
+
if (stored.cap !== "running-state" || stored.kind !== "fields") return null;
|
|
75963
|
+
const power = recoverPowerRunning(stored.fields["running"]);
|
|
75964
|
+
if (power !== null) return power;
|
|
75965
|
+
const booleanSource = booleanSourceFromRunningField(stored.fields["running"]);
|
|
75966
|
+
if (booleanSource === null) return null;
|
|
75967
|
+
const since = stored.fields["since"];
|
|
75968
|
+
let changedAtField = null;
|
|
75969
|
+
if (since?.kind === "from" && since.cap === booleanSource.cap && since.source.addonId === booleanSource.source.addonId && since.source.stableId === booleanSource.source.stableId) changedAtField = since.fieldPath;
|
|
75970
|
+
const rebuilt = runningAssignmentFeature({
|
|
75971
|
+
mode: "replace",
|
|
75972
|
+
target,
|
|
75973
|
+
source: booleanSource,
|
|
75974
|
+
changedAtField,
|
|
75975
|
+
invert: stored.fields["running"]?.kind === "expression" && stored.fields["running"].expr === "!x",
|
|
75976
|
+
thresholdWatts: 0,
|
|
75977
|
+
startDelayMs: 0,
|
|
75978
|
+
stopDelayMs: 0
|
|
75979
|
+
});
|
|
75980
|
+
if (rebuilt === null) return null;
|
|
75981
|
+
const { enabled: _e, ...rest } = stored;
|
|
75982
|
+
if (!sameFeature(rest, rebuilt)) return null;
|
|
75983
|
+
return {
|
|
75984
|
+
source: booleanSource,
|
|
75985
|
+
invert: stored.fields["running"]?.kind === "expression" && stored.fields["running"].expr === "!x",
|
|
75986
|
+
thresholdWatts: 0,
|
|
75987
|
+
startDelayMs: 0,
|
|
75988
|
+
stopDelayMs: 0
|
|
75989
|
+
};
|
|
75990
|
+
}
|
|
75991
|
+
function isRunningAssignmentFeature(stored, mode, target) {
|
|
75992
|
+
const recovered = runningAssignmentRecovered(stored, target);
|
|
75993
|
+
if (recovered === null) return false;
|
|
75994
|
+
const rebuilt = recovered.source.kind === "number" ? runningAssignmentFeature({
|
|
75995
|
+
mode,
|
|
75996
|
+
target,
|
|
75997
|
+
source: recovered.source,
|
|
75998
|
+
changedAtField: null,
|
|
75999
|
+
invert: false,
|
|
76000
|
+
thresholdWatts: recovered.thresholdWatts,
|
|
76001
|
+
startDelayMs: recovered.startDelayMs,
|
|
76002
|
+
stopDelayMs: recovered.stopDelayMs
|
|
76003
|
+
}) : runningAssignmentFeature({
|
|
76004
|
+
mode,
|
|
76005
|
+
target,
|
|
76006
|
+
source: recovered.source,
|
|
76007
|
+
changedAtField: stored.fields["since"]?.kind === "from" ? stored.fields["since"].fieldPath : null,
|
|
76008
|
+
invert: recovered.invert,
|
|
76009
|
+
thresholdWatts: 0,
|
|
76010
|
+
startDelayMs: 0,
|
|
76011
|
+
stopDelayMs: 0
|
|
76012
|
+
});
|
|
76013
|
+
if (rebuilt === null) return false;
|
|
76014
|
+
const { enabled: _enabled, ...rest } = stored;
|
|
76015
|
+
return sameFeature(rest, rebuilt);
|
|
76016
|
+
}
|
|
76017
|
+
//#endregion
|
|
76018
|
+
//#region src/running-state/defaults.ts
|
|
76019
|
+
var RUNNING_POWER_THRESHOLD_WATTS = 5;
|
|
76020
|
+
var RUNNING_POWER_START_DELAY_MS = 3e4;
|
|
76021
|
+
var RUNNING_POWER_STOP_DELAY_MS = 18e4;
|
|
76022
|
+
//#endregion
|
|
76023
|
+
//#region src/running-state/from-operation.ts
|
|
76024
|
+
function resolveSince(running, previous, sinceMs) {
|
|
76025
|
+
if (running === null) return null;
|
|
76026
|
+
if ((previous?.running ?? null) !== running) return sinceMs;
|
|
76027
|
+
return previous?.since ?? sinceMs;
|
|
76028
|
+
}
|
|
76029
|
+
function nativeSlice(running, phase, previous, sinceMs, now) {
|
|
76030
|
+
return {
|
|
76031
|
+
running,
|
|
76032
|
+
since: resolveSince(running, previous, sinceMs),
|
|
76033
|
+
source: "native",
|
|
76034
|
+
phase: running === null ? null : phase,
|
|
76035
|
+
lastFetchedAt: now
|
|
76036
|
+
};
|
|
76037
|
+
}
|
|
76038
|
+
function runningFromDishwasherOperation(operation, program, previous, now) {
|
|
76039
|
+
if (operation === null) return nativeSlice(null, null, previous, now, now);
|
|
76040
|
+
if (operation === "Run" || operation === "Aborting") return nativeSlice(true, program ?? operation, previous, now, now);
|
|
76041
|
+
if (operation === "Pause") return nativeSlice(false, "Pause", previous, now, now);
|
|
76042
|
+
return nativeSlice(false, operation, previous, now, now);
|
|
76043
|
+
}
|
|
76044
|
+
function runningFromVacuumState(state, previous, now) {
|
|
76045
|
+
if (state === null) return nativeSlice(null, null, previous, now, now);
|
|
76046
|
+
if (state === "cleaning" || state === "returning" || state === "drying") return nativeSlice(true, state, previous, now, now);
|
|
76047
|
+
if (state === "paused") return nativeSlice(false, "paused", previous, now, now);
|
|
76048
|
+
return nativeSlice(false, state, previous, now, now);
|
|
76049
|
+
}
|
|
76050
|
+
function runningFromLawnMower(activity, previous, now) {
|
|
76051
|
+
if (activity === null) return nativeSlice(null, null, previous, now, now);
|
|
76052
|
+
if (activity === "mowing") return nativeSlice(true, activity, previous, now, now);
|
|
76053
|
+
if (activity === "paused") return nativeSlice(false, "paused", previous, now, now);
|
|
76054
|
+
return nativeSlice(false, activity, previous, now, now);
|
|
76055
|
+
}
|
|
76056
|
+
function runningFromMediaPlayer(state, previous, now) {
|
|
76057
|
+
if (state === null) return nativeSlice(null, null, previous, now, now);
|
|
76058
|
+
if (state === "playing" || state === "buffering") return nativeSlice(true, state, previous, now, now);
|
|
76059
|
+
if (state === "paused") return nativeSlice(false, "paused", previous, now, now);
|
|
76060
|
+
return nativeSlice(false, state, previous, now, now);
|
|
76061
|
+
}
|
|
76062
|
+
//#endregion
|
|
75001
76063
|
//#region src/clips/clip-event-labels.ts
|
|
75002
76064
|
/**
|
|
75003
76065
|
* Which of OUR object detections a clip window holds — the ONE overlap rule
|
|
@@ -75641,11 +76703,12 @@ function expressionOutcome(source, read, now, stateful) {
|
|
|
75641
76703
|
return unavailable;
|
|
75642
76704
|
}
|
|
75643
76705
|
const deadlines = [];
|
|
76706
|
+
const hooks = {
|
|
76707
|
+
noteDeadline: (at) => deadlines.push(at),
|
|
76708
|
+
convert: (value, from, to) => tryConvertUnit(value, normalizeUnit(from) ?? from, normalizeUnit(to) ?? to) ?? null
|
|
76709
|
+
};
|
|
75644
76710
|
const result = evaluateExpressionSource(source.expr, values, now, {
|
|
75645
|
-
hooks
|
|
75646
|
-
noteDeadline: (at) => deadlines.push(at),
|
|
75647
|
-
convert: (value, from, to) => tryConvertUnit(value, normalizeUnit(from) ?? from, normalizeUnit(to) ?? to) ?? null
|
|
75648
|
-
},
|
|
76711
|
+
hooks,
|
|
75649
76712
|
...stateful === void 0 ? {} : { invokeStateful: (invocation) => evaluateStatefulExpressionCall(stateful.callPathPrefix === void 0 ? invocation : {
|
|
75650
76713
|
...invocation,
|
|
75651
76714
|
path: `${stateful.callPathPrefix}@${invocation.path}`
|
|
@@ -75653,7 +76716,7 @@ function expressionOutcome(source, read, now, stateful) {
|
|
|
75653
76716
|
currentOutput: stateful.currentOutput,
|
|
75654
76717
|
startedAtMs: stateful.startedAtMs,
|
|
75655
76718
|
nowMs: now
|
|
75656
|
-
}) }
|
|
76719
|
+
}, hooks) }
|
|
75657
76720
|
});
|
|
75658
76721
|
if (!result.ok) return {
|
|
75659
76722
|
state: "unavailable",
|
|
@@ -76605,6 +77668,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
76605
77668
|
ptzAutotrack: ptzAutotrackCapability,
|
|
76606
77669
|
recordingOnboard: recordingOnboardCapability,
|
|
76607
77670
|
recordingSignal: recordingSignalCapability,
|
|
77671
|
+
runningState: runningStateCapability,
|
|
76608
77672
|
sceneMonitor: sceneMonitorCapability,
|
|
76609
77673
|
scriptRunner: scriptRunnerCapability,
|
|
76610
77674
|
smoke: smokeCapability,
|
|
@@ -86188,6 +87252,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
86188
87252
|
access: "create",
|
|
86189
87253
|
role: "admin"
|
|
86190
87254
|
},
|
|
87255
|
+
"runningState.getStatus": {
|
|
87256
|
+
capName: "running-state",
|
|
87257
|
+
capScope: "device",
|
|
87258
|
+
addonId: null,
|
|
87259
|
+
access: "view",
|
|
87260
|
+
role: "viewer"
|
|
87261
|
+
},
|
|
86191
87262
|
"sceneMonitor.captureReference": {
|
|
86192
87263
|
capName: "scene-monitor",
|
|
86193
87264
|
capScope: "device",
|
|
@@ -88477,6 +89548,7 @@ var KNOWN_CAP_NAMES = [
|
|
|
88477
89548
|
"recording-onboard",
|
|
88478
89549
|
"recording-signal",
|
|
88479
89550
|
"records",
|
|
89551
|
+
"running-state",
|
|
88480
89552
|
"scene-monitor",
|
|
88481
89553
|
"script-runner",
|
|
88482
89554
|
"server-management",
|
|
@@ -88591,6 +89663,7 @@ var DEVICE_CAP_NAMES = [
|
|
|
88591
89663
|
"recording",
|
|
88592
89664
|
"recording-onboard",
|
|
88593
89665
|
"recording-signal",
|
|
89666
|
+
"running-state",
|
|
88594
89667
|
"scene-monitor",
|
|
88595
89668
|
"script-runner",
|
|
88596
89669
|
"smoke",
|
|
@@ -91275,6 +92348,32 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
91275
92348
|
}],
|
|
91276
92349
|
events: { onSent: { notOperatorFacing: "a delivery receipt of a send this system made — not a fact about the world" } }
|
|
91277
92350
|
},
|
|
92351
|
+
"running-state": {
|
|
92352
|
+
scope: "device",
|
|
92353
|
+
noun: t("Running", "In funzione"),
|
|
92354
|
+
state: [{
|
|
92355
|
+
kind: "boolean",
|
|
92356
|
+
field: "running",
|
|
92357
|
+
label: t("Running", "In funzione"),
|
|
92358
|
+
whenTrue: t("When {device} starts", "Quando {device} inizia"),
|
|
92359
|
+
whenFalse: t("When {device} finishes", "Quando {device} finisce"),
|
|
92360
|
+
icon: "play"
|
|
92361
|
+
}],
|
|
92362
|
+
events: {
|
|
92363
|
+
onStarted: {
|
|
92364
|
+
category: EventCategory.RunningStarted,
|
|
92365
|
+
label: t("Started running", "Ha iniziato a funzionare"),
|
|
92366
|
+
phrase: t("When {device} starts running", "Quando {device} inizia a funzionare"),
|
|
92367
|
+
icon: "play"
|
|
92368
|
+
},
|
|
92369
|
+
onFinished: {
|
|
92370
|
+
category: EventCategory.RunningFinished,
|
|
92371
|
+
label: t("Finished", "Ha finito"),
|
|
92372
|
+
phrase: t("When {device} finishes", "Quando {device} finisce"),
|
|
92373
|
+
icon: "square"
|
|
92374
|
+
}
|
|
92375
|
+
}
|
|
92376
|
+
},
|
|
91278
92377
|
update: {
|
|
91279
92378
|
scope: "device",
|
|
91280
92379
|
noun: t("Firmware update", "Aggiornamento firmware"),
|
|
@@ -94215,6 +95314,7 @@ var CAP_NAMES_WITH_STATUS = [
|
|
|
94215
95314
|
"recording-archive",
|
|
94216
95315
|
"recording-onboard",
|
|
94217
95316
|
"recording-signal",
|
|
95317
|
+
"running-state",
|
|
94218
95318
|
"scene-monitor",
|
|
94219
95319
|
"script-runner",
|
|
94220
95320
|
"smoke",
|
|
@@ -94370,6 +95470,7 @@ var CAPABILITY_NAMES = {
|
|
|
94370
95470
|
recordingOnboard: "recording-onboard",
|
|
94371
95471
|
recordingSignal: "recording-signal",
|
|
94372
95472
|
records: "records",
|
|
95473
|
+
runningState: "running-state",
|
|
94373
95474
|
sceneMonitor: "scene-monitor",
|
|
94374
95475
|
scriptRunner: "script-runner",
|
|
94375
95476
|
serverManagement: "server-management",
|
|
@@ -94963,6 +96064,10 @@ var CAPABILITY_ROUTER_KEYS = [
|
|
|
94963
96064
|
key: "records",
|
|
94964
96065
|
name: "records"
|
|
94965
96066
|
},
|
|
96067
|
+
{
|
|
96068
|
+
key: "runningState",
|
|
96069
|
+
name: "running-state"
|
|
96070
|
+
},
|
|
94966
96071
|
{
|
|
94967
96072
|
key: "sceneMonitor",
|
|
94968
96073
|
name: "scene-monitor"
|
|
@@ -95279,6 +96384,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
95279
96384
|
recordingOnboardCapability,
|
|
95280
96385
|
recordingSignalCapability,
|
|
95281
96386
|
recordsCapability,
|
|
96387
|
+
runningStateCapability,
|
|
95282
96388
|
sceneMonitorCapability,
|
|
95283
96389
|
scriptRunnerCapability,
|
|
95284
96390
|
serverManagementCapability,
|
|
@@ -97595,6 +98701,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
97595
98701
|
form: "single",
|
|
97596
98702
|
optional: true
|
|
97597
98703
|
}],
|
|
98704
|
+
"runningState.getStatus": [{
|
|
98705
|
+
name: "deviceId",
|
|
98706
|
+
form: "single",
|
|
98707
|
+
optional: false
|
|
98708
|
+
}],
|
|
97598
98709
|
"sceneMonitor.captureReference": [{
|
|
97599
98710
|
name: "deviceId",
|
|
97600
98711
|
form: "single",
|
|
@@ -98296,7 +99407,7 @@ function getCapsByProviderKind(kind) {
|
|
|
98296
99407
|
//#region src/generated/runtime-state-durability.ts
|
|
98297
99408
|
/**
|
|
98298
99409
|
* Per-cap runtime-state policy, projected from every `*.cap.ts` that declares
|
|
98299
|
-
* `runtimeState`.
|
|
99410
|
+
* `runtimeState`. 72 caps: 38 `restored`, 34 `session`.
|
|
98300
99411
|
*
|
|
98301
99412
|
* A cap absent from this map has no runtime-state slice at all. A cap PRESENT
|
|
98302
99413
|
* with `durability: 'session'` has one and has decided not to keep it.
|
|
@@ -98514,6 +99625,10 @@ var RUNTIME_STATE_POLICY = {
|
|
|
98514
99625
|
durability: "session",
|
|
98515
99626
|
volatileFields: []
|
|
98516
99627
|
},
|
|
99628
|
+
"running-state": {
|
|
99629
|
+
durability: "restored",
|
|
99630
|
+
volatileFields: ["lastFetchedAt"]
|
|
99631
|
+
},
|
|
98517
99632
|
"scene-monitor": {
|
|
98518
99633
|
durability: "session",
|
|
98519
99634
|
volatileFields: []
|
|
@@ -98636,6 +99751,7 @@ var RESTORED_CAP_NAMES = [
|
|
|
98636
99751
|
"pressure-sensor",
|
|
98637
99752
|
"privacy-mask",
|
|
98638
99753
|
"recording-onboard",
|
|
99754
|
+
"running-state",
|
|
98639
99755
|
"smoke",
|
|
98640
99756
|
"stream-catalog",
|
|
98641
99757
|
"stream-params",
|
|
@@ -98751,7 +99867,7 @@ var BucketAccumulator = class {
|
|
|
98751
99867
|
//#region src/generated/history-catalog.ts
|
|
98752
99868
|
/**
|
|
98753
99869
|
* Cap history catalog, projected from every `*.cap.ts` `history` block.
|
|
98754
|
-
*
|
|
99870
|
+
* 41 caps with series (74 series), 30 caps answered `'none'`.
|
|
98755
99871
|
* Field keys are `runtimeState` paths (`a.b` into fixed objects only).
|
|
98756
99872
|
*/
|
|
98757
99873
|
var HISTORY_CATALOG = {
|
|
@@ -99028,6 +100144,7 @@ var HISTORY_CATALOG = {
|
|
|
99028
100144
|
unit: "hPa",
|
|
99029
100145
|
deadband: .1
|
|
99030
100146
|
} },
|
|
100147
|
+
"running-state": { "running": { kind: "boolean" } },
|
|
99031
100148
|
"smoke": { "detected": { kind: "boolean" } },
|
|
99032
100149
|
"stream-params": {
|
|
99033
100150
|
"main.bitrate": {
|
|
@@ -100831,6 +101948,7 @@ function prepareNotification(caps, n) {
|
|
|
100831
101948
|
* narrows, and still fails CLOSED on a subject that cannot produce the identity
|
|
100832
101949
|
* it tests (a device the mirror cannot name is not evidence of a camera).
|
|
100833
101950
|
*/
|
|
101951
|
+
var LEGACY_KINDS_WITHOUT_FILTERS = new Set(NC_LEGACY_SYSTEM_EVENT_KINDS);
|
|
100834
101952
|
/**
|
|
100835
101953
|
* Every filter, for the callers that must cover all of them (guards, tests).
|
|
100836
101954
|
*
|
|
@@ -100854,6 +101972,7 @@ var NC_SYSTEM_EVENT_FILTER_KEYS = [
|
|
|
100854
101972
|
* ignores it and an editor hides its input. It never means "excluded".
|
|
100855
101973
|
*/
|
|
100856
101974
|
function systemEventFilterApplies(kind, filter) {
|
|
101975
|
+
if (LEGACY_KINDS_WITHOUT_FILTERS.has(kind)) return false;
|
|
100857
101976
|
switch (filter) {
|
|
100858
101977
|
case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind.startsWith("motion-") || kind.startsWith("recording-") || kind === "alarm-triggered";
|
|
100859
101978
|
case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind" || kind.startsWith("motion-");
|
|
@@ -100908,9 +102027,6 @@ var NC_SYSTEM_EVENT_FAMILY = {
|
|
|
100908
102027
|
"device-battery-normal": "device-events",
|
|
100909
102028
|
"device-consumable-low": "device-events",
|
|
100910
102029
|
"device-consumable-normal": "device-events",
|
|
100911
|
-
"device-tank-low": "device-events",
|
|
100912
|
-
"device-tank-full": "device-events",
|
|
100913
|
-
"device-tank-normal": "device-events",
|
|
100914
102030
|
"stream-online": "device-events",
|
|
100915
102031
|
"stream-offline": "device-events",
|
|
100916
102032
|
"detection-blind": "device-events",
|
|
@@ -101005,16 +102121,6 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
101005
102121
|
label: "Consumables",
|
|
101006
102122
|
kinds: ["device-consumable-low", "device-consumable-normal"]
|
|
101007
102123
|
},
|
|
101008
|
-
{
|
|
101009
|
-
id: "tanks",
|
|
101010
|
-
family: "device-events",
|
|
101011
|
-
label: "Tanks",
|
|
101012
|
-
kinds: [
|
|
101013
|
-
"device-tank-low",
|
|
101014
|
-
"device-tank-full",
|
|
101015
|
-
"device-tank-normal"
|
|
101016
|
-
]
|
|
101017
|
-
},
|
|
101018
102124
|
{
|
|
101019
102125
|
id: "detection-blind",
|
|
101020
102126
|
family: "device-events",
|
|
@@ -102911,11 +104017,6 @@ var RULE_BODY_ONLY = ["body"];
|
|
|
102911
104017
|
var RULE_TEXT = ["title", "body"];
|
|
102912
104018
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
102913
104019
|
var CONSUMABLE = ["device-consumable-low", "device-consumable-normal"];
|
|
102914
|
-
var TANK = [
|
|
102915
|
-
"device-tank-low",
|
|
102916
|
-
"device-tank-full",
|
|
102917
|
-
"device-tank-normal"
|
|
102918
|
-
];
|
|
102919
104020
|
var ALERT_EPISODE = [
|
|
102920
104021
|
"alert-critical",
|
|
102921
104022
|
"alert-error",
|
|
@@ -102947,7 +104048,6 @@ var DEVICE_EVENTS = [
|
|
|
102947
104048
|
"device-enabled",
|
|
102948
104049
|
...BATTERY,
|
|
102949
104050
|
...CONSUMABLE,
|
|
102950
|
-
...TANK,
|
|
102951
104051
|
"stream-online",
|
|
102952
104052
|
"stream-offline",
|
|
102953
104053
|
"detection-blind",
|
|
@@ -102993,12 +104093,6 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
102993
104093
|
example: "Robot — filter 10 %",
|
|
102994
104094
|
kinds: CONSUMABLE
|
|
102995
104095
|
},
|
|
102996
|
-
{
|
|
102997
|
-
name: "summaryTanks",
|
|
102998
|
-
label: "Summary: tanks",
|
|
102999
|
-
example: "Robot — clean water low",
|
|
103000
|
-
kinds: TANK
|
|
103001
|
-
},
|
|
103002
104096
|
{
|
|
103003
104097
|
name: "summaryDetection",
|
|
103004
104098
|
label: "Summary: cameras detecting nothing",
|
|
@@ -103407,18 +104501,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
103407
104501
|
families: ["rule"],
|
|
103408
104502
|
fields: [...RULE_TEXT],
|
|
103409
104503
|
kinds: ["system"],
|
|
103410
|
-
systemEventKinds: [...CONSUMABLE
|
|
103411
|
-
},
|
|
103412
|
-
{
|
|
103413
|
-
name: "tank",
|
|
103414
|
-
label: "Tank",
|
|
103415
|
-
description: "Which tank, as a stable token: cleanWater, dirtyWater, detergent, dustBin, or the device key of any other supply (salt, rinse aid).",
|
|
103416
|
-
example: "clean water",
|
|
103417
|
-
group: "system",
|
|
103418
|
-
families: ["rule"],
|
|
103419
|
-
fields: [...RULE_TEXT],
|
|
103420
|
-
kinds: ["system"],
|
|
103421
|
-
systemEventKinds: [...TANK]
|
|
104504
|
+
systemEventKinds: [...CONSUMABLE]
|
|
103422
104505
|
},
|
|
103423
104506
|
{
|
|
103424
104507
|
name: "profile",
|
|
@@ -104069,9 +105152,6 @@ var NC_TEMPLATE_VARS = [
|
|
|
104069
105152
|
* delete it from here then, and the served catalog names it again.
|
|
104070
105153
|
*/
|
|
104071
105154
|
var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
|
|
104072
|
-
"device-tank-low",
|
|
104073
|
-
"device-tank-full",
|
|
104074
|
-
"device-tank-normal",
|
|
104075
105155
|
"node-restarting",
|
|
104076
105156
|
"node-updating",
|
|
104077
105157
|
"alert-critical",
|
|
@@ -104233,15 +105313,6 @@ var NC_SYSTEM_EVENT_CLASS_SPECS = [
|
|
|
104233
105313
|
snapshotLabel: "Consumables low now",
|
|
104234
105314
|
snapshotSection: "consumables"
|
|
104235
105315
|
},
|
|
104236
|
-
{
|
|
104237
|
-
id: "tanks",
|
|
104238
|
-
family: "device-events",
|
|
104239
|
-
label: "Tanks (low or full / back to normal)",
|
|
104240
|
-
bad: ["device-tank-low", "device-tank-full"],
|
|
104241
|
-
recovery: ["device-tank-normal"],
|
|
104242
|
-
snapshotLabel: "Tanks low or full now",
|
|
104243
|
-
snapshotSection: "tanks"
|
|
104244
|
-
},
|
|
104245
105316
|
{
|
|
104246
105317
|
id: "motion-noise",
|
|
104247
105318
|
family: "device-events",
|
|
@@ -105602,898 +106673,341 @@ function stepModelRunsOnFormat(models, modelId, format) {
|
|
|
105602
106673
|
const named = models.find((m) => m.id === modelId);
|
|
105603
106674
|
if (named !== void 0 && hasBuild(named, format)) return true;
|
|
105604
106675
|
}
|
|
105605
|
-
return models.some((m) => m.legacy !== true && hasBuild(m, format));
|
|
105606
|
-
}
|
|
105607
|
-
//#endregion
|
|
105608
|
-
//#region src/pipeline/removed-model-ids.ts
|
|
105609
|
-
/**
|
|
105610
|
-
* Model ids DELETED from a step's catalog (D703, D710, D719), per step — and
|
|
105611
|
-
* the one question asked of them: is a stored pin to this id a pin to a model
|
|
105612
|
-
* that no longer exists? (D725)
|
|
105613
|
-
*
|
|
105614
|
-
* This is NOT a resolver input. `resolveModelForFormat` still returns an
|
|
105615
|
-
* unknown id unchanged (a custom model), and a bulk pass pinned to one still
|
|
105616
|
-
* refuses rather than substitutes (D54). The ONE reader is the orchestrator's
|
|
105617
|
-
* stored-pin reset (`removed-model-pin-reset.ts`), which clears such a pin from
|
|
105618
|
-
* the store so the step follows its default again — unless a registered custom
|
|
105619
|
-
* model carries the same id.
|
|
105620
|
-
*
|
|
105621
|
-
* `removed-model-ids.spec.ts` (addon-pipeline) pins that every id here is
|
|
105622
|
-
* really absent from its step's catalog. A model deleted from a catalog is
|
|
105623
|
-
* added here in the same change, or its stored pins stay behind as custom ids.
|
|
105624
|
-
*/
|
|
105625
|
-
/** `stepId → ids deleted from that step's catalog`. */
|
|
105626
|
-
var REMOVED_MODEL_IDS = {
|
|
105627
|
-
"object-detection": ["efficientdet-lite0-edgetpu", "ssdlite-mobiledet-coco-edgetpu"],
|
|
105628
|
-
"face-detection": [
|
|
105629
|
-
"scrypted-yolov9t-face",
|
|
105630
|
-
"scrfd-2.5g",
|
|
105631
|
-
"ssd-mobilenet-v2-face-edgetpu"
|
|
105632
|
-
],
|
|
105633
|
-
"face-embedding": ["arcface-r100", "inception-resnet-v1"],
|
|
105634
|
-
"plate-detection": ["yolov8n-plate"],
|
|
105635
|
-
"plate-ocr": ["vgg-english-g2"],
|
|
105636
|
-
"clip-embedding": [
|
|
105637
|
-
"mobileclip-s0",
|
|
105638
|
-
"mobileclip-s1",
|
|
105639
|
-
"mobileclip-s2"
|
|
105640
|
-
],
|
|
105641
|
-
"package-detection": ["yolov8n-package"],
|
|
105642
|
-
"bird-classifier": ["bird-classifier-aiy-edgetpu", "bird-nabirds-404"],
|
|
105643
|
-
"animal-classifier": ["animals-10"],
|
|
105644
|
-
"vehicle-classifier": ["vehicle-type-efficientnet"]
|
|
105645
|
-
};
|
|
105646
|
-
/** True when `modelId` was deleted from `stepId`'s catalog. */
|
|
105647
|
-
function isRemovedModelId(stepId, modelId) {
|
|
105648
|
-
return REMOVED_MODEL_IDS[stepId]?.includes(modelId) ?? false;
|
|
105649
|
-
}
|
|
105650
|
-
//#endregion
|
|
105651
|
-
//#region src/pipeline/model-bound-settings.ts
|
|
105652
|
-
/** Suffix of the sibling key that names the model a stored value was made for. */
|
|
105653
|
-
var MODEL_BINDING_SUFFIX = "ModelId";
|
|
105654
|
-
/** `minConfidencePerson` → `minConfidencePersonModelId`. */
|
|
105655
|
-
function modelBindingKey(key) {
|
|
105656
|
-
return `${key}${MODEL_BINDING_SUFFIX}`;
|
|
105657
|
-
}
|
|
105658
|
-
/** The model a stored value was made for, or `undefined` when unbound. */
|
|
105659
|
-
function storedBinding(settings, key) {
|
|
105660
|
-
const binding = settings?.[modelBindingKey(key)];
|
|
105661
|
-
return typeof binding === "string" && binding.length > 0 ? binding : void 0;
|
|
105662
|
-
}
|
|
105663
|
-
/**
|
|
105664
|
-
* The effective value of `key` for the model that runs (`runningModelId`,
|
|
105665
|
-
* `undefined` when unknown — it then matches no binding).
|
|
105666
|
-
*/
|
|
105667
|
-
function resolveModelBoundSetting(settings, key, runningModelId, modelDefault, globalDefault) {
|
|
105668
|
-
const stored = settings?.[key];
|
|
105669
|
-
const binding = storedBinding(settings, key);
|
|
105670
|
-
if (stored !== void 0 && binding === void 0) return {
|
|
105671
|
-
value: stored,
|
|
105672
|
-
source: "override"
|
|
105673
|
-
};
|
|
105674
|
-
if (stored !== void 0 && binding !== void 0 && binding === runningModelId) return {
|
|
105675
|
-
value: stored,
|
|
105676
|
-
source: "override",
|
|
105677
|
-
boundModelId: binding
|
|
105678
|
-
};
|
|
105679
|
-
const inapplicable = stored !== void 0 && binding !== void 0 ? { inapplicableOverride: {
|
|
105680
|
-
value: stored,
|
|
105681
|
-
modelId: binding
|
|
105682
|
-
} } : {};
|
|
105683
|
-
if (modelDefault !== void 0) return {
|
|
105684
|
-
value: modelDefault,
|
|
105685
|
-
source: "model-default",
|
|
105686
|
-
...inapplicable
|
|
105687
|
-
};
|
|
105688
|
-
return {
|
|
105689
|
-
value: globalDefault,
|
|
105690
|
-
source: "global-default",
|
|
105691
|
-
...inapplicable
|
|
105692
|
-
};
|
|
105693
|
-
}
|
|
105694
|
-
/**
|
|
105695
|
-
* The OPERATOR layer of a step's settings as the running model sees it: every
|
|
105696
|
-
* model-bound value made for another model is removed (so the default
|
|
105697
|
-
* underneath — the running model's — wins the merge), and every binding key is
|
|
105698
|
-
* stripped. Unbound values are kept. Returns a fresh object; `undefined` stays
|
|
105699
|
-
* `undefined`.
|
|
105700
|
-
*/
|
|
105701
|
-
function applyModelBoundSettings(settings, boundKeys, runningModelId) {
|
|
105702
|
-
if (settings === void 0) return void 0;
|
|
105703
|
-
const out = { ...settings };
|
|
105704
|
-
for (const key of boundKeys) {
|
|
105705
|
-
const binding = storedBinding(settings, key);
|
|
105706
|
-
if (binding !== void 0 && binding !== runningModelId) delete out[key];
|
|
105707
|
-
delete out[modelBindingKey(key)];
|
|
105708
|
-
}
|
|
105709
|
-
return out;
|
|
105710
|
-
}
|
|
105711
|
-
/** Store `value` for `key`, made for `modelId`. Returns a fresh object. */
|
|
105712
|
-
function writeModelBoundSetting(settings, key, value, modelId) {
|
|
105713
|
-
return {
|
|
105714
|
-
...settings,
|
|
105715
|
-
[key]: value,
|
|
105716
|
-
[modelBindingKey(key)]: modelId
|
|
105717
|
-
};
|
|
105718
|
-
}
|
|
105719
|
-
/** Remove an override and its binding — "reset to the model default". */
|
|
105720
|
-
function clearModelBoundSetting(settings, key) {
|
|
105721
|
-
const out = { ...settings };
|
|
105722
|
-
delete out[key];
|
|
105723
|
-
delete out[modelBindingKey(key)];
|
|
105724
|
-
return out;
|
|
105725
|
-
}
|
|
105726
|
-
/** True when any of `boundKeys` has an override IN FORCE for `modelId`. */
|
|
105727
|
-
function hasModelBoundOverrides(settings, boundKeys, modelId) {
|
|
105728
|
-
return boundKeys.some((key) => resolveModelBoundSetting(settings, key, modelId, void 0, void 0).source === "override");
|
|
105729
|
-
}
|
|
105730
|
-
/**
|
|
105731
|
-
* "Reset thresholds to model defaults": remove every override of `boundKeys`
|
|
105732
|
-
* that is in force for `modelId` (bound to it, or unbound), with its binding —
|
|
105733
|
-
* one result, so the editor writes it in one save. An override stored for
|
|
105734
|
-
* ANOTHER model is kept: it is not in force here, and it applies again when
|
|
105735
|
-
* that model runs.
|
|
105736
|
-
*/
|
|
105737
|
-
function clearModelBoundOverrides(settings, boundKeys, modelId) {
|
|
105738
|
-
return boundKeys.reduce((acc, key) => resolveModelBoundSetting(acc, key, modelId, void 0, void 0).source === "override" ? clearModelBoundSetting(acc, key) : acc, { ...settings });
|
|
105739
|
-
}
|
|
105740
|
-
/**
|
|
105741
|
-
* The keys of every `bindsToModel` field of a step's config schema, groups
|
|
105742
|
-
* flattened (D738). One definition for the runner (which applies the binding)
|
|
105743
|
-
* and the orchestrator's Auto tune (which clears those overrides, D745).
|
|
105744
|
-
*/
|
|
105745
|
-
function collectModelBoundKeys(fields) {
|
|
105746
|
-
return fields.flatMap((field) => {
|
|
105747
|
-
if (field.type === "group") return collectModelBoundKeys(field.fields);
|
|
105748
|
-
return "key" in field && "bindsToModel" in field && field.bindsToModel === true ? [field.key] : [];
|
|
105749
|
-
});
|
|
105750
|
-
}
|
|
105751
|
-
//#endregion
|
|
105752
|
-
//#region src/pipeline/step-settings-layers.ts
|
|
105753
|
-
/**
|
|
105754
|
-
* The layers of a detection step's settings, and the field-level edits on them
|
|
105755
|
-
* (D754, D927).
|
|
105756
|
-
*
|
|
105757
|
-
* A step's settings reach a session through two stored layers, merged key by
|
|
105758
|
-
* key — a key in the higher layer wins:
|
|
105759
|
-
*
|
|
105760
|
-
* node the node's base for the accelerator that runs the step
|
|
105761
|
-
* camera `cameraSettings[cam].stepSettings[step]` — camera-semantic
|
|
105762
|
-
* keys only, on every accelerator (never a model-bound field)
|
|
105763
|
-
*
|
|
105764
|
-
* Below them sits the default: the running model's (D738) or the field's own.
|
|
105765
|
-
*
|
|
105766
|
-
* Every layer is SPARSE and FIELD-LEVEL. A key present in a layer is an
|
|
105767
|
-
* override; an absent key inherits. Two consequences that every editor must
|
|
105768
|
-
* respect, and why this module exists:
|
|
105769
|
-
*
|
|
105770
|
-
* - A model-bound field (D738) occupies TWO keys, its value and
|
|
105771
|
-
* `<key>ModelId`. They are written, compared and removed as one unit — a
|
|
105772
|
-
* value without its binding over a lower layer's binding would be judged
|
|
105773
|
-
* against the wrong model.
|
|
105774
|
-
* - An editor writes a DIFF against the merged layers below, never a copy of
|
|
105775
|
-
* them. A copy pins every field at the value it had that day, so later
|
|
105776
|
-
* edits below never reach it (the full-copy "Override" this replaced).
|
|
105777
|
-
*/
|
|
105778
|
-
/** Top-down order of the stored layers. */
|
|
105779
|
-
var LAYER_ORDER = ["camera", "node"];
|
|
105780
|
-
/**
|
|
105781
|
-
* The keys one field occupies in a bag: its own, plus its binding key when it
|
|
105782
|
-
* binds to a model. `boundKeys` = `collectModelBoundKeys(schema)`.
|
|
105783
|
-
*/
|
|
105784
|
-
function fieldUnitKeys(key, boundKeys) {
|
|
105785
|
-
return boundKeys.includes(key) ? [key, modelBindingKey(key)] : [key];
|
|
105786
|
-
}
|
|
105787
|
-
/** The field a stored key belongs to (`minConfidencePersonModelId` → `minConfidencePerson`). */
|
|
105788
|
-
function unitOf(storedKey, boundKeys) {
|
|
105789
|
-
return boundKeys.find((k) => modelBindingKey(k) === storedKey) ?? storedKey;
|
|
105790
|
-
}
|
|
105791
|
-
/** Structural equality for stored values (numbers, strings, booleans, arrays, plain objects). */
|
|
105792
|
-
function settingValuesEqual(a, b) {
|
|
105793
|
-
if (Object.is(a, b)) return true;
|
|
105794
|
-
if (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((v, i) => settingValuesEqual(v, b[i]));
|
|
105795
|
-
if (isPlainObject(a) && isPlainObject(b)) {
|
|
105796
|
-
const ka = Object.keys(a);
|
|
105797
|
-
const kb = Object.keys(b);
|
|
105798
|
-
return ka.length === kb.length && ka.every((k) => settingValuesEqual(a[k], b[k]));
|
|
105799
|
-
}
|
|
105800
|
-
return false;
|
|
105801
|
-
}
|
|
105802
|
-
function isPlainObject(v) {
|
|
105803
|
-
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
105804
|
-
}
|
|
105805
|
-
/** Merge bags bottom-up (later wins, per key). Fresh object. */
|
|
105806
|
-
function mergeSettingsBags(...bags) {
|
|
105807
|
-
return bags.reduce((acc, bag) => ({
|
|
105808
|
-
...acc,
|
|
105809
|
-
...bag
|
|
105810
|
-
}), {});
|
|
105811
|
-
}
|
|
105812
|
-
/** The merged value of the layers BELOW `layer` (what removing a key from `layer` falls back to). */
|
|
105813
|
-
function settingsBelow(layers, layer) {
|
|
105814
|
-
return mergeSettingsBags(...LAYER_ORDER.slice(LAYER_ORDER.indexOf(layer) + 1).toReversed().map((id) => layers[id]));
|
|
105815
|
-
}
|
|
105816
|
-
/** The effective bag: every stored layer merged. */
|
|
105817
|
-
function effectiveStepSettings(layers) {
|
|
105818
|
-
return mergeSettingsBags(layers.node, layers.camera);
|
|
105819
|
-
}
|
|
105820
|
-
/** The highest stored layer that holds any key of `key`'s unit, or `default`. */
|
|
105821
|
-
function stepSettingSource(layers, key, boundKeys) {
|
|
105822
|
-
const unit = fieldUnitKeys(key, boundKeys);
|
|
105823
|
-
for (const id of LAYER_ORDER) {
|
|
105824
|
-
const bag = layers[id];
|
|
105825
|
-
if (bag !== void 0 && unit.some((k) => bag[k] !== void 0)) return id;
|
|
105826
|
-
}
|
|
105827
|
-
return "default";
|
|
105828
|
-
}
|
|
105829
|
-
/**
|
|
105830
|
-
* `layer` with `key`'s unit set from `values` (a bag carrying the unit's new
|
|
105831
|
-
* value — e.g. the editor's whole next settings bag). A unit key that `values`
|
|
105832
|
-
* does not carry is removed from the layer. Fresh object.
|
|
105833
|
-
*/
|
|
105834
|
-
function withFieldFrom(layer, key, values, boundKeys) {
|
|
105835
|
-
const out = { ...layer };
|
|
105836
|
-
for (const k of fieldUnitKeys(key, boundKeys)) if (values[k] === void 0) delete out[k];
|
|
105837
|
-
else out[k] = values[k];
|
|
105838
|
-
return out;
|
|
105839
|
-
}
|
|
105840
|
-
/** `layer` without `key`'s unit — "reset to the next level". Fresh object. */
|
|
105841
|
-
function withoutField(layer, key, boundKeys) {
|
|
105842
|
-
const out = { ...layer };
|
|
105843
|
-
for (const k of fieldUnitKeys(key, boundKeys)) delete out[k];
|
|
105844
|
-
return out;
|
|
105845
|
-
}
|
|
105846
|
-
/** Every field unit stored in `layer`, by its field key. */
|
|
105847
|
-
function unitsIn(layer, boundKeys) {
|
|
105848
|
-
return [...new Set(Object.keys(layer).map((k) => unitOf(k, boundKeys)))];
|
|
105849
|
-
}
|
|
105850
|
-
/** True when every key of `key`'s unit has the same value in `layer` as in `below`. */
|
|
105851
|
-
function unitEqualsBelow(layer, below, key, boundKeys) {
|
|
105852
|
-
return fieldUnitKeys(key, boundKeys).every((k) => settingValuesEqual(layer[k], below[k]));
|
|
105853
|
-
}
|
|
105854
|
-
/**
|
|
105855
|
-
* `layer` reduced to the fields that DIFFER from `below` — what an editor
|
|
105856
|
-
* stores. A unit is kept or dropped whole. `undefined` when nothing is left.
|
|
105857
|
-
*/
|
|
105858
|
-
function diffStepSettings(layer, below, boundKeys) {
|
|
105859
|
-
if (layer === void 0) return void 0;
|
|
105860
|
-
const out = {};
|
|
105861
|
-
for (const unit of unitsIn(layer, boundKeys)) {
|
|
105862
|
-
if (unitEqualsBelow(layer, below, unit, boundKeys)) continue;
|
|
105863
|
-
for (const k of fieldUnitKeys(unit, boundKeys)) if (layer[k] !== void 0) out[k] = layer[k];
|
|
105864
|
-
}
|
|
105865
|
-
return Object.keys(out).length > 0 ? out : void 0;
|
|
105866
|
-
}
|
|
105867
|
-
/**
|
|
105868
|
-
* The fields `layer` stores at exactly the value of the layers below — a
|
|
105869
|
-
* legacy full copy's leftovers. They change nothing today and stop every
|
|
105870
|
-
* later edit below from reaching this layer. Sorted.
|
|
105871
|
-
*/
|
|
105872
|
-
function fieldsPinnedAtValueBelow(layer, below, boundKeys) {
|
|
105873
|
-
if (layer === void 0) return [];
|
|
105874
|
-
return unitsIn(layer, boundKeys).filter((unit) => unitEqualsBelow(layer, below, unit, boundKeys)).toSorted();
|
|
105875
|
-
}
|
|
105876
|
-
//#endregion
|
|
105877
|
-
//#region src/pipeline/auto-tune/hardware-class.ts
|
|
105878
|
-
var APPLE_CHIP = /^Apple M(\d+)(?:\s+(Pro|Max|Ultra))?\b/i;
|
|
105879
|
-
var INTEL_CORE_ULTRA = /Core\(TM\)\s+Ultra|Core Ultra/i;
|
|
105880
|
-
var INTEL_N_SERIES = /Intel\(R\)\s+N\d{2,3}\b|\bIntel\s+N\d{2,3}\b/i;
|
|
105881
|
-
/** Phoenix / Hawk Point mobile (7040/8040) and Ryzen 8000G desktop APUs. */
|
|
105882
|
-
var AMD_PHOENIX = /Ryzen \d+ (7[0-9]40|8[0-9]40|8[0-9]45)[HSU]|Ryzen \d+ 8[0-9]00G/i;
|
|
105883
|
-
function parseAppleChip(cpuModel) {
|
|
105884
|
-
const match = APPLE_CHIP.exec(cpuModel.trim());
|
|
105885
|
-
if (match === null) return null;
|
|
105886
|
-
const generation = Number(match[1]);
|
|
105887
|
-
const variantRaw = (match[2] ?? "base").toLowerCase();
|
|
105888
|
-
return {
|
|
105889
|
-
generation,
|
|
105890
|
-
variant: variantRaw === "pro" || variantRaw === "max" || variantRaw === "ultra" ? variantRaw : "base"
|
|
105891
|
-
};
|
|
105892
|
-
}
|
|
105893
|
-
/**
|
|
105894
|
-
* Classify a node. Apple base chips (M1–M4) map to the measured M2 column, the
|
|
105895
|
-
* Pro/Max/Ultra chips to the measured M3 Pro column — the M2 was measured at
|
|
105896
|
-
* 1.0–1.2× the M3 Pro on the Neural Engine, so the generation inside a variant
|
|
105897
|
-
* matters less than the column's own error.
|
|
105898
|
-
*/
|
|
105899
|
-
function classifyInferenceHardware(hw) {
|
|
105900
|
-
const cpuModel = hw.cpuModel;
|
|
105901
|
-
const apple = parseAppleChip(cpuModel);
|
|
105902
|
-
if (apple !== null) return {
|
|
105903
|
-
hardwareClass: apple.variant === "base" ? "apple-m-base" : "apple-m-pro",
|
|
105904
|
-
cpuModel,
|
|
105905
|
-
apple
|
|
105906
|
-
};
|
|
105907
|
-
if (INTEL_CORE_ULTRA.test(cpuModel)) return {
|
|
105908
|
-
hardwareClass: "intel-core-ultra",
|
|
105909
|
-
cpuModel
|
|
105910
|
-
};
|
|
105911
|
-
if (INTEL_N_SERIES.test(cpuModel)) return {
|
|
105912
|
-
hardwareClass: "intel-n-series",
|
|
105913
|
-
cpuModel
|
|
105914
|
-
};
|
|
105915
|
-
if (AMD_PHOENIX.test(cpuModel)) return {
|
|
105916
|
-
hardwareClass: "amd-phoenix",
|
|
105917
|
-
cpuModel
|
|
105918
|
-
};
|
|
105919
|
-
return {
|
|
105920
|
-
hardwareClass: "unknown",
|
|
105921
|
-
cpuModel
|
|
105922
|
-
};
|
|
105923
|
-
}
|
|
105924
|
-
/**
|
|
105925
|
-
* The accelerator kind of one of a node's device keys (`openvino:npu`,
|
|
105926
|
-
* `openvino:gpu`, `coreml:all`, `edgetpu:usb`, `cpu`, `onnx:cpu`, …). `null`
|
|
105927
|
-
* for a key this table has no column for.
|
|
105928
|
-
*/
|
|
105929
|
-
function acceleratorKindOf(deviceKey, hw) {
|
|
105930
|
-
const [backend = "", device = ""] = deviceKey.split(":");
|
|
105931
|
-
if (backend === "edgetpu") return "coral";
|
|
105932
|
-
if (backend === "coreml") return device === "cpu" ? "arm-cpu" : "apple-ane";
|
|
105933
|
-
if (backend === "openvino" && device === "npu") return "intel-npu";
|
|
105934
|
-
if (backend === "openvino" && device === "gpu") return "intel-igpu";
|
|
105935
|
-
if (backend === "onnx" && device === "webgpu") return "amd-igpu";
|
|
105936
|
-
if (backend === "vitisai" && device === "npu") return "amd-npu";
|
|
105937
|
-
if (backend === "cpu" || device === "cpu") return hw.arch === "arm64" ? "arm-cpu" : "x86-cpu";
|
|
105938
|
-
return null;
|
|
105939
|
-
}
|
|
105940
|
-
//#endregion
|
|
105941
|
-
//#region src/pipeline/auto-tune/detector-performance.ts
|
|
105942
|
-
var DETECTOR_PERF = {
|
|
105943
|
-
"intel-core-ultra": {
|
|
105944
|
-
"intel-npu": {
|
|
105945
|
-
"yolov9t-320": {
|
|
105946
|
-
p50Ms: 2.9,
|
|
105947
|
-
fps: 383,
|
|
105948
|
-
measured: true
|
|
105949
|
-
},
|
|
105950
|
-
"yolov9t-320-int8": {
|
|
105951
|
-
p50Ms: 3.8,
|
|
105952
|
-
fps: 333,
|
|
105953
|
-
measured: true
|
|
105954
|
-
},
|
|
105955
|
-
"yolov9t-640": {
|
|
105956
|
-
p50Ms: 7.4,
|
|
105957
|
-
fps: 139,
|
|
105958
|
-
measured: true
|
|
105959
|
-
},
|
|
105960
|
-
"yolov9t-640-int8": {
|
|
105961
|
-
p50Ms: 7.5,
|
|
105962
|
-
fps: 144,
|
|
105963
|
-
measured: true
|
|
105964
|
-
},
|
|
105965
|
-
"yolov9s-320": {
|
|
105966
|
-
p50Ms: 4.4,
|
|
105967
|
-
fps: 241,
|
|
105968
|
-
measured: true
|
|
105969
|
-
},
|
|
105970
|
-
"yolov9s-320-int8": {
|
|
105971
|
-
p50Ms: 4.1,
|
|
105972
|
-
fps: 264,
|
|
105973
|
-
measured: true
|
|
105974
|
-
},
|
|
105975
|
-
"yolov9s-640": {
|
|
105976
|
-
p50Ms: 12.7,
|
|
105977
|
-
fps: 82,
|
|
105978
|
-
measured: true
|
|
105979
|
-
},
|
|
105980
|
-
"yolov9s-640-int8": {
|
|
105981
|
-
p50Ms: 10.7,
|
|
105982
|
-
fps: 99,
|
|
105983
|
-
measured: true
|
|
105984
|
-
},
|
|
105985
|
-
"yolov9m-320": {
|
|
105986
|
-
p50Ms: 8.4,
|
|
105987
|
-
fps: 123,
|
|
105988
|
-
measured: true
|
|
105989
|
-
},
|
|
105990
|
-
"yolov9m-320-int8": {
|
|
105991
|
-
p50Ms: 6.5,
|
|
105992
|
-
fps: 165,
|
|
105993
|
-
measured: true
|
|
105994
|
-
},
|
|
105995
|
-
"yolov9m-640": {
|
|
105996
|
-
p50Ms: 29.5,
|
|
105997
|
-
fps: 32,
|
|
105998
|
-
measured: true
|
|
105999
|
-
},
|
|
106000
|
-
"yolov9m-640-int8": {
|
|
106001
|
-
p50Ms: 19.5,
|
|
106002
|
-
fps: 52,
|
|
106003
|
-
measured: true
|
|
106004
|
-
}
|
|
106005
|
-
},
|
|
106006
|
-
"intel-igpu": {
|
|
106007
|
-
"yolov9t-320": {
|
|
106008
|
-
p50Ms: 2.6,
|
|
106009
|
-
fps: 405,
|
|
106010
|
-
measured: true
|
|
106011
|
-
},
|
|
106012
|
-
"yolov9t-320-int8": {
|
|
106013
|
-
p50Ms: 2.8,
|
|
106014
|
-
fps: 324,
|
|
106015
|
-
measured: true
|
|
106016
|
-
},
|
|
106017
|
-
"yolov9t-640": {
|
|
106018
|
-
p50Ms: 6.5,
|
|
106019
|
-
fps: 157,
|
|
106020
|
-
measured: true
|
|
106021
|
-
},
|
|
106022
|
-
"yolov9t-640-int8": {
|
|
106023
|
-
p50Ms: 5.6,
|
|
106024
|
-
fps: 185,
|
|
106025
|
-
measured: true
|
|
106026
|
-
},
|
|
106027
|
-
"yolov9s-320": {
|
|
106028
|
-
p50Ms: 4.6,
|
|
106029
|
-
fps: 200,
|
|
106030
|
-
measured: true
|
|
106031
|
-
},
|
|
106032
|
-
"yolov9s-320-int8": {
|
|
106033
|
-
p50Ms: 4.1,
|
|
106034
|
-
fps: 239,
|
|
106035
|
-
measured: true
|
|
106036
|
-
},
|
|
106037
|
-
"yolov9s-640": {
|
|
106038
|
-
p50Ms: 15.2,
|
|
106039
|
-
fps: 69,
|
|
106040
|
-
measured: true
|
|
106041
|
-
},
|
|
106042
|
-
"yolov9s-640-int8": {
|
|
106043
|
-
p50Ms: 10.5,
|
|
106044
|
-
fps: 99,
|
|
106045
|
-
measured: true
|
|
106046
|
-
},
|
|
106047
|
-
"yolov9m-320": {
|
|
106048
|
-
p50Ms: 11.4,
|
|
106049
|
-
fps: 88,
|
|
106050
|
-
measured: true
|
|
106051
|
-
},
|
|
106052
|
-
"yolov9m-320-int8": {
|
|
106053
|
-
p50Ms: 7,
|
|
106054
|
-
fps: 127,
|
|
106055
|
-
measured: true
|
|
106056
|
-
},
|
|
106057
|
-
"yolov9m-640": {
|
|
106058
|
-
p50Ms: 40,
|
|
106059
|
-
fps: 25,
|
|
106060
|
-
measured: true
|
|
106061
|
-
},
|
|
106062
|
-
"yolov9m-640-int8": {
|
|
106063
|
-
p50Ms: 23.5,
|
|
106064
|
-
fps: 44,
|
|
106065
|
-
measured: true
|
|
106066
|
-
}
|
|
106067
|
-
},
|
|
106068
|
-
"x86-cpu": {
|
|
106069
|
-
"yolov9t-320": {
|
|
106070
|
-
p50Ms: 6.9,
|
|
106071
|
-
fps: 145,
|
|
106072
|
-
measured: true
|
|
106073
|
-
},
|
|
106074
|
-
"yolov9t-320-int8": {
|
|
106075
|
-
p50Ms: 2.7,
|
|
106076
|
-
fps: 405,
|
|
106077
|
-
measured: true
|
|
106078
|
-
},
|
|
106079
|
-
"yolov9t-640": {
|
|
106080
|
-
p50Ms: 23,
|
|
106081
|
-
fps: 44,
|
|
106082
|
-
measured: true
|
|
106083
|
-
},
|
|
106084
|
-
"yolov9t-640-int8": {
|
|
106085
|
-
p50Ms: 8.8,
|
|
106086
|
-
fps: 124,
|
|
106087
|
-
measured: true
|
|
106088
|
-
},
|
|
106089
|
-
"yolov9s-320": {
|
|
106090
|
-
p50Ms: 15.8,
|
|
106091
|
-
fps: 63,
|
|
106092
|
-
measured: true
|
|
106093
|
-
},
|
|
106094
|
-
"yolov9s-320-int8": {
|
|
106095
|
-
p50Ms: 6.5,
|
|
106096
|
-
fps: 180,
|
|
106097
|
-
measured: true
|
|
106098
|
-
},
|
|
106099
|
-
"yolov9s-640": {
|
|
106100
|
-
p50Ms: 58.2,
|
|
106101
|
-
fps: 17,
|
|
106102
|
-
measured: true
|
|
106103
|
-
},
|
|
106104
|
-
"yolov9s-640-int8": {
|
|
106105
|
-
p50Ms: 20.1,
|
|
106106
|
-
fps: 52,
|
|
106107
|
-
measured: true
|
|
106108
|
-
},
|
|
106109
|
-
"yolov9m-320": {
|
|
106110
|
-
p50Ms: 40,
|
|
106111
|
-
fps: 25,
|
|
106112
|
-
measured: true
|
|
106113
|
-
},
|
|
106114
|
-
"yolov9m-320-int8": {
|
|
106115
|
-
p50Ms: 14.2,
|
|
106116
|
-
fps: 74,
|
|
106117
|
-
measured: true
|
|
106118
|
-
},
|
|
106119
|
-
"yolov9m-640": {
|
|
106120
|
-
p50Ms: 155.8,
|
|
106121
|
-
fps: 6,
|
|
106122
|
-
measured: true
|
|
106123
|
-
},
|
|
106124
|
-
"yolov9m-640-int8": {
|
|
106125
|
-
p50Ms: 52.4,
|
|
106126
|
-
fps: 19,
|
|
106127
|
-
measured: true
|
|
106128
|
-
}
|
|
106129
|
-
},
|
|
106130
|
-
coral: { "yolov9s-320-edgetpu": {
|
|
106131
|
-
p50Ms: 32,
|
|
106132
|
-
fps: 31,
|
|
106133
|
-
measured: false
|
|
106134
|
-
} }
|
|
106135
|
-
},
|
|
106136
|
-
"intel-n-series": {
|
|
106137
|
-
"intel-igpu": {
|
|
106138
|
-
"yolov9t-320": {
|
|
106139
|
-
p50Ms: 15,
|
|
106140
|
-
fps: 48,
|
|
106141
|
-
measured: true
|
|
106142
|
-
},
|
|
106143
|
-
"yolov9t-320-int8": {
|
|
106144
|
-
p50Ms: 14.1,
|
|
106145
|
-
fps: 67,
|
|
106146
|
-
measured: true
|
|
106147
|
-
},
|
|
106148
|
-
"yolov9t-640": {
|
|
106149
|
-
p50Ms: 38.5,
|
|
106150
|
-
fps: 26,
|
|
106151
|
-
measured: true
|
|
106152
|
-
},
|
|
106153
|
-
"yolov9t-640-int8": {
|
|
106154
|
-
p50Ms: 33.1,
|
|
106155
|
-
fps: 33,
|
|
106156
|
-
measured: true
|
|
106157
|
-
},
|
|
106158
|
-
"yolov9s-320": {
|
|
106159
|
-
p50Ms: 41.4,
|
|
106160
|
-
fps: 24,
|
|
106161
|
-
measured: true
|
|
106162
|
-
},
|
|
106163
|
-
"yolov9s-320-int8": {
|
|
106164
|
-
p50Ms: 23.3,
|
|
106165
|
-
fps: 34,
|
|
106166
|
-
measured: true
|
|
106167
|
-
},
|
|
106168
|
-
"yolov9s-640": {
|
|
106169
|
-
p50Ms: 127.4,
|
|
106170
|
-
fps: 8,
|
|
106171
|
-
measured: true
|
|
106172
|
-
},
|
|
106173
|
-
"yolov9s-640-int8": {
|
|
106174
|
-
p50Ms: 92.9,
|
|
106175
|
-
fps: 11,
|
|
106176
|
-
measured: true
|
|
106177
|
-
},
|
|
106178
|
-
"yolov9m-320": {
|
|
106179
|
-
p50Ms: 63.5,
|
|
106180
|
-
fps: 16,
|
|
106181
|
-
measured: true
|
|
106182
|
-
},
|
|
106183
|
-
"yolov9m-320-int8": {
|
|
106184
|
-
p50Ms: 39.4,
|
|
106185
|
-
fps: 26,
|
|
106186
|
-
measured: true
|
|
106187
|
-
},
|
|
106188
|
-
"yolov9m-640": {
|
|
106189
|
-
p50Ms: 215.5,
|
|
106190
|
-
fps: 5,
|
|
106191
|
-
measured: true
|
|
106192
|
-
},
|
|
106193
|
-
"yolov9m-640-int8": {
|
|
106194
|
-
p50Ms: 139.1,
|
|
106195
|
-
fps: 7,
|
|
106196
|
-
measured: true
|
|
106197
|
-
}
|
|
106198
|
-
},
|
|
106199
|
-
"x86-cpu": {
|
|
106200
|
-
"yolov9t-320": {
|
|
106201
|
-
p50Ms: 86.2,
|
|
106202
|
-
fps: 12,
|
|
106203
|
-
measured: true
|
|
106204
|
-
},
|
|
106205
|
-
"yolov9t-320-int8": {
|
|
106206
|
-
p50Ms: 52.7,
|
|
106207
|
-
fps: 20,
|
|
106208
|
-
measured: true
|
|
106209
|
-
},
|
|
106210
|
-
"yolov9t-640": {
|
|
106211
|
-
p50Ms: 322.1,
|
|
106212
|
-
fps: 3,
|
|
106213
|
-
measured: true
|
|
106214
|
-
},
|
|
106215
|
-
"yolov9t-640-int8": {
|
|
106216
|
-
p50Ms: 205.6,
|
|
106217
|
-
fps: 5,
|
|
106218
|
-
measured: true
|
|
106219
|
-
},
|
|
106220
|
-
"yolov9s-320": {
|
|
106221
|
-
p50Ms: 164.4,
|
|
106222
|
-
fps: 6,
|
|
106223
|
-
measured: true
|
|
106224
|
-
},
|
|
106225
|
-
"yolov9s-320-int8": {
|
|
106226
|
-
p50Ms: 86.9,
|
|
106227
|
-
fps: 12,
|
|
106228
|
-
measured: true
|
|
106229
|
-
},
|
|
106230
|
-
"yolov9s-640": {
|
|
106231
|
-
p50Ms: 341.3,
|
|
106232
|
-
fps: 3,
|
|
106233
|
-
measured: true
|
|
106234
|
-
},
|
|
106235
|
-
"yolov9s-640-int8": {
|
|
106236
|
-
p50Ms: 185.3,
|
|
106237
|
-
fps: 5,
|
|
106238
|
-
measured: true
|
|
106239
|
-
},
|
|
106240
|
-
"yolov9m-320": {
|
|
106241
|
-
p50Ms: 166.8,
|
|
106242
|
-
fps: 6,
|
|
106243
|
-
measured: true
|
|
106244
|
-
},
|
|
106245
|
-
"yolov9m-320-int8": {
|
|
106246
|
-
p50Ms: 226.3,
|
|
106247
|
-
fps: 4,
|
|
106248
|
-
measured: true
|
|
106249
|
-
},
|
|
106250
|
-
"yolov9m-640": {
|
|
106251
|
-
p50Ms: 663.5,
|
|
106252
|
-
fps: 2,
|
|
106253
|
-
measured: true
|
|
106254
|
-
},
|
|
106255
|
-
"yolov9m-640-int8": {
|
|
106256
|
-
p50Ms: 324.4,
|
|
106257
|
-
fps: 3,
|
|
106258
|
-
measured: true
|
|
106259
|
-
}
|
|
106260
|
-
},
|
|
106261
|
-
coral: { "yolov9s-320-edgetpu": {
|
|
106262
|
-
p50Ms: 32,
|
|
106263
|
-
fps: 31,
|
|
106264
|
-
measured: false
|
|
106265
|
-
} }
|
|
106266
|
-
},
|
|
106267
|
-
"amd-phoenix": {
|
|
106268
|
-
"x86-cpu": {
|
|
106269
|
-
"yolov9t-320": {
|
|
106270
|
-
p50Ms: 24,
|
|
106271
|
-
fps: 42,
|
|
106272
|
-
measured: true
|
|
106273
|
-
},
|
|
106274
|
-
"yolov9t-320-int8": {
|
|
106275
|
-
p50Ms: 12,
|
|
106276
|
-
fps: 83,
|
|
106277
|
-
measured: true
|
|
106278
|
-
},
|
|
106279
|
-
"yolov9t-640": {
|
|
106280
|
-
p50Ms: 50,
|
|
106281
|
-
fps: 20,
|
|
106282
|
-
measured: true
|
|
106283
|
-
},
|
|
106284
|
-
"yolov9t-640-int8": {
|
|
106285
|
-
p50Ms: 20,
|
|
106286
|
-
fps: 50,
|
|
106287
|
-
measured: true
|
|
106288
|
-
},
|
|
106289
|
-
"yolov9s-320": {
|
|
106290
|
-
p50Ms: 30,
|
|
106291
|
-
fps: 33,
|
|
106292
|
-
measured: true
|
|
106293
|
-
},
|
|
106294
|
-
"yolov9s-320-int8": {
|
|
106295
|
-
p50Ms: 15,
|
|
106296
|
-
fps: 67,
|
|
106297
|
-
measured: true
|
|
106298
|
-
},
|
|
106299
|
-
"yolov9s-640": {
|
|
106300
|
-
p50Ms: 92,
|
|
106301
|
-
fps: 11,
|
|
106302
|
-
measured: true
|
|
106303
|
-
},
|
|
106304
|
-
"yolov9s-640-int8": {
|
|
106305
|
-
p50Ms: 27,
|
|
106306
|
-
fps: 37,
|
|
106307
|
-
measured: true
|
|
106308
|
-
},
|
|
106309
|
-
"yolov9m-320": {
|
|
106310
|
-
p50Ms: 67,
|
|
106311
|
-
fps: 15,
|
|
106312
|
-
measured: true
|
|
106313
|
-
},
|
|
106314
|
-
"yolov9m-320-int8": {
|
|
106315
|
-
p50Ms: 21,
|
|
106316
|
-
fps: 48,
|
|
106317
|
-
measured: true
|
|
106318
|
-
},
|
|
106319
|
-
"yolov9m-640": {
|
|
106320
|
-
p50Ms: 229,
|
|
106321
|
-
fps: 4,
|
|
106322
|
-
measured: true
|
|
106323
|
-
},
|
|
106324
|
-
"yolov9m-640-int8": {
|
|
106325
|
-
p50Ms: 48,
|
|
106326
|
-
fps: 21,
|
|
106327
|
-
measured: true
|
|
106328
|
-
}
|
|
106329
|
-
},
|
|
106330
|
-
"amd-igpu": {
|
|
106331
|
-
"yolov9t-320": {
|
|
106332
|
-
p50Ms: 40,
|
|
106333
|
-
fps: 25,
|
|
106334
|
-
measured: true
|
|
106335
|
-
},
|
|
106336
|
-
"yolov9t-640": {
|
|
106337
|
-
p50Ms: 89,
|
|
106338
|
-
fps: 11,
|
|
106339
|
-
measured: true
|
|
106340
|
-
},
|
|
106341
|
-
"yolov9s-320": {
|
|
106342
|
-
p50Ms: 65,
|
|
106343
|
-
fps: 15,
|
|
106344
|
-
measured: true
|
|
106345
|
-
},
|
|
106346
|
-
"yolov9s-640": {
|
|
106347
|
-
p50Ms: 125,
|
|
106348
|
-
fps: 8,
|
|
106349
|
-
measured: true
|
|
106350
|
-
},
|
|
106351
|
-
"yolov9m-320": {
|
|
106352
|
-
p50Ms: 85,
|
|
106353
|
-
fps: 12,
|
|
106354
|
-
measured: true
|
|
106355
|
-
},
|
|
106356
|
-
"yolov9m-640": {
|
|
106357
|
-
p50Ms: 228,
|
|
106358
|
-
fps: 4,
|
|
106359
|
-
measured: true
|
|
106360
|
-
}
|
|
106361
|
-
},
|
|
106362
|
-
coral: { "yolov9s-320-edgetpu": {
|
|
106363
|
-
p50Ms: 32,
|
|
106364
|
-
fps: 31,
|
|
106365
|
-
measured: true
|
|
106366
|
-
} }
|
|
106367
|
-
},
|
|
106368
|
-
"apple-m-pro": {
|
|
106369
|
-
"apple-ane": {
|
|
106370
|
-
"yolov9t-320": {
|
|
106371
|
-
p50Ms: 1.1,
|
|
106372
|
-
fps: 952,
|
|
106373
|
-
measured: true
|
|
106374
|
-
},
|
|
106375
|
-
"yolov9t-640": {
|
|
106376
|
-
p50Ms: 3,
|
|
106377
|
-
fps: 333,
|
|
106378
|
-
measured: true
|
|
106379
|
-
},
|
|
106380
|
-
"yolov9s-320": {
|
|
106381
|
-
p50Ms: 1.5,
|
|
106382
|
-
fps: 667,
|
|
106383
|
-
measured: true
|
|
106384
|
-
},
|
|
106385
|
-
"yolov9s-640": {
|
|
106386
|
-
p50Ms: 5.1,
|
|
106387
|
-
fps: 196,
|
|
106388
|
-
measured: true
|
|
106389
|
-
},
|
|
106390
|
-
"yolov9m-320": {
|
|
106391
|
-
p50Ms: 3.2,
|
|
106392
|
-
fps: 312,
|
|
106393
|
-
measured: true
|
|
106394
|
-
},
|
|
106395
|
-
"yolov9m-640": {
|
|
106396
|
-
p50Ms: 10.2,
|
|
106397
|
-
fps: 98,
|
|
106398
|
-
measured: true
|
|
106399
|
-
}
|
|
106400
|
-
},
|
|
106401
|
-
coral: { "yolov9s-320-edgetpu": {
|
|
106402
|
-
p50Ms: 32,
|
|
106403
|
-
fps: 31,
|
|
106404
|
-
measured: false
|
|
106405
|
-
} }
|
|
106406
|
-
},
|
|
106407
|
-
"apple-m-base": {
|
|
106408
|
-
"apple-ane": {
|
|
106409
|
-
"yolov9t-320": {
|
|
106410
|
-
p50Ms: 1.32,
|
|
106411
|
-
fps: 758,
|
|
106412
|
-
measured: false
|
|
106413
|
-
},
|
|
106414
|
-
"yolov9t-640": {
|
|
106415
|
-
p50Ms: 3.45,
|
|
106416
|
-
fps: 290,
|
|
106417
|
-
measured: true
|
|
106418
|
-
},
|
|
106419
|
-
"yolov9s-320": {
|
|
106420
|
-
p50Ms: 1.8,
|
|
106421
|
-
fps: 556,
|
|
106422
|
-
measured: false
|
|
106423
|
-
},
|
|
106424
|
-
"yolov9s-640": {
|
|
106425
|
-
p50Ms: 5.46,
|
|
106426
|
-
fps: 183,
|
|
106427
|
-
measured: true
|
|
106428
|
-
},
|
|
106429
|
-
"yolov9m-320": {
|
|
106430
|
-
p50Ms: 3.79,
|
|
106431
|
-
fps: 264,
|
|
106432
|
-
measured: true
|
|
106433
|
-
},
|
|
106434
|
-
"yolov9m-640": {
|
|
106435
|
-
p50Ms: 10.34,
|
|
106436
|
-
fps: 97,
|
|
106437
|
-
measured: true
|
|
106438
|
-
}
|
|
106439
|
-
},
|
|
106440
|
-
coral: { "yolov9s-320-edgetpu": {
|
|
106441
|
-
p50Ms: 32,
|
|
106442
|
-
fps: 31,
|
|
106443
|
-
measured: false
|
|
106444
|
-
} }
|
|
106445
|
-
}
|
|
106676
|
+
return models.some((m) => m.legacy !== true && hasBuild(m, format));
|
|
106677
|
+
}
|
|
106678
|
+
//#endregion
|
|
106679
|
+
//#region src/pipeline/removed-model-ids.ts
|
|
106680
|
+
/**
|
|
106681
|
+
* Model ids DELETED from a step's catalog (D703, D710, D719), per step — and
|
|
106682
|
+
* the one question asked of them: is a stored pin to this id a pin to a model
|
|
106683
|
+
* that no longer exists? (D725)
|
|
106684
|
+
*
|
|
106685
|
+
* This is NOT a resolver input. `resolveModelForFormat` still returns an
|
|
106686
|
+
* unknown id unchanged (a custom model), and a bulk pass pinned to one still
|
|
106687
|
+
* refuses rather than substitutes (D54). The ONE reader is the orchestrator's
|
|
106688
|
+
* stored-pin reset (`removed-model-pin-reset.ts`), which clears such a pin from
|
|
106689
|
+
* the store so the step follows its default again — unless a registered custom
|
|
106690
|
+
* model carries the same id.
|
|
106691
|
+
*
|
|
106692
|
+
* `removed-model-ids.spec.ts` (addon-pipeline) pins that every id here is
|
|
106693
|
+
* really absent from its step's catalog. A model deleted from a catalog is
|
|
106694
|
+
* added here in the same change, or its stored pins stay behind as custom ids.
|
|
106695
|
+
*/
|
|
106696
|
+
/** `stepId → ids deleted from that step's catalog`. */
|
|
106697
|
+
var REMOVED_MODEL_IDS = {
|
|
106698
|
+
"object-detection": ["efficientdet-lite0-edgetpu", "ssdlite-mobiledet-coco-edgetpu"],
|
|
106699
|
+
"face-detection": [
|
|
106700
|
+
"scrypted-yolov9t-face",
|
|
106701
|
+
"scrfd-2.5g",
|
|
106702
|
+
"ssd-mobilenet-v2-face-edgetpu"
|
|
106703
|
+
],
|
|
106704
|
+
"face-embedding": ["arcface-r100", "inception-resnet-v1"],
|
|
106705
|
+
"plate-detection": ["yolov8n-plate"],
|
|
106706
|
+
"plate-ocr": ["vgg-english-g2"],
|
|
106707
|
+
"clip-embedding": [
|
|
106708
|
+
"mobileclip-s0",
|
|
106709
|
+
"mobileclip-s1",
|
|
106710
|
+
"mobileclip-s2"
|
|
106711
|
+
],
|
|
106712
|
+
"package-detection": ["yolov8n-package"],
|
|
106713
|
+
"bird-classifier": ["bird-classifier-aiy-edgetpu", "bird-nabirds-404"],
|
|
106714
|
+
"animal-classifier": ["animals-10"],
|
|
106715
|
+
"vehicle-classifier": ["vehicle-type-efficientnet"]
|
|
106446
106716
|
};
|
|
106447
|
-
|
|
106448
|
-
|
|
106449
|
-
|
|
106450
|
-
|
|
106451
|
-
|
|
106452
|
-
|
|
106453
|
-
|
|
106454
|
-
|
|
106455
|
-
|
|
106456
|
-
|
|
106457
|
-
|
|
106458
|
-
|
|
106459
|
-
|
|
106460
|
-
|
|
106461
|
-
|
|
106462
|
-
|
|
106463
|
-
|
|
106464
|
-
|
|
106465
|
-
|
|
106466
|
-
|
|
106467
|
-
|
|
106468
|
-
|
|
106469
|
-
|
|
106470
|
-
|
|
106471
|
-
|
|
106472
|
-
|
|
106473
|
-
|
|
106474
|
-
|
|
106475
|
-
|
|
106476
|
-
|
|
106477
|
-
|
|
106478
|
-
|
|
106479
|
-
}
|
|
106480
|
-
|
|
106481
|
-
|
|
106482
|
-
|
|
106483
|
-
}
|
|
106484
|
-
|
|
106485
|
-
|
|
106486
|
-
|
|
106487
|
-
|
|
106488
|
-
|
|
106489
|
-
|
|
106490
|
-
|
|
106491
|
-
|
|
106492
|
-
|
|
106493
|
-
|
|
106494
|
-
|
|
106717
|
+
/** True when `modelId` was deleted from `stepId`'s catalog. */
|
|
106718
|
+
function isRemovedModelId(stepId, modelId) {
|
|
106719
|
+
return REMOVED_MODEL_IDS[stepId]?.includes(modelId) ?? false;
|
|
106720
|
+
}
|
|
106721
|
+
//#endregion
|
|
106722
|
+
//#region src/pipeline/model-bound-settings.ts
|
|
106723
|
+
/** Suffix of the sibling key that names the model a stored value was made for. */
|
|
106724
|
+
var MODEL_BINDING_SUFFIX = "ModelId";
|
|
106725
|
+
/** `minConfidencePerson` → `minConfidencePersonModelId`. */
|
|
106726
|
+
function modelBindingKey(key) {
|
|
106727
|
+
return `${key}${MODEL_BINDING_SUFFIX}`;
|
|
106728
|
+
}
|
|
106729
|
+
/** The model a stored value was made for, or `undefined` when unbound. */
|
|
106730
|
+
function storedBinding(settings, key) {
|
|
106731
|
+
const binding = settings?.[modelBindingKey(key)];
|
|
106732
|
+
return typeof binding === "string" && binding.length > 0 ? binding : void 0;
|
|
106733
|
+
}
|
|
106734
|
+
/**
|
|
106735
|
+
* The effective value of `key` for the model that runs (`runningModelId`,
|
|
106736
|
+
* `undefined` when unknown — it then matches no binding).
|
|
106737
|
+
*/
|
|
106738
|
+
function resolveModelBoundSetting(settings, key, runningModelId, modelDefault, globalDefault) {
|
|
106739
|
+
const stored = settings?.[key];
|
|
106740
|
+
const binding = storedBinding(settings, key);
|
|
106741
|
+
if (stored !== void 0 && binding === void 0) return {
|
|
106742
|
+
value: stored,
|
|
106743
|
+
source: "override"
|
|
106744
|
+
};
|
|
106745
|
+
if (stored !== void 0 && binding !== void 0 && binding === runningModelId) return {
|
|
106746
|
+
value: stored,
|
|
106747
|
+
source: "override",
|
|
106748
|
+
boundModelId: binding
|
|
106749
|
+
};
|
|
106750
|
+
const inapplicable = stored !== void 0 && binding !== void 0 ? { inapplicableOverride: {
|
|
106751
|
+
value: stored,
|
|
106752
|
+
modelId: binding
|
|
106753
|
+
} } : {};
|
|
106754
|
+
if (modelDefault !== void 0) return {
|
|
106755
|
+
value: modelDefault,
|
|
106756
|
+
source: "model-default",
|
|
106757
|
+
...inapplicable
|
|
106758
|
+
};
|
|
106759
|
+
return {
|
|
106760
|
+
value: globalDefault,
|
|
106761
|
+
source: "global-default",
|
|
106762
|
+
...inapplicable
|
|
106763
|
+
};
|
|
106764
|
+
}
|
|
106765
|
+
/**
|
|
106766
|
+
* The OPERATOR layer of a step's settings as the running model sees it: every
|
|
106767
|
+
* model-bound value made for another model is removed (so the default
|
|
106768
|
+
* underneath — the running model's — wins the merge), and every binding key is
|
|
106769
|
+
* stripped. Unbound values are kept. Returns a fresh object; `undefined` stays
|
|
106770
|
+
* `undefined`.
|
|
106771
|
+
*/
|
|
106772
|
+
function applyModelBoundSettings(settings, boundKeys, runningModelId) {
|
|
106773
|
+
if (settings === void 0) return void 0;
|
|
106774
|
+
const out = { ...settings };
|
|
106775
|
+
for (const key of boundKeys) {
|
|
106776
|
+
const binding = storedBinding(settings, key);
|
|
106777
|
+
if (binding !== void 0 && binding !== runningModelId) delete out[key];
|
|
106778
|
+
delete out[modelBindingKey(key)];
|
|
106495
106779
|
}
|
|
106496
|
-
|
|
106780
|
+
return out;
|
|
106781
|
+
}
|
|
106782
|
+
/** Store `value` for `key`, made for `modelId`. Returns a fresh object. */
|
|
106783
|
+
function writeModelBoundSetting(settings, key, value, modelId) {
|
|
106784
|
+
return {
|
|
106785
|
+
...settings,
|
|
106786
|
+
[key]: value,
|
|
106787
|
+
[modelBindingKey(key)]: modelId
|
|
106788
|
+
};
|
|
106789
|
+
}
|
|
106790
|
+
/** Remove an override and its binding — "reset to the model default". */
|
|
106791
|
+
function clearModelBoundSetting(settings, key) {
|
|
106792
|
+
const out = { ...settings };
|
|
106793
|
+
delete out[key];
|
|
106794
|
+
delete out[modelBindingKey(key)];
|
|
106795
|
+
return out;
|
|
106796
|
+
}
|
|
106797
|
+
/** True when any of `boundKeys` has an override IN FORCE for `modelId`. */
|
|
106798
|
+
function hasModelBoundOverrides(settings, boundKeys, modelId) {
|
|
106799
|
+
return boundKeys.some((key) => resolveModelBoundSetting(settings, key, modelId, void 0, void 0).source === "override");
|
|
106800
|
+
}
|
|
106801
|
+
/**
|
|
106802
|
+
* "Reset thresholds to model defaults": remove every override of `boundKeys`
|
|
106803
|
+
* that is in force for `modelId` (bound to it, or unbound), with its binding —
|
|
106804
|
+
* one result, so the editor writes it in one save. An override stored for
|
|
106805
|
+
* ANOTHER model is kept: it is not in force here, and it applies again when
|
|
106806
|
+
* that model runs.
|
|
106807
|
+
*/
|
|
106808
|
+
function clearModelBoundOverrides(settings, boundKeys, modelId) {
|
|
106809
|
+
return boundKeys.reduce((acc, key) => resolveModelBoundSetting(acc, key, modelId, void 0, void 0).source === "override" ? clearModelBoundSetting(acc, key) : acc, { ...settings });
|
|
106810
|
+
}
|
|
106811
|
+
/**
|
|
106812
|
+
* The keys of every `bindsToModel` field of a step's config schema, groups
|
|
106813
|
+
* flattened (D738). One definition for the runner (which applies the binding)
|
|
106814
|
+
* and the orchestrator's Auto tune (which clears those overrides, D745).
|
|
106815
|
+
*/
|
|
106816
|
+
function collectModelBoundKeys(fields) {
|
|
106817
|
+
return fields.flatMap((field) => {
|
|
106818
|
+
if (field.type === "group") return collectModelBoundKeys(field.fields);
|
|
106819
|
+
return "key" in field && "bindsToModel" in field && field.bindsToModel === true ? [field.key] : [];
|
|
106820
|
+
});
|
|
106821
|
+
}
|
|
106822
|
+
//#endregion
|
|
106823
|
+
//#region src/pipeline/step-settings-layers.ts
|
|
106824
|
+
/**
|
|
106825
|
+
* The layers of a detection step's settings, and the field-level edits on them
|
|
106826
|
+
* (D754, D927).
|
|
106827
|
+
*
|
|
106828
|
+
* A step's settings reach a session through two stored layers, merged key by
|
|
106829
|
+
* key — a key in the higher layer wins:
|
|
106830
|
+
*
|
|
106831
|
+
* node the node's base for the accelerator that runs the step
|
|
106832
|
+
* camera `cameraSettings[cam].stepSettings[step]` — camera-semantic
|
|
106833
|
+
* keys only, on every accelerator (never a model-bound field)
|
|
106834
|
+
*
|
|
106835
|
+
* Below them sits the default: the running model's (D738) or the field's own.
|
|
106836
|
+
*
|
|
106837
|
+
* Every layer is SPARSE and FIELD-LEVEL. A key present in a layer is an
|
|
106838
|
+
* override; an absent key inherits. Two consequences that every editor must
|
|
106839
|
+
* respect, and why this module exists:
|
|
106840
|
+
*
|
|
106841
|
+
* - A model-bound field (D738) occupies TWO keys, its value and
|
|
106842
|
+
* `<key>ModelId`. They are written, compared and removed as one unit — a
|
|
106843
|
+
* value without its binding over a lower layer's binding would be judged
|
|
106844
|
+
* against the wrong model.
|
|
106845
|
+
* - An editor writes a DIFF against the merged layers below, never a copy of
|
|
106846
|
+
* them. A copy pins every field at the value it had that day, so later
|
|
106847
|
+
* edits below never reach it (the full-copy "Override" this replaced).
|
|
106848
|
+
*/
|
|
106849
|
+
/** Top-down order of the stored layers. */
|
|
106850
|
+
var LAYER_ORDER = ["camera", "node"];
|
|
106851
|
+
/**
|
|
106852
|
+
* The keys one field occupies in a bag: its own, plus its binding key when it
|
|
106853
|
+
* binds to a model. `boundKeys` = `collectModelBoundKeys(schema)`.
|
|
106854
|
+
*/
|
|
106855
|
+
function fieldUnitKeys(key, boundKeys) {
|
|
106856
|
+
return boundKeys.includes(key) ? [key, modelBindingKey(key)] : [key];
|
|
106857
|
+
}
|
|
106858
|
+
/** The field a stored key belongs to (`minConfidencePersonModelId` → `minConfidencePerson`). */
|
|
106859
|
+
function unitOf(storedKey, boundKeys) {
|
|
106860
|
+
return boundKeys.find((k) => modelBindingKey(k) === storedKey) ?? storedKey;
|
|
106861
|
+
}
|
|
106862
|
+
/** Structural equality for stored values (numbers, strings, booleans, arrays, plain objects). */
|
|
106863
|
+
function settingValuesEqual(a, b) {
|
|
106864
|
+
if (Object.is(a, b)) return true;
|
|
106865
|
+
if (Array.isArray(a) && Array.isArray(b)) return a.length === b.length && a.every((v, i) => settingValuesEqual(v, b[i]));
|
|
106866
|
+
if (isPlainObject(a) && isPlainObject(b)) {
|
|
106867
|
+
const ka = Object.keys(a);
|
|
106868
|
+
const kb = Object.keys(b);
|
|
106869
|
+
return ka.length === kb.length && ka.every((k) => settingValuesEqual(a[k], b[k]));
|
|
106870
|
+
}
|
|
106871
|
+
return false;
|
|
106872
|
+
}
|
|
106873
|
+
function isPlainObject(v) {
|
|
106874
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
106875
|
+
}
|
|
106876
|
+
/** Merge bags bottom-up (later wins, per key). Fresh object. */
|
|
106877
|
+
function mergeSettingsBags(...bags) {
|
|
106878
|
+
return bags.reduce((acc, bag) => ({
|
|
106879
|
+
...acc,
|
|
106880
|
+
...bag
|
|
106881
|
+
}), {});
|
|
106882
|
+
}
|
|
106883
|
+
/** The merged value of the layers BELOW `layer` (what removing a key from `layer` falls back to). */
|
|
106884
|
+
function settingsBelow(layers, layer) {
|
|
106885
|
+
return mergeSettingsBags(...LAYER_ORDER.slice(LAYER_ORDER.indexOf(layer) + 1).toReversed().map((id) => layers[id]));
|
|
106886
|
+
}
|
|
106887
|
+
/** The effective bag: every stored layer merged. */
|
|
106888
|
+
function effectiveStepSettings(layers) {
|
|
106889
|
+
return mergeSettingsBags(layers.node, layers.camera);
|
|
106890
|
+
}
|
|
106891
|
+
/** The highest stored layer that holds any key of `key`'s unit, or `default`. */
|
|
106892
|
+
function stepSettingSource(layers, key, boundKeys) {
|
|
106893
|
+
const unit = fieldUnitKeys(key, boundKeys);
|
|
106894
|
+
for (const id of LAYER_ORDER) {
|
|
106895
|
+
const bag = layers[id];
|
|
106896
|
+
if (bag !== void 0 && unit.some((k) => bag[k] !== void 0)) return id;
|
|
106897
|
+
}
|
|
106898
|
+
return "default";
|
|
106899
|
+
}
|
|
106900
|
+
/**
|
|
106901
|
+
* `layer` with `key`'s unit set from `values` (a bag carrying the unit's new
|
|
106902
|
+
* value — e.g. the editor's whole next settings bag). A unit key that `values`
|
|
106903
|
+
* does not carry is removed from the layer. Fresh object.
|
|
106904
|
+
*/
|
|
106905
|
+
function withFieldFrom(layer, key, values, boundKeys) {
|
|
106906
|
+
const out = { ...layer };
|
|
106907
|
+
for (const k of fieldUnitKeys(key, boundKeys)) if (values[k] === void 0) delete out[k];
|
|
106908
|
+
else out[k] = values[k];
|
|
106909
|
+
return out;
|
|
106910
|
+
}
|
|
106911
|
+
/** `layer` without `key`'s unit — "reset to the next level". Fresh object. */
|
|
106912
|
+
function withoutField(layer, key, boundKeys) {
|
|
106913
|
+
const out = { ...layer };
|
|
106914
|
+
for (const k of fieldUnitKeys(key, boundKeys)) delete out[k];
|
|
106915
|
+
return out;
|
|
106916
|
+
}
|
|
106917
|
+
/** Every field unit stored in `layer`, by its field key. */
|
|
106918
|
+
function unitsIn(layer, boundKeys) {
|
|
106919
|
+
return [...new Set(Object.keys(layer).map((k) => unitOf(k, boundKeys)))];
|
|
106920
|
+
}
|
|
106921
|
+
/** True when every key of `key`'s unit has the same value in `layer` as in `below`. */
|
|
106922
|
+
function unitEqualsBelow(layer, below, key, boundKeys) {
|
|
106923
|
+
return fieldUnitKeys(key, boundKeys).every((k) => settingValuesEqual(layer[k], below[k]));
|
|
106924
|
+
}
|
|
106925
|
+
/**
|
|
106926
|
+
* `layer` reduced to the fields that DIFFER from `below` — what an editor
|
|
106927
|
+
* stores. A unit is kept or dropped whole. `undefined` when nothing is left.
|
|
106928
|
+
*/
|
|
106929
|
+
function diffStepSettings(layer, below, boundKeys) {
|
|
106930
|
+
if (layer === void 0) return void 0;
|
|
106931
|
+
const out = {};
|
|
106932
|
+
for (const unit of unitsIn(layer, boundKeys)) {
|
|
106933
|
+
if (unitEqualsBelow(layer, below, unit, boundKeys)) continue;
|
|
106934
|
+
for (const k of fieldUnitKeys(unit, boundKeys)) if (layer[k] !== void 0) out[k] = layer[k];
|
|
106935
|
+
}
|
|
106936
|
+
return Object.keys(out).length > 0 ? out : void 0;
|
|
106937
|
+
}
|
|
106938
|
+
/**
|
|
106939
|
+
* The fields `layer` stores at exactly the value of the layers below — a
|
|
106940
|
+
* legacy full copy's leftovers. They change nothing today and stop every
|
|
106941
|
+
* later edit below from reaching this layer. Sorted.
|
|
106942
|
+
*/
|
|
106943
|
+
function fieldsPinnedAtValueBelow(layer, below, boundKeys) {
|
|
106944
|
+
if (layer === void 0) return [];
|
|
106945
|
+
return unitsIn(layer, boundKeys).filter((unit) => unitEqualsBelow(layer, below, unit, boundKeys)).toSorted();
|
|
106946
|
+
}
|
|
106947
|
+
//#endregion
|
|
106948
|
+
//#region src/pipeline/auto-tune/hardware-class.ts
|
|
106949
|
+
var APPLE_CHIP = /^Apple M(\d+)(?:\s+(Pro|Max|Ultra))?\b/i;
|
|
106950
|
+
var INTEL_CORE_ULTRA = /Core\(TM\)\s+Ultra|Core Ultra/i;
|
|
106951
|
+
var INTEL_N_SERIES = /Intel\(R\)\s+N\d{2,3}\b|\bIntel\s+N\d{2,3}\b/i;
|
|
106952
|
+
/** Phoenix / Hawk Point mobile (7040/8040) and Ryzen 8000G desktop APUs. */
|
|
106953
|
+
var AMD_PHOENIX = /Ryzen \d+ (7[0-9]40|8[0-9]40|8[0-9]45)[HSU]|Ryzen \d+ 8[0-9]00G/i;
|
|
106954
|
+
function parseAppleChip(cpuModel) {
|
|
106955
|
+
const match = APPLE_CHIP.exec(cpuModel.trim());
|
|
106956
|
+
if (match === null) return null;
|
|
106957
|
+
const generation = Number(match[1]);
|
|
106958
|
+
const variantRaw = (match[2] ?? "base").toLowerCase();
|
|
106959
|
+
return {
|
|
106960
|
+
generation,
|
|
106961
|
+
variant: variantRaw === "pro" || variantRaw === "max" || variantRaw === "ultra" ? variantRaw : "base"
|
|
106962
|
+
};
|
|
106963
|
+
}
|
|
106964
|
+
/**
|
|
106965
|
+
* Classify a node. Apple base chips (M1–M4) map to the measured M2 column, the
|
|
106966
|
+
* Pro/Max/Ultra chips to the measured M3 Pro column — the M2 was measured at
|
|
106967
|
+
* 1.0–1.2× the M3 Pro on the Neural Engine, so the generation inside a variant
|
|
106968
|
+
* matters less than the column's own error.
|
|
106969
|
+
*/
|
|
106970
|
+
function classifyInferenceHardware(hw) {
|
|
106971
|
+
const cpuModel = hw.cpuModel;
|
|
106972
|
+
const apple = parseAppleChip(cpuModel);
|
|
106973
|
+
if (apple !== null) return {
|
|
106974
|
+
hardwareClass: apple.variant === "base" ? "apple-m-base" : "apple-m-pro",
|
|
106975
|
+
cpuModel,
|
|
106976
|
+
apple
|
|
106977
|
+
};
|
|
106978
|
+
if (INTEL_CORE_ULTRA.test(cpuModel)) return {
|
|
106979
|
+
hardwareClass: "intel-core-ultra",
|
|
106980
|
+
cpuModel
|
|
106981
|
+
};
|
|
106982
|
+
if (INTEL_N_SERIES.test(cpuModel)) return {
|
|
106983
|
+
hardwareClass: "intel-n-series",
|
|
106984
|
+
cpuModel
|
|
106985
|
+
};
|
|
106986
|
+
if (AMD_PHOENIX.test(cpuModel)) return {
|
|
106987
|
+
hardwareClass: "amd-phoenix",
|
|
106988
|
+
cpuModel
|
|
106989
|
+
};
|
|
106990
|
+
return {
|
|
106991
|
+
hardwareClass: "unknown",
|
|
106992
|
+
cpuModel
|
|
106993
|
+
};
|
|
106994
|
+
}
|
|
106995
|
+
/**
|
|
106996
|
+
* The accelerator kind of one of a node's device keys (`openvino:npu`,
|
|
106997
|
+
* `openvino:gpu`, `coreml:all`, `edgetpu:usb`, `cpu`, `onnx:cpu`, …). `null`
|
|
106998
|
+
* for a key this table has no column for.
|
|
106999
|
+
*/
|
|
107000
|
+
function acceleratorKindOf(deviceKey, hw) {
|
|
107001
|
+
const [backend = "", device = ""] = deviceKey.split(":");
|
|
107002
|
+
if (backend === "edgetpu") return "coral";
|
|
107003
|
+
if (backend === "coreml") return device === "cpu" ? "arm-cpu" : "apple-ane";
|
|
107004
|
+
if (backend === "openvino" && device === "npu") return "intel-npu";
|
|
107005
|
+
if (backend === "openvino" && device === "gpu") return "intel-igpu";
|
|
107006
|
+
if (backend === "onnx" && device === "webgpu") return "amd-igpu";
|
|
107007
|
+
if (backend === "vitisai" && device === "npu") return "amd-npu";
|
|
107008
|
+
if (backend === "cpu" || device === "cpu") return hw.arch === "arm64" ? "arm-cpu" : "x86-cpu";
|
|
107009
|
+
return null;
|
|
107010
|
+
}
|
|
106497
107011
|
//#endregion
|
|
106498
107012
|
//#region src/pipeline/auto-tune/recommend.ts
|
|
106499
107013
|
/** The family the cluster runs. */
|
|
@@ -106509,10 +107023,35 @@ var RECALL_TIE = .02;
|
|
|
106509
107023
|
var DEFAULT_HEADROOM = .4;
|
|
106510
107024
|
/** Detection rate a session is counted at when no camera says otherwise. */
|
|
106511
107025
|
var DEFAULT_CAMERA_FPS = 10;
|
|
106512
|
-
/**
|
|
106513
|
-
|
|
106514
|
-
|
|
106515
|
-
|
|
107026
|
+
/**
|
|
107027
|
+
* Camera rate at which serial `1000/p50` matched the cameras that held
|
|
107028
|
+
* (N100 iGPU, 2026-10-24). Below this the second InferRequest's overlap
|
|
107029
|
+
* becomes extra sessions; at and above it the serial ceiling is the count.
|
|
107030
|
+
*/
|
|
107031
|
+
var SERIAL_CAPACITY_CAMERA_FPS = 10;
|
|
107032
|
+
/**
|
|
107033
|
+
* Aggregate throughput ÷ serial throughput when the frame interval is wide
|
|
107034
|
+
* enough to hide the second request. intel-igpu is the N100 measurement
|
|
107035
|
+
* (~1.4× under LATENCY with 2 InferRequests). Every other kind stays 1
|
|
107036
|
+
* until it is measured the same way.
|
|
107037
|
+
*/
|
|
107038
|
+
var AGGREGATE_THROUGHPUT_BY_KIND = { "intel-igpu": 1.4 };
|
|
107039
|
+
/** The overlap factor for this kind at this camera rate. 1 at {@link SERIAL_CAPACITY_CAMERA_FPS} and above. */
|
|
107040
|
+
function aggregateThroughputFactor(kind, cameraFps) {
|
|
107041
|
+
if (!(cameraFps > 0) || cameraFps >= 10) return 1;
|
|
107042
|
+
return AGGREGATE_THROUGHPUT_BY_KIND[kind] ?? 1;
|
|
107043
|
+
}
|
|
107044
|
+
/**
|
|
107045
|
+
* Parallel sessions one device sustains at `fps` with `headroom` kept free.
|
|
107046
|
+
* `aggregateFactor` is the kind's overlap (1 unless the caller measured
|
|
107047
|
+
* extra throughput at this camera rate).
|
|
107048
|
+
*/
|
|
107049
|
+
function capacitySessionsOf(fps, headroom, cameraFps, aggregateFactor = 1) {
|
|
107050
|
+
if (!(fps > 0) || !(cameraFps > 0) || !(aggregateFactor > 0)) return 0;
|
|
107051
|
+
return Math.max(0, Math.floor(fps * aggregateFactor * (1 - headroom) / cameraFps + 1e-9));
|
|
107052
|
+
}
|
|
107053
|
+
function reportFor(hardware, deviceKey) {
|
|
107054
|
+
return hardware.accelerators?.find((report) => report.deviceKey === deviceKey) ?? null;
|
|
106516
107055
|
}
|
|
106517
107056
|
/** The table column with the node's own measurements laid over it. */
|
|
106518
107057
|
function overlayMeasured(table, measured) {
|
|
@@ -106534,11 +107073,12 @@ function round(value, digits = 3) {
|
|
|
106534
107073
|
const f = 10 ** digits;
|
|
106535
107074
|
return Math.round(value * f) / f;
|
|
106536
107075
|
}
|
|
106537
|
-
function sessionsOn(cell, sizing) {
|
|
106538
|
-
|
|
107076
|
+
function sessionsOn(cell, sizing, kind) {
|
|
107077
|
+
if (cell === void 0) return 0;
|
|
107078
|
+
return capacitySessionsOf(cell.fps, sizing.headroom, sizing.cameraFps, aggregateThroughputFactor(kind, sizing.cameraFps));
|
|
106539
107079
|
}
|
|
106540
|
-
function fitsOn(
|
|
106541
|
-
return sessionsOn(
|
|
107080
|
+
function fitsOn(ctx, modelId, sizing) {
|
|
107081
|
+
return sessionsOn(ctx.column[modelId], sizing, ctx.accelerator) >= sizing.minSessions;
|
|
106542
107082
|
}
|
|
106543
107083
|
function candidatesFor(contexts, formatsByModel) {
|
|
106544
107084
|
return Object.keys(DETECTOR_ACCURACY).filter((id) => id.startsWith(AUTO_TUNE_FAMILY)).filter((id) => contexts.every((c) => c.column[id] !== void 0 && (formatsByModel[id] ?? []).includes(c.device.format))).map((id) => ({
|
|
@@ -106551,13 +107091,13 @@ function totalLatency(contexts, modelId) {
|
|
|
106551
107091
|
}
|
|
106552
107092
|
/** The fewest sessions any device of the group sustains with this model. */
|
|
106553
107093
|
function worstSessions(contexts, modelId, sizing) {
|
|
106554
|
-
return contexts.reduce((worst, c) => Math.min(worst, sessionsOn(c.column[modelId], sizing)), Number.POSITIVE_INFINITY);
|
|
107094
|
+
return contexts.reduce((worst, c) => Math.min(worst, sessionsOn(c.column[modelId], sizing, c.accelerator)), Number.POSITIVE_INFINITY);
|
|
106555
107095
|
}
|
|
106556
107096
|
/** One model for a group of devices that must agree (step 2–4 of the header). */
|
|
106557
107097
|
function pickForGroup(contexts, formatsByModel, sizing) {
|
|
106558
107098
|
const candidates = candidatesFor(contexts, formatsByModel);
|
|
106559
107099
|
if (candidates.length === 0) return null;
|
|
106560
|
-
const fitting = candidates.filter((c) => contexts.every((ctx) => fitsOn(ctx
|
|
107100
|
+
const fitting = candidates.filter((c) => contexts.every((ctx) => fitsOn(ctx, c.modelId, sizing)));
|
|
106561
107101
|
if (fitting.length === 0) {
|
|
106562
107102
|
const lightest = candidates.toSorted((a, b) => worstSessions(contexts, b.modelId, sizing) - worstSessions(contexts, a.modelId, sizing) || totalLatency(contexts, a.modelId) - totalLatency(contexts, b.modelId))[0];
|
|
106563
107103
|
if (lightest === void 0) return null;
|
|
@@ -106576,7 +107116,7 @@ function pickForGroup(contexts, formatsByModel, sizing) {
|
|
|
106576
107116
|
const reasons = [];
|
|
106577
107117
|
const mostAccurate = candidates[0];
|
|
106578
107118
|
if (mostAccurate !== void 0 && mostAccurate.modelId !== best.modelId) {
|
|
106579
|
-
const limitedBy = contexts.find((ctx) => !fitsOn(ctx
|
|
107119
|
+
const limitedBy = contexts.find((ctx) => !fitsOn(ctx, mostAccurate.modelId, sizing))?.device.key ?? "";
|
|
106580
107120
|
reasons.push({
|
|
106581
107121
|
kind: "stepped-down",
|
|
106582
107122
|
from: mostAccurate.modelId,
|
|
@@ -106597,13 +107137,19 @@ function pickForGroup(contexts, formatsByModel, sizing) {
|
|
|
106597
107137
|
function choiceOn(ctx, modelId, sizing) {
|
|
106598
107138
|
const cell = ctx.column[modelId];
|
|
106599
107139
|
if (cell === void 0) return null;
|
|
107140
|
+
const estimatedFrom = cell.source?.kind === "node-benchmark" ? void 0 : cell.estimatedFrom;
|
|
107141
|
+
const source = cell.source ?? (estimatedFrom !== void 0 ? {
|
|
107142
|
+
kind: "estimated",
|
|
107143
|
+
estimatedFrom
|
|
107144
|
+
} : { kind: "table" });
|
|
106600
107145
|
return {
|
|
106601
107146
|
modelId,
|
|
106602
107147
|
p50Ms: cell.p50Ms,
|
|
106603
107148
|
fps: cell.fps,
|
|
106604
107149
|
measured: cell.measured,
|
|
106605
|
-
source
|
|
106606
|
-
|
|
107150
|
+
source,
|
|
107151
|
+
...estimatedFrom !== void 0 ? { estimatedFrom } : {},
|
|
107152
|
+
capacitySessions: sessionsOn(cell, sizing, ctx.accelerator),
|
|
106607
107153
|
personRecall: DETECTOR_ACCURACY[modelId]?.personRecall ?? 0
|
|
106608
107154
|
};
|
|
106609
107155
|
}
|
|
@@ -106654,7 +107200,11 @@ function recommendNode(input) {
|
|
|
106654
107200
|
const measured = input.measured ?? {};
|
|
106655
107201
|
const hasMeasured = Object.values(measured).some((m) => Object.keys(m).length > 0);
|
|
106656
107202
|
const knownTable = hardwareClass === "unknown" ? void 0 : perf[hardwareClass];
|
|
106657
|
-
|
|
107203
|
+
const canEstimate = (hardware.accelerators ?? []).some((report) => {
|
|
107204
|
+
const kind = acceleratorKindOf(report.deviceKey, hardware);
|
|
107205
|
+
return kind !== null && reportIsScalable(report, kind);
|
|
107206
|
+
});
|
|
107207
|
+
if (knownTable === void 0 && !hasMeasured && !canEstimate) return skippedNode(node, {
|
|
106658
107208
|
kind: "no-measured-data",
|
|
106659
107209
|
hardwareClass
|
|
106660
107210
|
}, hardwareClass);
|
|
@@ -106690,7 +107240,12 @@ function recommendNode(input) {
|
|
|
106690
107240
|
});
|
|
106691
107241
|
continue;
|
|
106692
107242
|
}
|
|
106693
|
-
const column = accelerator === null ? void 0 : overlayMeasured(
|
|
107243
|
+
const column = accelerator === null ? void 0 : overlayMeasured(resolveLatencyColumn({
|
|
107244
|
+
hardwareClass,
|
|
107245
|
+
accelerator,
|
|
107246
|
+
report: reportFor(hardware, device.key),
|
|
107247
|
+
perf
|
|
107248
|
+
})?.column, measured[device.key]);
|
|
106694
107249
|
if (accelerator === null || column === void 0) {
|
|
106695
107250
|
early.set(device.key, [{
|
|
106696
107251
|
kind: "no-family-build",
|
|
@@ -107438,6 +107993,507 @@ function buildBenchStepTree(schema, rootModelId, enabledStepIds) {
|
|
|
107438
107993
|
}];
|
|
107439
107994
|
}
|
|
107440
107995
|
//#endregion
|
|
107996
|
+
//#region src/pipeline/second-pass/small-subject-recovery.ts
|
|
107997
|
+
/** The object-detection step id — the first-level detector both recipes run. */
|
|
107998
|
+
var OBJECT_DETECTION_STEP_ID = "object-detection";
|
|
107999
|
+
/**
|
|
108000
|
+
* Smallest crop side, native pixels. Below this the model no longer
|
|
108001
|
+
* magnifies enough to matter on a 4K frame, and on a 1080p frame 640 is
|
|
108002
|
+
* already a third of the picture. Measured: 480–800 px all recover the dog.
|
|
108003
|
+
*/
|
|
108004
|
+
var RECOVERY_CROP_MIN_SIDE_PX = 640;
|
|
108005
|
+
/**
|
|
108006
|
+
* Largest crop side. A 320 model on a 1024 px square is a 3.2× reduction and
|
|
108007
|
+
* scored the dog at 0.52–0.76; at 1280 px it was absent again. A region wider
|
|
108008
|
+
* than this is tiled, never zoomed out.
|
|
108009
|
+
*/
|
|
108010
|
+
var RECOVERY_CROP_MAX_SIDE_PX = 800;
|
|
108011
|
+
/** Context around the region before squaring, as a fraction of its larger side. */
|
|
108012
|
+
var RECOVERY_CROP_PADDING_RATIO = .25;
|
|
108013
|
+
/**
|
|
108014
|
+
* The view the crop is resolved at, compressed. Never larger than the crop
|
|
108015
|
+
* (the floor is {@link RECOVERY_CROP_MIN_SIDE_PX}), so it never upscales, and
|
|
108016
|
+
* the model letterboxes it to its own input from here as it does the frame.
|
|
108017
|
+
*/
|
|
108018
|
+
var RECOVERY_VIEW_PX = 640;
|
|
108019
|
+
/**
|
|
108020
|
+
* Crops per frame. Each is one more inference on the same pool (15–25 ms on
|
|
108021
|
+
* CoreML for a 640 view); two cover a person-and-dog blob and a second mover.
|
|
108022
|
+
*/
|
|
108023
|
+
var RECOVERY_MAX_CROPS_PER_FRAME = 2;
|
|
108024
|
+
/**
|
|
108025
|
+
* The pass runs at most this often per camera — at 10 fps that is one frame
|
|
108026
|
+
* in five. A subject the full pass misses is missed for seconds, not for one
|
|
108027
|
+
* frame, so the recovery does not need every frame to find it.
|
|
108028
|
+
*
|
|
108029
|
+
* The floor under this number is the tracker: a track coasts for
|
|
108030
|
+
* `maxMissedMs` (4 000 ms by default) before it is dropped, so 2 recoveries a
|
|
108031
|
+
* second keep a subject the full-frame pass has lost ALIVE with 8× margin,
|
|
108032
|
+
* and reach `minHits` (3) in 1.5 s. Raising it past ~1 300 ms would start to
|
|
108033
|
+
* lose tracks between passes.
|
|
108034
|
+
*/
|
|
108035
|
+
var RECOVERY_MIN_INTERVAL_MS = 500;
|
|
108036
|
+
/**
|
|
108037
|
+
* A region larger than this share of the frame is not a small subject: a
|
|
108038
|
+
* lighting change, a car filling the picture, a person at the lens. The
|
|
108039
|
+
* full-frame pass already sees those at scale.
|
|
108040
|
+
*/
|
|
108041
|
+
var RECOVERY_MAX_REGION_FRAME_FRACTION = .25;
|
|
108042
|
+
/**
|
|
108043
|
+
* How much of a region must lie OUTSIDE every full-frame detection for the
|
|
108044
|
+
* pass to run on it. A person's own blob (dilated, with shadow) is covered
|
|
108045
|
+
* 70–90% by the person box; a person-and-dog blob is covered ~55% by it.
|
|
108046
|
+
*/
|
|
108047
|
+
var RECOVERY_MIN_UNCOVERED_FRACTION = .35;
|
|
108048
|
+
/** Motion regions older than this describe a different frame. */
|
|
108049
|
+
var RECOVERY_MOTION_MAX_AGE_MS = 2e3;
|
|
108050
|
+
/** A recovered box overlapping a same-class full-frame box this much is the same subject. */
|
|
108051
|
+
var RECOVERY_FUSE_IOU = .5;
|
|
108052
|
+
/**
|
|
108053
|
+
* A recovered box CONTAINED this much in a same-class full-frame box is a part
|
|
108054
|
+
* of it — a torso the crop cut out of a person the full pass already has.
|
|
108055
|
+
*/
|
|
108056
|
+
var RECOVERY_FUSE_CONTAINMENT = .7;
|
|
108057
|
+
/** A box within this many crop-view pixels of the crop edge was clipped by it. */
|
|
108058
|
+
var RECOVERY_EDGE_MARGIN_PX = 2;
|
|
108059
|
+
/** Area of a normalised rectangle, never negative. Shared with the D396 recipe. */
|
|
108060
|
+
function normalizedArea(r) {
|
|
108061
|
+
return Math.max(0, r.w) * Math.max(0, r.h);
|
|
108062
|
+
}
|
|
108063
|
+
var area = normalizedArea;
|
|
108064
|
+
function intersection(a, b) {
|
|
108065
|
+
return Math.max(0, Math.min(a.x + a.w, b.x + b.w) - Math.max(a.x, b.x)) * Math.max(0, Math.min(a.y + a.h, b.y + b.h) - Math.max(a.y, b.y));
|
|
108066
|
+
}
|
|
108067
|
+
/**
|
|
108068
|
+
* Share of `region` not covered by any detection box. The sum of pairwise
|
|
108069
|
+
* intersections over-counts where detections overlap each other, which only
|
|
108070
|
+
* makes the pass MORE conservative; clipped at 1.
|
|
108071
|
+
*/
|
|
108072
|
+
function uncoveredFraction(region, detections) {
|
|
108073
|
+
const regionArea = area(region);
|
|
108074
|
+
if (regionArea <= 0) return 0;
|
|
108075
|
+
let covered = 0;
|
|
108076
|
+
for (const detection of detections) covered += intersection(region, detection);
|
|
108077
|
+
return 1 - Math.min(1, covered / regionArea);
|
|
108078
|
+
}
|
|
108079
|
+
/**
|
|
108080
|
+
* THE square-placement rule of this pass — one owner, shared by both recipes.
|
|
108081
|
+
*
|
|
108082
|
+
* A crop is a square of `side` native pixels centred where it can be and slid
|
|
108083
|
+
* inside the frame where it cannot. Both region rules place their squares
|
|
108084
|
+
* through this function so a crop means the same rectangle whichever rule
|
|
108085
|
+
* chose the region.
|
|
108086
|
+
*/
|
|
108087
|
+
function squareAround(centreX, centreY, side, native) {
|
|
108088
|
+
return {
|
|
108089
|
+
left: Math.round(Math.max(0, Math.min(native.width - side, centreX - side / 2))),
|
|
108090
|
+
top: Math.round(Math.max(0, Math.min(native.height - side, centreY - side / 2))),
|
|
108091
|
+
side
|
|
108092
|
+
};
|
|
108093
|
+
}
|
|
108094
|
+
function contains(crop, x, y) {
|
|
108095
|
+
return x >= crop.left && x <= crop.left + crop.side && y >= crop.top && y <= crop.top + crop.side;
|
|
108096
|
+
}
|
|
108097
|
+
/**
|
|
108098
|
+
* Squares for one region: one when it fits the largest side, otherwise up to
|
|
108099
|
+
* two tiles along its longer axis (a person-sized blob with something small
|
|
108100
|
+
* at either end). The padded region decides the side, never the frame.
|
|
108101
|
+
*/
|
|
108102
|
+
function cropsForRegion(region, native) {
|
|
108103
|
+
const widthPx = region.w * native.width;
|
|
108104
|
+
const heightPx = region.h * native.height;
|
|
108105
|
+
const longest = Math.max(widthPx, heightPx);
|
|
108106
|
+
const padded = longest * 1.5;
|
|
108107
|
+
const side = Math.round(Math.min(Math.max(padded, 640), 800));
|
|
108108
|
+
const centreX = (region.x + region.w / 2) * native.width;
|
|
108109
|
+
const centreY = (region.y + region.h / 2) * native.height;
|
|
108110
|
+
if (padded <= 800) return [squareAround(centreX, centreY, side, native)];
|
|
108111
|
+
const alongX = widthPx >= heightPx;
|
|
108112
|
+
const quarter = longest / 4;
|
|
108113
|
+
return [squareAround(alongX ? centreX - quarter : centreX, alongX ? centreY : centreY - quarter, side, native), squareAround(alongX ? centreX + quarter : centreX, alongX ? centreY : centreY + quarter, side, native)];
|
|
108114
|
+
}
|
|
108115
|
+
/**
|
|
108116
|
+
* The ONE place the two region gates are decided. `planRecoveryCrops` filters
|
|
108117
|
+
* on it and {@link countRecoverySkips} counts it, so the report can never
|
|
108118
|
+
* describe a gate the planner does not actually apply.
|
|
108119
|
+
*/
|
|
108120
|
+
function classifyRegion(region, uncovered) {
|
|
108121
|
+
if (area(region) > .25) return "too-large";
|
|
108122
|
+
if (uncovered < .35) return "covered";
|
|
108123
|
+
return "eligible";
|
|
108124
|
+
}
|
|
108125
|
+
/**
|
|
108126
|
+
* WHY A FRAME PLANNED NO CROP, AS A NUMBER (D378).
|
|
108127
|
+
*
|
|
108128
|
+
* The pass report counts the passes that RAN, so "the second pass stops running
|
|
108129
|
+
* when a person is beside the dog" — a plausible reading of
|
|
108130
|
+
* {@link RECOVERY_MAX_REGION_FRAME_FRACTION} and
|
|
108131
|
+
* {@link RECOVERY_MIN_UNCOVERED_FRACTION}, and a live hypothesis on camera 615
|
|
108132
|
+
* — could not be confirmed or killed from the logs at all. This classifies the
|
|
108133
|
+
* regions a frame offered, against the same predicate the planner filters on.
|
|
108134
|
+
*/
|
|
108135
|
+
function countRecoverySkips(input) {
|
|
108136
|
+
let tooLarge = 0;
|
|
108137
|
+
let covered = 0;
|
|
108138
|
+
let eligible = 0;
|
|
108139
|
+
for (const region of input.regions) switch (classifyRegion(region, uncoveredFraction(region, input.detections))) {
|
|
108140
|
+
case "too-large":
|
|
108141
|
+
tooLarge += 1;
|
|
108142
|
+
break;
|
|
108143
|
+
case "covered":
|
|
108144
|
+
covered += 1;
|
|
108145
|
+
break;
|
|
108146
|
+
case "eligible":
|
|
108147
|
+
eligible += 1;
|
|
108148
|
+
break;
|
|
108149
|
+
}
|
|
108150
|
+
return {
|
|
108151
|
+
tooLarge,
|
|
108152
|
+
covered,
|
|
108153
|
+
eligible
|
|
108154
|
+
};
|
|
108155
|
+
}
|
|
108156
|
+
function planRecoveryCrops(input) {
|
|
108157
|
+
const { native } = input;
|
|
108158
|
+
if (Math.min(native.width, native.height) < 640) return [];
|
|
108159
|
+
const ranked = input.regions.map((region) => ({
|
|
108160
|
+
region,
|
|
108161
|
+
uncovered: uncoveredFraction(region, input.detections)
|
|
108162
|
+
})).filter(({ region, uncovered }) => classifyRegion(region, uncovered) === "eligible").toSorted((a, b) => area(b.region) * b.uncovered - area(a.region) * a.uncovered);
|
|
108163
|
+
const planned = [];
|
|
108164
|
+
for (const { region } of ranked) for (const crop of cropsForRegion(region, native)) {
|
|
108165
|
+
if (planned.length >= 2) return planned;
|
|
108166
|
+
const centreX = crop.left + crop.side / 2;
|
|
108167
|
+
const centreY = crop.top + crop.side / 2;
|
|
108168
|
+
if (planned.some((existing) => contains(existing, centreX, centreY))) continue;
|
|
108169
|
+
planned.push(crop);
|
|
108170
|
+
}
|
|
108171
|
+
return planned;
|
|
108172
|
+
}
|
|
108173
|
+
/**
|
|
108174
|
+
* Boxes the executor produced on the crop VIEW → the result's own space.
|
|
108175
|
+
*
|
|
108176
|
+
* Three spaces meet here: the view the model saw (`view`, ≤640 px), the native
|
|
108177
|
+
* square it was cut from (`crop`, native px) and the space the full-frame
|
|
108178
|
+
* result reports in (`result`, native px on the `frameRef` path, the inline
|
|
108179
|
+
* ≤640 view otherwise). A box touching the view edge was clipped by the crop
|
|
108180
|
+
* and is dropped: half a person is not a person, and the tracker would take
|
|
108181
|
+
* the half as the whole.
|
|
108182
|
+
*/
|
|
108183
|
+
function remapCropDetections(detections, crop, view, result, native) {
|
|
108184
|
+
const viewToNative = crop.side / Math.max(1, view.width);
|
|
108185
|
+
const nativeToResultX = result.width / Math.max(1, native.width);
|
|
108186
|
+
const nativeToResultY = result.height / Math.max(1, native.height);
|
|
108187
|
+
const out = [];
|
|
108188
|
+
for (const detection of detections) {
|
|
108189
|
+
const { x, y, width, height } = detection.bbox;
|
|
108190
|
+
if (x <= 2 || y <= 2 || x + width >= view.width - 2 || y + height >= view.height - 2) continue;
|
|
108191
|
+
out.push({
|
|
108192
|
+
...detection,
|
|
108193
|
+
nativeRecovery: {
|
|
108194
|
+
score: detection.score,
|
|
108195
|
+
cropSidePx: crop.side,
|
|
108196
|
+
viewPx: view.width
|
|
108197
|
+
},
|
|
108198
|
+
bbox: {
|
|
108199
|
+
x: (crop.left + x * viewToNative) * nativeToResultX,
|
|
108200
|
+
y: (crop.top + y * viewToNative) * nativeToResultY,
|
|
108201
|
+
width: width * viewToNative * nativeToResultX,
|
|
108202
|
+
height: height * viewToNative * nativeToResultY
|
|
108203
|
+
}
|
|
108204
|
+
});
|
|
108205
|
+
}
|
|
108206
|
+
return out;
|
|
108207
|
+
}
|
|
108208
|
+
function boxIntersection(a, b) {
|
|
108209
|
+
return Math.max(0, Math.min(a.x + a.width, b.x + b.width) - Math.max(a.x, b.x)) * Math.max(0, Math.min(a.y + a.height, b.y + b.height) - Math.max(a.y, b.y));
|
|
108210
|
+
}
|
|
108211
|
+
function sameSubject(recovered, existing) {
|
|
108212
|
+
const inter = boxIntersection(recovered, existing);
|
|
108213
|
+
if (inter <= 0) return false;
|
|
108214
|
+
const areaR = recovered.width * recovered.height;
|
|
108215
|
+
const union = areaR + existing.width * existing.height - inter;
|
|
108216
|
+
if (union > 0 && inter / union >= .5) return true;
|
|
108217
|
+
return areaR > 0 && inter / areaR >= .7;
|
|
108218
|
+
}
|
|
108219
|
+
/**
|
|
108220
|
+
* Class-aware NMS of the recovered boxes against the full-frame ones. Every
|
|
108221
|
+
* full-frame box is kept as it is — the second pass only ADDS. A recovered box
|
|
108222
|
+
* is added when no full-frame box of the same macro class is the same subject
|
|
108223
|
+
* (`RECOVERY_FUSE_IOU`) or contains it (`RECOVERY_FUSE_CONTAINMENT`). Ids are
|
|
108224
|
+
* re-minted so a crop's `d0` cannot collide with the frame's.
|
|
108225
|
+
*/
|
|
108226
|
+
function fuseRecoveredDetections(full, recovered) {
|
|
108227
|
+
const accepted = [];
|
|
108228
|
+
for (const [index, candidate] of recovered.entries()) {
|
|
108229
|
+
if ([...full, ...accepted].some((existing) => existing.macroClass === candidate.macroClass && sameSubject(candidate.bbox, existing.bbox))) continue;
|
|
108230
|
+
accepted.push({
|
|
108231
|
+
...candidate,
|
|
108232
|
+
id: `recovered-${index}-${candidate.id}`
|
|
108233
|
+
});
|
|
108234
|
+
}
|
|
108235
|
+
return [...full, ...accepted];
|
|
108236
|
+
}
|
|
108237
|
+
/**
|
|
108238
|
+
* The step the second pass runs: the enabled first-level object detector of
|
|
108239
|
+
* the camera's own tree, with its own model and no children. Same model as
|
|
108240
|
+
* the full pass so a recovered box is comparable to a full-frame one.
|
|
108241
|
+
*/
|
|
108242
|
+
function selectRecoveryStep(steps) {
|
|
108243
|
+
const detector = steps.find((step) => step.addonId === "object-detection" && step.enabled !== false);
|
|
108244
|
+
if (!detector) return null;
|
|
108245
|
+
return {
|
|
108246
|
+
addonId: detector.addonId,
|
|
108247
|
+
...detector.modelId !== void 0 ? { modelId: detector.modelId } : {},
|
|
108248
|
+
enabled: true
|
|
108249
|
+
};
|
|
108250
|
+
}
|
|
108251
|
+
//#endregion
|
|
108252
|
+
//#region src/pipeline/second-pass/motion-crop-plan.ts
|
|
108253
|
+
/**
|
|
108254
|
+
* Step-settings key of the opt-in, on the `object-detection` step — so it is
|
|
108255
|
+
* per camera through `pipelineOrchestrator.setCameraStepSettings` (a
|
|
108256
|
+
* camera-semantic key, D927), and it rides the same
|
|
108257
|
+
* `PipelineStepInputOutput.settings` the per-macro confidence floors ride.
|
|
108258
|
+
*/
|
|
108259
|
+
var MOTION_CROP_DISPATCH_KEY = "motionCropDispatch";
|
|
108260
|
+
/**
|
|
108261
|
+
* Read the opt-in. Anything that is not the boolean `true` is the shipped
|
|
108262
|
+
* rule: a stored string or a number is a mis-write (this repo has shipped a
|
|
108263
|
+
* setting written into the wrong sqlite table before), and a mis-write must
|
|
108264
|
+
* not silently change what a camera detects on.
|
|
108265
|
+
*/
|
|
108266
|
+
function readRecoveryRecipe(settings) {
|
|
108267
|
+
return settings?.["motionCropDispatch"] === true ? "motion-crop" : "uncovered-region";
|
|
108268
|
+
}
|
|
108269
|
+
/**
|
|
108270
|
+
* The recipe this camera's resolved step tree selects.
|
|
108271
|
+
*
|
|
108272
|
+
* Reads the ENABLED first-level detector's own settings, which is where
|
|
108273
|
+
* `pipelineOrchestrator.setCameraStepSettings` writes a per-camera value. A
|
|
108274
|
+
* tree with no enabled detector runs no second pass at all, so the answer
|
|
108275
|
+
* there is the shipped rule and it is never used.
|
|
108276
|
+
*/
|
|
108277
|
+
function readRecoveryRecipeForSteps(steps) {
|
|
108278
|
+
return readRecoveryRecipe(steps.find((step) => step.addonId === "object-detection" && step.enabled !== false)?.settings);
|
|
108279
|
+
}
|
|
108280
|
+
/**
|
|
108281
|
+
* A motion box is grown ×1.5 about its centre before anything else.
|
|
108282
|
+
*
|
|
108283
|
+
* The motion step's box is the CHANGED pixels, which on a moving animal is the
|
|
108284
|
+
* leading edge plus its shadow, not the animal. The detector needs the subject
|
|
108285
|
+
* and the context it was trained on.
|
|
108286
|
+
*/
|
|
108287
|
+
var MOTION_CROP_MOTION_PAD = 1.5;
|
|
108288
|
+
/**
|
|
108289
|
+
* An intersecting tracked box is grown ×1.25 — less, because it is already a
|
|
108290
|
+
* subject rectangle rather than a change mask.
|
|
108291
|
+
*/
|
|
108292
|
+
var MOTION_CROP_TRACKED_PAD = 1.25;
|
|
108293
|
+
/**
|
|
108294
|
+
* Regions per frame, largest area first.
|
|
108295
|
+
*
|
|
108296
|
+
* Measured as NON-BINDING: over the 156 frames of the recall harness the cap
|
|
108297
|
+
* bound on 0 of them. It is the bound on a storm, not a tuning knob, and the
|
|
108298
|
+
* runner reports when it binds so a camera on which it starts to is visible.
|
|
108299
|
+
*/
|
|
108300
|
+
var MOTION_CROP_MAX_REGIONS = 3;
|
|
108301
|
+
/**
|
|
108302
|
+
* The floor a `person` or `vehicle` box must clear when it came out of a CROP
|
|
108303
|
+
* rather than out of the full frame.
|
|
108304
|
+
*
|
|
108305
|
+
* Collected, not assumed: 3 085 quiet frames produced 27 motion-positive
|
|
108306
|
+
* frames and 28 crop invocations. The full-frame arm produced 0 boxes above
|
|
108307
|
+
* any gate; the crop arm produced 3, of which two are genuine false positives,
|
|
108308
|
+
* and both are night-IR corners upscaled into a 320 model — `vehicle 0.749`
|
|
108309
|
+
* and `person 0.701`. Zero false `animal` at any gate, which is why `animal`
|
|
108310
|
+
* is deliberately absent from this table: the class the pass exists to recover
|
|
108311
|
+
* is the class that never produced a false positive, and gating it would cost
|
|
108312
|
+
* the whole measured gain.
|
|
108313
|
+
*
|
|
108314
|
+
* This is a CROP-ONLY floor, applied on top of the per-macro floors the
|
|
108315
|
+
* executor already enforced. A full-frame `person` at 0.70 is untouched — the
|
|
108316
|
+
* full-frame arm is the one arm with ground truth behind its floor
|
|
108317
|
+
* (`minConfidencePerson` 0.65, raised on 2026-07-30 from a measured
|
|
108318
|
+
* distribution).
|
|
108319
|
+
*
|
|
108320
|
+
* The cost of this floor is stated rather than assumed away: it can also
|
|
108321
|
+
* remove a real distant person or vehicle recovered from a crop at 0.70–0.80.
|
|
108322
|
+
* Nothing in the quiet-footage sample measures that, so the floor is a
|
|
108323
|
+
* constant here rather than a slider, and the runner reports every drop it
|
|
108324
|
+
* makes per camera.
|
|
108325
|
+
*/
|
|
108326
|
+
var CROP_CLASS_FLOORS = Object.freeze({
|
|
108327
|
+
person: .8,
|
|
108328
|
+
vehicle: .8
|
|
108329
|
+
});
|
|
108330
|
+
/**
|
|
108331
|
+
* Apply the crop-only class floors, REPORTING every drop.
|
|
108332
|
+
*
|
|
108333
|
+
* A class with no entry in {@link CROP_CLASS_FLOORS} is kept: a floor this
|
|
108334
|
+
* table cannot express is not a floor of zero, and silently dropping a class
|
|
108335
|
+
* nobody measured is the exact shape of silent drop this repo has paid for
|
|
108336
|
+
* three separate times.
|
|
108337
|
+
*/
|
|
108338
|
+
function applyCropClassFloors(detections) {
|
|
108339
|
+
const kept = [];
|
|
108340
|
+
const dropped = [];
|
|
108341
|
+
for (const detection of detections) {
|
|
108342
|
+
const floor = CROP_CLASS_FLOORS[detection.macroClass];
|
|
108343
|
+
if (floor !== void 0 && detection.score < floor) {
|
|
108344
|
+
dropped.push({
|
|
108345
|
+
macroClass: detection.macroClass,
|
|
108346
|
+
score: detection.score,
|
|
108347
|
+
floor
|
|
108348
|
+
});
|
|
108349
|
+
continue;
|
|
108350
|
+
}
|
|
108351
|
+
kept.push(detection);
|
|
108352
|
+
}
|
|
108353
|
+
return {
|
|
108354
|
+
kept,
|
|
108355
|
+
dropped
|
|
108356
|
+
};
|
|
108357
|
+
}
|
|
108358
|
+
function scaleAbout(rect, factor) {
|
|
108359
|
+
const w = rect.w * factor;
|
|
108360
|
+
const h = rect.h * factor;
|
|
108361
|
+
return {
|
|
108362
|
+
x: rect.x + rect.w / 2 - w / 2,
|
|
108363
|
+
y: rect.y + rect.h / 2 - h / 2,
|
|
108364
|
+
w,
|
|
108365
|
+
h
|
|
108366
|
+
};
|
|
108367
|
+
}
|
|
108368
|
+
function overlaps(a, b) {
|
|
108369
|
+
return Math.min(a.x + a.w, b.x + b.w) > Math.max(a.x, b.x) && Math.min(a.y + a.h, b.y + b.h) > Math.max(a.y, b.y);
|
|
108370
|
+
}
|
|
108371
|
+
function union(a, b) {
|
|
108372
|
+
const x = Math.min(a.x, b.x);
|
|
108373
|
+
const y = Math.min(a.y, b.y);
|
|
108374
|
+
return {
|
|
108375
|
+
x,
|
|
108376
|
+
y,
|
|
108377
|
+
w: Math.max(a.x + a.w, b.x + b.w) - x,
|
|
108378
|
+
h: Math.max(a.y + a.h, b.y + b.h) - y
|
|
108379
|
+
};
|
|
108380
|
+
}
|
|
108381
|
+
function clampToFrame(rect) {
|
|
108382
|
+
const x = Math.max(0, rect.x);
|
|
108383
|
+
const y = Math.max(0, rect.y);
|
|
108384
|
+
return {
|
|
108385
|
+
x,
|
|
108386
|
+
y,
|
|
108387
|
+
w: Math.min(1, rect.x + rect.w) - x,
|
|
108388
|
+
h: Math.min(1, rect.y + rect.h) - y
|
|
108389
|
+
};
|
|
108390
|
+
}
|
|
108391
|
+
/**
|
|
108392
|
+
* Merge transitively every seed whose padded box overlaps another, and answer
|
|
108393
|
+
* the union rectangles.
|
|
108394
|
+
*
|
|
108395
|
+
* Transitive on purpose: a person, the dog beside them and the dog's shadow
|
|
108396
|
+
* are three components of one subject, and cutting three crops for them spends
|
|
108397
|
+
* two inferences on pixels the first one already showed the detector.
|
|
108398
|
+
*/
|
|
108399
|
+
function mergeSeeds(seeds) {
|
|
108400
|
+
const merged = [];
|
|
108401
|
+
for (const seed of seeds) {
|
|
108402
|
+
let current = seed;
|
|
108403
|
+
let changed = true;
|
|
108404
|
+
while (changed) {
|
|
108405
|
+
changed = false;
|
|
108406
|
+
for (let i = merged.length - 1; i >= 0; i -= 1) {
|
|
108407
|
+
const other = merged[i];
|
|
108408
|
+
if (other === void 0 || !overlaps(current, other)) continue;
|
|
108409
|
+
current = union(current, other);
|
|
108410
|
+
merged.splice(i, 1);
|
|
108411
|
+
changed = true;
|
|
108412
|
+
}
|
|
108413
|
+
}
|
|
108414
|
+
merged.push(current);
|
|
108415
|
+
}
|
|
108416
|
+
return merged;
|
|
108417
|
+
}
|
|
108418
|
+
/**
|
|
108419
|
+
* The regions the measured recipe judges this frame on.
|
|
108420
|
+
*
|
|
108421
|
+
* Motion boxes padded {@link MOTION_CROP_MOTION_PAD}; every full-frame box
|
|
108422
|
+
* that intersects a RAW motion box padded {@link MOTION_CROP_TRACKED_PAD} and
|
|
108423
|
+
* added as a seed of its own; everything that overlaps merged; the result
|
|
108424
|
+
* clamped to the frame, ordered largest first and capped at
|
|
108425
|
+
* {@link MOTION_CROP_MAX_REGIONS}.
|
|
108426
|
+
*
|
|
108427
|
+
* There is deliberately no coverage gate and no size gate here. Those belong
|
|
108428
|
+
* to the shipped rule, and they are what makes it a rule about a subject
|
|
108429
|
+
* BESIDE a detected one; the measurement says the pass is worth running on the
|
|
108430
|
+
* detected subject's own region too.
|
|
108431
|
+
*/
|
|
108432
|
+
function planMotionCropRegions(input) {
|
|
108433
|
+
if (input.regions.length === 0) return [];
|
|
108434
|
+
const seeds = input.regions.map((r) => scaleAbout(r, MOTION_CROP_MOTION_PAD));
|
|
108435
|
+
for (const detection of input.detections) {
|
|
108436
|
+
if (!input.regions.some((region) => overlaps(detection, region))) continue;
|
|
108437
|
+
seeds.push(scaleAbout(detection, MOTION_CROP_TRACKED_PAD));
|
|
108438
|
+
}
|
|
108439
|
+
return mergeSeeds(seeds).map(clampToFrame).filter((r) => r.w > 0 && r.h > 0).toSorted((a, b) => normalizedArea(b) - normalizedArea(a)).slice(0, 3);
|
|
108440
|
+
}
|
|
108441
|
+
/**
|
|
108442
|
+
* The square the detector is fed for one measured region.
|
|
108443
|
+
*
|
|
108444
|
+
* "Grow to the detector's input aspect ratio without ever shrinking" is a
|
|
108445
|
+
* SQUARE here, and that is a fact about the production detector rather than a
|
|
108446
|
+
* simplification: `yolov9m-320-int8` takes 320×320, as does every hardware
|
|
108447
|
+
* default in the catalog.
|
|
108448
|
+
*
|
|
108449
|
+
* The side is the region's longer side, floored at
|
|
108450
|
+
* {@link RECOVERY_CROP_MIN_SIDE_PX} — the growth is what magnifies the subject
|
|
108451
|
+
* — and ceilinged at {@link RECOVERY_CROP_MAX_SIDE_PX}. The ceiling is NOT a
|
|
108452
|
+
* simplification either: at 1024 px the same 320 model scored the reference
|
|
108453
|
+
* dog 0.52–0.76, and at 1280 px lost it entirely
|
|
108454
|
+
* (`docs/benchmarks/pipeline-frame-model-eval.md`, case `miss-dog-615`). A
|
|
108455
|
+
* region longer than the ceiling is TILED along its longer axis, never zoomed
|
|
108456
|
+
* out.
|
|
108457
|
+
*/
|
|
108458
|
+
function motionCropsForRegion(region, native) {
|
|
108459
|
+
const widthPx = region.w * native.width;
|
|
108460
|
+
const heightPx = region.h * native.height;
|
|
108461
|
+
const longest = Math.max(widthPx, heightPx);
|
|
108462
|
+
const side = Math.round(Math.min(Math.max(longest, 640), 800));
|
|
108463
|
+
const centreX = (region.x + region.w / 2) * native.width;
|
|
108464
|
+
const centreY = (region.y + region.h / 2) * native.height;
|
|
108465
|
+
if (longest <= 800) return [squareAround(centreX, centreY, side, native)];
|
|
108466
|
+
const alongX = widthPx >= heightPx;
|
|
108467
|
+
const quarter = longest / 4;
|
|
108468
|
+
return [squareAround(alongX ? centreX - quarter : centreX, alongX ? centreY : centreY - quarter, side, native), squareAround(alongX ? centreX + quarter : centreX, alongX ? centreY : centreY + quarter, side, native)];
|
|
108469
|
+
}
|
|
108470
|
+
/** `true` when `inner` lies entirely inside `outer`. */
|
|
108471
|
+
function cropContains(outer, inner) {
|
|
108472
|
+
return inner.left >= outer.left && inner.top >= outer.top && inner.left + inner.side <= outer.left + outer.side && inner.top + inner.side <= outer.top + outer.side;
|
|
108473
|
+
}
|
|
108474
|
+
/**
|
|
108475
|
+
* The crops the measured recipe runs on this frame.
|
|
108476
|
+
*
|
|
108477
|
+
* Dedupe is by CONTAINMENT only. Two squares that merely overlap both run: the
|
|
108478
|
+
* pixels the second adds are pixels no other crop shows the detector, and the
|
|
108479
|
+
* fusion step downstream already refuses a duplicate BOX. Dropping a crop
|
|
108480
|
+
* because it overlapped would drop the subject sitting at its edge, which is
|
|
108481
|
+
* the whole population this pass exists for.
|
|
108482
|
+
*
|
|
108483
|
+
* A frame that cannot hold the smallest crop yields nothing: it is already
|
|
108484
|
+
* seen at scale.
|
|
108485
|
+
*/
|
|
108486
|
+
function planMotionCrops(input) {
|
|
108487
|
+
const { native } = input;
|
|
108488
|
+
if (Math.min(native.width, native.height) < 640) return [];
|
|
108489
|
+
const planned = [];
|
|
108490
|
+
for (const region of planMotionCropRegions(input)) for (const crop of motionCropsForRegion(region, native)) {
|
|
108491
|
+
if (planned.some((existing) => cropContains(existing, crop))) continue;
|
|
108492
|
+
planned.push(crop);
|
|
108493
|
+
}
|
|
108494
|
+
return planned;
|
|
108495
|
+
}
|
|
108496
|
+
//#endregion
|
|
107441
108497
|
//#region src/pipeline/root-face-crop.ts
|
|
107442
108498
|
/** Side of the square, as a multiple of the face box's longer side. */
|
|
107443
108499
|
var ROOT_FACE_REFINE_SCALE = 1.6;
|
|
@@ -109786,4 +110842,4 @@ function armRemovalReconcile(opts) {
|
|
|
109786
110842
|
return () => clearInterval(timer);
|
|
109787
110843
|
}
|
|
109788
110844
|
//#endregion
|
|
109789
|
-
export { ACCESSORY_LABEL, ACCESS_ROLES, ADMIN_SCOPE, AGENT_MDNS_QUERY_NAME, AGENT_MDNS_SERVICE_TYPE, AGENT_MDNS_TXT_KEYS, 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, 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, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_CHUNK_FORMATS, 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, AcceleratorKindSchema, AccessoriesStatusSchema, AccessoryKind, 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, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertEpisodePayloadSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, AnalyticsLtsSeriesSchema, AppFlowPurposeSchema, AppLoginPathSchema, AppPageLangSchema, AppleFmAvailabilitySchema, AppleFmUnavailableReasonSchema, ArchiveEntrySchema, ArchiveManifestSchema, ArchiveSqliteSnapshotSchema, ArchivedDebugNoteQueryInputSchema, ArchivedDebugNoteSchema, 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, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BASE_DEVICE_CAPS, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BATTERY_UNREACHABLE_AFTER_MS, BENCH_ROOT_STEP_ID, BIRTH_DECISION_DEFAULT_LIMIT, BOOT_RECOVERY_BACKOFF_MS, 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, 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_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, 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, CREDENTIAL_TOKEN_AUDIENCE, CREDENTIAL_TOKEN_KIND, CROP_SUPPLY_SOURCES, CROP_SUPPLY_STEP_IDS, CUSTOMIZATION_BLOCK_NAME_PREFIX, CalendarColorSchema, CalendarEntrySchema, CalendarEventSchema, CalendarInfoSchema, CalendarListEventsInputSchema, CalendarPreferenceEntrySchema, CalendarPreferencesSchema, CalendarSetPreferenceInputSchema, CalendarSourceKindSchema, 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, CompositionBindingSchema, CompositionBlockInputSchema, CompositionBlockStateSchema, CompositionCodeSourceSchema, CompositionCommandTargetSchema, CompositionCustomizationReadSchema, CompositionEventPlanSchema, CompositionExistingTargetSchema, CompositionExpressionSourceSchema, CompositionFeatureModeSchema, CompositionFeaturePlanSchema, CompositionFeatureSchema, CompositionFieldItemSchema, CompositionFieldKindSchema, CompositionFieldPlanSchema, CompositionFieldReadSchema, CompositionFieldRoleSchema, CompositionFieldSourceSchema, CompositionFieldStateKindSchema, CompositionFieldStateSchema, CompositionFieldsFeatureSchema, CompositionForwardCommandSchema, CompositionFromSourceSchema, CompositionGetReadSchema, CompositionGraphError, CompositionItemEntrySchema, CompositionListReadSchema, CompositionLiteralBindingSchema, CompositionNewTargetSchema, CompositionPassthroughFeatureSchema, CompositionProblemCodeSchema, CompositionProblemSchema, CompositionRunStatusSchema, CompositionSchema, CompositionSourceRefSchema, CompositionStateReadSchema, CompositionTargetSchema, CompositionUnavailableModeSchema, CompositionValidationSchema, CompositionViewSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableFormSchema, ConsumableItemSchema, ConsumableKindSchema, ConsumableLevelSchema, ConsumableRemainingSchema, ConsumableRemainingUnitSchema, 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, DATABASE_SNAPSHOT_PARTIAL_SUFFIX, DATABASE_SNAPSHOT_SUFFIX, DATABASE_SNAPSHOT_TIMEOUT_MS, DATAPLANE_SECRET_HEADER, DATA_STORE_DATABASES, DAYS_PER_WEEK, 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_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, DEFAULT_HEADROOM, 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_PLACEMENT_POLICY, DEFAULT_SHARE_SOURCE, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFAULT_TOKEN_EXPIRY, DEFAULT_VIEWER_SCOPE, DEFINITIVE_DEVICE_REFUSALS, 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_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, DOORBELL_RISE_DEBOUNCE_MS, DataStoreDatabaseSchema, EngineInfoSchema as DataStoreEngineInfoSchema, DatabaseSnapshotRequestSchema, DatabaseSnapshotResultSchema, DatabaseSnapshotTableSchema, DatabaseSnapshotTargetsSchema, DatabaseSnapshotWrittenSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclarationRefusedError, DeclareCollectionInputSchema, DeclareKindResultSchema, DeclaredDevices, DecodedAudioChunkSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionCatalogClassMapSchema, DetectionSourceSchema, DetectionSourcesSchema, 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, 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, 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, ExportFootageSubjectSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportSubjectSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, 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, FEEDER_EXAMPLE_ADDON_ID, FEEDER_EXAMPLE_HA_DEVICE_ID, FFMPEG_PATH_ENV, FIRST_LEVEL_MACRO_CLASSES, FRIGATE_PLUS_CLASS_FLOORS, FRIGATE_PLUS_TO_MACRO, FRIGATE_PLUS_UNMAPPED_LABELS, FRIGATE_STOCK_CLASS_FLOORS, FULL_IMAGE_BBOX, FailureContributionSchema, FailureCounters, FailureReasonCountSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FieldClaimModeSchema, FieldClaimSchema, FilterRequiredError, FloodStatusSchema, Fmp4BoxSplitter, ForeignSecretMarkerError, FrameHandleSchema, FrameInputSchema, FrameLazyCountersSchema, FrameLazyMetricsSchema, G711_SCALE_CORRECTION_DB, GasStatusSchema, GetLoggingSettingsInputSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, GridLayoutPatchSchema, GridLayoutViewSchema, 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_ITEM_CATALOG, HISTORY_NONE_CAPS, HISTORY_UNIT_LABELS, HOURS_PER_DAY, 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, HfModelResolutionSchema, HistoryPointSchema, HistoryResolutionEnum, HttpsLeafInfoSchema, HubAddressRoleSchema, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ICON_CATALOG_SOURCE, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, INFERENCE_DEVICE_EXCLUSION_REASONS, INVERTIBLE_CAPS, IconKeySchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, ImportModelBundleInputSchema, ImportModelBundleResultSchema, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, InvalidRecordError, KEYCHAIN_MAX_REFS_PER_CALL, KEYCHAIN_RESET_CONFIRMATION, KEYCHAIN_RESET_TRIGGER_ACTOR, KNOWN_CAP_NAMES, 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, LEGACY_READ_ONLY_CONFIG_KEY, 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_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_KEYS, MAX_REASONS_PER_KEY, MAX_REQUEUED_BUCKETS_PER_SERIES, MAX_SENSOR_TRIGGER_DEVICES, 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, MIN_SCRUBBED_LENGTH, MIN_SESSIONS_PER_DEVICE_RANGE, MODEL_FORMATS, MODEL_HOSTING, MODEL_PROVIDER_IDS, MOTION_CLOSE_AFTER_MS, MOTION_SOURCE_LABELS, MOTION_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelExtraFileSchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileKindEnum, MediaFileRefSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MediaPresenceOwnerKindSchema, MediaRelocateModeSchema, MeshLeafInfoSchema, MeshPeerSchema, MeshStatusSchema, 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, 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_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_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_TANK_SYSTEM_EVENT_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, 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, NotificationActionIconSchema, NotificationActionSchema, NotificationFormatSchema, NotificationSchema, NotifierStatusSchema, NumericSensorStatusSchema, OAUTH_LANDING_PATH, OAUTH_LANDING_REASONS, 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, 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, PIPELINE_ANALYTICS_CAP_NAME, PIPELINE_FLOW_CAPABILITY_NAMES, PIPELINE_OWNER_CAPABILITY_NAMES, PIPELINE_RAMP, 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, PackageUpdateSchema, PackageVersionInfoSchema, ParkRefusalSchema, ParkTrackFrameResultSchema, ParkedFrameKindSchema, ParkedTrackFrameSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PeerBytesTicketSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, PickStreamPreferencesSchema, PickStreamRequirementsSchema, PickedCamStreamSchema, PipelineAssignmentSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineModelFormatStatusSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, PlaceholderReasonSchema, PlacementDeviceStatsSchema, PlacementNodeStatsSchema, PlacementStatsInputSchema, PlacementStatsSchema, PlaintextSecretError, PolygonPointSchema, PoolMemoryWatchdog, PowerMeterStatusSchema, 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, 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, REDACTED_SECRET, REMOVAL_RECONCILE_INTERVAL_MS, REMOVED_MODEL_IDS, REMOVE_LEAF, RESERVED_BINDING_NAMES, RESERVED_COLLECTION_SOURCES, RESTORED_CAP_NAMES, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, REVALIDATE_AFTER_MS, 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, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, RUNTIME_TO_FORMAT, RawSecretMigrationInputSchema, RawSecretMigrationReportSchema, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadWindowBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, 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, 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, RootStepSupplySchema, RtpSourceSchema, RtspRestreamEntrySchema, RunnerBootCheckSchema, RunnerCameraConfigSchema, RunnerCameraDeviceUIFields, RunnerFrameSourceSchema, RunnerInferenceDeviceSchema, RunnerJumpStepProvisioningSchema, RunnerLocalLoadSchema, RunnerLocalMetricsSchema, RunnerRefusalSchema, 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, SERVER_NAME_MAX_LENGTH, SERVER_NAME_SETTING_KEY, 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, 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, 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, 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, TAXONOMY_COLORS, 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, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, 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, TransportPlaneCountsSchema, TransportPlaneSchema, TurnServerSchema, UNATTRIBUTED_BUCKET_KEY, UNIT_TABLE, USE_ROOT_MODEL_DEFAULTS, USE_ROOT_MODEL_SETTING_KEY, UnindexedFilterError, UninstallNodeOutcomeSchema, UninstallNodeResultSchema, UninstallPackageResultSchema, UnitConversionError, UnknownRecordKindError, UnstampedEventMediaCountSchema, UnstampedRowsSchema, UpdateBlockerSchema, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserScopeSchema, UserSummarySchema, VECTOR_INDEX_DIM_CONFLICT, 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, 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, actionsForBoundCaps, actionsForDevice, actionsForDeviceType, actionsForDevices, activateAlarmProfile, addonCatalogHref, addonPagesCapability, addonPagesSourceCapability, addonRoutesCapability, addonSettingsCapability, addonWidgetsCapability, addonWidgetsSourceCapability, addonsCapability, adminUiCapability, advertisedHubOrigins, airQualitySensorCapability, alarmDeviceBlocksArming, alarmDeviceSecureOnArm, alarmPanelCapability, alarmPatchLanded, alarmProfileById, alertEpisodeId, alertEpisodeKind, alertEpisodePayload, alertNodeId, alertsCapability, allDoActions, allowedSuppliedEffect, ambientLightSensorCapability, annotateClipsWithEventLabels, appFlowLocation, applyBlockingEdit, applyModeDelaysEdits, applyModeDeviceListEdit, applyModelBoundSettings, applyNonBlockingEdit, applySecureOnArmEdit, 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, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, bucketStartOf, buildAddonRouteProvider, buildAudioArgs, buildBenchStepTree, buildCapabilityLookup, buildDeviceAdminUrl, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, buildDoorbellCompositionFeature, buildEventKindDescriptor, buildFfmpegArgs, buildFrigateClassMap, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildRoleScopes, buildSecretRef, buildStreamParamsConfigSchema, buildSubjectPath, buildVideoArgs, buildViewerLink, builtCapabilityBlockers, buttonCapability, calendarEventLocalSpan, calendarEventOnLocalDay, calendarSourceCapability, calendarsCapability, cameraCredentialsCapability, cameraGridLayoutCapability, cameraOwnsMotionViaSensor, cameraPipelineConfigCapability, cameraScopedStepSettings, cameraSensorRefKey, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, canonicalIconKey, canonicalizeAppCallback, capabilityScopesOf, capacityForModel, capacitySessionsOf, carbonMonoxideCapability, cellsToRects, checkRoleAddress, claimedRequestOrigins, classifyBearerPrincipal, classifyCamerasForBenchmark, classifyInferenceHardware, classifyRetrainReview, classifySecretWrite, classifyStoreError, classifyStream, classifyStreams, clearKnownSecrets, clearModelBoundOverrides, clearModelBoundSetting, climateControlCapability, clipEventLabelDepsFromApi, clipExportFailure, clipExportFailureOf, clipLabelsForWindow, clipReasonHeaderValue, cloneAlarmSettings, cloneStatefulExpressionMemory, clusterModelSettingKey, clusterStepSettingFieldsFor, clusterStepSettingKey, codecIsAccepted, collectHydratedFieldEntries, collectHydratedFieldValues, collectKeychainStoredKeys, collectModelBoundKeys, collectSecretConfigKeys, collectSecretLeaves, collectSecretMarkerRefs, collectZodSecretPaths, colorCapability, colorForKind, commitWatchdogRestart, compareToTarget, compileExpression, compileExpressionSafe, composeSwitchedOff, composedDeviceRef, composedDeviceStableId, composerCapability, compositionEdges, compositionFeatureEnabled, compositionFieldKey, compositionItemFieldPath, compositionReadKey, compositionSliceKey, compositionSourceKey, compositionSourceRefs, computeCapacityShares, conditionDepth, conditionExclusionReason, conditionVisibleForKind, connectionTestCapability, connectivityCapability, consumableFormOf, consumableKindOf, consumableLowPercentOf, consumablesCapability, contactCapability, containingParentIndex, controlCapability, convertPresetFeature, convertUnit, coralUsableUnits, coreBlockAddonId, coreBlockComposition, coreBlockIdFromAddonId, coreBlockSourceKind, coreBlocksCapability, cosineSimilarity, countConditionLeaves, coverCapability, createAlarmProfile, createDeviceExtensionProvider, createDeviceProxy, createDurableState, createEvent, createEventBusSliceSource, createExpressionScope, createHwAccelCache, createLazyTrpcSource, createLogChannelsProvider, createMirrorSource, createRecordsAccess, createRuntimeStateBridge, createSecretsAccess, createSliceHandle, createStatefulExpressionMemory, createSystemProxy, customAction, customModelRegistryCapability, dataStoreProviderCapability, databaseSnapshotCapability, dayNightCapability, dayOfWeekToIndex, declarationOwnerNodeId, declarationsOf, declareLogChannel, decodeVectorBase64, decoderCapability, defaultDeliveryForSection, defaultDeviceFor, defineCustomActions, defineEntryKind, defineExtensionSlotProvider, defineRecordKinds, dehydrateConfigField, dehydrateSchema, deleteAlarmProfile, deriveBatteryPresence, deriveCameraSwitches, deriveDetailCropRect, deriveMaskSupplies, derivePostTriggeredAction, deriveRecordingMode, deriveRootFaceRefineRect, deriveRootSupplies, describeComposableCaps, describeCustomActions, describeModelVariant, describeOnboardClamp, describeOnboardRefusal, describeRootSupplies, describeRootSupply, describeStateField, describeSystemEventDeliveryProblem, describeSystemEventFamilyProblem, describeTopLevelStateFields, detectAccessRole, detectionPipelineCapability, deviceAdminLinkCapability, deviceAdoptionCapability, deviceAttentionKind, deviceBackendToFormat, deviceCredentialsCapability, deviceCustomAction, deviceDiscoveryCapability, deviceDoFamily, deviceExportCapability, deviceExtensionCapability, deviceHistoryCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceRefusalFromMessage, deviceRemovalHookCapability, deviceSelectorMatches, deviceStateCapability, deviceStatusCapability, diffStepSettings, disarmRoseMemory, dishwasherCapability, doActionSelectValue, dominantClipLabels, doorbellCapability, doorbellFeatureSources, droppedConditionsForKind, edgetpuDelegateDevice, effectiveStepSettings, egressTranscodeSharingKey, egressTransportFromRequest, electByShare, electByShareWithAffinity, eligibleUnderBenchmark, embeddingEncoderCapability, embeddingModelFailedError, embeddingModelFailedOf, embeddingRefusalOf, embeddingRequirementsFailedError, embeddingRequirementsUnavailableError, emitDownForOwnedCaps, emitReadiness, emitsCollectionSelector, encodeProfileFromStreamShape, encodeVectorBase64, ensureAlarmProfiles, entryBody, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, estimateNodeBenchmarkDurationMs, evaluateAst, evaluateCompositionField, evaluateCount, evaluateExpressionSource, evaluatePoolMemory, evaluateRose, evaluateSensorEdge, evaluateSensorLevelEdge, evaluateStatefulExpressionCall, evaluateZoneRules, event, eventEmitterCapability, eventKindLabel, eventOverlapsClipWindow, evictionPolicyForMode, evictionPolicyOfLocation, expandAudioChunkToF32le, expandCapMethods, expandContainer, expandSystemEventClasses, exportSubjectOf, exposeBlockDevices, expressionContainsBuiltinCall, extensionSlotRef, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, failureContributionCapability, failureRate, fanControlCapability, featureFieldEntries, featureOfRole, featureProbeCapability, featureSources, feederCustomizationExample, feederExampleSources, ffmpegRate, fieldReads, fieldUnitKeys, fieldsPinnedAtValueBelow, filesystemBrowseCapability, findCandidateCycles, findCompositionCycles, findTimezone, floodCapability, foldSnapshotByFunction, foreignCapacityCells, forgetKnownSecret, formatDeviceRevoker, formatForRuntime, formatMediaOwnerKey, formatMinutes, formatParkedFor, formatSecretScope, freshResults, frigateDefaultClassFloors, frigateLabelFields, gasCapability, gbToBytes, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getLogChannelRegistry, getTaxonomyEntry, gifDeriveSpeed, gifFilterComplex, gifFromMp4Args, globalSecretScope, grantRowsOf, hasModelBoundOverrides, hasMotionTrigger, hasUrlScheme, heatingValveCapability, hfModelUrl, historyFieldsFor, historyItemFieldPath, htmlToText, hubAddressHostname, hubMotionNativeProvider, humidifierCapability, humiditySensorCapability, hydrateSchema, iconCategoryLabel, iconEntry, iconsInCategory, imageCapability, imageModesForKind, imageSettingsCapability, inferExpressionKinds, inferModelProvider, initialPoolMemoryState, integrationsCapability, intercomCapability, interpolate, interpretStoredClusterModel, invalidClusterStepModelEntries, invertPresetFeature, invocationFromEncodeProfile, isAgentOnlyPlacement, isAlarmControllableCap, isAlertEpisodeOpen, isAlertEpisodeSeverity, isAppLinkBase, isAppStartRefusal, 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, isHeldBackTemplateVar, isIconKey, isIsolatedBuiltin, isKeychainStoredField, isKnownTemplateVar, isLabelSupplyStepId, isLocationEnabled, isMediaOwnerType, isModelScopedStepSettingKey, isNode, isOauthLandingReason, isObjectInput, isOccupancyRule, isOwnerOnlyEventCategory, isRemovedModelId, isRestoredCap, isRetiredClearKey, isRootSuppliableStepId, isSameAddonId, isScheduleActive, isSecretClear, isSecretConfigField, isSecretFieldView, isSecretMarker, isSecretMarkerLike, isSecretRef, isSecretRefOwnedBy, isSingleHubAddressRole, isSoftwareDecode, isSourceCap, isStateLabelKey, isStatefulBuiltin, isStorageLocationMode, isSystemDelivery, isSystemEventFamily, isSystemEventRecoveryKind, isSystemEventSummaryRule, isSystemRuleKind, 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, markdownToHtmlLite, markdownToText, maskUrlCredentials, matchDoAction, mayReadLocation, mayWriteToLocation, measuredCapacityFromResults, measuredDetectorCells, mediaPlayerCapability, memoizePinnedFfmpeg, mergeClipLabels, mergeSecretStatePaths, mergeSettingsBags, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, methodRoleOf, metricsProviderCapability, migrateLegacyDeviceSignalConfig, minutesToTimeOfDay, modeMayRead, modeMayWrite, modelBindingKey, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, modelScopedStepSettingKeys, motionCapability, motionDetectionCapability, motionSourceLabel, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, navigationCapability, ncAlarmSystemDefaultSettings, ncMediaPolicyError, networkAccessCapability, networkLinkCapability, networkQualityCapability, nodeBenchmarkRefusals, nodeCertificatesCapability, nodePickerItems, nodePin, nodesCapability, normalizeAddonInitResult, normalizeAudioLabel, normalizeCoreBlockWrite, normalizeNcMediaPolicy, normalizeNodeId, normalizeOrigin, normalizeSecretOwner, normalizeTokenScopes, normalizeUnit, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, oauthLandingUrl, objectInputDeclaresAddonId, objectInputDeclaresRequiredDeviceId, occupancyScope, oidcConnectionsCapability, omitTransientConfig, optionalAncestors, optionalMethod, osdCapability, osdManagerCapability, overlayClusterStepSettings, packagePickerItems, parseAdminBase, parseAlertEpisodePayload, parseAppAuthCallback, parseAppFlowRequest, parseAppPageLang, parseCameraStreamConfig, parseCredentialScopes, parseDeviceEnrollmentLink, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseMediaOwnerKey, parseOauthLandingFragment, parseOccupancyScope, parseProcStatus, parseProfileBrokerId, parseRetrainRevisionConflict, parseRuleSection, parseSecretPath, parseSecretRef, parseSecretStatePath, parseSessionPlacementPolicy, parseShareSource, parseStreamParamsFormPatch, parseTrainingEventLine, patchAudio, petFeederCapability, pickAccessoryControl, pickAppLinkHub, pickClusterStepModels, pickClusterStepSettings, pickDetailCropConvention, pickFaceRescoreIntervalMinutes, pickInvalidClusterStepModels, pickNativeLeaseOverride, pickPreferredRtspEntry, pickRequestOrigin, pickRestartCandidate, pickVideoEncoder, pickerForCondition, pickerForRuleClasses, pinUnderBenchmark, pipelineAnalyticsCapability, pipelineExecutorCapability, pipelineOrchestratorCapability, pipelineRunnerCapability, planComposition, planCompositionEvents, planItems, plateGalleryCapability, platformProbeCapability, poolMemoryThreshold, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, projectSubjectPath, providerMotionEvent, ptzAutotrackCapability, ptzCapability, publicEventCategories, pythonScriptForBackend, rankStreams, readClusterStepModels, readClusterStepSettings, readDetailCropConvention, readDeviceStateFrom, readErrorI18n, readFaceRescoreIntervalMinutes, readHubMotionDetected, readHubMotionStatus, readMotionTriggeredBy, readNativeLeaseOverride, readNodePin, readTimelapseGeneratedAt, readUseRootModel, readinessKey, rebootCapability, recommendNode, reconcileBlockDevices, reconcileRemovedDevices, recordArrayItemPath, recordEntriesCapability, recordSecretCollection, recordSecretRef, recordingArchiveCapability, recordingCapability, recordingExportCapability, recordingOnboardCapability, recordingSignalCapability, recordsCapability, recordsErrorFromMessage, rectsToCells, reducePoints, registerKnownSecret, renameAlarmProfile, renderVocabPhrase, replacedFieldKeys, requestMountPrefix, requiredTopLevelKeys, requiresPython, reservedSourceOwner, resetPoolBaseline, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAppConnections, resolveBucketMs, resolveCapMount, resolveClipSearchMinScore, resolveClusterStepModelId, resolveContainerPrimaryChild, resolveCoreBlockEntry, resolveCoreBlockFiles, resolveCreateExportSubject, resolveDeviceControlKind, resolveDeviceProfile, resolveEffectiveShares, resolveEgressDecodeHwAccel, resolveExportProfiles, resolveFormat, resolveHubAddressRoles, resolveHydratedFieldValue, resolveIconKey, resolveInternalAddress, resolveLocationMode, resolveMethodAuth, resolveMethodRole, resolveModeDelays, resolveModeNotifyPolicy, resolveModelBoundSetting, resolveMutate, resolveNcMediaImage, resolveNotificationTapAddress, resolvePoolMemoryPolicy, resolvePublicEndpoint, resolveRecordingProfiles, resolveRootSupply, resolveRunnerId, resolveSecretMarkers, resolveSecretViewsIn, resolveServerName, resolveStreamMaps, resolveVariantModelId, resolveViewableDeviceIds, resultCellKey, resultStandings, retrainBoxIou, retrainRevisionConflictMessage, roleSpec, roomCompositionExample, rootSuppliesOf, rootSupplyServes, ruleAutoTriggersAlarm, ruleBelongsToAlarm, ruleDeviceCompatCapNames, ruleDeviceCompatCapQueries, ruleEditorSectionsForKind, ruleGatedOnArmedState, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, ruleTriggerZoneIds, runInferenceStep, runtimeDevices, runtimeStatePolicyFor, sameDoFamily, sceneMonitorCapability, scheduleForSendTimes, schemaDeclaresAnyField, scopeInherits, scopeKey, scopesAllowAddon, scopesAllowAddonRoutes, scopesAllowDeviceCap, scopesAllowOwnPreferences, scopesGrantAdmin, scoreRuntimes, scriptRunnerCapability, scrubKnownSecrets, searchIcons, secretArrayPrefixes, secretTreeFromPaths, secretTreeFromSchema, secureActuationFor, selectAppConnectionEndpoints, selectAssignedProfileSlots, sendTimesForEditor, sendTimesOfSchedule, sensorRaisedOf, sensorTransitionNeverFires, sensorTransitionOffered, servedTemplateVars, serverManagementCapability, sessionsOfDeviceCell, setByPath, settingValuesEqual, settingsBelow, settingsStoreCapability, shareViewGrantOf, shortHostname, shortSecretRefHash, signalPercentFromBars, signalPercentFromRssi, siteZoneKey, sleep, sleepCancellable, sliceActiveValue, sliceChangedAt, smokeCapability, smtpProviderCapability, snapshotCapability, splitTranslationRef, ssoBridgeCapability, startMoverUnderClearance, startReachabilityPoll, stateLabel, stateVocabularyFor, stepModelRunsOnFormat, stepSettingSource, storageAdminCapability, storageCapability, storageEvictableCapability, storageMigrationCapability, storageOccupancyCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, streamSignalsCapability, stripRetiredBandPreBufferSec, strippedOfLegacyReadOnly, subKindsOf, subjectHasPath, subjectPathSampleFromBox, subjectPathSvgPoints, summarisePrivacyAudio, summarizeEffectiveScope, summarizeReview, supplyFor, supportedRuntimes, switchCapability, switchedOffIds, syncActiveAlarmProfileSettings, synthesizeSourceInfo, systemCapability, systemEventClassKinds, systemEventClassOf, systemEventClassesFor, systemEventDeliveryProblems, systemEventFamilyOf, systemEventFamilyProblems, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, systemEventKindNamesOf, systemEventKindsOfFamily, systemEventSummaryScheduleOf, systemEventSummarySplitOf, systemFamilyOfKind, systemRuleKindOf, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, templateCarriesSummary, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, templateVarsFor, terminalSessionCapability, textToHtml, timeOfDayToMinutes, toAppLinkHubOrigin, toDeviceSummary, toExpressionValue, toNodeId, toPercentShares, toSecretFieldView, toStreamSourceEntry, toastCapability, toggleAudioLabel, tokenize, trainingCapability, trainingProviderCapability, transcodeBody, transformSecretWrite, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, unreachableExtensionSlotRow, unwrapSchema, updateCapability, userError, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateComposition, validateCustomAddress, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorIndexDimConflictError, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerAdmitsDevice, viewerHoldsRole, viewerLinkBaseOf, viewerScopeOf, viewerUiCapability, actionsForDevice$1 as vocabularyActionsForDevice, triggersForDevice as vocabularyTriggersForDevice, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, weeklyMaskIndex, weeklyMaskIsUniform, weeklyMaskToWindows, widenDeviceConstructor, windowsToWeeklyMask, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, withClipEventLabels, withFieldFrom, withLocationMode, withSystemEventClasses, withoutCallerStamp, withoutField, writeModelBoundSetting, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
|
|
110845
|
+
export { ACCESSORY_LABEL, ACCESS_ROLES, ADMIN_SCOPE, AGENT_MDNS_QUERY_NAME, AGENT_MDNS_SERVICE_TYPE, AGENT_MDNS_TXT_KEYS, 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, 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, AUDIO_ANALYSIS_CAP_NAME, AUDIO_BACKEND_CHOICES, AUDIO_CHUNK_FORMATS, 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, 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, AirQualitySensorStatusSchema, AlarmArmModeSchema, AlarmPanelStatusSchema, AlarmStateSchema, AlertEpisodePayloadSchema, AlertSchema, AlertSeveritySchema, AlertSourceSchema, AlertStatusSchema, AmbientLightSensorStatusSchema, AnalyticsLtsSeriesSchema, AppFlowPurposeSchema, AppLoginPathSchema, AppPageLangSchema, AppleFmAvailabilitySchema, AppleFmUnavailableReasonSchema, ArchiveEntrySchema, ArchiveManifestSchema, ArchiveSqliteSnapshotSchema, ArchivedDebugNoteQueryInputSchema, ArchivedDebugNoteSchema, 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, AutomationConditionOperatorSchema, AutomationConditionSchema, AutomationControlStatusSchema, AutomationRecipeSchema, AutomationTriggerSchema, AvailableIntegrationTypeSchema, BASE_DEVICE_CAPS, BASE_LIVE_EGRESS_PROFILE, BATTERY_DEVICE_PROFILE, BATTERY_UNREACHABLE_AFTER_MS, BENCH_ROOT_STEP_ID, BIRTH_DECISION_DEFAULT_LIMIT, BOOT_RECOVERY_BACKOFF_MS, 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, 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_NAMES_WITH_STATUS, CAP_NODE_PIN_CONTEXT_KEY, CAP_PROVIDER_KIND_MAP, 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, 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, CompositionBindingSchema, CompositionBlockInputSchema, CompositionBlockStateSchema, CompositionCodeSourceSchema, CompositionCommandTargetSchema, CompositionCustomizationReadSchema, CompositionEventPlanSchema, CompositionExistingTargetSchema, CompositionExpressionSourceSchema, CompositionFeatureModeSchema, CompositionFeaturePlanSchema, CompositionFeatureSchema, CompositionFieldItemSchema, CompositionFieldKindSchema, CompositionFieldPlanSchema, CompositionFieldReadSchema, CompositionFieldRoleSchema, CompositionFieldSourceSchema, CompositionFieldStateKindSchema, CompositionFieldStateSchema, CompositionFieldsFeatureSchema, CompositionForwardCommandSchema, CompositionFromSourceSchema, CompositionGetReadSchema, CompositionGraphError, CompositionItemEntrySchema, CompositionListReadSchema, CompositionLiteralBindingSchema, CompositionNewTargetSchema, CompositionPassthroughFeatureSchema, CompositionProblemCodeSchema, CompositionProblemSchema, CompositionRunStatusSchema, CompositionSchema, CompositionSourceRefSchema, CompositionStateReadSchema, CompositionTargetSchema, CompositionUnavailableModeSchema, CompositionValidationSchema, CompositionViewSchema, ConfigEntrySchema, ConfigSectionWithValuesSchema, ConfigTabDeclarationSchema, ConnectionTestDescriptorSchema, ConnectionTestInputSchema, ConnectionTestOutcomeSchema, ConnectivityStatusSchema, ConsumableFormSchema, ConsumableItemSchema, ConsumableKindSchema, ConsumableLevelSchema, ConsumableRemainingSchema, ConsumableRemainingUnitSchema, 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, DATABASE_SNAPSHOT_PARTIAL_SUFFIX, DATABASE_SNAPSHOT_SUFFIX, DATABASE_SNAPSHOT_TIMEOUT_MS, DATAPLANE_SECRET_HEADER, DATA_STORE_DATABASES, DAYS_PER_WEEK, 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_EVENTS_BAND_BUFFER_SEC, DEFAULT_EVENT_COLOR, DEFAULT_FEATURES, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, DEFAULT_HEADROOM, 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_PLACEMENT_POLICY, DEFAULT_SHARE_SOURCE, DEFAULT_TIMELAPSE_PREVIEW_TEXT, DEFAULT_TOKEN_EXPIRY, DEFAULT_VIEWER_SCOPE, DEFINITIVE_DEVICE_REFUSALS, 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_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, DOORBELL_RISE_DEBOUNCE_MS, DataStoreDatabaseSchema, EngineInfoSchema as DataStoreEngineInfoSchema, DatabaseSnapshotRequestSchema, DatabaseSnapshotResultSchema, DatabaseSnapshotTableSchema, DatabaseSnapshotTargetsSchema, DatabaseSnapshotWrittenSchema, DayNightModeSchema, DayNightOptionsSchema, DayNightSettingsPatchSchema, DayNightStatusSchema, DeclarationRefusedError, DeclareCollectionInputSchema, DeclareKindResultSchema, DeclaredDevices, DecodedAudioChunkSchema, DeleteIntegrationResultSchema, DetailCropConventionSchema, DetectionCatalogClassMapSchema, DetectionSourceSchema, DetectionSourcesSchema, 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, 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, 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, ExportFootageSubjectSchema, ExportOptionsSchema, ExportRecordSchema, ExportSetupFieldSchema, ExportSetupSchema, ExportSpeedSchema, ExportStateSchema, ExportSubjectSchema, ExportTimelapseSchema, ExposedDeviceSchema, ExposureModeSchema, ExpressionBindingSourceSchema, ExpressionEvalError, ExpressionFieldBindingSchema, ExpressionGlobalBindingSchema, 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, FEEDER_EXAMPLE_ADDON_ID, FEEDER_EXAMPLE_HA_DEVICE_ID, FFMPEG_PATH_ENV, FIRST_LEVEL_MACRO_CLASSES, FRIGATE_PLUS_CLASS_FLOORS, FRIGATE_PLUS_TO_MACRO, FRIGATE_PLUS_UNMAPPED_LABELS, FRIGATE_STOCK_CLASS_FLOORS, FULL_IMAGE_BBOX, FailureContributionSchema, FailureCounters, FailureReasonCountSchema, FanControlStatusSchema, FanDirectionSchema, FeatureManifestSchema, FeatureProbeStatusSchema, FieldClaimModeSchema, FieldClaimSchema, FilterRequiredError, FloodStatusSchema, Fmp4BoxSplitter, ForeignSecretMarkerError, FrameHandleSchema, FrameInputSchema, FrameLazyCountersSchema, FrameLazyMetricsSchema, G711_SCALE_CORRECTION_DB, GasStatusSchema, GetLoggingSettingsInputSchema, GetStreamWithCodecInputSchema, GlobalMetricsSchema, GridLayoutPatchSchema, GridLayoutViewSchema, 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_ITEM_CATALOG, HISTORY_NONE_CAPS, HISTORY_UNIT_LABELS, HOURS_PER_DAY, 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, HfModelResolutionSchema, HistoryPointSchema, HistoryResolutionEnum, HttpsLeafInfoSchema, HubAddressRoleSchema, HumidifierStatusSchema, HumiditySensorStatusSchema, HvacModeSchema, ICON_CATALOG_SOURCE, ICON_CATEGORIES, ICON_ENTRIES, ICON_KEYS, ICON_VIEWER_MODULES, INFERENCE_DEVICE_EXCLUSION_REASONS, INVERTIBLE_CAPS, IconKeySchema, ImageContractSchema, ImageContractStateSchema, ImageRotateSchema, ImageSettingsOptionsSchema, ImageSettingsPatchSchema, ImageSettingsStatusSchema, ImageStatusSchema, ImportModelBundleInputSchema, ImportModelBundleResultSchema, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, InstalledPackageSchema, IntegrationLiteSchema, IntegrationWithStateSchema, IntercomAbilitySchema, IntercomStatusSchema, InvalidRecordError, KEYCHAIN_MAX_REFS_PER_CALL, KEYCHAIN_RESET_CONFIRMATION, KEYCHAIN_RESET_TRIGGER_ACTOR, KNOWN_CAP_NAMES, 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, LEGACY_READ_ONLY_CONFIG_KEY, 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_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_KEYS, MAX_REASONS_PER_KEY, MAX_REQUEUED_BUCKETS_PER_SERIES, MAX_SENSOR_TRIGGER_DEVICES, 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, 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_TRIGGER_FEATURE, ManagedModelCatalogEntrySchema, ManagedModelExtraFileSchema, ManagedModelRefSchema, ManagedRuntimeConfigSchema, MaskGridDimsSchema, MaskGridShapeSchema, MaskLineShapeSchema, MaskPointSchema, MaskPolygonShapeSchema, MaskPolygonVerticesSchema, MaskRectShapeSchema, MaskShapeKindSchema, MaskShapeSchema, MediaFileInfoSchema, MediaFileKindEnum, MediaFileRefSchema, MediaFileSchema, MediaPlayerRepeatSchema, MediaPlayerStateSchema, MediaPlayerStatusSchema, MediaPresenceOwnerKindSchema, MediaRelocateModeSchema, MeshLeafInfoSchema, MeshPeerSchema, MeshStatusSchema, 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, 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, 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, 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, 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, ParkRefusalSchema, ParkTrackFrameResultSchema, ParkedFrameKindSchema, ParkedTrackFrameSchema, PasskeyLoginMethodSchema, PasskeySummarySchema, PcmSampleFormatSchema, PeerBytesTicketSchema, PerScopeBreakdownSchema, PetFeederStatusSchema, 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, 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, REMOVAL_RECONCILE_INTERVAL_MS, REMOVED_MODEL_IDS, REMOVE_LEAF, RESERVED_BINDING_NAMES, RESERVED_COLLECTION_SOURCES, RESTORED_CAP_NAMES, RETRAIN_REVIEW_ADJUSTED_IOU, RETRAIN_REVIEW_MATCH_IOU, RETRAIN_REVIEW_STATUSES, RETRAIN_REVISION_CONFLICT, REVALIDATE_AFTER_MS, 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, RUNTIME_DEFAULTS, RUNTIME_STATE_POLICY, RUNTIME_STATE_REFRESH_MISS_COOLDOWN_MS, RUNTIME_TO_FORMAT, RawSecretMigrationInputSchema, RawSecretMigrationReportSchema, RawStateResultSchema, ReadGopBytesResultSchema, ReadSegmentBytesResultSchema, ReadWindowBytesResultSchema, ReadinessRegistry, ReadinessTimeoutError, 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, 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, RootStepSupplySchema, RtpSourceSchema, RtspRestreamEntrySchema, 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, SERVER_NAME_MAX_LENGTH, SERVER_NAME_SETTING_KEY, 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, 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, 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, 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, TAXONOMY_COLORS, 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, TerminalInstanceInfoSchema, TerminalLegacyCameraSchema, TerminalOutputBatchSchema, TerminalOutputEventSchema, TerminalProfileInfoSchema, TerminalSessionInfoSchema, TestConnectionResultSchema$1 as TestConnectionResultSchema, TestConnectionStatusEnum, TestResultSchema, TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, ToastSchema, TokenScopeSchema, TopologyNodeSchema, TopologyProcessSchema, TopologyServiceSchema, TrackCascadeCountsSchema, TrackEnvelopeSchema, TrackFlagsPatchSchema, TrackFlagsSchema, 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, TransportPlaneCountsSchema, TransportPlaneSchema, TurnServerSchema, UNATTRIBUTED_BUCKET_KEY, UNIT_TABLE, USE_ROOT_MODEL_DEFAULTS, USE_ROOT_MODEL_SETTING_KEY, UnindexedFilterError, UninstallNodeOutcomeSchema, UninstallNodeResultSchema, UninstallPackageResultSchema, UnitConversionError, UnknownRecordKindError, UnstampedEventMediaCountSchema, UnstampedRowsSchema, UpdateBlockerSchema, UpdateIntegrationInputSchema, UpdateStatusSchema, UpdateUserInputSchema, UserRecordSchema, UserScopeSchema, UserSummarySchema, VECTOR_INDEX_DIM_CONFLICT, 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, 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, actionsForBoundCaps, actionsForDevice, actionsForDeviceType, actionsForDevices, activateAlarmProfile, addonCatalogHref, 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, applyBlockingEdit, applyCropClassFloors, applyModeDelaysEdits, applyModeDeviceListEdit, applyModelBoundSettings, applyNonBlockingEdit, applySecureOnArmEdit, 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, batteryCapability, bestLocationMatch, binaryCapability, bindAddonActions, brightnessCapability, brokerCapability, bucketStartOf, buildAddonRouteProvider, buildAudioArgs, buildBenchStepTree, buildCapabilityLookup, buildDeviceAdminUrl, buildDeviceEnrollmentLink, buildDeviceSignatureMessage, buildDoorbellCompositionFeature, buildEventKindDescriptor, buildFfmpegArgs, buildFrigateClassMap, buildInputArgs, buildModelVariantGroups, buildNcTaxonomy, buildRoleScopes, buildSecretRef, buildStreamParamsConfigSchema, buildSubjectPath, buildVideoArgs, buildViewerLink, builtCapabilityBlockers, buttonCapability, calendarEventLocalSpan, calendarEventOnLocalDay, calendarSourceCapability, calendarsCapability, cameraCredentialsCapability, cameraGridLayoutCapability, cameraOwnsMotionViaSensor, cameraPipelineConfigCapability, cameraScopedStepSettings, cameraSensorRefKey, cameraStreamsCapability, canConvertUnit, canonicalEgressPlan, canonicalIconKey, canonicalizeAppCallback, capabilityScopesOf, capacityForModel, capacitySessionsOf, carbonMonoxideCapability, cellsToRects, checkRoleAddress, claimedRequestOrigins, classifyBearerPrincipal, classifyCamerasForBenchmark, classifyInferenceHardware, classifyRetrainReview, classifySecretWrite, classifyStoreError, classifyStream, classifyStreams, clearKnownSecrets, clearModelBoundOverrides, clearModelBoundSetting, climateControlCapability, clipEventLabelDepsFromApi, clipExportFailure, clipExportFailureOf, clipLabelsForWindow, clipReasonHeaderValue, cloneAlarmSettings, cloneStatefulExpressionMemory, clusterModelSettingKey, clusterStepSettingFieldsFor, clusterStepSettingKey, codecIsAccepted, collectHydratedFieldEntries, collectHydratedFieldValues, collectKeychainStoredKeys, collectModelBoundKeys, collectSecretConfigKeys, collectSecretLeaves, collectSecretMarkerRefs, collectZodSecretPaths, colorCapability, colorForKind, commitWatchdogRestart, compareToTarget, compileExpression, compileExpressionSafe, composeSwitchedOff, composedDeviceRef, composedDeviceStableId, composerCapability, compositionEdges, compositionFeatureEnabled, compositionFieldKey, compositionItemFieldPath, compositionReadKey, compositionSliceKey, compositionSourceKey, compositionSourceRefs, computeCapacityShares, computeScores, conditionDepth, conditionExclusionReason, conditionVisibleForKind, connectionTestCapability, connectivityCapability, consumableFormOf, consumableKindOf, consumableLowPercentOf, consumablesCapability, contactCapability, containingParentIndex, controlCapability, convertPresetFeature, convertUnit, 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, customModelRegistryCapability, dataStoreProviderCapability, databaseSnapshotCapability, dayNightCapability, dayOfWeekToIndex, declarationOwnerNodeId, declarationsOf, declareLogChannel, decodeVectorBase64, decoderCapability, defaultDeliveryForSection, defaultDeviceFor, defineCustomActions, defineEntryKind, defineExtensionSlotProvider, defineRecordKinds, dehydrateConfigField, dehydrateSchema, deleteAlarmProfile, deriveBatteryPresence, deriveCameraSwitches, deriveDetailCropRect, deriveMaskSupplies, derivePostTriggeredAction, deriveRecordingMode, deriveRootFaceRefineRect, deriveRootSupplies, describeComposableCaps, describeCustomActions, describeModelVariant, describeOnboardClamp, describeOnboardRefusal, describeRootSupplies, describeRootSupply, describeStateField, describeSystemEventDeliveryProblem, describeSystemEventFamilyProblem, describeTopLevelStateFields, detectAccessRole, detectionPipelineCapability, deviceAdminLinkCapability, deviceAdoptionCapability, deviceAttentionKind, deviceBackendToFormat, deviceCredentialsCapability, deviceCustomAction, deviceDiscoveryCapability, deviceDoFamily, deviceExportCapability, deviceExtensionCapability, deviceHistoryCapability, deviceManagerCapability, deviceMatchesProfile, deviceOpsCapability, deviceProviderCapability, deviceRefusalFromMessage, deviceRemovalHookCapability, deviceSelectorMatches, deviceStateCapability, deviceStatusCapability, diffStepSettings, disarmRoseMemory, dishwasherCapability, doActionSelectValue, dominantClipLabels, doorbellCapability, doorbellFeatureSources, droppedConditionsForKind, edgetpuDelegateDevice, effectiveStepSettings, egressTranscodeSharingKey, egressTransportFromRequest, electByShare, electByShareWithAffinity, eligibleUnderBenchmark, embeddingEncoderCapability, embeddingModelFailedError, embeddingModelFailedOf, embeddingRefusalOf, embeddingRequirementsFailedError, embeddingRequirementsUnavailableError, emitDownForOwnedCaps, emitReadiness, emitsCollectionSelector, encodeProfileFromStreamShape, encodeVectorBase64, ensureAlarmProfiles, entryBody, enumSensorCapability, enumerateInferenceDevices, enumerateItemArrayFields, enumerateSchemaFields, errMsg, estimateNodeBenchmarkDurationMs, evaluateAst, evaluateCompositionField, evaluateCount, evaluateExpressionSource, evaluatePoolMemory, evaluateRose, evaluateSensorEdge, evaluateSensorLevelEdge, evaluateStatefulExpressionCall, evaluateZoneRules, event, eventEmitterCapability, eventKindLabel, eventOverlapsClipWindow, evictionPolicyForMode, evictionPolicyOfLocation, expandAudioChunkToF32le, expandCapMethods, expandContainer, expandSystemEventClasses, exportSubjectOf, exposeBlockDevices, expressionContainsBuiltinCall, extensionSlotRef, extractNestedAddonId, extractSourceInfoFromMetadata, faceGalleryCapability, failureContributionCapability, failureRate, fanControlCapability, featureFieldEntries, featureOfRole, featureProbeCapability, featureSources, feederCustomizationExample, feederExampleSources, ffmpegRate, fieldReads, fieldUnitKeys, fieldsPinnedAtValueBelow, filesystemBrowseCapability, findCandidateCycles, findCompositionCycles, findTimezone, floodCapability, foldSnapshotByFunction, foreignCapacityCells, forgetKnownSecret, formatDeviceRevoker, formatForRuntime, formatMediaOwnerKey, formatMinutes, formatParkedFor, formatSecretScope, freshResults, frigateDefaultClassFloors, frigateLabelFields, fuseRecoveredDetections, gasCapability, gbToBytes, generateAutomationBlock, getAudioMacroClassIds, getByPath, getCapsByProviderKind, getLogChannelRegistry, getTaxonomyEntry, gifDeriveSpeed, gifFilterComplex, gifFromMp4Args, globalSecretScope, grantRowsOf, hasModelBoundOverrides, hasMotionTrigger, hasUrlScheme, heatingValveCapability, hfModelUrl, historyFieldsFor, historyItemFieldPath, htmlToText, hubAddressHostname, hubMotionNativeProvider, humidifierCapability, humiditySensorCapability, hydrateSchema, iconCategoryLabel, iconEntry, iconsInCategory, imageCapability, imageModesForKind, imageSettingsCapability, inferExpressionKinds, inferModelProvider, initialPoolMemoryState, integrationsCapability, intercomCapability, interpolate, interpretStoredClusterModel, invalidClusterStepModelEntries, invertPresetFeature, invocationFromEncodeProfile, isAgentOnlyPlacement, isAlarmControllableCap, isAlertEpisodeOpen, isAlertEpisodeSeverity, isAppLinkBase, isAppStartRefusal, 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, isHeldBackTemplateVar, isIconKey, isIsolatedBuiltin, isKeychainStoredField, isKnownTemplateVar, isLabelSupplyStepId, isLocationEnabled, isMediaOwnerType, isModelScopedStepSettingKey, isNode, isOauthLandingReason, isObjectInput, isOccupancyRule, isOwnerOnlyEventCategory, isRemovedModelId, isRestoredCap, isRetiredClearKey, isRootSuppliableStepId, isRunningAssignmentFeature, isSameAddonId, isScheduleActive, isSecretClear, isSecretConfigField, isSecretFieldView, isSecretMarker, isSecretMarkerLike, isSecretRef, isSecretRefOwnedBy, isSingleHubAddressRole, isSoftwareDecode, isSourceCap, isStateLabelKey, isStatefulBuiltin, isStorageLocationMode, isSystemDelivery, isSystemEventFamily, isSystemEventRecoveryKind, isSystemEventSummaryRule, isSystemRuleKind, 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, markdownToHtmlLite, markdownToText, maskUrlCredentials, matchDoAction, mayReadLocation, mayWriteToLocation, measuredCapacityFromResults, measuredDetectorCells, mediaPlayerCapability, memoizePinnedFfmpeg, mergeClipLabels, mergeSecretStatePaths, mergeSettingsBags, mergeSourceInfo, meshNetworkCapability, method, methodAccessForHttpMethod, methodRoleOf, metricsProviderCapability, migrateLegacyDeviceSignalConfig, minutesToTimeOfDay, modeMayRead, modeMayWrite, modelBindingKey, modelConvertCapability, modelDistributorCapability, modelFormatForRuntime, modelScopedStepSettingKeys, motionCapability, motionDetectionCapability, motionSourceLabel, motionTriggerCapability, motionZonesCapability, mqttBrokerCapability, nativeObjectDetectionCapability, navigationCapability, ncAlarmSystemDefaultSettings, ncMediaPolicyError, networkAccessCapability, networkLinkCapability, networkQualityCapability, nodeBenchmarkRefusals, nodeCertificatesCapability, nodePickerItems, nodePin, nodesCapability, normalizeAddonInitResult, normalizeAudioLabel, normalizeCoreBlockWrite, normalizeNcMediaPolicy, normalizeNodeId, normalizeOrigin, normalizeSecretOwner, normalizeTokenScopes, normalizeUnit, normalizedArea, notificationOutputCapability, notificationRulesCapability, notifierCapability, numericSensorCapability, oauthIntegrationCapability, oauthLandingUrl, objectInputDeclaresAddonId, objectInputDeclaresRequiredDeviceId, occupancyScope, oidcConnectionsCapability, omitTransientConfig, optionalAncestors, optionalMethod, osdCapability, osdManagerCapability, overlayClusterStepSettings, packagePickerItems, parseAcceleratorFactsJson, parseAdminBase, parseAlertEpisodePayload, parseAppAuthCallback, parseAppFlowRequest, parseAppPageLang, parseCameraStreamConfig, parseCredentialScopes, parseDeviceEnrollmentLink, parseExpression, parseJsonArray, parseJsonObject, parseJsonUnknown, parseMediaOwnerKey, parseOauthLandingFragment, parseOccupancyScope, parseProcStatus, parseProfileBrokerId, parseRetrainRevisionConflict, parseRuleSection, parseSecretPath, parseSecretRef, parseSecretStatePath, parseSessionPlacementPolicy, parseShareSource, parseStreamParamsFormPatch, parseTrainingEventLine, patchAudio, petFeederCapability, 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, plateGalleryCapability, platformProbeCapability, poolMemoryThreshold, powerMeterCapability, prepareNotification, presenceCapability, pressureSensorCapability, principalMayReachAddon, privacyMaskCapability, procedureAuthKey, projectSubjectPath, providerMotionEvent, ptzAutotrackCapability, ptzCapability, publicEventCategories, pythonScriptForBackend, rankStreams, readClusterStepModels, readClusterStepSettings, readDetailCropConvention, readDeviceStateFrom, readErrorI18n, readFaceRescoreIntervalMinutes, readHubMotionDetected, readHubMotionStatus, readMotionTriggeredBy, readNativeLeaseOverride, readNodePin, readRecoveryRecipe, readRecoveryRecipeForSteps, readTimelapseGeneratedAt, readUseRootModel, readinessKey, rebootCapability, recommendNode, reconcileBlockDevices, reconcileRemovedDevices, recordArrayItemPath, recordEntriesCapability, recordSecretCollection, recordSecretRef, recordingArchiveCapability, recordingCapability, recordingExportCapability, recordingOnboardCapability, recordingSignalCapability, recordsCapability, recordsErrorFromMessage, rectsToCells, reducePoints, registerKnownSecret, remapCropDetections, renameAlarmProfile, renderVocabPhrase, replacedFieldKeys, reportIsScalable, requestMountPrefix, requiredTopLevelKeys, requiresPython, reservedSourceOwner, resetPoolBaseline, resolveAddonExecution, resolveAddonGroup, resolveAddonPlacement, resolveAppConnections, resolveBucketMs, resolveCapMount, resolveClipSearchMinScore, resolveClusterStepModelId, resolveContainerPrimaryChild, resolveCoreBlockEntry, resolveCoreBlockFiles, resolveCreateExportSubject, resolveDeviceControlKind, resolveDeviceProfile, 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, resolveStreamMaps, resolveVariantModelId, resolveViewableDeviceIds, resultCellKey, resultStandings, retrainBoxIou, retrainRevisionConflictMessage, roleSpec, roomCompositionExample, rootSuppliesOf, rootSupplyServes, ruleAutoTriggersAlarm, ruleBelongsToAlarm, ruleDeviceCompatCapNames, ruleDeviceCompatCapQueries, ruleEditorSectionsForKind, ruleGatedOnArmedState, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, ruleTriggerZoneIds, runInferenceStep, runningAssignmentFeature, runningAssignmentRecovered, runningFromDishwasherOperation, runningFromLawnMower, runningFromMediaPlayer, runningFromVacuumState, runningStateCapability, runtimeDevices, runtimeStatePolicyFor, sameDoFamily, sceneMonitorCapability, scheduleForSendTimes, schemaDeclaresAnyField, scopeInherits, scopeKey, scopesAllowAddon, scopesAllowAddonRoutes, scopesAllowDeviceCap, scopesAllowOwnPreferences, scopesGrantAdmin, scoreRuntimes, scriptRunnerCapability, scrubKnownSecrets, searchIcons, secretArrayPrefixes, secretTreeFromPaths, secretTreeFromSchema, secureActuationFor, selectAppConnectionEndpoints, selectAssignedProfileSlots, selectRecoveryStep, sendTimesForEditor, sendTimesOfSchedule, sensorRaisedOf, sensorTransitionNeverFires, sensorTransitionOffered, servedTemplateVars, serverManagementCapability, sessionsOfDeviceCell, setByPath, settingValuesEqual, settingsBelow, settingsStoreCapability, shareViewGrantOf, shortHostname, shortSecretRefHash, signalPercentFromBars, signalPercentFromRssi, siteZoneKey, sleep, sleepCancellable, sliceActiveValue, sliceChangedAt, smokeCapability, smtpProviderCapability, snapshotCapability, splitTranslationRef, squareAround, ssoBridgeCapability, startMoverUnderClearance, startReachabilityPoll, stateLabel, stateVocabularyFor, stepModelRunsOnFormat, stepSettingSource, storageAdminCapability, storageCapability, storageEvictableCapability, storageMigrationCapability, storageOccupancyCapability, storageProviderCapability, streamBrokerCapability, streamCatalogCapability, streamParamsCapability, streamPixels, streamQualityLabel, streamSignalsCapability, stripRetiredBandPreBufferSec, strippedOfLegacyReadOnly, subKindsOf, subjectHasPath, subjectPathSampleFromBox, subjectPathSvgPoints, summarisePrivacyAudio, summarizeEffectiveScope, summarizeReview, supplyFor, supportedRuntimes, switchCapability, switchedOffIds, syncActiveAlarmProfileSettings, synthesizeSourceInfo, systemCapability, systemEventClassKinds, systemEventClassOf, systemEventClassesFor, systemEventDeliveryProblems, systemEventFamilyOf, systemEventFamilyProblems, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, systemEventKindNamesOf, systemEventKindsOfFamily, systemEventSummaryScheduleOf, systemEventSummarySplitOf, systemFamilyOfKind, systemRuleKindOf, tamperCapability, taskLogEntrySchema, taskPhaseSchema, taskTargetSchema, temperatureSensorCapability, templateCarriesSummary, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, templateVarsFor, terminalSessionCapability, textToHtml, timeOfDayToMinutes, toAppLinkHubOrigin, toDeviceSummary, toExpressionValue, toNodeId, toPercentShares, toSecretFieldView, toStreamSourceEntry, toastCapability, toggleAudioLabel, tokenize, trainingCapability, trainingProviderCapability, transcodeBody, transformSecretWrite, tryConvertUnit, turnProviderCapability, unitDimension, unitsForDimension, unreachableExtensionSlotRow, unwrapSchema, updateCapability, userError, userManagementCapability, userPasskeysCapability, vacuumControlCapability, validateComposition, validateCustomAddress, validateExpressionSource, validateRecipeBounds, valveCapability, vectorDimFromBase64, vectorIndexDimConflictError, vectorStoreCapability, vibrationCapability, videoclipsCapability, viewerAdmitsDevice, viewerHoldsRole, viewerLinkBaseOf, viewerScopeOf, viewerUiCapability, actionsForDevice$1 as vocabularyActionsForDevice, triggersForDevice as vocabularyTriggersForDevice, waterHeaterCapability, weatherCapability, webrtcClientHintsSchema, webrtcSessionCapability, weeklyMaskIndex, weeklyMaskIsUniform, weeklyMaskToWindows, widenDeviceConstructor, windowsToWeeklyMask, wiringAddonHealthSchema, wiringHealthSnapshotSchema, wiringNodeHealthSchema, wiringProbeKindSchema, wiringProbeResultSchema, withClipEventLabels, withFieldFrom, withLocationMode, withSystemEventClasses, withoutCallerStamp, withoutField, writeModelBoundSetting, zodEntriesToConfigUI, zoneAnalyticsCapability, zoneRulesCapability, zonesCapability };
|