@camstack/addon-post-analysis 1.2.668 → 1.2.670

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (15) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{clip-model-registry-BYJ5lbPi.mjs → clip-model-registry-7_dm-x-g.mjs} +197 -62
  3. package/dist/{clip-model-registry-DTC5bkf8.js → clip-model-registry-B3x4Npc9.js} +202 -61
  4. package/dist/embedding-encoder/index.js +6 -2
  5. package/dist/embedding-encoder/index.mjs +6 -2
  6. package/dist/pipeline-analytics/_stub.js +2 -2
  7. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DBEA3TPX.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BYaeszka.mjs} +2 -2
  8. package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DxtNkzmw.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-9HsFj_VL.mjs} +1 -1
  9. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Bame_Xen.mjs +26 -0
  10. package/dist/pipeline-analytics/{hostInit-ChYqK-gn.mjs → hostInit-CNqHuab6.mjs} +9 -9
  11. package/dist/pipeline-analytics/index.js +186 -40
  12. package/dist/pipeline-analytics/index.mjs +186 -40
  13. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  14. package/package.json +2 -2
  15. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CU7mDiJp.mjs +0 -26
package/CHANGELOG.md CHANGED
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.670] - 2026-11-05
11
+
12
+ ### Changed
13
+
14
+ - Fixed: the face-recognition switch and the parked-object suppression switch shared one setting, so turning one on or off flipped the other; each now has its own setting, and your current choice is carried into both
15
+ - The analytics settings are now declared per capability (face recognition under face-gallery, the rest under pipeline-analytics); the form you see is unchanged
16
+
17
+ ## [1.2.669] - 2026-11-05
18
+
19
+ ### Changed
20
+
21
+ - Embedding encoder model setting is declared on the cluster hook; the form and stored value are unchanged.
22
+
10
23
  ## [1.2.668] - 2026-11-05
11
24
 
12
25
  ### Changed
