skyloom 1.13.8 → 1.13.9
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/cli/tui.d.ts +3 -1
- package/dist/cli/tui.d.ts.map +1 -1
- package/dist/cli/tui.js +25 -4
- package/dist/cli/tui.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/tui.ts +18 -4
package/dist/cli/tui.d.ts
CHANGED
|
@@ -43,8 +43,10 @@ export declare class StreamRenderer {
|
|
|
43
43
|
/** Lazily emit the left gutter at the start of each visual line. */
|
|
44
44
|
private startLine;
|
|
45
45
|
private newline;
|
|
46
|
+
/** Strip asterisk formatting: **text** → text, *text* → text, __text__ → text */
|
|
47
|
+
private cleanWord;
|
|
46
48
|
private flushWord;
|
|
47
|
-
/** Feed a chunk of streamed text. */
|
|
49
|
+
/** Feed a chunk of streamed text. Filters out raw md formatting. */
|
|
48
50
|
write(text: string): void;
|
|
49
51
|
/** Flush any buffered word (call before switching styles / ending). */
|
|
50
52
|
flush(): void;
|
package/dist/cli/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/cli/tui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,eAAO,MAAM,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EA6B5C,CAAC;AAKF,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAoB5C;AAID,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG1D;AAKD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAwB;gBAEzB,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE;IAS9F,oEAAoE;IACpE,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/cli/tui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,eAAO,MAAM,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EA6B5C,CAAC;AAKF,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAoB5C;AAID,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG1D;AAKD;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAwB;gBAEzB,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;KAAE;IAS9F,oEAAoE;IACpE,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IAEf,iFAAiF;IACjF,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,SAAS;IAYjB,oEAAoE;IACpE,KAAK,CAAC,IAAI,EAAE,MAAM;IA6BlB,uEAAuE;IACvE,KAAK;CACN;AAaD,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGnD;AAKD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,WAA4B,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBrG;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUpD"}
|
package/dist/cli/tui.js
CHANGED
|
@@ -159,22 +159,34 @@ class StreamRenderer {
|
|
|
159
159
|
this.atLineStart = false;
|
|
160
160
|
} }
|
|
161
161
|
newline() { this.out.write("\n"); this.atLineStart = true; this.col = 0; }
|
|
162
|
+
/** Strip asterisk formatting: **text** → text, *text* → text, __text__ → text */
|
|
163
|
+
cleanWord(s) {
|
|
164
|
+
return s.replace(/\*\*(.+?)\*\*/g, (_, t) => t)
|
|
165
|
+
.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, (_, t) => t)
|
|
166
|
+
.replace(/__([^_]+)__/g, (_, t) => t)
|
|
167
|
+
.replace(/_([^_]+)_/g, (_, t) => t);
|
|
168
|
+
}
|
|
162
169
|
flushWord() {
|
|
163
170
|
if (!this.word)
|
|
164
171
|
return;
|
|
165
|
-
const
|
|
172
|
+
const cleaned = this.cleanWord(this.word);
|
|
173
|
+
if (!cleaned) {
|
|
174
|
+
this.word = "";
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const w = visualWidth(cleaned);
|
|
166
178
|
if (this.col > 0 && this.col + w > this.maxCols)
|
|
167
179
|
this.newline();
|
|
168
180
|
this.startLine();
|
|
169
|
-
this.out.write(this.color(
|
|
181
|
+
this.out.write(this.color(cleaned));
|
|
170
182
|
this.col += w;
|
|
171
183
|
this.word = "";
|
|
172
184
|
}
|
|
173
|
-
/** Feed a chunk of streamed text. */
|
|
185
|
+
/** Feed a chunk of streamed text. Filters out raw md formatting. */
|
|
174
186
|
write(text) {
|
|
175
187
|
for (const ch of text) {
|
|
176
188
|
if (ch === "\r")
|
|
177
|
-
continue;
|
|
189
|
+
continue;
|
|
178
190
|
if (ch === "\n") {
|
|
179
191
|
this.flushWord();
|
|
180
192
|
this.newline();
|
|
@@ -189,6 +201,15 @@ class StreamRenderer {
|
|
|
189
201
|
}
|
|
190
202
|
continue;
|
|
191
203
|
}
|
|
204
|
+
// Strip heading markers (# ## ###) at line start
|
|
205
|
+
if (ch === "#" && this.atLineStart) {
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
// Strip inline code backticks
|
|
209
|
+
if (ch === "`") {
|
|
210
|
+
this.flushWord();
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
192
213
|
const cp = ch.codePointAt(0) || 0;
|
|
193
214
|
if (charWidth(cp) === 2) {
|
|
194
215
|
// CJK / wide: flush any pending latin word, then place this glyph
|
package/dist/cli/tui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/cli/tui.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDH,8BAoBC;AAKD,kCAIC;AAGD,8BAGC;
|
|
1
|
+
{"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/cli/tui.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/tui.ts
CHANGED
|
@@ -127,26 +127,40 @@ export class StreamRenderer {
|
|
|
127
127
|
private startLine() { if (this.atLineStart) { this.out.write(this.gutter); this.atLineStart = false; } }
|
|
128
128
|
private newline() { this.out.write("\n"); this.atLineStart = true; this.col = 0; }
|
|
129
129
|
|
|
130
|
+
/** Strip asterisk formatting: **text** → text, *text* → text, __text__ → text */
|
|
131
|
+
private cleanWord(s: string): string {
|
|
132
|
+
return s.replace(/\*\*(.+?)\*\*/g, (_, t) => t)
|
|
133
|
+
.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, (_, t) => t)
|
|
134
|
+
.replace(/__([^_]+)__/g, (_, t) => t)
|
|
135
|
+
.replace(/_([^_]+)_/g, (_, t) => t);
|
|
136
|
+
}
|
|
137
|
+
|
|
130
138
|
private flushWord() {
|
|
131
139
|
if (!this.word) return;
|
|
132
|
-
const
|
|
140
|
+
const cleaned = this.cleanWord(this.word);
|
|
141
|
+
if (!cleaned) { this.word = ""; return; }
|
|
142
|
+
const w = visualWidth(cleaned);
|
|
133
143
|
if (this.col > 0 && this.col + w > this.maxCols) this.newline();
|
|
134
144
|
this.startLine();
|
|
135
|
-
this.out.write(this.color(
|
|
145
|
+
this.out.write(this.color(cleaned));
|
|
136
146
|
this.col += w;
|
|
137
147
|
this.word = "";
|
|
138
148
|
}
|
|
139
149
|
|
|
140
|
-
/** Feed a chunk of streamed text. */
|
|
150
|
+
/** Feed a chunk of streamed text. Filters out raw md formatting. */
|
|
141
151
|
write(text: string) {
|
|
142
152
|
for (const ch of text) {
|
|
143
|
-
if (ch === "\r") continue;
|
|
153
|
+
if (ch === "\r") continue;
|
|
144
154
|
if (ch === "\n") { this.flushWord(); this.newline(); continue; }
|
|
145
155
|
if (ch === " " || ch === "\t") {
|
|
146
156
|
this.flushWord();
|
|
147
157
|
if (this.col > 0 && this.col < this.maxCols) { this.startLine(); this.out.write(" "); this.col += 1; }
|
|
148
158
|
continue;
|
|
149
159
|
}
|
|
160
|
+
// Strip heading markers (# ## ###) at line start
|
|
161
|
+
if (ch === "#" && this.atLineStart) { continue; }
|
|
162
|
+
// Strip inline code backticks
|
|
163
|
+
if (ch === "`") { this.flushWord(); continue; }
|
|
150
164
|
const cp = ch.codePointAt(0) || 0;
|
|
151
165
|
if (charWidth(cp) === 2) {
|
|
152
166
|
// CJK / wide: flush any pending latin word, then place this glyph
|