@brutalist/mcp 0.6.0 → 0.6.2
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 +3 -1
- package/dist/brutalist-server.d.ts +5 -0
- package/dist/brutalist-server.d.ts.map +1 -1
- package/dist/brutalist-server.js +295 -92
- package/dist/brutalist-server.js.map +1 -1
- package/dist/cli-agents.d.ts +7 -3
- package/dist/cli-agents.d.ts.map +1 -1
- package/dist/cli-agents.js +316 -56
- package/dist/cli-agents.js.map +1 -1
- package/dist/streaming/circuit-breaker.d.ts +186 -0
- package/dist/streaming/circuit-breaker.d.ts.map +1 -0
- package/dist/streaming/circuit-breaker.js +463 -0
- package/dist/streaming/circuit-breaker.js.map +1 -0
- package/dist/streaming/intelligent-buffer.d.ts +141 -0
- package/dist/streaming/intelligent-buffer.d.ts.map +1 -0
- package/dist/streaming/intelligent-buffer.js +555 -0
- package/dist/streaming/intelligent-buffer.js.map +1 -0
- package/dist/streaming/output-parser.d.ts +89 -0
- package/dist/streaming/output-parser.d.ts.map +1 -0
- package/dist/streaming/output-parser.js +349 -0
- package/dist/streaming/output-parser.js.map +1 -0
- package/dist/streaming/progress-tracker.d.ts +149 -0
- package/dist/streaming/progress-tracker.d.ts.map +1 -0
- package/dist/streaming/progress-tracker.js +519 -0
- package/dist/streaming/progress-tracker.js.map +1 -0
- package/dist/streaming/session-manager.d.ts +238 -0
- package/dist/streaming/session-manager.d.ts.map +1 -0
- package/dist/streaming/session-manager.js +546 -0
- package/dist/streaming/session-manager.js.map +1 -0
- package/dist/streaming/sse-transport.d.ts +95 -0
- package/dist/streaming/sse-transport.d.ts.map +1 -0
- package/dist/streaming/sse-transport.js +319 -0
- package/dist/streaming/sse-transport.js.map +1 -0
- package/dist/streaming/streaming-orchestrator.d.ts +153 -0
- package/dist/streaming/streaming-orchestrator.d.ts.map +1 -0
- package/dist/streaming/streaming-orchestrator.js +436 -0
- package/dist/streaming/streaming-orchestrator.js.map +1 -0
- package/dist/test-utils/process-manager.d.ts +61 -0
- package/dist/test-utils/process-manager.d.ts.map +1 -0
- package/dist/test-utils/process-manager.js +262 -0
- package/dist/test-utils/process-manager.js.map +1 -0
- package/dist/test-utils/server-harness.d.ts +73 -0
- package/dist/test-utils/server-harness.d.ts.map +1 -0
- package/dist/test-utils/server-harness.js +297 -0
- package/dist/test-utils/server-harness.js.map +1 -0
- package/dist/test-utils/streaming-fuzz.d.ts +57 -0
- package/dist/test-utils/streaming-fuzz.d.ts.map +1 -0
- package/dist/test-utils/streaming-fuzz.js +287 -0
- package/dist/test-utils/streaming-fuzz.js.map +1 -0
- package/dist/test-utils/test-isolation.d.ts +70 -0
- package/dist/test-utils/test-isolation.d.ts.map +1 -0
- package/dist/test-utils/test-isolation.js +193 -0
- package/dist/test-utils/test-isolation.js.map +1 -0
- package/dist/tool-definitions.d.ts.map +1 -1
- package/dist/tool-definitions.js +12 -6
- package/dist/tool-definitions.js.map +1 -1
- package/dist/types/brutalist.d.ts +3 -3
- package/dist/types/brutalist.d.ts.map +1 -1
- package/dist/types/tool-config.d.ts +0 -1
- package/dist/types/tool-config.d.ts.map +1 -1
- package/dist/types/tool-config.js +0 -1
- package/dist/types/tool-config.js.map +1 -1
- package/dist/utils/pagination.d.ts +3 -3
- package/dist/utils/pagination.d.ts.map +1 -1
- package/dist/utils/pagination.js +24 -6
- package/dist/utils/pagination.js.map +1 -1
- package/dist/utils/response-cache.d.ts +23 -7
- package/dist/utils/response-cache.d.ts.map +1 -1
- package/dist/utils/response-cache.js +202 -62
- package/dist/utils/response-cache.js.map +1 -1
- package/package.json +13 -3
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { StreamingEvent } from '../cli-agents.js';
|
|
3
|
+
import { IntelligentBuffer, EventBatch } from './intelligent-buffer.js';
|
|
4
|
+
/**
|
|
5
|
+
* Session manager statistics
|
|
6
|
+
*/
|
|
7
|
+
export interface SessionManagerStats {
|
|
8
|
+
activeSessions: number;
|
|
9
|
+
totalEvents: number;
|
|
10
|
+
memoryUsage: number;
|
|
11
|
+
totalSubscribers: number;
|
|
12
|
+
uptime: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Session state tracking for analysis
|
|
16
|
+
*/
|
|
17
|
+
export interface AnalysisState {
|
|
18
|
+
status: 'starting' | 'running' | 'paused' | 'complete' | 'failed';
|
|
19
|
+
activeAgents: Set<string>;
|
|
20
|
+
completedAgents: Set<string>;
|
|
21
|
+
failedAgents: Set<string>;
|
|
22
|
+
findings: StreamingEvent[];
|
|
23
|
+
startTime: number;
|
|
24
|
+
endTime?: number;
|
|
25
|
+
progress: {
|
|
26
|
+
totalPhases: number;
|
|
27
|
+
currentPhase: number;
|
|
28
|
+
phaseName: string;
|
|
29
|
+
phaseProgress: number;
|
|
30
|
+
};
|
|
31
|
+
metrics: {
|
|
32
|
+
totalEvents: number;
|
|
33
|
+
findingsCount: number;
|
|
34
|
+
errorsCount: number;
|
|
35
|
+
avgResponseTime: number;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Session context with full lifecycle management
|
|
40
|
+
*/
|
|
41
|
+
export interface SessionContext {
|
|
42
|
+
id: string;
|
|
43
|
+
startTime: number;
|
|
44
|
+
lastActivity: number;
|
|
45
|
+
subscribers: Set<StreamingSubscriber>;
|
|
46
|
+
eventBuffer: IntelligentBuffer;
|
|
47
|
+
metadata: Record<string, any>;
|
|
48
|
+
analysis: AnalysisState;
|
|
49
|
+
connectionCount: number;
|
|
50
|
+
maxConnections: number;
|
|
51
|
+
resources: {
|
|
52
|
+
memoryUsage: number;
|
|
53
|
+
eventCount: number;
|
|
54
|
+
connectionTime: number;
|
|
55
|
+
};
|
|
56
|
+
cleanup?: {
|
|
57
|
+
ttl: number;
|
|
58
|
+
scheduled: boolean;
|
|
59
|
+
timer?: NodeJS.Timeout;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Streaming subscriber interface
|
|
64
|
+
*/
|
|
65
|
+
export interface StreamingSubscriber {
|
|
66
|
+
id: string;
|
|
67
|
+
sessionId: string;
|
|
68
|
+
type: 'sse' | 'websocket' | 'polling';
|
|
69
|
+
emit(event: StreamingEvent): Promise<void>;
|
|
70
|
+
emitBatch(batch: EventBatch): Promise<void>;
|
|
71
|
+
close(): void;
|
|
72
|
+
isConnected(): boolean;
|
|
73
|
+
getConnectionInfo(): {
|
|
74
|
+
connectedAt: number;
|
|
75
|
+
lastActivity: number;
|
|
76
|
+
eventsDelivered: number;
|
|
77
|
+
errorsCount: number;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Session lifecycle events
|
|
82
|
+
*/
|
|
83
|
+
export interface SessionEvents {
|
|
84
|
+
'session:created': (context: SessionContext) => void;
|
|
85
|
+
'session:destroyed': (sessionId: string) => void;
|
|
86
|
+
'session:activity': (sessionId: string, activity: string) => void;
|
|
87
|
+
'session:error': (sessionId: string, error: Error) => void;
|
|
88
|
+
'subscriber:connected': (sessionId: string, subscriber: StreamingSubscriber) => void;
|
|
89
|
+
'subscriber:disconnected': (sessionId: string, subscriberId: string) => void;
|
|
90
|
+
'analysis:started': (sessionId: string, agents: string[]) => void;
|
|
91
|
+
'analysis:progress': (sessionId: string, progress: AnalysisState['progress']) => void;
|
|
92
|
+
'analysis:completed': (sessionId: string, results: AnalysisState) => void;
|
|
93
|
+
'analysis:failed': (sessionId: string, error: Error) => void;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Session configuration options
|
|
97
|
+
*/
|
|
98
|
+
export interface SessionConfig {
|
|
99
|
+
ttl?: number;
|
|
100
|
+
maxConnections?: number;
|
|
101
|
+
maxMemoryMB?: number;
|
|
102
|
+
maxEvents?: number;
|
|
103
|
+
autoCleanup?: boolean;
|
|
104
|
+
bufferConfig?: {
|
|
105
|
+
enableCoalescence: boolean;
|
|
106
|
+
adaptiveThrottling: boolean;
|
|
107
|
+
backpressureThreshold: number;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Session channel manager with comprehensive lifecycle management
|
|
112
|
+
*
|
|
113
|
+
* Features:
|
|
114
|
+
* - Session isolation with secure access control
|
|
115
|
+
* - Automatic resource cleanup and garbage collection
|
|
116
|
+
* - Connection pooling and limits
|
|
117
|
+
* - Real-time monitoring and metrics
|
|
118
|
+
* - Event buffering and delivery guarantees
|
|
119
|
+
* - Analysis state tracking
|
|
120
|
+
* - Graceful error handling and recovery
|
|
121
|
+
*/
|
|
122
|
+
export declare class SessionChannelManager extends EventEmitter {
|
|
123
|
+
private sessions;
|
|
124
|
+
private cleanupTimers;
|
|
125
|
+
private globalBuffer;
|
|
126
|
+
private startTime;
|
|
127
|
+
private readonly config;
|
|
128
|
+
private readonly DEFAULT_CONFIG;
|
|
129
|
+
private metrics;
|
|
130
|
+
constructor(config?: SessionConfig);
|
|
131
|
+
/**
|
|
132
|
+
* Create new session with full context
|
|
133
|
+
*/
|
|
134
|
+
createSession(sessionId?: string, metadata?: Record<string, any>): SessionContext;
|
|
135
|
+
/**
|
|
136
|
+
* Get session context with access validation
|
|
137
|
+
*/
|
|
138
|
+
getSession(sessionId: string, requireActive?: boolean): SessionContext | null;
|
|
139
|
+
/**
|
|
140
|
+
* Subscribe to session events with connection management
|
|
141
|
+
*/
|
|
142
|
+
subscribe(sessionId: string, subscriber: StreamingSubscriber): Promise<boolean>;
|
|
143
|
+
/**
|
|
144
|
+
* Unsubscribe from session events
|
|
145
|
+
*/
|
|
146
|
+
unsubscribe(sessionId: string, subscriberId: string): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Emit event to session with intelligent buffering
|
|
149
|
+
*/
|
|
150
|
+
emitToSession(sessionId: string, event: StreamingEvent): Promise<void>;
|
|
151
|
+
/**
|
|
152
|
+
* Start analysis tracking for session
|
|
153
|
+
*/
|
|
154
|
+
startAnalysis(sessionId: string, agents: string[]): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Complete analysis for session
|
|
157
|
+
*/
|
|
158
|
+
completeAnalysis(sessionId: string): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* Fail analysis for session
|
|
161
|
+
*/
|
|
162
|
+
failAnalysis(sessionId: string, error: Error): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Destroy session and cleanup resources
|
|
165
|
+
*/
|
|
166
|
+
destroySession(sessionId: string): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Get all active sessions
|
|
169
|
+
*/
|
|
170
|
+
getActiveSessions(): SessionContext[];
|
|
171
|
+
/**
|
|
172
|
+
* Get session statistics
|
|
173
|
+
*/
|
|
174
|
+
/**
|
|
175
|
+
* Get global system metrics
|
|
176
|
+
*/
|
|
177
|
+
getGlobalMetrics(): any;
|
|
178
|
+
/**
|
|
179
|
+
* Check if session exists
|
|
180
|
+
*/
|
|
181
|
+
hasSession(sessionId: string): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Get session statistics
|
|
184
|
+
*/
|
|
185
|
+
getSessionStats(sessionId: string): {
|
|
186
|
+
eventsEmitted: number;
|
|
187
|
+
bufferStats: {
|
|
188
|
+
flushCount: number;
|
|
189
|
+
};
|
|
190
|
+
} | null;
|
|
191
|
+
/**
|
|
192
|
+
* End analysis for session
|
|
193
|
+
*/
|
|
194
|
+
endAnalysis(sessionId: string): boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Complete session (alias for endAnalysis)
|
|
197
|
+
*/
|
|
198
|
+
completeSession(sessionId: string): boolean;
|
|
199
|
+
/**
|
|
200
|
+
* Get global statistics
|
|
201
|
+
*/
|
|
202
|
+
getGlobalStats(): SessionManagerStats;
|
|
203
|
+
/**
|
|
204
|
+
* Shutdown session manager
|
|
205
|
+
*/
|
|
206
|
+
shutdown(): void;
|
|
207
|
+
/**
|
|
208
|
+
* Cleanup all resources
|
|
209
|
+
*/
|
|
210
|
+
destroy(): void;
|
|
211
|
+
/**
|
|
212
|
+
* Update analysis state based on events
|
|
213
|
+
*/
|
|
214
|
+
private updateAnalysisState;
|
|
215
|
+
/**
|
|
216
|
+
* Schedule session cleanup
|
|
217
|
+
*/
|
|
218
|
+
private scheduleCleanup;
|
|
219
|
+
/**
|
|
220
|
+
* Setup global event handlers
|
|
221
|
+
*/
|
|
222
|
+
private setupEventHandlers;
|
|
223
|
+
/**
|
|
224
|
+
* Deliver event batch to session subscribers
|
|
225
|
+
*/
|
|
226
|
+
private deliverBatch;
|
|
227
|
+
/**
|
|
228
|
+
* Start periodic maintenance tasks
|
|
229
|
+
*/
|
|
230
|
+
private startMaintenance;
|
|
231
|
+
/**
|
|
232
|
+
* Update internal metrics
|
|
233
|
+
*/
|
|
234
|
+
private updateMetrics;
|
|
235
|
+
}
|
|
236
|
+
export declare const SessionManager: typeof SessionChannelManager;
|
|
237
|
+
export type SessionManager = SessionChannelManager;
|
|
238
|
+
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/streaming/session-manager.ts"],"names":[],"mappings":"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"}
|