@camstack/addon-pipeline 1.2.615 → 1.2.616
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/THIRD_PARTY_MODELS.md +2 -2
- package/dist/audio-analyzer/index.js +3 -3
- package/dist/audio-analyzer/index.mjs +3 -3
- package/dist/{custom-model-catalog-DFuM_m3D.js → custom-model-catalog-D0EZW4Xb.js} +3 -3
- package/dist/{custom-model-catalog-BmJXsT0k.mjs → custom-model-catalog-D3NopOC9.mjs} +3 -3
- package/dist/detection-pipeline/index.js +114 -6
- package/dist/detection-pipeline/index.mjs +114 -6
- package/dist/{dist-CfOv146z.mjs → dist-BWPVIuD_.mjs} +114 -61
- package/dist/{dist-B_1t8oSg.js → dist-D2aJhYm7.js} +114 -61
- package/dist/{model-catalogs-Dr-_ANpG.js → model-catalogs-BDJEmiKm.js} +14 -4
- package/dist/{model-catalogs-Dnj7Cr3q.mjs → model-catalogs-CYoIeMo4.mjs} +14 -4
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-D82_5p1M.js → node-BKs5_GlD.js} +1 -1
- package/dist/{node-tn9-iwDj.mjs → node-D48F38hW.mjs} +1 -1
- package/dist/pipeline-runner/index.js +3 -3
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/{process-memory-CD5f3ehN.mjs → process-memory-58pkBnTk.mjs} +1 -1
- package/dist/{process-memory-BlkUi_7x.js → process-memory-BY-1p6rF.js} +1 -1
- package/dist/recorder/index.js +80 -5
- package/dist/recorder/index.mjs +80 -5
- package/dist/{segment-demux-js-uWcwFqRL.js → segment-demux-js-DbM8w1dc.js} +1 -1
- package/dist/{segment-demux-js-Cx61fdp7.mjs → segment-demux-js-VeHvPIJe.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-dldjR7yB.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-B6vm1OlX.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-qcb2Czgh.mjs +26 -0
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BvJiBUdN.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-TnEvW5tZ.mjs} +1 -1
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-Bo0bh2FZ.mjs → hostInit-BnK9Yje5.mjs} +3 -3
- package/dist/stream-broker/index.js +38 -5
- package/dist/stream-broker/index.mjs +38 -5
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/python/inference_pool.py +33 -0
- package/python/openvino_compile_probe.py +245 -0
- package/python/test_openvino_compile_probe.py +298 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D4kDfIKO.mjs +0 -26
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
let node_crypto = require("node:crypto");
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -316,6 +316,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
316
316
|
*/
|
|
317
317
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
318
318
|
/**
|
|
319
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
320
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
321
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
322
|
+
* {@link PipelineMotionCalm}.
|
|
323
|
+
*/
|
|
324
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
325
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
326
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
327
|
+
/**
|
|
319
328
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
320
329
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
321
330
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5555,7 +5564,7 @@ var ZodIssueCode = {
|
|
|
5555
5564
|
var ZodFirstPartyTypeKind;
|
|
5556
5565
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5557
5566
|
//#endregion
|
|
5558
|
-
//#region ../types/dist/sleep-
|
|
5567
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5559
5568
|
/**
|
|
5560
5569
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5561
5570
|
* window to float samples (D455).
|
|
@@ -8195,7 +8204,7 @@ var EntryDescriptorSchema = object({
|
|
|
8195
8204
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
8196
8205
|
fields: record(string(), unknown())
|
|
8197
8206
|
}).strict();
|
|
8198
|
-
/** What crosses the wire
|
|
8207
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
8199
8208
|
var RecordKindDeclarationSchema = object({
|
|
8200
8209
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
8201
8210
|
class: _enum(RECORD_CLASSES),
|
|
@@ -8214,14 +8223,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
8214
8223
|
secretPaths: array(string().min(1)).default([]),
|
|
8215
8224
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
8216
8225
|
secretArrayKeys: record(string(), string()).default({}),
|
|
8217
|
-
/**
|
|
8218
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
8219
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8220
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8221
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8222
|
-
* removal still sends it. Never set it.
|
|
8223
|
-
*/
|
|
8224
|
-
adoptsFrom: string().min(1).optional(),
|
|
8225
8226
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8226
8227
|
transactFamily: string().min(1).optional(),
|
|
8227
8228
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -15471,17 +15472,6 @@ object({
|
|
|
15471
15472
|
createdAt: number(),
|
|
15472
15473
|
updatedAt: number()
|
|
15473
15474
|
});
|
|
15474
|
-
object({
|
|
15475
|
-
id: string(),
|
|
15476
|
-
label: string(),
|
|
15477
|
-
isAdmin: boolean().default(false),
|
|
15478
|
-
allowedProviders: AllowedProviderSchema,
|
|
15479
|
-
allowedDevices: AllowedDevicesSchema,
|
|
15480
|
-
tokenHash: string(),
|
|
15481
|
-
tokenPrefix: string(),
|
|
15482
|
-
createdAt: number(),
|
|
15483
|
-
lastUsedAt: number().optional()
|
|
15484
|
-
});
|
|
15485
15475
|
object({
|
|
15486
15476
|
id: string(),
|
|
15487
15477
|
userId: string(),
|
|
@@ -19829,16 +19819,36 @@ var RecordKindStateSchema = _enum([
|
|
|
19829
19819
|
var DeclareKindResultSchema = object({
|
|
19830
19820
|
kindId: number().int(),
|
|
19831
19821
|
state: RecordKindStateSchema,
|
|
19832
|
-
createdIndexes: array(string())
|
|
19833
|
-
/**
|
|
19834
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
19835
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
19836
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
19837
|
-
*/
|
|
19838
|
-
adoptionPending: _null()
|
|
19822
|
+
createdIndexes: array(string())
|
|
19839
19823
|
});
|
|
19840
19824
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
19841
19825
|
var SecretRefsList = array(string());
|
|
19826
|
+
/**
|
|
19827
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
19828
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
19829
|
+
*/
|
|
19830
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
19831
|
+
object({
|
|
19832
|
+
op: literal("put"),
|
|
19833
|
+
kind: RecordKindNameSchema,
|
|
19834
|
+
record: RecordInputSchema,
|
|
19835
|
+
ifRev: number().int().min(0).optional()
|
|
19836
|
+
}),
|
|
19837
|
+
object({
|
|
19838
|
+
op: literal("patch"),
|
|
19839
|
+
kind: RecordKindNameSchema,
|
|
19840
|
+
id: RecordIdSchema,
|
|
19841
|
+
data: RecordBodySchema,
|
|
19842
|
+
at: number().int().nullable().optional(),
|
|
19843
|
+
expiresAt: number().int().nullable().optional(),
|
|
19844
|
+
ifRev: number().int().min(1).optional()
|
|
19845
|
+
}),
|
|
19846
|
+
object({
|
|
19847
|
+
op: literal("delete"),
|
|
19848
|
+
kind: RecordKindNameSchema,
|
|
19849
|
+
id: RecordIdSchema
|
|
19850
|
+
})
|
|
19851
|
+
]);
|
|
19842
19852
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
19843
19853
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
19844
19854
|
kind: "mutation",
|
|
@@ -19945,6 +19955,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
19945
19955
|
}), {
|
|
19946
19956
|
kind: "mutation",
|
|
19947
19957
|
auth: "admin"
|
|
19958
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
19959
|
+
results: array(object({
|
|
19960
|
+
rev: number().int().nullable(),
|
|
19961
|
+
deleted: boolean()
|
|
19962
|
+
})),
|
|
19963
|
+
releasedRefs: SecretRefsList,
|
|
19964
|
+
secretRefs: SecretRefsList
|
|
19965
|
+
}), {
|
|
19966
|
+
kind: "mutation",
|
|
19967
|
+
auth: "admin"
|
|
19948
19968
|
}), method(object({
|
|
19949
19969
|
deviceId: number().int(),
|
|
19950
19970
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -45748,9 +45768,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
45748
45768
|
"node-updating",
|
|
45749
45769
|
"node-inference-unavailable",
|
|
45750
45770
|
"detection-blind",
|
|
45771
|
+
"motion-noisy",
|
|
45772
|
+
"motion-calm",
|
|
45751
45773
|
"recording-stalled",
|
|
45752
45774
|
"recording-healthy",
|
|
45753
45775
|
"recording-degraded",
|
|
45776
|
+
"device-attention-required",
|
|
45777
|
+
"device-attention-resolved",
|
|
45754
45778
|
"storage-location-low",
|
|
45755
45779
|
"storage-location-critical",
|
|
45756
45780
|
"storage-location-ok",
|
|
@@ -59166,6 +59190,16 @@ object({
|
|
|
59166
59190
|
powerState: string().nullable(),
|
|
59167
59191
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
59168
59192
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
59193
|
+
/**
|
|
59194
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
59195
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
59196
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
59197
|
+
*/
|
|
59198
|
+
filterCleaningDue: boolean().nullable(),
|
|
59199
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
59200
|
+
machineCareDue: boolean().nullable(),
|
|
59201
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
59202
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
59169
59203
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
59170
59204
|
halfLoad: boolean().nullable(),
|
|
59171
59205
|
hygienePlus: boolean().nullable(),
|
|
@@ -66307,16 +66341,6 @@ var UpdateUserInputSchema = object({
|
|
|
66307
66341
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
66308
66342
|
scopes: array(TokenScopeSchema).optional()
|
|
66309
66343
|
});
|
|
66310
|
-
var ApiKeySummarySchema = object({
|
|
66311
|
-
id: string(),
|
|
66312
|
-
label: string(),
|
|
66313
|
-
isAdmin: boolean().default(false),
|
|
66314
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
66315
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
66316
|
-
tokenPrefix: string(),
|
|
66317
|
-
createdAt: number(),
|
|
66318
|
-
lastUsedAt: number().optional()
|
|
66319
|
-
});
|
|
66320
66344
|
var OauthSessionSummarySchema = object({
|
|
66321
66345
|
id: string(),
|
|
66322
66346
|
userId: string(),
|
|
@@ -66338,8 +66362,7 @@ var TotpStatusSchema = object({
|
|
|
66338
66362
|
confirmedAt: number().nullable()
|
|
66339
66363
|
});
|
|
66340
66364
|
/**
|
|
66341
|
-
* user-management — singleton capability for user accounts
|
|
66342
|
-
* legacy API-key rows.
|
|
66365
|
+
* user-management — singleton capability for user accounts.
|
|
66343
66366
|
*
|
|
66344
66367
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
66345
66368
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -66395,10 +66418,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
66395
66418
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
66396
66419
|
kind: "mutation",
|
|
66397
66420
|
access: "view"
|
|
66398
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
66399
|
-
kind: "mutation",
|
|
66400
|
-
auth: "admin",
|
|
66401
|
-
access: "delete"
|
|
66402
66421
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
66403
66422
|
kind: "mutation",
|
|
66404
66423
|
auth: "admin",
|
|
@@ -73929,6 +73948,12 @@ Object.freeze({
|
|
|
73929
73948
|
addonId: null,
|
|
73930
73949
|
access: "view"
|
|
73931
73950
|
},
|
|
73951
|
+
"records.transact": {
|
|
73952
|
+
capName: "records",
|
|
73953
|
+
capScope: "system",
|
|
73954
|
+
addonId: null,
|
|
73955
|
+
access: "create"
|
|
73956
|
+
},
|
|
73932
73957
|
"sceneMonitor.captureReference": {
|
|
73933
73958
|
capName: "scene-monitor",
|
|
73934
73959
|
capScope: "device",
|
|
@@ -75261,12 +75286,6 @@ Object.freeze({
|
|
|
75261
75286
|
addonId: null,
|
|
75262
75287
|
access: "view"
|
|
75263
75288
|
},
|
|
75264
|
-
"userManagement.listApiKeys": {
|
|
75265
|
-
capName: "user-management",
|
|
75266
|
-
capScope: "system",
|
|
75267
|
-
addonId: null,
|
|
75268
|
-
access: "view"
|
|
75269
|
-
},
|
|
75270
75289
|
"userManagement.listExternalIdentities": {
|
|
75271
75290
|
capName: "user-management",
|
|
75272
75291
|
capScope: "system",
|
|
@@ -75321,12 +75340,6 @@ Object.freeze({
|
|
|
75321
75340
|
addonId: null,
|
|
75322
75341
|
access: "create"
|
|
75323
75342
|
},
|
|
75324
|
-
"userManagement.revokeApiKey": {
|
|
75325
|
-
capName: "user-management",
|
|
75326
|
-
capScope: "system",
|
|
75327
|
-
addonId: null,
|
|
75328
|
-
access: "delete"
|
|
75329
|
-
},
|
|
75330
75343
|
"userManagement.revokeOauthSession": {
|
|
75331
75344
|
capName: "user-management",
|
|
75332
75345
|
capScope: "system",
|
|
@@ -78741,9 +78754,13 @@ new Map(Object.entries({
|
|
|
78741
78754
|
"stream-online": "device-events",
|
|
78742
78755
|
"stream-offline": "device-events",
|
|
78743
78756
|
"detection-blind": "device-events",
|
|
78757
|
+
"motion-noisy": "device-events",
|
|
78758
|
+
"motion-calm": "device-events",
|
|
78744
78759
|
"recording-stalled": "device-events",
|
|
78745
78760
|
"recording-healthy": "device-events",
|
|
78746
78761
|
"recording-degraded": "device-events",
|
|
78762
|
+
"device-attention-required": "device-events",
|
|
78763
|
+
"device-attention-resolved": "device-events",
|
|
78747
78764
|
"node-online": "system",
|
|
78748
78765
|
"node-offline": "system",
|
|
78749
78766
|
"node-restarting": "system",
|
|
@@ -78826,6 +78843,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78826
78843
|
label: "Detecting nothing",
|
|
78827
78844
|
kinds: ["detection-blind"]
|
|
78828
78845
|
},
|
|
78846
|
+
{
|
|
78847
|
+
id: "motion-noise",
|
|
78848
|
+
family: "device-events",
|
|
78849
|
+
label: "Motion without a subject",
|
|
78850
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
78851
|
+
},
|
|
78829
78852
|
{
|
|
78830
78853
|
id: "recording",
|
|
78831
78854
|
family: "device-events",
|
|
@@ -78836,6 +78859,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78836
78859
|
"recording-degraded"
|
|
78837
78860
|
]
|
|
78838
78861
|
},
|
|
78862
|
+
{
|
|
78863
|
+
id: "device-attention",
|
|
78864
|
+
family: "device-events",
|
|
78865
|
+
label: "Needs attention",
|
|
78866
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
78867
|
+
},
|
|
78839
78868
|
{
|
|
78840
78869
|
id: "nodes",
|
|
78841
78870
|
family: "system",
|
|
@@ -78975,6 +79004,7 @@ var ALERT_EPISODE = [
|
|
|
78975
79004
|
"alert-error",
|
|
78976
79005
|
"alert-critical-resolved"
|
|
78977
79006
|
];
|
|
79007
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
78978
79008
|
var UPDATES = [
|
|
78979
79009
|
"addon-update-available",
|
|
78980
79010
|
"server-update-available",
|
|
@@ -79004,9 +79034,12 @@ var DEVICE_EVENTS = [
|
|
|
79004
79034
|
"stream-online",
|
|
79005
79035
|
"stream-offline",
|
|
79006
79036
|
"detection-blind",
|
|
79037
|
+
"motion-noisy",
|
|
79038
|
+
"motion-calm",
|
|
79007
79039
|
"recording-stalled",
|
|
79008
79040
|
"recording-healthy",
|
|
79009
79041
|
"recording-degraded",
|
|
79042
|
+
...DEVICE_ATTENTION,
|
|
79010
79043
|
...ALARM
|
|
79011
79044
|
];
|
|
79012
79045
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79174,7 +79207,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
79174
79207
|
[...RULE_TEXT],
|
|
79175
79208
|
[...RULE_TEXT],
|
|
79176
79209
|
[...RULE_TEXT],
|
|
79177
|
-
|
|
79210
|
+
[...RULE_TEXT],
|
|
79211
|
+
[...RULE_TEXT],
|
|
79212
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79178
79213
|
[...RULE_TEXT],
|
|
79179
79214
|
[...RULE_TEXT],
|
|
79180
79215
|
[...RULE_TEXT],
|
|
@@ -79196,11 +79231,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79196
79231
|
[...RULE_TEXT],
|
|
79197
79232
|
[...RULE_TEXT],
|
|
79198
79233
|
[...RULE_TEXT],
|
|
79234
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79199
79235
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79236
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79200
79237
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79201
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79202
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79203
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79238
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79204
79239
|
[...RULE_TEXT],
|
|
79205
79240
|
[...RULE_TEXT],
|
|
79206
79241
|
[...RULE_TEXT],
|
|
@@ -79276,6 +79311,15 @@ new Map([
|
|
|
79276
79311
|
snapshotLabel: "Tanks low or full now",
|
|
79277
79312
|
snapshotSection: "tanks"
|
|
79278
79313
|
},
|
|
79314
|
+
{
|
|
79315
|
+
id: "motion-noise",
|
|
79316
|
+
family: "device-events",
|
|
79317
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79318
|
+
bad: ["motion-noisy"],
|
|
79319
|
+
recovery: ["motion-calm"],
|
|
79320
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79321
|
+
snapshotSection: null
|
|
79322
|
+
},
|
|
79279
79323
|
{
|
|
79280
79324
|
id: "recording-health",
|
|
79281
79325
|
family: "device-events",
|
|
@@ -79285,6 +79329,15 @@ new Map([
|
|
|
79285
79329
|
snapshotLabel: "Recordings stalled now",
|
|
79286
79330
|
snapshotSection: null
|
|
79287
79331
|
},
|
|
79332
|
+
{
|
|
79333
|
+
id: "device-attention",
|
|
79334
|
+
family: "device-events",
|
|
79335
|
+
label: "Device needs attention (raised / resolved)",
|
|
79336
|
+
bad: ["device-attention-required"],
|
|
79337
|
+
recovery: ["device-attention-resolved"],
|
|
79338
|
+
snapshotLabel: "Devices needing attention now",
|
|
79339
|
+
snapshotSection: null
|
|
79340
|
+
},
|
|
79288
79341
|
{
|
|
79289
79342
|
id: "node-connectivity",
|
|
79290
79343
|
family: "system",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_dist = require("./dist-
|
|
1
|
+
const require_dist = require("./dist-D2aJhYm7.js");
|
|
2
2
|
//#region src/detection-pipeline/registry/model-licenses.ts
|
|
3
3
|
var COCO_DATA = {
|
|
4
4
|
name: "COCO 2017",
|
|
@@ -425,9 +425,9 @@ var COCO17_LABELS = [
|
|
|
425
425
|
* Mirrored unchanged on our Hugging Face repo from the publisher's release
|
|
426
426
|
* (`release`); the revision comes from the mirror's table (D744), and the
|
|
427
427
|
* corresponding source sits in
|
|
428
|
-
* `source/yolov9-edgetpu-dbro/`.
|
|
429
|
-
*
|
|
430
|
-
*
|
|
428
|
+
* `source/yolov9-edgetpu-dbro/`. The 320 build is the tflite default (D908); the
|
|
429
|
+
* 512 build is selectable. Floors: their own rows in
|
|
430
|
+
* `OBJECT_DETECTION_CLASS_FLOORS`.
|
|
431
431
|
*/
|
|
432
432
|
var yolov9EdgeTpuEntry = (res, release, file, sizeMB, note) => ({
|
|
433
433
|
id: `yolov9s-${res}-edgetpu`,
|
|
@@ -1071,6 +1071,16 @@ var OBJECT_DETECTION_CLASS_FLOORS = {
|
|
|
1071
1071
|
person: .6,
|
|
1072
1072
|
vehicle: .55,
|
|
1073
1073
|
animal: .55
|
|
1074
|
+
},
|
|
1075
|
+
"yolov9s-320-edgetpu": {
|
|
1076
|
+
person: .4,
|
|
1077
|
+
vehicle: .4,
|
|
1078
|
+
animal: .3
|
|
1079
|
+
},
|
|
1080
|
+
"yolov9s-512-edgetpu": {
|
|
1081
|
+
person: .4,
|
|
1082
|
+
vehicle: .4,
|
|
1083
|
+
animal: .3
|
|
1074
1084
|
}
|
|
1075
1085
|
};
|
|
1076
1086
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Gn as hfModelUrl, f as COCO_80_LABELS } from "./dist-
|
|
1
|
+
import { Gn as hfModelUrl, f as COCO_80_LABELS } from "./dist-BWPVIuD_.mjs";
|
|
2
2
|
//#region src/detection-pipeline/registry/model-licenses.ts
|
|
3
3
|
var COCO_DATA = {
|
|
4
4
|
name: "COCO 2017",
|
|
@@ -425,9 +425,9 @@ var COCO17_LABELS = [
|
|
|
425
425
|
* Mirrored unchanged on our Hugging Face repo from the publisher's release
|
|
426
426
|
* (`release`); the revision comes from the mirror's table (D744), and the
|
|
427
427
|
* corresponding source sits in
|
|
428
|
-
* `source/yolov9-edgetpu-dbro/`.
|
|
429
|
-
*
|
|
430
|
-
*
|
|
428
|
+
* `source/yolov9-edgetpu-dbro/`. The 320 build is the tflite default (D908); the
|
|
429
|
+
* 512 build is selectable. Floors: their own rows in
|
|
430
|
+
* `OBJECT_DETECTION_CLASS_FLOORS`.
|
|
431
431
|
*/
|
|
432
432
|
var yolov9EdgeTpuEntry = (res, release, file, sizeMB, note) => ({
|
|
433
433
|
id: `yolov9s-${res}-edgetpu`,
|
|
@@ -1071,6 +1071,16 @@ var OBJECT_DETECTION_CLASS_FLOORS = {
|
|
|
1071
1071
|
person: .6,
|
|
1072
1072
|
vehicle: .55,
|
|
1073
1073
|
animal: .55
|
|
1074
|
+
},
|
|
1075
|
+
"yolov9s-320-edgetpu": {
|
|
1076
|
+
person: .4,
|
|
1077
|
+
vehicle: .4,
|
|
1078
|
+
animal: .3
|
|
1079
|
+
},
|
|
1080
|
+
"yolov9s-512-edgetpu": {
|
|
1081
|
+
person: .4,
|
|
1082
|
+
vehicle: .4,
|
|
1083
|
+
animal: .3
|
|
1074
1084
|
}
|
|
1075
1085
|
};
|
|
1076
1086
|
/**
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-D2aJhYm7.js");
|
|
6
6
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as evaluateZoneRules, Gt as motionDetectionCapability, Kn as hydrateSchema, Pn as BaseAddon, jn as DeviceType } from "../dist-
|
|
1
|
+
import { Ct as evaluateZoneRules, Gt as motionDetectionCapability, Kn as hydrateSchema, Pn as BaseAddon, jn as DeviceType } from "../dist-BWPVIuD_.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { En as buildFfmpegArgs, Mn as errMsg, Tn as Fmp4BoxSplitter, kn as isSoftwareDecode } from "./dist-
|
|
1
|
+
import { En as buildFfmpegArgs, Mn as errMsg, Tn as Fmp4BoxSplitter, kn as isSoftwareDecode } from "./dist-BWPVIuD_.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { realpathSync } from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_custom_model_catalog = require("../custom-model-catalog-
|
|
6
|
+
const require_dist = require("../dist-D2aJhYm7.js");
|
|
7
|
+
const require_node = require("../node-BKs5_GlD.js");
|
|
8
|
+
const require_custom_model_catalog = require("../custom-model-catalog-D0EZW4Xb.js");
|
|
9
9
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
10
10
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
11
11
|
const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as NativeLeaseAdmissionSchema, Bn as createEvent, Dt as failureContributionCapability, E as FailureCounters, Ft as linkedStepOf, Hn as defineCustomActions, It as loadContributionCapability, M as NodeBenchRunnerInputSchema, Mn as errMsg, P as PIPELINE_RAMP, Pn as BaseAddon, Qn as nodePin, Qt as pipelineRunnerCapability, Rn as MODEL_FORMATS, V as ROOT_SUPPLIABLE_STEP_IDS, Vn as customAction, Xt as pickNativeLeaseOverride, Y as allowedSuppliedEffect, Yt as pickDetailCropConvention, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, ar as boolean, cn as resolveModelBoundSetting, cr as literal, dn as resolveRootSupply, fn as rootSuppliesOf, gt as deriveRootFaceRefineRect, hr as EventCategory, ir as array, j as NativeLeaseSettingsSchema, lr as number, m as CROP_SUPPLY_SOURCES, mt as deriveDetailCropRect, nt as buildBenchStepTree, pr as string, rr as _enum, rt as cameraOwnsMotionViaSensor, sr as lazy, ur as object, x as DEVICE_RAMP, y as DEFAULT_NATIVE_LEASE_SETTINGS } from "../dist-
|
|
2
|
-
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
3
|
-
import { a as stepsForElectedPool, b as getStepDefinition, d as rootObjectGate, f as localFrameRegistry, h as resolveFrameViewGeometry, i as placeDetailStep, l as resolveDefaultDetectionModel, m as createSessionDecodeCoordinator, p as isSessionDecodeReadGone, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, y as getStep } from "../custom-model-catalog-
|
|
1
|
+
import { A as NativeLeaseAdmissionSchema, Bn as createEvent, Dt as failureContributionCapability, E as FailureCounters, Ft as linkedStepOf, Hn as defineCustomActions, It as loadContributionCapability, M as NodeBenchRunnerInputSchema, Mn as errMsg, P as PIPELINE_RAMP, Pn as BaseAddon, Qn as nodePin, Qt as pipelineRunnerCapability, Rn as MODEL_FORMATS, V as ROOT_SUPPLIABLE_STEP_IDS, Vn as customAction, Xt as pickNativeLeaseOverride, Y as allowedSuppliedEffect, Yt as pickDetailCropConvention, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, ar as boolean, cn as resolveModelBoundSetting, cr as literal, dn as resolveRootSupply, fn as rootSuppliesOf, gt as deriveRootFaceRefineRect, hr as EventCategory, ir as array, j as NativeLeaseSettingsSchema, lr as number, m as CROP_SUPPLY_SOURCES, mt as deriveDetailCropRect, nt as buildBenchStepTree, pr as string, rr as _enum, rt as cameraOwnsMotionViaSensor, sr as lazy, ur as object, x as DEVICE_RAMP, y as DEFAULT_NATIVE_LEASE_SETTINGS } from "../dist-BWPVIuD_.mjs";
|
|
2
|
+
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-D48F38hW.mjs";
|
|
3
|
+
import { a as stepsForElectedPool, b as getStepDefinition, d as rootObjectGate, f as localFrameRegistry, h as resolveFrameViewGeometry, i as placeDetailStep, l as resolveDefaultDetectionModel, m as createSessionDecodeCoordinator, p as isSessionDecodeReadGone, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, y as getStep } from "../custom-model-catalog-D3NopOC9.mjs";
|
|
4
4
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
6
|
import { c as withDetectionIntent, o as preRollRequestOf, t as DETECTION_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-emK7D4bc.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-D2aJhYm7.js");
|
|
3
3
|
let node_fs = require("node:fs");
|
|
4
4
|
node_fs = require_chunk.__toESM(node_fs);
|
|
5
5
|
let node_child_process = require("node:child_process");
|
package/dist/recorder/index.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
6
|
+
const require_dist = require("../dist-D2aJhYm7.js");
|
|
7
|
+
const require_node = require("../node-BKs5_GlD.js");
|
|
8
8
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
9
9
|
const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
|
|
10
10
|
let node_crypto = require("node:crypto");
|
|
@@ -2991,9 +2991,25 @@ function encodeDirectory(payload) {
|
|
|
2991
2991
|
var MIN_INDEXABLE_SEGMENT_BYTES = 64;
|
|
2992
2992
|
var SegmentStore = class SegmentStore {
|
|
2993
2993
|
deps;
|
|
2994
|
+
stubCount = 0;
|
|
2995
|
+
stubBytes = 0;
|
|
2994
2996
|
constructor(deps) {
|
|
2995
2997
|
this.deps = deps;
|
|
2996
2998
|
}
|
|
2999
|
+
/**
|
|
3000
|
+
* The stubs cleared since the last call, then reset. A recovery pass calls it
|
|
3001
|
+
* once and logs ONE line: ~530 stubs used to re-log at every boot because
|
|
3002
|
+
* each was warned about and left in staging forever.
|
|
3003
|
+
*/
|
|
3004
|
+
takeStubReport() {
|
|
3005
|
+
const report = {
|
|
3006
|
+
count: this.stubCount,
|
|
3007
|
+
bytes: this.stubBytes
|
|
3008
|
+
};
|
|
3009
|
+
this.stubCount = 0;
|
|
3010
|
+
this.stubBytes = 0;
|
|
3011
|
+
return report;
|
|
3012
|
+
}
|
|
2997
3013
|
async hydrate(deviceId, location) {
|
|
2998
3014
|
const paths = await this.deps.list({
|
|
2999
3015
|
location,
|
|
@@ -3013,13 +3029,30 @@ var SegmentStore = class SegmentStore {
|
|
|
3013
3029
|
return null;
|
|
3014
3030
|
}
|
|
3015
3031
|
if (bytes < MIN_INDEXABLE_SEGMENT_BYTES) {
|
|
3016
|
-
this.deps.logger.
|
|
3032
|
+
this.deps.logger.debug?.("segment too small to index — clearing stub from staging", {
|
|
3017
3033
|
tags: { deviceId: input.deviceId },
|
|
3018
3034
|
meta: {
|
|
3019
3035
|
bytes,
|
|
3020
3036
|
path: input.flatAbsPath
|
|
3021
3037
|
}
|
|
3022
3038
|
});
|
|
3039
|
+
if (this.deps.removeStaged !== void 0) {
|
|
3040
|
+
try {
|
|
3041
|
+
await this.deps.removeStaged(input.flatAbsPath);
|
|
3042
|
+
} catch (err) {
|
|
3043
|
+
this.deps.logger.warn("segment stub could not be cleared from staging", {
|
|
3044
|
+
tags: { deviceId: input.deviceId },
|
|
3045
|
+
error: err,
|
|
3046
|
+
meta: {
|
|
3047
|
+
bytes,
|
|
3048
|
+
path: input.flatAbsPath
|
|
3049
|
+
}
|
|
3050
|
+
});
|
|
3051
|
+
return null;
|
|
3052
|
+
}
|
|
3053
|
+
this.stubCount++;
|
|
3054
|
+
this.stubBytes += bytes;
|
|
3055
|
+
}
|
|
3023
3056
|
return null;
|
|
3024
3057
|
}
|
|
3025
3058
|
const relPath = segmentRelPath(input.deviceId, input.profile, input.startMs, input.durMs, bytes);
|
|
@@ -6849,6 +6882,18 @@ Object.freeze({
|
|
|
6849
6882
|
"empty"
|
|
6850
6883
|
]
|
|
6851
6884
|
},
|
|
6885
|
+
{
|
|
6886
|
+
"path": "filterCleaningDue",
|
|
6887
|
+
"valueType": "boolean"
|
|
6888
|
+
},
|
|
6889
|
+
{
|
|
6890
|
+
"path": "machineCareDue",
|
|
6891
|
+
"valueType": "boolean"
|
|
6892
|
+
},
|
|
6893
|
+
{
|
|
6894
|
+
"path": "machineCareRemainingRuns",
|
|
6895
|
+
"valueType": "number"
|
|
6896
|
+
},
|
|
6852
6897
|
{
|
|
6853
6898
|
"path": "halfLoad",
|
|
6854
6899
|
"valueType": "boolean"
|
|
@@ -11780,6 +11825,9 @@ var DurableLegacyKindHandle = class {
|
|
|
11780
11825
|
aggregate = () => notImpl("aggregate");
|
|
11781
11826
|
deleteWhere = () => notImpl("deleteWhere");
|
|
11782
11827
|
allocateId = () => notImpl("allocateId");
|
|
11828
|
+
txPut = () => notImpl("txPut");
|
|
11829
|
+
txPatch = () => notImpl("txPatch");
|
|
11830
|
+
txDelete = () => notImpl("txDelete");
|
|
11783
11831
|
pkColumn() {
|
|
11784
11832
|
return this.spec.columns.find((c) => c.primaryKey === true)?.name ?? "id";
|
|
11785
11833
|
}
|
|
@@ -18052,6 +18100,15 @@ var METHOD_FAILED = /\bmethod ([A-Z_]+) failed: (\d{3})\b/;
|
|
|
18052
18100
|
function isHandshakeMethod(method) {
|
|
18053
18101
|
return method === "OPTIONS" || method === "DESCRIBE" || method === "SETUP" || method === "PLAY";
|
|
18054
18102
|
}
|
|
18103
|
+
/**
|
|
18104
|
+
* ffmpeg's account of a restream that answered DESCRIBE `200` with no SDP at
|
|
18105
|
+
* all (a hub that predates the 503 refusal): it opens the url and finds nothing
|
|
18106
|
+
* to parse — `Error opening input file rtsp://… ` + `Invalid data found when
|
|
18107
|
+
* processing input`, exit 183 (AVERROR_INVALIDDATA & 0xff). Same fact as a
|
|
18108
|
+
* refused DESCRIBE: the source is not serving right now, nothing ran.
|
|
18109
|
+
*/
|
|
18110
|
+
var OPEN_FAILED = /Error opening input file rtsp:\/\//;
|
|
18111
|
+
var INVALID_DATA = /Invalid data found when processing input/;
|
|
18055
18112
|
/** The refusal named in this generation's stderr tail, or `null` when there is none. */
|
|
18056
18113
|
function readDialRefusal(stderrTail) {
|
|
18057
18114
|
for (let i = stderrTail.length - 1; i >= 0; i--) {
|
|
@@ -18064,6 +18121,11 @@ function readDialRefusal(stderrTail) {
|
|
|
18064
18121
|
status: Number(match[2])
|
|
18065
18122
|
};
|
|
18066
18123
|
}
|
|
18124
|
+
const text = stderrTail.join("\n");
|
|
18125
|
+
if (OPEN_FAILED.test(text) && INVALID_DATA.test(text)) return {
|
|
18126
|
+
method: "DESCRIBE",
|
|
18127
|
+
status: 503
|
|
18128
|
+
};
|
|
18067
18129
|
return null;
|
|
18068
18130
|
}
|
|
18069
18131
|
//#endregion
|
|
@@ -18465,10 +18527,11 @@ var RecordingStallMonitor = class {
|
|
|
18465
18527
|
});
|
|
18466
18528
|
return;
|
|
18467
18529
|
}
|
|
18530
|
+
const edge = prev?.expected !== true;
|
|
18468
18531
|
this.state.set(deviceId, {
|
|
18469
18532
|
expected: true,
|
|
18470
|
-
lastSegmentAt: prev?.lastSegmentAt ?? now,
|
|
18471
|
-
stalledReported: prev?.stalledReported ?? false,
|
|
18533
|
+
lastSegmentAt: edge ? now : prev?.lastSegmentAt ?? now,
|
|
18534
|
+
stalledReported: edge ? false : prev?.stalledReported ?? false,
|
|
18472
18535
|
lastDegradedAt: prev?.lastDegradedAt ?? null
|
|
18473
18536
|
});
|
|
18474
18537
|
}
|
|
@@ -23835,6 +23898,7 @@ var RecorderV2Addon = class extends require_dist.BaseAddon {
|
|
|
23835
23898
|
list: (input) => this.ctx.api.storage.list.query(input),
|
|
23836
23899
|
deletePath: (input) => this.ctx.api.storage.delete.mutate(input),
|
|
23837
23900
|
statBytes: async (absPath) => (await node_fs.promises.stat(absPath)).size,
|
|
23901
|
+
removeStaged: (absPath) => node_fs.promises.rm(absPath, { force: true }),
|
|
23838
23902
|
moveFile: async (fromAbs, toAbs) => {
|
|
23839
23903
|
await node_fs.promises.mkdir(node_path.default.dirname(toAbs), { recursive: true });
|
|
23840
23904
|
try {
|
|
@@ -23901,6 +23965,12 @@ var RecorderV2Addon = class extends require_dist.BaseAddon {
|
|
|
23901
23965
|
},
|
|
23902
23966
|
info: (message, extras) => {
|
|
23903
23967
|
this.ctx.logger.info(message, { meta: extras.meta });
|
|
23968
|
+
},
|
|
23969
|
+
debug: (message, extras) => {
|
|
23970
|
+
this.ctx.logger.debug(message, {
|
|
23971
|
+
tags: extras.tags,
|
|
23972
|
+
meta: extras.meta
|
|
23973
|
+
});
|
|
23904
23974
|
}
|
|
23905
23975
|
}
|
|
23906
23976
|
};
|
|
@@ -25461,6 +25531,11 @@ var RecorderV2Addon = class extends require_dist.BaseAddon {
|
|
|
25461
25531
|
defaultSegmentSeconds: this.config.segmentSeconds,
|
|
25462
25532
|
shouldStop: () => this.segmentStore === null
|
|
25463
25533
|
});
|
|
25534
|
+
const stubs = this.segmentStore?.takeStubReport();
|
|
25535
|
+
if (stubs !== void 0 && stubs.count > 0) this.ctx.logger.info("recorder: staging recovery cleared stub segments", { meta: {
|
|
25536
|
+
count: stubs.count,
|
|
25537
|
+
bytes: stubs.bytes
|
|
25538
|
+
} });
|
|
25464
25539
|
} catch (err) {
|
|
25465
25540
|
this.ctx.logger.warn("recorder: staging boot reconcile failed", { meta: { error: require_dist.errMsg(err) } });
|
|
25466
25541
|
}
|