()
| 469 | |
| 470 | // Render tool-specific output |
| 471 | const renderOutput = () => { |
| 472 | if (!isComplete || !invocation.output) return null; |
| 473 | |
| 474 | switch (toolName) { |
| 475 | case "projectRetrieval": |
| 476 | return formatProjectRetrievalOutput(invocation.output); |
| 477 | case "experimentCreation": |
| 478 | return formatExperimentCreationOutput(invocation.output); |
| 479 | case "experimentCodeUpdate": |
| 480 | return formatExperimentCodeUpdateOutput(invocation.output); |
| 481 | case "textVariation": |
| 482 | return formatTextVariationOutput(invocation.output); |
| 483 | case "repoSetup": |
| 484 | return formatRepoSetupOutput(invocation.output); |
| 485 | default: |
| 486 | return ( |
| 487 | <div className="text-sm text-gray-300"> |
| 488 | <pre className="whitespace-pre-wrap break-words"> |
| 489 | {JSON.stringify(invocation.output, null, 2)} |
| 490 | </pre> |
| 491 | </div> |
| 492 | ); |
| 493 | } |
| 494 | }; |
| 495 | |
| 496 | return ( |
| 497 | <div className="my-3 bg-[#0f0f0f] border border-[#2a2a2a] rounded-lg overflow-hidden"> |
no test coverage detected