@nemoir/web-ui
v0.3.0
Published
React UI components and hooks for NemoIR browser workflows — model loading, workflow run, dialogs, and trace visualization.
Maintainers
Readme
@nemoir/web-ui
React UI components and hooks for NemoIR browser workflows — model loading, workflow run management, dialogs, and trace visualization.
Installation
npm install @nemoir/web-uiRequires react and react-dom (^18.0.0 or ^19.0.0) as peer dependencies, plus @nemoir/web-runtime for the runtime types and session factory.
Compiler references
@nemoir/web-ui is a React UI layer for NemoIR's browser target. Canonical workflow language and target semantics live in the public compiler repo:
This package documents only the UI surface.
API
Hooks
useWebLlmSession(options)— WebLLM session lifecycle: readiness detection (WebGPU + cross-origin isolation), model list, explicit loading, storage assessment, cache state, and disposal. Returns structuredloadFailurefor diagnostics plus recovery actions (retryWithFreshWorker,retryCleanDownload,deleteModelArtifacts,deleteAllCachedArtifacts) and optional per-model fit assessments.useWorkflowRun(runner)— Generic async stream runner: start, cancel, raw event capture, coalesced timeline derivation, result/error state, stale-update and unmount safety.useWebUiHost()— Retrieve theWebUiHostfrom context (throws if used outside a provider).
Components
WebUiHostProvider— Context provider implementingWebUiHostwith controlled, accessible dialogs forelicitandconfirm. Supports custom renderer slots, AbortSignal integration, and safe concurrent-request handling.ModelLoader— Lightweight stateless model selection/loading UI with cache-grouped optgroups, progress bar, storage-insufficiency warnings, structuredLoadFailureDiagnosticspanel (phase description, failed URL, corrupt-cache hint, recovery buttons: retry fresh worker, retry clean download, delete cached model), and per-modelfitAssessmentsannotations (recommended, unsupported, may OOM, large download).WorkflowTraceDrawer— Scrollable event timeline display consuming coalesced timeline items.
Helpers
eventsToJsonl(events)— SerializeWorkflowEvent[]to a JSONL string.downloadJsonl(events, filename)— Trigger a browser download of a JSONL file.coalesceTimeline(events)— Merge consecutivemodel_deltaevents (same stage + channel) into display-friendlydelta_runitems.
Re-exported helpers (from @nemoir/web-runtime)
assessModelFit(model, device, opts)— Classify a model's fitness for the current device.probeDeviceCapabilities()— Probe WebGPU adapter features and storage limits.mirrorModelId(),overlayModelRecords(),toMirroredModelRecord()— Deployer-controlled model-source profile helpers.
Types
Re-exported from @nemoir/web-runtime: WebLlmSession, WebLlmModelInfo, WebLlmProgressReport, StorageCapacityAssessment, WebLlmLoadFailure, ModelFitAssessment, ModelFitCategory, DeviceCapabilityReport, WorkflowEvent, WebUiHost, MirroredModelRecord, ModelSourceProfile.
Package-specific: UseWebLlmSessionOptions, UseWebLlmSessionResult, WorkflowRunner, CoalescedTimelineItem, UseWorkflowRunResult, ConfirmRendererProps, ConfirmRenderer, WebUiHostProviderProps, ModelLoaderProps, WorkflowTraceDrawerProps.
Development
npm install
npm run typecheck # tsc --noEmit
npm test # vitest run
npm run build # tsc -p tsconfig.build.json
npm pack --dry-run # preview package contentsReleasing
Maintainers should follow RELEASING.md; npm publication is performed only by the trusted GitHub Actions workflow.
License
MIT
