@nicomatt69/streamtty 0.0.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.
Files changed (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +471 -0
  3. package/dist/ai-sdk-adapter.d.ts +113 -0
  4. package/dist/ai-sdk-adapter.d.ts.map +1 -0
  5. package/dist/ai-sdk-adapter.js +304 -0
  6. package/dist/ai-sdk-adapter.js.map +1 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +188 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/errors.d.ts +131 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +346 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/events.d.ts +185 -0
  16. package/dist/events.d.ts.map +1 -0
  17. package/dist/events.js +350 -0
  18. package/dist/events.js.map +1 -0
  19. package/dist/index.d.ts +117 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +323 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/parser/streaming-parser.d.ts +81 -0
  24. package/dist/parser/streaming-parser.d.ts.map +1 -0
  25. package/dist/parser/streaming-parser.js +522 -0
  26. package/dist/parser/streaming-parser.js.map +1 -0
  27. package/dist/performance.d.ts +139 -0
  28. package/dist/performance.d.ts.map +1 -0
  29. package/dist/performance.js +401 -0
  30. package/dist/performance.js.map +1 -0
  31. package/dist/plugins/index.d.ts +6 -0
  32. package/dist/plugins/index.d.ts.map +1 -0
  33. package/dist/plugins/index.js +22 -0
  34. package/dist/plugins/index.js.map +1 -0
  35. package/dist/plugins/plugin-system-inline.d.ts +116 -0
  36. package/dist/plugins/plugin-system-inline.d.ts.map +1 -0
  37. package/dist/plugins/plugin-system-inline.js +289 -0
  38. package/dist/plugins/plugin-system-inline.js.map +1 -0
  39. package/dist/plugins/plugin-system.d.ts +65 -0
  40. package/dist/plugins/plugin-system.d.ts.map +1 -0
  41. package/dist/plugins/plugin-system.js +202 -0
  42. package/dist/plugins/plugin-system.js.map +1 -0
  43. package/dist/plugins/rehype/harden.d.ts +15 -0
  44. package/dist/plugins/rehype/harden.d.ts.map +1 -0
  45. package/dist/plugins/rehype/harden.js +71 -0
  46. package/dist/plugins/rehype/harden.js.map +1 -0
  47. package/dist/plugins/rehype/index.d.ts +5 -0
  48. package/dist/plugins/rehype/index.d.ts.map +1 -0
  49. package/dist/plugins/rehype/index.js +21 -0
  50. package/dist/plugins/rehype/index.js.map +1 -0
  51. package/dist/plugins/remark/index.d.ts +6 -0
  52. package/dist/plugins/remark/index.d.ts.map +1 -0
  53. package/dist/plugins/remark/index.js +22 -0
  54. package/dist/plugins/remark/index.js.map +1 -0
  55. package/dist/plugins/remark/math.d.ts +7 -0
  56. package/dist/plugins/remark/math.d.ts.map +1 -0
  57. package/dist/plugins/remark/math.js +22 -0
  58. package/dist/plugins/remark/math.js.map +1 -0
  59. package/dist/plugins/remark/mermaid.d.ts +7 -0
  60. package/dist/plugins/remark/mermaid.d.ts.map +1 -0
  61. package/dist/plugins/remark/mermaid.js +19 -0
  62. package/dist/plugins/remark/mermaid.js.map +1 -0
  63. package/dist/plugins/types.d.ts +72 -0
  64. package/dist/plugins/types.d.ts.map +1 -0
  65. package/dist/plugins/types.js +3 -0
  66. package/dist/plugins/types.js.map +1 -0
  67. package/dist/renderer/blessed-renderer.d.ts +92 -0
  68. package/dist/renderer/blessed-renderer.d.ts.map +1 -0
  69. package/dist/renderer/blessed-renderer.js +610 -0
  70. package/dist/renderer/blessed-renderer.js.map +1 -0
  71. package/dist/renderers/index.d.ts +7 -0
  72. package/dist/renderers/index.d.ts.map +1 -0
  73. package/dist/renderers/index.js +21 -0
  74. package/dist/renderers/index.js.map +1 -0
  75. package/dist/renderers/math-renderer.d.ts +49 -0
  76. package/dist/renderers/math-renderer.d.ts.map +1 -0
  77. package/dist/renderers/math-renderer.js +193 -0
  78. package/dist/renderers/math-renderer.js.map +1 -0
  79. package/dist/renderers/mermaid-ascii.d.ts +14 -0
  80. package/dist/renderers/mermaid-ascii.d.ts.map +1 -0
  81. package/dist/renderers/mermaid-ascii.js +260 -0
  82. package/dist/renderers/mermaid-ascii.js.map +1 -0
  83. package/dist/renderers/mermaid-renderer.d.ts +79 -0
  84. package/dist/renderers/mermaid-renderer.d.ts.map +1 -0
  85. package/dist/renderers/mermaid-renderer.js +298 -0
  86. package/dist/renderers/mermaid-renderer.js.map +1 -0
  87. package/dist/renderers/shiki-ansi.d.ts +48 -0
  88. package/dist/renderers/shiki-ansi.d.ts.map +1 -0
  89. package/dist/renderers/shiki-ansi.js +206 -0
  90. package/dist/renderers/shiki-ansi.js.map +1 -0
  91. package/dist/renderers/table-ascii.d.ts +30 -0
  92. package/dist/renderers/table-ascii.d.ts.map +1 -0
  93. package/dist/renderers/table-ascii.js +243 -0
  94. package/dist/renderers/table-ascii.js.map +1 -0
  95. package/dist/renderers/table-renderer.d.ts +49 -0
  96. package/dist/renderers/table-renderer.d.ts.map +1 -0
  97. package/dist/renderers/table-renderer.js +224 -0
  98. package/dist/renderers/table-renderer.js.map +1 -0
  99. package/dist/renderers/unicode-math.d.ts +29 -0
  100. package/dist/renderers/unicode-math.d.ts.map +1 -0
  101. package/dist/renderers/unicode-math.js +181 -0
  102. package/dist/renderers/unicode-math.js.map +1 -0
  103. package/dist/security/ansi-sanitizer.d.ts +71 -0
  104. package/dist/security/ansi-sanitizer.d.ts.map +1 -0
  105. package/dist/security/ansi-sanitizer.js +275 -0
  106. package/dist/security/ansi-sanitizer.js.map +1 -0
  107. package/dist/security/chunk-processor.d.ts +81 -0
  108. package/dist/security/chunk-processor.d.ts.map +1 -0
  109. package/dist/security/chunk-processor.js +297 -0
  110. package/dist/security/chunk-processor.js.map +1 -0
  111. package/dist/security/index.d.ts +6 -0
  112. package/dist/security/index.d.ts.map +1 -0
  113. package/dist/security/index.js +22 -0
  114. package/dist/security/index.js.map +1 -0
  115. package/dist/security/input-validator.d.ts +55 -0
  116. package/dist/security/input-validator.d.ts.map +1 -0
  117. package/dist/security/input-validator.js +201 -0
  118. package/dist/security/input-validator.js.map +1 -0
  119. package/dist/stream-protocol.d.ts +61 -0
  120. package/dist/stream-protocol.d.ts.map +1 -0
  121. package/dist/stream-protocol.js +214 -0
  122. package/dist/stream-protocol.js.map +1 -0
  123. package/dist/streamdown-compat.d.ts +74 -0
  124. package/dist/streamdown-compat.d.ts.map +1 -0
  125. package/dist/streamdown-compat.js +241 -0
  126. package/dist/streamdown-compat.js.map +1 -0
  127. package/dist/streaming/stream-stats.d.ts +97 -0
  128. package/dist/streaming/stream-stats.d.ts.map +1 -0
  129. package/dist/streaming/stream-stats.js +217 -0
  130. package/dist/streaming/stream-stats.js.map +1 -0
  131. package/dist/streaming-integration.d.ts +71 -0
  132. package/dist/streaming-integration.d.ts.map +1 -0
  133. package/dist/streaming-integration.js +194 -0
  134. package/dist/streaming-integration.js.map +1 -0
  135. package/dist/themes/index.d.ts +59 -0
  136. package/dist/themes/index.d.ts.map +1 -0
  137. package/dist/themes/index.js +122 -0
  138. package/dist/themes/index.js.map +1 -0
  139. package/dist/types/index.d.ts +222 -0
  140. package/dist/types/index.d.ts.map +1 -0
  141. package/dist/types/index.js +3 -0
  142. package/dist/types/index.js.map +1 -0
  143. package/dist/types/plugin-types.d.ts +5 -0
  144. package/dist/types/plugin-types.d.ts.map +1 -0
  145. package/dist/types/plugin-types.js +6 -0
  146. package/dist/types/plugin-types.js.map +1 -0
  147. package/dist/types/stream-events.d.ts +71 -0
  148. package/dist/types/stream-events.d.ts.map +1 -0
  149. package/dist/types/stream-events.js +10 -0
  150. package/dist/types/stream-events.js.map +1 -0
  151. package/dist/utils/blessed-syntax-highlighter.d.ts +124 -0
  152. package/dist/utils/blessed-syntax-highlighter.d.ts.map +1 -0
  153. package/dist/utils/blessed-syntax-highlighter.js +440 -0
  154. package/dist/utils/blessed-syntax-highlighter.js.map +1 -0
  155. package/dist/utils/enhanced-table-renderer.d.ts +77 -0
  156. package/dist/utils/enhanced-table-renderer.d.ts.map +1 -0
  157. package/dist/utils/enhanced-table-renderer.js +376 -0
  158. package/dist/utils/enhanced-table-renderer.js.map +1 -0
  159. package/dist/utils/formatting.d.ts +100 -0
  160. package/dist/utils/formatting.d.ts.map +1 -0
  161. package/dist/utils/formatting.js +220 -0
  162. package/dist/utils/formatting.js.map +1 -0
  163. package/dist/utils/index.d.ts +5 -0
  164. package/dist/utils/index.d.ts.map +1 -0
  165. package/dist/utils/index.js +21 -0
  166. package/dist/utils/index.js.map +1 -0
  167. package/dist/utils/math-unicode-renderer.d.ts +38 -0
  168. package/dist/utils/math-unicode-renderer.d.ts.map +1 -0
  169. package/dist/utils/math-unicode-renderer.js +380 -0
  170. package/dist/utils/math-unicode-renderer.js.map +1 -0
  171. package/dist/utils/mermaid-ascii-renderer.d.ts +20 -0
  172. package/dist/utils/mermaid-ascii-renderer.d.ts.map +1 -0
  173. package/dist/utils/mermaid-ascii-renderer.js +325 -0
  174. package/dist/utils/mermaid-ascii-renderer.js.map +1 -0
  175. package/dist/utils/mermaid-ascii.d.ts +53 -0
  176. package/dist/utils/mermaid-ascii.d.ts.map +1 -0
  177. package/dist/utils/mermaid-ascii.js +181 -0
  178. package/dist/utils/mermaid-ascii.js.map +1 -0
  179. package/dist/utils/shiki-ansi-renderer.d.ts +29 -0
  180. package/dist/utils/shiki-ansi-renderer.d.ts.map +1 -0
  181. package/dist/utils/shiki-ansi-renderer.js +354 -0
  182. package/dist/utils/shiki-ansi-renderer.js.map +1 -0
  183. package/dist/utils/syntax-highlighter.d.ts +87 -0
  184. package/dist/utils/syntax-highlighter.d.ts.map +1 -0
  185. package/dist/utils/syntax-highlighter.js +265 -0
  186. package/dist/utils/syntax-highlighter.js.map +1 -0
  187. package/dist/utils/table-formatter-inline.d.ts +37 -0
  188. package/dist/utils/table-formatter-inline.d.ts.map +1 -0
  189. package/dist/utils/table-formatter-inline.js +337 -0
  190. package/dist/utils/table-formatter-inline.js.map +1 -0
  191. package/dist/utils/table.d.ts +35 -0
  192. package/dist/utils/table.d.ts.map +1 -0
  193. package/dist/utils/table.js +197 -0
  194. package/dist/utils/table.js.map +1 -0
  195. package/dist/widgets/stream-indicator.d.ts +130 -0
  196. package/dist/widgets/stream-indicator.d.ts.map +1 -0
  197. package/dist/widgets/stream-indicator.js +276 -0
  198. package/dist/widgets/stream-indicator.js.map +1 -0
  199. package/package.json +75 -0
package/dist/errors.js ADDED
@@ -0,0 +1,346 @@
1
+ "use strict";
2
+ /**
3
+ * Comprehensive Error Handling
4
+ *
5
+ * This module provides enterprise-level error handling for streamtty,
6
+ * including custom error classes, graceful degradation, and safe rendering.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ErrorRecovery = exports.SafeOperation = exports.DefaultErrorHandler = exports.StreamttyPerformanceError = exports.StreamttyTTYError = exports.StreamttyConfigError = exports.StreamttyAISDKError = exports.StreamttyRenderError = exports.StreamttyParseError = exports.StreamttyError = void 0;
10
+ exports.setupGlobalErrorHandling = setupGlobalErrorHandling;
11
+ /**
12
+ * Base error class for all streamtty errors
13
+ */
14
+ class StreamttyError extends Error {
15
+ code;
16
+ timestamp;
17
+ context;
18
+ constructor(message, code = 'STREAMTTY_ERROR', context) {
19
+ super(message);
20
+ this.name = 'StreamttyError';
21
+ this.code = code;
22
+ this.timestamp = Date.now();
23
+ this.context = context;
24
+ // Maintain proper stack trace
25
+ if (Error.captureStackTrace) {
26
+ Error.captureStackTrace(this, StreamttyError);
27
+ }
28
+ }
29
+ }
30
+ exports.StreamttyError = StreamttyError;
31
+ /**
32
+ * Parser-related errors
33
+ */
34
+ class StreamttyParseError extends StreamttyError {
35
+ chunk;
36
+ position;
37
+ constructor(message, chunk, position, context) {
38
+ super(message, 'PARSE_ERROR', { chunk, position, ...context });
39
+ this.name = 'StreamttyParseError';
40
+ this.chunk = chunk;
41
+ this.position = position;
42
+ }
43
+ }
44
+ exports.StreamttyParseError = StreamttyParseError;
45
+ /**
46
+ * Renderer-related errors
47
+ */
48
+ class StreamttyRenderError extends StreamttyError {
49
+ tokens;
50
+ renderContext;
51
+ constructor(message, tokens, renderContext, context) {
52
+ super(message, 'RENDER_ERROR', { tokens, renderContext, ...context });
53
+ this.name = 'StreamttyRenderError';
54
+ this.tokens = tokens;
55
+ this.renderContext = renderContext;
56
+ }
57
+ }
58
+ exports.StreamttyRenderError = StreamttyRenderError;
59
+ /**
60
+ * AI SDK adapter errors
61
+ */
62
+ class StreamttyAISDKError extends StreamttyError {
63
+ event;
64
+ adapterContext;
65
+ constructor(message, event, adapterContext, context) {
66
+ super(message, 'AI_SDK_ERROR', { event, adapterContext, ...context });
67
+ this.name = 'StreamttyAISDKError';
68
+ this.event = event;
69
+ this.adapterContext = adapterContext;
70
+ }
71
+ }
72
+ exports.StreamttyAISDKError = StreamttyAISDKError;
73
+ /**
74
+ * Configuration errors
75
+ */
76
+ class StreamttyConfigError extends StreamttyError {
77
+ option;
78
+ value;
79
+ constructor(message, option, value, context) {
80
+ super(message, 'CONFIG_ERROR', { option, value, ...context });
81
+ this.name = 'StreamttyConfigError';
82
+ this.option = option;
83
+ this.value = value;
84
+ }
85
+ }
86
+ exports.StreamttyConfigError = StreamttyConfigError;
87
+ /**
88
+ * Blessed/TTY related errors
89
+ */
90
+ class StreamttyTTYError extends StreamttyError {
91
+ ttyOperation;
92
+ blessedContext;
93
+ constructor(message, ttyOperation, blessedContext, context) {
94
+ super(message, 'TTY_ERROR', { ttyOperation, blessedContext, ...context });
95
+ this.name = 'StreamttyTTYError';
96
+ this.ttyOperation = ttyOperation;
97
+ this.blessedContext = blessedContext;
98
+ }
99
+ }
100
+ exports.StreamttyTTYError = StreamttyTTYError;
101
+ /**
102
+ * Performance-related errors
103
+ */
104
+ class StreamttyPerformanceError extends StreamttyError {
105
+ operation;
106
+ duration;
107
+ threshold;
108
+ constructor(message, operation, duration, threshold, context) {
109
+ super(message, 'PERFORMANCE_ERROR', { operation, duration, threshold, ...context });
110
+ this.name = 'StreamttyPerformanceError';
111
+ this.operation = operation;
112
+ this.duration = duration;
113
+ this.threshold = threshold;
114
+ }
115
+ }
116
+ exports.StreamttyPerformanceError = StreamttyPerformanceError;
117
+ /**
118
+ * Default error handler implementation
119
+ */
120
+ class DefaultErrorHandler {
121
+ maxRetries = 3;
122
+ fallbackEnabled = true;
123
+ constructor(options = {}) {
124
+ this.maxRetries = options.maxRetries ?? 3;
125
+ this.fallbackEnabled = options.fallbackEnabled ?? true;
126
+ }
127
+ handle(error, context) {
128
+ const errorInfo = this.formatErrorInfo(error, context);
129
+ // Log error based on severity
130
+ if (this.isCriticalError(error)) {
131
+ console.error('🚨 Streamtty Critical Error:', errorInfo);
132
+ }
133
+ else if (this.isWarning(error)) {
134
+ console.warn('⚠️ Streamtty Warning:', errorInfo);
135
+ }
136
+ else {
137
+ console.log('ℹ️ Streamtty Info:', errorInfo);
138
+ }
139
+ }
140
+ shouldRetry(error, attempt) {
141
+ if (attempt >= this.maxRetries) {
142
+ return false;
143
+ }
144
+ // Don't retry critical errors
145
+ if (this.isCriticalError(error)) {
146
+ return false;
147
+ }
148
+ // Retry transient errors
149
+ if (error instanceof StreamttyParseError ||
150
+ error instanceof StreamttyRenderError) {
151
+ return true;
152
+ }
153
+ return false;
154
+ }
155
+ shouldFallback(error) {
156
+ if (!this.fallbackEnabled) {
157
+ return false;
158
+ }
159
+ // Fallback for rendering errors
160
+ if (error instanceof StreamttyRenderError) {
161
+ return true;
162
+ }
163
+ // Fallback for AI SDK errors
164
+ if (error instanceof StreamttyAISDKError) {
165
+ return true;
166
+ }
167
+ return false;
168
+ }
169
+ formatErrorInfo(error, context) {
170
+ const baseInfo = {
171
+ name: error.name,
172
+ message: error.message,
173
+ timestamp: new Date().toISOString()
174
+ };
175
+ if (error instanceof StreamttyError) {
176
+ return JSON.stringify({
177
+ ...baseInfo,
178
+ code: error.code,
179
+ context: error.context,
180
+ additionalContext: context
181
+ }, null, 2);
182
+ }
183
+ return JSON.stringify({
184
+ ...baseInfo,
185
+ additionalContext: context
186
+ }, null, 2);
187
+ }
188
+ isCriticalError(error) {
189
+ if (error instanceof StreamttyTTYError) {
190
+ return true;
191
+ }
192
+ if (error instanceof StreamttyConfigError) {
193
+ return true;
194
+ }
195
+ return false;
196
+ }
197
+ isWarning(error) {
198
+ if (error instanceof StreamttyPerformanceError) {
199
+ return true;
200
+ }
201
+ return false;
202
+ }
203
+ }
204
+ exports.DefaultErrorHandler = DefaultErrorHandler;
205
+ /**
206
+ * Safe operation wrapper
207
+ */
208
+ class SafeOperation {
209
+ errorHandler;
210
+ retryCount = 0;
211
+ constructor(errorHandler = new DefaultErrorHandler()) {
212
+ this.errorHandler = errorHandler;
213
+ }
214
+ /**
215
+ * Execute an operation with error handling and retry logic
216
+ */
217
+ async execute(operation, context) {
218
+ const maxAttempts = 3;
219
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
220
+ try {
221
+ const result = await operation();
222
+ this.retryCount = 0; // Reset on success
223
+ return result;
224
+ }
225
+ catch (error) {
226
+ const err = error instanceof Error ? error : new Error(String(error));
227
+ this.errorHandler.handle(err, { attempt, ...context });
228
+ if (this.errorHandler.shouldRetry(err, attempt) && attempt < maxAttempts - 1) {
229
+ // Exponential backoff
230
+ await this.delay(Math.pow(2, attempt) * 100);
231
+ continue;
232
+ }
233
+ if (this.errorHandler.shouldFallback(err)) {
234
+ return this.executeFallback(operation, err, context);
235
+ }
236
+ return null;
237
+ }
238
+ }
239
+ return null;
240
+ }
241
+ /**
242
+ * Execute with fallback
243
+ */
244
+ async executeFallback(operation, originalError, context) {
245
+ try {
246
+ // Implement fallback logic based on error type
247
+ if (originalError instanceof StreamttyRenderError) {
248
+ return this.fallbackRender(originalError, context);
249
+ }
250
+ if (originalError instanceof StreamttyAISDKError) {
251
+ return this.fallbackAISDK(originalError, context);
252
+ }
253
+ return null;
254
+ }
255
+ catch (fallbackError) {
256
+ const err = fallbackError instanceof Error ? fallbackError : new Error(String(fallbackError));
257
+ this.errorHandler.handle(err, {
258
+ type: 'fallback_failed',
259
+ originalError: originalError.message,
260
+ ...context
261
+ });
262
+ return null;
263
+ }
264
+ }
265
+ async fallbackRender(error, context) {
266
+ // Simple text fallback for render errors
267
+ if (error.tokens && Array.isArray(error.tokens)) {
268
+ return error.tokens
269
+ .filter(token => token && token.raw)
270
+ .map(token => token.raw)
271
+ .join(' ');
272
+ }
273
+ return null;
274
+ }
275
+ async fallbackAISDK(error, context) {
276
+ // Simple text fallback for AI SDK errors
277
+ if (error.event && error.event.content) {
278
+ return error.event.content;
279
+ }
280
+ return null;
281
+ }
282
+ delay(ms) {
283
+ return new Promise(resolve => setTimeout(resolve, ms));
284
+ }
285
+ }
286
+ exports.SafeOperation = SafeOperation;
287
+ /**
288
+ * Error recovery utilities
289
+ */
290
+ class ErrorRecovery {
291
+ /**
292
+ * Attempt to recover from a parsing error
293
+ */
294
+ static recoverFromParseError(error, content) {
295
+ if (!error.chunk) {
296
+ return content;
297
+ }
298
+ // Try to remove the problematic chunk
299
+ const recovered = content.replace(error.chunk, '[PARSE_ERROR]');
300
+ return recovered;
301
+ }
302
+ /**
303
+ * Attempt to recover from a render error
304
+ */
305
+ static recoverFromRenderError(error, content) {
306
+ // Simple text recovery
307
+ return content.replace(/[^\x20-\x7E\n\r\t]/g, '?');
308
+ }
309
+ /**
310
+ * Attempt to recover from an AI SDK error
311
+ */
312
+ static recoverFromAISDKError(error) {
313
+ if (error.event) {
314
+ switch (error.event.type) {
315
+ case 'text_delta':
316
+ return error.event.content || '';
317
+ case 'tool_call':
318
+ return `Tool: ${error.event.toolName}`;
319
+ case 'tool_result':
320
+ return 'Tool result received';
321
+ case 'thinking':
322
+ case 'reasoning':
323
+ return `Thinking: ${error.event.content || ''}`;
324
+ default:
325
+ return `Event: ${error.event.type}`;
326
+ }
327
+ }
328
+ return 'AI SDK error occurred';
329
+ }
330
+ }
331
+ exports.ErrorRecovery = ErrorRecovery;
332
+ /**
333
+ * Global error handler setup
334
+ */
335
+ function setupGlobalErrorHandling() {
336
+ process.on('uncaughtException', (error) => {
337
+ const handler = new DefaultErrorHandler();
338
+ handler.handle(error, { type: 'uncaughtException' });
339
+ });
340
+ process.on('unhandledRejection', (reason) => {
341
+ const handler = new DefaultErrorHandler();
342
+ const error = reason instanceof Error ? reason : new Error(String(reason));
343
+ handler.handle(error, { type: 'unhandledRejection' });
344
+ });
345
+ }
346
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Event-Driven Architecture
3
+ *
4
+ * This module provides a comprehensive event system for streamtty,
5
+ * enabling lifecycle hooks, custom event handling, and inter-component communication.
6
+ */
7
+ import { EventEmitter } from 'events';
8
+ import { StreamEvent } from './types/stream-events';
9
+ /**
10
+ * Streamtty event types
11
+ */
12
+ export type StreamttyEventType = 'streamtty:init' | 'streamtty:destroy' | 'streamtty:clear' | 'streamtty:render' | 'streamtty:error' | 'parser:chunk' | 'parser:complete' | 'parser:error' | 'renderer:start' | 'renderer:complete' | 'renderer:error' | 'ai:event' | 'ai:stream_start' | 'ai:stream_complete' | 'ai:stream_error' | 'ui:keypress' | 'ui:scroll' | 'ui:resize' | 'performance:slow' | 'performance:memory' | 'custom';
13
+ /**
14
+ * Event data interfaces
15
+ */
16
+ export interface StreamttyEventData {
17
+ timestamp: number;
18
+ source: string;
19
+ context?: Record<string, any>;
20
+ }
21
+ export interface ParserEventData extends StreamttyEventData {
22
+ chunk?: string;
23
+ tokens?: any[];
24
+ error?: Error;
25
+ }
26
+ export interface RendererEventData extends StreamttyEventData {
27
+ tokens?: any[];
28
+ duration?: number;
29
+ error?: Error;
30
+ }
31
+ export interface AIEventData extends StreamttyEventData {
32
+ event?: StreamEvent;
33
+ streamId?: string;
34
+ error?: Error;
35
+ }
36
+ export interface UIEventData extends StreamttyEventData {
37
+ key?: string;
38
+ direction?: 'up' | 'down' | 'left' | 'right';
39
+ delta?: number;
40
+ dimensions?: {
41
+ width: number;
42
+ height: number;
43
+ };
44
+ }
45
+ export interface PerformanceEventData extends StreamttyEventData {
46
+ operation: string;
47
+ duration: number;
48
+ threshold: number;
49
+ memoryUsage?: NodeJS.MemoryUsage;
50
+ }
51
+ /**
52
+ * Event handler types
53
+ */
54
+ export type StreamttyEventHandler<T = any> = (data: T) => void | Promise<void>;
55
+ export type StreamttyEventFilter<T = any> = (data: T) => boolean;
56
+ /**
57
+ * Enhanced EventEmitter for Streamtty
58
+ */
59
+ export declare class StreamttyEventEmitter extends EventEmitter {
60
+ private eventHistory;
61
+ private maxHistorySize;
62
+ private filters;
63
+ constructor(maxHistorySize?: number);
64
+ /**
65
+ * Emit an event with automatic timestamp and history tracking
66
+ */
67
+ emit(event: string, data?: any): boolean;
68
+ /**
69
+ * Add event listener with optional filter
70
+ */
71
+ on<T = any>(event: string, handler: StreamttyEventHandler<T>, filter?: StreamttyEventFilter<T>): this;
72
+ /**
73
+ * Add one-time event listener
74
+ */
75
+ once<T = any>(event: string, handler: StreamttyEventHandler<T>, filter?: StreamttyEventFilter<T>): this;
76
+ /**
77
+ * Add event filter
78
+ */
79
+ addFilter<T = any>(event: string, filter: StreamttyEventFilter<T>): this;
80
+ /**
81
+ * Remove event filter
82
+ */
83
+ removeFilter(event: string, filter?: StreamttyEventFilter): this;
84
+ /**
85
+ * Get event history
86
+ */
87
+ getHistory(event?: string, limit?: number): Array<{
88
+ type: string;
89
+ data: any;
90
+ timestamp: number;
91
+ }>;
92
+ /**
93
+ * Clear event history
94
+ */
95
+ clearHistory(): this;
96
+ /**
97
+ * Get event statistics
98
+ */
99
+ getEventStats(): Record<string, number>;
100
+ private shouldFilterEvent;
101
+ private addToHistory;
102
+ }
103
+ /**
104
+ * Event Bus for inter-component communication
105
+ */
106
+ export declare class StreamttyEventBus extends StreamttyEventEmitter {
107
+ private components;
108
+ /**
109
+ * Register a component
110
+ */
111
+ registerComponent(name: string, component: EventEmitter): this;
112
+ /**
113
+ * Unregister a component
114
+ */
115
+ unregisterComponent(name: string): this;
116
+ /**
117
+ * Get a registered component
118
+ */
119
+ getComponent<T extends EventEmitter = EventEmitter>(name: string): T | undefined;
120
+ /**
121
+ * Broadcast event to all components
122
+ */
123
+ broadcast(event: string, data?: any): this;
124
+ }
125
+ /**
126
+ * Lifecycle event manager
127
+ */
128
+ export declare class StreamttyLifecycle {
129
+ private eventBus;
130
+ private hooks;
131
+ constructor(eventBus: StreamttyEventBus);
132
+ /**
133
+ * Register a lifecycle hook
134
+ */
135
+ on(event: StreamttyEventType, handler: StreamttyEventHandler): this;
136
+ /**
137
+ * Remove a lifecycle hook
138
+ */
139
+ off(event: StreamttyEventType, handler: StreamttyEventHandler): this;
140
+ /**
141
+ * Trigger a lifecycle event
142
+ */
143
+ trigger(event: StreamttyEventType, data?: any): Promise<void>;
144
+ /**
145
+ * Trigger multiple lifecycle events
146
+ */
147
+ triggerMultiple(events: Array<{
148
+ event: StreamttyEventType;
149
+ data?: any;
150
+ }>): Promise<void>;
151
+ }
152
+ /**
153
+ * Event utilities
154
+ */
155
+ export declare class EventUtils {
156
+ /**
157
+ * Create a debounced event handler
158
+ */
159
+ static debounce<T>(handler: StreamttyEventHandler<T>, delay: number): StreamttyEventHandler<T>;
160
+ /**
161
+ * Create a throttled event handler
162
+ */
163
+ static throttle<T>(handler: StreamttyEventHandler<T>, delay: number): StreamttyEventHandler<T>;
164
+ /**
165
+ * Create a retry event handler
166
+ */
167
+ static retry<T>(handler: StreamttyEventHandler<T>, maxRetries?: number, delay?: number): StreamttyEventHandler<T>;
168
+ /**
169
+ * Create a conditional event handler
170
+ */
171
+ static conditional<T>(condition: (data: T) => boolean, handler: StreamttyEventHandler<T>): StreamttyEventHandler<T>;
172
+ /**
173
+ * Create a chain of event handlers
174
+ */
175
+ static chain<T>(...handlers: StreamttyEventHandler<T>[]): StreamttyEventHandler<T>;
176
+ }
177
+ /**
178
+ * Global event bus instance
179
+ */
180
+ export declare const globalEventBus: StreamttyEventBus;
181
+ /**
182
+ * Setup global error handling for events
183
+ */
184
+ export declare function setupEventErrorHandling(): void;
185
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}