@camstack/addon-pipeline 1.2.362 → 1.2.363

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 (34) hide show
  1. package/dist/audio-analyzer/index.js +3 -3
  2. package/dist/audio-analyzer/index.mjs +3 -3
  3. package/dist/{custom-model-catalog-C77XAnt9.mjs → custom-model-catalog-DHFPSu0E.mjs} +2 -2
  4. package/dist/{custom-model-catalog-CL9Tcn2Y.js → custom-model-catalog-nx2TXAGS.js} +2 -2
  5. package/dist/detection-pipeline/index.js +4 -4
  6. package/dist/detection-pipeline/index.mjs +4 -4
  7. package/dist/{dist-D629dz5x.mjs → dist-BX9VTm12.mjs} +177 -3
  8. package/dist/{dist-tclsRHCk.js → dist-CGOb--t-.js} +177 -3
  9. package/dist/{model-catalogs-Y1WJrGyS.js → model-catalogs-DHV48cdY.js} +1 -1
  10. package/dist/{model-catalogs-BxQBJBt4.mjs → model-catalogs-DNL4ydAg.mjs} +1 -1
  11. package/dist/motion-wasm/index.js +1 -1
  12. package/dist/motion-wasm/index.mjs +1 -1
  13. package/dist/{node-D2D0N7_h.mjs → node-C8bbmV3c.mjs} +1 -1
  14. package/dist/{node-BYrYuZdh.js → node-UBMRK8SK.js} +1 -1
  15. package/dist/pipeline-runner/index.js +3 -3
  16. package/dist/pipeline-runner/index.mjs +3 -3
  17. package/dist/{process-memory-eM4qLFdC.js → process-memory-1BwIq2Ks.js} +1 -1
  18. package/dist/{process-memory-BR1e6q_Q.mjs → process-memory-BHG2uCeq.mjs} +1 -1
  19. package/dist/recorder/index.js +3 -3
  20. package/dist/recorder/index.mjs +3 -3
  21. package/dist/{segment-demux-js-C5IOs4lZ.mjs → segment-demux-js-BhnT__dA.mjs} +1 -1
  22. package/dist/{segment-demux-js-B9EqRfBi.js → segment-demux-js-PkDP-xQg.js} +1 -1
  23. package/dist/stream-broker/_stub.js +2 -2
  24. package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-C4Cp_OAY.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-vdmrukBk.mjs} +2 -2
  25. package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CICWhpXS.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-ScPS8ZWM.mjs} +1 -1
  26. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Cq5NPjBX.mjs +26 -0
  27. package/dist/stream-broker/demux-worker-child.js +1 -1
  28. package/dist/stream-broker/demux-worker-child.mjs +1 -1
  29. package/dist/stream-broker/{hostInit-CZ_HBwki.mjs → hostInit-D_DBY5wu.mjs} +2 -2
  30. package/dist/stream-broker/index.js +91 -24
  31. package/dist/stream-broker/index.mjs +91 -24
  32. package/dist/stream-broker/remoteEntry.js +1 -1
  33. package/package.json +1 -1
  34. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-7VuNrr9l.mjs +0 -26
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-tclsRHCk.js");
7
- const require_model_catalogs = require("../model-catalogs-Y1WJrGyS.js");
8
- const require_process_memory = require("../process-memory-eM4qLFdC.js");
6
+ const require_dist = require("../dist-CGOb--t-.js");
7
+ const require_model_catalogs = require("../model-catalogs-DHV48cdY.js");
8
+ const require_process_memory = require("../process-memory-1BwIq2Ks.js");
9
9
  let node_fs = require("node:fs");
10
10
  node_fs = require_chunk.__toESM(node_fs);
11
11
  let node_path = require("node:path");
@@ -1,7 +1,7 @@
1
1
  import { n as __require } from "../chunk-DnnnRqeS.mjs";
2
- import { An as BaseAddon, F as PoolMemoryWatchdog, Fn as audioChunkBytesPerSample, Ft as mapAudioLabelToMacro, Kn as nodePin, On as errMsg, Q as audioAnalyzerCapability, Vn as hydrateSchema, Z as audioAnalysisCapability, cr as EventCategory, h as DEFAULT_AUDIO_ANALYZER_CONFIG, on as resolvePoolMemoryPolicy, r as AUDIO_BACKEND_CHOICES, zn as expandAudioChunkToF32le } from "../dist-D629dz5x.mjs";
3
- import { n as AUDIO_CLASSIFIER_MODELS } from "../model-catalogs-BxQBJBt4.mjs";
4
- import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BR1e6q_Q.mjs";
2
+ import { An as BaseAddon, F as PoolMemoryWatchdog, Fn as audioChunkBytesPerSample, Ft as mapAudioLabelToMacro, Kn as nodePin, On as errMsg, Q as audioAnalyzerCapability, Vn as hydrateSchema, Z as audioAnalysisCapability, cr as EventCategory, h as DEFAULT_AUDIO_ANALYZER_CONFIG, on as resolvePoolMemoryPolicy, r as AUDIO_BACKEND_CHOICES, zn as expandAudioChunkToF32le } from "../dist-BX9VTm12.mjs";
3
+ import { n as AUDIO_CLASSIFIER_MODELS } from "../model-catalogs-DNL4ydAg.mjs";
4
+ import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BHG2uCeq.mjs";
5
5
  import * as fs from "node:fs";
