From 26594d2c5416fc878f0c51ffe79672fd4674a5df Mon Sep 17 00:00:00 2001 From: "exe.dev user" Date: Wed, 29 Apr 2026 12:16:15 +0000 Subject: [PATCH] feat(setup): paint "you" green in the display-name prompt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds an `accentGreen` helper (#3fba50) with the same TTY/NO_COLOR/ truecolor gating as the rest of the palette, then wraps the word "you" in the "What should your assistant call you?" prompt so the operator parses at a glance who the question is about — the user, not the assistant. The mirror prompt that asks for the assistant's name ("What should your assistant be called?") is left for a follow-up. --- setup/auto.ts | 4 ++-- setup/lib/theme.ts | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/setup/auto.ts b/setup/auto.ts index 024da9f0e..2011f3489 100644 --- a/setup/auto.ts +++ b/setup/auto.ts @@ -52,7 +52,7 @@ import { claudeCliAvailable, resolveTimezoneViaClaude } from './lib/tz-from-clau import * as setupLog from './logs.js'; import { ensureAnswer, fail, runQuietChild, runQuietStep } from './lib/runner.js'; import { emit as phEmit } from './lib/diagnostics.js'; -import { brandBody, brandBold, brandChip, dimWrap, fitToWidth, note, wrapForGutter } from './lib/theme.js'; +import { accentGreen, brandBody, brandBold, brandChip, dimWrap, fitToWidth, note, wrapForGutter } from './lib/theme.js'; import { isValidTimezone } from '../src/timezone.js'; const CLI_AGENT_NAME = 'Terminal Agent'; @@ -976,7 +976,7 @@ async function runTimezoneStep(): Promise { async function askDisplayName(fallback: string): Promise { const answer = ensureAnswer( await p.text({ - message: 'What should your assistant call you?', + message: `What should your assistant call ${accentGreen('you')}?`, placeholder: fallback, defaultValue: fallback, }), diff --git a/setup/lib/theme.ts b/setup/lib/theme.ts index d3130143c..0dfa53f74 100644 --- a/setup/lib/theme.ts +++ b/setup/lib/theme.ts @@ -39,6 +39,18 @@ export function brandChip(s: string): string { return k.bgCyan(k.black(k.bold(s))); } +/** + * Accent green (#3fba50) for emphasizing a single word inside prompt + * messages — currently the "you" in "What should your assistant call + * you?" so the operator parses at a glance who the question is about. + * Same TTY/NO_COLOR/truecolor gating as the rest of the palette. + */ +export function accentGreen(s: string): string { + if (!USE_ANSI) return s; + if (TRUECOLOR) return `\x1b[38;2;63;186;80m${s}\x1b[39m`; + return k.green(s); +} + /** * Brand body color for setup-flow prose. Used for card bodies (via the * `note()` formatter) and `p.log.*` body arguments — anywhere the