abb-rws-client 0.7.2 → 1.0.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.
Files changed (70) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/README.md +17 -8
  3. package/dist/HalJsonParser.d.ts +55 -0
  4. package/dist/HalJsonParser.d.ts.map +1 -0
  5. package/dist/HalJsonParser.js +155 -0
  6. package/dist/HalJsonParser.js.map +1 -0
  7. package/dist/HttpSession.d.ts.map +1 -1
  8. package/dist/HttpSession.js +13 -2
  9. package/dist/HttpSession.js.map +1 -1
  10. package/dist/IRWSAdapter.d.ts +7 -1
  11. package/dist/IRWSAdapter.d.ts.map +1 -1
  12. package/dist/MdnsDiscovery.d.ts +57 -0
  13. package/dist/MdnsDiscovery.d.ts.map +1 -0
  14. package/dist/MdnsDiscovery.js +313 -0
  15. package/dist/MdnsDiscovery.js.map +1 -0
  16. package/dist/MultiRobotManager.d.ts +5 -2
  17. package/dist/MultiRobotManager.d.ts.map +1 -1
  18. package/dist/MultiRobotManager.js +8 -3
  19. package/dist/MultiRobotManager.js.map +1 -1
  20. package/dist/RWS1Adapter.d.ts +60 -2
  21. package/dist/RWS1Adapter.d.ts.map +1 -1
  22. package/dist/RWS1Adapter.js +152 -4
  23. package/dist/RWS1Adapter.js.map +1 -1
  24. package/dist/ResourceMapper.d.ts +4 -0
  25. package/dist/ResourceMapper.d.ts.map +1 -1
  26. package/dist/ResourceMapper.js +9 -1
  27. package/dist/ResourceMapper.js.map +1 -1
  28. package/dist/RobotManager.d.ts +72 -12
  29. package/dist/RobotManager.d.ts.map +1 -1
  30. package/dist/RobotManager.js +255 -50
  31. package/dist/RobotManager.js.map +1 -1
  32. package/dist/RwsClient2.d.ts +150 -10
  33. package/dist/RwsClient2.d.ts.map +1 -1
  34. package/dist/RwsClient2.js +599 -236
  35. package/dist/RwsClient2.js.map +1 -1
  36. package/dist/WsSubscriber.d.ts +31 -5
  37. package/dist/WsSubscriber.d.ts.map +1 -1
  38. package/dist/WsSubscriber.js +104 -50
  39. package/dist/WsSubscriber.js.map +1 -1
  40. package/dist/detect.d.ts +12 -3
  41. package/dist/detect.d.ts.map +1 -1
  42. package/dist/detect.js +69 -25
  43. package/dist/detect.js.map +1 -1
  44. package/dist/index.d.ts +3 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +2 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/types.js +3 -3
  49. package/dist/types.js.map +1 -1
  50. package/examples/05-remote-control-rmmp.mjs +10 -12
  51. package/examples/06-pull-module-source.mjs +13 -20
  52. package/package.json +62 -60
  53. package/src/HalJsonParser.ts +137 -0
  54. package/src/HttpSession.ts +460 -0
  55. package/src/IRWSAdapter.ts +422 -0
  56. package/src/Logger.ts +54 -0
  57. package/src/MdnsDiscovery.ts +336 -0
  58. package/src/MultiRobotManager.ts +159 -0
  59. package/src/RWS1Adapter.ts +1018 -0
  60. package/src/RWS2Adapter.ts +19 -0
  61. package/src/ResourceMapper.ts +517 -0
  62. package/src/ResponseParser.ts +710 -0
  63. package/src/RobotManager.ts +1705 -0
  64. package/src/RwsClient.ts +1150 -0
  65. package/src/RwsClient2.ts +2214 -0
  66. package/src/WsSubscriber.ts +350 -0
  67. package/src/XhtmlParser.ts +53 -0
  68. package/src/detect.ts +261 -0
  69. package/src/index.ts +83 -0
  70. package/src/types.ts +336 -0
