Dinoer

Lo que Dinoer no hace a sus espaldas

Cinco garantías, cada una con el archivo de código que la sostiene, y lo que cada una no cubre.

Está a punto de dar a una cadena de investigación acceso a sus credenciales y al tráfico saliente de su máquina. Esto es en lo que se apoya, con el archivo que garantiza cada punto.

Dinoer nunca pone sus credenciales en un terminal

Nunca pasan por su shell, su historial de comandos ni los registros de Dinoer: el valor se lee del directorio cifrado dentro del proceso que maneja el navegador, en el momento en que se rellena un campo.

→ lib/repertoire_chiffre.py. Cómo llega una credencial a un formulario →

Un escenario que escribe un secreto en claro se rechaza antes de arrancar el navegador: una acción remplir sobre un campo cuyo selector parece sensible (password, token, otp, cvv y otros) con un valor distinto de depuis_secrets, o un script evaluer que contiene un token o una clave de alta entropía.

Lo que Dinoer escribe se filtra por defecto: los valores que devuelve evaluer, las URL y los mensajes de error que van a la salida o al registro de operaciones se neutralizan. --no-filtre-evaluer desactiva el filtro, y la salida lo indica entonces (boussole.filtre_evaluer_actif: false).

→ lib/sanitisation.py

Lo que esto no cubre: el agente que maneja Dinoer tiene su propio acceso a su máquina. Con un terminal, puede leer su directorio montado como cualquier otro archivo. Dinoer protege el camino que controla, no el que usted abre al lado.

El modelo que redacta el informe se mantiene fuera de la web

En cada llamada a OpenCode, invoquer_opencode() pone websearch y webfetch en deny dentro de OPENCODE_CONFIG_CONTENT, combinado con el valor que usted ya hubiera definido. La prohibición se mantiene, por tanto, sea cual sea el directorio desde el que se lanza Dinoer; el opencode.jsonc de la raíz del repositorio dice lo mismo para un lanzamiento desde allí. Medido el 25 de septiembre de 2026 con opencode debug config (OpenCode 1.18.32), lanzado desde /tmp: con este valor, websearch y webfetch están en deny; sin él, en allow.

→ lib/modeles.py::invoquer_opencode()

La prohibición existe porque el 14 de agosto de 2026 una campaña sorprendió al modelo lanzando doce búsquedas web mientras redactaba el informe. Solo aparecían en el registro completo de sus eventos, no en el texto que devolvió.

Lo que esto no cubre: bash sigue permitido, porque algunos escenarios piden al modelo que envíe una notificación con curl. Un modelo sin websearch llegó a la web con bash curl durante una prueba. De las garantías de esta página, es la única incompleta.

Dinoer informa, no decide

pret_a_agir: false significa que se ha notado algo: una firma de cortafuegos de aplicaciones (WAF), una deriva de sesión, un límite de navegación alcanzado, errores de JavaScript. La ejecución continúa: Dinoer informa y usted decide.

La detección de WAF funciona con palabras clave y puede equivocarse. Aparece como un recuento, nunca como un error que detenga la ejecución, y --ignorer-waf existe para cuando usted lo ha comprobado.

El núcleo de navegación solo hace lo que enumera el escenario, con una excepción

Cada clic, cada pulsación y cada navegación del núcleo de navegación es una línea de un archivo de escenario, comprobado contra un esquema antes de arrancar el navegador.

→ scenarios/schema.json

La cadena de investigación es distinta: campagne.py pide a un modelo que juzgue si una página responde a una pregunta abierta, o si dos páginas describen el mismo evento. Esta garantía cubre el núcleo de navegación, no ese juicio.

Puede revisarlo todo después

Cada ejecución queda anotada en un registro de operaciones en el que solo se añade: qué se intentó, dónde, con qué resultado y con qué intención declarada. journal.py lo lee.

→ journal.py, /var/log/dinoer/operations.jsonl

Qué sale de su máquina

Además de las solicitudes a las propias páginas, pueden salir tres cosas, cada una por decisión suya: las consultas enviadas a su instancia de SearXNG, el texto recopilado enviado al modelo de OpenCode y una notificación a un servidor ntfy (ntfy.sh si no indica otro). Sus credenciales, no. La tabla completa, con el archivo detrás de cada línea, está en la página de arquitectura.

Lo que Dinoer no pretende

No es más prudente que el escenario o el manifiesto que usted le da. Uno erróneo causa daños reales, a velocidad de máquina. Y la garantía sobre el corpus se refiere al origen de una respuesta, no a si la pregunta era la adecuada.