diff options
| author | Kit Langton <[email protected]> | 2026-04-01 22:27:09 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-02 02:27:09 +0000 |
| commit | 2e8e278441e185d6282352b2fa27e0205406ed46 (patch) | |
| tree | 557b505dfd1b8afce7372aa70dadbd40b2fcf1b1 /packages | |
| parent | 0bae38c0622dca3235ae4f88f0d8af68085c1eb8 (diff) | |
| download | opencode-2e8e278441e185d6282352b2fa27e0205406ed46.tar.gz opencode-2e8e278441e185d6282352b2fa27e0205406ed46.zip | |
fix(cli): use simple logo in CLI (#20585)
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/cli/ui.ts | 54 |
1 files changed, 11 insertions, 43 deletions
diff --git a/packages/opencode/src/cli/ui.ts b/packages/opencode/src/cli/ui.ts index 39396997c..c592d4206 100644 --- a/packages/opencode/src/cli/ui.ts +++ b/packages/opencode/src/cli/ui.ts @@ -1,9 +1,15 @@ import z from "zod" import { EOL } from "os" import { NamedError } from "@opencode-ai/util/error" -import { logo as glyphs } from "./logo" export namespace UI { + const wordmark = [ + `⠀ ▄ `, + `█▀▀█ █▀▀█ █▀▀█ █▀▀▄ █▀▀▀ █▀▀█ █▀▀█ █▀▀█`, + `█ █ █ █ █▀▀▀ █ █ █ █ █ █ █ █▀▀▀`, + `▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀ ▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀`, + ] + export const CancelledError = NamedError.create("UICancelledError", z.void()) export const Style = { @@ -41,50 +47,12 @@ export namespace UI { } export function logo(pad?: string) { - const result: string[] = [] - const reset = "\x1b[0m" - const left = { - fg: "\x1b[90m", - shadow: "\x1b[38;5;235m", - bg: "\x1b[48;5;235m", - } - const right = { - fg: reset, - shadow: "\x1b[38;5;238m", - bg: "\x1b[48;5;238m", - } - const gap = " " - const draw = (line: string, fg: string, shadow: string, bg: string) => { - const parts: string[] = [] - for (const char of line) { - if (char === "_") { - parts.push(bg, " ", reset) - continue - } - if (char === "^") { - parts.push(fg, bg, "▀", reset) - continue - } - if (char === "~") { - parts.push(shadow, "▀", reset) - continue - } - if (char === " ") { - parts.push(" ") - continue - } - parts.push(fg, char, reset) - } - return parts.join("") - } - glyphs.left.forEach((row, index) => { + const result = [] + for (const row of wordmark) { if (pad) result.push(pad) - result.push(draw(row, left.fg, left.shadow, left.bg)) - result.push(gap) - const other = glyphs.right[index] ?? "" - result.push(draw(other, right.fg, right.shadow, right.bg)) + result.push(row) result.push(EOL) - }) + } return result.join("").trimEnd() } |
