我的第一个伙伴作品
点击按钮,帮助小伙伴收集星星。
星星:0
import { useMemo, useState } from 'react'; import { BookOpen, Brain, CheckCircle2, Code2, HeartPulse, ImagePlus, Lock, MessageCircle, Mic, PackagePlus, Play, Send, Sparkles, Stars, Users, WandSparkles, } from 'lucide-react'; import { toast } from 'sonner'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { Progress } from '@/components/ui/progress'; import { Textarea } from '@/components/ui/textarea'; import { cn } from '@/lib/utils'; type StageStatus = 'open' | 'locked'; type Stage = { id: number; name: string; action: string; status: StageStatus; Icon: typeof Brain; }; type Message = { role: 'partner' | 'kid'; text: string; }; const stages: Stage[] = [ { id: 1, name: '装大脑', action: '接入电子心脏,伙伴醒来', status: 'open', Icon: Brain }, { id: 2, name: '建记忆', action: '聊天形成记忆,伙伴认识你', status: 'open', Icon: MessageCircle }, { id: 3, name: '做创作', action: '一起做第一个 HTML 作品', status: 'open', Icon: Code2 }, { id: 4, name: '学技能', action: '解锁 Skill,点亮技能墙', status: 'locked', Icon: Stars }, { id: 5, name: '装工具', action: '添加 MCP 工具,伙伴拿到新装备', status: 'locked', Icon: PackagePlus }, { id: 6, name: '喂知识', action: '上传知识文件,书架出现新书', status: 'locked', Icon: BookOpen }, { id: 7, name: '遇伙伴', action: '发现其他专项伙伴,一起组队', status: 'locked', Icon: Users }, ]; const lockedCards = [ { title: '技能墙', desc: '完成更多创作后解锁。以后这里会亮起你的伙伴学会的技能。', Icon: Stars, }, { title: '工具栏', desc: '升级伙伴能力后解锁。以后可以给伙伴装上更多工具。', Icon: PackagePlus, }, { title: '知识书架', desc: '开始喂给伙伴知识后解锁。以后每本书都是伙伴的新知识。', Icon: BookOpen, }, { title: '伙伴广场', desc: '认识更多伙伴后解锁。以后可以找到画画、写作、编程伙伴。', Icon: Users, }, ]; const initialMessages: Message[] = [ { role: 'partner', text: '你好,我现在还是一团小泥巴。先帮我装上电子心脏吧。' }, { role: 'kid', text: '我想让你陪我做一个小游戏。' }, { role: 'partner', text: '收到。你想做给谁玩?希望它看起来像什么世界?' }, ]; const previewHtml = `
点击按钮,帮助小伙伴收集星星。
星星:0
申请后,把模型心脏拖给伙伴,它就能说话。
{model}
{index === 0 ? '已获批' : '申请后解锁'}
当前阶段:{selected.name} · {selected.action}
伙伴生成代码后,孩子在这里直接看效果。
情感记忆
喜欢小游戏,正在学习用 AI 做创作。
项目记忆
想做一个收集星星的 HTML 小应用。