SPB Git

spb/vquant Public MIT

VibeQuant — AI-powered institutional-grade financial intelligence platform.

TypeScript 84.3% Python 11.7% JavaScript 1.6% CSS 1.5% HTML 0.7%
1.8 KB · 58 lines tsx
Raw Blame History
1/*2 * =============================================================================3 *  VibeQuant (vquant) — AI-Powered Financial Intelligence Platform4 * -----------------------------------------------------------------------------5 *  File:      client/src/components/chat/agent-steps.tsx6 *7 *  Author:    Simon-Pierre Boucher8 *  Contact:   contact@spboucher.ai9 *  Website:   https://www.spboucher.ai10 *  Demo:      https://www.vquant.ai11 *  License:   MIT (see LICENSE)12 *13 *  Copyright © 2026 Simon-Pierre Boucher. All rights reserved.14 * =============================================================================15 */1617import { Check } from "lucide-react";1819export interface AgentStep {20  tool: string;21  status: 'pending' | 'running' | 'completed' | 'error';22  input?: any;23  error?: string;24  duration?: number;25}2627interface AgentStepsProps {28  steps: AgentStep[];29  currentStep?: number;30}3132export function AgentSteps({ steps, currentStep }: AgentStepsProps) {33  if (steps.length === 0) return null;3435  // Only show completed steps with simple green circle and checkmark36  const completedSteps = steps.filter(s => s.status === 'completed');3738  if (completedSteps.length === 0) return null;3940  return (41    <div className="flex flex-wrap gap-2 mb-4">42      {completedSteps.map((step, index) => (43        <div44          key={`${step.tool}-${index}`}45          className="flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-green-500/10 border border-green-500/20"46        >47          <div className="w-4 h-4 rounded-full bg-green-500/20 flex items-center justify-center flex-shrink-0">48            <Check className="w-3 h-3 text-green-500" />49          </div>50          <span className="text-xs text-muted-foreground">51            {step.tool.replace(/_/g, ' ')}52          </span>53        </div>54      ))}55    </div>56  );57}58