@camstack/addon-pipeline 1.2.606 → 1.2.608

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 (40) 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-C0iqe95s.js → custom-model-catalog-Ci_-yU1S.js} +2 -2
  4. package/dist/{custom-model-catalog-DHRYJ8gg.mjs → custom-model-catalog-D4nyEGYU.mjs} +2 -2
  5. package/dist/detection-pipeline/index.js +8 -8
  6. package/dist/detection-pipeline/index.mjs +8 -8
  7. package/dist/{dist-DfLtNHaL.mjs → dist-0D-dLBnm.mjs} +89 -63
  8. package/dist/{dist-PmCvE63K.js → dist-DkfPNxQw.js} +94 -62
  9. package/dist/{model-catalogs-Bt-V_vgh.mjs → model-catalogs-B4udr4Fp.mjs} +1 -1
  10. package/dist/{model-catalogs-CVq3QMHq.js → model-catalogs-CqlA8ThV.js} +1 -1
  11. package/dist/motion-wasm/index.js +1 -1
  12. package/dist/motion-wasm/index.mjs +1 -1
  13. package/dist/{node-BYIY09HD.mjs → node-CXQrV8Tv.mjs} +1 -1
  14. package/dist/{node-D_-1oz36.js → node-CpUZKfZC.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-DivoZCn9.mjs → process-memory-B5YqxUdg.mjs} +1 -1
  18. package/dist/{process-memory-CZdWXAgA.js → process-memory-BF_zHntD.js} +1 -1
  19. package/dist/recorder/index.js +22 -6
  20. package/dist/recorder/index.mjs +22 -6
  21. package/dist/{segment-demux-js-CyvSyRQL.js → segment-demux-js-D5v0duL_.js} +1 -1
  22. package/dist/{segment-demux-js-COgPamTd.mjs → segment-demux-js-hjnm_n4s.mjs} +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-CaAWIXhV.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CWLQBK5e.mjs} +3 -3
  25. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BatrS9WH.mjs +26 -0
  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-CixUA9FW.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-yUSpE3wl.mjs → hostInit-BmdaGy6X.mjs} +3 -3
  30. package/dist/stream-broker/index.js +3 -3
  31. package/dist/stream-broker/index.mjs +3 -3
  32. package/dist/stream-broker/remoteEntry.js +1 -1
  33. package/package.json +1 -1
  34. package/python/edgetpu-install.sh +98 -0
  35. package/python/edgetpu_device.py +59 -0
  36. package/python/inference_pool.py +18 -5
  37. package/python/requirements-edgetpu.txt +9 -4
  38. package/python/test_edgetpu_device.py +74 -0
  39. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C_vhSCZn.mjs +0 -26
  40. package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DxEZc0T0.mjs +0 -26
