สถาปัตยกรรม
Clew คือผู้ช่วยเขียนโค้ด AI บนเทอร์มินัล — React/Ink TUI, CLI Commander.js, เครื่องยนต์ AI หลายผู้ให้บริการ, และรันไทม์เครื่องมือ/ปลั๊กอินที่ขยายได้ในกระบวนการเดียว
การออกแบบแบบชั้น
แอปพลิเคชันถูกจัดโครงสร้างเป็นสี่ชั้นที่ทำงานร่วมกัน:
1. Terminal UI (React 19 + Ink 6)
แสดง REPL แบบโต้ตอบ: อินพุต prompt, ผลลัพธ์ markdown แบบสตรีม, แถบสถานะพร้อมมาตรวัดบริบท, สไปนเนอร์, กล่องโต้ตอบสิทธิ์, ตัวสำรวจไฟล์, และโหมดเต็มหน้าจอ
2. CLI และชั้นคำสั่ง (Commander.js 13)
จุดเข้าที่ src/main.tsx — แยกวิเคราะห์ CLI flags, โหลดการตั้งค่า, เริ่มต้นผู้ให้บริการและ telemetry, แล้วเปิด REPL หรือโหมดพิมพ์
3. ชั้นผู้ให้บริการ AI และ Adapter
ProviderManager (src/services/ai/ProviderManager.ts) จัดการการแก้ไขคีย์ API, เลือกโมเดล, และจัดการการตั้งค่าผู้ให้บริการ ขณะนี้มี 27 ผู้ให้บริการ
4. การดำเนินการเครื่องมือและ Query Loop
เครื่องมือใช้ Zod schemas และดำเนินการโดย StreamingToolExecutor (src/services/tools/StreamingToolExecutor.ts)
ระบบย่อยหลัก
MCP (Model Context Protocol)
src/services/mcp/ — จัดการการเชื่อมต่อเซิร์ฟเวอร์ MCP ภายนอก, การค้นพบเครื่องมือ, การเข้าถึงทรัพยากร ดู MCP สำหรับรายละเอียด
ปลั๊กอินและฮุค
src/services/plugins/ — การโหลดปลั๊กอิน, การติดตั้ง, การรวม marketplace, และการส่งฮุค
โหมด Bridge
src/bridge/bridgeMain.ts — การควบคุมระยะไกลและการทำงานร่วมกันผ่าน WebSocket
รันไทม์เอเจนต์
src/agentRuntime/ — จัดการการจัดระเบียบหลายเอเจนต์
อัตโนมัติ / Daemon
src/services/autonomous/ — เปิดใช้งานการดำเนินการพื้นหลัง 24/7 คิวงาน, วนซ้ำเอเจนต์, โหมด daemon ดู โหมด Daemon
พาธซอร์สที่สำคัญ
| พาธ | บทบาท |
|---|---|
src/main.tsx | จุดเข้า CLI, โปรแกรม Commander, การแยกวิเคราะห์ตัวเลือก, การเปิด REPL |
src/query.ts | การประมวลผลคำถามหลัก, การสร้างข้อความ, วนซ้ำการเรียกใช้เครื่องมือ |
src/commands.ts | ทะเบียนคำสั่ง slash (80+ คำสั่ง) |
src/tools.ts | ทะเบียนเครื่องมือ (40+ เครื่องมือในตัว) |
src/services/ai/ProviderManager.ts | การเลือกผู้ให้บริการ, การแก้ไขคีย์ API |
src/services/ai/providers.json | การตั้งค่าผู้ให้บริการ (27 ผู้ให้บริการ) |