From 92f8a33a3fc44cdfaa38b90d1452bd0e9395d15c Mon Sep 17 00:00:00 2001 From: Ahmed Emad <122463699+Ahmed5Emad@users.noreply.github.com> Date: Sat, 1 Aug 2026 15:59:48 +0300 Subject: [PATCH] Mimir: introduce AI companion plugin (#164) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- .gitignore | 6 +- mimir/README.md | 101 +++++++++ mimir/panel.luau | 321 ++++++++++++++++++++++++++++ mimir/plugin.toml | 86 ++++++++ mimir/service.luau | 420 +++++++++++++++++++++++++++++++++++++ mimir/thumbnail.webp | Bin 0 -> 105802 bytes mimir/translations/en.json | 59 ++++++ mimir/widget.luau | 35 ++++ 8 files changed, 1025 insertions(+), 3 deletions(-) create mode 100644 mimir/README.md create mode 100644 mimir/panel.luau create mode 100644 mimir/plugin.toml create mode 100644 mimir/service.luau create mode 100644 mimir/thumbnail.webp create mode 100644 mimir/translations/en.json create mode 100644 mimir/widget.luau diff --git a/.gitignore b/.gitignore index 3ab180f..7a02ca8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# Editor type definitions, fetched from official-plugins (see README). -/noctalia.d.luau +# Editor type definitions, fetched per-plugin from official-plugins (see README). +noctalia.d.luau + -/.github/workflows/scripts/__pycache__ diff --git a/mimir/README.md b/mimir/README.md new file mode 100644 index 0000000..f4ca3cf --- /dev/null +++ b/mimir/README.md @@ -0,0 +1,101 @@ +# Mimir + +An AI companion for Noctalia that brings LLM-powered chat and terminal command execution directly into your desktop. Named after the Norse god of wisdom. + +## Plugin + +| Field | Value | +| --- | --- | +| ID | `alexander/mimir` | +| Entries | Bar widget: `status`; panel: `chat`; service: `brain` | + +## Requirements + +- An **OpenAI-compatible API endpoint** with `/chat/completions` and `/models` endpoints. +- An API key (for hosted providers) or leave empty for local servers (e.g. Ollama). +- A [Noctalia](https://noctalia.app) build supporting `plugin_api >= 16`. + +If you use [OpenCode Go](https://opencode.ai/go) with the default OpenCode endpoint, Mimir auto-detects your API key from `~/.local/share/opencode/auth.json` — no manual setup needed. + +## Features + +- **Chat** — Conversational AI with formatted responses, markdown rendering (code blocks in shaded boxes), and selectable text for every message. +- **Command History** — Optionally shows executed commands in the chat, including commands run automatically in `allow` mode. +- **Model Browser** — Fetches available models from your API endpoint. Switch models on the fly from the panel header. +- **Command Execution** — Mimir can run terminal commands through the AI. In `ask` mode, each command must be approved before it runs; `allow` mode runs non-blocked commands automatically. +- **Permission Modes** — `ask` (prompt before every command), `allow` (run automatically), `off` (no tools). Automatic mode still rejects blocked commands and shell composition. +- **Command Blocklist** — Dangerous commands and shell composition are rejected before execution. This is an extra safeguard, not a replacement for reviewing commands. + +## Architecture + +``` +┌──────────┐ state ┌──────────┐ HTTP ┌─────────────┐ +│ panel │◄───────────►│ service │◄──────────►│ API Server │ +│ (chat) │ mimir.* │ (brain) │ chat/* │ (OpenCode) │ +│ │ │ │ models │ │ +└────┬─────┘ └──────────┘ └─────────────┘ + │ + │ click +┌────▼─────┐ +│ widget │ +│ (status) │ +└──────────┘ +``` + +**Widget** (`widget.luau`) — Bar indicator. Click to toggle the chat panel. + +**Panel** (`panel.luau`) — Chat interface with model selector, command approval, command history, message history with markdown rendering, and per-message selectable text views. + +**Service** (`service.luau`) — HTTP communication with the API, conversation management, command execution, model discovery, and deferred state propagation. + +## Usage + +### Install + +1. Add the plugin directory as a path source in Noctalia settings. +2. Enable `alexander/mimir` in **Settings → Plugins**. +3. Add the bar widget `alexander/mimir:status` to your bar. + +### Chat + +Click the brain icon in your bar or run: +```sh +noctalia msg panel-toggle alexander/mimir:chat +``` + +Type a message and press Enter. Mimir responds with formatted text — code blocks render in shaded boxes. Click the copy icon on any message to open its content in a selectable field, then copy the text manually. + +### Command Approval + +When Mimir wants to run a terminal command (in `ask` permission mode), the panel shows an approval dialog: +1. Review the command shown in the dialog. +2. Click **Approve** to run it or **Deny** to cancel. + +## Settings + +| Setting | Type | Default | Description | +| --- | --- | --- | --- | +| `api_endpoint` | `string` | `https://opencode.ai/zen/go/v1` | Base URL for the API. Change to `http://localhost:11434/v1` for Ollama. | +| `api_key` | `string` | (auto-detect) | API key. If empty and using the trusted OpenCode endpoint, reads from `~/.local/share/opencode/auth.json`. | +| `tool_permission` | `enum` | `ask` | `ask` — prompt before commands; `allow` — run automatically; `off` — disable tools. | +| `tool_blocklist` | `string` | `sudo,su,passwd,rm,...` | Comma-separated commands rejected before execution. | +| `show_commands` | `bool` | `true` | Show executed commands in the chat. | +| `max_history` | `int` | `50` | Max messages kept in context. | +| `glyph` | `glyph` | `brain` | Bar icon (per-widget setting). | + +## How It Works + +### API Compatibility +Compatible with any OpenAI-compatible chat completion API. Defaults to OpenCode Go. + +### Tool Calling +When the model returns `tool_calls`, the service routes them to `run_command`. The permission mode determines whether to run immediately, prompt the user, or skip. Blocklisted commands and shell composition are rejected before execution. + +### State Flow +Entries are isolated VMs — they communicate through Noctalia's shared state (`noctalia.state.*`). HTTP callbacks queue responses to avoid cross-context state corruption. A timer-driven `update()` processes the queue and propagates results. + +## Notes + +- Conversation is ephemeral (in-memory only). Restarting clears it. +- API key auto-detection reads OpenCode Go's auth file at runtime only — never stored. +- For best results, use a model with tool-calling support. diff --git a/mimir/panel.luau b/mimir/panel.luau new file mode 100644 index 0000000..2ff5212 --- /dev/null +++ b/mimir/panel.luau @@ -0,0 +1,321 @@ +local inputText = "" +local inputKey = 0 +local copyTarget = nil +local modelIdx = 0 + +noctalia.state.watch("mimir.copy_target", function(value) + copyTarget = (value == -1) and nil or value + render() +end) + +local function mapUnicode(text, lowerBase, upperBase) + local out = "" + for i = 1, #text do + local c = text:sub(i, i) + local code = c:byte() + if code >= 97 and code <= 122 then + out = out .. utf8.char(code - 97 + lowerBase) + elseif code >= 65 and code <= 90 then + out = out .. utf8.char(code - 65 + upperBase) + else + out = out .. c + end + end + return out +end + +local function inlineMarkdown(text) + text = text:gsub("%*%*%*([^%*]-)%*%*%*", function(s) return mapUnicode(s, 0x1D482, 0x1D468) end) + text = text:gsub("%*%*([^%*]-)%*%*", function(s) return mapUnicode(s, 0x1D41A, 0x1D400) end) + text = text:gsub("%*([^%*]-)%*", function(s) return mapUnicode(s, 0x1D44E, 0x1D434) end) + text = text:gsub("~~([^~]-)~~", "%1") + text = text:gsub("`(.-)`", "%1") + text = text:gsub("%[([^%]]*)%]%(([^%)]+)%)", "%1 (%2)") + return text +end + +local function renderText(text, color, fontSize, fontWeight) + return ui.label({ text = inlineMarkdown(text), fontSize = fontSize or 13, fontWeight = fontWeight, color = color, maxWidth = 380 }) +end + +local function toolCommand(toolCall) + local fn = toolCall["function"] + if not fn or type(fn.arguments) ~= "string" then return nil end + local ok, args = pcall(noctalia.json.decode, fn.arguments) + if ok and type(args) == "table" and type(args.command) == "string" then + return args.command + end + return nil +end + +local function parseMessage(content) + local nodes = {} + local lines = {} + for line in (content .. "\n"):gmatch("(.-)\n") do + table.insert(lines, line) + end + local i = 1 + local function trim(s) + return (s:gsub("^%s*(.-)%s*$", "%1")) + end + while i <= #lines do + local line = lines[i] + if line:find("^```") then + local buf = {} + local lang = line:sub(4) + i = i + 1 + while i <= #lines and not lines[i]:find("^```") do + table.insert(buf, lines[i]) + i = i + 1 + end + i = i + 1 + table.insert(nodes, { type = "code", language = trim(lang), content = table.concat(buf, "\n") }) + elseif line:match("^#+") and line:gsub("#+", ""):match("%S") then + local level, text = line:match("^(#+)%s*(.-)%s*$") + level = #level + text = text:gsub("#+%s*$", "") + table.insert(nodes, { type = "heading", level = level, content = text }) + i = i + 1 + elseif line:match("^%s*[-*_]+%s*$") and #line:gsub("%s", "") >= 3 then + table.insert(nodes, { type = "hr" }) + i = i + 1 + elseif line:match("^%s*>") then + local buf = {} + while i <= #lines and lines[i]:match("^%s*>") do + local t = lines[i]:gsub("^%s*>%s?", "") + if t == "" then t = " " end + table.insert(buf, t) + i = i + 1 + end + table.insert(nodes, { type = "quote", content = table.concat(buf, " ") }) + elseif line:match("^%s*[-*+]%s+") or line:match("^%s*%d+[.)]%s+") then + local items = {} + while i <= #lines do + local l = lines[i] + local bullet = l:match("^%s*[-*+]%s+(.*)") + local numbered = l:match("^%s*%d+[.)]%s+(.*)") + if bullet then + table.insert(items, { ordered = false, content = bullet }) + i = i + 1 + elseif numbered then + table.insert(items, { ordered = true, content = numbered }) + i = i + 1 + else + break + end + end + table.insert(nodes, { type = "list", items = items }) + else + local buf = {} + while i <= #lines and not lines[i]:match("^```") and not (lines[i]:match("^#+") and lines[i]:gsub("#+", ""):match("%S")) + and not (lines[i]:match("^%s*[-*_]+%s*$") and #lines[i]:gsub("%s", "") >= 3) and not lines[i]:match("^%s*>") + and not lines[i]:match("^%s*[-*+]%s+") and not lines[i]:match("^%s*%d+[.)]%s+") do + table.insert(buf, lines[i]) + i = i + 1 + end + local para = table.concat(buf, "\n") + if trim(para) ~= "" then + table.insert(nodes, { type = "text", content = para }) + end + end + end + return nodes +end + +function render() + local models = noctalia.state.get("mimir.models") or {} + local messages = noctalia.state.get("mimir.messages") or {} + local status = noctalia.state.get("mimir.status") or "idle" + local commandLog = noctalia.state.get("mimir.command_log") or {} + local showCommands = noctalia.getConfig("show_commands") ~= false + local commandsByToolCall = {} + for _, entry in ipairs(commandLog) do + commandsByToolCall[entry.tool_call_id] = entry.command + end + + local statusColors = { idle = "on_surface/0.4", thinking = "primary", running_tool = "primary", error = "error" } + local statusTexts = { idle = "Ready", thinking = "Thinking...", running_tool = "Running command...", error = "Error" } + + local displayMsgs = {} + local copyContent = nil + for i, msg in ipairs(messages) do + if msg.role ~= "system" and msg.role ~= "tool" and msg.content then + local isUser = msg.role == "user" + local isCopying = copyTarget == i + if isCopying then copyContent = msg.content end + local nodes = parseMessage(msg.content or "") + local contentNodes = {} + for _, node in ipairs(nodes) do + if node.type == "text" then + table.insert(contentNodes, renderText(node.content, isUser and "primary" or "on_surface")) + elseif node.type == "code" then + table.insert(contentNodes, ui.column({ fill = "surface_variant", padding = 8, radius = 6 }, { + ui.label({ text = node.content, fontSize = 12, color = "on_surface_variant" }), + })) + elseif node.type == "heading" then + local sizes = { 17, 15, 14, 13, 13, 13 } + table.insert(contentNodes, renderText(node.content, isUser and "primary" or "on_surface", sizes[node.level] or 13, "bold")) + elseif node.type == "quote" then + table.insert(contentNodes, ui.column({ fill = "surface_variant", padding = 8, radius = 4 }, { + renderText(node.content, isUser and "primary" or "on_surface_variant", 12), + })) + elseif node.type == "hr" then + table.insert(contentNodes, ui.separator({ thickness = 1, color = "surface_variant" })) + elseif node.type == "list" then + local listChildren = {} + for n, item in ipairs(node.items) do + local prefix = item.ordered and (n .. ". ") or "• " + table.insert(listChildren, renderText(prefix .. item.content, isUser and "primary" or "on_surface")) + end + table.insert(contentNodes, ui.column({ gap = 2 }, listChildren)) + end + end + if msg.tool_calls then + for _, toolCall in ipairs(msg.tool_calls) do + local command = showCommands and (toolCommand(toolCall) or commandsByToolCall[toolCall.id]) + if command then + table.insert(contentNodes, ui.column({ gap = 2, padding = 8, fill = "surface_variant", radius = 6 }, { + ui.label({ text = "Command", fontSize = 11, color = "on_surface/0.5" }), + ui.label({ text = "$ " .. command, fontSize = 12, color = "primary", maxWidth = 380 }), + })) + end + end + end + table.insert(displayMsgs, ui.column({ key = "m" .. i, gap = 4, paddingH = 4, align = isUser and "end" or "start" }, { + ui.row({ gap = 4, align = "center" }, { + ui.label({ text = isUser and "You" or "Mimir", fontSize = 11, color = "on_surface/0.5" }), + ui.button({ glyph = isCopying and "close" or "copy", variant = "ghost", onClick = function() noctalia.state.set("mimir.copy_target", isCopying and -1 or i) end }), + }), + table.unpack(contentNodes), + })) + end + end + + local pendingTool = noctalia.state.get("mimir.pending_tool") + if pendingTool and type(pendingTool) == "table" and pendingTool.commands then + local approvalChildren = { + ui.label({ text = "Mimir wants to run:", fontSize = 12, color = "on_surface" }), + } + for _, c in ipairs(pendingTool.commands) do + table.insert(approvalChildren, ui.label({ text = c.command or "", fontSize = 12, color = "primary", maxWidth = 380 })) + end + table.insert(approvalChildren, ui.row({ gap = 8, align = "center" }, { + ui.button({ text = "Approve", variant = "primary", onClick = "onApproveTool" }), + ui.button({ text = "Deny", variant = "ghost", onClick = "onDenyTool" }), + })) + table.insert(displayMsgs, ui.column({ key = "tool-approval", gap = 8, padding = 12, fill = "surface_variant", radius = 8 }, approvalChildren)) + end + + local layout = { + ui.row({ gap = 6, padding = 12, align = "center" }, { + ui.button({ glyph = "refresh", variant = "ghost", onClick = "onRefreshModels" }), + ui.select({ options = models, selectedIndex = modelIdx, flexGrow = 1, placeholder = "No models", onChange = "onModelChange" }), + }), + ui.separator({ thickness = 1, color = "surface_variant" }), + ui.scroll({ flexGrow = 1, gap = 4, padding = 12 }, displayMsgs), + ui.separator({ thickness = 1, color = "surface_variant" }), + } + if copyContent then + table.insert(layout, ui.column({ flexGrow = 1, padding = 8, fill = "surface_variant" }, { + ui.input({ key = "copy-area", multiline = true, value = copyContent, focus = true, flexGrow = 1, onChange = function() end }), + })) + end + table.insert(layout, ui.row({ gap = 8, padding = { left = 12, right = 12, top = 8, bottom = 4 }, align = "center" }, { + ui.input({ key = "msg-input-" .. inputKey, value = inputText, placeholder = "Ask me anything...", flexGrow = 1, focus = true, onChange = "onInputChange", onSubmit = "onSubmit" }), + ui.button({ glyph = "send", variant = "primary", onClick = "onSubmit" }), + })) + table.insert(layout, ui.row({ gap = 12, padding = { left = 12, right = 12, top = 4, bottom = 12 }, align = "center" }, { + ui.label({ text = statusTexts[status] or "Ready", fontSize = 11, color = statusColors[status] or "on_surface/0.4" }), + ui.button({ glyph = "eraser", variant = "ghost", onClick = "onClear" }), + })) + panel.render(ui.column({ flexGrow = 1, gap = 0, align = "stretch" }, layout)) +end + +function onModelChange(index, text) + local models = noctalia.state.get("mimir.models") or {} + local idx = tonumber(index) + if idx == nil and text then + for i, m in ipairs(models) do + if m == text then + idx = i - 1 + break + end + end + end + if idx ~= nil and models[idx + 1] then + modelIdx = idx + noctalia.state.set("mimir.model", models[idx + 1]) + render() + end +end + +function onClear() + noctalia.state.set("mimir.clear", true) +end + +function onRefreshModels() + noctalia.state.set("mimir.refresh_models", true) +end + +function onInputChange(v) + inputText = type(v) == "table" and (v.value or "") or v or "" +end + +function onSubmit(v) + local text = v + if type(text) == "table" then text = text.value end + if type(text) ~= "string" or text == "" then text = inputText end + inputText = "" + if text and text ~= "" then + inputKey += 1 + noctalia.state.set("mimir.copy_target", -1) + noctalia.state.set("mimir.status", "thinking") + noctalia.state.set("mimir.input", text) + render() + end +end + +noctalia.state.watch("mimir.messages", function() + render() +end) + +noctalia.state.watch("mimir.status", function() + render() +end) + +noctalia.state.watch("mimir.models", function() + local models = noctalia.state.get("mimir.models") or {} + local currentModel = noctalia.state.get("mimir.model") or "" + modelIdx = 0 + for i, m in ipairs(models) do + if m == currentModel then + modelIdx = i - 1 + break + end + end + render() +end) + +noctalia.state.watch("mimir.pending_tool", function() + if noctalia.state.get("mimir.pending_tool") then + noctalia.state.set("mimir.copy_target", -1) + end + render() +end) + +noctalia.state.watch("mimir.command_log", function() + render() +end) + +function onApproveTool() + noctalia.state.set("mimir.tool_approved", true) +end + +function onDenyTool() + noctalia.state.set("mimir.tool_denied", true) +end + +function onOpen() + noctalia.state.set("mimir.refresh_models", true) + render() +end diff --git a/mimir/plugin.toml b/mimir/plugin.toml new file mode 100644 index 0000000..50496e9 --- /dev/null +++ b/mimir/plugin.toml @@ -0,0 +1,86 @@ +id = "alexander/mimir" +name = "Mimir" +version = "0.4.0" +plugin_api = 16 +author = "Alexander" +license = "MIT" +icon = "brain" +description = "An AI companion for Noctalia that brings LLM-powered chat directly into your desktop." +dependencies = [] +tags = ["ai", "utility", "productivity", "development"] + +[[widget]] +id = "status" +entry = "widget.luau" + + [widget.actions] + left = "panel-toggle alexander/mimir:chat" + +[[widget.setting]] +key = "glyph" +type = "glyph" +label_key = "settings.glyph.label" +default = "brain" + +[[panel]] +id = "chat" +entry = "panel.luau" +placement = "floating" +position = "center_right" +width = 450 +height = "fill" + +[[service]] +id = "brain" +entry = "service.luau" + +[[setting]] +key = "api_endpoint" +type = "string" +label_key = "settings.api_endpoint.label" +description_key = "settings.api_endpoint.description" +default = "https://opencode.ai/zen/go/v1" + +[[setting]] +key = "api_key" +type = "string" +label_key = "settings.api_key.label" +description_key = "settings.api_key.description" +default = "" +advanced = true + +[[setting]] +key = "tool_permission" +type = "select" +label_key = "settings.tool_permission.label" +description_key = "settings.tool_permission.description" +options = [ + { value = "ask", label_key = "settings.tool_permission.ask" }, + { value = "allow", label_key = "settings.tool_permission.allow" }, + { value = "off", label_key = "settings.tool_permission.off" }, +] +default = "ask" + +[[setting]] +key = "tool_blocklist" +type = "string" +label_key = "settings.tool_blocklist.label" +description_key = "settings.tool_blocklist.description" +default = "sudo,su,passwd,rm,mv,shred,truncate,tee,install,chown,chmod,mount,umount,dd,mkfs,fsck,reboot,shutdown,poweroff,init,halt,curl,wget,nc,ncat,socat,env,find,xargs,sh,bash,zsh,fish,python,python3,perl,ruby,node,lua,luau,eval,source,busybox,make,cmake,just,task" + +[[setting]] +key = "show_commands" +type = "bool" +label_key = "settings.show_commands.label" +description_key = "settings.show_commands.description" +default = true + +[[setting]] +key = "max_history" +type = "int" +label_key = "settings.max_history.label" +description_key = "settings.max_history.description" +default = 50 +min = 1 +max = 500 +advanced = true diff --git a/mimir/service.luau b/mimir/service.luau new file mode 100644 index 0000000..f335078 --- /dev/null +++ b/mimir/service.luau @@ -0,0 +1,420 @@ +local M = {} +M.conversation = {} +M.pendingResponses = {} +M.pendingToolResults = {} +M.pendingToolCalls = {} +M.pendingApproval = nil +M.toolBatchActive = false +M.commandLog = {} + +local TOOLS = { + { + type = "function", + ["function"] = { + name = "run_command", + description = "Run a shell command on the user's system. Prefer the simplest standard utility that works (ls, find, grep, cat); fall back to a small script only when no utility fits", + parameters = { + type = "object", + properties = { + command = { + type = "string", + description = "The shell command to run", + }, + description = { + type = "string", + description = "Brief description of what this command does", + }, + }, + required = { "command", "description" }, + }, + }, + }, +} + +local function isTrustedOpenCodeEndpoint(endpoint) + local scheme, authority = endpoint:match("^(%a[%w+.-]*)://([^/%?#]+)") + if not scheme or not authority then return false end + local host, port = authority:match("^([^:]+):(%d+)$") + if not host then host = authority end + if scheme:lower() ~= "https" or host:lower() ~= "opencode.ai" then return false end + return port == nil or port == "443" +end + +local function loadApiKey() + local key = noctalia.getConfig("api_key") or "" + if key ~= "" then return key end + local endpoint = noctalia.getConfig("api_endpoint") or "https://opencode.ai/zen/go/v1" + if not isTrustedOpenCodeEndpoint(endpoint) then return "" end + local ok, data = pcall(noctalia.readFile, noctalia.expandPath("~/.local/share/opencode/auth.json")) + if ok and data then + local parsed = noctalia.json.decode(data) + if parsed and parsed["opencode-go"] and parsed["opencode-go"].key then + return parsed["opencode-go"].key + end + end + return "" +end + +local function loadConfig() + return { + endpoint = noctalia.getConfig("api_endpoint") or "https://opencode.ai/zen/go/v1", + apiKey = loadApiKey(), + toolPermission = noctalia.getConfig("tool_permission") or "ask", + showCommands = noctalia.getConfig("show_commands") ~= false, + toolBlocklist = noctalia.getConfig("tool_blocklist") or "sudo,su,passwd,rm,mv,shred,truncate,tee,install,chown,chmod,mount,umount,dd,mkfs,fsck,reboot,shutdown,poweroff,init,halt,curl,wget,nc,ncat,socat,env,find,xargs,sh,bash,zsh,fish,python,python3,perl,ruby,node,lua,luau,eval,source,busybox,make,cmake,just,task", + maxHistory = noctalia.getConfig("max_history") or 50, + } +end + +local function isBlocked(command) + local trimmed = command:match("^%s*(.-)%s*$") + if not trimmed then return false end + if trimmed == "" then return false end + + -- runAsync passes this string to /bin/sh -c, so do not allow shell syntax + -- to combine commands or invoke a second interpreter. + if trimmed:find("[;|&><`$\\\n\r]") then return true end + + local first = trimmed:match("^(%S+)") + if not first then return false end + first = first:gsub("^['\"]", ""):gsub("['\"]$", "") + first = first:match("([^/]+)$"):lower() + local blocklist = loadConfig().toolBlocklist + for item in blocklist:gmatch("[^,]+") do + local b = item:match("^%s*(.-)%s*$") + if b and b ~= "" and b:lower():match("([^/]+)$") == first then + return true + end + end + return false +end + +local function setStatus(s) + M.status = s + noctalia.state.set("mimir.status", s) +end + +local function addMessage(role, content, extra) + local msg = { role = role, content = content or "" } + if extra then + for k, v in pairs(extra) do msg[k] = v end + end + table.insert(M.conversation, msg) + local copy = {} + for _, v in ipairs(M.conversation) do + table.insert(copy, v) + end + noctalia.state.set("mimir.messages", copy) +end + +local function think(input) + setStatus("thinking") + local config = loadConfig() + + if #M.conversation > config.maxHistory then + local trimmed = {} + for i = #M.conversation - config.maxHistory + 1, #M.conversation do + table.insert(trimmed, M.conversation[i]) + end + M.conversation = trimmed + local copy = {} + for _, m in ipairs(M.conversation) do table.insert(copy, m) end + noctalia.state.set("mimir.messages", copy) + end + + local model = noctalia.state.get("mimir.model") or "deepseek-v4-flash" + + local msgs = { + { role = "system", content = "You are Mimir, an AI assistant running directly on the user's desktop with shell access. Your job: accomplish real tasks by running shell commands through the run_command tool, then report what actually happened. Choose the simplest, fastest command for the job. For local files and system state, standard utilities are ideal: ls, find, grep, cat, which, df, ps, head, wc. When a standard utility exists, prefer it over writing scripts — one-liners are faster, clearer, and less likely to need approvals. Reach for a script (python, etc.) only when no simple utility covers the task. Use your own knowledge to answer questions and explain things; you do not need to fetch web pages. When the task needs the user's input or a choice, ask instead of guessing. Never just give instructions — run the command and show the result. The user has already authorized command execution through the approval flow, so do not hesitate to use tools for legitimate tasks." }, + } + for _, m in ipairs(M.conversation) do + table.insert(msgs, m) + end + if input then + table.insert(msgs, { role = "user", content = input }) + end + + local body = { model = model, messages = msgs } + if config.toolPermission ~= "off" then + body.tools = TOOLS + end + + local encoded = noctalia.json.encode(body) + if not encoded then + setStatus("idle") + if input then addMessage("assistant", "Error: failed to encode request") end + return + end + + local url = config.endpoint .. "/chat/completions" + + local headers = { "Content-Type: application/json" } + if config.apiKey ~= "" then + table.insert(headers, "Authorization: Bearer " .. config.apiKey) + end + + noctalia.http({ + url = url, + method = "POST", + headers = headers, + body = encoded, + }, function(res) + table.insert(M.pendingResponses, res) + end) +end + +local function runCommand(tool_call, command) + setStatus("running_tool") + + noctalia.runAsync(command, function(result) + local output = "" + local parts = {} + if result.stdout and result.stdout ~= "" then table.insert(parts, result.stdout) end + if result.stderr and result.stderr ~= "" then table.insert(parts, result.stderr) end + output = table.concat(parts, "\n") + if output == "" then + output = "(exit code " .. tostring(result.status) .. ", no output)" + end + local config = loadConfig() + if config.showCommands then + table.insert(M.commandLog, { tool_call_id = tool_call.id, command = command }) + if #M.commandLog > 50 then table.remove(M.commandLog, 1) end + local logCopy = {} + for _, entry in ipairs(M.commandLog) do table.insert(logCopy, entry) end + noctalia.state.set("mimir.command_log", logCopy) + end + table.insert(M.pendingToolResults, { tool_call_id = tool_call.id, output = output }) + end) +end + +local function queueToolCalls(tool_calls) + M.pendingToolCalls = {} + M.pendingApproval = nil + M.toolBatchActive = true + for _, tc in ipairs(tool_calls) do + if tc.type == "function" and tc["function"].name == "run_command" then + local okArgs, args = pcall(noctalia.json.decode, tc["function"].arguments) + table.insert(M.pendingToolCalls, { + tc = tc, + args = (okArgs and type(args) == "table") and args or nil, + status = "waiting", + }) + end + end +end + +local function allToolCallsDone() + for _, call in ipairs(M.pendingToolCalls) do + if call.status ~= "done" then return false end + end + return true +end + +local function finishToolBatch() + if not M.toolBatchActive then return end + if not allToolCallsDone() then return end + M.toolBatchActive = false + M.pendingToolCalls = {} + M.pendingApproval = nil + think(nil) +end + +local function processToolQueue() + if #M.pendingToolCalls == 0 then + M.toolBatchActive = false + return + end + + for _, call in ipairs(M.pendingToolCalls) do + if call.status == "running" then return end + end + + local config = loadConfig() + + for _, call in ipairs(M.pendingToolCalls) do + if call.status == "waiting" then + if call.args == nil or type(call.args.command) ~= "string" or call.args.command == "" then + addMessage("tool", "Error: invalid tool arguments", { tool_call_id = call.tc.id }) + call.status = "done" + elseif isBlocked(call.args.command) then + addMessage("tool", "Command blocked by user settings: " .. call.args.command, { tool_call_id = call.tc.id }) + call.status = "done" + elseif config.toolPermission == "off" then + addMessage("tool", "Tools are disabled in settings. Enable them to run commands.", { tool_call_id = call.tc.id }) + call.status = "done" + end + end + end + + local remaining = {} + for _, call in ipairs(M.pendingToolCalls) do + if call.status == "waiting" then table.insert(remaining, call) end + end + + if config.toolPermission == "ask" and #remaining > 0 then + M.pendingApproval = {} + local commands = {} + for _, call in ipairs(remaining) do + table.insert(M.pendingApproval, { id = call.tc.id, command = call.args.command, description = call.args.description or "" }) + table.insert(commands, { command = call.args.command, description = call.args.description or "" }) + end + noctalia.state.set("mimir.pending_tool", { commands = commands }) + setStatus("idle") + return + end + + if config.toolPermission == "allow" then + for _, call in ipairs(remaining) do + call.status = "running" + runCommand(call.tc, call.args.command) + end + return + end + + finishToolBatch() +end + +function update() + for i, res in ipairs(M.pendingResponses) do + if M.toolBatchActive then break end + M.pendingResponses[i] = nil + + if not res.ok then + local err = res.body or "no body" + if #err > 200 then err = err:sub(1, 200) .. "..." end + setStatus("idle") + addMessage("assistant", "HTTP " .. tostring(res.status) .. ": " .. err) + return + end + + local data = noctalia.json.decode(res.body) + if not data or not data.choices then + local snippet = (res.body or ""):sub(1, 200) + setStatus("idle") + addMessage("assistant", "Invalid API response: " .. snippet) + return + end + + local choice = data.choices[1] + local message = choice.message + + if choice.finish_reason == "tool_calls" and message.tool_calls then + local clean = {} + for _, tc in ipairs(message.tool_calls) do + local c = { id = tc.id, type = tc.type, ["function"] = tc["function"] } + table.insert(clean, c) + end + addMessage("assistant", message.content, { tool_calls = clean }) + queueToolCalls(message.tool_calls) + processToolQueue() + else + local content = message.content or "" + if content ~= "" then + addMessage("assistant", content) + end + setStatus("idle") + end + end + + for i, result in ipairs(M.pendingToolResults) do + M.pendingToolResults[i] = nil + addMessage("tool", result.output, { tool_call_id = result.tool_call_id }) + for _, call in ipairs(M.pendingToolCalls) do + if call.tc.id == result.tool_call_id then + call.status = "done" + end + end + end + finishToolBatch() + + local approval = M.pendingApproval + if approval then + local approved = noctalia.state.get("mimir.tool_approved") + if approved then + noctalia.state.set("mimir.tool_approved", false) + noctalia.state.set("mimir.pending_tool", false) + M.pendingApproval = nil + for _, call in ipairs(M.pendingToolCalls) do + if call.status == "waiting" then + call.status = "running" + runCommand(call.tc, call.args.command) + end + end + return + end + + local denied = noctalia.state.get("mimir.tool_denied") + if denied then + noctalia.state.set("mimir.tool_denied", false) + noctalia.state.set("mimir.pending_tool", false) + M.pendingApproval = nil + for _, call in ipairs(M.pendingToolCalls) do + if call.status == "waiting" then + addMessage("tool", "Command was cancelled by the user.", { tool_call_id = call.tc.id }) + call.status = "done" + end + end + finishToolBatch() + return + end + end +end + +noctalia.state.watch("mimir.input", function(input) + if input and input ~= "" then + if M.pendingApproval then + addMessage("assistant", "Please approve or deny the pending command first.") + return + end + if M.toolBatchActive then + addMessage("assistant", "Please wait for the running commands to finish.") + return + end + addMessage("user", input) + think(nil) + end +end) + +noctalia.state.watch("mimir.clear", function(v) + if v then + M.conversation = {} + M.pendingToolCalls = {} + M.pendingApproval = nil + M.toolBatchActive = false + M.commandLog = {} + noctalia.state.set("mimir.messages", {}) + noctalia.state.set("mimir.command_log", {}) + noctalia.state.set("mimir.pending_tool", false) + setStatus("idle") + end +end) + +local function fetchModels() + local config = loadConfig() + if config.endpoint == "" then return end + local url = config.endpoint .. "/models" + noctalia.http({ url = url }, function(res) + if not res.ok then return end + local data = noctalia.json.decode(res.body) + if not data or not data.data then return end + local models = {} + for _, m in ipairs(data.data) do + if m.id then table.insert(models, m.id) end + end + noctalia.state.set("mimir.models", models) + end) +end + +noctalia.state.watch("mimir.refresh_models", function(v) + if v then fetchModels() noctalia.state.set("mimir.refresh_models", false) end +end) + +noctalia.setUpdateInterval(500) + +fetchModels() +if noctalia.state.get("mimir.model") == nil then + noctalia.state.set("mimir.model", "deepseek-v4-flash") +end +noctalia.state.set("mimir.status", "idle") +noctalia.state.set("mimir.messages", {}) +noctalia.state.set("mimir.command_log", {}) diff --git a/mimir/thumbnail.webp b/mimir/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..74d4839a101048cefa494b2d5c33bc1ca87aa9c7 GIT binary patch literal 105802 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