SkillAgentSearch skills...

Zeroneurone

Outil d'investigation open-source avec visualisation de graphe, analyse temporelle et collaboration temps réel via mesh networking. Cartographiez les entités, tracez les relations et révélez les patterns dans vos enquêtes.

Install / Use

/learn @MeltingBot/Zeroneurone
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

ZeroNeurone

<p align="center"> <img src="media/zeroneurone.png" alt="ZeroNeurone" width="400"> </p>

Outil d'amplification cognitive pour analystes et enqueteurs

Un tableau blanc infini avec des capacites d'analyse de graphe.

Version License React TypeScript PWA i18n

Philosophie

  • L'humain reste aux commandes — Pas d'actions automatiques, Ni d'intelligence artificielle, suggestions uniquement sur demande
  • 100% local par defaut — IndexedDB + OPFS, fonctionne hors-ligne, les donnees ne partent jamais sans action explicite
  • Le visuel EST l'analyse — Position spatiale, couleurs, formes portent un sens defini par l'utilisateur
  • Zero ontologie imposee — Les utilisateurs creent leurs propres concepts, pas de types d'entites forces

Fonctionnalites

Canvas Interactif

  • Creation d'elements par double-clic
  • Liens entre elements par glisser-deposer
  • Multi-selection et manipulation groupee
  • Zoom et navigation fluides
  • Personnalisation visuelle (couleurs, formes, tailles, icones)
  • Groupes visuels imbriques
  • Annotations (post-its)
  • Onglets canvas : espaces thematiques par hypothese, type d'acteur, periode (max 10 par enquete)
  • Elements fantomes : elements d'autres onglets connectes a l'onglet courant affiches en transparence
  • Menu contextuel avec actions sur la selection et gestion des onglets
  • Minimap pour navigation rapide
  • Grille d'alignement magnetique

Gestion des Donnees

  • Elements : Noeuds du graphe (personnes, entreprises, lieux, concepts, documents...)
  • Liens : Relations entre elements avec metadonnees completes
  • Proprietes : Paires cle/valeur personnalisables
  • Tags : Organisation libre et filtrage
  • Pieces jointes : Images, PDF, documents avec extraction de texte (EXIF, metadonnees PDF/DOCX/XLSX)
  • Description Markdown : Support complet avec tables, liens d'ancrage, code, citations

Analyse de Graphe

  • Detection de communautes (Louvain)
  • Centralite (degre, intermediaire)
  • Identification des ponts entre clusters (Tarjan O(V+E))
  • Plus court chemin entre elements
  • Mode focus (voisinage a N niveaux)
  • Detection des noeuds isoles
  • Analyse de similarite des labels

Vues Multiples

  • Canvas : Vue graphe principale
  • Carte : Visualisation geographique (MapLibre GL JS) avec vue satellite
  • Timeline : Frise chronologique virtualisee (10k+ elements)

Collaboration Temps Reel

  • Synchronisation via WebSocket avec chiffrement E2E (AES-256-GCM)
  • Partage par lien avec cle dans le fragment URL (jamais envoyee au serveur)
  • Mode asynchrone : collaborateurs travaillent a des moments differents, donnees bufferisees 7 jours
  • Curseurs et selections des collaborateurs visibles
  • Synchronisation des pieces jointes
  • Synchronisation des onglets canvas (noms, membres, ordre — viewport local par utilisateur)
  • Detection de presence avec heartbeat
  • Sync incrementale optimisee
  • Room ID hashe (le serveur ne peut pas correler les sessions)

Export & Import

  • Export ZIP complet (JSON + assets)
  • Export PNG haute resolution (zoom/scale configurable)
  • Export SVG natif (vectoriel)
  • Export PDF du canvas
  • Export CSV (avec positions/groupes)
  • Export HTML interactif (rapport + graphe navigable, theme clair/sombre, TOC, stats)
  • Import CSV pour donnees tabulaires
  • Import GraphML / GEXF (Gephi) / Gephi Lite JSON pour donnees de graphes
  • Import Excalidraw
  • Import ANX (i2 Analyst's Notebook - XML) et ANB (i2 Analyst's Notebook - binaire)
  • Import STIX 2.1 (cyber threat intelligence)
  • Import OSINT Industries, Graph Palette, PredicaGraph, OSINTracker
  • Import GEDCOM 5.5.1/7.0 et GeneWeb pour donnees genealogiques (nom, dates, lieux, profession, surnom, titre, notes)
  • Import ZIP (restauration complete avec onglets)
  • Import dans dossier courante (merge avec placement visuel)
  • Panel Rapport (redaction Markdown avec references aux elements)
  • Generation de synthese (rapport automatique avec analyse du graphe)
  • Format JSON d'import documente (EN)

Layouts Automatiques

  • Force-directed (clusters)
  • Hierarchique (arbres, organigrammes)
  • Circulaire
  • Grille
  • Dispersion

Chiffrement at-rest

  • Chiffrement de toutes les donnees locales (IndexedDB + fichiers OPFS)
  • AES-256-GCM pour les fichiers, XSalsa20-Poly1305 pour les enregistrements
  • Architecture DEK/KEK avec derivation PBKDF2-SHA256 (600k iterations)
  • Verrouillage de session (Alt+L) sans fermer le navigateur
  • Export ZIP chiffre avec mot de passe optionnel
  • Mot de passe irrecuperable — aucune porte derobee
  • Documentation technique (EN)

PWA & Hors-ligne

  • Installation sur mobile et desktop
  • Fonctionne 100% hors-ligne
  • Cache intelligent des tuiles OpenStreetMap
  • Service Worker avec mise a jour automatique

