@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,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stream Statistics Tracker
|
|
3
|
+
* Lightweight metrics for streaming progress
|
|
4
|
+
*/
|
|
5
|
+
export interface StreamStats {
|
|
6
|
+
chunksReceived: number;
|
|
7
|
+
bytesReceived: number;
|
|
8
|
+
tokensGenerated: number;
|
|
9
|
+
elapsedMs: number;
|
|
10
|
+
throughputBytesPerSec: number;
|
|
11
|
+
parseErrors: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Track streaming statistics without overhead
|
|
15
|
+
*/
|
|
16
|
+
export declare class StreamStatsTracker {
|
|
17
|
+
private startTime;
|
|
18
|
+
private stats;
|
|
19
|
+
private lastUpdateTime;
|
|
20
|
+
private sampleWindow;
|
|
21
|
+
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Record a processed chunk
|
|
24
|
+
*/
|
|
25
|
+
recordChunk(bytes: number, tokens?: number): void;
|
|
26
|
+
/**
|
|
27
|
+
* Record parse error
|
|
28
|
+
*/
|
|
29
|
+
recordError(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Update calculated metrics
|
|
32
|
+
*/
|
|
33
|
+
private updateMetrics;
|
|
34
|
+
/**
|
|
35
|
+
* Get current stats
|
|
36
|
+
*/
|
|
37
|
+
getStats(): StreamStats;
|
|
38
|
+
/**
|
|
39
|
+
* Get formatted progress string
|
|
40
|
+
*/
|
|
41
|
+
getProgressString(total?: number): string;
|
|
42
|
+
/**
|
|
43
|
+
* Get compact progress bar
|
|
44
|
+
*/
|
|
45
|
+
getProgressBar(width?: number, total?: number): string;
|
|
46
|
+
/**
|
|
47
|
+
* Format bytes to human readable
|
|
48
|
+
*/
|
|
49
|
+
private formatBytes;
|
|
50
|
+
/**
|
|
51
|
+
* Reset tracker
|
|
52
|
+
*/
|
|
53
|
+
reset(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Get estimated time remaining
|
|
56
|
+
*/
|
|
57
|
+
getETA(total: number): string;
|
|
58
|
+
/**
|
|
59
|
+
* Get average throughput
|
|
60
|
+
*/
|
|
61
|
+
getAverageThroughput(): number;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Simple progress reporter
|
|
65
|
+
*/
|
|
66
|
+
export interface ProgressReporter {
|
|
67
|
+
onProgress?(stats: StreamStats, message?: string): void;
|
|
68
|
+
onComplete?(stats: StreamStats): void;
|
|
69
|
+
onError?(error: Error): void;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Stream processor with stats
|
|
73
|
+
*/
|
|
74
|
+
export declare class StreamProcessor {
|
|
75
|
+
private tracker;
|
|
76
|
+
private reporter?;
|
|
77
|
+
private reportInterval;
|
|
78
|
+
private totalBytes?;
|
|
79
|
+
constructor(reporter?: ProgressReporter, totalBytes?: number);
|
|
80
|
+
/**
|
|
81
|
+
* Process chunk with tracking
|
|
82
|
+
*/
|
|
83
|
+
processChunk(chunk: string, processor: (c: string) => Promise<void>): Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Get stats
|
|
86
|
+
*/
|
|
87
|
+
getStats(): StreamStats;
|
|
88
|
+
/**
|
|
89
|
+
* Complete processing
|
|
90
|
+
*/
|
|
91
|
+
complete(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Reset
|
|
94
|
+
*/
|
|
95
|
+
reset(): void;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=stream-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-stats.d.ts","sourceRoot":"","sources":["../../src/streaming/stream-stats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,YAAY,CAAgB;;IAcpC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,IAAI;IAOpD;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,QAAQ,IAAI,WAAW;IAKvB;;OAEG;IACH,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAkBzC;;OAEG;IACH,cAAc,CAAC,KAAK,GAAE,MAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAS1D;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;IACH,KAAK,IAAI,IAAI;IAcb;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAmB7B;;OAEG;IACH,oBAAoB,IAAI,MAAM;CAK/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD,UAAU,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,QAAQ,CAAC,CAAmB;IACpC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,UAAU,CAAC,CAAS;gBAEhB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,MAAM;IAK5D;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzF;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAUhB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Streaming integration layer
|
|
3
|
+
* Combines all inline renderers and security for seamless streaming
|
|
4
|
+
*/
|
|
5
|
+
import { ParsedToken, RenderContext } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Process token with all enhancements
|
|
8
|
+
* This is called during rendering to apply inline rendering
|
|
9
|
+
*/
|
|
10
|
+
export declare function enhanceToken(token: ParsedToken, _context: RenderContext): ParsedToken;
|
|
11
|
+
/**
|
|
12
|
+
* Process all tokens with enhancements
|
|
13
|
+
*/
|
|
14
|
+
export declare function enhanceTokens(tokens: ParsedToken[], context: RenderContext): ParsedToken[];
|
|
15
|
+
/**
|
|
16
|
+
* Stream chunk processor with full pipeline
|
|
17
|
+
* Validates → Sanitizes → Returns processed chunk
|
|
18
|
+
*/
|
|
19
|
+
export declare function processStreamChunk(chunk: string, enableSecurity?: boolean): {
|
|
20
|
+
valid: boolean;
|
|
21
|
+
chunk: string;
|
|
22
|
+
error?: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Streaming state tracker (inline in main class)
|
|
26
|
+
*/
|
|
27
|
+
export interface StreamingState {
|
|
28
|
+
isStreaming: boolean;
|
|
29
|
+
chunkCount: number;
|
|
30
|
+
byteCount: number;
|
|
31
|
+
startTime: number;
|
|
32
|
+
lastChunkTime: number;
|
|
33
|
+
errorCount: number;
|
|
34
|
+
spinnerIndex: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Initialize streaming state
|
|
38
|
+
*/
|
|
39
|
+
export declare function initializeStreamingState(): StreamingState;
|
|
40
|
+
/**
|
|
41
|
+
* Get streaming status string with spinner and stats
|
|
42
|
+
*/
|
|
43
|
+
export declare function getStreamingStatus(state: StreamingState): string;
|
|
44
|
+
/**
|
|
45
|
+
* Update streaming state with chunk
|
|
46
|
+
*/
|
|
47
|
+
export declare function updateStreamingState(state: StreamingState, chunk: string): StreamingState;
|
|
48
|
+
/**
|
|
49
|
+
* Mark streaming as complete
|
|
50
|
+
*/
|
|
51
|
+
export declare function completeStreaming(state: StreamingState): {
|
|
52
|
+
isStreaming: boolean;
|
|
53
|
+
totalBytes: number;
|
|
54
|
+
totalChunks: number;
|
|
55
|
+
durationMs: number;
|
|
56
|
+
avgBytesPerSec: number;
|
|
57
|
+
message: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Format duration nicely
|
|
61
|
+
*/
|
|
62
|
+
export declare function formatDuration(ms: number): string;
|
|
63
|
+
/**
|
|
64
|
+
* Format bytes nicely
|
|
65
|
+
*/
|
|
66
|
+
export declare function formatBytes(bytes: number): string;
|
|
67
|
+
/**
|
|
68
|
+
* Format throughput
|
|
69
|
+
*/
|
|
70
|
+
export declare function formatThroughput(bytesPerSec: number): string;
|
|
71
|
+
//# sourceMappingURL=streaming-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-integration.d.ts","sourceRoot":"","sources":["../src/streaming-integration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEpD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,GAAG,WAAW,CA8CrF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,EAAE,aAAa,GACrB,WAAW,EAAE,CAEf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,GAAE,OAAc,GAAG;IACjF,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAoBA;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CAUzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAoBhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAczF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG;IACxD,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;CAChB,CAsBA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { MarkdownStyles } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* TTY Theme configuration
|
|
4
|
+
*/
|
|
5
|
+
export interface TTYTheme {
|
|
6
|
+
name: string;
|
|
7
|
+
markdown: MarkdownStyles;
|
|
8
|
+
syntax: SyntaxTheme;
|
|
9
|
+
ui: UITheme;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Syntax highlighting theme colors
|
|
13
|
+
*/
|
|
14
|
+
export interface SyntaxTheme {
|
|
15
|
+
keyword: string;
|
|
16
|
+
string: string;
|
|
17
|
+
comment: string;
|
|
18
|
+
number: string;
|
|
19
|
+
function: string;
|
|
20
|
+
variable: string;
|
|
21
|
+
type: string;
|
|
22
|
+
operator: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* UI theme colors
|
|
26
|
+
*/
|
|
27
|
+
export interface UITheme {
|
|
28
|
+
border: string;
|
|
29
|
+
background?: string;
|
|
30
|
+
foreground: string;
|
|
31
|
+
accent: string;
|
|
32
|
+
error: string;
|
|
33
|
+
warning: string;
|
|
34
|
+
success: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Light theme
|
|
38
|
+
*/
|
|
39
|
+
export declare const lightTheme: TTYTheme;
|
|
40
|
+
/**
|
|
41
|
+
* Dark theme (default)
|
|
42
|
+
*/
|
|
43
|
+
export declare const darkTheme: TTYTheme;
|
|
44
|
+
/**
|
|
45
|
+
* Get theme by name
|
|
46
|
+
*/
|
|
47
|
+
export declare function getTheme(name: 'light' | 'dark' | 'auto'): TTYTheme;
|
|
48
|
+
/**
|
|
49
|
+
* Detect theme from environment
|
|
50
|
+
*/
|
|
51
|
+
export declare function detectTheme(): TTYTheme;
|
|
52
|
+
/**
|
|
53
|
+
* Available themes
|
|
54
|
+
*/
|
|
55
|
+
export declare const themes: {
|
|
56
|
+
light: TTYTheme;
|
|
57
|
+
dark: TTYTheme;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,QAyCxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,QAwCvB,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAMlE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAOtC;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import type { TTYPluggableList } from './plugin-types.js';
|
|
2
|
+
export interface StreamttyOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Parse and style unterminated Markdown blocks
|
|
5
|
+
*/
|
|
6
|
+
parseIncompleteMarkdown?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Custom style overrides for different markdown elements
|
|
9
|
+
*/
|
|
10
|
+
styles?: Partial<MarkdownStyles>;
|
|
11
|
+
/**
|
|
12
|
+
* Enable syntax highlighting for code blocks
|
|
13
|
+
*/
|
|
14
|
+
syntaxHighlight?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Show line numbers in code blocks
|
|
17
|
+
*/
|
|
18
|
+
showLineNumbers?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Maximum width for the content (auto-wrap)
|
|
21
|
+
*/
|
|
22
|
+
maxWidth?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Enable GFM (GitHub Flavored Markdown) extensions
|
|
25
|
+
*/
|
|
26
|
+
gfm?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Output stream (defaults to process.stdout)
|
|
29
|
+
*/
|
|
30
|
+
output?: NodeJS.WriteStream;
|
|
31
|
+
/**
|
|
32
|
+
* Remark plugins for markdown preprocessing
|
|
33
|
+
*/
|
|
34
|
+
remarkPlugins?: TTYPluggableList;
|
|
35
|
+
/**
|
|
36
|
+
* Rehype plugins for token post-processing
|
|
37
|
+
*/
|
|
38
|
+
rehypePlugins?: TTYPluggableList;
|
|
39
|
+
/**
|
|
40
|
+
* Theme for syntax highlighting and rendering
|
|
41
|
+
*/
|
|
42
|
+
theme?: 'light' | 'dark' | 'auto';
|
|
43
|
+
/**
|
|
44
|
+
* Shiki syntax highlighting languages to load
|
|
45
|
+
*/
|
|
46
|
+
shikiLanguages?: string[];
|
|
47
|
+
/**
|
|
48
|
+
* Mermaid diagram configuration
|
|
49
|
+
*/
|
|
50
|
+
mermaidConfig?: MermaidTTYConfig;
|
|
51
|
+
/**
|
|
52
|
+
* Math rendering configuration
|
|
53
|
+
*/
|
|
54
|
+
mathConfig?: MathRenderConfig;
|
|
55
|
+
/**
|
|
56
|
+
* Security configuration
|
|
57
|
+
*/
|
|
58
|
+
security?: SecurityConfig;
|
|
59
|
+
/**
|
|
60
|
+
* Enhanced features toggle (opt-in)
|
|
61
|
+
*/
|
|
62
|
+
enhancedFeatures?: EnhancedFeaturesConfig;
|
|
63
|
+
/**
|
|
64
|
+
* Streaming animation state
|
|
65
|
+
*/
|
|
66
|
+
isStreaming?: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface MarkdownStyles {
|
|
69
|
+
h1: ANSIStyle;
|
|
70
|
+
h2: ANSIStyle;
|
|
71
|
+
h3: ANSIStyle;
|
|
72
|
+
h4: ANSIStyle;
|
|
73
|
+
h5: ANSIStyle;
|
|
74
|
+
h6: ANSIStyle;
|
|
75
|
+
paragraph: ANSIStyle;
|
|
76
|
+
strong: ANSIStyle;
|
|
77
|
+
em: ANSIStyle;
|
|
78
|
+
code: ANSIStyle;
|
|
79
|
+
codeBlock: ANSIStyle;
|
|
80
|
+
blockquote: ANSIStyle;
|
|
81
|
+
link: ANSIStyle;
|
|
82
|
+
list: ANSIStyle;
|
|
83
|
+
listItem: ANSIStyle;
|
|
84
|
+
table: ANSIStyle;
|
|
85
|
+
tableHeader: ANSIStyle;
|
|
86
|
+
hr: ANSIStyle;
|
|
87
|
+
thinking?: ANSIStyle;
|
|
88
|
+
}
|
|
89
|
+
export interface ANSIStyle {
|
|
90
|
+
fg?: string;
|
|
91
|
+
bg?: string;
|
|
92
|
+
bold?: boolean;
|
|
93
|
+
underline?: boolean;
|
|
94
|
+
italic?: boolean;
|
|
95
|
+
inverse?: boolean;
|
|
96
|
+
}
|
|
97
|
+
/** @deprecated Use ANSIStyle instead */
|
|
98
|
+
export type BlessedStyle = ANSIStyle;
|
|
99
|
+
export interface ParsedToken {
|
|
100
|
+
type: TokenType;
|
|
101
|
+
content: string;
|
|
102
|
+
depth?: number;
|
|
103
|
+
ordered?: boolean;
|
|
104
|
+
lang?: string;
|
|
105
|
+
style?: ANSIStyle;
|
|
106
|
+
incomplete?: boolean;
|
|
107
|
+
raw?: string;
|
|
108
|
+
}
|
|
109
|
+
export type TokenType = 'heading' | 'paragraph' | 'text' | 'strong' | 'em' | 'code' | 'codeblock' | 'blockquote' | 'list' | 'listitem' | 'link' | 'image' | 'table' | 'hr' | 'br' | 'del' | 'task' | 'incomplete' | 'math-inline' | 'math-block' | 'mermaid' | 'diagram';
|
|
110
|
+
export interface StreamBuffer {
|
|
111
|
+
content: string;
|
|
112
|
+
tokens: ParsedToken[];
|
|
113
|
+
lastUpdate: number;
|
|
114
|
+
}
|
|
115
|
+
export interface RenderContext {
|
|
116
|
+
output: NodeJS.WriteStream;
|
|
117
|
+
options: Required<StreamttyOptions>;
|
|
118
|
+
buffer: StreamBuffer;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Enhanced features configuration
|
|
122
|
+
*/
|
|
123
|
+
export interface EnhancedFeaturesConfig {
|
|
124
|
+
math?: boolean;
|
|
125
|
+
mermaid?: boolean;
|
|
126
|
+
shiki?: boolean;
|
|
127
|
+
security?: boolean;
|
|
128
|
+
advancedTables?: boolean;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Mermaid diagram configuration for TTY
|
|
132
|
+
*/
|
|
133
|
+
export interface MermaidTTYConfig {
|
|
134
|
+
theme?: 'default' | 'dark' | 'forest' | 'neutral';
|
|
135
|
+
flowchart?: {
|
|
136
|
+
useMaxWidth?: boolean;
|
|
137
|
+
htmlLabels?: boolean;
|
|
138
|
+
};
|
|
139
|
+
sequence?: {
|
|
140
|
+
showSequenceNumbers?: boolean;
|
|
141
|
+
};
|
|
142
|
+
gantt?: {
|
|
143
|
+
titleTopMargin?: number;
|
|
144
|
+
barHeight?: number;
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Math rendering configuration
|
|
149
|
+
*/
|
|
150
|
+
export interface MathRenderConfig {
|
|
151
|
+
displayMode?: boolean;
|
|
152
|
+
throwOnError?: boolean;
|
|
153
|
+
errorColor?: string;
|
|
154
|
+
macros?: Record<string, string>;
|
|
155
|
+
trust?: boolean;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Security configuration
|
|
159
|
+
*/
|
|
160
|
+
export interface SecurityConfig {
|
|
161
|
+
enabled?: boolean;
|
|
162
|
+
allowedLinkPrefixes?: string[];
|
|
163
|
+
allowedImagePrefixes?: string[];
|
|
164
|
+
maxBufferSize?: number;
|
|
165
|
+
stripDangerousAnsi?: boolean;
|
|
166
|
+
sanitizeHtml?: boolean;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-types.d.ts","sourceRoot":"","sources":["../../src/types/plugin-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI SDK Compatible Stream Event Types
|
|
3
|
+
*
|
|
4
|
+
* This module defines the stream event protocol that enables streamtty
|
|
5
|
+
* to handle AI SDK streaming events including tool calls, text deltas,
|
|
6
|
+
* and structured agent interactions.
|
|
7
|
+
*/
|
|
8
|
+
export type StreamEventType = 'text_delta' | 'tool_call' | 'tool_result' | 'thinking' | 'start' | 'complete' | 'error' | 'reasoning' | 'step' | 'status';
|
|
9
|
+
export interface StreamEvent {
|
|
10
|
+
type: StreamEventType;
|
|
11
|
+
content?: string;
|
|
12
|
+
toolName?: string;
|
|
13
|
+
toolArgs?: Record<string, any>;
|
|
14
|
+
toolResult?: any;
|
|
15
|
+
metadata?: {
|
|
16
|
+
timestamp?: number;
|
|
17
|
+
duration?: number;
|
|
18
|
+
agentId?: string;
|
|
19
|
+
taskId?: string;
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface ToolCallEvent extends StreamEvent {
|
|
24
|
+
type: 'tool_call';
|
|
25
|
+
toolName: string;
|
|
26
|
+
toolArgs: Record<string, any>;
|
|
27
|
+
}
|
|
28
|
+
export interface ToolResultEvent extends StreamEvent {
|
|
29
|
+
type: 'tool_result';
|
|
30
|
+
toolResult: any;
|
|
31
|
+
}
|
|
32
|
+
export interface TextDeltaEvent extends StreamEvent {
|
|
33
|
+
type: 'text_delta';
|
|
34
|
+
content: string;
|
|
35
|
+
}
|
|
36
|
+
export interface ThinkingEvent extends StreamEvent {
|
|
37
|
+
type: 'thinking' | 'reasoning';
|
|
38
|
+
content: string;
|
|
39
|
+
}
|
|
40
|
+
export interface StatusEvent extends StreamEvent {
|
|
41
|
+
type: 'status' | 'step';
|
|
42
|
+
content: string;
|
|
43
|
+
metadata: {
|
|
44
|
+
status?: 'pending' | 'running' | 'completed' | 'failed';
|
|
45
|
+
progress?: number;
|
|
46
|
+
[key: string]: any;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export interface ErrorEvent extends StreamEvent {
|
|
50
|
+
type: 'error';
|
|
51
|
+
content: string;
|
|
52
|
+
metadata: {
|
|
53
|
+
error?: Error;
|
|
54
|
+
code?: string;
|
|
55
|
+
[key: string]: any;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export interface StreamEventOptions {
|
|
59
|
+
parseIncompleteMarkdown?: boolean;
|
|
60
|
+
syntaxHighlight?: boolean;
|
|
61
|
+
formatToolCalls?: boolean;
|
|
62
|
+
showThinking?: boolean;
|
|
63
|
+
maxToolResultLength?: number;
|
|
64
|
+
}
|
|
65
|
+
export type StreamEventHandler = (event: StreamEvent) => void | Promise<void>;
|
|
66
|
+
export interface StreamEventEmitter {
|
|
67
|
+
on(event: StreamEventType | 'all', handler: StreamEventHandler): void;
|
|
68
|
+
off(event: StreamEventType | 'all', handler: StreamEventHandler): void;
|
|
69
|
+
emit(event: StreamEvent): void;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=stream-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-events.d.ts","sourceRoot":"","sources":["../../src/types/stream-events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,WAAW,GACX,aAAa,GACb,UAAU,GACV,OAAO,GACP,UAAU,GACV,OAAO,GACP,WAAW,GACX,MAAM,GACN,QAAQ,CAAC;AAEb,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,aAAa,CAAA;IACnB,UAAU,EAAE,GAAG,CAAA;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,IAAI,EAAE,YAAY,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,IAAI,EAAE,UAAU,GAAG,WAAW,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE;QACR,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;QACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,KAAK,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE7E,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACrE,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACtE,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;CAC/B"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blessed tags syntax highlighting for terminal output
|
|
3
|
+
* Uses blessed tag syntax for highlighting paths, keywords, and other elements
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Blessed color tags for syntax highlighting
|
|
7
|
+
*/
|
|
8
|
+
export declare const blessedSyntaxColors: {
|
|
9
|
+
path: string;
|
|
10
|
+
lineNumber: string;
|
|
11
|
+
keyword: string;
|
|
12
|
+
string: string;
|
|
13
|
+
number: string;
|
|
14
|
+
comment: string;
|
|
15
|
+
title: string;
|
|
16
|
+
error: string;
|
|
17
|
+
success: string;
|
|
18
|
+
warning: string;
|
|
19
|
+
darkGray: string;
|
|
20
|
+
link: string;
|
|
21
|
+
info: string;
|
|
22
|
+
debug: string;
|
|
23
|
+
httpMethod: string;
|
|
24
|
+
diffAdd: string;
|
|
25
|
+
diffRemove: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Highlight file paths in text using blessed tags
|
|
29
|
+
* Matches: /path/to/file.ts, ./relative/path.js, ~/home/path
|
|
30
|
+
*/
|
|
31
|
+
export declare function highlightPathsBlessed(text: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Highlight file references with line numbers using blessed tags
|
|
34
|
+
* Matches: file.ts:123, /path/to/file.js:45:10
|
|
35
|
+
*/
|
|
36
|
+
export declare function highlightFileRefsBlessed(text: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Highlight URLs and email addresses using blessed tags
|
|
39
|
+
*/
|
|
40
|
+
export declare function highlightLinksBlessed(text: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* Highlight programming keywords using blessed tags
|
|
43
|
+
*/
|
|
44
|
+
export declare function highlightKeywordsBlessed(text: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Highlight CLI flags like --option and -o
|
|
47
|
+
*/
|
|
48
|
+
export declare function highlightCliFlagsBlessed(text: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Highlight markdown-style titles using blessed tags
|
|
51
|
+
* Matches: # Title, ## Subtitle, etc.
|
|
52
|
+
*/
|
|
53
|
+
export declare function highlightTitlesBlessed(text: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Highlight JSON keys and literals (true/false/null)
|
|
56
|
+
*/
|
|
57
|
+
export declare function highlightJsonBlessed(text: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Highlight string literals in quotes using blessed tags
|
|
60
|
+
*/
|
|
61
|
+
export declare function highlightStringsBlessed(text: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* Highlight numbers using blessed tags
|
|
64
|
+
*/
|
|
65
|
+
export declare function highlightNumbersBlessed(text: string): string;
|
|
66
|
+
/**
|
|
67
|
+
* Highlight code comments using blessed tags
|
|
68
|
+
* Matches single-line and multi-line comments, bash comments
|
|
69
|
+
*/
|
|
70
|
+
export declare function highlightCommentsBlessed(text: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* Highlight shell/bash commands using blessed tags
|
|
73
|
+
*/
|
|
74
|
+
export declare function highlightShellCommandsBlessed(text: string): string;
|
|
75
|
+
/**
|
|
76
|
+
* Highlight common log levels and status tags
|
|
77
|
+
*/
|
|
78
|
+
export declare function highlightLogLevelsBlessed(text: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Highlight HTTP methods and status codes
|
|
81
|
+
*/
|
|
82
|
+
export declare function highlightHttpBlessed(text: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* Highlight environment variables like $VAR and ${VAR}
|
|
85
|
+
*/
|
|
86
|
+
export declare function highlightEnvVarsBlessed(text: string): string;
|
|
87
|
+
/**
|
|
88
|
+
* Highlight IP addresses and ports
|
|
89
|
+
*/
|
|
90
|
+
export declare function highlightIPsBlessed(text: string): string;
|
|
91
|
+
/**
|
|
92
|
+
* Highlight Git commit SHAs (7-40 hex chars)
|
|
93
|
+
*/
|
|
94
|
+
export declare function highlightGitShasBlessed(text: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Highlight code-frame style lines: 12 | code
|
|
97
|
+
*/
|
|
98
|
+
export declare function highlightCodeFramesBlessed(text: string): string;
|
|
99
|
+
/**
|
|
100
|
+
* Highlight diff lines starting with + or -
|
|
101
|
+
*/
|
|
102
|
+
export declare function highlightDiffsBlessed(text: string): string;
|
|
103
|
+
/**
|
|
104
|
+
* Highlight package names like @scope/package using blessed tags
|
|
105
|
+
*/
|
|
106
|
+
export declare function highlightPackagesBlessed(text: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* Highlight markdown code blocks with syntax highlighting (blessed tags)
|
|
109
|
+
*/
|
|
110
|
+
export declare function highlightCodeBlocksBlessed(text: string): string;
|
|
111
|
+
/**
|
|
112
|
+
* Apply comprehensive syntax highlighting using blessed tags
|
|
113
|
+
* Applies all highlighting rules in the correct order
|
|
114
|
+
*/
|
|
115
|
+
export declare function applySyntaxHighlightBlessed(text: string): string;
|
|
116
|
+
/**
|
|
117
|
+
* Apply light syntax highlighting using blessed tags (conservative)
|
|
118
|
+
*/
|
|
119
|
+
export declare function applyLightSyntaxHighlightBlessed(text: string): string;
|
|
120
|
+
/**
|
|
121
|
+
* Colorize entire text block with blessed tag
|
|
122
|
+
*/
|
|
123
|
+
export declare function colorizeBlockBlessed(text: string, color: string): string;
|
|
124
|
+
//# sourceMappingURL=blessed-syntax-highlighter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blessed-syntax-highlighter.d.ts","sourceRoot":"","sources":["../../src/utils/blessed-syntax-highlighter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;CAmB/B,CAAA;AAqBD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ1D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgB1D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS7D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASlE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4B9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBzD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmB/D;AAkCD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4EhE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExE"}
|