@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.
- package/CHANGELOG.md +113 -0
- package/LICENSE +21 -0
- package/README.md +287 -0
- package/dist/adapters/index.d.ts +185 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/ai-sdk-adapter.d.ts +113 -0
- package/dist/ai-sdk-adapter.d.ts.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/core/index.d.ts +209 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/math-renderer.d.ts +40 -0
- package/dist/core/math-renderer.d.ts.map +1 -0
- package/dist/core/parser.d.ts +139 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/protocol.d.ts +319 -0
- package/dist/core/protocol.d.ts.map +1 -0
- package/dist/core/remend-tty.d.ts +68 -0
- package/dist/core/remend-tty.d.ts.map +1 -0
- package/dist/core/renderer.d.ts +286 -0
- package/dist/core/renderer.d.ts.map +1 -0
- package/dist/errors.d.ts +131 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/events.d.ts +185 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12921 -0
- package/dist/parser/streaming-parser.d.ts +81 -0
- package/dist/parser/streaming-parser.d.ts.map +1 -0
- package/dist/performance.d.ts +139 -0
- package/dist/performance.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +6 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/plugin-system-inline.d.ts +116 -0
- package/dist/plugins/plugin-system-inline.d.ts.map +1 -0
- package/dist/plugins/plugin-system.d.ts +65 -0
- package/dist/plugins/plugin-system.d.ts.map +1 -0
- package/dist/plugins/rehype/harden.d.ts +15 -0
- package/dist/plugins/rehype/harden.d.ts.map +1 -0
- package/dist/plugins/rehype/index.d.ts +5 -0
- package/dist/plugins/rehype/index.d.ts.map +1 -0
- package/dist/plugins/remark/index.d.ts +6 -0
- package/dist/plugins/remark/index.d.ts.map +1 -0
- package/dist/plugins/remark/math.d.ts +7 -0
- package/dist/plugins/remark/math.d.ts.map +1 -0
- package/dist/plugins/remark/mermaid.d.ts +7 -0
- package/dist/plugins/remark/mermaid.d.ts.map +1 -0
- package/dist/plugins/types.d.ts +72 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/renderer/ansi-renderer.d.ts +76 -0
- package/dist/renderer/ansi-renderer.d.ts.map +1 -0
- package/dist/renderers/index.d.ts +7 -0
- package/dist/renderers/index.d.ts.map +1 -0
- package/dist/renderers/math-renderer.d.ts +49 -0
- package/dist/renderers/math-renderer.d.ts.map +1 -0
- package/dist/renderers/mermaid-ascii.d.ts +14 -0
- package/dist/renderers/mermaid-ascii.d.ts.map +1 -0
- package/dist/renderers/mermaid-renderer.d.ts +79 -0
- package/dist/renderers/mermaid-renderer.d.ts.map +1 -0
- package/dist/renderers/shiki-ansi.d.ts +48 -0
- package/dist/renderers/shiki-ansi.d.ts.map +1 -0
- package/dist/renderers/table-ascii.d.ts +30 -0
- package/dist/renderers/table-ascii.d.ts.map +1 -0
- package/dist/renderers/unicode-math.d.ts +29 -0
- package/dist/renderers/unicode-math.d.ts.map +1 -0
- package/dist/security/ansi-sanitizer.d.ts +71 -0
- package/dist/security/ansi-sanitizer.d.ts.map +1 -0
- package/dist/security/chunk-processor.d.ts +81 -0
- package/dist/security/chunk-processor.d.ts.map +1 -0
- package/dist/security/index.d.ts +6 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/input-validator.d.ts +55 -0
- package/dist/security/input-validator.d.ts.map +1 -0
- package/dist/stream-protocol.d.ts +61 -0
- package/dist/stream-protocol.d.ts.map +1 -0
- package/dist/streamdown-compat.d.ts +72 -0
- package/dist/streamdown-compat.d.ts.map +1 -0
- package/dist/streaming/stream-stats.d.ts +97 -0
- package/dist/streaming/stream-stats.d.ts.map +1 -0
- package/dist/streaming-integration.d.ts +71 -0
- package/dist/streaming-integration.d.ts.map +1 -0
- package/dist/themes/index.d.ts +59 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +168 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/plugin-types.d.ts +5 -0
- package/dist/types/plugin-types.d.ts.map +1 -0
- package/dist/types/stream-events.d.ts +71 -0
- package/dist/types/stream-events.d.ts.map +1 -0
- package/dist/utils/blessed-syntax-highlighter.d.ts +124 -0
- package/dist/utils/blessed-syntax-highlighter.d.ts.map +1 -0
- package/dist/utils/enhanced-table-renderer.d.ts +77 -0
- package/dist/utils/enhanced-table-renderer.d.ts.map +1 -0
- package/dist/utils/formatting.d.ts +100 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/math-unicode-renderer.d.ts +38 -0
- package/dist/utils/math-unicode-renderer.d.ts.map +1 -0
- package/dist/utils/mermaid-ascii-renderer.d.ts +20 -0
- package/dist/utils/mermaid-ascii-renderer.d.ts.map +1 -0
- package/dist/utils/mermaid-ascii.d.ts +53 -0
- package/dist/utils/mermaid-ascii.d.ts.map +1 -0
- package/dist/utils/shiki-ansi-renderer.d.ts +29 -0
- package/dist/utils/shiki-ansi-renderer.d.ts.map +1 -0
- package/dist/utils/syntax-highlighter.d.ts +87 -0
- package/dist/utils/syntax-highlighter.d.ts.map +1 -0
- package/dist/utils/table-formatter-inline.d.ts +37 -0
- package/dist/utils/table-formatter-inline.d.ts.map +1 -0
- package/dist/utils/table.d.ts +35 -0
- package/dist/utils/table.d.ts.map +1 -0
- package/dist/widgets/stream-indicator.d.ts +130 -0
- package/dist/widgets/stream-indicator.d.ts.map +1 -0
- 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 @@
|
|
|
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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"}
|