# สถาปัตยกรรม

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 ผู้ให้บริการ)