@camstack/addon-post-analysis 1.2.374 → 1.2.601

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 (14) hide show
  1. package/dist/{clip-model-registry-BIJ0ZD7t.mjs → clip-model-registry-BuM8eXlN.mjs} +329 -28
  2. package/dist/{clip-model-registry-BRzN2GzR.js → clip-model-registry-DAZ9ie-f.js} +352 -27
  3. package/dist/embedding-encoder/index.js +1 -1
  4. package/dist/embedding-encoder/index.mjs +1 -1
  5. package/dist/pipeline-analytics/_stub.js +2 -2
  6. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BYu-s1rf.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DAs_96VP.mjs} +3 -3
  7. package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Ds_wGoAi.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CElkWYPg.mjs} +1 -1
  8. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-SRvLcL_J.mjs +26 -0
  9. package/dist/pipeline-analytics/{hostInit-DEl2xA0o.mjs → hostInit-C3wjY7W8.mjs} +3 -3
  10. package/dist/pipeline-analytics/index.js +79597 -78981
  11. package/dist/pipeline-analytics/index.mjs +79599 -78983
  12. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  13. package/package.json +1 -1
  14. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BjCURGur.mjs +0 -26
@@ -4168,6 +4168,12 @@ var numberProcessor = (schema, ctx, _json, _params) => {
4168
4168
  var booleanProcessor = (_schema, _ctx, json, _params) => {
4169
4169
  json.type = "boolean";
4170
4170
  };
4171
+ var bigintProcessor = (_schema, ctx, _json, _params) => {
4172
+ if (ctx.unrepresentable === "throw") throw new Error("BigInt cannot be represented in JSON Schema");
4173
+ };
4174
+ var symbolProcessor = (_schema, ctx, _json, _params) => {
4175
+ if (ctx.unrepresentable === "throw") throw new Error("Symbols cannot be represented in JSON Schema");
4176
+ };
4171
4177
  var nullProcessor = (_schema, ctx, json, _params) => {
4172
4178
  if (ctx.target === "openapi-3.0") {
4173
4179
  json.type = "string";
@@ -4175,12 +4181,17 @@ var nullProcessor = (_schema, ctx, json, _params) => {
4175
4181
  json.enum = [null];
4176
4182
  } else json.type = "null";
4177
4183
  };
4184
+ var undefinedProcessor = (_schema, ctx, _json, _params) => {
4185
+ if (ctx.unrepresentable === "throw") throw new Error("Undefined cannot be represented in JSON Schema");
4186
+ };
4178
4187
  var voidProcessor = (_schema, ctx, _json, _params) => {
4179
4188
  if (ctx.unrepresentable === "throw") throw new Error("Void cannot be represented in JSON Schema");
4180
4189
  };
4181
4190
  var neverProcessor = (_schema, _ctx, json, _params) => {
4182
4191
  json.not = {};
4183
4192
  };
4193
+ var anyProcessor = (_schema, _ctx, _json, _params) => {};
4194
+ var unknownProcessor = (_schema, _ctx, _json, _params) => {};
4184
4195
  var dateProcessor = (_schema, ctx, _json, _params) => {
4185
4196
  if (ctx.unrepresentable === "throw") throw new Error("Date cannot be represented in JSON Schema");
4186
4197
  };
@@ -4212,6 +4223,9 @@ var literalProcessor = (schema, ctx, json, _params) => {
4212
4223
  json.enum = vals;
4213
4224
  }
4214
4225
  };
4226
+ var nanProcessor = (_schema, ctx, _json, _params) => {
4227
+ if (ctx.unrepresentable === "throw") throw new Error("NaN cannot be represented in JSON Schema");
4228
+ };
4215
4229
  var templateLiteralProcessor = (schema, _ctx, json, _params) => {
4216
4230
  const _json = json;
4217
4231
  const pattern = schema._zod.pattern;
@@ -4219,12 +4233,43 @@ var templateLiteralProcessor = (schema, _ctx, json, _params) => {
4219
4233
  _json.type = "string";
4220
4234
  _json.pattern = pattern.source;
4221
4235
  };
4236
+ var fileProcessor = (schema, _ctx, json, _params) => {
4237
+ const _json = json;
4238
+ const file = {
4239
+ type: "string",
4240
+ format: "binary",
4241
+ contentEncoding: "binary"
4242
+ };
4243
+ const { minimum, maximum, mime } = schema._zod.bag;
4244
+ if (minimum !== void 0) file.minLength = minimum;
4245
+ if (maximum !== void 0) file.maxLength = maximum;
4246
+ if (mime) if (mime.length === 1) {
4247
+ file.contentMediaType = mime[0];
4248
+ Object.assign(_json, file);
4249
+ } else {
4250
+ Object.assign(_json, file);
4251
+ _json.anyOf = mime.map((m) => ({ contentMediaType: m }));
4252
+ }
4253
+ else Object.assign(_json, file);
4254
+ };
4255
+ var successProcessor = (_schema, _ctx, json, _params) => {
4256
+ json.type = "boolean";
4257
+ };
4222
4258
  var customProcessor = (_schema, ctx, _json, _params) => {
4223
4259
  if (ctx.unrepresentable === "throw") throw new Error("Custom types cannot be represented in JSON Schema");
4224
4260
  };
4261
+ var functionProcessor = (_schema, ctx, _json, _params) => {
4262
+ if (ctx.unrepresentable === "throw") throw new Error("Function types cannot be represented in JSON Schema");
4263
+ };
4225
4264
  var transformProcessor = (_schema, ctx, _json, _params) => {
4226
4265
  if (ctx.unrepresentable === "throw") throw new Error("Transforms cannot be represented in JSON Schema");
4227
4266
  };
4267
+ var mapProcessor = (_schema, ctx, _json, _params) => {
4268
+ if (ctx.unrepresentable === "throw") throw new Error("Map cannot be represented in JSON Schema");
4269
+ };
4270
+ var setProcessor = (_schema, ctx, _json, _params) => {
4271
+ if (ctx.unrepresentable === "throw") throw new Error("Set cannot be represented in JSON Schema");
4272
+ };
4228
4273
  var arrayProcessor = (schema, ctx, _json, params) => {
4229
4274
  const json = _json;
4230
4275
  const def = schema._zod.def;
@@ -4429,6 +4474,12 @@ var readonlyProcessor = (schema, ctx, json, params) => {
4429
4474
  seen.ref = def.innerType;
4430
4475
  json.readOnly = true;
4431
4476
  };
4477
+ var promiseProcessor = (schema, ctx, _json, params) => {
4478
+ const def = schema._zod.def;
4479
+ process(def.innerType, ctx, params);
4480
+ const seen = ctx.seen.get(schema);
4481
+ seen.ref = def.innerType;
4482
+ };
4432
4483
  var optionalProcessor = (schema, ctx, _json, params) => {
4433
4484
  const def = schema._zod.def;
4434
4485
  process(def.innerType, ctx, params);
@@ -4441,6 +4492,81 @@ var lazyProcessor = (schema, ctx, _json, params) => {
4441
4492
  const seen = ctx.seen.get(schema);
4442
4493
  seen.ref = innerType;
4443
4494
  };
4495
+ var allProcessors = {
4496
+ string: stringProcessor,
4497
+ number: numberProcessor,
4498
+ boolean: booleanProcessor,
4499
+ bigint: bigintProcessor,
4500
+ symbol: symbolProcessor,
4501
+ null: nullProcessor,
4502
+ undefined: undefinedProcessor,
4503
+ void: voidProcessor,
4504
+ never: neverProcessor,
4505
+ any: anyProcessor,
4506
+ unknown: unknownProcessor,
4507
+ date: dateProcessor,
4508
+ enum: enumProcessor,
4509
+ literal: literalProcessor,
4510
+ nan: nanProcessor,
4511
+ template_literal: templateLiteralProcessor,
4512
+ file: fileProcessor,
4513
+ success: successProcessor,
4514
+ custom: customProcessor,
4515
+ function: functionProcessor,
4516
+ transform: transformProcessor,
4517
+ map: mapProcessor,
4518
+ set: setProcessor,
4519
+ array: arrayProcessor,
4520
+ object: objectProcessor,
4521
+ union: unionProcessor,
4522
+ intersection: intersectionProcessor,
4523
+ tuple: tupleProcessor,
4524
+ record: recordProcessor,
4525
+ nullable: nullableProcessor,
4526
+ nonoptional: nonoptionalProcessor,
4527
+ default: defaultProcessor,
4528
+ prefault: prefaultProcessor,
4529
+ catch: catchProcessor,
4530
+ pipe: pipeProcessor,
4531
+ readonly: readonlyProcessor,
4532
+ promise: promiseProcessor,
4533
+ optional: optionalProcessor,
4534
+ lazy: lazyProcessor
4535
+ };
4536
+ function toJSONSchema(input, params) {
4537
+ if ("_idmap" in input) {
4538
+ const registry = input;
4539
+ const ctx = initializeContext({
4540
+ ...params,
4541
+ processors: allProcessors
4542
+ });
4543
+ const defs = {};
4544
+ for (const entry of registry._idmap.entries()) {
4545
+ const [_, schema] = entry;
4546
+ process(schema, ctx);
4547
+ }
4548
+ const schemas = {};
4549
+ ctx.external = {
4550
+ registry,
4551
+ uri: params?.uri,
4552
+ defs
4553
+ };
4554
+ for (const entry of registry._idmap.entries()) {
4555
+ const [key, schema] = entry;
4556
+ extractDefs(ctx, schema);
4557
+ schemas[key] = finalize(ctx, schema);
4558
+ }
4559
+ if (Object.keys(defs).length > 0) schemas.__shared = { [ctx.target === "draft-2020-12" ? "$defs" : "definitions"]: defs };
4560
+ return { schemas };
4561
+ }
4562
+ const ctx = initializeContext({
4563
+ ...params,
4564
+ processors: allProcessors
4565
+ });
4566
+ process(input, ctx);
4567
+ extractDefs(ctx, input);
4568
+ return finalize(ctx, input);
4569
+ }
4444
4570
  //#endregion
4445
4571
  //#region ../../node_modules/zod/v4/classic/iso.js
4446
4572
  var ZodISODateTime = /*@__PURE__*/ $constructor("ZodISODateTime", (inst, def) => {
@@ -5477,7 +5603,7 @@ var ZodIssueCode = {
5477
5603
  var ZodFirstPartyTypeKind;
5478
5604
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5479
5605
  //#endregion
5480
- //#region ../types/dist/sleep-WsrozGDL.mjs
5606
+ //#region ../types/dist/sleep-bZIhUvjd.mjs
5481
5607
  /**
5482
5608
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5483
5609
  * window to float samples (D455).
@@ -5594,7 +5720,7 @@ function isKeychainStoredField(field) {
5594
5720
  var SECRET_CLEAR = { $secretClear: true };
5595
5721
  /** The `'***'` token D634 redaction writes for non-admins. */
5596
5722
  var LEGACY_DEVICE_REDACTION = "***";
5597
- function isRecord$4(value) {
5723
+ function isRecord$5(value) {
5598
5724
  return typeof value === "object" && value !== null && !Array.isArray(value);
5599
5725
  }
5600
5726
  function makeSecretMarker(ref) {
@@ -5605,12 +5731,12 @@ function makeSecretMarker(ref) {
5605
5731
  }
5606
5732
  /** A stored marker: an object whose `$secret` is a non-empty string. */
5607
5733
  function isSecretMarker(value) {
5608
- if (!isRecord$4(value)) return false;
5734
+ if (!isRecord$5(value)) return false;
5609
5735
  const ref = value["$secret"];
5610
5736
  return typeof ref === "string" && ref.length > 0;
5611
5737
  }
5612
5738
  function isSecretClear(value) {
5613
- return isRecord$4(value) && value["$secretClear"] === true;
5739
+ return isRecord$5(value) && value["$secretClear"] === true;
5614
5740
  }
5615
5741
  /**
5616
5742
  * The UI view of a stored secret field value: a marker becomes "set", inline
@@ -6220,7 +6346,7 @@ var KeychainWriteRefusedError = class extends Error {
6220
6346
  }
6221
6347
  };
6222
6348
  var KEEP = { kind: "keep" };
6223
- function isRecord$3(value) {
6349
+ function isRecord$4(value) {
6224
6350
  return typeof value === "object" && value !== null && !Array.isArray(value);
6225
6351
  }
6226
6352
  function defaultMintId() {
@@ -6233,7 +6359,7 @@ function collectSecretMarkerRefs(value, out = []) {
6233
6359
  return out;
6234
6360
  }
6235
6361
  if (Array.isArray(value)) for (const item of value) collectSecretMarkerRefs(item, out);
6236
- else if (isRecord$3(value)) for (const child of Object.values(value)) collectSecretMarkerRefs(child, out);
6362
+ else if (isRecord$4(value)) for (const child of Object.values(value)) collectSecretMarkerRefs(child, out);
6237
6363
  return out;
6238
6364
  }
6239
6365
  async function storedValueEquals(secrets, marker, candidate) {
@@ -6288,7 +6414,7 @@ function rowId(row, idKey) {
6288
6414
  return null;
6289
6415
  }
6290
6416
  async function writeArray(ctx, node, incoming, stored, fieldPath) {
6291
- const storedRows = Array.isArray(stored) ? stored.filter(isRecord$3) : [];
6417
+ const storedRows = Array.isArray(stored) ? stored.filter(isRecord$4) : [];
6292
6418
  if (!Array.isArray(incoming)) {
6293
6419
  ctx.deletes.push(...collectSecretMarkerRefs(storedRows));
6294
6420
  return {
@@ -6304,7 +6430,7 @@ async function writeArray(ctx, node, incoming, stored, fieldPath) {
6304
6430
  const kept = /* @__PURE__ */ new Set();
6305
6431
  const rows = [];
6306
6432
  for (const row of incoming) {
6307
- if (!isRecord$3(row)) {
6433
+ if (!isRecord$4(row)) {
6308
6434
  rows.push(row);
6309
6435
  continue;
6310
6436
  }
@@ -6329,7 +6455,7 @@ async function writeNode(ctx, node, incoming, stored, fieldPath) {
6329
6455
  case "leaf": return writeLeaf(ctx, incoming, stored, fieldPath);
6330
6456
  case "array": return writeArray(ctx, node, incoming, stored, fieldPath);
6331
6457
  case "object": {
6332
- if (!isRecord$3(incoming)) {
6458
+ if (!isRecord$4(incoming)) {
6333
6459
  if (incoming === void 0) return KEEP;
6334
6460
  ctx.deletes.push(...collectSecretMarkerRefs(stored));
6335
6461
  return {
@@ -6337,7 +6463,7 @@ async function writeNode(ctx, node, incoming, stored, fieldPath) {
6337
6463
  value: incoming
6338
6464
  };
6339
6465
  }
6340
- const storedObj = isRecord$3(stored) ? stored : {};
6466
+ const storedObj = isRecord$4(stored) ? stored : {};
6341
6467
  return {
6342
6468
  kind: "value",
6343
6469
  value: await writeMembers(ctx, node.children, incoming, storedObj, (m) => `${fieldPath}.${m}`)
@@ -6460,7 +6586,7 @@ async function resolveSecretMarkers(value, secrets, options = {}) {
6460
6586
  value: items
6461
6587
  };
6462
6588
  }
6463
- if (isRecord$3(v)) {
6589
+ if (isRecord$4(v)) {
6464
6590
  const out = {};
6465
6591
  for (const [k, child] of Object.entries(v)) {
6466
6592
  const s = substitute(child);
@@ -6492,7 +6618,7 @@ var SecretOverwriteRefusedError = class extends Error {
6492
6618
  this.name = "SecretOverwriteRefusedError";
6493
6619
  }
6494
6620
  };
6495
- function isRecord$2(value) {
6621
+ function isRecord$3(value) {
6496
6622
  return typeof value === "object" && value !== null && !Array.isArray(value);
6497
6623
  }
6498
6624
  function resolvedValue(pass, marker) {
@@ -6521,7 +6647,7 @@ function inArray(pass, incoming, stored) {
6521
6647
  return incoming.map((item, index) => {
6522
6648
  const twin = stored[index];
6523
6649
  if (isSecretMarker(twin)) return typeof item === "string" && item === resolvedValue(pass, twin) ? twin : item;
6524
- if (isRecord$2(item) && isRecord$2(twin)) return inArrayRow(pass, item, twin);
6650
+ if (isRecord$3(item) && isRecord$3(twin)) return inArrayRow(pass, item, twin);
6525
6651
  if (Array.isArray(item) && Array.isArray(twin)) return inArray(pass, item, twin);
6526
6652
  return item;
6527
6653
  });
@@ -6532,7 +6658,7 @@ function inArrayRow(pass, incoming, stored) {
6532
6658
  const twin = stored[key];
6533
6659
  if (isSecretMarker(twin)) {
6534
6660
  if (typeof value === "string" && value === resolvedValue(pass, twin)) out[key] = twin;
6535
- } else if (isRecord$2(value) && isRecord$2(twin)) out[key] = inArrayRow(pass, value, twin);
6661
+ } else if (isRecord$3(value) && isRecord$3(twin)) out[key] = inArrayRow(pass, value, twin);
6536
6662
  else if (Array.isArray(value) && Array.isArray(twin)) out[key] = inArray(pass, value, twin);
6537
6663
  }
6538
6664
  return out;
@@ -6540,7 +6666,7 @@ function inArrayRow(pass, incoming, stored) {
6540
6666
  async function walk(pass, incoming, stored) {
6541
6667
  if (isSecretMarker(stored)) return atMarker(pass, incoming, stored);
6542
6668
  if (Array.isArray(incoming) && Array.isArray(stored)) return inArray(pass, incoming, stored);
6543
- if (!isRecord$2(incoming) || !isRecord$2(stored)) return incoming;
6669
+ if (!isRecord$3(incoming) || !isRecord$3(stored)) return incoming;
6544
6670
  const out = { ...incoming };
6545
6671
  for (const [key, value] of Object.entries(incoming)) out[key] = await walk(pass, value, stored[key]);
6546
6672
  return out;
@@ -6571,7 +6697,7 @@ async function restoreUnchangedSecrets(input) {
6571
6697
  function isJsonEqual(a, b) {
6572
6698
  if (Object.is(a, b)) return true;
6573
6699
  if (Array.isArray(a)) return Array.isArray(b) && a.length === b.length && a.every((v, i) => isJsonEqual(v, b[i]));
6574
- if (isRecord$2(a) && isRecord$2(b)) {
6700
+ if (isRecord$3(a) && isRecord$3(b)) {
6575
6701
  const keys = Object.keys(a);
6576
6702
  if (keys.length !== Object.keys(b).length) return false;
6577
6703
  return keys.every((k) => Object.prototype.hasOwnProperty.call(b, k) && isJsonEqual(a[k], b[k]));
@@ -6595,7 +6721,7 @@ function markerKeysOf(blob, owner) {
6595
6721
  }
6596
6722
  function nodeFromStored(value, owner) {
6597
6723
  if (isSecretMarker(value)) return isSecretRefOwnedBy(value.$secret, owner) ? { kind: "leaf" } : null;
6598
- if (!isRecord$2(value)) return null;
6724
+ if (!isRecord$3(value)) return null;
6599
6725
  const children = /* @__PURE__ */ new Map();
6600
6726
  for (const [key, child] of Object.entries(value)) {
6601
6727
  const node = nodeFromStored(child, owner);
@@ -7383,7 +7509,7 @@ var BaseAddon = class {
7383
7509
  if (!ctx) return;
7384
7510
  const addonId = ctx.id;
7385
7511
  setImmediate(() => {
7386
- ctx.api.addons?.restartAddon?.mutate({ addonId }).then(() => {
7512
+ ctx.api.addons.restartAddon.mutate({ addonId }).then(() => {
7387
7513
  ctx.logger.info("addon auto-restart triggered by restart-required setting change", { meta: { changedFields: patchKeys.filter((k) => restartKeys.has(k)) } });
7388
7514
  }).catch((err) => {
7389
7515
  ctx.logger.error("addon auto-restart failed", { meta: { error: err instanceof Error ? err.message : String(err) } });
@@ -7892,8 +8018,39 @@ var RECORD_DEFAULT_MAX_DATA_BYTES = 64 * 1024;
7892
8018
  var RECORD_MAX_DATA_BYTES = 1024 * 1024;
7893
8019
  var RECORD_BATCH_MAX = 1e3;
7894
8020
  var RECORD_QUERY_MAX = 1e3;
8021
+ /** A kind in the `settings` file may not bound itself above this (D447: high volume is `events`). */
8022
+ var RECORD_SETTINGS_MAX_ROWS = 5e4;
8023
+ var PREFIX = "records/";
8024
+ /** The base of every records failure. `detail` is the human part of the message. */
8025
+ var RecordsError = class extends Error {
8026
+ code;
8027
+ detail;
8028
+ constructor(code, detail) {
8029
+ super(`${PREFIX}${code}: ${detail}`);
8030
+ this.name = "RecordsError";
8031
+ this.code = code;
8032
+ this.detail = detail;
8033
+ }
8034
+ };
8035
+ var InvalidRecordError = class extends RecordsError {
8036
+ constructor(detail) {
8037
+ super("invalid-record", detail);
8038
+ this.name = "InvalidRecordError";
8039
+ }
8040
+ };
8041
+ /** A kind declaration the engine refuses (non-additive change, bad shape, wrong file). */
8042
+ var DeclarationRefusedError = class extends RecordsError {
8043
+ constructor(detail) {
8044
+ super("declaration-refused", detail);
8045
+ this.name = "DeclarationRefusedError";
8046
+ }
8047
+ };
7895
8048
  function defOf(schema) {
7896
- return schema._zod?.def ?? {};
8049
+ const zodBag = Reflect.get(schema, "_zod");
8050
+ if (typeof zodBag !== "object" || zodBag === null) return {};
8051
+ const def = Reflect.get(zodBag, "def");
8052
+ if (typeof def !== "object" || def === null) return {};
8053
+ return def;
7897
8054
  }
7898
8055
  function declaredHere(schema) {
7899
8056
  return globalRegistry.get(schema)?.secret === true;
@@ -7956,6 +8113,42 @@ function collectZodSecretPaths(schema, prefix = "") {
7956
8113
  return [...new Set(paths)];
7957
8114
  }
7958
8115
  /**
8116
+ * Secret fields of a record, addressed the way a Zod schema declares them
8117
+ * (`collectZodSecretPaths`): dotted keys, `[]` for "each element of this array"
8118
+ * (`auth.accessToken`, `headers[].value`).
8119
+ *
8120
+ * Array elements are matched by a DECLARED id key (`secretArrayKeys`:
8121
+ * `{ headers: 'name' }`), never by index, so reordering a list keeps every
8122
+ * keychain ref (the same rule as `arrayItemFieldPath`). The concrete path of a
8123
+ * leaf names its element: `headers[X-Api].value`.
8124
+ *
8125
+ * Pure and browser-safe. Nothing here mutates: every transform returns a new value.
8126
+ */
8127
+ /** The array prefixes (declared form, e.g. `headers` or `a.headers`) of a path. */
8128
+ function parseSecretPath(path) {
8129
+ if (path.length === 0) throw new InvalidRecordError("an empty secret path");
8130
+ return path.split(".").map((raw) => {
8131
+ const each = raw.endsWith("[]");
8132
+ const key = each ? raw.slice(0, -2) : raw;
8133
+ if (key.length === 0) throw new InvalidRecordError(`secret path "${path}" has an empty segment`);
8134
+ return {
8135
+ key,
8136
+ each
8137
+ };
8138
+ });
8139
+ }
8140
+ /** The declared array prefixes of `path` that need an id key (`headers`, `a.rows`). */
8141
+ function secretArrayPrefixes(path) {
8142
+ const segments = parseSecretPath(path);
8143
+ const prefixes = [];
8144
+ const walked = [];
8145
+ for (const segment of segments) {
8146
+ walked.push(segment.key);
8147
+ if (segment.each) prefixes.push(walked.join("."));
8148
+ }
8149
+ return prefixes;
8150
+ }
8151
+ /**
7959
8152
  * Record kinds (D881): the declaration an addon makes of one kind of fact, the
7960
8153
  * Zod row schema that describes it, and the helper that turns the two into the
7961
8154
  * JSON the engine stores.
@@ -8023,6 +8216,90 @@ var RecordKindDeclarationSchema = object({
8023
8216
  }).strict();
8024
8217
  /** The kind names: lower-case, dash separated, short enough for an index name. */
8025
8218
  var RecordKindNameSchema = string().regex(/^[a-z][a-z0-9-]{0,47}$/);
8219
+ /** Cross-field rules a declaration must satisfy. Throws {@link DeclarationRefusedError}. */
8220
+ function assertValidDeclaration(name, decl) {
8221
+ const refuse = (why) => {
8222
+ throw new DeclarationRefusedError(`kind "${name}": ${why}`);
8223
+ };
8224
+ if (!RecordKindNameSchema.safeParse(name).success) refuse("the name must be lower-case-dashed");
8225
+ const seen = /* @__PURE__ */ new Set();
8226
+ for (const index of decl.indexes) {
8227
+ if (seen.has(index.name)) refuse(`index name "${index.name}" is declared twice`);
8228
+ seen.add(index.name);
8229
+ }
8230
+ const { retention } = decl;
8231
+ const hasSecrets = decl.secretPaths.length > 0;
8232
+ if ("ttlMs" in retention) {
8233
+ if (retention.from === "at" && decl.at !== "required") refuse("a ttl from \"at\" needs at: \"required\"");
8234
+ if (hasSecrets) refuse("a kind with secret fields cannot use engine TTL (its keychain values would be orphaned)");
8235
+ }
8236
+ if ("maxRows" in retention || "maxRowsPerDevice" in retention) {
8237
+ if (retention.maxRowsPerDevice !== void 0 && decl.device !== "required") refuse("maxRowsPerDevice needs device: \"required\"");
8238
+ if (decl.at !== "required") refuse("a row bound trims the oldest \"at\": it needs at: \"required\"");
8239
+ if (hasSecrets) refuse("a kind with secret fields cannot use an engine row bound");
8240
+ const bound = Math.max(retention.maxRows ?? 0, retention.maxRowsPerDevice ?? 0);
8241
+ if (decl.database === "settings" && bound > 5e4) refuse(`a row bound above ${RECORD_SETTINGS_MAX_ROWS} belongs in database: "events" (a big delete on the settings thread stalls every configuration read)`);
8242
+ }
8243
+ if (decl.deviceRemoval === "delete" && decl.device === "none") refuse("deviceRemoval: \"delete\" needs a device: \"required\" or \"optional\"");
8244
+ for (const path of decl.secretPaths) for (const prefix of secretArrayPrefixes(path)) if (decl.secretArrayKeys[prefix] === void 0) refuse(`secret path "${path}" crosses the array "${prefix}": declare its id key in secretArrayKeys`);
8245
+ }
8246
+ function bodyFieldsOf(schema) {
8247
+ return { ...toJSONSchema(schema, {
8248
+ unrepresentable: "any",
8249
+ io: "input"
8250
+ }) };
8251
+ }
8252
+ function isRecordLike(value) {
8253
+ return typeof value === "object" && value !== null && !Array.isArray(value);
8254
+ }
8255
+ /** Does every branch of the body schema carry `field`? (A discriminated union has several.) */
8256
+ function hasNameField(json, field) {
8257
+ const branches = json["oneOf"] ?? json["anyOf"];
8258
+ if (Array.isArray(branches)) return branches.length > 0 && branches.every((b) => isRecordLike(b) && hasNameField(b, field));
8259
+ const properties = json["properties"];
8260
+ return isRecordLike(properties) && Object.prototype.hasOwnProperty.call(properties, field);
8261
+ }
8262
+ /**
8263
+ * Declare the kinds of a package. The keys are the kind names. The result is
8264
+ * what `ctx.records.declare` sends to the engine and what `ctx.records.kind`
8265
+ * types its handle from.
8266
+ */
8267
+ function defineRecordKinds(specs) {
8268
+ const out = {};
8269
+ for (const [name, spec] of Object.entries(specs)) {
8270
+ const secretPaths = collectZodSecretPaths(spec.schema);
8271
+ const nameField = spec.entry?.nameField ?? "name";
8272
+ const fields = bodyFieldsOf(spec.schema);
8273
+ if (spec.entry !== void 0 && !hasNameField(fields, nameField)) throw new DeclarationRefusedError(`kind "${name}": an entry kind's schema needs a "${nameField}" field`);
8274
+ const parsed = RecordKindDeclarationSchema.parse({
8275
+ database: spec.database,
8276
+ class: spec.class,
8277
+ writeTrigger: spec.writeTrigger,
8278
+ device: spec.device,
8279
+ at: spec.at,
8280
+ indexes: spec.indexes === void 0 ? void 0 : [...spec.indexes],
8281
+ retention: spec.retention,
8282
+ deviceRemoval: spec.deviceRemoval,
8283
+ maxDataBytes: spec.maxDataBytes,
8284
+ secretPaths: [...secretPaths],
8285
+ secretArrayKeys: spec.secretArrayKeys === void 0 ? void 0 : { ...spec.secretArrayKeys },
8286
+ adoptsFrom: spec.adoptsFrom,
8287
+ transactFamily: spec.transactFamily,
8288
+ entry: spec.entry === void 0 ? void 0 : {
8289
+ title: spec.entry.title,
8290
+ nameField,
8291
+ fields
8292
+ }
8293
+ });
8294
+ assertValidDeclaration(name, parsed);
8295
+ out[name] = {
8296
+ name,
8297
+ schema: spec.schema,
8298
+ declaration: parsed
8299
+ };
8300
+ }
8301
+ return out;
8302
+ }
8026
8303
  /** Shared Zod schemas used across streaming capabilities. */
8027
8304
  var CamProfileSchema = _enum([
8028
8305
  "high",
@@ -17710,13 +17987,23 @@ method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: arr
17710
17987
  }), RecordQueryResultSchema, { auth: "admin" }), method(object({
17711
17988
  owner: string().min(1),
17712
17989
  kind: RecordKindNameSchema,
17713
- records: array(RecordInputSchema).min(1).max(RECORD_BATCH_MAX),
17990
+ records: array(RecordInputSchema).max(RECORD_BATCH_MAX),
17714
17991
  /** The LAST batch: the copy is complete, the boot guard stops asking. */
17715
17992
  complete: boolean().optional()
17716
- }), object({ adopted: number().int() }), {
17993
+ }).refine((input) => input.records.length > 0 || input.complete === true, { message: "records must be non-empty unless complete is true" }), object({ adopted: number().int() }), {
17717
17994
  kind: "mutation",
17718
17995
  auth: "admin"
17719
- });
17996
+ }), method(object({
17997
+ collection: string().min(1),
17998
+ cursor: string().optional(),
17999
+ limit: number().int().min(1).max(1e3).optional()
18000
+ }), object({
18001
+ rows: array(object({
18002
+ id: string(),
18003
+ data: record(string(), unknown())
18004
+ })),
18005
+ nextCursor: string().nullable()
18006
+ }), { auth: "admin" }), method(object({ collection: string().min(1) }), object({ adopted: boolean() }), { auth: "admin" });
17720
18007
  /**
17721
18008
  * record-entries - the ONE admin surface for every list of user-created entries
17722
18009
  * (D881): notification targets, brokers, LLM profiles, anything an addon
@@ -44111,6 +44398,7 @@ var NcThrottleSchema = object({
44111
44398
  var NC_CONFIRM_MIN_TIMEOUT_MS = 1e3;
44112
44399
  var NC_CONFIRM_MAX_TIMEOUT_MS = 2e4;
44113
44400
  var NC_CONFIRM_DEFAULT_TIMEOUT_MS = 8e3;
44401
+ var NC_CONFIRM_DEFAULT_MAX_IMAGE_PX = 448;
44114
44402
  /** Comparison the model's COUNT must satisfy for the notification to fire. */
44115
44403
  var NcConfirmExpectSchema = object({
44116
44404
  op: _enum([
@@ -68941,13 +69229,14 @@ var BaseDevice = class {
68941
69229
  get state() {
68942
69230
  if (!this._stateProxyCache) {
68943
69231
  const cache = {};
68944
- const handler = { get: (_target, key) => {
69232
+ const handler = { get: (target, key) => {
68945
69233
  const k = key;
68946
- if (k in cache) return cache[k];
69234
+ const existing = Reflect.get(target, k);
69235
+ if (existing !== void 0) return existing;
68947
69236
  const cap = DEVICE_LOCAL_STATE_CAPS[k];
68948
69237
  if (!cap) return void 0;
68949
69238
  const proxy = this.sliceProxy(cap);
68950
- cache[k] = proxy;
69239
+ Reflect.set(target, k, proxy);
68951
69240
  return proxy;
68952
69241
  } };
68953
69242
  this._stateProxyCache = new Proxy(cache, handler);
@@ -69146,7 +69435,7 @@ var BaseDevice = class {
69146
69435
  async updateSourceInfo(patch) {
69147
69436
  const next = mergeSourceInfo(this.sourceInfo, patch);
69148
69437
  this._sourceInfoCache = Object.freeze({ ...next });
69149
- const action = this.ctx.api?.deviceManager?.setMetadata;
69438
+ const action = this.ctx.api.deviceManager?.setMetadata;
69150
69439
  if (action) try {
69151
69440
  await action.mutate({
69152
69441
  deviceId: this.id,
@@ -69181,7 +69470,7 @@ var BaseDevice = class {
69181
69470
  * device boot on a meta refresh.
69182
69471
  */
69183
69472
  async refreshFeatures() {
69184
- const action = this.ctx.api?.deviceManager?.registerDevice;
69473
+ const action = this.ctx.api.deviceManager?.registerDevice;
69185
69474
  if (!action) return;
69186
69475
  try {
69187
69476
  await action.mutate({
@@ -76400,6 +76689,12 @@ Object.freeze({
76400
76689
  addonId: null,
76401
76690
  access: "delete"
76402
76691
  },
76692
+ "storageAdmin.isAdoptedLegacyTable": {
76693
+ capName: "storage-admin",
76694
+ capScope: "system",
76695
+ addonId: null,
76696
+ access: "view"
76697
+ },
76403
76698
  "storageAdmin.listKinds": {
76404
76699
  capName: "storage-admin",
76405
76700
  capScope: "system",
@@ -76412,6 +76707,12 @@ Object.freeze({
76412
76707
  addonId: null,
76413
76708
  access: "view"
76414
76709
  },
76710
+ "storageAdmin.readLegacyCollection": {
76711
+ capName: "storage-admin",
76712
+ capScope: "system",
76713
+ addonId: null,
76714
+ access: "view"
76715
+ },
76415
76716
  "storageAdmin.readRecords": {
76416
76717
  capName: "storage-admin",
76417
76718
  capScope: "system",
@@ -84642,4 +84943,4 @@ function buildClipModelRegistry(entries) {
84642
84943
  /** The built-in catalog's registry. */
84643
84944
  var BUILTIN_CLIP_MODELS = buildClipModelRegistry(CLIP_IMAGE_MODELS);
84644
84945
  //#endregion
84645
- export { MotionTriggeredBySchema as $, union as $i, deriveRecordingMode as $n, ruleAutoTriggersAlarm as $r, PoolMemoryWatchdog as $t, DetectionSourceSchema as A, createEvent as Ai, addonWidgetsSourceCapability as An, isSystemEventSummaryRule as Ar, NcConditionDescriptorSchema as At, FailureCounters as B, array as Bi, audioModeOf as Bn, pipelineAnalyticsCapability as Br, NcScheduleSchema as Bt, CoverStateSchema as C, canonicalHash as Ci, TimelapseRuleSchema as Cn, isKnownTemplateVar as Cr, NC_TAXONOMY as Ct, DETECTION_MACRO_CLASSES as D, errMsg as Di, TrackSideSchema as Dn, isRootSuppliableStepId as Dr, NcAlarmSensorsInputSchema as Dt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as E, DeviceType as Ei, TrackRelationSchema as En, isRetiredClearKey as Er, NcAlarmPostTriggeredActionSchema as Et, EVENT_KIND_BY_CAP as F, nodePin as Fi, applyNonBlockingEdit as Fn, memoizePinnedFfmpeg as Fr, NcRuleInputSchema as Ft, LockStateSchema as G, number as Gi, cloneAlarmSettings as Gn, renameAlarmProfile as Gr, NcStateSummarySectionIdSchema as Gt, LabelAttributionSchema as H, discriminatedUnion as Hi, buildViewerLink as Hn, readDeviceStateFrom as Hr, NcSnoozeInputSchema as Ht, EVENT_OWNER_TYPES as I, normalizeNodeId as Ii, applySecureOnArmEdit as In, notificationRulesCapability as Ir, NcRulePatchSchema as It, MAX_BIRTH_LATENCY_PROXY_MS as J, record as Ji, cosineSimilarity as Jn, resolveModeDelays as Jr, NcTemplatePreviewInputSchema as Jt, MAX_ARCHIVED_DEBUG_NOTES as K, object as Ki, consumableLowPercentOf as Kn, resolveClipSearchMinScore as Kr, NcSystemEventKindSchema as Kt, EXPORT_DENSE_MAX_RANGES as L, sleep as Li, armRemovalReconcile as Ln, occupancyScope as Lr, NcRuleSchema as Lt, EMBEDDING_REQUIREMENTS_FAILED as M, defineCustomActions as Mi, alarmPanelCapability as Mn, kebabToCamel as Mr, NcLegacyRuleActionSequenceSchema as Mt, EMBEDDING_REQUIREMENTS_UNAVAILABLE as N, hydrateSchema as Ni, applyBlockingEdit as Nn, linkedStepOf as Nr, NcRuleActionSchema as Nt, DETECTION_PIPELINE_CAP_NAME as O, BaseAddon as Oi, TrackSourceSchema as On, isScheduleActive as Or, NcAlarmSensorsSchema as Ot, EVENT_DENSITY_BATCH_MAX as P, isDeviceScopedCap as Pi, applyModeDelaysEdits as Pn, mayWriteToLocation as Pr, NcRuleActionsSchema as Pt, MediaFileKindEnum as Q, tuple as Qi, derivePostTriggeredAction as Qn, rootSupplyServes as Qr, OpsLogEntrySchema as Qt, FIRST_LEVEL_MACRO_CLASSES as R, ZodObject as Ri, assertTimelapseCadences as Rn, parseProcStatus as Rr, NcRuleTargetSchema as Rt, ClearTrackRelationResultSchema as S, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as Si, TimelapseRulePatchSchema as Sn, isEventOwnerType as Sr, NC_TANK_SYSTEM_EVENT_KINDS as St, DEFAULT_EVENT_COLOR as T, isSourceCap as Ti, TrackRelationKindSchema as Tn, isMediaOwnerType as Tr, NcAlarmConfigSchema as Tt, ListTrackRelationsInputSchema as U, literal as Ui, calendarEventLocalSpan as Un, readMotionTriggeredBy as Ur, NcSnoozeSchema as Ut, LABEL_SUPPLY_MACRO as V, boolean as Vi, buildEventKindDescriptor as Vn, plateGalleryCapability as Vr, NcSharedSequenceSchema as Vt, ListTrackRelationsResultSchema as W, looseObject as Wi, classifyRetrainReview as Wn, readTimelapseGeneratedAt as Wr, NcSnoozeSuppressedSchema as Wt, MAX_TRACK_RELATIONS as X, string as Xi, deleteAlarmProfile as Xn, resolvePoolMemoryPolicy as Xr, NcTemplateVarDescriptorSchema as Xt, MAX_TRACK_PURITIES as Y, strictObject as Yi, createAlarmProfile as Yn, resolveModeNotifyPolicy as Yr, NcTemplatePreviewSchema as Yt, MOTION_CLOSE_AFTER_MS as Z, templateLiteral as Zi, deriveDetailCropRect as Zn, retrainRevisionConflictMessage as Zr, OPS_LOG_DEFAULT_LIMIT as Zt, BIRTH_DECISION_DEFAULT_LIMIT as _, templateCarriesSummary as _i, SetTrackPurityResultSchema as _n, isAppLinkBase as _r, NC_GROUPING_MAX_SEC as _t, CLIP_EMBEDDING_STEP_ID as a, secureActuationFor as ai, RetrainStatusSchema as an, embeddingRefusalOf as ar, NC_ALARM_SYSTEM_EVENT_KINDS as at, COCO_TO_MACRO as b, viewerLinkBaseOf as bi, TRACK_RELATIONS_DEFAULT_LIMIT as bn, isDetectionMacroClass as br, NC_SNOOZE_MAX_MINUTES as bt, readClusterModelPinStrict as c, storageOccupancyCapability as ci, SCENE_DEFAULT_ANCHOR_THRESHOLD as cn, encodeVectorBase64 as cr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as ct, APPEARANCE_BLOCKS as d, syncActiveAlarmProfileSettings as di, SCENE_DEFAULT_QUIET_SECONDS as dn, evictionPolicyOfLocation as dr, NC_CLIP_RETENTION_MAX_SEC as dt, unknown as ea, ruleBelongsToAlarm as ei, RECORDING_EXPORT_MAX_READ_BYTES as en, describeSystemEventDeliveryProblem as er, NC_ALARM_DEFAULT_PROFILE_ID as et, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as f, systemEventDeliveryProblems as fi, SCENE_DEFAULT_UNCOVERED_POLICY as fn, faceGalleryCapability as fr, NC_CONDITION_CATALOG as ft, ArchivedDebugNoteSchema as g, systemEventSummarySplitOf as gi, SetTrackPurityInputSchema as gn, isAlarmControllableCap as gr, NC_GROUPING_DEFAULT_SEC as gt, AlarmArmModeSchema as h, systemEventSummaryScheduleOf as hi, SceneMonitorSchema as hn, gifFromMp4Args as hr, NC_DEFAULT_SNOOZE_MINUTES as ht, CLIP_TEXT_MODELS as i, sceneMonitorCapability as ii, RetrainOriginSchema as in, embeddingModelFailedError as ir, NC_ALARM_NOTIFY_FIELDS as it, EMBEDDING_MODEL_FAILED as j, customAction as ji, alarmDeviceSecureOnArm as jn, isVectorIndexDimConflict as jr, NcConditionsSchema as jt, DeclaredDevices as k, CamProfileSchema as ki, activateAlarmProfile as kn, isSystemDelivery as kr, NcAlarmSettingsPatchSchema as kt, resolveClusterModelPin as l, subKindsOf as li, SCENE_DEFAULT_CHECK_INTERVAL_SEC as ln, ensureAlarmProfiles as lr, NC_CLIP_POST_ROLL_DEFAULT_SEC as lt, AUDIO_MACRO_LABELS as m, systemEventFilterApplies as mi, SCENE_RESET_RECAPTURES as mn, gifDeriveSpeed as mr, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as mt, DEFAULT_CLIP_MODEL as n, ruleGroupingApplies as ni, RebuildObjectEmbeddingsRefusalSchema as nn, deviceRemovalHookCapability as nr, NC_ALARM_DELAY_FIELDS as nt, CLUSTER_MODEL_OWNER_ADDON_ID as o, sensorRaisedOf as oi, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as on, embeddingRequirementsFailedError as or, NC_ALARM_TRIGGERED_MAX_SEC as ot, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as p, systemEventFamilyProblems as pi, SCENE_DIVERGED as pn, failureContributionCapability as pr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as pt, MAX_BIRTH_DECISION_RECORDS as q, partialRecord as qi, coreBlockIdFromAddonId as qn, resolveLocationMode as qr, NcTaxonomySchema as qt, CLIP_IMAGE_MODELS as r, ruleKindOf as ri, RetrainDismissedSchema as rn, embeddingEncoderCapability as rr, NC_ALARM_DELAY_MAX_SEC as rt, FACE_EMBEDDING_STEP_ID as s, servedTemplateVars as si, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as sn, embeddingRequirementsUnavailableError as sr, NC_AUDIO_CONFIRM_HITS_DEFAULT as st, BUILTIN_CLIP_MODELS as t, EventCategory as ta, ruleDeviceCompatCapQueries as ti, RECORDING_SOURCE_CAMSTACK_ADDON as tn, describeSystemEventFamilyProblem as tr, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as tt, APPEARANCE_BIN_COUNT as u, summarizeReview as ui, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as un, eventKindLabel as ur, NC_CLIP_PRE_ROLL_DEFAULT_SEC as ut, BaseDevice as v, templateVarsFor as vi, SetTrackRelationInputSchema as vn, isAudioClassName as vr, NC_GROUPING_MIN_SEC as vt, DEFAULT_DETAIL_CROP_CONVENTION as w, evaluateSensorEdge as wi, TrackPuritySchema as wn, isLabelSupplyStepId as wr, NC_TEMPLATE_VARS as wt, ClearTrackRelationInputSchema as x, zoneAnalyticsCapability as xi, TimelapseRuleInputSchema as xn, isEventKindLabelKey as xr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as xt, BirthDecisionRecordSchema as y, vectorDimFromBase64 as yi, TIMELAPSE_DENSE_FLOOR_SEC as yn, isDefaultAlarmProfileId as yr, NC_SENSOR_TRANSITION_KINDS as yt, FULL_IMAGE_BBOX as z, _enum as zi, audioMetricsCapability as zn, pickFaceRescoreIntervalMinutes as zr, NcRuleUpdateInputSchema as zt };
84946
+ export { MotionTriggeredBySchema as $, strictObject as $i, deriveDetailCropRect as $n, retrainRevisionConflictMessage as $r, OPS_LOG_DEFAULT_LIMIT as $t, DetectionSourceSchema as A, BaseAddon as Ai, TrackSourceSchema as An, isScheduleActive as Ar, NcAlarmSensorsSchema as At, FailureCounters as B, normalizeNodeId as Bi, assertTimelapseCadences as Bn, parseProcStatus as Br, NcRuleTargetSchema as Bt, CoverStateSchema as C, zoneAnalyticsCapability as Ci, TimelapseRuleInputSchema as Cn, isEventKindLabelKey as Cr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as Ct, DETECTION_MACRO_CLASSES as D, isSourceCap as Di, TrackRelationKindSchema as Dn, isMediaOwnerType as Dr, NcAlarmConfigSchema as Dt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as E, evaluateSensorEdge as Ei, TrackPuritySchema as En, isLabelSupplyStepId as Er, NC_TEMPLATE_VARS as Et, EVENT_KIND_BY_CAP as F, defineCustomActions as Fi, applyBlockingEdit as Fn, linkedStepOf as Fr, NcRuleActionSchema as Ft, LockStateSchema as G, boolean as Gi, calendarEventLocalSpan as Gn, readMotionTriggeredBy as Gr, NcSnoozeSchema as Gt, LabelAttributionSchema as H, ZodObject as Hi, audioModeOf as Hn, pipelineAnalyticsCapability as Hr, NcScheduleSchema as Ht, EVENT_OWNER_TYPES as I, defineRecordKinds as Ii, applyModeDelaysEdits as In, mayWriteToLocation as Ir, NcRuleActionsSchema as It, MAX_BIRTH_LATENCY_PROXY_MS as J, looseObject as Ji, consumableLowPercentOf as Jn, resolveClipSearchMinScore as Jr, NcSystemEventKindSchema as Jt, MAX_ARCHIVED_DEBUG_NOTES as K, discriminatedUnion as Ki, classifyRetrainReview as Kn, readTimelapseGeneratedAt as Kr, NcSnoozeSuppressedSchema as Kt, EXPORT_DENSE_MAX_RANGES as L, hydrateSchema as Li, applyNonBlockingEdit as Ln, memoizePinnedFfmpeg as Lr, NcRuleInputSchema as Lt, EMBEDDING_REQUIREMENTS_FAILED as M, RECORD_MAX_DATA_BYTES as Mi, addonWidgetsSourceCapability as Mn, isSystemEventSummaryRule as Mr, NcConditionDescriptorSchema as Mt, EMBEDDING_REQUIREMENTS_UNAVAILABLE as N, createEvent as Ni, alarmDeviceSecureOnArm as Nn, isVectorIndexDimConflict as Nr, NcConditionsSchema as Nt, DETECTION_PIPELINE_CAP_NAME as O, DeviceType as Oi, TrackRelationSchema as On, isRetiredClearKey as Or, NcAlarmPostTriggeredActionSchema as Ot, EVENT_DENSITY_BATCH_MAX as P, customAction as Pi, alarmPanelCapability as Pn, kebabToCamel as Pr, NcLegacyRuleActionSequenceSchema as Pt, MediaFileKindEnum as Q, record as Qi, deleteAlarmProfile as Qn, resolvePoolMemoryPolicy as Qr, NcTemplateVarDescriptorSchema as Qt, FIRST_LEVEL_MACRO_CLASSES as R, isDeviceScopedCap as Ri, applySecureOnArmEdit as Rn, notificationRulesCapability as Rr, NcRulePatchSchema as Rt, ClearTrackRelationResultSchema as S, viewerLinkBaseOf as Si, TRACK_RELATIONS_DEFAULT_LIMIT as Sn, isDetectionMacroClass as Sr, NC_SNOOZE_MAX_MINUTES as St, DEFAULT_EVENT_COLOR as T, canonicalHash as Ti, TimelapseRuleSchema as Tn, isKnownTemplateVar as Tr, NC_TAXONOMY as Tt, ListTrackRelationsInputSchema as U, _enum as Ui, buildEventKindDescriptor as Un, plateGalleryCapability as Ur, NcSharedSequenceSchema as Ut, LABEL_SUPPLY_MACRO as V, sleep as Vi, audioMetricsCapability as Vn, pickFaceRescoreIntervalMinutes as Vr, NcRuleUpdateInputSchema as Vt, ListTrackRelationsResultSchema as W, array as Wi, buildViewerLink as Wn, readDeviceStateFrom as Wr, NcSnoozeInputSchema as Wt, MAX_TRACK_RELATIONS as X, object as Xi, cosineSimilarity as Xn, resolveModeDelays as Xr, NcTemplatePreviewInputSchema as Xt, MAX_TRACK_PURITIES as Y, number as Yi, coreBlockIdFromAddonId as Yn, resolveLocationMode as Yr, NcTaxonomySchema as Yt, MOTION_CLOSE_AFTER_MS as Z, partialRecord as Zi, createAlarmProfile as Zn, resolveModeNotifyPolicy as Zr, NcTemplatePreviewSchema as Zt, BIRTH_DECISION_DEFAULT_LIMIT as _, systemEventSummaryScheduleOf as _i, SceneMonitorSchema as _n, gifFromMp4Args as _r, NC_DEFAULT_SNOOZE_MINUTES as _t, CLIP_EMBEDDING_STEP_ID as a, EventCategory as aa, ruleKindOf as ai, RetrainDismissedSchema as an, embeddingEncoderCapability as ar, NC_ALARM_SYSTEM_EVENT_KINDS as at, COCO_TO_MACRO as b, templateVarsFor as bi, SetTrackRelationInputSchema as bn, isAudioClassName as br, NC_GROUPING_MIN_SEC as bt, readClusterModelPinStrict as c, sensorRaisedOf as ci, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as cn, embeddingRequirementsFailedError as cr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as ct, APPEARANCE_BLOCKS as d, subKindsOf as di, SCENE_DEFAULT_CHECK_INTERVAL_SEC as dn, ensureAlarmProfiles as dr, NC_CLIP_RETENTION_MAX_SEC as dt, string as ea, rootSupplyServes as ei, OpsLogEntrySchema as en, derivePostTriggeredAction as er, NC_ALARM_DEFAULT_PROFILE_ID as et, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as f, summarizeReview as fi, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as fn, eventKindLabel as fr, NC_CONDITION_CATALOG as ft, ArchivedDebugNoteSchema as g, systemEventFilterApplies as gi, SCENE_RESET_RECAPTURES as gn, gifDeriveSpeed as gr, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as gt, AlarmArmModeSchema as h, systemEventFamilyProblems as hi, SCENE_DIVERGED as hn, failureContributionCapability as hr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as ht, CLIP_TEXT_MODELS as i, unknown as ia, ruleGroupingApplies as ii, RebuildObjectEmbeddingsRefusalSchema as in, deviceRemovalHookCapability as ir, NC_ALARM_NOTIFY_FIELDS as it, EMBEDDING_MODEL_FAILED as j, CamProfileSchema as ji, activateAlarmProfile as jn, isSystemDelivery as jr, NcAlarmSettingsPatchSchema as jt, DeclaredDevices as k, errMsg as ki, TrackSideSchema as kn, isRootSuppliableStepId as kr, NcAlarmSensorsInputSchema as kt, resolveClusterModelPin as l, servedTemplateVars as li, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as ln, embeddingRequirementsUnavailableError as lr, NC_CLIP_POST_ROLL_DEFAULT_SEC as lt, AUDIO_MACRO_LABELS as m, systemEventDeliveryProblems as mi, SCENE_DEFAULT_UNCOVERED_POLICY as mn, faceGalleryCapability as mr, NC_CONFIRM_DEFAULT_TIMEOUT_MS as mt, DEFAULT_CLIP_MODEL as n, tuple as na, ruleBelongsToAlarm as ni, RECORDING_EXPORT_MAX_READ_BYTES as nn, describeSystemEventDeliveryProblem as nr, NC_ALARM_DELAY_FIELDS as nt, CLUSTER_MODEL_OWNER_ADDON_ID as o, sceneMonitorCapability as oi, RetrainOriginSchema as on, embeddingModelFailedError as or, NC_ALARM_TRIGGERED_MAX_SEC as ot, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as p, syncActiveAlarmProfileSettings as pi, SCENE_DEFAULT_QUIET_SECONDS as pn, evictionPolicyOfLocation as pr, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX as pt, MAX_BIRTH_DECISION_RECORDS as q, literal as qi, cloneAlarmSettings as qn, renameAlarmProfile as qr, NcStateSummarySectionIdSchema as qt, CLIP_IMAGE_MODELS as r, union as ra, ruleDeviceCompatCapQueries as ri, RECORDING_SOURCE_CAMSTACK_ADDON as rn, describeSystemEventFamilyProblem as rr, NC_ALARM_DELAY_MAX_SEC as rt, FACE_EMBEDDING_STEP_ID as s, secureActuationFor as si, RetrainStatusSchema as sn, embeddingRefusalOf as sr, NC_AUDIO_CONFIRM_HITS_DEFAULT as st, BUILTIN_CLIP_MODELS as t, templateLiteral as ta, ruleAutoTriggersAlarm as ti, PoolMemoryWatchdog as tn, deriveRecordingMode as tr, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as tt, APPEARANCE_BIN_COUNT as u, storageOccupancyCapability as ui, SCENE_DEFAULT_ANCHOR_THRESHOLD as un, encodeVectorBase64 as ur, NC_CLIP_PRE_ROLL_DEFAULT_SEC as ut, BaseDevice as v, systemEventSummarySplitOf as vi, SetTrackPurityInputSchema as vn, isAlarmControllableCap as vr, NC_GROUPING_DEFAULT_SEC as vt, DEFAULT_DETAIL_CROP_CONVENTION as w, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as wi, TimelapseRulePatchSchema as wn, isEventOwnerType as wr, NC_TANK_SYSTEM_EVENT_KINDS as wt, ClearTrackRelationInputSchema as x, vectorDimFromBase64 as xi, TIMELAPSE_DENSE_FLOOR_SEC as xn, isDefaultAlarmProfileId as xr, NC_SENSOR_TRANSITION_KINDS as xt, BirthDecisionRecordSchema as y, templateCarriesSummary as yi, SetTrackPurityResultSchema as yn, isAppLinkBase as yr, NC_GROUPING_MAX_SEC as yt, FULL_IMAGE_BBOX as z, nodePin as zi, armRemovalReconcile as zn, occupancyScope as zr, NcRuleSchema as zt };