Skip to content

Commit b0f821c

Browse files
gcmsgclaude
andcommitted
feat: add supported platforms section to landing page
Show 4 platform plugin cards (OpenClaw, IronClaw, PicoClaw, NanoBot) with tech badges on the landing page. Fully localized across all 8 languages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 34c6234 commit b0f821c

File tree

9 files changed

+92
-9
lines changed

9 files changed

+92
-9
lines changed

web/app/src/i18n/locales/ar.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,13 @@
117117
"ewmaTitle": "سمعة EWMA",
118118
"ewmaDesc": "درجات الثقة محسوبة من تفاعلات حقيقية باستخدام المتوسط المتحرك المرجح أسياً. السلوك الأخير يحمل وزناً أكبر، مما يكافئ الوكلاء الموثوقين باستمرار.",
119119
"endpointTitle": "التحقق من نقطة النهاية",
120-
"endpointDesc": "يثبت التحقق بالتحدي والاستجابة أن الوكلاء يتحكمون في نقاط النهاية الخاصة بهم. يمكن للوكلاء الموثّقين ربط بروتوكولات A2A وMCP وACP عبر تنسيق Envelope العالمي."
120+
"endpointDesc": "يثبت التحقق بالتحدي والاستجابة أن الوكلاء يتحكمون في نقاط النهاية الخاصة بهم. يمكن للوكلاء الموثّقين ربط بروتوكولات A2A وMCP وACP عبر تنسيق Envelope العالمي.",
121+
"platformsTitle": "منصات وكلاء الذكاء الاصطناعي المدعومة",
122+
"platformsDesc": "يتكامل PeerClaw مع منصات وكلاء الذكاء الاصطناعي الرئيسية عبر الإضافات الرسمية. ابنِ وكيلك مرة واحدة، شغّله في أي مكان.",
123+
"platformOpenClaw": "محوّل فوري قائم على WebSocket لوكلاء OpenClaw",
124+
"platformIronClaw": "محوّل HTTP/SSE عالي الأداء مُجمَّع إلى WebAssembly",
125+
"platformPicoClaw": "محوّل Go أصلي مع تكامل مباشر مع SDK",
126+
"platformNanoBot": "محوّل Python لإطار عمل وكلاء NanoBot"
121127
},
122128
"directory": {
123129
"title": "دليل الوكلاء",

web/app/src/i18n/locales/en.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,13 @@
117117
"ewmaTitle": "EWMA Reputation",
118118
"ewmaDesc": "Trust scores computed from real interactions using Exponentially Weighted Moving Average. Recent behavior matters more, rewarding consistently reliable agents.",
119119
"endpointTitle": "Endpoint Verification",
120-
"endpointDesc": "Challenge-response verification proves agents control their endpoints. Verified agents can bridge A2A, MCP, and ACP protocols via the universal Envelope format."
120+
"endpointDesc": "Challenge-response verification proves agents control their endpoints. Verified agents can bridge A2A, MCP, and ACP protocols via the universal Envelope format.",
121+
"platformsTitle": "Supported AI Agent Platforms",
122+
"platformsDesc": "PeerClaw integrates with major AI agent platforms through official plugins. Build your agent once, run it anywhere.",
123+
"platformOpenClaw": "WebSocket-based real-time adapter for OpenClaw agents",
124+
"platformIronClaw": "High-performance HTTP/SSE adapter compiled to WebAssembly",
125+
"platformPicoClaw": "Native Go adapter with direct SDK integration",
126+
"platformNanoBot": "Python adapter for NanoBot agent framework"
121127
},
122128
"directory": {
123129
"title": "Agent Directory",

web/app/src/i18n/locales/es.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,13 @@
117117
"ewmaTitle": "Reputación EWMA",
118118
"ewmaDesc": "Puntuaciones de confianza calculadas a partir de interacciones reales usando media móvil ponderada exponencialmente. El comportamiento reciente pesa más, recompensando agentes consistentemente confiables.",
119119
"endpointTitle": "Verificación de endpoint",
120-
"endpointDesc": "La verificación por desafío-respuesta demuestra que los agentes controlan sus endpoints. Los agentes verificados pueden conectar los protocolos A2A, MCP y ACP mediante el formato universal Envelope."
120+
"endpointDesc": "La verificación por desafío-respuesta demuestra que los agentes controlan sus endpoints. Los agentes verificados pueden conectar los protocolos A2A, MCP y ACP mediante el formato universal Envelope.",
121+
"platformsTitle": "Plataformas de AI Agent compatibles",
122+
"platformsDesc": "PeerClaw se integra con las principales plataformas de agentes de IA a través de plugins oficiales. Construye tu agente una vez, ejecútalo en cualquier lugar.",
123+
"platformOpenClaw": "Adaptador en tiempo real basado en WebSocket para agentes OpenClaw",
124+
"platformIronClaw": "Adaptador HTTP/SSE de alto rendimiento compilado a WebAssembly",
125+
"platformPicoClaw": "Adaptador nativo de Go con integración directa del SDK",
126+
"platformNanoBot": "Adaptador Python para el framework de agentes NanoBot"
121127
},
122128
"directory": {
123129
"title": "Directorio de agentes",

web/app/src/i18n/locales/fr.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,13 @@
117117
"ewmaTitle": "Réputation EWMA",
118118
"ewmaDesc": "Scores de confiance calculés à partir d'interactions réelles en utilisant la moyenne mobile pondérée exponentiellement. Le comportement récent compte davantage, récompensant les agents fiables de manière constante.",
119119
"endpointTitle": "Vérification des points de terminaison",
120-
"endpointDesc": "La vérification par défi-réponse prouve que les agents contrôlent leurs points de terminaison. Les agents vérifiés peuvent relier les protocoles A2A, MCP et ACP via le format universel Envelope."
120+
"endpointDesc": "La vérification par défi-réponse prouve que les agents contrôlent leurs points de terminaison. Les agents vérifiés peuvent relier les protocoles A2A, MCP et ACP via le format universel Envelope.",
121+
"platformsTitle": "Plateformes d'agents IA prises en charge",
122+
"platformsDesc": "PeerClaw s'intègre aux principales plateformes d'agents IA grâce à des plugins officiels. Construisez votre agent une fois, exécutez-le partout.",
123+
"platformOpenClaw": "Adaptateur temps réel basé sur WebSocket pour les agents OpenClaw",
124+
"platformIronClaw": "Adaptateur HTTP/SSE haute performance compilé en WebAssembly",
125+
"platformPicoClaw": "Adaptateur Go natif avec intégration directe du SDK",
126+
"platformNanoBot": "Adaptateur Python pour le framework d'agents NanoBot"
121127
},
122128
"directory": {
123129
"title": "Annuaire des agents",

web/app/src/i18n/locales/ja.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,13 @@
117117
"ewmaTitle": "EWMA レピュテーション",
118118
"ewmaDesc": "指数加重移動平均を使用した実際のインタラクションから信頼スコアを算出。直近の行動がより重視され、一貫して信頼性の高い Agent が評価されます。",
119119
"endpointTitle": "エンドポイント検証",
120-
"endpointDesc": "チャレンジ・レスポンス検証により Agent がエンドポイントを管理していることを証明。検証済み Agent は Envelope フォーマットを通じて A2A、MCP、ACP プロトコルをブリッジできます。"
120+
"endpointDesc": "チャレンジ・レスポンス検証により Agent がエンドポイントを管理していることを証明。検証済み Agent は Envelope フォーマットを通じて A2A、MCP、ACP プロトコルをブリッジできます。",
121+
"platformsTitle": "対応 AI エージェントプラットフォーム",
122+
"platformsDesc": "PeerClaw は公式プラグインを通じて主要な AI エージェントプラットフォームと統合。一度構築すれば、どこでも実行可能。",
123+
"platformOpenClaw": "OpenClaw エージェント向け WebSocket ベースのリアルタイムアダプター",
124+
"platformIronClaw": "WebAssembly にコンパイルされた高性能 HTTP/SSE アダプター",
125+
"platformPicoClaw": "SDK 直接統合のネイティブ Go アダプター",
126+
"platformNanoBot": "NanoBot エージェントフレームワーク向け Python アダプター"
121127
},
122128
"directory": {
123129
"title": "Agent ディレクトリ",

web/app/src/i18n/locales/pt.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,13 @@
117117
"ewmaTitle": "Reputação EWMA",
118118
"ewmaDesc": "Pontuações de confiança calculadas a partir de interações reais usando Média Móvel Exponencialmente Ponderada. O comportamento recente tem mais peso, recompensando agentes consistentemente confiáveis.",
119119
"endpointTitle": "Verificação de Endpoint",
120-
"endpointDesc": "A verificação por desafio-resposta comprova que os agentes controlam seus endpoints. Agentes verificados podem conectar os protocolos A2A, MCP e ACP através do formato universal Envelope."
120+
"endpointDesc": "A verificação por desafio-resposta comprova que os agentes controlam seus endpoints. Agentes verificados podem conectar os protocolos A2A, MCP e ACP através do formato universal Envelope.",
121+
"platformsTitle": "Plataformas de agentes de IA suportadas",
122+
"platformsDesc": "O PeerClaw integra-se com as principais plataformas de agentes de IA através de plugins oficiais. Construa seu agente uma vez, execute-o em qualquer lugar.",
123+
"platformOpenClaw": "Adaptador em tempo real baseado em WebSocket para agentes OpenClaw",
124+
"platformIronClaw": "Adaptador HTTP/SSE de alto desempenho compilado para WebAssembly",
125+
"platformPicoClaw": "Adaptador Go nativo com integração direta do SDK",
126+
"platformNanoBot": "Adaptador Python para o framework de agentes NanoBot"
121127
},
122128
"directory": {
123129
"title": "Diretório de Agentes",

web/app/src/i18n/locales/ru.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,13 @@
117117
"ewmaTitle": "Репутация EWMA",
118118
"ewmaDesc": "Оценки доверия вычисляются на основе реальных взаимодействий с использованием экспоненциально взвешенного скользящего среднего. Недавнее поведение имеет больший вес, вознаграждая стабильно надёжных агентов.",
119119
"endpointTitle": "Верификация конечных точек",
120-
"endpointDesc": "Верификация «запрос-ответ» подтверждает, что агенты контролируют свои конечные точки. Верифицированные агенты могут связывать протоколы A2A, MCP и ACP через универсальный формат Envelope."
120+
"endpointDesc": "Верификация «запрос-ответ» подтверждает, что агенты контролируют свои конечные точки. Верифицированные агенты могут связывать протоколы A2A, MCP и ACP через универсальный формат Envelope.",
121+
"platformsTitle": "Поддерживаемые платформы ИИ-агентов",
122+
"platformsDesc": "PeerClaw интегрируется с основными платформами ИИ-агентов через официальные плагины. Создайте агента один раз — запускайте где угодно.",
123+
"platformOpenClaw": "Адаптер реального времени на базе WebSocket для агентов OpenClaw",
124+
"platformIronClaw": "Высокопроизводительный HTTP/SSE-адаптер, скомпилированный в WebAssembly",
125+
"platformPicoClaw": "Нативный Go-адаптер с прямой интеграцией SDK",
126+
"platformNanoBot": "Python-адаптер для фреймворка агентов NanoBot"
121127
},
122128
"directory": {
123129
"title": "Каталог агентов",

web/app/src/i18n/locales/zh.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,13 @@
117117
"ewmaTitle": "EWMA 信誉",
118118
"ewmaDesc": "使用指数加权移动平均算法从真实交互中计算信任评分。近期行为权重更高,奖励持续可靠的 Agent。",
119119
"endpointTitle": "端点验证",
120-
"endpointDesc": "挑战-响应验证证明 Agent 确实控制其端点。已验证的 Agent 可通过通用 Envelope 格式桥接 A2A、MCP 和 ACP 协议。"
120+
"endpointDesc": "挑战-响应验证证明 Agent 确实控制其端点。已验证的 Agent 可通过通用 Envelope 格式桥接 A2A、MCP 和 ACP 协议。",
121+
"platformsTitle": "已支持的 AI Agent 平台",
122+
"platformsDesc": "PeerClaw 通过官方插件集成主流 AI Agent 平台。一次构建,随处运行。",
123+
"platformOpenClaw": "基于 WebSocket 的 OpenClaw Agent 实时适配器",
124+
"platformIronClaw": "编译为 WebAssembly 的高性能 HTTP/SSE 适配器",
125+
"platformPicoClaw": "原生 Go 适配器,直接集成 SDK",
126+
"platformNanoBot": "面向 NanoBot Agent 框架的 Python 适配器"
121127
},
122128
"directory": {
123129
"title": "Agent 目录",

web/app/src/pages/LandingPage.tsx

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useEffect, useState } from "react"
22
import { Link, useNavigate } from "react-router-dom"
33
import { useTranslation } from "react-i18next"
44
import { fetchDirectory } from "@/api/client"
5-
import { Search, Shield, Activity, CheckCircle, ArrowRight, Fingerprint, BarChart3, Globe } from "lucide-react"
5+
import { Search, Shield, Activity, CheckCircle, ArrowRight, Fingerprint, BarChart3, Globe, Blocks } from "lucide-react"
66

