Metadata-Version: 2.5
Name: ides_adapter_weixin
Version: 0.1.0
Summary: 微信（WeChat iLink Bot）adapter for IDES channel——通过 channel_ingest/emit 让微信消息驱动 IDES
Author-email: "tckm.rush" <rush@tachikoma.dev>
License: MIT
Requires-Python: >=3.10
Requires-Dist: fastmcp>=2.0
Requires-Dist: httpx>=0.27
Requires-Dist: segno>=1.6
Description-Content-Type: text/markdown

# ides_adapter_weixin

微信（WeChat iLink Bot）adapter for IDES channel——让微信消息驱动 IDES agent。

通过 fastmcp 暴露 3 个工具，对接 IDES 的 channel 机制（`mcp_<server>_<tool>` 命名）。

## 工具

| 工具 | 作用 |
|------|------|
| `weixin_qrcode_login` | 登录：拿二维码 → 用户微信扫码 → 自动拿 token（后登录设计） |
| `channel_ingest` | 收消息：带 sync_buf 游标增量拉取（未登录返回空，零打扰） |
| `channel_emit` | 发消息：sendmessage 发文本 |

## 后登录（lazy login）设计

MCP server **启动时不登录**。`channel_ingest` 被感知层轮询时：
- 有 token → 正常 getupdates
- 无 token → 返回 `{"messages": []}`（空），感知层 `is_empty()` 天然过滤，不打扰 agent

agent 想接微信时，主动调 `weixin_qrcode_login` 扫码，成功即存 token，之后收发光。

## 使用

### 作为 MCP server 接入 IDES

在 `mcp/weixin.toml`（IDES_HOME 下）注册：

```toml
[mcp_servers.weixin]
command = "uvx"
args = ["ides-adapter-weixin"]
```

或用本地开发版：

```toml
[mcp_servers.weixin]
command = "uv"
args = ["run", "--with", ".", "ides-adapter-weixin"]
```

### 登录

```bash
# 设置 IDES_HOME（默认取环境变量或当前目录）
export IDES_HOME=H:/RUSH

# 调用登录工具拿二维码，用微信扫
```

### .env 配置

```bash
IDES_HOME=H:/RUSH            # 存 token/游标的目录
WEIXIN_ACCOUNT_ID=default    # 账号标识（多账号用）
```

## 实现参考

核心 API 参考 hermes-agent 的 `gateway/platforms/weixin.py`（已验证的 iLink Bot API），
按 IDES channel 契约精简重做，不依赖 hermes-agent 生态。

## License

MIT
