Unify branding: VT323 logotype across website, TUI, and OAuth pages

- Add VT323 ASCII art logo to logo.mjs as single source of truth
- Website nav and hero use VT323 font via AsciiLogo.astro component
- TUI header and CLI help render the ASCII logo with block-centered alignment
- OAuth callback pages (Pi and alphaXiv) show branded feynman logotype
- Auto-set recommended model after provider login

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Advait Paliwal
2026-03-23 23:28:54 -07:00
parent cd0e5d953a
commit 779dd2441c
10 changed files with 63 additions and 27 deletions

View File

@@ -6,6 +6,7 @@ import { promptChoice, promptText } from "../setup/prompts.js";
import { printInfo, printSection, printSuccess, printWarning } from "../ui/terminal.js";
import {
buildModelStatusSnapshotFromRecords,
chooseRecommendedModel,
getAvailableModelRecords,
getSupportedModelRecords,
type ModelStatusSnapshot,
@@ -109,7 +110,7 @@ export function printModelList(settingsPath: string, authPath: string): void {
}
}
export async function loginModelProvider(authPath: string, providerId?: string): Promise<void> {
export async function loginModelProvider(authPath: string, providerId?: string, settingsPath?: string): Promise<void> {
const provider = providerId ? resolveOAuthProvider(authPath, providerId) : await selectOAuthProvider(authPath, "login");
if (!provider) {
if (providerId) {
@@ -143,6 +144,21 @@ export async function loginModelProvider(authPath: string, providerId?: string):
});
printSuccess(`Model provider login complete: ${provider.id}`);
if (settingsPath) {
const currentSpec = getCurrentModelSpec(settingsPath);
const available = getAvailableModelRecords(authPath);
const currentValid = currentSpec
? available.some((m) => `${m.provider}/${m.id}` === currentSpec)
: false;
if ((!currentSpec || !currentValid) && available.length > 0) {
const recommended = chooseRecommendedModel(authPath);
if (recommended) {
setDefaultModelSpec(settingsPath, authPath, recommended.spec);
}
}
}
}
export async function logoutModelProvider(authPath: string, providerId?: string): Promise<void> {