mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
Les fichiers circulent enfin dans les deux sens. Envoi : trombone dans le composeur, glisser-deposer sur toute la fenetre, ou Ctrl+V. Le fichier est depose dans uploads/ du dossier de travail de l'agent et son chemin est annonce au modele, qui en fait ce qu'il veut avec ses outils. Rien n'est interprete au passage, donc tout type de fichier passe. Le depot n'a lieu qu'a l'ENVOI du message : retirer un fichier de la liste ne laisse aucune trace sur le disque. Transport en base64 dans du JSON et non en multipart, seule forme que le tunnel E2E dispatche : l'acces distant marche sans code specifique. Reception : le modele ecrit un lien Markdown ordinaire vers un fichier de son dossier de travail, et le clic telecharge. Il repondait jusqu'ici par un chemin serveur, inutilisable depuis un navigateur. Le clic passe par fetch + blob (la cle de pilotage voyage dans un en-tete qu'une navigation ne porterait pas, et le chemin de base change derriere le tunnel). Markdown refusant les espaces non echappes dans une cible de lien, ils sont encodes avant rendu : sans ca [x](mon rapport.pdf) ne produisait rien du tout. Perimetre du telechargement strictement limite au dossier de travail : '..', chemins absolus et liens symboliques qui en sortent sont refuses, et le fichier est toujours servi en piece jointe avec nosniff — un .html produit par le modele ne doit pas s'executer dans l'origine de l'UI, ou il lirait la cle de pilotage. Preambule du mode agent : ~2350 -> ~1770 tokens, sans perdre une regle. Le poids etait dans les schemas d'outils (le double du prompt), pas dans le prompt. Celui-ci reenumerait des outils que les schemas decrivent deja, et la regle « write, jamais echo » y figurait trois fois. Trois tests gardent le budget : ce prompt a deja regrossi ligne par ligne deux fois. Aussi : l'export mentionne les pieces jointes (un message sans texte donnait une section vide), et le decompte de contexte perd le mot « contexte » au profit du nom du modele.
38 lines
906 B
JSON
38 lines
906 B
JSON
{
|
|
"FixedFileInfo": {
|
|
"FileVersion": {
|
|
"Major": 0,
|
|
"Minor": 8,
|
|
"Patch": 7,
|
|
"Build": 0
|
|
},
|
|
"ProductVersion": {
|
|
"Major": 0,
|
|
"Minor": 8,
|
|
"Patch": 7,
|
|
"Build": 0
|
|
},
|
|
"FileFlagsMask": "3f",
|
|
"FileFlags": "00",
|
|
"FileOS": "040004",
|
|
"FileType": "01",
|
|
"FileSubType": "00"
|
|
},
|
|
"StringFileInfo": {
|
|
"CompanyName": "AJEAN contributors",
|
|
"FileDescription": "AJEAN — gestionnaire mono-binaire de serveurs llama.cpp auto-hébergés",
|
|
"InternalName": "ajean",
|
|
"LegalCopyright": "Copyright (c) 2026 AJEAN contributors. MIT License.",
|
|
"OriginalFilename": "ajean.exe",
|
|
"ProductName": "AJEAN",
|
|
"ProductVersion": "0.8.7",
|
|
"Comments": "https://github.com/nathaninline/ajean — projet open source (MIT)"
|
|
},
|
|
"VarFileInfo": {
|
|
"Translation": {
|
|
"LangID": "040C",
|
|
"CharsetID": "04B0"
|
|
}
|
|
}
|
|
}
|