@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
@@ -0,0 +1,325 @@
1
+ "use strict";
2
+ /**
3
+ * Mermaid to ASCII Art Renderer
4
+ * Converts Mermaid diagram syntax to beautiful ASCII art
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.renderMermaidToASCII = renderMermaidToASCII;
8
+ exports.isMermaidCode = isMermaidCode;
9
+ exports.formatMermaidCode = formatMermaidCode;
10
+ /**
11
+ * Parse Mermaid flowchart syntax
12
+ */
13
+ function parseFlowchart(code) {
14
+ const lines = code.split('\n');
15
+ const nodes = [];
16
+ const connections = [];
17
+ for (const line of lines) {
18
+ const trimmed = line.trim();
19
+ if (!trimmed || trimmed.startsWith('%%'))
20
+ continue;
21
+ // Skip graph definition line
22
+ if (/^(graph|flowchart)/.test(trimmed))
23
+ continue;
24
+ // Parse node definitions: ID[Label]
25
+ const nodeMatch = trimmed.match(/(\w+)\[([^\]]+)\]/);
26
+ if (nodeMatch) {
27
+ const [, id, label] = nodeMatch;
28
+ nodes.push({
29
+ id,
30
+ label: label.trim(),
31
+ shape: 'box',
32
+ });
33
+ }
34
+ // Parse node with shapes: ID{Label} (diamond)
35
+ const diamondMatch = trimmed.match(/(\w+)\{([^\}]+)\}/);
36
+ if (diamondMatch) {
37
+ const [, id, label] = diamondMatch;
38
+ nodes.push({
39
+ id,
40
+ label: label.trim(),
41
+ shape: 'diamond',
42
+ });
43
+ }
44
+ // Parse connections: A --> B
45
+ const connMatch = trimmed.match(/(\w+)\s*--[>|-]*\s*(\w+)/);
46
+ if (connMatch) {
47
+ const [, from, to] = connMatch;
48
+ // Extract label if present: A -->|label| B
49
+ const labelMatch = trimmed.match(/--\|([^|]+)\|/);
50
+ connections.push({
51
+ from,
52
+ to,
53
+ label: labelMatch ? labelMatch[1].trim() : undefined,
54
+ });
55
+ }
56
+ }
57
+ return { nodes, connections };
58
+ }
59
+ /**
60
+ * Draw a single node in ASCII
61
+ */
62
+ function drawNode(node, width = 15) {
63
+ const padding = 2;
64
+ const maxLabelWidth = width - padding * 2;
65
+ // Wrap label if too long
66
+ const lines = [];
67
+ let currentLine = '';
68
+ for (const word of node.label.split(' ')) {
69
+ if ((currentLine + ' ' + word).length <= maxLabelWidth) {
70
+ currentLine += (currentLine ? ' ' : '') + word;
71
+ }
72
+ else {
73
+ if (currentLine)
74
+ lines.push(currentLine);
75
+ currentLine = word;
76
+ }
77
+ }
78
+ if (currentLine)
79
+ lines.push(currentLine);
80
+ const boxLines = [];
81
+ const boxWidth = Math.max(width, Math.max(...lines.map(l => l.length)) + padding * 2);
82
+ if (node.shape === 'diamond') {
83
+ // Diamond shape
84
+ boxLines.push(' ' + '◇'.repeat(boxWidth / 2));
85
+ for (const line of lines) {
86
+ boxLines.push(line.padStart(line.length + padding).padEnd(boxWidth));
87
+ }
88
+ boxLines.push(' ' + '◇'.repeat(boxWidth / 2));
89
+ }
90
+ else {
91
+ // Box shape (default)
92
+ boxLines.push('┌' + '─'.repeat(boxWidth - 2) + '┐');
93
+ for (const line of lines) {
94
+ boxLines.push('│ ' + line.padEnd(boxWidth - 4) + ' │');
95
+ }
96
+ boxLines.push('└' + '─'.repeat(boxWidth - 2) + '┘');
97
+ }
98
+ return boxLines;
99
+ }
100
+ /**
101
+ * Simple flowchart layout
102
+ */
103
+ function layoutFlowchart(nodes, connections) {
104
+ const layout = new Map();
105
+ if (nodes.length === 0)
106
+ return layout;
107
+ // Calculate node positions
108
+ const nodeWidth = 15;
109
+ const nodeHeight = 5;
110
+ const spacing = 5;
111
+ let currentY = 2;
112
+ // Simple linear layout (could be improved with graph layout algorithms)
113
+ for (let i = 0; i < nodes.length; i++) {
114
+ const node = nodes[i];
115
+ const lines = drawNode(node, nodeWidth);
116
+ layout.set(node.id, {
117
+ x: 5,
118
+ y: currentY,
119
+ lines,
120
+ });
121
+ currentY += lines.length + spacing + 2;
122
+ }
123
+ return layout;
124
+ }
125
+ /**
126
+ * Render flowchart to ASCII
127
+ */
128
+ function renderFlowchartASCII(code) {
129
+ const { nodes, connections } = parseFlowchart(code);
130
+ if (nodes.length === 0) {
131
+ return '[Mermaid Diagram - No nodes found]';
132
+ }
133
+ const layout = layoutFlowchart(nodes, connections);
134
+ // Calculate canvas size
135
+ let maxX = 0;
136
+ let maxY = 0;
137
+ for (const [, pos] of layout) {
138
+ maxX = Math.max(maxX, pos.x + 20);
139
+ maxY = Math.max(maxY, pos.y + pos.lines.length + 2);
140
+ }
141
+ // Initialize canvas
142
+ const canvas = Array(maxY)
143
+ .fill(null)
144
+ .map(() => Array(maxX).fill(' '));
145
+ // Draw nodes
146
+ for (const [nodeId, pos] of layout) {
147
+ for (let i = 0; i < pos.lines.length; i++) {
148
+ const line = pos.lines[i];
149
+ for (let j = 0; j < line.length && j < maxX - pos.x; j++) {
150
+ canvas[pos.y + i][pos.x + j] = line[j];
151
+ }
152
+ }
153
+ }
154
+ // Draw connections
155
+ for (const conn of connections) {
156
+ const from = layout.get(conn.from);
157
+ const to = layout.get(conn.to);
158
+ if (from && to) {
159
+ drawConnection(canvas, from, to, conn.label);
160
+ }
161
+ }
162
+ // Convert canvas to string
163
+ return canvas.map(row => row.join('')).join('\n');
164
+ }
165
+ /**
166
+ * Draw connection between two nodes
167
+ */
168
+ function drawConnection(canvas, from, to, label) {
169
+ const fromY = from.y + from.lines.length;
170
+ const toY = to.y;
171
+ // Draw vertical line
172
+ for (let y = fromY; y < toY; y++) {
173
+ if (y >= 0 && y < canvas.length) {
174
+ canvas[y][from.x + 7] = '│';
175
+ }
176
+ }
177
+ // Draw arrow
178
+ if (toY > fromY && from.x + 7 < canvas[toY - 1].length) {
179
+ canvas[toY - 1][from.x + 7] = '▼';
180
+ }
181
+ }
182
+ /**
183
+ * Simple sequence diagram to ASCII
184
+ */
185
+ function renderSequenceASCII(code) {
186
+ const lines = code.split('\n');
187
+ const actors = [];
188
+ const messages = [];
189
+ for (const line of lines) {
190
+ const trimmed = line.trim();
191
+ // Parse actor lines
192
+ if (trimmed.startsWith('participant ')) {
193
+ const actor = trimmed.replace('participant', '').trim();
194
+ if (actor && !actors.includes(actor)) {
195
+ actors.push(actor);
196
+ }
197
+ }
198
+ // Parse messages: A->>B: message
199
+ const msgMatch = trimmed.match(/(\w+)\s*-*>+\s*(\w+)\s*:\s*(.+)/);
200
+ if (msgMatch) {
201
+ const [, from, to, msg] = msgMatch;
202
+ messages.push({ from, to, msg });
203
+ }
204
+ }
205
+ if (actors.length === 0) {
206
+ return '[Sequence Diagram - No participants]';
207
+ }
208
+ // Render sequence diagram
209
+ const result = [];
210
+ const colWidth = 15;
211
+ // Header with actors
212
+ let header = '';
213
+ for (const actor of actors) {
214
+ header += actor.padEnd(colWidth);
215
+ }
216
+ result.push(header);
217
+ // Separator
218
+ result.push('─'.repeat(header.length));
219
+ // Messages
220
+ for (const msg of messages) {
221
+ const fromIdx = actors.indexOf(msg.from);
222
+ const toIdx = actors.indexOf(msg.to);
223
+ if (fromIdx >= 0 && toIdx >= 0) {
224
+ let line = ' '.repeat(fromIdx * colWidth);
225
+ const arrow = fromIdx < toIdx ? '─>' : '<─';
226
+ const arrowCount = Math.abs(toIdx - fromIdx);
227
+ line += arrow + '─'.repeat(arrowCount * colWidth - 3);
228
+ line += ` ${msg.msg}`;
229
+ result.push(line);
230
+ }
231
+ }
232
+ return result.join('\n');
233
+ }
234
+ /**
235
+ * Simple Gantt chart to ASCII
236
+ */
237
+ function renderGanttASCII(code) {
238
+ const lines = code.split('\n');
239
+ const tasks = [];
240
+ for (const line of lines) {
241
+ const trimmed = line.trim();
242
+ // Parse tasks
243
+ const taskMatch = trimmed.match(/(\w+)\s*:\s*(\d{4}-\d{2}-\d{2})\s*,\s*(\d{4}-\d{2}-\d{2})/);
244
+ if (taskMatch) {
245
+ const [, name, start, end] = taskMatch;
246
+ tasks.push({ name, start, end });
247
+ }
248
+ }
249
+ if (tasks.length === 0) {
250
+ return '[Gantt Chart - No tasks]';
251
+ }
252
+ // Render Gantt
253
+ const result = [];
254
+ result.push('Gantt Chart');
255
+ result.push('─'.repeat(50));
256
+ for (const task of tasks) {
257
+ const nameCol = task.name.padEnd(15);
258
+ const bar = '█'.repeat(20);
259
+ result.push(`${nameCol} │${bar}│`);
260
+ }
261
+ return result.join('\n');
262
+ }
263
+ /**
264
+ * Main rendering function
265
+ */
266
+ function renderMermaidToASCII(mermaidCode, options) {
267
+ if (!mermaidCode || mermaidCode.trim().length === 0) {
268
+ return '[Empty Mermaid Diagram]';
269
+ }
270
+ const code = mermaidCode.trim();
271
+ try {
272
+ // Detect diagram type
273
+ if (code.match(/^(graph|flowchart)/m)) {
274
+ return renderFlowchartASCII(code);
275
+ }
276
+ else if (code.match(/sequenceDiagram/m)) {
277
+ return renderSequenceASCII(code);
278
+ }
279
+ else if (code.match(/^gantt/m)) {
280
+ return renderGanttASCII(code);
281
+ }
282
+ else {
283
+ // Fallback: try as flowchart
284
+ return renderFlowchartASCII(code);
285
+ }
286
+ }
287
+ catch (error) {
288
+ console.warn('Mermaid rendering error:', error);
289
+ return `[Mermaid Diagram - Parse Error]\n\n${code}`;
290
+ }
291
+ }
292
+ /**
293
+ * Detect if code is Mermaid syntax
294
+ */
295
+ function isMermaidCode(code) {
296
+ if (!code)
297
+ return false;
298
+ const mermaidKeywords = [
299
+ 'graph',
300
+ 'flowchart',
301
+ 'sequenceDiagram',
302
+ 'classDiagram',
303
+ 'stateDiagram',
304
+ 'erDiagram',
305
+ 'journey',
306
+ 'gantt',
307
+ 'pie',
308
+ 'gitGraph',
309
+ ];
310
+ const trimmed = code.trim().toLowerCase();
311
+ return mermaidKeywords.some(keyword => trimmed.startsWith(keyword.toLowerCase()));
312
+ }
313
+ /**
314
+ * Format mermaid code for better readability
315
+ */
316
+ function formatMermaidCode(code) {
317
+ // Normalize whitespace
318
+ let formatted = code
319
+ .split('\n')
320
+ .map(line => line.trim())
321
+ .filter(line => line && !line.startsWith('%%'))
322
+ .join('\n');
323
+ return formatted;
324
+ }
325
+ //# sourceMappingURL=mermaid-ascii-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-ascii-renderer.js","sourceRoot":"","sources":["../../src/utils/mermaid-ascii-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export interface MermaidASCIIOptions {
2
+ paddingX?: number;
3
+ paddingY?: number;
4
+ borderPadding?: number;
5
+ ascii?: boolean;
6
+ coords?: boolean;
7
+ }
8
+ /**
9
+ * Wrapper for mermaid-ascii binary integration
10
+ * Converts Mermaid diagrams to ASCII art using the external mermaid-ascii tool
11
+ */
12
+ export declare class MermaidASCIIWrapper {
13
+ private binaryPath;
14
+ private tempDir;
15
+ constructor(binaryPath?: string);
16
+ /**
17
+ * Convert mermaid code to ASCII diagram
18
+ */
19
+ convertToASCII(mermaidCode: string, options?: MermaidASCIIOptions): Promise<string>;
20
+ /**
21
+ * Build command line arguments for mermaid-ascii
22
+ */
23
+ private buildCommandArgs;
24
+ /**
25
+ * Check if mermaid-ascii binary is available
26
+ */
27
+ isBinaryAvailable(): Promise<boolean>;
28
+ /**
29
+ * Generate fallback ASCII diagram when mermaid-ascii is not available
30
+ */
31
+ private getFallbackDiagram;
32
+ /**
33
+ * Check if content looks like a mermaid diagram
34
+ */
35
+ static isMermaidCode(content: string): boolean;
36
+ /**
37
+ * Extract mermaid code from markdown code block
38
+ */
39
+ static extractMermaidFromMarkdown(markdown: string): string | null;
40
+ }
41
+ /**
42
+ * Singleton instance with default settings
43
+ */
44
+ export declare const mermaidASCII: MermaidASCIIWrapper;
45
+ /**
46
+ * Quick conversion function for mermaid code
47
+ */
48
+ export declare function convertMermaidToASCII(mermaidCode: string, options?: MermaidASCIIOptions): Promise<string>;
49
+ /**
50
+ * Check if mermaid-ascii binary is available on the system
51
+ */
52
+ export declare function isMermaidASCIIAvailable(): Promise<boolean>;
53
+ //# sourceMappingURL=mermaid-ascii.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-ascii.d.ts","sourceRoot":"","sources":["../../src/utils/mermaid-ascii.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,CAAC,EAAE,MAAM;IAY/B;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IA6C7F;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAS3C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAuB9C;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAWnE;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,qBAA4B,CAAC;AAEtD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEhE"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mermaidASCII = exports.MermaidASCIIWrapper = void 0;
4
+ exports.convertMermaidToASCII = convertMermaidToASCII;
5
+ exports.isMermaidASCIIAvailable = isMermaidASCIIAvailable;
6
+ const child_process_1 = require("child_process");
7
+ const util_1 = require("util");
8
+ const fs_1 = require("fs");
9
+ const os_1 = require("os");
10
+ const path_1 = require("path");
11
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
12
+ /**
13
+ * Wrapper for mermaid-ascii binary integration
14
+ * Converts Mermaid diagrams to ASCII art using the external mermaid-ascii tool
15
+ */
16
+ class MermaidASCIIWrapper {
17
+ binaryPath;
18
+ tempDir;
19
+ constructor(binaryPath) {
20
+ this.binaryPath = binaryPath || 'npx mermaid-ascii';
21
+ this.tempDir = (0, path_1.join)((0, os_1.tmpdir)(), 'streamtty-mermaid');
22
+ // Ensure temp directory exists
23
+ try {
24
+ (0, fs_1.mkdirSync)(this.tempDir, { recursive: true });
25
+ }
26
+ catch (error) {
27
+ // Directory might already exist
28
+ }
29
+ }
30
+ /**
31
+ * Convert mermaid code to ASCII diagram
32
+ */
33
+ async convertToASCII(mermaidCode, options = {}) {
34
+ // Validate mermaid code
35
+ if (!mermaidCode.trim()) {
36
+ return '[Empty Mermaid diagram]';
37
+ }
38
+ // Check if mermaid-ascii is available
39
+ if (!(await this.isBinaryAvailable())) {
40
+ return this.getFallbackDiagram(mermaidCode);
41
+ }
42
+ try {
43
+ // Create temporary file for mermaid code
44
+ const tempFile = (0, path_1.join)(this.tempDir, `diagram-${Date.now()}.mermaid`);
45
+ (0, fs_1.writeFileSync)(tempFile, mermaidCode.trim());
46
+ // Build command arguments
47
+ const args = this.buildCommandArgs(tempFile, options);
48
+ const command = `${this.binaryPath} ${args}`;
49
+ // Execute mermaid-ascii command
50
+ const { stdout, stderr } = await execAsync(command, {
51
+ timeout: 10000, // 10 second timeout
52
+ encoding: 'utf8'
53
+ });
54
+ // Clean up temp file
55
+ try {
56
+ (0, fs_1.unlinkSync)(tempFile);
57
+ }
58
+ catch (error) {
59
+ // Ignore cleanup errors
60
+ }
61
+ if (stderr && stderr.trim()) {
62
+ console.warn('Mermaid-ASCII warning:', stderr);
63
+ }
64
+ return stdout.trim() || this.getFallbackDiagram(mermaidCode);
65
+ }
66
+ catch (error) {
67
+ console.warn('Mermaid-ASCII conversion failed:', error instanceof Error ? error.message : error);
68
+ return this.getFallbackDiagram(mermaidCode);
69
+ }
70
+ }
71
+ /**
72
+ * Build command line arguments for mermaid-ascii
73
+ */
74
+ buildCommandArgs(filePath, options) {
75
+ const args = [`--file`, filePath];
76
+ if (options.paddingX !== undefined) {
77
+ args.push(`--paddingX`, options.paddingX.toString());
78
+ }
79
+ if (options.paddingY !== undefined) {
80
+ args.push(`--paddingY`, options.paddingY.toString());
81
+ }
82
+ if (options.borderPadding !== undefined) {
83
+ args.push(`--borderPadding`, options.borderPadding.toString());
84
+ }
85
+ if (options.ascii) {
86
+ args.push('--ascii');
87
+ }
88
+ if (options.coords) {
89
+ args.push('--coords');
90
+ }
91
+ return args.join(' ');
92
+ }
93
+ /**
94
+ * Check if mermaid-ascii binary is available
95
+ */
96
+ async isBinaryAvailable() {
97
+ try {
98
+ await execAsync(`${this.binaryPath} --help`, { timeout: 5000 });
99
+ return true;
100
+ }
101
+ catch (error) {
102
+ return false;
103
+ }
104
+ }
105
+ /**
106
+ * Generate fallback ASCII diagram when mermaid-ascii is not available
107
+ */
108
+ getFallbackDiagram(mermaidCode) {
109
+ const lines = mermaidCode.split('\n');
110
+ const maxWidth = Math.max(...lines.map(l => l.length), 40);
111
+ const width = Math.min(maxWidth + 4, 80);
112
+ const topBorder = '┌' + '─'.repeat(width - 2) + '┐';
113
+ const bottomBorder = '└' + '─'.repeat(width - 2) + '┘';
114
+ const title = '│ 📊 Mermaid Diagram (mermaid-ascii not found) │'.padEnd(width - 1) + '│';
115
+ const contentLines = lines.slice(0, 8).map(line => {
116
+ const truncated = line.length > width - 4 ? line.slice(0, width - 7) + '...' : line;
117
+ return '│ ' + truncated.padEnd(width - 4) + ' │';
118
+ });
119
+ const suggestion = '│ Install: https://github.com/AlexanderGrooff/mermaid-ascii │'.padEnd(width - 1) + '│';
120
+ return [
121
+ topBorder,
122
+ title,
123
+ '│' + ' '.repeat(width - 2) + '│',
124
+ ...contentLines,
125
+ '│' + ' '.repeat(width - 2) + '│',
126
+ suggestion,
127
+ bottomBorder
128
+ ].join('\n');
129
+ }
130
+ /**
131
+ * Check if content looks like a mermaid diagram
132
+ */
133
+ static isMermaidCode(content) {
134
+ const trimmed = content.trim().toLowerCase();
135
+ const mermaidKeywords = [
136
+ 'graph',
137
+ 'flowchart',
138
+ 'sequencediagram',
139
+ 'classDiagram',
140
+ 'stateDiagram',
141
+ 'journey',
142
+ 'gantt',
143
+ 'pie',
144
+ 'gitgraph',
145
+ 'requirement',
146
+ 'erdiagram',
147
+ 'mindmap'
148
+ ];
149
+ return mermaidKeywords.some(keyword => trimmed.startsWith(keyword.toLowerCase()));
150
+ }
151
+ /**
152
+ * Extract mermaid code from markdown code block
153
+ */
154
+ static extractMermaidFromMarkdown(markdown) {
155
+ // Match ```mermaid code blocks
156
+ const mermaidRegex = /```mermaid\s*\n([\s\S]*?)\n```/gi;
157
+ const match = mermaidRegex.exec(markdown);
158
+ if (match && match[1]) {
159
+ return match[1].trim();
160
+ }
161
+ return null;
162
+ }
163
+ }
164
+ exports.MermaidASCIIWrapper = MermaidASCIIWrapper;
165
+ /**
166
+ * Singleton instance with default settings
167
+ */
168
+ exports.mermaidASCII = new MermaidASCIIWrapper();
169
+ /**
170
+ * Quick conversion function for mermaid code
171
+ */
172
+ async function convertMermaidToASCII(mermaidCode, options) {
173
+ return exports.mermaidASCII.convertToASCII(mermaidCode, options);
174
+ }
175
+ /**
176
+ * Check if mermaid-ascii binary is available on the system
177
+ */
178
+ async function isMermaidASCIIAvailable() {
179
+ return exports.mermaidASCII.isBinaryAvailable();
180
+ }
181
+ //# sourceMappingURL=mermaid-ascii.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-ascii.js","sourceRoot":"","sources":["../../src/utils/mermaid-ascii.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Highlight code using Shiki with ANSI output
3
+ */
4
+ export declare function highlightCodeWithShiki(code: string, lang?: string, theme?: string): Promise<string>;
5
+ /**
6
+ * Get ANSI theme from Shiki theme name
7
+ */
8
+ export declare function getAnsiThemeColors(theme: string): Record<string, string>;
9
+ /**
10
+ * Format code with syntax highlighting for terminal output
11
+ * Returns ready-to-display ANSI string
12
+ */
13
+ export declare function formatCodeForTerminal(code: string, lang?: string, options?: {
14
+ theme?: 'nord' | 'github-light' | 'github-dark' | 'one-dark-pro' | 'dracula';
15
+ lineNumbers?: boolean;
16
+ maxWidth?: number;
17
+ }): Promise<string>;
18
+ /**
19
+ * Clear Shiki cache (for testing or memory pressure)
20
+ */
21
+ export declare function clearShikiCache(): void;
22
+ /**
23
+ * Get cache stats
24
+ */
25
+ export declare function getShikiCacheStats(): {
26
+ size: number;
27
+ keys: string[];
28
+ };
29
+ //# sourceMappingURL=shiki-ansi-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shiki-ansi-renderer.d.ts","sourceRoot":"","sources":["../../src/utils/shiki-ansi-renderer.ts"],"names":[],"mappings":"AA2HA;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAe,EACrB,KAAK,GAAE,MAAe,GACrB,OAAO,CAAC,MAAM,CAAC,CA6BjB;AA0FD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmDxE;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAAe,EACrB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,GAAG,SAAS,CAAC;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAejB;AA8ED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,kBAAkB;;;EAKjC"}