@camstack/addon-post-analysis 1.2.79 → 1.2.80
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/{dist-CWoaZE47.js → dist-BTbbBBpS.js} +10 -1
- package/dist/{dist-D6_m_zg1.mjs → dist-D9Z7czrz.mjs} +10 -1
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DhzYNXUk.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DHm8hb9G.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-CcziTvBY.mjs → hostInit-Dtf-oVL7.mjs} +1 -1
- package/dist/pipeline-analytics/index.js +43 -28
- package/dist/pipeline-analytics/index.mjs +43 -28
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -20683,7 +20683,16 @@ targets: array(object({
|
|
|
20683
20683
|
/** A sleeping battery camera: the frame is deliberately stale and will
|
|
20684
20684
|
* NOT refresh in the background. A surface should say so rather than
|
|
20685
20685
|
* present it as current. */
|
|
20686
|
-
sleeping: boolean()
|
|
20686
|
+
sleeping: boolean(),
|
|
20687
|
+
/** Current device state rendered over the cached frame. State images
|
|
20688
|
+
* remain authoritative even when their photographic background is
|
|
20689
|
+
* old; null means the link must carry a current camera frame. */
|
|
20690
|
+
stateReason: _enum([
|
|
20691
|
+
"disabled",
|
|
20692
|
+
"sleeping",
|
|
20693
|
+
"unreachable",
|
|
20694
|
+
"waking"
|
|
20695
|
+
]).nullable()
|
|
20687
20696
|
})));
|
|
20688
20697
|
/**
|
|
20689
20698
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -20652,7 +20652,16 @@ targets: array(object({
|
|
|
20652
20652
|
/** A sleeping battery camera: the frame is deliberately stale and will
|
|
20653
20653
|
* NOT refresh in the background. A surface should say so rather than
|
|
20654
20654
|
* present it as current. */
|
|
20655
|
-
sleeping: boolean()
|
|
20655
|
+
sleeping: boolean(),
|
|
20656
|
+
/** Current device state rendered over the cached frame. State images
|
|
20657
|
+
* remain authoritative even when their photographic background is
|
|
20658
|
+
* old; null means the link must carry a current camera frame. */
|
|
20659
|
+
stateReason: _enum([
|
|
20660
|
+
"disabled",
|
|
20661
|
+
"sleeping",
|
|
20662
|
+
"unreachable",
|
|
20663
|
+
"waking"
|
|
20664
|
+
]).nullable()
|
|
20656
20665
|
})));
|
|
20657
20666
|
/**
|
|
20658
20667
|
* `sso-bridge` — internal hub-only cap that lets SSO-style auth
|
|
@@ -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-BTbbBBpS.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
let node_fs$1 = require_dist.__toESM(node_fs, 1);
|
|
8
8
|
node_fs = require_dist.__toESM(node_fs);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as hfModelUrl, X as embeddingEncoderCapability, mt as BaseAddon } from "../dist-
|
|
1
|
+
import { $ as hfModelUrl, X as embeddingEncoderCapability, mt as BaseAddon } from "../dist-D9Z7czrz.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import "node:fs";
|
|
@@ -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-BTbbBBpS.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_dist.__toESM(node_fs, 1);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -49899,11 +49899,22 @@ var PipelineAnalyticsAddon = class extends require_dist.BaseAddon {
|
|
|
49899
49899
|
async onInitialize() {
|
|
49900
49900
|
const api = this.ctx.api;
|
|
49901
49901
|
if (!api) throw new Error("pipeline-analytics requires ctx.api (device-manager + settings-store)");
|
|
49902
|
-
|
|
49903
|
-
|
|
49902
|
+
const bootT0 = Date.now();
|
|
49903
|
+
const step = async (name, fn) => {
|
|
49904
|
+
const t0 = Date.now();
|
|
49905
|
+
const out = await fn();
|
|
49906
|
+
this.ctx.logger.info("pipeline-analytics boot step", { meta: {
|
|
49907
|
+
step: name,
|
|
49908
|
+
ms: Date.now() - t0,
|
|
49909
|
+
sinceBootMs: Date.now() - bootT0
|
|
49910
|
+
} });
|
|
49911
|
+
return out;
|
|
49912
|
+
};
|
|
49913
|
+
await step("declareCollections", () => this.declareCollections(api));
|
|
49914
|
+
await step("declareAlarmPanel", () => this.declareAlarmPanel(api));
|
|
49904
49915
|
const logger = this.ctx.logger;
|
|
49905
|
-
const storage = await this.resolveMediaStorage(logger);
|
|
49906
|
-
const stores = await this.buildStores(api, logger, storage);
|
|
49916
|
+
const storage = await step("resolveMediaStorage", () => this.resolveMediaStorage(logger));
|
|
49917
|
+
const stores = await step("buildStores", () => this.buildStores(api, logger, storage));
|
|
49907
49918
|
const rawNodeId = this.ctx.kernel.localNodeId ?? this.ctx.id;
|
|
49908
49919
|
const ownNodeId = rawNodeId.includes("/") ? rawNodeId.split("/")[0] : rawNodeId;
|
|
49909
49920
|
this.eventsOpsLog = new OpsLogStore({
|
|
@@ -49912,7 +49923,7 @@ var PipelineAnalyticsAddon = class extends require_dist.BaseAddon {
|
|
|
49912
49923
|
nodeId: ownNodeId
|
|
49913
49924
|
});
|
|
49914
49925
|
{
|
|
49915
|
-
const designated = await this.postProcessingNodeState.get();
|
|
49926
|
+
const designated = await step("postProcessingNodeState", () => this.postProcessingNodeState.get());
|
|
49916
49927
|
this.isPostProcessingNode = ownNodeId === designated;
|
|
49917
49928
|
if (!this.isPostProcessingNode) logger.info("pipeline-analytics INERT on this node — post-processing assigned elsewhere", { meta: {
|
|
49918
49929
|
ownNodeId,
|
|
@@ -49936,8 +49947,8 @@ var PipelineAnalyticsAddon = class extends require_dist.BaseAddon {
|
|
|
49936
49947
|
this.buildRecognizers(api, logger, stores, transport);
|
|
49937
49948
|
this.buildDetailDispatcher(api, logger, transport);
|
|
49938
49949
|
const capProviders = this.buildAnalyticsProviders(api, logger);
|
|
49939
|
-
await this.buildNotificationCenter(api, logger, stores);
|
|
49940
|
-
await this.serveEventMediaDataPlane();
|
|
49950
|
+
await step("buildNotificationCenter", () => this.buildNotificationCenter(api, logger, stores));
|
|
49951
|
+
await step("serveEventMediaDataPlane", () => this.serveEventMediaDataPlane());
|
|
49941
49952
|
this.subscriptionUnsubs = wireSubscriptions({
|
|
49942
49953
|
eventBus: this.ctx.eventBus,
|
|
49943
49954
|
isPostProcessingNode: this.isPostProcessingNode,
|
|
@@ -49953,11 +49964,11 @@ var PipelineAnalyticsAddon = class extends require_dist.BaseAddon {
|
|
|
49953
49964
|
onClusterTopology: (nodes) => this.nodeLiveness.applySnapshot(nodes, Date.now()),
|
|
49954
49965
|
onSystemEvent: (event) => this.notificationCenter?.onSystemEvent(event)
|
|
49955
49966
|
});
|
|
49956
|
-
if (this.isPostProcessingNode) await this.startEmbeddingDispatcher(logger, transport);
|
|
49957
|
-
await this.buildSceneMonitor(api, logger);
|
|
49967
|
+
if (this.isPostProcessingNode) await step("startEmbeddingDispatcher", () => this.startEmbeddingDispatcher(logger, transport));
|
|
49968
|
+
await step("buildSceneMonitor", () => this.buildSceneMonitor(api, logger));
|
|
49958
49969
|
this.startSweepTimers();
|
|
49959
49970
|
this.ctx.logger.info("pipeline-analytics subscribers installed");
|
|
49960
|
-
const providers = this.buildProviderRegistrations(api, stores, capProviders);
|
|
49971
|
+
const providers = await step("buildProviderRegistrations", () => this.buildProviderRegistrations(api, stores, capProviders));
|
|
49961
49972
|
const isHub = ownNodeId === "hub";
|
|
49962
49973
|
const ncHandlers = isHub ? this.buildNcActionHandlers(api) : void 0;
|
|
49963
49974
|
return {
|
|
@@ -50132,26 +50143,30 @@ var PipelineAnalyticsAddon = class extends require_dist.BaseAddon {
|
|
|
50132
50143
|
}
|
|
50133
50144
|
async declareCollections(api) {
|
|
50134
50145
|
this.settingsStore = api.settingsStore;
|
|
50135
|
-
await
|
|
50136
|
-
|
|
50137
|
-
|
|
50138
|
-
|
|
50139
|
-
|
|
50140
|
-
|
|
50141
|
-
|
|
50142
|
-
|
|
50143
|
-
|
|
50144
|
-
|
|
50145
|
-
|
|
50146
|
-
|
|
50147
|
-
|
|
50148
|
-
|
|
50149
|
-
|
|
50150
|
-
|
|
50146
|
+
await Promise.all([
|
|
50147
|
+
TrackStore.declare(api.settingsStore),
|
|
50148
|
+
MediaStore.declare(api.settingsStore),
|
|
50149
|
+
EventStore.declare(api.settingsStore),
|
|
50150
|
+
SensorEventStore.declare(api.settingsStore),
|
|
50151
|
+
IdentityStore.declare(api.settingsStore),
|
|
50152
|
+
FaceStore.declare(api.settingsStore),
|
|
50153
|
+
PlateStore.declare(api.settingsStore),
|
|
50154
|
+
VehicleStore.declare(api.settingsStore),
|
|
50155
|
+
StationaryObjectRegistry.declare(api.settingsStore),
|
|
50156
|
+
RetrainFrameStore.declare(api.settingsStore),
|
|
50157
|
+
RetrainAnnotationStore.declare(api.settingsStore),
|
|
50158
|
+
OpsLogStore.declare(api.settingsStore),
|
|
50159
|
+
AnalyticsLts.declare(api.settingsStore),
|
|
50160
|
+
SceneStore.declare(api.settingsStore),
|
|
50161
|
+
NotificationCenter.declare(api.settingsStore)
|
|
50162
|
+
]);
|
|
50163
|
+
runLabelTierMigration({
|
|
50151
50164
|
store: api.settingsStore,
|
|
50152
50165
|
logger: this.ctx.logger,
|
|
50153
50166
|
now: () => Date.now()
|
|
50154
|
-
}, [TRACKS_COLLECTION, OBJECT_EVENTS_COLLECTION])
|
|
50167
|
+
}, [TRACKS_COLLECTION, OBJECT_EVENTS_COLLECTION]).catch((err) => {
|
|
50168
|
+
this.ctx.logger.warn("label tier migration failed — will retry next boot", { meta: { error: err instanceof Error ? err.message : String(err) } });
|
|
50169
|
+
});
|
|
50155
50170
|
}
|
|
50156
50171
|
/** Event-media storage. By default it uses `ctx.kernel.storage`, rooted at
|
|
50157
50172
|
* the node data dir (appData) → heavy thumbnail/track-frame churn hammers
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { At as string, B as addonWidgetsSourceCapability, C as NcSnoozeSchema, Ct as boolean, D as OpsLogEntrySchema, Dt as object, E as NcTaxonomySchema, Et as number, F as TIMELAPSE_DENSE_FLOOR_SEC, G as buildEventKindDescriptor, H as assertTimelapseCadences, I as TimelapseRuleInputSchema, J as defineCustomActions, K as cosineSimilarity$1, L as TimelapseRulePatchSchema, M as SCENE_DEFAULT_UNCOVERED_POLICY, Mt as EventCategory, N as SCENE_DIVERGED, O as RECORDING_EXPORT_MAX_READ_BYTES, Ot as partialRecord, P as SceneMonitorSchema, Q as faceGalleryCapability, R as TimelapseRuleSchema, S as NcSnoozeInputSchema, St as array, T as NcSystemEventKindSchema, Tt as literal, U as audioMetricsCapability, V as alarmPanelCapability, W as audioModeOf, Y as deriveRecordingMode, Z as encodeVectorBase64, _ as NcRuleInputSchema, _t as hydrateSchema, at as plateGalleryCapability, b as NcRuleTargetSchema, bt as sleep, c as EVENT_PAD_MS, ct as sceneMonitorCapability, d as NC_ALARM_SYSTEM_EVENT_KINDS, dt as videoclipsCapability, et as isDetectionMacroClass, f as NC_CONDITION_CATALOG, ft as zoneAnalyticsCapability, g as NcConditionDescriptorSchema, gt as createEvent, h as NC_TAXONOMY, ht as DeviceType, i as DETECTION_MACRO_CLASSES, it as pipelineAnalyticsCapability, j as SCENE_DEFAULT_ANCHOR_THRESHOLD, jt as unknown, k as RetrainStatusSchema, kt as record, l as LabelAttributionSchema, lt as subKindsOf, mt as BaseAddon, n as DEFAULT_EVENT_COLOR, nt as kebabToCamel, o as DeclaredDevices, ot as readDeviceStateFrom, p as NC_DEFAULT_SNOOZE_MINUTES, pt as errMsg, q as customAction, rt as notificationRulesCapability, s as EVENT_KIND_BY_CAP, st as readTimelapseGeneratedAt, t as BaseDevice, tt as isScheduleActive, u as MACRO_LABELS, ut as vectorDimFromBase64, v as NcRulePatchSchema, vt as isDeviceScopedCap, w as NcSnoozeSuppressedSchema, wt as discriminatedUnion, x as NcScheduleSchema, xt as _enum, y as NcRuleSchema, yt as nodePin, z as TrackSourceSchema } from "../dist-
|
|
1
|
+
import { At as string, B as addonWidgetsSourceCapability, C as NcSnoozeSchema, Ct as boolean, D as OpsLogEntrySchema, Dt as object, E as NcTaxonomySchema, Et as number, F as TIMELAPSE_DENSE_FLOOR_SEC, G as buildEventKindDescriptor, H as assertTimelapseCadences, I as TimelapseRuleInputSchema, J as defineCustomActions, K as cosineSimilarity$1, L as TimelapseRulePatchSchema, M as SCENE_DEFAULT_UNCOVERED_POLICY, Mt as EventCategory, N as SCENE_DIVERGED, O as RECORDING_EXPORT_MAX_READ_BYTES, Ot as partialRecord, P as SceneMonitorSchema, Q as faceGalleryCapability, R as TimelapseRuleSchema, S as NcSnoozeInputSchema, St as array, T as NcSystemEventKindSchema, Tt as literal, U as audioMetricsCapability, V as alarmPanelCapability, W as audioModeOf, Y as deriveRecordingMode, Z as encodeVectorBase64, _ as NcRuleInputSchema, _t as hydrateSchema, at as plateGalleryCapability, b as NcRuleTargetSchema, bt as sleep, c as EVENT_PAD_MS, ct as sceneMonitorCapability, d as NC_ALARM_SYSTEM_EVENT_KINDS, dt as videoclipsCapability, et as isDetectionMacroClass, f as NC_CONDITION_CATALOG, ft as zoneAnalyticsCapability, g as NcConditionDescriptorSchema, gt as createEvent, h as NC_TAXONOMY, ht as DeviceType, i as DETECTION_MACRO_CLASSES, it as pipelineAnalyticsCapability, j as SCENE_DEFAULT_ANCHOR_THRESHOLD, jt as unknown, k as RetrainStatusSchema, kt as record, l as LabelAttributionSchema, lt as subKindsOf, mt as BaseAddon, n as DEFAULT_EVENT_COLOR, nt as kebabToCamel, o as DeclaredDevices, ot as readDeviceStateFrom, p as NC_DEFAULT_SNOOZE_MINUTES, pt as errMsg, q as customAction, rt as notificationRulesCapability, s as EVENT_KIND_BY_CAP, st as readTimelapseGeneratedAt, t as BaseDevice, tt as isScheduleActive, u as MACRO_LABELS, ut as vectorDimFromBase64, v as NcRulePatchSchema, vt as isDeviceScopedCap, w as NcSnoozeSuppressedSchema, wt as discriminatedUnion, x as NcScheduleSchema, xt as _enum, y as NcRuleSchema, yt as nodePin, z as TrackSourceSchema } from "../dist-D9Z7czrz.mjs";
|
|
2
2
|
import { t as __exportAll } from "../embedding-encoder/index.mjs";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import { promises } from "node:fs";
|
|
@@ -49841,11 +49841,22 @@ var PipelineAnalyticsAddon = class extends BaseAddon {
|
|
|
49841
49841
|
async onInitialize() {
|
|
49842
49842
|
const api = this.ctx.api;
|
|
49843
49843
|
if (!api) throw new Error("pipeline-analytics requires ctx.api (device-manager + settings-store)");
|
|
49844
|
-
|
|
49845
|
-
|
|
49844
|
+
const bootT0 = Date.now();
|
|
49845
|
+
const step = async (name, fn) => {
|
|
49846
|
+
const t0 = Date.now();
|
|
49847
|
+
const out = await fn();
|
|
49848
|
+
this.ctx.logger.info("pipeline-analytics boot step", { meta: {
|
|
49849
|
+
step: name,
|
|
49850
|
+
ms: Date.now() - t0,
|
|
49851
|
+
sinceBootMs: Date.now() - bootT0
|
|
49852
|
+
} });
|
|
49853
|
+
return out;
|
|
49854
|
+
};
|
|
49855
|
+
await step("declareCollections", () => this.declareCollections(api));
|
|
49856
|
+
await step("declareAlarmPanel", () => this.declareAlarmPanel(api));
|
|
49846
49857
|
const logger = this.ctx.logger;
|
|
49847
|
-
const storage = await this.resolveMediaStorage(logger);
|
|
49848
|
-
const stores = await this.buildStores(api, logger, storage);
|
|
49858
|
+
const storage = await step("resolveMediaStorage", () => this.resolveMediaStorage(logger));
|
|
49859
|
+
const stores = await step("buildStores", () => this.buildStores(api, logger, storage));
|
|
49849
49860
|
const rawNodeId = this.ctx.kernel.localNodeId ?? this.ctx.id;
|
|
49850
49861
|
const ownNodeId = rawNodeId.includes("/") ? rawNodeId.split("/")[0] : rawNodeId;
|
|
49851
49862
|
this.eventsOpsLog = new OpsLogStore({
|
|
@@ -49854,7 +49865,7 @@ var PipelineAnalyticsAddon = class extends BaseAddon {
|
|
|
49854
49865
|
nodeId: ownNodeId
|
|
49855
49866
|
});
|
|
49856
49867
|
{
|
|
49857
|
-
const designated = await this.postProcessingNodeState.get();
|
|
49868
|
+
const designated = await step("postProcessingNodeState", () => this.postProcessingNodeState.get());
|
|
49858
49869
|
this.isPostProcessingNode = ownNodeId === designated;
|
|
49859
49870
|
if (!this.isPostProcessingNode) logger.info("pipeline-analytics INERT on this node — post-processing assigned elsewhere", { meta: {
|
|
49860
49871
|
ownNodeId,
|
|
@@ -49878,8 +49889,8 @@ var PipelineAnalyticsAddon = class extends BaseAddon {
|
|
|
49878
49889
|
this.buildRecognizers(api, logger, stores, transport);
|
|
49879
49890
|
this.buildDetailDispatcher(api, logger, transport);
|
|
49880
49891
|
const capProviders = this.buildAnalyticsProviders(api, logger);
|
|
49881
|
-
await this.buildNotificationCenter(api, logger, stores);
|
|
49882
|
-
await this.serveEventMediaDataPlane();
|
|
49892
|
+
await step("buildNotificationCenter", () => this.buildNotificationCenter(api, logger, stores));
|
|
49893
|
+
await step("serveEventMediaDataPlane", () => this.serveEventMediaDataPlane());
|
|
49883
49894
|
this.subscriptionUnsubs = wireSubscriptions({
|
|
49884
49895
|
eventBus: this.ctx.eventBus,
|
|
49885
49896
|
isPostProcessingNode: this.isPostProcessingNode,
|
|
@@ -49895,11 +49906,11 @@ var PipelineAnalyticsAddon = class extends BaseAddon {
|
|
|
49895
49906
|
onClusterTopology: (nodes) => this.nodeLiveness.applySnapshot(nodes, Date.now()),
|
|
49896
49907
|
onSystemEvent: (event) => this.notificationCenter?.onSystemEvent(event)
|
|
49897
49908
|
});
|
|
49898
|
-
if (this.isPostProcessingNode) await this.startEmbeddingDispatcher(logger, transport);
|
|
49899
|
-
await this.buildSceneMonitor(api, logger);
|
|
49909
|
+
if (this.isPostProcessingNode) await step("startEmbeddingDispatcher", () => this.startEmbeddingDispatcher(logger, transport));
|
|
49910
|
+
await step("buildSceneMonitor", () => this.buildSceneMonitor(api, logger));
|
|
49900
49911
|
this.startSweepTimers();
|
|
49901
49912
|
this.ctx.logger.info("pipeline-analytics subscribers installed");
|
|
49902
|
-
const providers = this.buildProviderRegistrations(api, stores, capProviders);
|
|
49913
|
+
const providers = await step("buildProviderRegistrations", () => this.buildProviderRegistrations(api, stores, capProviders));
|
|
49903
49914
|
const isHub = ownNodeId === "hub";
|
|
49904
49915
|
const ncHandlers = isHub ? this.buildNcActionHandlers(api) : void 0;
|
|
49905
49916
|
return {
|
|
@@ -50074,26 +50085,30 @@ var PipelineAnalyticsAddon = class extends BaseAddon {
|
|
|
50074
50085
|
}
|
|
50075
50086
|
async declareCollections(api) {
|
|
50076
50087
|
this.settingsStore = api.settingsStore;
|
|
50077
|
-
await
|
|
50078
|
-
|
|
50079
|
-
|
|
50080
|
-
|
|
50081
|
-
|
|
50082
|
-
|
|
50083
|
-
|
|
50084
|
-
|
|
50085
|
-
|
|
50086
|
-
|
|
50087
|
-
|
|
50088
|
-
|
|
50089
|
-
|
|
50090
|
-
|
|
50091
|
-
|
|
50092
|
-
|
|
50088
|
+
await Promise.all([
|
|
50089
|
+
TrackStore.declare(api.settingsStore),
|
|
50090
|
+
MediaStore.declare(api.settingsStore),
|
|
50091
|
+
EventStore.declare(api.settingsStore),
|
|
50092
|
+
SensorEventStore.declare(api.settingsStore),
|
|
50093
|
+
IdentityStore.declare(api.settingsStore),
|
|
50094
|
+
FaceStore.declare(api.settingsStore),
|
|
50095
|
+
PlateStore.declare(api.settingsStore),
|
|
50096
|
+
VehicleStore.declare(api.settingsStore),
|
|
50097
|
+
StationaryObjectRegistry.declare(api.settingsStore),
|
|
50098
|
+
RetrainFrameStore.declare(api.settingsStore),
|
|
50099
|
+
RetrainAnnotationStore.declare(api.settingsStore),
|
|
50100
|
+
OpsLogStore.declare(api.settingsStore),
|
|
50101
|
+
AnalyticsLts.declare(api.settingsStore),
|
|
50102
|
+
SceneStore.declare(api.settingsStore),
|
|
50103
|
+
NotificationCenter.declare(api.settingsStore)
|
|
50104
|
+
]);
|
|
50105
|
+
runLabelTierMigration({
|
|
50093
50106
|
store: api.settingsStore,
|
|
50094
50107
|
logger: this.ctx.logger,
|
|
50095
50108
|
now: () => Date.now()
|
|
50096
|
-
}, [TRACKS_COLLECTION, OBJECT_EVENTS_COLLECTION])
|
|
50109
|
+
}, [TRACKS_COLLECTION, OBJECT_EVENTS_COLLECTION]).catch((err) => {
|
|
50110
|
+
this.ctx.logger.warn("label tier migration failed — will retry next boot", { meta: { error: err instanceof Error ? err.message : String(err) } });
|
|
50111
|
+
});
|
|
50097
50112
|
}
|
|
50098
50113
|
/** Event-media storage. By default it uses `ctx.kernel.storage`, rooted at
|
|
50099
50114
|
* the node data dir (appData) → heavy thumbnail/track-frame churn hammers
|
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DHm8hb9G.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-post-analysis",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.80",
|
|
4
4
|
"description": "Post-Analysis bundle — enrichment, embedding-encoder, pipeline-analytics. Multi-entry npm package shipping addons that consume pipeline output.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|