@iicp/client 0.6.0 → 0.7.1

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.
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Relay worker client — ADR-041 tier-3, Part 3 R2 (#341).
3
+ *
4
+ * TypeScript port of relay_worker_client.py.
5
+ * A CGNAT-unreachable node connects outbound to a relay node here.
6
+ * The relay pushes CALL frames down the persistent session; the worker
7
+ * handles them and sends RESPONSE back. PING/PONG keepalive with auto-
8
+ * reconnect (exponential backoff, cap 60 s).
9
+ */
10
+ export type RelayTaskHandler = (task: Record<string, unknown>) => Promise<Record<string, unknown>>;
11
+ export declare class RelayWorkerClient {
12
+ private readonly _workerId;
13
+ private readonly _intent;
14
+ private readonly _relayHost;
15
+ private readonly _relayPort;
16
+ private readonly _handler;
17
+ private readonly _models;
18
+ private readonly _onBind?;
19
+ private _stopped;
20
+ constructor(opts: {
21
+ workerId: string;
22
+ intent: string;
23
+ relayHost: string;
24
+ relayPort: number;
25
+ handler: RelayTaskHandler;
26
+ models?: string[];
27
+ /** Called after a successful RELAY_ACK — use to re-register with the directory (#358). */
28
+ onBind?: (relayHost: string, relayPort: number, workerId: string) => Promise<void>;
29
+ });
30
+ /** Start the reconnect loop. Returns a stop() function. */
31
+ start(): () => void;
32
+ private _run;
33
+ private _session;
34
+ private _handshake;
35
+ private _handleCall;
36
+ }
37
+ //# sourceMappingURL=relay_worker_client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay_worker_client.d.ts","sourceRoot":"","sources":["../src/relay_worker_client.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAwCH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnG,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA4E;IACrG,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,gBAAgB,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,0FAA0F;QAC1F,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACpF;IAUD,2DAA2D;IAC3D,KAAK,IAAI,MAAM,IAAI;YAML,IAAI;IAelB,OAAO,CAAC,QAAQ;YAaF,UAAU;YAoFV,WAAW;CAoB1B"}
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Relay worker client — ADR-041 tier-3, Part 3 R2 (#341).
5
+ *
6
+ * TypeScript port of relay_worker_client.py.
7
+ * A CGNAT-unreachable node connects outbound to a relay node here.
8
+ * The relay pushes CALL frames down the persistent session; the worker
9
+ * handles them and sends RESPONSE back. PING/PONG keepalive with auto-
10
+ * reconnect (exponential backoff, cap 60 s).
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.RelayWorkerClient = void 0;
14
+ const net = require("node:net");
15
+ const IICP_MAGIC = Buffer.from("IICP");
16
+ const FRAMING_VERSION = 0x01;
17
+ const FRAME_HEADER_LEN = 12;
18
+ const PING_INTERVAL_MS = 30_000;
19
+ const MAX_RECONNECT_DELAY_MS = 60_000;
20
+ const MT_INIT = 0x01;
21
+ const MT_ACK = 0x02;
22
+ const MT_CALL = 0x05;
23
+ const MT_RESPONSE = 0x06;
24
+ const MT_PING = 0x09;
25
+ const MT_PONG = 0x0a;
26
+ const MT_RELAY_BIND = 0x0b;
27
+ const MT_RELAY_ACK = 0x0c;
28
+ function _enc(obj) {
29
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
30
+ return require("cbor-x").encode(obj);
31
+ }
32
+ function _dec(buf) {
33
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
34
+ return require("cbor-x").decode(buf);
35
+ }
36
+ function makeFrame(msgType, payload) {
37
+ const header = Buffer.alloc(FRAME_HEADER_LEN);
38
+ IICP_MAGIC.copy(header, 0);
39
+ header.writeUInt8(FRAMING_VERSION, 4);
40
+ header.writeUInt8(msgType, 5);
41
+ header.writeUInt8(0, 6);
42
+ header.writeUInt8(0, 7);
43
+ header.writeUInt32BE(payload.length, 8);
44
+ return Buffer.concat([header, payload]);
45
+ }
46
+ class RelayWorkerClient {
47
+ _workerId;
48
+ _intent;
49
+ _relayHost;
50
+ _relayPort;
51
+ _handler;
52
+ _models;
53
+ _onBind;
54
+ _stopped = false;
55
+ constructor(opts) {
56
+ this._workerId = opts.workerId;
57
+ this._intent = opts.intent;
58
+ this._relayHost = opts.relayHost;
59
+ this._relayPort = opts.relayPort;
60
+ this._handler = opts.handler;
61
+ this._models = opts.models ?? [];
62
+ this._onBind = opts.onBind;
63
+ }
64
+ /** Start the reconnect loop. Returns a stop() function. */
65
+ start() {
66
+ this._stopped = false;
67
+ void this._run();
68
+ return () => { this._stopped = true; };
69
+ }
70
+ async _run() {
71
+ let delay = 2_000;
72
+ while (!this._stopped) {
73
+ try {
74
+ await this._session();
75
+ delay = 2_000;
76
+ }
77
+ catch {
78
+ // reconnect
79
+ }
80
+ if (this._stopped)
81
+ break;
82
+ await new Promise((r) => setTimeout(r, delay));
83
+ delay = Math.min(delay * 2, MAX_RECONNECT_DELAY_MS);
84
+ }
85
+ }
86
+ _session() {
87
+ return new Promise((resolve, reject) => {
88
+ const socket = net.createConnection(this._relayPort, this._relayHost);
89
+ socket.on("error", reject);
90
+ socket.on("connect", () => {
91
+ this._handshake(socket)
92
+ .then(resolve)
93
+ .catch(reject)
94
+ .finally(() => socket.destroy());
95
+ });
96
+ });
97
+ }
98
+ async _handshake(socket) {
99
+ const chunks = [];
100
+ let resolveData = null;
101
+ socket.on("data", (d) => {
102
+ chunks.push(d);
103
+ if (resolveData) {
104
+ resolveData();
105
+ resolveData = null;
106
+ }
107
+ });
108
+ socket.on("end", () => { if (resolveData) {
109
+ resolveData();
110
+ resolveData = null;
111
+ } });
112
+ const waitData = () => new Promise((r) => { resolveData = r; });
113
+ const readExact = async (n) => {
114
+ while (true) {
115
+ const total = chunks.reduce((s, c) => s + c.length, 0);
116
+ if (total >= n) {
117
+ const merged = Buffer.concat(chunks);
118
+ chunks.length = 0;
119
+ chunks.push(merged.subarray(n));
120
+ return merged.subarray(0, n);
121
+ }
122
+ if (socket.destroyed)
123
+ return null;
124
+ await waitData();
125
+ }
126
+ };
127
+ const readFrame = async () => {
128
+ const h = await readExact(FRAME_HEADER_LEN);
129
+ if (!h)
130
+ return null;
131
+ if (!h.subarray(0, 4).equals(IICP_MAGIC))
132
+ return null;
133
+ const mt = h.readUInt8(5);
134
+ const plen = h.readUInt32BE(8);
135
+ const payload = plen > 0 ? await readExact(plen) : Buffer.alloc(0);
136
+ if (!payload)
137
+ return null;
138
+ return [mt, payload];
139
+ };
140
+ // Step 1: INIT → ACK
141
+ socket.write(makeFrame(MT_INIT, _enc({ 1: FRAMING_VERSION })));
142
+ const ack = await readFrame();
143
+ if (!ack || ack[0] !== MT_ACK)
144
+ throw new Error(`Expected ACK, got ${ack?.[0]}`);
145
+ // Step 2: RELAY_BIND → RELAY_ACK
146
+ socket.write(makeFrame(MT_RELAY_BIND, _enc({
147
+ 1: this._workerId,
148
+ 2: this._intent,
149
+ 3: this._models,
150
+ })));
151
+ const rack = await readFrame();
152
+ if (!rack || rack[0] !== MT_RELAY_ACK)
153
+ throw new Error(`Expected RELAY_ACK, got ${rack?.[0]}`);
154
+ const ackBody = _dec(rack[1]);
155
+ if (ackBody[1] !== "ok")
156
+ throw new Error(`RELAY_ACK not ok: ${JSON.stringify(ackBody)}`);
157
+ console.log(`[relay-worker] ${this._workerId}: bound to relay ${this._relayHost}:${this._relayPort}`);
158
+ if (this._onBind) {
159
+ try {
160
+ await this._onBind(this._relayHost, this._relayPort, this._workerId);
161
+ }
162
+ catch (exc) {
163
+ console.warn(`[relay-worker] onBind callback failed: ${exc instanceof Error ? exc.message : exc}`);
164
+ }
165
+ }
166
+ // Step 3: session loop
167
+ const pingTimer = setInterval(() => {
168
+ if (!socket.destroyed)
169
+ socket.write(makeFrame(MT_PING, _enc({ 1: Buffer.alloc(0) })));
170
+ }, PING_INTERVAL_MS);
171
+ try {
172
+ while (!this._stopped && !socket.destroyed) {
173
+ const frame = await readFrame();
174
+ if (!frame)
175
+ break;
176
+ const [mt, payload] = frame;
177
+ if (mt === MT_CALL) {
178
+ void this._handleCall(payload, socket);
179
+ }
180
+ else if (mt === MT_PONG || mt === MT_PING) {
181
+ // keepalive acknowledged / or relay's keepalive
182
+ }
183
+ else if (mt === 0x07) {
184
+ break; // CLOSE
185
+ }
186
+ }
187
+ }
188
+ finally {
189
+ clearInterval(pingTimer);
190
+ }
191
+ }
192
+ async _handleCall(payload, socket) {
193
+ let callId = "";
194
+ let result;
195
+ try {
196
+ const body = _dec(payload);
197
+ callId = String(body[15] ?? "");
198
+ const raw5 = body[5];
199
+ const taskStr = Buffer.isBuffer(raw5) ? raw5.toString() : String(raw5 ?? "{}");
200
+ const task = JSON.parse(taskStr);
201
+ result = await this._handler(task);
202
+ }
203
+ catch (exc) {
204
+ result = { error: exc instanceof Error ? exc.message : String(exc) };
205
+ }
206
+ try {
207
+ const respPayload = _enc({ 15: callId, 5: Buffer.from(JSON.stringify(result)) });
208
+ socket.write(makeFrame(MT_RESPONSE, respPayload));
209
+ }
210
+ catch (exc) {
211
+ console.warn(`[relay-worker] failed to send RESPONSE: ${exc}`);
212
+ }
213
+ }
214
+ }
215
+ exports.RelayWorkerClient = RelayWorkerClient;
216
+ //# sourceMappingURL=relay_worker_client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay_worker_client.js","sourceRoot":"","sources":["../src/relay_worker_client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iicp/client",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "Official TypeScript/JavaScript SDK for the IICP protocol (ADR-016)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",