New capabilities, so every real-world request works end to end:
- tools/apps: launch and quit desktop applications, multi-OS
(macOS open/osascript, Linux gtk-launch/pkill, Windows start/taskkill)
- tools/browser: open URLs and run searches (YouTube, Google, web) in the
default browser, multi-OS; watch mode attempts autoplay via Safari
automation with a graceful fallback
- tools/shell: background mode β GUI apps, servers and tkinter windows
detach instead of dying with the 15s timeout
- agent prompt: explicit guidance for background execution and tkinter
windows, plus the never-give-up rule
- tests: 34 passing (8 new cases for URL building and validation)
Polish:
- professional tone across all text: emojis removed from docs, CLI,
installer and logs
- dashboard template: emoji-free labels, text action buttons
(Start / Stop / Delete instead of glyphs)
docs: README rewrite β story-driven, sharper, more readable
mo
44de75e
docs: compliance & trust β CRA, NIS2, EU AI Act, GDPR, SBOMβ
polish: community touchpoints β star/share links, CLI + installer CTAs
mo
e4af19b
feat(agent): agentic execution loop β the agent that actsβ
mo
181b8c1
Tasks from the dashboard now flow through a cloud task queue; the
device claims them within seconds and runs the full loop: the
mona.expert brain plans (think), the device executes local tools
(act), results stream back (observe), and the answer lands in the
conversation (deliver). Up to 8 tool steps per task, live execution
trace in the dashboard feed, zero inbound ports.
- agent.js: task poller (2s) + agentic loop with tool-call parsing
- cloud.js: pollTasks / claimTask / taskResult / postActivity
- provider-agnostic tool protocol: plain text or one JSON tool call
- docs: execution loop in ARCHITECTURE + README, CHANGELOG 2.1.0
- version bump: 2.1.0
docs: examples and integrations β boot units, health check, automation recipes
The daemon now speaks the local Docker control plane's native protocol:
- register on connect (flat message, agentId in WS query)
- dashboard chat messages map to run commands, replies via chat:response
- llm:request/llm:response RPC proxies LLM calls through the platform
vault (keys stay in the cloud), provider/model from MONA_LLM_PROVIDER/
MONA_LLM_MODEL (default openai/gpt-4o-mini)
- live status broadcasts with metrics; sngine protocol untouched
Fixes: platform detection uses hostname (host includes the port),
DEFAULTS.llm added. New docker-control test suite (24 tests total).
- Dashboard: connection state machine (connecting/connected/reconnecting)
with animated spinner, reconnect timer + attempt counter
- Inline login: press l to paste the agent.mona.expert API key and
connect without leaving the terminal
- Setup mode: no key saved? GUI shows a step-by-step connect guide
(get key β paste β agent connects β control from dashboard)
- Task panel: live streaming preview, token/elapsed counter, wrap
- Activity log: color-coded levels with word wrapping
- Header chips: agent ID + live connection status; footer key hints
- Adaptive layout: side-by-side on wide terminals, stacked on narrow
- Debug bar: cloud URL, WS URL, creds path, reconnect counter
- README: new dashboard walkthrough + connect-your-agent guide
- render harness for TUI dev (test/render-harness.mjs)
feat: add CLI with login, gui, start, status, and help commandsβ
Mona
17d402e
Command-line interface with five commands:
- login: interactive API key verification and secure storage
- gui: full terminal dashboard with live metrics
- start: headless daemon mode with console logging
- status: display connection state and config paths
- help: usage guide with environment variables
Auto-detection: GUI if TTY, headless otherwise when no command
is specified. Graceful shutdown on SIGINT/SIGTERM.
Removed deprecated GUI server and telemetry files from v0.1.0.