6bf8bebf51
CI / Test and Build (push) Failing after 1s
CI / Migrate Dev DB (push) Has been skipped
CI / Migrate DB (push) Has been skipped
CodeQL / Analyze actions (push) Has been cancelled
CodeQL / Analyze javascript-typescript (push) Has been cancelled
CI / Detect Version (push) Has been cancelled
CI / Detect Desktop Changes (push) Has been cancelled
CI / Build AMD64 (blacksmith-2vcpu-ubuntu-2404, ./docker/cron.Dockerfile, ubuntu-latest, ghcr.io/simstudioai/cron) (push) Has been cancelled
CI / Build AMD64 (blacksmith-2vcpu-ubuntu-2404, ./docker/db.Dockerfile, ECR_MIGRATIONS, ubuntu-latest, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (blacksmith-4vcpu-ubuntu-2404, ./docker/pii.Dockerfile, ECR_PII, ubuntu-latest, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (blacksmith-4vcpu-ubuntu-2404, ./docker/realtime.Dockerfile, ECR_REALTIME, ubuntu-latest, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build AMD64 (blacksmith-8vcpu-ubuntu-2404, ./docker/app.Dockerfile, ECR_APP, linux-x64-8-core, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (blacksmith-4vcpu-ubuntu-2404-arm, ./docker/cron.Dockerfile, ubuntu-24.04-arm, ghcr.io/simstudioai/cron) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (blacksmith-4vcpu-ubuntu-2404-arm, ./docker/db.Dockerfile, ubuntu-24.04-arm, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (blacksmith-4vcpu-ubuntu-2404-arm, ./docker/pii.Dockerfile, ubuntu-24.04-arm, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (blacksmith-4vcpu-ubuntu-2404-arm, ./docker/realtime.Dockerfile, ubuntu-24.04-arm, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (blacksmith-8vcpu-ubuntu-2404-arm, ./docker/app.Dockerfile, linux-arm64-8-core, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
Publish CLI Package / publish-npm (push) Has been cancelled
Publish Python SDK / publish-pypi (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
Helm Chart / Lint, test, and validate chart (push) Has been cancelled
Helm Chart / Chart version bumped (push) Has been cancelled
Publish TypeScript SDK / publish-npm (push) Has been cancelled
CI / Build Dev ECR (blacksmith-8vcpu-ubuntu-2404, ./docker/app.Dockerfile, ECR_APP, linux-x64-8-core) (push) Has been cancelled
CI / Promote Images (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/cron) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build Dev ECR (blacksmith-2vcpu-ubuntu-2404, ./docker/db.Dockerfile, ECR_MIGRATIONS, ubuntu-latest) (push) Has been cancelled
CI / Build Dev ECR (blacksmith-4vcpu-ubuntu-2404, ./docker/pii.Dockerfile, ECR_PII, ubuntu-latest) (push) Has been cancelled
CI / Build Dev ECR (blacksmith-4vcpu-ubuntu-2404, ./docker/realtime.Dockerfile, ECR_REALTIME, ubuntu-latest) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Check Desktop Signing Secrets (push) Has been cancelled
CI / Desktop Release (push) Has been cancelled
CI / Create Desktop Prerelease (push) Has been cancelled
CI / Desktop Prerelease Build (push) Has been cancelled
CI / Publish Desktop Prerelease (push) Has been cancelled
CI / Prune Desktop Prereleases (push) Has been cancelled
Helm Chart / Install on kind and run helm test (push) Has been cancelled
72 lines
1.9 KiB
TypeScript
72 lines
1.9 KiB
TypeScript
import { sleep } from '@sim/utils/helpers'
|
|
import chalk from 'chalk'
|
|
import { restoreTerminal } from './terminal.ts'
|
|
import { isRich, theme } from './theme.ts'
|
|
|
|
const WORDMARK = [' ▀ ', '▄▀▀▀ █ █▀█▀█', '▀▀▀▄ █ █ █ █', '▄▄▄▀ █ █ █ █'] as const
|
|
const TAGLINE = 'the AI workspace'
|
|
const WIDTH = Math.max(...WORDMARK.map((row) => row.length))
|
|
const EDGE = chalk.hex('#ffffff')
|
|
const SHELL = chalk.hex('#3d3d3d')
|
|
const FRAME_DELAY_MS = 35
|
|
|
|
function renderRow(row: string, edge: number): string {
|
|
let out = ''
|
|
for (let col = 0; col < row.length; col++) {
|
|
const ch = row[col]
|
|
if (ch === ' ') {
|
|
out += ch
|
|
} else if (col < edge - 1) {
|
|
out += theme.accent(ch)
|
|
} else if (col <= edge) {
|
|
out += EDGE(ch)
|
|
} else {
|
|
out += SHELL(ch)
|
|
}
|
|
}
|
|
return out
|
|
}
|
|
|
|
function paintFrame(edge: number, redraw: boolean): void {
|
|
if (redraw) process.stdout.write(`\x1b[${WORDMARK.length + 1}F`)
|
|
for (const row of WORDMARK) {
|
|
process.stdout.write(`\x1b[K${renderRow(row, edge)}\n`)
|
|
}
|
|
process.stdout.write(`\x1b[K${theme.muted(TAGLINE)}\n`)
|
|
}
|
|
|
|
/** Animated half-block sim wordmark; degrades to a plain line off-TTY/CI. */
|
|
export async function showBanner(): Promise<void> {
|
|
const animated =
|
|
process.stdout.isTTY &&
|
|
isRich() &&
|
|
!process.env.CI &&
|
|
!process.env.VITEST &&
|
|
(process.stdout.columns ?? 80) >= WIDTH + 2
|
|
|
|
console.log()
|
|
if (!animated) {
|
|
console.log(`◆ Sim — ${TAGLINE}`)
|
|
console.log()
|
|
return
|
|
}
|
|
|
|
const onSigint = () => {
|
|
restoreTerminal()
|
|
process.exit(130)
|
|
}
|
|
process.once('SIGINT', onSigint)
|
|
process.stdout.write('\x1b[?25l')
|
|
try {
|
|
paintFrame(-2, false)
|
|
for (let edge = 0; edge <= WIDTH + 2; edge++) {
|
|
await sleep(FRAME_DELAY_MS)
|
|
paintFrame(edge, true)
|
|
}
|
|
} finally {
|
|
process.stdout.write('\x1b[?25h')
|
|
process.removeListener('SIGINT', onSigint)
|
|
}
|
|
console.log()
|
|
}
|