staff-mcp 2.0.1 → 2.0.3

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 (40) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +37 -39
  3. package/README_zh.md +37 -39
  4. package/dist/src/data/HttpDataSession.d.ts +0 -1
  5. package/dist/src/data/HttpDataSession.js +0 -3
  6. package/dist/src/data/HttpDataSession.js.map +1 -1
  7. package/dist/src/docker-proxy.js +7 -0
  8. package/dist/src/docker-proxy.js.map +1 -1
  9. package/dist/src/extensions/config.d.ts +1 -15
  10. package/dist/src/extensions/config.js +2 -36
  11. package/dist/src/extensions/config.js.map +1 -1
  12. package/dist/src/extensions/runtime.js +0 -5
  13. package/dist/src/extensions/runtime.js.map +1 -1
  14. package/dist/src/file-manager/transfers.d.ts +0 -2
  15. package/dist/src/file-manager/transfers.js +0 -14
  16. package/dist/src/file-manager/transfers.js.map +1 -1
  17. package/dist/src/index.js +17 -57
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/reverse/SseTransport.d.ts +22 -0
  20. package/dist/src/reverse/SseTransport.js +176 -30
  21. package/dist/src/reverse/SseTransport.js.map +1 -1
  22. package/dist/src/server.js +8 -6
  23. package/dist/src/server.js.map +1 -1
  24. package/dist/src/terminal/pty.d.ts +4 -2
  25. package/dist/src/terminal/pty.js +96 -72
  26. package/dist/src/terminal/pty.js.map +1 -1
  27. package/dist/src/terminal/session.d.ts +0 -2
  28. package/dist/src/terminal/session.js +0 -18
  29. package/dist/src/terminal/session.js.map +1 -1
  30. package/dist/src/transports/http.d.ts +1 -10
  31. package/dist/src/transports/http.js +3 -48
  32. package/dist/src/transports/http.js.map +1 -1
  33. package/dist/src/transports/reverse.js +7 -0
  34. package/dist/src/transports/reverse.js.map +1 -1
  35. package/docs/file-manager.md +8 -7
  36. package/docs/terminal.md +12 -7
  37. package/package.json +2 -2
  38. package/dist/src/utils/server-activity.d.ts +0 -6
  39. package/dist/src/utils/server-activity.js +0 -46
  40. package/dist/src/utils/server-activity.js.map +0 -1
package/dist/src/index.js CHANGED
@@ -7,12 +7,12 @@ import { createServerFactory } from './server.js';
7
7
  import { buildDockerNameHint, runDockerProxy, preflightDockerExtensions, } from './docker-proxy.js';
8
8
  import { STAFF_MCP_PACKAGE_ROOT, STAFF_MCP_VERSION } from './package-info.js';
9
9
  import { redirectStdioLogsToStderr, startStdioServer, } from './transports/stdio.js';
10
- import { getHttpAuthToken, startHttpServer, resolveHttpSessionPolicy, HTTP_MAX_SESSIONS, HTTP_SESSION_IDLE_MS, } from './transports/http.js';
10
+ import { getHttpAuthToken, startHttpServer } from './transports/http.js';
11
11
  import { startReverseServer } from './transports/reverse.js';
12
12
  import { ensureStaffDirs, STAFF_TOOLS_DIR, STAFF_SKILLS_DIR, STAFF_PROFILES_DIR, } from './utils/paths.js';
13
13
  import { ensureRipgrep } from './utils/tool-utils.js';
14
14
  import { configureGlobalProxy } from './utils/proxy.js';
15
- import { dockerPrivatePaths, parseExtensions, parseFileRoot, resolveExtensionOptions, } from './extensions/config.js';
15
+ import { dockerPrivatePaths, parseExtensions, resolveExtensionOptions, } from './extensions/config.js';
16
16
  // Global error handlers to prevent the MCP server from crashing due to unhandled child process errors
