@camstack/addon-post-analysis 1.2.106 → 1.2.107

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.
@@ -20223,6 +20223,12 @@ var CameraStatusSchema = object({
20223
20223
  /** Unix timestamp (ms) when this snapshot was composed server-side. */
20224
20224
  fetchedAt: number()
20225
20225
  });
20226
+ var InferenceDeviceExclusionReasonSchema = _enum([
20227
+ "disabled",
20228
+ "unavailable",
20229
+ "cannot-host-camera-root",
20230
+ "accelerator-preferred"
20231
+ ]);
20226
20232
  var NodeInferenceDeviceSchema = object({
20227
20233
  /** Stable per-node device key, e.g. `openvino:npu`, `edgetpu:usb`, `cpu`. */
20228
20234
  key: string(),
@@ -20253,7 +20259,17 @@ var NodeInferenceDeviceSchema = object({
20253
20259
  * available per format; this is the stored selection that becomes the
20254
20260
  * default for EVERY camera landing on this accelerator.
20255
20261
  */
20256
- steps: record(string(), DeviceStepConfigSchema).optional()
20262
+ steps: record(string(), DeviceStepConfigSchema).optional(),
20263
+ /**
20264
+ * `null` when the device IS a camera-root candidate on this node; otherwise
20265
+ * the reason the dispatcher drops it. Computed by the SAME
20266
+ * `resolveInferenceDeviceEligibility` the dispatcher runs, so this view can
20267
+ * never disagree with the election — deriving it in the UI from
20268
+ * `enabled`/`available` would silently miss `cannot-host-camera-root` (needs
20269
+ * the node's model catalog) and `accelerator-preferred` (needs the node-wide
20270
+ * "an accelerator is serving" predicate).
20271
+ */
20272
+ exclusion: InferenceDeviceExclusionReasonSchema.nullable()
20257
20273
  });
20258
20274
  var NodeInferenceDevicesSchema = object({
20259
20275
  nodeId: string(),
@@ -25174,7 +25190,12 @@ var ListResultSchema = object({
25174
25190
  probedAt: number()
25175
25191
  });
25176
25192
  var PreferredSchema = LocalInterfaceSchema.nullable();
25177
- var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
25193
+ /**
25194
+ * Candidate base URL for the SDK to race on connect. Order matters —
25195
+ * the SDK should attempt these top-to-bottom with a short per-candidate
25196
+ * timeout (e.g. 1500ms) and cache the winner for the session.
25197
+ */
25198
+ var ConnectionEndpointSchema = object({
25178
25199
  /** Operator-facing label (e.g. "LAN — en0", "Public tunnel"). */
25179
25200
  label: string(),
25180
25201
  /** Fully-formed base URL with scheme + host + port. */
@@ -25217,7 +25238,42 @@ var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
25217
25238
  * ordering between polls.
25218
25239
  */
25219
25240
  priority: number()
25220
- })).readonly() });
25241
+ });
25242
+ /**
25243
+ * Where the advertised local port came from. Ordered most → least
25244
+ * authoritative, and the whole point of returning it: a client must be able to
25245
+ * tell a FACT about the hub's socket from an echo of its own guess.
25246
+ */
25247
+ var LocalPortSourceEnum = _enum([
25248
+ "server-config",
25249
+ "server-env",
25250
+ "caller-hint",
25251
+ "default"
25252
+ ]);
25253
+ /** The port every LAN/loopback `baseUrl` in the same result was built with. */
25254
+ var AdvertisedLocalPortSchema = object({
25255
+ port: number().int().min(1).max(65535),
25256
+ source: LocalPortSourceEnum
25257
+ });
25258
+ var GetConnectionEndpointsResultSchema = object({
25259
+ endpoints: array(ConnectionEndpointSchema).readonly(),
25260
+ /**
25261
+ * The port the hub built the LAN/loopback URLs with, and where that number
25262
+ * came from.
25263
+ *
25264
+ * Returned rather than merely applied, because "the URL is right" and "the
25265
+ * client can KNOW the URL is right" are different properties. A client that
25266
+ * only sees a corrected URL cannot distinguish a hub that fixed the port from
25267
+ * a hub that echoed the port the client sent, so it cannot decide whether to
25268
+ * race the candidate or discard it. With `source` it can: anything but
25269
+ * `caller-hint` is the hub's own socket.
25270
+ *
25271
+ * Absent on hubs predating this field — a client that finds it missing is
25272
+ * talking to an echoing hub and must degrade exactly as it does for
25273
+ * `caller-hint`.
25274
+ */
25275
+ localPort: AdvertisedLocalPortSchema
25276
+ });
25221
25277
  /**
25222
25278
  * The chosen outbound endpoint for notification artifacts. `baseUrl: null` =
25223
25279
  * AUTO (resolved from the candidate ranking at send time); `resolved` reports
@@ -25238,8 +25294,13 @@ var AllowedAddressesSchema = object({
25238
25294
  */
