agent-ecosystem/src/renderer/components/extensions/common/SourceBadge.tsx
iliya 126f8e2865 feat: add Extension Store with plugin catalog and MCP registry
Full Extension Store implementation (Phases 0-6):
- Plugin marketplace catalog with ETag caching and search/filter/sort
- MCP server registry with Official + Glama aggregation
- Install/uninstall flows for both plugins and MCP servers via CLI
- Per-tab UI state, skeleton loading, dashed empty states, card polish
- Input validation and security hardening (scope allowlists, env/header
  key regex, projectPath validation, HTTP body size limits)
- 8 test suites covering catalog, install, aggregation, normalizers
2026-03-08 01:00:18 +02:00

31 lines
774 B
TypeScript

/**
* SourceBadge — displays the source of a catalog item.
*/
import { Badge } from '@renderer/components/ui/badge';
interface SourceBadgeProps {
source: 'official' | 'glama' | string;
}
export const SourceBadge = ({ source }: SourceBadgeProps): React.JSX.Element => {
if (source === 'official') {
return (
<Badge className="border-blue-500/30 bg-blue-500/10 text-blue-400" variant="outline">
Official
</Badge>
);
}
if (source === 'glama') {
return (
<Badge className="border-zinc-500/30 bg-zinc-500/10 text-zinc-400" variant="outline">
Glama
</Badge>
);
}
return (
<Badge className="border-orange-500/30 bg-orange-500/10 text-orange-400" variant="outline">
Community
</Badge>
);
};