@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
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive Error Handling
|
|
3
|
+
*
|
|
4
|
+
* This module provides enterprise-level error handling for streamtty,
|
|
5
|
+
* including custom error classes, graceful degradation, and safe rendering.
|
|
6
|
+
*/
|
|
7
|
+
import { StreamEvent } from './types/stream-events';
|
|
8
|
+
/**
|
|
9
|
+
* Base error class for all streamtty errors
|
|
10
|
+
*/
|
|
11
|
+
export declare class StreamttyError extends Error {
|
|
12
|
+
readonly code: string;
|
|
13
|
+
readonly timestamp: number;
|
|
14
|
+
readonly context?: Record<string, any>;
|
|
15
|
+
constructor(message: string, code?: string, context?: Record<string, any>);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parser-related errors
|
|
19
|
+
*/
|
|
20
|
+
export declare class StreamttyParseError extends StreamttyError {
|
|
21
|
+
readonly chunk?: string;
|
|
22
|
+
readonly position?: number;
|
|
23
|
+
constructor(message: string, chunk?: string, position?: number, context?: Record<string, any>);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Renderer-related errors
|
|
27
|
+
*/
|
|
28
|
+
export declare class StreamttyRenderError extends StreamttyError {
|
|
29
|
+
readonly tokens?: any[];
|
|
30
|
+
readonly renderContext?: Record<string, any>;
|
|
31
|
+
constructor(message: string, tokens?: any[], renderContext?: Record<string, any>, context?: Record<string, any>);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* AI SDK adapter errors
|
|
35
|
+
*/
|
|
36
|
+
export declare class StreamttyAISDKError extends StreamttyError {
|
|
37
|
+
readonly event?: StreamEvent;
|
|
38
|
+
readonly adapterContext?: Record<string, any>;
|
|
39
|
+
constructor(message: string, event?: StreamEvent, adapterContext?: Record<string, any>, context?: Record<string, any>);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Configuration errors
|
|
43
|
+
*/
|
|
44
|
+
export declare class StreamttyConfigError extends StreamttyError {
|
|
45
|
+
readonly option?: string;
|
|
46
|
+
readonly value?: any;
|
|
47
|
+
constructor(message: string, option?: string, value?: any, context?: Record<string, any>);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Blessed/TTY related errors
|
|
51
|
+
*/
|
|
52
|
+
export declare class StreamttyTTYError extends StreamttyError {
|
|
53
|
+
readonly ttyOperation?: string;
|
|
54
|
+
readonly blessedContext?: Record<string, any>;
|
|
55
|
+
constructor(message: string, ttyOperation?: string, blessedContext?: Record<string, any>, context?: Record<string, any>);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Performance-related errors
|
|
59
|
+
*/
|
|
60
|
+
export declare class StreamttyPerformanceError extends StreamttyError {
|
|
61
|
+
readonly operation?: string;
|
|
62
|
+
readonly duration?: number;
|
|
63
|
+
readonly threshold?: number;
|
|
64
|
+
constructor(message: string, operation?: string, duration?: number, threshold?: number, context?: Record<string, any>);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Error handler interface
|
|
68
|
+
*/
|
|
69
|
+
export interface ErrorHandler {
|
|
70
|
+
handle(error: Error, context?: Record<string, any>): void | Promise<void>;
|
|
71
|
+
shouldRetry(error: Error, attempt: number): boolean;
|
|
72
|
+
shouldFallback(error: Error): boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Default error handler implementation
|
|
76
|
+
*/
|
|
77
|
+
export declare class DefaultErrorHandler implements ErrorHandler {
|
|
78
|
+
private maxRetries;
|
|
79
|
+
private fallbackEnabled;
|
|
80
|
+
constructor(options?: {
|
|
81
|
+
maxRetries?: number;
|
|
82
|
+
fallbackEnabled?: boolean;
|
|
83
|
+
});
|
|
84
|
+
handle(error: Error, context?: Record<string, any>): void;
|
|
85
|
+
shouldRetry(error: Error, attempt: number): boolean;
|
|
86
|
+
shouldFallback(error: Error): boolean;
|
|
87
|
+
private formatErrorInfo;
|
|
88
|
+
private isCriticalError;
|
|
89
|
+
private isWarning;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Safe operation wrapper
|
|
93
|
+
*/
|
|
94
|
+
export declare class SafeOperation {
|
|
95
|
+
private errorHandler;
|
|
96
|
+
private retryCount;
|
|
97
|
+
constructor(errorHandler?: ErrorHandler);
|
|
98
|
+
/**
|
|
99
|
+
* Execute an operation with error handling and retry logic
|
|
100
|
+
*/
|
|
101
|
+
execute<T>(operation: () => Promise<T>, context?: Record<string, any>): Promise<T | null>;
|
|
102
|
+
/**
|
|
103
|
+
* Execute with fallback
|
|
104
|
+
*/
|
|
105
|
+
private executeFallback;
|
|
106
|
+
private fallbackRender;
|
|
107
|
+
private fallbackAISDK;
|
|
108
|
+
private delay;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Error recovery utilities
|
|
112
|
+
*/
|
|
113
|
+
export declare class ErrorRecovery {
|
|
114
|
+
/**
|
|
115
|
+
* Attempt to recover from a parsing error
|
|
116
|
+
*/
|
|
117
|
+
static recoverFromParseError(error: StreamttyParseError, content: string): string;
|
|
118
|
+
/**
|
|
119
|
+
* Attempt to recover from a render error
|
|
120
|
+
*/
|
|
121
|
+
static recoverFromRenderError(error: StreamttyRenderError, content: string): string;
|
|
122
|
+
/**
|
|
123
|
+
* Attempt to recover from an AI SDK error
|
|
124
|
+
*/
|
|
125
|
+
static recoverFromAISDKError(error: StreamttyAISDKError): string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Global error handler setup
|
|
129
|
+
*/
|
|
130
|
+
export declare function setupGlobalErrorHandling(): void;
|
|
131
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/events.d.ts
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event-Driven Architecture
|
|
3
|
+
*
|
|
4
|
+
* This module provides a comprehensive event system for streamtty,
|
|
5
|
+
* enabling lifecycle hooks, custom event handling, and inter-component communication.
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
import { StreamEvent } from './types/stream-events';
|
|
9
|
+
/**
|
|
10
|
+
* Streamtty event types
|
|
11
|
+
*/
|
|
12
|
+
export type StreamttyEventType = 'streamtty:init' | 'streamtty:destroy' | 'streamtty:clear' | 'streamtty:render' | 'streamtty:error' | 'parser:chunk' | 'parser:complete' | 'parser:error' | 'renderer:start' | 'renderer:complete' | 'renderer:error' | 'ai:event' | 'ai:stream_start' | 'ai:stream_complete' | 'ai:stream_error' | 'ui:keypress' | 'ui:scroll' | 'ui:resize' | 'performance:slow' | 'performance:memory' | 'custom';
|
|
13
|
+
/**
|
|
14
|
+
* Event data interfaces
|
|
15
|
+
*/
|
|
16
|
+
export interface StreamttyEventData {
|
|
17
|
+
timestamp: number;
|
|
18
|
+
source: string;
|
|
19
|
+
context?: Record<string, any>;
|
|
20
|
+
}
|
|
21
|
+
export interface ParserEventData extends StreamttyEventData {
|
|
22
|
+
chunk?: string;
|
|
23
|
+
tokens?: any[];
|
|
24
|
+
error?: Error;
|
|
25
|
+
}
|
|
26
|
+
export interface RendererEventData extends StreamttyEventData {
|
|
27
|
+
tokens?: any[];
|
|
28
|
+
duration?: number;
|
|
29
|
+
error?: Error;
|
|
30
|
+
}
|
|
31
|
+
export interface AIEventData extends StreamttyEventData {
|
|
32
|
+
event?: StreamEvent;
|
|
33
|
+
streamId?: string;
|
|
34
|
+
error?: Error;
|
|
35
|
+
}
|
|
36
|
+
export interface UIEventData extends StreamttyEventData {
|
|
37
|
+
key?: string;
|
|
38
|
+
direction?: 'up' | 'down' | 'left' | 'right';
|
|
39
|
+
delta?: number;
|
|
40
|
+
dimensions?: {
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface PerformanceEventData extends StreamttyEventData {
|
|
46
|
+
operation: string;
|
|
47
|
+
duration: number;
|
|
48
|
+
threshold: number;
|
|
49
|
+
memoryUsage?: NodeJS.MemoryUsage;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Event handler types
|
|
53
|
+
*/
|
|
54
|
+
export type StreamttyEventHandler<T = any> = (data: T) => void | Promise<void>;
|
|
55
|
+
export type StreamttyEventFilter<T = any> = (data: T) => boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Enhanced EventEmitter for Streamtty
|
|
58
|
+
*/
|
|
59
|
+
export declare class StreamttyEventEmitter extends EventEmitter {
|
|
60
|
+
private eventHistory;
|
|
61
|
+
private maxHistorySize;
|
|
62
|
+
private filters;
|
|
63
|
+
constructor(maxHistorySize?: number);
|
|
64
|
+
/**
|
|
65
|
+
* Emit an event with automatic timestamp and history tracking
|
|
66
|
+
*/
|
|
67
|
+
emit(event: string, data?: any): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Add event listener with optional filter
|
|
70
|
+
*/
|
|
71
|
+
on<T = any>(event: string, handler: StreamttyEventHandler<T>, filter?: StreamttyEventFilter<T>): this;
|
|
72
|
+
/**
|
|
73
|
+
* Add one-time event listener
|
|
74
|
+
*/
|
|
75
|
+
once<T = any>(event: string, handler: StreamttyEventHandler<T>, filter?: StreamttyEventFilter<T>): this;
|
|
76
|
+
/**
|
|
77
|
+
* Add event filter
|
|
78
|
+
*/
|
|
79
|
+
addFilter<T = any>(event: string, filter: StreamttyEventFilter<T>): this;
|
|
80
|
+
/**
|
|
81
|
+
* Remove event filter
|
|
82
|
+
*/
|
|
83
|
+
removeFilter(event: string, filter?: StreamttyEventFilter): this;
|
|
84
|
+
/**
|
|
85
|
+
* Get event history
|
|
86
|
+
*/
|
|
87
|
+
getHistory(event?: string, limit?: number): Array<{
|
|
88
|
+
type: string;
|
|
89
|
+
data: any;
|
|
90
|
+
timestamp: number;
|
|
91
|
+
}>;
|
|
92
|
+
/**
|
|
93
|
+
* Clear event history
|
|
94
|
+
*/
|
|
95
|
+
clearHistory(): this;
|
|
96
|
+
/**
|
|
97
|
+
* Get event statistics
|
|
98
|
+
*/
|
|
99
|
+
getEventStats(): Record<string, number>;
|
|
100
|
+
private shouldFilterEvent;
|
|
101
|
+
private addToHistory;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Event Bus for inter-component communication
|
|
105
|
+
*/
|
|
106
|
+
export declare class StreamttyEventBus extends StreamttyEventEmitter {
|
|
107
|
+
private components;
|
|
108
|
+
/**
|
|
109
|
+
* Register a component
|
|
110
|
+
*/
|
|
111
|
+
registerComponent(name: string, component: EventEmitter): this;
|
|
112
|
+
/**
|
|
113
|
+
* Unregister a component
|
|
114
|
+
*/
|
|
115
|
+
unregisterComponent(name: string): this;
|
|
116
|
+
/**
|
|
117
|
+
* Get a registered component
|
|
118
|
+
*/
|
|
119
|
+
getComponent<T extends EventEmitter = EventEmitter>(name: string): T | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* Broadcast event to all components
|
|
122
|
+
*/
|
|
123
|
+
broadcast(event: string, data?: any): this;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Lifecycle event manager
|
|
127
|
+
*/
|
|
128
|
+
export declare class StreamttyLifecycle {
|
|
129
|
+
private eventBus;
|
|
130
|
+
private hooks;
|
|
131
|
+
constructor(eventBus: StreamttyEventBus);
|
|
132
|
+
/**
|
|
133
|
+
* Register a lifecycle hook
|
|
134
|
+
*/
|
|
135
|
+
on(event: StreamttyEventType, handler: StreamttyEventHandler): this;
|
|
136
|
+
/**
|
|
137
|
+
* Remove a lifecycle hook
|
|
138
|
+
*/
|
|
139
|
+
off(event: StreamttyEventType, handler: StreamttyEventHandler): this;
|
|
140
|
+
/**
|
|
141
|
+
* Trigger a lifecycle event
|
|
142
|
+
*/
|
|
143
|
+
trigger(event: StreamttyEventType, data?: any): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Trigger multiple lifecycle events
|
|
146
|
+
*/
|
|
147
|
+
triggerMultiple(events: Array<{
|
|
148
|
+
event: StreamttyEventType;
|
|
149
|
+
data?: any;
|
|
150
|
+
}>): Promise<void>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Event utilities
|
|
154
|
+
*/
|
|
155
|
+
export declare class EventUtils {
|
|
156
|
+
/**
|
|
157
|
+
* Create a debounced event handler
|
|
158
|
+
*/
|
|
159
|
+
static debounce<T>(handler: StreamttyEventHandler<T>, delay: number): StreamttyEventHandler<T>;
|
|
160
|
+
/**
|
|
161
|
+
* Create a throttled event handler
|
|
162
|
+
*/
|
|
163
|
+
static throttle<T>(handler: StreamttyEventHandler<T>, delay: number): StreamttyEventHandler<T>;
|
|
164
|
+
/**
|
|
165
|
+
* Create a retry event handler
|
|
166
|
+
*/
|
|
167
|
+
static retry<T>(handler: StreamttyEventHandler<T>, maxRetries?: number, delay?: number): StreamttyEventHandler<T>;
|
|
168
|
+
/**
|
|
169
|
+
* Create a conditional event handler
|
|
170
|
+
*/
|
|
171
|
+
static conditional<T>(condition: (data: T) => boolean, handler: StreamttyEventHandler<T>): StreamttyEventHandler<T>;
|
|
172
|
+
/**
|
|
173
|
+
* Create a chain of event handlers
|
|
174
|
+
*/
|
|
175
|
+
static chain<T>(...handlers: StreamttyEventHandler<T>[]): StreamttyEventHandler<T>;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Global event bus instance
|
|
179
|
+
*/
|
|
180
|
+
export declare const globalEventBus: StreamttyEventBus;
|
|
181
|
+
/**
|
|
182
|
+
* Setup global error handling for events
|
|
183
|
+
*/
|
|
184
|
+
export declare function setupEventErrorHandling(): void;
|
|
185
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streamdown-TTY - Enterprise Markdown Streaming for Terminals
|
|
3
|
+
*
|
|
4
|
+
* A drop-in replacement for terminal markdown rendering,
|
|
5
|
+
* designed for AI-powered streaming. Inspired by Vercel's Streamdown.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - 🚀 Drop-in replacement for terminal markdown
|
|
9
|
+
* - 🔄 Streaming-optimized with self-healing (remend-tty)
|
|
10
|
+
* - 🎨 Beautiful ANSI rendering with themes
|
|
11
|
+
* - 📊 GitHub Flavored Markdown support
|
|
12
|
+
* - 🔢 Math rendering (LaTeX → Unicode)
|
|
13
|
+
* - 📈 Mermaid diagrams (ASCII art)
|
|
14
|
+
* - 🛡️ Security hardening (ANSI sanitization)
|
|
15
|
+
* - ⚡ Performance optimized (object pooling, memoization)
|
|
16
|
+
* - 🔌 AI SDK adapters (Anthropic, OpenAI, Vercel AI)
|
|
17
|
+
* - 🌐 Cross-runtime (Node, Bun, Deno, Browser terminals)
|
|
18
|
+
*
|
|
19
|
+
* @module streamdown-tty
|
|
20
|
+
* @version 2.0.0
|
|
21
|
+
* @license MIT
|
|
22
|
+
*/
|
|
23
|
+
export { StreamdownTTY, StreamdownTTY as Streamtty, // Backward compatibility
|
|
24
|
+
render, stream, heal, healDetailed, StreamingParser, type Token, type ParserOptions, ANSIRenderer, type RendererOptions, type Theme, darkTheme, lightTheme, ANSI, StreamProtocol, createStreamProtocol, type StreamProtocolOptions, type AnyStreamEvent, type StreamStats, remendTTY, remendTTYDetailed, clearRemendCache, type RemendOptions, type RemendResult, type StreamdownTTYOptions, type AIOptions, } from './core/index.js';
|
|
25
|
+
export { BaseAdapter, AnthropicAdapter, OpenAIAdapter, VercelAIAdapter, GenericAdapter, createAdapter, autoAdapter, type AdapterOptions, type AnthropicMessageStreamEvent, type OpenAIStreamChunk, type VercelAIStreamPart, } from './adapters/index.js';
|
|
26
|
+
export { StreamingMarkdownParser } from './parser/streaming-parser.js';
|
|
27
|
+
export { ANSIRenderer as BlessedRenderer } from './renderer/ansi-renderer.js';
|
|
28
|
+
export { AISDKStreamAdapter } from './ai-sdk-adapter.js';
|
|
29
|
+
export * from './streamdown-compat.js';
|
|
30
|
+
export * from './errors.js';
|
|
31
|
+
export * from './events.js';
|
|
32
|
+
export * from './performance.js';
|
|
33
|
+
export * from './themes/index.js';
|
|
34
|
+
export * from './security/ansi-sanitizer.js';
|
|
35
|
+
export type { StreamttyOptions, MarkdownStyles, ANSIStyle, ParsedToken, TokenType, StreamBuffer, RenderContext, EnhancedFeaturesConfig, MermaidTTYConfig, MathRenderConfig, SecurityConfig, } from './types/index.js';
|
|
36
|
+
export type { StreamEvent, StreamEventType, ToolCallEvent, ToolResultEvent, TextDeltaEvent, ThinkingEvent, StatusEvent, ErrorEvent, StreamEventOptions, StreamEventHandler, StreamEventEmitter, } from './types/stream-events.js';
|
|
37
|
+
import { StreamdownTTY } from './core/index.js';
|
|
38
|
+
export default StreamdownTTY;
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,OAAO,EAEL,aAAa,EACb,aAAa,IAAI,SAAS,EAAE,yBAAyB;AAGrD,MAAM,EACN,MAAM,EACN,IAAI,EACJ,YAAY,EAGZ,eAAe,EACf,KAAK,KAAK,EACV,KAAK,aAAa,EAGlB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,SAAS,EACT,UAAU,EACV,IAAI,EAGJ,cAAc,EACd,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,WAAW,EAGhB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EAGjB,KAAK,oBAAoB,EAGzB,KAAK,SAAS,GACf,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAEL,WAAW,EAGX,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,cAAc,EAGd,aAAa,EACb,WAAW,EAGX,KAAK,cAAc,EACnB,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAG7C,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,eAAe,aAAa,CAAC"}
|