
The shared Shiny substrate for the LLMR family of GUIs. Interfaces such as LLMRpanel, LLMRcontent, and FocusGroup build their apps on this shell and supply only their package-specific module code; end users normally get LLMR.shiny as a dependency of those GUI packages rather than installing it on its own. The shell provides:
provider_registry(),
shell_sidebar())key_state(), never a paste, never a printed value)demo_runner(), build_runner())cost_empty(),
cost_tile())safe_llmr_call(), llmr_error_banner())read_csv_upload(),
map_columns())diagnostics() /
report() generics (report_text(),
diagnostics_table())shell_context())In your UI:
bslib::page_navbar(
title = "MyStudio",
sidebar = LLMR.shiny::shell_sidebar(),
bslib::nav_panel("Workflow", my_module_ui("work"))
)In your server:
function(input, output, session) {
shared <- LLMR.shiny::shell_context(input, output, session)
my_module_server("work", shared)
}shared gives your module provider(),
model(), mode(), key(),
can_run(), set_plan(), and
add_usage(). A change here is available to any GUI that
imports the shared shell.
End users rarely need this step; the GUI packages pull LLMR.shiny in for you. To install it directly, from CRAN once released:
install.packages("LLMR.shiny")or the development version:
remotes::install_github("asanaei/LLMR.shiny")LLMR itself is optional (Suggests): the substrate runs its demo mode without it, and uses it when present for live runs and the shared generics.