@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,380 @@
1
+ "use strict";
2
+ /**
3
+ * LaTeX to Unicode Math Renderer
4
+ * Converts LaTeX math expressions to beautiful Unicode representations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.renderMathToUnicode = renderMathToUnicode;
8
+ exports.renderMathBlock = renderMathBlock;
9
+ exports.containsMath = containsMath;
10
+ exports.extractMath = extractMath;
11
+ exports.replaceMathInText = replaceMathInText;
12
+ exports.formatMathExpression = formatMathExpression;
13
+ // Comprehensive Unicode math symbol mappings
14
+ const UNICODE_MAP = {
15
+ // Superscripts
16
+ '\\^0': '⁰',
17
+ '\\^1': '¹',
18
+ '\\^2': '²',
19
+ '\\^3': '³',
20
+ '\\^4': '⁴',
21
+ '\\^5': '⁵',
22
+ '\\^6': '⁶',
23
+ '\\^7': '⁷',
24
+ '\\^8': '⁸',
25
+ '\\^9': '⁹',
26
+ '\\^+': '⁺',
27
+ '\\^-': '⁻',
28
+ '\\^=': '⁼',
29
+ '\\^(': '⁽',
30
+ '\\^)': '⁾',
31
+ // Subscripts
32
+ '_0': '₀',
33
+ '_1': '₁',
34
+ '_2': '₂',
35
+ '_3': '₃',
36
+ '_4': '₄',
37
+ '_5': '₅',
38
+ '_6': '₆',
39
+ '_7': '₇',
40
+ '_8': '₈',
41
+ '_9': '₉',
42
+ '_+': '₊',
43
+ '_-': '₋',
44
+ '_=': '₌',
45
+ '_(': '₍',
46
+ '_)': '₎',
47
+ // Greek letters (lowercase)
48
+ 'alpha': 'α',
49
+ 'beta': 'β',
50
+ 'gamma': 'γ',
51
+ 'delta': 'δ',
52
+ 'epsilon': 'ε',
53
+ 'zeta': 'ζ',
54
+ 'eta': 'η',
55
+ 'theta': 'θ',
56
+ 'iota': 'ι',
57
+ 'kappa': 'κ',
58
+ 'lambda': 'λ',
59
+ 'mu': 'μ',
60
+ 'nu': 'ν',
61
+ 'xi': 'ξ',
62
+ 'omicron': 'ο',
63
+ 'pi': 'π',
64
+ 'rho': 'ρ',
65
+ 'sigma': 'σ',
66
+ 'tau': 'τ',
67
+ 'upsilon': 'υ',
68
+ 'phi': 'φ',
69
+ 'chi': 'χ',
70
+ 'psi': 'ψ',
71
+ 'omega': 'ω',
72
+ // Greek letters (uppercase)
73
+ 'Alpha': 'Α',
74
+ 'Beta': 'Β',
75
+ 'Gamma': 'Γ',
76
+ 'Delta': 'Δ',
77
+ 'Epsilon': 'Ε',
78
+ 'Zeta': 'Ζ',
79
+ 'Eta': 'Η',
80
+ 'Theta': 'Θ',
81
+ 'Iota': 'Ι',
82
+ 'Kappa': 'Κ',
83
+ 'Lambda': 'Λ',
84
+ 'Mu': 'Μ',
85
+ 'Nu': 'Ν',
86
+ 'Xi': 'Ξ',
87
+ 'Omicron': 'Ο',
88
+ 'Pi': 'Π',
89
+ 'Rho': 'Ρ',
90
+ 'Sigma': 'Σ',
91
+ 'Tau': 'Τ',
92
+ 'Upsilon': 'Υ',
93
+ 'Phi': 'Φ',
94
+ 'Chi': 'Χ',
95
+ 'Psi': 'Ψ',
96
+ 'Omega': 'Ω',
97
+ // Math operators
98
+ 'sqrt': '√',
99
+ 'cbrt': '∛',
100
+ 'fourthroot': '∜',
101
+ 'integral': '∫',
102
+ 'sum': '∑',
103
+ 'prod': '∏',
104
+ 'coprod': '∐',
105
+ 'infty': '∞',
106
+ 'partial': '∂',
107
+ 'nabla': '∇',
108
+ 'approx': '≈',
109
+ 'ne': '≠',
110
+ 'leq': '≤',
111
+ 'geq': '≥',
112
+ 'll': '≪',
113
+ 'gg': '≫',
114
+ 'prec': '≺',
115
+ 'succ': '≻',
116
+ 'in': '∈',
117
+ 'notin': '∉',
118
+ 'subset': '⊂',
119
+ 'supset': '⊃',
120
+ 'subseteq': '⊆',
121
+ 'supseteq': '⊇',
122
+ 'cup': '∪',
123
+ 'cap': '∩',
124
+ 'setminus': '∖',
125
+ 'cdot': '·',
126
+ 'times': '×',
127
+ 'div': '÷',
128
+ 'pm': '±',
129
+ 'mp': '∓',
130
+ 'ast': '∗',
131
+ 'circ': '∘',
132
+ 'bullet': '•',
133
+ 'dagger': '†',
134
+ 'ddagger': '‡',
135
+ 'angle': '∠',
136
+ 'parallel': '∥',
137
+ 'perp': '⊥',
138
+ 'checkmark': '✓',
139
+ 'xmark': '✗',
140
+ // Relations
141
+ 'equiv': '≡',
142
+ 'sim': '∼',
143
+ 'simeq': '≃',
144
+ 'cong': '≅',
145
+ 'asymp': '≍',
146
+ 'propto': '∝',
147
+ 'models': '⊨',
148
+ 'vdash': '⊢',
149
+ 'dashv': '⊣',
150
+ // Logical operators
151
+ 'forall': '∀',
152
+ 'exists': '∃',
153
+ 'neg': '¬',
154
+ 'land': '∧',
155
+ 'lor': '∨',
156
+ 'implies': '⟹',
157
+ 'iff': '⟺',
158
+ 'bot': '⊥',
159
+ 'top': '⊤',
160
+ // Arrows
161
+ 'to': '→',
162
+ 'rightarrow': '→',
163
+ 'leftarrow': '←',
164
+ 'leftrightarrow': '↔',
165
+ 'Rightarrow': '⇒',
166
+ 'Leftarrow': '⇐',
167
+ 'Leftrightarrow': '⇔',
168
+ 'mapsto': '↦',
169
+ 'longmapsto': '⟼',
170
+ 'uparrow': '↑',
171
+ 'downarrow': '↓',
172
+ 'updownarrow': '↕',
173
+ 'Uparrow': '⇑',
174
+ 'Downarrow': '⇓',
175
+ 'Updownarrow': '⇕',
176
+ 'nearrow': '↗',
177
+ 'searrow': '↘',
178
+ 'swarrow': '↙',
179
+ 'nwarrow': '↖',
180
+ // Mathematical operators
181
+ 'frac': '⁄', // Used in fractions
182
+ 'lfloor': '⌊',
183
+ 'rfloor': '⌋',
184
+ 'lceil': '⌈',
185
+ 'rceil': '⌉',
186
+ // Miscellaneous
187
+ 'varphi': 'φ',
188
+ 'vartheta': 'ϑ',
189
+ 'ell': 'ℓ',
190
+ 'Re': 'ℜ',
191
+ 'Im': 'ℑ',
192
+ 'wp': '℘',
193
+ 'wr': '≀',
194
+ 'heartsuit': '♡',
195
+ 'diamondsuit': '♢',
196
+ 'clubsuit': '♣',
197
+ 'spadesuit': '♠',
198
+ 'flatsuit': '♭',
199
+ 'naturalsuit': '♮',
200
+ 'sharpsuit': '♯',
201
+ };
202
+ /**
203
+ * Render LaTeX expression to Unicode inline format
204
+ */
205
+ function renderMathToUnicode(latex) {
206
+ if (!latex || latex.length === 0) {
207
+ return latex;
208
+ }
209
+ let result = latex;
210
+ // Replace LaTeX commands with Unicode equivalents
211
+ for (const [latex_code, unicode] of Object.entries(UNICODE_MAP)) {
212
+ // Handle both \cmd and cmd format
213
+ const patterns = [
214
+ new RegExp(`\\\\${latex_code}\\b`, 'g'),
215
+ new RegExp(`\\b${latex_code}\\b`, 'g'),
216
+ ];
217
+ for (const pattern of patterns) {
218
+ result = result.replace(pattern, unicode);
219
+ }
220
+ }
221
+ // Handle special cases
222
+ // Exponents: x^2 → x²
223
+ result = result.replace(/\^(\d)/g, (_, digit) => {
224
+ const superscripts = ['⁰', '¹', '²', '³', '⁴', '⁵', '⁶', '⁷', '⁸', '⁹'];
225
+ return superscripts[parseInt(digit)] || _;
226
+ });
227
+ // Subscripts: x_i → xᵢ
228
+ result = result.replace(/_(\d)/g, (_, digit) => {
229
+ const subscripts = ['₀', '₁', '₂', '₃', '₄', '₅', '₆', '₇', '₈', '₉'];
230
+ return subscripts[parseInt(digit)] || _;
231
+ });
232
+ // Handle sqrt with braces: \sqrt{x} → √x
233
+ result = result.replace(/√\{([^}]+)\}/g, '√($1)');
234
+ // Handle fractions (simple inline): x/y stays as x/y (can't do real fractions inline)
235
+ // But we can indicate it better with slash
236
+ result = result.replace(/\\frac\{([^}]+)\}\{([^}]+)\}/g, '($1)/($2)');
237
+ // Handle parentheses variants
238
+ result = result.replace(/\\left\(/g, '(');
239
+ result = result.replace(/\\right\)/g, ')');
240
+ result = result.replace(/\\left\[/g, '[');
241
+ result = result.replace(/\\right\]/g, ']');
242
+ result = result.replace(/\\left\{/g, '{');
243
+ result = result.replace(/\\right\}/g, '}');
244
+ // Remove remaining LaTeX command syntax
245
+ result = result.replace(/\\[a-zA-Z]+/g, '');
246
+ // Clean up whitespace
247
+ result = result.replace(/\s+/g, ' ').trim();
248
+ return result;
249
+ }
250
+ /**
251
+ * Render math in block format with box
252
+ */
253
+ function renderMathBlock(latex, options) {
254
+ const width = options?.width || 60;
255
+ const style = options?.boxStyle || 'rounded';
256
+ const unicode = renderMathToUnicode(latex);
257
+ // Wrap in a box for display
258
+ const lines = wrapText(unicode, width - 4);
259
+ const topBorder = style === 'rounded'
260
+ ? '┌' + '─'.repeat(width - 2) + '┐'
261
+ : '┏' + '━'.repeat(width - 2) + '┓';
262
+ const bottomBorder = style === 'rounded'
263
+ ? '└' + '─'.repeat(width - 2) + '┘'
264
+ : '┗' + '━'.repeat(width - 2) + '┛';
265
+ const vertBorder = style === 'rounded' ? '│' : '┃';
266
+ let result = topBorder + '\n';
267
+ for (const line of lines) {
268
+ const padded = line.padEnd(width - 4);
269
+ result += vertBorder + ' ' + padded + ' ' + vertBorder + '\n';
270
+ }
271
+ result += bottomBorder;
272
+ return result;
273
+ }
274
+ /**
275
+ * Wrap text to fit within width
276
+ */
277
+ function wrapText(text, width) {
278
+ if (text.length <= width) {
279
+ return [text];
280
+ }
281
+ const lines = [];
282
+ const words = text.split(' ');
283
+ let currentLine = '';
284
+ for (const word of words) {
285
+ if ((currentLine + ' ' + word).length <= width) {
286
+ currentLine += (currentLine ? ' ' : '') + word;
287
+ }
288
+ else {
289
+ if (currentLine)
290
+ lines.push(currentLine);
291
+ currentLine = word;
292
+ }
293
+ }
294
+ if (currentLine)
295
+ lines.push(currentLine);
296
+ return lines;
297
+ }
298
+ /**
299
+ * Detect if text contains LaTeX math
300
+ */
301
+ function containsMath(text) {
302
+ // Check for inline math: $...$
303
+ // Check for display math: $$...$$
304
+ // Check for LaTeX commands: \...
305
+ return /\$.*?\$|\\\w+|_\{|_\d|\^\{|\^\d/.test(text);
306
+ }
307
+ function extractMath(text) {
308
+ const matches = [];
309
+ const blockRanges = [];
310
+ // Find display math: $$...$$ (non-greedy to handle multiple blocks)
311
+ // Use negative lookahead/lookbehind to avoid matching triple $$$
312
+ const blockRegex = /\$\$((?:(?!\$\$).)+)\$\$/gs;
313
+ let blockMatch;
314
+ while ((blockMatch = blockRegex.exec(text)) !== null) {
315
+ const start = blockMatch.index;
316
+ const end = blockMatch.index + blockMatch[0].length;
317
+ blockRanges.push({ start, end });
318
+ matches.push({
319
+ type: 'block',
320
+ content: blockMatch[1],
321
+ start,
322
+ end,
323
+ });
324
+ }
325
+ // Find inline math: $...$ (non-greedy, avoiding blocks)
326
+ // Use negative lookahead to ensure we don't match $$
327
+ const inlineRegex = /\$(?!\$)((?:(?!\$).)+)\$(?!\$)/gs;
328
+ let inlineMatch;
329
+ while ((inlineMatch = inlineRegex.exec(text)) !== null) {
330
+ const matchStart = inlineMatch.index;
331
+ const matchEnd = matchStart + inlineMatch[0].length;
332
+ // Skip if this overlaps with any block match (more efficient than .some())
333
+ const overlapsBlock = blockRanges.some(range => matchStart >= range.start && matchStart < range.end);
334
+ if (!overlapsBlock) {
335
+ matches.push({
336
+ type: 'inline',
337
+ content: inlineMatch[1],
338
+ start: matchStart,
339
+ end: matchEnd,
340
+ });
341
+ }
342
+ }
343
+ // Sort by position
344
+ matches.sort((a, b) => a.start - b.start);
345
+ return matches;
346
+ }
347
+ /**
348
+ * Replace math in text with rendered Unicode
349
+ */
350
+ function replaceMathInText(text) {
351
+ const matches = extractMath(text);
352
+ if (matches.length === 0) {
353
+ return text;
354
+ }
355
+ let result = '';
356
+ let lastEnd = 0;
357
+ for (const match of matches) {
358
+ // Add text before match
359
+ result += text.slice(lastEnd, match.start);
360
+ // Add rendered math (without $ delimiters)
361
+ result += renderMathToUnicode(match.content);
362
+ lastEnd = match.end;
363
+ }
364
+ // Add remaining text
365
+ result += text.slice(lastEnd);
366
+ return result;
367
+ }
368
+ /**
369
+ * Format math expression with pretty printing
370
+ */
371
+ function formatMathExpression(latex) {
372
+ // Handle common patterns for prettier output
373
+ let formatted = latex;
374
+ // e.g., "x^2 + y^2 = z^2" → "x² + y² = z²"
375
+ formatted = formatted.replace(/(\w)\^(\d+)/g, '$1' + '²'.repeat(Number('$2')));
376
+ // Render to Unicode
377
+ formatted = renderMathToUnicode(formatted);
378
+ return formatted;
379
+ }
380
+ //# sourceMappingURL=math-unicode-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-unicode-renderer.js","sourceRoot":"","sources":["../../src/utils/math-unicode-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Mermaid to ASCII Art Renderer
3
+ * Converts Mermaid diagram syntax to beautiful ASCII art
4
+ */
5
+ /**
6
+ * Main rendering function
7
+ */
8
+ export declare function renderMermaidToASCII(mermaidCode: string, options?: {
9
+ maxWidth?: number;
10
+ boxStyle?: 'simple' | 'rounded';
11
+ }): string;
12
+ /**
13
+ * Detect if code is Mermaid syntax
14
+ */
15
+ export declare function isMermaidCode(code: string): boolean;
16
+ /**
17
+ * Format mermaid code for better readability
18
+ */
19
+ export declare function formatMermaidCode(code: string): string;
20
+ //# sourceMappingURL=mermaid-ascii-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-ascii-renderer.d.ts","sourceRoot":"","sources":["../../src/utils/mermaid-ascii-renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmUH;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,GAC/D,MAAM,CAuBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAoBnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAStD"}