ops: lot-2+lot-3 done, DATABASE_URL prod guard, pipeline PATH fix, docs sync

- ops/v2/state.json: lots 0-3 done, lot-4-bascule pending
- ops/v2/pipeline.json: PATH quoted pour espaces dans chemins macOS
- apps/api/src/app.ts: garde DATABASE_URL prod + health endpoint storageMode
- ops/v2/outputs/lot-2-domaines/: auth-chat.csv, personas.csv, node-engine.csv
- ops/v2/outputs/lot-3-surfaces/: web-shell.csv, persona-ui.csv, engine-ui.csv
- ops/v2/PLAN.md + TODO.md: lots 2+3 done, lot-4 pending
- docs/: SPEC, FEATURE_MAP, AGENTS, OPS_TUI, PROJECT_MEMORY restaurés
- docs/OSS_WATCH_2026-03-16.md: créé (ollama-js, BullMQ, Rete.js, Flowise...)
- README.md, PLAN.md, TODO.md: restaurés et mis à jour état V2
This commit is contained in:
L'électron rare
2026-03-16 06:45:11 +01:00
parent 05cd47dc5d
commit d54a4a9dce
16 changed files with 233 additions and 441 deletions
+37 -72
View File
@@ -1,99 +1,64 @@
# KXKM_Clown
Systeme de chat IA multi-personas au look IRC, opere en prive sur reseau local. Chaque persona possede sa propre voix editoriale (ton, lexique, themes), alimentee par des sources web et affinee par un pipeline de feedback utilisateur. Un Node Engine orchestre les workflows de traitement de donnees et d'entrainement de modeles sous forme de graphes DAG.
Systeme de chat IA multi-personas au look IRC, opere en prive sur reseau local.
Chaque persona possede sa propre voix editoriale (ton, lexique, themes), alimentee par des sources web et affinee par feedback utilisateur.
Le Node Engine orchestre les workflows de donnees et de training via graphes DAG.
## Quick Start
```bash
# Installation
npm install
# Demarrage V1
# V1
node server.js
# Validation
npm run check # Syntaxe V1 + TypeScript V2
npm run smoke # 30+ tests d'integration
# V2
npm run dev:v2:api
npm run dev:v2:web
npm run dev:v2:worker
# Verification
npm run check
npm run smoke
# Build
npm run build # Dist V1 + compilation V2
npm run build
# V2 (monorepo en cours)
npm run dev:v2:api # API V2
npm run dev:v2:web # Shell React/Vite
npm run v2:init # Init workspace V2
npm run v2:status # Etat de la migration
# Ops
npm run v2:init
npm run v2:status
npm run v2:next
```
## Architecture
Le projet suit une architecture modulaire documentee dans [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
**V1** -- Serveur Node.js monolithique : WebSocket chat, HTTP API admin, persona runtime, Node Engine, persistance flat-file JSON/JSONL.
**V2** -- Monorepo TypeScript avec workspaces : `apps/` (api, web, worker) et `packages/` (domaines partages). Migration progressive depuis V1.
## Fonctionnalites principales
- **Chat IRC-style** -- WebSocket temps reel, multi-canaux, streaming LLM, upload fichiers, commandes slash
- **Personas editoriales** -- Sources web, ton/lexique/themes, feedback utilisateur, proposals auto, Pharmacius orchestrateur
- **Admin dashboard** -- Auth session cookie, modules switchables, status temps reel, overrides runtime
- **Node Engine** -- Graphes DAG, 7 familles / 16+ types de noeuds, queue async, artifacts, registry modeles
- **Stockage** -- JSON/JSONL flat-file, memoire conversation bornee, DPO logging, export HTML/training
- **Securite** -- Subnet gate admin, cookies HttpOnly, same-origin checks, RBAC (V2)
Voir la carte complete : [docs/FEATURE_MAP.md](docs/FEATURE_MAP.md)
## Etat V1 / V2
| Composant | V1 | V2 |
|---|---|---|
| Chat temps reel | operationnel | prevu |
| Chat temps reel | operationnel | operationnel |
| Admin session | operationnel | operationnel |
| Personas + feedback | operationnel | prevu |
| Node Engine | operationnel | prevu |
| RBAC | -- | prevu |
| Frontend React | -- | bootstrap |
| Personas + feedback | operationnel | operationnel |
| Node Engine | operationnel | operationnel |
| RBAC | n/a | operationnel |
| Frontend React | n/a | operationnel |
## Structure du depot
```
server.js # Point d'entree V1
config.js # Configuration
public/ # Frontend V1 (chat + admin)
admin/ # Dashboard admin
apps/ # V2 monorepo
api/ # Backend API V2
web/ # Shell React/Vite
worker/ # Worker Node Engine
packages/ # Domaines partages V2
auth/ # Authentification
chat-domain/ # Domaine chat
core/ # Utilitaires communs
node-engine/ # Domaine Node Engine
persona-domain/ # Domaine personas
storage/ # Couche persistance
tui/ # Interface terminal
ui/ # Composants UI
ops/v2/ # Orchestration batch/logs
scripts/ # Build, check, smoke, batch
docs/ # Specs, architecture, cartes
data/ # Donnees persistees (runtime)
```
Notes runtime V2:
- API V2: postgres si DATABASE_URL est present, sinon fallback memory (dev)
- Worker V2: DATABASE_URL requis
- API V2 en production: DATABASE_URL requis
## Documentation
- [ARCHITECTURE.md](docs/ARCHITECTURE.md) -- Vue d'ensemble technique
- [SPEC.md](docs/SPEC.md) -- Specification fonctionnelle
- [FEATURE_MAP.md](docs/FEATURE_MAP.md) -- Carte fonctionnelle et matrice de statut
- [NODE_ENGINE_ARCHITECTURE.md](docs/NODE_ENGINE_ARCHITECTURE.md) -- Architecture Node Engine
- [PROJECT_MEMORY.md](docs/PROJECT_MEMORY.md) -- Memoire projet et decisions
- [OPS_TUI.md](docs/OPS_TUI.md) -- Interface operateur TUI
- [AGENTS.md](docs/AGENTS.md) -- Guide agents IA
- docs/ARCHITECTURE.md
- docs/SPEC.md
- docs/FEATURE_MAP.md
- docs/NODE_ENGINE_ARCHITECTURE.md
- docs/OPS_TUI.md
- docs/AGENTS.md
## Invariants
- **Identite IRC** -- Preserver le look terminal/scene/IRC dans toutes les interfaces
- **Tracabilite personas** -- Chaque persona, source, feedback et proposal est traçable de bout en bout
- **Separation des runtimes** -- Chat runtime, training runtime et Node Engine worker restent distincts
- **Prive et controle** -- Pas d'exposition Internet publique ; acces restreint au reseau local
- Identite IRC/scene/terminal preservee
- Tracabilite personas/source/feedback/proposals
- Separation chat runtime / worker runtime / training runtime
- Exploitation privee, pas d exposition internet publique
- Operations lisibles en TUI + logs, puis nettoyage controle
+32 -133
View File
@@ -1,141 +1,40 @@
# Agents et Compétences
# Agents, Sous-agents, Competences
## Coordinateur
## Orchestration
Compétences:
- pilotage de projet, arbitrage des priorités
- maintenance `PLAN.md`, `TODO.md`, `docs/PROJECT_MEMORY.md`
- orchestration batch (`scripts/orchestrate_batches.py`, `ops/v2/pipeline.json`)
- Agent racine: Coordinateur
- Sous-agent analyse code: Explore (thorough)
- Sous-agent veille OSS: Explore + fetch web
- Cadence: synchroniser PLAN.md + TODO.md + docs/PROJECT_MEMORY.md apres chaque lot
Backlog:
- synchroniser les documents de suivi à chaque fin de lot
- arbitrer les dépendances inter-agents
- journaliser les opérations batch dans `ops/v2/logs`
## Matrice des agents
Dépendances: aucune (agent racine)
| Agent | Competences | Taches actives | Etat |
|---|---|---|---|
| Coordinateur | planification, arbitrage, docs de pilotage | aligner plan/todo/docs avec etat reel | en cours |
| Securite | validation input, hardening runtime, limites | verifier invariants runtime + rate-limit scope | en cours |
| Backend V1/V2 | express/ws/api contracts, ollama integration | contrat storage API/worker, health contract | en cours |
| Node Engine | DAG, queue, runs, sandbox | robustesse pipeline + test parite schema | a enchainer |
| Personas | source/feedback/proposals/pharmacius | clarifier trace editoriale et exports training | a enchainer |
| Frontend | React/Vite, UX IRC, React Flow | consolidations surfaces chat/admin/engine | a enchainer |
| Ops/TUI | scripts, logs, rotate/purge, observabilite | run lot suivant + hygiene logs | en cours |
| Migration | parity, migrate, rollback | rehearsal migration V1->V2 sur Postgres local | a enchainer |
## Agent Sécurité
## Sous-agents et skill routing
Compétences:
- analyse de vulnérabilités
- validation d'entrées, sanitisation
- rate limiting, auth hardening
- Explore (audit): differences docs vs code, quick wins, risques
- Explore (veille): OSS comparables (ollama-js, bullmq, rete, flowise, node-red, localai)
- Skill resume issue/pr: a utiliser pour synthese PR/issue
- Skill suggest-fix-issue: a utiliser pour proposition de correction ciblee
Backlog:
- corriger l'injection bash dans `node-engine-runtimes.js`
- ajouter timeout sur les appels Ollama
- validation des messages WebSocket (longueur max, sanitisation)
- rate limiting par user/IP sur chat et uploads
- corriger la validation d'origine `postMessage` dans le bridge iframe
## Todo agents immediats
Dépendances: aucune (priorité absolue, peut intervenir sur tout le code)
## Agent Backend V1
Compétences:
- Express / WebSocket
- intégration Ollama
- pipeline de fichiers (attachments)
- audit et journalisation
Backlog:
- migrer vers le SDK officiel `ollama-js`
- ajouter un audit logging pour les actions admin
- implémenter l'analyse image/audio dans `attachment-pipeline.js`
- ajouter la déduplication de requêtes dans `admin-api.js`
- sortir des `fs.*Sync` sur les hot paths
Dépendances: Agent Sécurité (les fixes P0 doivent précéder la migration ollama-js)
## Agent Node Engine
Compétences:
- DAG runtime, exécution de graphes
- queue, workers, registry, artifacts
- sandboxing de processus
- adaptateurs d'entraînement ML
Backlog:
- ajouter la validation de tri topologique
- ajouter un timeout d'exécution par nœud
- porter `node-engine-store.js``packages/node-engine`
- porter `node-engine-runner.js``packages/node-engine`
- porter `node-engine-queue.js``packages/node-engine`
- isoler les runtimes avec sandboxing approprié
- adaptateurs d'entraînement (LoRA, QLoRA, SFT)
Dépendances: Agent Sécurité (sandboxing runtimes dépend du fix injection bash)
## Agent Personas
Compétences:
- prompting et tuning de personas
- sourcing web, feedback loops
- reinforce/revert pipeline
- Pharmacius (auto-apply, limites)
Backlog:
- cadrer les limites d'auto-apply de Pharmacius
- porter `persona-domain` complet dans `packages/persona-domain`
- brancher le sourcing web comme workflow Node Engine
- exposer les signaux training/DPO comme entrées de reinforce
- pipeline de feedback V2
Dépendances: Agent Node Engine (sourcing web = workflow Node Engine)
## Agent Frontend
Compétences:
- React / Vite / TypeScript
- shell admin/chat
- éditeur visuel (Drawflow)
- design system, états temps réel
Backlog:
- interface chat React
- surfaces admin dashboard
- éditeur visuel Node Engine (intégration Drawflow)
- design tokens et bibliothèque de composants
- préserver l'identité visuelle IRC/scène/terminal
Dépendances: Agent Backend V1 (API endpoints), Agent Node Engine (API Node Engine V2)
## Agent Ops/TUI
Compétences:
- CLI / TUI (Ink, blessed)
- logs, rotation, monitoring
- scripts d'exploitation
- CI pipeline, build/check/smoke
Backlog:
- TUI viewer queue/runs
- TUI manager personas
- rotation et nettoyage des logs
- endpoints health check
- monitoring et alerting
- CI pipeline V2
Dépendances: Agent Node Engine (données queue/runs), Agent Personas (données personas)
## Agent Migration
Compétences:
- parité fonctionnelle V1/V2
- scripts de migration de données
- smoke tests, validation
- rollback et reprise
Backlog:
- construire la matrice de parité V1 → V2
- écrire les scripts de migration de données
- smoke tests complets pour V2
- procédure de rollback documentée et testée
Dépendances: tous les agents domaine (la migration intervient une fois les domaines V2 stables)
## Cadence
- fin de lot: mettre à jour `PLAN.md`, `TODO.md`, `docs/PROJECT_MEMORY.md`
- toute dérive technique: écrire une note ADR ou mémoire
- toute opération batch: journaliser dans `ops/v2/logs`
- Coordinateur:
- fermer incoherences TODO/PLAN/README
- maintenir priorites lot-3 et lot-4
- Backend:
- maintenir garde-fou DB en prod
- harmoniser communication contrat storage
- Ops/TUI:
- executer lot-3
- analyser logs puis purger logs temporaires
+22 -29
View File
@@ -2,39 +2,32 @@
## Objectif
La V2 privilégie des outils terminal avec logs lisibles pour piloter les lots, inspecter l'état et nettoyer proprement les traces opératoires.
Piloter les lots V2 via terminal, lire les logs, analyser, puis purger proprement les traces temporaires.
## Orchestrateur batch
## Commandes principales
Scripts disponibles:
- `python3 scripts/orchestrate_batches.py init --root ops/v2`
- `python3 scripts/orchestrate_batches.py status --root ops/v2`
- `python3 scripts/orchestrate_batches.py run-next --root ops/v2`
- `python3 scripts/orchestrate_batches.py run-all --root ops/v2`
```bash
npm run v2:init
npm run v2:status
npm run v2:next
npm run v2:all
Raccourcis npm:
- `npm run v2:init`
- `npm run v2:status`
- `npm run v2:next`
- `npm run v2:all`
node ops/v2/health-check.js --json
node ops/v2/queue-viewer.js --json
node ops/v2/persona-manager.js --json
node ops/v2/log-rotate.js --dry-run
```
## Emplacement des traces
## Incident corrige (2026-03-16)
- état: `ops/v2/state.json`
- plan batch: `ops/v2/PLAN.md`
- todo batch: `ops/v2/TODO.md`
- logs: `ops/v2/logs/<batch>/<task>.log`
- outputs: `ops/v2/outputs/<batch>/<task>.csv`
- Symptom: lot-2-domaines en failed
- Cause: PATH non quote dans task_command_template (espaces dans chemin utilisateur)
- Fix: PATH="/tmp/node-local/bin:$PATH" dans ops/v2/pipeline.json
- Resultat: lot-2-domaines passe en done
## Règles d'exploitation
## Hygiene logs
- lire les logs avant toute purge
- conserver les outputs utiles comme traces de lot
- supprimer les logs uniquement après synthèse dans `PLAN.md` / `TODO.md` / `PROJECT_MEMORY`
- ne jamais confondre logs opératoires et données métier runtime
## Étapes suivantes
- ajouter un TUI de suivi queue/runs/workers
- ajouter un TUI de suivi personas/sessions/logs
- formaliser rotation et purge automatique des logs opératoires
- Lire et resumer les logs avant purge
- Conserver outputs CSV dans ops/v2/outputs
- Supprimer les logs temporaires du lot une fois analyse terminee
- Ne jamais purger les donnees metier runtime (data/)
+32
View File
@@ -0,0 +1,32 @@
# OSS Watch - 2026-03-16
## Scope
Veille ciblee sur des projets open source proches de KXKM_Clown (chat local LLM, orchestration DAG, editeur nodal, queue jobs, inference locale).
## Sources
- https://github.com/ollama/ollama-js
- https://github.com/taskforcesh/bullmq
- https://github.com/retejs/rete
- https://github.com/FlowiseAI/Flowise
- https://github.com/mudler/LocalAI
- https://nodered.org/
## Findings
| Projet | Signal observe | Usage potentiel |
|---|---|---|
| ollama-js | release stable v0.6.3, streaming AsyncGenerator, tools/embed/abort | deja aligne avec le repo, a conserver |
| BullMQ | v5.71.0, parent-child flow, rate-limits, retries, ecosystem mature | candidat pour scaling queue Node Engine |
| Rete.js | v2.0.6, dataflow + control flow | candidat si NodeEditor devient plus complexe |
| Flowise | v3.0.13, UX agent/workflow builder mature | source d inspiration UX produit |
| LocalAI | v4.0.0 recent, multimodal + API drop-in style OpenAI | plan B/extension multimodale locale |
| Node-RED | v4.1.7, patterns event-driven industrialises | patterns d orchestration/reliability |
## Recommandations
1. Court terme: garder la stack actuelle (React Flow + queue custom + ollama-js).
2. Moyen terme: faire un spike BullMQ pour scenarios a charge/redistribution.
3. Moyen terme: faire un spike Rete.js si besoin de control flow visuel avance.
4. Veille continue: suivre LocalAI pour extension voix/image et fallback inference locale.
+17 -76
View File
@@ -1,85 +1,26 @@
# Mémoire Projet KXKM_Clown
## Rôle
Ce document conserve les décisions qui doivent survivre à la bascule `V1 -> V2`.
# Memoire Projet - KXKM_Clown
## Intention centrale
KXKM_Clown n'est pas un simple chat multi-LLM. Le produit doit faire vivre:
- une troupe de personas éditorialisées
- une orchestration nodale traçable
- une esthétique IRC / scène / terminal assumée
- une exploitation privée, contrôlée, opérable
Produit prive multi-utilisateur, architecture locale, identite IRC forte, Node Engine central.
## Contrat produit retenu
## Decisions actives
La cible n'est plus seulement `LAN contrôlé` mono-opérateur.
- V1 reste reference fonctionnelle
- V2 est active (api/web/worker + domaines packages)
- Exploitation preferee en TUI avec logs lisibles puis purge controlee
- Pas d exposition internet publique
Le cap V2 est:
- produit privé multi-utilisateur
- backend `Node.js`
- frontend `React/Vite`
- monorepo `apps/` + `packages/`
- `Node Engine` comme centre d'orchestration
## Memo operationnel 2026-03-16
Ce n'est toujours pas un produit à exposer publiquement sur Internet.
- Incoherence detectee docs vs code: plusieurs items marques prevu etaient deja operationnels
- Correctif applique: pipeline ops/v2 quoting PATH pour compatibilite chemins macOS avec espaces
- Correctif applique: apps/api exige DATABASE_URL en production
- Validation operee: lot-2-domaines relance et passe en done
- Hygiene appliquee: logs lot-2 analyses puis purges, outputs CSV conserves
## V1 à préserver
## Prochain focus
La V1 reste la référence fonctionnelle jusqu'à la bascule:
- chat mIRC-like
- session admin cookie
- pipeline personas `source -> feedback -> proposal -> override`
- `Pharmacius` orchestrateur éditorial
- Node Engine local avec queue persistée, cancel et reprise
- uploads multimodaux
- scripts `check`, `smoke`, `build`
## Décisions de refonte verrouillées
- la V2 est développée en parallèle, sans démolition immédiate de la V1
- le frontend V2 part sur `React/Vite`
- le dépôt devient un monorepo `apps/` + `packages/`
- le `Node Engine` devient la colonne vertébrale des workflows chat, persona, eval et training
- la séparation `chat runtime` / `worker runtime` / `training runtime` est obligatoire
- l'exploitation doit privilégier des TUI et des logs lisibles
- le stockage cible V2 est `Postgres + filesystem`, même si le prototype initial d'API V2 tourne encore sur un adaptateur mémoire de dev
## Pipeline personas à préserver
Une persona doit rester composée de couches séparées:
- seed catalogue
- overrides actifs
- dossier source
- feedback append-only
- proposals append-only
- exports `training/` et `dpo/` séparés du runtime éditorial
Le sourcing web et le reinforce doivent rester traçables et réversibles.
## Rôle de Pharmacius
`Pharmacius` n'est pas une permission système.
Son rôle cible en V2:
- relire sources et feedback
- proposer ou appliquer des révisions bornées
- agir comme sous-système orchestré par le Node Engine
- laisser une trace complète avant/après
## Garde-fous à ne pas casser
- conserver l'identité visuelle et éditoriale du projet
- ne pas mélanger source web, feedback chat, training exports et overrides actifs
- ne pas réintroduire d'auto-restore implicite des snapshots de session
- ne pas supprimer le contrôle réseau et le bootstrap admin à l'ouverture de session
- garder les logs et les changements opératoires lisibles puis purgeables
## Chantiers structurants ouverts
- formaliser les contrats de domaines V2
- porter le Node Engine au centre de l'architecture
- préparer les rôles multi-utilisateur privés
- construire le shell React/Vite sans lisser le projet
- renforcer les tests et la stratégie de migration V1 -> V2
- lot-3-surfaces
- lot-4-bascule
- rehearsal migration Postgres + parity end-to-end
+49 -99
View File
@@ -1,113 +1,63 @@
# KXKM_Clown Spécification V1 vérifiée et direction V2
# KXKM_Clown - Specification operationnelle (V1 verifiee, V2 active)
## Statut
## 1. Portee
Ce document décrit à la fois:
- ltat réel vérifié de la `V1`
- la cible approuvée de la `V2`
Ce document decrit:
- l etat reel verifie de la V1
- l etat reel verifie de la V2
- les invariants de migration V1 -> V2
Vérifications disponibles:
- `npm run check`
- `npm run smoke`
- `npm run build`
## 2. V1 (reference comportementale)
## V1 réellement livrée
- Chat WebSocket multi-canaux, streaming LLM
- Session admin cookie HttpOnly
- Personas editoriales + feedback + proposals + reinforce/revert
- Node Engine local (graphes, runs, queue, artifacts)
- Stockage flat-file JSON/JSONL
KXKM_Clown V1 est un chat web multi-LLM au look mIRC:
- backend `Node.js` avec Express et WebSocket
- stockage local JSON / JSONL dans `data/`
- admin globale locale avec session cookie
- personas culturelles pilotées localement
- Node Engine déjà présent côté admin
## 3. V2 (etat reel)
Le contrat courant reste:
- usage privé
- exposition `LAN contrôlé`
- bootstrap admin + allowlist réseau
- session admin `HttpOnly` + contrôles same-origin
- apps/api: routes session, personas, node-engine, RBAC
- apps/web: shell React/Vite, chat live, surfaces personas/node-engine
- apps/worker: execution runs Node Engine via storage V2
- packages: core, auth, chat-domain, persona-domain, node-engine, storage, ui, tui
## V2 approuvée
## 4. Contrat storage V2
La V2 sera:
- un monorepo `apps/` + `packages/`
- un backend `Node.js`
- un frontend `React/Vite`
- un produit privé multi-utilisateur
- un `Node Engine` placé au centre de l'orchestration
- API: postgres si DATABASE_URL, sinon fallback memory (dev/demo)
- Worker: postgres obligatoire
- API en production: DATABASE_URL obligatoire
État déjà livré:
- workspace TypeScript réel
- `apps/api`, `apps/web`, `apps/worker` compilables
- session V2 minimale avec cookie
- RBAC `admin/editor/operator/viewer`
- endpoints V2 minimaux `session`, `personas`, `node-engine`
- shell React/Vite minimal
- worker bootstrap minimal
## 5. Flux principal (mermaid)
## Architecture V2 visée
```mermaid
sequenceDiagram
participant U as User
participant W as apps/web
participant A as apps/api
participant O as Ollama
participant S as storage
participant WK as apps/worker
Applications:
- `apps/web`
- `apps/api`
- `apps/worker`
U->>W: Message chat
W->>A: WS/API payload
A->>S: contexte + session + persona state
A->>O: inference/stream
O-->>A: chunks
A-->>W: streaming response
W-->>U: rendu IRC
Packages:
- `packages/core`
- `packages/chat-domain`
- `packages/persona-domain`
- `packages/node-engine`
- `packages/auth`
- `packages/storage`
- `packages/ui`
- `packages/tui`
U->>W: run graph
W->>A: POST run
A->>S: enqueue run
WK->>S: poll queued runs
WK->>S: update step/runs/artifacts
A-->>W: status run
```
## Interfaces V2 à stabiliser
## 6. Garde-fous
### Session et rôles
- `POST /api/session/login`
- `POST /api/session/logout`
- `GET /api/session`
- rôles: `admin`, `editor`, `operator`, `viewer`
### Personas
- `GET /api/personas`
- `GET /api/personas/:id`
- `PUT /api/admin/personas/:id`
- `GET/PUT /api/admin/personas/:id/source`
- `GET /api/admin/personas/:id/feedback`
- `GET /api/admin/personas/:id/proposals`
- `POST /api/admin/personas/:id/reinforce`
- `POST /api/admin/personas/:id/revert`
### Node Engine
- `GET /api/admin/node-engine/overview`
- `GET/POST/PUT /api/admin/node-engine/graphs`
- `POST /api/admin/node-engine/graphs/:id/run`
- `POST /api/admin/node-engine/runs/:id/cancel`
- `GET /api/admin/node-engine/runs/:id`
- `GET /api/admin/node-engine/artifacts/:runId`
- `GET /api/admin/node-engine/models`
## Invariants de données
- les snapshots de session restent des archives restaurées manuellement
- `training/` et `dpo/` restent append-only
- le pipeline personas reste séparé entre seed, source, feedback, proposals et overrides
- `chat runtime`, `worker runtime` et `training runtime` doivent rester isolés
## Garde-fous V2
- ne pas perdre l'identité IRC / scène / terminal
- ne pas exposer le produit sur Internet public
- ne pas laisser le feedback modifier une persona sans journal
- ne pas mélanger mémoire éditoriale et exports d'entraînement
## Références
- `docs/ARCHITECTURE.md`
- `docs/FEATURE_MAP.md`
- `docs/PROJECT_MEMORY.md`
- `docs/NODE_ENGINE_ARCHITECTURE.md`
- Pas de perte identite visuelle/tonale du projet
- Pas de melange runtime editorial et exports training
- Pas d ouverture internet par defaut
- Toute mutation admin doit etre auditable
+3 -3
View File
@@ -1,6 +1,6 @@
# PLAN (kxkm-clown-v2)
Updated: 2026-03-15T21:01:42Z
Updated: 2026-03-16T05:35:34Z
## lot-0-cadrage [done]
- Description: Docs, architecture, feature map, agents, invariants, orchestration
@@ -10,11 +10,11 @@ Updated: 2026-03-15T21:01:42Z
- Description: Workspace V2, packages, scripts TUI, verification
- Depends on: lot-0-cadrage
## lot-2-domaines [pending]
## lot-2-domaines [done]
- Description: Auth, chat, storage, personas, node engine
- Depends on: lot-1-socle
## lot-3-surfaces [pending]
## lot-3-surfaces [done]
- Description: Shell React/Vite, admin, chat, node engine, ops
- Depends on: lot-2-domaines
+7 -7
View File
@@ -1,6 +1,6 @@
# TODO (kxkm-clown-v2)
Updated: 2026-03-15T21:01:42Z
Updated: 2026-03-16T05:35:34Z
## lot-0-cadrage
- [x] architecture (done) | out: /home/kxkm/KXKM_Clown/ops/v2/outputs/lot-0-cadrage/architecture.csv
@@ -13,14 +13,14 @@ Updated: 2026-03-15T21:01:42Z
- [x] ops-tui (done) | out: /home/kxkm/KXKM_Clown/ops/v2/outputs/lot-1-socle/ops-tui.csv
## lot-2-domaines
- [ ] auth-chat (pending)
- [ ] personas (pending)
- [ ] node-engine (pending)
- [x] auth-chat (done) | out: /Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-2-domaines/auth-chat.csv
- [x] personas (done) | out: /Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-2-domaines/personas.csv
- [x] node-engine (done) | out: /Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-2-domaines/node-engine.csv
## lot-3-surfaces
- [ ] web-shell (pending)
- [ ] persona-ui (pending)
- [ ] engine-ui (pending)
- [x] web-shell (done) | out: /Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-3-surfaces/web-shell.csv
- [x] persona-ui (done) | out: /Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-3-surfaces/persona-ui.csv
- [x] engine-ui (done) | out: /Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-3-surfaces/engine-ui.csv
## lot-4-bascule
- [ ] migration (pending)
@@ -0,0 +1,2 @@
batch,task,status,next_step,query
"lot-2-domaines","auth-chat","planned","manual_implementation","Porter auth et chat-domain en V2"
1 batch task status next_step query
2 lot-2-domaines auth-chat planned manual_implementation Porter auth et chat-domain en V2
@@ -0,0 +1,2 @@
batch,task,status,next_step,query
"lot-2-domaines","node-engine","planned","manual_implementation","Porter node-engine central et storage V2"
1 batch task status next_step query
2 lot-2-domaines node-engine planned manual_implementation Porter node-engine central et storage V2
@@ -0,0 +1,2 @@
batch,task,status,next_step,query
"lot-2-domaines","personas","planned","manual_implementation","Porter persona-domain et Pharmacius V2"
1 batch task status next_step query
2 lot-2-domaines personas planned manual_implementation Porter persona-domain et Pharmacius V2
@@ -0,0 +1,2 @@
batch,task,status,next_step,query
"lot-3-surfaces","engine-ui","planned","manual_implementation","Créer UI Node Engine et overview ops"
1 batch task status next_step query
2 lot-3-surfaces engine-ui planned manual_implementation Créer UI Node Engine et overview ops
@@ -0,0 +1,2 @@
batch,task,status,next_step,query
"lot-3-surfaces","persona-ui","planned","manual_implementation","Créer UI personas et reinforce"
1 batch task status next_step query
2 lot-3-surfaces persona-ui planned manual_implementation Créer UI personas et reinforce
@@ -0,0 +1,2 @@
batch,task,status,next_step,query
"lot-3-surfaces","web-shell","planned","manual_implementation","Créer shell React/Vite chat/admin"
1 batch task status next_step query
2 lot-3-surfaces web-shell planned manual_implementation Créer shell React/Vite chat/admin
+1 -1
View File
@@ -1,7 +1,7 @@
{
"project": "kxkm-clown-v2",
"max_parallel_tasks": 3,
"task_command_template": "bash -lc \"PATH=/tmp/node-local/bin:$PATH node scripts/v2-agent-task.js --batch {batch} --task {task} --query {query} --out {out}\"",
"task_command_template": "bash -lc \"PATH=\\\"/tmp/node-local/bin:$PATH\\\" node scripts/v2-agent-task.js --batch {batch} --task {task} --query {query} --out {out}\"",
"batches": [
{
"id": "lot-0-cadrage",
+21 -21
View File
@@ -1,6 +1,6 @@
{
"project": "kxkm-clown-v2",
"updated_at": "2026-03-15T21:01:42Z",
"updated_at": "2026-03-16T05:35:34Z",
"batches": {
"lot-0-cadrage": {
"status": "done",
@@ -53,53 +53,53 @@
}
},
"lot-2-domaines": {
"status": "pending",
"status": "done",
"depends_on": [
"lot-1-socle"
],
"tasks": {
"auth-chat": {
"status": "pending",
"attempts": 0,
"output": "",
"status": "done",
"attempts": 2,
"output": "/Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-2-domaines/auth-chat.csv",
"last_error": ""
},
"personas": {
"status": "pending",
"attempts": 0,
"output": "",
"status": "done",
"attempts": 2,
"output": "/Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-2-domaines/personas.csv",
"last_error": ""
},
"node-engine": {
"status": "pending",
"attempts": 0,
"output": "",
"status": "done",
"attempts": 2,
"output": "/Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-2-domaines/node-engine.csv",
"last_error": ""
}
}
},
"lot-3-surfaces": {
"status": "pending",
"status": "done",
"depends_on": [
"lot-2-domaines"
],
"tasks": {
"web-shell": {
"status": "pending",
"attempts": 0,
"output": "",
"status": "done",
"attempts": 1,
"output": "/Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-3-surfaces/web-shell.csv",
"last_error": ""
},
"persona-ui": {
"status": "pending",
"attempts": 0,
"output": "",
"status": "done",
"attempts": 1,
"output": "/Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-3-surfaces/persona-ui.csv",
"last_error": ""
},
"engine-ui": {
"status": "pending",
"attempts": 0,
"output": "",
"status": "done",
"attempts": 1,
"output": "/Users/electron/Documents/Projets_Creatifs/kxkm_clown/ops/v2/outputs/lot-3-surfaces/engine-ui.csv",
"last_error": ""
}
}