Mimir: Web Search feature & impoving the CPU budget usage (#202)

* 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

* mimir: add web search

* mimir: align README with template

* mimir: fix CPU budget error with many messages

---------

Co-authored-by: Ahmed5Emad <ahmed5emad@users.noreply.github.com>
This commit is contained in:
Ahmed Emad
2026-08-01 21:36:12 -04:00
committed by GitHub
co-authored by Ahmed5Emad
parent a25493bcb1
commit dbec4a7190
7 changed files with 569 additions and 197 deletions
+56 -54
View File
@@ -1,61 +1,63 @@
{
"clear": "Clear",
"title": "Mimir",
"tooltip": "Mimir AI — {status}",
"input_placeholder": "Ask me anything...",
"send": "Send",
"settings": {
"api_endpoint": {
"description": "Base URL for the API (default Ollama uses http://localhost:11434/v1)",
"label": "API Endpoint"
},
"api_key": {
"description": "API key for hosted providers (stored locally and never shared)",
"label": "API Key"
},
"glyph": {
"label": "Bar Icon"
},
"max_history": {
"description": "Number of messages to keep in conversation context",
"label": "Max History"
},
"mode": {
"deep": "Deep — Exhaustive search, multi-step reasoning",
"description": "How deeply the AI thinks before responding",
"fast": "Fast — Quick answers, minimal tools",
"label": "Thinking Mode",
"normal": "Normal — Balanced reasoning and tools"
},
"model_name": {
"deepseek_flash": "DeepSeek V4 Flash (fast, cheap)",
"deepseek_pro": "DeepSeek V4 Pro (powerful)",
"description": "OpenCode Go model to use",
"glm52": "GLM-5.2",
"grok45": "Grok 4.5",
"kimi_code": "Kimi K2.7 Code",
"label": "Model"
},
"show_commands": {
"description": "Show executed commands in the chat",
"label": "Show Commands"
},
"tool_blocklist": {
"description": "Comma-separated commands never allowed",
"label": "Blocked Commands"
},
"tool_permission": {
"allow": "Allow — Run automatically",
"ask": "Ask — Prompt before every command",
"description": "When the AI can run terminal commands",
"label": "Tool Permission",
"off": "Off — No tools"
}
},
"status_error": "Error",
"clear": "Clear",
"status_idle": "Idle",
"status_offline": "Offline",
"status_online": "Online",
"status_thinking": "Thinking...",
"status_tool": "Running command...",
"title": "Mimir",
"tooltip": "Mimir AI — {status}"
"status_error": "Error",
"status_online": "Online",
"status_offline": "Offline",
"settings": {
"glyph": { "label": "Bar Icon" },
"model_name": {
"label": "Model",
"description": "OpenCode Go model to use",
"deepseek_flash": "DeepSeek V4 Flash (fast, cheap)",
"deepseek_pro": "DeepSeek V4 Pro (powerful)",
"grok45": "Grok 4.5",
"kimi_code": "Kimi K2.7 Code",
"glm52": "GLM-5.2"
},
"api_endpoint": {
"label": "API Endpoint",
"description": "Base URL for the API (default Ollama uses http://localhost:11434/v1)"
},
"api_key": {
"label": "API Key",
"description": "API key for hosted providers (stored locally and never shared)"
},
"mode": {
"label": "Thinking Mode",
"description": "How deeply the AI thinks before responding",
"fast": "Fast — Quick answers, minimal tools",
"normal": "Normal — Balanced reasoning and tools",
"deep": "Deep — Exhaustive search, multi-step reasoning"
},
"tool_permission": {
"label": "Tool Permission",
"description": "When the AI can run terminal commands",
"ask": "Ask — Prompt before every command",
"allow": "Allow — Run automatically",
"off": "Off — No tools"
},
"web_search_enabled": {
"label": "Web Search",
"description": "Allow Mimir to use DuckDuckGo search and fetch public pages"
},
"tool_blocklist": {
"label": "Blocked Commands",
"description": "Comma-separated commands never allowed"
},
"show_commands": {
"label": "Show Commands",
"description": "Show executed commands in the chat"
},
"max_history": {
"label": "Max History",
"description": "Number of messages to keep in conversation context"
}
}
}