@nicomatt69/streamdown-tty 2.1.0 → 2.3.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/dist/core/index.d.ts +8 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/protocol.d.ts +30 -1
- package/dist/core/protocol.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +279 -0
- package/package.json +1 -1
package/dist/core/index.d.ts
CHANGED
|
@@ -36,8 +36,10 @@ export interface StreamdownTTYOptions {
|
|
|
36
36
|
protocol?: StreamProtocolOptions;
|
|
37
37
|
/** Remend (self-healing) options */
|
|
38
38
|
remend?: RemendOptions;
|
|
39
|
-
/** Theme ('dark', 'light', or custom Theme object) */
|
|
40
|
-
theme?: 'dark' | 'light' | Theme;
|
|
39
|
+
/** Theme ('dark', 'light', 'auto', or custom Theme object) */
|
|
40
|
+
theme?: 'dark' | 'light' | 'auto' | Theme;
|
|
41
|
+
/** Parse incomplete markdown (for streaming) */
|
|
42
|
+
parseIncompleteMarkdown?: boolean;
|
|
41
43
|
/** Maximum width for rendering */
|
|
42
44
|
maxWidth?: number;
|
|
43
45
|
/** Enable syntax highlighting */
|
|
@@ -91,6 +93,10 @@ export declare class StreamdownTTY {
|
|
|
91
93
|
* Get terminal width
|
|
92
94
|
*/
|
|
93
95
|
private getTerminalWidth;
|
|
96
|
+
/**
|
|
97
|
+
* Auto-detect theme from environment
|
|
98
|
+
*/
|
|
99
|
+
private detectTheme;
|
|
94
100
|
/**
|
|
95
101
|
* Setup protocol event handlers
|
|
96
102
|
*/
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EACL,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,SAAS,EACT,UAAU,EACV,IAAI,EACL,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EAEnB,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAE/B,qBAAqB;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC,oCAAoC;IACpC,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,KAAK,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EACL,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,KAAK,EACV,SAAS,EACT,UAAU,EACV,IAAI,EACL,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EAEnB,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAE/B,qBAAqB;IACrB,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC,oCAAoC;IACpC,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAE1C,gDAAgD;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,uCAAuC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAErD,2BAA2B;IAC3B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IAExD,8BAA8B;IAC9B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAaD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,aAAa,CAA8C;gBAEvD,OAAO,GAAE,oBAAyB;IAkF9C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,WAAW;IA0CnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMlC;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,MAAM,IAAI,IAAI;IAad;;OAEG;IACH,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAMzC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBxE;;OAEG;IACI,uBAAuB,CAC5B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAC5B,cAAc,CAAC,cAAc,CAAC;IA+BjC;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,SAAS,IAAI,KAAK,EAAE;IAIpB;;OAEG;IACH,WAAW,IAAI,cAAc;IAI7B;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACH,WAAW,IAAI,YAAY;IAI3B;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;IAeb;;OAEG;IACH,QAAQ,IAAI,IAAI;IAWhB;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACH,OAAO,IAAI,IAAI;IAUf;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzE;;OAEG;IACI,iBAAiB,CAAC,MAAM,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC;IAOtF;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAIlD;;OAEG;IACH,YAAY,IAAI,SAAS;IAIzB;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC,cAAc;CAGnC;AAED;;GAEG;AACH,wBAAgB,MAAM,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAGR;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,EACtC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAS7B;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAEtE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,aAAa,GACtB,YAAY,CAEd;AAGD,OAAO,EAEL,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,GAClB,CAAC;AAGF,eAAe,aAAa,CAAC"}
|
package/dist/core/protocol.d.ts
CHANGED
|
@@ -18,10 +18,11 @@
|
|
|
18
18
|
*
|
|
19
19
|
* @module protocol
|
|
20
20
|
*/
|
|
21
|
+
import type { TextDeltaEvent as LegacyTextDeltaEvent, ToolCallEvent as LegacyToolCallEvent, ToolResultEvent as LegacyToolResultEvent, ThinkingEvent as LegacyThinkingEvent, StatusEvent as LegacyStatusEvent, ErrorEvent as LegacyErrorEvent } from '../types/stream-events.js';
|
|
21
22
|
/**
|
|
22
23
|
* Stream event types
|
|
23
24
|
*/
|
|
24
|
-
export type StreamEventType = 'start' | 'text' | 'tool_start' | 'tool_input' | 'tool_end' | 'thinking_start' | 'thinking' | 'thinking_end' | 'code_start' | 'code' | 'code_end' | 'error' | 'complete' | 'abort' | 'progress' | 'metadata';
|
|
25
|
+
export type StreamEventType = 'start' | 'text' | 'text_delta' | 'tool_start' | 'tool_call' | 'tool_input' | 'tool_end' | 'tool_result' | 'thinking_start' | 'thinking' | 'reasoning' | 'thinking_end' | 'code_start' | 'code' | 'code_end' | 'error' | 'complete' | 'abort' | 'progress' | 'status' | 'step' | 'metadata';
|
|
25
26
|
/**
|
|
26
27
|
* Base stream event
|
|
27
28
|
*/
|
|
@@ -224,6 +225,34 @@ export declare class StreamProtocol {
|
|
|
224
225
|
private isComplete;
|
|
225
226
|
private abortController;
|
|
226
227
|
constructor(options?: StreamProtocolOptions);
|
|
228
|
+
/**
|
|
229
|
+
* Create a text delta event (legacy compatible)
|
|
230
|
+
*/
|
|
231
|
+
static createTextDelta(content: string, metadata?: Record<string, unknown>): LegacyTextDeltaEvent;
|
|
232
|
+
/**
|
|
233
|
+
* Create a tool call event (legacy compatible)
|
|
234
|
+
*/
|
|
235
|
+
static createToolCall(toolName: string, toolArgs: Record<string, unknown>, metadata?: Record<string, unknown>): LegacyToolCallEvent;
|
|
236
|
+
/**
|
|
237
|
+
* Create a tool result event (legacy compatible)
|
|
238
|
+
*/
|
|
239
|
+
static createToolResult(toolResult: unknown, metadata?: Record<string, unknown>): LegacyToolResultEvent;
|
|
240
|
+
/**
|
|
241
|
+
* Create a thinking event (legacy compatible)
|
|
242
|
+
*/
|
|
243
|
+
static createThinking(content: string, metadata?: Record<string, unknown>): LegacyThinkingEvent;
|
|
244
|
+
/**
|
|
245
|
+
* Create a reasoning event (legacy compatible)
|
|
246
|
+
*/
|
|
247
|
+
static createReasoning(content: string, metadata?: Record<string, unknown>): LegacyThinkingEvent;
|
|
248
|
+
/**
|
|
249
|
+
* Create a status event (legacy compatible)
|
|
250
|
+
*/
|
|
251
|
+
static createStatus(content: string, status?: 'pending' | 'running' | 'completed' | 'failed', metadata?: Record<string, unknown>): LegacyStatusEvent;
|
|
252
|
+
/**
|
|
253
|
+
* Create an error event (legacy compatible)
|
|
254
|
+
*/
|
|
255
|
+
static createError(content: string, error?: Error, metadata?: Record<string, unknown>): LegacyErrorEvent;
|
|
227
256
|
/**
|
|
228
257
|
* Register event handler
|
|
229
258
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/core/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export * from './themes/index.js';
|
|
|
34
34
|
export * from './security/ansi-sanitizer.js';
|
|
35
35
|
export type { StreamttyOptions, MarkdownStyles, ANSIStyle, ParsedToken, TokenType, StreamBuffer, RenderContext, EnhancedFeaturesConfig, MermaidTTYConfig, MathRenderConfig, SecurityConfig, } from './types/index.js';
|
|
36
36
|
export type { StreamEvent, StreamEventType, ToolCallEvent, ToolResultEvent, TextDeltaEvent, ThinkingEvent, StatusEvent, ErrorEvent, StreamEventOptions, StreamEventHandler, StreamEventEmitter, } from './types/stream-events.js';
|
|
37
|
+
export { applySyntaxHighlight, colorizeBlock, syntaxColors, } from './utils/index.js';
|
|
37
38
|
import { StreamdownTTY } from './core/index.js';
|
|
38
39
|
export default StreamdownTTY;
|
|
39
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +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"}
|
|
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,EACL,oBAAoB,EACpB,aAAa,EACb,YAAY,GACb,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,eAAe,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6710,6 +6710,63 @@ class StreamProtocol {
|
|
|
6710
6710
|
this.on("complete", options.onComplete);
|
|
6711
6711
|
}
|
|
6712
6712
|
}
|
|
6713
|
+
static createTextDelta(content, metadata) {
|
|
6714
|
+
return {
|
|
6715
|
+
type: "text_delta",
|
|
6716
|
+
content,
|
|
6717
|
+
metadata
|
|
6718
|
+
};
|
|
6719
|
+
}
|
|
6720
|
+
static createToolCall(toolName, toolArgs, metadata) {
|
|
6721
|
+
return {
|
|
6722
|
+
type: "tool_call",
|
|
6723
|
+
toolName,
|
|
6724
|
+
toolArgs,
|
|
6725
|
+
metadata
|
|
6726
|
+
};
|
|
6727
|
+
}
|
|
6728
|
+
static createToolResult(toolResult, metadata) {
|
|
6729
|
+
return {
|
|
6730
|
+
type: "tool_result",
|
|
6731
|
+
toolResult,
|
|
6732
|
+
metadata
|
|
6733
|
+
};
|
|
6734
|
+
}
|
|
6735
|
+
static createThinking(content, metadata) {
|
|
6736
|
+
return {
|
|
6737
|
+
type: "thinking",
|
|
6738
|
+
content,
|
|
6739
|
+
metadata
|
|
6740
|
+
};
|
|
6741
|
+
}
|
|
6742
|
+
static createReasoning(content, metadata) {
|
|
6743
|
+
return {
|
|
6744
|
+
type: "reasoning",
|
|
6745
|
+
content,
|
|
6746
|
+
metadata
|
|
6747
|
+
};
|
|
6748
|
+
}
|
|
6749
|
+
static createStatus(content, status = "pending", metadata) {
|
|
6750
|
+
return {
|
|
6751
|
+
type: "status",
|
|
6752
|
+
content,
|
|
6753
|
+
metadata: {
|
|
6754
|
+
status,
|
|
6755
|
+
...metadata
|
|
6756
|
+
}
|
|
6757
|
+
};
|
|
6758
|
+
}
|
|
6759
|
+
static createError(content, error, metadata) {
|
|
6760
|
+
return {
|
|
6761
|
+
type: "error",
|
|
6762
|
+
content,
|
|
6763
|
+
metadata: {
|
|
6764
|
+
error,
|
|
6765
|
+
code: error?.name || "UNKNOWN_ERROR",
|
|
6766
|
+
...metadata
|
|
6767
|
+
}
|
|
6768
|
+
};
|
|
6769
|
+
}
|
|
6713
6770
|
on(type, handler) {
|
|
6714
6771
|
if (!this.handlers.has(type)) {
|
|
6715
6772
|
this.handlers.set(type, new Set);
|
|
@@ -6900,6 +6957,8 @@ class StreamdownTTY {
|
|
|
6900
6957
|
let theme;
|
|
6901
6958
|
if (options.theme === "light") {
|
|
6902
6959
|
theme = lightTheme;
|
|
6960
|
+
} else if (options.theme === "auto") {
|
|
6961
|
+
theme = this.detectTheme() ?? darkTheme;
|
|
6903
6962
|
} else if (typeof options.theme === "object") {
|
|
6904
6963
|
theme = options.theme;
|
|
6905
6964
|
} else {
|
|
@@ -6929,6 +6988,7 @@ class StreamdownTTY {
|
|
|
6929
6988
|
protocol: options.protocol ?? {},
|
|
6930
6989
|
remend: options.remend ?? {},
|
|
6931
6990
|
theme: options.theme ?? "dark",
|
|
6991
|
+
parseIncompleteMarkdown: options.parseIncompleteMarkdown ?? true,
|
|
6932
6992
|
maxWidth: options.maxWidth ?? this.getTerminalWidth(),
|
|
6933
6993
|
syntaxHighlight: options.syntaxHighlight ?? true,
|
|
6934
6994
|
lineNumbers: options.lineNumbers ?? false,
|
|
@@ -6969,6 +7029,33 @@ class StreamdownTTY {
|
|
|
6969
7029
|
}
|
|
6970
7030
|
return 100;
|
|
6971
7031
|
}
|
|
7032
|
+
detectTheme() {
|
|
7033
|
+
if (typeof process === "undefined") {
|
|
7034
|
+
return null;
|
|
7035
|
+
}
|
|
7036
|
+
const env = process.env;
|
|
7037
|
+
if (env.COLORFGBG) {
|
|
7038
|
+
const parts = env.COLORFGBG.split(";");
|
|
7039
|
+
if (parts.length >= 2) {
|
|
7040
|
+
const bg = parseInt(parts[1], 10);
|
|
7041
|
+
if (bg > 6) {
|
|
7042
|
+
return lightTheme;
|
|
7043
|
+
}
|
|
7044
|
+
return darkTheme;
|
|
7045
|
+
}
|
|
7046
|
+
}
|
|
7047
|
+
if (env.TERM_PROGRAM === "Apple_Terminal" || env.TERM_PROGRAM === "iTerm.app") {}
|
|
7048
|
+
if (env.WT_SESSION || env.TERMINAL_EMULATOR) {
|
|
7049
|
+
return darkTheme;
|
|
7050
|
+
}
|
|
7051
|
+
if (env.STREAMDOWN_THEME === "dark")
|
|
7052
|
+
return darkTheme;
|
|
7053
|
+
if (env.STREAMDOWN_THEME === "light")
|
|
7054
|
+
return lightTheme;
|
|
7055
|
+
if (env.STREAMDOWN_THEME === "auto")
|
|
7056
|
+
return null;
|
|
7057
|
+
return darkTheme;
|
|
7058
|
+
}
|
|
6972
7059
|
setupProtocolHandlers() {
|
|
6973
7060
|
this.protocol.on("text", async (event) => {
|
|
6974
7061
|
const textEvent = event;
|
|
@@ -12851,6 +12938,195 @@ class ContentValidator {
|
|
|
12851
12938
|
}
|
|
12852
12939
|
}
|
|
12853
12940
|
var defaultValidator = new ContentValidator;
|
|
12941
|
+
// src/utils/syntax-highlighter.ts
|
|
12942
|
+
var syntaxColors = {
|
|
12943
|
+
path: "\x1B[36m",
|
|
12944
|
+
lineNumber: "\x1B[33m",
|
|
12945
|
+
keyword: "\x1B[35m",
|
|
12946
|
+
string: "\x1B[32m",
|
|
12947
|
+
number: "\x1B[93m",
|
|
12948
|
+
comment: "\x1B[90m",
|
|
12949
|
+
title: "\x1B[96m",
|
|
12950
|
+
error: "\x1B[91m",
|
|
12951
|
+
success: "\x1B[92m",
|
|
12952
|
+
warning: "\x1B[93m",
|
|
12953
|
+
codeBlock: "\x1B[36m",
|
|
12954
|
+
package: "\x1B[36m",
|
|
12955
|
+
reset: "\x1B[0m"
|
|
12956
|
+
};
|
|
12957
|
+
var KEYWORDS = [
|
|
12958
|
+
"async",
|
|
12959
|
+
"await",
|
|
12960
|
+
"function",
|
|
12961
|
+
"const",
|
|
12962
|
+
"let",
|
|
12963
|
+
"var",
|
|
12964
|
+
"class",
|
|
12965
|
+
"interface",
|
|
12966
|
+
"type",
|
|
12967
|
+
"import",
|
|
12968
|
+
"export",
|
|
12969
|
+
"from",
|
|
12970
|
+
"return",
|
|
12971
|
+
"if",
|
|
12972
|
+
"else",
|
|
12973
|
+
"for",
|
|
12974
|
+
"while",
|
|
12975
|
+
"try",
|
|
12976
|
+
"catch",
|
|
12977
|
+
"throw",
|
|
12978
|
+
"new",
|
|
12979
|
+
"this",
|
|
12980
|
+
"super",
|
|
12981
|
+
"extends",
|
|
12982
|
+
"implements",
|
|
12983
|
+
"public",
|
|
12984
|
+
"private",
|
|
12985
|
+
"protected",
|
|
12986
|
+
"static",
|
|
12987
|
+
"readonly",
|
|
12988
|
+
"enum",
|
|
12989
|
+
"namespace"
|
|
12990
|
+
];
|
|
12991
|
+
var SHELL_COMMANDS = [
|
|
12992
|
+
"git",
|
|
12993
|
+
"npm",
|
|
12994
|
+
"yarn",
|
|
12995
|
+
"pnpm",
|
|
12996
|
+
"docker",
|
|
12997
|
+
"cd",
|
|
12998
|
+
"ls",
|
|
12999
|
+
"mkdir",
|
|
13000
|
+
"rm",
|
|
13001
|
+
"cp",
|
|
13002
|
+
"mv",
|
|
13003
|
+
"cat",
|
|
13004
|
+
"grep",
|
|
13005
|
+
"find",
|
|
13006
|
+
"sed",
|
|
13007
|
+
"awk",
|
|
13008
|
+
"chmod",
|
|
13009
|
+
"chown",
|
|
13010
|
+
"sudo",
|
|
13011
|
+
"apt",
|
|
13012
|
+
"brew",
|
|
13013
|
+
"curl",
|
|
13014
|
+
"wget",
|
|
13015
|
+
"tar",
|
|
13016
|
+
"zip",
|
|
13017
|
+
"unzip",
|
|
13018
|
+
"ssh",
|
|
13019
|
+
"scp",
|
|
13020
|
+
"rsync",
|
|
13021
|
+
"ps",
|
|
13022
|
+
"kill"
|
|
13023
|
+
];
|
|
13024
|
+
function highlightPaths(text) {
|
|
13025
|
+
return text;
|
|
13026
|
+
}
|
|
13027
|
+
function highlightFileRefs(text) {
|
|
13028
|
+
return text;
|
|
13029
|
+
}
|
|
13030
|
+
function highlightKeywords(text) {
|
|
13031
|
+
let highlighted = text;
|
|
13032
|
+
for (const keyword of KEYWORDS) {
|
|
13033
|
+
const regex2 = new RegExp(`\\b(${keyword})\\b`, "g");
|
|
13034
|
+
highlighted = highlighted.replace(regex2, `${syntaxColors.keyword}$1${syntaxColors.reset}`);
|
|
13035
|
+
}
|
|
13036
|
+
return highlighted;
|
|
13037
|
+
}
|
|
13038
|
+
function highlightTitles(text) {
|
|
13039
|
+
const titleRegex = /^(#{1,6})\s+(.+)$/gm;
|
|
13040
|
+
return text.replace(titleRegex, (match, hashes, title) => {
|
|
13041
|
+
return `${syntaxColors.title}${hashes} ${title}${syntaxColors.reset}`;
|
|
13042
|
+
});
|
|
13043
|
+
}
|
|
13044
|
+
function highlightStrings(text) {
|
|
13045
|
+
const stringRegex = /(["'])(?:(?=(\\?))\2.)*?\1/g;
|
|
13046
|
+
return text.replace(stringRegex, (match) => {
|
|
13047
|
+
return `${syntaxColors.string}${match}${syntaxColors.reset}`;
|
|
13048
|
+
});
|
|
13049
|
+
}
|
|
13050
|
+
function highlightNumbers(text) {
|
|
13051
|
+
const numberRegex = /\b(\d+\.?\d*)\b/g;
|
|
13052
|
+
return text.replace(numberRegex, `${syntaxColors.number}$1${syntaxColors.reset}`);
|
|
13053
|
+
}
|
|
13054
|
+
function highlightComments(text) {
|
|
13055
|
+
let highlighted = text;
|
|
13056
|
+
highlighted = highlighted.replace(/(#.*)$/gm, (match) => {
|
|
13057
|
+
if (/^#{1,6}\s/.test(match))
|
|
13058
|
+
return match;
|
|
13059
|
+
return `${syntaxColors.comment}${match}${syntaxColors.reset}`;
|
|
13060
|
+
});
|
|
13061
|
+
highlighted = highlighted.replace(/(\/\/.*)$/gm, `${syntaxColors.comment}$1${syntaxColors.reset}`);
|
|
13062
|
+
highlighted = highlighted.replace(/(\/\*[\s\S]*?\*\/)/g, `${syntaxColors.comment}$1${syntaxColors.reset}`);
|
|
13063
|
+
return highlighted;
|
|
13064
|
+
}
|
|
13065
|
+
function highlightShellCommands(text) {
|
|
13066
|
+
let highlighted = text;
|
|
13067
|
+
for (const cmd of SHELL_COMMANDS) {
|
|
13068
|
+
const regex2 = new RegExp(`\\b(${cmd})\\b`, "g");
|
|
13069
|
+
highlighted = highlighted.replace(regex2, `${syntaxColors.keyword}$1${syntaxColors.reset}`);
|
|
13070
|
+
}
|
|
13071
|
+
return highlighted;
|
|
13072
|
+
}
|
|
13073
|
+
function highlightPackages(text) {
|
|
13074
|
+
const packageRegex = /(@[\w-]+\/[\w-]+|[\w-]+\/[\w-]+|\b[\w-]+@[\d.]+)/g;
|
|
13075
|
+
return text.replace(packageRegex, (match) => {
|
|
13076
|
+
return `${syntaxColors.package}${match}${syntaxColors.reset}`;
|
|
13077
|
+
});
|
|
13078
|
+
}
|
|
13079
|
+
function highlightCodeBlocks(text) {
|
|
13080
|
+
const codeBlockRegex = /```(\w+)?\n([\s\S]*?)```/g;
|
|
13081
|
+
return text.replace(codeBlockRegex, (match, lang, code) => {
|
|
13082
|
+
let result2 = `${syntaxColors.codeBlock}\`\`\`${lang || ""}${syntaxColors.reset}
|
|
13083
|
+
`;
|
|
13084
|
+
const highlightedCode = highlightCodeBlockContent(code, lang);
|
|
13085
|
+
result2 += highlightedCode;
|
|
13086
|
+
result2 += `${syntaxColors.codeBlock}\`\`\`${syntaxColors.reset}`;
|
|
13087
|
+
return result2;
|
|
13088
|
+
});
|
|
13089
|
+
}
|
|
13090
|
+
function highlightCodeBlockContent(code, lang) {
|
|
13091
|
+
let highlighted = code;
|
|
13092
|
+
if (lang === "bash" || lang === "sh" || lang === "shell") {
|
|
13093
|
+
highlighted = highlightShellCommands(highlighted);
|
|
13094
|
+
highlighted = highlightComments(highlighted);
|
|
13095
|
+
highlighted = highlightStrings(highlighted);
|
|
13096
|
+
return highlighted;
|
|
13097
|
+
}
|
|
13098
|
+
if (lang === "javascript" || lang === "js" || lang === "typescript" || lang === "ts") {
|
|
13099
|
+
highlighted = highlightComments(highlighted);
|
|
13100
|
+
highlighted = highlightStrings(highlighted);
|
|
13101
|
+
highlighted = highlightKeywords(highlighted);
|
|
13102
|
+
highlighted = highlightNumbers(highlighted);
|
|
13103
|
+
return highlighted;
|
|
13104
|
+
}
|
|
13105
|
+
highlighted = highlightComments(highlighted);
|
|
13106
|
+
highlighted = highlightStrings(highlighted);
|
|
13107
|
+
highlighted = highlightKeywords(highlighted);
|
|
13108
|
+
highlighted = highlightNumbers(highlighted);
|
|
13109
|
+
return highlighted;
|
|
13110
|
+
}
|
|
13111
|
+
function applySyntaxHighlight(text) {
|
|
13112
|
+
if (!text)
|
|
13113
|
+
return text;
|
|
13114
|
+
let highlighted = text;
|
|
13115
|
+
highlighted = highlightCodeBlocks(highlighted);
|
|
13116
|
+
highlighted = highlightFileRefs(highlighted);
|
|
13117
|
+
highlighted = highlightPaths(highlighted);
|
|
13118
|
+
highlighted = highlightPackages(highlighted);
|
|
13119
|
+
highlighted = highlightTitles(highlighted);
|
|
13120
|
+
highlighted = highlightComments(highlighted);
|
|
13121
|
+
highlighted = highlightStrings(highlighted);
|
|
13122
|
+
highlighted = highlightShellCommands(highlighted);
|
|
13123
|
+
highlighted = highlightKeywords(highlighted);
|
|
13124
|
+
highlighted = highlightNumbers(highlighted);
|
|
13125
|
+
return highlighted;
|
|
13126
|
+
}
|
|
13127
|
+
function colorizeBlock(text, color) {
|
|
13128
|
+
return `${color}${text}${syntaxColors.reset}`;
|
|
13129
|
+
}
|
|
12854
13130
|
// src/index.ts
|
|
12855
13131
|
var src_default = StreamdownTTY;
|
|
12856
13132
|
export {
|
|
@@ -12859,6 +13135,7 @@ export {
|
|
|
12859
13135
|
truncatePreservingAnsi,
|
|
12860
13136
|
trackPerformance,
|
|
12861
13137
|
themes,
|
|
13138
|
+
syntaxColors,
|
|
12862
13139
|
stripAnsiCodes,
|
|
12863
13140
|
stream,
|
|
12864
13141
|
setupGlobalErrorHandling,
|
|
@@ -12885,8 +13162,10 @@ export {
|
|
|
12885
13162
|
createDebugStreamer,
|
|
12886
13163
|
createAdapter,
|
|
12887
13164
|
createAIStreamer,
|
|
13165
|
+
colorizeBlock,
|
|
12888
13166
|
clearRemendCache,
|
|
12889
13167
|
autoAdapter,
|
|
13168
|
+
applySyntaxHighlight,
|
|
12890
13169
|
VercelAIAdapter,
|
|
12891
13170
|
StreamttyTTYError,
|
|
12892
13171
|
StreamttyRenderError,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nicomatt69/streamdown-tty",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Enterprise-grade markdown streaming for terminals. A drop-in replacement inspired by Vercel's Streamdown, optimized for TTY/ANSI output with AI SDK adapters.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|