# SommoHermes Assistant — installazione

Versione **0.1.4-assistant.1**, distribuita direttamente come APK sperimentale.
È un'app separata da SommoHermes standard: nome **SommoHermes Assistant**, pacchetto
`cc.sommomi.sommohermes.assistant`. Le due app possono coesistere e mantengono dati e
configurazione separati. Questa versione non è distribuita sul Play Store: è firmata
con la chiave di sviluppo locale dell'Assistente, diversa dalla firma Play dell'app
standard, e non è debuggable. Non sostituisce l'APK standard.

## 1. Installa sul telefono, senza cavo

1. Scarica `sommohermes-assistant-0.1.4-assistant.1.apk` dalla pagina Assistant di
   SommoHermes e aprilo sul telefono Android (Android 8 o successivo).
2. Se Android lo richiede, consenti al browser o all'app File usata per il download
   di installare app da questa origine; quindi conferma l'installazione.
3. Apri **SommoHermes Assistant**. Configura il tuo server Hermes con il suo normale
   indirizzo HTTPS e accesso autenticato, poi seleziona il profilo desiderato.
   La configurazione dell'app standard non viene importata automaticamente.

Per aggiornare un'installazione Assistant, apri il nuovo APK con la stessa firma.
Non disinstallare l'app: la disinstallazione cancella i suoi dati. Per chi preferisce
ADB, lo ZIP completo contiene lo script opzionale:

```sh
sh install-android.sh
# Se ci sono più dispositivi autorizzati:
sh install-android.sh --serial SERIAL
# Se adb non è nel PATH:
sh install-android.sh --adb /percorso/platform-tools/adb
```

Servono Python 3 e Android SDK Platform-Tools sul computer. Lo script verifica il
checksum dell'APK in `CHECKSUMS.sha256`, seleziona un dispositivo autorizzato e usa
soltanto `adb install -r`, conservando i dati. Non abilita automaticamente alcun
permesso Android. L'installazione diretta dal telefono non richiede ADB o USB.

## 2. Installa il plugin sul server Hermes

Questa parte va eseguita una volta dall'amministratore del server. Servono un Hermes
con dashboard autenticata compatibile con i plugin, il comando `hermes` nel `PATH`
e Python 3. Il vecchio server `hermes-webui` non fornisce questa integrazione.

Estrai lo ZIP completo **sul NAS/server** e apri un terminale nella cartella estratta:

```sh
# Profilo principale:
sh install-server.sh

# Oppure, per il solo profilo secondario mauro:
sh install-server.sh --home "$HOME/.hermes/profiles/mauro"
```

Lo script richiama l'installatore Python incluso; la forma equivalente è:

```sh
python3 hermes-plugin/install.py --home "$HOME/.hermes/profiles/mauro"
```

Installa il plugin in ciascun profilo che userà il telefono. Abilitare il plugin nel
profilo principale non basta per abilitarlo in `mauro`. Per sovrascrivere i file della
sola copia del plugin già presente, aggiungi `--replace`; questa opzione conserva
eventuali file aggiuntivi nella sua cartella. `--skip-enable` copia soltanto i file.
L'installatore non modifica le chat e non riavvia i servizi.

Riavvia dashboard e gateway del tuo deployment per caricare il plugin e le sue route.
Un riavvio può interrompere operazioni in corso: fallo quando il server è libero.
Su **SommoNas**, i servizi gestiti si chiamano:

```sh
systemctl --user restart hermex-dashboard.service hermes-gateway.service
```

Questi nomi sono un esempio specifico di SommoNas; su altri server usa il gestore con
cui hai avviato Hermes. In una nuova chat del profilo scelto, verifica che il catalogo
`tools.show` contenga `phone_browser` e che il plugin risulti abilitato.

**Compatibilità con profili secondari:** su SommoNas è stato corretto un problema
di scope di `tools.show` nella sorgente Hermes 0.22.6. Su altre installazioni affette,
il plugin può risultare abilitato ma mancare dal catalogo del profilo: serve anche
la correzione compatibile sul server. Riavviare il solo gateway o reinstallare l'APK
non corregge quel problema. La correzione SommoNas è stata caricata riavviando il
processo dashboard che gestisce le richieste dell'app.
Il bundle include una correzione opzionale e verificata per quello specifico commit:
consulta [compat/README.md](compat/README.md). Lo script principale non la applica
automaticamente.

Il telefono risponde alle richieste tramite la normale connessione HTTPS al tuo
Hermes. Non serve aprire un'altra porta sul router, installare un daemon MCP o
mantenere un cavo collegato.

## 3. Abilita l'Assistente una volta

1. In una chat, apri **Conversation tools → Phone browser**.
2. Apri **Accessibility settings** e abilita il servizio **SommoHermes Assistant**,
   poi torna nell'app. Su alcuni Android, per un APK scaricato occorre prima aprire
   **Informazioni app → menu ⋮ → Consenti impostazioni con limitazioni**; la voce
   varia in base al produttore.
3. Consenti le notifiche quando richiesto e scegli **Allow for this server**.
   Il server deve richiedere autenticazione e fornire la propria identità di
   installazione perché il pulsante sia disponibile.
4. Invia dall'app una richiesta come: «Apri il sito che ti indico nel browser del
   telefono e attendi». Tieni il telefono sbloccato.

Il consenso rimane salvato e cifrato per quel server e la tua identità: vale anche
per nuove chat, finché non lo revochi. Ogni invio esplicito dall'app in primo piano
può avviare una nuova sessione di controllo. Navigazione, clic, compilazione e invio
di moduli avvengono automaticamente, senza conferma per ogni azione del browser.
Le eventuali domande dell'agente restano visibili e richiedono la tua risposta.

## 4. Usa la barra compatta

Nel browser predefinito compare una piccola capsula trascinabile con microfono e
barrette audio. Tocca le barrette per aprire o ridurre la scheda compatta con
domanda/risposta. Tocca il microfono per rispondere a voce: al primo utilizzo Android
chiede il permesso. Le barrette si muovono durante l'ascolto; l'ascolto parte soltanto
con il tuo tocco. La matita consente di scrivere e l'icona chat riapre l'app.

La voce richiede Android 12 o successivo e un servizio di riconoscimento **sul
dispositivo** disponibile, con la lingua scaricata. Se non è disponibile, usa la
matita: l'app non passa a una trascrizione cloud. Il testo trascritto viene inviato
alla chat Hermes. Domande complesse, segreti e approvazioni si completano nell'app.

Un breve suono segnala l'inizio dell'interazione e l'arrivo di una domanda. I suoni
rispettano silenzioso, vibrazione, Non disturbare e volume di sistema.

Premi l'icona **Stop** per interrompere il controllo. Anche bloccare lo schermo,
cambiare chat/server, disconnettersi o raggiungere 15 minuti termina la sessione
attiva; il consenso salvato resta. Per toglierlo, torna in **Phone browser** e scegli
**Revoke server permission**. Puoi anche disattivare il servizio in Accessibilità.

## Dati e limiti

Il servizio di Accessibilità legge il contenuto web visibile e opera nel browser
predefinito; pagine e risultati possono raggiungere il tuo server Hermes e il suo
fornitore del modello. I campi password sono esclusi: completa personalmente
accessi e codici di verifica. La compatibilità dipende dal browser, dal sito e da
Android; il funzionamento non è garantito su ogni pagina.

Lo ZIP include APK, script, plugin e questa guida, senza credenziali o configurazione
del server. `CHECKSUMS.sha256` contiene gli hash dei file. Gli hash dello ZIP e
dell'APK scaricabili separatamente si trovano accanto ai download sul sito.
