@matter-server/ws-controller 0.4.4-alpha.0-20260226-3d65dca → 0.5.0

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.
@@ -27,6 +27,11 @@ export declare class ControllerCommandHandler {
27
27
  nodeEndpointRemoved: Observable<[nodeId: NodeId, endpointId: EndpointNumber], void>;
28
28
  };
29
29
  constructor(controllerInstance: CommissioningController, bleEnabled: boolean, otaEnabled: boolean);
30
+ /**
31
+ * Format a NodeId as a PeerAddress string for logging.
32
+ * Uses the controller's fabric index when available, otherwise "?" is used.
33
+ */
34
+ formatNode(nodeId: NodeId): string;
30
35
  get started(): boolean;
31
36
  get bleEnabled(): boolean;
32
37
  start(): Promise<void>;
@@ -80,7 +85,7 @@ export declare class ControllerCommandHandler {
80
85
  }>;
81
86
  /** Discover commissionable devices */
82
87
  handleDiscovery({ findBy }: DiscoveryRequest): Promise<DiscoveryResponse>;
83
- getNodeIpAddresses(nodeId: NodeId, _preferCache?: boolean): Promise<string[]>;
88
+ getNodeIpAddresses(nodeId: NodeId, preferCache?: boolean): Promise<string[]>;
84
89
  /**
85
90
  * Ping a node on all its known IP addresses.
86
91
  * @param nodeId The node ID to ping
@@ -1 +1 @@
1
- {"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import {
7
+ Abort,
7
8
  AsyncObservable,
8
9
  camelize,
9
- ChannelType,
10
10
  CommissioningClient,
11
11
  FabricIndex,
12
12
  isObject,
@@ -15,7 +15,8 @@ import {
15
15
  NodeId,
16
16
  Observable,
17
17
  Seconds,
18
- SoftwareUpdateManager
18
+ SoftwareUpdateManager,
19
+ DnsRecordType
19
20
  } from "@matter/main";
20
21
  import { OperationalCredentialsClient } from "@matter/main/behaviors";
21
22
  import {
@@ -30,8 +31,9 @@ import {
30
31
  Invoke,
31
32
  PeerAddress,
32
33
  Read,
33
- ScannerSet,
34
- SupportedTransportsSchema
34
+ SupportedTransportsSchema,
35
+ PeerSet,
36
+ getOperationalDeviceQname
35
37
  } from "@matter/main/protocol";
36
38
  import {
37
39
  Attribute,
@@ -128,6 +130,7 @@ class ControllerCommandHandler {
128
130
  nodeEndpointAdded: new Observable(),
129
131
  nodeEndpointRemoved: new Observable()
130
132
  };
133
+ #peers;
131
134
  constructor(controllerInstance, bleEnabled, otaEnabled) {
132
135
  this.#controller = controllerInstance;
133
136
  this.#bleEnabled = bleEnabled;
@@ -140,9 +143,9 @@ class ControllerCommandHandler {
140
143
  }
141
144
  /**
142
145
  * Format a NodeId as a PeerAddress string for logging.
143
- * Uses the controller's fabric index when available, otherwise defaults to 1.
146
+ * Uses the controller's fabric index when available, otherwise "?" is used.
144
147
  */
145
- #formatNode(nodeId) {
148
+ formatNode(nodeId) {
146
149
  const fabricIndex = this.#controller.fabric?.fabricIndex;
147
150
  return formatNodeId(nodeId, fabricIndex);
148
151
  }
