camstack 1.2.205 → 1.2.206

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/cli.js CHANGED
@@ -37,7 +37,7 @@ async function runServe(args) {
37
37
  ...typeof values.data === "string" ? { data: values.data } : {}
38
38
  };
39
39
  Object.assign(process.env, buildServeEnv(opts));
40
- await import("./launcher-F23ZMT2V.js");
40
+ await import("./launcher-XKPFUE4M.js");
41
41
  }
42
42
 
43
43
  // src/commands/agent.ts
@@ -82,7 +82,7 @@ async function runAgent(args) {
82
82
  ...typeof values.port === "string" ? { port: values.port } : {}
83
83
  };
84
84
  Object.assign(process.env, buildAgentEnv(opts));
85
- await import("./launcher-F23ZMT2V.js");
85
+ await import("./launcher-XKPFUE4M.js");
86
86
  }
87
87
 
88
88
  // src/commands/setup.ts
@@ -56613,6 +56613,19 @@ var NodeInferenceDeviceSchema = external_exports.object({
56613
56613
  /** Whether the node's live probe reports the device as usable right now. */
56614
56614
  available: external_exports.boolean(),
56615
56615
  /**
56616
+ * Is the device on the node at all (D919)? `present` — the live probe
56617
+ * reported it; `absent` — the probe ANSWERED and did not report it, so only
56618
+ * its stored settings remain (unplugged, moved to another node): never
56619
+ * eligible, whatever its stored `enabled`, and forgettable with
56620
+ * `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
56621
+ * claimed (D315). Optional only for an orchestrator older than the field.
56622
+ */
56623
+ presence: external_exports.enum([
56624
+ "present",
56625
+ "absent",
56626
+ "unknown"
56627
+ ]).optional(),
56628
+ /**
56616
56629
  * Whether this device participates in dispatch. AUTO default (spec C2):
56617
56630
  * accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
56618
56631
  * entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
@@ -57011,6 +57024,20 @@ var pipelineOrchestratorCapability = {
57011
57024
  */
57012
57025
  getNodeInferenceDevices: method(external_exports.object({ nodeId: external_exports.string() }), NodeInferenceDevicesSchema),
57013
57026
  /**
57027
+ * Delete ONE stored device entry of a node — the "forget" of a device the
57028
+ * node no longer has (D919). Refused unless the node's probe ANSWERED and
57029
+ * did not report the key: a present device is switched off, not forgotten,
57030
+ * and an unreachable node proves nothing about its hardware. The rest of
57031
+ * the node's map is kept as stored.
57032
+ */
57033
+ forgetInferenceDevice: method(external_exports.object({
57034
+ agentNodeId: external_exports.string(),
57035
+ deviceKey: external_exports.string()
57036
+ }), external_exports.object({ success: external_exports.literal(true) }), {
57037
+ kind: "mutation",
57038
+ auth: "admin"
57039
+ }),
57040
+ /**
57014
57041
  * Reset one node's pipeline to its hardware-aware defaults — the HONEST
57015
57042
  * reset (replaces the executor's legacy `resetToDefault`, which cleared a
57016
57043
  * dead persisted step-tree seed nothing in the live path read):
@@ -65344,7 +65371,7 @@ var motionTriggerCapability = {
65344
65371
  enabled: external_exports.boolean()
65345
65372
  }), external_exports.void(), {
65346
65373
  kind: "mutation",
65347
- auth: "admin"
65374
+ auth: "protected"
65348
65375
  }) },
65349
65376
  events: { onMotionTriggerChanged: { data: external_exports.object({
65350
65377
  deviceId: external_exports.number(),
@@ -65889,6 +65916,13 @@ var TopologyNodeSchema = external_exports.object({
65889
65916
  cpuModel: external_exports.string().nullable(),
65890
65917
  cpuCores: external_exports.number(),
65891
65918
  memoryMB: external_exports.number(),
65919
+ /**
65920
+ * The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
65921
+ * openvino, edgetpu …) — not its devices. An installed runtime says nothing
65922
+ * about whether its hardware is there (a Coral delegate stays installed
65923
+ * after the stick leaves, D919); the live device set is
65924
+ * `pipelineOrchestrator.getNodeInferenceDevices`.
65925
+ */
65892
65926
  engines: external_exports.array(external_exports.string()).readonly(),
65893
65927
  isHub: external_exports.boolean(),
65894
65928
  isOnline: external_exports.boolean(),
@@ -67076,6 +67110,18 @@ var ResolvedInferenceConfigSchema = external_exports.object({
67076
67110
  format: ModelFormatSchema,
67077
67111
  reason: external_exports.string()
67078
67112
  });
67113
+ var AcceleratorRescanSchema = external_exports.object({
67114
+ devices: external_exports.array(InferenceDeviceDescriptorSchema).readonly(),
67115
+ appeared: external_exports.array(external_exports.string()).readonly(),
67116
+ disappeared: external_exports.array(external_exports.string()).readonly(),
67117
+ usbBus: external_exports.enum(["observed", "unobservable"]),
67118
+ decidedBy: external_exports.enum([
67119
+ "usb-ids",
67120
+ "pci",
67121
+ "delegate-fallback",
67122
+ "none"
67123
+ ])
67124
+ });
67079
67125
  var platformProbeCapability = {
67080
67126
  name: "platform-probe",
67081
67127
  scope: "system",
@@ -67084,7 +67130,18 @@ var platformProbeCapability = {
67084
67130
  getCapabilities: method(external_exports.void(), PlatformCapabilitiesSchema),
67085
67131
  getHardware: method(external_exports.void(), HardwareInfoSchema),
67086
67132
  resolveInferenceConfig: method(external_exports.object({ requirements: external_exports.array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema),
67087
- resolveHwAccel: method(external_exports.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema)
67133
+ resolveHwAccel: method(external_exports.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema),
67134
+ /**
67135
+ * Re-probe this node's accelerators NOW (Coral USB ids + PCIe apex units;
67136
+ * `/sys` and `/dev` reads, no model load) and rebuild the device list that
67137
+ * `getCapabilities` serves. The same re-probe runs every 60 s on its own;
67138
+ * this is the operator's "rescan inference devices". Target a node with the
67139
+ * `{ nodeId }` routing input, like `getCapabilities`.
67140
+ */
67141
+ rescanAccelerators: method(external_exports.void(), AcceleratorRescanSchema, {
67142
+ kind: "mutation",
67143
+ auth: "admin"
67144
+ })
67088
67145
  }
67089
67146
  };
67090
67147
  var PowerMeterStatusSchema = external_exports.object({
@@ -77400,6 +77457,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
77400
77457
  addonId: null,
77401
77458
  access: "delete"
77402
77459
  },
77460
+ "pipelineOrchestrator.forgetInferenceDevice": {
77461
+ capName: "pipeline-orchestrator",
77462
+ capScope: "system",
77463
+ addonId: null,
77464
+ access: "delete"
77465
+ },
77403
77466
  "pipelineOrchestrator.getAgentLoad": {
77404
77467
  capName: "pipeline-orchestrator",
77405
77468
  capScope: "system",
@@ -77976,6 +78039,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
77976
78039
  addonId: null,
77977
78040
  access: "view"
77978
78041
  },
78042
+ "platformProbe.rescanAccelerators": {
78043
+ capName: "platform-probe",
78044
+ capScope: "system",
78045
+ addonId: null,
78046
+ access: "create"
78047
+ },
77979
78048
  "platformProbe.resolveHwAccel": {
77980
78049
  capName: "platform-probe",
77981
78050
  capScope: "system",
@@ -24024,9 +24024,9 @@ var require_zod = __commonJS({
24024
24024
  }
24025
24025
  });
24026
24026
 
24027
- // ../system/dist/dist-DuBtzSCh.js
24028
- var require_dist_DuBtzSCh = __commonJS({
24029
- "../system/dist/dist-DuBtzSCh.js"(exports) {
24027
+ // ../system/dist/dist-DRL3rEfN.js
24028
+ var require_dist_DRL3rEfN = __commonJS({
24029
+ "../system/dist/dist-DRL3rEfN.js"(exports) {
24030
24030
  "use strict";
24031
24031
  var zod = require_zod();
24032
24032
  __require("crypto");
@@ -70688,6 +70688,19 @@ var require_dist_DuBtzSCh = __commonJS({
70688
70688
  /** Whether the node's live probe reports the device as usable right now. */
70689
70689
  available: zod.z.boolean(),
70690
70690
  /**
70691
+ * Is the device on the node at all (D919)? `present` — the live probe
70692
+ * reported it; `absent` — the probe ANSWERED and did not report it, so only
70693
+ * its stored settings remain (unplugged, moved to another node): never
70694
+ * eligible, whatever its stored `enabled`, and forgettable with
70695
+ * `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
70696
+ * claimed (D315). Optional only for an orchestrator older than the field.
70697
+ */
70698
+ presence: zod.z.enum([
70699
+ "present",
70700
+ "absent",
70701
+ "unknown"
70702
+ ]).optional(),
70703
+ /**
70691
70704
  * Whether this device participates in dispatch. AUTO default (spec C2):
70692
70705
  * accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
70693
70706
  * entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
@@ -71084,6 +71097,20 @@ var require_dist_DuBtzSCh = __commonJS({
71084
71097
  */
71085
71098
  getNodeInferenceDevices: method(zod.z.object({ nodeId: zod.z.string() }), NodeInferenceDevicesSchema),
71086
71099
  /**
71100
+ * Delete ONE stored device entry of a node — the "forget" of a device the
71101
+ * node no longer has (D919). Refused unless the node's probe ANSWERED and
71102
+ * did not report the key: a present device is switched off, not forgotten,
71103
+ * and an unreachable node proves nothing about its hardware. The rest of
71104
+ * the node's map is kept as stored.
71105
+ */
71106
+ forgetInferenceDevice: method(zod.z.object({
71107
+ agentNodeId: zod.z.string(),
71108
+ deviceKey: zod.z.string()
71109
+ }), zod.z.object({ success: zod.z.literal(true) }), {
71110
+ kind: "mutation",
71111
+ auth: "admin"
71112
+ }),
71113
+ /**
71087
71114
  * Reset one node's pipeline to its hardware-aware defaults — the HONEST
71088
71115
  * reset (replaces the executor's legacy `resetToDefault`, which cleared a
71089
71116
  * dead persisted step-tree seed nothing in the live path read):
@@ -79419,7 +79446,7 @@ var require_dist_DuBtzSCh = __commonJS({
79419
79446
  enabled: zod.z.boolean()
79420
79447
  }), zod.z.void(), {
79421
79448
  kind: "mutation",
79422
- auth: "admin"
79449
+ auth: "protected"
79423
79450
  }) },
79424
79451
  events: { onMotionTriggerChanged: { data: zod.z.object({
79425
79452
  deviceId: zod.z.number(),
@@ -79962,6 +79989,13 @@ var require_dist_DuBtzSCh = __commonJS({
79962
79989
  cpuModel: zod.z.string().nullable(),
79963
79990
  cpuCores: zod.z.number(),
79964
79991
  memoryMB: zod.z.number(),
79992
+ /**
79993
+ * The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
79994
+ * openvino, edgetpu …) — not its devices. An installed runtime says nothing
79995
+ * about whether its hardware is there (a Coral delegate stays installed
79996
+ * after the stick leaves, D919); the live device set is
79997
+ * `pipelineOrchestrator.getNodeInferenceDevices`.
79998
+ */
79965
79999
  engines: zod.z.array(zod.z.string()).readonly(),
79966
80000
  isHub: zod.z.boolean(),
79967
80001
  isOnline: zod.z.boolean(),
@@ -81149,6 +81183,18 @@ var require_dist_DuBtzSCh = __commonJS({
81149
81183
  format: ModelFormatSchema,
81150
81184
  reason: zod.z.string()
81151
81185
  });
81186
+ var AcceleratorRescanSchema = zod.z.object({
81187
+ devices: zod.z.array(InferenceDeviceDescriptorSchema).readonly(),
81188
+ appeared: zod.z.array(zod.z.string()).readonly(),
81189
+ disappeared: zod.z.array(zod.z.string()).readonly(),
81190
+ usbBus: zod.z.enum(["observed", "unobservable"]),
81191
+ decidedBy: zod.z.enum([
81192
+ "usb-ids",
81193
+ "pci",
81194
+ "delegate-fallback",
81195
+ "none"
81196
+ ])
81197
+ });
81152
81198
  var platformProbeCapability = {
81153
81199
  name: "platform-probe",
81154
81200
  scope: "system",
@@ -81157,7 +81203,18 @@ var require_dist_DuBtzSCh = __commonJS({
81157
81203
  getCapabilities: method(zod.z.void(), PlatformCapabilitiesSchema),
81158
81204
  getHardware: method(zod.z.void(), HardwareInfoSchema),
81159
81205
  resolveInferenceConfig: method(zod.z.object({ requirements: zod.z.array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema),
81160
- resolveHwAccel: method(zod.z.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema)
81206
+ resolveHwAccel: method(zod.z.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema),
81207
+ /**
81208
+ * Re-probe this node's accelerators NOW (Coral USB ids + PCIe apex units;
81209
+ * `/sys` and `/dev` reads, no model load) and rebuild the device list that
81210
+ * `getCapabilities` serves. The same re-probe runs every 60 s on its own;
81211
+ * this is the operator's "rescan inference devices". Target a node with the
81212
+ * `{ nodeId }` routing input, like `getCapabilities`.
81213
+ */
81214
+ rescanAccelerators: method(zod.z.void(), AcceleratorRescanSchema, {
81215
+ kind: "mutation",
81216
+ auth: "admin"
81217
+ })
81161
81218
  }
81162
81219
  };
81163
81220
  var PowerMeterStatusSchema = zod.z.object({
@@ -93039,6 +93096,12 @@ var require_dist_DuBtzSCh = __commonJS({
93039
93096
  addonId: null,
93040
93097
  access: "delete"
93041
93098
  },
93099
+ "pipelineOrchestrator.forgetInferenceDevice": {
93100
+ capName: "pipeline-orchestrator",
93101
+ capScope: "system",
93102
+ addonId: null,
93103
+ access: "delete"
93104
+ },
93042
93105
  "pipelineOrchestrator.getAgentLoad": {
93043
93106
  capName: "pipeline-orchestrator",
93044
93107
  capScope: "system",
@@ -93615,6 +93678,12 @@ var require_dist_DuBtzSCh = __commonJS({
93615
93678
  addonId: null,
93616
93679
  access: "view"
93617
93680
  },
93681
+ "platformProbe.rescanAccelerators": {
93682
+ capName: "platform-probe",
93683
+ capScope: "system",
93684
+ addonId: null,
93685
+ access: "create"
93686
+ },
93618
93687
  "platformProbe.resolveHwAccel": {
93619
93688
  capName: "platform-probe",
93620
93689
  capScope: "system",
@@ -114288,11 +114357,11 @@ ${values.join("\n")}` : `${blockName} :`;
114288
114357
  }
114289
114358
  });
114290
114359
 
114291
- // ../system/dist/device-ca-CC58lmNV.js
114292
- var require_device_ca_CC58lmNV = __commonJS({
114293
- "../system/dist/device-ca-CC58lmNV.js"(exports) {
114360
+ // ../system/dist/device-ca-R4MZZtc0.js
114361
+ var require_device_ca_R4MZZtc0 = __commonJS({
114362
+ "../system/dist/device-ca-R4MZZtc0.js"(exports) {
114294
114363
  "use strict";
114295
- var require_dist10 = require_dist_DuBtzSCh();
114364
+ var require_dist10 = require_dist_DRL3rEfN();
114296
114365
  var require_x509_es = require_x509_es_C4cOo48M();
114297
114366
  var node_crypto = __require("crypto");
114298
114367
  var SYSTEM_SECRET_OWNER = "system";
@@ -114750,7 +114819,7 @@ var require_alerts_addon = __commonJS({
114750
114819
  [Symbol.toStringTag]: { value: "Module" }
114751
114820
  });
114752
114821
  require_chunk_Cek0wNdY();
114753
- var require_dist10 = require_dist_DuBtzSCh();
114822
+ var require_dist10 = require_dist_DRL3rEfN();
114754
114823
  var require_read_all_rows$1 = require_read_all_rows_CVoO1ONM();
114755
114824
  function nextEpisodeId(input) {
114756
114825
  const { previous } = input;
@@ -116218,7 +116287,7 @@ var require_calendars_addon = __commonJS({
116218
116287
  [Symbol.toStringTag]: { value: "Module" }
116219
116288
  });
116220
116289
  require_chunk_Cek0wNdY();
116221
- var require_dist10 = require_dist_DuBtzSCh();
116290
+ var require_dist10 = require_dist_DRL3rEfN();
116222
116291
  var require_settle_sources = require_settle_sources_Bhsy57y();
116223
116292
  var zod = require_zod();
116224
116293
  var CALENDAR_COLOR_PALETTE = [
@@ -116434,11 +116503,11 @@ var require_calendars = __commonJS({
116434
116503
  }
116435
116504
  });
116436
116505
 
116437
- // ../system/dist/composition-sources-BGXTiUZm.js
116438
- var require_composition_sources_BGXTiUZm = __commonJS({
116439
- "../system/dist/composition-sources-BGXTiUZm.js"(exports) {
116506
+ // ../system/dist/composition-sources-CRJffEiB.js
116507
+ var require_composition_sources_CRJffEiB = __commonJS({
116508
+ "../system/dist/composition-sources-CRJffEiB.js"(exports) {
116440
116509
  "use strict";
116441
- var require_dist10 = require_dist_DuBtzSCh();
116510
+ var require_dist10 = require_dist_DRL3rEfN();
116442
116511
  function normalizedNativeOwner(owner) {
116443
116512
  const trimmed = owner?.trim();
116444
116513
  return trimmed ? trimmed : null;
@@ -116553,8 +116622,8 @@ var require_composer_addon = __commonJS({
116553
116622
  [Symbol.toStringTag]: { value: "Module" }
116554
116623
  });
116555
116624
  require_chunk_Cek0wNdY();
116556
- var require_dist10 = require_dist_DuBtzSCh();
116557
- var require_composition_sources = require_composition_sources_BGXTiUZm();
116625
+ var require_dist10 = require_dist_DRL3rEfN();
116626
+ var require_composition_sources = require_composition_sources_CRJffEiB();
116558
116627
  var zod = require_zod();
116559
116628
  function isRecord$2(value) {
116560
116629
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -120364,7 +120433,7 @@ var require_console_logging = __commonJS({
120364
120433
  [Symbol.toStringTag]: { value: "Module" }
120365
120434
  });
120366
120435
  require_chunk_Cek0wNdY();
120367
- var require_dist10 = require_dist_DuBtzSCh();
120436
+ var require_dist10 = require_dist_DRL3rEfN();
120368
120437
  var require_formatter = require_formatter_DqAKDlvN();
120369
120438
  var LEVEL_RANK = {
120370
120439
  debug: 0,
@@ -125028,9 +125097,9 @@ var require_core_blocks_addon = __commonJS({
125028
125097
  "use strict";
125029
125098
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
125030
125099
  var require_chunk = require_chunk_Cek0wNdY();
125031
- var require_dist10 = require_dist_DuBtzSCh();
125100
+ var require_dist10 = require_dist_DRL3rEfN();
125032
125101
  var require_read_all_rows$1 = require_read_all_rows_CVoO1ONM();
125033
- var require_composition_sources = require_composition_sources_BGXTiUZm();
125102
+ var require_composition_sources = require_composition_sources_CRJffEiB();
125034
125103
  var require_prefix_range = require_prefix_range_D_KueXbQ();
125035
125104
  var require_prefix_walk = require_prefix_walk_Dv6MLZlM();
125036
125105
  var zod = require_zod();
@@ -138198,7 +138267,7 @@ var require_device_manager_addon = __commonJS({
138198
138267
  [Symbol.toStringTag]: { value: "Module" }
138199
138268
  });
138200
138269
  require_chunk_Cek0wNdY();
138201
- var require_dist10 = require_dist_DuBtzSCh();
138270
+ var require_dist10 = require_dist_DRL3rEfN();
138202
138271
  var require_read_all_rows$1 = require_read_all_rows_CVoO1ONM();
138203
138272
  var require_prefix_range = require_prefix_range_D_KueXbQ();
138204
138273
  var require_prefix_walk = require_prefix_walk_Dv6MLZlM();
@@ -147270,7 +147339,7 @@ var require_hub_forwarder = __commonJS({
147270
147339
  [Symbol.toStringTag]: { value: "Module" }
147271
147340
  });
147272
147341
  require_chunk_Cek0wNdY();
147273
- var require_dist10 = require_dist_DuBtzSCh();
147342
+ var require_dist10 = require_dist_DRL3rEfN();
147274
147343
  var require_formatter = require_formatter_DqAKDlvN();
147275
147344
  var DEFAULT_OUTBOUND_BUFFER_SIZE = 500;
147276
147345
  var HubForwarderDestination = class {
@@ -147404,7 +147473,7 @@ var require_liveness_monitor_addon = __commonJS({
147404
147473
  "use strict";
147405
147474
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
147406
147475
  require_chunk_Cek0wNdY();
147407
- var require_dist10 = require_dist_DuBtzSCh();
147476
+ var require_dist10 = require_dist_DRL3rEfN();
147408
147477
  var NO_DEVICES = "liveness:no-devices";
147409
147478
  var ALL_OFFLINE = "liveness:all-devices-offline";
147410
147479
  var NO_FOOTAGE_PREFIX = "liveness:no-footage:";
@@ -147767,10 +147836,10 @@ var require_local_auth_addon = __commonJS({
147767
147836
  [Symbol.toStringTag]: { value: "Module" }
147768
147837
  });
147769
147838
  var require_chunk = require_chunk_Cek0wNdY();
147770
- var require_dist10 = require_dist_DuBtzSCh();
147839
+ var require_dist10 = require_dist_DRL3rEfN();
147771
147840
  var require_safe_buffer$1 = require_safe_buffer_D3aoa_7X();
147772
147841
  var require_ms$1 = require_ms_LB3giGoU();
147773
- var require_device_ca = require_device_ca_CC58lmNV();
147842
+ var require_device_ca = require_device_ca_R4MZZtc0();
147774
147843
  var require_read_all_rows$1 = require_read_all_rows_CVoO1ONM();
147775
147844
  var zod = require_zod();
147776
147845
  var node_crypto = __require("crypto");
@@ -158158,7 +158227,7 @@ var require_loki_logging = __commonJS({
158158
158227
  [Symbol.toStringTag]: { value: "Module" }
158159
158228
  });
158160
158229
  require_chunk_Cek0wNdY();
158161
- var require_dist10 = require_dist_DuBtzSCh();
158230
+ var require_dist10 = require_dist_DRL3rEfN();
158162
158231
  var require_log_read_filter = require_log_read_filter_Bi066jwU();
158163
158232
  var zod = require_zod();
158164
158233
  function sanitizeLabelName(raw) {
@@ -159119,7 +159188,7 @@ var require_native_metrics_addon = __commonJS({
159119
159188
  [Symbol.toStringTag]: { value: "Module" }
159120
159189
  });
159121
159190
  var require_chunk = require_chunk_Cek0wNdY();
159122
- var require_dist10 = require_dist_DuBtzSCh();
159191
+ var require_dist10 = require_dist_DRL3rEfN();
159123
159192
  var node_fs_promises = __require("fs/promises");
159124
159193
  var node_util = __require("util");
159125
159194
  var node_os = __require("os");
@@ -161686,7 +161755,7 @@ var require_device_history_addon = __commonJS({
161686
161755
  [Symbol.toStringTag]: { value: "Module" }
161687
161756
  });
161688
161757
  require_chunk_Cek0wNdY();
161689
- var require_dist10 = require_dist_DuBtzSCh();
161758
+ var require_dist10 = require_dist_DRL3rEfN();
161690
161759
  var FIVE_MINUTES_MS = 5 * 6e4;
161691
161760
  var HOUR_MS = 60 * 6e4;
161692
161761
  var DAY_MS = 24 * HOUR_MS;
@@ -164979,7 +165048,7 @@ var require_filesystem_storage_addon = __commonJS({
164979
165048
  [Symbol.toStringTag]: { value: "Module" }
164980
165049
  });
164981
165050
  var require_chunk = require_chunk_Cek0wNdY();
164982
- var require_dist10 = require_dist_DuBtzSCh();
165051
+ var require_dist10 = require_dist_DRL3rEfN();
164983
165052
  var node_crypto = __require("crypto");
164984
165053
  var node_fs_promises = __require("fs/promises");
164985
165054
  var node_path = __require("path");
@@ -166089,12 +166158,12 @@ var require_lib = __commonJS({
166089
166158
  }
166090
166159
  });
166091
166160
 
166092
- // ../system/dist/wal-maintenance-EK28XXnc.js
166093
- var require_wal_maintenance_EK28XXnc = __commonJS({
166094
- "../system/dist/wal-maintenance-EK28XXnc.js"(exports) {
166161
+ // ../system/dist/wal-maintenance-DYvzJiuK.js
166162
+ var require_wal_maintenance_DYvzJiuK = __commonJS({
166163
+ "../system/dist/wal-maintenance-DYvzJiuK.js"(exports) {
166095
166164
  "use strict";
166096
166165
  var require_chunk = require_chunk_Cek0wNdY();
166097
- var require_dist10 = require_dist_DuBtzSCh();
166166
+ var require_dist10 = require_dist_DRL3rEfN();
166098
166167
  var require_prefix_range = require_prefix_range_D_KueXbQ();
166099
166168
  var node_crypto = __require("crypto");
166100
166169
  var node_module = __require("module");
@@ -170278,9 +170347,9 @@ var require_sqlite_settings_addon = __commonJS({
170278
170347
  [Symbol.toStringTag]: { value: "Module" }
170279
170348
  });
170280
170349
  var require_chunk = require_chunk_Cek0wNdY();
170281
- var require_dist10 = require_dist_DuBtzSCh();
170350
+ var require_dist10 = require_dist_DRL3rEfN();
170282
170351
  var require_retired_settings_keys = require_retired_settings_keys_CGUqX_Oz();
170283
- var require_wal_maintenance = require_wal_maintenance_EK28XXnc();
170352
+ var require_wal_maintenance = require_wal_maintenance_DYvzJiuK();
170284
170353
  var require_sqlite_snapshot_protocol = require_sqlite_snapshot_protocol_B9OndqZv();
170285
170354
  var require_wal_checkpoint_policy = require_wal_checkpoint_policy_d2z2qPqx();
170286
170355
  var node_fs_promises = __require("fs/promises");
@@ -171908,7 +171977,7 @@ var require_sqlite_storage = __commonJS({
171908
171977
  });
171909
171978
  require_chunk_Cek0wNdY();
171910
171979
  var require_builtins_sqlite_storage_filesystem_storage_addon = require_filesystem_storage_addon();
171911
- var require_wal_maintenance = require_wal_maintenance_EK28XXnc();
171980
+ var require_wal_maintenance = require_wal_maintenance_DYvzJiuK();
171912
171981
  var require_builtins_sqlite_storage_sqlite_settings_addon = require_sqlite_settings_addon();
171913
171982
  var ConfigStore = class {
171914
171983
  db;
@@ -171992,7 +172061,7 @@ var require_storage_orchestrator_addon = __commonJS({
171992
172061
  [Symbol.toStringTag]: { value: "Module" }
171993
172062
  });
171994
172063
  var require_chunk = require_chunk_Cek0wNdY();
171995
- var require_dist10 = require_dist_DuBtzSCh();
172064
+ var require_dist10 = require_dist_DRL3rEfN();
171996
172065
  var require_read_all_rows$1 = require_read_all_rows_CVoO1ONM();
171997
172066
  var zod = require_zod();
171998
172067
  var node_crypto = __require("crypto");
@@ -176579,12 +176648,12 @@ var require_storage_orchestrator = __commonJS({
176579
176648
  }
176580
176649
  });
176581
176650
 
176582
- // ../system/dist/agent-https-5OgOR-eF.js
176583
- var require_agent_https_5OgOR_eF = __commonJS({
176584
- "../system/dist/agent-https-5OgOR-eF.js"(exports) {
176651
+ // ../system/dist/agent-https-D_oo3PNv.js
176652
+ var require_agent_https_D_oo3PNv = __commonJS({
176653
+ "../system/dist/agent-https-D_oo3PNv.js"(exports) {
176585
176654
  "use strict";
176586
176655
  var require_chunk = require_chunk_Cek0wNdY();
176587
- var require_dist10 = require_dist_DuBtzSCh();
176656
+ var require_dist10 = require_dist_DRL3rEfN();
176588
176657
  var require_x509_es = require_x509_es_C4cOo48M();
176589
176658
  var zod = require_zod();
176590
176659
  var node_crypto = __require("crypto");
@@ -177642,11 +177711,11 @@ var require_agent_https_5OgOR_eF = __commonJS({
177642
177711
  }
177643
177712
  });
177644
177713
 
177645
- // ../system/dist/constants-2mPqJjkR.js
177646
- var require_constants_2mPqJjkR = __commonJS({
177647
- "../system/dist/constants-2mPqJjkR.js"(exports) {
177714
+ // ../system/dist/constants-WF1AqoKF.js
177715
+ var require_constants_WF1AqoKF = __commonJS({
177716
+ "../system/dist/constants-WF1AqoKF.js"(exports) {
177648
177717
  "use strict";
177649
- var MESH_CA_KEY_REF = require_dist_DuBtzSCh().buildSecretRef({
177718
+ var MESH_CA_KEY_REF = require_dist_DRL3rEfN().buildSecretRef({
177650
177719
  owner: "system",
177651
177720
  scope: { kind: "global" },
177652
177721
  fieldPath: "meshCaKey"
@@ -194743,11 +194812,11 @@ var require_system_config_addon = __commonJS({
194743
194812
  [Symbol.toStringTag]: { value: "Module" }
194744
194813
  });
194745
194814
  var require_chunk = require_chunk_Cek0wNdY();
194746
- var require_dist10 = require_dist_DuBtzSCh();
194815
+ var require_dist10 = require_dist_DRL3rEfN();
194747
194816
  var require_safe_buffer$1 = require_safe_buffer_D3aoa_7X();
194748
194817
  var require_x509_es = require_x509_es_C4cOo48M();
194749
- var require_agent_https = require_agent_https_5OgOR_eF();
194750
- var require_constants$8 = require_constants_2mPqJjkR();
194818
+ var require_agent_https = require_agent_https_D_oo3PNv();
194819
+ var require_constants$8 = require_constants_WF1AqoKF();
194751
194820
  var require_src$1 = require_src_CnAqG6EF();
194752
194821
  var zod = require_zod();
194753
194822
  var node_crypto = __require("crypto");
@@ -275799,7 +275868,7 @@ var require_winston_logging = __commonJS({
275799
275868
  [Symbol.toStringTag]: { value: "Module" }
275800
275869
  });
275801
275870
  var require_chunk = require_chunk_Cek0wNdY();
275802
- var require_dist10 = require_dist_DuBtzSCh();
275871
+ var require_dist10 = require_dist_DRL3rEfN();
275803
275872
  var require_formatter = require_formatter_DqAKDlvN();
275804
275873
  var require_log_file_read_protocol = require_log_file_read_protocol_D0WcLbIV();
275805
275874
  var node_path = __require("path");
@@ -283602,14 +283671,14 @@ var require_lib_8oZrELLm = __commonJS({
283602
283671
  }
283603
283672
  });
283604
283673
 
283605
- // ../system/dist/hub-mdns-ciao-BLsX_2cL.js
283606
- var require_hub_mdns_ciao_BLsX_2cL = __commonJS({
283607
- "../system/dist/hub-mdns-ciao-BLsX_2cL.js"(exports) {
283674
+ // ../system/dist/hub-mdns-ciao-DUoTS6jN.js
283675
+ var require_hub_mdns_ciao_DUoTS6jN = __commonJS({
283676
+ "../system/dist/hub-mdns-ciao-DUoTS6jN.js"(exports) {
283608
283677
  "use strict";
283609
283678
  var require_chunk = require_chunk_Cek0wNdY();
283610
- var require_dist10 = require_dist_DuBtzSCh();
283679
+ var require_dist10 = require_dist_DRL3rEfN();
283611
283680
  var require_x509_es = require_x509_es_C4cOo48M();
283612
- var require_agent_https = require_agent_https_5OgOR_eF();
283681
+ var require_agent_https = require_agent_https_D_oo3PNv();
283613
283682
  var node_crypto = __require("crypto");
283614
283683
  var _camstack_types_node = require_node();
283615
283684
  var node_fs_promises = __require("fs/promises");
@@ -284621,12 +284690,12 @@ var require_platform_key_source_Di7HrlGR = __commonJS({
284621
284690
  }
284622
284691
  });
284623
284692
 
284624
- // ../system/dist/restore-archive-CxPAuaNs.js
284625
- var require_restore_archive_CxPAuaNs = __commonJS({
284626
- "../system/dist/restore-archive-CxPAuaNs.js"(exports) {
284693
+ // ../system/dist/restore-archive-Df6PsOHP.js
284694
+ var require_restore_archive_Df6PsOHP = __commonJS({
284695
+ "../system/dist/restore-archive-Df6PsOHP.js"(exports) {
284627
284696
  "use strict";
284628
284697
  var require_chunk = require_chunk_Cek0wNdY();
284629
- var require_dist10 = require_dist_DuBtzSCh();
284698
+ var require_dist10 = require_dist_DRL3rEfN();
284630
284699
  var zod = require_zod();
284631
284700
  var node_crypto = __require("crypto");
284632
284701
  var buffer = __require("buffer");
@@ -289121,9 +289190,9 @@ var require_restore_archive_CxPAuaNs = __commonJS({
289121
289190
  }
289122
289191
  });
289123
289192
 
289124
- // ../system/dist/coral-accelerators-oUXmmbc2.js
289125
- var require_coral_accelerators_oUXmmbc2 = __commonJS({
289126
- "../system/dist/coral-accelerators-oUXmmbc2.js"(exports) {
289193
+ // ../system/dist/coral-accelerators-Cri32b7q.js
289194
+ var require_coral_accelerators_Cri32b7q = __commonJS({
289195
+ "../system/dist/coral-accelerators-Cri32b7q.js"(exports) {
289127
289196
  "use strict";
289128
289197
  var require_chunk = require_chunk_Cek0wNdY();
289129
289198
  var _camstack_types_node = require_node();
@@ -289146,9 +289215,9 @@ var require_coral_accelerators_oUXmmbc2 = __commonJS({
289146
289215
  override: process.env[_camstack_types_node.EDGETPU_LIB_ENV]
289147
289216
  };
289148
289217
  }
289149
- function countUsbCorals(fsx) {
289218
+ function countUsbCorals(devices, fsx) {
289150
289219
  let count = 0;
289151
- for (const device of fsx.listUsbDevices()) {
289220
+ for (const device of devices) {
289152
289221
  const vendor = fsx.readUsbAttr(device, "idVendor").toLowerCase();
289153
289222
  const product = fsx.readUsbAttr(device, "idProduct").toLowerCase();
289154
289223
  if (CORAL_USB_IDS.some((id) => id.vendor === vendor && id.product === product)) count++;
@@ -289182,7 +289251,12 @@ var require_coral_accelerators_oUXmmbc2 = __commonJS({
289182
289251
  };
289183
289252
  }
289184
289253
  function classifyCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
289185
- const usb = countUsbCorals(fsx);
289254
+ return detectCoralAccelerator(fsx, delegateHost).info;
289255
+ }
289256
+ function detectCoralAccelerator(fsx, delegateHost = currentDelegateHost()) {
289257
+ const usbDevices = fsx.listUsbDevices();
289258
+ const usbBus = usbDevices !== null && usbDevices.length > 0 ? "observed" : "unobservable";
289259
+ const usb = usbDevices === null ? 0 : countUsbCorals(usbDevices, fsx);
289186
289260
  const pci = classifyPci(fsx);
289187
289261
  const units = [];
289188
289262
  if (usb > 0) units.push({
@@ -289204,25 +289278,44 @@ var require_coral_accelerators_oUXmmbc2 = __commonJS({
289204
289278
  count: pci.notAccessible,
289205
289279
  reason: "device-not-accessible"
289206
289280
  });
289207
- if (units.length > 0 || unavailable.length > 0) return unavailable.length > 0 ? {
289208
- type: "coral-edgetpu",
289209
- units,
289210
- unavailable
289211
- } : {
289212
- type: "coral-edgetpu",
289213
- units
289281
+ if (units.length > 0 || unavailable.length > 0) return {
289282
+ info: unavailable.length > 0 ? {
289283
+ type: "coral-edgetpu",
289284
+ units,
289285
+ unavailable
289286
+ } : {
289287
+ type: "coral-edgetpu",
289288
+ units
289289
+ },
289290
+ usbBus,
289291
+ decidedBy: usb > 0 ? "usb-ids" : "pci"
289214
289292
  };
289215
- if ((0, _camstack_types_node.chooseEdgetpuDelegate)({
289293
+ if (usbBus === "unobservable" && (0, _camstack_types_node.chooseEdgetpuDelegate)({
289216
289294
  ...delegateHost,
289217
289295
  exists: (p) => fsx.exists(p)
289218
289296
  }) !== null) return {
289219
- type: "coral-edgetpu",
289220
- units: [{
289221
- bus: "usb",
289222
- count: 1
289223
- }]
289297
+ info: {
289298
+ type: "coral-edgetpu",
289299
+ units: [{
289300
+ bus: "usb",
289301
+ count: 1
289302
+ }]
289303
+ },
289304
+ usbBus,
289305
+ decidedBy: "delegate-fallback"
289224
289306
  };
289225
- return null;
289307
+ return {
289308
+ info: null,
289309
+ usbBus,
289310
+ decidedBy: "none"
289311
+ };
289312
+ }
289313
+ function safeListOrNull(dir) {
289314
+ try {
289315
+ return node_fs.default.readdirSync(dir);
289316
+ } catch {
289317
+ return null;
289318
+ }
289226
289319
  }
289227
289320
  function safeList(dir) {
289228
289321
  try {
@@ -289239,7 +289332,7 @@ var require_coral_accelerators_oUXmmbc2 = __commonJS({
289239
289332
  }
289240
289333
  }
289241
289334
  var nodeCoralFs = {
289242
- listUsbDevices: () => safeList("/sys/bus/usb/devices"),
289335
+ listUsbDevices: () => safeListOrNull("/sys/bus/usb/devices"),
289243
289336
  readUsbAttr: (device, attr) => safeRead(`/sys/bus/usb/devices/${device}/${attr}`),
289244
289337
  listPciDevices: () => safeList("/sys/bus/pci/devices"),
289245
289338
  readPciAttr: (device, attr) => safeRead(`/sys/bus/pci/devices/${device}/${attr}`),
@@ -289266,6 +289359,12 @@ var require_coral_accelerators_oUXmmbc2 = __commonJS({
289266
289359
  return classifyCoralAccelerator;
289267
289360
  }
289268
289361
  });
289362
+ Object.defineProperty(exports, "detectCoralAccelerator", {
289363
+ enumerable: true,
289364
+ get: function() {
289365
+ return detectCoralAccelerator;
289366
+ }
289367
+ });
289269
289368
  Object.defineProperty(exports, "nodeCoralFs", {
289270
289369
  enumerable: true,
289271
289370
  get: function() {
@@ -295867,8 +295966,8 @@ var require_dist3 = __commonJS({
295867
295966
  "use strict";
295868
295967
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
295869
295968
  var require_chunk = require_chunk_Cek0wNdY();
295870
- var require_dist10 = require_dist_DuBtzSCh();
295871
- var require_device_ca = require_device_ca_CC58lmNV();
295969
+ var require_dist10 = require_dist_DRL3rEfN();
295970
+ var require_device_ca = require_device_ca_R4MZZtc0();
295872
295971
  var require_read_all_rows$1 = require_read_all_rows_CVoO1ONM();
295873
295972
  var require_builtins_alerts_alerts_addon = require_alerts_addon();
295874
295973
  require_alerts();
@@ -295893,22 +295992,22 @@ var require_dist3 = __commonJS({
295893
295992
  var require_builtins_native_metrics_native_metrics_addon = require_native_metrics_addon();
295894
295993
  var require_builtins_device_history_device_history_addon = require_device_history_addon();
295895
295994
  var require_builtins_sqlite_storage_filesystem_storage_addon = require_filesystem_storage_addon();
295896
- var require_wal_maintenance = require_wal_maintenance_EK28XXnc();
295995
+ var require_wal_maintenance = require_wal_maintenance_DYvzJiuK();
295897
295996
  var require_builtins_sqlite_storage_sqlite_settings_addon = require_sqlite_settings_addon();
295898
295997
  var require_builtins_sqlite_storage_index = require_sqlite_storage();
295899
295998
  var require_builtins_storage_orchestrator_storage_orchestrator_addon = require_storage_orchestrator_addon();
295900
295999
  require_storage_orchestrator();
295901
- var require_agent_https = require_agent_https_5OgOR_eF();
295902
- var require_constants15 = require_constants_2mPqJjkR();
296000
+ var require_agent_https = require_agent_https_D_oo3PNv();
296001
+ var require_constants15 = require_constants_WF1AqoKF();
295903
296002
  var require_builtins_system_config_system_config_addon = require_system_config_addon();
295904
296003
  require_system_config();
295905
296004
  var require_builtins_winston_logging_index = require_winston_logging();
295906
296005
  var require_custom_action_registry = require_custom_action_registry_MRyes5j0();
295907
- var require_hub_mdns_ciao = require_hub_mdns_ciao_BLsX_2cL();
296006
+ var require_hub_mdns_ciao = require_hub_mdns_ciao_DUoTS6jN();
295908
296007
  var require_platform_key_source = require_platform_key_source_Di7HrlGR();
295909
296008
  var require_resource_monitor = require_resource_monitor_mio9dSCT();
295910
- var require_restore_archive = require_restore_archive_CxPAuaNs();
295911
- var require_coral_accelerators = require_coral_accelerators_oUXmmbc2();
296009
+ var require_restore_archive = require_restore_archive_Df6PsOHP();
296010
+ var require_coral_accelerators = require_coral_accelerators_Cri32b7q();
295912
296011
  var zod = require_zod();
295913
296012
  var node_crypto = __require("crypto");
295914
296013
  node_crypto = require_chunk.__toESM(node_crypto);
@@ -365165,6 +365264,19 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
365165
365264
  /** Whether the node's live probe reports the device as usable right now. */
365166
365265
  available: zod.z.boolean(),
365167
365266
  /**
365267
+ * Is the device on the node at all (D919)? `present` — the live probe
365268
+ * reported it; `absent` — the probe ANSWERED and did not report it, so only
365269
+ * its stored settings remain (unplugged, moved to another node): never
365270
+ * eligible, whatever its stored `enabled`, and forgettable with
365271
+ * `forgetInferenceDevice`; `unknown` — the probe did not answer, nothing is
365272
+ * claimed (D315). Optional only for an orchestrator older than the field.
365273
+ */
365274
+ presence: zod.z.enum([
365275
+ "present",
365276
+ "absent",
365277
+ "unknown"
365278
+ ]).optional(),
365279
+ /**
365168
365280
  * Whether this device participates in dispatch. AUTO default (spec C2):
365169
365281
  * accelerators are opt-OUT (a discovered NPU/iGPU/Coral/ANE with no stored
365170
365282
  * entry is `true`); CPU is opt-IN (`false` by default — the fallback pool,
@@ -365563,6 +365675,20 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
365563
365675
  */
365564
365676
  getNodeInferenceDevices: require_sleep.method(zod.z.object({ nodeId: zod.z.string() }), NodeInferenceDevicesSchema),
365565
365677
  /**
365678
+ * Delete ONE stored device entry of a node — the "forget" of a device the
365679
+ * node no longer has (D919). Refused unless the node's probe ANSWERED and
365680
+ * did not report the key: a present device is switched off, not forgotten,
365681
+ * and an unreachable node proves nothing about its hardware. The rest of
365682
+ * the node's map is kept as stored.
365683
+ */
365684
+ forgetInferenceDevice: require_sleep.method(zod.z.object({
365685
+ agentNodeId: zod.z.string(),
365686
+ deviceKey: zod.z.string()
365687
+ }), zod.z.object({ success: zod.z.literal(true) }), {
365688
+ kind: "mutation",
365689
+ auth: "admin"
365690
+ }),
365691
+ /**
365566
365692
  * Reset one node's pipeline to its hardware-aware defaults — the HONEST
365567
365693
  * reset (replaces the executor's legacy `resetToDefault`, which cleared a
365568
365694
  * dead persisted step-tree seed nothing in the live path read):
@@ -374051,7 +374177,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
374051
374177
  enabled: zod.z.boolean()
374052
374178
  }), zod.z.void(), {
374053
374179
  kind: "mutation",
374054
- auth: "admin"
374180
+ auth: "protected"
374055
374181
  }) },
374056
374182
  events: { onMotionTriggerChanged: { data: zod.z.object({
374057
374183
  deviceId: zod.z.number(),
@@ -374733,6 +374859,13 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
374733
374859
  cpuModel: zod.z.string().nullable(),
374734
374860
  cpuCores: zod.z.number(),
374735
374861
  memoryMB: zod.z.number(),
374862
+ /**
374863
+ * The inference RUNTIMES installed on the node (`pythonRuntimes`: onnx,
374864
+ * openvino, edgetpu …) — not its devices. An installed runtime says nothing
374865
+ * about whether its hardware is there (a Coral delegate stays installed
374866
+ * after the stick leaves, D919); the live device set is
374867
+ * `pipelineOrchestrator.getNodeInferenceDevices`.
374868
+ */
374736
374869
  engines: zod.z.array(zod.z.string()).readonly(),
374737
374870
  isHub: zod.z.boolean(),
374738
374871
  isOnline: zod.z.boolean(),
@@ -375922,6 +376055,18 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
375922
376055
  format: ModelFormatSchema,
375923
376056
  reason: zod.z.string()
375924
376057
  });
376058
+ var AcceleratorRescanSchema = zod.z.object({
376059
+ devices: zod.z.array(InferenceDeviceDescriptorSchema).readonly(),
376060
+ appeared: zod.z.array(zod.z.string()).readonly(),
376061
+ disappeared: zod.z.array(zod.z.string()).readonly(),
376062
+ usbBus: zod.z.enum(["observed", "unobservable"]),
376063
+ decidedBy: zod.z.enum([
376064
+ "usb-ids",
376065
+ "pci",
376066
+ "delegate-fallback",
376067
+ "none"
376068
+ ])
376069
+ });
375925
376070
  var platformProbeCapability = {
375926
376071
  name: "platform-probe",
375927
376072
  scope: "system",
@@ -375930,7 +376075,18 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
375930
376075
  getCapabilities: require_sleep.method(zod.z.void(), PlatformCapabilitiesSchema),
375931
376076
  getHardware: require_sleep.method(zod.z.void(), HardwareInfoSchema),
375932
376077
  resolveInferenceConfig: require_sleep.method(zod.z.object({ requirements: zod.z.array(ModelRequirementSchema).readonly() }), ResolvedInferenceConfigSchema),
375933
- resolveHwAccel: require_sleep.method(zod.z.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema)
376078
+ resolveHwAccel: require_sleep.method(zod.z.object({ prefer: HwAccelBackendInputSchema }), HwAccelResolutionSchema),
376079
+ /**
376080
+ * Re-probe this node's accelerators NOW (Coral USB ids + PCIe apex units;
376081
+ * `/sys` and `/dev` reads, no model load) and rebuild the device list that
376082
+ * `getCapabilities` serves. The same re-probe runs every 60 s on its own;
376083
+ * this is the operator's "rescan inference devices". Target a node with the
376084
+ * `{ nodeId }` routing input, like `getCapabilities`.
376085
+ */
376086
+ rescanAccelerators: require_sleep.method(zod.z.void(), AcceleratorRescanSchema, {
376087
+ kind: "mutation",
376088
+ auth: "admin"
376089
+ })
375934
376090
  }
375935
376091
  };
375936
376092
  var PowerMeterStatusSchema = zod.z.object({
@@ -389377,6 +389533,12 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
389377
389533
  addonId: null,
389378
389534
  access: "delete"
389379
389535
  },
389536
+ "pipelineOrchestrator.forgetInferenceDevice": {
389537
+ capName: "pipeline-orchestrator",
389538
+ capScope: "system",
389539
+ addonId: null,
389540
+ access: "delete"
389541
+ },
389380
389542
  "pipelineOrchestrator.getAgentLoad": {
389381
389543
  capName: "pipeline-orchestrator",
389382
389544
  capScope: "system",
@@ -389953,6 +390115,12 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
389953
390115
  addonId: null,
389954
390116
  access: "view"
389955
390117
  },
390118
+ "platformProbe.rescanAccelerators": {
390119
+ capName: "platform-probe",
390120
+ capScope: "system",
390121
+ addonId: null,
390122
+ access: "create"
390123
+ },
389956
390124
  "platformProbe.resolveHwAccel": {
389957
390125
  capName: "platform-probe",
389958
390126
  capScope: "system",
@@ -399987,6 +400155,7 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
399987
400155
  setAgentReachableHost: (input) => dispatch("pipelineOrchestrator", "setAgentReachableHost", "mutation", input),
399988
400156
  setAgentInferenceDevices: (input) => dispatch("pipelineOrchestrator", "setAgentInferenceDevices", "mutation", input),
399989
400157
  getNodeInferenceDevices: (input) => dispatch("pipelineOrchestrator", "getNodeInferenceDevices", "query", input),
400158
+ forgetInferenceDevice: (input) => dispatch("pipelineOrchestrator", "forgetInferenceDevice", "mutation", input),
399990
400159
  resetNodePipelineDefaults: (input) => dispatch("pipelineOrchestrator", "resetNodePipelineDefaults", "mutation", input),
399991
400160
  planAutoTune: (input) => dispatch("pipelineOrchestrator", "planAutoTune", "query", input),
399992
400161
  applyAutoTune: (input) => dispatch("pipelineOrchestrator", "applyAutoTune", "mutation", input),
@@ -405691,7 +405860,8 @@ ${recipe.triggers.map((t, i) => emitTrigger(t, i)).join("\n\n")}
405691
405860
  const nodes = input.nodeIds.map((nodeId) => {
405692
405861
  const eligibleKeys = new Set(input.eligibleDevices[nodeId] ?? []);
405693
405862
  const named2 = weights.devices[nodeId] ?? {};
405694
- const keys = [.../* @__PURE__ */ new Set([...Object.keys(named2), ...eligibleKeys])].toSorted();
405863
+ const absent = new Set(input.absentDevices?.[nodeId] ?? []);
405864
+ const keys = [.../* @__PURE__ */ new Set([...Object.keys(named2), ...eligibleKeys])].filter((k) => !absent.has(k)).toSorted();
405695
405865
  const perDevice = {};
405696
405866
  for (const key of keys) perDevice[key] = positive(named2[key]);
405697
405867
  if (keys.length > 0) deviceWeights[nodeId] = perDevice;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstack",
3
- "version": "1.2.205",
3
+ "version": "1.2.206",
4
4
  "description": "CLI tool for managing and running CamStack server",
5
5
  "keywords": [
6
6
  "camstack",