@@ -0,0 +1,57 @@
1
+ /** A controller found via mDNS. RW6 units carry no TXT → only name/host/port. */
2
+ export interface MdnsController {
3
+ /** Full mDNS instance label, e.g. `RobotWebServices_MyRobot`. */
4
+ instanceName: string;
5
+ /** Controller system name — the instance label minus the `RobotWebServices_` prefix. */
6
+ systemName: string;
7
+ /** IPv4 address (A record of the SRV target, else the responder's source address). */
8
+ host: string;
9
+ /** RWS port — TXT `RwsPort` when present, else the SRV port. */
10
+ port: number;
11
+ /** RobotWare version from TXT `RwVer` (RW7 only). */
12
+ rwVersion?: string;
13
+ /** System GUID from TXT `SysGuid` (RW7 only). */
14
+ sysGuid?: string;
15
+ /** PC SDK (RobApi) port from TXT `RobApiP` (RW7 only). */
16
+ robApiPort?: number;
17
+ /**
18
+ * Heuristic, not a probe: RW7/OmniCore advertisements carry TXT metadata
19
+ * (`RwsPort`/`RwVer`) → 'rws2'; advertisements with no TXT data → 'rws1'
20
+ * (matches RW6 behavior); TXT present but without the ABB keys → 'unknown'.
21
+ * Confirm with `RobotManager.probeSpecificPort` before trusting it.
22
+ */
23
+ probableProtocol: 'rws1' | 'rws2' | 'unknown';
24
+ }
25
+ /** Minimal slice of `dgram.Socket` used here — injectable for offline tests. */
26
+ export interface MdnsSocket {
27
+ on(event: 'message', cb: (msg: Buffer, rinfo: {
28
+ address: string;
29
+ port: number;
30
+ }) => void): void;
31
+ on(event: 'error', cb: (err: Error) => void): void;
32
+ on(event: string, cb: (...args: never[]) => void): void;
33
+ bind(port: number, address: string, cb: () => void): void;
34
+ send(msg: Uint8Array, port: number, address: string, cb?: (err: Error | null) => void): void;
35
+ setMulticastInterface(addr: string): void;
36
+ close(): void;
37
+ }
38
+ export interface MdnsDiscoveryOptions {
39
+ /** How long to collect replies before resolving. Default 2000 ms. */
40
+ timeoutMs?: number;
41
+ /** Test seam — defaults to `dgram.createSocket('udp4')`. */
42
+ socketFactory?: () => MdnsSocket;
43
+ /**
44
+ * IPv4 interface addresses to use as multicast egress (in addition to the
45
+ * OS default route). Defaults to every local IPv4 address — on Windows the
46
+ * default-route interface is often NOT the one the VCs/robots live on.
47
+ */
48
+ interfaceAddrs?: string[];
49
+ }
50
+ /**
51
+ * One-shot mDNS browse for ABB controllers. Resolves after `timeoutMs`
52
+ * (default 2000) with every `RobotWebServices_*` instance heard, deduped by
53
+ * instance name. Never rejects — socket errors resolve with what was
54
+ * collected so far.
55
+ */
56
+ export declare function discoverControllersMdns(opts?: MdnsDiscoveryOptions): Promise<MdnsController[]>;
57
+ //# sourceMappingURL=MdnsDiscovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MdnsDiscovery.d.ts","sourceRoot":"","sources":["../src/MdnsDiscovery.ts"],"names":[],"mappings":"AA2BA,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC/C;AAED,gFAAgF;AAChF,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAChG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACnD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACxD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7F,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,UAAU,CAAC;IACjC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAsMD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAyDlG"}
@@ -0,0 +1,313 @@
1
+ /**
2
+ * mDNS/Bonjour discovery of ABB controllers — zero dependencies (node:dgram +
3
+ * hand-rolled DNS wire parsing).
4
+ *
5
+ * Live-verified 2026-07-08/09 against five RobotStudio VCs (1× RW6.16 IRC5,
6
+ * 4× RW7.21 OmniCore) on this network:
7
+ * - Every controller/VC advertises the `_http._tcp.local` service with
8
+ * instance name `RobotWebServices_<systemname>`. ABB's manual documents
9
+ * browsing the `rws` SUBTYPE (`dns-sd -B _http._tcp,rws`), so we query
10
+ * `rws._sub._http._tcp.local` first and plain `_http._tcp.local` as a
11
+ * fallback (some stacks don't answer subtype PTR queries).
12
+ * - RW7 VCs attach TXT records: `RwVer=7.21.0 SysGuid=<guid> RwsPort=5466
13
+ * RobApiP=2558 WanIp= VC=`. RW6 VCs advertise name + SRV(port) only —
14
+ * NO TXT metadata. That asymmetry is the protocol heuristic below.
15
+ * - The SRV target is the machine hostname (e.g. `DESKTOP-X.local`); the
16
+ * address comes from the A record in the additionals section, falling
17
+ * back to the UDP responder's source address.
18
+ *
19
+ * Strategy: one-shot LEGACY unicast query (RFC 6762 §6.7) — bind an ephemeral
20
+ * UDP port (never 5353 itself; mDNSResponder owns it), send standard DNS PTR
21
+ * queries to 224.0.0.251:5353, and collect the unicast replies until the
22
+ * timeout. Windows multicast egress is per-interface, so when the host has
23
+ * several IPv4 interfaces the query is re-sent through each one.
24
+ */
25
+ import * as dgram from 'dgram';
26
+ import * as os from 'os';
27
+ const MDNS_ADDR = '224.0.0.251';
28
+ const MDNS_PORT = 5353;
29
+ const QUERY_NAMES = ['rws._sub._http._tcp.local', '_http._tcp.local'];
30
+ const INSTANCE_PREFIX = 'RobotWebServices_';
31
+ // DNS record types we care about
32
+ const TYPE_A = 1;
33
+ const TYPE_PTR = 12;
34
+ const TYPE_TXT = 16;
35
+ const TYPE_SRV = 33;
36
+ // ─── Wire encoding ────────────────────────────────────────────────────────────
37
+ /** Build a standard one-question DNS PTR query (legacy unicast — plain QCLASS IN). */
38
+ function buildPtrQuery(name, id) {
39
+ const parts = [];
40
+ const header = Buffer.alloc(12);
41
+ header.writeUInt16BE(id, 0);
42
+ header.writeUInt16BE(1, 4); // QDCOUNT
43
+ parts.push(header);
44
+ for (const label of name.split('.')) {
45
+ if (label.length === 0) {
46
+ continue;
47
+ }
48
+ const lb = Buffer.from(label, 'utf8');
49
+ parts.push(Buffer.from([lb.length]), lb);
50
+ }
51
+ const tail = Buffer.alloc(5);
52
+ tail.writeUInt16BE(TYPE_PTR, 1); // byte 0 is the root-label terminator
53
+ tail.writeUInt16BE(1, 3); // QCLASS IN
54
+ parts.push(tail);
55
+ return Buffer.concat(parts);
56
+ }
57
+ // ─── Wire parsing ─────────────────────────────────────────────────────────────
58
+ /**
59
+ * Decode a (possibly compressed) domain name. Returns the labels and the
60
+ * offset just past the name in the original (non-pointer) stream. Throws on
61
+ * truncation and pointer loops — callers treat any throw as "malformed
62
+ * packet, ignore".
63
+ */
64
+ function readName(buf, offset) {
65
+ const labels = [];
66
+ let pos = offset;
67
+ let next = -1; // set on the first compression jump
68
+ let jumps = 0;
69
+ for (;;) {
70
+ if (pos >= buf.length) {
71
+ throw new Error('name runs past end of packet');
72
+ }
73
+ const len = buf[pos];
74
+ if (len === 0) {
75
+ pos += 1;
76
+ break;
77
+ }
78
+ if ((len & 0xc0) === 0xc0) {
79
+ if (pos + 1 >= buf.length) {
80
+ throw new Error('truncated compression pointer');
81
+ }
82
+ if (++jumps > 64) {
83
+ throw new Error('compression pointer loop');
84
+ }
85
+ if (next < 0) {
86
+ next = pos + 2;
87
+ }
88
+ pos = ((len & 0x3f) << 8) | buf[pos + 1];
89
+ }
90
+ else if ((len & 0xc0) !== 0) {
91
+ throw new Error('reserved label type');
92
+ }
93
+ else {
94
+ if (pos + 1 + len > buf.length) {
95
+ throw new Error('label runs past end of packet');
96
+ }
97
+ labels.push(buf.toString('utf8', pos + 1, pos + 1 + len));
98
+ pos += 1 + len;
99
+ }
100
+ }
101
+ return { labels, next: next < 0 ? pos : next };
102
+ }
103
+ /** Parse a TXT rdata (length-prefixed `key=value` strings) into a lowercase-keyed map. */
104
+ function parseTxt(buf, start, len) {
105
+ const out = {};
106
+ const end = start + len;
107
+ let pos = start;
108
+ while (pos < end) {
109
+ const l = buf[pos];
110
+ pos += 1;
111
+ if (l === 0) {
112
+ continue;
113
+ }
114
+ const s = buf.toString('utf8', pos, Math.min(pos + l, end));
115
+ pos += l;
116
+ const eq = s.indexOf('=');
117
+ const key = (eq >= 0 ? s.slice(0, eq) : s).toLowerCase();
118
+ if (key) {
119
+ out[key] = eq >= 0 ? s.slice(eq + 1) : '';
120
+ }
121
+ }
122
+ return out;
123
+ }
124
+ /**
125
+ * Parse one reply packet into the store. Answers, authority, and additionals
126
+ * are treated uniformly — responders put the A record for the SRV target in
127
+ * additionals. Throws on malformed data (caller ignores the packet).
128
+ */
129
+ function ingestPacket(buf, srcAddr, store) {
130
+ if (buf.length < 12) {
131
+ throw new Error('packet shorter than DNS header');
132
+ }
133
+ if ((buf.readUInt16BE(2) & 0x8000) === 0) {
134
+ return;
135
+ } // a query, not a response
136
+ const qdCount = buf.readUInt16BE(4);
137
+ const rrCount = buf.readUInt16BE(6) + buf.readUInt16BE(8) + buf.readUInt16BE(10);
138
+ let pos = 12;
139
+ for (let i = 0; i < qdCount; i++) {
140
+ pos = readName(buf, pos).next + 4; // skip QTYPE + QCLASS
141
+ }
142
+ const register = (labels) => {
143
+ const key = labels.join('.').toLowerCase();
144
+ store.instances.set(key, { instanceLabel: labels[0], srcAddr });
145
+ return key;
146
+ };
147
+ for (let i = 0; i < rrCount; i++) {
148
+ const { labels, next } = readName(buf, pos);
149
+ pos = next;
150
+ if (pos + 10 > buf.length) {
151
+ throw new Error('record header runs past end of packet');
152
+ }
153
+ const type = buf.readUInt16BE(pos);
154
+ const rdLen = buf.readUInt16BE(pos + 8);
155
+ pos += 10;
156
+ if (pos + rdLen > buf.length) {
157
+ throw new Error('rdata runs past end of packet');
158
+ }
159
+ if (type === TYPE_PTR) {
160
+ const target = readName(buf, pos).labels;
161
+ if (target[0]?.startsWith(INSTANCE_PREFIX)) {
162
+ register(target);
163
+ }
164
+ }
165
+ else if (type === TYPE_SRV && labels[0]?.startsWith(INSTANCE_PREFIX)) {
166
+ if (rdLen < 8) {
167
+ throw new Error('SRV rdata too short');
168
+ }
169
+ const port = buf.readUInt16BE(pos + 4);
170
+ const target = readName(buf, pos + 6).labels.join('.');
171
+ store.srv.set(register(labels), { target, port });
172
+ }
173
+ else if (type === TYPE_TXT && labels[0]?.startsWith(INSTANCE_PREFIX)) {
174
+ store.txt.set(register(labels), parseTxt(buf, pos, rdLen));
175
+ }
176
+ else if (type === TYPE_A && rdLen >= 4) {
177
+ store.a.set(labels.join('.').toLowerCase(), `${buf[pos]}.${buf[pos + 1]}.${buf[pos + 2]}.${buf[pos + 3]}`);
178
+ }
179
+ pos += rdLen;
180
+ }
181
+ }
182
+ // ─── Aggregation ──────────────────────────────────────────────────────────────
183
+ function positiveInt(value) {
184
+ if (!value) {
185
+ return undefined;
186
+ }
187
+ const n = parseInt(value, 10);
188
+ return Number.isFinite(n) && n > 0 ? n : undefined;
189
+ }
190
+ function buildControllers(store) {
191
+ const byInstance = new Map();
192
+ for (const [key, inst] of store.instances) {
193
+ const srv = store.srv.get(key);
194
+ const txt = store.txt.get(key);
195
+ const hasTxtData = txt !== undefined && Object.keys(txt).length > 0;
196
+ const port = positiveInt(txt?.['rwsport']) ?? srv?.port;
197
+ if (!port) {
198
+ continue;
199
+ } // no SRV and no RwsPort — nothing to connect to
200
+ const host = (srv && store.a.get(srv.target.toLowerCase())) ?? inst.srcAddr;
201
+ const controller = {
202
+ instanceName: inst.instanceLabel,
203
+ systemName: inst.instanceLabel.slice(INSTANCE_PREFIX.length),
204
+ host,
205
+ port,
206
+ probableProtocol: hasTxtData
207
+ ? (txt['rwsport'] || txt['rwver'] ? 'rws2' : 'unknown')
208
+ : 'rws1',
209
+ };
210
+ const rwVersion = txt?.['rwver'];
211
+ if (rwVersion) {
212
+ controller.rwVersion = rwVersion;
213
+ }
214
+ const sysGuid = txt?.['sysguid'];
215
+ if (sysGuid) {
216
+ controller.sysGuid = sysGuid;
217
+ }
218
+ const robApiPort = positiveInt(txt?.['robapip']);
219
+ if (robApiPort !== undefined) {
220
+ controller.robApiPort = robApiPort;
221
+ }
222
+ if (!byInstance.has(controller.instanceName)) {
223
+ byInstance.set(controller.instanceName, controller);
224
+ }
225
+ }
226
+ return [...byInstance.values()];
227
+ }
228
+ /** Non-internal-first list of local IPv4 addresses, for multicast egress retries. */
229
+ function ipv4InterfaceAddrs() {
230
+ const addrs = [];
231
+ for (const infos of Object.values(os.networkInterfaces())) {
232
+ for (const info of infos ?? []) {
233
+ // Node <18.0 reports family as the string 'IPv4', ≥18.0 sometimes as the number 4
234
+ if ((info.family === 'IPv4' || info.family === 4) && !info.internal) {
235
+ addrs.push(info.address);
236
+ }
237
+ }
238
+ }
239
+ return addrs;
240
+ }
241
+ /**
242
+ * One-shot mDNS browse for ABB controllers. Resolves after `timeoutMs`
243
+ * (default 2000) with every `RobotWebServices_*` instance heard, deduped by
244
+ * instance name. Never rejects — socket errors resolve with what was
245
+ * collected so far.
246
+ */
247
+ export function discoverControllersMdns(opts = {}) {
248
+ const timeoutMs = opts.timeoutMs ?? 2000;
249
+ const factory = opts.socketFactory ?? (() => dgram.createSocket({ type: 'udp4', reuseAddr: true }));
250
+ return new Promise(resolve => {
251
+ const store = { instances: new Map(), srv: new Map(), txt: new Map(), a: new Map() };
252
+ let socket;
253
+ try {
254
+ socket = factory();
255
+ }
256
+ catch {
257
+ resolve([]);
258
+ return;
259
+ }
260
+ let settled = false;
261
+ const finish = () => {
262
+ if (settled) {
263
+ return;
264
+ }
265
+ settled = true;
266
+ clearTimeout(timer);
267
+ try {
268
+ socket.close();
269
+ }
270
+ catch { /* already closed */ }
271
+ resolve(buildControllers(store));
272
+ };
273
+ const timer = setTimeout(finish, timeoutMs);
274
+ socket.on('error', () => finish());
275
+ socket.on('message', (msg, rinfo) => {
276
+ try {
277
+ ingestPacket(msg, rinfo.address, store);
278
+ }
279
+ catch {
280
+ // malformed or non-DNS packet — 5353 traffic is noisy, just skip it
281
+ }
282
+ });
283
+ try {
284
+ socket.bind(0, '0.0.0.0', () => {
285
+ const queries = QUERY_NAMES.map((name, i) => buildPtrQuery(name, i + 1));
286
+ const sendAll = () => {
287
+ for (const q of queries) {
288
+ try {
289
+ socket.send(q, MDNS_PORT, MDNS_ADDR, () => { });
290
+ }
291
+ catch { /* ditto */ }
292
+ }
293
+ };
294
+ sendAll(); // OS default multicast egress
295
+ // Windows picks ONE egress interface per send — retry through each
296
+ // IPv4 interface so controllers on non-default-route networks answer.
297
+ for (const addr of opts.interfaceAddrs ?? ipv4InterfaceAddrs()) {
298
+ try {
299
+ socket.setMulticastInterface(addr);
300
+ sendAll();
301
+ }
302
+ catch {
303
+ // interface can't multicast (VPN/virtual adapters) — skip
304
+ }
305
+ }
306
+ });
307
+ }
308
+ catch {
309
+ finish();
310
+ }
311
+ });
312
+ }
313
+ //# sourceMappingURL=MdnsDiscovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MdnsDiscovery.js","sourceRoot":"","sources":["../src/MdnsDiscovery.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { RobotManager } from './RobotManager.js';
2
- import type { RobotState, ErrorListener } from './RobotManager.js';
2
+ import type { RobotState, ErrorListener, RobotManagerOptions } from './RobotManager.js';
3
3
  import type { FileEntry } from './types.js';
