Basé sur les vraies données stream-json. Chaque assistant event contient un tableau content[]
avec text + tool_use. Aujourd'hui le pool filtre uniquement type=="text".
3 scenarios par variante : 3 edits / 12 edits / 80 tools (6 fichiers).
N turns séquentiels reçus line-by-line (NDJSON). On ne sait pas à l'avance combien de turns.
Chaque turn = 1 assistant event avec content[] pouvant contenir text + tool_use.
__init__
__anext__ — drain le prefetch :"
__anext__
send_and_read_stream :"
send_and_read_stream
⚑ Le pool actuel extrait uniquement les blocs type=="text" et appelle le callback Telegram.
Les blocs tool_use sont dans content[] mais filtrés et ignorés.
Référence pour s'inspirer. Même pattern de données, affichages très différents.
Tool label + fichier visible. Diff montré dans VS Code seulement (pas dans le terminal).
Diff search/replace en couleurs + confirmation "Applied edit" + auto-commit à chaque edit.
Diff rouge/vert inline dans l'éditeur. Accept/reject par ligne. "Apply" dans le chat.
Chaque variante sur 3 scénarios : Tab A = 3 edits | Tab B = 12 edits même fichier | Tab C = 80 tools, 6 fichiers + bash + reads.
text envoyés. Les tool_use ignorés silencieusement.__anext__ — drain le prefetch :⚠send_and_read_stream :⚠__init__ :⚠__anext__ :⚠send_and_read_stream :⚠_prefetch_intermediates :⚠cli_protocol.py :⚠__anext__ :send_and_read_stream :__init__ :__anext__ :__init__ :