@camstack/addon-post-analysis 1.2.341 → 1.2.343

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.
Files changed (15) hide show
  1. package/dist/{clip-model-registry-BOAYW16o.js → clip-model-registry-Cd_y9S4U.js} +382 -8
  2. package/dist/{clip-model-registry-BP-BF3CK.mjs → clip-model-registry-DZz3e781.mjs} +371 -9
  3. package/dist/embedding-encoder/index.js +1 -1
  4. package/dist/embedding-encoder/index.mjs +1 -1
  5. package/dist/pipeline-analytics/_stub.js +2 -2
  6. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-B2hR0cv6.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DrdO3Pxp.mjs} +3 -3
  7. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DEq-B6oq.mjs +26 -0
  8. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CiTUMvVf.mjs +26 -0
  9. package/dist/pipeline-analytics/{hostInit-BgudaQ7W.mjs → hostInit-DPNnWr-m.mjs} +3 -3
  10. package/dist/pipeline-analytics/index.js +876 -239
  11. package/dist/pipeline-analytics/index.mjs +868 -231
  12. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  13. package/package.json +2 -2
  14. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B9vPD32p.mjs +0 -26
  15. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CY24cHgW.mjs +0 -26
@@ -5442,7 +5442,7 @@ var ZodIssueCode = {
5442
5442
  var ZodFirstPartyTypeKind;
5443
5443
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5444
5444
  //#endregion
5445
- //#region ../types/dist/sleep-BNeXenvr.mjs
5445
+ //#region ../types/dist/sleep-B0JG7-_F.mjs
5446
5446
  /**
5447
5447
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5448
5448
  * window to float samples (D455).
@@ -17406,6 +17406,10 @@ var DeviceInfoSchema = object({
17406
17406
  isCamera: boolean(),
17407
17407
  /** Current config values — serializable snapshot */
17408
17408
  config: record(string(), unknown()),
17409
+ /** Paths inside `config` the device's schema declares secret (D783) —
17410
+ * what the non-admin redaction withholds. Paths, never values. Absent
17411
+ * when the owning runner has not reported them. */
17412
+ secretConfigPaths: array(string()).optional(),
17409
17413
  /** Hardware + identity blob (manufacturer / model / firmware / sn /
17410
17414
  * uid / mac / …). Populated by drivers; editable via setMetadata. */
17411
17415
  metadata: record(string(), unknown()).nullable().optional(),
@@ -17626,7 +17630,13 @@ var DeviceRegisterPayloadSchema = object({
17626
17630
  * call (workers re-register on init), so probe-driven updates
17627
17631
  * (e.g. PTZ flag flipping after the abilities probe) propagate. */
17628
17632
  features: array(string()).optional(),
17629
- config: record(string(), unknown())
17633
+ config: record(string(), unknown()),
17634
+ /** Config paths the device's own schema DECLARES secret
17635
+ * (`.meta({ secret: true })` — dotted, `[]` for array items, e.g.
17636
+ * `connection.password`). Re-published on every register; the non-admin
17637
+ * redaction withholds them at any depth (D783). Optional: an older runner
17638
+ * omits it and the keyword backstop applies. */
17639
+ secretConfigPaths: array(string()).optional()
17630
17640
  });
17631
17641
  var DeviceRemovePayloadSchema = object({ deviceId: number() });
17632
17642
  var DevicePersistConfigPayloadSchema = object({
@@ -20370,7 +20380,14 @@ var LoginMethodContributionSchema = discriminatedUnion("kind", [
20370
20380
  icon: string().optional(),
20371
20381
  /** Addon-owned HTTP route the button navigates to (GET). */
20372
20382
  startUrl: string(),
20373
- stage: LoginStageEnum
20383
+ stage: LoginStageEnum,
20384
+ /**
20385
+ * The provider names an external identity a signed-in user can link to
20386
+ * their own account (D782): `auth.listLinkableProviders` /
20387
+ * `beginExternalLink` offer exactly the redirect methods that set this,
20388
+ * whatever their id. Absent / false — a login button only (magic-link).
20389
+ */
20390
+ linkable: boolean().optional()
20374
20391
  }),
20375
20392
  object({
20376
20393
  kind: literal("widget"),
@@ -26955,7 +26972,13 @@ var RetrainFrameSchema = object({
26955
26972
  sizeBytes: number().int(),
26956
26973
  width: number().int(),
26957
26974
  height: number().int(),
26958
- copiedAt: number()
26975
+ copiedAt: number(),
26976
+ /** When the CAMERA captured the frame. Absent on a copy taken before D785. */
26977
+ capturedAt: number().optional(),
26978
+ /** The operator's "every subject in this frame is boxed". Detector
26979
+ * evaluation keeps only complete frames: an unboxed subject would count as
26980
+ * a false positive. */
26981
+ complete: boolean()
26959
26982
  });
26960
26983
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
26961
26984
  var RetrainCopyRefusalSchema = _enum([
@@ -26976,6 +26999,51 @@ var RetrainFrameListSchema = object({
26976
26999
  /** What the page pre-selects — the native key frame when one survives. */
26977
27000
  autoPickMediaId: number().int().optional()
26978
27001
  });
27002
+ /**
27003
+ * Which frames an annotated export carries. Every field narrows; an empty
27004
+ * filter is every annotated copy. A dataset VERSION is a frozen `frameIds`
27005
+ * list owned by whoever trains (the training orchestrator), so `frameIds` is
27006
+ * the primitive a version export uses; `batchId` re-selects what an earlier
27007
+ * export carried (`exportedInBatch`).
27008
+ */
27009
+ var RetrainExportFilterSchema = object({
27010
+ deviceIds: array(number()).optional(),
27011
+ frameIds: array(string()).max(2e4).optional(),
27012
+ batchId: string().optional(),
27013
+ /** Only frames the operator marked complete (all subjects boxed). */
27014
+ completeOnly: boolean().optional()
27015
+ });
27016
+ /**
27017
+ * `frames`: the full frame copies, boxes in `annotations.json`.
27018
+ * `crops`: additionally one JPEG per subject, cut with the runtime detail-crop
27019
+ * convention — the classifier layout.
27020
+ */
27021
+ var RetrainExportLayoutSchema = _enum(["frames", "crops"]);
27022
+ /**
27023
+ * Where `writeRetrainArchive` streams the tar: one HTTP request whose body is
27024
+ * the archive, sent chunk by chunk. Covers a presigned PUT and a provider
27025
+ * addon's data-plane upload route alike. Headers are sent verbatim and never
27026
+ * logged.
27027
+ */
27028
+ var RetrainArchiveTargetSchema = object({
27029
+ kind: literal("http"),
27030
+ method: _enum(["PUT", "POST"]),
27031
+ url: string().url(),
27032
+ headers: record(string(), string()).optional()
27033
+ });
27034
+ var RetrainArchiveResultSchema = object({
27035
+ batchId: string(),
27036
+ frames: number().int(),
27037
+ crops: number().int(),
27038
+ annotations: number().int(),
27039
+ /** Frames planned but not shipped (unreadable copy, path too long). */
27040
+ missing: number().int(),
27041
+ bytes: number().int(),
27042
+ /** sha256 of the exact bytes sent. */
27043
+ sha256: string(),
27044
+ /** The target's HTTP status. */
27045
+ status: number().int()
27046
+ });
26979
27047
  /** What the operator asked the assist to look for. */
26980
27048
  var RetrainAssistSubjectSchema = discriminatedUnion("kind", [object({
26981
27049
  kind: literal("package"),
@@ -28345,11 +28413,41 @@ var pipelineAnalyticsCapability = {
28345
28413
  * out, so two crops of the same subject can never end up in one feature
28346
28414
  * space (D52).
28347
28415
  */
28348
- getRetrainExportUrl: method(object({ deviceIds: array(number()).optional() }), object({ url: string() }), {
28416
+ getRetrainExportUrl: method(RetrainExportFilterSchema.extend({ layout: RetrainExportLayoutSchema.optional() }), object({ url: string() }), {
28349
28417
  kind: "query",
28350
28418
  auth: "admin"
28351
28419
  }),
28352
28420
  /**
28421
+ * The operator's "every subject in this frame is boxed" — set and cleared
28422
+ * by hand, never derived: a frame with no box may be a complete hard
28423
+ * negative, and a frame with three boxes may still miss a fourth person.
28424
+ */
28425
+ setRetrainFrameComplete: method(object({
28426
+ deviceId: number(),
28427
+ trackId: string(),
28428
+ frameId: string(),
28429
+ complete: boolean()
28430
+ }), RetrainFrameSchema, {
28431
+ kind: "mutation",
28432
+ auth: "admin"
28433
+ }),
28434
+ /**
28435
+ * Stream the annotated archive to a TARGET instead of a browser — the
28436
+ * same tar `getRetrainExportUrl` serves (manifest first, one JPEG in
28437
+ * memory at a time, paced), written chunk by chunk into one HTTP request.
28438
+ * The bytes never cross this cap and never land on the hub's disk; the
28439
+ * answer is what was sent, with its sha256.
28440
+ */
28441
+ writeRetrainArchive: method(object({
28442
+ filter: RetrainExportFilterSchema,
28443
+ layout: RetrainExportLayoutSchema,
28444
+ target: RetrainArchiveTargetSchema
28445
+ }), RetrainArchiveResultSchema, {
28446
+ kind: "mutation",
28447
+ auth: "admin",
28448
+ timeoutMs: 60 * 6e4
28449
+ }),
28450
+ /**
28353
28451
  * The media an EVENT owns.
28354
28452
  *
28355
28453
  * `ownerType` is REQUIRED, and that is the whole correction (D482). An
@@ -32754,7 +32852,19 @@ var SsoBridgeClaimsSchema = object({
32754
32852
  * editing a descriptor must not retroactively extend or shorten a link the
32755
32853
  * operator already consented to.
32756
32854
  */
32757
- refreshTtl: union([number().int().positive(), literal("never")]).optional()
32855
+ refreshTtl: union([number().int().positive(), literal("never")]).optional(),
32856
+ /**
32857
+ * Opaque handle of a hub-side LINK intent (D782). Set by an OIDC callback
32858
+ * that was started from a signed-in user's "Link" button: the finish then
32859
+ * links this identity to the intent's user instead of signing anyone in.
32860
+ * The handle carries no user id — the hub resolves it, single-use.
32861
+ */
32862
+ linkIntent: string().optional(),
32863
+ /**
32864
+ * Verified `iss` of the id_token behind an OIDC login bridge (D782). A
32865
+ * subject is unique only per issuer, so a link is bound to it.
32866
+ */
32867
+ issuer: string().optional()
32758
32868
  });
32759
32869
  var ssoBridgeCapability = {
32760
32870
  name: "sso-bridge",
@@ -35297,7 +35407,22 @@ var webrtcSessionCapability = {
35297
35407
  * field their hints were silently stripped by the schema and the
35298
35408
  * adaptive ladder started blind on the client's display size.
35299
35409
  */
35300
- hints: webrtcClientHintsSchema.optional()
35410
+ hints: webrtcClientHintsSchema.optional(),
35411
+ /**
35412
+ * Talk-back (D771): relay the PEER's audio to the device's speaker
35413
+ * through the `intercom` cap's push-talk triple. When `true` and the
35414
+ * offer lets the peer send audio, the answer's audio is `sendrecv`
35415
+ * and every inbound frame goes to `intercom.pushTalkAudio` for this
35416
+ * `deviceId`; absent/false answers `sendonly`, as for every viewer.
35417
+ *
35418
+ * TRUSTED-CALLER ONLY. Set by the Alexa export for an Echo on a camera
35419
+ * with `intercom`, when the linked user may control that camera. The
35420
+ * hub STRIPS it from every request-bound call (a browser), exactly as
35421
+ * it overwrites `relayOnly` — a viewer's talk permission is the
35422
+ * intercom cap's own surface (share tokens gate it there), and this
35423
+ * flag must not become a second door to the camera's speaker.
35424
+ */
35425
+ talkback: boolean().optional()
35301
35426
  }), object({
35302
35427
  sessionId: string(),
35303
35428
  sdpAnswer: string()
@@ -35737,6 +35862,59 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
35737
35862
  var RestartAddonResultSchema = unknown();
35738
35863
  var InstallPackageResultSchema = unknown();
35739
35864
  var ReloadPackagesResultSchema = unknown();
35865
+ /**
35866
+ * What an uninstall did on ONE node.
35867
+ * - `uninstalled` — removed: runner(s) stopped, caps gone, code deleted.
35868
+ * - `not-installed` — the node did not have it (nothing to do).
35869
+ * - `refused` — protected / bootstrap package; nothing touched.
35870
+ * - `failed` — attempted and did not complete; `error` says why.
35871
+ * - `pending-reconnect` — the node is OFFLINE: its record was pruned so the
35872
+ * back-fill never returns the package, and the stale-addon sweep removes the
35873
+ * copy when the node registers again (only once the hub no longer has it).
35874
+ */
35875
+ var UninstallNodeOutcomeSchema = _enum([
35876
+ "uninstalled",
35877
+ "not-installed",
35878
+ "refused",
35879
+ "failed",
35880
+ "pending-reconnect"
35881
+ ]);
35882
+ var UninstallNodeResultSchema = object({
35883
+ nodeId: string(),
35884
+ outcome: UninstallNodeOutcomeSchema,
35885
+ error: string().optional(),
35886
+ addonIds: array(string()).readonly(),
35887
+ runnersStopped: array(string()).readonly(),
35888
+ warnings: array(string()).readonly()
35889
+ });
35890
+ var UninstallPackageResultSchema = object({
35891
+ /** Every targeted node ended `uninstalled`, `not-installed` or `pending-reconnect`. */
35892
+ success: boolean(),
35893
+ packageName: string(),
35894
+ results: array(UninstallNodeResultSchema).readonly()
35895
+ });
35896
+ /**
35897
+ * `unreachable` lists online agents whose status read FAILED — absence from
35898
+ * `installations` is only "not installed" for a node that answered (D315).
35899
+ */
35900
+ var PackageInstallationsSchema = object({
35901
+ installations: array(object({
35902
+ packageName: string(),
35903
+ nodeId: string(),
35904
+ nodeName: string(),
35905
+ isHub: boolean(),
35906
+ isOnline: boolean(),
35907
+ version: string().nullable(),
35908
+ addonIds: array(string()).readonly(),
35909
+ source: _enum(["live", "recorded"]),
35910
+ /** The hub installs this package too. `false` on an agent row = an orphan. */
35911
+ onHub: boolean()
35912
+ })).readonly(),
35913
+ unreachable: array(object({
35914
+ nodeId: string(),
35915
+ error: string()
35916
+ })).readonly()
35917
+ });
35740
35918
  var BulkUpdateItemStatusSchema = _enum([
35741
35919
  "queued",
35742
35920
  "updating",
@@ -35845,10 +36023,31 @@ var addonsCapability = {
35845
36023
  }),
35846
36024
  isWorkspaceAvailable: method(_void(), boolean()),
35847
36025
  listWorkspacePackages: method(_void(), array(unknown()).readonly()),
35848
- uninstallPackage: method(object({ packageName: string() }), unknown(), {
36026
+ /**
36027
+ * Uninstall a package. `nodeId` omitted (or `'hub'`) uninstalls on the hub
36028
+ * — the original behaviour, which still THROWS on failure. An agent
36029
+ * `nodeId` removes it from that agent through `$agent.undeploy`
36030
+ * (runners stopped, caps deregistered, code deleted) and prunes the node's
36031
+ * declared roster so the back-fill never returns it. `everywhere: true`
36032
+ * does both for every node that has it (agents first, hub last); offline
36033
+ * nodes answer `pending-reconnect`. Node-level failures in those two modes
36034
+ * are REPORTED per node, never thrown. Protected packages are refused.
36035
+ */
36036
+ uninstallPackage: method(object({
36037
+ packageName: string().min(1),
36038
+ nodeId: string().optional(),
36039
+ everywhere: boolean().optional()
36040
+ }), UninstallPackageResultSchema, {
35849
36041
  kind: "mutation",
35850
36042
  auth: "admin"
35851
36043
  }),
36044
+ /**
36045
+ * Which nodes have a package (or, with no `packageName`, every package on
36046
+ * every node). Hub from its installer, online agents from `$agent.status`
36047
+ * (in parallel, bounded), offline agents from their declared roster.
36048
+ * Drives the uninstall confirm and the Addons page's "not on the hub" list.
36049
+ */
36050
+ listInstallations: method(object({ packageName: string().optional() }), PackageInstallationsSchema, { auth: "admin" }),
35852
36051
  reloadPackages: method(_void(), ReloadPackagesResultSchema, {
35853
36052
  kind: "mutation",
35854
36053
  auth: "admin"
@@ -47147,6 +47346,22 @@ var TotpStatusSchema = object({
47147
47346
  * delegation, structural caller-scope subset check goes inside the
47148
47347
  * provider.
47149
47348
  */
47349
+ var ExternalIdentitySchema = object({
47350
+ /** Login-method id of the provider instance, e.g. `auth-oidc/authentik`. */
47351
+ provider: string(),
47352
+ /** The IdP's stable subject (`sub`) for this account. */
47353
+ subject: string(),
47354
+ /** The verified `iss` of the IdP the identity was linked under — `sub` is unique only per issuer. */
47355
+ issuer: string(),
47356
+ userId: string(),
47357
+ /** What the IdP called the account at link time (username / email) — display only. */
47358
+ label: string().optional(),
47359
+ linkedAt: number()
47360
+ });
47361
+ var ExternalIdentityKeySchema = object({
47362
+ provider: string().min(1),
47363
+ subject: string().min(1)
47364
+ });
47150
47365
  var userManagementCapability = {
47151
47366
  name: "user-management",
47152
47367
  scope: "system",
@@ -47289,6 +47504,32 @@ var userManagementCapability = {
47289
47504
  username: string(),
47290
47505
  scopes: array(TokenScopeSchema)
47291
47506
  }).nullable(), { access: "view" }),
47507
+ listExternalIdentities: method(object({ userId: string() }), array(ExternalIdentitySchema), { auth: "admin" }),
47508
+ /** The user an identity is linked to, or `null`. */
47509
+ findUserByExternalIdentity: method(ExternalIdentityKeySchema, object({
47510
+ userId: string(),
47511
+ issuer: string()
47512
+ }).nullable(), { auth: "admin" }),
47513
+ /**
47514
+ * Link `(provider, subject)` to `userId`. Idempotent for the same user;
47515
+ * REFUSES (throws) an identity already linked to another user, and a
47516
+ * user that does not exist.
47517
+ */
47518
+ linkExternalIdentity: method(ExternalIdentityKeySchema.extend({
47519
+ userId: string(),
47520
+ issuer: string().min(1),
47521
+ label: string().optional()
47522
+ }), object({ success: literal(true) }), {
47523
+ kind: "mutation",
47524
+ auth: "admin",
47525
+ access: "create"
47526
+ }),
47527
+ /** Remove one link of `userId`. `success: false` when it was not linked to that user. */
47528
+ unlinkExternalIdentity: method(ExternalIdentityKeySchema.extend({ userId: string() }), object({ success: boolean() }), {
47529
+ kind: "mutation",
47530
+ auth: "admin",
47531
+ access: "delete"
47532
+ }),
47292
47533
  listOauthSessions: method(_void(), array(OauthSessionSummarySchema), { auth: "admin" }),
47293
47534
  revokeOauthSession: method(object({ id: string() }), object({ success: boolean() }), {
47294
47535
  kind: "mutation",
@@ -49278,6 +49519,12 @@ Object.freeze({
49278
49519
  addonId: null,
49279
49520
  access: "view"
49280
49521
  },
49522
+ "addons.listInstallations": {
49523
+ capName: "addons",
49524
+ capScope: "system",
49525
+ addonId: null,
49526
+ access: "view"
49527
+ },
49281
49528
  "addons.listJobs": {
49282
49529
  capName: "addons",
49283
49530
  capScope: "system",
@@ -53502,6 +53749,12 @@ Object.freeze({
53502
53749
  addonId: null,
53503
53750
  access: "create"
53504
53751
  },
53752
+ "pipelineAnalytics.setRetrainFrameComplete": {
53753
+ capName: "pipeline-analytics",
53754
+ capScope: "device",
53755
+ addonId: null,
53756
+ access: "create"
53757
+ },
53505
53758
  "pipelineAnalytics.setTrackFlags": {
53506
53759
  capName: "pipeline-analytics",
53507
53760
  capScope: "device",
@@ -53538,6 +53791,12 @@ Object.freeze({
53538
53791
  addonId: null,
53539
53792
  access: "delete"
53540
53793
  },
53794
+ "pipelineAnalytics.writeRetrainArchive": {
53795
+ capName: "pipeline-analytics",
53796
+ capScope: "device",
53797
+ addonId: null,
53798
+ access: "create"
53799
+ },
53541
53800
  "pipelineExecutor.cacheFrameInPool": {
53542
53801
  capName: "pipeline-executor",
53543
53802
  capScope: "system",
@@ -55890,18 +56149,36 @@ Object.freeze({
55890
56149
  addonId: null,
55891
56150
  access: "delete"
55892
56151
  },
56152
+ "userManagement.findUserByExternalIdentity": {
56153
+ capName: "user-management",
56154
+ capScope: "system",
56155
+ addonId: null,
56156
+ access: "view"
56157
+ },
55893
56158
  "userManagement.getTotpStatus": {
55894
56159
  capName: "user-management",
55895
56160
  capScope: "system",
55896
56161
  addonId: null,
55897
56162
  access: "view"
55898
56163
  },
56164
+ "userManagement.linkExternalIdentity": {
56165
+ capName: "user-management",
56166
+ capScope: "system",
56167
+ addonId: null,
56168
+ access: "create"
56169
+ },
55899
56170
  "userManagement.listApiKeys": {
55900
56171
  capName: "user-management",
55901
56172
  capScope: "system",
55902
56173
  addonId: null,
55903
56174
  access: "view"
55904
56175
  },
56176
+ "userManagement.listExternalIdentities": {
56177
+ capName: "user-management",
56178
+ capScope: "system",
56179
+ addonId: null,
56180
+ access: "view"
56181
+ },
55905
56182
  "userManagement.listOauthSessions": {
55906
56183
  capName: "user-management",
55907
56184
  capScope: "system",
@@ -55980,6 +56257,12 @@ Object.freeze({
55980
56257
  addonId: null,
55981
56258
  access: "create"
55982
56259
  },
56260
+ "userManagement.unlinkExternalIdentity": {
56261
+ capName: "user-management",
56262
+ capScope: "system",
56263
+ addonId: null,
56264
+ access: "delete"
56265
+ },
55983
56266
  "userManagement.updateUser": {
55984
56267
  capName: "user-management",
55985
56268
  capScope: "system",
@@ -59495,6 +59778,11 @@ Object.freeze({
59495
59778
  form: "single",
59496
59779
  optional: false
59497
59780
  }],
59781
+ "pipelineAnalytics.setRetrainFrameComplete": [{
59782
+ name: "deviceId",
59783
+ form: "single",
59784
+ optional: false
59785
+ }],
59498
59786
  "pipelineAnalytics.setTrackFlags": [{
59499
59787
  name: "deviceId",
59500
59788
  form: "single",
@@ -63538,6 +63826,80 @@ var FULL_IMAGE_BBOX = Object.freeze({
63538
63826
  });
63539
63827
  DEFAULT_DETAIL_CROP_CONVENTION.paddingRatio;
63540
63828
  /**
63829
+ * Derive the crop rectangle for one parent detection.
63830
+ *
63831
+ * Order: pad by `paddingRatio` of the box's own size → optionally square in
63832
+ * pixel space around the padded centre → keep it inside the frame. Pure:
63833
+ * always returns a new rect and never mutates `bbox`.
63834
+ *
63835
+ * Edge handling differs by mode, on purpose:
63836
+ *
63837
+ * - **unsquared** — TRUNCATED at the frame border, byte-for-byte what the live
63838
+ * path has always done (`padAndClampFrameBbox`). A subject against the edge
63839
+ * gets a slightly smaller window. Changing this would silently reinterpret
63840
+ * every edge-touching vector already in the index.
63841
+ * - **squared** — SLID inward instead, because a truncated square is not
63842
+ * square and squaring exists precisely to preserve the aspect the model
63843
+ * sees. It only shrinks when the square is larger than the frame itself.
63844
+ */
63845
+ function deriveDetailCropRect(bbox, frameWidth, frameHeight, convention) {
63846
+ const padX = convention.paddingRatio * bbox.w;
63847
+ const padY = convention.paddingRatio * bbox.h;
63848
+ const padded = {
63849
+ x: bbox.x - padX,
63850
+ y: bbox.y - padY,
63851
+ w: bbox.w + 2 * padX,
63852
+ h: bbox.h + 2 * padY
63853
+ };
63854
+ return convention.square ? slideInsideFrame(squareInPixels(padded, frameWidth, frameHeight), frameWidth, frameHeight) : truncateToFrame(padded, frameWidth, frameHeight);
63855
+ }
63856
+ /**
63857
+ * Grow the shorter side to the longer one around the window's centre, bounded
63858
+ * by the frame's shorter side — a square larger than the frame cannot exist,
63859
+ * and collapsing to the frame's short side is the most that does.
63860
+ */
63861
+ function squareInPixels(rect, frameWidth, frameHeight) {
63862
+ const side = Math.min(Math.max(rect.w, rect.h), Math.min(frameWidth, frameHeight));
63863
+ const cx = rect.x + rect.w / 2;
63864
+ const cy = rect.y + rect.h / 2;
63865
+ return {
63866
+ x: cx - side / 2,
63867
+ y: cy - side / 2,
63868
+ w: side,
63869
+ h: side
63870
+ };
63871
+ }
63872
+ /**
63873
+ * Cut the window at the frame border — the pre-unification live behaviour,
63874
+ * preserved exactly so unsquared crops keep matching the stored index.
63875
+ */
63876
+ function truncateToFrame(rect, frameWidth, frameHeight) {
63877
+ const x1 = Math.max(0, rect.x);
63878
+ const y1 = Math.max(0, rect.y);
63879
+ const x2 = Math.min(frameWidth, rect.x + rect.w);
63880
+ const y2 = Math.min(frameHeight, rect.y + rect.h);
63881
+ return {
63882
+ x: x1,
63883
+ y: y1,
63884
+ w: Math.max(0, x2 - x1),
63885
+ h: Math.max(0, y2 - y1)
63886
+ };
63887
+ }
63888
+ /**
63889
+ * Move the window inside the frame keeping its extent — used only for squared
63890
+ * windows, where truncating would destroy the squareness that is the point.
63891
+ */
63892
+ function slideInsideFrame(rect, frameWidth, frameHeight) {
63893
+ const w = Math.max(0, Math.min(rect.w, frameWidth));
63894
+ const h = Math.max(0, Math.min(rect.h, frameHeight));
63895
+ return {
63896
+ x: Math.min(Math.max(0, rect.x), Math.max(0, frameWidth - w)),
63897
+ y: Math.min(Math.max(0, rect.y), Math.max(0, frameHeight - h)),
63898
+ w,
63899
+ h
63900
+ };
63901
+ }
63902
+ /**
63541
63903
  * WHICH delivered frames the decode worker retains a native copy of.
63542
63904
  *
63543
63905
  * - `all` — every frame the worker delivered to the runner. The shipped
@@ -64320,4 +64682,4 @@ function buildClipModelRegistry(entries) {
64320
64682
  /** The built-in catalog's registry. */
64321
64683
  var BUILTIN_CLIP_MODELS = buildClipModelRegistry(CLIP_IMAGE_MODELS);
64322
64684
  //#endregion
64323
- export { NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as $, encodeVectorBase64 as $n, systemEventDeliveryProblems as $r, RECORDING_SOURCE_CAMSTACK_ADDON as $t, EMBEDDING_MODEL_FAILED as A, literal as Ai, applyModeDelaysEdits as An, plateGalleryCapability as Ar, NcLegacyRuleActionSequenceSchema as At, LabelAttributionSchema as B, union as Bi, coreBlockIdFromAddonId as Bn, rootSupplyServes as Br, NcSnoozeInputSchema as Bt, CoverStateSchema as C, normalizeNodeId as Ci, TrackSideSchema as Cn, linkedStepOf as Cr, NcAlarmConfigSchema as Ct, DETECTION_PIPELINE_CAP_NAME as D, array as Di, alarmDeviceSecureOnArm as Dn, occupancyScope as Dr, NcAlarmSettingsPatchSchema as Dt, DETECTION_MACRO_CLASSES as E, _enum as Ei, addonWidgetsSourceCapability as En, notificationRulesCapability as Er, NcAlarmSensorsSchema as Et, EVENT_OWNER_TYPES as F, record as Fi, audioModeOf as Fn, resolveClipSearchMinScore as Fr, NcRuleSchema as Ft, MAX_BIRTH_DECISION_RECORDS as G, deriveRecordingMode as Gn, ruleKindOf as Gr, NcTaxonomySchema as Gt, ListTrackRelationsResultSchema as H, EventCategory as Hi, createAlarmProfile as Hn, ruleBelongsToAlarm as Hr, NcSnoozeSuppressedSchema as Ht, EXPORT_DENSE_MAX_RANGES as I, strictObject as Ii, buildEventKindDescriptor as In, resolveLocationMode as Ir, NcRuleTargetSchema as It, MAX_TRACK_RELATIONS as J, embeddingEncoderCapability as Jn, sensorRaisedOf as Jr, NcTemplateVarDescriptorSchema as Jt, MAX_BIRTH_LATENCY_PROXY_MS as K, describeSystemEventDeliveryProblem as Kn, sceneMonitorCapability as Kr, NcTemplatePreviewInputSchema as Kt, FIRST_LEVEL_MACRO_CLASSES as L, string as Li, buildViewerLink as Ln, resolveModeDelays as Lr, NcRuleUpdateInputSchema as Lt, EMBEDDING_REQUIREMENTS_UNAVAILABLE as M, number as Mi, applySecureOnArmEdit as Mn, readMotionTriggeredBy as Mr, NcRuleActionsSchema as Mt, EVENT_DENSITY_BATCH_MAX as N, object as Ni, assertTimelapseCadences as Nn, readTimelapseGeneratedAt as Nr, NcRuleInputSchema as Nt, DeclaredDevices as O, boolean as Oi, alarmPanelCapability as On, parseProcStatus as Or, NcConditionDescriptorSchema as Ot, EVENT_KIND_BY_CAP as P, partialRecord as Pi, audioMetricsCapability as Pn, renameAlarmProfile as Pr, NcRulePatchSchema as Pt, NC_ALARM_DEFAULT_PROFILE_ID as Q, embeddingRequirementsUnavailableError as Qn, syncActiveAlarmProfileSettings as Qr, RECORDING_EXPORT_MAX_READ_BYTES as Qt, FULL_IMAGE_BBOX as R, templateLiteral as Ri, cloneAlarmSettings as Rn, resolveModeNotifyPolicy as Rr, NcScheduleSchema as Rt, ClearTrackRelationResultSchema as S, nodePin as Si, TrackRelationSchema as Sn, kebabToCamel as Sr, NC_TEMPLATE_VARS as St, DEFAULT_TIMELAPSE_PREVIEW_TEXT as T, ZodObject as Ti, activateAlarmProfile as Tn, memoizePinnedFfmpeg as Tr, NcAlarmSensorsInputSchema as Tt, LockStateSchema as U, deleteAlarmProfile as Un, ruleDeviceCompatCapQueries as Ur, NcStateSummarySectionIdSchema as Ut, ListTrackRelationsInputSchema as V, unknown as Vi, cosineSimilarity as Vn, ruleAutoTriggersAlarm as Vr, NcSnoozeSchema as Vt, MAX_ARCHIVED_DEBUG_NOTES as W, derivePostTriggeredAction as Wn, ruleGroupingApplies as Wr, NcSystemEventKindSchema as Wt, MediaFileKindEnum as X, embeddingRefusalOf as Xn, storageOccupancyCapability as Xr, OpsLogEntrySchema as Xt, MOTION_CLOSE_AFTER_MS as Y, embeddingModelFailedError as Yn, servedTemplateVars as Yr, OPS_LOG_DEFAULT_LIMIT as Yt, MotionTriggeredBySchema as Z, embeddingRequirementsFailedError as Zn, subKindsOf as Zr, PoolMemoryWatchdog as Zt, BIRTH_DECISION_DEFAULT_LIMIT as _, createEvent as _i, TimelapseRuleInputSchema as _n, isRootSuppliableStepId as _r, NC_SENSOR_TRANSITION_KINDS as _t, CLIP_EMBEDDING_STEP_ID as a, templateVarsFor as ai, SCENE_DEFAULT_CHECK_INTERVAL_SEC as an, gifDeriveSpeed as ar, NC_AUDIO_CONFIRM_HITS_DEFAULT as at, COCO_TO_MACRO as b, hydrateSchema as bi, TrackPuritySchema as bn, isSystemEventSummaryRule as br, NC_TANK_SYSTEM_EVENT_KINDS as bt, resolveClusterModelPin as c, zoneAnalyticsCapability as ci, SCENE_DEFAULT_UNCOVERED_POLICY as cn, isAppLinkBase as cr, NC_CLIP_PRE_ROLL_DEFAULT_SEC as ct, APPEARANCE_BLOCKS as d, evaluateSensorEdge as di, SceneMonitorSchema as dn, isDetectionMacroClass as dr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as dt, systemEventFamilyProblems as ei, RebuildObjectEmbeddingsRefusalSchema as en, ensureAlarmProfiles as er, NC_ALARM_DELAY_FIELDS as et, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as f, isSourceCap as fi, SetTrackPurityInputSchema as fn, isEventKindLabelKey as fr, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as ft, ArchivedDebugNoteSchema as g, CamProfileSchema as gi, TRACK_RELATIONS_DEFAULT_LIMIT as gn, isRetiredClearKey as gr, NC_GROUPING_MIN_SEC as gt, AlarmArmModeSchema as h, BaseAddon as hi, TIMELAPSE_DENSE_FLOOR_SEC as hn, isMediaOwnerType as hr, NC_GROUPING_MAX_SEC as ht, CLIP_TEXT_MODELS as i, templateCarriesSummary as ii, SCENE_DEFAULT_ANCHOR_THRESHOLD as in, failureContributionCapability as ir, NC_ALARM_TRIGGERED_MAX_SEC as it, EMBEDDING_REQUIREMENTS_FAILED as j, looseObject as ji, applyNonBlockingEdit as jn, readDeviceStateFrom as jr, NcRuleActionSchema as jt, DetectionSourceSchema as k, discriminatedUnion as ki, applyBlockingEdit as kn, pipelineAnalyticsCapability as kr, NcConditionsSchema as kt, ALL_CAPABILITY_DEFINITIONS as l, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as li, SCENE_DIVERGED as ln, isAudioClassName as lr, NC_CLIP_RETENTION_MAX_SEC as lt, AUDIO_MACRO_LABELS as m, errMsg as mi, SetTrackRelationInputSchema as mn, isKnownTemplateVar as mr, NC_GROUPING_DEFAULT_SEC as mt, DEFAULT_CLIP_MODEL as n, systemEventSummaryScheduleOf as ni, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as nn, evictionPolicyOfLocation as nr, NC_ALARM_NOTIFY_FIELDS as nt, FACE_EMBEDDING_STEP_ID as o, vectorDimFromBase64 as oi, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as on, gifFromMp4Args as or, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as ot, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as p, DeviceType as pi, SetTrackPurityResultSchema as pn, isEventOwnerType as pr, NC_DEFAULT_SNOOZE_MINUTES as pt, MAX_TRACK_PURITIES as q, describeSystemEventFamilyProblem as qn, secureActuationFor as qr, NcTemplatePreviewSchema as qt, CLIP_IMAGE_MODELS as r, systemEventSummarySplitOf as ri, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as rn, faceGalleryCapability as rr, NC_ALARM_SYSTEM_EVENT_KINDS as rt, readClusterModelPinStrict as s, viewerLinkBaseOf as si, SCENE_DEFAULT_QUIET_SECONDS as sn, isAlarmControllableCap as sr, NC_CLIP_POST_ROLL_DEFAULT_SEC as st, BUILTIN_CLIP_MODELS as t, systemEventFilterApplies as ti, RetrainStatusSchema as tn, eventKindLabel as tr, NC_ALARM_DELAY_MAX_SEC as tt, APPEARANCE_BIN_COUNT as u, canonicalHash as ui, SCENE_RESET_RECAPTURES as un, isDefaultAlarmProfileId as ur, NC_CONDITION_CATALOG as ut, BaseDevice as v, customAction as vi, TimelapseRulePatchSchema as vn, isScheduleActive as vr, NC_SNOOZE_MAX_MINUTES as vt, DEFAULT_EVENT_COLOR as w, sleep as wi, TrackSourceSchema as wn, mayWriteToLocation as wr, NcAlarmPostTriggeredActionSchema as wt, ClearTrackRelationInputSchema as x, isDeviceScopedCap as xi, TrackRelationKindSchema as xn, isVectorIndexDimConflict as xr, NC_TAXONOMY as xt, BirthDecisionRecordSchema as y, defineCustomActions as yi, TimelapseRuleSchema as yn, isSystemDelivery as yr, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as yt, FailureCounters as z, tuple as zi, consumableLowPercentOf as zn, resolvePoolMemoryPolicy as zr, NcSharedSequenceSchema as zt };
64685
+ export { NC_ALARM_DEFAULT_PROFILE_ID as $, embeddingRequirementsFailedError as $n, subKindsOf as $r, RECORDING_EXPORT_MAX_READ_BYTES as $t, DetectionSourceSchema as A, boolean as Ai, applyBlockingEdit as An, parseProcStatus as Ar, NcConditionsSchema as At, FailureCounters as B, templateLiteral as Bi, consumableLowPercentOf as Bn, resolveModeNotifyPolicy as Br, NcSharedSequenceSchema as Bt, CoverStateSchema as C, isDeviceScopedCap as Ci, TrackRelationSchema as Cn, isVectorIndexDimConflict as Cr, NC_TEMPLATE_VARS as Ct, DETECTION_MACRO_CLASSES as D, ZodObject as Di, addonWidgetsSourceCapability as Dn, memoizePinnedFfmpeg as Dr, NcAlarmSensorsSchema as Dt, DEFAULT_TIMELAPSE_PREVIEW_TEXT as E, sleep as Ei, activateAlarmProfile as En, mayWriteToLocation as Er, NcAlarmSensorsInputSchema as Et, EVENT_KIND_BY_CAP as F, object as Fi, audioMetricsCapability as Fn, readTimelapseGeneratedAt as Fr, NcRulePatchSchema as Ft, MAX_ARCHIVED_DEBUG_NOTES as G, deriveDetailCropRect as Gn, ruleDeviceCompatCapQueries as Gr, NcSystemEventKindSchema as Gt, ListTrackRelationsInputSchema as H, union as Hi, cosineSimilarity as Hn, rootSupplyServes as Hr, NcSnoozeSchema as Ht, EVENT_OWNER_TYPES as I, partialRecord as Ii, audioModeOf as In, renameAlarmProfile as Ir, NcRuleSchema as It, MAX_TRACK_PURITIES as J, describeSystemEventDeliveryProblem as Jn, sceneMonitorCapability as Jr, NcTemplatePreviewSchema as Jt, MAX_BIRTH_DECISION_RECORDS as K, derivePostTriggeredAction as Kn, ruleGroupingApplies as Kr, NcTaxonomySchema as Kt, EXPORT_DENSE_MAX_RANGES as L, record as Li, buildEventKindDescriptor as Ln, resolveClipSearchMinScore as Lr, NcRuleTargetSchema as Lt, EMBEDDING_REQUIREMENTS_FAILED as M, literal as Mi, applyNonBlockingEdit as Mn, plateGalleryCapability as Mr, NcRuleActionSchema as Mt, EMBEDDING_REQUIREMENTS_UNAVAILABLE as N, looseObject as Ni, applySecureOnArmEdit as Nn, readDeviceStateFrom as Nr, NcRuleActionsSchema as Nt, DETECTION_PIPELINE_CAP_NAME as O, _enum as Oi, alarmDeviceSecureOnArm as On, notificationRulesCapability as Or, NcAlarmSettingsPatchSchema as Ot, EVENT_DENSITY_BATCH_MAX as P, number as Pi, assertTimelapseCadences as Pn, readMotionTriggeredBy as Pr, NcRuleInputSchema as Pt, MotionTriggeredBySchema as Q, embeddingRefusalOf as Qn, storageOccupancyCapability as Qr, PoolMemoryWatchdog as Qt, FIRST_LEVEL_MACRO_CLASSES as R, strictObject as Ri, buildViewerLink as Rn, resolveLocationMode as Rr, NcRuleUpdateInputSchema as Rt, ClearTrackRelationResultSchema as S, hydrateSchema as Si, TrackRelationKindSchema as Sn, isSystemEventSummaryRule as Sr, NC_TAXONOMY as St, DEFAULT_EVENT_COLOR as T, normalizeNodeId as Ti, TrackSourceSchema as Tn, linkedStepOf as Tr, NcAlarmPostTriggeredActionSchema as Tt, ListTrackRelationsResultSchema as U, unknown as Ui, createAlarmProfile as Un, ruleAutoTriggersAlarm as Ur, NcSnoozeSuppressedSchema as Ut, LabelAttributionSchema as V, tuple as Vi, coreBlockIdFromAddonId as Vn, resolvePoolMemoryPolicy as Vr, NcSnoozeInputSchema as Vt, LockStateSchema as W, EventCategory as Wi, deleteAlarmProfile as Wn, ruleBelongsToAlarm as Wr, NcStateSummarySectionIdSchema as Wt, MOTION_CLOSE_AFTER_MS as X, embeddingEncoderCapability as Xn, sensorRaisedOf as Xr, OPS_LOG_DEFAULT_LIMIT as Xt, MAX_TRACK_RELATIONS as Y, describeSystemEventFamilyProblem as Yn, secureActuationFor as Yr, NcTemplateVarDescriptorSchema as Yt, MediaFileKindEnum as Z, embeddingModelFailedError as Zn, servedTemplateVars as Zr, OpsLogEntrySchema as Zt, BIRTH_DECISION_DEFAULT_LIMIT as _, BaseAddon as _i, TRACK_RELATIONS_DEFAULT_LIMIT as _n, isMediaOwnerType as _r, NC_GROUPING_MIN_SEC as _t, CLIP_EMBEDDING_STEP_ID as a, systemEventSummarySplitOf as ai, SCENE_DEFAULT_ANCHOR_THRESHOLD as an, faceGalleryCapability as ar, NC_ALARM_TRIGGERED_MAX_SEC as at, COCO_TO_MACRO as b, customAction as bi, TimelapseRuleSchema as bn, isScheduleActive as br, NC_SYSTEM_EVENT_KIND_GROUP_SPECS as bt, resolveClusterModelPin as c, vectorDimFromBase64 as ci, SCENE_DEFAULT_QUIET_SECONDS as cn, gifFromMp4Args as cr, NC_CLIP_POST_ROLL_DEFAULT_SEC as ct, APPEARANCE_BLOCKS as d, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as di, SCENE_RESET_RECAPTURES as dn, isAudioClassName as dr, NC_CONDITION_CATALOG as dt, syncActiveAlarmProfileSettings as ei, RECORDING_SOURCE_CAMSTACK_ADDON as en, embeddingRequirementsUnavailableError as er, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC as et, APPEARANCE_RESOLVES_AMBIGUITY_DEFAULT as f, canonicalHash as fi, SceneMonitorSchema as fn, isDefaultAlarmProfileId as fr, NC_CONSUMABLE_LOW_PERCENT_DEFAULT as ft, ArchivedDebugNoteSchema as g, errMsg as gi, TIMELAPSE_DENSE_FLOOR_SEC as gn, isKnownTemplateVar as gr, NC_GROUPING_MAX_SEC as gt, AlarmArmModeSchema as h, DeviceType as hi, SetTrackRelationInputSchema as hn, isEventOwnerType as hr, NC_GROUPING_DEFAULT_SEC as ht, CLIP_TEXT_MODELS as i, systemEventSummaryScheduleOf as ii, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS as in, evictionPolicyOfLocation as ir, NC_ALARM_SYSTEM_EVENT_KINDS as it, EMBEDDING_MODEL_FAILED as j, discriminatedUnion as ji, applyModeDelaysEdits as jn, pipelineAnalyticsCapability as jr, NcLegacyRuleActionSequenceSchema as jt, DeclaredDevices as k, array as ki, alarmPanelCapability as kn, occupancyScope as kr, NcConditionDescriptorSchema as kt, ALL_CAPABILITY_DEFINITIONS as l, viewerLinkBaseOf as li, SCENE_DEFAULT_UNCOVERED_POLICY as ln, isAlarmControllableCap as lr, NC_CLIP_PRE_ROLL_DEFAULT_SEC as lt, AUDIO_MACRO_LABELS as m, isSourceCap as mi, SetTrackPurityResultSchema as mn, isEventKindLabelKey as mr, NC_DEFAULT_SNOOZE_MINUTES as mt, DEFAULT_CLIP_MODEL as n, systemEventFamilyProblems as ni, RetrainStatusSchema as nn, ensureAlarmProfiles as nr, NC_ALARM_DELAY_MAX_SEC as nt, FACE_EMBEDDING_STEP_ID as o, templateCarriesSummary as oi, SCENE_DEFAULT_CHECK_INTERVAL_SEC as on, failureContributionCapability as or, NC_AUDIO_CONFIRM_HITS_DEFAULT as ot, ARCHIVED_DEBUG_NOTES_DEFAULT_LIMIT as p, evaluateSensorEdge as pi, SetTrackPurityInputSchema as pn, isDetectionMacroClass as pr, NC_CONSUMABLE_SYSTEM_EVENT_KINDS as pt, MAX_BIRTH_LATENCY_PROXY_MS as q, deriveRecordingMode as qn, ruleKindOf as qr, NcTemplatePreviewInputSchema as qt, CLIP_IMAGE_MODELS as r, systemEventFilterApplies as ri, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX as rn, eventKindLabel as rr, NC_ALARM_NOTIFY_FIELDS as rt, readClusterModelPinStrict as s, templateVarsFor as si, SCENE_DEFAULT_OBSERVATION_SPACING_SEC as sn, gifDeriveSpeed as sr, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT as st, BUILTIN_CLIP_MODELS as t, systemEventDeliveryProblems as ti, RebuildObjectEmbeddingsRefusalSchema as tn, encodeVectorBase64 as tr, NC_ALARM_DELAY_FIELDS as tt, APPEARANCE_BIN_COUNT as u, zoneAnalyticsCapability as ui, SCENE_DIVERGED as un, isAppLinkBase as ur, NC_CLIP_RETENTION_MAX_SEC as ut, BaseDevice as v, CamProfileSchema as vi, TimelapseRuleInputSchema as vn, isRetiredClearKey as vr, NC_SENSOR_TRANSITION_KINDS as vt, DEFAULT_DETAIL_CROP_CONVENTION as w, nodePin as wi, TrackSideSchema as wn, kebabToCamel as wr, NcAlarmConfigSchema as wt, ClearTrackRelationInputSchema as x, defineCustomActions as xi, TrackPuritySchema as xn, isSystemDelivery as xr, NC_TANK_SYSTEM_EVENT_KINDS as xt, BirthDecisionRecordSchema as y, createEvent as yi, TimelapseRulePatchSchema as yn, isRootSuppliableStepId as yr, NC_SNOOZE_MAX_MINUTES as yt, FULL_IMAGE_BBOX as z, string as zi, cloneAlarmSettings as zn, resolveModeDelays as zr, NcScheduleSchema as zt };
@@ -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-BOAYW16o.js");
5
+ const require_clip_model_registry = require("../clip-model-registry-Cd_y9S4U.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 { Ci as normalizeNodeId, Jn as embeddingEncoderCapability, Or as parseProcStatus, Qn as embeddingRequirementsUnavailableError, Yn as embeddingModelFailedError, Zn as embeddingRequirementsFailedError, Zt as PoolMemoryWatchdog, a as CLIP_EMBEDDING_STEP_ID, c as resolveClusterModelPin, hi as BaseAddon, i as CLIP_TEXT_MODELS, n as DEFAULT_CLIP_MODEL, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS, zr as resolvePoolMemoryPolicy } from "../clip-model-registry-BP-BF3CK.mjs";
1
+ import { $n as embeddingRequirementsFailedError, Ar as parseProcStatus, Qt as PoolMemoryWatchdog, Ti as normalizeNodeId, Vr as resolvePoolMemoryPolicy, Xn as embeddingEncoderCapability, Zn as embeddingModelFailedError, _i as BaseAddon, a as CLIP_EMBEDDING_STEP_ID, c as resolveClusterModelPin, er as embeddingRequirementsUnavailableError, i as CLIP_TEXT_MODELS, n as DEFAULT_CLIP_MODEL, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS } from "../clip-model-registry-DZz3e781.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-C0AuF9av.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, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CY24cHgW.mjs";
3
+ import { a as s, i as c, n as l, o as u, r as d, s as f, t as p } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CiTUMvVf.mjs";
4
4
  import { n as m, r as h, t as g } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-Bm-iyjmq.mjs";
5
- import { t as _ } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-B9vPD32p.mjs";
5
+ import { t as _ } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DEq-B6oq.mjs";
6
6
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
7
7
  var v = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), y = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), b = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), x = (e) => {
8
8
  let t = b(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.125",
6
+ version: "1.2.126",
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.323",
21
+ version: "1.2.327",
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.247",
36
+ version: "1.2.249",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_analytics_widgets",