@1mcp/agent 0.29.0-beta4 → 0.29.0-beta6

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 (37) hide show
  1. package/build/constants/mcp.d.ts +5 -1
  2. package/build/constants/mcp.d.ts.map +1 -1
  3. package/build/constants/mcp.js +5 -1
  4. package/build/constants/mcp.js.map +1 -1
  5. package/build/core/client/clientManager.d.ts +15 -0
  6. package/build/core/client/clientManager.d.ts.map +1 -1
  7. package/build/core/client/clientManager.js +88 -9
  8. package/build/core/client/clientManager.js.map +1 -1
  9. package/build/core/loading/mcpLoadingManager.d.ts +1 -2
  10. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  11. package/build/core/loading/mcpLoadingManager.js +8 -24
  12. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  13. package/build/core/loading/parallelExecutor.d.ts +91 -0
  14. package/build/core/loading/parallelExecutor.d.ts.map +1 -0
  15. package/build/core/loading/parallelExecutor.js +130 -0
  16. package/build/core/loading/parallelExecutor.js.map +1 -0
  17. package/build/transport/http/restorableStreamableTransport.d.ts +56 -11
  18. package/build/transport/http/restorableStreamableTransport.d.ts.map +1 -1
  19. package/build/transport/http/restorableStreamableTransport.js +93 -21
  20. package/build/transport/http/restorableStreamableTransport.js.map +1 -1
  21. package/build/transport/http/routes/streamableHttpRoutes.d.ts +2 -1
  22. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  23. package/build/transport/http/routes/streamableHttpRoutes.js +105 -236
  24. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  25. package/build/transport/http/utils/sdkInternals.d.ts +32 -0
  26. package/build/transport/http/utils/sdkInternals.d.ts.map +1 -0
  27. package/build/transport/http/utils/sdkInternals.js +6 -0
  28. package/build/transport/http/utils/sdkInternals.js.map +1 -0
  29. package/build/transport/http/utils/sessionService.d.ts +76 -0
  30. package/build/transport/http/utils/sessionService.d.ts.map +1 -0
  31. package/build/transport/http/utils/sessionService.js +232 -0
  32. package/build/transport/http/utils/sessionService.js.map +1 -0
  33. package/build/transport/stdioProxyTransport.d.ts +15 -4
  34. package/build/transport/stdioProxyTransport.d.ts.map +1 -1
  35. package/build/transport/stdioProxyTransport.js +35 -47
  36. package/build/transport/stdioProxyTransport.js.map +1 -1
  37. package/package.json +1 -1
@@ -1,92 +1,65 @@
1
1
  import { randomUUID } from 'node:crypto';
2
- import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
3
2
  import { ErrorCode } from '@modelcontextprotocol/sdk/types.js';
4
3
  import { AUTH_CONFIG, STREAMABLE_HTTP_ENDPOINT } from '../../../constants.js';
5
- import { ServerStatus } from '../../../core/types/index.js';
6
4
  import logger from '../../../logger/logger.js';
7
5
  import { getPresetName, getTagExpression, getTagFilterMode, getTagQuery, getValidatedTags, } from '../../../transport/http/middlewares/scopeAuthMiddleware.js';
8
6
  import tagsExtractor from '../../../transport/http/middlewares/tagsExtractor.js';
9
- import { RestorableStreamableHTTPServerTransport } from '../../../transport/http/restorableStreamableTransport.js';
10
7
  import { extractContextFromMeta } from '../../../transport/http/utils/contextExtractor.js';
8
+ import { SessionService } from '../../../transport/http/utils/sessionService.js';
11
9
  /**
12
- * Helper function to restore a streamable HTTP session from persistent storage
13
- * Uses RestorableStreamableHTTPServerTransport | RestorableStreamableHTTPServerTransport wrapper for proper initialization handling
10
+ * Builds the inbound connection config from request data.
11
+ *
12
+ * @param res - Express response object containing validated middleware data
13
+ * @param req - Express request object
14
+ * @param customTemplate - Optional custom template to include
15
+ * @returns The inbound connection configuration
14
16
  */
