Add claude-agent workspace (docs, tools, CLAUDE.md)
Merges the standalone claude-agent repo into romfastsql so its project docs and conventions are tracked in the main repo. Co-Authored-By: Claude Agent <noreply@anthropic.com>
This commit is contained in:
5
claude-agent/.gitignore
vendored
Normal file
5
claude-agent/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
__pycache__/
|
||||
*.pyc
|
||||
.venv/
|
||||
node_modules/
|
||||
.env
|
||||
16
claude-agent/CLAUDE.md
Normal file
16
claude-agent/CLAUDE.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# CLAUDE.md — claude-agent (spațiul puntii Discord)
|
||||
|
||||
Vezi `README.md` pentru context general.
|
||||
|
||||
## Documentație
|
||||
|
||||
| Subiect | Fișier |
|
||||
|---------|--------|
|
||||
| Infrastructură Proxmox (noduri, LXC, VM, proiecte) | [docs/infrastructure.md](docs/infrastructure.md) |
|
||||
| Echo (LXC 110 moltbot) — acces și comenzi pentru roa2web | [docs/echo-roa2web.md](docs/echo-roa2web.md) |
|
||||
|
||||
Detalii complete Proxmox (config, troubleshooting, incidente): `/workspace/romfastsql/proxmox/`.
|
||||
|
||||
## Convenții de lucru
|
||||
|
||||
- Pentru sarcini care se pot repeta (ex: extragere transcript video, procesare de fișiere), scrie un script reutilizabil (bash/python) în `tools/` în loc de comenzi ad-hoc de unică folosință.
|
||||
11
claude-agent/README.md
Normal file
11
claude-agent/README.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# claude-agent — spatiul de lucru al puntii Discord
|
||||
|
||||
Directorul implicit (`DEFAULT_CWD`) al firelor din puntea Discord -> Claude Code.
|
||||
Ce ceri botului in `#claude-agent` ateriza aici, nu direct in `/workspace`.
|
||||
|
||||
Repo propriu, ca lucrurile facute din Discord sa aiba istoric separat de proiectele
|
||||
reale si sa se poata da inapoi fara sa atinga altceva.
|
||||
|
||||
- Codul puntii NU e aici: e in `romfastsql/proxmox/lxc171-claude-agent/discord-bridge/`.
|
||||
- Pentru a lucra pe alt proiect dintr-un fir: `!cd /workspace/<proiect>`.
|
||||
- Fiecare fir Discord isi tine propriul director; `!status` il arata.
|
||||
104
claude-agent/docs/echo-roa2web.md
Normal file
104
claude-agent/docs/echo-roa2web.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# 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.
|
||||
41
claude-agent/docs/infrastructure.md
Normal file
41
claude-agent/docs/infrastructure.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Infrastructură Proxmox
|
||||
|
||||
Sursă completă: `/workspace/romfastsql/proxmox/README.md` (și subdirectoarele `lxc*/`, `vm*/`, `cluster/`).
|
||||
Acest fișier e un rezumat rapid — pentru detalii (config, troubleshooting, incidente) mergi la sursă.
|
||||
|
||||
## Noduri Cluster (3 noduri, quorum activ)
|
||||
|
||||
| Nod | IP | Rol |
|
||||
|-----|-----|-----|
|
||||
| pve1 | 10.0.20.200 | Nod cluster |
|
||||
| pvemini | 10.0.20.201 | Nod principal (majoritatea LXC-urilor) |
|
||||
| pveelite | 10.0.20.202 | Nod cluster |
|
||||
|
||||
## LXC-uri
|
||||
|
||||
| VMID | Nume | Nod | IP |
|
||||
|------|------|-----|-----|
|
||||
| 100 | portainer | pvemini | 10.0.20.170 |
|
||||
| 101 | minecraft | pve1 | - |
|
||||
| 102 | docker.romfast.ro | pvemini | 10.0.20.113 |
|
||||
| 103 | dokploy | pvemini | 10.0.20.167 |
|
||||
| 104 | flowise | pvemini | 10.0.20.161 |
|
||||
| 106 | gitea | pvemini | 10.0.20.165 |
|
||||
| 108 | central-oracle | pvemini | 10.0.20.121 |
|
||||
| 110 | moltbot | pve1 | 10.0.20.173 |
|
||||
| **171** | **claude-agent (acest container)** | pvemini | 10.0.20.171 |
|
||||
| 301 | docker-portainer-template | pveelite | - (stopped) |
|
||||
|
||||
## VM-uri (QEMU)
|
||||
|
||||
| VMID | Nume | Nod | IP |
|
||||
|------|------|-----|-----|
|
||||
| 109 | oracle-dr-windows | pveelite | 10.0.20.37 (stopped) |
|
||||
| 201 | roacentral | pvemini | 10.0.20.122 |
|
||||
| 302 | oracle-test-302 | pvemini | - (stopped) |
|
||||
| 303 | Win11-Adina | pvemini | DHCP |
|
||||
| 310 | Win11-Template-Sysprep | pvemini | template |
|
||||
|
||||
## Proiecte în /workspace
|
||||
|
||||
atm, autopass, city-discovery, claude-agent, efactura-generator, escape-builder, game-library, gomag-vending, icon-generator, paula-escape, qr-generator, qrpdf, roa2web, roa2web-agent-ai, roaauto, romfastsql, romfast-website, service-auto, space-booking, vending_data_intelligence_report, vfp_roaauto
|
||||
21
claude-agent/tools/roa2web.sh
Executable file
21
claude-agent/tools/roa2web.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
# Wrapper peste clientul roa2web deja autentificat pe moltbot (LXC 110, echo-core).
|
||||
# Nu duplica credentiale aici: ruleaza tools/roa2web_client.py de pe moltbot prin SSH,
|
||||
# folosind token-ul din keyring-ul lui echo-core.
|
||||
#
|
||||
# Uz:
|
||||
# tools/roa2web.sh companies
|
||||
# tools/roa2web.sh summary [--company <cod|nume>] [--luna N] [--an N]
|
||||
# tools/roa2web.sh get <path> [--company <cod|nume>] [--param k=v ...]
|
||||
#
|
||||
# Firma implicita (daca omiti --company): ROMFAST SRL (114), din config.json de pe moltbot.
|
||||
set -euo pipefail
|
||||
|
||||
HOST="moltbot@10.0.20.173"
|
||||
REMOTE_CMD="cd ~/echo-core && .venv/bin/python3 tools/roa2web_client.py"
|
||||
|
||||
for arg in "$@"; do
|
||||
REMOTE_CMD+=" $(printf '%q' "$arg")"
|
||||
done
|
||||
|
||||
exec ssh -o BatchMode=yes -o ConnectTimeout=10 "$HOST" "$REMOTE_CMD"
|
||||
Reference in New Issue
Block a user