Python 64.6%
TypeScript 33.7%
CSS 0.8%
1import type { ToolCallView } from '@/lib/types';2import { PythonExecCard } from './python-exec-card';3import { ExcelCard } from './excel-card';4import { WebSearchCard } from './web-search-card';5import { CourseSourceCard } from './course-source-card';6import { QuizCard } from './quiz-card';7import { FileAnalysisCard } from './file-analysis-card';8import { FinancialCalcCard } from './financial-calc-card';9import { AppraisalCalcCard } from './appraisal-calc-card';10import { UnitConvertCard } from './unit-convert-card';11import { ChartCard } from './chart-card';12import { DocxCard } from './docx-card';1314export function ToolCard({ call, conversationId }: { call: ToolCallView; conversationId: string }) {15 if (call.status === 'error') {16 return (17 <div className="text-sm">18 <p className="text-semantic-error font-medium">Cet appel a échoué.</p>19 <p className="text-neutral-muted mt-1 whitespace-pre-wrap">{call.summary || "Le tuteur a été informé et a corrigé le tir à l'étape suivante."}</p>20 {call.args_preview && <pre className="mt-2 rounded-lg bg-neutral-surface p-2 text-[11px] overflow-x-auto scroll-thin">{call.args_preview}</pre>}21 </div>22 );23 }24 switch (call.name) {25 case 'execute_python':26 return <PythonExecCard call={call} conversationId={conversationId} />;27 case 'create_excel':28 case 'edit_excel':29 case 'inspect_excel':30 return <ExcelCard call={call} />;31 case 'web_search':32 return <WebSearchCard call={call} />;33 case 'search_course_content':34 return <CourseSourceCard call={call} />;35 case 'generate_quiz':36 return <QuizCard call={call} />;37 case 'analyze_file':38 return <FileAnalysisCard call={call} />;39 case 'financial_calc':40 return <FinancialCalcCard call={call} />;41 case 'appraisal_calc':42 return <AppraisalCalcCard call={call} />;43 case 'unit_convert':44 return <UnitConvertCard call={call} />;45 case 'make_chart':46 return <ChartCard call={call} />;47 case 'create_docx':48 return <DocxCard call={call} />;49 default:50 return <pre className="text-xs whitespace-pre-wrap">{call.summary}</pre>;51 }52}53