@aiwayds/dsh-tui-pi 0.8.2 → 0.9.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.
Files changed (60) hide show
  1. package/README.md +44 -3
  2. package/README.zh.md +36 -3
  3. package/assets/fonts/LICENSE-Hack.txt +45 -0
  4. package/assets/fonts/LICENSE-NerdFonts.txt +126 -0
  5. package/assets/fonts/LICENSE-NotoSansSymbols.txt +93 -0
  6. package/assets/fonts/LICENSE-NotoSansSymbols2.txt +93 -0
  7. package/assets/fonts/dsh-tui-pi-nerd.ttf +0 -0
  8. package/assets/fonts-gen.mjs +219 -0
  9. package/assets/whale-gen.mjs +169 -0
  10. package/assets/whale-source.png +0 -0
  11. package/lib/agents.js +1 -1
  12. package/lib/agents.js.map +1 -1
  13. package/lib/canvas-terminal.d.ts +17 -11
  14. package/lib/canvas-terminal.js +62 -24
  15. package/lib/canvas-terminal.js.map +1 -1
  16. package/lib/dsh-events.d.ts +32 -3
  17. package/lib/dsh-events.js +14 -0
  18. package/lib/dsh-events.js.map +1 -1
  19. package/lib/font-detect.d.ts +66 -0
  20. package/lib/font-detect.js +124 -0
  21. package/lib/font-detect.js.map +1 -0
  22. package/lib/footer.d.ts +3 -2
  23. package/lib/footer.js +16 -8
  24. package/lib/footer.js.map +1 -1
  25. package/lib/icons.d.ts +53 -0
  26. package/lib/icons.js +78 -0
  27. package/lib/icons.js.map +1 -0
  28. package/lib/index.js +44 -13
  29. package/lib/index.js.map +1 -1
  30. package/lib/live-widgets.d.ts +16 -5
  31. package/lib/live-widgets.js +29 -8
  32. package/lib/live-widgets.js.map +1 -1
  33. package/lib/messages.js +2 -1
  34. package/lib/messages.js.map +1 -1
  35. package/lib/session.d.ts +99 -16
  36. package/lib/session.js +322 -64
  37. package/lib/session.js.map +1 -1
  38. package/lib/sessions.d.ts +15 -0
  39. package/lib/sessions.js +18 -3
  40. package/lib/sessions.js.map +1 -1
  41. package/lib/settings.js +2 -2
  42. package/lib/skills.d.ts +19 -3
  43. package/lib/skills.js +43 -10
  44. package/lib/skills.js.map +1 -1
  45. package/lib/subagent-policy.d.ts +11 -11
  46. package/lib/subagent-policy.js +17 -15
  47. package/lib/subagent-policy.js.map +1 -1
  48. package/lib/subagent-viewer.d.ts +20 -5
  49. package/lib/subagent-viewer.js +29 -15
  50. package/lib/subagent-viewer.js.map +1 -1
  51. package/lib/theme-settings.d.ts +25 -10
  52. package/lib/theme-settings.js +40 -14
  53. package/lib/theme-settings.js.map +1 -1
  54. package/lib/tokens.d.ts +38 -0
  55. package/lib/tokens.js +68 -0
  56. package/lib/tokens.js.map +1 -0
  57. package/lib/tui.js +15 -6
  58. package/lib/tui.js.map +1 -1
  59. package/package.json +2 -1
  60. package/scripts/install-font.mjs +329 -0
@@ -0,0 +1,219 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Regenerate the shipped terminal font subset: assets/fonts/dsh-tui-pi-nerd.ttf.
4
+ *
5
+ * Why this font exists: the TUI's only PUA glyph is the powerline separator
6
+ * U+E0B0 (`src/icons.ts`), which no default terminal font ships. Setting a
7
+ * Nerd Font as the terminal's main font fixes it, but full Nerd Fonts are
8
+ * megabytes. This script produces a ~170KB subset that works AS A TERMINAL
9
+ * MAIN FONT: ASCII + U+E0B0 + every symbol the TUI renders (box drawing,
10
+ * block elements, geometric shapes, misc technical/symbols/dingbats, arrows,
11
+ * braille) so a weak terminal without font fallback still shows them.
12
+ *
13
+ * Sources and their licenses (all shipped next to the TTF):
14
+ * - Hack Nerd Font Regular (ryanoasis/nerd-fonts v3.5.0) — the ASCII +
15
+ * powerline base; covers the 25xx/21xx/2580/2500/28xx blocks, U+E0B0,
16
+ * U+2B58. Base glyphs: Hack (MIT) + Bitstream Vera (Vera license), see
17
+ * LICENSE-Hack.txt; the Nerd Fonts-patched portions (incl. the powerline
18
+ * separator) are under the project's LICENSE-NerdFonts.txt (SIL OFL 1.1).
19
+ * - Noto Sans Symbols 2 (google/fonts) — covers U+23F9, U+2605, U+26A0,
20
+ * U+2611, U+2713, U+2718, U+2318 (OFL 1.1, LICENSE-NotoSansSymbols2.txt).
21
+ * - Noto Sans Symbols v1 (google/fonts, variable; instanced at wght=400) —
22
+ * covers U+2699, U+2387, U+24D8 (OFL 1.1, LICENSE-NotoSansSymbols.txt).
23
+ * No single font covers all three, so the script merges them, subsets
24
+ * to the project glyph set and renames the result ("DSH TUI Nerd") so the
25
+ * derivative does not carry Hack's reserved font name.
26
+ *
27
+ * Requirements: python3 with fonttools (`python3 -m pip install fonttools`,
28
+ * or a venv — pip on a homebrew python needs a venv for PEP 668).
29
+ *
30
+ * Usage: node assets/fonts-gen.mjs
31
+ * Writes assets/fonts/dsh-tui-pi-nerd.ttf plus the four license files.
32
+ * Network is required (downloads the sources fresh).
33
+ */
34
+
35
+ import { execFileSync } from 'node:child_process'
36
+ import { copyFileSync, existsSync, mkdirSync, mkdtempSync, readFileSync, statSync, writeFileSync } from 'node:fs'
37
+ import { tmpdir } from 'node:os'
38
+ import { dirname, join } from 'node:path'
39
+ import { fileURLToPath } from 'node:url'
40
+
41
+ const repoRoot = dirname(dirname(fileURLToPath(import.meta.url)))
42
+ const outDir = join(repoRoot, 'assets', 'fonts')
43
+ const FONT_TAG = 'v3.5.0'
44
+
45
+ /** The subset spec: ASCII + U+E0B0 + every block the TUI renders (see src/icons.ts). */
46
+ const UNICODES = [
47
+ 'U+0020-007E', // ASCII printable (a terminal main font needs the full alphabet)
48
+ 'U+00B0,U+00B7,U+00D7,U+00F7', // ° · × ÷ (footer labels)
49
+ 'U+2013,U+2014,U+2022,U+2026', // – — • … (prose/notice punctuation)
50
+ 'U+2190-21BB', // arrows (history hint, panes)
51
+ 'U+2212,U+2234,U+2264-2265', // − ∴ ≤ ≥
52
+ 'U+2300-23FF', // misc technical: ⌘ ⎇ ⏎ ⏹ …
53
+ 'U+24D8', // ⓘ
54
+ 'U+2500-25FF', // box drawing + block elements + geometric shapes (borders, ● ■ ▸ ◔ ◕ …)
55
+ 'U+2600-26FF', // misc symbols: ☁ ★ ☐ ☑ ⚙ ⚠ ⚡ …
56
+ 'U+2700-27BF', // dingbats: ✎ ✓ ✔ ✗ ✘ …
57
+ 'U+2800-28FF', // braille (the spinner frames)
58
+ 'U+2B58', // ⭘ (subagent header)
59
+ 'U+E0B0', // powerline separator (the only PUA glyph in the project)
60
+ ].join(',')
61
+
62
+ const SOURCES = [
63
+ {
64
+ file: 'Hack.zip',
65
+ url: `https://github.com/ryanoasis/nerd-fonts/releases/download/${FONT_TAG}/Hack.zip`,
66
+ member: 'HackNerdFont-Regular.ttf',
67
+ },
68
+ {
69
+ file: 'NotoSansSymbols2-Regular.ttf',
70
+ url: 'https://raw.githubusercontent.com/google/fonts/main/ofl/notosanssymbols2/NotoSansSymbols2-Regular.ttf',
71
+ },
72
+ {
73
+ file: 'NotoSansSymbols-var.ttf',
74
+ url: 'https://raw.githubusercontent.com/google/fonts/main/ofl/notosanssymbols/NotoSansSymbols%5Bwght%5D.ttf',
75
+ },
76
+ {
77
+ // The Nerd Fonts project license (SIL OFL 1.1 + MIT) covering the
78
+ // patched-font portions of Hack Nerd Font (incl. the powerline glyphs).
79
+ file: 'LICENSE-NerdFonts.txt',
80
+ url: 'https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/LICENSE',
81
+ },
82
+ {
83
+ file: 'OFL-NotoSansSymbols.txt',
84
+ url: 'https://raw.githubusercontent.com/google/fonts/main/ofl/notosanssymbols/OFL.txt',
85
+ licenseOf: 'NotoSansSymbols',
86
+ },
87
+ {
88
+ file: 'OFL-NotoSansSymbols2.txt',
89
+ url: 'https://raw.githubusercontent.com/google/fonts/main/ofl/notosanssymbols2/OFL.txt',
90
+ licenseOf: 'NotoSansSymbols2',
91
+ },
92
+ ]
93
+
94
+ /** Download a URL to a file (node 22 has global fetch). */
95
+ async function download(url, dest) {
96
+ const res = await fetch(url)
97
+ if (!res.ok) throw new Error(`download failed ${res.status} ${url}`)
98
+ writeFileSync(dest, Buffer.from(await res.arrayBuffer()))
99
+ process.stdout.write(` downloaded ${dest.split('/').pop()} (${existsSync(dest) ? readFileSync(dest).length : 0} bytes)\n`)
100
+ }
101
+
102
+ function sh(cmd, args, opts = {}) {
103
+ process.stdout.write(` $ ${cmd} ${args.join(' ')}\n`)
104
+ return execFileSync(cmd, args, { stdio: ['ignore', 'pipe', 'pipe'], encoding: 'utf8', ...opts })
105
+ }
106
+
107
+ /** python3 with fontTools on PATH, or die with an install hint. */
108
+ function resolvePython() {
109
+ for (const candidate of [process.env.PYTHON ?? 'python3']) {
110
+ try {
111
+ execFileSync(candidate, ['-c', 'import fontTools'], { stdio: 'ignore' })
112
+ return candidate
113
+ } catch { /* try next */ }
114
+ }
115
+ throw new Error(
116
+ 'fonttools is required. Install it first, e.g.:\n'
117
+ + ' python3 -m venv /tmp/ft-venv && /tmp/ft-venv/bin/pip install fonttools\n'
118
+ + 'then re-run with PYTHON=/tmp/ft-venv/bin/python node assets/fonts-gen.mjs',
119
+ )
120
+ }
121
+
122
+ async function main() {
123
+ const py = resolvePython()
124
+ const work = mkdtempSync(join(tmpdir(), 'dsh-tui-font-'))
125
+ process.stdout.write(`Working in ${work}\n`)
126
+
127
+ // 1. Download the sources (fresh each run).
128
+ for (const src of SOURCES) {
129
+ if (src.licenseOf === 'Hack') continue // Hack's license is inside its zip
130
+ await download(src.url, join(work, src.file))
131
+ }
132
+ sh(py, ['-m', 'zipfile', '-e', join(work, 'Hack.zip'), join(work, 'hack')])
133
+ // The Hack zip carries its license as LICENSE.md (Hack MIT + Vera attribution).
134
+ writeFileSync(join(work, 'LICENSE-Hack.txt'), readFileSync(join(work, 'hack', 'LICENSE.md')))
135
+ const hack = join(work, 'hack', 'HackNerdFont-Regular.ttf')
136
+
137
+ // 2. Prepare the two Noto fonts: instance the variable v1 at wght=400,
138
+ // scale both to upem 2048 (Hack's units) and drop tables pyftmerge
139
+ // cannot merge (vertical metrics / variable tables).
140
+ const preparePy = join(work, 'prepare.py')
141
+ writeFileSync(preparePy, `
142
+ from fontTools.ttLib import TTFont
143
+ from fontTools.ttLib.scaleUpem import scale_upem
144
+ from fontTools.varLib.instancer import instantiateVariableFont
145
+
146
+ # v1 is a variable font (wght axis) — pin the Regular instance first.
147
+ vf = TTFont('${join(work, 'NotoSansSymbols-var.ttf')}')
148
+ instantiateVariableFont(vf, {'wght': 400})
149
+ vf.save('${join(work, 'NotoSansSymbols1-static.ttf')}')
150
+
151
+ for src, dst in [
152
+ ('${join(work, 'NotoSansSymbols2-Regular.ttf')}', '${join(work, 'NotoSansSymbols2-prep.ttf')}'),
153
+ ('${join(work, 'NotoSansSymbols1-static.ttf')}', '${join(work, 'NotoSansSymbols1-prep.ttf')}'),
154
+ ]:
155
+ f = TTFont(src)
156
+ scale_upem(f, 2048) # match Hack's 2048 unitsPerEm
157
+ for t in ('vhea', 'vmtx', 'VORG', 'GSUB', 'GPOS', 'GDEF', 'STAT', 'avar', 'cvar', 'HVAR', 'MVAR', 'VVAR'):
158
+ if t in f: del f[t]
159
+ f.save(dst)
160
+ print('prepared', dst)
161
+ `)
162
+ sh(py, [preparePy])
163
+
164
+ // 3. Merge Hack + both Noto symbol fonts, then subset to the project set.
165
+ // fontTools.merge writes `merged.ttf` to its CWD — pin it to the work dir
166
+ // so the subset step below always finds the merged font (a prior version
167
+ // let it land in the invoking CWD, silently breaking the pipeline).
168
+ sh(py, ['-m', 'fontTools.merge', hack, join(work, 'NotoSansSymbols2-prep.ttf'), join(work, 'NotoSansSymbols1-prep.ttf')],
169
+ { cwd: work })
170
+ const merged = join(work, 'merged.ttf')
171
+ const subset = join(work, 'dsh-tui-pi-nerd.ttf')
172
+ sh(py, ['-m', 'fontTools.subset', merged,
173
+ `--unicodes=${UNICODES}`,
174
+ '--layout-features=', '--glyph-names', '--no-hinting',
175
+ '--drop-tables+=GDEF,GPOS,GSUB',
176
+ `--output-file=${subset}`])
177
+
178
+ // 4. Rename the derivative so it does not carry Hack's reserved font name.
179
+ const renamePy = join(work, 'rename.py')
180
+ writeFileSync(renamePy, `
181
+ from fontTools.ttLib import TTFont
182
+ f = TTFont('${subset}')
183
+ name = f['name']
184
+ records = {
185
+ 1: 'DSH TUI Nerd', # family
186
+ 2: 'Regular', # subfamily
187
+ 3: 'DSH TUI Nerd', # unique id
188
+ 4: 'DSH TUI Nerd', # full name
189
+ 6: 'DSHTUINerd', # postscript name (iTerm2 Normal Font uses this)
190
+ 16: 'DSH TUI Nerd', # typographic family
191
+ 17: 'Regular', # typographic subfamily
192
+ }
193
+ # Keep only the platform 3 / encoding 1 (Windows BMP) records, with our names.
194
+ keep = []
195
+ for rec in name.names:
196
+ if rec.nameID in records and rec.platformID == 3 and rec.platEncID == 1:
197
+ rec.string = records[rec.nameID]
198
+ keep.append(rec)
199
+ name.names = keep
200
+ f.save('${subset}')
201
+ print('renamed -> DSH TUI Nerd')
202
+ `)
203
+ sh(py, [renamePy])
204
+
205
+ // 5. Ship the subset + the license files.
206
+ mkdirSync(outDir, { recursive: true })
207
+ copyFileSync(subset, join(outDir, 'dsh-tui-pi-nerd.ttf'))
208
+ copyFileSync(join(work, 'LICENSE-Hack.txt'), join(outDir, 'LICENSE-Hack.txt'))
209
+ copyFileSync(join(work, 'LICENSE-NerdFonts.txt'), join(outDir, 'LICENSE-NerdFonts.txt'))
210
+ copyFileSync(join(work, 'OFL-NotoSansSymbols.txt'), join(outDir, 'LICENSE-NotoSansSymbols.txt'))
211
+ copyFileSync(join(work, 'OFL-NotoSansSymbols2.txt'), join(outDir, 'LICENSE-NotoSansSymbols2.txt'))
212
+ const size = statSync(join(outDir, 'dsh-tui-pi-nerd.ttf')).size
213
+ process.stdout.write(`\nWrote assets/fonts/dsh-tui-pi-nerd.ttf (${size} bytes) + 4 license files\n`)
214
+ }
215
+
216
+ main().catch(error => {
217
+ console.error(`\nfonts-gen failed: ${error instanceof Error ? error.message : String(error)}`)
218
+ process.exit(1)
219
+ })
@@ -0,0 +1,169 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Regenerate the welcome banner's whale pixel art from the source image.
4
+ *
5
+ * Usage: node assets/whale-gen.mjs
6
+ * Prints the generated art as a JSON array of 10 strings (one per banner
7
+ * row) on stdout. The output must be character-for-character identical to
8
+ * WHALE_ART in src/welcome.ts — test/welcome.test.mjs asserts this.
9
+ *
10
+ * Parameters (the ones used to generate the current WHALE_ART):
11
+ * - bbox x0=108 x1=822 y0=176 y1=718: the source-image crop that bounds the
12
+ * whale (the image is 936x846; the crop is the whale plus a small margin).
13
+ * - SAMPLE_COLS=28, SAMPLE_ROWS=20: the art grid is 28 cells wide; each of
14
+ * the 10 banner rows is two half-cells (top half + bottom half, rendered
15
+ * as the upper/lower half of a block glyph), so 20 half-cell bands are
16
+ * sampled vertically.
17
+ * - Sampling: one pixel per cell at the BAND CENTER, i.e. column j samples
18
+ * x = x0 + floor((x1-x0) * (j+0.5) / SAMPLE_COLS) and band k samples
19
+ * y = y0 + floor((y1-y0) * (k+0.5) / SAMPLE_ROWS).
20
+ * - Classification: a sampled pixel is WHALE when alpha >= 128 and it is
21
+ * blue (b > r+10 and b > g+10 and b > 140); otherwise TRANSPARENT.
22
+ * - Half-block mapping per cell: top AND bottom whale -> '█', top only ->
23
+ * '▀', bottom only -> '▄', neither -> ' '.
24
+ * - Post-pass: all-transparent rows are dropped and the column range is
25
+ * cropped to the bounding box of the whale glyphs. With the parameters
26
+ * above the whale already fills the crop edge-to-edge, so this is a no-op
27
+ * (it only matters if the source image or the bbox changes).
28
+ *
29
+ * The PNG is decoded with node built-ins only (zlib inflate of the IDAT
30
+ * stream + the five PNG scanline filters), so the script has no runtime
31
+ * dependencies.
32
+ */
33
+
34
+ import { readFileSync } from 'node:fs'
35
+ import { inflateSync } from 'node:zlib'
36
+ import { fileURLToPath } from 'node:url'
37
+ import { dirname, join } from 'node:path'
38
+
39
+ const SOURCE = join(dirname(fileURLToPath(import.meta.url)), 'whale-source.png')
40
+
41
+ // ------------------------------------------------------------------ png --
42
+
43
+ /** Decode an 8-bit RGBA PNG into { width, height, data } (data is RGBA, row-major). */
44
+ function decodePng(path) {
45
+ const buf = readFileSync(path)
46
+ if (buf.readUInt32BE(0) !== 0x89504e47) throw new Error(`${path}: not a PNG (bad signature)`)
47
+ let pos = 8
48
+ let width = 0
49
+ let height = 0
50
+ let bitDepth = 0
51
+ let colorType = 0
52
+ let idat = Buffer.alloc(0)
53
+ while (pos < buf.length) {
54
+ const len = buf.readUInt32BE(pos)
55
+ const type = buf.toString('ascii', pos + 4, pos + 8)
56
+ const data = buf.subarray(pos + 8, pos + 8 + len)
57
+ if (type === 'IHDR') {
58
+ width = data.readUInt32BE(0)
59
+ height = data.readUInt32BE(4)
60
+ bitDepth = data[8]
61
+ colorType = data[9]
62
+ } else if (type === 'IDAT') {
63
+ idat = Buffer.concat([idat, data]) // IDAT may be split across chunks
64
+ }
65
+ pos += 12 + len // chunk length + type + data + CRC
66
+ }
67
+ if (bitDepth !== 8 || colorType !== 6) {
68
+ throw new Error(`${path}: expected 8-bit RGBA, got bit depth ${bitDepth}, color type ${colorType}`)
69
+ }
70
+ const bpp = 4
71
+ const stride = width * bpp
72
+ const raw = inflateSync(idat)
73
+ const out = Buffer.alloc(height * stride)
74
+ let prev = Buffer.alloc(stride)
75
+ for (let y = 0; y < height; y++) {
76
+ const filter = raw[y * (stride + 1)] // one filter byte per scanline
77
+ const line = raw.subarray(y * (stride + 1) + 1, (y + 1) * (stride + 1))
78
+ const cur = out.subarray(y * stride, (y + 1) * stride)
79
+ for (let i = 0; i < stride; i++) {
80
+ const left = i >= bpp ? cur[i - bpp] : 0
81
+ const up = prev[i]
82
+ const upLeft = i >= bpp ? prev[i - bpp] : 0
83
+ let v = line[i]
84
+ switch (filter) {
85
+ case 0: break // None
86
+ case 1: v += left; break // Sub
87
+ case 2: v += up; break // Up
88
+ case 3: v += (left + up) >> 1; break // Average
89
+ case 4: { // Paeth
90
+ const p = left + up - upLeft
91
+ const pa = Math.abs(p - left)
92
+ const pb = Math.abs(p - up)
93
+ const pc = Math.abs(p - upLeft)
94
+ v += pa <= pb && pa <= pc ? left : pb <= pc ? up : upLeft
95
+ break
96
+ }
97
+ default: throw new Error(`${path}: unknown scanline filter ${filter}`)
98
+ }
99
+ cur[i] = v & 0xff
100
+ }
101
+ prev = cur
102
+ }
103
+ return { width, height, data: out }
104
+ }
105
+
106
+ // ------------------------------------------------------------ sampling --
107
+
108
+ // Source-crop bbox of the whale (see the header comment).
109
+ const X0 = 108
110
+ const X1 = 822
111
+ const Y0 = 176
112
+ const Y1 = 718
113
+ const SAMPLE_COLS = 28
114
+ const SAMPLE_ROWS = 20 // 2 half-cells per banner row -> 10 rows
115
+
116
+ /** Blue? The classification rule: opaque (alpha >= 128) and blue-dominant. */
117
+ function isWhalePixel(img, x, y) {
118
+ const o = (y * img.width + x) * 4
119
+ const a = img.data[o + 3]
120
+ const r = img.data[o]
121
+ const g = img.data[o + 1]
122
+ const b = img.data[o + 2]
123
+ return a >= 128 && b > r + 10 && b > g + 10 && b > 140
124
+ }
125
+
126
+ /** Sample the pixel at the center of cell column j / half-row band k. */
127
+ function sampleHalf(img, j, k) {
128
+ const x = X0 + Math.floor(((X1 - X0) * (j + 0.5)) / SAMPLE_COLS)
129
+ const y = Y0 + Math.floor(((Y1 - Y0) * (k + 0.5)) / SAMPLE_ROWS)
130
+ return isWhalePixel(img, x, y)
131
+ }
132
+
133
+ // ---------------------------------------------------------------- art --
134
+
135
+ /** Build the 28x10 art grid, then crop all-transparent rows/columns. */
136
+ function generateArt(img) {
137
+ const rows = []
138
+ for (let i = 0; i < SAMPLE_ROWS / 2; i++) {
139
+ let row = ''
140
+ for (let j = 0; j < SAMPLE_COLS; j++) {
141
+ const top = sampleHalf(img, j, 2 * i)
142
+ const bottom = sampleHalf(img, j, 2 * i + 1)
143
+ row += top && bottom ? '█' : top ? '▀' : bottom ? '▄' : ' '
144
+ }
145
+ rows.push(row)
146
+ }
147
+ // Crop: drop all-transparent rows, then narrow to the whale's column range.
148
+ const kept = rows.filter(row => /[█▀▄]/.test(row))
149
+ let left = SAMPLE_COLS
150
+ let right = -1
151
+ for (const row of kept) {
152
+ const first = row.search(/[█▀▄]/)
153
+ if (first === -1) continue
154
+ left = Math.min(left, first)
155
+ let last = first
156
+ for (let j = row.length - 1; j >= 0; j--) {
157
+ if (row[j] !== ' ') { last = j; break }
158
+ }
159
+ right = Math.max(right, last)
160
+ }
161
+ return kept.map(row => row.slice(left, right + 1))
162
+ }
163
+
164
+ // ----------------------------------------------------------------- main --
165
+
166
+ const img = decodePng(SOURCE)
167
+ const art = generateArt(img)
168
+ console.log(JSON.stringify(art))
169
+
Binary file
package/lib/agents.js CHANGED
@@ -402,7 +402,7 @@ export async function openAgentManager(ctx, tui, theme, restoreFocus, preselect)
402
402
  const limits = readSubagentLimits(ctx);
403
403
  const fields = [
404
404
  { key: 'maxAgents', value: `${limits.maxAgents} · concurrent live children (0 = unlimited)`, editable: true },
405
- { key: 'maxRounds', value: `${limits.maxRounds} · completed turns before wrap-up (0 = unlimited)`, editable: true },
405
+ { key: 'maxRounds', value: `${limits.maxRounds} · assistant messages before wrap-up (0 = unlimited)`, editable: true },
406
406
  { key: 'disableSubagent', value: `${limits.disableSubagent ? 'on' : 'off'} · native subagent tool`, editable: true },
407
407
  ];
408
408
  const content = [
package/lib/agents.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
@@ -2,33 +2,39 @@
2
2
  * Terminal write-stream decorator painting the canvas via BCE.
3
3
  *
4
4
  * pi-tui renders rows as `\x1b[{row};1H\x1b[2K{line}` and full redraws as
5
- * `\x1b[2J` — no background of their own. Two injections make the whole
6
- * screen carry the theme canvas color without touching pi-tui:
5
+ * `\x1b[2J` — no background of their own. Injections make the whole screen
6
+ * carry the theme colors without touching pi-tui:
7
7
  *
8
8
  * 1. Before every erase sequence (`\x1b[2K`/`\x1b[2J`): terminals with BCE
9
9
  * (back color erase) fill the erased region with the current SGR
10
10
  * background, painting row tails the erase never reaches.
11
- * 2. After every background-clearing SGR reset (`\x1b[0m`, `\x1b[m`,
12
- * `\x1b[0;…m`, `\x1b[49m`): content following a reset would otherwise
13
- * print with the terminal default background, punching holes into the
14
- * canvas (invisible with a dark theme on a dark terminal, glaring after
15
- * a switch to light). Re-injecting restores the canvas so every printed
16
- * cell keeps it; spans that set their own background still override it.
11
+ * 2. After every color-clearing SGR reset (`\x1b[0m`, `\x1b[m`,
12
+ * `\x1b[0;…m`, `\x1b[39m`, `\x1b[49m`): content following a reset would
13
+ * otherwise print with the terminal default colors, punching holes into
14
+ * the canvas — most visibly the editor input and unselected picker rows
15
+ * falling back to the terminal's default FOREGROUND, which is dark text
16
+ * when the host terminal is light-themed (pi itself never paints a
17
+ * canvas, so its unstyled text always matches; we paint, so we must own
18
+ * both channels). Re-injecting restores the canvas; spans that set their
19
+ * own colors still override it.
17
20
  *
18
- * Rows the diff renderer skips keep the background of their last paint,
19
- * which is correct until the canvas color changes — the caller must then
20
- * force a full redraw (requestRender(true)).
21
+ * Rows the diff renderer skips keep the colors of their last paint, which
22
+ * is correct until the canvas changes — the caller must then force a full
23
+ * redraw (requestRender(true)).
21
24
  */
22
25
  import type { Terminal } from '@earendil-works/pi-tui';
23
26
  export declare class CanvasTerminal implements Terminal {
24
27
  /** '' = transparent passthrough (DSH_TUI_TRANSPARENT). */
25
28
  private background;
29
+ private foreground;
26
30
  /** False once the alt-screen exit sequence is seen — the main-screen document dump that follows stays unpainted. */
27
31
  private active;
28
32
  private readonly inner;
29
33
  constructor(inner: Terminal);
30
34
  /** Set the canvas background SGR; undefined reverts to transparent. */
31
35
  setCanvasBackground(bg: string | undefined): void;
36
+ /** Set the canvas foreground SGR (the app's default text color); undefined disables. */
37
+ setCanvasForeground(fg: string | undefined): void;
32
38
  write(data: string): void;
33
39
  start(onInput: (data: string) => void, onResize: () => void): void;
34
40
  stop(): void;