-- boltzmann-tools plugin: `stash` — fleet persistent-memory CLI wrapper. -- Receives (server, run). Runs the stash CLI inside the memory Incus container's -- stash-stash-1 docker container (which has NO shell — /stash is invoked directly -- as argv; docker exec handles that, no `sh -c` inside the container). local server, run = ... server:tool("stash", "Fleet persistent memory (stash knowledge graph on the memory container). " .. "`command` = a stash subcommand + its args as ONE string. " .. "Examples: command:=\"recall escher plug AIN\" | command:=\"facts\" | " .. "command:=\"remember 'the NAS is at 192.168.88.10'\" | command:=\"namespace list\". " .. "Wrap multi-word text in single quotes. Read subcommands: recall, facts, namespace list, " .. "goal list, context show. Write: remember, forget, consolidate run.", { type = "object", properties = { command = { type = "string", description = "stash subcommand + args, e.g. \"recall \" or \"remember ''\"" }, }, required = { "command" } }, function(a) local c = tostring(a.command or ""):gsub("^%s+", ""):gsub("%s+$", "") if c == "" then return "Error: command required (e.g. command:=\"recall \")" end return run("incus exec memory -- docker exec stash-stash-1 /stash " .. c, 60) end, { annotations = { title = "Stash fleet memory", readOnlyHint = false, destructiveHint = false, idempotentHint = false, openWorldHint = true, } } )