SPB Git forge

spb/uqo-chat

Public
14commits 1branches 0releases
1.4 MBsize
maindefault branch
17 days agolast push
Python 64.6% TypeScript 33.7% CSS 0.8%
2.1 KB · 53 lines tsx
Raw Blame History
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