@@ -5547,7 +5547,7 @@ var ZodIssueCode = {
5547
5547
  var ZodFirstPartyTypeKind;
5548
5548
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5549
5549
  //#endregion
5550
- //#region ../types/dist/sleep-BSuCCFjf.mjs
5550
+ //#region ../types/dist/sleep-CSuN0thG.mjs
5551
5551
  /**
5552
5552
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5553
5553
  * window to float samples (D455).
@@ -8206,7 +8206,13 @@ var RecordKindDeclarationSchema = object({
8206
8206
  secretPaths: array(string().min(1)).default([]),
8207
8207
  /** The id key of each array that carries a secret (`{ headers: 'name' }`). */
8208
8208
  secretArrayKeys: record(string(), string()).default({}),
8209
- /** The legacy table this kind adopts from; the boot guard reads it (D853: no migration code). */
8209
+ /**
8210
+ * RETIRED (D900): the legacy table a kind adopted from during the records
8211
+ * migration. Nothing declares it any more and nothing reads it; the schema
8212
+ * still ACCEPTS it because the catalog rows the migration wrote carry it
8213
+ * (an orphaned kind is never redeclared) and an addon built before the
8214
+ * removal still sends it. Never set it.
8215
+ */
8210
8216
  adoptsFrom: string().min(1).optional(),
8211
8217
  /** Kinds that must agree through `transact` sit in one file under one family name. */
8212
8218
  transactFamily: string().min(1).optional(),
@@ -8281,7 +8287,6 @@ function defineRecordKinds(specs) {
8281
8287
  maxDataBytes: spec.maxDataBytes,
8282
8288
  secretPaths: [...secretPaths],
8283
8289
  secretArrayKeys: spec.secretArrayKeys === void 0 ? void 0 : { ...spec.secretArrayKeys },
8284
- adoptsFrom: spec.adoptsFrom,
8285
8290
  transactFamily: spec.transactFamily,
8286
8291
  entry: spec.entry === void 0 ? void 0 : {
8287
8292
  title: spec.entry.title,
@@ -19817,11 +19822,12 @@ var DeclareKindResultSchema = object({
19817
19822
  kindId: number().int(),
19818
19823
  state: RecordKindStateSchema,
19819
19824
  createdIndexes: array(string()),
19820
- /** The boot guard: the kind is empty while its legacy table still holds rows. */
19821
- adoptionPending: object({
19822
- legacyTable: string(),
19823
- legacyRows: number().int()
19824
- }).nullable()
19825
+ /**
19826
+ * RETIRED (D900): always `null`. It carried the records-migration boot guard;
19827
+ * it stays on the wire, null, because an addon built before the removal reads
19828
+ * an ABSENT field as "adoption pending" and refuses to start.
19829
+ */
19830
+ adoptionPending: _null()
19825
19831
  });
19826
19832
  /** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
19827
19833
  var SecretRefsList = array(string());
@@ -19994,26 +20000,7 @@ method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: arr
19994
20000
  }), object({ kinds: array(StorageKindSchema) }), { auth: "admin" }), method(RecordQueryInputSchema.extend({
19995
20001
  owner: string().min(1),
19996
20002
  kind: RecordKindNameSchema
19997
- }), RecordQueryResultSchema, { auth: "admin" }), method(object({
19998
- owner: string().min(1),
19999
- kind: RecordKindNameSchema,
20000
- records: array(RecordInputSchema).max(RECORD_BATCH_MAX),
20001
- /** The LAST batch: the copy is complete, the boot guard stops asking. */
20002
- complete: boolean().optional()
20003
- }).refine((input) => input.records.length > 0 || input.complete === true, { message: "records must be non-empty unless complete is true" }), object({ adopted: number().int() }), {
20004
- kind: "mutation",
20005
- auth: "admin"
20006
- }), method(object({
20007
- collection: string().min(1),
20008
- cursor: string().optional(),
20009
- limit: number().int().min(1).max(1e3).optional()
20010
- }), object({
20011
- rows: array(object({
20012
- id: string(),
20013
- data: record(string(), unknown())
20014
- })),
20015
- nextCursor: string().nullable()
20016
- }), { auth: "admin" }), method(object({ collection: string().min(1) }), object({ adopted: boolean() }), { auth: "admin" });
20003
+ }), RecordQueryResultSchema, { auth: "admin" });
20017
20004
  /**
20018
20005
  * record-entries - the ONE admin surface for every list of user-created entries
20019
20006
  * (D881): notification targets, brokers, LLM profiles, anything an addon
@@ -62579,9 +62566,24 @@ var NpuInfoSchema = object({
62579
62566
  name: string().optional(),
62580
62567
  generation: _enum(["xdna1", "xdna2"]).optional()
62581
62568
  });
62569
+ var CoralBusSchema = _enum(["usb", "pci"]);
62582
62570
  var CoralInfoSchema = object({
62583
62571
  type: literal("coral-edgetpu"),
62584
- bus: string().optional()
62572
+ /** Legacy single-bus report (older nodes) — read via `coralUsableUnits`. */
62573
+ bus: string().optional(),
62574
+ /** Legacy USB unit count (older nodes) — read via `coralUsableUnits`. */
62575
+ count: number().int().nonnegative().optional(),
62576
+ /** Usable units per bus — each one is its own `edgetpu:<bus>[:N]` device. */
62577
+ units: array(object({
62578
+ bus: CoralBusSchema,
62579
+ count: number().int().nonnegative()
62580
+ })).readonly().optional(),
62581
+ /** Present-but-unusable units, each with its typed reason (never "absent"). */
62582
+ unavailable: array(object({
62583
+ bus: CoralBusSchema,
62584
+ count: number().int().nonnegative(),
62585
+ reason: _enum(["driver-missing", "device-not-accessible"])
62586
+ })).readonly().optional()
62585
62587
  });
