Skip to content

[E7][FEATURE] DocAskTab — Reasoning intégré au workspace (sans graphe) #242

@pjmalandrino

Description

@pjmalandrino

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 LancerPOST /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

  • Question + config modèle → run → trace affichée dans le workspace
  • Vue document Markdown scrolle dynamiquement sur clic d'itération
  • Pas de dépendance Neo4j/graph dans DocAskTab
  • Empty state si aucune analyse disponible
  • Loader pendant le run, erreur si l'appel échoue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions