File size: 1,447 Bytes
0dbc9de | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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")
}
|