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

Function App

packages/tui/src/app.tsx:360–1120  ·  view source on GitHub ↗
(props: { onSnapshot?: () => Promise<string[]>; pluginHost: TuiPluginHost })

Source from the content-addressed store, hash-verified

358})
359
360function App(props: { onSnapshot?: () => Promise<string[]>; pluginHost: TuiPluginHost }) {
361 const startup = useTuiStartup()
362 const tuiConfig = useTuiConfig()
363 const route = useRoute()
364 const dimensions = useTerminalDimensions()
365 const renderer = useRenderer()
366 const dialog = useDialog()
367 const local = useLocal()
368 const kv = useKV()
369 const keymap = useOpencodeKeymap()
370 const event = useEvent()
371 const sdk = useSDK()
372 const toast = useToast()
373 const themeState = useTheme()
374 const { theme, mode, setMode, locked, lock, unlock } = themeState
375 const sync = useSync()
376 const project = useProject()
377 const exit = useExit()
378 const promptRef = usePromptRef()
379 const pluginRuntime = usePluginRuntime()
380 const attention = createTuiAttention({ renderer, config: tuiConfig, kv })
381 const clipboard = useClipboard()
382
383 const api = createTuiApi(
384 createTuiApiAdapters({
385 version: InstallationVersion,
386 tuiConfig,
387 dialog,
388 keymap,
389 kv,
390 route,
391 routes: pluginRuntime.routes,
392 event,
393 sdk,
394 sync,
395 theme: themeState,
396 toast,
397 renderer,
398 attention,
399 Slot: pluginRuntime.Slot,
400 }),
401 )
402 const [ready, setReady] = createSignal(false)
403 props.pluginHost
404 .start({
405 api,
406 config: tuiConfig,
407 runtime: pluginRuntime,
408 dispose: () => attention.dispose(),
409 })
410 .catch((error) => {
411 console.error("Failed to load TUI plugins", error)
412 })
413 .finally(() => {
414 setReady(true)
415 })
416
417 // Let selection copy/dismiss win ahead of normal bindings when explicit copy is required.

Callers

nothing calls this directly

Calls 15

useTuiStartupFunction · 0.90
useTuiConfigFunction · 0.90
useDialogFunction · 0.90
useEventFunction · 0.90
useToastFunction · 0.90
useSyncFunction · 0.90
usePluginRuntimeFunction · 0.90
createTuiAttentionFunction · 0.90
useClipboardFunction · 0.90
createTuiApiFunction · 0.90
createTuiApiAdaptersFunction · 0.90
isDefaultTitleFunction · 0.90

Tested by

no test coverage detected