Contexte
L'onglet Ask est actuellement un placeholder. La page /reasoning existante contient déjà tout le workflow (question, config modèle, run, trace cliquable, vue document). Il s'agit d'adapter ce workflow au contexte workspace : le document est déjà chargé, pas besoin de picker, pas de mode graphe.
Ce qu'on garde du workflow Reasoning existant
- Zone Question + champ Modèle (optionnel, défaut serveur)
- Bouton Lancer →
POST /api/reasoning/run (même API)
- ReasoningPanel : affiche la trace une fois reçue (itérations, réponse, convergence)
- Clic sur une itération → scroll/highlight dans la vue document
Ce qu'on NE met PAS (différences avec /reasoning)
- ❌ Picker de document (le doc vient du workspace)
- ❌ Mode graphe Neo4j
- ❌ Import de trace JSON externe
- ❌ Bouton « Analyser le doc » (l'analyse est gérée dans Inspect)
Spécifications
DocAskTab.vue
- Props :
docId: string
- Layout : deux colonnes (ou panneau haut/bas sur mobile)
- Gauche/haut : vue document en mode Markdown (scroll dynamique)
- Droite/bas : zone question + config + résultat
- Chargement de
analysis.contentMarkdown pour la vue doc (même source qu'Inspect)
- Si aucune analyse disponible → message + lien vers Inspect/Studio
Interactions
Utilisateur tape une question → clique Lancer
→ spinner + désactivation du bouton
→ réponse reçue : afficher ReasoningPanel
→ clic sur itération → scroll vers la section correspondante dans la vue Markdown gauche
Composants réutilisés
ReasoningPanel.vue (affichage trace + itérations)
MarkdownViewer.vue (vue doc avec ancres de sections)
RunReasoningDialog.vue ou extraction inline de la logique de run
i18n
Réutiliser les clés reasoning.* existantes + ajouter ask.* pour le contexte workspace si besoin.
Acceptance criteria
Contexte
L'onglet Ask est actuellement un placeholder. La page
/reasoningexistante contient déjà tout le workflow (question, config modèle, run, trace cliquable, vue document). Il s'agit d'adapter ce workflow au contexte workspace : le document est déjà chargé, pas besoin de picker, pas de mode graphe.Ce qu'on garde du workflow Reasoning existant
POST /api/reasoning/run(même API)Ce qu'on NE met PAS (différences avec
/reasoning)Spécifications
DocAskTab.vuedocId: stringanalysis.contentMarkdownpour la vue doc (même source qu'Inspect)Interactions
Composants réutilisés
ReasoningPanel.vue(affichage trace + itérations)MarkdownViewer.vue(vue doc avec ancres de sections)RunReasoningDialog.vueou extraction inline de la logique de runi18n
Réutiliser les clés
reasoning.*existantes + ajouterask.*pour le contexte workspace si besoin.Acceptance criteria