@nicomatt69/streamdown-tty 2.1.0

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 (115) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/LICENSE +21 -0
  3. package/README.md +287 -0
  4. package/dist/adapters/index.d.ts +185 -0
  5. package/dist/adapters/index.d.ts.map +1 -0
  6. package/dist/ai-sdk-adapter.d.ts +113 -0
  7. package/dist/ai-sdk-adapter.d.ts.map +1 -0
  8. package/dist/cli.d.ts +3 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/core/index.d.ts +209 -0
  11. package/dist/core/index.d.ts.map +1 -0
  12. package/dist/core/math-renderer.d.ts +40 -0
  13. package/dist/core/math-renderer.d.ts.map +1 -0
  14. package/dist/core/parser.d.ts +139 -0
  15. package/dist/core/parser.d.ts.map +1 -0
  16. package/dist/core/protocol.d.ts +319 -0
  17. package/dist/core/protocol.d.ts.map +1 -0
  18. package/dist/core/remend-tty.d.ts +68 -0
  19. package/dist/core/remend-tty.d.ts.map +1 -0
  20. package/dist/core/renderer.d.ts +286 -0
  21. package/dist/core/renderer.d.ts.map +1 -0
  22. package/dist/errors.d.ts +131 -0
  23. package/dist/errors.d.ts.map +1 -0
  24. package/dist/events.d.ts +185 -0
  25. package/dist/events.d.ts.map +1 -0
  26. package/dist/index.d.ts +39 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +12921 -0
  29. package/dist/parser/streaming-parser.d.ts +81 -0
  30. package/dist/parser/streaming-parser.d.ts.map +1 -0
  31. package/dist/performance.d.ts +139 -0
  32. package/dist/performance.d.ts.map +1 -0
  33. package/dist/plugins/index.d.ts +6 -0
  34. package/dist/plugins/index.d.ts.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.d.ts +65 -0
  38. package/dist/plugins/plugin-system.d.ts.map +1 -0
  39. package/dist/plugins/rehype/harden.d.ts +15 -0
  40. package/dist/plugins/rehype/harden.d.ts.map +1 -0
  41. package/dist/plugins/rehype/index.d.ts +5 -0
  42. package/dist/plugins/rehype/index.d.ts.map +1 -0
  43. package/dist/plugins/remark/index.d.ts +6 -0
  44. package/dist/plugins/remark/index.d.ts.map +1 -0
  45. package/dist/plugins/remark/math.d.ts +7 -0
  46. package/dist/plugins/remark/math.d.ts.map +1 -0
  47. package/dist/plugins/remark/mermaid.d.ts +7 -0
  48. package/dist/plugins/remark/mermaid.d.ts.map +1 -0
  49. package/dist/plugins/types.d.ts +72 -0
  50. package/dist/plugins/types.d.ts.map +1 -0
  51. package/dist/renderer/ansi-renderer.d.ts +76 -0
  52. package/dist/renderer/ansi-renderer.d.ts.map +1 -0
  53. package/dist/renderers/index.d.ts +7 -0
  54. package/dist/renderers/index.d.ts.map +1 -0
  55. package/dist/renderers/math-renderer.d.ts +49 -0
  56. package/dist/renderers/math-renderer.d.ts.map +1 -0
  57. package/dist/renderers/mermaid-ascii.d.ts +14 -0
  58. package/dist/renderers/mermaid-ascii.d.ts.map +1 -0
  59. package/dist/renderers/mermaid-renderer.d.ts +79 -0
  60. package/dist/renderers/mermaid-renderer.d.ts.map +1 -0
  61. package/dist/renderers/shiki-ansi.d.ts +48 -0
  62. package/dist/renderers/shiki-ansi.d.ts.map +1 -0
  63. package/dist/renderers/table-ascii.d.ts +30 -0
  64. package/dist/renderers/table-ascii.d.ts.map +1 -0
  65. package/dist/renderers/unicode-math.d.ts +29 -0
  66. package/dist/renderers/unicode-math.d.ts.map +1 -0
  67. package/dist/security/ansi-sanitizer.d.ts +71 -0
  68. package/dist/security/ansi-sanitizer.d.ts.map +1 -0
  69. package/dist/security/chunk-processor.d.ts +81 -0
  70. package/dist/security/chunk-processor.d.ts.map +1 -0
  71. package/dist/security/index.d.ts +6 -0
  72. package/dist/security/index.d.ts.map +1 -0
  73. package/dist/security/input-validator.d.ts +55 -0
  74. package/dist/security/input-validator.d.ts.map +1 -0
  75. package/dist/stream-protocol.d.ts +61 -0
  76. package/dist/stream-protocol.d.ts.map +1 -0
  77. package/dist/streamdown-compat.d.ts +72 -0
  78. package/dist/streamdown-compat.d.ts.map +1 -0
  79. package/dist/streaming/stream-stats.d.ts +97 -0
  80. package/dist/streaming/stream-stats.d.ts.map +1 -0
  81. package/dist/streaming-integration.d.ts +71 -0
  82. package/dist/streaming-integration.d.ts.map +1 -0
  83. package/dist/themes/index.d.ts +59 -0
  84. package/dist/themes/index.d.ts.map +1 -0
  85. package/dist/types/index.d.ts +168 -0
  86. package/dist/types/index.d.ts.map +1 -0
  87. package/dist/types/plugin-types.d.ts +5 -0
  88. package/dist/types/plugin-types.d.ts.map +1 -0
  89. package/dist/types/stream-events.d.ts +71 -0
  90. package/dist/types/stream-events.d.ts.map +1 -0
  91. package/dist/utils/blessed-syntax-highlighter.d.ts +124 -0
  92. package/dist/utils/blessed-syntax-highlighter.d.ts.map +1 -0
  93. package/dist/utils/enhanced-table-renderer.d.ts +77 -0
  94. package/dist/utils/enhanced-table-renderer.d.ts.map +1 -0
  95. package/dist/utils/formatting.d.ts +100 -0
  96. package/dist/utils/formatting.d.ts.map +1 -0
  97. package/dist/utils/index.d.ts +5 -0
  98. package/dist/utils/index.d.ts.map +1 -0
  99. package/dist/utils/math-unicode-renderer.d.ts +38 -0
  100. package/dist/utils/math-unicode-renderer.d.ts.map +1 -0
  101. package/dist/utils/mermaid-ascii-renderer.d.ts +20 -0
  102. package/dist/utils/mermaid-ascii-renderer.d.ts.map +1 -0
  103. package/dist/utils/mermaid-ascii.d.ts +53 -0
  104. package/dist/utils/mermaid-ascii.d.ts.map +1 -0
  105. package/dist/utils/shiki-ansi-renderer.d.ts +29 -0
  106. package/dist/utils/shiki-ansi-renderer.d.ts.map +1 -0
  107. package/dist/utils/syntax-highlighter.d.ts +87 -0
  108. package/dist/utils/syntax-highlighter.d.ts.map +1 -0
  109. package/dist/utils/table-formatter-inline.d.ts +37 -0
  110. package/dist/utils/table-formatter-inline.d.ts.map +1 -0
  111. package/dist/utils/table.d.ts +35 -0
  112. package/dist/utils/table.d.ts.map +1 -0
  113. package/dist/widgets/stream-indicator.d.ts +130 -0
  114. package/dist/widgets/stream-indicator.d.ts.map +1 -0
  115. package/package.json +129 -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,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,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"}