25239
25295
  addresses: array(string()).readonly() });
25240
25296
  method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
25241
- /** Local hub HTTP port to use in base URLs. */
25242
- port: number().int().min(1).max(65535),
25297
+ /**
25298
+ * LEGACY HINT — do not send from new code. Kept optional so clients
25299
+ * written against the echoing contract keep working; the hub uses it
25300
+ * only when it cannot read its own port, and says so via
25301
+ * `localPort.source === 'caller-hint'`.
25302
+ */
25303
+ port: number().int().min(1).max(65535).optional(),
25243
25304
  /** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
25244
25305
  * candidate. Default `true`. */
25245
25306
  includeLoopback: boolean().optional(),
@@ -20254,6 +20254,12 @@ var CameraStatusSchema = object({
20254
20254
  /** Unix timestamp (ms) when this snapshot was composed server-side. */
20255
20255
  fetchedAt: number()
20256
20256
  });
20257
+ var InferenceDeviceExclusionReasonSchema = _enum([
20258
+ "disabled",
20259
+ "unavailable",
20260
+ "cannot-host-camera-root",
20261
+ "accelerator-preferred"
20262
+ ]);
20257
20263
  var NodeInferenceDeviceSchema = object({
20258
20264
  /** Stable per-node device key, e.g. `openvino:npu`, `edgetpu:usb`, `cpu`. */
20259
20265
  key: string(),
@@ -20284,7 +20290,17 @@ var NodeInferenceDeviceSchema = object({
20284
20290
  * available per format; this is the stored selection that becomes the
20285
20291
  * default for EVERY camera landing on this accelerator.
20286
20292
  */
20287
- steps: record(string(), DeviceStepConfigSchema).optional()
20293
+ steps: record(string(), DeviceStepConfigSchema).optional(),
20294
+ /**
20295
+ * `null` when the device IS a camera-root candidate on this node; otherwise
20296
+ * the reason the dispatcher drops it. Computed by the SAME
20297
+ * `resolveInferenceDeviceEligibility` the dispatcher runs, so this view can
20298
+ * never disagree with the election — deriving it in the UI from
20299
+ * `enabled`/`available` would silently miss `cannot-host-camera-root` (needs
20300
+ * the node's model catalog) and `accelerator-preferred` (needs the node-wide
20301
+ * "an accelerator is serving" predicate).
20302
+ */
20303
+ exclusion: InferenceDeviceExclusionReasonSchema.nullable()
20288
20304
  });
20289
20305
  var NodeInferenceDevicesSchema = object({
20290
20306
  nodeId: string(),
@@ -25205,7 +25221,12 @@ var ListResultSchema = object({
25205
25221
  probedAt: number()
25206
25222
  });
25207
25223
  var PreferredSchema = LocalInterfaceSchema.nullable();
25208
- var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
25224
+ /**
25225
+ * Candidate base URL for the SDK to race on connect. Order matters —
25226
+ * the SDK should attempt these top-to-bottom with a short per-candidate
25227
+ * timeout (e.g. 1500ms) and cache the winner for the session.
25228
+ */
25229
+ var ConnectionEndpointSchema = object({
25209
25230
  /** Operator-facing label (e.g. "LAN — en0", "Public tunnel"). */
25210
25231
  label: string(),
25211
25232
  /** Fully-formed base URL with scheme + host + port. */
@@ -25248,7 +25269,42 @@ var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
25248
25269
  * ordering between polls.
25249
25270
  */
25250
25271
  priority: number()
25251
- })).readonly() });
25272
+ });
25273
+ /**
25274
+ * Where the advertised local port came from. Ordered most → least
25275
+ * authoritative, and the whole point of returning it: a client must be able to
25276
+ * tell a FACT about the hub's socket from an echo of its own guess.
25277
+ */
25278
+ var LocalPortSourceEnum = _enum([
25279
+ "server-config",
25280
+ "server-env",
25281
+ "caller-hint",
25282
+ "default"
25283
+ ]);
25284
+ /** The port every LAN/loopback `baseUrl` in the same result was built with. */
25285
+ var AdvertisedLocalPortSchema = object({
25286
+ port: number().int().min(1).max(65535),
25287
+ source: LocalPortSourceEnum
25288
+ });
25289
+ var GetConnectionEndpointsResultSchema = object({
25290
+ endpoints: array(ConnectionEndpointSchema).readonly(),
25291
+ /**
25292
+ * The port the hub built the LAN/loopback URLs with, and where that number
25293
+ * came from.
25294
+ *
25295
+ * Returned rather than merely applied, because "the URL is right" and "the
25296
+ * client can KNOW the URL is right" are different properties. A client that
25297
+ * only sees a corrected URL cannot distinguish a hub that fixed the port from
25298
+ * a hub that echoed the port the client sent, so it cannot decide whether to
25299
+ * race the candidate or discard it. With `source` it can: anything but
25300
+ * `caller-hint` is the hub's own socket.
25301
+ *
25302
+ * Absent on hubs predating this field — a client that finds it missing is
25303
+ * talking to an echoing hub and must degrade exactly as it does for
25304
+ * `caller-hint`.
25305
+ */
25306
+ localPort: AdvertisedLocalPortSchema
25307
+ });
25252
25308
  /**
25253
25309
  * The chosen outbound endpoint for notification artifacts. `baseUrl: null` =
25254
25310
  * AUTO (resolved from the candidate ranking at send time); `resolved` reports
@@ -25269,8 +25325,13 @@ var AllowedAddressesSchema = object({
25269
25325
  */
