@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/index.js ADDED
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.StreamProtocol = exports.AISDKStreamAdapter = exports.BlessedRenderer = exports.StreamingMarkdownParser = exports.Streamtty = void 0;
21
+ const blessed_1 = __importDefault(require("blessed"));
22
+ const streaming_parser_1 = require("./parser/streaming-parser");
23
+ const blessed_renderer_1 = require("./renderer/blessed-renderer");
24
+ const ai_sdk_adapter_1 = require("./ai-sdk-adapter");
25
+ const plugin_system_inline_1 = require("./plugins/plugin-system-inline");
26
+ const ansi_sanitizer_1 = require("./security/ansi-sanitizer");
27
+ const themes_1 = require("./themes");
28
+ class Streamtty {
29
+ parser;
30
+ renderer;
31
+ context;
32
+ updateInterval = null;
33
+ pendingUpdate = false;
34
+ aiAdapter;
35
+ pluginRegistry = null;
36
+ constructor(options = {}) {
37
+ const screen = options.screen || this.createDefaultScreen();
38
+ const container = options.container || this.createContainer(screen);
39
+ // Apply theme if specified
40
+ const theme = options.theme ? (0, themes_1.getTheme)(options.theme) : null;
41
+ const styles = theme ? { ...theme.markdown, ...options.styles } : options.styles;
42
+ const defaultOptions = {
43
+ parseIncompleteMarkdown: options.parseIncompleteMarkdown ?? true,
44
+ styles: styles || {},
45
+ syntaxHighlight: options.syntaxHighlight ?? true,
46
+ showLineNumbers: options.showLineNumbers ?? false,
47
+ maxWidth: options.maxWidth ?? 120,
48
+ gfm: options.gfm ?? true,
49
+ screen,
50
+ container,
51
+ autoScroll: options.autoScroll ?? false,
52
+ remarkPlugins: options.remarkPlugins || [],
53
+ rehypePlugins: options.rehypePlugins || [],
54
+ theme: options.theme || 'auto',
55
+ shikiLanguages: options.shikiLanguages || [],
56
+ controls: options.controls || false,
57
+ mermaidConfig: options.mermaidConfig || {},
58
+ mathConfig: options.mathConfig || {},
59
+ security: options.security || {},
60
+ enhancedFeatures: options.enhancedFeatures || {},
61
+ isStreaming: options.isStreaming || false,
62
+ components: options.components || {},
63
+ };
64
+ const buffer = {
65
+ content: '',
66
+ tokens: [],
67
+ lastUpdate: Date.now(),
68
+ };
69
+ this.context = {
70
+ screen,
71
+ container,
72
+ options: defaultOptions,
73
+ buffer,
74
+ };
75
+ this.parser = new streaming_parser_1.StreamingMarkdownParser(defaultOptions.parseIncompleteMarkdown);
76
+ this.renderer = new blessed_renderer_1.BlessedRenderer(this.context);
77
+ // Initialize AI SDK adapter
78
+ this.aiAdapter = new ai_sdk_adapter_1.AISDKStreamAdapter(this, {
79
+ parseIncompleteMarkdown: defaultOptions.parseIncompleteMarkdown,
80
+ syntaxHighlight: defaultOptions.syntaxHighlight,
81
+ formatToolCalls: true,
82
+ showThinking: true,
83
+ maxToolResultLength: 200,
84
+ renderTimestamps: false
85
+ });
86
+ // Initialize enhanced features with new plugin system
87
+ this.initializeEnhancedFeatures();
88
+ }
89
+ /**
90
+ * Initialize enhanced features with new plugin system
91
+ */
92
+ async initializeEnhancedFeatures() {
93
+ const options = this.context.options;
94
+ // Skip if no features enabled
95
+ if (!options.enhancedFeatures || Object.values(options.enhancedFeatures).every(v => !v)) {
96
+ return;
97
+ }
98
+ // Create plugin registry
99
+ this.pluginRegistry = (0, plugin_system_inline_1.createDefaultRegistry)();
100
+ await this.pluginRegistry.init();
101
+ }
102
+ /**
103
+ * Create default blessed screen
104
+ */
105
+ createDefaultScreen() {
106
+ return blessed_1.default.screen({
107
+ smartCSR: true,
108
+ title: 'Streamtty',
109
+ autoPadding: true,
110
+ warnings: false,
111
+ });
112
+ }
113
+ /**
114
+ * Create scrollable container
115
+ */
116
+ createContainer(screen) {
117
+ return blessed_1.default.box({
118
+ parent: screen,
119
+ top: 0,
120
+ left: 0,
121
+ width: '100%',
122
+ height: '100%',
123
+ border: {
124
+ type: 'line',
125
+ },
126
+ style: {
127
+ border: {
128
+ fg: 'blue',
129
+ },
130
+ },
131
+ scrollable: true,
132
+ alwaysScroll: true,
133
+ keys: true,
134
+ vi: true,
135
+ mouse: true,
136
+ scrollbar: {
137
+ ch: '█',
138
+ style: {
139
+ fg: 'blue',
140
+ },
141
+ },
142
+ });
143
+ }
144
+ /**
145
+ * Stream a chunk of markdown
146
+ */
147
+ async stream(chunk) {
148
+ // Sanitize input if security is enabled
149
+ const sanitizedChunk = this.context.options.security?.enabled
150
+ ? (0, ansi_sanitizer_1.sanitizeForTerminal)(chunk)
151
+ : chunk;
152
+ this.context.buffer.content += sanitizedChunk;
153
+ this.context.buffer.lastUpdate = Date.now();
154
+ // Parse the new content
155
+ const tokens = this.parser.addChunk(sanitizedChunk);
156
+ this.context.buffer.tokens = tokens;
157
+ // Schedule a render
158
+ this.scheduleRender();
159
+ }
160
+ /**
161
+ * Set complete markdown content
162
+ */
163
+ setContent(markdown) {
164
+ this.context.buffer.content = markdown;
165
+ this.context.buffer.lastUpdate = Date.now();
166
+ // Clear parser buffer and add all content
167
+ this.parser = new streaming_parser_1.StreamingMarkdownParser(this.context.options.parseIncompleteMarkdown);
168
+ const tokens = this.parser.addChunk(markdown);
169
+ this.context.buffer.tokens = tokens;
170
+ this.scheduleRender();
171
+ }
172
+ /**
173
+ * Schedule a render (debounced)
174
+ */
175
+ scheduleRender() {
176
+ if (this.pendingUpdate) {
177
+ return;
178
+ }
179
+ this.pendingUpdate = true;
180
+ setTimeout(() => {
181
+ this.render();
182
+ this.pendingUpdate = false;
183
+ }, 50);
184
+ }
185
+ /**
186
+ * Render current tokens
187
+ */
188
+ async render() {
189
+ try {
190
+ await this.renderer.render(this.context.buffer.tokens);
191
+ if (this.context.options.autoScroll) {
192
+ this.context.container.setScrollPerc(100);
193
+ }
194
+ }
195
+ catch (error) {
196
+ console.error('Render error:', error);
197
+ }
198
+ }
199
+ /**
200
+ * Clear all content
201
+ */
202
+ clear() {
203
+ this.context.buffer.content = '';
204
+ this.context.buffer.tokens = [];
205
+ this.context.buffer.lastUpdate = Date.now();
206
+ this.context.container.setContent('');
207
+ this.context.screen.render();
208
+ }
209
+ /**
210
+ * Start auto-rendering
211
+ */
212
+ startAutoRender(intervalMs = 50) {
213
+ this.stopAutoRender();
214
+ this.updateInterval = setInterval(() => {
215
+ this.render();
216
+ }, intervalMs);
217
+ }
218
+ /**
219
+ * Stop auto-rendering
220
+ */
221
+ stopAutoRender() {
222
+ if (this.updateInterval) {
223
+ clearInterval(this.updateInterval);
224
+ this.updateInterval = null;
225
+ }
226
+ }
227
+ /**
228
+ * Get blessed screen instance
229
+ */
230
+ getScreen() {
231
+ return this.context.screen;
232
+ }
233
+ /**
234
+ * Get container box
235
+ */
236
+ getContainer() {
237
+ return this.context.container;
238
+ }
239
+ /**
240
+ * Get current buffer content
241
+ */
242
+ getContent() {
243
+ return this.context.buffer.content;
244
+ }
245
+ /**
246
+ * Get plugin registry for advanced usage
247
+ */
248
+ getPluginRegistry() {
249
+ return this.pluginRegistry;
250
+ }
251
+ /**
252
+ * Stream a structured AI SDK event
253
+ */
254
+ async streamEvent(event) {
255
+ await this.aiAdapter.processEvent(event);
256
+ }
257
+ /**
258
+ * Stream multiple AI SDK events
259
+ */
260
+ async streamEvents(events) {
261
+ for await (const event of events) {
262
+ await this.streamEvent(event);
263
+ }
264
+ }
265
+ /**
266
+ * Handle AI SDK stream with adapter
267
+ */
268
+ async *handleAISDKStream(stream) {
269
+ for await (const event of stream) {
270
+ await this.streamEvent(event);
271
+ yield;
272
+ }
273
+ }
274
+ /**
275
+ * Update AI SDK adapter options
276
+ */
277
+ updateAIOptions(options) {
278
+ this.aiAdapter.updateOptions(options);
279
+ }
280
+ /**
281
+ * Get AI SDK adapter options
282
+ */
283
+ getAIOptions() {
284
+ return this.aiAdapter.getOptions();
285
+ }
286
+ /**
287
+ * Destroy and cleanup
288
+ */
289
+ async destroy() {
290
+ this.stopAutoRender();
291
+ if (this.pluginRegistry) {
292
+ await this.pluginRegistry.destroy();
293
+ }
294
+ this.context.screen.destroy();
295
+ }
296
+ }
297
+ exports.Streamtty = Streamtty;
298
+ // Re-export all types and utilities
299
+ __exportStar(require("./types"), exports);
300
+ __exportStar(require("./types/stream-events"), exports);
301
+ var streaming_parser_2 = require("./parser/streaming-parser");
302
+ Object.defineProperty(exports, "StreamingMarkdownParser", { enumerable: true, get: function () { return streaming_parser_2.StreamingMarkdownParser; } });
303
+ var blessed_renderer_2 = require("./renderer/blessed-renderer");
304
+ Object.defineProperty(exports, "BlessedRenderer", { enumerable: true, get: function () { return blessed_renderer_2.BlessedRenderer; } });
305
+ var ai_sdk_adapter_2 = require("./ai-sdk-adapter");
306
+ Object.defineProperty(exports, "AISDKStreamAdapter", { enumerable: true, get: function () { return ai_sdk_adapter_2.AISDKStreamAdapter; } });
307
+ var stream_protocol_1 = require("./stream-protocol");
308
+ Object.defineProperty(exports, "StreamProtocol", { enumerable: true, get: function () { return stream_protocol_1.StreamProtocol; } });
309
+ __exportStar(require("./streamdown-compat"), exports);
310
+ __exportStar(require("./errors"), exports);
311
+ __exportStar(require("./events"), exports);
312
+ __exportStar(require("./performance"), exports);
313
+ __exportStar(require("./themes"), exports);
314
+ __exportStar(require("./utils/shiki-ansi-renderer"), exports);
315
+ __exportStar(require("./utils/math-unicode-renderer"), exports);
316
+ __exportStar(require("./utils/mermaid-ascii-renderer"), exports);
317
+ __exportStar(require("./utils/table-formatter-inline"), exports);
318
+ __exportStar(require("./utils/syntax-highlighter"), exports);
319
+ __exportStar(require("./streaming/stream-stats"), exports);
320
+ __exportStar(require("./widgets/stream-indicator"), exports);
321
+ __exportStar(require("./plugins/plugin-system-inline"), exports);
322
+ __exportStar(require("./security/ansi-sanitizer"), exports);
323
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { ParsedToken } from '../types';
2
+ export declare class StreamingMarkdownParser {
3
+ private buffer;
4
+ private tokens;
5
+ private parseIncomplete;
6
+ constructor(parseIncomplete?: boolean);
7
+ /**
8
+ * Add chunk to buffer and parse
9
+ */
10
+ addChunk(chunk: string): ParsedToken[];
11
+ /**
12
+ * Preprocess text to handle HTML entities and custom tags
13
+ * NOTE: ANSI codes are preserved for terminal color rendering
14
+ */
15
+ private preprocessText;
16
+ /**
17
+ * Parse current buffer for blessed rendering
18
+ */
19
+ parse(): ParsedToken[];
20
+ /**
21
+ * Process tokens with enhanced diagram detection
22
+ */
23
+ private processTokensWithDiagramDetection;
24
+ /**
25
+ * Check if code looks like mermaid syntax
26
+ */
27
+ private looksLikeMermaidCode;
28
+ /**
29
+ * Convert table token to markdown format
30
+ */
31
+ private convertTableTokenToMarkdown;
32
+ /**
33
+ * Parse inline formatting from text that wasn't processed by marked.js
34
+ */
35
+ private parseInlineFromText;
36
+ /**
37
+ * Process tokens to extract inline formatting
38
+ */
39
+ private processInlineTokens;
40
+ /**
41
+ * Flatten inline tokens recursively
42
+ */
43
+ private flattenInlineTokens;
44
+ /**
45
+ * Parse partial/incomplete markdown
46
+ */
47
+ private parsePartial;
48
+ /**
49
+ * Parse a single line that might be incomplete
50
+ */
51
+ private parseIncompleteLine;
52
+ /**
53
+ * Handle incomplete markdown patterns
54
+ */
55
+ private handleIncompleteMarkdown;
56
+ /**
57
+ * Parse inline formatting (bold, italic, code, links)
58
+ */
59
+ private parseInlineFormatting;
60
+ /**
61
+ * Convert marked tokens to our format
62
+ */
63
+ private convertTokens;
64
+ /**
65
+ * Convert a single marked token
66
+ */
67
+ private convertToken;
68
+ /**
69
+ * Clear buffer
70
+ */
71
+ clear(): void;
72
+ /**
73
+ * Get current buffer
74
+ */
75
+ getBuffer(): string;
76
+ /**
77
+ * Get current tokens
78
+ */
79
+ getTokens(): ParsedToken[];
80
+ }
81
+ //# sourceMappingURL=streaming-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-parser.d.ts","sourceRoot":"","sources":["../../src/parser/streaming-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAa,MAAM,UAAU,CAAC;AAKlD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAU;gBAErB,eAAe,GAAE,OAAc;IAU3C;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;IAO7C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmCtB;;OAEG;IACI,KAAK,IAAI,WAAW,EAAE;IAoB7B;;OAEG;IACH,OAAO,CAAC,iCAAiC;IA2BzC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqCnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyE3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+C3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqHpB;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,SAAS,IAAI,MAAM;IAI1B;;OAEG;IACI,SAAS,IAAI,WAAW,EAAE;CAGlC"}