@@ -0,0 +1,48 @@
1
+ import { type BundledLanguage } from 'shiki';
2
+ /**
3
+ * Shiki to ANSI color converter
4
+ * Converts Shiki syntax highlighting to ANSI terminal codes
5
+ */
6
+ export declare class ShikiANSIRenderer {
7
+ private highlighter;
8
+ private initialized;
9
+ private theme;
10
+ private static readonly ANSI_COLORS;
11
+ /**
12
+ * Initialize Shiki highlighter
13
+ */
14
+ initialize(languages?: BundledLanguage[], theme?: 'light' | 'dark'): Promise<void>;
15
+ /**
16
+ * Highlight code with Shiki and convert to ANSI
17
+ */
18
+ highlight(code: string, language: string): Promise<string>;
19
+ /**
20
+ * Convert hex color to closest ANSI color code
21
+ */
22
+ private colorToANSI;
23
+ /**
24
+ * Check if highlighter supports a language
25
+ */
26
+ supportsLanguage(language: string): boolean;
27
+ /**
28
+ * Switch theme
29
+ */
30
+ setTheme(theme: 'light' | 'dark'): Promise<void>;
31
+ /**
32
+ * Load additional language
33
+ */
34
+ loadLanguage(language: BundledLanguage): Promise<void>;
35
+ /**
36
+ * Get loaded languages
37
+ */
38
+ getLoadedLanguages(): string[];
39
+ /**
40
+ * Check if initialized
41
+ */
42
+ isInitialized(): boolean;
43
+ }
44
+ /**
45
+ * Singleton instance
46
+ */
47
+ export declare const shikiRenderer: ShikiANSIRenderer;
48
+ //# sourceMappingURL=shiki-ansi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shiki-ansi.d.ts","sourceRoot":"","sources":["../../src/renderers/shiki-ansi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,eAAe,EAAqB,MAAM,OAAO,CAAC;AAErG;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,KAAK,CAA4B;IAGzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CA2BjC;IAEF;;OAEG;IACG,UAAU,CACZ,SAAS,GAAE,eAAe,EAAuE,EACjG,KAAK,GAAE,OAAO,GAAG,MAAe,GACjC,OAAO,CAAC,IAAI,CAAC;IAqBhB;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkChE;;OAEG;IACH,OAAO,CAAC,WAAW;IA4DnB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAK3C;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtD;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,aAAa,IAAI,OAAO;CAG3B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,mBAA0B,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Table rendering to ASCII art
3
+ * Handles markdown table parsing and ASCII box generation
4
+ * Inline rendering, no dependencies
5
+ */
6
+ export interface TableRenderOptions {
7
+ maxWidth?: number;
8
+ colWidths?: number[];
9
+ align?: Array<'left' | 'center' | 'right'>;
10
+ borderStyle?: 'simple' | 'rounded' | 'double';
11
+ stripMarkdown?: boolean;
12
+ colors?: boolean;
13
+ }
14
+ /**
15
+ * Render table to ASCII art
16
+ */
17
+ export declare function renderTableToASCII(headers: string[], rows: string[][], options?: TableRenderOptions): string;
18
+ /**
19
+ * Parse and render markdown table in one go
20
+ */
21
+ export declare function renderMarkdownTableToASCII(content: string, options?: TableRenderOptions): string;
22
+ /**
23
+ * Check if content looks like a markdown table
24
+ */
25
+ export declare function isMarkdownTable(content: string): boolean;
26
+ /**
27
+ * Extract table from markdown content
28
+ */
29
+ export declare function extractTable(content: string): string | null;
30
+ //# sourceMappingURL=table-ascii.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-ascii.d.ts","sourceRoot":"","sources":["../../src/renderers/table-ascii.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;IAC7C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AA6JD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,EAAE,EAAE,EAChB,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAyDR;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAexD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA2B3D"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * KaTeX/LaTeX → Unicode inline rendering
3
+ * Semplice, niente HTML/blessed, output string puro
4
+ * Compatibile con streaming chunks
5
+ */
6
+ /**
7
+ * Render LaTeX/KaTeX to Unicode string
8
+ * @param latex LaTeX source string
9
+ * @param inline Whether it's inline (true) or display (false) mode
10
+ * @returns Rendered Unicode string
11
+ */
12
+ export declare function renderMathToUnicode(latex: string, inline?: boolean): string;
13
+ /**
14
+ * Render display mode math (block, possibly multi-line)
15
+ */
16
+ export declare function renderMathBlock(latex: string): string;
17
+ /**
18
+ * Render inline math (no newlines)
19
+ */
20
+ export declare function renderMathInline(latex: string): string;
21
+ /**
22
+ * Detect if text contains math expressions
23
+ */
24
+ export declare function containsMath(text: string): boolean;
25
+ /**
26
+ * Extract and process all math expressions in text
27
+ */
28
+ export declare function processMathInText(text: string): string;
29
+ //# sourceMappingURL=unicode-math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unicode-math.d.ts","sourceRoot":"","sources":["../../src/renderers/unicode-math.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsDH;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,MAAM,CAyFjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUtD"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * ANSI Code Sanitizer
3
+ * Prevents ANSI injection attacks while preserving safe color codes
4
+ */
5
+ export interface SanitizationOptions {
6
+ stripAnsi?: boolean;
7
+ maxLength?: number;
8
+ allowUnicode?: boolean;
9
+ stripControlChars?: boolean;
10
+ }
11
+ /**
12
+ * Sanitize input for terminal output
13
+ * Removes dangerous sequences while preserving safe ANSI color codes
14
+ */
15
+ export declare function sanitizeForTerminal(input: string, options?: SanitizationOptions): string;
16
+ /**
17
+ * Validate input for safety
18
+ */
19
+ export interface ValidationResult {
20
+ valid: boolean;
21
+ errors: string[];
22
+ warnings: string[];
23
+ sanitized: string;
24
+ }
25
+ export declare function validateInput(input: string, maxLength?: number): ValidationResult;
26
+ /**
27
+ * Strip all ANSI codes (for logging, etc.)
28
+ */
29
+ export declare function stripAnsiCodes(text: string): string;
30
+ /**
31
+ * Check if text contains ANSI codes
32
+ */
33
+ export declare function hasAnsiCodes(text: string): boolean;
34
+ /**
35
+ * Count visible characters (excluding ANSI codes)
36
+ */
37
+ export declare function getVisibleLength(text: string): number;
38
+ /**
39
+ * Truncate text to visible length, preserving ANSI codes
40
+ */
41
+ export declare function truncatePreservingAnsi(text: string, maxVisible: number): string;
42
+ /**
43
+ * Create a content security policy validator
44
+ */
45
+ export declare class ContentValidator {
46
+ private maxLength;
47
+ private maxLines;
48
+ private allowedPatterns;
49
+ private blockedPatterns;
50
+ constructor(config?: {
51
+ maxLength?: number;
52
+ maxLines?: number;
53
+ });
54
+ /**
55
+ * Add allowed pattern
56
+ */
57
+ allowPattern(pattern: RegExp): void;
58
+ /**
59
+ * Add blocked pattern
60
+ */
61
+ blockPattern(pattern: RegExp): void;
62
+ /**
63
+ * Validate content
64
+ */
65
+ validate(content: string): ValidationResult;
66
+ }
67
+ /**
68
+ * Export validator instance
69
+ */
70
+ export declare const defaultValidator: ContentValidator;
71
+ //# sourceMappingURL=ansi-sanitizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi-sanitizer.d.ts","sourceRoot":"","sources":["../../src/security/ansi-sanitizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA0DD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CA4ER;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAgB,GAAG,gBAAgB,CAyC1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAuB/E;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAgB;gBAE3B,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAK9D;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;CAsC5C;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Inline security validation and sanitization for streaming chunks
3
+ * Handles all 10 edge cases for robust streaming
4
+ */
5
+ export interface ValidationResult {
6
+ valid: boolean;
7
+ error?: string;
8
+ sanitized?: string;
9
+ }
10
+ export interface SanitizationOptions {
11
+ mode?: 'strict' | 'balanced' | 'permissive';
12
+ maxBufferSize?: number;
13
+ stripControlChars?: boolean;
14
+ stripDangerousAnsi?: boolean;
15
+ }
16
+ /**
17
+ * Edge Case 1: Validate empty chunks
18
+ */
19
+ export declare function isEmptyChunk(chunk: string): boolean;
20
+ /**
21
+ * Edge Case 2: Handle very large chunks (> 50KB)
22
+ */
23
+ export declare function handleLargeChunk(chunk: string, maxSize?: number): string;
24
+ /**
25
+ * Edge Case 3: Normalize mixed line endings
26
+ * Handles \r\n, \r, and \n
27
+ */
28
+ export declare function normalizeLineEndings(chunk: string): string;
29
+ /**
30
+ * Edge Case 4: Decode HTML entities comprehensively
31
+ */
32
+ export declare function decodeHtmlEntities(chunk: string): string;
33
+ /**
34
+ * Edge Case 5: Unicode normalization NFC
35
+ */
36
+ export declare function normalizeUnicode(chunk: string): string;
37
+ /**
38
+ * Edge Case 6: Validate UTF-8 encoding
39
+ */
40
+ export declare function validateUTF8(chunk: string): {
41
+ valid: boolean;
42
+ error?: string;
43
+ };
44
+ /**
45
+ * Edge Case 7: Strip dangerous ANSI escape sequences
46
+ * Keep safe ones for terminal colors
47
+ */
48
+ export declare function stripDangerousAnsiCodes(chunk: string): string;
49
+ /**
50
+ * Edge Case 8: Remove control characters (but keep safe ones)
51
+ */
52
+ export declare function stripControlChars(chunk: string): string;
53
+ /**
54
+ * Edge Case 9: Remove null bytes
55
+ */
56
+ export declare function stripNullBytes(chunk: string): string;
57
+ /**
58
+ * Edge Case 10: Validate bracket/brace nesting depth
59
+ * Prevents stack overflow attacks
60
+ */
61
+ export declare function validateNestingDepth(chunk: string, maxDepth?: number): {
62
+ valid: boolean;
63
+ depth: number;
64
+ };
65
+ /**
66
+ * Comprehensive chunk validation
67
+ */
68
+ export declare function validateChunk(chunk: string): ValidationResult;
69
+ /**
70
+ * Comprehensive chunk sanitization (handles all edge cases)
71
+ */
72
+ export declare function sanitizeChunk(chunk: string, options?: SanitizationOptions): string;
73
+ /**
74
+ * Full validation + sanitization pipeline
75
+ */
76
+ export declare function processChunk(chunk: string, options?: SanitizationOptions): ValidationResult;
77
+ /**
78
+ * Detect suspicious patterns
79
+ */
80
+ export declare function detectSuspiciousPatterns(chunk: string): string[];
81
+ //# sourceMappingURL=chunk-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-processor.d.ts","sourceRoot":"","sources":["../../src/security/chunk-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAA;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,MAAkB,GAAG,MAAM,CAsBnF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwCxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAkB9E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgBvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAiB7G;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAmB7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,mBAAwB,GAChC,MAAM,CA2CR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,mBAAwB,GAChC,gBAAgB,CAclB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBhE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Security - Clean Exports
3
+ * Only exports the new ANSI sanitizer
4
+ */
5
+ export * from './ansi-sanitizer.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { SecurityConfig } from '../types';
2
+ /**
3
+ * Input validator for markdown content
4
+ * Prevents buffer overflow, injection attacks, and validates content
5
+ */
6
+ export declare class InputValidator {
7
+ private config;
8
+ constructor(config?: SecurityConfig);
9
+ /**
10
+ * Validate markdown input
11
+ */
12
+ validate(input: string): ValidationResult;
13
+ /**
14
+ * Validate link prefixes
15
+ */
16
+ private validateLinks;
17
+ /**
18
+ * Validate image prefixes
19
+ */
20
+ private validateImages;
21
+ /**
22
+ * Check for blessed tag injection
23
+ */
24
+ private checkBlessedInjection;
25
+ /**
26
+ * Sanitize HTML entities
27
+ */
28
+ private sanitizeHtmlEntities;
29
+ /**
30
+ * Update configuration
31
+ */
32
+ updateConfig(config: Partial<SecurityConfig>): void;
33
+ /**
34
+ * Get current configuration
35
+ */
36
+ getConfig(): Required<SecurityConfig>;
37
+ }
38
+ /**
39
+ * Validation result
40
+ */
41
+ export interface ValidationResult {
42
+ valid: boolean;
43
+ sanitized: string;
44
+ errors: string[];
45
+ warnings: string[];
46
+ }
47
+ /**
48
+ * Singleton instance
49
+ */
50
+ export declare const inputValidator: InputValidator;
51
+ /**
52
+ * Validate input with default validator
53
+ */
54
+ export declare function validateInput(input: string, config?: SecurityConfig): ValidationResult;
55
+ //# sourceMappingURL=input-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-validator.d.ts","sourceRoot":"","sources":["../../src/security/input-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C;;;GAGG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,GAAE,cAAmB;IAWvC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB;IA0DzC;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiC5B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAInD;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC;CAGxC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAMtF"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Stream Protocol Implementation
3
+ *
4
+ * This module provides utilities for validating, transforming, and
5
+ * processing stream events according to the AI SDK protocol.
6
+ */
7
+ import { StreamEvent, StreamEventOptions, ToolCallEvent, ToolResultEvent, TextDeltaEvent, ThinkingEvent, StatusEvent, ErrorEvent } from './types/stream-events';
8
+ export declare class StreamProtocol {
9
+ private static readonly VALID_EVENT_TYPES;
10
+ /**
11
+ * Validate a stream event structure
12
+ */
13
+ static validateEvent(event: any): event is StreamEvent;
14
+ private static validateToolCallEvent;
15
+ private static validateToolResultEvent;
16
+ private static validateTextDeltaEvent;
17
+ private static validateThinkingEvent;
18
+ private static validateStatusEvent;
19
+ private static validateErrorEvent;
20
+ /**
21
+ * Transform a generic event into a typed event
22
+ */
23
+ static transformEvent(event: StreamEvent): StreamEvent;
24
+ /**
25
+ * Create a text delta event
26
+ */
27
+ static createTextDelta(content: string, metadata?: Record<string, any>): TextDeltaEvent;
28
+ /**
29
+ * Create a tool call event
30
+ */
31
+ static createToolCall(toolName: string, toolArgs: Record<string, any>, metadata?: Record<string, any>): ToolCallEvent;
32
+ /**
33
+ * Create a tool result event
34
+ */
35
+ static createToolResult(toolResult: any, metadata?: Record<string, any>): ToolResultEvent;
36
+ /**
37
+ * Create a thinking event
38
+ */
39
+ static createThinking(content: string, metadata?: Record<string, any>): ThinkingEvent;
40
+ /**
41
+ * Create a reasoning event
42
+ */
43
+ static createReasoning(content: string, metadata?: Record<string, any>): ThinkingEvent;
44
+ /**
45
+ * Create a status event
46
+ */
47
+ static createStatus(content: string, status?: 'pending' | 'running' | 'completed' | 'failed', metadata?: Record<string, any>): StatusEvent;
48
+ /**
49
+ * Create an error event
50
+ */
51
+ static createError(content: string, error?: Error, metadata?: Record<string, any>): ErrorEvent;
52
+ /**
53
+ * Check if an event should be rendered based on options
54
+ */
55
+ static shouldRenderEvent(event: StreamEvent, options?: StreamEventOptions): boolean;
56
+ /**
57
+ * Get event priority for rendering order
58
+ */
59
+ static getEventPriority(event: StreamEvent): number;
60
+ }
61
+ //# sourceMappingURL=stream-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-protocol.d.ts","sourceRoot":"","sources":["../src/stream-protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,WAAW,EAEX,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,UAAU,EACX,MAAM,uBAAuB,CAAA;AAE9B,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAWvC;IAEF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,WAAW;IA8BtD,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAMpC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAItC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAIpC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAKlC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAYtD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,cAAc;IAWvF;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,aAAa;IAYhB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,UAAU,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,eAAe;IAWlB;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,aAAa;IAWhB;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,aAAa;IAWhB;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,EACvD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,WAAW;IAYd;;OAEG;IACH,MAAM,CAAC,WAAW,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,KAAK,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,UAAU;IAab;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO;IAUvF;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;CAgBpD"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Streamdown-Compatible API
3
+ *
4
+ * This module provides a streamdown-inspired API for streamtty,
5
+ * offering familiar patterns for web developers transitioning to TTY.
6
+ */
7
+ import { StreamdownTTYOptions } from './index.js';
8
+ import { StreamEvent, StreamEventType } from './types/stream-events.js';
9
+ import { MarkdownStyles } from './types/index.js';
10
+ export interface StreamRendererOptions extends Omit<StreamdownTTYOptions, 'theme'> {
11
+ theme?: 'dark' | 'light' | 'auto' | undefined;
12
+ parseIncompleteMarkdown?: boolean;
13
+ syntaxHighlight?: boolean;
14
+ styles?: Partial<MarkdownStyles>;
15
+ formatToolCalls?: boolean;
16
+ showThinking?: boolean;
17
+ maxToolResultLength?: number;
18
+ renderTimestamps?: boolean;
19
+ }
20
+ export interface StreamRenderer {
21
+ append: (chunk: string) => void;
22
+ appendStructured: (event: StreamEvent) => Promise<void>;
23
+ complete: () => void;
24
+ error: (err: Error) => void;
25
+ destroy: () => void;
26
+ on: (event: string, handler: Function) => void;
27
+ off: (event: string, handler: Function) => void;
28
+ emit: (event: string, ...args: any[]) => void;
29
+ isActive: () => boolean;
30
+ getContent: () => string;
31
+ clear: () => void;
32
+ streamEvents: (events: AsyncGenerator<StreamEvent>) => Promise<void>;
33
+ handleAISDKStream: (stream: AsyncGenerator<StreamEvent>) => AsyncGenerator<void>;
34
+ updateOptions: (options: Partial<StreamRendererOptions>) => void;
35
+ getOptions: () => StreamRendererOptions;
36
+ }
37
+ export interface HookOptions {
38
+ output?: NodeJS.WriteStream;
39
+ autoDestroy?: boolean;
40
+ }
41
+ export interface StreamHook {
42
+ renderer: StreamRenderer | null;
43
+ isActive: boolean;
44
+ destroy: () => void;
45
+ append: (chunk: string) => void;
46
+ appendStructured: (event: StreamEvent) => Promise<void>;
47
+ complete: () => void;
48
+ error: (err: Error) => void;
49
+ }
50
+ /**
51
+ * Create a streamdown-compatible renderer
52
+ */
53
+ export declare function createStreamRenderer(options?: StreamRendererOptions): StreamRenderer;
54
+ /**
55
+ * Hook-style API for React-like patterns
56
+ */
57
+ export declare function useStreamRenderer(options?: HookOptions): StreamHook;
58
+ /**
59
+ * Utility function to create a simple text streamer
60
+ */
61
+ export declare function createTextStreamer(options?: StreamRendererOptions): StreamRenderer;
62
+ /**
63
+ * Utility function to create an AI SDK streamer
64
+ */
65
+ export declare function createAIStreamer(options?: StreamRendererOptions): StreamRenderer;
66
+ /**
67
+ * Utility function to create a debug streamer with timestamps
68
+ */
69
+ export declare function createDebugStreamer(options?: StreamRendererOptions): StreamRenderer;
70
+ export type { StreamEvent, StreamEventType };
71
+ export { StreamProtocol } from './stream-protocol.js';
72
+ //# sourceMappingURL=streamdown-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamdown-compat.d.ts","sourceRoot":"","sources":["../src/streamdown-compat.ts"],"names":[],"mappings":"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"}