@claude-flow/mcp 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agentic-flow/intelligence.json +16 -0
- package/README.md +428 -0
- package/__tests__/integration.test.ts +449 -0
- package/__tests__/mcp.test.ts +641 -0
- package/dist/connection-pool.d.ts +36 -0
- package/dist/connection-pool.d.ts.map +1 -0
- package/dist/connection-pool.js +273 -0
- package/dist/connection-pool.js.map +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth.d.ts +146 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +318 -0
- package/dist/oauth.js.map +1 -0
- package/dist/prompt-registry.d.ts +90 -0
- package/dist/prompt-registry.d.ts.map +1 -0
- package/dist/prompt-registry.js +209 -0
- package/dist/prompt-registry.js.map +1 -0
- package/dist/rate-limiter.d.ts +86 -0
- package/dist/rate-limiter.d.ts.map +1 -0
- package/dist/rate-limiter.js +197 -0
- package/dist/rate-limiter.js.map +1 -0
- package/dist/resource-registry.d.ts +144 -0
- package/dist/resource-registry.d.ts.map +1 -0
- package/dist/resource-registry.js +405 -0
- package/dist/resource-registry.js.map +1 -0
- package/dist/sampling.d.ts +102 -0
- package/dist/sampling.d.ts.map +1 -0
- package/dist/sampling.js +268 -0
- package/dist/sampling.js.map +1 -0
- package/dist/schema-validator.d.ts +30 -0
- package/dist/schema-validator.d.ts.map +1 -0
- package/dist/schema-validator.js +182 -0
- package/dist/schema-validator.js.map +1 -0
- package/dist/server.d.ts +122 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +829 -0
- package/dist/server.js.map +1 -0
- package/dist/session-manager.d.ts +55 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +252 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/task-manager.d.ts +81 -0
- package/dist/task-manager.d.ts.map +1 -0
- package/dist/task-manager.js +337 -0
- package/dist/task-manager.js.map +1 -0
- package/dist/tool-registry.d.ts +88 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +353 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/transport/http.d.ts +55 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +446 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/index.d.ts +50 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +181 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/stdio.d.ts +43 -0
- package/dist/transport/stdio.d.ts.map +1 -0
- package/dist/transport/stdio.js +194 -0
- package/dist/transport/stdio.js.map +1 -0
- package/dist/transport/websocket.d.ts +65 -0
- package/dist/transport/websocket.d.ts.map +1 -0
- package/dist/transport/websocket.js +314 -0
- package/dist/transport/websocket.js.map +1 -0
- package/dist/types.d.ts +473 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +40 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -0
- package/src/connection-pool.ts +344 -0
- package/src/index.ts +253 -0
- package/src/oauth.ts +447 -0
- package/src/prompt-registry.ts +296 -0
- package/src/rate-limiter.ts +266 -0
- package/src/resource-registry.ts +530 -0
- package/src/sampling.ts +363 -0
- package/src/schema-validator.ts +213 -0
- package/src/server.ts +1134 -0
- package/src/session-manager.ts +339 -0
- package/src/task-manager.ts +427 -0
- package/src/tool-registry.ts +475 -0
- package/src/transport/http.ts +532 -0
- package/src/transport/index.ts +233 -0
- package/src/transport/stdio.ts +252 -0
- package/src/transport/websocket.ts +396 -0
- package/src/types.ts +664 -0
- package/tsconfig.json +20 -0
- package/vitest.config.ts +13 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/mcp - Session Manager
|
|
3
|
+
*
|
|
4
|
+
* MCP session lifecycle management
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
import type { MCPSession, SessionState, SessionMetrics, MCPInitializeParams, TransportType, ILogger } from './types.js';
|
|
8
|
+
export interface SessionConfig {
|
|
9
|
+
maxSessions?: number;
|
|
10
|
+
sessionTimeout?: number;
|
|
11
|
+
cleanupInterval?: number;
|
|
12
|
+
enableMetrics?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class SessionManager extends EventEmitter {
|
|
15
|
+
private readonly logger;
|
|
16
|
+
private readonly sessions;
|
|
17
|
+
private readonly config;
|
|
18
|
+
private cleanupTimer?;
|
|
19
|
+
private sessionCounter;
|
|
20
|
+
private totalCreated;
|
|
21
|
+
private totalClosed;
|
|
22
|
+
private totalExpired;
|
|
23
|
+
constructor(logger: ILogger, config?: SessionConfig);
|
|
24
|
+
createSession(transport: TransportType): MCPSession;
|
|
25
|
+
initializeSession(sessionId: string, params: MCPInitializeParams): MCPSession | undefined;
|
|
26
|
+
authenticateSession(sessionId: string): boolean;
|
|
27
|
+
getSession(sessionId: string): MCPSession | undefined;
|
|
28
|
+
hasSession(sessionId: string): boolean;
|
|
29
|
+
getActiveSessions(): MCPSession[];
|
|
30
|
+
updateActivity(sessionId: string): boolean;
|
|
31
|
+
setState(sessionId: string, state: SessionState): boolean;
|
|
32
|
+
setMetadata(sessionId: string, key: string, value: unknown): boolean;
|
|
33
|
+
getMetadata(sessionId: string, key: string): unknown;
|
|
34
|
+
closeSession(sessionId: string, reason?: string): boolean;
|
|
35
|
+
removeSession(sessionId: string): boolean;
|
|
36
|
+
getSessionMetrics(): SessionMetrics;
|
|
37
|
+
getStats(): {
|
|
38
|
+
total: number;
|
|
39
|
+
byState: Record<SessionState, number>;
|
|
40
|
+
byTransport: Record<TransportType, number>;
|
|
41
|
+
totalCreated: number;
|
|
42
|
+
totalClosed: number;
|
|
43
|
+
totalExpired: number;
|
|
44
|
+
oldestSession?: Date;
|
|
45
|
+
newestSession?: Date;
|
|
46
|
+
};
|
|
47
|
+
cleanupExpiredSessions(): number;
|
|
48
|
+
private startCleanupTimer;
|
|
49
|
+
private stopCleanupTimer;
|
|
50
|
+
private generateSessionId;
|
|
51
|
+
clearAll(): void;
|
|
52
|
+
destroy(): void;
|
|
53
|
+
}
|
|
54
|
+
export declare function createSessionManager(logger: ILogger, config?: SessionConfig): SessionManager;
|
|
55
|
+
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AASD,qBAAa,cAAe,SAAQ,YAAY;IAW5C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAK;gBAGN,MAAM,EAAE,OAAO,EAChC,MAAM,GAAE,aAAkB;IAO5B,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,UAAU;IA2BnD,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,mBAAmB,GAC1B,UAAU,GAAG,SAAS;IAwBzB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAe/C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIrD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC,iBAAiB,IAAI,UAAU,EAAE;IAMjC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAU1C,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO;IAoBzD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAepE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAKpD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAgBzD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIzC,iBAAiB,IAAI,cAAc;IAiBnC,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtC,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC3C,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,IAAI,CAAC;KACtB;IA4CD,sBAAsB,IAAI,MAAM;IA6BhC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,iBAAiB;IAIzB,QAAQ,IAAI,IAAI;IAOhB,OAAO,IAAI,IAAI;CAMhB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,aAAa,GACrB,cAAc,CAEhB"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/mcp - Session Manager
|
|
3
|
+
*
|
|
4
|
+
* MCP session lifecycle management
|
|
5
|
+
*/
|
|
6
|
+
import { EventEmitter } from 'events';
|
|
7
|
+
const DEFAULT_SESSION_CONFIG = {
|
|
8
|
+
maxSessions: 100,
|
|
9
|
+
sessionTimeout: 30 * 60 * 1000,
|
|
10
|
+
cleanupInterval: 60 * 1000,
|
|
11
|
+
enableMetrics: true,
|
|
12
|
+
};
|
|
13
|
+
export class SessionManager extends EventEmitter {
|
|
14
|
+
logger;
|
|
15
|
+
sessions = new Map();
|
|
16
|
+
config;
|
|
17
|
+
cleanupTimer;
|
|
18
|
+
sessionCounter = 0;
|
|
19
|
+
totalCreated = 0;
|
|
20
|
+
totalClosed = 0;
|
|
21
|
+
totalExpired = 0;
|
|
22
|
+
constructor(logger, config = {}) {
|
|
23
|
+
super();
|
|
24
|
+
this.logger = logger;
|
|
25
|
+
this.config = { ...DEFAULT_SESSION_CONFIG, ...config };
|
|
26
|
+
this.startCleanupTimer();
|
|
27
|
+
}
|
|
28
|
+
createSession(transport) {
|
|
29
|
+
if (this.sessions.size >= this.config.maxSessions) {
|
|
30
|
+
throw new Error(`Maximum sessions (${this.config.maxSessions}) reached`);
|
|
31
|
+
}
|
|
32
|
+
const id = this.generateSessionId();
|
|
33
|
+
const now = new Date();
|
|
34
|
+
const session = {
|
|
35
|
+
id,
|
|
36
|
+
state: 'created',
|
|
37
|
+
transport,
|
|
38
|
+
createdAt: now,
|
|
39
|
+
lastActivityAt: now,
|
|
40
|
+
isInitialized: false,
|
|
41
|
+
isAuthenticated: false,
|
|
42
|
+
};
|
|
43
|
+
this.sessions.set(id, session);
|
|
44
|
+
this.totalCreated++;
|
|
45
|
+
this.logger.debug('Session created', { id, transport });
|
|
46
|
+
this.emit('session:created', session);
|
|
47
|
+
return session;
|
|
48
|
+
}
|
|
49
|
+
initializeSession(sessionId, params) {
|
|
50
|
+
const session = this.sessions.get(sessionId);
|
|
51
|
+
if (!session) {
|
|
52
|
+
this.logger.warn('Session not found for initialization', { sessionId });
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
session.state = 'ready';
|
|
56
|
+
session.isInitialized = true;
|
|
57
|
+
session.clientInfo = params.clientInfo;
|
|
58
|
+
session.protocolVersion = params.protocolVersion;
|
|
59
|
+
session.capabilities = params.capabilities;
|
|
60
|
+
session.lastActivityAt = new Date();
|
|
61
|
+
this.logger.info('Session initialized', {
|
|
62
|
+
sessionId,
|
|
63
|
+
clientInfo: params.clientInfo,
|
|
64
|
+
protocolVersion: params.protocolVersion,
|
|
65
|
+
});
|
|
66
|
+
this.emit('session:initialized', session);
|
|
67
|
+
return session;
|
|
68
|
+
}
|
|
69
|
+
authenticateSession(sessionId) {
|
|
70
|
+
const session = this.sessions.get(sessionId);
|
|
71
|
+
if (!session) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
session.isAuthenticated = true;
|
|
75
|
+
session.lastActivityAt = new Date();
|
|
76
|
+
this.logger.debug('Session authenticated', { sessionId });
|
|
77
|
+
this.emit('session:authenticated', session);
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
getSession(sessionId) {
|
|
81
|
+
return this.sessions.get(sessionId);
|
|
82
|
+
}
|
|
83
|
+
hasSession(sessionId) {
|
|
84
|
+
return this.sessions.has(sessionId);
|
|
85
|
+
}
|
|
86
|
+
getActiveSessions() {
|
|
87
|
+
return Array.from(this.sessions.values()).filter((s) => s.state === 'ready' || s.state === 'created' || s.state === 'initializing');
|
|
88
|
+
}
|
|
89
|
+
updateActivity(sessionId) {
|
|
90
|
+
const session = this.sessions.get(sessionId);
|
|
91
|
+
if (!session) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
session.lastActivityAt = new Date();
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
setState(sessionId, state) {
|
|
98
|
+
const session = this.sessions.get(sessionId);
|
|
99
|
+
if (!session) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
const oldState = session.state;
|
|
103
|
+
session.state = state;
|
|
104
|
+
session.lastActivityAt = new Date();
|
|
105
|
+
this.logger.debug('Session state changed', {
|
|
106
|
+
sessionId,
|
|
107
|
+
oldState,
|
|
108
|
+
newState: state,
|
|
109
|
+
});
|
|
110
|
+
this.emit('session:stateChanged', { session, oldState, newState: state });
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
setMetadata(sessionId, key, value) {
|
|
114
|
+
const session = this.sessions.get(sessionId);
|
|
115
|
+
if (!session) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
if (!session.metadata) {
|
|
119
|
+
session.metadata = {};
|
|
120
|
+
}
|
|
121
|
+
session.metadata[key] = value;
|
|
122
|
+
session.lastActivityAt = new Date();
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
getMetadata(sessionId, key) {
|
|
126
|
+
const session = this.sessions.get(sessionId);
|
|
127
|
+
return session?.metadata?.[key];
|
|
128
|
+
}
|
|
129
|
+
closeSession(sessionId, reason) {
|
|
130
|
+
const session = this.sessions.get(sessionId);
|
|
131
|
+
if (!session) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
session.state = 'closed';
|
|
135
|
+
this.sessions.delete(sessionId);
|
|
136
|
+
this.totalClosed++;
|
|
137
|
+
this.logger.info('Session closed', { sessionId, reason });
|
|
138
|
+
this.emit('session:closed', { session, reason });
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
removeSession(sessionId) {
|
|
142
|
+
return this.closeSession(sessionId);
|
|
143
|
+
}
|
|
144
|
+
getSessionMetrics() {
|
|
145
|
+
let authenticated = 0;
|
|
146
|
+
let active = 0;
|
|
147
|
+
for (const session of this.sessions.values()) {
|
|
148
|
+
if (session.isAuthenticated)
|
|
149
|
+
authenticated++;
|
|
150
|
+
if (session.state === 'ready')
|
|
151
|
+
active++;
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
total: this.sessions.size,
|
|
155
|
+
active,
|
|
156
|
+
authenticated,
|
|
157
|
+
expired: this.totalExpired,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
getStats() {
|
|
161
|
+
const byState = {
|
|
162
|
+
created: 0,
|
|
163
|
+
initializing: 0,
|
|
164
|
+
ready: 0,
|
|
165
|
+
closing: 0,
|
|
166
|
+
closed: 0,
|
|
167
|
+
error: 0,
|
|
168
|
+
};
|
|
169
|
+
const byTransport = {
|
|
170
|
+
stdio: 0,
|
|
171
|
+
http: 0,
|
|
172
|
+
websocket: 0,
|
|
173
|
+
'in-process': 0,
|
|
174
|
+
};
|
|
175
|
+
let oldest;
|
|
176
|
+
let newest;
|
|
177
|
+
for (const session of this.sessions.values()) {
|
|
178
|
+
byState[session.state] = (byState[session.state] || 0) + 1;
|
|
179
|
+
byTransport[session.transport] = (byTransport[session.transport] || 0) + 1;
|
|
180
|
+
if (!oldest || session.createdAt < oldest) {
|
|
181
|
+
oldest = session.createdAt;
|
|
182
|
+
}
|
|
183
|
+
if (!newest || session.createdAt > newest) {
|
|
184
|
+
newest = session.createdAt;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
total: this.sessions.size,
|
|
189
|
+
byState: byState,
|
|
190
|
+
byTransport: byTransport,
|
|
191
|
+
totalCreated: this.totalCreated,
|
|
192
|
+
totalClosed: this.totalClosed,
|
|
193
|
+
totalExpired: this.totalExpired,
|
|
194
|
+
oldestSession: oldest,
|
|
195
|
+
newestSession: newest,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
cleanupExpiredSessions() {
|
|
199
|
+
const now = Date.now();
|
|
200
|
+
const expired = [];
|
|
201
|
+
for (const [id, session] of this.sessions) {
|
|
202
|
+
const inactiveTime = now - session.lastActivityAt.getTime();
|
|
203
|
+
if (inactiveTime > this.config.sessionTimeout) {
|
|
204
|
+
expired.push(id);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
for (const id of expired) {
|
|
208
|
+
const session = this.sessions.get(id);
|
|
209
|
+
if (session) {
|
|
210
|
+
session.state = 'closed';
|
|
211
|
+
this.sessions.delete(id);
|
|
212
|
+
this.totalExpired++;
|
|
213
|
+
this.logger.info('Session expired', { sessionId: id });
|
|
214
|
+
this.emit('session:expired', session);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (expired.length > 0) {
|
|
218
|
+
this.logger.info('Cleaned up expired sessions', { count: expired.length });
|
|
219
|
+
}
|
|
220
|
+
return expired.length;
|
|
221
|
+
}
|
|
222
|
+
startCleanupTimer() {
|
|
223
|
+
this.cleanupTimer = setInterval(() => {
|
|
224
|
+
this.cleanupExpiredSessions();
|
|
225
|
+
}, this.config.cleanupInterval);
|
|
226
|
+
}
|
|
227
|
+
stopCleanupTimer() {
|
|
228
|
+
if (this.cleanupTimer) {
|
|
229
|
+
clearInterval(this.cleanupTimer);
|
|
230
|
+
this.cleanupTimer = undefined;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
generateSessionId() {
|
|
234
|
+
return `session-${++this.sessionCounter}-${Date.now()}-${Math.random().toString(36).substring(2, 8)}`;
|
|
235
|
+
}
|
|
236
|
+
clearAll() {
|
|
237
|
+
for (const id of this.sessions.keys()) {
|
|
238
|
+
this.closeSession(id, 'Session manager cleared');
|
|
239
|
+
}
|
|
240
|
+
this.logger.info('All sessions cleared');
|
|
241
|
+
}
|
|
242
|
+
destroy() {
|
|
243
|
+
this.stopCleanupTimer();
|
|
244
|
+
this.clearAll();
|
|
245
|
+
this.removeAllListeners();
|
|
246
|
+
this.logger.info('Session manager destroyed');
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
export function createSessionManager(logger, config) {
|
|
250
|
+
return new SessionManager(logger, config);
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=session-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../src/session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/mcp - Task Manager
|
|
3
|
+
*
|
|
4
|
+
* MCP 2025-11-25 compliant async task management
|
|
5
|
+
* Supports: task tracking, progress reporting, cancellation
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
import type { TaskState, TaskProgress, TaskResult, ILogger } from './types.js';
|
|
9
|
+
export type TaskExecutor<T = unknown> = (reportProgress: (progress: TaskProgress) => void, signal: AbortSignal) => Promise<T>;
|
|
10
|
+
export interface TaskManagerOptions {
|
|
11
|
+
maxConcurrentTasks?: number;
|
|
12
|
+
taskTimeout?: number;
|
|
13
|
+
cleanupInterval?: number;
|
|
14
|
+
taskRetentionTime?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class TaskManager extends EventEmitter {
|
|
17
|
+
private readonly logger;
|
|
18
|
+
private tasks;
|
|
19
|
+
private runningCount;
|
|
20
|
+
private taskCounter;
|
|
21
|
+
private cleanupTimer?;
|
|
22
|
+
private readonly options;
|
|
23
|
+
constructor(logger: ILogger, options?: TaskManagerOptions);
|
|
24
|
+
/**
|
|
25
|
+
* Create a new task
|
|
26
|
+
*/
|
|
27
|
+
createTask<T>(executor: TaskExecutor<T>, metadata?: Record<string, unknown>): string;
|
|
28
|
+
/**
|
|
29
|
+
* Start a pending task
|
|
30
|
+
*/
|
|
31
|
+
private startTask;
|
|
32
|
+
/**
|
|
33
|
+
* Start next pending task if available
|
|
34
|
+
*/
|
|
35
|
+
private startNextPendingTask;
|
|
36
|
+
/**
|
|
37
|
+
* Cancel a task
|
|
38
|
+
*/
|
|
39
|
+
cancelTask(taskId: string, reason?: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Get task status
|
|
42
|
+
*/
|
|
43
|
+
getTask(taskId: string): TaskResult | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Get all tasks
|
|
46
|
+
*/
|
|
47
|
+
getAllTasks(): TaskResult[];
|
|
48
|
+
/**
|
|
49
|
+
* Get tasks by state
|
|
50
|
+
*/
|
|
51
|
+
getTasksByState(state: TaskState): TaskResult[];
|
|
52
|
+
/**
|
|
53
|
+
* Wait for task completion
|
|
54
|
+
*/
|
|
55
|
+
waitForTask(taskId: string, timeout?: number): Promise<TaskResult>;
|
|
56
|
+
/**
|
|
57
|
+
* Get stats
|
|
58
|
+
*/
|
|
59
|
+
getStats(): {
|
|
60
|
+
totalTasks: number;
|
|
61
|
+
pendingTasks: number;
|
|
62
|
+
runningTasks: number;
|
|
63
|
+
completedTasks: number;
|
|
64
|
+
failedTasks: number;
|
|
65
|
+
cancelledTasks: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Start cleanup timer
|
|
69
|
+
*/
|
|
70
|
+
private startCleanupTimer;
|
|
71
|
+
/**
|
|
72
|
+
* Cleanup old completed/failed/cancelled tasks
|
|
73
|
+
*/
|
|
74
|
+
private cleanupOldTasks;
|
|
75
|
+
/**
|
|
76
|
+
* Destroy the task manager
|
|
77
|
+
*/
|
|
78
|
+
destroy(): void;
|
|
79
|
+
}
|
|
80
|
+
export declare function createTaskManager(logger: ILogger, options?: TaskManagerOptions): TaskManager;
|
|
81
|
+
//# sourceMappingURL=task-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-manager.d.ts","sourceRoot":"","sources":["../src/task-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAEV,SAAS,EACT,YAAY,EACZ,UAAU,EAEV,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,CACtC,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EAChD,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAQD,qBAAa,WAAY,SAAQ,YAAY;IASzC,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,YAAY,CAAC,CAAiB;IAEtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAGpC,MAAM,EAAE,OAAO,EAChC,OAAO,GAAE,kBAAuB;IAalC;;OAEG;IACH,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IA0BpF;;OAEG;YACW,SAAS;IAwEvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAyBpD;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAe/C;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;IAU3B;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,EAAE;IAY/C;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiExE;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB;IAqCD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,IAAI,IAAI;CAkBhB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,kBAAkB,GAC3B,WAAW,CAEb"}
|