diff --git a/README.md b/README.md
index cee3125..2d4ec55 100644
--- a/README.md
+++ b/README.md
@@ -9,116 +9,95 @@
## โจ ็นๆง
-- ๐จ **Textual TUI** โ ไธๆ ็้ข + ็ณป็ป็ๆง้ขๆฟ + CLI ๅ้
+- ๐จ **Textual TUI** โ ็ณป็ป็ๆง้ขๆฟ + ๅฝไปค่กฅๅ
จ + CLI ๅ้
- ๐ **ๆไปถ็ณป็ป** โ ็ญๅ ่ฝฝใๆ้้็ฆปใไพ่ต่งฃๆใ่ฟ็จ้็ฆป
-- ๐๏ธ **้กน็ฎๆณจๅ่กจ** โ ๆไปถๅฃฐๆ `project.yaml` ็ณ่ฏท็ซฏๅฃๅ่ตๆบ
+- ๐๏ธ **้กน็ฎๅผๆ** โ ๆฅ็ฎกไปปไฝ Python/ๅฝไปค่ก้กน็ฎ (subprocess + ๆฅๅฟ + stdin)
+- ๐ **ๅๅไปฃ็** โ HTTP/WS ไปฃ็๏ผๆฌๅฐ/ๅฑๅ็ฝ/ๅ
ฌ็ฝ็ซฏๅฃๆ ๅฐ
- ๐ **SQLite ๆไน
ๅ** โ ๆไปถ็ถๆใๆ้ใๅฎก่ฎกๆฅๅฟ็ปไธๅญๅจ
-- ๐ **Web ็ฎก็้ขๆฟ** โ aiohttp + WebSocket๏ผ:4200 ๅฎๆถไปช่กจ็
-- ๐ **ๅฎๅ
จ่ฎค่ฏ** โ PBKDF2-SHA256ใ็ฏๅขๅ้ๅฏ็ ใToken ็ฎก็
-- ๐ณ **Docker ้จ็ฝฒ** โ Alpine ้ๅ <100MB๏ผsystemd ๆๅกๆไปถ
-- ๐งช **23 ไธชๅๅฝๆต่ฏ** โ pytest๏ผ้ถๅคฑ่ดฅ
+- ๐ **Web ็ฎก็้ขๆฟ** โ aiohttp + SSE๏ผ้กน็ฎ็ฎก็/ไปฃ็/ๆไปถๆงๅถ้กต
+- ๐ **ๅฎๅ
จ่ฎค่ฏ** โ PBKDF2-SHA256ใ็ฏๅขๅ้ๅฏ็
+- ๐ณ **Docker ้จ็ฝฒ** โ Alpine ้ๅ๏ผsystemd ๆๅกๆไปถ
+- ๐งช **28 ไธชๅๅฝๆต่ฏ** โ pytest๏ผ้ถๅคฑ่ดฅ
+- ๐ ๏ธ **ๆไปถ SDK** โ ๅฝไปค่ฃ
้ฅฐๅจ + Web ้ขๆฟ + API + SSE ๆจ้
## ๐ ๅฟซ้ๅผๅง
```bash
-# ๅฎ่ฃ
ไพ่ต
pip install -r requirements.txt
-
-# ๅฏๅจ (TUI ๆจกๅผ)
-python main.py
-
-# ๅฏๅจ (headless๏ผ้ๅ SSH/systemd/Docker)
-python main.py --headless
-
-# ่ฟ่กๆต่ฏ
-python -m pytest tests/ -v
+python main.py # TUI ๆจกๅผ
+python main.py --headless # ๅๅฐๆจกๅผ
+python -m pytest tests/ -v # ่ฟ่กๆต่ฏ
```
## ๐๏ธ ๆถๆ
```
-main.py โ SenSuFramework
- โโ ServiceManager (15 ๆๅก)
- โโ CoreBridge โ PluginBridge โ NetworkBridge
- โโ PluginService (็ญๅ ่ฝฝ + ไพ่ต่งฃๆ)
- โโ ProjectService (้กน็ฎๆณจๅ่กจ + ็ซฏๅฃๅ้
)
- โโ SenSuDB (SQLite 5 ่กจ)
- โโ TuiService (Textual + ็ณป็ป็ๆง)
- โโ InternetService (HTTP :4200 + WS :4240)
- โโ WebPanel (็ฎก็้ขๆฟ /SenSu)
- โโ PermissionService (4 ็บงๆ้)
+main.py โ SenSuFramework (15 ๆๅก)
+โโโ ProjectEngine โ ๆฅ็ฎกไปปไฝ้กน็ฎ (subprocess + ๆฅๅฟ)
+โโโ ProxyService โ ๅๅไปฃ็ (HTTP+WS)
+โโโ PyEnvManager โ Python ็ๆฌ + venv + git clone
+โโโ PluginWebMixin โ ๆไปถ Web ๆงๅถ้ขๆฟ SDK
+โโโ PluginService โ ็ญๅ ่ฝฝ + ็ถๆ่ฟฝ่ธช
+โโโ SenSuDB โ SQLite 5 ่กจ
+โโโ TuiService โ Textual + ็ณป็ป็ๆง
+โโโ InternetService โ HTTP :4200 + WS :4240
+โโโ WebPanelManager โ /SenSu ็ฎก็้ขๆฟ
```
-## ๐ ็ฎๅฝ็ปๆ
+## ๐ ็ฎๅฝ
```
SenSu-Alpha/
-โโโ main.py # ๆกๆถๅ
ฅๅฃ
-โโโ service_manager.py # ๆๅกๆณจๅ่กจ
-โโโ sdk/ # ๆไปถๅผๅๅทฅๅ
ทๅ
-โ โโโ plugin_command_decorator.py
-โ โโโ plugin_status.py
-โ โโโ plugin_error.py
-โโโ services/ # ๆ ธๅฟๆๅก (15 ไธช)
-โ โโโ sensu_db.py # SQLite ๆไน
ๅ
-โ โโโ project_service.py # ้กน็ฎๆณจๅ่กจ
-โ โโโ process_isolated.py # ่ฟ็จ้็ฆป
-โ โโโ sysmon_widget.py # ็ณป็ป็ๆง
-โโโ bridges/ # ๆถๆฏๆกฅๆฅ
-โโโ plugins/ # ๆไปถ็ฎๅฝ
-โโโ deploy/ # ้จ็ฝฒๆไปถ
-โ โโโ sensu.service # systemd
-โ โโโ Dockerfile # Docker
-โโโ tests/ # 23 ไธชๆต่ฏ
-โโโ docs/ # ๅผๅๆๆกฃ
+โโโ main.py, service_manager.py
+โโโ sdk/ plugin_command, plugin_status, plugin_error, plugin_web
+โโโ services/ 15 ไธชๆ ธๅฟๆๅก
+โโโ bridges/ CoreBridge + PluginBridge + NetworkBridge
+โโโ plugins/ ๆไปถ็ฎๅฝ + example_plugin (ๅซ Web ้ขๆฟ)
+โโโ deploy/ systemd + Dockerfile
+โโโ tests/ 28 ไธชๆต่ฏ
+โโโ docs/ ๅผๅๆๆกฃ
+```
+
+## ๐ Web ้ขๆฟ
+
+```
+http://0.0.0.0:4200/SenSu/
+โโโ /dashboard ไปช่กจ็
+โโโ /pages/projects ้กน็ฎ็ฎก็ (ๆทปๅ /ๅฏๅจ/Git้จ็ฝฒ) โ NEW
+โโโ /pages/proxy ๅๅไปฃ็็ฎก็ โ NEW
+โโโ /plugin/{name} ๆไปถๆงๅถ้ขๆฟ โ NEW
+โโโ /console Web ็ป็ซฏ
+โโโ /logs ๅฎๆถๆฅๅฟ
+โโโ /plugins ๆไปถๅ่กจ
```
## ๐ ๆไปถๅผๅ
```python
-# plugins/my_plugin/__init__.py
from sdk.plugin_command_decorator import plugin_command
+from sdk.plugin_web import PluginWebMixin
-class Plugin:
+class Plugin(PluginWebMixin):
def __init__(self, plugin_name=None, config=None, bridge=None):
+ PluginWebMixin.__init__(self)
self.plugin_name = plugin_name
- self.bridge = bridge
async def initialize(self):
- # ๆณจๅ็ฝ็ป่ทฏ็ฑ
- await self.network_bridge.register_http_route(
- "/api/my/info", self._handler, methods=["GET"])
+ self.register_web_page("my_plugin", "My Panel", "
Hello
")
- @plugin_command(name="hello", description="ๆๆๅผ")
+ @plugin_command(name="hello")
async def cmd_hello(self, *args):
- return f"Hello from {self.plugin_name}!"
-
- async def shutdown(self):
- pass
+ return "Hello World!"
```
-่ฏฆ็ปๆๆกฃ่ง `docs/SenSu ๆไปถๅผๅ่ฏฆ็ปๆๅ.md`
-
-## ๐ API ็ซฏ็น
-
-| ๆนๆณ | ่ทฏๅพ | ่ฏดๆ |
-|------|------|------|
-| GET | `/health` | ๅฅๅบทๆฃๆฅ |
-| GET | `/SenSu/` | Web ็ฎก็้ขๆฟ |
-| POST | `/SenSu/api/login` | ้ขๆฟ็ปๅฝ |
-| GET | `/SenSu/api/system` | ็ณป็ป็ถๆ |
-| GET | `/SenSu/api/plugins` | ๆไปถๅ่กจ |
-| POST | `/SenSu/api/command` | ๆง่กๅฝไปค |
-| GET | `/api/example/info` | ็คบไพๆไปถ |
-
## ๐ง ็ฏๅขๅ้
-| ๅ้ | ้ป่ฎคๅผ | ่ฏดๆ |
-|------|------|------|
-| `SENSU_ADMIN_PASSWORD` | `admin123` | ็ฎก็ๅๅฏ็ |
-| `SENSU_API_PASSWORD` | `api123` | API ๅฏ็ |
-| `SENSU_PANEL_USER` | `admin` | ้ขๆฟ็จๆทๅ |
-| `SENSU_PANEL_PASS` | `admin` | ้ขๆฟๅฏ็ |
+| ๅ้ | ้ป่ฎคๅผ |
+|------|------|
+| `SENSU_ADMIN_PASSWORD` | `admin123` |
+| `SENSU_API_PASSWORD` | `api123` |
+| `SENSU_PANEL_USER` | `admin` |
+| `SENSU_PANEL_PASS` | `admin` |
## ๐ ่ฎธๅฏ่ฏ
diff --git a/docs/้กน็ฎๆไปถ็ปๆ.txt b/docs/้กน็ฎๆไปถ็ปๆ.txt
index 2c4fab1..d27c69c 100644
--- a/docs/้กน็ฎๆไปถ็ปๆ.txt
+++ b/docs/้กน็ฎๆไปถ็ปๆ.txt
@@ -1,75 +1,56 @@
SenSu/
โโโ main.py # ๆกๆถไธปๅ
ฅๅฃ (--headless ๅๆฐ)
-โโโ service_manager.py # ๆๅก็ฎก็ๅจ (ไพ่ตๆณจๅ
ฅ + ๅฅๅบทๆฃๆฅ)
-โโโ requirements.txt # Python ไพ่ต (็ๆฌ้ๅฎ)
+โโโ service_manager.py # ๆๅก็ฎก็ๅจ (ๅฅๅบทๆฃๆฅ + ๅฏๅจ้กบๅบ)
+โโโ requirements.txt # Python ไพ่ต
โโโ README.md # ้กน็ฎ่ฏดๆ
โโโ ROADMAP.md # ๅผๅ่ทฏ็บฟๅพ (ๆฌๅฐ)
โโโ LICENSE # Apache 2.0
-โโโ Dockerfile # Docker ้ๅ
โ
โโโ sdk/ # ๆไปถๅผๅๅทฅๅ
ทๅ
-โ โโโ plugin_command_decorator.py # @plugin_command ่ฃ
้ฅฐๅจ
-โ โโโ plugin_status.py # PluginStatus ๆไธพ (9 ็ถๆ)
-โ โโโ plugin_error.py # PluginError ๅผๅธธๅฑ็บง (6 ็ฑป)
+โ โโโ plugin_command_decorator.py
+โ โโโ plugin_status.py # 9 ็ถๆๆไธพ
+โ โโโ plugin_error.py # 6 ๅผๅธธๅฑ็บง
+โ โโโ plugin_web.py # Web ๆงๅถ้ขๆฟ Mixin (NEW v0.6)
โ
-โโโ services/ # ๆ ธๅฟๆๅก (15 ไธช)
-โ โโโ init_service.py # ๅๅงๅ + ่ฐ่ฏๆๅกๅจ่ชๅฏ
-โ โโโ log_service.py # ๆฅๅฟ (ๅค่พๅบ, ๅๅฒ, TUIๆ่ท)
-โ โโโ tui_service.py # Textual TUI (4ๆ + ็ณป็ป็ๆง)
-โ โโโ command_service.py # ๅฝไปค็ณป็ป (ๆณจๅ/ๅๅฒ/่กฅๅ
จ)
-โ โโโ auth_service.py # ่ฎค่ฏ (PBKDF2, Token)
-โ โโโ internet_service.py # HTTP + WebSocket
-โ โโโ plugin_service.py # ๆไปถ็ฎก็ (็ญๅ ่ฝฝ, ็ถๆ่ฟฝ่ธช)
-โ โโโ permission_service.py # ๆ้้ช่ฏ (4็บง, ้้
็ฌฆ)
-โ โโโ api_service.py # API ็ซฏ็น
-โ โโโ shutdown_service.py # ไผ้
ๅ
ณ้ญ
-โ โโโ sensu_db.py # SQLite ๆไน
ๅ (5่กจ)
-โ โโโ project_service.py # ้กน็ฎๆณจๅ่กจ + ไพ่ต่งฃๆ
-โ โโโ process_isolated.py # ๆไปถ่ฟ็จ้็ฆป
-โ โโโ sysmon_widget.py # TUI ็ณป็ป็ๆง็ปไปถ
-โ โโโ web_panel/ # Web ็ฎก็้ขๆฟ
-โ โโโ manager.py # ่ทฏ็ฑๆณจๅ
-โ โโโ auth.py # ้ขๆฟ่ฎค่ฏ
-โ โโโ routes/ # API ่ทฏ็ฑ (auth/status/plugins/commands/logs)
-โ โโโ utils/ # ๅทฅๅ
ท (auth/system_info/response)
+โโโ services/ # ๆ ธๅฟๆๅก (17 ไธช)
+โ โโโ init_service.py
+โ โโโ log_service.py
+โ โโโ tui_service.py # TUI + ็ณป็ป็ๆง + Tab่กฅๅ
จ
+โ โโโ command_service.py
+โ โโโ auth_service.py # PBKDF2-SHA256
+โ โโโ internet_service.py # HTTP :4200 + WS :4240
+โ โโโ plugin_service.py # ็ญๅ ่ฝฝ + ็ถๆ่ฟฝ่ธช
+โ โโโ permission_service.py
+โ โโโ api_service.py
+โ โโโ shutdown_service.py
+โ โโโ sensu_db.py # SQLite 5 ่กจ (NEW v0.3)
+โ โโโ project_engine.py # ๅผๆญฅๅญ่ฟ็จ็ฎก็ (NEW v0.6)
+โ โโโ project_service.py # ้กน็ฎๆณจๅ่กจ + ไพ่ต่งฃๆ (NEW v0.3)
+โ โโโ proxy_service.py # ๅๅไปฃ็ HTTP+WS (NEW v0.6)
+โ โโโ pyenv_manager.py # Python็ๆฌ+venv+git (NEW v0.6)
+โ โโโ process_isolated.py # ๆไปถ่ฟ็จ้็ฆป (NEW v0.5)
+โ โโโ sysmon_widget.py # TUI ็ณป็ป็ๆง (NEW v0.4)
+โ โโโ web_panel/ # Web ็ฎก็้ขๆฟ
+โ โโโ manager.py
+โ โโโ auth.py
+โ โโโ routes/ # API ่ทฏ็ฑ (8 ไธชๆจกๅ)
+โ โโโ auth.py, status.py, plugins.py, commands.py, logs.py
+โ โโโ projects.py # ้กน็ฎ็ฎก็ (NEW v0.6)
+โ โโโ proxy.py # ๅๅไปฃ็ (NEW v0.6)
+โ โโโ plugin_web.py # ๆไปถ้ขๆฟ (NEW v0.6)
โ
โโโ bridges/ # ๆถๆฏๆกฅๆฅ
-โ โโโ core_bridge.py # ๆ ธๅฟๆกฅ (ๅๅธ-่ฎข้
)
-โ โโโ plugin_bridge.py # ๆไปถๆกฅ (subscribe_plugin)
-โ โโโ plugin_network_bridge.py # ็ฝ็ปๆกฅ (setup_data_transfer, send_data)
+โ โโโ core_bridge.py
+โ โโโ plugin_bridge.py # subscribe_plugin
+โ โโโ plugin_network_bridge.py
โ
-โโโ plugins/ # ๆไปถ็ฎๅฝ
-โ โโโ example_plugin/ # ็คบไพๆไปถ (echo, plugin_status)
+โโโ plugins/
+โ โโโ example_plugin/ # ็คบไพๆไปถ (ๅฝไปค+Web้ขๆฟ+SSE)
โ
-โโโ tests/ # ๆต่ฏ (23 ไธช, pytest)
-โ โโโ test_auth.py
-โ โโโ test_service_manager.py
-โ โโโ test_plugin_enhancements.py
-โ โโโ test_v03.py
-โ
-โโโ deploy/ # ้จ็ฝฒๆไปถ
-โ โโโ sensu.service # systemd unit
-โ โโโ Dockerfile
-โ
-โโโ docs/ # ๆๆกฃ
-โ โโโ SenSu ๆกๆถๅบๆฌๆถๆ.md
-โ โโโ SenSu ๆไปถๅผๅ่ฏฆ็ปๆๅ.md
-โ โโโ ้กน็ฎๆไปถ็ปๆ.txt
-โ
-โโโ config/ # ่ฟ่กๆถ้
็ฝฎ
-โ โโโ framework/ # ๆกๆถ้
็ฝฎ
-โ โโโ permissions/ # ๆ้ๆฐๆฎ
-โ โโโ plugins/ # ๆไปถ้
็ฝฎ
-โ โโโ services/ # ๆๅก้
็ฝฎ
-โ
-โโโ static/ # ๅ็ซฏ้ๆ่ตๆบ
-โ โโโ web_panel/
-โ
-โโโ utils/ # ้็จๅทฅๅ
ท
-โ โโโ async_file_utils.py # ๅผๆญฅๆไปถIO
-โ
-โโโ templates/ # ๆไปถๆจกๆฟ
-โ โโโ plugin/
-โ
-โโโ gui/ # GUI ๆฅๅฃ (้ข็)
- โโโ api.py
+โโโ tests/ # 28 ไธชๆต่ฏ
+โโโ deploy/ # systemd + Dockerfile
+โโโ docs/ # ๅผๅๆๆกฃ + Phase ๆฅๅ
+โโโ static/web_panel/ # ๅ็ซฏ (HTML/CSS/JS)
+โ โโโ pages/ # 6 ไธช WebUI ้กต้ข
+โโโ utils/, templates/, gui/
+โโโ config/ # ่ฟ่กๆถ้
็ฝฎ