# INI Panel Entry This page is the short entry map for the INI panel UI shell. ## Shell Module Use the shell-facing module when an outer UI needs entry links or a read-only control view: ```js import { INI_PANEL_ENTRIES, createIniPanelLauncherLinkViewModel, createIniPanelShellViewModel, getIniPanelEntryByHref, getVisibleIniPanelEntries, createMachineSessionControlPageController, refreshMachineSessionControlPage, controlPageStatusText, renderMachineSessionControlView, } from "../runtime/ui/ini-panel/ui-shell.js"; ``` `ui-shell.js` re-exports the entry manifest, the read-only control-page controller, and the control-view renderer. It does not implement CNC behavior. ## Pages | Page | Path | Role | | --- | --- | --- | | Launch | `runtime/ui/ini-panel/launch.html` | Read-only entry page for available panel surfaces. | | Edit and run | `runtime/ui/ini-panel/index.html` | Editable INI panel and existing run workflow surface. | | Read-only control view | `runtime/ui/ini-panel/control-page.html` | Read-only control view backed by the panel API. | ## Visible Entries The visible launch entries come from `getVisibleIniPanelEntries()`: | Entry id | Href | Title | | --- | --- | --- | | `edit-run` | `./index.html` | Open edit and run panel | | `control-view` | `./control-page.html` | Open read-only control view | Launcher pages can render links from `createIniPanelLauncherLinkViewModel()` without reading manifest field names directly. Each item has `entryId`, `href`, and `label`. Outer shells can call `createIniPanelShellViewModel()` when they need one read-only model with `pages`, `launcherLinks`, and `controlPage` helpers for mounting the existing control-page controller, refresh workflow, and renderer. The control-page refresh workflow lives in `runtime/ui/ini-panel/control-page-refresh-workflow.js`. Use `refreshMachineSessionControlPage()` when an outer shell needs a structured refresh result with `phase`, `statusText`, `view`, `renderResult`, and `error`. `controlPageStatusText()` formats the already-observed panel status fields for the read-only status line, and `createControlPageRefreshState()` is the stable state-shape helper used by the workflow. ## Boundary The entry shell only links pages and renders already-observed panel state. It does not parse G-code, infer canonical events, or implement LinuxCNC-owned tool, parameter, planner, or kinematics behavior.