@camstack/addon-post-analysis 1.2.45 → 1.2.47
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-QzgUDrwU.js → dist-B5O4mNmd.js} +53 -8
- package/dist/{dist-BoV5RsRC.mjs → dist-BHtH4Obt.mjs} +48 -9
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/{node-HrEN5lB7.js → node-m6HS7TOO.js} +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DvfzPjZx.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-Cqisi0Ci.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-BhH6N_nH.mjs → hostInit-DNsL0KwA.mjs} +1 -1
- package/dist/pipeline-analytics/index.js +258 -162
- package/dist/pipeline-analytics/index.mjs +257 -161
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +7 -1
|
@@ -15508,14 +15508,6 @@ var RebuildObjectEmbeddingsInput = object({
|
|
|
15508
15508
|
deviceId: number().optional(),
|
|
15509
15509
|
since: number().optional(),
|
|
15510
15510
|
until: number().optional(),
|
|
15511
|
-
/**
|
|
15512
|
-
* Fraction added on EACH side of the detection box before cropping.
|
|
15513
|
-
* ~0.2 (a 1.4x window) gives CLIP the surroundings it is trained on; 0 is
|
|
15514
|
-
* the pixel-tight crop the first implementation used.
|
|
15515
|
-
*/
|
|
15516
|
-
cropMargin: number().min(0).max(4).optional(),
|
|
15517
|
-
/** Square the window before extracting, so a tall subject is not squashed. */
|
|
15518
|
-
square: boolean().optional(),
|
|
15519
15511
|
/** Stop after this many tracks; the result reports whether more remain. */
|
|
15520
15512
|
maxTracks: number().int().positive().optional()
|
|
15521
15513
|
});
|
|
@@ -15550,6 +15542,14 @@ var RebuildStatusSchema = object({
|
|
|
15550
15542
|
missingKeyFrame: number(),
|
|
15551
15543
|
/** Tracks with no usable detection box. */
|
|
15552
15544
|
missingBbox: number(),
|
|
15545
|
+
/**
|
|
15546
|
+
* Tracks the pipeline REFUSED rather than broke on: the camera is not
|
|
15547
|
+
* attached, or `clip-embedding` is not enabled in its step tree. Separate
|
|
15548
|
+
* from `failed` because the remedy is a configuration change, not an engine
|
|
15549
|
+
* investigation — and because a pass over decommissioned cameras would
|
|
15550
|
+
* otherwise read as a total engine outage.
|
|
15551
|
+
*/
|
|
15552
|
+
notRunnable: number(),
|
|
15553
15553
|
failed: number(),
|
|
15554
15554
|
/** Set once a pass ends: true only when EVERYTHING was covered. */
|
|
15555
15555
|
complete: boolean().nullable(),
|
|
@@ -16800,6 +16800,17 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
16800
16800
|
}), NativeCropResultSchema.nullable()), method(object({
|
|
16801
16801
|
deviceId: number(),
|
|
16802
16802
|
frameHandle: FrameHandleSchema.optional(),
|
|
16803
|
+
/**
|
|
16804
|
+
* FULL FRAME (base64 JPEG). The runner derives the crop rectangle from
|
|
16805
|
+
* `parent.bbox` with the cluster crop convention and cuts it itself —
|
|
16806
|
+
* do NOT pre-crop for this field, that is what `cropJpeg` is.
|
|
16807
|
+
*/
|
|
16808
|
+
frameJpeg: string().optional(),
|
|
16809
|
+
/**
|
|
16810
|
+
* PRE-CUT tile (base64 JPEG), used verbatim — NO padding is applied.
|
|
16811
|
+
* The fallback when the lease/session backing the frame is gone and the
|
|
16812
|
+
* caller already holds a crop.
|
|
16813
|
+
*/
|
|
16803
16814
|
cropJpeg: string().optional(),
|
|
16804
16815
|
parent: DetailParentSchema,
|
|
16805
16816
|
steps: array(string()).optional()
|
|
@@ -31391,6 +31402,34 @@ function encodeVectorBase64(vector) {
|
|
|
31391
31402
|
for (let i = 0; i < floats.length; i += 1) view.setFloat32(i * 4, floats[i] ?? 0, true);
|
|
31392
31403
|
return Buffer.from(bytes).toString("base64");
|
|
31393
31404
|
}
|
|
31405
|
+
/** Vector length implied by a base64 payload, without decoding it. */
|
|
31406
|
+
function vectorDimFromBase64(encoded) {
|
|
31407
|
+
return Math.floor(Buffer.from(encoded, "base64").byteLength / 4);
|
|
31408
|
+
}
|
|
31409
|
+
object({
|
|
31410
|
+
/**
|
|
31411
|
+
* Fraction of the box's own size added on EACH side before cutting.
|
|
31412
|
+
*
|
|
31413
|
+
* CLIP is trained on natural images WITH surroundings; a pixel-tight crop
|
|
31414
|
+
* removes exactly the context it is strongest on (a dog cut to its outline
|
|
31415
|
+
* is a dark blob). The right value is an empirical question, which is why it
|
|
31416
|
+
* is a setting: 0 / 0.15 / 0.2 / 0.5 are the interesting points.
|
|
31417
|
+
*/
|
|
31418
|
+
paddingRatio: number().min(0).max(4),
|
|
31419
|
+
/**
|
|
31420
|
+
* Square the window (in PIXELS) before cutting.
|
|
31421
|
+
*
|
|
31422
|
+
* CLIP's input is square, so a tall bbox resized straight to NxN is squashed
|
|
31423
|
+
* — a standing person becomes a shape the model never saw. Squaring costs
|
|
31424
|
+
* extra background, which is context the model wants anyway. Off by default
|
|
31425
|
+
* because the live path has never squared and the stored index reflects that.
|
|
31426
|
+
*/
|
|
31427
|
+
square: boolean()
|
|
31428
|
+
});
|
|
31429
|
+
({
|
|
31430
|
+
paddingRatio: .15,
|
|
31431
|
+
square: false
|
|
31432
|
+
}).paddingRatio;
|
|
31394
31433
|
//#endregion
|
|
31395
31434
|
Object.defineProperty(exports, "BaseAddon", {
|
|
31396
31435
|
enumerable: true,
|
|
@@ -31710,6 +31749,12 @@ Object.defineProperty(exports, "unknown", {
|
|
|
31710
31749
|
return unknown;
|
|
31711
31750
|
}
|
|
31712
31751
|
});
|
|
31752
|
+
Object.defineProperty(exports, "vectorDimFromBase64", {
|
|
31753
|
+
enumerable: true,
|
|
31754
|
+
get: function() {
|
|
31755
|
+
return vectorDimFromBase64;
|
|
31756
|
+
}
|
|
31757
|
+
});
|
|
31713
31758
|
Object.defineProperty(exports, "videoclipsCapability", {
|
|
31714
31759
|
enumerable: true,
|
|
31715
31760
|
get: function() {
|
|
@@ -15486,14 +15486,6 @@ var RebuildObjectEmbeddingsInput = object({
|
|
|
15486
15486
|
deviceId: number().optional(),
|
|
15487
15487
|
since: number().optional(),
|
|
15488
15488
|
until: number().optional(),
|
|
15489
|
-
/**
|
|
15490
|
-
* Fraction added on EACH side of the detection box before cropping.
|
|
15491
|
-
* ~0.2 (a 1.4x window) gives CLIP the surroundings it is trained on; 0 is
|
|
15492
|
-
* the pixel-tight crop the first implementation used.
|
|
15493
|
-
*/
|
|
15494
|
-
cropMargin: number().min(0).max(4).optional(),
|
|
15495
|
-
/** Square the window before extracting, so a tall subject is not squashed. */
|
|
15496
|
-
square: boolean().optional(),
|
|
15497
15489
|
/** Stop after this many tracks; the result reports whether more remain. */
|
|
15498
15490
|
maxTracks: number().int().positive().optional()
|
|
15499
15491
|
});
|
|
@@ -15528,6 +15520,14 @@ var RebuildStatusSchema = object({
|
|
|
15528
15520
|
missingKeyFrame: number(),
|
|
15529
15521
|
/** Tracks with no usable detection box. */
|
|
15530
15522
|
missingBbox: number(),
|
|
15523
|
+
/**
|
|
15524
|
+
* Tracks the pipeline REFUSED rather than broke on: the camera is not
|
|
15525
|
+
* attached, or `clip-embedding` is not enabled in its step tree. Separate
|
|
15526
|
+
* from `failed` because the remedy is a configuration change, not an engine
|
|
15527
|
+
* investigation — and because a pass over decommissioned cameras would
|
|
15528
|
+
* otherwise read as a total engine outage.
|
|
15529
|
+
*/
|
|
15530
|
+
notRunnable: number(),
|
|
15531
15531
|
failed: number(),
|
|
15532
15532
|
/** Set once a pass ends: true only when EVERYTHING was covered. */
|
|
15533
15533
|
complete: boolean().nullable(),
|
|
@@ -16778,6 +16778,17 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
16778
16778
|
}), NativeCropResultSchema.nullable()), method(object({
|
|
16779
16779
|
deviceId: number(),
|
|
16780
16780
|
frameHandle: FrameHandleSchema.optional(),
|
|
16781
|
+
/**
|
|
16782
|
+
* FULL FRAME (base64 JPEG). The runner derives the crop rectangle from
|
|
16783
|
+
* `parent.bbox` with the cluster crop convention and cuts it itself —
|
|
16784
|
+
* do NOT pre-crop for this field, that is what `cropJpeg` is.
|
|
16785
|
+
*/
|
|
16786
|
+
frameJpeg: string().optional(),
|
|
16787
|
+
/**
|
|
16788
|
+
* PRE-CUT tile (base64 JPEG), used verbatim — NO padding is applied.
|
|
16789
|
+
* The fallback when the lease/session backing the frame is gone and the
|
|
16790
|
+
* caller already holds a crop.
|
|
16791
|
+
*/
|
|
16781
16792
|
cropJpeg: string().optional(),
|
|
16782
16793
|
parent: DetailParentSchema,
|
|
16783
16794
|
steps: array(string()).optional()
|
|
@@ -31369,5 +31380,33 @@ function encodeVectorBase64(vector) {
|
|
|
31369
31380
|
for (let i = 0; i < floats.length; i += 1) view.setFloat32(i * 4, floats[i] ?? 0, true);
|
|
31370
31381
|
return Buffer.from(bytes).toString("base64");
|
|
31371
31382
|
}
|
|
31383
|
+
/** Vector length implied by a base64 payload, without decoding it. */
|
|
31384
|
+
function vectorDimFromBase64(encoded) {
|
|
31385
|
+
return Math.floor(Buffer.from(encoded, "base64").byteLength / 4);
|
|
31386
|
+
}
|
|
31387
|
+
object({
|
|
31388
|
+
/**
|
|
31389
|
+
* Fraction of the box's own size added on EACH side before cutting.
|
|
31390
|
+
*
|
|
31391
|
+
* CLIP is trained on natural images WITH surroundings; a pixel-tight crop
|
|
31392
|
+
* removes exactly the context it is strongest on (a dog cut to its outline
|
|
31393
|
+
* is a dark blob). The right value is an empirical question, which is why it
|
|
31394
|
+
* is a setting: 0 / 0.15 / 0.2 / 0.5 are the interesting points.
|
|
31395
|
+
*/
|
|
31396
|
+
paddingRatio: number().min(0).max(4),
|
|
31397
|
+
/**
|
|
31398
|
+
* Square the window (in PIXELS) before cutting.
|
|
31399
|
+
*
|
|
31400
|
+
* CLIP's input is square, so a tall bbox resized straight to NxN is squashed
|
|
31401
|
+
* — a standing person becomes a shape the model never saw. Squaring costs
|
|
31402
|
+
* extra background, which is context the model wants anyway. Off by default
|
|
31403
|
+
* because the live path has never squared and the stored index reflects that.
|
|
31404
|
+
*/
|
|
31405
|
+
square: boolean()
|
|
31406
|
+
});
|
|
31407
|
+
({
|
|
31408
|
+
paddingRatio: .15,
|
|
31409
|
+
square: false
|
|
31410
|
+
}).paddingRatio;
|
|
31372
31411
|
//#endregion
|
|
31373
|
-
export {
|
|
31412
|
+
export { string as $, kebabToCamel as A, BaseAddon as B, cosineSimilarity as C, encodeVectorBase64 as D, embeddingEncoderCapability as E, subKindsOf as F, nodePin as G, createEvent as H, vectorDimFromBase64 as I, boolean as J, _enum as K, videoclipsCapability as L, pipelineAnalyticsCapability as M, plateGalleryCapability as N, faceGalleryCapability as O, readDeviceStateFrom as P, record as Q, zoneAnalyticsCapability as R, buildEventKindDescriptor as S, defineCustomActions as T, hydrateSchema as U, DeviceType as V, isDeviceScopedCap as W, number as X, literal as Y, object as Z, TimelapseRuleInputSchema as _, MACRO_LABELS as a, alarmPanelCapability as b, NcConditionDescriptorSchema as c, NcRuleSchema as d, unknown as et, NcSnoozeInputSchema as f, OpsLogEntrySchema as g, NcTaxonomySchema as h, EVENT_PAD_MS as i, notificationRulesCapability as j, hfModelUrl as k, NcRuleInputSchema as l, NcSnoozeSuppressedSchema as m, DEFAULT_EVENT_COLOR as n, NC_CONDITION_CATALOG as o, NcSnoozeSchema as p, array as q, EVENT_KIND_BY_CAP as r, NC_TAXONOMY as s, BaseDevice as t, EventCategory as tt, NcRulePatchSchema as u, TimelapseRuleSchema as v, customAction as w, audioMetricsCapability as x, addonWidgetsSourceCapability as y, errMsg as z };
|
|
@@ -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-B5O4mNmd.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 {
|
|
1
|
+
import { B as BaseAddon, E as embeddingEncoderCapability, k as hfModelUrl } from "../dist-BHtH4Obt.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import "node:fs";
|