<%- include("../../../src/web/views/partials/layout-top", { title }) %>

Lumi AI

Managed local inference, assistant access, and guarded plugin tools.

<%= runtimeStatus.healthy ? "Runtime ready" : "Runtime offline" %>

Overview

Current installation and host capacity.

Providerllama.cpp
Selected model<%= models.find((model) => model.id === config.selected_model_id)?.label || config.selected_model_id %>
RAM<%= Math.round(hardware.total_ram_mb / 1024) %> GB
Free disk<%= formatBytes(hardware.free_disk_mb * 1048576) %>
CPU threads<%= hardware.cpu_threads %>
GPU<%= hardware.gpu.present ? hardware.gpu.name : "Not detected" %>

Models

Pinned GGUF files downloaded directly from Hugging Face and verified by SHA-256.

<% models.forEach((model) => { %>
<%= model.label %> <%= formatBytes(model.size) %> · <%= model.ram_gb %> GB recommended RAM · <%= model.repo %>
<%= model.downloaded ? "Installed" : model.compatible ? "Available" : "Exceeds host" %> <% if (!model.downloaded) { %>
<% if (!model.compatible) { %> <% } %>
<% } %>
<% }) %>

Runtime

Official llama.cpp release, bound to localhost and stored inside this plugin.

Installed<%= runtimeStatus.runtime_installed ? "Yes" : "No" %> Process<%= runtimeStatus.state %> Health<%= runtimeStatus.healthy ? "Healthy" : "Unavailable" %> PID<%= runtimeStatus.pid || "None" %> Last stop<%= runtimeState.last_stop_reason %> Platform<%= hardware.platform %>-<%= hardware.architecture %> Self-test<%= runtimeStatus.last_self_test?.success ? "Passed" : runtimeStatus.last_self_test ? "Failed" : "Not run" %> Runtime folder<%= formatBytes(runtimeFolderSize) %> Runtime archive<%= runtimeTarget ? formatBytes(runtimeTarget.size) : "Unavailable" %> Model installed<%= formatBytes(modelFileSize) %> Model download<%= formatBytes(models.find((model) => model.id === config.selected_model_id)?.size || 0) %>
<% if (runtimeTarget) { %>

Managed release <%= runtimeManifest?.version || "b9592" %>

<%= runtimeTarget.filename %> · <%= formatBytes(runtimeTarget.size) %>

<% } else { %>
No managed runtime build is available for this OS and architecture.
<% } %> <% if (runtimeStatus.last_error) { %>
<%= runtimeStatus.last_error %>
<% } %>

Runtime diagnostics

Latest plugin-local runtime failure and remediation details.

Download diagnostics
<% if (latestDiagnostic) { %>
<%= latestDiagnostic.code %>: <%= latestDiagnostic.message %>

<%= latestDiagnostic.category %> / <%= latestDiagnostic.severity %>

<% if (latestDiagnostic.remediation_steps?.length) { %>
    <% latestDiagnostic.remediation_steps.forEach((step) => { %>
  1. <%= step %>
  2. <% }) %>
<% } %>
Raw diagnostic details
<%= JSON.stringify(latestDiagnostic, null, 2) %>
<% } else { %>

No runtime diagnostic has been recorded.

<% } %> <% if (hardware.network_path_warning) { %>
The plugin path may be a mapped or network-like location. A local disk path is more reliable for native runtime DLL loading.
<% } %> <% if (hardware.long_path_warning) { %>
The plugin path is unusually long for Windows native loading. Consider a shorter local installation path.
<% } %>

Assistant

Configuration remains admin-only. Visibility controls only the sidebar assistant.

Sidebar visibility
Hard scope, role, tool, and confirmation rules cannot be overridden.
Logging <% [["log_prompts","Prompts"],["log_responses","Responses"],["log_tool_calls","Tool calls"],["log_metrics","Metrics"],["log_internal_audit","Internal audit"]].forEach(([key,label]) => { %> <% }) %>

Test console

Run a request as a simulated role without changing the logged-in actor.

Metrics

Plugin-local operational counters and recent requests.

Requests<%= metrics.total_requests %>
Successful<%= metrics.successful %>
Failed<%= metrics.failed %>
Refused<%= metrics.refusals %>
Average<%= formatDuration(metrics.average_response_ms) %>
Median<%= formatDuration(metrics.median_response_ms) %>
<% history.forEach((entry) => { %><% }) %> <% if (!history.length) { %><% } %>
TimeKindStatusRoleDuration
<%= entry.timestamp %><%= entry.kind %><%= entry.status %><%= entry.role || "-" %><%= formatDuration(entry.duration_ms) %>
No requests recorded.
<% if (logFiles.length) { %>

Runtime logs: <%= logFiles.map((file) => `${file.name} (${formatBytes(file.size)})`).join(", ") %>

<% } %>

Privacy and troubleshooting

Local inference remains on this host.

Models are downloaded from pinned Hugging Face revisions. The managed runtime is downloaded from the official llama.cpp release and verified by SHA-256. No cloud inference is used. Prompt and response logging are off by default.

If startup fails, confirm that the runtime and selected model show as installed, the plugin directory is writable, and enough RAM and disk are available. Runtime logs are stored under plugins/lumi_ai/data/logs/.

<%- include("../../../src/web/views/partials/layout-bottom") %>