@camstack/addon-post-analysis 1.2.618 → 1.2.620
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{clip-model-registry-D6yfX_Xq.mjs → clip-model-registry-BBzoIoKO.mjs} +221 -42
- package/dist/{clip-model-registry-CYWuH4Rx.js → clip-model-registry-CcgzpELQ.js} +250 -59
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +2 -2
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-B0Kz5Uye.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-BWQTWUYq.mjs} +3 -3
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CSQBGkvs.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BSMSev-b.mjs} +1 -1
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CssYIiFD.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-DjzBKo20.mjs → hostInit-WiCYRDId.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +12989 -16177
- package/dist/pipeline-analytics/index.mjs +12960 -16147
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BB2kgLY1.mjs +0 -26
|
@@ -5643,7 +5643,7 @@ var ZodIssueCode = {
|
|
|
5643
5643
|
var ZodFirstPartyTypeKind;
|
|
5644
5644
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5645
5645
|
//#endregion
|
|
5646
|
-
//#region ../types/dist/sleep-
|
|
5646
|
+
//#region ../types/dist/sleep-_sV1BE2f.mjs
|
|
5647
5647
|
/**
|
|
5648
5648
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5649
5649
|
* window to float samples (D455).
|
|
@@ -5760,7 +5760,7 @@ function isKeychainStoredField(field) {
|
|
|
5760
5760
|
var SECRET_CLEAR = { $secretClear: true };
|
|
5761
5761
|
/** The `'***'` token D634 redaction writes for non-admins. */
|
|
5762
5762
|
var LEGACY_DEVICE_REDACTION = "***";
|
|
5763
|
-
function isRecord$
|
|
5763
|
+
function isRecord$6(value) {
|
|
5764
5764
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5765
5765
|
}
|
|
5766
5766
|
function makeSecretMarker(ref) {
|
|
@@ -5771,12 +5771,12 @@ function makeSecretMarker(ref) {
|
|
|
5771
5771
|
}
|
|
5772
5772
|
/** A stored marker: an object whose `$secret` is a non-empty string. */
|
|
5773
5773
|
function isSecretMarker(value) {
|
|
5774
|
-
if (!isRecord$
|
|
5774
|
+
if (!isRecord$6(value)) return false;
|
|
5775
5775
|
const ref = value["$secret"];
|
|
5776
5776
|
return typeof ref === "string" && ref.length > 0;
|
|
5777
5777
|
}
|
|
5778
5778
|
function isSecretClear(value) {
|
|
5779
|
-
return isRecord$
|
|
5779
|
+
return isRecord$6(value) && value["$secretClear"] === true;
|
|
5780
5780
|
}
|
|
5781
5781
|
/**
|
|
5782
5782
|
* The UI view of a stored secret field value: a marker becomes "set", inline
|
|
@@ -6386,7 +6386,7 @@ var KeychainWriteRefusedError = class extends Error {
|
|
|
6386
6386
|
}
|
|
6387
6387
|
};
|
|
6388
6388
|
var KEEP = { kind: "keep" };
|
|
6389
|
-
function isRecord$
|
|
6389
|
+
function isRecord$5(value) {
|
|
6390
6390
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6391
6391
|
}
|
|
6392
6392
|
function defaultMintId() {
|
|
@@ -6399,7 +6399,7 @@ function collectSecretMarkerRefs(value, out = []) {
|
|
|
6399
6399
|
return out;
|
|
6400
6400
|
}
|
|
6401
6401
|
if (Array.isArray(value)) for (const item of value) collectSecretMarkerRefs(item, out);
|
|
6402
|
-
else if (isRecord$
|
|
6402
|
+
else if (isRecord$5(value)) for (const child of Object.values(value)) collectSecretMarkerRefs(child, out);
|
|
6403
6403
|
return out;
|
|
6404
6404
|
}
|
|
6405
6405
|
async function storedValueEquals(secrets, marker, candidate) {
|
|
@@ -6454,7 +6454,7 @@ function rowId(row, idKey) {
|
|
|
6454
6454
|
return null;
|
|
6455
6455
|
}
|
|
6456
6456
|
async function writeArray(ctx, node, incoming, stored, fieldPath) {
|
|
6457
|
-
const storedRows = Array.isArray(stored) ? stored.filter(isRecord$
|
|
6457
|
+
const storedRows = Array.isArray(stored) ? stored.filter(isRecord$5) : [];
|
|
6458
6458
|
if (!Array.isArray(incoming)) {
|
|
6459
6459
|
ctx.deletes.push(...collectSecretMarkerRefs(storedRows));
|
|
6460
6460
|
return {
|
|
@@ -6470,7 +6470,7 @@ async function writeArray(ctx, node, incoming, stored, fieldPath) {
|
|
|
6470
6470
|
const kept = /* @__PURE__ */ new Set();
|
|
6471
6471
|
const rows = [];
|
|
6472
6472
|
for (const row of incoming) {
|
|
6473
|
-
if (!isRecord$
|
|
6473
|
+
if (!isRecord$5(row)) {
|
|
6474
6474
|
rows.push(row);
|
|
6475
6475
|
continue;
|
|
6476
6476
|
}
|
|
@@ -6495,7 +6495,7 @@ async function writeNode(ctx, node, incoming, stored, fieldPath) {
|
|
|
6495
6495
|
case "leaf": return writeLeaf(ctx, incoming, stored, fieldPath);
|
|
6496
6496
|
case "array": return writeArray(ctx, node, incoming, stored, fieldPath);
|
|
6497
6497
|
case "object": {
|
|
6498
|
-
if (!isRecord$
|
|
6498
|
+
if (!isRecord$5(incoming)) {
|
|
6499
6499
|
if (incoming === void 0) return KEEP;
|
|
6500
6500
|
ctx.deletes.push(...collectSecretMarkerRefs(stored));
|
|
6501
6501
|
return {
|
|
@@ -6503,7 +6503,7 @@ async function writeNode(ctx, node, incoming, stored, fieldPath) {
|
|
|
6503
6503
|
value: incoming
|
|
6504
6504
|
};
|
|
6505
6505
|
}
|
|
6506
|
-
const storedObj = isRecord$
|
|
6506
|
+
const storedObj = isRecord$5(stored) ? stored : {};
|
|
6507
6507
|
return {
|
|
6508
6508
|
kind: "value",
|
|
6509
6509
|
value: await writeMembers(ctx, node.children, incoming, storedObj, (m) => `${fieldPath}.${m}`)
|
|
@@ -6626,7 +6626,7 @@ async function resolveSecretMarkers(value, secrets, options = {}) {
|
|
|
6626
6626
|
value: items
|
|
6627
6627
|
};
|
|
6628
6628
|
}
|
|
6629
|
-
if (isRecord$
|
|
6629
|
+
if (isRecord$5(v)) {
|
|
6630
6630
|
const out = {};
|
|
6631
6631
|
for (const [k, child] of Object.entries(v)) {
|
|
6632
6632
|
const s = substitute(child);
|
|
@@ -6658,7 +6658,7 @@ var SecretOverwriteRefusedError = class extends Error {
|
|
|
6658
6658
|
this.name = "SecretOverwriteRefusedError";
|
|
6659
6659
|
}
|
|
6660
6660
|
};
|
|
6661
|
-
function isRecord$
|
|
6661
|
+
function isRecord$4(value) {
|
|
6662
6662
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6663
6663
|
}
|
|
6664
6664
|
function resolvedValue(pass, marker) {
|
|
@@ -6687,7 +6687,7 @@ function inArray(pass, incoming, stored) {
|
|
|
6687
6687
|
return incoming.map((item, index) => {
|
|
6688
6688
|
const twin = stored[index];
|
|
6689
6689
|
if (isSecretMarker(twin)) return typeof item === "string" && item === resolvedValue(pass, twin) ? twin : item;
|
|
6690
|
-
if (isRecord$
|
|
6690
|
+
if (isRecord$4(item) && isRecord$4(twin)) return inArrayRow(pass, item, twin);
|
|
6691
6691
|
if (Array.isArray(item) && Array.isArray(twin)) return inArray(pass, item, twin);
|
|
6692
6692
|
return item;
|
|
6693
6693
|
});
|
|
@@ -6698,7 +6698,7 @@ function inArrayRow(pass, incoming, stored) {
|
|
|
6698
6698
|
const twin = stored[key];
|
|
6699
6699
|
if (isSecretMarker(twin)) {
|
|
6700
6700
|
if (typeof value === "string" && value === resolvedValue(pass, twin)) out[key] = twin;
|
|
6701
|
-
} else if (isRecord$
|
|
6701
|
+
} else if (isRecord$4(value) && isRecord$4(twin)) out[key] = inArrayRow(pass, value, twin);
|
|
6702
6702
|
else if (Array.isArray(value) && Array.isArray(twin)) out[key] = inArray(pass, value, twin);
|
|
6703
6703
|
}
|
|
6704
6704
|
return out;
|
|
@@ -6706,7 +6706,7 @@ function inArrayRow(pass, incoming, stored) {
|
|
|
6706
6706
|
async function walk(pass, incoming, stored) {
|
|
6707
6707
|
if (isSecretMarker(stored)) return atMarker(pass, incoming, stored);
|
|
6708
6708
|
if (Array.isArray(incoming) && Array.isArray(stored)) return inArray(pass, incoming, stored);
|
|
6709
|
-
if (!isRecord$
|
|
6709
|
+
if (!isRecord$4(incoming) || !isRecord$4(stored)) return incoming;
|
|
6710
6710
|
const out = { ...incoming };
|
|
6711
6711
|
for (const [key, value] of Object.entries(incoming)) out[key] = await walk(pass, value, stored[key]);
|
|
6712
6712
|
return out;
|
|
@@ -6737,7 +6737,7 @@ async function restoreUnchangedSecrets(input) {
|
|
|
6737
6737
|
function isJsonEqual(a, b) {
|
|
6738
6738
|
if (Object.is(a, b)) return true;
|
|
6739
6739
|
if (Array.isArray(a)) return Array.isArray(b) && a.length === b.length && a.every((v, i) => isJsonEqual(v, b[i]));
|
|
6740
|
-
if (isRecord$
|
|
6740
|
+
if (isRecord$4(a) && isRecord$4(b)) {
|
|
6741
6741
|
const keys = Object.keys(a);
|
|
6742
6742
|
if (keys.length !== Object.keys(b).length) return false;
|
|
6743
6743
|
return keys.every((k) => Object.prototype.hasOwnProperty.call(b, k) && isJsonEqual(a[k], b[k]));
|
|
@@ -6761,7 +6761,7 @@ function markerKeysOf(blob, owner) {
|
|
|
6761
6761
|
}
|
|
6762
6762
|
function nodeFromStored(value, owner) {
|
|
6763
6763
|
if (isSecretMarker(value)) return isSecretRefOwnedBy(value.$secret, owner) ? { kind: "leaf" } : null;
|
|
6764
|
-
if (!isRecord$
|
|
6764
|
+
if (!isRecord$4(value)) return null;
|
|
6765
6765
|
const children = /* @__PURE__ */ new Map();
|
|
6766
6766
|
for (const [key, child] of Object.entries(value)) {
|
|
6767
6767
|
const node = nodeFromStored(child, owner);
|
|
@@ -18349,15 +18349,6 @@ var StorageKindSchema = object({
|
|
|
18349
18349
|
declaration: RecordKindDeclarationSchema
|
|
18350
18350
|
});
|
|
18351
18351
|
method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: array(StorageTableSchema) }), { auth: "admin" }), method(object({
|
|
18352
|
-
collection: string().min(1),
|
|
18353
|
-
expectRows: number().int().nonnegative()
|
|
18354
|
-
}), object({
|
|
18355
|
-
dropped: literal(true),
|
|
18356
|
-
rows: number().int().nonnegative()
|
|
18357
|
-
}), {
|
|
18358
|
-
kind: "mutation",
|
|
18359
|
-
auth: "admin"
|
|
18360
|
-
}), method(object({
|
|
18361
18352
|
owner: string().min(1).optional(),
|
|
18362
18353
|
/** `false` skips the per-kind row count (a catalog read only). Default true. */
|
|
18363
18354
|
counts: boolean().optional()
|
|
@@ -44513,12 +44504,7 @@ var NcRuleActionsSchema = object({
|
|
|
44513
44504
|
*/
|
|
44514
44505
|
buttons: array(NcRuleNotificationButtonSchema).max(8).optional()
|
|
44515
44506
|
});
|
|
44516
|
-
|
|
44517
|
-
* @deprecated Legacy inline sequence shape (pre shared-sequence store). Kept
|
|
44518
|
-
* only so boot migration / tests can recognise and rewrite persisted rows.
|
|
44519
|
-
* New code must use {@link NcSharedSequence} + {@link NcActionBinding}.
|
|
44520
|
-
*/
|
|
44521
|
-
var NcLegacyRuleActionSequenceSchema = object({
|
|
44507
|
+
object({
|
|
44522
44508
|
name: string().min(1).max(120),
|
|
44523
44509
|
enabled: boolean(),
|
|
44524
44510
|
minDelaySec: number().int().min(0).max(86400).optional(),
|
|
@@ -44924,6 +44910,15 @@ var NcMediaPolicySchema = object({
|
|
|
44924
44910
|
* Replaces `zoneCrop`.
|
|
44925
44911
|
*/
|
|
44926
44912
|
showTriggerZone: boolean().optional(),
|
|
44913
|
+
/**
|
|
44914
|
+
* Draw the SUBJECT'S PATH on the picture — a line in the subject's colour
|
|
44915
|
+
* through the track's positions up to the frame shown, the same path the
|
|
44916
|
+
* debug views draw (`buildSubjectPath`, D903). Every picture mode a subject
|
|
44917
|
+
* is drawn on: a `crop` maps the path into the crop and clips it. Valid only
|
|
44918
|
+
* on a rule whose subject is a tracked object (refused on a sound rule);
|
|
44919
|
+
* dropped on `image: 'none'`. Absent = off.
|
|
44920
|
+
*/
|
|
44921
|
+
showSubjectPath: boolean().optional(),
|
|
44927
44922
|
/** @deprecated D897 — accepted from an editor that predates `image`, folded into it on save. */
|
|
44928
44923
|
attach: _enum([
|
|
44929
44924
|
"best",
|
|
@@ -77621,12 +77616,6 @@ Object.freeze({
|
|
|
77621
77616
|
addonId: null,
|
|
77622
77617
|
access: "create"
|
|
77623
77618
|
},
|
|
77624
|
-
"storageAdmin.dropCollection": {
|
|
77625
|
-
capName: "storage-admin",
|
|
77626
|
-
capScope: "system",
|
|
77627
|
-
addonId: null,
|
|
77628
|
-
access: "delete"
|
|
77629
|
-
},
|
|
77630
77619
|
"storageAdmin.listKinds": {
|
|
77631
77620
|
capName: "storage-admin",
|
|
77632
77621
|
capScope: "system",
|
|
@@ -82687,22 +82676,35 @@ function resolveNcMediaImage(media, kind) {
|
|
|
82687
82676
|
}
|
|
82688
82677
|
/**
|
|
82689
82678
|
* The stored shape of a media policy: `image` set, the legacy triple gone.
|
|
82679
|
+
* `showSubjectPath` survives on a kind with a tracked subject and a picture.
|
|
82690
82680
|
* `showTriggerZone` survives only where it can be drawn — a zone trigger and a
|
|
82691
82681
|
* mode other than `crop`/`none`; a legacy `zoneCrop` on a zone rule becomes it.
|
|
82692
82682
|
* Every other field (gif, clip, rolls, speed, profile, linked cameras) is
|
|
82693
82683
|
* carried through untouched. Pure; never throws.
|
|
82694
82684
|
*/
|
|
82695
82685
|
function normalizeNcMediaPolicy(media, rule) {
|
|
82696
|
-
const
|
|
82697
|
-
const
|
|
82686
|
+
const kind = ruleKindOf(rule);
|
|
82687
|
+
const image = resolveNcMediaImage(media, kind);
|
|
82688
|
+
const { attach: _attach, frame: _frame, zoneCrop, showTriggerZone, showSubjectPath, image: _image, ...rest } = media;
|
|
82698
82689
|
const drawable = (showTriggerZone === true || media.image === void 0 && zoneCrop === true) && image !== "crop" && image !== "none" && ruleTriggerZoneIds(rule.conditions).length > 0;
|
|
82690
|
+
const pathDrawable = showSubjectPath === true && image !== "none" && subjectHasPath(kind);
|
|
82699
82691
|
return {
|
|
82700
82692
|
...rest,
|
|
82701
82693
|
image,
|
|
82702
|
-
...drawable ? { showTriggerZone: true } : {}
|
|
82694
|
+
...drawable ? { showTriggerZone: true } : {},
|
|
82695
|
+
...pathDrawable ? { showSubjectPath: true } : {}
|
|
82703
82696
|
};
|
|
82704
82697
|
}
|
|
82705
82698
|
/**
|
|
82699
|
+
* True when a rule of this kind has a TRACKED subject whose path can be drawn
|
|
82700
|
+
* (`showSubjectPath`): the kinds whose subject owns a region of the frame. A
|
|
82701
|
+
* sound owns none, and a kind that carries no media has no picture.
|
|
82702
|
+
*/
|
|
82703
|
+
function subjectHasPath(kind) {
|
|
82704
|
+
const spec = ruleKindSpec(kind);
|
|
82705
|
+
return spec.carriesMedia && spec.carriesSubjectCrop;
|
|
82706
|
+
}
|
|
82707
|
+
/**
|
|
82706
82708
|
* Why a media policy cannot be SAVED on this rule, or null. Server-side and
|
|
82707
82709
|
* editor alike: `showTriggerZone` on a rule whose trigger is not a zone, and a
|
|
82708
82710
|
* mode the rule's kind cannot honour.
|
|
@@ -82714,6 +82716,7 @@ function ncMediaPolicyError(media, rule) {
|
|
|
82714
82716
|
if (offered.length > 0 && !offered.includes(media.image)) return `media.image '${media.image}' is not available for a ${kind} rule (offered: ${offered.join(", ")})`;
|
|
82715
82717
|
}
|
|
82716
82718
|
if (media.showTriggerZone === true && ruleTriggerZoneIds(rule.conditions).length === 0) return "media.showTriggerZone needs a rule triggered by a zone (a zones condition or an occupancy zone)";
|
|
82719
|
+
if (media.showSubjectPath === true && !subjectHasPath(kind)) return `media.showSubjectPath needs a rule whose subject is a tracked object (not a ${kind} rule)`;
|
|
82717
82720
|
return null;
|
|
82718
82721
|
}
|
|
82719
82722
|
var WEEKDAY_TO_DAY = {
|
|
@@ -82796,6 +82799,182 @@ function isScheduleActive(schedule, atMs) {
|
|
|
82796
82799
|
}
|
|
82797
82800
|
return schedule.invert === true ? !inside : inside;
|
|
82798
82801
|
}
|
|
82802
|
+
var clamp01 = (n) => n < 0 ? 0 : n > 1 ? 1 : n;
|
|
82803
|
+
/** The sample of a normalised box: its centre, its extent. */
|
|
82804
|
+
function subjectPathSampleFromBox(bbox, timestamp) {
|
|
82805
|
+
return {
|
|
82806
|
+
x: bbox.x + bbox.w / 2,
|
|
82807
|
+
y: bbox.y + bbox.h / 2,
|
|
82808
|
+
w: bbox.w,
|
|
82809
|
+
h: bbox.h,
|
|
82810
|
+
...timestamp !== void 0 ? { timestamp } : {}
|
|
82811
|
+
};
|
|
82812
|
+
}
|
|
82813
|
+
function isPlaceholder(s) {
|
|
82814
|
+
return s.w !== void 0 && s.h !== void 0 && s.w >= .85 && s.h >= .85;
|
|
82815
|
+
}
|
|
82816
|
+
function downsample(xs, max) {
|
|
82817
|
+
if (xs.length <= max || max < 2) return xs;
|
|
82818
|
+
const step = (xs.length - 1) / (max - 1);
|
|
82819
|
+
const out = [];
|
|
82820
|
+
for (let i = 0; i < max - 1; i++) {
|
|
82821
|
+
const x = xs[Math.round(i * step)];
|
|
82822
|
+
if (x !== void 0) out.push(x);
|
|
82823
|
+
}
|
|
82824
|
+
const last = xs[xs.length - 1];
|
|
82825
|
+
if (last !== void 0) out.push(last);
|
|
82826
|
+
return out;
|
|
82827
|
+
}
|
|
82828
|
+
function isFiniteSample(s) {
|
|
82829
|
+
return Number.isFinite(s.x) && Number.isFinite(s.y);
|
|
82830
|
+
}
|
|
82831
|
+
/**
|
|
82832
|
+
* The path of one track from its samples (normalised, oldest → newest).
|
|
82833
|
+
* Pure; never throws; malformed samples are skipped.
|
|
82834
|
+
*/
|
|
82835
|
+
function buildSubjectPath(samples, opts) {
|
|
82836
|
+
const until = opts?.untilTimestamp;
|
|
82837
|
+
const nodes = [];
|
|
82838
|
+
let unlocalized = 0;
|
|
82839
|
+
let tail = null;
|
|
82840
|
+
for (let index = 0; index < samples.length; index++) {
|
|
82841
|
+
const s = samples[index];
|
|
82842
|
+
if (s === void 0 || !isFiniteSample(s)) continue;
|
|
82843
|
+
if (until !== void 0 && s.timestamp !== void 0 && s.timestamp > until) continue;
|
|
82844
|
+
if (isPlaceholder(s)) {
|
|
82845
|
+
unlocalized += 1;
|
|
82846
|
+
continue;
|
|
82847
|
+
}
|
|
82848
|
+
const ts = s.timestamp !== void 0 && Number.isFinite(s.timestamp) ? s.timestamp : index;
|
|
82849
|
+
const x = clamp01(s.x);
|
|
82850
|
+
const y = clamp01(s.y);
|
|
82851
|
+
const prev = nodes[nodes.length - 1];
|
|
82852
|
+
if (prev !== void 0 && Math.hypot(x - prev.x, y - prev.y) < .005) {
|
|
82853
|
+
nodes[nodes.length - 1] = {
|
|
82854
|
+
...prev,
|
|
82855
|
+
samples: prev.samples + 1,
|
|
82856
|
+
lastTs: Math.max(prev.lastTs, ts)
|
|
82857
|
+
};
|
|
82858
|
+
tail = {
|
|
82859
|
+
x,
|
|
82860
|
+
y,
|
|
82861
|
+
samples: 1,
|
|
82862
|
+
firstTs: ts,
|
|
82863
|
+
lastTs: ts
|
|
82864
|
+
};
|
|
82865
|
+
continue;
|
|
82866
|
+
}
|
|
82867
|
+
tail = null;
|
|
82868
|
+
nodes.push({
|
|
82869
|
+
x,
|
|
82870
|
+
y,
|
|
82871
|
+
samples: 1,
|
|
82872
|
+
firstTs: ts,
|
|
82873
|
+
lastTs: ts
|
|
82874
|
+
});
|
|
82875
|
+
}
|
|
82876
|
+
const end = nodes[nodes.length - 1];
|
|
82877
|
+
if (tail !== null && end !== void 0 && end.samples > 1 && (tail.x !== end.x || tail.y !== end.y)) {
|
|
82878
|
+
nodes[nodes.length - 1] = {
|
|
82879
|
+
...end,
|
|
82880
|
+
samples: end.samples - 1
|
|
82881
|
+
};
|
|
82882
|
+
nodes.push(tail);
|
|
82883
|
+
}
|
|
82884
|
+
return {
|
|
82885
|
+
nodes: downsample(nodes, opts?.maxPoints ?? 120),
|
|
82886
|
+
unlocalized
|
|
82887
|
+
};
|
|
82888
|
+
}
|
|
82889
|
+
/** True when the path has something to draw (two nodes or more). */
|
|
82890
|
+
function isDrawableSubjectPath(path) {
|
|
82891
|
+
return path.nodes.length >= 2;
|
|
82892
|
+
}
|
|
82893
|
+
function inside(p) {
|
|
82894
|
+
return p.x >= 0 && p.x <= 1 && p.y >= 0 && p.y <= 1;
|
|
82895
|
+
}
|
|
82896
|
+
/** Liang–Barsky: the part of segment a→b inside the unit square, or null. */
|
|
82897
|
+
function clipSegment(a, b) {
|
|
82898
|
+
const dx = b.x - a.x;
|
|
82899
|
+
const dy = b.y - a.y;
|
|
82900
|
+
let t0 = 0;
|
|
82901
|
+
let t1 = 1;
|
|
82902
|
+
const edges = [
|
|
82903
|
+
[-dx, a.x],
|
|
82904
|
+
[dx, 1 - a.x],
|
|
82905
|
+
[-dy, a.y],
|
|
82906
|
+
[dy, 1 - a.y]
|
|
82907
|
+
];
|
|
82908
|
+
for (const [p, q] of edges) {
|
|
82909
|
+
if (p === 0) {
|
|
82910
|
+
if (q < 0) return null;
|
|
82911
|
+
continue;
|
|
82912
|
+
}
|
|
82913
|
+
const r = q / p;
|
|
82914
|
+
if (p < 0) {
|
|
82915
|
+
if (r > t1) return null;
|
|
82916
|
+
if (r > t0) t0 = r;
|
|
82917
|
+
} else {
|
|
82918
|
+
if (r < t0) return null;
|
|
82919
|
+
if (r < t1) t1 = r;
|
|
82920
|
+
}
|
|
82921
|
+
}
|
|
82922
|
+
return [{
|
|
82923
|
+
x: a.x + t0 * dx,
|
|
82924
|
+
y: a.y + t0 * dy
|
|
82925
|
+
}, {
|
|
82926
|
+
x: a.x + t1 * dx,
|
|
82927
|
+
y: a.y + t1 * dy
|
|
82928
|
+
}];
|
|
82929
|
+
}
|
|
82930
|
+
function samePoint(a, b) {
|
|
82931
|
+
return Math.abs(a.x - b.x) < 1e-9 && Math.abs(a.y - b.y) < 1e-9;
|
|
82932
|
+
}
|
|
82933
|
+
/**
|
|
82934
|
+
* The path as seen through `view` — a normalised rectangle of the frame (the
|
|
82935
|
+
* whole frame `{0,0,1,1}`, or the rectangle a crop cut). Points are re-mapped
|
|
82936
|
+
* into the view's own 0..1 space and the line is CLIPPED to it: a path that
|
|
82937
|
+
* leaves the crop and comes back is two runs. Runs of fewer than two points
|
|
82938
|
+
* are dropped, so an empty result means "nothing to draw".
|
|
82939
|
+
*/
|
|
82940
|
+
function projectSubjectPath(points, view) {
|
|
82941
|
+
if (points.length < 2 || !(view.w > 0) || !(view.h > 0)) return [];
|
|
82942
|
+
const local = points.map((p) => ({
|
|
82943
|
+
x: (p.x - view.x) / view.w,
|
|
82944
|
+
y: (p.y - view.y) / view.h
|
|
82945
|
+
}));
|
|
82946
|
+
const runs = [];
|
|
82947
|
+
let run = [];
|
|
82948
|
+
for (let i = 1; i < local.length; i++) {
|
|
82949
|
+
const a = local[i - 1];
|
|
82950
|
+
const b = local[i];
|
|
82951
|
+
if (a === void 0 || b === void 0) continue;
|
|
82952
|
+
const seg = clipSegment(a, b);
|
|
82953
|
+
if (seg === null) {
|
|
82954
|
+
if (run.length >= 2) runs.push(run);
|
|
82955
|
+
run = [];
|
|
82956
|
+
continue;
|
|
82957
|
+
}
|
|
82958
|
+
const [from, to] = seg;
|
|
82959
|
+
const last = run[run.length - 1];
|
|
82960
|
+
if (last === void 0 || !samePoint(last, from)) {
|
|
82961
|
+
if (run.length >= 2) runs.push(run);
|
|
82962
|
+
run = [from];
|
|
82963
|
+
}
|
|
82964
|
+
run.push(to);
|
|
82965
|
+
if (!inside(b)) {
|
|
82966
|
+
if (run.length >= 2) runs.push(run);
|
|
82967
|
+
run = [];
|
|
82968
|
+
}
|
|
82969
|
+
}
|
|
82970
|
+
if (run.length >= 2) runs.push(run);
|
|
82971
|
+
return runs;
|
|
82972
|
+
}
|
|
82973
|
+
/** An SVG `points` attribute for a run in a `width` × `height` drawing ("x,y x,y …"). */
|
|
82974
|
+
function subjectPathSvgPoints(run, width, height) {
|
|
82975
|
+
const fmt = (v) => String(Math.round(v * 100) / 100);
|
|
82976
|
+
return run.map((p) => `${fmt(p.x * width)},${fmt(p.y * height)}`).join(" ");
|
|
82977
|
+
}
|
|
82799
82978
|
var ARMED_WORD_PREFIX = "armed_";
|
|
82800
82979
|
var ALARM_PANEL_CAP = "alarm-panel";
|
|
82801
82980
|
var ALARM_PANEL_TRIGGER_METHOD = "trigger";
|
|
@@ -86935,24 +87114,12 @@ Object.defineProperty(exports, "NcConditionsSchema", {
|
|
|
86935
87114
|
return NcConditionsSchema;
|
|
86936
87115
|
}
|
|
86937
87116
|
});
|
|
86938
|
-
Object.defineProperty(exports, "NcLegacyRuleActionSequenceSchema", {
|
|
86939
|
-
enumerable: true,
|
|
86940
|
-
get: function() {
|
|
86941
|
-
return NcLegacyRuleActionSequenceSchema;
|
|
86942
|
-
}
|
|
86943
|
-
});
|
|
86944
87117
|
Object.defineProperty(exports, "NcRuleActionSchema", {
|
|
86945
87118
|
enumerable: true,
|
|
86946
87119
|
get: function() {
|
|
86947
87120
|
return NcRuleActionSchema;
|
|
86948
87121
|
}
|
|
86949
87122
|
});
|
|
86950
|
-
Object.defineProperty(exports, "NcRuleActionsSchema", {
|
|
86951
|
-
enumerable: true,
|
|
86952
|
-
get: function() {
|
|
86953
|
-
return NcRuleActionsSchema;
|
|
86954
|
-
}
|
|
86955
|
-
});
|
|
86956
87123
|
Object.defineProperty(exports, "NcRuleInputSchema", {
|
|
86957
87124
|
enumerable: true,
|
|
86958
87125
|
get: function() {
|
|
@@ -87097,12 +87264,6 @@ Object.defineProperty(exports, "RebuildObjectEmbeddingsRefusalSchema", {
|
|
|
87097
87264
|
return RebuildObjectEmbeddingsRefusalSchema;
|
|
87098
87265
|
}
|
|
87099
87266
|
});
|
|
87100
|
-
Object.defineProperty(exports, "RecordsError", {
|
|
87101
|
-
enumerable: true,
|
|
87102
|
-
get: function() {
|
|
87103
|
-
return RecordsError;
|
|
87104
|
-
}
|
|
87105
|
-
});
|
|
87106
87267
|
Object.defineProperty(exports, "RetrainDismissedSchema", {
|
|
87107
87268
|
enumerable: true,
|
|
87108
87269
|
get: function() {
|
|
@@ -87391,6 +87552,12 @@ Object.defineProperty(exports, "buildEventKindDescriptor", {
|
|
|
87391
87552
|
return buildEventKindDescriptor;
|
|
87392
87553
|
}
|
|
87393
87554
|
});
|
|
87555
|
+
Object.defineProperty(exports, "buildSubjectPath", {
|
|
87556
|
+
enumerable: true,
|
|
87557
|
+
get: function() {
|
|
87558
|
+
return buildSubjectPath;
|
|
87559
|
+
}
|
|
87560
|
+
});
|
|
87394
87561
|
Object.defineProperty(exports, "buildViewerLink", {
|
|
87395
87562
|
enumerable: true,
|
|
87396
87563
|
get: function() {
|
|
@@ -87661,6 +87828,12 @@ Object.defineProperty(exports, "isDeviceScopedCap", {
|
|
|
87661
87828
|
return isDeviceScopedCap;
|
|
87662
87829
|
}
|
|
87663
87830
|
});
|
|
87831
|
+
Object.defineProperty(exports, "isDrawableSubjectPath", {
|
|
87832
|
+
enumerable: true,
|
|
87833
|
+
get: function() {
|
|
87834
|
+
return isDrawableSubjectPath;
|
|
87835
|
+
}
|
|
87836
|
+
});
|
|
87664
87837
|
Object.defineProperty(exports, "isEventKindLabelKey", {
|
|
87665
87838
|
enumerable: true,
|
|
87666
87839
|
get: function() {
|
|
@@ -87853,6 +88026,12 @@ Object.defineProperty(exports, "plateGalleryCapability", {
|
|
|
87853
88026
|
return plateGalleryCapability;
|
|
87854
88027
|
}
|
|
87855
88028
|
});
|
|
88029
|
+
Object.defineProperty(exports, "projectSubjectPath", {
|
|
88030
|
+
enumerable: true,
|
|
88031
|
+
get: function() {
|
|
88032
|
+
return projectSubjectPath;
|
|
88033
|
+
}
|
|
88034
|
+
});
|
|
87856
88035
|
Object.defineProperty(exports, "readClusterModelPinStrict", {
|
|
87857
88036
|
enumerable: true,
|
|
87858
88037
|
get: function() {
|
|
@@ -88033,6 +88212,18 @@ Object.defineProperty(exports, "subKindsOf", {
|
|
|
88033
88212
|
return subKindsOf;
|
|
88034
88213
|
}
|
|
88035
88214
|
});
|
|
88215
|
+
Object.defineProperty(exports, "subjectPathSampleFromBox", {
|
|
88216
|
+
enumerable: true,
|
|
88217
|
+
get: function() {
|
|
88218
|
+
return subjectPathSampleFromBox;
|
|
88219
|
+
}
|
|
88220
|
+
});
|
|
88221
|
+
Object.defineProperty(exports, "subjectPathSvgPoints", {
|
|
88222
|
+
enumerable: true,
|
|
88223
|
+
get: function() {
|
|
88224
|
+
return subjectPathSvgPoints;
|
|
88225
|
+
}
|
|
88226
|
+
});
|
|
88036
88227
|
Object.defineProperty(exports, "summarizeReview", {
|
|
88037
88228
|
enumerable: true,
|
|
88038
88229
|
get: function() {
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_clip_model_registry = require("../clip-model-registry-
|
|
5
|
+
const require_clip_model_registry = require("../clip-model-registry-CcgzpELQ.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_clip_model_registry.__toESM(node_fs);
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Wi as BaseAddon, Yr as parseProcStatus, a as CLIP_EMBEDDING_STEP_ID, cr as embeddingEncoderCapability, dr as embeddingRequirementsFailedError, en as PoolMemoryWatchdog, fr as embeddingRequirementsUnavailableError, i as CLIP_TEXT_MODELS, l as resolveClusterModelPin, li as resolvePoolMemoryPolicy, lr as embeddingModelFailedError, n as DEFAULT_CLIP_MODEL, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS, ta as normalizeNodeId } from "../clip-model-registry-BBzoIoKO.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-Cx9AsA5q.mjs";
|
|
2
2
|
import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
|
|
3
|
-
import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
3
|
+
import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CssYIiFD.mjs";
|
|
4
4
|
import { n as x, t as S } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-CkwmHEi0.mjs";
|
|
5
|
-
import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
5
|
+
import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BSMSev-b.mjs";
|
|
6
6
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
7
7
|
var w = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), T = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), E = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), D = (e) => {
|
|
8
8
|
let t = E(e);
|
|
@@ -3,7 +3,7 @@ import "./dist-CYZr2fwk.mjs";
|
|
|
3
3
|
var e = {
|
|
4
4
|
"@camstack/sdk": {
|
|
5
5
|
name: "@camstack/sdk",
|
|
6
|
-
version: "1.2.
|
|
6
|
+
version: "1.2.145",
|
|
7
7
|
scope: ["default"],
|
|
8
8
|
loaded: !1,
|
|
9
9
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.395",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_pipeline_analytics_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.312",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|