6
6
  import * as path$1 from "node:path";
7
7
  import { ensureModel } from "@camstack/system/addon-utils";
@@ -1,5 +1,5 @@
1
- import { $ as audioKindId, b as DEVICE_BACKEND_TO_FORMAT, dn as stepModelRunsOnFormat, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, k as LABEL_SUPPLY_VOCABULARIES, kt as inferModelProvider, p as COCO_TO_MACRO } from "./dist-D629dz5x.mjs";
2
- import { a as FACE_DETECTION_MODELS, c as OBJECT_DETECTION_MODELS, d as PLATE_OCR_MODELS, f as SEGMENTATION_REFINER_MODELS, i as CLIP_EMBEDDING_MODELS, l as PACKAGE_DETECTION_MODELS, n as AUDIO_CLASSIFIER_MODELS, o as FACE_EMBEDDING_MODELS, p as VEHICLE_CLASSIFIER_MODELS, r as BIRD_CLASSIFIER_MODELS, s as INSTANCE_SEGMENTATION_MODELS, t as ANIMAL_CLASSIFIER_MODELS, u as PLATE_DETECTION_MODELS } from "./model-catalogs-BxQBJBt4.mjs";
1
+ import { $ as audioKindId, b as DEVICE_BACKEND_TO_FORMAT, dn as stepModelRunsOnFormat, f as COCO_80_LABELS, i as AUDIO_MACRO_LABELS, k as LABEL_SUPPLY_VOCABULARIES, kt as inferModelProvider, p as COCO_TO_MACRO } from "./dist-BX9VTm12.mjs";
2
+ import { a as FACE_DETECTION_MODELS, c as OBJECT_DETECTION_MODELS, d as PLATE_OCR_MODELS, f as SEGMENTATION_REFINER_MODELS, i as CLIP_EMBEDDING_MODELS, l as PACKAGE_DETECTION_MODELS, n as AUDIO_CLASSIFIER_MODELS, o as FACE_EMBEDDING_MODELS, p as VEHICLE_CLASSIFIER_MODELS, r as BIRD_CLASSIFIER_MODELS, s as INSTANCE_SEGMENTATION_MODELS, t as ANIMAL_CLASSIFIER_MODELS, u as PLATE_DETECTION_MODELS } from "./model-catalogs-DNL4ydAg.mjs";
3
3
  import { t as isWorkerReply } from "./worker-protocol-D_NzPcnh.mjs";
4
4
  import { randomUUID } from "node:crypto";
5
5
  //#region src/detection-pipeline/registry/effective-confidence.ts
@@ -1,5 +1,5 @@
1
- const require_dist = require("./dist-tclsRHCk.js");
2
- const require_model_catalogs = require("./model-catalogs-Y1WJrGyS.js");
1
+ const require_dist = require("./dist-CGOb--t-.js");
2
+ const require_model_catalogs = require("./model-catalogs-DHV48cdY.js");
3
3
  const require_worker_protocol = require("./worker-protocol-C-G8qmye.js");
4
4
  let node_crypto = require("node:crypto");
5
5
  //#region src/detection-pipeline/registry/effective-confidence.ts
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../chunk-emK7D4bc.js");
6
- const require_dist = require("../dist-tclsRHCk.js");
7
- const require_node = require("../node-BYrYuZdh.js");
8
- const require_custom_model_catalog = require("../custom-model-catalog-CL9Tcn2Y.js");
6
+ const require_dist = require("../dist-CGOb--t-.js");
7
+ const require_node = require("../node-UBMRK8SK.js");
8
+ const require_custom_model_catalog = require("../custom-model-catalog-nx2TXAGS.js");
9
9
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
10
- const require_process_memory = require("../process-memory-eM4qLFdC.js");
10
+ const require_process_memory = require("../process-memory-1BwIq2Ks.js");
11
11
  let node_os = require("node:os");
12
12
  node_os = require_chunk.__toESM(node_os);
13
13
  let node_fs = require("node:fs");
@@ -1,9 +1,9 @@
1
1
  import { n as __require } from "../chunk-DnnnRqeS.mjs";