@@ -159,6 +162,7 @@ class ControllerCommandHandler {
159
162
  this.#started = true;
160
163
  await this.#controller.start();
161
164
  logger.info(`Controller started`);
165
+ this.#peers = this.#controller.node.env.get(PeerSet);
162
166
  if (this.#otaEnabled) {
163
167
  await this.#setupOtaEventHandlers();
164
168
  }
@@ -216,7 +220,7 @@ class ControllerCommandHandler {
216
220
  node.events.connectionAlive.on(() => {
217
221
  if (basicInfoChangedInBatch) {
218
222
  basicInfoChangedInBatch = false;
219
- logger.info(`Node ${this.#formatNode(nodeId)} basic information changed, sending full node_updated`);
223
+ logger.info(`Node ${this.formatNode(nodeId)} basic information changed, sending full node_updated`);
220
224
  this.events.nodeStructureChanged.emit(nodeId);
221
225
  }
222
226
  });
@@ -240,7 +244,7 @@ class ControllerCommandHandler {
240
244
  this.events.nodeStateChanged.emit(nodeId, state);
241
245
  if (wasAvailable !== isAvailable) {
242
246
  logger.info(
243
- `Node ${this.#formatNode(nodeId)} availability changed: ${wasAvailable} -> ${isAvailable} (state: ${NodeStates[previousState ?? -1]} -> ${NodeStates[state]})`
247
+ `Node ${this.formatNode(nodeId)} availability changed: ${wasAvailable} -> ${isAvailable} (state: ${NodeStates[previousState ?? -1]} -> ${NodeStates[state]})`
244
248
  );
245
249
  this.events.nodeAvailabilityChanged.emit(nodeId, isAvailable);
246
250
  }
@@ -256,6 +260,11 @@ class ControllerCommandHandler {
256
260
  node.events.nodeEndpointAdded.on((endpointId) => this.events.nodeEndpointAdded.emit(nodeId, endpointId));
257
261
  node.events.nodeEndpointRemoved.on((endpointId) => this.events.nodeEndpointRemoved.emit(nodeId, endpointId));
258
262
  this.#nodes.set(nodeId, node);
263
+ const initialState = node.connectionState;
264
+ this.#nodes.setPreviousState(nodeId, initialState);
265
+ if (initialState === NodeStates.Connected) {
266
+ this.#lastAvailability.set(nodeId, true);
267
+ }
259
268
  if (node.initialized) {
260
269
  attributeCache.add(node);
261
270
  const attributes = attributeCache.get(nodeId);
@@ -279,13 +288,13 @@ class ControllerCommandHandler {
279
288
  this.#connected = true;
280
289
  await this.start();
281
290
  const nodes = this.#controller.getCommissionedNodes();
282
- logger.info(`Found ${nodes.length} nodes: ${nodes.map((nodeId) => this.#formatNode(nodeId)).join(", ")}`);
291
+ logger.info(`Found ${nodes.length} nodes: ${nodes.map((nodeId) => this.formatNode(nodeId)).join(", ")}`);
283
292
  for (const nodeId of nodes) {
284
293
  try {
285
- logger.info(`Initializing node "${this.#formatNode(nodeId)}" ...`);
294
+ logger.info(`Initializing node "${this.formatNode(nodeId)}" ...`);
286
295
  await this.#registerNode(nodeId);
287
296
  } catch (error) {
288
- logger.warn(`Failed to initialize node "${this.#formatNode(nodeId)}":`, error);
297
+ logger.warn(`Failed to initialize node "${this.formatNode(nodeId)}":`, error);
289
298
  }
290
299
  }
291
300
  logger.info(`All ${nodes.length} nodes initialized, starting connections`);
@@ -296,7 +305,7 @@ class ControllerCommandHandler {
296
305
  subscribeMaxIntervalCeilingSeconds: void 0
297
306
  });
298
307
  } catch (error) {
299
- logger.warn(`Failed to connect node "${this.#formatNode(nodeId)}":`, error);
308
+ logger.warn(`Failed to connect node "${this.formatNode(nodeId)}":`, error);
300
309
  }
301
310
  }
302
311
  }
@@ -314,7 +323,7 @@ class ControllerCommandHandler {
314
323
  }
315
324
  async interviewNode(nodeId) {
316
325
  const node = this.#nodes.get(nodeId);
317
- logger.info(`Interview requested for node ${this.#formatNode(nodeId)} - do a complete read`);
326
+ logger.info(`Interview requested for node ${this.formatNode(nodeId)} - do a complete read`);
318
327
  const read = {
319
328
  ...Read({
320
329
  fabricFilter: true,
@@ -324,7 +333,6 @@ class ControllerCommandHandler {
324
333
  // do not send DataVersionFilters, so we do a new clean read
325
334
  };
326
335
  for await (const _chunk of node.node.interaction.read(read)) ;
327
- this.events.nodeStateChanged.emit(nodeId, node.connectionState);
328
336
  }
329
337
  /**
330
338
  * Get full node details in WebSocket API format.
@@ -361,7 +369,7 @@ class ControllerCommandHandler {
361
369
  */
362
370
  async handleReadAttributes(nodeId, attributePaths, fabricFiltered = false) {
363
371
  const result = {};
364
- const client = await this.#nodes.interactionClientFor(nodeId);
372
+ const client = this.#nodes.interactionClientFor(nodeId);
365
373
  const batchSize = 9;
366
374
  const parsedPaths = attributePaths.map((path) => splitAttributePath(path));
367
375
  for (let i = 0; i < parsedPaths.length; i += batchSize) {
@@ -424,7 +432,7 @@ class ControllerCommandHandler {
424
432
  }
425
433
  async handleReadEvent(data) {
426
434
  const { nodeId, endpointId, clusterId, eventId, eventMin } = data;
427
- const client = await this.#nodes.interactionClientFor(nodeId);
435
+ const client = this.#nodes.interactionClientFor(nodeId);
428
436
  const { eventData, eventStatus } = await client.getMultipleEventsAndStatus({
429
437
  events: [
430
438
  {
@@ -456,7 +464,7 @@ class ControllerCommandHandler {
456
464
  }
457
465
  async handleSubscribeAttribute(data) {
458
466
  const { nodeId, endpointId, clusterId, attributeId, minInterval, maxInterval, changeListener } = data;
459
- const client = await this.#nodes.interactionClientFor(nodeId);
467
+ const client = this.#nodes.interactionClientFor(nodeId);
460
468
  const updated = Observable();
461
469
  let ignoreData = true;
462
470
  const { attributeReports = [] } = await client.subscribeMultipleAttributesAndEvents({
@@ -500,7 +508,7 @@ class ControllerCommandHandler {
500
508
  }
501
509
  async handleSubscribeEvent(data) {
502
510
  const { nodeId, endpointId, clusterId, eventId, minInterval, maxInterval, changeListener } = data;
503
- const client = await this.#nodes.interactionClientFor(nodeId);
511
+ const client = this.#nodes.interactionClientFor(nodeId);
504
512
  const updated = Observable();
505
513
  let ignoreData = true;
506
514
  const { eventReports = [] } = await client.subscribeMultipleAttributesAndEvents({
@@ -625,7 +633,7 @@ class ControllerCommandHandler {
625
633
  const existing = this.#inFlightInvokes.get(dedupKey);
626
634
  if (existing !== void 0) {
627
635
  logger.warn(
628
- `Duplicate command detected for ${this.#formatNode(nodeId)}/${endpointId}/${cluster.name}/${commandName} - coalescing with in-flight request`
636
+ `Duplicate command detected for ${this.formatNode(nodeId)}/${endpointId}/${cluster.name}/${commandName} - coalescing with in-flight request`
629
637
  );
630
638
  return existing;
631
639
  }
@@ -650,7 +658,7 @@ class ControllerCommandHandler {
650
658
  /** InvokeById minimalistic handler because only used for error testing */
651
659
  async handleInvokeById(data) {
652
660
  const { nodeId, endpointId, clusterId, commandId, data: commandData, timedInteractionTimeoutMs } = data;
653
- const client = await this.#nodes.interactionClientFor(nodeId);
661
+ const client = this.#nodes.interactionClientFor(nodeId);
654
662
  await client.invoke({
655
663
  endpointId,
656
664
  clusterId,
@@ -665,7 +673,7 @@ class ControllerCommandHandler {
665
673
  }
666
674
  async handleWriteAttributeById(data) {
667
675
  const { nodeId, endpointId, clusterId, attributeId, value } = data;
668
- const client = await this.#nodes.interactionClientFor(nodeId);
676
+ const client = this.#nodes.interactionClientFor(nodeId);
669
677
  logger.info("Writing attribute", attributeId, "with value", value);
670
678
  let tlvValue;
671
679
  if (value === null) {
@@ -835,7 +843,15 @@ class ControllerCommandHandler {
835
843
  };
836
844
  });
837
845
  }
838
- async getNodeIpAddresses(nodeId, _preferCache = true) {
846
+ async getNodeIpAddresses(nodeId, preferCache = true) {
847
+ if (this.#peers !== void 0 && preferCache) {
848
+ const peer = this.#peers.for(this.#controller.fabric.addressOf(nodeId));
849
+ const addresses2 = new Array();
850
+ for (const address of peer.service.addresses) {
851
+ addresses2.push(address.ip);
852
+ }
853
+ return addresses2;
854
+ }
839
855
  const addresses = await this.#discoverNodeAddressesViaMdns(nodeId);
840
856
  if (addresses.length > 0) {
841
857
  return addresses;
@@ -844,7 +860,7 @@ class ControllerCommandHandler {
844
860
  const commissioningAddresses = node.node.maybeStateOf(CommissioningClient)?.addresses;
845
861
  if (commissioningAddresses !== void 0 && commissioningAddresses.length > 0) {
846
862
  logger.info(
847
- `Node ${this.#formatNode(nodeId)}: mDNS discovery returned no addresses, using commissioning addresses`,
863
+ `Node ${this.formatNode(nodeId)}: mDNS discovery returned no addresses, using commissioning addresses`,
848
864
  commissioningAddresses
849
865
  );
850
866
  const fallbackAddresses = commissioningAddresses.filter((addr) => addr.type === "udp").map((addr) => addr.ip);
@@ -860,24 +876,25 @@ class ControllerCommandHandler {
860
876
  */
861
877
  async #discoverNodeAddressesViaMdns(nodeId) {
862
878
  try {
863
- const scanners = this.#controller.node.env.get(ScannerSet);
864
- const mdnsScanner = scanners.scannerFor(ChannelType.UDP);
865
- if (!mdnsScanner) {
866
- logger.debug(`Node ${this.#formatNode(nodeId)}: No mDNS scanner available`);
879
+ if (this.#peers === void 0) {
880
+ logger.debug(`Node ${this.formatNode(nodeId)}: No PeerSet available, Controller started?`);
867
881
  return [];
868
882
  }
869
- const fabric = this.#controller.fabric;
870
- logger.info(`Node ${this.#formatNode(nodeId)}: Discovering addresses via mDNS (3s timeout)`);
871
- const device = await mdnsScanner.findOperationalDevice(fabric, nodeId, Seconds(3), false);
872
- if (!device || device.addresses.length === 0) {
873
- logger.info(`Node ${this.#formatNode(nodeId)}: mDNS discovery found no addresses`);
874
- return [];
883
+ const peer = this.#peers.for(this.#controller.fabric.addressOf(nodeId));
884
+ const abort = new Abort({ timeout: Seconds(3) });
885
+ const names = peer.service.names;
886
+ await names.solicitor.discover({
887
+ abort,
888
+ name: names.get(getOperationalDeviceQname(this.#controller.fabric.globalId, nodeId)),
889
+ recordTypes: [DnsRecordType.SRV]
890
+ });
891
+ const addresses = new Array();
892
+ for (const address of peer.service.addresses) {
893
+ addresses.push(address.ip);
875
894
  }
876
- const addresses = device.addresses.map((addr) => addr.ip);
877
- logger.info(`Node ${this.#formatNode(nodeId)}: mDNS discovered ${addresses.length} addresses:`, addresses);
878
895
  return addresses;
879
896
  } catch (error) {
880
- logger.info(`Node ${this.#formatNode(nodeId)}: mDNS discovery failed`, error);
897
+ logger.info(`Node ${this.formatNode(nodeId)}: mDNS discovery failed`, error);
881
898
  return [];
882
899
  }
883
900
  }
@@ -892,10 +909,10 @@ class ControllerCommandHandler {
892
909
  const result = {};
893
910
  const ipAddresses = await this.getNodeIpAddresses(nodeId, false);
894
911
  if (ipAddresses.length === 0) {
895
- logger.info(`No IP addresses found for node ${this.#formatNode(nodeId)}`);
912
+ logger.info(`No IP addresses found for node ${this.formatNode(nodeId)}`);
896
913
  return result;
897
914
  }
898
- logger.info(`Pinging node ${this.#formatNode(nodeId)} on ${ipAddresses.length} addresses:`, ipAddresses);
915
+ logger.info(`Pinging node ${this.formatNode(nodeId)} on ${ipAddresses.length} addresses:`, ipAddresses);
899
916
  const pingPromises = ipAddresses.map(async (ip) => {
900
917
  const cleanIp = ip.includes("%") ? ip.split("%")[0] : ip;
901
918
  logger.debug(`Pinging ${cleanIp}`);
@@ -907,7 +924,7 @@ class ControllerCommandHandler {
907
924
  if (node.isConnected) {
908
925
  const anySuccess = Object.values(result).some((v) => v);
909
926
  if (!anySuccess && ipAddresses.length > 0) {
910
- logger.info(`Node ${this.#formatNode(nodeId)} is connected but no pings succeeded`);
927
+ logger.info(`Node ${this.formatNode(nodeId)} is connected but no pings succeeded`);
911
928
  }
912
929
  }
913
930
  return result;
@@ -1085,7 +1102,7 @@ class ControllerCommandHandler {
1085
1102
  }
1086
1103
  return null;
1087
1104
  } catch (error) {
1088
- logger.warn(`Failed to check for updates for node ${this.#formatNode(nodeId)}:`, error);
1105
+ logger.warn(`Failed to check for updates for node ${this.formatNode(nodeId)}:`, error);
1089
1106
  return null;
1090
1107
  }
1091
1108
  }
@@ -1101,11 +1118,14 @@ class ControllerCommandHandler {
1101
1118
  if (!this.#nodes.has(nodeId)) {
1102
1119
  throw ServerError.nodeNotExists(nodeId);
1103
1120
  }
1121
+ if (!this.#nodes.isAvailable(nodeId)) {
1122
+ throw ServerError.updateError(`Node ${this.formatNode(nodeId)} is not connected. Retry later`);
1123
+ }
1104
1124
  const cachedAttributes = this.#nodes.attributeCache.get(nodeId);
1105
1125
  const updateState = cachedAttributes?.["0/42/2"];
1106
1126
  if (updateState !== void 0 && updateState !== 1) {
1107
1127
  throw ServerError.updateError(
1108
- `Node ${this.#formatNode(nodeId)} is already in the process of updating (state: ${updateState})`
1128
+ `Node ${this.formatNode(nodeId)} is already in the process of updating (state: ${updateState})`
1109
1129
  );
1110
1130
  }
1111
1131
  try {
@@ -1124,7 +1144,7 @@ class ControllerCommandHandler {
1124
1144
  throw ServerError.updateError("Failed to get update info");
1125
1145
  }
1126
1146
  }
1127
- logger.info(`Starting update for node ${this.#formatNode(nodeId)} to version ${softwareVersion}`);
1147
+ logger.info(`Starting update for node ${this.formatNode(nodeId)} to version ${softwareVersion}`);
1128
1148
  await otaProvider.act(
1129
1149
  (agent) => agent.get(SoftwareUpdateManager).forceUpdate(
1130
1150
  this.#controller.fabric.addressOf(nodeId),
@@ -1135,7 +1155,7 @@ class ControllerCommandHandler {
1135
1155
  );
1136
1156
  return this.#convertToMatterSoftwareVersion(updateInfo);
1137
1157
  } catch (error) {
1138
- logger.error(`Failed to update node ${this.#formatNode(nodeId)}:`, error);
1158
+ logger.error(`Failed to update node ${this.formatNode(nodeId)}:`, error);
1139
1159
  throw error;
1140
1160
  }
1141
1161
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/ControllerCommandHandler.ts"],
4
- "mappings": "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",
5
- "names": ["endpointId", "clusterId", "eventId", "data", "attributeId"]
4
+ "mappings": "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",
5
+ "names": ["endpointId", "clusterId", "eventId", "data", "attributeId", "addresses"]
6
6
  }
@@ -119,7 +119,7 @@ class MatterController {
119
119
  productId: 1,
120
120
  hardwareVersion: 1,
121
121
  hardwareVersionString: "1.0",
122
- softwareVersion: parseVersionToNumber(this.#serverVersion),
122
+ softwareVersion: parseVersionToNumber(this.#serverVersion) || 1,
123
123
  softwareVersionString: this.#serverVersion.split("-")[0]
124
124
  // Base version without alpha/beta suffix
125
125
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/MatterController.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EAEI;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACG;AACP,SAAS,uBAAuB,qBAAqB,4BAAwC;AAC7F,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AACxC,SAAS,gBAAgB;AAEzB,SAAS,gCAAgC;AACzC,SAAS,0BAA4C;AACrD,SAAS,uBAAuB;AAEhC,OAAO;AAEP,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAE5C,eAAsB,wBAClB,QACA,UACA,OACe;AACf,UAAQ,MAAM,eAAe,QAAQ,QAAQ,SAAS,QAAQ,GAAG,KAAK,GAAG,SAAS;AACtF;AAiBA,SAAS,qBAAqB,SAAyB;AAEnD,QAAM,cAAc,QAAQ,MAAM,GAAG,EAAE,CAAC;AACxC,QAAM,QAAQ,YAAY,MAAM,GAAG;AACnC,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAC1C,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAC1C,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAE1C,SAAO,QAAQ,MAAQ,QAAQ,MAAM;AACzC;AAEO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EAEtB,aAAa,OACT,aACA,QACA,SACA,YACF;AAEE,UAAM,WAAW,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,YAAY;AAAA,IAChB;AAEA,UAAM,WAAW,IAAI,iBAAiB,aAAa,QAAQ,SAAS,QAAQ;AAE5E,UAAM,oBAAoB,oBAAI,IAAuB;AACrD,QAAI,eAAe,QAAW;AAC1B,YAAM,SAAS,YAAY,IAAI,MAAM;AACrC,YAAM,cAAc,MAAM,OAAO,QAAQ,KAAK,QAAQ;AACtD,UAAI,WAAW,eAAe,WAAW,UAAU;AAC/C,cAAM,mBAAmB;AAAA,UACrB,YAAY,cAAc,aAAa;AAAA,UACvC;AAAA,UACA,WAAW;AAAA,UACX,WAAW;AAAA,QACf;AAAA,MACJ;AACA,UACK,MAAM,mBAAmB;AAAA,QACtB;AAAA,QACA,WAAW;AAAA,QACX,WAAW,QAAQ;AAAA,MACvB,KACA,WAAW,aAAa,QAC1B;AACE,mBAAW,CAAC,WAAW,IAAI,KAAK,OAAO,QAAQ,WAAW,SAAS,KAAK,GAAG;AACvE,gBAAM,EAAE,mBAAmB,eAAe,IAAI;AAC9C,4BAAkB,IAAI,WAAW,UAAU,IAAI,KAAK,cAAc,EAAE,QAAQ,CAAC,CAAC;AAAA,QAClF;AAAA,MACJ;AAGA,YAAM,aAAa,WAAW,UAAU;AACxC,UAAI,OAAO,eAAe,UAAU;AAChC,YAAI,OAAO,cAAc,YAAY;AACjC,gBAAM,gBAAgB,aAAa;AACnC,iBAAO;AAAA,YACH,4BAA4B,OAAO,UAAU,OAAO,aAAa,0BAA0B,UAAU;AAAA,UACzG;AACA,gBAAM,OAAO,IAAI,EAAE,YAAY,cAAc,CAAC;AAAA,QAClD;AAAA,MACJ;AAEA,YAAM,YAAY,MAAM;AAAA,IAC5B;AAEA,UAAM,SAAS,WAAW,YAAY,UAAU,YAAY,UAAU,iBAAiB;AACvF,WAAO;AAAA,EACX;AAAA,EAEA,YAAY,aAA0B,QAAuB,SAAkC,UAAkB;AAC7G,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,iBAAiB,QAAQ,iBAAiB;AAC/C,SAAK,oBAAoB,QAAQ,oBAAoB,KAAK;AAC1D,SAAK,sBAAsB,QAAQ,sBAAsB,KAAK;AAAA,EAClE;AAAA,EAEA,MAAgB,WACZ,UACA,UACA,yBACF;AACE,SAAK,2BAA2B,yBAAyB,OAAO,0BAA0B;AAC1F,SAAK,sBAAsB,IAAI,wBAAwB;AAAA,MACnD,aAAa;AAAA,QACT,aAAa,KAAK;AAAA,QAClB,IAAI,KAAK;AAAA,MACb;AAAA,MACA,aAAa;AAAA;AAAA,MACb,kBAAkB,KAAK,QAAQ;AAAA,MAC/B,eAAe,aAAa,SAAY,SAAS,QAAQ,IAAI;AAAA,MAC7D,eAAe,aAAa,SAAY,SAAS,QAAQ,IAAI;AAAA,MAC7D,YAAY,OAAO,MAAM;AAAA;AAAA,MACzB,mBAAmB,CAAC,KAAK;AAAA,MACzB,kBAAkB;AAAA,QACd,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,uBAAuB;AAAA,QACvB,iBAAiB,qBAAqB,KAAK,cAAc;AAAA,QACzD,uBAAuB,KAAK,eAAe,MAAM,GAAG,EAAE,CAAC;AAAA;AAAA,MAC3D;AAAA,IACJ,CAAC;AAID,SAAK;AAEL,SAAK;AAAA,EACT;AAAA,EAEA,IAAI,iBAAiB;AACjB,QAAI,KAAK,wBAAwB,QAAW;AACxC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AACA,QAAI,KAAK,oBAAoB,QAAW;AACpC,WAAK,kBAAkB,IAAI;AAAA,QACvB,KAAK;AAAA,QACL,KAAK,KAAK,KAAK,IAAI,cAAc,KAAK;AAAA,QACtC,CAAC,KAAK;AAAA,MACV;AAEA,WAAK,gBAAgB,OAAO,QAAQ,KAAK,YAAY;AACjD,YAAI,KAAK,6BAA6B,QAAW;AAC7C,gBAAM,KAAK,wBAAwB;AAAA,QACvC;AAEA,YAAI,CAAC,KAAK,uBAAuB,KAAK,mBAAmB;AACrD,gBAAM,KAAK,qBAAqB;AAAA,QACpC;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAsC;AACtC,QAAI,KAAK,cAAc,QAAW;AAC9B,WAAK,YAAY,KAAK,KAAK,YAAY;AAAA,IAC3C;AACA,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,oBAA0C;AAC1C,QAAI,CAAC,KAAK,KAAK,IAAI,oBAAoB,GAAG;AACtC,UAAI,qBAAqB,KAAK,IAAI;AAAA,IACtC;AACA,WAAO,KAAK,SAAS,IAAI,oBAAoB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,qBAAqB;AACrB,QAAI,CAAC,KAAK,KAAK,IAAI,qBAAqB,GAAG;AACvC,UAAI,sBAAsB,KAAK,MAAM,EAAE,uBAAuB,KAAK,kBAAkB,CAAC;AAAA,IAC1F;AACA,WAAO,KAAK,SAAS,IAAI,qBAAqB;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAc,UAAmD;AACnE,UAAM,KAAK,kBAAkB;AAC7B,WAAO,KAAK,kBAAkB,QAAQ,QAAQ;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAA0D;AAC5D,UAAM,KAAK,kBAAkB;AAC7B,WAAO,KAAK,kBAAkB;AAAA,EAClC;AAAA,EAEA,MAAM,0BAA0B;AAC5B,QAAI,KAAK,wBAAwB,UAAa,KAAK,6BAA6B,QAAW;AACvF;AAAA,IACJ;AACA,eAAW,CAAC,WAAW,cAAc,KAAK,KAAK,0BAA0B;AACrE,UAAI;AACA,cAAM,cAAc,KAAK,oBAAoB,OAAO,UAAU,OAAO,OAAO,SAAS,CAAC,CAAC;AACvF,cAAM,OAAO,MAAM,KAAK,oBAAoB,KAAK,MAAM,WAAW,WAAW;AAC7E,cAAM,qBAAqB,KAAK,aAAa,mBAAmB;AAChE,YAAI,uBAAuB,UAAa,mBAAmB,mBAAmB,QAAW;AACrF,gBAAM,KAAK,WAAW,qBAAqB,EAAE,eAAe,CAAC;AAAA,QACjE;AAAA,MACJ,SAAS,OAAO;AACZ,eAAO,KAAK,8CAA8C,SAAS,IAAI,KAAK;AAAA,MAChF;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,OAAO;AACT,UAAM,KAAK,iBAAiB,MAAM;AAClC,UAAM,KAAK,WAAW,MAAM;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,uBAAuB;AACzB,QAAI,KAAK,wBAAwB,QAAW;AACxC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AACA,UAAM,KAAK,oBAAoB,YAAY,WAAW,uBAAuB;AAAA,MACzE,oBAAoB;AAAA,IACxB,CAAC;AACD,WAAO,KAAK,wCAAwC;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,sBAAsB,UAAoC;AAC5D,UAAM,EAAE,iBAAiB,IAAI,MAAM,OAAO,SAAS;AACnD,UAAM,EAAE,cAAc,IAAI,MAAM,OAAO,UAAU;AACjD,UAAM,aAAa,KAAK,SAAS,IAAI,mBAAmB;AAGxD,UAAM,UAAU,cAAc,QAAQ,EAAE;AAGxC,UAAM,aAAa,SAAS,MAAM,iBAAiB,QAAQ,CAAC;AAC5D,UAAM,aAAa,MAAM,WAAW,qBAAqB,YAAY,OAAO;AAE5E,WAAO;AAAA,MACH,0BAA0B,QAAQ,gBAAgB,WAAW,IAAI,SAAS,EAAE,CAAC,iBAAiB,WAAW,IAAI,SAAS,EAAE,CAAC,aAAa,WAAW,eAAe,KAAK,WAAW,qBAAqB;AAAA,IACzM;AAEA,UAAM,cAAc,SAAS,MAAM,iBAAiB,QAAQ,CAAC;AAC7D,UAAM,WAAW,MAAM,aAAa,YAAY,OAAO;AACvD,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAgB;AAClB,UAAM,KAAK,WAAW,MAAM;AAAA,EAChC;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -75,7 +75,7 @@ export declare class Nodes {
75
75
  /**
76
76
  * Get the interaction client for a node.
77
77
  */
78
- interactionClientFor(nodeId: NodeId): Promise<InteractionClient>;
78
+ interactionClientFor(nodeId: NodeId): InteractionClient;
79
79
  /**
80
80
  * Get a cluster client by cluster ID for a specific endpoint on a node.
81
81
  * @throws Error if endpoint or cluster not found
@@ -1 +1 @@
1
- {"version":3,"file":"Nodes.d.ts","sourceRoot":"","sources":["../../../src/controller/Nodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;GASG;AACH,qBAAa,KAAK;;IAMd;;OAEG;IACH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;IAIlB;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAQ/B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAI3C;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAIzD;;;;;;;;;;OAUG;IACH,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO;IAY9E;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUpC;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIhE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC;IAoB7G;;OAEG;IACH,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,CAAC,GACX,gBAAgB,CAAC,CAAC,CAAC;CAGzB"}
1
+ {"version":3,"file":"Nodes.d.ts","sourceRoot":"","sources":["../../../src/controller/Nodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;GASG;AACH,qBAAa,KAAK;;IAMd;;OAEG;IACH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;IAIlB;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAQ/B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAI3C;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAIzD;;;;;;;;;;OAUG;IACH,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO;IAY9E;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUpC;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAIvD;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC;IAoB7G;;OAEG;IACH,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,CAAC,GACX,gBAAgB,CAAC,CAAC,CAAC;CAGzB"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/Nodes.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,kBAA8B;AACvC,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AAY5B,MAAM,MAAM;AAAA,EACf,SAAS,oBAAI,IAAwB;AAAA,EACrC,kBAAkB,IAAI,mBAAmB;AAAA;AAAA,EAEzC,kBAAkB,oBAAI,IAAwB;AAAA;AAAA;AAAA;AAAA,EAK9C,IAAI,iBAAqC;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAmB;AACf,WAAO,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,QAA4B;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAyB;AACzB,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAgB,MAAwB;AACxC,SAAK,OAAO,IAAI,QAAQ,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAsB;AACzB,SAAK,OAAO,OAAO,MAAM;AACzB,SAAK,gBAAgB,OAAO,MAAM;AAClC,SAAK,gBAAgB,OAAO,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,QAAwC;AACrD,WAAO,KAAK,gBAAgB,IAAI,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,QAAgB,OAAyB;AACtD,SAAK,gBAAgB,IAAI,QAAQ,KAAK;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBAAgB,cAA0B,eAAqC;AAC3E,QAAI,iBAAiB,WAAW,WAAW;AACvC,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,WAAW,gBAAgB,kBAAkB,WAAW,WAAW;AACpF,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,QAAyB;AACjC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AACA,UAAM,eAAe,KAAK;AAC1B,UAAM,gBAAgB,KAAK,gBAAgB,IAAI,MAAM;AACrD,WAAO,KAAK,gBAAgB,cAAc,aAAa;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,QAA4C;AAC7D,WAAO,KAAK,IAAI,MAAM,EAAE,qBAAqB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB,QAAgB,YAA4B,WAA6C;AAC1G,UAAM,OAAO,KAAK,IAAI,MAAM;AAE5B,UAAM,WAAW,eAAe,IAAI,KAAK,gBAAgB,IAAI,KAAK,cAAc,UAAU;AAE1F,QAAI,aAAa,QAAW;AACxB,YAAM,YAAY,iBAAiB,YAAY,UAAU,YAAY,MAAM,YAAY;AAAA,IAC3F;AAEA,UAAM,SAAS,SAAS,qBAAqB,SAAS;AAEtD,QAAI,WAAW,QAAW;AACtB,YAAM,YAAY;AAAA,QACd,WAAW,SAAS,gBAAgB,UAAU,YAAY,MAAM;AAAA,MACpE;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,iBACI,QACA,YACA,SACmB;AACnB,WAAO,KAAK,qBAAqB,QAAQ,YAAY,QAAQ,EAAE;AAAA,EACnE;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,kBAA8B;AACvC,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AAY5B,MAAM,MAAM;AAAA,EACf,SAAS,oBAAI,IAAwB;AAAA,EACrC,kBAAkB,IAAI,mBAAmB;AAAA;AAAA,EAEzC,kBAAkB,oBAAI,IAAwB;AAAA;AAAA;AAAA;AAAA,EAK9C,IAAI,iBAAqC;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAmB;AACf,WAAO,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,QAA4B;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAyB;AACzB,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAgB,MAAwB;AACxC,SAAK,OAAO,IAAI,QAAQ,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAsB;AACzB,SAAK,OAAO,OAAO,MAAM;AACzB,SAAK,gBAAgB,OAAO,MAAM;AAClC,SAAK,gBAAgB,OAAO,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,QAAwC;AACrD,WAAO,KAAK,gBAAgB,IAAI,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,QAAgB,OAAyB;AACtD,SAAK,gBAAgB,IAAI,QAAQ,KAAK;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBAAgB,cAA0B,eAAqC;AAC3E,QAAI,iBAAiB,WAAW,WAAW;AACvC,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,WAAW,gBAAgB,kBAAkB,WAAW,WAAW;AACpF,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,QAAyB;AACjC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AACA,UAAM,eAAe,KAAK;AAC1B,UAAM,gBAAgB,KAAK,gBAAgB,IAAI,MAAM;AACrD,WAAO,KAAK,gBAAgB,cAAc,aAAa;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,QAAmC;AACpD,WAAO,KAAK,IAAI,MAAM,EAAE,qBAAqB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB,QAAgB,YAA4B,WAA6C;AAC1G,UAAM,OAAO,KAAK,IAAI,MAAM;AAE5B,UAAM,WAAW,eAAe,IAAI,KAAK,gBAAgB,IAAI,KAAK,cAAc,UAAU;AAE1F,QAAI,aAAa,QAAW;AACxB,YAAM,YAAY,iBAAiB,YAAY,UAAU,YAAY,MAAM,YAAY;AAAA,IAC3F;AAEA,UAAM,SAAS,SAAS,qBAAqB,SAAS;AAEtD,QAAI,WAAW,QAAW;AACtB,YAAM,YAAY;AAAA,QACd,WAAW,SAAS,gBAAgB,UAAU,YAAY,MAAM;AAAA,MACpE;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,iBACI,QACA,YACA,SACmB;AACnB,WAAO,KAAK,qBAAqB,QAAQ,YAAY,QAAQ,EAAE;AAAA,EACnE;AACJ;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketControllerHandler.d.ts","sourceRoot":"","sources":["../../../src/server/WebSocketControllerHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAMH,eAAe,EAMlB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+BnD,yDAAyD;AACzD,qBAAa,0BAA2B,YAAW,gBAAgB;;gBAanD,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM;IAQtF;;;OAGG;IACH,MAAM;;;;IA2BN;;OAEG;IACH,eAAe,IAAI,eAAe,EAAE;IAI9B,QAAQ,CAAC,MAAM,EAAE,UAAU;IA4MjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CA6vB9B"}
1
+ {"version":3,"file":"WebSocketControllerHandler.d.ts","sourceRoot":"","sources":["../../../src/server/WebSocketControllerHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAMH,eAAe,EAMlB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+BnD,yDAAyD;AACzD,qBAAa,0BAA2B,YAAW,gBAAgB;;gBAanD,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM;IAQtF;;;OAGG;IACH,MAAM;;;;IA2BN;;OAEG;IACH,eAAe,IAAI,eAAe,EAAE;IAI9B,QAAQ,CAAC,MAAM,EAAE,UAAU;IAqNjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CA8vB9B"}
@@ -102,18 +102,22 @@ class WebSocketControllerHandler {
102
102
  case "node_updated": {
103
103
  try {
104
104
  const nodeDetails = this.#collectNodeDetails(nodeId);
105
- logger.debug(`[${connId}] Sending ${eventName} event for Node ${formatNodeId(nodeId)}`);
105
+ logger.debug(
106
+ `[${connId}] Sending ${eventName} event for Node ${this.#commandHandler.formatNode(nodeId)}`
107
+ );
106
108
  ws.send(toBigIntAwareJson({ event: eventName, data: nodeDetails }));
107
109
  } catch (err) {
108
110
  logger.error(
109
- `[${connId}] Failed to collect node details for Node ${formatNodeId(nodeId)}`,
111
+ `[${connId}] Failed to collect node details for Node ${this.#commandHandler.formatNode(nodeId)}`,
110
112
  err
111
113
  );
112
114
  }
113
115
  break;
114
116
  }
115
117
  case "node_removed":
116
- logger.debug(`[${connId}] Sending node_removed event for Node ${formatNodeId(nodeId)}`);
118
+ logger.debug(
119
+ `[${connId}] Sending node_removed event for Node ${this.#commandHandler.formatNode(nodeId)}`
120
+ );
117
121
  ws.send(toBigIntAwareJson({ event: eventName, data: nodeId }));
118
122
  break;
119
123
  }
@@ -129,7 +133,7 @@ class WebSocketControllerHandler {
129
133
  clusterData?.model
130
134
  );
131
135
  logger.debug(
132
- `[${connId}] Sending attribute_updated event for Node ${formatNodeId(nodeId)}`,
136
+ `[${connId}] Sending attribute_updated event for Node ${this.#commandHandler.formatNode(nodeId)}`,
133
137
  pathStr,
134
138
  value
135
139
  );
@@ -164,7 +168,10 @@ class WebSocketControllerHandler {
164
168
  data: event.data ?? null
165
169
  };
166
170
  this.#addEventToHistory(nodeEvent);
167
- logger.debug(`[${connId}] Sending node_event for Node ${formatNodeId(nodeId)}`, nodeEvent);
171
+ logger.debug(
172
+ `[${connId}] Sending node_event for Node ${this.#commandHandler.formatNode(nodeId)}`,
173
+ nodeEvent
174
+ );
168
175
  ws.send(toBigIntAwareJson({ event: "node_event", data: nodeEvent }));
169
176
  }
170
177
  });
@@ -177,7 +184,9 @@ class WebSocketControllerHandler {
177
184
  }
178
185
  });
179
186
  observers.on(this.#commandHandler.events.nodeAvailabilityChanged, (nodeId, available) => {
180
- logger.info(`[${connId}] Node ${formatNodeId(nodeId)} availability changed to ${available}`);
187
+ logger.info(
188
+ `[${connId}] Node ${this.#commandHandler.formatNode(nodeId)} availability changed to ${available}`
189
+ );
181
190
  sendNodeDetailsEvent("node_updated", nodeId);
182
191
  });
183
192
  observers.on(this.#commandHandler.events.nodeStructureChanged, (nodeId) => {
@@ -189,7 +198,7 @@ class WebSocketControllerHandler {
189
198
  observers.on(this.#commandHandler.events.nodeEndpointAdded, (nodeId, endpointId) => {
190
199
  if (this.#closed || !listening) return;
191
200
  logger.info(
192
- `[${connId}] Sending endpoint_added event for Node ${formatNodeId(nodeId)} endpoint ${endpointId}`
201
+ `[${connId}] Sending endpoint_added event for Node ${this.#commandHandler.formatNode(nodeId)} endpoint ${endpointId}`
193
202
  );
194
203
  ws.send(
195
204
  toBigIntAwareJson({ event: "endpoint_added", data: { node_id: nodeId, endpoint_id: endpointId } })
@@ -198,7 +207,7 @@ class WebSocketControllerHandler {
198
207
  observers.on(this.#commandHandler.events.nodeEndpointRemoved, (nodeId, endpointId) => {
199
208
  if (this.#closed || !listening) return;
200
209
  logger.info(
201
- `[${connId}] Sending endpoint_removed event for Node ${formatNodeId(nodeId)} endpoint ${endpointId}`
210
+ `[${connId}] Sending endpoint_removed event for Node ${this.#commandHandler.formatNode(nodeId)} endpoint ${endpointId}`
202
211
  );
203
212
  ws.send(
204
213
  toBigIntAwareJson({
@@ -677,6 +686,7 @@ class WebSocketControllerHandler {
677
686
  }
678
687
  await this.#commandHandler.interviewNode(nodeId);
679
688
  this.#lastInterviewDates.set(nodeId, /* @__PURE__ */ new Date());
689
+ this.#broadcastEvent("node_updated", this.#collectNodeDetails(nodeId));
680
690
  return null;
681
691
  }
682
692
  async #handlePingNode(args) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/server/WebSocketControllerHandler.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter-server/ws-controller",
3
- "version": "0.4.4-alpha.0-20260226-3d65dca",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "matter.js based Matter controller library",
6
6
  "bugs": {
@@ -22,15 +22,15 @@
22
22
  "node": ">=20.19.0 <22.0.0 || >=22.13.0"
23
23
  },
24
24
  "optionalDependencies": {
25
- "@matter/nodejs-ble": "0.16.11-alpha.0-20260225-033797f3c"
25
+ "@matter/nodejs-ble": "0.17.0-alpha.0-20260304-444297156"
26
26
  },
27
27
  "dependencies": {
28
- "@matter/main": "0.16.11-alpha.0-20260225-033797f3c",
29
- "@project-chip/matter.js": "0.16.11-alpha.0-20260225-033797f3c",
28
+ "@matter/main": "0.17.0-alpha.0-20260304-444297156",
29
+ "@project-chip/matter.js": "0.17.0-alpha.0-20260304-444297156",
30
30
  "ws": "^8.19.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@types/node": "^25.3.0",
33
+ "@types/node": "^25.3.3",
34
34
  "@types/ws": "^8.18.1"
35
35
  },
36
36
  "files": [
@@ -5,9 +5,9 @@
5
5
  */
6
6
 
7
7
  import {
8
+ Abort,
8
9
  AsyncObservable,
9
10
  camelize,
10
- ChannelType,
11
11
  ClientNode,
12
12
  ClientNodeInteraction,
13
13
  CommissioningClient,
@@ -23,6 +23,7 @@ import {
23
23
  ServerAddressUdp,
24
24
  SoftwareUpdateInfo,
25
25
  SoftwareUpdateManager,
26
+ DnsRecordType,
26
27
  } from "@matter/main";
27
28
  import { OperationalCredentialsClient } from "@matter/main/behaviors";
28
29
  import {
@@ -39,8 +40,9 @@ import {
39
40
  Invoke,
40
41
  PeerAddress,
41
42
  Read,
42
- ScannerSet,
43
43
  SupportedTransportsSchema,
44
+ PeerSet,
45
+ getOperationalDeviceQname,
44
46
  } from "@matter/main/protocol";
45
47
  import {
46
48
  Attribute,
@@ -190,6 +192,7 @@ export class ControllerCommandHandler {
190
192
  nodeEndpointAdded: new Observable<[nodeId: NodeId, endpointId: EndpointNumber]>(),
191
193
  nodeEndpointRemoved: new Observable<[nodeId: NodeId, endpointId: EndpointNumber]>(),
192
194
  };
195
+ #peers?: PeerSet;
193
196
 
194
197
  constructor(controllerInstance: CommissioningController, bleEnabled: boolean, otaEnabled: boolean) {
195
198
  this.#controller = controllerInstance;
@@ -209,9 +212,9 @@ export class ControllerCommandHandler {
209
212
 
210
213
  /**
211
214
  * Format a NodeId as a PeerAddress string for logging.
212
- * Uses the controller's fabric index when available, otherwise defaults to 1.
215
+ * Uses the controller's fabric index when available, otherwise "?" is used.
213
216
  */
214
- #formatNode(nodeId: NodeId): string {
217
+ formatNode(nodeId: NodeId): string {
215
218
  const fabricIndex = this.#controller.fabric?.fabricIndex;
216
219
  return formatNodeId(nodeId, fabricIndex);
217
220
  }
@@ -232,6 +235,7 @@ export class ControllerCommandHandler {
232
235
 
233
236
  await this.#controller.start();
234
237
  logger.info(`Controller started`);
238
+ this.#peers = this.#controller.node.env.get(PeerSet);
235
239
 
236
240
  if (this.#otaEnabled) {
237
241
  // Subscribe to OTA provider events to track available updates
@@ -310,7 +314,7 @@ export class ControllerCommandHandler {
310
314
  node.events.connectionAlive.on(() => {
311
315
  if (basicInfoChangedInBatch) {
312
316
  basicInfoChangedInBatch = false;
313
- logger.info(`Node ${this.#formatNode(nodeId)} basic information changed, sending full node_updated`);
317
+ logger.info(`Node ${this.formatNode(nodeId)} basic information changed, sending full node_updated`);
314
318
  this.events.nodeStructureChanged.emit(nodeId);
315
319
  }
316
320
  });
@@ -345,7 +349,7 @@ export class ControllerCommandHandler {
345
349
  // Emit availability changed if it actually changed
346
350
  if (wasAvailable !== isAvailable) {
347
351
  logger.info(
348
- `Node ${this.#formatNode(nodeId)} availability changed: ${wasAvailable} -> ${isAvailable} (state: ${NodeStates[previousState ?? -1]} -> ${NodeStates[state]})`,
352
+ `Node ${this.formatNode(nodeId)} availability changed: ${wasAvailable} -> ${isAvailable} (state: ${NodeStates[previousState ?? -1]} -> ${NodeStates[state]})`,
349
353
  );
350
354
  this.events.nodeAvailabilityChanged.emit(nodeId, isAvailable);
351
355
  }
@@ -365,6 +369,15 @@ export class ControllerCommandHandler {
365
369
  // Store the node for direct access
366
370
  this.#nodes.set(nodeId, node);
367
371
 
372
+ // Seed state tracking from the node's current connection state so the first
373
+ // stateChanged event shows a real previous state instead of "undefined".
374
+ const initialState = node.connectionState;
375
+ this.#nodes.setPreviousState(nodeId, initialState);
376
+ // Only mark as available when actually connected; all other states default to false (unavailable).
377
+ if (initialState === NodeStates.Connected) {
378
+ this.#lastAvailability.set(nodeId, true);
379
+ }
380
+
368
381
  // Initialize attribute cache if node is already initialized
369
382
  if (node.initialized) {
370
383
  attributeCache.add(node);
@@ -394,14 +407,14 @@ export class ControllerCommandHandler {
394
407
  await this.start();
395
408
 
396
409
  const nodes = this.#controller.getCommissionedNodes();
397
- logger.info(`Found ${nodes.length} nodes: ${nodes.map(nodeId => this.#formatNode(nodeId)).join(", ")}`);
410
+ logger.info(`Found ${nodes.length} nodes: ${nodes.map(nodeId => this.formatNode(nodeId)).join(", ")}`);
398
411
 
399
412
  for (const nodeId of nodes) {
400
413
  try {
401
- logger.info(`Initializing node "${this.#formatNode(nodeId)}" ...`);
414
+ logger.info(`Initializing node "${this.formatNode(nodeId)}" ...`);
402
415
  await this.#registerNode(nodeId);
403
416
  } catch (error) {
404
- logger.warn(`Failed to initialize node "${this.#formatNode(nodeId)}":`, error);
417
+ logger.warn(`Failed to initialize node "${this.formatNode(nodeId)}":`, error);
405
418
  }
406
419
  }
407
420
 
@@ -415,7 +428,7 @@ export class ControllerCommandHandler {
415
428
  subscribeMaxIntervalCeilingSeconds: undefined,
416
429
  });
417
430
  } catch (error) {
418
- logger.warn(`Failed to connect node "${this.#formatNode(nodeId)}":`, error);
431
+ logger.warn(`Failed to connect node "${this.formatNode(nodeId)}":`, error);
419
432
  }
420
433
  }
421
434
  }
@@ -439,9 +452,9 @@ export class ControllerCommandHandler {
439
452
  const node = this.#nodes.get(nodeId);
440
453
 
441
454
  // Our nodes are kept up-to-date via attribute subscriptions, so we don't need
442
- // to re-read all attributes like the Python server does.
443
- // Just emit a node_updated event with the current (already fresh) data.
444
- logger.info(`Interview requested for node ${this.#formatNode(nodeId)} - do a complete read`);
455
+ // to re-read all attributes like the Python server does. The caller is responsible
456
+ // for broadcasting node_updated after the interview completes.
457
+ logger.info(`Interview requested for node ${this.formatNode(nodeId)} - do a complete read`);
445
458
 
446
459
  // Do a full Read of the node
447
460
  const read = {
@@ -452,9 +465,6 @@ export class ControllerCommandHandler {
452
465
  includeKnownVersions: true, // do not send DataVersionFilters, so we do a new clean read
453
466
  };
454
467
  for await (const _chunk of (node.node.interaction as ClientNodeInteraction).read(read));
455
-
456
- // Emit node_updated event (same as Python server behavior after the interview)
457
- this.events.nodeStateChanged.emit(nodeId, node.connectionState);
458
468
  }
459
469
 
460
470
  /**
@@ -506,7 +516,7 @@ export class ControllerCommandHandler {
506
516
  fabricFiltered = false,
507
517
  ): Promise<AttributesData> {
508
518
  const result: AttributesData = {};
509
- const client = await this.#nodes.interactionClientFor(nodeId);
519
+ const client = this.#nodes.interactionClientFor(nodeId);
510
520
  const batchSize = 9;
511
521
 
512
522
  // Parse all paths (wildcards become undefined for that component)
@@ -585,7 +595,7 @@ export class ControllerCommandHandler {
585
595
 
586
596
  async handleReadEvent(data: ReadEventRequest): Promise<ReadEventResponse> {
587
597
  const { nodeId, endpointId, clusterId, eventId, eventMin } = data;
588
- const client = await this.#nodes.interactionClientFor(nodeId);
598
+ const client = this.#nodes.interactionClientFor(nodeId);
589
599
  const { eventData, eventStatus } = await client.getMultipleEventsAndStatus({
590
600
  events: [
591
601
  {
@@ -619,7 +629,7 @@ export class ControllerCommandHandler {
619
629
 
620
630
  async handleSubscribeAttribute(data: SubscribeAttributeRequest): Promise<SubscribeAttributeResponse> {
621
631
  const { nodeId, endpointId, clusterId, attributeId, minInterval, maxInterval, changeListener } = data;
622
- const client = await this.#nodes.interactionClientFor(nodeId);
632
+ const client = this.#nodes.interactionClientFor(nodeId);
623
633
  const updated = Observable<[void]>();
624
634
  let ignoreData = true; // We ignore data coming in during initial seeding
625
635
  const { attributeReports = [] } = await client.subscribeMultipleAttributesAndEvents({
@@ -665,7 +675,7 @@ export class ControllerCommandHandler {
665
675
 
666
676
  async handleSubscribeEvent(data: SubscribeEventRequest): Promise<SubscribeEventResponse> {
667
677
  const { nodeId, endpointId, clusterId, eventId, minInterval, maxInterval, changeListener } = data;
668
- const client = await this.#nodes.interactionClientFor(nodeId);
678
+ const client = this.#nodes.interactionClientFor(nodeId);
669
679
  const updated = Observable<[void]>();
670
680
  let ignoreData = true; // We ignore data coming in during initial seeding
671
681
  const { eventReports = [] } = await client.subscribeMultipleAttributesAndEvents({
@@ -811,7 +821,7 @@ export class ControllerCommandHandler {
811
821
  const existing = this.#inFlightInvokes.get(dedupKey);
812
822
  if (existing !== undefined) {
813
823
  logger.warn(
814
- `Duplicate command detected for ${this.#formatNode(nodeId)}/${endpointId}/${cluster.name}/${commandName} - coalescing with in-flight request`,
824
+ `Duplicate command detected for ${this.formatNode(nodeId)}/${endpointId}/${cluster.name}/${commandName} - coalescing with in-flight request`,
815
825
  );
816
826
  return existing;
817
827
  }
@@ -843,7 +853,7 @@ export class ControllerCommandHandler {
843
853
  /** InvokeById minimalistic handler because only used for error testing */
844
854
  async handleInvokeById(data: InvokeByIdRequest): Promise<void> {
845
855
  const { nodeId, endpointId, clusterId, commandId, data: commandData, timedInteractionTimeoutMs } = data;
846
- const client = await this.#nodes.interactionClientFor(nodeId);
856
+ const client = this.#nodes.interactionClientFor(nodeId);
847
857
  await client.invoke<Command<any, any, any>>({
848
858
  endpointId,
849
859
  clusterId: clusterId,
@@ -860,7 +870,7 @@ export class ControllerCommandHandler {
860
870
  async handleWriteAttributeById(data: WriteAttributeByIdRequest): Promise<void> {
861
871
  const { nodeId, endpointId, clusterId, attributeId, value } = data;
862
872
 
863
- const client = await this.#nodes.interactionClientFor(nodeId);
873
+ const client = this.#nodes.interactionClientFor(nodeId);
864
874
 
865
875
  logger.info("Writing attribute", attributeId, "with value", value);
866
876
 
@@ -1061,7 +1071,16 @@ export class ControllerCommandHandler {
1061
1071
  });
1062
1072
  }
1063
1073
 
1064
- async getNodeIpAddresses(nodeId: NodeId, _preferCache = true) {
1074
+ async getNodeIpAddresses(nodeId: NodeId, preferCache = true) {
1075
+ if (this.#peers !== undefined && preferCache) {
1076
+ const peer = this.#peers.for(this.#controller.fabric.addressOf(nodeId));
1077
+ const addresses = new Array<string>();
1078
+ for (const address of peer.service.addresses) {
1079
+ addresses.push(address.ip);
1080
+ }
1081
+ return addresses;
1082
+ }
1083
+
1065
1084
  // Try mDNS discovery first (like Python matter server does)
1066
1085
  const addresses = await this.#discoverNodeAddressesViaMdns(nodeId);
1067
1086
  if (addresses.length > 0) {
@@ -1073,7 +1092,7 @@ export class ControllerCommandHandler {
1073
1092
  const commissioningAddresses = node.node.maybeStateOf(CommissioningClient)?.addresses;
1074
1093
  if (commissioningAddresses !== undefined && commissioningAddresses.length > 0) {
1075
1094
  logger.info(
1076
- `Node ${this.#formatNode(nodeId)}: mDNS discovery returned no addresses, using commissioning addresses`,
1095
+ `Node ${this.formatNode(nodeId)}: mDNS discovery returned no addresses, using commissioning addresses`,
1077
1096
  commissioningAddresses,
1078
1097
  );
1079
1098
  const fallbackAddresses = commissioningAddresses
@@ -1093,28 +1112,29 @@ export class ControllerCommandHandler {
1093
1112
  */
1094
1113
  async #discoverNodeAddressesViaMdns(nodeId: NodeId): Promise<string[]> {
1095
1114
  try {
1096
- const scanners = this.#controller.node.env.get(ScannerSet);
1097
- const mdnsScanner = scanners.scannerFor(ChannelType.UDP);
1098
- if (!mdnsScanner) {
1099
- logger.debug(`Node ${this.#formatNode(nodeId)}: No mDNS scanner available`);
1115
+ if (this.#peers === undefined) {
1116
+ logger.debug(`Node ${this.formatNode(nodeId)}: No PeerSet available, Controller started?`);
1100
1117
  return [];
1101
1118
  }
1102
1119
 
1103
- const fabric = this.#controller.fabric;
1104
- logger.info(`Node ${this.#formatNode(nodeId)}: Discovering addresses via mDNS (3s timeout)`);
1120
+ const peer = this.#peers.for(this.#controller.fabric.addressOf(nodeId));
1105
1121
 
1106
- const device = await mdnsScanner.findOperationalDevice(fabric, nodeId, Seconds(3), false);
1107
- if (!device || device.addresses.length === 0) {
1108
- logger.info(`Node ${this.#formatNode(nodeId)}: mDNS discovery found no addresses`);
1109
- return [];
1122
+ const abort = new Abort({ timeout: Seconds(3) });
1123
+ const names = peer.service.names;
1124
+ await names.solicitor.discover({
1125
+ abort,
1126
+ name: names.get(getOperationalDeviceQname(this.#controller.fabric.globalId, nodeId)),
1127
+ recordTypes: [DnsRecordType.SRV],
1128
+ });
1129
+
1130
+ const addresses = new Array<string>();
1131
+ for (const address of peer.service.addresses) {
1132
+ addresses.push(address.ip);
1110
1133
  }
1111
1134
 
1112
- // Extract IP addresses from a discovered device (includes scoped addresses with %interface)
1113
- const addresses = device.addresses.map(addr => addr.ip);
1114
- logger.info(`Node ${this.#formatNode(nodeId)}: mDNS discovered ${addresses.length} addresses:`, addresses);
1115
1135
  return addresses;
1116
1136
  } catch (error) {
1117
- logger.info(`Node ${this.#formatNode(nodeId)}: mDNS discovery failed`, error);
1137
+ logger.info(`Node ${this.formatNode(nodeId)}: mDNS discovery failed`, error);
1118
1138
  return [];
1119
1139
  }
1120
1140
  }
@@ -1134,11 +1154,11 @@ export class ControllerCommandHandler {
1134
1154
  const ipAddresses = await this.getNodeIpAddresses(nodeId, false);
1135
1155
 
1136
1156
  if (ipAddresses.length === 0) {
1137
- logger.info(`No IP addresses found for node ${this.#formatNode(nodeId)}`);
1157
+ logger.info(`No IP addresses found for node ${this.formatNode(nodeId)}`);
1138
1158
  return result;
1139
1159
  }
1140
1160
 
1141
- logger.info(`Pinging node ${this.#formatNode(nodeId)} on ${ipAddresses.length} addresses:`, ipAddresses);
1161
+ logger.info(`Pinging node ${this.formatNode(nodeId)} on ${ipAddresses.length} addresses:`, ipAddresses);
1142
1162
 
1143
1163
  // Ping all addresses in parallel
1144
1164
  const pingPromises = ipAddresses.map(async ip => {
@@ -1158,7 +1178,7 @@ export class ControllerCommandHandler {
1158
1178
  if (!anySuccess && ipAddresses.length > 0) {
1159
1179
  // Node is connected, but no pings succeeded - this can happen
1160
1180
  // with Thread devices or certain network configurations
1161
- logger.info(`Node ${this.#formatNode(nodeId)} is connected but no pings succeeded`);
1181
+ logger.info(`Node ${this.formatNode(nodeId)} is connected but no pings succeeded`);
1162
1182
  }
1163
1183
  }
1164
1184
 
@@ -1370,7 +1390,7 @@ export class ControllerCommandHandler {
1370
1390
 
1371
1391
  return null;
1372
1392
  } catch (error) {
1373
- logger.warn(`Failed to check for updates for node ${this.#formatNode(nodeId)}:`, error);
1393
+ logger.warn(`Failed to check for updates for node ${this.formatNode(nodeId)}:`, error);
1374
1394
  return null;
1375
1395
  }
1376
1396
  }
@@ -1387,6 +1407,9 @@ export class ControllerCommandHandler {
1387
1407
  if (!this.#nodes.has(nodeId)) {
1388
1408
  throw ServerError.nodeNotExists(nodeId);
1389
1409
  }
1410
+ if (!this.#nodes.isAvailable(nodeId)) {
1411
+ throw ServerError.updateError(`Node ${this.formatNode(nodeId)} is not connected. Retry later`);
1412
+ }
1390
1413
 
1391
1414
  // Check if node is already updating by checking the OTA Requestor UpdateState attribute
1392
1415
  // Attribute path: 0/42/2 (endpoint 0, OtaSoftwareUpdateRequestor cluster, UpdateState attribute)
@@ -1395,7 +1418,7 @@ export class ControllerCommandHandler {
1395
1418
  const updateState = cachedAttributes?.["0/42/2"];
1396
1419
  if (updateState !== undefined && updateState !== 1) {
1397
1420
  throw ServerError.updateError(
1398
- `Node ${this.#formatNode(nodeId)} is already in the process of updating (state: ${updateState})`,
1421
+ `Node ${this.formatNode(nodeId)} is already in the process of updating (state: ${updateState})`,
1399
1422
  );
1400
1423
  }
1401
1424
 
@@ -1419,7 +1442,7 @@ export class ControllerCommandHandler {
1419
1442
  }
1420
1443
  }
1421
1444
 
1422
- logger.info(`Starting update for node ${this.#formatNode(nodeId)} to version ${softwareVersion}`);
1445
+ logger.info(`Starting update for node ${this.formatNode(nodeId)} to version ${softwareVersion}`);
1423
1446
 
1424
1447
  // Trigger the update using forceUpdate via dynamic behavior access
1425
1448
  await otaProvider.act(agent =>
@@ -1436,7 +1459,7 @@ export class ControllerCommandHandler {
1436
1459
  // Return the update info
1437
1460
  return this.#convertToMatterSoftwareVersion(updateInfo);
1438
1461
  } catch (error) {
1439
- logger.error(`Failed to update node ${this.#formatNode(nodeId)}:`, error);
1462
+ logger.error(`Failed to update node ${this.formatNode(nodeId)}:`, error);
1440
1463
  throw error;
1441
1464
  }
1442
1465
  }
@@ -170,7 +170,7 @@ export class MatterController {
170
170
  productId: 1,
171
171
  hardwareVersion: 1,
172
172
  hardwareVersionString: "1.0",
173
- softwareVersion: parseVersionToNumber(this.#serverVersion),
173
+ softwareVersion: parseVersionToNumber(this.#serverVersion) || 1,
174
174
  softwareVersionString: this.#serverVersion.split("-")[0], // Base version without alpha/beta suffix
175
175
  },
176
176
  });
@@ -132,7 +132,7 @@ export class Nodes {
132
132
  /**
133
133
  * Get the interaction client for a node.
134
134
  */
135
- interactionClientFor(nodeId: NodeId): Promise<InteractionClient> {
135
+ interactionClientFor(nodeId: NodeId): InteractionClient {
136
136
  return this.get(nodeId).getInteractionClient();
137
137
  }
138
138
 
@@ -142,18 +142,22 @@ export class WebSocketControllerHandler implements WebServerHandler {
142
142
  case "node_updated": {
143
143
  try {
144
144
  const nodeDetails = this.#collectNodeDetails(nodeId);
145
- logger.debug(`[${connId}] Sending ${eventName} event for Node ${formatNodeId(nodeId)}`);
145
+ logger.debug(
146
+ `[${connId}] Sending ${eventName} event for Node ${this.#commandHandler.formatNode(nodeId)}`,
147
+ );
146
148
  ws.send(toBigIntAwareJson({ event: eventName, data: nodeDetails }));
147
149
  } catch (err) {
148
150
  logger.error(
149
- `[${connId}] Failed to collect node details for Node ${formatNodeId(nodeId)}`,
151
+ `[${connId}] Failed to collect node details for Node ${this.#commandHandler.formatNode(nodeId)}`,
150
152
  err,
151
153
  );
152
154
  }
153
155
  break;
154
156
  }
155
157
  case "node_removed":
156
- logger.debug(`[${connId}] Sending node_removed event for Node ${formatNodeId(nodeId)}`);
158
+ logger.debug(
159
+ `[${connId}] Sending node_removed event for Node ${this.#commandHandler.formatNode(nodeId)}`,
160
+ );
157
161
  ws.send(toBigIntAwareJson({ event: eventName, data: nodeId }));
158
162
  break;
159
163
  }
@@ -171,7 +175,7 @@ export class WebSocketControllerHandler implements WebServerHandler {
171
175
  clusterData?.model,
172
176
  );
173
177
  logger.debug(
174
- `[${connId}] Sending attribute_updated event for Node ${formatNodeId(nodeId)}`,
178
+ `[${connId}] Sending attribute_updated event for Node ${this.#commandHandler.formatNode(nodeId)}`,
175
179
  pathStr,
176
180
  value,
177
181
  );
@@ -213,7 +217,10 @@ export class WebSocketControllerHandler implements WebServerHandler {
213
217
  // Store event in the history buffer
214
218
  this.#addEventToHistory(nodeEvent);
215
219
 
216
- logger.debug(`[${connId}] Sending node_event for Node ${formatNodeId(nodeId)}`, nodeEvent);
220
+ logger.debug(
221
+ `[${connId}] Sending node_event for Node ${this.#commandHandler.formatNode(nodeId)}`,
222
+ nodeEvent,
223
+ );
217
224
  ws.send(toBigIntAwareJson({ event: "node_event", data: nodeEvent }));
218
225
  }
219
226
  });
@@ -233,7 +240,9 @@ export class WebSocketControllerHandler implements WebServerHandler {
233
240
 
234
241
  // Send node_updated when availability changes (debounced)
235
242
  observers.on(this.#commandHandler.events.nodeAvailabilityChanged, (nodeId, available) => {
236
- logger.info(`[${connId}] Node ${formatNodeId(nodeId)} availability changed to ${available}`);
243
+ logger.info(
244
+ `[${connId}] Node ${this.#commandHandler.formatNode(nodeId)} availability changed to ${available}`,
245
+ );
237
246
  sendNodeDetailsEvent("node_updated", nodeId);
238
247
  });
239
248
 
@@ -248,7 +257,7 @@ export class WebSocketControllerHandler implements WebServerHandler {
248
257
  observers.on(this.#commandHandler.events.nodeEndpointAdded, (nodeId, endpointId) => {
249
258
  if (this.#closed || !listening) return;
250
259
  logger.info(
251
- `[${connId}] Sending endpoint_added event for Node ${formatNodeId(nodeId)} endpoint ${endpointId}`,
260
+ `[${connId}] Sending endpoint_added event for Node ${this.#commandHandler.formatNode(nodeId)} endpoint ${endpointId}`,
252
261
  );
253
262
  ws.send(
254
263
  toBigIntAwareJson({ event: "endpoint_added", data: { node_id: nodeId, endpoint_id: endpointId } }),
@@ -258,7 +267,7 @@ export class WebSocketControllerHandler implements WebServerHandler {
258
267
  observers.on(this.#commandHandler.events.nodeEndpointRemoved, (nodeId, endpointId) => {
259
268
  if (this.#closed || !listening) return;
260
269
  logger.info(
261
- `[${connId}] Sending endpoint_removed event for Node ${formatNodeId(nodeId)} endpoint ${endpointId}`,
270
+ `[${connId}] Sending endpoint_removed event for Node ${this.#commandHandler.formatNode(nodeId)} endpoint ${endpointId}`,
262
271
  );
263
272
  ws.send(
264
273
  toBigIntAwareJson({
@@ -824,8 +833,9 @@ export class WebSocketControllerHandler implements WebServerHandler {
824
833
 
825
834
  await this.#commandHandler.interviewNode(nodeId);
826
835
 
827
- // Update last interview date
836
+ // Update last interview date and broadcast node_updated with fresh data
828
837
  this.#lastInterviewDates.set(nodeId, new Date());
838
+ this.#broadcastEvent("node_updated", this.#collectNodeDetails(nodeId));
829
839
 
830
840
  return null;
831
841
  }