MCPcopy
hub / github.com/anomalyco/opencode / resolveRunTheme

Function resolveRunTheme

packages/opencode/src/cli/cmd/run/theme.ts:656–690  ·  view source on GitHub ↗
(renderer: CliRenderer)

Source from the content-addressed store, hash-verified

654}
655
656export async function resolveRunTheme(renderer: CliRenderer): Promise<RunTheme> {
657 try {
658 const colors = await renderer.getPalette({
659 size: 256,
660 })
661 const bg = colors.defaultBackground ?? colors.palette[0]
662 if (!bg) {
663 return RUN_THEME_FALLBACK
664 }
665
666 // Palette-only terminal reloads can leave renderer.themeMode stale, but
667 // ANSI slot zero is not the terminal background when OSC 11 is absent.
668 const pick = colors.defaultBackground
669 ? mode(RGBA.fromHex(colors.defaultBackground))
670 : (renderer.themeMode ?? mode(RGBA.fromHex(bg)))
671 const footerTheme = resolveTheme(generateSystem(colors, pick), pick)
672 const indexed = indexedPalette(colors, 256)
673 const scrollbackTheme = quantizeTheme(footerTheme, indexed)
674 const shared = await import("@opencode-ai/tui/context/theme")
675 const syntaxTheme: SharedSyntaxTheme = {
676 ...scrollbackTheme,
677 _hasSelectedListItemText: true,
678 }
679 const syntax = shared.generateSyntax(syntaxTheme)
680 return map(
681 footerTheme,
682 scrollbackTheme,
683 splashTheme(scrollbackTheme, indexed),
684 syntax,
685 shared.generateSubtleSyntax(syntaxTheme),
686 )
687 } catch {
688 return RUN_THEME_FALLBACK
689 }
690}

Callers 3

theme.test.tsFile · 0.90
createRuntimeLifecycleFunction · 0.90
RunFooterClass · 0.90

Calls 7

indexedPaletteFunction · 0.85
quantizeThemeFunction · 0.85
splashThemeFunction · 0.85
modeFunction · 0.70
resolveThemeFunction · 0.70
generateSystemFunction · 0.70
mapFunction · 0.70

Tested by

no test coverage detected