2
- import { An as BaseAddon, Bn as hfModelUrl, F as PoolMemoryWatchdog, Gt as pickClusterStepSettings, In as createEvent, Jt as pipelineExecutorCapability, Kn as nodePin, Nt as loadContributionCapability, O as LABEL_SUPPLY_MACRO, On as errMsg$1, Ut as overlayClusterStepSettings, Vn as hydrateSchema, Vt as modelBindingKey, X as applyModelBoundSettings, Yn as sleep, Zn as array, bt as evaluateZoneRules, cr as EventCategory, d as CLUSTER_MODEL_SCOPED_STEPS, dn as stepModelRunsOnFormat, dt as defaultDeviceFor$1, g as DEFAULT_CLUSTER_STEP_SETTINGS, gn as supportedRuntimes$1, gt as detectionPipelineCapability, jt as linkedLabelStepId, ln as rootSuppliesOf, n as APPLE_SA_TO_MACRO, on as resolvePoolMemoryPolicy, or as string, ot as collectModelBoundKeys, q as YAMNET_TO_MACRO, rr as object, sr as union, st as containingParentIndex, tn as resolveClusterStepModelId, un as runtimeDevices$1, yt as enumerateInferenceDevices } from "../dist-D629dz5x.mjs";
3
- import { s as readProcessCost } from "../node-D2D0N7_h.mjs";
4
- import { C as resolveModelDefaultConfidence, S as landmarkPrecisionVerdict, _ as ALL_STEPS, b as getStepDefinition, f as localFrameRegistry, g as ALL_PIPELINE_STEPS, l as resolveDefaultDetectionModel, n as mergeCustomModels, o as deviceKeyOf, r as buildSubtreeCanRun, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, v as getDefaultModelForFormat, x as resolveModelForFormat, y as getStep } from "../custom-model-catalog-C77XAnt9.mjs";
2
+ import { An as BaseAddon, Bn as hfModelUrl, F as PoolMemoryWatchdog, Gt as pickClusterStepSettings, In as createEvent, Jt as pipelineExecutorCapability, Kn as nodePin, Nt as loadContributionCapability, O as LABEL_SUPPLY_MACRO, On as errMsg$1, Ut as overlayClusterStepSettings, Vn as hydrateSchema, Vt as modelBindingKey, X as applyModelBoundSettings, Yn as sleep, Zn as array, bt as evaluateZoneRules, cr as EventCategory, d as CLUSTER_MODEL_SCOPED_STEPS, dn as stepModelRunsOnFormat, dt as defaultDeviceFor$1, g as DEFAULT_CLUSTER_STEP_SETTINGS, gn as supportedRuntimes$1, gt as detectionPipelineCapability, jt as linkedLabelStepId, ln as rootSuppliesOf, n as APPLE_SA_TO_MACRO, on as resolvePoolMemoryPolicy, or as string, ot as collectModelBoundKeys, q as YAMNET_TO_MACRO, rr as object, sr as union, st as containingParentIndex, tn as resolveClusterStepModelId, un as runtimeDevices$1, yt as enumerateInferenceDevices } from "../dist-BX9VTm12.mjs";
3
+ import { s as readProcessCost } from "../node-C8bbmV3c.mjs";
4
+ import { C as resolveModelDefaultConfidence, S as landmarkPrecisionVerdict, _ as ALL_STEPS, b as getStepDefinition, f as localFrameRegistry, g as ALL_PIPELINE_STEPS, l as resolveDefaultDetectionModel, n as mergeCustomModels, o as deviceKeyOf, r as buildSubtreeCanRun, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, v as getDefaultModelForFormat, x as resolveModelForFormat, y as getStep } from "../custom-model-catalog-DHFPSu0E.mjs";
5
5
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
6
- import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BR1e6q_Q.mjs";
6
+ import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BHG2uCeq.mjs";
7
7
  import * as os$1 from "node:os";
8
8
  import * as fs from "node:fs";
9
9
  import * as path$1 from "node:path";