Accessibilite (WCAG AA)

  • Labels ARIA sur tous les controles interactifs
  • Navigation complete au clavier
  • Focus trap dans les modals
  • Skip link pour acces rapide au contenu
  • Contraste suffisant

Internationalisation

11 langues supportees :

  • Francais (fr)
  • English (en)
  • Espanol (es)
  • Deutsch (de)
  • Catala (ca)
  • Euskara (eu)
  • Italiano (it)
  • Polski (pl)
  • Portugues (pt)
  • Ukrainska (ua)
  • Nederlands (nl)

Stack Technique

| Couche | Technologie | |--------|-------------| | Framework | React 19 + TypeScript + Vite | | Etat | Zustand | | Stockage | Dexie.js (IndexedDB) + OPFS | | Canvas | React Flow | | Carte | MapLibre GL JS | | Analyse | Graphology | | Recherche | MiniSearch | | Sync | Yjs + y-websocket + y-indexeddb | | Crypto collab | Web Crypto API (AES-256-GCM) | | Crypto at-rest | tweetnacl (XSalsa20-Poly1305) + Web Crypto (AES-256-GCM) | | PWA | vite-plugin-pwa | | Style | Tailwind CSS | | Tests E2E | Playwright |

Installation

# Cloner le repo
git clone https://github.com/votre-username/zeroneurone.git
cd zeroneurone

# Installer les dependances
npm install

# Lancer en developpement
npm run dev

L'application sera accessible sur http://localhost:5173

Utilisation

Raccourcis Clavier

| Action | Raccourci | |--------|-----------| | Recherche | Ctrl+K | | Copier | Ctrl+C | | Couper | Ctrl+X | | Coller | Ctrl+V | | Dupliquer | Ctrl+D | | Annuler | Ctrl+Z | | Retablir | Ctrl+Shift+Z | | Supprimer selection | Delete / Backspace | | Mode focus | F | | Nouvel element | E | | Nouveau groupe | G | | Nouvelle annotation | N | | Vue Canvas | 1 | | Vue Carte | 2 | | Vue Timeline | 3 |

Interactions Canvas

| Action | Resultat | |--------|----------| | Double-clic sur le canvas | Creer un element | | Glisser d'element a element | Creer un lien | | Glisser d'element vers le vide | Creer un nouvel element lie | | Clic droit | Menu contextuel | | Molette | Zoom | | Clic molette + glisser | Pan |

Collaboration

  1. Ouvrir une enquete
  2. Cliquer sur "Partager" dans la barre d'outils
  3. Configurer l'URL du serveur de signalisation (une seule fois)
  4. Activer le mode asynchrone si besoin (collaborateurs travaillant a des moments differents)
  5. Copier le lien de partage
  6. Les collaborateurs ouvrent le lien pour rejoindre

Important : En mode asynchrone, conservez le lien de partage. C'est le seul moyen de rejoindre la session et dechiffrer les donnees.

Voir la documentation pour les details.

Architecture

src/
├── components/
│   ├── canvas/          # Canvas et elements graphiques
│   ├── map/             # Vue carte (MapLibre GL JS)
│   ├── timeline/        # Vue chronologique
│   ├── panels/          # Panneaux lateraux
│   ├── collaboration/   # UI de collaboration
│   ├── modals/          # Dialogues modaux
│   └── common/          # Composants partages
├── stores/              # Stores Zustand
│   ├── dossierStore.ts   # Donnees (elements, liens, assets)
│   ├── selectionStore.ts       # Etat de selection
│   ├── viewStore.ts            # Viewport, filtres, mode d'affichage
│   ├── uiStore.ts              # Etat UI (modals, panels, toasts)
│   ├── syncStore.ts            # Etat de synchronisation
│   └── insightsStore.ts        # Cache d'analyse de graphe
├── db/
│   ├── database.ts             # Configuration Dexie
│   └── repositories/           # CRUD par entite
├── services/
│   ├── syncService.ts          # Gestion Y.Doc et providers
│   ├── cryptoService.ts        # Chiffrement E2E (collaboration)
│   ├── encryption/             # Chiffrement at-rest (DEK/KEK, middleware Dexie, OPFS)
│   ├── searchService.ts        # Integration MiniSearch
│   ├── insightsService.ts      # Analyse Graphology (Web Worker)
│   ├── fileService.ts          # Gestion OPFS
│   ├── importService.ts        # Import ZIP/CSV
│   └── exportService.ts        # Export ZIP/PNG/PDF
├── workers/                    # Web Workers (analyse, layout)
├── i18n/                       # Traductions (11 langues)
├── types/                      # Types TypeScript
└── utils/                      # Utilitaires

Stockage

  • Metadonnees (elements, liens, vues) : IndexedDB via Dexie
  • Fichiers binaires (assets) : OPFS avec deduplication SHA-256
  • Synchronisation : Y.Doc avec persistence IndexedDB locale
  • Chiffrement at-rest : Middleware Dexie (XSalsa20-Poly1305) + OPFS (AES-256-GCM), opt-in par mot de passe
  • Index de recherche : MiniSearch, reconstruit au chargement

Securite Collaboration

┌─────────────┐         ┌─────────────────┐         ┌─────────────┐
│  Client A   │◄───────►│ Serveur Signal  │◄───────►│  Client B   │
│             │  Donnees│   (y-websocket) │  Donnees│             │
│ Cle: xxxxx  │ chi
View on GitHub
GitHub Stars14
CategoryDevelopment
Updated1h ago
Forks1

Languages

TypeScript

Security Score

90/100

Audited on Apr 8, 2026

No findings