2026-02-21 22:29:33 +00:00
#!/bin/bash
LOCAL_LLM_API = ${ LOCAL_LLM_API :- http : //host.docker.internal : 1248 /v1 }
Refactor devcontainer and MCP tools for containerized development
Ajout et configuration d’un environnement de développement conteneurisé (devcontainer) avec support multi-langages (Go, Rust, Python), intégration d’outils LLM locaux/cloud (LM Studio, Claude Pro), et refonte des outils MCP : suppression du module sandbox, correction de la gestion des chemins projet dans jj.py, ajout d’une fonction jj_new_tool, et structuration du Makefile pour le build multiplateforme. Mise à jour des scripts (docker-entrypoint.sh, setup-devcontainer.sh), du README.md et de bin/jj-ai-commit.sh pour automatiser la génération de messages de commit à partir des résumés des fichiers modifiés.
2026-03-11 16:34:09 +01:00
MODEL = " ${ LLM_MODEL :- qwen3 -coder } "
2026-02-21 22:29:33 +00:00
Refactor devcontainer and MCP tools for containerized development
Ajout et configuration d’un environnement de développement conteneurisé (devcontainer) avec support multi-langages (Go, Rust, Python), intégration d’outils LLM locaux/cloud (LM Studio, Claude Pro), et refonte des outils MCP : suppression du module sandbox, correction de la gestion des chemins projet dans jj.py, ajout d’une fonction jj_new_tool, et structuration du Makefile pour le build multiplateforme. Mise à jour des scripts (docker-entrypoint.sh, setup-devcontainer.sh), du README.md et de bin/jj-ai-commit.sh pour automatiser la génération de messages de commit à partir des résumés des fichiers modifiés.
2026-03-11 16:34:09 +01:00
llm_query( ) {
local content = " $1 "
jq -n --arg content " $content " --arg model " $MODEL " \
'{"model": $model, "messages": [{"role": "user", "content": $content}]}' \
| curl -s -X POST \
-H "Content-Type: application/json" \
-d @- \
" $LOCAL_LLM_API /chat/completions " \
| jq -r '.choices[0].message.content'
}
2026-02-21 22:29:33 +00:00
Refactor devcontainer and MCP tools for containerized development
Ajout et configuration d’un environnement de développement conteneurisé (devcontainer) avec support multi-langages (Go, Rust, Python), intégration d’outils LLM locaux/cloud (LM Studio, Claude Pro), et refonte des outils MCP : suppression du module sandbox, correction de la gestion des chemins projet dans jj.py, ajout d’une fonction jj_new_tool, et structuration du Makefile pour le build multiplateforme. Mise à jour des scripts (docker-entrypoint.sh, setup-devcontainer.sh), du README.md et de bin/jj-ai-commit.sh pour automatiser la génération de messages de commit à partir des résumés des fichiers modifiés.
2026-03-11 16:34:09 +01:00
# Get list of modified files
FILES = $( jj diff --summary | awk '{print $2}' )
2026-02-21 22:29:33 +00:00
Refactor devcontainer and MCP tools for containerized development
Ajout et configuration d’un environnement de développement conteneurisé (devcontainer) avec support multi-langages (Go, Rust, Python), intégration d’outils LLM locaux/cloud (LM Studio, Claude Pro), et refonte des outils MCP : suppression du module sandbox, correction de la gestion des chemins projet dans jj.py, ajout d’une fonction jj_new_tool, et structuration du Makefile pour le build multiplateforme. Mise à jour des scripts (docker-entrypoint.sh, setup-devcontainer.sh), du README.md et de bin/jj-ai-commit.sh pour automatiser la génération de messages de commit à partir des résumés des fichiers modifiés.
2026-03-11 16:34:09 +01:00
if [ [ -z " $FILES " ] ] ; then
echo "No changes to commit." >& 2
exit 1
fi
2026-02-21 22:29:33 +00:00
Refactor devcontainer and MCP tools for containerized development
Ajout et configuration d’un environnement de développement conteneurisé (devcontainer) avec support multi-langages (Go, Rust, Python), intégration d’outils LLM locaux/cloud (LM Studio, Claude Pro), et refonte des outils MCP : suppression du module sandbox, correction de la gestion des chemins projet dans jj.py, ajout d’une fonction jj_new_tool, et structuration du Makefile pour le build multiplateforme. Mise à jour des scripts (docker-entrypoint.sh, setup-devcontainer.sh), du README.md et de bin/jj-ai-commit.sh pour automatiser la génération de messages de commit à partir des résumés des fichiers modifiés.
2026-03-11 16:34:09 +01:00
# Pass 1: summarize each file diff individually
SUMMARIES = ""
while IFS = read -r file; do
FILE_DIFF = $( jj diff " $file " 2>/dev/null)
if [ [ -z " $FILE_DIFF " ] ] ; then
continue
fi
PROMPT = " Résume en 2-3 phrases les changements apportés dans ce diff pour le fichier ' $file '. Sois concis et factuel.
$FILE_DIFF "
SUMMARY = $( llm_query " $PROMPT " )
SUMMARIES = " ${ SUMMARIES } ### $file
$SUMMARY
"
done <<< " $FILES "
# Pass 2: generate commit message from summaries
COMMIT_PROMPT = " À partir des résumés suivants de fichiers modifiés, génère un message de commit git.
Réponds UNIQUEMENT avec un objet JSON valide contenant \" title\" ( string, max 72 chars, en anglais, style imperative) et \" message\" ( string, détails en français) . Pas de texte avant ou après le JSON.
$SUMMARIES "
llm_query " $COMMIT_PROMPT " | jq -r '.title + "\n\n" + .message'