@mxf-dev/core 2.0.3 → 2.0.5

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.
@@ -80,6 +80,13 @@ export interface ExternalMcpTool {
80
80
  inputSchema: Record<string, any>;
81
81
  serverId: string;
82
82
  }
83
+ /** How long to wait for a reply to a JSON-RPC request, per method. */
84
+ declare const REQUEST_TIMEOUTS_MS: {
85
+ readonly initialize: 30000;
86
+ readonly 'tools/list': 15000;
87
+ readonly 'tools/call': 30000;
88
+ readonly ping: 5000;
89
+ };
83
90
  /**
84
91
  * Manages external MCP server processes and their lifecycle
85
92
  */
@@ -91,13 +98,21 @@ export declare class ExternalMcpServerManager extends EventEmitter {
91
98
  * Server-side: uses default ServerToolEventEmitter (wraps EventBus.server).
92
99
  * Client-side: uses ClientToolEventEmitter (wraps EventBus.client + socketEmit). */
93
100
  private toolEventEmitter;
101
+ /** Delay before restarting a crashed server. Overridable for tests. */
102
+ private restartDelayMs;
103
+ /** Per-method JSON-RPC reply timeouts. Overridable for tests and tuning. */
104
+ private requestTimeouts;
94
105
  /**
95
106
  * @param options.toolEventEmitter - Injectable event emitter for decoupling from EventBus.server
96
107
  * @param options.skipServerEventHandlers - Skip setting up EventBus.server listeners (for client-side usage)
108
+ * @param options.restartDelayMs - Delay before restarting a crashed server (default 2000)
109
+ * @param options.requestTimeoutsMs - Per-method JSON-RPC reply timeout overrides
97
110
  */
98
111
  constructor(options?: {
99
112
  toolEventEmitter?: IToolEventEmitter;
100
113
  skipServerEventHandlers?: boolean;
114
+ restartDelayMs?: number;
115
+ requestTimeoutsMs?: Partial<Record<keyof typeof REQUEST_TIMEOUTS_MS, number>>;
101
116
  });
102
117
  /**
103
118
  * Set up EventBus handlers for external server registration from SDK
@@ -108,11 +123,77 @@ export declare class ExternalMcpServerManager extends EventEmitter {
108
123
  */
109
124
  registerServer(config: ExternalServerConfig): Promise<void>;
110
125
  /**
111
- * Start an external server process
126
+ * Register a channel-scoped server: track its scope, then register and
127
+ * (per config) start it. Resolves after the MCP handshake and tool
128
+ * discovery when autoStart is set, so a resolved promise means the tools
129
+ * are in the registry.
130
+ *
131
+ * A re-registration over an existing scope preserves the connected-agent
132
+ * set and clears any pending keepAlive timer — previously the timer
133
+ * reference was silently overwritten while the timer kept running, so a
134
+ * stale keepAlive could stop a freshly re-registered server later.
135
+ */
136
+ registerChannelServer(channelId: string, config: Omit<ExternalServerConfig, 'id'> & {
137
+ id: string;
138
+ keepAliveMinutes?: number;
139
+ }, registrationContext?: {
140
+ agentId: string;
141
+ channelId: string;
142
+ originalServerId: string;
143
+ serverName: string;
144
+ }): Promise<void>;
145
+ /**
146
+ * Unregister a channel-scoped server: stop the process and remove both the
147
+ * server record and the scope tracking, including any keepAlive timer.
148
+ *
149
+ * Idempotent: unregistering a server that is partially or fully gone cleans
150
+ * up whatever remains and resolves. Production showed the half-removed
151
+ * state — record deleted, scope alive — and an unregister that throws
152
+ * "not found" against it leaves the zombie in place forever.
153
+ */
154
+ unregisterChannelServer(channelId: string, serverId: string): Promise<void>;
155
+ /**
156
+ * Unregister a server by its full id (global servers, and the SDK-facing
157
+ * EXTERNAL_SERVER_UNREGISTER path). Also removes scope tracking — this
158
+ * path used to delete only the server record, which was exactly the
159
+ * zombie state observed in production: agents kept "joining" a scope
160
+ * whose server no longer existed.
161
+ */
162
+ unregisterServer(serverId: string): Promise<void>;
163
+ /**
164
+ * Stop a server (if running) and remove every trace of it: server record,
165
+ * scope entry, keepAlive timer. Never throws for a missing record — it
166
+ * removes what exists and says what it did.
167
+ */
168
+ private removeServer;
169
+ /**
170
+ * Remove a server that cannot be kept alive (restart budget exhausted,
171
+ * unrecoverable spawn failure). Loud by design: this is the path that
172
+ * prevents zombies, so it reports at error level.
173
+ */
174
+ private removeServerAfterFailure;
175
+ /**
176
+ * Settle every caller waiting for a server to become ready.
177
+ */
178
+ private settleReadyWaiters;
179
+ /**
180
+ * Start an external server process.
181
+ *
182
+ * Resolves once the MCP handshake AND tool discovery have completed — a
183
+ * resolved startServer() means the server's tools are in the registry.
184
+ * It used to resolve right after spawn, which let callers (agent join,
185
+ * restart) proceed against a server that had not finished — or would
186
+ * never finish — its handshake.
112
187
  */
113
188
  startServer(serverId: string, agentId?: AgentId, channelId?: ChannelId): Promise<void>;
114
189
  /**
115
- * Handle agent joining a channel - start channel servers and track connection
190
+ * Handle agent joining a channel verify each channel server is actually
191
+ * alive before counting the agent as connected.
192
+ *
193
+ * This used to be a blind reference-count bump: a missing server record was
194
+ * silently skipped and a dead process was never probed, so agents "joined"
195
+ * servers that could not serve a single tool call, and the only downstream
196
+ * signal was a NOT FOUND warning when their allowlist resolved.
116
197
  */
117
198
  onAgentJoinChannel(agentId: string, channelId: string): Promise<void>;
118
199
  /**
@@ -124,9 +205,12 @@ export declare class ExternalMcpServerManager extends EventEmitter {
124
205
  */
125
206
  getServersByScope(scope: 'global' | 'channel' | 'agent', scopeId?: string): ExternalServerStatus[];
126
207
  /**
127
- * Stop an external server process
208
+ * Stop an external server process.
209
+ *
210
+ * An intentional stop: the exit handler will see `expectedExit` and will
211
+ * neither log the exit as a crash nor restart the process.
128
212
  */
129
- stopServer(serverId: string, agentId?: AgentId, channelId?: ChannelId): Promise<void>;
213
+ stopServer(serverId: string, agentId?: AgentId, channelId?: ChannelId, reason?: string): Promise<void>;
130
214
  /**
131
215
  * Get status of all servers
132
216
  */
@@ -247,7 +331,10 @@ export declare class ExternalMcpServerManager extends EventEmitter {
247
331
  */
248
332
  startServerFromConfig(config: ExternalServerConfig): Promise<boolean>;
249
333
  /**
250
- * Restart a server by ID
334
+ * Restart a server by ID. Resolves after the restarted server has finished
335
+ * its handshake and tool discovery (see startServer). Throws when the
336
+ * restart fails, so callers can react instead of proceeding against a dead
337
+ * server.
251
338
  */
252
339
  restartServer(serverId: string): Promise<boolean>;
253
340
  /**
@@ -262,4 +349,5 @@ export declare class ExternalMcpServerManager extends EventEmitter {
262
349
  */
263
350
  private executeToolOnServerInternal;
264
351
  }
352
+ export {};
265
353
  //# sourceMappingURL=ExternalMcpServerManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalMcpServerManager.d.ts","sourceRoot":"","sources":["../../../../src/protocols/mcp/services/ExternalMcpServerManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExternalMcpServerManager.d.ts","sourceRoot":"","sources":["../../../../src/protocols/mcp/services/ExternalMcpServerManager.ts"],"names":[],"mappings":"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"}