62586
62588
  var HardwareInfoSchema = object({
62587
62589
  platform: HardwarePlatformSchema,
@@ -69123,6 +69125,12 @@ Object.freeze({
69123
69125
  addonId: null,
69124
69126
  access: "view"
69125
69127
  },
69128
+ "deviceHistory.queryMany": {
69129
+ capName: "device-history",
69130
+ capScope: "system",
69131
+ addonId: null,
69132
+ access: "view"
69133
+ },
69126
69134
  "deviceHistory.queryNode": {
69127
69135
  capName: "device-history",
69128
69136
  capScope: "system",
@@ -74343,24 +74351,12 @@ Object.freeze({
74343
74351
  addonId: null,
74344
74352
  access: "create"
74345
74353
  },
74346
- "storageAdmin.adoptRecords": {
74347
- capName: "storage-admin",
74348
- capScope: "system",
74349
- addonId: null,
74350
- access: "create"
74351
- },
74352
74354
  "storageAdmin.dropCollection": {
74353
74355
  capName: "storage-admin",
74354
74356
  capScope: "system",
74355
74357
  addonId: null,
74356
74358
  access: "delete"
74357
74359
  },
74358
- "storageAdmin.isAdoptedLegacyTable": {
74359
- capName: "storage-admin",
74360
- capScope: "system",
74361
- addonId: null,
74362
- access: "view"
74363
- },
74364
74360
  "storageAdmin.listKinds": {
74365
74361
  capName: "storage-admin",
74366
74362
  capScope: "system",
@@ -74373,12 +74369,6 @@ Object.freeze({
74373
74369
  addonId: null,
74374
74370
  access: "view"
74375
74371
  },
74376
- "storageAdmin.readLegacyCollection": {
74377
- capName: "storage-admin",
74378
- capScope: "system",
74379
- addonId: null,
74380
- access: "view"
74381
- },
74382
74372
  "storageAdmin.readRecords": {
74383
74373
  capName: "storage-admin",
74384
74374
  capScope: "system",
@@ -78193,12 +78183,6 @@ Object.freeze({
78193
78183
  form: "single",
78194
78184
  optional: false
78195
78185
  }],
78196
- "storageAdmin.adoptRecords": [{
78197
- name: "records",
78198
- form: "object-array",
78199
- optional: false,
78200
- itemField: "deviceId"
78201
- }],
78202
78186
  "storageAdmin.readRecords": [{
78203
78187
  name: "deviceId",
78204
78188
  form: "single",
@@ -80647,6 +80631,41 @@ function pointInPolygon(point, polygon) {
80647
80631
  }
80648
80632
  return inside;
80649
80633
  }
80634
+ /** Bus order of the enumeration: USB first (the historical key), then PCIe. */
80635
+ var BUS_ORDER = ["usb", "pci"];
80636
+ function unitDevice(bus, index) {
80637
+ return index === 0 ? bus : `${bus}:${index}`;
80638
+ }
80639
+ function countOn(coral, bus) {
80640
+ if (coral.units !== void 0) return coral.units.filter((u) => u.bus === bus).reduce((n, u) => n + Math.max(0, u.count), 0);
80641
+ return bus === (coral.bus === "pci" ? "pci" : "usb") ? Math.max(1, coral.count ?? 1) : 0;
80642
+ }
80643
+ /** Every usable Coral unit on a node, USB first then PCIe, in ordinal order. */
80644
+ function coralUsableUnits(coral) {
80645
+ if (coral == null) return [];
80646
+ const out = [];
80647
+ for (const bus of BUS_ORDER) {
80648
+ const count = countOn(coral, bus);
80649
+ for (let index = 0; index < count; index++) out.push({
80650
+ bus,
80651
+ index,
80652
+ device: unitDevice(bus, index)
80653
+ });
80654
+ }
80655
+ return out;
80656
+ }
80657
+ var KEY_DEVICE = /^(usb|pci)(?::(\d+))?$/;
80658
+ /**
80659
+ * Map an edgetpu key suffix (`usb`, `usb:1`, `pci`, `pci:1`) to the explicit
80660
+ * libedgetpu device string (`usb:0`, `usb:1`, `pci:0`, `pci:1`). Throws on any
80661
+ * other string — a pool must never open "whichever Edge TPU comes first".
80662
+ */
80663
+ function edgetpuDelegateDevice(device) {
80664
+ const match = KEY_DEVICE.exec(device.trim());
80665
+ if (match === null) throw new Error(`edgetpu device "${device}" is not usb[:N] or pci[:N]`);
80666
+ const [, bus, ordinal] = match;
80667
+ return `${bus}:${ordinal ?? "0"}`;
80668
+ }
80650
80669
  var AUTO = {
80651
80670
  value: "auto",
80652
80671
  label: "Auto"
@@ -80659,6 +80678,14 @@ var USB = {
80659
80678
  value: "usb",
80660
80679
  label: "Coral USB"
80661
80680
  };
80681
+ function coralUnitOption(unit) {
80682
+ const bus = unit.bus === "pci" ? "PCIe" : "USB";
80683
+ const label = unit.index === 0 ? `Coral ${bus}` : `Coral ${bus} ${unit.index + 1}`;
80684
+ return {
80685
+ value: unit.device,
80686
+ label
80687
+ };
80688
+ }
80662
80689
  var RUNTIMES = [
80663
80690
  {
80664
80691
  id: "onnx",
@@ -80725,8 +80752,11 @@ var RUNTIMES = [
80725
80752
  },
80726
80753
  {
80727
80754
  id: "edgetpu",
80728
- supports: (hw) => hw?.coral != null,
80729
- devices: () => [USB],
80755
+ supports: (hw) => coralUsableUnits(hw?.coral).length > 0,
80756
+ devices: (hw) => {
80757
+ const units = coralUsableUnits(hw?.coral);
80758
+ return units.length > 0 ? units.map(coralUnitOption) : [USB];
80759
+ },
80730
80760
  defaultDevice: "usb"
80731
80761
  }
80732
80762
  ];
@@ -80762,7 +80792,7 @@ function defaultDeviceFor(id) {
80762
80792
  * - coreml: score 95, darwin+arm64
80763
80793
  * - cuda: score 85, nvidia gpu
80764
80794
  * - openvino: score 90 if intel-npu present, else 80 if intel gpu
80765
- * - edgetpu: score 70, coral usb present
80795
+ * - edgetpu: score 70, a usable Coral unit (USB or PCIe)
80766
80796
  * - cpu: score 50 (universal floor, always included)
80767
80797
  *
80768
80798
  * All hardware-matched entries are `available: true`.
@@ -80816,7 +80846,7 @@ function scoreRuntimes(hw) {
80816
80846
  available: true
80817
80847
  });
80818
80848
  }
80819
- if (hw.coral != null) scores.push({
80849
+ if (coralUsableUnits(hw.coral).length > 0) scores.push({
80820
80850
  runtime: "python",
80821
80851
  backend: "edgetpu",
80822
80852
  format: "tflite",
@@ -80875,11 +80905,7 @@ function enumerateInferenceDevices(hw) {
80875
80905
  continue;
80876
80906
  }
80877
80907
  if (s.backend === "edgetpu") {
80878
- const coralCount = Math.max(1, hw.coral?.count ?? 1);
80879
- for (let i = 0; i < coralCount; i++) {
80880
- const dev = i === 0 ? "usb" : `usb:${i}`;
80881
- out.push(device("edgetpu", dev, s.format, s.score));
80882
- }
80908
+ for (const unit of coralUsableUnits(hw.coral)) out.push(device("edgetpu", unit.device, s.format, s.score));
80883
80909
  continue;
80884
80910
  }
80885
80911
  if (s.backend === "onnx" && s.reason.startsWith("ONNX WebGPU")) {
@@ -81526,6 +81552,12 @@ Object.defineProperty(exports, "discriminatedUnion", {
81526
81552
  return discriminatedUnion;
81527
81553
  }
81528
81554
  });
81555
+ Object.defineProperty(exports, "edgetpuDelegateDevice", {
81556
+ enumerable: true,
81557
+ get: function() {
81558
+ return edgetpuDelegateDevice;
81559
+ }
81560
+ });
81529
81561
  Object.defineProperty(exports, "egressTranscodeSharingKey", {
81530
81562
  enumerable: true,
81531
81563
  get: function() {
@@ -1,4 +1,4 @@
1
- import { Wn as hfModelUrl } from "./dist-DfLtNHaL.mjs";
1
+ import { Gn as hfModelUrl } from "./dist-0D-dLBnm.mjs";
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
- const require_dist = require("./dist-PmCvE63K.js");
1
+ const require_dist = require("./dist-DkfPNxQw.js");
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-PmCvE63K.js");
5
+ const require_dist = require("../dist-DkfPNxQw.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 DeviceType, Gn as hydrateSchema, Nn as BaseAddon, St as evaluateZoneRules, Wt as motionDetectionCapability } from "../dist-DfLtNHaL.mjs";
1
+ import { Ct as evaluateZoneRules, Gt as motionDetectionCapability, Kn as hydrateSchema, Pn as BaseAddon, jn as DeviceType } from "../dist-0D-dLBnm.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 isSoftwareDecode, Tn as buildFfmpegArgs, jn as errMsg, wn as Fmp4BoxSplitter } from "./dist-DfLtNHaL.mjs";
1
+ import { En as buildFfmpegArgs, Mn as errMsg, Tn as Fmp4BoxSplitter, kn as isSoftwareDecode } from "./dist-0D-dLBnm.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-PmCvE63K.js");
2
+ const require_dist = require("./dist-DkfPNxQw.js");
3
3
  require("node:os");
4
4
  let node_crypto = require("node:crypto");
5
5
  let node_fs = require("node:fs");
@@ -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-PmCvE63K.js");
7
- const require_node = require("../node-D_-1oz36.js");
8
- const require_custom_model_catalog = require("../custom-model-catalog-C0iqe95s.js");
6
+ const require_dist = require("../dist-DkfPNxQw.js");
7
+ const require_node = require("../node-CpUZKfZC.js");
8
+ const require_custom_model_catalog = require("../custom-model-catalog-Ci_-yU1S.js");
9
9
  const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
10
10
  const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
11
11
  const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
@@ -1,6 +1,6 @@
1
- import { A as NativeLeaseAdmissionSchema, Bn as customAction, E as FailureCounters, Et as failureContributionCapability, Ft as loadContributionCapability, Jt as pickDetailCropConvention, Ln as MODEL_FORMATS, M as NodeBenchRunnerInputSchema, Nn as BaseAddon, P as PIPELINE_RAMP, Pt as linkedStepOf, V as ROOT_SUPPLIABLE_STEP_IDS, Vn as defineCustomActions, Y as allowedSuppliedEffect, Yt as pickNativeLeaseOverride, Zn as nodePin, Zt as pipelineRunnerCapability, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, cr as number, dn as rootSuppliesOf, fr as string, gt as deriveRootFaceRefineRect, ir as boolean, j as NativeLeaseSettingsSchema, jn as errMsg, lr as object, m as CROP_SUPPLY_SOURCES, mr as EventCategory, mt as deriveDetailCropRect, nr as _enum, nt as buildBenchStepTree, or as lazy, rr as array, rt as cameraOwnsMotionViaSensor, sn as resolveModelBoundSetting, sr as literal, un as resolveRootSupply, x as DEVICE_RAMP, y as DEFAULT_NATIVE_LEASE_SETTINGS, zn as createEvent } from "../dist-DfLtNHaL.mjs";
2
- import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-BYIY09HD.mjs";
3
- import { a as stepsForElectedPool, b as getStepDefinition, d as rootObjectGate, f as localFrameRegistry, h as resolveFrameViewGeometry, i as placeDetailStep, l as resolveDefaultDetectionModel, m as createSessionDecodeCoordinator, p as isSessionDecodeReadGone, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, y as getStep } from "../custom-model-catalog-DHRYJ8gg.mjs";
1
+ import { A as NativeLeaseAdmissionSchema, Bn as createEvent, Dt as failureContributionCapability, E as FailureCounters, Ft as linkedStepOf, Hn as defineCustomActions, It as loadContributionCapability, M as NodeBenchRunnerInputSchema, Mn as errMsg, P as PIPELINE_RAMP, Pn as BaseAddon, Qn as nodePin, Qt as pipelineRunnerCapability, Rn as MODEL_FORMATS, V as ROOT_SUPPLIABLE_STEP_IDS, Vn as customAction, Xt as pickNativeLeaseOverride, Y as allowedSuppliedEffect, Yt as pickDetailCropConvention, _ as DEFAULT_DETAIL_CROP_CONVENTION, a as BackgroundRunRegistry, ar as boolean, cn as resolveModelBoundSetting, cr as literal, dn as resolveRootSupply, fn as rootSuppliesOf, gt as deriveRootFaceRefineRect, hr as EventCategory, ir as array, j as NativeLeaseSettingsSchema, lr as number, m as CROP_SUPPLY_SOURCES, mt as deriveDetailCropRect, nt as buildBenchStepTree, pr as string, rr as _enum, rt as cameraOwnsMotionViaSensor, sr as lazy, ur as object, x as DEVICE_RAMP, y as DEFAULT_NATIVE_LEASE_SETTINGS } from "../dist-0D-dLBnm.mjs";
2
+ import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-CXQrV8Tv.mjs";
3
+ import { a as stepsForElectedPool, b as getStepDefinition, d as rootObjectGate, f as localFrameRegistry, h as resolveFrameViewGeometry, i as placeDetailStep, l as resolveDefaultDetectionModel, m as createSessionDecodeCoordinator, p as isSessionDecodeReadGone, s as resolveDeviceEngine, t as CustomModelCatalog, u as macroGateVerdict, y as getStep } from "../custom-model-catalog-D4nyEGYU.mjs";
4
4
  import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
5
5
  import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
6
6
  import { c as withDetectionIntent, o as preRollRequestOf, t as DETECTION_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
@@ -1,4 +1,4 @@
1
- import { Kt as parseProcStatus } from "./dist-DfLtNHaL.mjs";
1
+ import { qt as parseProcStatus } from "./dist-0D-dLBnm.mjs";
2
2
  import * as fs from "node:fs";
3
3
  import { execFile } from "node:child_process";
4
4
  //#region src/shared/node-topology-platform.ts
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-PmCvE63K.js");
2
+ const require_dist = require("./dist-DkfPNxQw.js");
3
3
  let node_fs = require("node:fs");
4
4
  node_fs = require_chunk.__toESM(node_fs);
5
5
  let node_child_process = require("node:child_process");
@@ -3,8 +3,8 @@ 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-PmCvE63K.js");
7
- const require_node = require("../node-D_-1oz36.js");
6
+ const require_dist = require("../dist-DkfPNxQw.js");
7
+ const require_node = require("../node-CpUZKfZC.js");
8
8
  const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
9
9
  const require_restream_intent = require("../restream-intent-7uDNqMKs.js");
10
10
  let node_crypto = require("node:crypto");
@@ -8468,6 +8468,24 @@ function buildExportArgs(input) {
8468
8468
  outPath
8469
8469
  ];
8470
8470
  }
8471
+ //#endregion
8472
+ //#region src/recorder/addon/record-kinds.ts
8473
+ /**
8474
+ * Record kinds owned by the recorder addon (records plan phase 2,
8475
+ * steps 25–26).
8476
+ *
8477
+ * Each kind replaced the legacy `recorder:*` RowMapStore collection of the
8478
+ * same name; the records migration that copied them is closed (D900).
8479
+ *
8480
+ * The recorder runs on `any-node` but only the designated recording node (hub
8481
+ * by default) writes these collections. `ctx.records.declare` is guarded by
8482
+ * `ctx.records !== undefined` in `onInitialize` — an agent that is not the
8483
+ * recording node exits before that point; a recording node that is not the hub
8484
+ * (non-standard) throws at the guard with a clear message.
8485
+ *
8486
+ * The addon declares no `execution.group`, so the hub owner stamp is the addon
8487
+ * id (`recorder`).
8488
+ */
8471
8489
  var recorderRecordKinds = require_dist.defineRecordKinds({
8472
8490
  /**
8473
8491
  * One row per export job, inserted by `createExport` and updated as the
@@ -8487,8 +8505,7 @@ var recorderRecordKinds = require_dist.defineRecordKinds({
8487
8505
  name: "device",
8488
8506
  fields: ["deviceId"]
8489
8507
  }],
8490
- retention: { none: "operator intent — a row is the export AUDIT and survives forever; deleteExport and the janitor flip state and remove the file without removing the row; removeExport is a deliberate operator purge" },
8491
- adoptsFrom: "recorder:exports"
8508
+ retention: { none: "operator intent — a row is the export AUDIT and survives forever; deleteExport and the janitor flip state and remove the file without removing the row; removeExport is a deliberate operator purge" }
8492
8509
  },
8493
8510
  /**
8494
8511
  * A bounded ring of per-operation audit rows. One row per recordings
@@ -8511,8 +8528,7 @@ var recorderRecordKinds = require_dist.defineRecordKinds({
8511
8528
  name: "device",
8512
8529
  fields: ["deviceId"]
8513
8530
  }],
8514
- retention: { none: "a bounded ring of the newest 500 rows; older rows are removed in application code (trimOpsLog) after each append — owner-pruned" },
8515
- adoptsFrom: "recorder:ops-log"
8531
+ retention: { none: "a bounded ring of the newest 500 rows; older rows are removed in application code (trimOpsLog) after each append — owner-pruned" }
8516
8532
  }
8517
8533
  });
8518
8534
  //#endregion
@@ -1,5 +1,5 @@
1
- import { $n as selectAssignedProfileSlots, $t as recordingArchiveCapability, An as DeviceType, B as RECORDING_SOURCE_CAMSTACK_ADDON, Bn as customAction, Bt as memoizePinnedFfmpeg, C as EVENT_PAD_MS, Ct as evictionPolicyForMode, En as evaluateSensorEdge, Ft as loadContributionCapability, G as VIDEOCLIPS_MAX_OFFER_BYTES, Gn as hydrateSchema, H as RecordingConfigSchema, Hn as defineRecordKinds, Ht as modeMayWrite, K as VISIT_MERGE_GAP_MS, Mt as isFirstLevelMacroClass, N as OpsLogEntrySchema, Nn as BaseAddon, Ot as gbToBytes, R as RECORDING_EXPORT_MAX_READ_BYTES, Rt as mayReadLocation, S as EVENT_OWNER_TYPES, T as ExportRecordSchema, Tt as exportSubjectOf, U as RecordingSignalStatusSchema, Vn as defineCustomActions, Vt as migrateLegacyDeviceSignalConfig, Z as armRemovalReconcile, Zn as nodePin, at as clipExportFailure, bn as videoclipsCapability, cr as number, dr as record, en as recordingCapability, er as sleep$1, fr as string, gn as storageOccupancyCapability, hn as storageEvictableCapability, ht as deriveRecordingMode, in as resolveCreateExportSubject, ir as boolean, jn as errMsg$1, kn as DeviceFeature, ln as resolveRecordingProfiles, lr as object, mr as EventCategory, nn as recordingSignalCapability, nr as _enum, o as BatteryStatusSchema, on as resolveLocationMode, ot as clipExportFailureOf, pn as startMoverUnderClearance, pt as deriveBatteryPresence, rr as array, s as CLIP_BROKER_PACED_RATES, tn as recordingExportCapability, tr as userError, tt as batteryCapability, ur as preprocess, v as DEFAULT_EVENTS_BAND_BUFFER_SEC, vn as stripRetiredBandPreBufferSec, vt as deviceRemovalHookCapability, wt as evictionPolicyOfLocation, z as RECORDING_SOURCE_CAMSTACK, zt as mayWriteToLocation } from "../dist-DfLtNHaL.mjs";
2
- import { i as NO_COST_CLAIM, o as physicalRootOf, t as ChildCostRegistry } from "../node-BYIY09HD.mjs";
1
+ import { An as DeviceFeature, B as RECORDING_SOURCE_CAMSTACK_ADDON, Bt as mayWriteToLocation, C as EVENT_PAD_MS, Dn as evaluateSensorEdge, Et as exportSubjectOf, G as VIDEOCLIPS_MAX_OFFER_BYTES, H as RecordingConfigSchema, Hn as defineCustomActions, Ht as migrateLegacyDeviceSignalConfig, It as loadContributionCapability, K as VISIT_MERGE_GAP_MS, Kn as hydrateSchema, Mn as errMsg$1, N as OpsLogEntrySchema, Nt as isFirstLevelMacroClass, Pn as BaseAddon, Qn as nodePin, R as RECORDING_EXPORT_MAX_READ_BYTES, S as EVENT_OWNER_TYPES, T as ExportRecordSchema, Tt as evictionPolicyOfLocation, U as RecordingSignalStatusSchema, Un as defineRecordKinds, Ut as modeMayWrite, Vn as customAction, Vt as memoizePinnedFfmpeg, Z as armRemovalReconcile, _n as storageOccupancyCapability, an as resolveCreateExportSubject, ar as boolean, at as clipExportFailure, dr as preprocess, en as recordingArchiveCapability, er as selectAssignedProfileSlots, fr as record, gn as storageEvictableCapability, hr as EventCategory, ht as deriveRecordingMode, ir as array, jn as DeviceType, kt as gbToBytes, lr as number, mn as startMoverUnderClearance, nn as recordingExportCapability, nr as userError, o as BatteryStatusSchema, ot as clipExportFailureOf, pr as string, pt as deriveBatteryPresence, rn as recordingSignalCapability, rr as _enum, s as CLIP_BROKER_PACED_RATES, sn as resolveLocationMode, tn as recordingCapability, tr as sleep$1, tt as batteryCapability, un as resolveRecordingProfiles, ur as object, v as DEFAULT_EVENTS_BAND_BUFFER_SEC, vt as deviceRemovalHookCapability, wt as evictionPolicyForMode, xn as videoclipsCapability, yn as stripRetiredBandPreBufferSec, z as RECORDING_SOURCE_CAMSTACK, zt as mayReadLocation } from "../dist-0D-dLBnm.mjs";
2
+ import { i as NO_COST_CLAIM, o as physicalRootOf, t as ChildCostRegistry } from "../node-CXQrV8Tv.mjs";
3
3
  import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
4
4
  import { d as PREBUFFER_MAX_MS, l as withRecordingIntent, r as RECORDING_PRE_ROLL_REQUEST_MS } from "../restream-intent-DyGmLAU9.mjs";
5
5
  import { randomUUID } from "node:crypto";
@@ -8460,6 +8460,24 @@ function buildExportArgs(input) {
8460
8460
  outPath
8461
8461
  ];
8462
8462
  }
8463
+ //#endregion
8464
+ //#region src/recorder/addon/record-kinds.ts
8465
+ /**
8466
+ * Record kinds owned by the recorder addon (records plan phase 2,
8467
+ * steps 25–26).
8468
+ *
8469
+ * Each kind replaced the legacy `recorder:*` RowMapStore collection of the
8470
+ * same name; the records migration that copied them is closed (D900).
8471
+ *
8472
+ * The recorder runs on `any-node` but only the designated recording node (hub
8473
+ * by default) writes these collections. `ctx.records.declare` is guarded by
8474
+ * `ctx.records !== undefined` in `onInitialize` — an agent that is not the
8475
+ * recording node exits before that point; a recording node that is not the hub
8476
+ * (non-standard) throws at the guard with a clear message.
8477
+ *
8478
+ * The addon declares no `execution.group`, so the hub owner stamp is the addon
8479
+ * id (`recorder`).
8480
+ */
8463
8481
  var recorderRecordKinds = defineRecordKinds({
8464
8482
  /**
8465
8483
  * One row per export job, inserted by `createExport` and updated as the
@@ -8479,8 +8497,7 @@ var recorderRecordKinds = defineRecordKinds({
8479
8497
  name: "device",
8480
8498
  fields: ["deviceId"]
8481
8499
  }],
8482
- retention: { none: "operator intent — a row is the export AUDIT and survives forever; deleteExport and the janitor flip state and remove the file without removing the row; removeExport is a deliberate operator purge" },
8483
- adoptsFrom: "recorder:exports"
8500
+ retention: { none: "operator intent — a row is the export AUDIT and survives forever; deleteExport and the janitor flip state and remove the file without removing the row; removeExport is a deliberate operator purge" }
8484
8501
  },
8485
8502
  /**
8486
8503
  * A bounded ring of per-operation audit rows. One row per recordings
@@ -8503,8 +8520,7 @@ var recorderRecordKinds = defineRecordKinds({
8503
8520
  name: "device",
8504
8521
  fields: ["deviceId"]
8505
8522
  }],
8506
- retention: { none: "a bounded ring of the newest 500 rows; older rows are removed in application code (trimOpsLog) after each append — owner-pruned" },
8507
- adoptsFrom: "recorder:ops-log"
8523
+ retention: { none: "a bounded ring of the newest 500 rows; older rows are removed in application code (trimOpsLog) after each append — owner-pruned" }
8508
8524
  }
8509
8525
  });
8510
8526
  //#endregion
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-emK7D4bc.js");
2
- const require_dist = require("./dist-PmCvE63K.js");
2
+ const require_dist = require("./dist-DkfPNxQw.js");
3
3
  let node_child_process = require("node:child_process");
4
4
  //#region src/stream-broker/recorded/avcc-annexb.ts
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./chunk-DnnnRqeS.mjs";
2
- import { jn as errMsg } from "./dist-DfLtNHaL.mjs";
2
+ import { Mn as errMsg } from "./dist-0D-dLBnm.mjs";
3
3
  import { spawn } from "node:child_process";
4
4
  //#region src/stream-broker/recorded/avcc-annexb.ts
5
5
  /**
@@ -1,7 +1,7 @@
1
- import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DxEZc0T0.mjs";
1
+ import { a as e, c as t, d as n, f as r, i, l as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, u as p } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CixUA9FW.mjs";
2
2
  import { a as m, i as h, n as g, o as _, r as v, t as y } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react__loadShare__.js-C9j-2lBe.mjs";
3
3
  import { n as b, r as x, t as S } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-XO0-Pyu6.mjs";
4
- import { t as C } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C_vhSCZn.mjs";
4
+ import { t as C } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BatrS9WH.mjs";
5
5
  import { n as w, t as T } from "./_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-BO7TIbJV.mjs";
6
6
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
7
7
  var E = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), D = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), O = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), k = (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.138",
6
+ version: "1.2.140",
7
7
  scope: ["default"],
8
8
  loaded: !1,
9
9
  from: "addon_stream_broker_widgets",
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.388",
21
+ version: "1.2.390",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_stream_broker_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.305",
36
+ version: "1.2.307",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_stream_broker_widgets",