Metadata-Version: 2.4
Name: vibecloud
Version: 0.1.0
Summary: SDK Python zero-dependency cho VibeCloud
Author-email: The MONA Group <info@themona.global>
License: MIT
Project-URL: Homepage, https://vibecloud.vn
Project-URL: Documentation, https://vibecloud.vn/docs
Keywords: vibecloud,cloud,vps,database,mona
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# vibecloud

SDK Python chính thức, zero-dependency, cho VibeCloud. Client đồng bộ dùng `urllib` trong standard library, chạy trên Python 3.9+, nhận token `vc_live_*` hoặc access token MONA Pass qua Bearer.

VibeCloud được phát triển từ kinh nghiệm EAV qua 14.000+ dự án của MONA.

## Cài đặt

```bash
pip install vibecloud
```

## Deploy app và đợi job

Ví dụ 10 dòng dưới đây chạy thử sandbox 0đ trước, sau đó tạo VPS thật:

```python
import os
from vibecloud import VibeCloud
token = os.environ["VIBECLOUD_TOKEN"]
sandbox = VibeCloud(token=token, sandbox=True)
preview = sandbox.create_vps({"app_name": "demo-app", "package_slug": "standard-1"})
print("sandbox:", sandbox.wait_job(preview["id"], timeout=60)["result"])
cloud = VibeCloud(token=token)
job = cloud.create_vps({"app_name": "demo-app", "package_slug": "standard-1"})
done = cloud.wait_job(job["id"], timeout=600)
print("production:", done["result"])
```

`create_vps()` và `create_database()` tự tạo header `Idempotency-Key`. Truyền `idempotency_key="deploy-order-123"` để retry với key ổn định. Các alias camelCase (`createVps`, `waitJob`, ...) cũng có sẵn để agent dùng cùng tên trên ba SDK.

## Public API

- `prices()`, `packages()`, `me()`
- `create_vps(payload)`, `create_database(payload)`
- `job(id)`, `wait_job(id, timeout=300, poll_interval=1)`
- `services()`, `start_service(id)`, `stop_service(id)`, `rebuild_service(id)`, `delete_service(id)`

## Lỗi

Mọi lỗi API là `VibeCloudError` với `code`, `message`, `next_step`, `status` và `body`.

| HTTP / code | Ý nghĩa | `next_step` mặc định |
|---|---|---|
| 401 / `auth_required` | Token thiếu, sai hoặc hết hạn | Kiểm tra token và quyền truy cập |
| 402 / `insufficient_funds` | Ví không đủ tiền | nạp ví tại https://monacloud.vn/console |
| 404 / `not_found` | Không thấy tài nguyên | Kiểm tra ID tài nguyên |
| 409 / `conflict` | Trạng thái tài nguyên không phù hợp | Kiểm tra request |
| 422 / `validation_error` | Payload không hợp lệ | Sửa payload theo thông báo |
| `network_error` | Không kết nối được API | Kiểm tra mạng và `base_url` |
| `wait_timeout` | Job chưa xong trong thời gian chờ | Gọi `job(id)` để kiểm tra tiếp |

Xem [hướng dẫn dành cho AI agent](docs/ai-agent.md).

## Test

```bash
python -m unittest
```
