@camstack/addon-decoder-ffmpeg 1.2.23 → 1.2.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -18770,6 +18770,12 @@ var CameraStatusSchema = object({
18770
18770
  /** Unix timestamp (ms) when this snapshot was composed server-side. */
18771
18771
  fetchedAt: number()
18772
18772
  });
18773
+ var InferenceDeviceExclusionReasonSchema = _enum([
18774
+ "disabled",
18775
+ "unavailable",
18776
+ "cannot-host-camera-root",
18777
+ "accelerator-preferred"
18778
+ ]);
18773
18779
  var NodeInferenceDeviceSchema = object({
18774
18780
  /** Stable per-node device key, e.g. `openvino:npu`, `edgetpu:usb`, `cpu`. */
18775
18781
  key: string(),
@@ -18800,7 +18806,17 @@ var NodeInferenceDeviceSchema = object({
18800
18806
  * available per format; this is the stored selection that becomes the
18801
18807
  * default for EVERY camera landing on this accelerator.
18802
18808
  */
18803
- steps: record(string(), DeviceStepConfigSchema).optional()
18809
+ steps: record(string(), DeviceStepConfigSchema).optional(),
18810
+ /**
18811
+ * `null` when the device IS a camera-root candidate on this node; otherwise
18812
+ * the reason the dispatcher drops it. Computed by the SAME
18813
+ * `resolveInferenceDeviceEligibility` the dispatcher runs, so this view can
18814
+ * never disagree with the election — deriving it in the UI from
18815
+ * `enabled`/`available` would silently miss `cannot-host-camera-root` (needs
18816
+ * the node's model catalog) and `accelerator-preferred` (needs the node-wide
18817
+ * "an accelerator is serving" predicate).
18818
+ */
18819
+ exclusion: InferenceDeviceExclusionReasonSchema.nullable()
18804
18820
  });
18805
18821
  var NodeInferenceDevicesSchema = object({
18806
18822
  nodeId: string(),
@@ -22558,7 +22574,12 @@ var ListResultSchema = object({
22558
22574
  probedAt: number()
22559
22575
  });
22560
22576
  var PreferredSchema = LocalInterfaceSchema.nullable();
22561
- var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
22577
+ /**
22578
+ * Candidate base URL for the SDK to race on connect. Order matters —
22579
+ * the SDK should attempt these top-to-bottom with a short per-candidate
22580
+ * timeout (e.g. 1500ms) and cache the winner for the session.
22581
+ */
22582
+ var ConnectionEndpointSchema = object({
22562
22583
  /** Operator-facing label (e.g. "LAN — en0", "Public tunnel"). */
22563
22584
  label: string(),
22564
22585
  /** Fully-formed base URL with scheme + host + port. */
@@ -22601,7 +22622,42 @@ var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
22601
22622
  * ordering between polls.
22602
22623
  */
22603
22624
  priority: number()
22604
- })).readonly() });
22625
+ });
22626
+ /**
22627
+ * Where the advertised local port came from. Ordered most → least
22628
+ * authoritative, and the whole point of returning it: a client must be able to
22629
+ * tell a FACT about the hub's socket from an echo of its own guess.
22630
+ */
22631
+ var LocalPortSourceEnum = _enum([
22632
+ "server-config",
22633
+ "server-env",
22634
+ "caller-hint",
22635
+ "default"
22636
+ ]);
22637
+ /** The port every LAN/loopback `baseUrl` in the same result was built with. */
22638
+ var AdvertisedLocalPortSchema = object({
22639
+ port: number().int().min(1).max(65535),
22640
+ source: LocalPortSourceEnum
22641
+ });
22642
+ var GetConnectionEndpointsResultSchema = object({
22643
+ endpoints: array(ConnectionEndpointSchema).readonly(),
22644
+ /**
22645
+ * The port the hub built the LAN/loopback URLs with, and where that number
22646
+ * came from.
22647
+ *
22648
+ * Returned rather than merely applied, because "the URL is right" and "the
22649
+ * client can KNOW the URL is right" are different properties. A client that
22650
+ * only sees a corrected URL cannot distinguish a hub that fixed the port from
22651
+ * a hub that echoed the port the client sent, so it cannot decide whether to
22652
+ * race the candidate or discard it. With `source` it can: anything but
22653
+ * `caller-hint` is the hub's own socket.
22654
+ *
22655
+ * Absent on hubs predating this field — a client that finds it missing is
22656
+ * talking to an echoing hub and must degrade exactly as it does for
22657
+ * `caller-hint`.
22658
+ */
22659
+ localPort: AdvertisedLocalPortSchema
22660
+ });
22605
22661
  /**
22606
22662
  * The chosen outbound endpoint for notification artifacts. `baseUrl: null` =
22607
22663
  * AUTO (resolved from the candidate ranking at send time); `resolved` reports
@@ -22622,8 +22678,13 @@ var AllowedAddressesSchema = object({
22622
22678
  */
22623
22679
  addresses: array(string()).readonly() });
22624
22680
  method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
22625
- /** Local hub HTTP port to use in base URLs. */
22626
- port: number().int().min(1).max(65535),
22681
+ /**
22682
+ * LEGACY HINT — do not send from new code. Kept optional so clients
22683
+ * written against the echoing contract keep working; the hub uses it
22684
+ * only when it cannot read its own port, and says so via
22685
+ * `localPort.source === 'caller-hint'`.
22686
+ */
22687
+ port: number().int().min(1).max(65535).optional(),
22627
22688
  /** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
22628
22689
  * candidate. Default `true`. */
22629
22690
  includeLoopback: boolean().optional(),
