# Echo (LXC 110 moltbot) — acces și comenzi pentru roa2web „Echo" nu face parte din codul roa2web — e un bot AI separat (Echo Core, Claude Opus 4.5), rulat pe LXC 110 (moltbot), care are acces la `/workspace` și deci „știe" despre roa2web ca orice alt agent Claude cu acces la filesystem (a generat chiar câteva documente roa2web — vezi bylines „Generated by: Echo" în `roa2web-agent-ai/tasks/prd-roa2web-telegram-bonuri.md` și `roa2web-agent-ai/backend/scripts/whatsapp_import/README.md`). Sursa completă: `/workspace/romfastsql/proxmox/lxc110-moltbot/README.md`. ## Ce este | | | |---|---| | Nume proces | `echo-core` (Python), `/home/moltbot/echo-core`, `python3 src/main.py` | | Container | LXC 110 „moltbot", pve1 | | IP | `10.0.20.173` (intern) / `100.120.119.70` (Tailscale) | | Model | Anthropic `claude-opus-4-5`, context 200k | | Canale | Telegram (ON), WhatsApp (ON, +40723197939), Discord (inclus în descrierea serviciului) | ⚠️ Stack-ul vechi **clawdbot/OpenClaw** (CLI, comenzi `clawdbot ...`) **nu mai e funcțional** (verificat 2026-08-30) — folosește comenzile `echo-core` de mai jos, nu pe cele vechi. ## Servicii systemd (pe container, user `moltbot`) ```bash systemctl --user status echo-core systemctl --user restart echo-core journalctl --user -u echo-core -f ``` Servicii înrudite: `echo-taskboard.service` (dashboard API), `echo-whatsapp-bridge.service` (punte WhatsApp, Node/Baileys). ## Acces ### SSH direct ```bash ssh moltbot@10.0.20.173 # rețea internă ssh moltbot@100.120.119.70 # Tailscale, de oriunde ``` ### Dashboard web ```bash ssh -L 18789:127.0.0.1:18789 -N moltbot@10.0.20.173 & # apoi: http://localhost:18789 ``` Sau prin Tailscale: `https://moltbot.tailf7372d.ts.net/echo/`. ### Chat (Telegram / WhatsApp / Discord) Scrii direct botului pe canalul respectiv — nu există un CLI de invocat local pentru asta. ## Client roa2web al lui Echo (`tools/roa2web_client.py`) Pe lângă chat, Echo are un client CLI propriu pentru API-ul financiar roa2web: `~/echo-core/tools/roa2web_client.py` (pe moltbot). Autentificare: user/parolă Oracle + 2FA email la primul login; după primul login cu `trust_device=True`, token-urile (access/refresh/trusted-device) stau în keyring-ul local (`service="echo-core"`, `src/credential_store.py`) — sesiunile următoare nu mai cer OTP. Config (`~/echo-core/config.json` → cheia `roa2web`): ```json { "base_url": "https://roa2web.romfast.ro/roa2web/api", "default_company": "114", "default_company_name": "ROMFAST SRL" } ``` Comenzi client (rulate pe moltbot, în `~/echo-core`, cu `.venv/bin/python3`): | Comandă | Ce face | |---|---| | `companies` | Listează toate firmele (`id_firma` + nume) | | `summary [--company ] [--luna N] [--an N]` | Dashboard financiar: clienți, furnizori, trezorerie (`/reports/dashboard/summary`) | | `get [--company ...] [--param k=v ...]` | Query generic pe orice endpoint, ex. `/reports/treasury/bank-cash-register`, `/reports/invoices` | | `verify-2fa ` | Finalizează login-ul cu un cod OTP primit pe email (doar dacă tokenul a expirat și cere reautentificare) | Endpoint-uri disponibile sub `/api/reports/...` (din `roa2web-agent-ai/backend/modules/reports/routers/`): `dashboard/summary`, `dashboard/trends`, `dashboard/cashflow`, `dashboard/maturity`, `dashboard/treasury-breakdown`, `invoices/`, `invoices/summary`, `invoices/{numar}`, `treasury/bank-cash-register`, `treasury/bank-cash-accounts`, `trial-balance/`. ### Integrare în claude-agent — `tools/roa2web.sh` Wrapper în acest repo (`/workspace/claude-agent/tools/roa2web.sh`) care rulează clientul de mai sus pe moltbot prin SSH, **fără să dubleze credențialele** aici — folosește token-ul deja în keyring-ul lui echo-core: ```bash tools/roa2web.sh companies tools/roa2web.sh summary # firma implicită: ROMFAST SRL (114) tools/roa2web.sh summary --company 114 --luna 8 --an 2026 tools/roa2web.sh get /reports/treasury/bank-cash-register --company 114 ``` Necesită SSH fără parolă către `moltbot@10.0.20.173` (deja funcțional din acest container). ## Alt canal: comenzi financiare directe în roa2web (fără Echo) Independent de Echo, aplicația roa2web are propriul bot Telegram (`roa2web-agent-ai/backend/modules/telegram/`, vezi `docs/telegram/README.md` din acel repo) cu comenzi ca `/dashboard`, `/sold`, `/facturi`, `/trezorerie` — util dacă ai cont Oracle legat direct la Telegram, fără să treci prin Echo/moltbot.