25270
25326
  addresses: array(string()).readonly() });
25271
25327
  method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
25272
- /** Local hub HTTP port to use in base URLs. */
25273
- port: number().int().min(1).max(65535),
25328
+ /**
25329
+ * LEGACY HINT — do not send from new code. Kept optional so clients
25330
+ * written against the echoing contract keep working; the hub uses it
25331
+ * only when it cannot read its own port, and says so via
25332
+ * `localPort.source === 'caller-hint'`.
25333
+ */
25334
+ port: number().int().min(1).max(65535).optional(),
25274
25335
  /** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
25275
25336
  * candidate. Default `true`. */
25276
25337
  includeLoopback: boolean().optional(),
@@ -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-FAVcx3hJ.js");
5
+ const require_dist = require("../dist-wQmgHP6h.js");
6
6
  let node_fs = require("node:fs");
7
7
  let node_fs$1 = require_dist.__toESM(node_fs, 1);
8
8
  node_fs = require_dist.__toESM(node_fs);
@@ -1,4 +1,4 @@
1
- import { A as PoolMemoryWatchdog, St as BaseAddon, ct as parseProcStatus, et as embeddingEncoderCapability, mt as resolvePoolMemoryPolicy, rt as hfModelUrl } from "../dist-DiU9qiuA.mjs";
1
+ import { A as PoolMemoryWatchdog, St as BaseAddon, ct as parseProcStatus, et as embeddingEncoderCapability, mt as resolvePoolMemoryPolicy, rt as hfModelUrl } from "../dist-Dv2LOr1d.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs from "node:fs";
4
4
  import "node:fs";
@@ -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.26",
6
+ version: "1.2.27",
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.94",
21
+ version: "1.2.95",
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.64",
36
+ version: "1.2.65",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_analytics_widgets",
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.94",
39
+ version: "1.2.95",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -45,7 +45,7 @@ async function r() {
45
45
  }
46
46
  },
47
47
  "@camstack/sdk": {
48
- version: "1.2.26",
48
+ version: "1.2.27",
49
49
  scope: "default",
50
50
  shareConfig: {
51
51
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.64",
84
+ version: "1.2.65",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,