@@ -6038,7 +6038,7 @@ var ZodIssueCode = {
6038
6038
  var ZodFirstPartyTypeKind;
6039
6039
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
6040
6040
  //#endregion
6041
- //#region ../types/dist/sleep-D1jjWAr8.mjs
6041
+ //#region ../types/dist/sleep-DEZaLbiu.mjs
6042
6042
  /**
6043
6043
  * The audio chunk plane's byte format, and the ONE expansion from a coded
6044
6044
  * window to float samples (D455).
@@ -6840,6 +6840,12 @@ function projectStore(store, perNodeKeys, nodeId) {
6840
6840
  }
6841
6841
  return out;
6842
6842
  }
6843
+ /** Every scope, in the order the guard and the docs list them. */
6844
+ var SCOPED_SETTINGS_SCOPES = [
6845
+ "cluster",
6846
+ "device-defaults",
6847
+ "node"
6848
+ ];
6843
6849
  var GLOBAL_SCOPE = { kind: "global" };
6844
6850
  /** The scope every addon-wide (not per-node, not per-device) setting lives in. */
6845
6851
  function globalSecretScope() {
@@ -7689,6 +7695,13 @@ var BaseAddon = class {
7689
7695
  */
7690
7696
  secretStatePaths = [];
7691
7697
  _addonSecretTree = null;
7698
+ /**
7699
+ * D986 M4: the scoped schemas this addon declared, resolved once per capability
7700
+ * (`loadScopedSchemas`) so the sync readers (`perNodeKeys`, the secret tree, the restart check)
7701
+ * see them. Empty until loaded: the readers then fall back to {@link globalSettingsSchema}.
7702
+ */
7703
+ _scopedByCap = /* @__PURE__ */ new Map();
7704
+ _nodeKeysByCap = /* @__PURE__ */ new Map();
7692
7705
  _deviceSecretTree = null;
7693
7706
  /** Refs the last resolved config pointed at — a change to one re-resolves. */
7694
7707
  _configSecretRefs = /* @__PURE__ */ new Set();
@@ -7758,6 +7771,7 @@ var BaseAddon = class {
7758
7771
  this._ctx = context;
7759
7772
  this._secretSettings = null;
7760
7773
  }
7774
+ await this.loadScopedSchemas();
7761
7775
  await this.resolveConfig();
7762
7776
  if (secrets !== void 0) this._secretChangeUnsub = secrets.onChange((ref) => {
7763
7777
  if (this._configSecretRefs.has(ref)) this.scheduleSecretReresolve(SECRET_CHANGE_DEBOUNCE_MS);
@@ -7767,6 +7781,7 @@ var BaseAddon = class {
7767
7781
  const normalized = normalizeAddonInitResult(result);
7768
7782
  const providers = normalized && "providers" in normalized && normalized.providers ? normalized.providers : [];
7769
7783
  this._registeredCapNames = providers.map((p) => p.capability.name);
7784
+ await this.loadScopedSchemas();
7770
7785
  return normalized;
7771
7786
  }
7772
7787
  /**
@@ -7855,6 +7870,16 @@ var BaseAddon = class {
7855
7870
  schema(schema) {
7856
7871
  return schema;
7857
7872
  }
7873
+ /**
7874
+ * The capability names whose scoped settings schemas ({@link clusterSettingsSchema},
7875
+ * {@link nodeSettingsSchema}, {@link deviceDefaultsSchema}) this addon declares. Read BEFORE
7876
+ * `onInitialize`, when the providers it registers are not known yet: the first config resolve
7877
+ * must already know which keys are per node. Names the providers register at init are added
7878
+ * once known.
7879
+ */
7880
+ scopedSettingsCapabilities() {
7881
+ return [];
7882
+ }
7858
7883
  /** Override to provide global-level settings UI schema. */
7859
7884
  globalSettingsSchema(_cap) {
7860
7885
  return null;
@@ -7898,7 +7923,8 @@ var BaseAddon = class {
7898
7923
  return [];
7899
7924
  }
7900
7925
  async getGlobalSettings(overlay, cap, nodeId) {
7901
- const schema = this.globalSettingsSchema(cap);
7926
+ await this.loadScopedSchemas(cap);
7927
+ const schema = this.globalSettingsSchema(cap) ?? this.scopedFormSchema(cap);
7902
7928
  if (!schema) return { sections: [] };
7903
7929
  const projected = await this.readRawProjectedStore(nodeId, cap);
7904
7930
  return hydrateSchema(schema, overlay ? await this.overlayKeepingMarkers(projected, overlay) : projected, { inlineSecretsAsViews: true });
@@ -7933,10 +7959,9 @@ var BaseAddon = class {
7933
7959
  *
7934
7960
  * Override it only when an `instanceMode: multiple` addon's instances differ: an NVR integration
7935
7961
  * needs its connection fields, the default integration the addon's own sections. It is the
7936
- * SHAPE of the form only — the values live in `integrations.getSettings`, and the write path is
7937
- * unchanged (`integrations.setSettings` for an account integration).
7962
+ * SHAPE of the form only — the values live on the instance record.
7938
7963
  */
7939
- async integrationSettingsSchema(_instance) {
7964
+ async integrationFormSchema(_instance) {
7940
7965
  return null;
7941
7966
  }
7942
7967
  /**
@@ -7982,7 +8007,7 @@ var BaseAddon = class {
7982
8007
  * per-instance schema when it declares one, else its global schema (what they always showed).
7983
8008
  */
7984
8009
  async getIntegrationFormSchema(instance, nodeId) {
7985
- const scoped = await this.integrationSettingsSchema(instance);
8010
+ const scoped = await this.integrationFormSchema(instance);
7986
8011
  if (scoped === null) return this.getGlobalSettings(void 0, void 0, nodeId);
7987
8012
  return hydrateSchema(scoped, {}, { inlineSecretsAsViews: true });
7988
8013
  }
@@ -8030,6 +8055,7 @@ var BaseAddon = class {
8030
8055
  * resolved blob back is a no-op for every unchanged secret.
8031
8056
  */
8032
8057
  async resolveGlobalStore(nodeId, cap) {
8058
+ await this.loadScopedSchemas(cap);
8033
8059
  const raw = await this._ctx?.settings?.readAddonStore() ?? {};
8034
8060
  return this.projectForNode(raw, nodeId, cap);
8035
8061
  }
@@ -8040,6 +8066,7 @@ var BaseAddon = class {
8040
8066
  }
8041
8067
  /** The PROJECTED store with its markers — the form hydrate only (D798). */
8042
8068
  async readRawProjectedStore(nodeId, cap) {
8069
+ await this.loadScopedSchemas(cap);
8043
8070
  const raw = await this.rawSettings()?.readAddonStore() ?? {};
8044
8071
  return this.projectForNode(raw, nodeId, cap);
8045
8072
  }
@@ -8142,6 +8169,7 @@ var BaseAddon = class {
8142
8169
  await this.applyGlobalPatch(patch, nodeId);
8143
8170
  }
8144
8171
  async applyGlobalPatch(barePatch, nodeId) {
8172
+ await this.loadScopedSchemas();
8145
8173
  const keys = this.perNodeKeys();
8146
8174
  const localNode = normalizeNodeId(this._ctx?.kernel?.localNodeId);
8147
8175
  const target = normalizeNodeId(nodeId ?? this._ctx?.kernel?.localNodeId);
@@ -8155,7 +8183,8 @@ var BaseAddon = class {
8155
8183
  await this.resolveConfig();
8156
8184
  await this.onConfigChanged();
8157
8185
  this.emitLifecycle(EventCategory.AddonUpdated, { level: "global" });
8158
- this.maybeAutoRestart(Object.keys(barePatch), this.globalSettingsSchema());
8186
+ const legacy = this.globalSettingsSchema();
8187
+ this.maybeAutoRestart(Object.keys(barePatch), [...legacy === null ? [] : [legacy], ...this.loadedScopedSchemas().map((entry) => entry.schema)]);
8159
8188
  }
8160
8189
  /**
8161
8190
  * The set of field keys the global settings schema declares `perNode: true`
@@ -8163,14 +8192,67 @@ var BaseAddon = class {
8163
8192
  * declarations). Empty set ⇒ every per-node code path is bypassed and the
8164
8193
  * settings API behaves exactly like the legacy node-agnostic one.
8165
8194
  */
8166
- _perNodeKeysCache = /* @__PURE__ */ new Map();
8195
+ /**
8196
+ * Load the scoped schemas of every capability this addon declares (the override and the
8197
+ * providers registered at init, plus `extraCap`) that is not loaded yet, then drop what was
8198
+ * derived from the previous set. Idempotent.
8199
+ */
8200
+ async loadScopedSchemas(extraCap) {
8201
+ const caps = new Set([
8202
+ ...this.scopedSettingsCapabilities(),
8203
+ ...this._registeredCapNames,
8204
+ ...extraCap === void 0 ? [] : [extraCap]
8205
+ ]);
8206
+ let added = false;
8207
+ for (const cap of caps) {
8208
+ if (this._scopedByCap.has(cap)) continue;
8209
+ const loaded = [];
8210
+ for (const scope of SCOPED_SETTINGS_SCOPES) {
8211
+ const schema = await this.getScopedSettingsSchema(scope, cap);
8212
+ if (schema !== null) loaded.push({
8213
+ scope,
8214
+ schema
8215
+ });
8216
+ }
8217
+ this._scopedByCap.set(cap, loaded);
8218
+ added = true;
8219
+ }
8220
+ if (!added) return;
8221
+ this._nodeKeysByCap = /* @__PURE__ */ new Map();
8222
+ this._addonSecretTree = null;
8223
+ }
8224
+ /**
8225
+ * The form the settings API serves while an addon declares no {@link globalSettingsSchema}: the
8226
+ * sections of its scoped schemas, so dropping the old hook does not blank the form.
8227
+ */
8228
+ scopedFormSchema(cap) {
8229
+ const byId = /* @__PURE__ */ new Map();
8230
+ for (const entry of this.loadedScopedSchemas(cap)) for (const section of entry.schema.sections) if (!byId.has(section.id)) byId.set(section.id, section);
8231
+ return byId.size === 0 ? null : { sections: [...byId.values()] };
8232
+ }
8233
+ /** Every loaded scoped schema of `cap`, or of every loaded capability. */
8234
+ loadedScopedSchemas(cap) {
8235
+ if (cap !== void 0) return this._scopedByCap.get(cap) ?? [];
8236
+ return [...this._scopedByCap.values()].flat();
8237
+ }
8238
+ /**
8239
+ * The field keys that are stored per node: every field of a {@link nodeSettingsSchema}, plus
8240
+ * the fields the legacy {@link globalSettingsSchema} still marks `perNode: true`. Derived once
8241
+ * per `cap` argument and memoized (schemas are static declarations). Empty set ⇒ every
8242
+ * per-node code path is bypassed and the settings API behaves like the node-agnostic one.
8243
+ * Call {@link loadScopedSchemas} first (the async seams do).
8244
+ */
8167
8245
  perNodeKeys(cap) {
8168
8246
  const cacheKey = cap ?? "";
8169
- const cached = this._perNodeKeysCache.get(cacheKey);
8247
+ const cached = this._nodeKeysByCap.get(cacheKey);
8170
8248
  if (cached) return cached;
8171
- const schema = this.globalSettingsSchema(cap);
8172
- const keys = new Set(schema ? schema.sections.flatMap((section) => collectPerNodeFieldKeys(section.fields)) : []);
8173
- this._perNodeKeysCache.set(cacheKey, keys);
8249
+ const legacy = this.globalSettingsSchema(cap);
8250
+ const keys = new Set(legacy ? legacy.sections.flatMap((section) => collectPerNodeFieldKeys(section.fields)) : []);
8251
+ for (const { scope, schema } of this.loadedScopedSchemas(cap)) {
8252
+ if (scope !== "node") continue;
8253
+ for (const section of schema.sections) for (const key of collectValueFieldKeys(section.fields)) keys.add(key);
8254
+ }
8255
+ this._nodeKeysByCap.set(cacheKey, keys);
8174
8256
  return keys;
8175
8257
  }
8176
8258
  /**
@@ -8180,10 +8262,9 @@ var BaseAddon = class {
8180
8262
  * time to return its response before the addon is torn down and
8181
8263
  * re-initialised by `AddonRegistryService.restartAddon`.
8182
8264
  */
8183
- maybeAutoRestart(patchKeys, schema) {
8184
- if (!schema) return;
8265
+ maybeAutoRestart(patchKeys, schemas) {
8185
8266
  const restartKeys = /* @__PURE__ */ new Set();
8186
- for (const section of schema.sections) for (const field of section.fields) {
8267
+ for (const schema of schemas) for (const section of schema.sections) for (const field of section.fields) {
8187
8268
  if (field.type === "separator" || field.type === "info") continue;
8188
8269
  if (field.requiresRestart) restartKeys.add(field.key);
8189
8270
  }
@@ -8379,12 +8460,14 @@ var BaseAddon = class {
8379
8460
  * here, in the addon's own process, so the hub keeps no copy of it.
8380
8461
  */
8381
8462
  async getDeclaredSettingsKeys() {
8463
+ await this.loadScopedSchemas();
8382
8464
  return { keys: [...this.declaredKeySet()].toSorted() };
8383
8465
  }
8384
8466
  declaredKeySet() {
8385
8467
  const keys = new Set(Object.keys(this.defaults));
8386
8468
  const schema = this.globalSettingsSchema();
8387
8469
  if (schema) for (const section of schema.sections) for (const key of collectFieldKeys(section.fields)) keys.add(key);
8470
+ for (const { schema: scoped } of this.loadedScopedSchemas()) for (const section of scoped.sections) for (const key of collectFieldKeys(section.fields)) keys.add(key);
8388
8471
  for (const key of this._declaredStateKeys) keys.add(key);
8389
8472
  for (const path of this.secretStatePaths) {
8390
8473
  const root = path.split(/[.[]/, 1)[0];
@@ -8480,7 +8563,11 @@ var BaseAddon = class {
8480
8563
  }
8481
8564
  /** The addon store's secret tree: schema fields by TYPE, plus `secretStatePaths`. */
8482
8565
  addonSecretTree() {
8483
- this._addonSecretTree ??= mergeSecretStatePaths(secretTreeFromSchema(this.globalSettingsSchema()), this.secretStatePaths);
8566
+ if (this._addonSecretTree === null) {
8567
+ const tree = new Map(secretTreeFromSchema(this.globalSettingsSchema()));
8568
+ for (const { schema } of this.loadedScopedSchemas()) for (const [key, node] of secretTreeFromSchema(schema)) tree.set(key, node);
8569
+ this._addonSecretTree = mergeSecretStatePaths(tree, this.secretStatePaths);
8570
+ }
8484
8571
  return this._addonSecretTree;
8485
8572
  }
8486
8573
  deviceSecretTree() {
@@ -8730,6 +8817,23 @@ function dropPerNodeFields(fields) {
8730
8817
  }
8731
8818
  return kept;
8732
8819
  }
8820
+ /** The keys of the value-holding fields, recursing into layout containers. */
8821
+ function collectValueFieldKeys(fields) {
8822
+ const collected = [];
8823
+ for (const field of fields) {
8824
+ if (field.type === "group") {
8825
+ collected.push(...collectValueFieldKeys(field.fields));
8826
+ continue;
8827
+ }
8828
+ if (field.type === "sub-tabs") {
8829
+ for (const tab of field.tabs) collected.push(...collectValueFieldKeys(tab.fields));
8830
+ continue;
8831
+ }
8832
+ if (field.type === "separator" || field.type === "info") continue;
8833
+ if ("key" in field && typeof field.key === "string") collected.push(field.key);
8834
+ }
8835
+ return collected;
8836
+ }
8733
8837
  function collectFieldKeys(fields) {
8734
8838
  const collected = [];
8735
8839
  for (const field of fields) {
@@ -14601,6 +14705,16 @@ var MigrationPlanSchema = object({ edits: array(discriminatedUnion("op", [
14601
14705
  precondition: PreconditionSchema
14602
14706
  })
14603
14707
  ])) });
14708
+ /** `JSON.stringify` with object keys sorted, so equal values spell the same. */
14709
+ function canonicalJson(value) {
14710
+ if (Array.isArray(value)) return `[${value.map((item) => canonicalJson(item)).join(",")}]`;
14711
+ if (typeof value === "object" && value !== null) return `{${Object.entries(value).filter(([, item]) => item !== void 0).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([key, item]) => `${JSON.stringify(key)}:${canonicalJson(item)}`).join(",")}}`;
14712
+ return JSON.stringify(value) ?? "null";
14713
+ }
14714
+ /** The precondition string for a value a plan read (`null` when it read nothing). */
14715
+ function preconditionOf(value) {
14716
+ return canonicalJson(value ?? null);
14717
+ }
14604
14718
  /**
14605
14719
  * What a `procedure` body reports. `already-done` means the rerun observed the
14606
14720
  * work finished (a crash between the work and the ledger row, or a manual fix)
@@ -52808,7 +52922,14 @@ var DiscoveryCandidateSchema = object({
52808
52922
  /** `stableId` of the gateway candidate this device was found BEHIND. */
52809
52923
  parentStableId: string().optional(),
52810
52924
  /** `false` = shown for context but not pickable. Default true. */
52811
- selectable: boolean().optional()
52925
+ selectable: boolean().optional(),
52926
+ /**
52927
+ * Keys of the provider's creation form (`getChildCreationSchema`) this candidate
52928
+ * cannot be adopted without — a key for an encrypted board, a pairing code. The
52929
+ * admin asks for exactly these, on the creation form prefilled with
52930
+ * `prefilledConfig`, before it adopts. Absent or empty = adopt as it is.
52931
+ */
52932
+ needsParams: array(string()).optional()
52812
52933
  });
52813
52934
  /**
52814
52935
  * Flat device summary returned by `createDevice` / `adoptDiscoveredDevice`.
@@ -52867,12 +52988,18 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
52867
52988
  }), array(DiscoveryCandidateSchema), {
52868
52989
  kind: "mutation",
52869
52990
  auth: "admin"
52870
- }), method(object({}), CreationSchemaOutputSchema), method(object({}), object({ deviceType: _enum(DeviceType).nullable() })), method(object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
52991
+ }), method(object({}), CreationSchemaOutputSchema), method(object({}), object({ deviceType: _enum(DeviceType).nullable() })), method(object({
52992
+ candidate: DiscoveryCandidateSchema,
52993
+ /** The integration the operator adopts into; a provider with several instances needs it. */
52994
+ integrationId: string().optional()
52995
+ }), DeviceSummarySchema, {
52871
52996
  kind: "mutation",
52872
52997
  auth: "admin"
52873
52998
  }), method(object({}), boolean()), method(object({ type: _enum(DeviceType) }), CreationSchemaOutputSchema), method(object({
52874
52999
  type: _enum(DeviceType),
52875
- config: record(string(), unknown())
53000
+ config: record(string(), unknown()),
53001
+ /** The integration the operator adds the device to; a provider with several instances needs it. */
53002
+ integrationId: string().optional()
52876
53003
  }), DeviceSummarySchema, {
52877
53004
  kind: "mutation",
52878
53005
  auth: "admin"
@@ -57114,11 +57241,7 @@ var CreateIntegrationInputSchema = object({
57114
57241
  info: record(string(), unknown()).optional(),
57115
57242
  /** `stableId` of the discovery candidate the form was seeded from (D984). */
57116
57243
  originStableId: string().optional(),
57117
- settings: record(string(), unknown()).optional(),
57118
- /** Keys of `settings` the form's schema declares secret (by type) — kept in
57119
- * the keychain, not the table (D787). */
57120
- secretKeys: array(string()).optional(),
57121
- skipRestart: boolean().optional()
57244
+ settings: record(string(), unknown()).optional()
57122
57245
  });
57123
57246
  var UpdateIntegrationInputSchema = object({
57124
57247
  id: string(),
@@ -57139,22 +57262,6 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
57139
57262
  }), method(object({ id: string() }), DeleteIntegrationResultSchema, {
57140
57263
  kind: "mutation",
57141
57264
  auth: "admin"
57142
- }), method(object({ id: string() }), record(string(), unknown()), { auth: "admin" }), method(object({
57143
- id: string(),
57144
- settings: record(string(), unknown()),
57145
- /** Keys the form's schema declares secret (by type) — keychain-stored (D787). */
57146
- secretKeys: array(string()).optional(),
57147
- /** The integration's own addon applies the change in-process and asks the hub not to respawn it. */
57148
- skipRestart: boolean().optional()
57149
- }), object({ success: boolean() }), {
57150
- kind: "mutation",
57151
- auth: "admin"
57152
- }), method(object({ id: string() }), object({
57153
- rows: number().int().nonnegative(),
57154
- secrets: number().int().nonnegative()
57155
- }), {
57156
- kind: "mutation",
57157
- auth: "admin"
57158
57265
  }), method(_void(), array(AvailableIntegrationTypeSchema), { auth: "admin" }), method(object({
57159
57266
  addonId: string(),
57160
57267
  settings: record(string(), unknown())
@@ -60226,6 +60333,27 @@ method(object({}), object({ entries: array(MigrationLedgerEntrySchema) }), { aut
60226
60333
  }), {
60227
60334
  kind: "mutation",
60228
60335
  auth: "admin"
60336
+ }), method(object({ integrationId: string().min(1) }), record(string(), unknown()), { auth: "admin" }), method(object({ integrationId: string().min(1) }), object({
60337
+ rows: number().int().nonnegative(),
60338
+ secrets: number().int().nonnegative()
60339
+ }), {
60340
+ kind: "mutation",
60341
+ auth: "admin"
60342
+ }), method(object({
60343
+ integrationId: string().min(1),
60344
+ patch: record(string(), unknown())
60345
+ }), object({ written: boolean() }), {
60346
+ kind: "mutation",
60347
+ auth: "admin"
60348
+ }), method(object({
60349
+ integrationId: string().min(1),
60350
+ keys: array(string().min(1))
60351
+ }), object({
60352
+ present: boolean(),
60353
+ removed: record(string(), unknown())
60354
+ }), {
60355
+ kind: "mutation",
60356
+ auth: "admin"
60229
60357
  });
60230
60358
  method(object({
60231
60359
  sourceUrl: string(),
@@ -88394,13 +88522,6 @@ Object.freeze({
88394
88522
  access: "create",
88395
88523
  role: "admin"
88396
88524
  },
88397
- "integrations.clearSettings": {
88398
- capName: "integrations",
88399
- capScope: "system",
88400
- addonId: null,
88401
- access: "delete",
88402
- role: "admin"
88403
- },
88404
88525
  "integrations.create": {
88405
88526
  capName: "integrations",
88406
88527
  capScope: "system",
@@ -88436,13 +88557,6 @@ Object.freeze({
88436
88557
  access: "view",
88437
88558
  role: "admin"
88438
88559
  },
88439
- "integrations.getSettings": {
88440
- capName: "integrations",
88441
- capScope: "system",
88442
- addonId: null,
88443
- access: "view",
88444
- role: "admin"
88445
- },
88446
88560
  "integrations.list": {
88447
88561
  capName: "integrations",
88448
88562
  capScope: "system",
@@ -88450,13 +88564,6 @@ Object.freeze({
88450
88564
  access: "view",
88451
88565
  role: "admin"
88452
88566
  },
88453
- "integrations.setSettings": {
88454
- capName: "integrations",
88455
- capScope: "system",
88456
- addonId: null,
88457
- access: "create",
88458
- role: "admin"
88459
- },
88460
88567
  "integrations.testConnection": {
88461
88568
  capName: "integrations",
88462
88569
  capScope: "system",
@@ -89451,6 +89558,13 @@ Object.freeze({
89451
89558
  access: "view",
89452
89559
  role: "admin"
89453
89560
  },
89561
+ "migrations.clearLegacyIntegrationRows": {
89562
+ capName: "migrations",
89563
+ capScope: "system",
89564
+ addonId: null,
89565
+ access: "delete",
89566
+ role: "admin"
89567
+ },
89454
89568
  "migrations.declareOwner": {
89455
89569
  capName: "migrations",
89456
89570
  capScope: "system",
@@ -89458,6 +89572,13 @@ Object.freeze({
89458
89572
  access: "create",
89459
89573
  role: "admin"
89460
89574
  },
89575
+ "migrations.deleteLegacyIntegrationRowKeys": {
89576
+ capName: "migrations",
89577
+ capScope: "system",
89578
+ addonId: null,
89579
+ access: "delete",
89580
+ role: "admin"
89581
+ },
89461
89582
  "migrations.dryRun": {
89462
89583
  capName: "migrations",
89463
89584
  capScope: "system",
@@ -89493,6 +89614,20 @@ Object.freeze({
89493
89614
  access: "create",
89494
89615
  role: "admin"
89495
89616
  },
89617
+ "migrations.patchLegacyIntegrationRows": {
89618
+ capName: "migrations",
89619
+ capScope: "system",
89620
+ addonId: null,
89621
+ access: "create",
89622
+ role: "admin"
89623
+ },
89624
+ "migrations.readLegacyIntegrationRows": {
89625
+ capName: "migrations",
89626
+ capScope: "system",
89627
+ addonId: null,
89628
+ access: "view",
89629
+ role: "admin"
89630
+ },
89496
89631
  "migrations.restorePreMigration": {
89497
89632
  capName: "migrations",
89498
89633
  capScope: "system",
@@ -103616,4 +103751,4 @@ function buildClipModelRegistry(entries) {
103616
103751
  /** The built-in catalog's registry. */
103617
103752
  var BUILTIN_CLIP_MODELS = buildClipModelRegistry(CLIP_IMAGE_MODELS);
103618
103753
  //#endregion
103619
- export { MAX_TRACK_RELATIONS as $, zoneAnalyticsCapability as $i, buildViewerLink as $n, ncMediaPolicyError as $r, NcTemplatePreviewSchema as $t, DETECTION_MACRO_CLASSES as A, record as Aa, ruleKindOf as Ai, TrackPlacementSchema as An, isAlarmControllableCap as Ar, NcAlarmConfigSchema as At, EXPORT_DENSE_MAX_RANGES as B, summarizeReview as Bi, alertEpisodeId as Bn, isKnownTemplateVar as Br, NcRuleSchema as Bt, COCO_TO_MACRO as C, boolean as Ca, resolvePoolMemoryPolicy as Ci, SetTrackPurityResultSchema as Cn, ensureAlarmProfiles as Cr, NC_GROUPING_MIN_SEC as Ct, DEFAULT_DETAIL_CROP_CONVENTION as D, number as Da, ruleBelongsToAlarm as Di, TimelapseRuleInputSchema as Dn, failureContributionCapability as Dr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as Dt, CoverStateSchema as E, looseObject as Ea, ruleAutoTriggersAlarm as Ei, TRACK_RELATIONS_DEFAULT_LIMIT as En, faceGalleryCapability as Er, NC_STATE_SUMMARY_SECTION_IDS as Et, EMBEDDING_REQUIREMENTS_FAILED as F, union as Fa, startMoverUnderClearance as Fi, TrackSourceSchema as Fn, isDefaultAlarmProfileId as Fr, NcConditionDescriptorSchema as Ft, LabelAttributionSchema as G, systemEventFilterApplies as Gi, applyNonBlockingEdit as Gn, isScheduleActive as Gr, NcSnoozeInputSchema as Gt, FULL_IMAGE_BBOX as H, syncActiveAlarmProfileSettings as Hi, alertEpisodePayload as Hn, isMediaOwnerType as Hr, NcRuleUpdateInputSchema as Ht, EMBEDDING_REQUIREMENTS_UNAVAILABLE as I, unknown as Ia, storageOccupancyCapability as Ii, activateAlarmProfile as In, isDetectionMacroClass as Ir, NcConditionsSchema as It, LockStateSchema as J, templateCarriesSummary as Ji, assertTimelapseCadences as Jn, isVectorIndexDimConflict as Jr, NcStateSummarySectionIdSchema as Jt, ListTrackRelationsInputSchema as K, systemEventSummaryScheduleOf as Ki, applySecureOnArmEdit as Kn, isSystemDelivery as Kr, NcSnoozeSchema as Kt, EVENT_DENSITY_BATCH_MAX as L, DeviceType as La, subKindsOf as Li, addonWidgetsSourceCapability as Ln, isDrawableSubjectPath as Lr, NcRuleActionSchema as Lt, DeclaredDevices as M, string as Ma, secureActuationFor as Mi, TrackRelationKindSchema as Mn, isAlertEpisodeSeverity as Mr, NcAlarmSensorsInputSchema as Mt, DetectionSourceSchema as N, templateLiteral as Na, sensorRaisedOf as Ni, TrackRelationSchema as Nn, isAppLinkBase as Nr, NcAlarmSensorsSchema as Nt, DEFAULT_EVENT_COLOR as O, object as Oa, ruleDeviceCompatCapQueries as Oi, TimelapseRulePatchSchema as On, gifDeriveSpeed as Or, NC_TAXONOMY as Ot, EMBEDDING_MODEL_FAILED as P, tuple as Pa, servedTemplateVars as Pi, TrackSideSchema as Pn, isAudioClassName as Pr, NcAlarmSettingsPatchSchema as Pt, MAX_TRACK_PURITIES as Q, withSystemEventClasses as Qi, buildSubjectPath as Qn, memoizePinnedFfmpeg as Qr, NcTemplatePreviewInputSchema as Qt, EVENT_KIND_BY_CAP as R, errMsg as Ra, subjectPathSampleFromBox as Ri, alarmDeviceSecureOnArm as Rn, isEventKindLabelKey as Rr, NcRuleInputSchema as Rt, BucketAccumulator as S, array as Sa, resolveNcMediaImage as Si, SetTrackPurityInputSchema as Sn, encodeVectorBase64 as Sr, NC_GROUPING_MAX_SEC as St, ClearTrackRelationResultSchema as T, literal as Ta, rootSupplyServes as Ti, TIMELAPSE_DENSE_FLOOR_SEC as Tn, evictionPolicyOfLocation as Tr, NC_SNOOZE_MAX_MINUTES as Tt, FailureCounters as U, systemEventDeliveryProblems as Ui, applyBlockingEdit as Un, isRetiredClearKey as Ur, NcScheduleSchema as Ut, FIRST_LEVEL_MACRO_CLASSES as V, sunTimes as Vi, alertEpisodeKind as Vn, isLabelSupplyStepId as Vr, NcRuleTargetSchema as Vt, LABEL_SUPPLY_MACRO as W, systemEventFamilyProblems as Wi, applyModeDelaysEdits as Wn, isRootSuppliableStepId as Wr, NcSharedSequenceSchema as Wt, MAX_BIRTH_DECISION_RECORDS as X, vectorDimFromBase64 as Xi, audioModeOf as Xn, linkedStepOf as Xr, NcTaxonomySchema as Xt, MAX_ARCHIVED_DEBUG_NOTES as Y, templateVarsFor as Yi, audioMetricsCapability as Yn, kebabToCamel as Yr, NcSystemEventKindSchema as Yt, MAX_BIRTH_LATENCY_PROXY_MS as Z, viewerLinkBaseOf as Zi, buildEventKindDescriptor as Zn, mayWriteToLocation as Zr, NcTemplateDefaultSchema as Zt, AlarmArmModeSchema as _, nodePin as _a, resolveClipSearchMinScore as _i, SCENE_DEFAULT_QUIET_SECONDS as _n, embeddingEncoderCapability as _r, NC_CONFIRM_DEFAULT_TIMEOUT_MS as _t, CLIP_EMBEDDING_STEP_ID as a, CAP_ADVANCE_FIELDS as aa, paintHex as ai, RECORDING_EXPORT_MAX_READ_BYTES as an, consumableLowPercentOf as ar, NC_ALARM_DELAY_FIELDS as at, BaseDevice as b, ZodObject as ba, resolveModeDelays as bi, SCENE_RESET_RECAPTURES as bn, embeddingRequirementsFailedError as br, NC_DEFAULT_SNOOZE_MINUTES as bt, readClusterModelPinStrict as c, RECORD_MAX_DATA_BYTES as ca, parseProcStatus as ci, RetrainDismissedSchema as cn, createAlarmProfile as cr, NC_ALARM_SYSTEM_EVENT_KINDS as ct, APPEARANCE_BIN_COUNT as d, customAction as da, plateGalleryCapability as di, RetrainVerdictSubjectSchema as dn, derivePostTriggeredAction as dr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as dt, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as ea, normalizeNcAction as ei, NcTemplateVarDescriptorSchema as en, bundledCamstack as er, MOTION_CLOSE_AFTER_MS as et, APPEARANCE_BLOCKS as f, defineAddonMigrations as fa, projectSubjectPath as fi, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as fn, deriveRecordingMode as fr, NC_CLIP_POST_ROLL_DEFAULT_SEC as ft, ActionTargetResolver as g, isDeviceScopedCap as ga, renameAlarmProfile as gi, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as gn, deviceRemovalHookCapability as gr, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX as gt, AUDIO_MACRO_LABELS as h, hydrateSchema as ha, readTimelapseGeneratedAt as hi, SCENE_DEFAULT_CHECK_INTERVAL_SEC as hn, deviceAttentionKind as hr, NC_CONDITION_CATALOG as ht, CLIP_TEXT_MODELS as i, BaseAddon as ia, occupancyScope as ii, PoolMemoryWatchdog as in, consumableFormOf as ir, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as it, DETECTION_PIPELINE_CAP_NAME as j, strictObject as ja, sceneMonitorCapability as ji, TrackPuritySchema as jn, isAlertEpisodeOpen as jr, NcAlarmPostTriggeredActionSchema as jt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as k, partialRecord as ka, ruleGroupingApplies as ki, TimelapseRuleSchema as kn, gifFromMp4Args as kr, NC_TEMPLATE_VARS as kt, resolveClusterModelPin as l, RECORD_QUERY_MAX as la, pickFaceRescoreIntervalMinutes as li, RetrainOriginSchema as ln, deleteAlarmProfile as lr, NC_ALARM_TRIGGERED_MAX_SEC as lt, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as m, defineRecordKinds as ma, readMotionTriggeredBy as mi, SCENE_DEFAULT_ANCHOR_THRESHOLD as mn, describeSystemEventFamilyProblem as mr, NC_CLIP_RETENTION_MAX_SEC as mt, DEFAULT_CLIP_MODEL as n, evaluateSensorEdge as na, normalizeNcMediaPolicy as ni, OpsLogEntrySchema as nn, classifyRetrainReview as nr, MotionTriggeredBySchema as nt, CLUSTER_MODEL_OWNER_ADDON_ID as o, CamProfileSchema as oa, paletteResultSchema as oi, RECORDING_SOURCE_CAMSTACK_ADDON as on, coreBlockIdFromAddonId as or, NC_ALARM_DELAY_MAX_SEC as ot, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as p, defineCustomActions as pa, readDeviceStateFrom as pi, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as pn, describeSystemEventDeliveryProblem as pr, NC_CLIP_PRE_ROLL_DEFAULT_SEC as pt, ListTrackRelationsResultSchema as q, systemEventSummarySplitOf as qi, armRemovalReconcile as qn, isSystemEventSummaryRule as qr, NcSnoozeSuppressedSchema as qt, CLIP_IMAGE_MODELS as r, isSourceCap as ra, notificationRulesCapability as ri, PackageLlmVerdictSchema as rn, cloneAlarmSettings as rr, NC_ALARM_DEFAULT_PROFILE_ID as rt, FACE_EMBEDDING_STEP_ID as s, InvalidRecordError as sa, parseAlertEpisodePayload as si, RebuildObjectEmbeddingsRefusalSchema as sn, cosineSimilarity as sr, NC_ALARM_NOTIFY_FIELDS as st, BUILTIN_CLIP_MODELS as t, canonicalHash as ta, normalizeNcCapTarget as ti, OPS_LOG_DEFAULT_LIMIT as tn, calendarEventLocalSpan as tr, MediaFileKindEnum as tt, ACTION_TARGET_INVALIDATION_EVENTS as u, createEvent as ua, pipelineAnalyticsCapability as ui, RetrainStatusSchema as un, deriveDetailCropRect as ur, NC_AUDIO_CONFIRM_HITS_DEFAULT as ut, ArchivedDebugNoteSchema as v, normalizeNodeId as va, resolveDeliveryParams as vi, SCENE_DEFAULT_UNCOVERED_POLICY as vn, embeddingModelFailedError as vr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as vt, ClearTrackRelationInputSchema as w, discriminatedUnion as wa, retrainRevisionConflictMessage as wi, SetTrackRelationInputSchema as wn, eventKindLabel as wr, NC_SENSOR_TRANSITION_KINDS as wt, BirthDecisionRecordSchema as x, _enum as xa, resolveModeNotifyPolicy as xi, SceneMonitorSchema as xn, embeddingRequirementsUnavailableError as xr, NC_GROUPING_DEFAULT_SEC as xt, BIRTH_DECISION_DEFAULT_LIMIT as y, sleep as ya, resolveLocationMode as yi, SCENE_DIVERGED as yn, embeddingRefusalOf as yr, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as yt, EVENT_OWNER_TYPES as z, EventCategory as za, subjectPathSvgPoints as zi, alarmPanelCapability as zn, isEventOwnerType as zr, NcRulePatchSchema as zt };
103754
+ export { MAX_TRACK_RELATIONS as $, withSystemEventClasses as $i, buildViewerLink as $n, ncMediaPolicyError as $r, NcTemplatePreviewSchema as $t, DETECTION_MACRO_CLASSES as A, partialRecord as Aa, ruleGroupingApplies as Ai, TrackPlacementSchema as An, isAlarmControllableCap as Ar, NcAlarmConfigSchema as At, EXPORT_DENSE_MAX_RANGES as B, EventCategory as Ba, subjectPathSvgPoints as Bi, alertEpisodeId as Bn, isKnownTemplateVar as Br, NcRuleSchema as Bt, COCO_TO_MACRO as C, array as Ca, resolveNcMediaImage as Ci, SetTrackPurityResultSchema as Cn, ensureAlarmProfiles as Cr, NC_GROUPING_MIN_SEC as Ct, DEFAULT_DETAIL_CROP_CONVENTION as D, looseObject as Da, ruleAutoTriggersAlarm as Di, TimelapseRuleInputSchema as Dn, failureContributionCapability as Dr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as Dt, CoverStateSchema as E, literal as Ea, rootSupplyServes as Ei, TRACK_RELATIONS_DEFAULT_LIMIT as En, faceGalleryCapability as Er, NC_STATE_SUMMARY_SECTION_IDS as Et, EMBEDDING_REQUIREMENTS_FAILED as F, tuple as Fa, servedTemplateVars as Fi, TrackSourceSchema as Fn, isDefaultAlarmProfileId as Fr, NcConditionDescriptorSchema as Ft, LabelAttributionSchema as G, systemEventFamilyProblems as Gi, applyNonBlockingEdit as Gn, isScheduleActive as Gr, NcSnoozeInputSchema as Gt, FULL_IMAGE_BBOX as H, sunTimes as Hi, alertEpisodePayload as Hn, isMediaOwnerType as Hr, NcRuleUpdateInputSchema as Ht, EMBEDDING_REQUIREMENTS_UNAVAILABLE as I, union as Ia, startMoverUnderClearance as Ii, activateAlarmProfile as In, isDetectionMacroClass as Ir, NcConditionsSchema as It, LockStateSchema as J, systemEventSummarySplitOf as Ji, assertTimelapseCadences as Jn, isVectorIndexDimConflict as Jr, NcStateSummarySectionIdSchema as Jt, ListTrackRelationsInputSchema as K, systemEventFilterApplies as Ki, applySecureOnArmEdit as Kn, isSystemDelivery as Kr, NcSnoozeSchema as Kt, EVENT_DENSITY_BATCH_MAX as L, unknown as La, storageOccupancyCapability as Li, addonWidgetsSourceCapability as Ln, isDrawableSubjectPath as Lr, NcRuleActionSchema as Lt, DeclaredDevices as M, strictObject as Ma, sceneMonitorCapability as Mi, TrackRelationKindSchema as Mn, isAlertEpisodeSeverity as Mr, NcAlarmSensorsInputSchema as Mt, DetectionSourceSchema as N, string as Na, secureActuationFor as Ni, TrackRelationSchema as Nn, isAppLinkBase as Nr, NcAlarmSensorsSchema as Nt, DEFAULT_EVENT_COLOR as O, number as Oa, ruleBelongsToAlarm as Oi, TimelapseRulePatchSchema as On, gifDeriveSpeed as Or, NC_TAXONOMY as Ot, EMBEDDING_MODEL_FAILED as P, templateLiteral as Pa, sensorRaisedOf as Pi, TrackSideSchema as Pn, isAudioClassName as Pr, NcAlarmSettingsPatchSchema as Pt, MAX_TRACK_PURITIES as Q, viewerLinkBaseOf as Qi, buildSubjectPath as Qn, memoizePinnedFfmpeg as Qr, NcTemplatePreviewInputSchema as Qt, EVENT_KIND_BY_CAP as R, DeviceType as Ra, subKindsOf as Ri, alarmDeviceSecureOnArm as Rn, isEventKindLabelKey as Rr, NcRuleInputSchema as Rt, BucketAccumulator as S, _enum as Sa, resolveModeNotifyPolicy as Si, SetTrackPurityInputSchema as Sn, encodeVectorBase64 as Sr, NC_GROUPING_MAX_SEC as St, ClearTrackRelationResultSchema as T, discriminatedUnion as Ta, retrainRevisionConflictMessage as Ti, TIMELAPSE_DENSE_FLOOR_SEC as Tn, evictionPolicyOfLocation as Tr, NC_SNOOZE_MAX_MINUTES as Tt, FailureCounters as U, syncActiveAlarmProfileSettings as Ui, applyBlockingEdit as Un, isRetiredClearKey as Ur, NcScheduleSchema as Ut, FIRST_LEVEL_MACRO_CLASSES as V, summarizeReview as Vi, alertEpisodeKind as Vn, isLabelSupplyStepId as Vr, NcRuleTargetSchema as Vt, LABEL_SUPPLY_MACRO as W, systemEventDeliveryProblems as Wi, applyModeDelaysEdits as Wn, isRootSuppliableStepId as Wr, NcSharedSequenceSchema as Wt, MAX_BIRTH_DECISION_RECORDS as X, templateVarsFor as Xi, audioModeOf as Xn, linkedStepOf as Xr, NcTaxonomySchema as Xt, MAX_ARCHIVED_DEBUG_NOTES as Y, templateCarriesSummary as Yi, audioMetricsCapability as Yn, kebabToCamel as Yr, NcSystemEventKindSchema as Yt, MAX_BIRTH_LATENCY_PROXY_MS as Z, vectorDimFromBase64 as Zi, buildEventKindDescriptor as Zn, mayWriteToLocation as Zr, NcTemplateDefaultSchema as Zt, AlarmArmModeSchema as _, isDeviceScopedCap as _a, renameAlarmProfile as _i, SCENE_DEFAULT_QUIET_SECONDS as _n, embeddingEncoderCapability as _r, NC_CONFIRM_DEFAULT_TIMEOUT_MS as _t, CLIP_EMBEDDING_STEP_ID as a, BaseAddon as aa, paintHex as ai, RECORDING_EXPORT_MAX_READ_BYTES as an, consumableLowPercentOf as ar, NC_ALARM_DELAY_FIELDS as at, BaseDevice as b, sleep as ba, resolveLocationMode as bi, SCENE_RESET_RECAPTURES as bn, embeddingRequirementsFailedError as br, NC_DEFAULT_SNOOZE_MINUTES as bt, readClusterModelPinStrict as c, InvalidRecordError as ca, parseProcStatus as ci, RetrainDismissedSchema as cn, createAlarmProfile as cr, NC_ALARM_SYSTEM_EVENT_KINDS as ct, APPEARANCE_BIN_COUNT as d, createEvent as da, plateGalleryCapability as di, RetrainVerdictSubjectSchema as dn, derivePostTriggeredAction as dr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as dt, zoneAnalyticsCapability as ea, normalizeNcAction as ei, NcTemplateVarDescriptorSchema as en, bundledCamstack as er, MOTION_CLOSE_AFTER_MS as et, APPEARANCE_BLOCKS as f, customAction as fa, preconditionOf as fi, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as fn, deriveRecordingMode as fr, NC_CLIP_POST_ROLL_DEFAULT_SEC as ft, ActionTargetResolver as g, hydrateSchema as ga, readTimelapseGeneratedAt as gi, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as gn, deviceRemovalHookCapability as gr, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX as gt, AUDIO_MACRO_LABELS as h, defineRecordKinds as ha, readMotionTriggeredBy as hi, SCENE_DEFAULT_CHECK_INTERVAL_SEC as hn, deviceAttentionKind as hr, NC_CONDITION_CATALOG as ht, CLIP_TEXT_MODELS as i, isSourceCap as ia, occupancyScope as ii, PoolMemoryWatchdog as in, consumableFormOf as ir, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as it, DETECTION_PIPELINE_CAP_NAME as j, record as ja, ruleKindOf as ji, TrackPuritySchema as jn, isAlertEpisodeOpen as jr, NcAlarmPostTriggeredActionSchema as jt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as k, object as ka, ruleDeviceCompatCapQueries as ki, TimelapseRuleSchema as kn, gifFromMp4Args as kr, NC_TEMPLATE_VARS as kt, resolveClusterModelPin as l, RECORD_MAX_DATA_BYTES as la, pickFaceRescoreIntervalMinutes as li, RetrainOriginSchema as ln, deleteAlarmProfile as lr, NC_ALARM_TRIGGERED_MAX_SEC as lt, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as m, defineCustomActions as ma, readDeviceStateFrom as mi, SCENE_DEFAULT_ANCHOR_THRESHOLD as mn, describeSystemEventFamilyProblem as mr, NC_CLIP_RETENTION_MAX_SEC as mt, DEFAULT_CLIP_MODEL as n, canonicalHash as na, normalizeNcMediaPolicy as ni, OpsLogEntrySchema as nn, classifyRetrainReview as nr, MotionTriggeredBySchema as nt, CLUSTER_MODEL_OWNER_ADDON_ID as o, CAP_ADVANCE_FIELDS as oa, paletteResultSchema as oi, RECORDING_SOURCE_CAMSTACK_ADDON as on, coreBlockIdFromAddonId as or, NC_ALARM_DELAY_MAX_SEC as ot, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as p, defineAddonMigrations as pa, projectSubjectPath as pi, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as pn, describeSystemEventDeliveryProblem as pr, NC_CLIP_PRE_ROLL_DEFAULT_SEC as pt, ListTrackRelationsResultSchema as q, systemEventSummaryScheduleOf as qi, armRemovalReconcile as qn, isSystemEventSummaryRule as qr, NcSnoozeSuppressedSchema as qt, CLIP_IMAGE_MODELS as r, evaluateSensorEdge as ra, notificationRulesCapability as ri, PackageLlmVerdictSchema as rn, cloneAlarmSettings as rr, NC_ALARM_DEFAULT_PROFILE_ID as rt, FACE_EMBEDDING_STEP_ID as s, CamProfileSchema as sa, parseAlertEpisodePayload as si, RebuildObjectEmbeddingsRefusalSchema as sn, cosineSimilarity as sr, NC_ALARM_NOTIFY_FIELDS as st, BUILTIN_CLIP_MODELS as t, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as ta, normalizeNcCapTarget as ti, OPS_LOG_DEFAULT_LIMIT as tn, calendarEventLocalSpan as tr, MediaFileKindEnum as tt, ACTION_TARGET_INVALIDATION_EVENTS as u, RECORD_QUERY_MAX as ua, pipelineAnalyticsCapability as ui, RetrainStatusSchema as un, deriveDetailCropRect as ur, NC_AUDIO_CONFIRM_HITS_DEFAULT as ut, ArchivedDebugNoteSchema as v, nodePin as va, resolveClipSearchMinScore as vi, SCENE_DEFAULT_UNCOVERED_POLICY as vn, embeddingModelFailedError as vr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as vt, ClearTrackRelationInputSchema as w, boolean as wa, resolvePoolMemoryPolicy as wi, SetTrackRelationInputSchema as wn, eventKindLabel as wr, NC_SENSOR_TRANSITION_KINDS as wt, BirthDecisionRecordSchema as x, ZodObject as xa, resolveModeDelays as xi, SceneMonitorSchema as xn, embeddingRequirementsUnavailableError as xr, NC_GROUPING_DEFAULT_SEC as xt, BIRTH_DECISION_DEFAULT_LIMIT as y, normalizeNodeId as ya, resolveDeliveryParams as yi, SCENE_DIVERGED as yn, embeddingRefusalOf as yr, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as yt, EVENT_OWNER_TYPES as z, errMsg as za, subjectPathSampleFromBox as zi, alarmPanelCapability as zn, isEventOwnerType as zr, NcRulePatchSchema as zt };