@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,354 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.highlightCodeWithShiki = highlightCodeWithShiki;
4
+ exports.getAnsiThemeColors = getAnsiThemeColors;
5
+ exports.formatCodeForTerminal = formatCodeForTerminal;
6
+ exports.clearShikiCache = clearShikiCache;
7
+ exports.getShikiCacheStats = getShikiCacheStats;
8
+ const shiki_1 = require("shiki");
9
+ /**
10
+ * ANSI color code generator from RGB values
11
+ */
12
+ function rgbToAnsi24bit(rgb) {
13
+ if (!rgb || rgb === 'transparent')
14
+ return '';
15
+ // Parse hex color
16
+ if (rgb.startsWith('#')) {
17
+ const hex = rgb.slice(1);
18
+ if (hex.length === 6) {
19
+ const r = parseInt(hex.slice(0, 2), 16);
20
+ const g = parseInt(hex.slice(2, 4), 16);
21
+ const b = parseInt(hex.slice(4, 6), 16);
22
+ return `\x1b[38;2;${r};${g};${b}m`;
23
+ }
24
+ }
25
+ return '';
26
+ }
27
+ /**
28
+ * Background ANSI color from RGB
29
+ */
30
+ function rgbToAnsiBg24bit(rgb) {
31
+ if (!rgb || rgb === 'transparent')
32
+ return '';
33
+ if (rgb.startsWith('#')) {
34
+ const hex = rgb.slice(1);
35
+ if (hex.length === 6) {
36
+ const r = parseInt(hex.slice(0, 2), 16);
37
+ const g = parseInt(hex.slice(2, 4), 16);
38
+ const b = parseInt(hex.slice(4, 6), 16);
39
+ return `\x1b[48;2;${r};${g};${b}m`;
40
+ }
41
+ }
42
+ return '';
43
+ }
44
+ /**
45
+ * ANSI style codes
46
+ */
47
+ const ANSI_STYLES = {
48
+ reset: '\x1b[0m',
49
+ bold: '\x1b[1m',
50
+ dim: '\x1b[2m',
51
+ italic: '\x1b[3m',
52
+ underline: '\x1b[4m',
53
+ inverse: '\x1b[7m',
54
+ };
55
+ /**
56
+ * Shiki highlighter cache
57
+ */
58
+ let highlighterCache = new Map();
59
+ /**
60
+ * Get or create Shiki highlighter
61
+ */
62
+ async function getShikiHighlighter(theme) {
63
+ const cacheKey = `shiki-${theme}`;
64
+ if (highlighterCache.has(cacheKey)) {
65
+ return highlighterCache.get(cacheKey);
66
+ }
67
+ try {
68
+ const highlighter = await (0, shiki_1.getHighlighter)({
69
+ themes: [theme],
70
+ langs: [
71
+ 'typescript',
72
+ 'javascript',
73
+ 'python',
74
+ 'bash',
75
+ 'sql',
76
+ 'json',
77
+ 'yaml',
78
+ 'markdown',
79
+ 'html',
80
+ 'css',
81
+ 'rust',
82
+ 'go',
83
+ 'java',
84
+ 'c',
85
+ 'cpp',
86
+ ],
87
+ });
88
+ highlighterCache.set(cacheKey, highlighter);
89
+ return highlighter;
90
+ }
91
+ catch (error) {
92
+ console.warn('Shiki initialization failed, using fallback highlighting');
93
+ return null;
94
+ }
95
+ }
96
+ /**
97
+ * Convert Shiki tokens to ANSI-colored string
98
+ */
99
+ async function tokensToAnsi(tokens, theme) {
100
+ let result = '';
101
+ for (const line of tokens) {
102
+ for (const token of line) {
103
+ const ansiColor = rgbToAnsi24bit(token.color);
104
+ if (ansiColor) {
105
+ result += `${ansiColor}${token.content}${ANSI_STYLES.reset}`;
106
+ }
107
+ else {
108
+ result += token.content;
109
+ }
110
+ }
111
+ result += '\n';
112
+ }
113
+ return result;
114
+ }
115
+ /**
116
+ * Highlight code using Shiki with ANSI output
117
+ */
118
+ async function highlightCodeWithShiki(code, lang = 'text', theme = 'nord') {
119
+ if (!code || code.length === 0) {
120
+ return code;
121
+ }
122
+ try {
123
+ const highlighter = await getShikiHighlighter(theme);
124
+ if (!highlighter) {
125
+ // Fallback: return code as-is with basic coloring
126
+ return applyBasicHighlighting(code, lang);
127
+ }
128
+ // Validate language
129
+ const validLang = highlighter.getLoadedLanguages().includes(lang)
130
+ ? lang
131
+ : 'text';
132
+ const html = await highlighter.codeToHtml(code, {
133
+ lang: validLang,
134
+ theme: theme,
135
+ });
136
+ // Parse HTML and convert to ANSI
137
+ return htmlToAnsi(html);
138
+ }
139
+ catch (error) {
140
+ console.warn('Shiki highlighting failed, using fallback');
141
+ return applyBasicHighlighting(code, lang);
142
+ }
143
+ }
144
+ /**
145
+ * Convert HTML from Shiki to ANSI codes
146
+ * Extracts color spans and converts to ANSI
147
+ */
148
+ function htmlToAnsi(html) {
149
+ // Extract content from <pre> tag
150
+ const preMatch = html.match(/<pre[^>]*>([\s\S]*?)<\/pre>/);
151
+ if (!preMatch)
152
+ return '';
153
+ let content = preMatch[1];
154
+ // Replace spans with color codes
155
+ // Pattern: <span style="color: #RRGGBB">text</span>
156
+ content = content.replace(/<span style="color: (#[0-9a-fA-F]{6})">([\s\S]*?)<\/span>/g, (_, color, text) => {
157
+ const ansiCode = rgbToAnsi24bit(color);
158
+ return `${ansiCode}${text}${ANSI_STYLES.reset}`;
159
+ });
160
+ // Remove remaining HTML tags
161
+ content = content.replace(/<[^>]+>/g, '');
162
+ // Decode HTML entities
163
+ content = content
164
+ .replace(/&lt;/g, '<')
165
+ .replace(/&gt;/g, '>')
166
+ .replace(/&amp;/g, '&')
167
+ .replace(/&quot;/g, '"')
168
+ .replace(/&#39;/g, "'");
169
+ return content;
170
+ }
171
+ /**
172
+ * Basic syntax highlighting fallback
173
+ * Simple keyword and string coloring
174
+ */
175
+ function applyBasicHighlighting(code, lang) {
176
+ let highlighted = code;
177
+ // Keywords
178
+ const keywords = [
179
+ 'function', 'const', 'let', 'var', 'if', 'else', 'return',
180
+ 'for', 'while', 'class', 'import', 'export', 'from', 'as',
181
+ 'async', 'await', 'try', 'catch', 'finally', 'throw',
182
+ 'new', 'this', 'super', 'extends', 'implements',
183
+ 'public', 'private', 'protected', 'static', 'readonly',
184
+ 'interface', 'type', 'enum', 'namespace', 'module',
185
+ 'true', 'false', 'null', 'undefined', 'default',
186
+ ];
187
+ // Color keywords (magenta)
188
+ for (const keyword of keywords) {
189
+ const regex = new RegExp(`\\b(${keyword})\\b`, 'g');
190
+ highlighted = highlighted.replace(regex, `\x1b[35m$1\x1b[0m`);
191
+ }
192
+ // Color strings (green)
193
+ highlighted = highlighted.replace(/(["'`])(?:(?=(\\?))\2.)*?\1/g, '\x1b[32m$&\x1b[0m');
194
+ // Color comments (gray)
195
+ highlighted = highlighted.replace(/\/\/.*$/gm, '\x1b[90m$&\x1b[0m');
196
+ highlighted = highlighted.replace(/\/\*[\s\S]*?\*\//g, '\x1b[90m$&\x1b[0m');
197
+ // Color numbers (cyan)
198
+ highlighted = highlighted.replace(/\b(\d+\.?\d*)\b/g, '\x1b[36m$1\x1b[0m');
199
+ return highlighted;
200
+ }
201
+ /**
202
+ * Get ANSI theme from Shiki theme name
203
+ */
204
+ function getAnsiThemeColors(theme) {
205
+ // Common color mappings for popular themes
206
+ const themes = {
207
+ nord: {
208
+ foreground: '#D8DEE9',
209
+ background: '#2E3440',
210
+ keyword: '#81A1C1',
211
+ string: '#A3BE8C',
212
+ comment: '#616E88',
213
+ number: '#B48EAD',
214
+ function: '#88C0D0',
215
+ },
216
+ 'github-light': {
217
+ foreground: '#24292E',
218
+ background: '#FFFFFF',
219
+ keyword: '#D73A49',
220
+ string: '#032F62',
221
+ comment: '#6A737D',
222
+ number: '#005CC5',
223
+ function: '#6F42C1',
224
+ },
225
+ 'github-dark': {
226
+ foreground: '#C9D1D9',
227
+ background: '#0D1117',
228
+ keyword: '#FF7B72',
229
+ string: '#A5D6FF',
230
+ comment: '#8B949E',
231
+ number: '#79C0FF',
232
+ function: '#D2A8FF',
233
+ },
234
+ 'one-dark-pro': {
235
+ foreground: '#ABB2BF',
236
+ background: '#282C34',
237
+ keyword: '#C678DD',
238
+ string: '#98C379',
239
+ comment: '#5C6370',
240
+ number: '#D19A66',
241
+ function: '#61AFEF',
242
+ },
243
+ dracula: {
244
+ foreground: '#F8F8F2',
245
+ background: '#282A36',
246
+ keyword: '#FF79C6',
247
+ string: '#F1FA8C',
248
+ comment: '#6272A4',
249
+ number: '#BD93F9',
250
+ function: '#50FA7B',
251
+ },
252
+ };
253
+ return themes[theme] || themes.nord;
254
+ }
255
+ /**
256
+ * Format code with syntax highlighting for terminal output
257
+ * Returns ready-to-display ANSI string
258
+ */
259
+ async function formatCodeForTerminal(code, lang = 'text', options) {
260
+ const theme = options?.theme || 'nord';
261
+ let highlighted = await highlightCodeWithShiki(code, lang, theme);
262
+ // Add line numbers if requested
263
+ if (options?.lineNumbers) {
264
+ highlighted = addLineNumbers(highlighted);
265
+ }
266
+ // Word wrap if max width specified
267
+ if (options?.maxWidth) {
268
+ highlighted = wrapLines(highlighted, options.maxWidth);
269
+ }
270
+ return highlighted;
271
+ }
272
+ /**
273
+ * Add line numbers to code
274
+ */
275
+ function addLineNumbers(code) {
276
+ const lines = code.split('\n');
277
+ const maxLineNum = lines.length;
278
+ const maxDigits = String(maxLineNum).length;
279
+ return lines
280
+ .map((line, index) => {
281
+ const lineNum = String(index + 1).padStart(maxDigits, ' ');
282
+ return `\x1b[90m${lineNum}\x1b[0m │ ${line}`;
283
+ })
284
+ .join('\n');
285
+ }
286
+ /**
287
+ * Word wrap lines while preserving ANSI codes
288
+ */
289
+ function wrapLines(code, maxWidth) {
290
+ return code
291
+ .split('\n')
292
+ .map(line => wrapLine(line, maxWidth))
293
+ .join('\n');
294
+ }
295
+ /**
296
+ * Wrap single line while preserving ANSI codes
297
+ */
298
+ function wrapLine(line, maxWidth) {
299
+ // Remove ANSI codes to calculate visible length
300
+ const visible = line.replace(/\x1b\[[0-9;]*m/g, '');
301
+ if (visible.length <= maxWidth) {
302
+ return line;
303
+ }
304
+ // Split and re-add codes per segment
305
+ const wrapped = [];
306
+ let current = '';
307
+ let visibleCurrent = '';
308
+ let inCode = false;
309
+ let currentCode = '';
310
+ for (let i = 0; i < line.length; i++) {
311
+ const char = line[i];
312
+ if (char === '\x1b' && line[i + 1] === '[') {
313
+ // Start of ANSI code
314
+ inCode = true;
315
+ currentCode = char;
316
+ }
317
+ else if (inCode) {
318
+ currentCode += char;
319
+ if (char === 'm') {
320
+ inCode = false;
321
+ current += currentCode;
322
+ }
323
+ }
324
+ else {
325
+ current += char;
326
+ visibleCurrent += char;
327
+ if (visibleCurrent.length >= maxWidth) {
328
+ wrapped.push(current);
329
+ current = '';
330
+ visibleCurrent = '';
331
+ }
332
+ }
333
+ }
334
+ if (current) {
335
+ wrapped.push(current);
336
+ }
337
+ return wrapped.join('\n');
338
+ }
339
+ /**
340
+ * Clear Shiki cache (for testing or memory pressure)
341
+ */
342
+ function clearShikiCache() {
343
+ highlighterCache.clear();
344
+ }
345
+ /**
346
+ * Get cache stats
347
+ */
348
+ function getShikiCacheStats() {
349
+ return {
350
+ size: highlighterCache.size,
351
+ keys: Array.from(highlighterCache.keys()),
352
+ };
353
+ }
354
+ //# sourceMappingURL=shiki-ansi-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shiki-ansi-renderer.js","sourceRoot":"","sources":["../../src/utils/shiki-ansi-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * ANSI-based syntax highlighting for terminal output
3
+ * Uses standard ANSI color codes for highlighting paths, keywords, and other elements
4
+ */
5
+ /**
6
+ * ANSI color codes for syntax highlighting
7
+ */
8
+ export declare const syntaxColors: {
9
+ path: string;
10
+ lineNumber: string;
11
+ keyword: string;
12
+ string: string;
13
+ number: string;
14
+ comment: string;
15
+ title: string;
16
+ error: string;
17
+ success: string;
18
+ warning: string;
19
+ codeBlock: string;
20
+ package: string;
21
+ reset: string;
22
+ };
23
+ /**
24
+ * Highlight file paths in text
25
+ * Matches: /path/to/file.ts, ./relative/path.js, ~/home/path
26
+ * NOTE: Disabled to avoid ANSI code injection issues
27
+ */
28
+ export declare function highlightPaths(text: string): string;
29
+ /**
30
+ * Highlight file references with line numbers
31
+ * Matches: file.ts:123, /path/to/file.js:45:10
32
+ * NOTE: Disabled to avoid ANSI code injection issues
33
+ */
34
+ export declare function highlightFileRefs(text: string): string;
35
+ /**
36
+ * Highlight programming keywords
37
+ */
38
+ export declare function highlightKeywords(text: string): string;
39
+ /**
40
+ * Highlight markdown-style titles
41
+ * Matches: # Title, ## Subtitle, etc.
42
+ */
43
+ export declare function highlightTitles(text: string): string;
44
+ /**
45
+ * Highlight string literals in quotes
46
+ */
47
+ export declare function highlightStrings(text: string): string;
48
+ /**
49
+ * Highlight numbers
50
+ */
51
+ export declare function highlightNumbers(text: string): string;
52
+ /**
53
+ * Highlight code comments
54
+ * Matches single-line and multi-line comments, bash comments
55
+ */
56
+ export declare function highlightComments(text: string): string;
57
+ /**
58
+ * Highlight shell/bash commands
59
+ */
60
+ export declare function highlightShellCommands(text: string): string;
61
+ /**
62
+ * Highlight package names like @scope/package or package-name
63
+ */
64
+ export declare function highlightPackages(text: string): string;
65
+ /**
66
+ * Highlight markdown code blocks with syntax highlighting
67
+ */
68
+ export declare function highlightCodeBlocks(text: string): string;
69
+ /**
70
+ * Apply comprehensive syntax highlighting to text
71
+ * Applies all highlighting rules in the correct order
72
+ */
73
+ export declare function applySyntaxHighlight(text: string): string;
74
+ /**
75
+ * Apply syntax highlighting only to specific elements (more conservative)
76
+ */
77
+ export declare function applyLightSyntaxHighlight(text: string): string;
78
+ /**
79
+ * Strip all ANSI color codes from text
80
+ * Handles multiple ANSI escape sequence formats
81
+ */
82
+ export declare function stripAnsiColors(text: string): string;
83
+ /**
84
+ * Colorize entire text block with a specific color
85
+ */
86
+ export declare function colorizeBlock(text: string, color: string): string;
87
+ //# sourceMappingURL=syntax-highlighter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax-highlighter.d.ts","sourceRoot":"","sources":["../../src/utils/syntax-highlighter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcxB,CAAA;AAqBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUtD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0BtD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBxD;AAkCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsCzD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjE"}