@camstack/system 1.2.465 → 1.2.467
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon-runner.js +1 -0
- package/dist/addon-runner.mjs +1 -0
- package/dist/addon-utils.mjs +1 -1
- package/dist/{agent-https-CzA1AmyI.js → agent-https-DJ8OzQOr.js} +1 -1
- package/dist/{agent-https-CPJ7FTs0.mjs → agent-https-DR1wmhYY.mjs} +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +4 -4
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +5 -5
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +5 -5
- package/dist/builtins/calendars/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.addon.mjs +1 -1
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/composer/composer.addon.js +2 -2
- package/dist/builtins/composer/composer.addon.mjs +2 -2
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- package/dist/builtins/device-history/device-history.addon.js +1 -1
- package/dist/builtins/device-history/device-history.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-manager.addon.js +1 -1
- package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/keychain/index.js +3 -3
- package/dist/builtins/keychain/index.mjs +3 -3
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/auth-schema.d.ts +0 -2
- package/dist/builtins/local-auth/local-auth.addon.d.ts +0 -1
- package/dist/builtins/local-auth/local-auth.addon.js +23 -178
- package/dist/builtins/local-auth/local-auth.addon.mjs +27 -181
- package/dist/builtins/local-auth/record-kinds.d.ts +1 -6
- package/dist/builtins/local-network/local-network.addon.js +2 -2
- package/dist/builtins/local-network/local-network.addon.mjs +2 -2
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +10 -10
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +8 -8
- package/dist/builtins/record-entries/index.js +1 -1
- package/dist/builtins/record-entries/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +20 -20
- package/dist/builtins/sqlite-storage/index.js +1 -1
- package/dist/builtins/sqlite-storage/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/records/records-engine.d.ts +11 -0
- package/dist/builtins/sqlite-storage/records/records-provider.d.ts +7 -2
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +25 -15
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +25 -15
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +3 -3
- package/dist/builtins/system-config/system-config.addon.mjs +115 -115
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{composition-sources-BG0E76VO.js → composition-sources-5rpWQhA1.js} +1 -1
- package/dist/{composition-sources-CqRsEC0a.mjs → composition-sources-Qto-S6MA.mjs} +1 -1
- package/dist/{constants-CmGw1liQ.mjs → constants-BWli8Cju.mjs} +1 -1
- package/dist/{constants-BYJ4ni7h.js → constants-CuO3rcw4.js} +1 -1
- package/dist/{coral-accelerators-Qhn5TOYZ.mjs → coral-accelerators-D_S1Fo5h.mjs} +5 -5
- package/dist/{custom-action-registry-DZSCLBuT.mjs → custom-action-registry-BGYDjTqY.mjs} +37 -37
- package/dist/{device-ca-CQcB6yfj.mjs → device-ca-C5cLlah1.mjs} +1 -1
- package/dist/{device-ca-B-Txwl4W.js → device-ca-CGcaSheI.js} +1 -1
- package/dist/{dist-CR7idLer.mjs → dist-BpUtAgqR.mjs} +158 -72
- package/dist/{dist-Dwi4JA96.js → dist-l6zKmHEb.js} +175 -77
- package/dist/file-host-worker.js +1 -1
- package/dist/file-host-worker.mjs +1 -1
- package/dist/{hub-mdns-ciao-BlLwL65g.mjs → hub-mdns-ciao-0KWDyIMD.mjs} +2 -2
- package/dist/{hub-mdns-ciao-3qdHbtyp.js → hub-mdns-ciao-CIno_SNn.js} +2 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.js +8 -8
- package/dist/index.mjs +228 -227
- package/dist/{restore-archive-D1uxP8Eb.js → restore-archive-B71JI-sP.js} +1 -1
- package/dist/{restore-archive-BYL7E5af.mjs → restore-archive-DKxAZ9pI.mjs} +94 -94
- package/dist/{wal-maintenance-BQlvAduo.js → wal-maintenance-B6LSQ_OZ.js} +0 -0
- package/dist/{wal-maintenance-BDQT7TIi.mjs → wal-maintenance-BXYwFecW.mjs} +0 -0
- package/package.json +1 -1
- package/dist/auth/api-key-manager.d.ts +0 -19
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import "node:crypto";
|
|
3
|
-
//#region ../types/dist/event-category-
|
|
3
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
4
4
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
5
5
|
EventCategory["SystemBoot"] = "system.boot";
|
|
6
6
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -317,6 +317,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
317
317
|
*/
|
|
318
318
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
319
319
|
/**
|
|
320
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
321
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
322
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
323
|
+
* {@link PipelineMotionCalm}.
|
|
324
|
+
*/
|
|
325
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
326
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
327
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
328
|
+
/**
|
|
320
329
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
321
330
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
322
331
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -753,7 +762,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
753
762
|
return EventCategory;
|
|
754
763
|
}({});
|
|
755
764
|
//#endregion
|
|
756
|
-
//#region ../types/dist/sleep-
|
|
765
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
757
766
|
/**
|
|
758
767
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
759
768
|
* window to float samples (D455).
|
|
@@ -3412,6 +3421,17 @@ var BatchTooLargeError = class extends RecordsError {
|
|
|
3412
3421
|
this.name = "BatchTooLargeError";
|
|
3413
3422
|
}
|
|
3414
3423
|
};
|
|
3424
|
+
/**
|
|
3425
|
+
* A `transact` the engine refuses before touching a row: an op on a kind the
|
|
3426
|
+
* caller did not declare in ONE file and ONE `transactFamily`. The detail names
|
|
3427
|
+
* which rule (`cross-file`, `cross-family`, `no-family`); it is never a silent split.
|
|
3428
|
+
*/
|
|
3429
|
+
var TransactRefusedError = class extends RecordsError {
|
|
3430
|
+
constructor(detail) {
|
|
3431
|
+
super("transact-refused", detail);
|
|
3432
|
+
this.name = "TransactRefusedError";
|
|
3433
|
+
}
|
|
3434
|
+
};
|
|
3415
3435
|
function defOf(schema) {
|
|
3416
3436
|
const zodBag = Reflect.get(schema, "_zod");
|
|
3417
3437
|
if (typeof zodBag !== "object" || zodBag === null) return {};
|
|
@@ -3646,8 +3666,7 @@ var EntryDescriptorSchema = z.object({
|
|
|
3646
3666
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
3647
3667
|
fields: z.record(z.string(), z.unknown())
|
|
3648
3668
|
}).strict();
|
|
3649
|
-
|
|
3650
|
-
var RecordKindDeclarationSchema = z.object({
|
|
3669
|
+
var RecordKindDeclarationShape = z.object({
|
|
3651
3670
|
database: z.enum(RECORD_DATABASES).default("settings"),
|
|
3652
3671
|
class: z.enum(RECORD_CLASSES),
|
|
3653
3672
|
writeTrigger: z.string().min(1),
|
|
@@ -3665,18 +3684,18 @@ var RecordKindDeclarationSchema = z.object({
|
|
|
3665
3684
|
secretPaths: z.array(z.string().min(1)).default([]),
|
|
3666
3685
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
3667
3686
|
secretArrayKeys: z.record(z.string(), z.string()).default({}),
|
|
3668
|
-
/**
|
|
3669
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
3670
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
3671
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
3672
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
3673
|
-
* removal still sends it. Never set it.
|
|
3674
|
-
*/
|
|
3675
|
-
adoptsFrom: z.string().min(1).optional(),
|
|
3676
3687
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
3677
3688
|
transactFamily: z.string().min(1).optional(),
|
|
3678
3689
|
entry: EntryDescriptorSchema.optional()
|
|
3679
|
-
})
|
|
3690
|
+
});
|
|
3691
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
3692
|
+
var RecordKindDeclarationSchema = RecordKindDeclarationShape.strict();
|
|
3693
|
+
/**
|
|
3694
|
+
* A declaration as the engine's catalog stored it: an unknown key is DROPPED,
|
|
3695
|
+
* because a row written by an older engine must never stop records from
|
|
3696
|
+
* starting. Only for rows read back from the catalog, never for input.
|
|
3697
|
+
*/
|
|
3698
|
+
var StoredRecordKindDeclarationSchema = RecordKindDeclarationShape;
|
|
3680
3699
|
/** The kind names: lower-case, dash separated, short enough for an index name. */
|
|
3681
3700
|
var RecordKindNameSchema = z.string().regex(/^[a-z][a-z0-9-]{0,47}$/);
|
|
3682
3701
|
/** Cross-field rules a declaration must satisfy. Throws {@link DeclarationRefusedError}. */
|
|
@@ -3762,6 +3781,23 @@ function defineRecordKinds(specs) {
|
|
|
3762
3781
|
}
|
|
3763
3782
|
return out;
|
|
3764
3783
|
}
|
|
3784
|
+
/**
|
|
3785
|
+
* The scope rule of `transact`, shared by the engine, the provider and the
|
|
3786
|
+
* in-memory records so they cannot disagree: every op's kind sits in ONE
|
|
3787
|
+
* database file, and when more than one kind is involved they all name the
|
|
3788
|
+
* SAME `transactFamily`. A refusal names the rule; nothing is split silently.
|
|
3789
|
+
*/
|
|
3790
|
+
/** Throws {@link TransactRefusedError} unless the kinds may share one transaction. */
|
|
3791
|
+
function assertTransactScope(members) {
|
|
3792
|
+
const byKind = /* @__PURE__ */ new Map();
|
|
3793
|
+
for (const m of members) byKind.set(m.kind, m);
|
|
3794
|
+
const kinds = [...byKind.values()];
|
|
3795
|
+
if (new Set(kinds.map((m) => m.declaration.database)).size > 1) throw new TransactRefusedError(`cross-file: the ops span more than one database file (${kinds.map((m) => `${m.kind}@${m.declaration.database}`).join(", ")}); a transaction lives in ONE file`);
|
|
3796
|
+
if (kinds.length <= 1) return;
|
|
3797
|
+
const missing = kinds.filter((m) => m.declaration.transactFamily === void 0);
|
|
3798
|
+
if (missing.length > 0) throw new TransactRefusedError(`no-family: ${missing.map((m) => m.kind).join(", ")} declare no transactFamily; kinds that must agree through transact share one`);
|
|
3799
|
+
if (new Set(kinds.map((m) => m.declaration.transactFamily)).size > 1) throw new TransactRefusedError(`cross-family: the ops span more than one transactFamily (${kinds.map((m) => `${m.kind}=${String(m.declaration.transactFamily)}`).join(", ")})`);
|
|
3800
|
+
}
|
|
3765
3801
|
/** Shared Zod schemas used across streaming capabilities. */
|
|
3766
3802
|
var CamProfileSchema = z.enum([
|
|
3767
3803
|
"high",
|
|
@@ -10561,17 +10597,6 @@ var UserRecordSchema = z.object({
|
|
|
10561
10597
|
createdAt: z.number(),
|
|
10562
10598
|
updatedAt: z.number()
|
|
10563
10599
|
});
|
|
10564
|
-
var ApiKeyRecordSchema = z.object({
|
|
10565
|
-
id: z.string(),
|
|
10566
|
-
label: z.string(),
|
|
10567
|
-
isAdmin: z.boolean().default(false),
|
|
10568
|
-
allowedProviders: AllowedProviderSchema,
|
|
10569
|
-
allowedDevices: AllowedDevicesSchema,
|
|
10570
|
-
tokenHash: z.string(),
|
|
10571
|
-
tokenPrefix: z.string(),
|
|
10572
|
-
createdAt: z.number(),
|
|
10573
|
-
lastUsedAt: z.number().optional()
|
|
10574
|
-
});
|
|
10575
10600
|
var ScopedTokenSchema = z.object({
|
|
10576
10601
|
id: z.string(),
|
|
10577
10602
|
userId: z.string(),
|
|
@@ -17215,16 +17240,36 @@ var RecordKindStateSchema = z.enum([
|
|
|
17215
17240
|
var DeclareKindResultSchema = z.object({
|
|
17216
17241
|
kindId: z.number().int(),
|
|
17217
17242
|
state: RecordKindStateSchema,
|
|
17218
|
-
createdIndexes: z.array(z.string())
|
|
17219
|
-
/**
|
|
17220
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
17221
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
17222
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
17223
|
-
*/
|
|
17224
|
-
adoptionPending: z.null()
|
|
17243
|
+
createdIndexes: z.array(z.string())
|
|
17225
17244
|
});
|
|
17226
17245
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
17227
17246
|
var SecretRefsList = z.array(z.string());
|
|
17247
|
+
/**
|
|
17248
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
17249
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
17250
|
+
*/
|
|
17251
|
+
var RecordTransactOpSchema = z.discriminatedUnion("op", [
|
|
17252
|
+
z.object({
|
|
17253
|
+
op: z.literal("put"),
|
|
17254
|
+
kind: RecordKindNameSchema,
|
|
17255
|
+
record: RecordInputSchema,
|
|
17256
|
+
ifRev: z.number().int().min(0).optional()
|
|
17257
|
+
}),
|
|
17258
|
+
z.object({
|
|
17259
|
+
op: z.literal("patch"),
|
|
17260
|
+
kind: RecordKindNameSchema,
|
|
17261
|
+
id: RecordIdSchema,
|
|
17262
|
+
data: RecordBodySchema,
|
|
17263
|
+
at: z.number().int().nullable().optional(),
|
|
17264
|
+
expiresAt: z.number().int().nullable().optional(),
|
|
17265
|
+
ifRev: z.number().int().min(1).optional()
|
|
17266
|
+
}),
|
|
17267
|
+
z.object({
|
|
17268
|
+
op: z.literal("delete"),
|
|
17269
|
+
kind: RecordKindNameSchema,
|
|
17270
|
+
id: RecordIdSchema
|
|
17271
|
+
})
|
|
17272
|
+
]);
|
|
17228
17273
|
var RecordSecretRefsSchema = z.record(z.string(), z.record(z.string(), z.string()));
|
|
17229
17274
|
var recordsCapability = {
|
|
17230
17275
|
name: "records",
|
|
@@ -17356,6 +17401,22 @@ var recordsCapability = {
|
|
|
17356
17401
|
kind: "mutation",
|
|
17357
17402
|
auth: "admin"
|
|
17358
17403
|
}),
|
|
17404
|
+
/**
|
|
17405
|
+
* Several single-row writes (put / patch / delete) in ONE SQLite transaction:
|
|
17406
|
+
* all land or none does. Every op's kind must sit in one file and share one
|
|
17407
|
+
* `transactFamily` (`records/transact-refused` otherwise). Results are in op order.
|
|
17408
|
+
*/
|
|
17409
|
+
transact: method(z.object({ ops: z.array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), z.object({
|
|
17410
|
+
results: z.array(z.object({
|
|
17411
|
+
rev: z.number().int().nullable(),
|
|
17412
|
+
deleted: z.boolean()
|
|
17413
|
+
})),
|
|
17414
|
+
releasedRefs: SecretRefsList,
|
|
17415
|
+
secretRefs: SecretRefsList
|
|
17416
|
+
}), {
|
|
17417
|
+
kind: "mutation",
|
|
17418
|
+
auth: "admin"
|
|
17419
|
+
}),
|
|
17359
17420
|
/** The D865 hook body: every kind of this addon declared `deviceRemoval: 'delete'`. */
|
|
17360
17421
|
deleteDevice: method(z.object({
|
|
17361
17422
|
deviceId: z.number().int(),
|
|
@@ -44990,9 +45051,13 @@ var NcSystemEventKindSchema = z.enum([
|
|
|
44990
45051
|
"node-updating",
|
|
44991
45052
|
"node-inference-unavailable",
|
|
44992
45053
|
"detection-blind",
|
|
45054
|
+
"motion-noisy",
|
|
45055
|
+
"motion-calm",
|
|
44993
45056
|
"recording-stalled",
|
|
44994
45057
|
"recording-healthy",
|
|
44995
45058
|
"recording-degraded",
|
|
45059
|
+
"device-attention-required",
|
|
45060
|
+
"device-attention-resolved",
|
|
44996
45061
|
"storage-location-low",
|
|
44997
45062
|
"storage-location-critical",
|
|
44998
45063
|
"storage-location-ok",
|
|
@@ -51804,7 +51869,6 @@ var RecommendationReasonSchema = z.discriminatedUnion("kind", [
|
|
|
51804
51869
|
modelId: z.string()
|
|
51805
51870
|
}),
|
|
51806
51871
|
z.object({ kind: z.literal("cpu-device") }),
|
|
51807
|
-
z.object({ kind: z.literal("coral-untouched") }),
|
|
51808
51872
|
z.object({ kind: z.literal("device-disabled") }),
|
|
51809
51873
|
z.object({ kind: z.literal("device-unavailable") }),
|
|
51810
51874
|
z.object({ kind: z.literal("node-offline") }),
|
|
@@ -51902,11 +51966,6 @@ var AutoTuneWarningSchema = z.discriminatedUnion("kind", [
|
|
|
51902
51966
|
kind: z.literal("detector-store-unreadable"),
|
|
51903
51967
|
error: z.string()
|
|
51904
51968
|
}),
|
|
51905
|
-
z.object({
|
|
51906
|
-
kind: z.literal("coral-enabled"),
|
|
51907
|
-
nodeId: z.string(),
|
|
51908
|
-
deviceKey: z.string()
|
|
51909
|
-
}),
|
|
51910
51969
|
z.object({
|
|
51911
51970
|
kind: z.literal("custom-pin-kept"),
|
|
51912
51971
|
nodeId: z.string(),
|
|
@@ -61570,6 +61629,16 @@ var DishwasherStatusSchema = z.object({
|
|
|
61570
61629
|
powerState: z.string().nullable(),
|
|
61571
61630
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
61572
61631
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
61632
|
+
/**
|
|
61633
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
61634
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
61635
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
61636
|
+
*/
|
|
61637
|
+
filterCleaningDue: z.boolean().nullable(),
|
|
61638
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
61639
|
+
machineCareDue: z.boolean().nullable(),
|
|
61640
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
61641
|
+
machineCareRemainingRuns: z.number().int().nonnegative().nullable(),
|
|
61573
61642
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
61574
61643
|
halfLoad: z.boolean().nullable(),
|
|
61575
61644
|
hygienePlus: z.boolean().nullable(),
|
|
@@ -71712,16 +71781,6 @@ var UpdateUserInputSchema = z.object({
|
|
|
71712
71781
|
allowedDevices: z.record(z.string(), z.union([z.array(z.string()), z.literal("*")])).optional(),
|
|
71713
71782
|
scopes: z.array(TokenScopeSchema).optional()
|
|
71714
71783
|
});
|
|
71715
|
-
var ApiKeySummarySchema = z.object({
|
|
71716
|
-
id: z.string(),
|
|
71717
|
-
label: z.string(),
|
|
71718
|
-
isAdmin: z.boolean().default(false),
|
|
71719
|
-
allowedProviders: z.union([z.array(z.string()), z.literal("*")]).optional(),
|
|
71720
|
-
allowedDevices: z.record(z.string(), z.union([z.array(z.string()), z.literal("*")])).optional(),
|
|
71721
|
-
tokenPrefix: z.string(),
|
|
71722
|
-
createdAt: z.number(),
|
|
71723
|
-
lastUsedAt: z.number().optional()
|
|
71724
|
-
});
|
|
71725
71784
|
var OauthSessionSummarySchema = z.object({
|
|
71726
71785
|
id: z.string(),
|
|
71727
71786
|
userId: z.string(),
|
|
@@ -71743,8 +71802,7 @@ var TotpStatusSchema = z.object({
|
|
|
71743
71802
|
confirmedAt: z.number().nullable()
|
|
71744
71803
|
});
|
|
71745
71804
|
/**
|
|
71746
|
-
* user-management — singleton capability for user accounts
|
|
71747
|
-
* legacy API-key rows.
|
|
71805
|
+
* user-management — singleton capability for user accounts.
|
|
71748
71806
|
*
|
|
71749
71807
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
71750
71808
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -71812,12 +71870,6 @@ var userManagementCapability = {
|
|
|
71812
71870
|
kind: "mutation",
|
|
71813
71871
|
access: "view"
|
|
71814
71872
|
}),
|
|
71815
|
-
listApiKeys: method(z.void(), z.array(ApiKeySummarySchema), { auth: "admin" }),
|
|
71816
|
-
revokeApiKey: method(z.object({ id: z.string() }), z.object({ success: z.literal(true) }), {
|
|
71817
|
-
kind: "mutation",
|
|
71818
|
-
auth: "admin",
|
|
71819
|
-
access: "delete"
|
|
71820
|
-
}),
|
|
71821
71873
|
setupTotp: method(z.object({ userId: z.string() }), TotpSetupResultSchema, {
|
|
71822
71874
|
kind: "mutation",
|
|
71823
71875
|
auth: "admin",
|
|
@@ -81671,6 +81723,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
81671
81723
|
addonId: null,
|
|
81672
81724
|
access: "view"
|
|
81673
81725
|
},
|
|
81726
|
+
"records.transact": {
|
|
81727
|
+
capName: "records",
|
|
81728
|
+
capScope: "system",
|
|
81729
|
+
addonId: null,
|
|
81730
|
+
access: "create"
|
|
81731
|
+
},
|
|
81674
81732
|
"sceneMonitor.captureReference": {
|
|
81675
81733
|
capName: "scene-monitor",
|
|
81676
81734
|
capScope: "device",
|
|
@@ -83003,12 +83061,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
83003
83061
|
addonId: null,
|
|
83004
83062
|
access: "view"
|
|
83005
83063
|
},
|
|
83006
|
-
"userManagement.listApiKeys": {
|
|
83007
|
-
capName: "user-management",
|
|
83008
|
-
capScope: "system",
|
|
83009
|
-
addonId: null,
|
|
83010
|
-
access: "view"
|
|
83011
|
-
},
|
|
83012
83064
|
"userManagement.listExternalIdentities": {
|
|
83013
83065
|
capName: "user-management",
|
|
83014
83066
|
capScope: "system",
|
|
@@ -83063,12 +83115,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
83063
83115
|
addonId: null,
|
|
83064
83116
|
access: "create"
|
|
83065
83117
|
},
|
|
83066
|
-
"userManagement.revokeApiKey": {
|
|
83067
|
-
capName: "user-management",
|
|
83068
|
-
capScope: "system",
|
|
83069
|
-
addonId: null,
|
|
83070
|
-
access: "delete"
|
|
83071
|
-
},
|
|
83072
83118
|
"userManagement.revokeOauthSession": {
|
|
83073
83119
|
capName: "user-management",
|
|
83074
83120
|
capScope: "system",
|
|
@@ -87384,9 +87430,13 @@ new Map(Object.entries({
|
|
|
87384
87430
|
"stream-online": "device-events",
|
|
87385
87431
|
"stream-offline": "device-events",
|
|
87386
87432
|
"detection-blind": "device-events",
|
|
87433
|
+
"motion-noisy": "device-events",
|
|
87434
|
+
"motion-calm": "device-events",
|
|
87387
87435
|
"recording-stalled": "device-events",
|
|
87388
87436
|
"recording-healthy": "device-events",
|
|
87389
87437
|
"recording-degraded": "device-events",
|
|
87438
|
+
"device-attention-required": "device-events",
|
|
87439
|
+
"device-attention-resolved": "device-events",
|
|
87390
87440
|
"node-online": "system",
|
|
87391
87441
|
"node-offline": "system",
|
|
87392
87442
|
"node-restarting": "system",
|
|
@@ -87469,6 +87519,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
87469
87519
|
label: "Detecting nothing",
|
|
87470
87520
|
kinds: ["detection-blind"]
|
|
87471
87521
|
},
|
|
87522
|
+
{
|
|
87523
|
+
id: "motion-noise",
|
|
87524
|
+
family: "device-events",
|
|
87525
|
+
label: "Motion without a subject",
|
|
87526
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
87527
|
+
},
|
|
87472
87528
|
{
|
|
87473
87529
|
id: "recording",
|
|
87474
87530
|
family: "device-events",
|
|
@@ -87479,6 +87535,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
87479
87535
|
"recording-degraded"
|
|
87480
87536
|
]
|
|
87481
87537
|
},
|
|
87538
|
+
{
|
|
87539
|
+
id: "device-attention",
|
|
87540
|
+
family: "device-events",
|
|
87541
|
+
label: "Needs attention",
|
|
87542
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
87543
|
+
},
|
|
87482
87544
|
{
|
|
87483
87545
|
id: "nodes",
|
|
87484
87546
|
family: "system",
|
|
@@ -87660,6 +87722,7 @@ var ALERT_EPISODE = [
|
|
|
87660
87722
|
"alert-error",
|
|
87661
87723
|
"alert-critical-resolved"
|
|
87662
87724
|
];
|
|
87725
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
87663
87726
|
var UPDATES = [
|
|
87664
87727
|
"addon-update-available",
|
|
87665
87728
|
"server-update-available",
|
|
@@ -87689,9 +87752,12 @@ var DEVICE_EVENTS = [
|
|
|
87689
87752
|
"stream-online",
|
|
87690
87753
|
"stream-offline",
|
|
87691
87754
|
"detection-blind",
|
|
87755
|
+
"motion-noisy",
|
|
87756
|
+
"motion-calm",
|
|
87692
87757
|
"recording-stalled",
|
|
87693
87758
|
"recording-healthy",
|
|
87694
87759
|
"recording-degraded",
|
|
87760
|
+
...DEVICE_ATTENTION,
|
|
87695
87761
|
...ALARM
|
|
87696
87762
|
];
|
|
87697
87763
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -87859,7 +87925,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
87859
87925
|
[...RULE_TEXT],
|
|
87860
87926
|
[...RULE_TEXT],
|
|
87861
87927
|
[...RULE_TEXT],
|
|
87862
|
-
|
|
87928
|
+
[...RULE_TEXT],
|
|
87929
|
+
[...RULE_TEXT],
|
|
87930
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
87863
87931
|
[...RULE_TEXT],
|
|
87864
87932
|
[...RULE_TEXT],
|
|
87865
87933
|
[...RULE_TEXT],
|
|
@@ -87881,11 +87949,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
87881
87949
|
[...RULE_TEXT],
|
|
87882
87950
|
[...RULE_TEXT],
|
|
87883
87951
|
[...RULE_TEXT],
|
|
87952
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
87884
87953
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
87954
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
87885
87955
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
87886
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
87887
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
87888
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
87956
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
87889
87957
|
[...RULE_TEXT],
|
|
87890
87958
|
[...RULE_TEXT],
|
|
87891
87959
|
[...RULE_TEXT],
|
|
@@ -87961,6 +88029,15 @@ new Map([
|
|
|
87961
88029
|
snapshotLabel: "Tanks low or full now",
|
|
87962
88030
|
snapshotSection: "tanks"
|
|
87963
88031
|
},
|
|
88032
|
+
{
|
|
88033
|
+
id: "motion-noise",
|
|
88034
|
+
family: "device-events",
|
|
88035
|
+
label: "Motion without a subject (constant / calm again)",
|
|
88036
|
+
bad: ["motion-noisy"],
|
|
88037
|
+
recovery: ["motion-calm"],
|
|
88038
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
88039
|
+
snapshotSection: null
|
|
88040
|
+
},
|
|
87964
88041
|
{
|
|
87965
88042
|
id: "recording-health",
|
|
87966
88043
|
family: "device-events",
|
|
@@ -87970,6 +88047,15 @@ new Map([
|
|
|
87970
88047
|
snapshotLabel: "Recordings stalled now",
|
|
87971
88048
|
snapshotSection: null
|
|
87972
88049
|
},
|
|
88050
|
+
{
|
|
88051
|
+
id: "device-attention",
|
|
88052
|
+
family: "device-events",
|
|
88053
|
+
label: "Device needs attention (raised / resolved)",
|
|
88054
|
+
bad: ["device-attention-required"],
|
|
88055
|
+
recovery: ["device-attention-resolved"],
|
|
88056
|
+
snapshotLabel: "Devices needing attention now",
|
|
88057
|
+
snapshotSection: null
|
|
88058
|
+
},
|
|
87973
88059
|
{
|
|
87974
88060
|
id: "node-connectivity",
|
|
87975
88061
|
family: "system",
|
|
@@ -88921,4 +89007,4 @@ function armRemovalReconcile(opts) {
|
|
|
88921
89007
|
return () => clearInterval(timer);
|
|
88922
89008
|
}
|
|
88923
89009
|
//#endregion
|
|
88924
|
-
export {
|
|
89010
|
+
export { PreferenceNamespaceSchema as $, isKeychainStoredField as $i, procedureAuthKey as $n, BaseAddon as $r, deviceHistoryCapability as $t, DEVICE_SAN_USER_PREFIX as A, UnknownRecordKindError as Ai, keychainCapability as An, userManagementCapability as Ar, buildStreamParamsConfigSchema as At, HUB_MDNS_SERVICE_TYPE as B, collectSecretMarkerRefs as Bi, mayWriteToLocation as Bn, composedDeviceRef as Br, coreBlockIdFromAddonId as Bt, DATA_STORE_DATABASES as C, userError as Ca, RecordTooLargeError as Ci, isCredentialTokenPayload as Cn, storageCapability as Cr, authProviderCapability as Ct, DEVICE_HISTORY_ENERGY_KEY as D, StoredRecordKindDeclarationSchema as Di, isVoidInput as Dn, streamCatalogCapability as Dr, buildCapabilityLookup as Dt, DEVICE_ENROLLMENT_TTL_MS as E, SECRET_CLEAR as Ei, isObjectInput as En, storageProviderCapability as Er, batteryCapability as Et, DeviceTombstoneSchema as F, assertTransactScope as Fi, locationIconKey as Fn, vectorStoreCapability as Fr, composerCapability as Ft, LOG_LEVEL_RANK as G, defineRecordKinds as Gi, normalizeCoreBlockWrite as Gn, compositionSourceKey as Gr, databaseSnapshotCapability as Gt, KEYCHAIN_RESET_TRIGGER_ACTOR as H, createEvent as Hi, metricsProviderCapability as Hn, compositionFeatureEnabled as Hr, coreBlocksCapability as Ht, FIRST_LEVEL_MACRO_CLASSES as I, assertValidDeclaration as Ii, logDestinationCapability as In, withLocationMode as Ir, compositionFieldKey as It, MINUTES_PER_DAY as J, expandCapMethods as Ji, objectInputDeclaresRequiredDeviceId as Jn, toExpressionValue as Jr, defineExtensionSlotProvider as Jt, LegacyStorageLocationDefaultSchema as K, emitDownForOwnedCaps as Ki, normalizeUnit as Kn, createStatefulExpressionMemory as Kr, declarationOwnerNodeId as Kt, FieldClaimModeSchema as L, buildSecretRef as Li, logLevelAtMost as Ln, COMPOSER_ADDON_ID as Lr, compositionSourceRefs as Lt, DataStoreDatabaseSchema as M, asJsonObject as Mi, legacyModeOf as Mn, validateCustomAddress as Mr, cameraGridLayoutCapability as Mt, DeclaredDevices as N, asNumber as Ni, lifecycleJobSchema as Nn, vectorDimFromBase64 as Nr, canonicalIconKey as Nt, DEVICE_NONCE_TTL_MS as O, TransactRefusedError as Oi, kebabToCamel as On, streamQualityLabel as Or, buildDeviceEnrollmentLink as Ot, DeviceStatusSchema as P, asString$1 as Pi, localNetworkCapability as Pn, vectorIndexDimConflictError as Pr, checkRoleAddress as Pt, PreferenceDeviceIdSchema as Q, isEvent as Qi, platformProbeCapability as Qn, errMsg as Qr, deviceExtensionCapability as Qt, FieldClaimSchema as R, collectSecretConfigKeys as Ri, looseSchema as Rn, buildFfmpegArgs as Rr, coreBlockAddonId as Rt, DATABASE_SNAPSHOT_TIMEOUT_MS as S, transformSecretWrite as Sa, RecordNotFoundError as Si, isCollectionArrayMethod as Sn, storageAdminCapability as Sr, armRemovalReconcile as St, DERIVED_CAMERA_SILENCED_CAP_NAMES as T, EventCategory as Ta, RevConflictError as Ti, isLocationEnabled as Tn, storageOccupancyCapability as Tr, bareAddonId as Tt, KeychainAuditEntrySchema as U, customAction as Ui, modeMayWrite as Un, compositionItemFieldPath as Ur, createDeviceExtensionProvider as Ut, HUB_MDNS_TXT_KEYS as V, collectZodSecretPaths as Vi, memoizePinnedFfmpeg as Vn, composedDeviceStableId as Vr, coreBlockSourceKind as Vt, KeychainResetRecordSchema as W, defineCustomActions as Wi, motionCapability as Wn, compositionSliceKey as Wr, dataStoreProviderCapability as Wt, NetworkTunnelStartedDataSchema as X, hydrateSchema as Xi, pickAppLinkHub as Xn, DeviceRole as Xr, describeComposableCaps as Xt, MOTION_CLOSE_AFTER_MS as Y, formatSecretScope as Yi, parseStreamParamsFormPatch as Yn, DeviceFeature as Yr, deriveBatteryPresence as Yt, PREFERENCES_MAX_VALUE_BYTES as Z, isDeviceConfigCap as Zi, planComposition as Zn, DeviceType as Zr, deviceCredentialsCapability as Zt, CatalogFileSchema as _, secretTreeFromPaths as _a, REMOVE_LEAF as _i, interpolate as _n, settingsStoreCapability as _r, addonSettingsCapability as _t, BaseDevice as a, mapSecretLeaves as aa, DeclarationRefusedError as ai, enumerateItemArrayFields as an, resolveAppConnections as ar, STREAM_PROFILE_META as at, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as b, toNodeId as ba, ReadinessTimeoutError as bi, isAppLinkBase as bn, snapshotCapability as br, alertEpisodePayload as bt, CAMSTACK_APP_LINK_ORIGIN as c, normalizeSecretOwner as ca, HISTORY_DEFAULT_MIN_INTERVAL_MS as ci, evictionPolicyOfLocation as cn, resolveCoreBlockFiles as cr, SsoBridgeClaimsSchema as ct, COMPOSED_ITEM_FIXED_FIELDS as d, parseSecretRef as da, PlaintextSecretError as di, extractNestedAddonId as dn, resolveMethodAuth as dr, StorageLocationTypeSchema as dt, isSecretClear as ea, BatchTooLargeError as ei, deviceManagerCapability as en, ptzAutotrackCapability as er, PreferenceValueSchema as et, COMPOSER_RUNNER_ID as f, readinessKey as fa, RECORD_BATCH_MAX as fi, filesystemBrowseCapability as fn, resolveNotificationTapAddress as fr, StorageMigrationJobSchema as ft, CalendarPreferencesSchema as g, scopeKey as ga, REDACTED_SECRET as gi, gbToBytes as gn, scoreRuntimes as gr, addonPagesCapability as gt, CREDENTIAL_TOKEN_AUDIENCE as h, resolveSecretMarkers as ha, RECORD_SWEEP_INTERVAL_MS as hi, formatMinutes as hn, scopesAllowDeviceCap as hr, UserRecordSchema as ht, AlertSchema as i, makeSecretMarker as ia, DEVICE_STATUS_METHOD as ii, enumerateInferenceDevices as in, replacedFieldKeys as ir, STORAGE_ACCESS_FALLBACK as it, DEVICE_TOMBSTONE_RETENTION_MS as j, WELL_KNOWN_TAB_MAP as ji, legacyAutoLinkIds as jn, validateComposition as jr, calendarsCapability as jt, DEVICE_SAN_CREDENTIAL_PREFIX as k, UnindexedFilterError as ki, keychainAdminCapability as kn, supportedRuntimes as kr, buildDeviceSignatureMessage as kt, CAP_NAMES_WITH_STATUS as l, parseJsonObject as la, InvalidRecordError as li, expandContainer as ln, resolveHubAddressRoles as lr, StorageCleanupJobSchema as lt, CORE_BLOCK_ADDON_PREFIX as m, resolveCapMount as ma, RECORD_DELETE_BATCH as mi, formatDeviceRevoker as mn, scopesAllowAddon as mr, UNATTRIBUTED_BUCKET_KEY as mt, AGENT_MDNS_TXT_KEYS as n, isSecretMarkerLike as na, DATAPLANE_SECRET_HEADER as ni, deviceStateCapability as nn, recordsCapability as nr, ROOT_BUCKET_KEY as nt, BatteryStatusSchema as o, nodePin as oa, FilterRequiredError as oi, enumerateSchemaFields as on, resolveBucketMs as or, ScopedTokenSchema as ot, CORE_BLOCKS_ADDON_ID as p, recordSecretRef as pa, RECORD_BATCH_MAX_BYTES as pi, foldSnapshotByFunction as pn, runtimeStatePolicyFor as pr, TokenScopeSchema as pt, METHOD_ACCESS_MAP as q, emitReadiness as qi, objectInputDeclaresAddonId as qn, disarmRoseMemory as qr, decodeVectorBase64 as qt, ALL_CAPABILITY_DEFINITIONS as r, isSecretRefOwnedBy as ra, DEVICE_SETTINGS_CONTRIBUTION_METHODS as ri, deviceStatusCapability as rn, reducePoints as rr, RecordingStatusSchema as rt, CAMERA_SWITCH_ORDER as s, normalizeNodeId as sa, ForeignSecretMarkerError as si, evaluateCompositionField as sn, resolveCoreBlockEntry as sr, ServerNameSchema as st, AGENT_MDNS_SERVICE_TYPE as t, isSecretMarker as ta, CALLER_STAMPED_CAPABILITIES as ti, deviceRemovalHookCapability as tn, recordEntriesCapability as tr, RECORDING_SOURCE_CAMSTACK_ADDON as tt, CATALOG_LANGS as u, parseJsonUnknown as ua, NoCallerError as ui, expressionContainsBuiltinCall as un, resolveLocationMode as ur, StorageLocationModeSchema as ut, CoreBlockSchema as v, secretTreeFromSchema as va, RUNTIME_DEFAULTS as vi, isAlertEpisodeOpen as vn, shortHostname as vr, addonWidgetsCapability as vt, DAY_NAMES as w, withoutCallerStamp as wa, RecordUniqueViolationError as wi, isDefaultAppConnectionEndpoint as wn, storageMigrationCapability as wr, backupCapability as wt, DATABASE_SNAPSHOT_SUFFIX as x, toSecretFieldView as xa, RecordKindDeclarationSchema as xi, isArrayOutputSchema as xn, splitTranslationRef as xr, alertsCapability as xt, CredentialTokenClaimsSchema as y, sleep as ya, ReadinessRegistry as yi, isAlertEpisodeSeverity as yn, siteZoneKey as yr, alertEpisodeId as yt, HISTORY_CATALOG as z, collectSecretLeaves as zi, mayReadLocation as zn, cloneStatefulExpressionMemory as zr, coreBlockComposition as zt };
|