feat(clawbot): add native WeChat ClawBot protocol engine (clawbot.py) and WechatClawModal UI

Browse Source
This commit is contained in:
Yin Kou committed 2026-11-07 00:51:38 +08:00
1 parent 07d2050c5f
commit 8fa46a2b8d
14 files changed
+1551 -201

No files matched your search

+17 -1
View File
@@ -1,5 +1,5 @@
import React from 'react'; import React from 'react';
import { BookOpen, LayoutGrid, Moon, Search, Sun, Terminal } from 'lucide-react'; import { BookOpen, LayoutGrid, MessageSquare, Moon, Search, Sun, Terminal } from 'lucide-react';
import { usePortalStore } from '../store/usePortalStore'; import { usePortalStore } from '../store/usePortalStore';
import type { RouteModeId } from '../types/telemetry'; import type { RouteModeId } from '../types/telemetry';
import { Button } from './ui/button'; import { Button } from './ui/button';
@@ -24,6 +24,7 @@ export const TopRibbon: React.FC = () => {
setRouteMode, setRouteMode,
setViewMode, setViewMode,
setShowAgyModal, setShowAgyModal,
setShowWechatModal,
setShowCmdPalette, setShowCmdPalette,
} = usePortalStore(); } = usePortalStore();
@@ -98,6 +99,21 @@ export const TopRibbon: React.FC = () => {
</kbd> </kbd>
</Button> </Button>
<Button
variant="outline"
onClick={() => setShowWechatModal(true)}
title="连接微信 ClawBot,在微信内直接收发消息与控制 Mac mini"
>
<span
className="w-2 h-2 rounded-full"
style={{
backgroundColor: telemetry.services.clawbot ? 'var(--success)' : 'var(--accent)',
}}
/>
<MessageSquare className="w-3.5 h-3.5" />
<span>微信 ClawBot</span>
</Button>
<Button onClick={() => setShowAgyModal(true)}> <Button onClick={() => setShowAgyModal(true)}>
<Terminal className="w-3.5 h-3.5" /> <Terminal className="w-3.5 h-3.5" />
<span>AGY 终端</span> <span>AGY 终端</span>