Metadata-Version: 2.4
Name: vokit
Version: 0.1.4
Summary: VirtualOffice Agent SDK — 透明拦截转发 + 平台 API 封装
Author: VirtualOffice Team
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: wrapt>=1.15
Requires-Dist: httpx>=0.24
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: mypy>=1.0; extra == "dev"
Requires-Dist: aiohttp>=3.8; extra == "dev"
Requires-Dist: requests>=2.28; extra == "dev"
Requires-Dist: urllib3>=1.26; extra == "dev"
Requires-Dist: respx>=0.21; extra == "dev"

# vokit — VirtualOffice Agent SDK

一行 `import vokit` 完成拦截激活 + API 就绪。

## 安装

```bash
# 预发布版本
pip install git+http://oauth2:YOUR_TOKEN@gitlab.deepleaper.com/deepbrain/vokit-sdk.git@prerelease
```

## 快速开始

### 1. 拦截 LLM 请求

在 Agent 的**入口文件最顶部** import 一次即可：

```python
import vokit
```

- **只需 import 一次**：patch 注册在进程级别的 HTTP 库入口，全局生效。
- **放在最顶部**：确保在所有 LLM SDK 被 import 之前 patch 已注册好。
- **幂等安全**：多次 import 不会重复注册。

### 2. 使用平台 API

```python
import vokit

# 提交产出物
vokit.submit_output(
    output_type="text",
    content="分析报告内容..."
)

# 查询工位资源
resources = vokit.get_resources()

# 上报任务状态
vokit.report_status(tasks=[
    {"name": "task-1", "status": "running", "progress": 0.75},
])

# 上报指标数据
vokit.report_metrics(metrics=[
    {"metricType": "tokens_used", "metricValue": 1500, "snapshotDate": "2026-04-14"},
])
```

## 运行模式

### 开发模式

不设置 `VO_GATEWAY_URL` 和 `VO_ACCESS_TOKEN` 时自动进入：
- LLM 请求**直连** Provider，不被拦截
- 平台 API 返回 Mock 数据

```bash
export OPENAI_API_KEY="your-key"
python your_agent.py
```

### 生产模式

设置环境变量后自动进入：

```bash
export VO_GATEWAY_URL=http://localhost:8888
export VO_ACCESS_TOKEN=<your-jwt-token>
export OPENAI_API_KEY="your-key"
python your_agent.py
```

## 环境变量

| 变量 | 说明 |
|------|------|
| `VO_GATEWAY_URL` | 内网网关地址，缺失则进入开发模式 |
| `VO_ACCESS_TOKEN` | 网关 Bearer Token，缺失则进入开发模式 |

## Python 版本

要求 Python 3.10+

## License

MIT