@@ -5387,7 +5387,7 @@ var ZodIssueCode = {
5387
5387
  var ZodFirstPartyTypeKind;
5388
5388
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5389
5389
  //#endregion
5390
- //#region ../types/dist/sleep-B_3F_YwS.mjs
5390
+ //#region ../types/dist/sleep-BBF1iXUi.mjs
5391
5391
  /**
5392
5392
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5393
5393
  * window to float samples (D455).
@@ -11616,6 +11616,15 @@ discriminatedUnion("type", [
11616
11616
  message: string()
11617
11617
  })
11618
11618
  ]);
11619
+ /** Every status, in the order a summary lists them. */
11620
+ var RETRAIN_REVIEW_STATUSES = [
11621
+ "unchanged",
11622
+ "adjusted",
11623
+ "reclassified",
11624
+ "added",
11625
+ "removed",
11626
+ "model-error"
11627
+ ];
11619
11628
  /**
11620
11629
  * What the gate decided about a birth, from the CALLER's point of view.
11621
11630
  *
@@ -18152,6 +18161,38 @@ var BulkRecordSchema = object({
18152
18161
  data: record(string(), unknown())
18153
18162
  });
18154
18163
  /**
18164
+ * One write inside a {@link settingsStoreCapability.methods.transact} call.
18165
+ * Only the three that a "replace this set, bump that revision" write needs.
18166
+ */
18167
+ var TransactOpSchema = discriminatedUnion("op", [
18168
+ object({
18169
+ op: literal("deleteWhere"),
18170
+ collection: string(),
18171
+ filter: MutationFilterSchema
18172
+ }),
18173
+ object({
18174
+ op: literal("insertMany"),
18175
+ collection: string(),
18176
+ records: array(BulkRecordSchema).readonly()
18177
+ }),
18178
+ object({
18179
+ op: literal("update"),
18180
+ collection: string(),
18181
+ id: string(),
18182
+ data: record(string(), unknown())
18183
+ })
18184
+ ]);
18185
+ /**
18186
+ * The precondition of a transaction: the row `key` of `collection` must hold
18187
+ * `equals` in `column`, read INSIDE the transaction.
18188
+ */
18189
+ var TransactGuardSchema = object({
18190
+ collection: string(),
18191
+ key: string(),
18192
+ column: string(),
18193
+ equals: unknown()
18194
+ });
18195
+ /**
18155
18196
  * Column declaration for a structured (SQL-backed) collection.
18156
18197
  *
18157
18198
  * Logical types — the backend translates each to the matching SQLite
@@ -18242,6 +18283,16 @@ id: union([string(), number()]) }), {
18242
18283
  }), object({ inserted: number().int() }), {
18243
18284
  kind: "mutation",
18244
18285
  auth: "admin"
18286
+ }), method(object({
18287
+ namespace: string().optional(),
18288
+ guard: TransactGuardSchema.optional(),
18289
+ ops: array(TransactOpSchema).readonly()
18290
+ }), object({
18291
+ applied: boolean(),
18292
+ current: unknown().optional()
18293
+ }), {
18294
+ kind: "mutation",
18295
+ auth: "admin"
18245
18296
  }), method(object({
18246
18297
  namespace: string().optional(),
18247
18298
  collection: string(),
@@ -18390,6 +18441,16 @@ id: union([string(), number()]) }), {
18390
18441
  }), object({ inserted: number().int() }), {
18391
18442
  kind: "mutation",
18392
18443
  auth: "admin"
18444
+ }), method(object({
18445
+ namespace: string().optional(),
18446
+ guard: TransactGuardSchema.optional(),
18447
+ ops: array(TransactOpSchema).readonly()
18448
+ }), object({
18449
+ applied: boolean(),
18450
+ current: unknown().optional()
18451
+ }), {
18452
+ kind: "mutation",
18453
+ auth: "admin"
18393
18454
  }), method(object({
18394
18455
  namespace: string().optional(),
18395
18456
  collection: string(),
@@ -27277,6 +27338,58 @@ var RetrainBboxSchema = object({
27277
27338
  h: number()
27278
27339
  });
27279
27340
  /**
27341
+ * What a box LOOKED LIKE when it was offered, snapshotted at the moment the
27342
+ * operator accepted it. The saved row keeps only the final rectangle; this is
27343
+ * the other half of the pair, and the pair is what says whether the operator
27344
+ * accepted, nudged, relabelled or replaced a proposal (`retrain-review.ts`).
27345
+ *
27346
+ * `ref` names the proposal inside its frame: `pipeline:<trackId>` for a box the
27347
+ * live pipeline drew, `assist:<n>` for the n-th box of a detector or LLM run,
27348
+ * and anything unique for an operator-drawn box (`operator:<n>`). Re-derived
27349
+ * pipeline boxes carry the same ref every time, which is what lets a dismissal
27350
+ * stay dismissed.
27351
+ */
27352
+ var RetrainOriginSchema = object({
27353
+ source: RetrainAnnotationSourceSchema,
27354
+ ref: string().min(1),
27355
+ bbox: RetrainBboxSchema,
27356
+ macroClass: RetrainMacroClassSchema,
27357
+ label: string().optional(),
27358
+ score: number().optional(),
27359
+ modelId: string().optional()
27360
+ });
27361
+ /**
27362
+ * A proposal the operator deleted. Durable on the frame, so a deleted pipeline
27363
+ * box does not come back as a draft every time the frame is reopened, and so
27364
+ * the deletion itself is a recorded fact rather than an absence.
27365
+ */
27366
+ var RetrainDismissedSchema = object({
27367
+ ref: string().min(1),
27368
+ snapshot: RetrainOriginSchema
27369
+ });
27370
+ /** What the operator did with a proposal (see `retrain-review.ts`). */
27371
+ var RetrainReviewStatusSchema = _enum(RETRAIN_REVIEW_STATUSES);
27372
+ var RetrainFrameReviewSchema = object({
27373
+ boxes: array(object({
27374
+ ref: string(),
27375
+ savedId: string().optional(),
27376
+ status: RetrainReviewStatusSchema,
27377
+ /** The baseline was re-derived, not snapshotted (a pre-origin row). */
27378
+ approximate: boolean(),
27379
+ origin: RetrainOriginSchema.optional(),
27380
+ /** The class / label the box carries NOW (a removed box: its origin's). Absent on an older hub. */
27381
+ macroClass: RetrainMacroClassSchema.optional(),
27382
+ label: string().optional(),
27383
+ iou: number().optional()
27384
+ })).readonly(),
27385
+ summary: object({
27386
+ counts: record(RetrainReviewStatusSchema, number().int()),
27387
+ total: number().int(),
27388
+ changed: number().int(),
27389
+ approximate: boolean()
27390
+ })
27391
+ });
27392
+ /**
27280
27393
  * One annotated subject.
27281
27394
  *
27282
27395
  * `bbox` is normalised against the full frame, ALWAYS. The per-model shapes
@@ -27300,6 +27413,9 @@ var RetrainAnnotationSchema = object({
27300
27413
  /** Which model proposed this box — or, on a `model_error`, drew the phantom. */
27301
27414
  assistModelId: string().optional(),
27302
27415
  assistScore: number().optional(),
27416
+ /** The proposal this box started from, snapshotted at accept time. `null` on
27417
+ * a row saved before origins existed; absent on a draft nobody snapshotted. */
27418
+ origin: RetrainOriginSchema.nullable().optional(),
27303
27419
  exportedInBatch: string().optional(),
27304
27420
  createdAt: number()
27305
27421
  });