15
- async function restoreSession(sessionId, serverManager, sessionRepository, asyncOrchestrator) {
16
- try {
17
- // Try to retrieve session config from storage
18
- const sessionData = sessionRepository.get(sessionId);
19
- if (!sessionData) {
20
- logger.debug(`No persisted session found for: ${sessionId}`);
21
- return null;
22
- }
23
- const config = sessionData;
24
- logger.info(`Restoring streamable session: ${sessionId}`);
25
- // Create new transport with the original session ID using wrapper class
26
- const transport = new RestorableStreamableHTTPServerTransport({
27
- sessionIdGenerator: () => sessionId,
28
- });
29
- // Mark the transport as initialized for restored session
30
- // The wrapper class safely handles the SDK's internal _initialized flag
31
- transport.markAsInitialized();
32
- // Safely set sessionId if possible
33
- try {
34
- transport.sessionId = sessionId;
35
- }
36
- catch (error) {
37
- logger.warn('Could not set sessionId on restored transport:', error);
38
- }
39
- // Convert config context to ContextData format if available
40
- const contextData = config.context
41
- ? {
42
- project: config.context.project || {},
43
- user: config.context.user || {},
44
- environment: config.context.environment || {},
45
- timestamp: config.context.timestamp,
46
- sessionId: config.context.sessionId || sessionId,
47
- version: config.context.version,
48
- transport: config.context.transport,
49
- }
50
- : undefined;
51
- // Reconnect with the original configuration and context
52
- await serverManager.connectTransport(transport, sessionId, config, contextData);
53
- // Initialize notifications for async loading if enabled
54
- if (asyncOrchestrator) {
55
- const inboundConnection = serverManager.getServer(sessionId);
56
- if (inboundConnection) {
57
- asyncOrchestrator.initializeNotifications(inboundConnection);
58
- logger.debug(`Async loading notifications initialized for restored session ${sessionId}`);
59
- }
17
+ function buildConfigFromRequest(res, req, customTemplate) {
18
+ return {
19
+ tags: getValidatedTags(res),
20
+ tagExpression: getTagExpression(res),
21
+ tagFilterMode: getTagFilterMode(res),
22
+ tagQuery: getTagQuery(res),
23
+ presetName: getPresetName(res),
24
+ enablePagination: req.query.pagination === 'true',
25
+ customTemplate,
26
+ };
27
+ }
28
+ /**
29
+ * Sets up client disconnect detection for a request/response pair.
30
+ * Cleans up the transport when the client disconnects, but preserves the session.
31
+ */
32
+ function setupDisconnectDetection(req, res, sessionId, serverManager) {
33
+ let responseClosed = false;
34
+ // Mark response as closed when it ends normally
35
+ res.on('finish', () => {
36
+ responseClosed = true;
37
+ });
38
+ // Detect abnormal client disconnect (connection closed before response finished)
39
+ res.on('close', () => {
40
+ if (!responseClosed && !res.writableEnded) {
41
+ // Client disconnected without calling DELETE
42
+ logger.debug(`Client disconnected for session ${sessionId}, cleaning up transport`);
43
+ serverManager.disconnectTransport(sessionId);
44
+ // Note: Session persists in repository for reconnection
60
45
  }
61
- // Set up handlers for the restored transport
62
- transport.onclose = () => {
46
+ });
47
+ // Also detect socket-level close
48
+ req.socket?.on('close', () => {
49
+ if (!responseClosed && !res.writableEnded) {
50
+ logger.debug(`Socket closed for session ${sessionId}, cleaning up transport`);
63
51
  serverManager.disconnectTransport(sessionId);
64
- sessionRepository.delete(sessionId);
65
- };
66
- transport.onerror = (error) => {
67
- logger.error(`Streamable HTTP transport error for session ${sessionId}:`, error);
68
- const server = serverManager.getServer(sessionId);
69
- if (server) {
70
- server.status = ServerStatus.Error;
71
- server.lastError = error instanceof Error ? error : new Error(String(error));
72
- }
73
- };
74
- // Update last accessed time with dual-trigger persistence
75
- sessionRepository.updateAccess(sessionId);
76
- logger.info(`Successfully restored streamable session: ${sessionId} (restored: ${transport.isRestored()})`);
77
- return transport;
78
- }
79
- catch (error) {
80
- logger.error(`Failed to restore streamable session ${sessionId}:`, error);
81
- return null;
82
- }
52
+ // Note: Session persists in repository for reconnection
53
+ }
54
+ });
83
55
  }
84
- export function setupStreamableHttpRoutes(router, serverManager, sessionRepository, authMiddleware, availabilityMiddleware, asyncOrchestrator, customTemplate) {
56
+ export function setupStreamableHttpRoutes(router, serverManager, sessionRepository, authMiddleware, availabilityMiddleware, asyncOrchestrator, customTemplate, injectedSessionService) {
85
57
  const middlewares = [tagsExtractor, authMiddleware];
86
58
  // Add availability middleware if provided
87
59
  if (availabilityMiddleware) {
88
60
  middlewares.push(availabilityMiddleware);
89
61
  }
62
+ const sessionService = injectedSessionService || new SessionService(serverManager, sessionRepository, asyncOrchestrator);
90
63
  router.post(STREAMABLE_HTTP_ENDPOINT, ...middlewares, async (req, res) => {
91
64
  try {
92
65
  let transport;
@@ -94,147 +67,43 @@ export function setupStreamableHttpRoutes(router, serverManager, sessionReposito
94
67
  if (!sessionId) {
95
68
  // Generate new session ID
96
69
  const id = AUTH_CONFIG.SERVER.STREAMABLE_SESSION.ID_PREFIX + randomUUID();
97
- transport = new StreamableHTTPServerTransport({
98
- sessionIdGenerator: () => id,
99
- });
100
- // Use validated tags and tag expression from scope auth middleware
101
- const tags = getValidatedTags(res);
102
- const tagExpression = getTagExpression(res);
103
- const tagFilterMode = getTagFilterMode(res);
104
- const tagQuery = getTagQuery(res);
105
- const presetName = getPresetName(res);
106
- const config = {
107
- tags,
108
- tagExpression,
109
- tagFilterMode,
110
- tagQuery,
111
- presetName,
112
- enablePagination: req.query.pagination === 'true',
113
- customTemplate,
114
- };
70
+ const config = buildConfigFromRequest(res, req, customTemplate);
115
71
  // Extract context from _meta field (from STDIO proxy)
116
72
  const context = extractContextFromMeta(req);
117
- if (context && context.project?.name && context.sessionId) {
118
- logger.info(`🔗 New session with context: ${context.project.name} (${context.sessionId})`);
119
- }
120
- // Include full context in config for session persistence
121
- const configWithContext = {
122
- ...config,
123
- context: context || undefined,
124
- };
125
- // Pass context to ServerManager for template processing (only if valid)
126
- const validContext = context && context.project && context.user && context.environment ? context : undefined;
127
- await serverManager.connectTransport(transport, id, configWithContext, validContext);
128
- // Persist session configuration with full context for restoration
129
- sessionRepository.create(id, configWithContext);
130
- // Initialize notifications for async loading if enabled
131
- if (asyncOrchestrator) {
132
- const inboundConnection = serverManager.getServer(id);
133
- if (inboundConnection) {
134
- asyncOrchestrator.initializeNotifications(inboundConnection);
135
- logger.debug(`Async loading notifications initialized for Streamable HTTP session ${id}`);
136
- }
73
+ const createResult = await sessionService.createSession(config, context || undefined, id);
74
+ transport = createResult.transport;
75
+ // Log warning if session was not persisted
76
+ if (!createResult.persisted) {
77
+ logger.warn(`New session ${id} was created but not persisted: ${createResult.persistenceError}`);
137
78
  }
138
- transport.onclose = () => {
139
- serverManager.disconnectTransport(id);
140
- sessionRepository.delete(id);
141
- };
142
- transport.onerror = (error) => {
143
- logger.error(`Streamable HTTP transport error for session ${id}:`, error);
144
- const server = serverManager.getServer(id);
145
- if (server) {
146
- server.status = ServerStatus.Error;
147
- server.lastError = error instanceof Error ? error : new Error(String(error));
148
- }
149
- };
150
79
  }
151
80
  else {
152
- const existingTransport = serverManager.getTransport(sessionId);
153
- if (!existingTransport) {
154
- // Extract context from _meta field (from STDIO proxy) for session restoration
81
+ transport = await sessionService.getSession(sessionId);
82
+ if (!transport) {
83
+ // Session restoration failed - create new session with provided ID (handles proxy use case)
84
+ logger.error(`Session restoration failed for ${sessionId}, creating new session as fallback`);
85
+ const config = buildConfigFromRequest(res, req, customTemplate);
86
+ // Extract context from _meta field (from STDIO proxy)
155
87
  const context = extractContextFromMeta(req);
156
- if (context && context.project?.name && context.sessionId) {
157
- logger.info(`🔄 Restoring session with context: ${context.project.name} (${context.sessionId})`);
158
- }
159
- // Attempt to restore session from persistent storage
160
- const restoredTransport = await restoreSession(sessionId, serverManager, sessionRepository, asyncOrchestrator);
161
- if (!restoredTransport) {
162
- // Session restoration failed - create new session with provided ID (handles proxy use case)
163
- logger.info(`🆕 Session restoration failed, creating new session with provided ID: ${sessionId}`);
164
- transport = new StreamableHTTPServerTransport({
165
- sessionIdGenerator: () => sessionId,
166
- });
167
- // Use validated tags and tag expression from scope auth middleware
168
- const tags = getValidatedTags(res);
169
- const tagExpression = getTagExpression(res);
170
- const tagFilterMode = getTagFilterMode(res);
171
- const tagQuery = getTagQuery(res);
172
- const presetName = getPresetName(res);
173
- const config = {
174
- tags,
175
- tagExpression,
176
- tagFilterMode,
177
- tagQuery,
178
- presetName,
179
- enablePagination: req.query.pagination === 'true',
180
- customTemplate,
181
- };
182
- // Extract context from _meta field (from STDIO proxy)
183
- const context = extractContextFromMeta(req);
184
- if (context && context.project?.name && context.sessionId) {
185
- logger.info(`🔗 New session with provided ID and context: ${context.project.name} (${context.sessionId})`);
186
- }
187
- // Pass context to ServerManager for template processing (only if valid)
188
- const validContext = context && context.project && context.user && context.environment ? context : undefined;
189
- await serverManager.connectTransport(transport, sessionId, config, validContext);
190
- // Persist session configuration for restoration with context
191
- sessionRepository.create(sessionId, config);
192
- // Initialize notifications for async loading if enabled
193
- if (asyncOrchestrator) {
194
- const inboundConnection = serverManager.getServer(sessionId);
195
- if (inboundConnection) {
196
- asyncOrchestrator.initializeNotifications(inboundConnection);
197
- logger.debug(`Async loading notifications initialized for Streamable HTTP session ${sessionId}`);
198
- }
199
- }
200
- transport.onclose = () => {
201
- serverManager.disconnectTransport(sessionId);
202
- sessionRepository.delete(sessionId);
203
- };
204
- transport.onerror = (error) => {
205
- logger.error(`Streamable HTTP transport error for session ${sessionId}:`, error);
206
- const server = serverManager.getServer(sessionId);
207
- if (server) {
208
- server.status = ServerStatus.Error;
209
- server.lastError = error instanceof Error ? error : new Error(String(error));
210
- }
211
- };
88
+ const createResult = await sessionService.createSession(config, context || undefined, sessionId);
89
+ transport = createResult.transport;
90
+ // Log warning if session was not persisted
91
+ if (!createResult.persisted) {
92
+ logger.warn(`Fallback session ${sessionId} was created but not persisted: ${createResult.persistenceError}`);
212
93
  }
213
- else {
214
- transport = restoredTransport;
215
- }
216
- }
217
- else if (existingTransport instanceof StreamableHTTPServerTransport ||
218
- existingTransport instanceof RestorableStreamableHTTPServerTransport) {
219
- transport = existingTransport;
220
- // Update last accessed time for active sessions with dual-trigger persistence
221
- sessionRepository.updateAccess(sessionId);
222
- }
223
- else {
224
- res.status(400).json({
225
- error: {
226
- code: ErrorCode.InvalidParams,
227
- message: 'Session already exists but uses a different transport protocol',
228
- },
229
- });
230
- return;
231
94
  }
232
95
  }
233
96
  await transport.handleRequest(req, res, req.body);
234
97
  }
235
98
  catch (error) {
236
- logger.error('Streamable HTTP error:', error);
237
- res.status(500).end();
99
+ const errorMessage = error instanceof Error ? error.message : String(error);
100
+ logger.error('Streamable HTTP POST error:', { error: errorMessage, sessionId: req.headers['mcp-session-id'] });
101
+ res.status(500).json({
102
+ error: {
103
+ code: ErrorCode.InternalError,
104
+ message: 'An internal server error occurred while processing the request',
105
+ },
106
+ });
238
107
  }
239
108
  });
240
109
  router.get(STREAMABLE_HTTP_ENDPOINT, ...middlewares, async (req, res) => {
@@ -249,30 +118,29 @@ export function setupStreamableHttpRoutes(router, serverManager, sessionReposito
249
118
  });
250
119
  return;
251
120
  }
252
- let transport = serverManager.getTransport(sessionId);
121
+ const transport = await sessionService.getSession(sessionId);
253
122
  if (!transport) {
254
- // Attempt to restore session from persistent storage
255
- const restoredTransport = await restoreSession(sessionId, serverManager, sessionRepository, asyncOrchestrator);
256
- if (!restoredTransport) {
257
- res.status(404).json({
258
- error: {
259
- code: ErrorCode.InvalidParams,
260
- message: 'No active streamable HTTP session found for the provided sessionId',
261
- },
262
- });
263
- return;
264
- }
265
- transport = restoredTransport;
266
- }
267
- else {
268
- // Update last accessed time for active sessions with dual-trigger persistence
269
- sessionRepository.updateAccess(sessionId);
123
+ res.status(404).json({
124
+ error: {
125
+ code: ErrorCode.InvalidParams,
126
+ message: 'No active streamable HTTP session found for the provided sessionId',
127
+ },
128
+ });
129
+ return;
270
130
  }
131
+ // Set up disconnect detection for SSE stream (GET endpoint maintains persistent connection)
132
+ setupDisconnectDetection(req, res, sessionId, serverManager);
271
133
  await transport.handleRequest(req, res, req.body);
272
134
  }
273
135
  catch (error) {
274
- logger.error('Streamable HTTP error:', error);
275
- res.status(500).end();
136
+ const errorMessage = error instanceof Error ? error.message : String(error);
137
+ logger.error('Streamable HTTP GET error:', { error: errorMessage, sessionId: req.headers['mcp-session-id'] });
138
+ res.status(500).json({
139
+ error: {
140
+ code: ErrorCode.InternalError,
141
+ message: 'An internal server error occurred while processing the request',
142
+ },
143
+ });
276
144
  }
277
145
  });
278
146
  router.delete(STREAMABLE_HTTP_ENDPOINT, ...middlewares, async (req, res) => {
@@ -287,28 +155,29 @@ export function setupStreamableHttpRoutes(router, serverManager, sessionReposito
287
155
  });
288
156
  return;
289
157
  }
290
- let transport = serverManager.getTransport(sessionId);
158
+ const transport = await sessionService.getSession(sessionId);
291
159
  if (!transport) {
292
- // Attempt to restore session from persistent storage
293
- const restoredTransport = await restoreSession(sessionId, serverManager, sessionRepository, asyncOrchestrator);
294
- if (!restoredTransport) {
295
- res.status(404).json({
296
- error: {
297
- code: ErrorCode.InvalidParams,
298
- message: 'No active streamable HTTP session found for the provided sessionId',
299
- },
300
- });
301
- return;
302
- }
303
- transport = restoredTransport;
160
+ res.status(404).json({
161
+ error: {
162
+ code: ErrorCode.InvalidParams,
163
+ message: 'No active streamable HTTP session found for the provided sessionId',
164
+ },
165
+ });
166
+ return;
304
167
  }
305
168
  await transport.handleRequest(req, res);
306
169
  // Delete session from storage after explicit delete request
307
- sessionRepository.delete(sessionId);
170
+ await sessionService.deleteSession(sessionId);
308
171
  }
309
172
  catch (error) {
310
- logger.error('Streamable HTTP error:', error);
311
- res.status(500).end();
173
+ const errorMessage = error instanceof Error ? error.message : String(error);
174
+ logger.error('Streamable HTTP DELETE error:', { error: errorMessage, sessionId: req.headers['mcp-session-id'] });
175
+ res.status(500).json({
176
+ error: {
177
+ code: ErrorCode.InternalError,
178
+ message: 'An internal server error occurred while processing the request',
179
+ },
180
+ });
312
181
  }
313
182
  });
314
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"streamableHttpRoutes.js","sourceRoot":"","sources":["../../../../src/transport/http/routes/streamableHttpRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamableHttpRoutes.js","sourceRoot":"","sources":["../../../../src/transport/http/routes/streamableHttpRoutes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Type definitions for internal properties of the MCP SDK that are not exposed
3
+ * in the public API but are needed for session restoration functionality.
4
+ */
5
+ /**
6
+ * Interface representing the internal structure of the web standard transport
7
+ * used within StreamableHTTPServerTransport
8
+ */
9
+ export interface InternalWebStandardTransport {
10
+ sessionId: string;
11
+ }
12
+ /**
13
+ * Interface representing the internal structure of StreamableHTTPServerTransport
14
+ * exposing private properties needed for restoration
15
+ */
16
+ export interface InternalStreamableTransport {
17
+ /**
18
+ * The underlying web standard transport instance
19
+ * @internal
20
+ */
21
+ _webStandardTransport?: InternalWebStandardTransport;
22
+ /**
23
+ * Flag indicating if the transport has been initialized
24
+ * @internal
25
+ */
26
+ _initialized?: boolean;
27
+ /**
28
+ * Session ID from public interface
29
+ */
30
+ sessionId?: string;
31
+ }
32
+ //# sourceMappingURL=sdkInternals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkInternals.d.ts","sourceRoot":"","sources":["../../../../src/transport/http/utils/sdkInternals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,qBAAqB,CAAC,EAAE,4BAA4B,CAAC;IAErD;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Type definitions for internal properties of the MCP SDK that are not exposed
3
+ * in the public API but are needed for session restoration functionality.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=sdkInternals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkInternals.js","sourceRoot":"","sources":["../../../../src/transport/http/utils/sdkInternals.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,76 @@
1
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
2
+ import { AsyncLoadingOrchestrator } from '../../../core/capabilities/asyncLoadingOrchestrator.js';
3
+ import { ServerManager } from '../../../core/server/serverManager.js';
4
+ import { InboundConnectionConfig } from '../../../core/types/index.js';
5
+ import { RestorableStreamableHTTPServerTransport } from '../../../transport/http/restorableStreamableTransport.js';
6
+ import { StreamableSessionRepository } from '../../../transport/http/storage/streamableSessionRepository.js';
7
+ import type { ContextData } from '../../../types/context.js';
8
+ /**
9
+ * Result type for session restoration operations.
10
+ */
11
+ export interface SessionRestoreResult {
12
+ transport: RestorableStreamableHTTPServerTransport | null;
13
+ error?: string;
14
+ errorType?: 'not_found' | 'transport_failed' | 'connection_failed' | 'context_invalid';
15
+ }
16
+ /**
17
+ * Result type for session creation operations.
18
+ * Indicates whether the session was successfully persisted to storage.
19
+ */
20
+ export interface SessionCreateResult {
21
+ transport: StreamableHTTPServerTransport | RestorableStreamableHTTPServerTransport;
22
+ persisted: boolean;
23
+ persistenceError?: string;
24
+ }
25
+ /**
26
+ * Service to handle session management logic for Streamable HTTP transport.
27
+ * Encapsulates creation, restoration, and cleanup of sessions.
28
+ */
29
+ export declare class SessionService {
30
+ private serverManager;
31
+ private sessionRepository;
32
+ private asyncOrchestrator?;
33
+ constructor(serverManager: ServerManager, sessionRepository: StreamableSessionRepository, asyncOrchestrator?: AsyncLoadingOrchestrator | undefined);
34
+ /**
35
+ * Retrieves an existing session transport or tries to restore it.
36
+ *
37
+ * @param sessionId - The session ID to retrieve
38
+ * @returns The transport if found or restored successfully, null otherwise
39
+ */
40
+ getSession(sessionId: string): Promise<StreamableHTTPServerTransport | RestorableStreamableHTTPServerTransport | null>;
41
+ /**
42
+ * Restores a session from persistent storage.
43
+ *
44
+ * @param sessionId - The session ID to restore
45
+ * @returns SessionRestoreResult with transport or error details
46
+ */
47
+ restoreSession(sessionId: string): Promise<SessionRestoreResult>;
48
+ /**
49
+ * Creates a new session with the given configuration.
50
+ *
51
+ * @param config - The inbound connection configuration
52
+ * @param context - Optional context data for the session
53
+ * @param providedSessionId - Optional session ID to use instead of generating one
54
+ * @returns SessionCreateResult with transport and persistence status
55
+ * @throws Error if session creation fails (but not if persistence fails)
56
+ */
57
+ createSession(config: InboundConnectionConfig, context?: Partial<ContextData>, providedSessionId?: string): Promise<SessionCreateResult>;
58
+ /**
59
+ * Deletes a session and cleans up resources.
60
+ *
61
+ * @param sessionId - The session ID to delete
62
+ */
63
+ deleteSession(sessionId: string): Promise<void>;
64
+ /**
65
+ * Initializes async loading notifications for a session.
66
+ *
67
+ * This method should be called after connecting a transport to enable
68
+ * the async orchestrator to send capability updates to the client.
69
+ * Only applicable when async loading is enabled.
70
+ *
71
+ * @param sessionId - The session ID to initialize notifications for
72
+ */
73
+ private initializeNotifications;
74
+ private setupTransportHandlers;
75
+ }
76
+ //# sourceMappingURL=sessionService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionService.d.ts","sourceRoot":"","sources":["../../../../src/transport/http/utils/sessionService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAGnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAgB,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,uCAAuC,EAAE,MAAM,sDAAsD,CAAC;AAC/G,OAAO,EAAE,2BAA2B,EAAE,MAAM,4DAA4D,CAAC;AACzG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,uCAAuC,GAAG,IAAI,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;CACxF;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,6BAA6B,GAAG,uCAAuC,CAAC;IACnF,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAYD;;;GAGG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,iBAAiB,CAAC;gBAFlB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,2BAA2B,EAC9C,iBAAiB,CAAC,EAAE,wBAAwB,YAAA;IAGtD;;;;;OAKG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,6BAA6B,GAAG,uCAAuC,GAAG,IAAI,CAAC;IA4B1F;;;;;OAKG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuEtE;;;;;;;;OAQG;IACG,aAAa,CACjB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAC9B,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,mBAAmB,CAAC;IA2D/B;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,sBAAsB;CAkB/B"}