@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.
- package/dist/{clip-model-registry-BIJ0ZD7t.mjs → clip-model-registry-BuM8eXlN.mjs} +329 -28
- package/dist/{clip-model-registry-BRzN2GzR.js → clip-model-registry-DAZ9ie-f.js} +352 -27
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +2 -2
- 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
- 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
- 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
- package/dist/pipeline-analytics/{hostInit-DEl2xA0o.mjs → hostInit-C3wjY7W8.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +79597 -78981
- package/dist/pipeline-analytics/index.mjs +79599 -78983
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- 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-
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
-
|
|
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).
|
|
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: (
|
|
69232
|
+
const handler = { get: (target, key) => {
|
|
68945
69233
|
const k = key;
|
|
68946
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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 $,
|
|
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 };
|