17
17
  process.on('uncaughtException', (err) => {
18
18
  if (err.code === 'ENOENT' &&
@@ -86,13 +86,6 @@ program
86
86
  .option('-p, --port <number>', 'Port for HTTP server', '3000')
87
87
  .option('-h, --host <address>', 'Host for HTTP server', '127.0.0.1')
88
88
  .option('--ht, --http-token <token>', 'Optional bearer token for HTTP transport')
89
- .option('--http-max-sessions <count>', 'Maximum HTTP sessions per listener, including startup and cleanup', (value) => {
90
- const count = Number(value);
91
- if (!Number.isSafeInteger(count) || count <= 0)
92
- throw new InvalidArgumentError('Expected a positive safe integer.');
93
- return count;
94
- }, HTTP_MAX_SESSIONS)
95
- .option('--http-session-idle-ms <ms>', 'HTTP session idle timeout; active operations and resources prevent eviction', (value) => milliseconds(value), HTTP_SESSION_IDLE_MS)
96
89
  .option('--ru, --reverse-url <url>', 'HTTP(S) Web reverse endpoint (e.g. https://web.example/api/mcp/reverse)')
97
90
  .option('--rt, --reverse-token <token>', 'Security token for Reverse MCP')
98
91
  .option('--rn, --reverse-name <name>', 'Server name for Reverse MCP')
@@ -113,18 +106,6 @@ program
113
106
  throw new InvalidArgumentError(error.message);
114
107
  }
115
108
  })