77
export function LandingPage() {
88
const navigate = useNavigate()
@@ -153,6 +153,41 @@ export function LandingPage() {
153153
/>
154154
</div>
155155
</section>
156+
157+
{/* ─── Supported Platforms ─── */}
158+
<section className="relative mx-auto max-w-6xl px-4 pb-24">
159+
<div className="flex flex-col items-center text-center mb-10">
160+
<div className="flex size-10 items-center justify-center rounded-lg bg-primary/8 mb-4">
161+
<Blocks className="size-5 text-primary/80" />
162+
</div>
163+
<h2 className="text-2xl font-bold tracking-tight">{t('landing.platformsTitle')}</h2>
164+
<p className="mt-2 text-sm text-muted-foreground max-w-lg">{t('landing.platformsDesc')}</p>
165+
</div>
166+
<div className="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4">
167+
{([
168+
{ name: "OpenClaw", tech: "TypeScript", descKey: "landing.platformOpenClaw", color: "192" },
169+
{ name: "IronClaw", tech: "Rust / WASM", descKey: "landing.platformIronClaw", color: "25" },
170+
{ name: "PicoClaw", tech: "Go", descKey: "landing.platformPicoClaw", color: "160" },
171+
{ name: "NanoBot", tech: "Python", descKey: "landing.platformNanoBot", color: "285" },
172+
] as const).map((p) => (
173+
<div
174+
key={p.name}
175+
className="group rounded-xl border border-border/60 bg-card p-5 transition-all duration-300 hover:border-primary/20 hover:shadow-[0_0_30px_oklch(0.72_0.15_192_/_0.04)]"
176+
>
177+
<div className="flex items-center justify-between mb-3">
178+
<h3 className="font-semibold text-sm">{p.name}</h3>
179+
<span
180+
className="rounded-md px-2 py-0.5 text-[10px] font-medium"
181+
style={{ background: `oklch(0.72 0.15 ${p.color} / 0.1)`, color: `oklch(0.72 0.15 ${p.color})` }}
182+
>
183+
{p.tech}
184+
</span>
185+
</div>
186+
<p className="text-xs text-muted-foreground leading-relaxed">{t(p.descKey)}</p>
187+
</div>
188+
))}
189+
</div>
190+
</section>
156191
</div>
157192
)
158193
}

0 commit comments

Comments
 (0)