devjas1
feat: Inital commit from recovered state
80b95e8
raw
history blame
7.03 kB
import { Card } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Brain, Search, Wand2, FolderTree, GitCommit } from "lucide-react";
export function OverviewSection() {
const features = [
{
icon: Brain,
title: "EmbeddingGemma-300m",
description: "High-precision text embedding for semantic search",
color: "text-primary"
},
{
icon: Search,
title: "FAISS Vector Store",
description: "Efficient similarity search and clustering",
color: "text-accent"
},
{
icon: Wand2,
title: "Phi-2 Generator",
description: "2.7B parameter model for contextual responses",
color: "text-purple-400"
},
{
icon: FolderTree,
title: "Commit Assistant",
description: "Git diff analysis and intelligent commit message generation",
color: "text-orange-400"
}
];
const projectStructure = [
{ type: "folder", name: "gemma-phi2-cli/", level: 0 },
{ type: "folder", name: "models/", level: 1, badge: "AI Models" },
{ type: "folder", name: "embeddinggemma-300m/", level: 2 },
{ type: "folder", name: "phi2-quantized/", level: 2 },
{ type: "folder", name: "data/", level: 1 },
{ type: "folder", name: "index/", level: 2, badge: "Vector Store" },
{ type: "folder", name: "src/", level: 1 },
{ type: "file", name: "embedder.py", level: 2 },
{ type: "file", name: "retriever.py", level: 2 },
{ type: "file", name: "generator.py", level: 2 },
{ type: "file", name: "diff_analyzer.py", level: 2 },
{ type: "file", name: "cli.py", level: 2 },
{ type: "folder", name: "tests/", level: 1, badge: "Unit Tests" },
{ type: "file", name: "test_embedder.py", level: 2 },
{ type: "file", name: "test_retriever.py", level: 2 },
{ type: "file", name: "test_generator.py", level: 2 },
{ type: "folder", name: "examples/", level: 1, badge: "Sample Repo" },
{ type: "file", name: "sample_repo/", level: 2 },
{ type: "file", name: "config.yaml", level: 1 },
{ type: "file", name: "environment.yml", level: 1 },
{ type: "file", name: "README.md", level: 1 },
];
return (
<section id="overview" className="space-y-6">
<div className="gradient-border">
<div className="p-6">
<div className="flex items-start justify-between mb-4">
<div>
<h2 className="text-2xl font-bold mb-2">Project Overview</h2>
<p className="text-muted-foreground">
A seamless CLI assistant that combines EmbeddingGemma's precision with Phi-2's generative capabilities.
</p>
</div>
<Badge className="bg-green-500/20 text-green-400 hover:bg-green-500/30">
v1.0.0
</Badge>
</div>
<div className="grid md:grid-cols-3 gap-4 mb-6">
{features.map((feature, index) => (
<Card key={index} className="bg-secondary/50 p-4 border-border">
<div className="flex items-center space-x-3 mb-2">
<feature.icon className={`${feature.color} w-5 h-5`} />
<h3 className="font-semibold">{feature.title}</h3>
</div>
<p className="text-sm text-muted-foreground">{feature.description}</p>
</Card>
))}
</div>
<Card className="bg-muted/30 p-4 border-border">
<h3 className="font-semibold mb-3 flex items-center">
<GitCommit className="mr-2 text-orange-400 w-4 h-4" />
Data Flow Pipeline
</h3>
<div className="space-y-3 mb-6">
<div className="flex items-center justify-between bg-black/30 p-3 rounded">
<div className="flex items-center space-x-2">
<div className="w-6 h-6 bg-blue-500 rounded-full flex items-center justify-center text-xs font-bold">1</div>
<span className="text-sm">Git Diff Analysis</span>
</div>
<span className="text-muted-foreground text-xs">diff_analyzer.py</span>
</div>
<div className="flex justify-center">
<div className="text-muted-foreground"></div>
</div>
<div className="flex items-center justify-between bg-black/30 p-3 rounded">
<div className="flex items-center space-x-2">
<div className="w-6 h-6 bg-green-500 rounded-full flex items-center justify-center text-xs font-bold">2</div>
<span className="text-sm">Text Embedding</span>
</div>
<span className="text-muted-foreground text-xs">embedder.py</span>
</div>
<div className="flex justify-center">
<div className="text-muted-foreground"></div>
</div>
<div className="flex items-center justify-between bg-black/30 p-3 rounded">
<div className="flex items-center space-x-2">
<div className="w-6 h-6 bg-purple-500 rounded-full flex items-center justify-center text-xs font-bold">3</div>
<span className="text-sm">Context Retrieval</span>
</div>
<span className="text-muted-foreground text-xs">retriever.py</span>
</div>
<div className="flex justify-center">
<div className="text-muted-foreground"></div>
</div>
<div className="flex items-center justify-between bg-black/30 p-3 rounded">
<div className="flex items-center space-x-2">
<div className="w-6 h-6 bg-orange-500 rounded-full flex items-center justify-center text-xs font-bold">4</div>
<span className="text-sm">Message Generation</span>
</div>
<span className="text-muted-foreground text-xs">generator.py</span>
</div>
</div>
</Card>
<Card className="bg-muted/30 p-4 border-border">
<h3 className="font-semibold mb-3 flex items-center">
<FolderTree className="mr-2 text-primary w-4 h-4" />
Project Structure
</h3>
<div className="font-mono text-sm space-y-1 text-muted-foreground">
{projectStructure.map((item, index) => (
<div key={index} className="flex items-center" style={{ marginLeft: `${item.level * 16}px` }}>
<i className={`${item.type === 'folder' ? 'fas fa-folder text-blue-400' : 'fas fa-file text-green-400'} mr-2`}></i>
<span>{item.name}</span>
{item.badge && (
<Badge className="ml-2 text-xs bg-secondary px-2 py-1">
{item.badge}
</Badge>
)}
</div>
))}
</div>
</Card>
</div>
</div>
</section>
);
}