From eda22811ce7289ec3852160a72b9adbc16d4c79c Mon Sep 17 00:00:00 2001 From: truetype Date: Sat, 21 Mar 2026 08:36:35 +0100 Subject: [PATCH] =?UTF-8?q?Rename=20project:=20maxclaw=20=E2=86=92=20langc?= =?UTF-8?q?ode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Renamed all references from maxclaw to langcode across all files - Renamed maxclaw.py → langcode.py - Renamed completion scripts: maxclaw.bash/zsh → langcode.bash/zsh - Updated Dockerfile, README, all Python files, HTML, JSON, YAML - New Gitea repository: http://192.168.0.183:8085/truetype/langcode_agent.git --- Dockerfile | 8 +- README.md | 104 ++++++++++---------- __pycache__/config_manager.cpython-314.pyc | Bin 9710 -> 23578 bytes analytics.py | 8 +- api_server.py | 20 ++-- completions/{maxclaw.bash => langcode.bash} | 0 completions/{maxclaw.zsh => langcode.zsh} | 0 config_cli.py | 6 +- config_manager.py | 8 +- config_tui.py | 4 +- dashboard.py | 4 +- docker-compose.yml | 14 +-- docs/architecture_and_usage.md | 20 ++-- example_usage.py | 8 +- i18n/__init__.py | 6 +- i18n/en.json | 4 +- i18n/it.json | 4 +- maxclaw.py => langcode.py | 76 +++++++------- main.py | 16 +-- marketplace/__init__.py | 2 +- marketplace/manager.py | 10 +- monitoring.py | 24 ++--- performance.py | 14 +-- plugins/__init__.py | 2 +- plugins/base.py | 4 +- plugins/example_plugin.py | 2 +- plugins/file_tools_plugin.py | 4 +- plugins/manager.py | 4 +- plugins/system_utils_plugin.py | 2 +- test_agent.py | 4 +- tests/test_config_manager.py | 2 +- tests/test_provider_tools.py | 2 +- tools/__init__.py | 2 +- tools/ollama_tools.py | 4 +- tools/provider_tools.py | 2 +- tools/proxmox_tools.py | 4 +- web/index.html | 24 ++--- web/marketplace.html | 16 +-- web/monitoring.html | 24 ++--- 39 files changed, 231 insertions(+), 231 deletions(-) rename completions/{maxclaw.bash => langcode.bash} (100%) rename completions/{maxclaw.zsh => langcode.zsh} (100%) rename maxclaw.py => langcode.py (89%) diff --git a/Dockerfile b/Dockerfile index a98e3c0..a9fa0ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# MaxClaw Agent Docker Image +# LangCode Agent Docker Image FROM python:3.11-slim # Set working directory @@ -20,8 +20,8 @@ RUN pip install --no-cache-dir -r requirements.txt COPY . . # Create directory for configuration -RUN mkdir -p /root/.maxclaw && \ - chmod 700 /root/.maxclaw +RUN mkdir -p /root/.langcode && \ + chmod 700 /root/.langcode # Expose port for API (future use) EXPOSE 8000 @@ -33,4 +33,4 @@ ENV MODEL_NAME=gemma2:9b ENV OLLAMA_BASE_URL=http://host.docker.internal:11434 # Default command -CMD ["python", "maxclaw.py"] \ No newline at end of file +CMD ["python", "langcode.py"] \ No newline at end of file diff --git a/README.md b/README.md index 3943f01..f8ff3bf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# MaxClaw Agent +# LangCode Agent Un agente configurabile basato su DeepAgents che supporta più provider LLM. @@ -42,7 +42,7 @@ Un agente configurabile basato su DeepAgents che supporta più provider LLM. ```bash # Build dell'immagine -docker build -t maxclaw-agent . +docker build -t langcode-agent . # Esecuzione con Docker Compose docker-compose up -d @@ -52,7 +52,7 @@ docker run -it --rm \ -e MODEL_PROVIDER=ollama \ -e MODEL_NAME=gemma2:9b \ -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \ - maxclaw-agent + langcode-agent ``` ### Configurazione del Completamento Shell @@ -60,19 +60,19 @@ docker run -it --rm \ #### Bash ```bash # Aggiungi al tuo ~/.bashrc o ~/.bash_profile -source /path/to/maxclaw_agent/completions/maxclaw.bash +source /path/to/langcode_agent/completions/langcode.bash ``` #### Zsh ```bash # Aggiungi al tuo ~/.zshrc -fpath=(/path/to/maxclaw_agent/completions $fpath) +fpath=(/path/to/langcode_agent/completions $fpath) autoload -Uz compinit && compinit ``` ## Configurazione -Puoi configurare MaxClaw Agent in diversi modi: +Puoi configurare LangCode Agent in diversi modi: ### 1. Variabili d'ambiente (Avvio Rapido) @@ -204,40 +204,40 @@ L'interfaccia web include: ## Utilizzo -### CLI Unificata (maxclaw) +### CLI Unificata (langcode) -Tutte le funzionalità sono accessibili tramite un unico comando `maxclaw`: +Tutte le funzionalità sono accessibili tramite un unico comando `langcode`: ```bash # Avvia l'agent (chat interattiva) -maxclaw -maxclaw chat +langcode +langcode chat # Avvia web server -maxclaw server -maxclaw server --port 3000 +langcode server +langcode server --port 3000 # Gestione configurazioni -maxclaw config list # Lista configurazioni -maxclaw config add -n ollama -p ollama -m gemma2:9b -u http://192.168.0.50:11434 -maxclaw config use ollama # Attiva configurazione -maxclaw config active # Mostra configurazione attiva -maxclaw config test # Testa connessione -maxclaw config export -f json -o backup -maxclaw config import backup.json -maxclaw config search ollama # Cerca configurazioni +langcode config list # Lista configurazioni +langcode config add -n ollama -p ollama -m gemma2:9b -u http://192.168.0.50:11434 +langcode config use ollama # Attiva configurazione +langcode config active # Mostra configurazione attiva +langcode config test # Testa connessione +langcode config export -f json -o backup +langcode config import backup.json +langcode config search ollama # Cerca configurazioni # TUI interattiva -maxclaw tui +langcode tui # Analytics e monitoraggio -maxclaw analytics # Riepilogo rapido -maxclaw analytics --report # Report completo -maxclaw dashboard # Dashboard performance +langcode analytics # Riepilogo rapido +langcode analytics --report # Report completo +langcode dashboard # Dashboard performance # Info -maxclaw version -maxclaw --help +langcode version +langcode --help ``` ### Utilizzo Locale (alternativo) @@ -283,10 +283,10 @@ Ollama URL: http://192.168.0.50:11434 openai-gpt4: openai - gpt-4o 👤 You: Ciao, chi sei? -🤖 MaxClaw: Ciao! Sono MaxClaw, un agente AI configurabile... +🤖 LangCode: Ciao! Sono LangCode, un agente AI configurabile... 👤 You: Elenca i file nella directory corrente -🤖 MaxClaw: [Esegue ls e mostra i file] +🤖 LangCode: [Esegue ls e mostra i file] 👤 You: /analytics 📊 Advanced Analytics Report (Last 30 days) @@ -319,17 +319,17 @@ Ollama URL: http://192.168.0.50:11434 docker-compose up -d # Accedi al terminale -docker exec -it maxclaw-agent maxclaw +docker exec -it langcode-agent langcode # Oppure esegui direttamente -docker run -it --rm maxclaw-agent +docker run -it --rm langcode-agent ``` ### Utilizzo dell'API REST Avvia il server API: ```bash -maxclaw server +langcode server # oppure python api_server.py ``` @@ -376,7 +376,7 @@ curl -X POST http://localhost:8000/configurations \ ## Analytics Avanzate -MaxClaw Agent include un sistema avanzato di analytics per monitorare l'uso e ottenere raccomandazioni. +LangCode Agent include un sistema avanzato di analytics per monitorare l'uso e ottenere raccomandazioni. ### Report Analytics @@ -436,7 +436,7 @@ python analytics.py ### Configurazione -I dati di analytics vengono salvati in `~/.maxclaw/analytics/` e includono: +I dati di analytics vengono salvati in `~/.langcode/analytics/` e includono: - Conversazioni (truncati per privacy) - Utilizzo strumenti - Utilizzo provider @@ -446,7 +446,7 @@ I dati di analytics vengono salvati in `~/.maxclaw/analytics/` e includono: ## Marketplace dei Plugin -MaxClaw Agent include un marketplace per scoprire e installare plugin. +LangCode Agent include un marketplace per scoprire e installare plugin. ### Accesso al Marketplace @@ -516,7 +516,7 @@ Per creare un plugin per il marketplace: ## Dashboard di Monitoraggio -MaxClaw Agent include una dashboard di monitoraggio in tempo reale con supporto multilingue. +LangCode Agent include una dashboard di monitoraggio in tempo reale con supporto multilingue. ### Accesso alla Dashboard @@ -568,7 +568,7 @@ La dashboard include: - Piattaforma - Architettura - Versione Python - - Versione MaxClaw + - Versione LangCode ### Supporto Multilingue della Dashboard @@ -623,7 +623,7 @@ Esempio: ## Ottimizzazioni Performance -MaxClaw Agent include diverse ottimizzazioni per migliorare le performance: +LangCode Agent include diverse ottimizzazioni per migliorare le performance: ### Caching - **Configurazioni**: Le configurazioni vengono cachate per 30 secondi @@ -658,11 +658,11 @@ python performance.py ## Strumenti Unificati per Provider -MaxClaw Agent ora fornisce un'interfaccia unificata per gestire qualsiasi provider LLM. Una volta configurato un provider, puoi usare gli stessi comandi per tutti. +LangCode Agent ora fornisce un'interfaccia unificata per gestire qualsiasi provider LLM. Una volta configurato un provider, puoi usare gli stessi comandi per tutti. ### Provider Supportati -MaxClaw Agent supporta i seguenti provider: +LangCode Agent supporta i seguenti provider: 1. **Ollama** - Modelli locali 2. **OpenAI** - GPT-4o, GPT-4o-mini, GPT-4-turbo, ecc. @@ -738,7 +738,7 @@ export GOOGLE_API_KEY="AIza..." ## Strumenti Personalizzati -MaxClaw Agent include anche strumenti personalizzati per gestire il tuo ambiente: +LangCode Agent include anche strumenti personalizzati per gestire il tuo ambiente: ### Strumenti Proxmox Configura le variabili d'ambiente per abilitare gli strumenti Proxmox: @@ -770,7 +770,7 @@ Gli strumenti Ollama specifici sono ancora disponibili per retrocompatibilità: ## Sistema di Plugin -MaxClaw Agent include un sistema di plugin per estendere le funzionalità. +LangCode Agent include un sistema di plugin per estendere le funzionalità. ### Plugin Inclusi @@ -904,7 +904,7 @@ python -c "from plugins.manager import plugin_manager; plugin_manager.load_all_p ## Supporto Multilingue -MaxClaw Agent supporta più lingue per l'interfaccia utente. +LangCode Agent supporta più lingue per l'interfaccia utente. ### Lingue Disponibili @@ -915,7 +915,7 @@ MaxClaw Agent supporta più lingue per l'interfaccia utente. ```bash # Usa la variabile d'ambiente -export MAXCLAW_LANGUAGE=en +export LANGCODE_LANGUAGE=en # Oppure usa il comando /language /language en @@ -948,7 +948,7 @@ L'interfaccia web supporta il cambio lingua: ## Monitoraggio Performance -MaxClaw Agent include un sistema avanzato di monitoraggio delle performance. +LangCode Agent include un sistema avanzato di monitoraggio delle performance. ### Dashboard Performance @@ -981,7 +981,7 @@ Il report include: ### Configurazione -I dati di performance vengono salvati in `~/.maxclaw/performance/` e includono: +I dati di performance vengono salvati in `~/.langcode/performance/` e includono: - Richieste API - Errori - Tempi di risposta @@ -1008,7 +1008,7 @@ pytest tests/ -v ### Build dell'Immagine ```bash -docker build -t maxclaw-agent . +docker build -t langcode-agent . ``` ### Esecuzione con Docker Compose @@ -1039,24 +1039,24 @@ docker run -it --rm \ -e PROXMOX_HOST=192.168.0.100 \ -e PROXMOX_USER=root \ -e PROXMOX_PASSWORD=password \ - -e MAXCLAW_LANGUAGE=it \ - maxclaw-agent + -e LANGCODE_LANGUAGE=it \ + langcode-agent ``` ## Personalizzazione Per personalizzare l'agente, modifica `main.py`: -- Cambia il prompt di sistema predefinito in `create_maxclaw_agent` +- Cambia il prompt di sistema predefinito in `create_langcode_agent` - Aggiungi strumenti personalizzati alla chiamata `create_deep_agent` - Configura i sub-agenti o altre funzionalità di DeepAgents - Crea plugin per estendere le funzionalità ## Monitoraggio e Logging -MaxClaw Agent include un sistema di monitoraggio e logging: +LangCode Agent include un sistema di monitoraggio e logging: -- **Log dettagliati**: Tutte le azioni vengono registrate in `~/.maxclaw/logs/` +- **Log dettagliati**: Tutte le azioni vengono registrate in `~/.langcode/logs/` - **Statistiche di sistema**: Monitoraggio di uptime, richieste, errori - **Metriche di performance**: Tempi di risposta, utilizzo cache - **Report di stato**: Visualizzazione completa dello stato del sistema @@ -1068,7 +1068,7 @@ MaxClaw Agent include un sistema di monitoraggio e logging: ## Sicurezza -MaxClaw Agent implementa misure di sicurezza avanzate: +LangCode Agent implementa misure di sicurezza avanzate: - **Crittografia a riposo**: Tutte le informazioni sensibili (chiavi API) sono crittografate usando la crittografia simmetrica Fernet - **Permessi di file sicuri**: La directory di configurazione e i file sono impostati con accesso solo al proprietario (700 per le directory, 600 per i file) diff --git a/__pycache__/config_manager.cpython-314.pyc b/__pycache__/config_manager.cpython-314.pyc index 744b290a91d86dc4ed539f826d839082d32cc196..d9a92678e2cc1e68ee045d635bb4517bb661c59f 100644 GIT binary patch literal 23578 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 delta 3553 zcmb7HZERE589w*Rx&DY9#~*P%?GVR_agyb$INu>L2@pz3O^8NGaZTcYM`D|6yFfNU z%A~gIq!u{R+Ol?pPSc1cO;lA^=q9m*O8c=NOQ2oYWoT6DpGi}fz&cmzkL`WW4N!hj zZj$Go``&Zk&*!}7ks!#93fFMOP(hgE=)4~ep5zpk|cPP z5yKVqD%W!|Y$zfb{U~YS!p0&pC5KIb1sMaAJnte^F0{>ue$~x}_Xy4JFXsP6=qKVYX_eJR?*wGpZFk|laFir; z>sf+qfLW3D>t2ia^As$ODjrHs#}p$DjpM8uk;(W}Of8JW66vfGi>wPL;)-gDOeLce z>k?I`z47y^n2t?NG978u>GLTCG?`beW1jD!=kmJCWz&l6UY6aT%9S^rB`eOFWoOL| zr~g&)b)#aV^>Q({nI36xqQ_*j92U^a89!Z;{nV;=Rt@`k%|mJWF!(XgDJ5Vg4J9XF z3Q#Gc&*`hZZj=@S%#u5@=?%+IEGu&PvRpnlacN{pF8{0C0k)Qgis_#VI}-D}f;3ij zN-UFA67zzBWK!}GL;$d9#xV;5!`d*b*|MUv5TFYF(q#awFea&CjR3qoaiL{im}`4C z!5$SGOc>`Vx6{tOMNil^bA9xxE#b%tSw75uTGvVJCRKD-MG-6BNxMfxj?fEs8~wG> z);4AWHSB8Pb!1{AA!Q`RkD+ty3JW8=307UR(28k+%S}eeE-QU$XGvj}FDGF>#rJ|n z?M?%ZxJR!zVV^LVs8xM+#f ztz$`em-af#I2|2xx|&Pf=iAS<&prF|uAD%eP1hZbs|CdFTCoL|ZGjuM`Xy6+&I&J9 z9F0qk#&5m=nttT$=+%^H)}+fbT*UR7(Y1U27gSR*a* z`nV?A=k--;C4~w1FFgz(H>P__ko;LvO1}&SSRLOn=*0o36$o7Pn!!fr+6`ig8|CO) zw}Y+*o%E)wl+KxD(M`sT^iMW7o$~4Jom_;=@>wDBpl7CddcLQUp00LyNBRAHSO|+j zWGP&3XtenAkVj#O0)bA3r7F@Xl#@8;A!A5bb^&|rj6K4b6C&?RcXLy{lKyDSPC}*zo-$;cpy4{IGbY4NNK`}%>ZeP85jr@ zq*86Yy&Yx01(+qPqF&$6-Lcr{SnXh!)p2@a#pzpi`YsA9*1Auvb(grm7ues_pVhzR zJs)^GFn8pV_434L1tDN*VLeQN-|N=8Z@#cN>HlgsFg~7ghw{jKeH#E5#p?bRY0)p^ zxWyO}^@}|sjIW6TVxBQnEnF)!hdjbHj|5}nW4#v~`;L4ZB=k2yFA#DmsFZJl@1Q+l zdQ{D}2Y6ISfy0`5b+MQJ_O*`T9vXJ z1(-suUHOnJon65?W*eh~-J!UArMPjqxba4D^Q-2Ymhu%#<+7!6&U?dBvn1ERF46UL zKmDq!gvG6C#A<*Ewm&>U#OO^LnC{mY6E z@MpUBF$`v51E+tnIqA_J3%zc02+-^3P~`^t#~u?t)6aVx^lmrX{|(R<@Q@+Q{Fs*Z zR?vZvmrnQgb+gP2L;V=L#PMY6xGGP?VksOc(5oKJBhFgSBkt<&Yz`K%h%n)><_d_Z zjJEV`LE;W=c`6K2ATH)e6%QnnQ;%ol0Yd-TSH;;r$nXCJ*NkOTkdwnBgOF^r&T7jX z1I@VavvNEklTmL;t7ruuMqm?RzE0O*m}|T3|ifT z+O(imV{|+de=!!pC8&9VynbWbRvx~)x$S%K9rS`$<^ZqYiI0`x@i};%(ATzOOIQjP z(@(a)T!f*k;^Elw^rJl?IyAt;BLXWE)A}HF%07H?0AUj0Fv1ap zEWNt7@gzIhaqzrZJJ87Z3ITg*`lkS2zXBxxo7j*O;lzCxkKK1YywsVK;heXMhrL{x zPBN?#fV%}osh`W0@X}MO1Ry8#QV>VMoD983Kjzi22^H`O;rjrxdsaTJ43S<~c8vn^!6*!Jt s;{{HLFTWoBCc4?x8F@c;k- diff --git a/analytics.py b/analytics.py index c30998e..9e723f7 100644 --- a/analytics.py +++ b/analytics.py @@ -1,5 +1,5 @@ """ -Advanced analytics for MaxClaw Agent +Advanced analytics for LangCode Agent Provides usage analytics, insights, and reporting """ import os @@ -16,7 +16,7 @@ sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) class AnalyticsEngine: - """Advanced analytics engine for MaxClaw Agent""" + """Advanced analytics engine for LangCode Agent""" def __init__(self, data_dir: Optional[str] = None): """ @@ -26,7 +26,7 @@ class AnalyticsEngine: data_dir: Directory for storing analytics data """ if data_dir is None: - self.data_dir = Path.home() / ".maxclaw" / "analytics" + self.data_dir = Path.home() / ".langcode" / "analytics" else: self.data_dir = Path(data_dir) @@ -411,7 +411,7 @@ class AnalyticsEngine: # Default insight if none generated if not insights: - insights.append("📊 Your usage patterns look normal. Keep using MaxClaw Agent!") + insights.append("📊 Your usage patterns look normal. Keep using LangCode Agent!") return insights diff --git a/api_server.py b/api_server.py index fe80e6d..ecde676 100644 --- a/api_server.py +++ b/api_server.py @@ -1,6 +1,6 @@ """ -MaxClaw Agent API Server -Provides REST API for remote access to MaxClaw Agent +LangCode Agent API Server +Provides REST API for remote access to LangCode Agent """ import os import sys @@ -16,13 +16,13 @@ import uvicorn sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from config_manager import config_manager -from main import create_maxclaw_agent +from main import create_langcode_agent from langchain_core.messages import HumanMessage # Initialize FastAPI app app = FastAPI( - title="MaxClaw Agent API", - description="REST API for MaxClaw Agent - configurable AI agent", + title="LangCode Agent API", + description="REST API for LangCode Agent - configurable AI agent", version="1.0.0" ) @@ -83,7 +83,7 @@ def get_agent(): global agent if agent is None: try: - agent = create_maxclaw_agent() + agent = create_langcode_agent() except Exception as e: raise HTTPException(status_code=500, detail=f"Failed to create agent: {str(e)}") return agent @@ -94,8 +94,8 @@ async def startup_event(): """Initialize agent on startup""" global agent try: - agent = create_maxclaw_agent() - print("✅ MaxClaw Agent API server started") + agent = create_langcode_agent() + print("✅ LangCode Agent API server started") except Exception as e: print(f"❌ Failed to initialize agent: {e}") @@ -108,7 +108,7 @@ async def root(): return FileResponse(web_index) else: return { - "message": "MaxClaw Agent API", + "message": "LangCode Agent API", "version": "1.0.0", "endpoints": { "chat": "/chat", @@ -142,7 +142,7 @@ async def health_check(): @app.post("/chat", response_model=ChatResponse) async def chat(request: ChatRequest): - """Chat with MaxClaw Agent""" + """Chat with LangCode Agent""" try: agent_instance = get_agent() diff --git a/completions/maxclaw.bash b/completions/langcode.bash similarity index 100% rename from completions/maxclaw.bash rename to completions/langcode.bash diff --git a/completions/maxclaw.zsh b/completions/langcode.zsh similarity index 100% rename from completions/maxclaw.zsh rename to completions/langcode.zsh diff --git a/config_cli.py b/config_cli.py index ad61272..1c57ecc 100644 --- a/config_cli.py +++ b/config_cli.py @@ -1,5 +1,5 @@ """ -Command-line interface for managing MaxClaw Agent configurations +Command-line interface for managing LangCode Agent configurations Enhanced with export/import, search, and better formatting """ import sys @@ -11,7 +11,7 @@ from typing import Optional, Dict, Any from config_manager import config_manager -def print_configurations(configs=None, title="MaxClaw Agent Configurations"): +def print_configurations(configs=None, title="LangCode Agent Configurations"): """Print all configurations in a formatted way""" if configs is None: configs = config_manager.get_configurations() @@ -405,7 +405,7 @@ def import_configurations(): def main(): """Main CLI entry point""" - parser = argparse.ArgumentParser(description="MaxClaw Agent Configuration Manager") + parser = argparse.ArgumentParser(description="LangCode Agent Configuration Manager") subparsers = parser.add_subparsers(dest='command', help='Available commands') # List command diff --git a/config_manager.py b/config_manager.py index 816c919..863da5c 100644 --- a/config_manager.py +++ b/config_manager.py @@ -1,5 +1,5 @@ """ -Configuration manager for MaxClaw Agent +Configuration manager for LangCode Agent Handles persistent storage of provider configurations with encryption and validation """ import json @@ -17,17 +17,17 @@ except ImportError: class ConfigManager: - """Manages MaxClaw Agent configuration with encryption and validation""" + """Manages LangCode Agent configuration with encryption and validation""" def __init__(self, config_dir: Optional[str] = None): """ Initialize the config manager Args: - config_dir: Directory to store config files. If None, uses ~/.maxclaw + config_dir: Directory to store config files. If None, uses ~/.langcode """ if config_dir is None: - self.config_dir = Path.home() / ".maxclaw" + self.config_dir = Path.home() / ".langcode" else: self.config_dir = Path(config_dir) diff --git a/config_tui.py b/config_tui.py index 965d43d..77bb529 100644 --- a/config_tui.py +++ b/config_tui.py @@ -1,5 +1,5 @@ """ -Text User Interface for MaxClaw Agent configuration management +Text User Interface for LangCode Agent configuration management Enhanced with search/filter, export/import, and connection testing """ import curses @@ -11,7 +11,7 @@ from typing import Optional, List, Dict, Any from config_manager import config_manager -def draw_menu(stdscr, selected_row_idx, options, title="MaxClaw Agent Configuration TUI"): +def draw_menu(stdscr, selected_row_idx, options, title="LangCode Agent Configuration TUI"): """Draw a menu with options""" stdscr.clear() h, w = stdscr.getmaxyx() diff --git a/dashboard.py b/dashboard.py index 6cf901e..f2e56b4 100644 --- a/dashboard.py +++ b/dashboard.py @@ -1,5 +1,5 @@ """ -Performance monitoring dashboard for MaxClaw Agent +Performance monitoring dashboard for LangCode Agent """ import os import sys @@ -25,7 +25,7 @@ class PerformanceDashboard: data_dir: Directory for storing performance data """ if data_dir is None: - self.data_dir = Path.home() / ".maxclaw" / "performance" + self.data_dir = Path.home() / ".langcode" / "performance" else: self.data_dir = Path(data_dir) diff --git a/docker-compose.yml b/docker-compose.yml index 14af2af..619ebee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,13 +1,13 @@ version: '3.8' services: - maxclaw: + langcode: build: . - container_name: maxclaw-agent + container_name: langcode-agent restart: unless-stopped volumes: # Mount configuration directory for persistence - - maxclaw-config:/root/.maxclaw + - langcode-config:/root/.langcode # Mount current directory for development (optional) # - .:/app environment: @@ -25,7 +25,7 @@ services: - PROXMOX_PASSWORD=${PROXMOX_PASSWORD:-} - PROXMOX_TOKEN=${PROXMOX_TOKEN:-} networks: - - maxclaw-network + - langcode-network # Interactive mode for terminal usage stdin_open: true tty: true @@ -40,14 +40,14 @@ services: # ports: # - "11434:11434" # networks: - # - maxclaw-network + # - langcode-network volumes: - maxclaw-config: + langcode-config: driver: local # ollama-data: # driver: local networks: - maxclaw-network: + langcode-network: driver: bridge \ No newline at end of file diff --git a/docs/architecture_and_usage.md b/docs/architecture_and_usage.md index 0a78878..db8829a 100644 --- a/docs/architecture_and_usage.md +++ b/docs/architecture_and_usage.md @@ -1,8 +1,8 @@ -# MaxClaw Agent: Architettura e Guida all'Utilizzo +# LangCode Agent: Architettura e Guida all'Utilizzo -## Cos'è MaxClaw Agent? +## Cos'è LangCode Agent? -MaxClaw Agent è un **agente AI intelligente** che può essere configurato per lavorare con diversi modelli di intelligenza artificiale (come GPT-4o di OpenAI, modelli locali con Ollama, o Claude tramite OpenRouter). In pratica, è come avere un assistente virtuale programmabile che può: +LangCode Agent è un **agente AI intelligente** che può essere configurato per lavorare con diversi modelli di intelligenza artificiale (come GPT-4o di OpenAI, modelli locali con Ollama, o Claude tramite OpenRouter). In pratica, è come avere un assistente virtuale programmabile che può: - **Leggere e scrivere file** sul tuo computer - **Eseguire comandi** di sistema @@ -16,7 +16,7 @@ MaxClaw Agent è un **agente AI intelligente** che può essere configurato per l ``` ┌─────────────────────────────────────────────────────────────┐ -│ MaxClaw Agent │ +│ LangCode Agent │ ├─────────────────────────────────────────────────────────────┤ │ 1. Agente Principale (main.py) │ │ - Coordina tutto il sistema │ @@ -327,13 +327,13 @@ python main.py ### 2. Prima Conversazione ``` 👤 Tu: Ciao, chi sei? -🤖 MaxClaw: Sono MaxClaw, un agente AI configurabile. Posso aiutarti a gestire file, eseguire comandi, analizzare dati e molto altro. Come posso aiutarti oggi? +🤖 LangCode: Sono LangCode, un agente AI configurabile. Posso aiutarti a gestire file, eseguire comandi, analizzare dati e molto altro. Come posso aiutarti oggi? 👤 Tu: Mostrami i file nella directory corrente -🤖 MaxClaw: [Esegue ls e mostra i file] +🤖 LangCode: [Esegue ls e mostra i file] 👤 Tu: Crea un file di testo con "Hello World" -🤖 MaxClaw: [Crea hello.txt con il contenuto specificato] +🤖 LangCode: [Crea hello.txt con il contenuto specificato] ``` ### 3. Configurazione Avanzata @@ -391,8 +391,8 @@ python config_cli.py test "openai-config" ### Problema: "Permessi insufficienti" **Soluzione**: Verifica i permessi dei file ```bash -ls -la ~/.maxclaw/ -chmod 600 ~/.maxclaw/config.json +ls -la ~/.langcode/ +chmod 600 ~/.langcode/config.json ``` ## Prossimi Passi @@ -404,6 +404,6 @@ chmod 600 ~/.maxclaw/config.json ## Conclusione -MaxClaw Agent è uno strumento potente e flessibile che può adattarsi a molteplici esigenze. Che tu voglia gestire file, analizzare dati, amministrare server o sperimentare con modelli AI, questo agente può aiutarti a automatizzare e semplificare il tuo lavoro. +LangCode Agent è uno strumento potente e flessibile che può adattarsi a molteplici esigenze. Che tu voglia gestire file, analizzare dati, amministrare server o sperimentare con modelli AI, questo agente può aiutarti a automatizzare e semplificare il tuo lavoro. La chiave è iniziare con task semplici e gradualmente esplorare funzionalità più avanzate man mano che acquisisci familiarità con il sistema. \ No newline at end of file diff --git a/example_usage.py b/example_usage.py index 8021573..b11159c 100644 --- a/example_usage.py +++ b/example_usage.py @@ -7,7 +7,7 @@ import os import sys sys.path.insert(0, '.') -from main import create_maxclaw_agent +from main import create_langcode_agent def example_with_openai(): """Example using OpenAI""" @@ -18,7 +18,7 @@ def example_with_openai(): # os.environ["OPENAI_API_KEY"] = "your-api-key" try: - agent = create_maxclaw_agent() + agent = create_langcode_agent() print("✅ OpenAI agent created") # Uncomment to test (requires API key) # result = agent.invoke({"messages": [{"role": "user", "content": "Say hello in Italian"}]}) @@ -35,7 +35,7 @@ def example_with_ollama(): os.environ["OLLAMA_BASE_URL"] = "https://ollama.solarpi.net" # From user's profile try: - agent = create_maxclaw_agent() + agent = create_langcode_agent() print("✅ Ollama agent created") # Uncomment to test (requires Ollama server) # result = agent.invoke({"messages": [{"role": "user", "content": "Say hello in Italian"}]}) @@ -53,7 +53,7 @@ def example_with_openrouter(): # os.environ["OPENROUTER_API_KEY"] = "your-api-key" try: - agent = create_maxclaw_agent() + agent = create_langcode_agent() print("✅ OpenRouter agent created") # Uncomment to test (requires API key) # result = agent.invoke({"messages": [{"role": "user", "content": "Say hello in Italian"}]}) diff --git a/i18n/__init__.py b/i18n/__init__.py index 45610d7..c027569 100644 --- a/i18n/__init__.py +++ b/i18n/__init__.py @@ -1,5 +1,5 @@ """ -Internationalization (i18n) support for MaxClaw Agent +Internationalization (i18n) support for LangCode Agent """ import os import json @@ -8,7 +8,7 @@ from pathlib import Path class I18n: - """Internationalization manager for MaxClaw Agent""" + """Internationalization manager for LangCode Agent""" def __init__(self, default_language: str = "en"): """ @@ -31,7 +31,7 @@ class I18n: self._load_language(self.default_language) # Try to load current language from environment - env_lang = os.getenv("MAXCLAW_LANGUAGE") + env_lang = os.getenv("LANGCODE_LANGUAGE") if env_lang: self.set_language(env_lang) diff --git a/i18n/en.json b/i18n/en.json index dcde4af..19e9b61 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -1,5 +1,5 @@ { - "app.name": "MaxClaw Agent", + "app.name": "LangCode Agent", "app.description": "A configurable agent harness using DeepAgents", "commands.help": "Show available commands", @@ -52,7 +52,7 @@ "plugins.disabled": "Disabled", "plugins.no_plugins": "No plugins found.", - "agent.initializing": "Initializing MaxClaw Agent...", + "agent.initializing": "Initializing LangCode Agent...", "agent.initialized": "Agent initialized successfully!", "agent.tools.available": "Available tools:", "agent.tools.provider": "Provider tools: list models, test connections, set defaults", diff --git a/i18n/it.json b/i18n/it.json index cae9105..8962185 100644 --- a/i18n/it.json +++ b/i18n/it.json @@ -1,5 +1,5 @@ { - "app.name": "MaxClaw Agent", + "app.name": "LangCode Agent", "app.description": "Un agente configurabile basato su DeepAgents", "commands.help": "Mostra i comandi disponibili", @@ -52,7 +52,7 @@ "plugins.disabled": "Disabilitato", "plugins.no_plugins": "Nessun plugin trovato.", - "agent.initializing": "Inizializzazione MaxClaw Agent...", + "agent.initializing": "Inizializzazione LangCode Agent...", "agent.initialized": "Agente inizializzato con successo!", "agent.tools.available": "Strumenti disponibili:", "agent.tools.provider": "Strumenti provider: elenca modelli, testa connessioni, imposta predefiniti", diff --git a/maxclaw.py b/langcode.py similarity index 89% rename from maxclaw.py rename to langcode.py index 844c5a9..e87d435 100755 --- a/maxclaw.py +++ b/langcode.py @@ -1,23 +1,23 @@ #!/usr/bin/env python3 """ -MaxClaw Agent - Unified CLI Entry Point +LangCode Agent - Unified CLI Entry Point Usage: - maxclaw → avvia l'agent (chat interattiva) - maxclaw chat → avvia l'agent - maxclaw server [--port N] → avvia web server - maxclaw tui → apre TUI configurazione - maxclaw config list → lista configurazioni - maxclaw config add → aggiungi configurazione - maxclaw config remove NAME → rimuovi configurazione - maxclaw config use NAME → attiva configurazione - maxclaw config active → mostra configurazione attiva - maxclaw config test [NAME] → testa connessione - maxclaw config export → esporta configurazioni - maxclaw config import FILE → importa configurazioni - maxclaw config search Q → cerca configurazioni - maxclaw analytics → mostra analytics - maxclaw dashboard → mostra dashboard performance - maxclaw version → mostra versione + langcode → avvia l'agent (chat interattiva) + langcode chat → avvia l'agent + langcode server [--port N] → avvia web server + langcode tui → apre TUI configurazione + langcode config list → lista configurazioni + langcode config add → aggiungi configurazione + langcode config remove NAME → rimuovi configurazione + langcode config use NAME → attiva configurazione + langcode config active → mostra configurazione attiva + langcode config test [NAME] → testa connessione + langcode config export → esporta configurazioni + langcode config import FILE → importa configurazioni + langcode config search Q → cerca configurazioni + langcode analytics → mostra analytics + langcode dashboard → mostra dashboard performance + langcode version → mostra versione """ import sys import os @@ -31,13 +31,13 @@ VERSION = "1.0.0" def cmd_chat(args): """Avvia l'agent in modalità chat interattiva""" - from main import create_maxclaw_agent, process_command + from main import create_langcode_agent, process_command from langchain_core.messages import HumanMessage - print("🚀 Inizializzo MaxClaw Agent...") + print("🚀 Inizializzo LangCode Agent...") try: - agent = create_maxclaw_agent() + agent = create_langcode_agent() print("✅ Agent inizializzato con successo!") print("\n🔧 Strumenti disponibili:") @@ -71,7 +71,7 @@ def cmd_chat(args): try: result = agent.invoke({"messages": [HumanMessage(content=user_input)]}) ai_message = result["messages"][-1] - print(f"\n🤖 MaxClaw: {ai_message.content}") + print(f"\n🤖 LangCode: {ai_message.content}") except Exception as e: print(f"\n❌ Errore: {str(e)}") @@ -88,7 +88,7 @@ def cmd_server(args): host = args.host or "0.0.0.0" port = args.port or 8000 - print(f"🌐 Avvio MaxClaw Web Server su http://{host}:{port}") + print(f"🌐 Avvio LangCode Web Server su http://{host}:{port}") print(f"📊 Dashboard: http://{host}:{port}/monitoring") print(f"🛒 Marketplace: http://{host}:{port}/marketplace") print(f"📡 API Docs: http://{host}:{port}/docs") @@ -357,7 +357,7 @@ def cmd_analytics(args): summary = engine.get_usage_summary() insights = engine.get_insights() - print("\n📊 MaxClaw Analytics") + print("\n📊 LangCode Analytics") print("=" * 40) if summary.get("total_conversations", 0) > 0: @@ -384,7 +384,7 @@ def cmd_analytics(args): print(f" • {insight}") print(f"\n📁 Dati salvati in: {engine.data_dir}") - print(" Usa 'maxclaw analytics --report' per report completo") + print(" Usa 'langcode analytics --report' per report completo") def cmd_dashboard(args): @@ -398,7 +398,7 @@ def cmd_dashboard(args): print("✅ Dati performance cancellati.") else: report = dashboard.get_summary() - print("\n📈 MaxClaw Performance Dashboard") + print("\n📈 LangCode Performance Dashboard") print("=" * 40) if report.get("total_requests", 0) > 0: @@ -422,29 +422,29 @@ def cmd_dashboard(args): def cmd_version(args): """Mostra versione""" - print(f"MaxClaw Agent v{VERSION}") + print(f"LangCode Agent v{VERSION}") print("Agent harness basato su LangChain Deep Agents") - print("https://github.com/truetype/maxclaw_agent") + print("https://github.com/truetype/langcode_agent") def main(): parser = argparse.ArgumentParser( - prog="maxclaw", - description="🚀 MaxClaw Agent - AI Agent harness configurabile", + prog="langcode", + description="🚀 LangCode Agent - AI Agent harness configurabile", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" Esempi: - maxclaw Avvia l'agent (chat interattiva) - maxclaw server --port 3000 Avvia web server su porta 3000 - maxclaw config list Lista tutte le configurazioni - maxclaw config add -n ollama -p ollama -m gemma2:9b - maxclaw config use ollama Attiva configurazione 'ollama' - maxclaw config test Testa configurazione attiva - maxclaw analytics Mostra riepilogo analytics - maxclaw analytics --report Genera report completo + langcode Avvia l'agent (chat interattiva) + langcode server --port 3000 Avvia web server su porta 3000 + langcode config list Lista tutte le configurazioni + langcode config add -n ollama -p ollama -m gemma2:9b + langcode config use ollama Attiva configurazione 'ollama' + langcode config test Testa configurazione attiva + langcode analytics Mostra riepilogo analytics + langcode analytics --report Genera report completo """ ) - parser.add_argument("--version", "-v", action="version", version=f"maxclaw {VERSION}") + parser.add_argument("--version", "-v", action="version", version=f"langcode {VERSION}") subparsers = parser.add_subparsers(dest="command", help="Comandi disponibili") diff --git a/main.py b/main.py index b6c7c7e..d593d3d 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -MaxClaw Agent - A configurable agent harness using DeepAgents +LangCode Agent - A configurable agent harness using DeepAgents Supports multiple LLM providers via LangChain's init_chat_model Enhanced with unified provider tools and custom tools """ @@ -74,7 +74,7 @@ def load_model_from_config(): def get_custom_tools() -> List[Tool]: """ - Get custom tools for the MaxClaw agent + Get custom tools for the LangCode agent Returns: List of custom tools @@ -114,12 +114,12 @@ def get_custom_tools() -> List[Tool]: return custom_tools -def create_maxclaw_agent(system_prompt: Optional[str] = None): +def create_langcode_agent(system_prompt: Optional[str] = None): """ Create and return a DeepAgent instance with configurable model. """ if system_prompt is None: - system_prompt = """You are MaxClaw, a helpful AI agent that can plan, use tools, + system_prompt = """You are LangCode, a helpful AI agent that can plan, use tools, manage context, and delegate to subagents. You are designed to be configurable to work with various LLM providers. @@ -371,12 +371,12 @@ def process_command(user_input: str) -> bool: def main(): """ - Main entry point for the MaxClaw agent. + Main entry point for the LangCode agent. """ - print("🚀 Initializing MaxClaw Agent...") + print("🚀 Initializing LangCode Agent...") try: - agent = create_maxclaw_agent() + agent = create_langcode_agent() print("✅ Agent initialized successfully!") # Show available tools @@ -408,7 +408,7 @@ def main(): result = agent.invoke({"messages": [HumanMessage(content=user_input)]}) # Extract the AI's response ai_message = result["messages"][-1] - print(f"\n🤖 MaxClaw: {ai_message.content}") + print(f"\n🤖 LangCode: {ai_message.content}") except Exception as e: print(f"\n❌ Error: {str(e)}") diff --git a/marketplace/__init__.py b/marketplace/__init__.py index a48a576..5352269 100644 --- a/marketplace/__init__.py +++ b/marketplace/__init__.py @@ -1,5 +1,5 @@ """ -MaxClaw Agent Marketplace Package +LangCode Agent Marketplace Package Provides plugin marketplace functionality """ diff --git a/marketplace/manager.py b/marketplace/manager.py index 38c11a0..211788f 100644 --- a/marketplace/manager.py +++ b/marketplace/manager.py @@ -1,5 +1,5 @@ """ -Plugin marketplace manager for MaxClaw Agent +Plugin marketplace manager for LangCode Agent """ import os import sys @@ -13,9 +13,9 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) class MarketplaceManager: - """Manages plugin marketplace for MaxClaw Agent""" + """Manages plugin marketplace for LangCode Agent""" - def __init__(self, marketplace_url: str = "https://api.github.com/repos/maxclaw-agent/plugins/contents"): + def __init__(self, marketplace_url: str = "https://api.github.com/repos/langcode-agent/plugins/contents"): """ Initialize marketplace manager @@ -23,8 +23,8 @@ class MarketplaceManager: marketplace_url: URL to the plugin marketplace """ self.marketplace_url = marketplace_url - self.local_plugins_dir = Path.home() / ".maxclaw" / "plugins" - self.marketplace_cache_file = Path.home() / ".maxclaw" / "marketplace_cache.json" + self.local_plugins_dir = Path.home() / ".langcode" / "plugins" + self.marketplace_cache_file = Path.home() / ".langcode" / "marketplace_cache.json" # Ensure directories exist self.local_plugins_dir.mkdir(parents=True, exist_ok=True) diff --git a/monitoring.py b/monitoring.py index 0ad5e45..9cb1072 100644 --- a/monitoring.py +++ b/monitoring.py @@ -1,5 +1,5 @@ """ -Monitoring and logging for MaxClaw Agent +Monitoring and logging for LangCode Agent """ import os import sys @@ -14,18 +14,18 @@ from pathlib import Path sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) -class MaxClawLogger: - """Custom logger for MaxClaw Agent""" +class LangCodeLogger: + """Custom logger for LangCode Agent""" def __init__(self, log_dir: Optional[str] = None): """ Initialize logger Args: - log_dir: Directory for log files. If None, uses ~/.maxclaw/logs + log_dir: Directory for log files. If None, uses ~/.langcode/logs """ if log_dir is None: - self.log_dir = Path.home() / ".maxclaw" / "logs" + self.log_dir = Path.home() / ".langcode" / "logs" else: self.log_dir = Path(log_dir) @@ -46,7 +46,7 @@ class MaxClawLogger: ) # Create file handler - log_file = self.log_dir / f"maxclaw_{datetime.now().strftime('%Y%m%d')}.log" + log_file = self.log_dir / f"langcode_{datetime.now().strftime('%Y%m%d')}.log" file_handler = logging.FileHandler(log_file) file_handler.setLevel(logging.INFO) file_handler.setFormatter(file_formatter) @@ -63,10 +63,10 @@ class MaxClawLogger: ) # Create specific loggers - self.agent_logger = logging.getLogger("maxclaw.agent") - self.config_logger = logging.getLogger("maxclaw.config") - self.api_logger = logging.getLogger("maxclaw.api") - self.tools_logger = logging.getLogger("maxclaw.tools") + self.agent_logger = logging.getLogger("langcode.agent") + self.config_logger = logging.getLogger("langcode.config") + self.api_logger = logging.getLogger("langcode.api") + self.tools_logger = logging.getLogger("langcode.tools") print(f"✅ Logging initialized. Logs will be saved to: {self.log_dir}") @@ -187,7 +187,7 @@ class SystemMonitor: # Global instances -logger = MaxClawLogger() +logger = LangCodeLogger() system_monitor = SystemMonitor() @@ -241,7 +241,7 @@ except ImportError: if __name__ == "__main__": # Test logging - print("Testing MaxClaw logging system...") + print("Testing LangCode logging system...") # Log some test messages logger.log_agent_action("test_action", {"test": "data"}) diff --git a/performance.py b/performance.py index 5d6bdc3..cf613af 100644 --- a/performance.py +++ b/performance.py @@ -1,5 +1,5 @@ """ -Performance optimizations for MaxClaw Agent +Performance optimizations for LangCode Agent Enhanced with connection pooling, lazy loading, and advanced caching """ import os @@ -379,26 +379,26 @@ def optimize_provider_tools(): def optimize_agent_creation(): """Optimize agent creation with caching""" - from main import create_maxclaw_agent + from main import create_langcode_agent # Cache agent creation - original_create_maxclaw_agent = create_maxclaw_agent + original_create_langcode_agent = create_langcode_agent - @functools.wraps(original_create_maxclaw_agent) - def optimized_create_maxclaw_agent(system_prompt=None): + @functools.wraps(original_create_langcode_agent) + def optimized_create_langcode_agent(system_prompt=None): cache_key = f"agent:{system_prompt}" if cache_key in performance_monitor.cache: cached_time, cached_result = performance_monitor.cache[cache_key] if time.time() - cached_time < 600: # Cache for 10 minutes return cached_result - result = original_create_maxclaw_agent(system_prompt) + result = original_create_langcode_agent(system_prompt) performance_monitor.cache[cache_key] = (time.time(), result) return result # Replace function import main - main.create_maxclaw_agent = optimized_create_maxclaw_agent + main.create_langcode_agent = optimized_create_langcode_agent print("✅ Agent creation optimized with caching") diff --git a/plugins/__init__.py b/plugins/__init__.py index d77db28..a242dc7 100644 --- a/plugins/__init__.py +++ b/plugins/__init__.py @@ -1,5 +1,5 @@ """ -MaxClaw Agent Plugins Package +LangCode Agent Plugins Package Provides plugin system for extensibility """ diff --git a/plugins/base.py b/plugins/base.py index 6901c96..76ac0ac 100644 --- a/plugins/base.py +++ b/plugins/base.py @@ -1,5 +1,5 @@ """ -Base plugin class for MaxClaw Agent +Base plugin class for LangCode Agent """ from abc import ABC, abstractmethod from typing import List, Dict, Any, Optional @@ -7,7 +7,7 @@ from langchain.tools import Tool class BasePlugin(ABC): - """Base class for MaxClaw plugins""" + """Base class for LangCode plugins""" def __init__(self, name: str, version: str = "1.0.0", description: str = ""): """ diff --git a/plugins/example_plugin.py b/plugins/example_plugin.py index cb797d2..25ecf28 100644 --- a/plugins/example_plugin.py +++ b/plugins/example_plugin.py @@ -1,5 +1,5 @@ """ -Example plugin for MaxClaw Agent +Example plugin for LangCode Agent Demonstrates how to create a plugin """ import os diff --git a/plugins/file_tools_plugin.py b/plugins/file_tools_plugin.py index f75c5ac..37adc1a 100644 --- a/plugins/file_tools_plugin.py +++ b/plugins/file_tools_plugin.py @@ -1,5 +1,5 @@ """ -File tools plugin for MaxClaw Agent +File tools plugin for LangCode Agent Provides additional file management tools """ import os @@ -23,7 +23,7 @@ class FileToolsPlugin(BasePlugin): super().__init__( name="file_tools", version="1.0.0", - description="Additional file management tools for MaxClaw Agent" + description="Additional file management tools for LangCode Agent" ) def get_tools(self) -> List[Tool]: diff --git a/plugins/manager.py b/plugins/manager.py index 3e9bda6..de9fd96 100644 --- a/plugins/manager.py +++ b/plugins/manager.py @@ -1,5 +1,5 @@ """ -Plugin manager for MaxClaw Agent +Plugin manager for LangCode Agent """ import os import sys @@ -15,7 +15,7 @@ from plugins.base import BasePlugin class PluginManager: - """Manages plugins for MaxClaw Agent""" + """Manages plugins for LangCode Agent""" def __init__(self, plugin_dir: Optional[str] = None): """ diff --git a/plugins/system_utils_plugin.py b/plugins/system_utils_plugin.py index 7ae92c5..86133e0 100644 --- a/plugins/system_utils_plugin.py +++ b/plugins/system_utils_plugin.py @@ -1,5 +1,5 @@ """ -System utilities plugin for MaxClaw Agent +System utilities plugin for LangCode Agent Provides system information and utility tools """ import os diff --git a/test_agent.py b/test_agent.py index 3a107ea..d6ce9e1 100644 --- a/test_agent.py +++ b/test_agent.py @@ -7,13 +7,13 @@ import os import sys sys.path.insert(0, '.') -from main import create_maxclaw_agent +from main import create_langcode_agent def test_agent_creation(): """Test that the agent can be created successfully.""" print("Testing agent creation...") try: - agent = create_maxclaw_agent() + agent = create_langcode_agent() print("✅ Agent created successfully!") return agent except Exception as e: diff --git a/tests/test_config_manager.py b/tests/test_config_manager.py index a5d9313..d670d15 100644 --- a/tests/test_config_manager.py +++ b/tests/test_config_manager.py @@ -1,5 +1,5 @@ """ -Test suite for MaxClaw Agent configuration manager +Test suite for LangCode Agent configuration manager """ import os import json diff --git a/tests/test_provider_tools.py b/tests/test_provider_tools.py index b7dfa65..922653b 100644 --- a/tests/test_provider_tools.py +++ b/tests/test_provider_tools.py @@ -1,5 +1,5 @@ """ -Test suite for MaxClaw Agent provider tools +Test suite for LangCode Agent provider tools """ import os import sys diff --git a/tools/__init__.py b/tools/__init__.py index 3e4225a..526315a 100644 --- a/tools/__init__.py +++ b/tools/__init__.py @@ -1,5 +1,5 @@ """ -MaxClaw Agent Tools Package +LangCode Agent Tools Package Provides custom tools for Proxmox, Ollama, and unified provider management """ diff --git a/tools/ollama_tools.py b/tools/ollama_tools.py index 0172d1b..04fa1c4 100644 --- a/tools/ollama_tools.py +++ b/tools/ollama_tools.py @@ -1,5 +1,5 @@ """ -Ollama management tools for MaxClaw Agent +Ollama management tools for LangCode Agent Provides tools for managing Ollama models and instances """ import requests @@ -309,7 +309,7 @@ class OllamaTools: def get_ollama_tools(base_url: str = "http://localhost:11434") -> List[Tool]: """ - Get a list of Ollama tools for the MaxClaw agent + Get a list of Ollama tools for the LangCode agent Args: base_url: Base URL of the Ollama instance diff --git a/tools/provider_tools.py b/tools/provider_tools.py index dc5d7ac..eb4ba27 100644 --- a/tools/provider_tools.py +++ b/tools/provider_tools.py @@ -1,5 +1,5 @@ """ -Unified Provider Tools for MaxClaw Agent +Unified Provider Tools for LangCode Agent Provides a consistent interface for managing different LLM providers """ import os diff --git a/tools/proxmox_tools.py b/tools/proxmox_tools.py index a8a7acb..494d8e3 100644 --- a/tools/proxmox_tools.py +++ b/tools/proxmox_tools.py @@ -1,5 +1,5 @@ """ -Proxmox management tools for MaxClaw Agent +Proxmox management tools for LangCode Agent Provides tools for managing Proxmox virtual machines and containers """ import subprocess @@ -266,7 +266,7 @@ class ProxmoxTools: def get_proxmox_tools(host: str = "192.168.0.100", user: str = "root", password: Optional[str] = None, api_token: Optional[str] = None) -> List[Tool]: """ - Get a list of Proxmox tools for the MaxClaw agent + Get a list of Proxmox tools for the LangCode agent Args: host: Proxmox host address diff --git a/web/index.html b/web/index.html index e56905d..cbe3ded 100644 --- a/web/index.html +++ b/web/index.html @@ -3,7 +3,7 @@ - MaxClaw Agent - Configurazione + LangCode Agent - Configurazione