* game-launcher: add launcher toggles, keyboard nav, auto-refresh * game-launcher: update README with runner toggle settings * fix: remove duplicate translation keys after upstream merge * fix(game-launcher): add ~/.local/share/Steam to steam roots for NixOS support * chore(game-launcher): bump version to 1.1.1 * feat(mimir): AI companion plugin with LLM chat panel Mimir is an AI companion for Noctalia — an LLM-powered chat interface with model selection, conversation history, and a bar widget. - Service-based architecture: service (brain) handles HTTP API calls, panel (chat) renders the UI, widget (status) shows bar indicator - OpenAI-compatible chat completions with dynamic model discovery - Floating side panel (center_right) with message history and simple markdown rendering (code blocks) - Model selection dropdown populated from API /models endpoint - Bar widget with brain icon to toggle chat panel - i18n via translations/en.json - Auto-detection of OpenCode Go API key from auth.json - Full-height floating panel layout matching oficial notes plugin .gitignore: add editor files, OS junk, auth secrets, compiled binary * mimir: rename author leo->Alexander, strip scrollBottom, update README with plans - plugin.toml: author leo -> Alexander, widget panel-toggle id -> alexander/mimir - widget.luau: togglePanel id -> alexander/mimir:chat - panel.luau: remove scrollBottom/dynamic key (unstable), remove setUpdateInterval - README.md: add future plans (commands, file search, etc.) - thumbnail.webp: removed (replaced by mimir-thumbnail.webp) * added thumbnail * added thumbnail.webp * mimir: bump 0.1.0 → 0.3.0, update README with tools + copy + editable approval * mimir: copy-to-clipboard toggle, editable command approval, unicode bold rendering * mimir: fix review findings — conditional auth, dedupe user msg, apply max_history * mimir: fix manifest validation — use select setting type, add README Plugin section * mimir: multi-tool queue support, plain approve/deny, better tool-use prompt * mimir: add full markdown rendering — headings, lists, quotes, hr, bold/italic * mimir: bump 0.3.2 — fix Lua pattern quantifiers, multi-tool queue, markdown rendering * mimir: fix security review findings * mimir: clarify selectable message text * mimir: add command history display --------- Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
36 lines
963 B
Luau
36 lines
963 B
Luau
local status = noctalia.state.get("mimir.status") or "idle"
|
|
|
|
local glyphs = {
|
|
idle = "brain",
|
|
thinking = "loader",
|
|
tool = "terminal-2",
|
|
error = "alert-circle",
|
|
}
|
|
|
|
local colors = {
|
|
idle = "on_surface",
|
|
thinking = "primary",
|
|
tool = "tertiary",
|
|
error = "error",
|
|
}
|
|
|
|
function update()
|
|
status = noctalia.state.get("mimir.status") or "idle"
|
|
barWidget.setGlyph(glyphs[status] or "brain")
|
|
barWidget.setGlyphColor(colors[status] or "on_surface")
|
|
local tooltip = status == "idle" and "Mimir — Ready" or "Mimir — " .. status
|
|
barWidget.setTooltip(tooltip)
|
|
end
|
|
|
|
function onClick()
|
|
noctalia.togglePanel("alexander/mimir:chat")
|
|
end
|
|
|
|
noctalia.state.watch("mimir.status", function(newStatus)
|
|
status = newStatus or "idle"
|
|
barWidget.setGlyph(glyphs[status] or "brain")
|
|
barWidget.setGlyphColor(colors[status] or "on_surface")
|
|
local tooltip = status == "idle" and "Mimir — Ready" or "Mimir — " .. status
|
|
barWidget.setTooltip(tooltip)
|
|
end)
|