@procwire/transport 0.1.1 → 0.2.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.
- package/README.md +130 -4
- package/dist/channel/builder.d.ts +23 -0
- package/dist/channel/builder.d.ts.map +1 -1
- package/dist/channel/builder.js +46 -0
- package/dist/channel/builder.js.map +1 -1
- package/dist/channel/index.d.ts +1 -1
- package/dist/channel/index.d.ts.map +1 -1
- package/dist/channel/index.js +1 -1
- package/dist/channel/index.js.map +1 -1
- package/dist/channel/quickstart.d.ts.map +1 -1
- package/dist/channel/quickstart.js +16 -10
- package/dist/channel/quickstart.js.map +1 -1
- package/dist/channel/request-channel.d.ts +10 -1
- package/dist/channel/request-channel.d.ts.map +1 -1
- package/dist/channel/request-channel.js +161 -35
- package/dist/channel/request-channel.js.map +1 -1
- package/dist/channel/types.d.ts +135 -7
- package/dist/channel/types.d.ts.map +1 -1
- package/dist/framing/length-prefixed.d.ts +5 -1
- package/dist/framing/length-prefixed.d.ts.map +1 -1
- package/dist/framing/length-prefixed.js +94 -15
- package/dist/framing/length-prefixed.js.map +1 -1
- package/dist/framing/line-delimited.d.ts +4 -1
- package/dist/framing/line-delimited.d.ts.map +1 -1
- package/dist/framing/line-delimited.js +89 -23
- package/dist/framing/line-delimited.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/process/handle.d.ts.map +1 -1
- package/dist/process/handle.js.map +1 -1
- package/dist/process/manager.d.ts +16 -0
- package/dist/process/manager.d.ts.map +1 -1
- package/dist/process/manager.js +140 -81
- package/dist/process/manager.js.map +1 -1
- package/dist/process/types.d.ts +110 -1
- package/dist/process/types.d.ts.map +1 -1
- package/dist/protocol/jsonrpc.d.ts.map +1 -1
- package/dist/protocol/jsonrpc.js.map +1 -1
- package/dist/protocol/simple.d.ts.map +1 -1
- package/dist/protocol/simple.js.map +1 -1
- package/dist/serialization/json.d.ts.map +1 -1
- package/dist/serialization/json.js.map +1 -1
- package/dist/transport/socket-server.d.ts.map +1 -1
- package/dist/transport/socket-server.js.map +1 -1
- package/dist/transport/socket-transport.d.ts +11 -13
- package/dist/transport/socket-transport.d.ts.map +1 -1
- package/dist/transport/socket-transport.js +57 -26
- package/dist/transport/socket-transport.js.map +1 -1
- package/dist/transport/stdio-transport.d.ts +12 -19
- package/dist/transport/stdio-transport.d.ts.map +1 -1
- package/dist/transport/stdio-transport.js +54 -33
- package/dist/transport/stdio-transport.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/metrics.d.ts +6 -0
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/utils/metrics.js +2 -0
- package/dist/utils/metrics.js.map +1 -0
- package/dist/utils/pipe-path.d.ts +8 -2
- package/dist/utils/pipe-path.d.ts.map +1 -1
- package/dist/utils/pipe-path.js +27 -4
- package/dist/utils/pipe-path.js.map +1 -1
- package/dist/utils/platform.d.ts.map +1 -1
- package/dist/utils/platform.js +1 -1
- package/dist/utils/platform.js.map +1 -1
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-server.d.ts","sourceRoot":"","sources":["../../src/transport/socket-server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"socket-server.d.ts","sourceRoot":"","sources":["../../src/transport/socket-server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,SAAS,EAGV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;gBAEvD,OAAO,GAAE,mBAAwB;IAM7C,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,OAAO,IAAI,aAAa,GAAG,IAAI,CAElC;IAEK,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA8CxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B,YAAY,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,GAAG,WAAW;IAIlE,EAAE,CAAC,CAAC,SAAS,MAAM,qBAAqB,EACtC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,IAAI,GAChD,WAAW;IAId,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,OAAO;CAOhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-server.js","sourceRoot":"","sources":["../../src/transport/socket-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-server.js","sourceRoot":"","sources":["../../src/transport/socket-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Transport, TransportState, TransportEvents } from "./types.js";
|
|
2
2
|
import type { Unsubscribe } from "../utils/disposables.js";
|
|
3
|
+
import type { MetricsCollector } from "../utils/metrics.js";
|
|
3
4
|
/**
|
|
4
5
|
* Socket transport options (Named Pipes on Windows, Unix Domain Sockets on Unix).
|
|
5
6
|
*/
|
|
@@ -30,20 +31,11 @@ export interface SocketTransportOptions {
|
|
|
30
31
|
* @default 30000
|
|
31
32
|
*/
|
|
32
33
|
maxReconnectDelay?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Optional metrics collector for transport events.
|
|
36
|
+
*/
|
|
37
|
+
metrics?: MetricsCollector;
|
|
33
38
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Socket-based transport implementation for Named Pipes (Windows) and Unix Domain Sockets.
|
|
36
|
-
*
|
|
37
|
-
* Provides bidirectional byte stream communication over local sockets.
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```ts
|
|
41
|
-
* const transport = new SocketTransport({ path: '/tmp/my-socket.sock' });
|
|
42
|
-
* await transport.connect();
|
|
43
|
-
* await transport.write(Buffer.from('hello'));
|
|
44
|
-
* transport.onData(data => console.log('received:', data));
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
39
|
export declare class SocketTransport implements Transport {
|
|
48
40
|
private readonly emitter;
|
|
49
41
|
private readonly options;
|
|
@@ -55,6 +47,11 @@ export declare class SocketTransport implements Transport {
|
|
|
55
47
|
private manualDisconnect;
|
|
56
48
|
constructor(options: SocketTransportOptions);
|
|
57
49
|
get state(): TransportState;
|
|
50
|
+
/**
|
|
51
|
+
* Transitions to a new state with validation.
|
|
52
|
+
* Throws TransportError if the transition is invalid.
|
|
53
|
+
*/
|
|
54
|
+
private setState;
|
|
58
55
|
connect(): Promise<void>;
|
|
59
56
|
disconnect(): Promise<void>;
|
|
60
57
|
write(data: Buffer): Promise<void>;
|
|
@@ -63,5 +60,6 @@ export declare class SocketTransport implements Transport {
|
|
|
63
60
|
private setupSocketListeners;
|
|
64
61
|
private scheduleReconnect;
|
|
65
62
|
private cleanup;
|
|
63
|
+
private recordError;
|
|
66
64
|
}
|
|
67
65
|
//# sourceMappingURL=socket-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-transport.d.ts","sourceRoot":"","sources":["../../src/transport/socket-transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"socket-transport.d.ts","sourceRoot":"","sources":["../../src/transport/socket-transport.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAwBD,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,OAAO,EAAE,sBAAsB;IAoC3C,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAIV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC3B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BxC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW;IAIpD,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EAChC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,GAC1C,WAAW;IAId,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,WAAW;CAMpB"}
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
import * as net from "node:net";
|
|
2
2
|
import { EventEmitter } from "../utils/events.js";
|
|
3
3
|
import { TransportError } from "../utils/errors.js";
|
|
4
|
-
|
|
5
|
-
* Socket-based transport implementation for Named Pipes (Windows) and Unix Domain Sockets.
|
|
6
|
-
*
|
|
7
|
-
* Provides bidirectional byte stream communication over local sockets.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* const transport = new SocketTransport({ path: '/tmp/my-socket.sock' });
|
|
12
|
-
* await transport.connect();
|
|
13
|
-
* await transport.write(Buffer.from('hello'));
|
|
14
|
-
* transport.onData(data => console.log('received:', data));
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
4
|
+
import { transitionState } from "../utils/assert.js";
|
|
17
5
|
export class SocketTransport {
|
|
18
6
|
emitter = new EventEmitter();
|
|
19
7
|
options;
|
|
@@ -24,17 +12,44 @@ export class SocketTransport {
|
|
|
24
12
|
reconnectAttempts = 0;
|
|
25
13
|
manualDisconnect = false;
|
|
26
14
|
constructor(options) {
|
|
15
|
+
// Validate required options
|
|
16
|
+
if (!options.path || options.path.trim() === "") {
|
|
17
|
+
throw new Error("SocketTransport: path is required and cannot be empty");
|
|
18
|
+
}
|
|
19
|
+
// Validate optional numeric options
|
|
20
|
+
if (options.connectionTimeout !== undefined && options.connectionTimeout <= 0) {
|
|
21
|
+
throw new Error("SocketTransport: connectionTimeout must be positive");
|
|
22
|
+
}
|
|
23
|
+
if (options.reconnectDelay !== undefined && options.reconnectDelay < 0) {
|
|
24
|
+
throw new Error("SocketTransport: reconnectDelay cannot be negative");
|
|
25
|
+
}
|
|
26
|
+
if (options.maxReconnectDelay !== undefined && options.maxReconnectDelay < 0) {
|
|
27
|
+
throw new Error("SocketTransport: maxReconnectDelay cannot be negative");
|
|
28
|
+
}
|
|
29
|
+
if (options.reconnectDelay !== undefined &&
|
|
30
|
+
options.maxReconnectDelay !== undefined &&
|
|
31
|
+
options.reconnectDelay > options.maxReconnectDelay) {
|
|
32
|
+
throw new Error("SocketTransport: reconnectDelay cannot be greater than maxReconnectDelay");
|
|
33
|
+
}
|
|
27
34
|
this.options = {
|
|
28
35
|
path: options.path,
|
|
29
36
|
connectionTimeout: options.connectionTimeout ?? 5000,
|
|
30
37
|
autoReconnect: options.autoReconnect ?? false,
|
|
31
38
|
reconnectDelay: options.reconnectDelay ?? 1000,
|
|
32
39
|
maxReconnectDelay: options.maxReconnectDelay ?? 30000,
|
|
40
|
+
metrics: options.metrics,
|
|
33
41
|
};
|
|
34
42
|
}
|
|
35
43
|
get state() {
|
|
36
44
|
return this._state;
|
|
37
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Transitions to a new state with validation.
|
|
48
|
+
* Throws TransportError if the transition is invalid.
|
|
49
|
+
*/
|
|
50
|
+
setState(newState) {
|
|
51
|
+
this._state = transitionState(this._state, newState);
|
|
52
|
+
}
|
|
38
53
|
async connect() {
|
|
39
54
|
if (this._state === "connected") {
|
|
40
55
|
throw new TransportError("Already connected");
|
|
@@ -43,15 +58,16 @@ export class SocketTransport {
|
|
|
43
58
|
throw new TransportError("Connection already in progress");
|
|
44
59
|
}
|
|
45
60
|
this.manualDisconnect = false;
|
|
46
|
-
this.
|
|
61
|
+
this.setState("connecting");
|
|
47
62
|
return new Promise((resolve, reject) => {
|
|
48
63
|
const socket = net.createConnection({ path: this.options.path });
|
|
49
64
|
this.socket = socket;
|
|
50
65
|
// Connection timeout
|
|
51
66
|
this.connectTimer = setTimeout(() => {
|
|
52
67
|
socket.destroy();
|
|
53
|
-
this.
|
|
68
|
+
this.setState("error");
|
|
54
69
|
const error = new TransportError(`Connection timeout after ${this.options.connectionTimeout}ms`);
|
|
70
|
+
this.recordError(error);
|
|
55
71
|
this.emitter.emit("error", error);
|
|
56
72
|
reject(error);
|
|
57
73
|
}, this.options.connectionTimeout);
|
|
@@ -60,8 +76,9 @@ export class SocketTransport {
|
|
|
60
76
|
clearTimeout(this.connectTimer);
|
|
61
77
|
this.connectTimer = null;
|
|
62
78
|
}
|
|
63
|
-
this.
|
|
79
|
+
this.setState("connected");
|
|
64
80
|
this.reconnectAttempts = 0;
|
|
81
|
+
this.options.metrics?.incrementCounter("transport.connect", 1, { transport: "socket" });
|
|
65
82
|
this.setupSocketListeners(socket);
|
|
66
83
|
this.emitter.emit("connect", undefined);
|
|
67
84
|
resolve();
|
|
@@ -71,8 +88,9 @@ export class SocketTransport {
|
|
|
71
88
|
clearTimeout(this.connectTimer);
|
|
72
89
|
this.connectTimer = null;
|
|
73
90
|
}
|
|
74
|
-
this.
|
|
91
|
+
this.setState("error");
|
|
75
92
|
const error = new TransportError(`Connection failed: ${err.message}`, err);
|
|
93
|
+
this.recordError(error);
|
|
76
94
|
this.emitter.emit("error", error);
|
|
77
95
|
reject(error);
|
|
78
96
|
// Try reconnecting if enabled and not manual disconnect
|
|
@@ -121,9 +139,15 @@ export class SocketTransport {
|
|
|
121
139
|
}
|
|
122
140
|
return new Promise((resolve, reject) => {
|
|
123
141
|
const socket = this.socket;
|
|
124
|
-
|
|
142
|
+
// The callback is invoked when data has been written to the kernel buffer.
|
|
143
|
+
// This provides implicit backpressure handling - callers using await will
|
|
144
|
+
// naturally wait for each write to complete before sending more data.
|
|
145
|
+
// If the kernel buffer is full, the callback will be delayed until space
|
|
146
|
+
// is available (after 'drain' event internally).
|
|
147
|
+
socket.write(data, (err) => {
|
|
125
148
|
if (err) {
|
|
126
149
|
const error = new TransportError(`Write failed: ${err.message}`, err);
|
|
150
|
+
this.recordError(error);
|
|
127
151
|
this.emitter.emit("error", error);
|
|
128
152
|
reject(error);
|
|
129
153
|
}
|
|
@@ -131,12 +155,6 @@ export class SocketTransport {
|
|
|
131
155
|
resolve();
|
|
132
156
|
}
|
|
133
157
|
});
|
|
134
|
-
// Handle backpressure
|
|
135
|
-
if (!canContinue) {
|
|
136
|
-
socket.once("drain", () => {
|
|
137
|
-
// Buffer drained, can continue writing
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
158
|
});
|
|
141
159
|
}
|
|
142
160
|
onData(handler) {
|
|
@@ -157,8 +175,9 @@ export class SocketTransport {
|
|
|
157
175
|
}
|
|
158
176
|
});
|
|
159
177
|
socket.on("error", (err) => {
|
|
160
|
-
this.
|
|
178
|
+
this.setState("error");
|
|
161
179
|
const error = new TransportError(`Socket error: ${err.message}`, err);
|
|
180
|
+
this.recordError(error);
|
|
162
181
|
this.emitter.emit("error", error);
|
|
163
182
|
});
|
|
164
183
|
}
|
|
@@ -171,6 +190,11 @@ export class SocketTransport {
|
|
|
171
190
|
this.reconnectTimer = setTimeout(() => {
|
|
172
191
|
this.reconnectTimer = null;
|
|
173
192
|
this.reconnectAttempts++;
|
|
193
|
+
// Transition to disconnected before reconnecting to ensure valid state transition.
|
|
194
|
+
// From error state, we can only go to disconnected, and from disconnected we can connect.
|
|
195
|
+
if (this._state === "error") {
|
|
196
|
+
this._state = "disconnected";
|
|
197
|
+
}
|
|
174
198
|
this.connect().catch(() => {
|
|
175
199
|
// Error already emitted, will schedule next attempt
|
|
176
200
|
});
|
|
@@ -185,9 +209,16 @@ export class SocketTransport {
|
|
|
185
209
|
this.socket = null;
|
|
186
210
|
}
|
|
187
211
|
if (this._state !== "disconnected") {
|
|
188
|
-
this.
|
|
212
|
+
this.setState("disconnected");
|
|
213
|
+
this.options.metrics?.incrementCounter("transport.disconnect", 1, { transport: "socket" });
|
|
189
214
|
this.emitter.emit("disconnect", undefined);
|
|
190
215
|
}
|
|
191
216
|
}
|
|
217
|
+
recordError(error) {
|
|
218
|
+
this.options.metrics?.incrementCounter("transport.error", 1, {
|
|
219
|
+
transport: "socket",
|
|
220
|
+
type: error.name,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
192
223
|
}
|
|
193
224
|
//# sourceMappingURL=socket-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-transport.js","sourceRoot":"","sources":["../../src/transport/socket-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-transport.js","sourceRoot":"","sources":["../../src/transport/socket-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAoErD,MAAM,OAAO,eAAe;IACT,OAAO,GAAG,IAAI,YAAY,EAAmB,CAAC;IAC9C,OAAO,CAAiC;IACjD,MAAM,GAAsB,IAAI,CAAC;IACjC,MAAM,GAAmB,cAAc,CAAC;IACxC,YAAY,GAA0B,IAAI,CAAC;IAC3C,cAAc,GAA0B,IAAI,CAAC;IAC7C,iBAAiB,GAAG,CAAC,CAAC;IACtB,gBAAgB,GAAG,KAAK,CAAC;IAEjC,YAAY,OAA+B;QACzC,4BAA4B;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,OAAO,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,IACE,OAAO,CAAC,cAAc,KAAK,SAAS;YACpC,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACvC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAClD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI;YACpD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;YAC7C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;YAC9C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,KAAK;YACrD,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,QAAwB;QACvC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,IAAI,cAAc,CAAC,gCAAgC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,qBAAqB;YACrB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBAClC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,IAAI,cAAc,CAC9B,4BAA4B,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAC/D,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAEnC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC1B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACxF,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC3E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEd,wDAAwD;gBACxD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO,CAAC;gBAE5B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;oBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,GAAG,EAAE,CAAC;gBAEb,4BAA4B;gBAC5B,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;wBACtB,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,CAAC;gBACH,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO,CAAC;YAE5B,2EAA2E;YAC3E,0EAA0E;YAC1E,sEAAsE;YACtE,yEAAyE;YACzE,iDAAiD;YACjD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;oBACtE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBAClC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAA+B;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,EAAE,CACA,KAAQ,EACR,OAA2C;QAE3C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEO,oBAAoB,CAAC,MAAkB;QAC7C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;YAEf,wDAAwD;YACxD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,iBAAiB,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,2EAA2E;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,EACjE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC/B,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,mFAAmF;YACnF,0FAA0F;YAC1F,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;gBACxB,oDAAoD;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAEO,OAAO;QACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,sBAAsB,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3F,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAY;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,EAAE;YAC3D,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Transport, TransportState, TransportEvents } from "./types.js";
|
|
2
2
|
import type { Unsubscribe } from "../utils/disposables.js";
|
|
3
|
+
import type { MetricsCollector } from "../utils/metrics.js";
|
|
3
4
|
/**
|
|
4
5
|
* Stdio transport options for child process communication.
|
|
5
6
|
*/
|
|
@@ -37,6 +38,10 @@ export interface StdioTransportOptions {
|
|
|
37
38
|
* @default 1MB
|
|
38
39
|
*/
|
|
39
40
|
maxStderrBuffer?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Optional metrics collector for transport events.
|
|
43
|
+
*/
|
|
44
|
+
metrics?: MetricsCollector;
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
47
|
* Extended transport events for stdio transport (includes stderr and exit events).
|
|
@@ -54,25 +59,6 @@ export interface StdioTransportEvents extends TransportEvents {
|
|
|
54
59
|
signal: NodeJS.Signals | null;
|
|
55
60
|
};
|
|
56
61
|
}
|
|
57
|
-
/**
|
|
58
|
-
* Stdio-based transport for parent-child process communication.
|
|
59
|
-
*
|
|
60
|
-
* Spawns a child process and communicates via stdin/stdout.
|
|
61
|
-
* Stderr is exposed via separate 'stderr' event.
|
|
62
|
-
*
|
|
63
|
-
* @example
|
|
64
|
-
* ```ts
|
|
65
|
-
* const transport = new StdioTransport({
|
|
66
|
-
* executablePath: 'node',
|
|
67
|
-
* args: ['worker.js']
|
|
68
|
-
* });
|
|
69
|
-
*
|
|
70
|
-
* await transport.connect(); // Spawns process
|
|
71
|
-
* await transport.write(Buffer.from('hello'));
|
|
72
|
-
* transport.onData(data => console.log('received:', data));
|
|
73
|
-
* transport.on('stderr', line => console.error('stderr:', line));
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
62
|
export declare class StdioTransport implements Transport {
|
|
77
63
|
private readonly emitter;
|
|
78
64
|
private readonly options;
|
|
@@ -83,6 +69,12 @@ export declare class StdioTransport implements Transport {
|
|
|
83
69
|
private stderrBytesReceived;
|
|
84
70
|
constructor(options: StdioTransportOptions);
|
|
85
71
|
get state(): TransportState;
|
|
72
|
+
get pid(): number | null;
|
|
73
|
+
/**
|
|
74
|
+
* Transitions to a new state with validation.
|
|
75
|
+
* Throws TransportError if the transition is invalid.
|
|
76
|
+
*/
|
|
77
|
+
private setState;
|
|
86
78
|
connect(): Promise<void>;
|
|
87
79
|
disconnect(): Promise<void>;
|
|
88
80
|
write(data: Buffer): Promise<void>;
|
|
@@ -90,5 +82,6 @@ export declare class StdioTransport implements Transport {
|
|
|
90
82
|
on<K extends keyof StdioTransportEvents>(event: K, handler: (data: StdioTransportEvents[K]) => void): Unsubscribe;
|
|
91
83
|
private setupProcessListeners;
|
|
92
84
|
private cleanup;
|
|
85
|
+
private recordError;
|
|
93
86
|
}
|
|
94
87
|
//# sourceMappingURL=stdio-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio-transport.d.ts","sourceRoot":"","sources":["../../src/transport/stdio-transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stdio-transport.d.ts","sourceRoot":"","sources":["../../src/transport/stdio-transport.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;KAAE,CAAC;CAC9D;AAgCD,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,mBAAmB,CAAK;gBAEpB,OAAO,EAAE,qBAAqB;IA6B1C,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAIV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyExB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC3B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BxC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,WAAW;IAIpD,EAAE,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACrC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/C,WAAW;IAId,OAAO,CAAC,qBAAqB;IAuD7B,OAAO,CAAC,OAAO;IAiCf,OAAO,CAAC,WAAW;CAMpB"}
|
|
@@ -1,25 +1,7 @@
|
|
|
1
1
|
import * as childProcess from "node:child_process";
|
|
2
2
|
import { EventEmitter } from "../utils/events.js";
|
|
3
3
|
import { TransportError, TimeoutError } from "../utils/errors.js";
|
|
4
|
-
|
|
5
|
-
* Stdio-based transport for parent-child process communication.
|
|
6
|
-
*
|
|
7
|
-
* Spawns a child process and communicates via stdin/stdout.
|
|
8
|
-
* Stderr is exposed via separate 'stderr' event.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* const transport = new StdioTransport({
|
|
13
|
-
* executablePath: 'node',
|
|
14
|
-
* args: ['worker.js']
|
|
15
|
-
* });
|
|
16
|
-
*
|
|
17
|
-
* await transport.connect(); // Spawns process
|
|
18
|
-
* await transport.write(Buffer.from('hello'));
|
|
19
|
-
* transport.onData(data => console.log('received:', data));
|
|
20
|
-
* transport.on('stderr', line => console.error('stderr:', line));
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
4
|
+
import { transitionState } from "../utils/assert.js";
|
|
23
5
|
export class StdioTransport {
|
|
24
6
|
emitter = new EventEmitter();
|
|
25
7
|
options;
|
|
@@ -29,6 +11,20 @@ export class StdioTransport {
|
|
|
29
11
|
stdoutBytesReceived = 0;
|
|
30
12
|
stderrBytesReceived = 0;
|
|
31
13
|
constructor(options) {
|
|
14
|
+
// Validate required options
|
|
15
|
+
if (!options.executablePath || options.executablePath.trim() === "") {
|
|
16
|
+
throw new Error("StdioTransport: executablePath is required and cannot be empty");
|
|
17
|
+
}
|
|
18
|
+
// Validate optional numeric options
|
|
19
|
+
if (options.startupTimeout !== undefined && options.startupTimeout <= 0) {
|
|
20
|
+
throw new Error("StdioTransport: startupTimeout must be positive");
|
|
21
|
+
}
|
|
22
|
+
if (options.maxStdoutBuffer !== undefined && options.maxStdoutBuffer <= 0) {
|
|
23
|
+
throw new Error("StdioTransport: maxStdoutBuffer must be positive");
|
|
24
|
+
}
|
|
25
|
+
if (options.maxStderrBuffer !== undefined && options.maxStderrBuffer <= 0) {
|
|
26
|
+
throw new Error("StdioTransport: maxStderrBuffer must be positive");
|
|
27
|
+
}
|
|
32
28
|
this.options = {
|
|
33
29
|
executablePath: options.executablePath,
|
|
34
30
|
args: options.args ?? [],
|
|
@@ -37,11 +33,22 @@ export class StdioTransport {
|
|
|
37
33
|
startupTimeout: options.startupTimeout ?? 10000,
|
|
38
34
|
maxStdoutBuffer: options.maxStdoutBuffer ?? 10 * 1024 * 1024, // 10MB
|
|
39
35
|
maxStderrBuffer: options.maxStderrBuffer ?? 1 * 1024 * 1024, // 1MB
|
|
36
|
+
metrics: options.metrics,
|
|
40
37
|
};
|
|
41
38
|
}
|
|
42
39
|
get state() {
|
|
43
40
|
return this._state;
|
|
44
41
|
}
|
|
42
|
+
get pid() {
|
|
43
|
+
return this.process?.pid ?? null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Transitions to a new state with validation.
|
|
47
|
+
* Throws TransportError if the transition is invalid.
|
|
48
|
+
*/
|
|
49
|
+
setState(newState) {
|
|
50
|
+
this._state = transitionState(this._state, newState);
|
|
51
|
+
}
|
|
45
52
|
async connect() {
|
|
46
53
|
if (this._state === "connected") {
|
|
47
54
|
throw new TransportError("Already connected");
|
|
@@ -49,7 +56,7 @@ export class StdioTransport {
|
|
|
49
56
|
if (this._state === "connecting") {
|
|
50
57
|
throw new TransportError("Connection already in progress");
|
|
51
58
|
}
|
|
52
|
-
this.
|
|
59
|
+
this.setState("connecting");
|
|
53
60
|
return new Promise((resolve, reject) => {
|
|
54
61
|
try {
|
|
55
62
|
const proc = childProcess.spawn(this.options.executablePath, this.options.args, {
|
|
@@ -61,8 +68,9 @@ export class StdioTransport {
|
|
|
61
68
|
// Startup timeout
|
|
62
69
|
this.startupTimer = setTimeout(() => {
|
|
63
70
|
proc.kill();
|
|
64
|
-
this.
|
|
71
|
+
this.setState("error");
|
|
65
72
|
const error = new TransportError(`Process startup timeout after ${this.options.startupTimeout}ms`, new TimeoutError(`Startup timeout`));
|
|
73
|
+
this.recordError(error);
|
|
66
74
|
this.emitter.emit("error", error);
|
|
67
75
|
reject(error);
|
|
68
76
|
}, this.options.startupTimeout);
|
|
@@ -72,7 +80,8 @@ export class StdioTransport {
|
|
|
72
80
|
clearTimeout(this.startupTimer);
|
|
73
81
|
this.startupTimer = null;
|
|
74
82
|
}
|
|
75
|
-
this.
|
|
83
|
+
this.setState("connected");
|
|
84
|
+
this.options.metrics?.incrementCounter("transport.connect", 1, { transport: "stdio" });
|
|
76
85
|
this.setupProcessListeners(proc);
|
|
77
86
|
this.emitter.emit("connect", undefined);
|
|
78
87
|
resolve();
|
|
@@ -83,15 +92,17 @@ export class StdioTransport {
|
|
|
83
92
|
clearTimeout(this.startupTimer);
|
|
84
93
|
this.startupTimer = null;
|
|
85
94
|
}
|
|
86
|
-
this.
|
|
95
|
+
this.setState("error");
|
|
87
96
|
const error = new TransportError(`Failed to spawn process: ${err.message}`, err);
|
|
97
|
+
this.recordError(error);
|
|
88
98
|
this.emitter.emit("error", error);
|
|
89
99
|
reject(error);
|
|
90
100
|
});
|
|
91
101
|
}
|
|
92
102
|
catch (err) {
|
|
93
|
-
this.
|
|
103
|
+
this.setState("error");
|
|
94
104
|
const error = new TransportError(`Failed to create process: ${err.message}`, err);
|
|
105
|
+
this.recordError(error);
|
|
95
106
|
reject(error);
|
|
96
107
|
}
|
|
97
108
|
});
|
|
@@ -140,9 +151,15 @@ export class StdioTransport {
|
|
|
140
151
|
reject(new TransportError("Stdin is closed"));
|
|
141
152
|
return;
|
|
142
153
|
}
|
|
143
|
-
|
|
154
|
+
// The callback is invoked when data has been written to the kernel buffer.
|
|
155
|
+
// This provides implicit backpressure handling - callers using await will
|
|
156
|
+
// naturally wait for each write to complete before sending more data.
|
|
157
|
+
// If the kernel buffer is full, the callback will be delayed until space
|
|
158
|
+
// is available (after 'drain' event internally).
|
|
159
|
+
stdin.write(data, (err) => {
|
|
144
160
|
if (err) {
|
|
145
161
|
const error = new TransportError(`Write to stdin failed: ${err.message}`, err);
|
|
162
|
+
this.recordError(error);
|
|
146
163
|
this.emitter.emit("error", error);
|
|
147
164
|
reject(error);
|
|
148
165
|
}
|
|
@@ -150,12 +167,6 @@ export class StdioTransport {
|
|
|
150
167
|
resolve();
|
|
151
168
|
}
|
|
152
169
|
});
|
|
153
|
-
// Handle backpressure
|
|
154
|
-
if (!canContinue) {
|
|
155
|
-
stdin.once("drain", () => {
|
|
156
|
-
// Buffer drained, can continue writing
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
170
|
});
|
|
160
171
|
}
|
|
161
172
|
onData(handler) {
|
|
@@ -171,6 +182,7 @@ export class StdioTransport {
|
|
|
171
182
|
this.stdoutBytesReceived += data.length;
|
|
172
183
|
if (this.stdoutBytesReceived > this.options.maxStdoutBuffer) {
|
|
173
184
|
const error = new TransportError(`Stdout buffer exceeded limit of ${this.options.maxStdoutBuffer} bytes`);
|
|
185
|
+
this.recordError(error);
|
|
174
186
|
this.emitter.emit("error", error);
|
|
175
187
|
this.disconnect();
|
|
176
188
|
return;
|
|
@@ -185,6 +197,7 @@ export class StdioTransport {
|
|
|
185
197
|
this.stderrBytesReceived += Buffer.byteLength(data);
|
|
186
198
|
if (this.stderrBytesReceived > this.options.maxStderrBuffer) {
|
|
187
199
|
const error = new TransportError(`Stderr buffer exceeded limit of ${this.options.maxStderrBuffer} bytes`);
|
|
200
|
+
this.recordError(error);
|
|
188
201
|
this.emitter.emit("error", error);
|
|
189
202
|
this.disconnect();
|
|
190
203
|
return;
|
|
@@ -199,8 +212,9 @@ export class StdioTransport {
|
|
|
199
212
|
});
|
|
200
213
|
// Process errors
|
|
201
214
|
proc.on("error", (err) => {
|
|
202
|
-
this.
|
|
215
|
+
this.setState("error");
|
|
203
216
|
const error = new TransportError(`Process error: ${err.message}`, err);
|
|
217
|
+
this.recordError(error);
|
|
204
218
|
this.emitter.emit("error", error);
|
|
205
219
|
});
|
|
206
220
|
}
|
|
@@ -224,11 +238,18 @@ export class StdioTransport {
|
|
|
224
238
|
this.process = null;
|
|
225
239
|
}
|
|
226
240
|
if (this._state !== "disconnected") {
|
|
227
|
-
this.
|
|
241
|
+
this.setState("disconnected");
|
|
242
|
+
this.options.metrics?.incrementCounter("transport.disconnect", 1, { transport: "stdio" });
|
|
228
243
|
this.emitter.emit("disconnect", undefined);
|
|
229
244
|
}
|
|
230
245
|
this.stdoutBytesReceived = 0;
|
|
231
246
|
this.stderrBytesReceived = 0;
|
|
232
247
|
}
|
|
248
|
+
recordError(error) {
|
|
249
|
+
this.options.metrics?.incrementCounter("transport.error", 1, {
|
|
250
|
+
transport: "stdio",
|
|
251
|
+
type: error.name,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
233
254
|
}
|
|
234
255
|
//# sourceMappingURL=stdio-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio-transport.js","sourceRoot":"","sources":["../../src/transport/stdio-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"stdio-transport.js","sourceRoot":"","sources":["../../src/transport/stdio-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
package/dist/utils/index.js
CHANGED
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|