@@ -27392,7 +27508,19 @@ var RetrainFrameSchema = object({
27392
27508
  * empty when nothing the track store holds can be placed on it. */
27393
27509
  pipelineBoxes: array(RetrainPipelineBoxSchema).readonly().optional(),
27394
27510
  /** The named collections this frame belongs to. Present on list answers. */
27395
- collectionIds: array(string()).readonly().optional()
27511
+ collectionIds: array(string()).readonly().optional(),
27512
+ /** Bumped by every annotation save. A save that names a stale
27513
+ * `expectedRevision` is refused, so two surfaces cannot overwrite each other. */
27514
+ revision: number().int().optional(),
27515
+ /** Proposals the operator deleted — never re-seeded as drafts. */
27516
+ dismissed: array(RetrainDismissedSchema).readonly().optional(),
27517
+ /** What the operator did with the proposals, computed by the server. */
27518
+ review: RetrainFrameReviewSchema.optional(),
27519
+ /** The frame's pixels over the admin data plane (full size). Fetch with the
27520
+ * admin bearer token; relative to the hub root. */
27521
+ imageUrl: string().optional(),
27522
+ /** The same, as a ~480 px thumbnail for grids. */
27523
+ thumbnailUrl: string().optional()
27396
27524
  });
27397
27525
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
27398
27526
  var RetrainCopyRefusalSchema = _enum([
@@ -28471,10 +28599,33 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
28471
28599
  /** The frame's track, when it has one — checked against the frame. */
28472
28600
  trackId: string().optional(),
28473
28601
  frameId: string(),
28474
- annotations: array(RetrainAnnotationDraftSchema)
28602
+ annotations: array(RetrainAnnotationDraftSchema),
28603
+ /** The frame's `revision` the caller saw. A different current revision
28604
+ * refuses the save with a `retrain-revision-conflict` error
28605
+ * (`parseRetrainRevisionConflict`). Absent ⇒ last write wins. */
28606
+ expectedRevision: number().int().optional(),
28607
+ /** The proposals the operator deleted. Absent ⇒ keep the frame's
28608
+ * current set; present ⇒ replace it (an empty array un-dismisses). */
28609
+ dismissed: array(RetrainDismissedSchema).optional()
28475
28610
  }), array(RetrainAnnotationSchema).readonly(), {
28476
28611
  kind: "mutation",
28477
28612
  auth: "admin"
28613
+ }), method(object({
28614
+ deviceId: number(),
28615
+ trackId: string().optional(),
28616
+ frameId: string(),
28617
+ expectedRevision: number().int().optional(),
28618
+ origins: array(object({
28619
+ annotationId: string(),
28620
+ origin: RetrainOriginSchema
28621
+ })).min(1).max(500)
28622
+ }), object({
28623
+ updated: number().int(),
28624
+ skipped: number().int(),
28625
+ revision: number().int()
28626
+ }), {
28627
+ kind: "mutation",
28628
+ auth: "admin"
28478
28629
  }), method(object({
28479
28630
  deviceId: number(),
28480
28631
  trackId: string()
@@ -46237,6 +46388,12 @@ Object.freeze({
46237
46388
  addonId: null,
46238
46389
  access: "create"
46239
46390
  },
46391
+ "dataStoreProvider.transact": {
46392
+ capName: "data-store-provider",
46393
+ capScope: "system",
46394
+ addonId: null,
46395
+ access: "create"
46396
+ },
46240
46397
  "dataStoreProvider.update": {
46241
46398
  capName: "data-store-provider",
46242
46399
  capScope: "system",
@@ -49081,6 +49238,12 @@ Object.freeze({
49081
49238
  addonId: null,
49082
49239
  access: "create"
49083
49240
  },
49241
+ "pipelineAnalytics.backfillRetrainOrigins": {
49242
+ capName: "pipeline-analytics",
49243
+ capScope: "device",
49244
+ addonId: null,
49245
+ access: "create"
49246
+ },
49084
49247
  "pipelineAnalytics.cancelRelocateMedia": {
49085
49248
  capName: "pipeline-analytics",
49086
49249
  capScope: "device",
@@ -51073,6 +51236,12 @@ Object.freeze({
51073
51236
  addonId: null,
51074
51237
  access: "create"
51075
51238
  },
51239
+ "settingsStore.transact": {
51240
+ capName: "settings-store",
51241
+ capScope: "system",
51242
+ addonId: null,
51243
+ access: "create"
51244
+ },
51076
51245
  "settingsStore.update": {
51077
51246
  capName: "settings-store",
51078
51247
  capScope: "system",
@@ -55399,6 +55568,11 @@ Object.freeze({
55399
55568
  form: "single",
55400
55569
  optional: false
55401
55570
  }],
55571
+ "pipelineAnalytics.backfillRetrainOrigins": [{
55572
+ name: "deviceId",
55573
+ form: "single",
55574
+ optional: false
55575
+ }],
55402
55576
  "pipelineAnalytics.clearTrackRelation": [{
55403
55577
  name: "deviceId",
55404
55578
  form: "single",
@@ -5387,7 +5387,7 @@ var ZodIssueCode = {
5387
5387
  var ZodFirstPartyTypeKind;
5388
5388
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5389
5389
  //#endregion
5390
- //#region ../types/dist/sleep-B_3F_YwS.mjs
5390
+ //#region ../types/dist/sleep-BBF1iXUi.mjs
5391
5391
  /**
5392
5392
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5393
5393
  * window to float samples (D455).
@@ -11616,6 +11616,15 @@ discriminatedUnion("type", [
11616
11616
  message: string()
11617
11617
  })
11618
11618
  ]);
11619
+ /** Every status, in the order a summary lists them. */
11620
+ var RETRAIN_REVIEW_STATUSES = [
11621
+ "unchanged",
11622
+ "adjusted",
11623
+ "reclassified",
11624
+ "added",
11625
+ "removed",
11626
+ "model-error"
11627
+ ];
11619
11628
  /**
11620
11629
  * What the gate decided about a birth, from the CALLER's point of view.
11621
11630
  *
@@ -18152,6 +18161,38 @@ var BulkRecordSchema = object({
18152
18161
  data: record(string(), unknown())
18153
18162
  });
18154
18163
  /**
18164
+ * One write inside a {@link settingsStoreCapability.methods.transact} call.
18165
+ * Only the three that a "replace this set, bump that revision" write needs.
18166
+ */
18167
+ var TransactOpSchema = discriminatedUnion("op", [
18168
+ object({
18169
+ op: literal("deleteWhere"),
18170
+ collection: string(),
18171
+ filter: MutationFilterSchema
18172
+ }),
18173
+ object({
18174
+ op: literal("insertMany"),
18175
+ collection: string(),
18176
+ records: array(BulkRecordSchema).readonly()
18177
+ }),
18178
+ object({
18179
+ op: literal("update"),
18180
+ collection: string(),
18181
+ id: string(),
18182
+ data: record(string(), unknown())
18183
+ })
18184
+ ]);
18185
+ /**
18186
+ * The precondition of a transaction: the row `key` of `collection` must hold
18187
+ * `equals` in `column`, read INSIDE the transaction.
18188
+ */
18189
+ var TransactGuardSchema = object({
18190
+ collection: string(),
18191
+ key: string(),
18192
+ column: string(),
18193
+ equals: unknown()
18194
+ });
18195
+ /**
18155
18196
  * Column declaration for a structured (SQL-backed) collection.
18156
18197
  *
18157
18198
  * Logical types — the backend translates each to the matching SQLite
@@ -18242,6 +18283,16 @@ id: union([string(), number()]) }), {
18242
18283
  }), object({ inserted: number().int() }), {
18243
18284
  kind: "mutation",
18244
18285
  auth: "admin"
18286
+ }), method(object({
18287
+ namespace: string().optional(),
18288
+ guard: TransactGuardSchema.optional(),
18289
+ ops: array(TransactOpSchema).readonly()
18290
+ }), object({
18291
+ applied: boolean(),
18292
+ current: unknown().optional()
18293
+ }), {
18294
+ kind: "mutation",
18295
+ auth: "admin"
18245
18296
  }), method(object({
18246
18297
  namespace: string().optional(),
18247
18298
  collection: string(),
@@ -18390,6 +18441,16 @@ id: union([string(), number()]) }), {
18390
18441
  }), object({ inserted: number().int() }), {
18391
18442
  kind: "mutation",
18392
18443
  auth: "admin"
18444
+ }), method(object({
18445
+ namespace: string().optional(),
18446
+ guard: TransactGuardSchema.optional(),
18447
+ ops: array(TransactOpSchema).readonly()
18448
+ }), object({
18449
+ applied: boolean(),
18450
+ current: unknown().optional()
18451
+ }), {
18452
+ kind: "mutation",
18453
+ auth: "admin"
18393
18454
  }), method(object({
18394
18455
  namespace: string().optional(),
18395
18456
  collection: string(),
@@ -27277,6 +27338,58 @@ var RetrainBboxSchema = object({
27277
27338
  h: number()
27278
27339
  });
27279
27340
  /**
27341
+ * What a box LOOKED LIKE when it was offered, snapshotted at the moment the
27342
+ * operator accepted it. The saved row keeps only the final rectangle; this is
27343
+ * the other half of the pair, and the pair is what says whether the operator
27344
+ * accepted, nudged, relabelled or replaced a proposal (`retrain-review.ts`).
27345
+ *
27346
+ * `ref` names the proposal inside its frame: `pipeline:<trackId>` for a box the
27347
+ * live pipeline drew, `assist:<n>` for the n-th box of a detector or LLM run,
27348
+ * and anything unique for an operator-drawn box (`operator:<n>`). Re-derived
27349
+ * pipeline boxes carry the same ref every time, which is what lets a dismissal
27350
+ * stay dismissed.
27351
+ */
27352
+ var RetrainOriginSchema = object({
27353
+ source: RetrainAnnotationSourceSchema,
27354
+ ref: string().min(1),
27355
+ bbox: RetrainBboxSchema,
27356
+ macroClass: RetrainMacroClassSchema,
27357
+ label: string().optional(),
27358
+ score: number().optional(),
27359
+ modelId: string().optional()
27360
+ });
27361
+ /**
27362
+ * A proposal the operator deleted. Durable on the frame, so a deleted pipeline
27363
+ * box does not come back as a draft every time the frame is reopened, and so
27364
+ * the deletion itself is a recorded fact rather than an absence.
27365
+ */
27366
+ var RetrainDismissedSchema = object({
27367
+ ref: string().min(1),
27368
+ snapshot: RetrainOriginSchema
27369
+ });
27370
+ /** What the operator did with a proposal (see `retrain-review.ts`). */
27371
+ var RetrainReviewStatusSchema = _enum(RETRAIN_REVIEW_STATUSES);
27372
+ var RetrainFrameReviewSchema = object({
27373
+ boxes: array(object({
27374
+ ref: string(),
27375
+ savedId: string().optional(),
27376
+ status: RetrainReviewStatusSchema,
27377
+ /** The baseline was re-derived, not snapshotted (a pre-origin row). */
27378
+ approximate: boolean(),
27379
+ origin: RetrainOriginSchema.optional(),
27380
+ /** The class / label the box carries NOW (a removed box: its origin's). Absent on an older hub. */
27381
+ macroClass: RetrainMacroClassSchema.optional(),
27382
+ label: string().optional(),
27383
+ iou: number().optional()
27384
+ })).readonly(),
27385
+ summary: object({
27386
+ counts: record(RetrainReviewStatusSchema, number().int()),
27387
+ total: number().int(),
27388
+ changed: number().int(),
27389
+ approximate: boolean()
27390
+ })
27391
+ });
27392
+ /**
27280
27393
  * One annotated subject.
27281
27394
  *
27282
27395
  * `bbox` is normalised against the full frame, ALWAYS. The per-model shapes
@@ -27300,6 +27413,9 @@ var RetrainAnnotationSchema = object({
27300
27413
  /** Which model proposed this box — or, on a `model_error`, drew the phantom. */
27301
27414
  assistModelId: string().optional(),
27302
27415
  assistScore: number().optional(),
27416
+ /** The proposal this box started from, snapshotted at accept time. `null` on
27417
+ * a row saved before origins existed; absent on a draft nobody snapshotted. */
27418
+ origin: RetrainOriginSchema.nullable().optional(),
27303
27419
  exportedInBatch: string().optional(),
27304
27420
  createdAt: number()
27305
27421
  });
@@ -27392,7 +27508,19 @@ var RetrainFrameSchema = object({
27392
27508
  * empty when nothing the track store holds can be placed on it. */
27393
27509
  pipelineBoxes: array(RetrainPipelineBoxSchema).readonly().optional(),
27394
27510
  /** The named collections this frame belongs to. Present on list answers. */
27395
- collectionIds: array(string()).readonly().optional()
27511
+ collectionIds: array(string()).readonly().optional(),
27512
+ /** Bumped by every annotation save. A save that names a stale
27513
+ * `expectedRevision` is refused, so two surfaces cannot overwrite each other. */
27514
+ revision: number().int().optional(),
27515
+ /** Proposals the operator deleted — never re-seeded as drafts. */
27516
+ dismissed: array(RetrainDismissedSchema).readonly().optional(),
27517
+ /** What the operator did with the proposals, computed by the server. */
27518
+ review: RetrainFrameReviewSchema.optional(),
27519
+ /** The frame's pixels over the admin data plane (full size). Fetch with the
27520
+ * admin bearer token; relative to the hub root. */
27521
+ imageUrl: string().optional(),
27522
+ /** The same, as a ~480 px thumbnail for grids. */
27523
+ thumbnailUrl: string().optional()
27396
27524
  });
27397
27525
  /** Why a copy-on-select could not be honoured — named, never a silent skip. */
27398
27526
  var RetrainCopyRefusalSchema = _enum([
@@ -28471,10 +28599,33 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
28471
28599
  /** The frame's track, when it has one — checked against the frame. */
28472
28600
  trackId: string().optional(),
28473
28601
  frameId: string(),
28474
- annotations: array(RetrainAnnotationDraftSchema)
28602
+ annotations: array(RetrainAnnotationDraftSchema),
28603
+ /** The frame's `revision` the caller saw. A different current revision
28604
+ * refuses the save with a `retrain-revision-conflict` error
28605
+ * (`parseRetrainRevisionConflict`). Absent ⇒ last write wins. */
28606
+ expectedRevision: number().int().optional(),
28607
+ /** The proposals the operator deleted. Absent ⇒ keep the frame's
28608
+ * current set; present ⇒ replace it (an empty array un-dismisses). */
28609
+ dismissed: array(RetrainDismissedSchema).optional()
28475
28610
  }), array(RetrainAnnotationSchema).readonly(), {
28476
28611
  kind: "mutation",
28477
28612
  auth: "admin"
28613
+ }), method(object({
28614
+ deviceId: number(),
28615
+ trackId: string().optional(),
28616
+ frameId: string(),
28617
+ expectedRevision: number().int().optional(),
28618
+ origins: array(object({
28619
+ annotationId: string(),
28620
+ origin: RetrainOriginSchema
28621
+ })).min(1).max(500)
28622
+ }), object({
28623
+ updated: number().int(),
28624
+ skipped: number().int(),
28625
+ revision: number().int()
28626
+ }), {
28627
+ kind: "mutation",
28628
+ auth: "admin"
28478
28629
  }), method(object({
28479
28630
  deviceId: number(),
28480
28631
  trackId: string()
@@ -46237,6 +46388,12 @@ Object.freeze({
46237
46388
  addonId: null,
46238
46389
  access: "create"
46239
46390
  },
46391
+ "dataStoreProvider.transact": {
46392
+ capName: "data-store-provider",
46393
+ capScope: "system",
46394
+ addonId: null,
46395
+ access: "create"
46396
+ },
46240
46397
  "dataStoreProvider.update": {
46241
46398
  capName: "data-store-provider",
46242
46399
  capScope: "system",
@@ -49081,6 +49238,12 @@ Object.freeze({
49081
49238
  addonId: null,
49082
49239
  access: "create"
49083
49240
  },
49241
+ "pipelineAnalytics.backfillRetrainOrigins": {
49242
+ capName: "pipeline-analytics",
49243
+ capScope: "device",
49244
+ addonId: null,
49245
+ access: "create"
49246
+ },
49084
49247
  "pipelineAnalytics.cancelRelocateMedia": {
49085
49248
  capName: "pipeline-analytics",
49086
49249
  capScope: "device",
@@ -51073,6 +51236,12 @@ Object.freeze({
51073
51236
  addonId: null,
51074
51237
  access: "create"
51075
51238
  },
51239
+ "settingsStore.transact": {
51240
+ capName: "settings-store",
51241
+ capScope: "system",
51242
+ addonId: null,
51243
+ access: "create"
51244
+ },
51076
51245
  "settingsStore.update": {
51077
51246
  capName: "settings-store",
51078
51247
  capScope: "system",
@@ -55399,6 +55568,11 @@ Object.freeze({
55399
55568
  form: "single",
55400
55569
  optional: false
55401
55570
  }],
55571
+ "pipelineAnalytics.backfillRetrainOrigins": [{
55572
+ name: "deviceId",
55573
+ form: "single",
55574
+ optional: false
55575
+ }],
55402
55576
  "pipelineAnalytics.clearTrackRelation": [{
55403
55577
  name: "deviceId",
55404
55578
  form: "single",
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-tclsRHCk.js");
1
+ const require_dist = require("./dist-CGOb--t-.js");
2
2
  //#region src/detection-pipeline/registry/model-licenses.ts
3
3
  var COCO_DATA = {
4
4
  name: "COCO 2017",
@@ -1,4 +1,4 @@
1
- import { Bn as hfModelUrl } from "./dist-D629dz5x.mjs";
1
+ import { Bn as hfModelUrl } from "./dist-BX9VTm12.mjs";
2
2
  //#region src/detection-pipeline/registry/model-licenses.ts
3
3
  var COCO_DATA = {
4
4
  name: "COCO 2017",
@@ -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-tclsRHCk.js");
5
+ const require_dist = require("../dist-CGOb--t-.js");
6
6
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
7
7
  let node_fs = require("node:fs");
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { An as BaseAddon, Dn as DeviceType, Ht as motionDetectionCapability, Vn as hydrateSchema, bt as evaluateZoneRules } from "../dist-D629dz5x.mjs";
1
+ import { An as BaseAddon, Dn as DeviceType, Ht as motionDetectionCapability, Vn as hydrateSchema, bt as evaluateZoneRules } from "../dist-BX9VTm12.mjs";
2
2
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { join } from "node:path";
@@ -1,4 +1,4 @@
1
- import { On as errMsg, Sn as buildFfmpegArgs, Tn as isSoftwareDecode, xn as Fmp4BoxSplitter } from "./dist-D629dz5x.mjs";
1
+ import { On as errMsg, Sn as buildFfmpegArgs, Tn as isSoftwareDecode, xn as Fmp4BoxSplitter } from "./dist-BX9VTm12.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { realpathSync } from "node:fs";
4
4
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-tclsRHCk.js");
2
+ const require_dist = require("./dist-CGOb--t-.js");
3
3
  require("node:os");
4
4
  let node_crypto = require("node:crypto");
5
5
  let node_fs = require("node:fs");