Continut mutat din repo-ul romfast/workspace, unde fusese comis din greseala (commit-urile 0558bae si 47d9fb2 de acolo). Acolo e acum ignorat. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q4uzvgm7AyJch5WH8QHRhY
105 lines
4.4 KiB
Markdown
105 lines
4.4 KiB
Markdown
# 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 <cod\|nume>] [--luna N] [--an N]` | Dashboard financiar: clienți, furnizori, trezorerie (`/reports/dashboard/summary`) |
|
|
| `get <path> [--company ...] [--param k=v ...]` | Query generic pe orice endpoint, ex. `/reports/treasury/bank-cash-register`, `/reports/invoices` |
|
|
| `verify-2fa <cod> <email>` | 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.
|