@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,49 @@
1
+ import { MathRenderConfig } from '../types';
2
+ /**
3
+ * Math renderer for TTY
4
+ * Converts LaTeX math to Unicode/ASCII representation
5
+ */
6
+ export declare class MathRenderer {
7
+ private config;
8
+ private static readonly UNICODE_SYMBOLS;
9
+ private static readonly SUPERSCRIPTS;
10
+ private static readonly SUBSCRIPTS;
11
+ constructor(config?: MathRenderConfig);
12
+ /**
13
+ * Convert LaTeX math to Unicode representation
14
+ */
15
+ convertToUnicode(latex: string, displayMode?: boolean): string;
16
+ /**
17
+ * Convert LaTeX to Unicode text
18
+ */
19
+ private latexToUnicode;
20
+ /**
21
+ * Convert text to superscript
22
+ */
23
+ private toSuperscript;
24
+ /**
25
+ * Convert text to subscript
26
+ */
27
+ private toSubscript;
28
+ /**
29
+ * Format error message
30
+ */
31
+ private formatError;
32
+ /**
33
+ * Render inline math (compact)
34
+ */
35
+ renderInline(latex: string): string;
36
+ /**
37
+ * Render block math (centered, bordered)
38
+ */
39
+ renderBlock(latex: string): string;
40
+ /**
41
+ * Update configuration
42
+ */
43
+ updateConfig(config: Partial<MathRenderConfig>): void;
44
+ }
45
+ /**
46
+ * Singleton instance
47
+ */
48
+ export declare const mathRenderer: MathRenderer;
49
+ //# sourceMappingURL=math-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-renderer.d.ts","sourceRoot":"","sources":["../../src/renderers/math-renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAmB;IAGjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAmCrC;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAKlC;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAQhC;gBAEU,MAAM,GAAE,gBAAqB;IASzC;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,MAAM;IAoBrE;;OAEG;IACH,OAAO,CAAC,cAAc;IAkDtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAInC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAgBlC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;CAGxD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.mathRenderer = exports.MathRenderer = void 0;
7
+ const katex_1 = __importDefault(require("katex"));
8
+ /**
9
+ * Math renderer for TTY
10
+ * Converts LaTeX math to Unicode/ASCII representation
11
+ */
12
+ class MathRenderer {
13
+ config;
14
+ // Unicode math symbol mappings
15
+ static UNICODE_SYMBOLS = {
16
+ // Greek letters
17
+ 'alpha': 'α', 'beta': 'β', 'gamma': 'γ', 'delta': 'δ', 'epsilon': 'ε',
18
+ 'zeta': 'ζ', 'eta': 'η', 'theta': 'θ', 'iota': 'ι', 'kappa': 'κ',
19
+ 'lambda': 'λ', 'mu': 'μ', 'nu': 'ν', 'xi': 'ξ', 'pi': 'π',
20
+ 'rho': 'ρ', 'sigma': 'σ', 'tau': 'τ', 'upsilon': 'υ', 'phi': 'φ',
21
+ 'chi': 'χ', 'psi': 'ψ', 'omega': 'ω',
22
+ // Capital Greek
23
+ 'Gamma': 'Γ', 'Delta': 'Δ', 'Theta': 'Θ', 'Lambda': 'Λ', 'Xi': 'Ξ',
24
+ 'Pi': 'Π', 'Sigma': 'Σ', 'Phi': 'Φ', 'Psi': 'Ψ', 'Omega': 'Ω',
25
+ // Math operators
26
+ 'pm': '±', 'mp': '∓', 'times': '×', 'div': '÷', 'cdot': '·',
27
+ 'leq': '≤', 'geq': '≥', 'neq': '≠', 'approx': '≈', 'equiv': '≡',
28
+ 'propto': '∝', 'infty': '∞', 'partial': '∂', 'nabla': '∇',
29
+ 'sum': '∑', 'prod': '∏', 'int': '∫', 'oint': '∮',
30
+ 'sqrt': '√', 'cbrt': '∛',
31
+ // Arrows
32
+ 'rightarrow': '→', 'leftarrow': '←', 'uparrow': '↑', 'downarrow': '↓',
33
+ 'leftrightarrow': '↔', 'Rightarrow': '⇒', 'Leftarrow': '⇐',
34
+ 'Leftrightarrow': '⇔', 'mapsto': '↦',
35
+ // Set theory
36
+ 'in': '∈', 'notin': '∉', 'subset': '⊂', 'supset': '⊃',
37
+ 'subseteq': '⊆', 'supseteq': '⊇', 'cup': '∪', 'cap': '∩',
38
+ 'emptyset': '∅', 'exists': '∃', 'forall': '∀',
39
+ // Logic
40
+ 'land': '∧', 'lor': '∨', 'lnot': '¬', 'implies': '⇒',
41
+ // Other
42
+ 'dots': '…', 'cdots': '⋯', 'ldots': '…', 'vdots': '⋮',
43
+ 'therefore': '∴', 'because': '∵',
44
+ };
45
+ // Superscript digits
46
+ static SUPERSCRIPTS = {
47
+ '0': '⁰', '1': '¹', '2': '²', '3': '³', '4': '⁴',
48
+ '5': '⁵', '6': '⁶', '7': '⁷', '8': '⁸', '9': '⁹',
49
+ '+': '⁺', '-': '⁻', '=': '⁼', '(': '⁽', ')': '⁾',
50
+ 'n': 'ⁿ', 'i': 'ⁱ',
51
+ };
52
+ // Subscript digits
53
+ static SUBSCRIPTS = {
54
+ '0': '₀', '1': '₁', '2': '₂', '3': '₃', '4': '₄',
55
+ '5': '₅', '6': '₆', '7': '₇', '8': '₈', '9': '₉',
56
+ '+': '₊', '-': '₋', '=': '₌', '(': '₍', ')': '₎',
57
+ 'a': 'ₐ', 'e': 'ₑ', 'h': 'ₕ', 'i': 'ᵢ', 'j': 'ⱼ',
58
+ 'k': 'ₖ', 'l': 'ₗ', 'm': 'ₘ', 'n': 'ₙ', 'o': 'ₒ',
59
+ 'p': 'ₚ', 'r': 'ᵣ', 's': 'ₛ', 't': 'ₜ', 'u': 'ᵤ',
60
+ 'v': 'ᵥ', 'x': 'ₓ',
61
+ };
62
+ constructor(config = {}) {
63
+ this.config = {
64
+ displayMode: false,
65
+ throwOnError: false,
66
+ errorColor: 'red',
67
+ ...config,
68
+ };
69
+ }
70
+ /**
71
+ * Convert LaTeX math to Unicode representation
72
+ */
73
+ convertToUnicode(latex, displayMode = false) {
74
+ try {
75
+ // Try to parse with KaTeX first for validation
76
+ const parsed = katex_1.default.renderToString(latex, {
77
+ displayMode: displayMode || this.config.displayMode,
78
+ throwOnError: this.config.throwOnError || false,
79
+ trust: this.config.trust || false,
80
+ macros: this.config.macros || {},
81
+ });
82
+ // Convert to Unicode representation
83
+ return this.latexToUnicode(latex);
84
+ }
85
+ catch (error) {
86
+ if (this.config.throwOnError) {
87
+ throw error;
88
+ }
89
+ return this.formatError(error.message);
90
+ }
91
+ }
92
+ /**
93
+ * Convert LaTeX to Unicode text
94
+ */
95
+ latexToUnicode(latex) {
96
+ let result = latex;
97
+ // Remove LaTeX commands we don't need
98
+ result = result.replace(/\\text\{([^}]+)\}/g, '$1');
99
+ result = result.replace(/\\mathrm\{([^}]+)\}/g, '$1');
100
+ result = result.replace(/\\mathbf\{([^}]+)\}/g, '$1');
101
+ result = result.replace(/\\mathit\{([^}]+)\}/g, '$1');
102
+ // Replace backslash commands with Unicode
103
+ for (const [command, symbol] of Object.entries(MathRenderer.UNICODE_SYMBOLS)) {
104
+ const regex = new RegExp(`\\\\${command}\\b`, 'g');
105
+ result = result.replace(regex, symbol);
106
+ }
107
+ // Handle fractions: \frac{a}{b} → a/b
108
+ result = result.replace(/\\frac\{([^}]+)\}\{([^}]+)\}/g, '($1)/($2)');
109
+ // Handle superscripts: x^2 → x²
110
+ result = result.replace(/(\w)\^(\d)/g, (match, base, exp) => {
111
+ return base + (MathRenderer.SUPERSCRIPTS[exp] || `^${exp}`);
112
+ });
113
+ result = result.replace(/(\w)\^\{([^}]+)\}/g, (match, base, exp) => {
114
+ return base + this.toSuperscript(exp);
115
+ });
116
+ // Handle subscripts: x_0 → x₀
117
+ result = result.replace(/(\w)_(\w)/g, (match, base, sub) => {
118
+ return base + (MathRenderer.SUBSCRIPTS[sub] || `_${sub}`);
119
+ });
120
+ result = result.replace(/(\w)_\{([^}]+)\}/g, (match, base, sub) => {
121
+ return base + this.toSubscript(sub);
122
+ });
123
+ // Handle square roots: \sqrt{x} → √x
124
+ result = result.replace(/\\sqrt\{([^}]+)\}/g, '√($1)');
125
+ result = result.replace(/\\sqrt\[3\]\{([^}]+)\}/g, '∛($1)');
126
+ // Handle common environments
127
+ result = result.replace(/\\begin\{([^}]+)\}(.*?)\\end\{\1\}/gs, '$2');
128
+ // Clean up remaining LaTeX artifacts
129
+ result = result.replace(/\\\\/g, '\n');
130
+ result = result.replace(/\\,/g, ' ');
131
+ result = result.replace(/\\;/g, ' ');
132
+ result = result.replace(/[{}]/g, '');
133
+ return result.trim();
134
+ }
135
+ /**
136
+ * Convert text to superscript
137
+ */
138
+ toSuperscript(text) {
139
+ return text
140
+ .split('')
141
+ .map(char => MathRenderer.SUPERSCRIPTS[char] || char)
142
+ .join('');
143
+ }
144
+ /**
145
+ * Convert text to subscript
146
+ */
147
+ toSubscript(text) {
148
+ return text
149
+ .split('')
150
+ .map(char => MathRenderer.SUBSCRIPTS[char] || char)
151
+ .join('');
152
+ }
153
+ /**
154
+ * Format error message
155
+ */
156
+ formatError(message) {
157
+ return `[Math Error: ${message}]`;
158
+ }
159
+ /**
160
+ * Render inline math (compact)
161
+ */
162
+ renderInline(latex) {
163
+ return this.convertToUnicode(latex, false);
164
+ }
165
+ /**
166
+ * Render block math (centered, bordered)
167
+ */
168
+ renderBlock(latex) {
169
+ const content = this.convertToUnicode(latex, true);
170
+ const lines = content.split('\n');
171
+ const maxWidth = Math.max(...lines.map(line => line.length));
172
+ // Create bordered box
173
+ const border = '─'.repeat(maxWidth + 4);
174
+ const result = [
175
+ `┌${border}┐`,
176
+ ...lines.map(line => `│ ${line.padEnd(maxWidth)} │`),
177
+ `└${border}┘`,
178
+ ];
179
+ return result.join('\n');
180
+ }
181
+ /**
182
+ * Update configuration
183
+ */
184
+ updateConfig(config) {
185
+ this.config = { ...this.config, ...config };
186
+ }
187
+ }
188
+ exports.MathRenderer = MathRenderer;
189
+ /**
190
+ * Singleton instance
191
+ */
192
+ exports.mathRenderer = new MathRenderer();
193
+ //# sourceMappingURL=math-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-renderer.js","sourceRoot":"","sources":["../../src/renderers/math-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Mermaid diagram → ASCII art renderer
3
+ * Supports flowchart, sequence, gantt diagrams
4
+ * Pure string output, no blessed dependencies
5
+ */
6
+ /**
7
+ * Main entry point: parse mermaid code and render to ASCII
8
+ */
9
+ export declare function renderMermaidToASCII(mermaidCode: string): string;
10
+ /**
11
+ * Check if text contains Mermaid diagram
12
+ */
13
+ export declare function containsMermaid(text: string): boolean;
14
+ //# sourceMappingURL=mermaid-ascii.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-ascii.d.ts","sourceRoot":"","sources":["../../src/renderers/mermaid-ascii.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA0BhE;AAgQD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ /**
3
+ * Mermaid diagram → ASCII art renderer
4
+ * Supports flowchart, sequence, gantt diagrams
5
+ * Pure string output, no blessed dependencies
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.renderMermaidToASCII = renderMermaidToASCII;
9
+ exports.containsMermaid = containsMermaid;
10
+ /**
11
+ * Main entry point: parse mermaid code and render to ASCII
12
+ */
13
+ function renderMermaidToASCII(mermaidCode) {
14
+ if (!mermaidCode || !mermaidCode.trim()) {
15
+ return '[Empty diagram]';
16
+ }
17
+ const lines = mermaidCode.trim().split('\n');
18
+ const firstLine = lines[0]?.toLowerCase().trim() || '';
19
+ try {
20
+ // Detect diagram type
21
+ if (firstLine.includes('flowchart') || firstLine.includes('graph')) {
22
+ return renderFlowchartASCII(mermaidCode);
23
+ }
24
+ else if (firstLine.includes('sequenceDiagram') || firstLine.includes('sequence')) {
25
+ return renderSequenceDiagramASCII(mermaidCode);
26
+ }
27
+ else if (firstLine.includes('gantt')) {
28
+ return renderGanttASCII(mermaidCode);
29
+ }
30
+ else if (firstLine.includes('classDiagram')) {
31
+ return renderClassDiagramASCII(mermaidCode);
32
+ }
33
+ else if (firstLine.includes('stateDiagram')) {
34
+ return renderStateDiagramASCII(mermaidCode);
35
+ }
36
+ return `[Mermaid diagram: ${firstLine}]`;
37
+ }
38
+ catch (error) {
39
+ return `[Diagram error: ${error instanceof Error ? error.message : 'unknown'}]`;
40
+ }
41
+ }
42
+ /**
43
+ * Render flowchart/graph to ASCII
44
+ */
45
+ function renderFlowchartASCII(code) {
46
+ const nodes = new Map();
47
+ const edges = [];
48
+ const lines = code.split('\n').map(l => l.trim()).filter(Boolean);
49
+ // Parse nodes: ID["Label"], ID{Label}, ID([Label])
50
+ for (const line of lines) {
51
+ const nodeMatch = line.match(/(\w+)\[([\[\(]?)["']?([^"\'\]]*)["']?([\]\)]?)\]/);
52
+ if (nodeMatch) {
53
+ nodes.set(nodeMatch[1], nodeMatch[3] || nodeMatch[1]);
54
+ continue;
55
+ }
56
+ const nodeMatch2 = line.match(/(\w+)\{["']?([^"\'{}]*)["']?\}/);
57
+ if (nodeMatch2) {
58
+ nodes.set(nodeMatch2[1], nodeMatch2[2] || nodeMatch2[1]);
59
+ continue;
60
+ }
61
+ }
62
+ // Parse edges: A --> B, A -->|label| B
63
+ for (const line of lines) {
64
+ const edgeMatch = line.match(/(\w+)\s*-+>?\|([^|]*)\|\s*(\w+)/);
65
+ if (edgeMatch) {
66
+ edges.push({
67
+ from: edgeMatch[1],
68
+ to: edgeMatch[3],
69
+ label: edgeMatch[2].trim(),
70
+ });
71
+ continue;
72
+ }
73
+ const edgeMatch2 = line.match(/(\w+)\s*(?:-->|--|-|->)\s*(\w+)/);
74
+ if (edgeMatch2) {
75
+ edges.push({
76
+ from: edgeMatch2[1],
77
+ to: edgeMatch2[2],
78
+ });
79
+ }
80
+ }
81
+ // Build ASCII output
82
+ let output = '';
83
+ // Simple linear flow for now
84
+ if (nodes.size === 0) {
85
+ return '[Empty flowchart]';
86
+ }
87
+ const nodeArray = Array.from(nodes.entries());
88
+ for (let i = 0; i < nodeArray.length; i++) {
89
+ const [id, label] = nodeArray[i];
90
+ const boxWidth = Math.max(label.length + 4, 14);
91
+ const padding = Math.max(0, (boxWidth - label.length - 2) / 2);
92
+ if (i > 0)
93
+ output += '\n ↓\n';
94
+ output += `┌${'─'.repeat(boxWidth - 2)}┐\n`;
95
+ output += `│${' '.repeat(Math.floor(padding))}${label}${' '.repeat(Math.ceil(padding))}│\n`;
96
+ output += `└${'─'.repeat(boxWidth - 2)}┘`;
97
+ }
98
+ return output;
99
+ }
100
+ /**
101
+ * Render sequence diagram to ASCII
102
+ */
103
+ function renderSequenceDiagramASCII(code) {
104
+ const actors = new Set();
105
+ const messages = [];
106
+ const lines = code.split('\n').map(l => l.trim()).filter(Boolean);
107
+ // Parse participants
108
+ for (const line of lines) {
109
+ const participantMatch = line.match(/participant\s+(\w+)/);
110
+ if (participantMatch) {
111
+ actors.add(participantMatch[1]);
112
+ }
113
+ }
114
+ // Parse messages: A->B: message
115
+ for (const line of lines) {
116
+ const msgMatch = line.match(/(\w+)\s*(?:->|->>)\s*(\w+)\s*:\s*(.+)/);
117
+ if (msgMatch) {
118
+ messages.push({
119
+ from: msgMatch[1],
120
+ to: msgMatch[2],
121
+ text: msgMatch[3].trim(),
122
+ });
123
+ }
124
+ }
125
+ if (actors.size === 0) {
126
+ return '[Empty sequence diagram]';
127
+ }
128
+ const actorArray = Array.from(actors);
129
+ const colWidth = Math.max(...actorArray.map(a => a.length)) + 2;
130
+ // Header
131
+ let output = '';
132
+ output += '┌';
133
+ for (let i = 0; i < actorArray.length; i++) {
134
+ output += '─'.repeat(colWidth);
135
+ if (i < actorArray.length - 1)
136
+ output += '┬';
137
+ }
138
+ output += '┐\n';
139
+ // Actor names
140
+ output += '│';
141
+ for (const actor of actorArray) {
142
+ const padding = Math.max(0, (colWidth - actor.length) / 2);
143
+ output += ' '.repeat(Math.floor(padding)) + actor + ' '.repeat(Math.ceil(padding));
144
+ output += '│';
145
+ }
146
+ output += '\n';
147
+ // Separator
148
+ output += '├';
149
+ for (let i = 0; i < actorArray.length; i++) {
150
+ output += '─'.repeat(colWidth);
151
+ if (i < actorArray.length - 1)
152
+ output += '┼';
153
+ }
154
+ output += '┤\n';
155
+ // Messages (simplified: show as text)
156
+ for (const msg of messages) {
157
+ output += `│ ${msg.from} → ${msg.to}: ${msg.text}\n`;
158
+ }
159
+ // Footer
160
+ output += '└';
161
+ for (let i = 0; i < actorArray.length; i++) {
162
+ output += '─'.repeat(colWidth);
163
+ if (i < actorArray.length - 1)
164
+ output += '┴';
165
+ }
166
+ output += '┘';
167
+ return output;
168
+ }
169
+ /**
170
+ * Render Gantt chart to ASCII
171
+ */
172
+ function renderGanttASCII(code) {
173
+ const tasks = [];
174
+ const lines = code.split('\n').map(l => l.trim()).filter(Boolean);
175
+ // Parse tasks: taskName :done, 2024-01-01, 30d
176
+ // Simplified: extract task names and show as bars
177
+ for (const line of lines) {
178
+ // Simple pattern: word : ...
179
+ const taskMatch = line.match(/^(\w+)\s*:/);
180
+ if (taskMatch) {
181
+ const name = taskMatch[1];
182
+ // Extract duration (rough estimate)
183
+ const durationMatch = line.match(/(\d+)([dhw])/);
184
+ let duration = 30;
185
+ if (durationMatch) {
186
+ const num = parseInt(durationMatch[1]);
187
+ const unit = durationMatch[2];
188
+ duration = unit === 'd' ? num : unit === 'w' ? num * 7 : num * 24;
189
+ }
190
+ tasks.push({ name, start: 0, duration: Math.min(duration, 50) });
191
+ }
192
+ }
193
+ if (tasks.length === 0) {
194
+ return '[Empty Gantt chart]';
195
+ }
196
+ let output = 'Gantt Chart\n';
197
+ output += '─'.repeat(50) + '\n';
198
+ for (const task of tasks) {
199
+ const barLength = Math.max(1, Math.round(task.duration / 2));
200
+ const bar = '█'.repeat(barLength) + '░'.repeat(Math.max(0, 25 - barLength));
201
+ output += `${task.name.padEnd(12)} ${bar} ${task.duration}%\n`;
202
+ }
203
+ return output;
204
+ }
205
+ /**
206
+ * Render class diagram to ASCII
207
+ */
208
+ function renderClassDiagramASCII(code) {
209
+ const classes = new Map();
210
+ const lines = code.split('\n').map(l => l.trim()).filter(Boolean);
211
+ // Parse class: class ClassName { ...methods... }
212
+ for (const line of lines) {
213
+ const classMatch = line.match(/class\s+(\w+)/);
214
+ if (classMatch) {
215
+ classes.set(classMatch[1], []);
216
+ }
217
+ }
218
+ if (classes.size === 0) {
219
+ return '[Empty class diagram]';
220
+ }
221
+ let output = '';
222
+ for (const [className, members] of classes) {
223
+ const width = Math.max(className.length + 4, 16);
224
+ output += '┌' + '─'.repeat(width - 2) + '┐\n';
225
+ output += `│ ${className.padEnd(width - 4)} │\n`;
226
+ output += '├' + '─'.repeat(width - 2) + '┤\n';
227
+ output += '└' + '─'.repeat(width - 2) + '┘\n';
228
+ }
229
+ return output;
230
+ }
231
+ /**
232
+ * Render state diagram to ASCII
233
+ */
234
+ function renderStateDiagramASCII(code) {
235
+ const states = new Set();
236
+ const lines = code.split('\n').map(l => l.trim()).filter(Boolean);
237
+ // Parse states
238
+ for (const line of lines) {
239
+ const stateMatch = line.match(/\[?\*?\]?\s*-->\s*(\w+)/);
240
+ if (stateMatch) {
241
+ states.add(stateMatch[1]);
242
+ }
243
+ }
244
+ if (states.size === 0) {
245
+ return '[Empty state diagram]';
246
+ }
247
+ let output = '';
248
+ for (const state of states) {
249
+ const width = Math.max(state.length + 4, 12);
250
+ output += '●' + ' '.repeat(2) + state + '\n';
251
+ }
252
+ return output;
253
+ }
254
+ /**
255
+ * Check if text contains Mermaid diagram
256
+ */
257
+ function containsMermaid(text) {
258
+ return /```mermaid\n/i.test(text) || /^(graph|flowchart|sequenceDiagram|gantt|classDiagram|stateDiagram)/m.test(text);
259
+ }
260
+ //# sourceMappingURL=mermaid-ascii.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-ascii.js","sourceRoot":"","sources":["../../src/renderers/mermaid-ascii.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { MermaidTTYConfig } from '../types';
2
+ /**
3
+ * Mermaid diagram renderer for TTY
4
+ * Converts Mermaid diagrams to ASCII art using mermaid-ascii when available
5
+ */
6
+ export declare class MermaidRenderer {
7
+ private config;
8
+ private useExternalTool;
9
+ constructor(config?: MermaidTTYConfig);
10
+ /**
11
+ * Render mermaid diagram to ASCII (async to support external tool)
12
+ */
13
+ render(mermaidCode: string): Promise<string>;
14
+ /**
15
+ * Internal mermaid rendering (existing logic)
16
+ */
17
+ private renderInternal;
18
+ /**
19
+ * Render flowchart to ASCII
20
+ */
21
+ private renderFlowchart;
22
+ /**
23
+ * Get node shape from brackets
24
+ */
25
+ private getNodeShape;
26
+ /**
27
+ * Build flowchart ASCII representation
28
+ */
29
+ private buildFlowchartASCII;
30
+ /**
31
+ * Render a single node
32
+ */
33
+ private renderNode;
34
+ /**
35
+ * Render an edge
36
+ */
37
+ private renderEdge;
38
+ /**
39
+ * Render sequence diagram
40
+ */
41
+ private renderSequence;
42
+ /**
43
+ * Build sequence diagram ASCII
44
+ */
45
+ private buildSequenceASCII;
46
+ /**
47
+ * Render Gantt chart (simplified)
48
+ */
49
+ private renderGantt;
50
+ /**
51
+ * Render class diagram (simplified)
52
+ */
53
+ private renderClassDiagram;
54
+ /**
55
+ * Render state diagram (simplified)
56
+ */
57
+ private renderStateDiagram;
58
+ /**
59
+ * Render pie chart (simplified)
60
+ */
61
+ private renderPie;
62
+ /**
63
+ * Fallback renderer for unsupported diagrams
64
+ */
65
+ private renderFallback;
66
+ /**
67
+ * Update configuration
68
+ */
69
+ updateConfig(config: Partial<MermaidTTYConfig>): void;
70
+ }
71
+ /**
72
+ * Singleton instance
73
+ */
74
+ export declare const mermaidRenderer: MermaidRenderer;
75
+ /**
76
+ * Convenience function for rendering mermaid diagrams
77
+ */
78
+ export declare function renderMermaidDiagram(mermaidCode: string, config?: MermaidTTYConfig): Promise<string>;
79
+ //# sourceMappingURL=mermaid-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid-renderer.d.ts","sourceRoot":"","sources":["../../src/renderers/mermaid-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C;;;GAGG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,eAAe,CAAiB;gBAE5B,MAAM,GAAE,gBAAqB;IASzC;;OAEG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2BlD;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IA8BvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAgClB;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;CAGxD;AAsBD;;GAEG;AACH,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAErD;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,gBAAgB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAMjB"}