| const logo = { |
| left: [" ", "ββββ ββββ ββββ ββββ", "β__β β__β β^^^ β__β", "ββββ ββββ ββββ β~~β"], |
| right: [" β ", "ββββ ββββ ββββ ββββ", "β___ β__β β__β β^^^", "ββββ ββββ ββββ ββββ"], |
| } |
|
|
| const reset = "\x1b[0m" |
| const bold = "\x1b[1m" |
| const dim = "\x1b[90m" |
|
|
| function wordmark(pad = "") { |
| const draw = (line: string, fg: string, shadow: string, bg: string) => |
| [...line] |
| .map((char) => { |
| if (char === "_") return `${bg} ${reset}` |
| if (char === "^") return `${fg}${bg}β${reset}` |
| if (char === "~") return `${shadow}β${reset}` |
| if (char === " ") return " " |
| return `${fg}${char}${reset}` |
| }) |
| .join("") |
|
|
| return logo.left.map((line, index) => { |
| const left = draw(line, dim, "\x1b[38;5;235m", "\x1b[48;5;235m") |
| const right = draw(logo.right[index] ?? "", reset, "\x1b[38;5;238m", "\x1b[48;5;238m") |
| return `${pad}${left} ${right}` |
| }) |
| } |
|
|
| export function sessionEpilogue(input: { title: string; sessionID?: string }) { |
| const weak = (text: string) => `${dim}${text.padEnd(10, " ")}${reset}` |
| return [ |
| ...wordmark(" "), |
| "", |
| ` ${weak("Session")}${bold}${input.title}${reset}`, |
| ` ${weak("Continue")}${bold}opencode -s ${input.sessionID}${reset}`, |
| "", |
| ].join("\n") |
| } |
|
|