package/dist/index.mjs CHANGED
@@ -18766,6 +18766,12 @@ var CameraStatusSchema = object({
18766
18766
  /** Unix timestamp (ms) when this snapshot was composed server-side. */
18767
18767
  fetchedAt: number()
18768
18768
  });
18769
+ var InferenceDeviceExclusionReasonSchema = _enum([
18770
+ "disabled",
18771
+ "unavailable",
18772
+ "cannot-host-camera-root",
18773
+ "accelerator-preferred"
18774
+ ]);
18769
18775
  var NodeInferenceDeviceSchema = object({
18770
18776
  /** Stable per-node device key, e.g. `openvino:npu`, `edgetpu:usb`, `cpu`. */
18771
18777
  key: string(),
@@ -18796,7 +18802,17 @@ var NodeInferenceDeviceSchema = object({
18796
18802
  * available per format; this is the stored selection that becomes the
18797
18803
  * default for EVERY camera landing on this accelerator.
18798
18804
  */
18799
- steps: record(string(), DeviceStepConfigSchema).optional()
18805
+ steps: record(string(), DeviceStepConfigSchema).optional(),
18806
+ /**
18807
+ * `null` when the device IS a camera-root candidate on this node; otherwise
18808
+ * the reason the dispatcher drops it. Computed by the SAME
18809
+ * `resolveInferenceDeviceEligibility` the dispatcher runs, so this view can
18810
+ * never disagree with the election — deriving it in the UI from
18811
+ * `enabled`/`available` would silently miss `cannot-host-camera-root` (needs
18812
+ * the node's model catalog) and `accelerator-preferred` (needs the node-wide
18813
+ * "an accelerator is serving" predicate).
18814
+ */
18815
+ exclusion: InferenceDeviceExclusionReasonSchema.nullable()
18800
18816
  });
18801
18817
  var NodeInferenceDevicesSchema = object({
18802
18818
  nodeId: string(),
@@ -22554,7 +22570,12 @@ var ListResultSchema = object({
22554
22570
  probedAt: number()
22555
22571
  });
22556
22572
  var PreferredSchema = LocalInterfaceSchema.nullable();
22557
- var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
22573
+ /**
22574
+ * Candidate base URL for the SDK to race on connect. Order matters —
22575
+ * the SDK should attempt these top-to-bottom with a short per-candidate
22576
+ * timeout (e.g. 1500ms) and cache the winner for the session.
22577
+ */
22578
+ var ConnectionEndpointSchema = object({
22558
22579
  /** Operator-facing label (e.g. "LAN — en0", "Public tunnel"). */
22559
22580
  label: string(),
22560
22581
  /** Fully-formed base URL with scheme + host + port. */
@@ -22597,7 +22618,42 @@ var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
22597
22618
  * ordering between polls.
22598
22619
  */
22599
22620
  priority: number()
22600
- })).readonly() });
22621
+ });
22622
+ /**
22623
+ * Where the advertised local port came from. Ordered most → least
22624
+ * authoritative, and the whole point of returning it: a client must be able to
22625
+ * tell a FACT about the hub's socket from an echo of its own guess.
22626
+ */
22627
+ var LocalPortSourceEnum = _enum([
22628
+ "server-config",
22629
+ "server-env",
22630
+ "caller-hint",
22631
+ "default"
22632
+ ]);
22633
+ /** The port every LAN/loopback `baseUrl` in the same result was built with. */
22634
+ var AdvertisedLocalPortSchema = object({
22635
+ port: number().int().min(1).max(65535),
22636
+ source: LocalPortSourceEnum
22637
+ });
22638
+ var GetConnectionEndpointsResultSchema = object({
22639
+ endpoints: array(ConnectionEndpointSchema).readonly(),
22640
+ /**
22641
+ * The port the hub built the LAN/loopback URLs with, and where that number
22642
+ * came from.
22643
+ *
22644
+ * Returned rather than merely applied, because "the URL is right" and "the
22645
+ * client can KNOW the URL is right" are different properties. A client that
22646
+ * only sees a corrected URL cannot distinguish a hub that fixed the port from
22647
+ * a hub that echoed the port the client sent, so it cannot decide whether to
22648
+ * race the candidate or discard it. With `source` it can: anything but
22649
+ * `caller-hint` is the hub's own socket.
22650
+ *
22651
+ * Absent on hubs predating this field — a client that finds it missing is
22652
+ * talking to an echoing hub and must degrade exactly as it does for
22653
+ * `caller-hint`.
22654
+ */
22655
+ localPort: AdvertisedLocalPortSchema
22656
+ });
22601
22657
  /**
22602
22658
  * The chosen outbound endpoint for notification artifacts. `baseUrl: null` =
22603
22659
  * AUTO (resolved from the candidate ranking at send time); `resolved` reports
@@ -22618,8 +22674,13 @@ var AllowedAddressesSchema = object({
22618
22674
  */
22619
22675
  addresses: array(string()).readonly() });
22620
22676
  method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
22621
- /** Local hub HTTP port to use in base URLs. */
22622
- port: number().int().min(1).max(65535),
22677
+ /**
22678
+ * LEGACY HINT — do not send from new code. Kept optional so clients
22679
+ * written against the echoing contract keep working; the hub uses it
22680
+ * only when it cannot read its own port, and says so via
22681
+ * `localPort.source === 'caller-hint'`.
22682
+ */
22683
+ port: number().int().min(1).max(65535).optional(),
22623
22684
  /** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
22624
22685
  * candidate. Default `true`. */
22625
22686
  includeLoopback: boolean().optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-ffmpeg",
3
- "version": "1.2.23",
3
+ "version": "1.2.24",
4
4
  "description": "Standalone ffmpeg-subprocess decoder fallback addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",