docs: documentazione MkDocs completa + fix build + verifica OpenCV dinamica

- Aggiunti docs/ (9 pagine MkDocs, tema Material) + mkdocs.yml
- Fix mkdocs.yml: repo_url -> git.enne2.net, tasklist (era taskbuttons),
  fence Mermaid via helper locale mermaid_fence.py (def_fence_mermaid
  rimosso da pymdown-extensions moderne)
- Documentate le nuove funzionalità: agy_create_verified (generazione
  verificata con verifica OpenCV DINAMICA generata dall'LLM), workflow
  vocale a 2 fasi (vocalPlanningMode), chiavi config context/webSearch
- tools.md ora documenta 14 tool; vocal-workflow.md include l'overlay di
  conferma piano; configuration.md include vocalPlanningMode
- .gitignore: esclusi site/ e __pycache__/
- Build MkDocs verificata (site/ generato correttamente)
This commit is contained in:
2026-08-11 00:47:23 +02:00
parent a81000912a
commit 2137150da3
12 changed files with 946 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
# Sistema di Configurazione
L'estensione `agy-pi` implementa un sistema di configurazione gerarchico e persistente, progettato per garantire massima sicurezza ed elasticità sia in ambienti locali che server.
---
## File di Configurazione (`config.json`)
Le impostazioni vengono memorizzate nel file JSON:
`~/.config/agy-pi/config.json`
!!! security "Sicurezza e Permessi"
Il file `config.json` viene creato con permessi restrittivi `0600` (leggibile e modificabile unicamente dall'utente proprietario del processo) per prevenire l'accesso non autorizzato alle chiavi API memorizzate.
---
## Gerarchia delle Risoluzione Chiavi
Quando un modulo o un tool dell'estensione richiede un valore di configurazione (es. `geminiApiKey`), l'estensione segue questa priorità:
```mermaid
graph TD
ENV[1. Variabili d'Ambiente System/Shell] -->|Se assente| CONFIG[2. File ~/.config/agy-pi/config.json]
CONFIG -->|Se assente| SECRET[3. File ~/.agy-chat/gemini-key]
SECRET -->|Se assente| DEFAULT[4. Valore Default di Fabbrica CONFIG_DEFAULTS]
```
---
## Tabella delle Opzioni di Configurazione
| Chiave | Tipo | Default | Descrizione |
|---|---|---|---|
| `geminiApiKey` | `string` | `undefined` | Chiave API Google Gemini (usata per STT, TTS e Web Search grounding). |
| `enne2ApiKey` | `string` | `undefined` | Bearer token opzionale per l'autenticazione verso il proxy `ai.enne2.net`. |
| `sttBackend` | `string` | `"gemini"` | Backend per la trascrizione vocale: `"gemini"` \| `"enne2"`. |
| `sttUrl` | `string` | `"https://ai.enne2.net"` | URL endpoint base per il backend STT enne2. |
| `sttModel` | `string` | `"gemma4:E4B"` | Identificativo modello per il backend STT enne2. |
| `sttMaxDuration` | `number` | `120` | Durata massima della registrazione audio in secondi. |
| `ttsBackend` | `string` | `"gemini"` | Backend per la sintesi vocale: `"gemini"` \| `"enne2"`. |
| `ttsNotify` | `boolean` | `true` | Abilita o disabilita le notifiche acustiche/vocali automatiche a fine trascrizione. |
| `ttsModel` | `string` | `"gemini-2.5-flash-preview-tts"` | Modello Gemini dedicato al Text-To-Speech. |
| `agyBin` | `string` | `"agy"` | Percorso assoluto o nome del binario eseguibile `agy`. |
| `agyDefaultModel` | `string` | `undefined` | Modello predefinito per le chiamate ad `agy` (es. `Gemini 3.1 Pro (High)`). |
| `agyTimeoutMs` | `number` | `180000` | Timeout generale in millisecondi per l'esecuzione di `agy` (3 minuti). |
| `contextInject` | `boolean` | `true` | Iniezione automatica del contesto dell'agente nel prompt `agy`. |
| `contextTokens` | `number` | `1500` | Budget massimo di token allocato per il blocco di contesto iniettato. |
| `webSearch` | `string` | `"auto"` | Modalità ricerca web (Strada A): `"auto"` \| `"on"` \| `"off"`. |
| `vocalPlanningMode` | `boolean` | `true` | Workflow vocale a 2 fasi: piano + conferma in overlay prima di eseguire. |
---
## Esempio di File `config.json`
```json
{
"sttBackend": "gemini",
"sttUrl": "https://ai.enne2.net",
"sttModel": "gemma4:E4B",
"sttMaxDuration": 120,
"ttsBackend": "gemini",
"ttsNotify": true,
"ttsModel": "gemini-2.5-flash-preview-tts",
"agyTimeoutMs": 180000,
"contextInject": true,
"contextTokens": 1500,
"webSearch": "auto",
"vocalPlanningMode": true,
"geminiApiKey": "AIzaSyD-EXAMPLE_KEY_STRING_HERE"
}
```
---
## Variabili d'Ambiente Mappate
Le seguenti variabili di ambiente sovrascrivono la configurazione quando presenti:
```bash
export GEMINI_API_KEY="AIzaSy..."
export ENNE2_API_KEY="sk-..."
export AGY_STT_BACKEND="enne2" # oppure "gemini"
export AGY_STT_URL="https://ai.enne2.net"
export AGY_STT_MODEL="gemma4:E4B"
export AGY_BIN="/home/utente/.local/bin/agy"
export AGY_TTS_NOTIFY="0" # disabilita notifiche TTS
```