4
4
  export interface RobotConfig {
5
5
  id: string;
@@ -17,11 +17,14 @@ export interface RobotConfig {
17
17
  * One robot is "active" at a time — all panels display that robot's state.
18
18
  */
19
19
  export declare class MultiRobotManager {
20
+ private readonly managerOptions?;
20
21
  private managers;
21
22
  private configMap;
22
23
  private _activeId;
23
24
  private handlers;
24
25
  private errorListener;
26
+ /** Options forwarded to every RobotManager this instance creates (current and future). */
27
+ constructor(managerOptions?: RobotManagerOptions | undefined);
25
28
  /** The currently selected robot's manager, or null if no robots configured. */
26
29
  get active(): RobotManager | null;
27
30
  get activeId(): string | null;
@@ -48,7 +51,7 @@ export declare class MultiRobotManager {
48
51
  connectRobot(id: string): Promise<void>;
49
52
  disconnectRobot(id: string): Promise<void>;
50
53
  /** Create a MultiRobotManager from persisted configs, with backward compatibility for legacy single-robot settings. */
51
- static fromConfigs(configs: RobotConfig[]): MultiRobotManager;
54
+ static fromConfigs(configs: RobotConfig[], opts?: RobotManagerOptions): MultiRobotManager;
52
55
  /** Generate a new robot config ID. */
53
56
  static newId(): string;
54
57
  private notify;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiRobotManager.d.ts","sourceRoot":"","sources":["../src/MultiRobotManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,aAAa,CAA8B;IAInD,+EAA+E;IAC/E,IAAI,MAAM,IAAI,YAAY,GAAG,IAAI,CAEhC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAA2B;IAExD,kDAAkD;IAClD,IAAI,OAAO,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE,CAAC,CAI/E;IAED,IAAI,OAAO,IAAI,WAAW,EAAE,CAAyC;IAIrE,IAAI,KAAK,IAAI,UAAU,CAOtB;IAED,WAAW,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAEjC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAM1B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQ7D,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAUnC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAQvE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAU7B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASrB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,uHAAuH;IACvH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,iBAAiB;IAM7D,sCAAsC;IACtC,MAAM,CAAC,KAAK,IAAI,MAAM;IAMtB,OAAO,CAAC,MAAM;CACf"}
1
+ {"version":3,"file":"MultiRobotManager.d.ts","sourceRoot":"","sources":["../src/MultiRobotManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAQhB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAP5C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,aAAa,CAA8B;IAEnD,0FAA0F;gBAC7D,cAAc,CAAC,EAAE,mBAAmB,YAAA;IAIjE,+EAA+E;IAC/E,IAAI,MAAM,IAAI,YAAY,GAAG,IAAI,CAEhC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAA2B;IAExD,kDAAkD;IAClD,IAAI,OAAO,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE,CAAC,CAI/E;IAED,IAAI,OAAO,IAAI,WAAW,EAAE,CAAyC;IAIrE,IAAI,KAAK,IAAI,UAAU,CAOtB;IAED,WAAW,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAEjC;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAM1B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQ7D,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAUnC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAQvE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAU7B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASrB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,uHAAuH;IACvH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,iBAAiB;IAMzF,sCAAsC;IACtC,MAAM,CAAC,KAAK,IAAI,MAAM;IAMtB,OAAO,CAAC,MAAM;CACf"}
@@ -5,11 +5,16 @@ import { RobotManager } from './RobotManager.js';
5
5
  * One robot is "active" at a time — all panels display that robot's state.
6
6
  */
7
7
  export class MultiRobotManager {
8
+ managerOptions;
8
9
  managers = new Map();
9
10
  configMap = new Map();
10
11
  _activeId = null;
11
12
  handlers = [];
12
13
  errorListener = null;
14
+ /** Options forwarded to every RobotManager this instance creates (current and future). */
15
+ constructor(managerOptions) {
16
+ this.managerOptions = managerOptions;
17
+ }
13
18
  // ── Accessors ──────────────────────────────────────────────────────────────
14
19
  /** The currently selected robot's manager, or null if no robots configured. */
15
20
  get active() {
@@ -54,7 +59,7 @@ export class MultiRobotManager {
54
59
  }
55
60
  // ── Robot management ───────────────────────────────────────────────────────
56
61
  addRobot(config) {
57
- const mgr = new RobotManager();
62
+ const mgr = new RobotManager(this.managerOptions);
58
63
  mgr.onDidChange(() => this.notify());
59
64
  if (this.errorListener) {
60
65
  mgr.onError(this.errorListener);
@@ -114,8 +119,8 @@ export class MultiRobotManager {
114
119
  }
115
120
  // ── Serialization ──────────────────────────────────────────────────────────
116
121
  /** Create a MultiRobotManager from persisted configs, with backward compatibility for legacy single-robot settings. */
117
- static fromConfigs(configs) {
118
- const m = new MultiRobotManager();
122
+ static fromConfigs(configs, opts) {
123
+ const m = new MultiRobotManager(opts);
119
124
  configs.forEach(c => m.addRobot(c));
120
125
  return m;
121
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MultiRobotManager.js","sourceRoot":"","sources":["../src/MultiRobotManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiRobotManager.js","sourceRoot":"","sources":["../src/MultiRobotManager.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export declare class RWS1Adapter implements IRWSAdapter {
56
56
  setUiInstructionParam(su: string, up: string, v: string): Promise<void>;
57
57
  getJointPositions(u?: string): Promise<JointTarget>;
58
58
  getCartesianFull(u?: string): Promise<import("./types.js").CartesianFull>;
59
- /** RwsClient has no listMechunits IRC5 always has ROB_1 as the standard mechunit. */
59
+ /** List mechanical units from the controller (positioners/track units show up beyond ROB_1). */
60
60
  listMechunits(): Promise<string[]>;
61
61
  getSystemInfo(): Promise<import("./types.js").SystemInfo>;
62
62
  getControllerIdentity(): Promise<import("./types.js").ControllerIdentity>;
@@ -117,7 +117,7 @@ export declare class RWS1Adapter implements IRWSAdapter {
117
117
  * Forward kinematics on RWS 1.0. Same VC-license caveat as IK.
118
118
  */
119
119
  calcCartesianFromJoints(joints: JointTarget, mechunit?: string, tool?: string, wobj?: string): Promise<RobTarget>;
120
- subscribe(resources: SubscriptionResource[], handler: (event: SubscriptionEvent) => void): Promise<() => Promise<void>>;
120
+ subscribe(resources: SubscriptionResource[], handler: (event: SubscriptionEvent) => void, _onLost?: () => void): Promise<() => Promise<void>>;
121
121
  /** Monotonic counter required by RWS jog endpoint (rejects duplicate ccount values). */
122
122
  private jogCcount;
123
123
  jog(params: {
@@ -202,6 +202,36 @@ export declare class RWS1Adapter implements IRWSAdapter {
202
202
  listCfgTypes(domain: string): Promise<string[]>;
203
203
  listCfgInstances(domain: string, type: string): Promise<string[]>;
204
204
  getCfgInstance(domain: string, type: string, instance: string): Promise<Record<string, string>>;
205
+ /**
206
+ * Update attributes on an existing configuration instance.
207
+ * Live-verified 2026-07-09 on IRC5 VC RW6.16 via probe-cfg-rws1.mjs:
208
+ * ✓ POST /rw/cfg/{domain}/{type}/instances/{instance}?action=set
209
+ * body: PLAIN form values `Attr=value&…` (percent-encoded) → 204,
210
+ * partial attribute sets accepted.
211
+ * Acquires cfg-domain mastership around the write. (The VC accepts cfg
212
+ * writes without it, but real controllers arbitrate cfg access through
213
+ * mastership — and taking it when free is harmless.)
214
+ */
215
+ setCfgInstance(domain: string, type: string, instance: string, attrs: Record<string, string>): Promise<void>;
216
+ /**
217
+ * Create a new configuration instance, then apply `attrs`.
218
+ * Live-verified 2026-07-09 on IRC5 VC RW6.16:
219
+ * ✓ POST /rw/cfg/{domain}/{type}/instances?action=create-default
220
+ * body name={instance} → 201 (duplicate name → 400), then the
221
+ * ?action=set shape above for the attribute values.
222
+ * Acquires cfg-domain mastership once around the create+set pair.
223
+ */
224
+ createCfgInstance(domain: string, type: string, instance: string, attrs: Record<string, string>): Promise<void>;
225
+ /**
226
+ * Delete a configuration instance.
227
+ * Live-verified 2026-07-09 on IRC5 VC RW6.16:
228
+ * ✓ DELETE /rw/cfg/{domain}/{type}/instances/{instance} → 204
229
+ * (reading the instance back afterwards → 400 "unknown instance",
230
+ * unlike RWS 2.0 which answers 404).
231
+ */
232
+ removeCfgInstance(domain: string, type: string, instance: string): Promise<void>;
233
+ /** Shared ?action=set POST — plain `Attr=value` form pairs (RWS 1.0 wire shape). */
234
+ private postCfgSet;
205
235
  listBackups(): Promise<Array<{
206
236
  name: string;
207
237
  created?: string;
@@ -257,7 +287,35 @@ export declare class RWS1Adapter implements IRWSAdapter {
257
287
  }>>;
258
288
  getVisionSystemInfo(name: string): Promise<Record<string, string>>;
259
289
  triggerVisionJob(system: string): Promise<void>;
290
+ /**
291
+ * Save a loaded module's program-memory source to controller disk.
292
+ * Live-verified 2026-07-09 on IRC5 VC RW6.16:
293
+ * POST /rw/rapid/tasks/{task}?action=savemod is DEAD — 400 ARG_ERROR
294
+ * (-1073445879, rws_resource_rapid_task.cpp[952]) for every body shape
295
+ * including the empty body, and the task resource advertises no savemod
296
+ * action. The working endpoint is the module-save action (same one
297
+ * readModuleViaSave uses):
298
+ * POST /rw/rapid/modules/{module}?task={task}&action=save
299
+ * body name=<file>&path=<dir> → 204
300
+ * The controller blindly appends '.mod' to the given name — even when it
301
+ * already ends in .mod (name=save1.mod wrote $TEMP/save1.mod.mod) — so a
302
+ * trailing .mod/.sys extension on the destination is stripped here.
303
+ * `filepath` may be a directory ('$TEMP'), a full destination path
304
+ * ('$HOME/backups/Copy.mod'), or a bare file name ('Copy.mod', saved under
305
+ * $HOME); a directory destination saves under the module's own name.
306
+ */
260
307
  saveModule(task: string, moduleName: string, filepath: string): Promise<void>;
308
+ getModuleSource(task: string, moduleName: string): Promise<string>;
309
+ /**
310
+ * Read a module's source by round-tripping it through the $TEMP volume.
311
+ * Live-verified 2026-07-08 on IRC5 VC RW6.16:
312
+ * POST /rw/rapid/modules/{module}?task={task}&action=save body name=<tmp>&path=$TEMP
313
+ * → 204, no mastership required. The controller ALWAYS appends '.mod' to
314
+ * the given name (even for SysMod modules — never '.sys'), so the name is
315
+ * passed without extension. Note the $-root has no trailing colon/slash,
316
+ * unlike RWS 2.0's 'TEMP:'.
317
+ */
318
+ private readModuleViaSave;
261
319
  listModuleRoutines(task: string, moduleName: string): Promise<Array<{
262
320
  name: string;
263
321
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RWS1Adapter.d.ts","sourceRoot":"","sources":["../src/RWS1Adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RWS1Adapter.d.ts","sourceRoot":"","sources":["../src/RWS1Adapter.ts"],"names":[],"mappings":"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"}