mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
L'amont (AJEAN 0.15) donne à l'IA le contrôle d'un navigateur ; Loki embarquait déjà un Chromium pour `web_screenshot` sans jamais le piloter. Contrôle du navigateur (computer_use.go, computer_cdp.go, browser_grid.go, portés d'AJEAN) : l'IA ouvre une page en CDP, en reçoit les éléments interactifs NUMÉROTÉS et agit par numéro (browser_open/snapshot/find/click/ type/key/scroll). Aucune vision requise — un petit modèle texte s'en sort. Avec un projecteur chargé s'ajoutent browser_screenshot (image quadrillée) et browser_click_xy. Interrupteur dédié (Réglages, `loki computer`, /api/computer), sous le mode agent : cliquer et taper dans une page sont des actions réelles, même niveau de confiance que bash. Adaptation au conteneur : chromePath cherche D'ABORD le Chromium de Playwright (PLAYWRIGHT_BROWSERS_PATH, /opt/pw-browsers), le seul navigateur de l'image — sinon la fonctionnalité se déclarait absente là où le navigateur est présent. LOKI_CHROME force un chemin, LOKI_CU_HEADFUL ouvre une vraie fenêtre. Préparation des images (web_upload_orient.go, porté d'AJEAN) : l'orientation EXIF est cuite dans les pixels — le projecteur l'ignore et voyait les photos de téléphone couchées — et le grand côté ramené sous 1568 px. Appliquée aux pièces jointes, à see_image et aux captures. Dédup des appels d'outils : bash, bash_bg, bash_tail, see_image et les browser_* ne sont plus court-circuités sur un appel identique. Relancer la même commande après avoir modifié un fichier est légitime, et un outil qui porte une image dans un message à part renvoyait « [déjà fait] » SANS l'image — le modèle tournait en boucle. Mode code : le builder ne publie plus de lui-même (pas de commit/push/reset/ rebase ni de redémarrage de service sans demande explicite), reprise de la leçon d'AJEAN 0.15.4 ; l'inspection en lecture seule reste encouragée. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K6CAgoLJzufeA8rZTSpSpY
44 lines
2.3 KiB
Markdown
44 lines
2.3 KiB
Markdown
# Avis d'attribution
|
|
|
|
**Loki est un fork de [AJEAN](https://github.com/nathaninline/ajean)**, créé
|
|
par [nathaninline](https://github.com/nathaninline) et publié sous licence MIT.
|
|
L'essentiel du code de ce dépôt — moteur d'assistant IA en Go, interface web
|
|
embarquée, mémoire persistante, accès internet, outils MCP, accès distant
|
|
chiffré — est l'œuvre du projet AJEAN. Merci à son auteur.
|
|
|
|
La licence d'origine est conservée à l'identique dans [`LICENSE`](LICENSE).
|
|
|
|
## Modifications apportées par le fork
|
|
|
|
- **Renommage** AJEAN → Loki (binaire `loki`, `LOKI_HOME`, `/etc/loki`,
|
|
units `loki-engine` / `loki-ui`).
|
|
- **Conteneurisation** : image Docker autonome (llama.cpp compilé CUDA +
|
|
binaire Go), `docker-compose` et variante Unraid, publication GHCR.
|
|
- **Supervision sans systemd** (`sys_service_container.go`) : en conteneur,
|
|
le moteur est piloté par fichier PID au lieu de systemctl — indispensable
|
|
pour que l'UI puisse redémarrer le moteur (changement de modèle).
|
|
- **`loki config get/set`** : lecture/écriture non interactive de la
|
|
configuration, utilisée par l'entrypoint Docker.
|
|
- **Mode code** (`internal/loki/code_*.go`, `lsp.go`, `agents/`) : agent de
|
|
code avec critères d'acceptation, passe de vérification indépendante,
|
|
outils read/grep/glob, politique d'exécution, diagnostics LSP, outils git,
|
|
jobs d'arrière-plan et relance sur appel d'outil textuel. La conception
|
|
(contrat builder/verifier, tracker « lu avant d'écrire », auto-retry
|
|
patterns, table languages.json) est reprise
|
|
d'**[OpenFox](https://github.com/co-l/openfox)** (MIT) et réécrite en Go
|
|
pour ce fork ; les prompts de rôles sont des réécritures originales.
|
|
|
|
## Reprises depuis l'amont après le fork
|
|
|
|
Le fork continue de suivre AJEAN et y reprend des fonctionnalités, adaptées au
|
|
conteneur : le **contrôle du navigateur** (`computer_use.go`, `computer_cdp.go`,
|
|
`browser_grid.go` — pilotage d'un Chromium en CDP, ici celui de Playwright déjà
|
|
présent dans l'image) et la **préparation des images** envoyées au modèle
|
|
(`web_upload_orient.go` — orientation EXIF et redimensionnement).
|
|
|
|
## Services externes
|
|
|
|
Le tunnel d'accès distant continue de pointer vers **ajean.link**, le relais
|
|
opéré par l'auteur d'AJEAN ; le catalogue de modèles intégré est également
|
|
servi par ajean.link. Ces services appartiennent au projet amont.
|