116
- .option('--file-root <id=path>', 'Files root (repeatable; defaults to main=workspace; system=/ explicitly allows the full filesystem)', (value, previous = []) => {
117
- try {
118
- const root = parseFileRoot(value);
119
- if (previous.some((item) => item.rootId === root.rootId))
120
- throw new Error('Duplicate file root id');
121
- return [...previous, root];
122
- }
123
- catch (error) {
124
- throw new InvalidArgumentError(error.message);
125
- }
126
- })
127
- .option('--shell <path>', 'Terminal shell (default: executable $SHELL or /bin/bash)')
128
109
  .addOption(new Option('--internal-file-private-path <path>')
129
110
  .hideHelp()
130
111
  .argParser((value, previous = []) => {
@@ -143,9 +124,7 @@ program
143
124
  try {
144
125
  extensions = resolveExtensionOptions({
145
126
  enabled: options.extensions,
146
- fileRoots: options.fileRoot,
147
- shell: options.shell,
148
- }, path.resolve(options.workingDir));
127
+ });
149
128
  }
150
129
  catch (error) {
151
130
  command.error(error.message);
@@ -154,10 +133,6 @@ program
154
133
  if (options.transport === 'http') {
155
134
  try {
156
135
  getHttpAuthToken(options.httpToken);
157
- resolveHttpSessionPolicy({
158
- maxSessions: options.httpMaxSessions,
159
- idleTimeoutMs: options.httpSessionIdleMs,
160
- });
161
136
  }
162
137
  catch (error) {
163
138
  console.error(`[staff-mcp] ${error instanceof Error ? error.message : String(error)}`);
@@ -240,20 +215,18 @@ program
240
215
  bind(dockerToolsDir, `${containerStaffDir}/tools`);
241
216
  bind(STAFF_SKILLS_DIR, `${containerStaffDir}/skills`);
242
217
  bind(STAFF_PROFILES_DIR, `${containerStaffDir}/profiles`);
243
- // 4. Mount additional allowed directories
244
- if (options.allowedDir && options.allowedDir.length > 0) {
245
- options.allowedDir.forEach((dir) => {
246
- const absDir = path.resolve(dir);
247
- bind(absDir, absDir);
248
- });
249
- }
250
- const dockerRoots = options.fileRoot?.map((root) => {
251
- const directory = `/opt/staff-file-roots/${root.rootId}`;
252
- if (extensions.enabled.includes('files')) {
253
- bind(root.directory, directory);
254
- }
255
- return { rootId: root.rootId, directory };
218
+ // 4. Reuse allowed-directory mounts for both tools and files. Docker
219
+ // forbids mounting onto container /, so a host filesystem root gets
220
+ // a dedicated target; ordinary directories keep their existing paths.
221
+ const allowedMounts = options.allowedDir.map((dir, index) => {
222
+ const source = path.resolve(dir);
223
+ const target = source === path.parse(source).root
224
+ ? `/opt/staff-allowed/root-${index}`
225
+ : source;
226
+ return { source, target };
256
227
  });
228
+ for (const mount of allowedMounts)
229
+ bind(mount.source, mount.target);
257
230
  // 5. Handle HTTP port forwarding
258
231
  if (options.transport === 'http') {
259
232
  dockerArgs.push('-p', `${options.port}:${options.port}`);
@@ -287,8 +260,6 @@ program
287
260
  // Inside container, we must listen on all interfaces for HTTP to be exposed
288
261
  if (options.transport === 'http') {
289
262
  dockerArgs.push('-h', '0.0.0.0');
290
- dockerArgs.push('--http-max-sessions', String(options.httpMaxSessions));
291
- dockerArgs.push('--http-session-idle-ms', String(options.httpSessionIdleMs));
292
263
  if (options.httpToken !== undefined) {
293
264
  dockerArgs.push('--http-token', options.httpToken);
294
265
  }
@@ -304,10 +275,8 @@ program
304
275
  ])) {
305
276
  dockerArgs.push('--internal-file-private-path', privatePath);
306
277
  }
307
- if (options.allowedDir && options.allowedDir.length > 0) {
308
- options.allowedDir.forEach((dir) => {
309
- dockerArgs.push('-d', path.resolve(dir)); // paths inside container match host
310
- });
278
+ for (const mount of allowedMounts) {
279
+ dockerArgs.push('-d', mount.target);
311
280
  }
312
281
  dockerArgs.push('-r', options.profile);
313
282
  dockerArgs.push('-m', String(options.maxMcpSessions));
@@ -317,12 +286,6 @@ program
317
286
  if (extensions.enabled.length) {
318
287
  dockerArgs.push('--extensions', extensions.enabled.join(','));
319
288
  }
320
- for (const root of dockerRoots ?? []) {
321
- dockerArgs.push('--file-root', `${root.rootId}=${root.directory}`);
322
- }
323
- if (extensions.shell !== undefined) {
324
- dockerArgs.push('--shell', extensions.shell);
325
- }
326
289
  // Forward an explicit --proxy so the containerized process uses it too.
327
290
  // (Env-var proxies reach the container through docker's own env injection
328
291
  // or user-supplied -D "-e HTTP_PROXY=..." args.)
@@ -371,10 +334,7 @@ program
371
334
  return;
372
335
  }
373
336
  if (options.transport === 'http') {
374
- await runHostService(() => startHttpServer(serverFactory, parseInt(options.port, 10), options.host, options.httpToken, {
375
- maxSessions: options.httpMaxSessions,
376
- idleTimeoutMs: options.httpSessionIdleMs,
377
- }), process.env.STAFF_MCP_IS_DOCKER === '1');
337
+ await runHostService(() => startHttpServer(serverFactory, parseInt(options.port, 10), options.host, options.httpToken), process.env.STAFF_MCP_IS_DOCKER === '1');
378
338
  }
379
339
  else if (options.transport === 'reverse') {
380
340
  if (!options.reverseUrl ||
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,20 @@
1
1
  import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
2
2
  import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
3
+ export interface ReverseControlDiagnostic {
4
+ reason: 'control-post-slow' | 'ping-post-slow';
5
+ bytes: number;
6
+ queuedMs: number;
7
+ elapsedMs: number;
8
+ status: number;
9
+ }
10
+ export interface ReverseControlFailure {
11
+ reason: 'connect-timeout' | 'read-timeout' | 'sse-rejected' | 'sse-ended' | 'sse-read-failed' | 'sse-too-large' | 'sse-invalid-event' | 'control-queue-exceeded' | 'message-post-rejected' | 'message-post-failed';
12
+ status?: number;
13
+ bytes?: number;
14
+ elapsedMs?: number;
15
+ queuedMs?: number;
16
+ networkCode?: string;
17
+ }
3
18
  /** Outbound-only reverse control: SSE receives JSON-RPC, POST sends JSON-RPC. No resume/replay. */
4
19
  export declare class ReverseSseTransport implements Transport {
5
20
  private readonly base;
@@ -10,8 +25,10 @@ export declare class ReverseSseTransport implements Transport {
10
25
  onclose?: () => void;
11
26
  onerror?: (error: Error) => void;
12
27
  onmessage?: Transport['onmessage'];
28
+ ondiagnostic?: (detail: ReverseControlDiagnostic) => void;
13
29
  readonly closed: Promise<void>;
14
30
  sessionId?: string;
31
+ failure?: ReverseControlFailure;
15
32
  private resolveClosed;
16
33
  private readonly abort;
17
34
  private stopped;
@@ -19,6 +36,10 @@ export declare class ReverseSseTransport implements Transport {
19
36
  private endpoint?;
20
37
  private queue;
21
38
  private queuedBytes;
39
+ private pingQueue;
40
+ private queuedPings;
41
+ private readonly pendingPings;
42
+ private nextDiagnosticAt;
22
43
  private readTimer?;
23
44
  private readyResolve?;
24
45
  private readyReject?;
@@ -27,6 +48,7 @@ export declare class ReverseSseTransport implements Transport {
27
48
  start(): Promise<void>;
28
49
  private read;
29
50
  private event;
51
+ private takePing;
30
52
  send(message: JSONRPCMessage): Promise<void>;
31
53
  private armReadTimeout;
32
54
  private fail;
@@ -1,6 +1,25 @@
1
- import { JSONRPCMessageSchema } from '@modelcontextprotocol/sdk/types.js';
1
+ import { JSONRPCMessageSchema, PingRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
2
2
  const MESSAGE_LIMIT = 4 * 1024 * 1024;
3
3
  const QUEUE_LIMIT = 8 * 1024 * 1024;
4
+ const PING_LIMIT = 32;
5
+ const SLOW_POST_MS = 1000;
6
+ const DIAGNOSTIC_INTERVAL_MS = 10000;
7
+ /** Only fixed diagnostics, never remote bodies, URLs, headers or exception text. */
8
+ class ControlFailure extends Error {
9
+ detail;
10
+ constructor(detail) {
11
+ super(`Reverse control failed: ${detail.reason}`);
12
+ this.detail = detail;
13
+ }
14
+ }
15
+ function networkCode(error) {
16
+ const cause = error;
17
+ const code = cause?.cause?.code ?? cause?.code;
18
+ return typeof code === 'string' &&
19
+ /^(?:ECONNRESET|ECONNREFUSED|ENOTFOUND|EAI_AGAIN|ETIMEDOUT|EPIPE|UND_ERR_(?:CONNECT_TIMEOUT|HEADERS_TIMEOUT|BODY_TIMEOUT|SOCKET|ABORTED))$/.test(code)
20
+ ? code
21
+ : undefined;
22
+ }
4
23
  /** Outbound-only reverse control: SSE receives JSON-RPC, POST sends JSON-RPC. No resume/replay. */
5
24
  export class ReverseSseTransport {
6
25
  base;
@@ -11,8 +30,10 @@ export class ReverseSseTransport {
11
30
  onclose;
12
31
  onerror;
13
32
  onmessage;
33
+ ondiagnostic;
14
34
  closed;
15
35
  sessionId;
36
+ failure;
16
37
  resolveClosed;
17
38
  abort = new AbortController();
18
39
  stopped = false;
@@ -20,6 +41,12 @@ export class ReverseSseTransport {
20
41
  endpoint;
21
42
  queue = Promise.resolve();
22
43
  queuedBytes = 0;
44
+ pingQueue = Promise.resolve();
45
+ queuedPings = 0;
46
+ // Typed keys keep numeric and string IDs distinct. Entries live only until
47
+ // reply, cancellation, ID reuse or close; no eviction can prioritize a stale ID.
48
+ pendingPings = new Map();
49
+ nextDiagnosticAt = 0;
23
50
  readTimer;
24
51
  readyResolve;
25
52
  readyReject;
@@ -43,10 +70,15 @@ export class ReverseSseTransport {
43
70
  this.readyReject = reject;
44
71
  });
45
72
  const timer = this.connectTimeout > 0
46
- ? setTimeout(() => this.fail(), this.connectTimeout)
73
+ ? setTimeout(() => this.fail({ reason: 'connect-timeout' }), this.connectTimeout)
47
74
  : undefined;
48
75
  timer?.unref();
49
- void this.read().catch(() => this.fail());
76
+ void this.read().catch((error) => this.fail(error instanceof ControlFailure
77
+ ? error.detail
78
+ : {
79
+ reason: 'sse-read-failed',
80
+ networkCode: networkCode(error),
81
+ }));
50
82
  try {
51
83
  await ready;
52
84
  }
@@ -66,7 +98,10 @@ export class ReverseSseTransport {
66
98
  ?.startsWith('text/event-stream') ||
67
99
  !response.body) {
68
100
  await response.body?.cancel();
69
- throw new Error('Reverse SSE rejected');
101
+ throw new ControlFailure({
102
+ reason: 'sse-rejected',
103
+ status: response.status,
104
+ });
70
105
  }
71
106
  this.reader = response.body.getReader();
72
107
  const decoder = new TextDecoder('utf-8', { fatal: true });
@@ -77,8 +112,16 @@ export class ReverseSseTransport {
77
112
  let afterCR = false;
78
113
  const completeLine = () => {
79
114
  if (line === '') {
80
- if (data.length)
81
- this.event(event, data.join('\n'));
115
+ if (data.length) {
116
+ try {
117
+ this.event(event, data.join('\n'));
118
+ }
119
+ catch {
120
+ throw new ControlFailure({
121
+ reason: 'sse-invalid-event',
122
+ });
123
+ }
124
+ }
82
125
  event = 'message';
83
126
  data = [];
84
127
  blockBytes = 0;
@@ -100,7 +143,7 @@ export class ReverseSseTransport {
100
143
  this.armReadTimeout();
101
144
  const part = await this.reader.read();
102
145
  if (part.done)
103
- throw new Error('Reverse SSE ended');
146
+ throw new ControlFailure({ reason: 'sse-ended' });
104
147
  const text = decoder.decode(part.value, { stream: true });
105
148
  // Bound complete and partial events before they can grow an unbounded JSON buffer.
106
149
  for (const character of text) {
@@ -111,7 +154,10 @@ export class ReverseSseTransport {
111
154
  afterCR = character === '\r';
112
155
  blockBytes += Buffer.byteLength(character);
113
156
  if (blockBytes > MESSAGE_LIMIT + 1024)
114
- throw new Error('Reverse SSE event too large');
157
+ throw new ControlFailure({
158
+ reason: 'sse-too-large',
159
+ bytes: blockBytes,
160
+ });
115
161
  if (character === '\r' || character === '\n')
116
162
  completeLine();
117
163
  else
@@ -145,56 +191,153 @@ export class ReverseSseTransport {
145
191
  }
146
192
  if (event !== 'message' || !this.endpoint)
147
193
  throw new Error('Unexpected reverse SSE event');
148
- this.onmessage?.(JSONRPCMessageSchema.parse(JSON.parse(data)));
194
+ const message = JSONRPCMessageSchema.parse(JSON.parse(data));
195
+ if ('method' in message &&
196
+ 'id' in message &&
197
+ (typeof message.id === 'string' || typeof message.id === 'number')) {
198
+ // Reused IDs are not valid concurrent JSON-RPC requests. Never retain
199
+ // ping priority when a subsequent ordinary request uses the same ID.
200
+ this.takePing(message.id);
201
+ if (PingRequestSchema.safeParse(message).success) {
202
+ const bytes = Buffer.byteLength(JSON.stringify(message.id));
203
+ if (this.pendingPings.size + this.queuedPings >= PING_LIMIT ||
204
+ this.queuedBytes + bytes > QUEUE_LIMIT) {
205
+ this.fail({ reason: 'control-queue-exceeded', bytes });
206
+ return;
207
+ }
208
+ // Tracked IDs share the existing byte budget with both POST lanes.
209
+ this.queuedBytes += bytes;
210
+ this.pendingPings.set(message.id, bytes);
211
+ }
212
+ }
213
+ else if ('method' in message &&
214
+ message.method === 'notifications/cancelled') {
215
+ const id = message.params?.requestId;
216
+ if (typeof id === 'string' || typeof id === 'number')
217
+ this.takePing(id);
218
+ }
219
+ this.onmessage?.(message);
220
+ }
221
+ takePing(id) {
222
+ const bytes = this.pendingPings.get(id);
223
+ if (bytes === undefined)
224
+ return false;
225
+ this.pendingPings.delete(id);
226
+ this.queuedBytes -= bytes;
227
+ return true;
149
228
  }
150
229
  async send(message) {
151
230
  if (this.stopped || !this.endpoint)
152
231
  throw new Error('Reverse transport unavailable');
153
232
  const body = JSON.stringify(message);
154
233
  const bytes = Buffer.byteLength(body);
155
- if (bytes > MESSAGE_LIMIT || this.queuedBytes + bytes > QUEUE_LIMIT) {
156
- this.fail();
234
+ // Only responses to admitted inbound pings may bypass the control FIFO.
235
+ // Delete synchronously: a second response with the same ID is ordinary.
236
+ const ping = !('method' in message) &&
237
+ message.id !== undefined &&
238
+ this.takePing(message.id);
239
+ if (bytes > MESSAGE_LIMIT ||
240
+ this.queuedBytes + bytes > QUEUE_LIMIT ||
241
+ (ping && this.queuedPings >= PING_LIMIT)) {
242
+ this.fail({ reason: 'control-queue-exceeded', bytes });
157
243
  throw new Error('Reverse control queue exceeded');
158
244
  }
159
245
  this.queuedBytes += bytes;
160
- const operation = this.queue.then(async () => {
246
+ if (ping)
247
+ this.queuedPings++;
248
+ const enqueuedAt = performance.now();
249
+ const queue = ping ? this.pingQueue : this.queue;
250
+ const operation = queue.then(async () => {
161
251
  if (this.stopped)
162
252
  throw new Error('Reverse transport closed');
163
- const response = await this.fetch(this.endpoint, {
164
- method: 'POST',
165
- headers: {
166
- ...this.headers,
167
- 'Content-Type': 'application/json',
168
- },
169
- body,
170
- signal: this.abort.signal,
171
- redirect: 'manual',
172
- });
173
- const accepted = response.status === 202;
174
- await response.body?.cancel();
175
- if (!accepted)
176
- throw new Error('Reverse POST rejected');
253
+ const startedAt = performance.now();
254
+ const queuedMs = Math.round(startedAt - enqueuedAt);
255
+ try {
256
+ const response = await this.fetch(this.endpoint, {
257
+ method: 'POST',
258
+ headers: {
259
+ ...this.headers,
260
+ 'Content-Type': 'application/json',
261
+ },
262
+ body,
263
+ signal: this.abort.signal,
264
+ redirect: 'manual',
265
+ });
266
+ const status = response.status;
267
+ await response.body?.cancel();
268
+ if (this.stopped)
269
+ throw new Error('Reverse transport closed');
270
+ const elapsedMs = Math.round(performance.now() - startedAt);
271
+ if (status !== 202) {
272
+ throw new ControlFailure({
273
+ reason: 'message-post-rejected',
274
+ status,
275
+ bytes,
276
+ queuedMs,
277
+ elapsedMs,
278
+ });
279
+ }
280
+ if ((queuedMs >= SLOW_POST_MS || elapsedMs >= SLOW_POST_MS) &&
281
+ performance.now() >= this.nextDiagnosticAt) {
282
+ this.nextDiagnosticAt =
283
+ performance.now() + DIAGNOSTIC_INTERVAL_MS;
284
+ try {
285
+ this.ondiagnostic?.({
286
+ reason: ping
287
+ ? 'ping-post-slow'
288
+ : 'control-post-slow',
289
+ bytes,
290
+ queuedMs,
291
+ elapsedMs,
292
+ status,
293
+ });
294
+ }
295
+ catch {
296
+ // Observability must not change POST acceptance semantics.
297
+ }
298
+ }
299
+ }
300
+ catch (error) {
301
+ throw error instanceof ControlFailure
302
+ ? error
303
+ : new ControlFailure({
304
+ reason: 'message-post-failed',
305
+ bytes,
306
+ queuedMs,
307
+ elapsedMs: Math.round(performance.now() - startedAt),
308
+ networkCode: networkCode(error),
309
+ });
310
+ }
177
311
  });
178
- this.queue = operation.catch(() => this.fail());
312
+ const settled = operation.catch((error) => this.fail(error instanceof ControlFailure
313
+ ? error.detail
314
+ : { reason: 'message-post-failed' }));
315
+ if (ping)
316
+ this.pingQueue = settled;
317
+ else
318
+ this.queue = settled;
179
319
  try {
180
320
  await operation;
181
321
  }
182
322
  finally {
183
323
  this.queuedBytes -= bytes;
324
+ if (ping)
325
+ this.queuedPings--;
184
326
  }
185
327
  }
186
328
  armReadTimeout() {
187
329
  clearTimeout(this.readTimer);
188
330
  if (this.readTimeout > 0) {
189
- this.readTimer = setTimeout(() => this.fail(), this.readTimeout);
331
+ this.readTimer = setTimeout(() => this.fail({ reason: 'read-timeout' }), this.readTimeout);
190
332
  this.readTimer.unref();
191
333
  }
192
334
  }
193
- fail() {
335
+ fail(detail) {
194
336
  if (this.stopped)
195
337
  return;
338
+ this.failure = detail;
196
339
  try {
197
- this.onerror?.(new Error('Reverse control connection failed'));
340
+ this.onerror?.(new ControlFailure(detail));
198
341
  }
199
342
  finally {
200
343
  void this.close();
@@ -205,6 +348,9 @@ export class ReverseSseTransport {
205
348
  return;
206
349
  this.stopped = true;
207
350
  clearTimeout(this.readTimer);
351
+ for (const bytes of this.pendingPings.values())
352
+ this.queuedBytes -= bytes;
353
+ this.pendingPings.clear();
208
354
  this.abort.abort();
209
355
  void this.reader?.cancel().catch(() => { });
210
356
  this.readyReject?.(new Error('Reverse connection closed'));
@@ -1 +1 @@
1
- {"version":3,"file":"SseTransport.js","sourceRoot":"","sources":["../../../src/reverse/SseTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SseTransport.js","sourceRoot":"","sources":["../../../src/reverse/SseTransport.ts"],"names":[],"mappings":"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"}