# AI Builder House · 株洲天元园区

你正在帮助用户了解园区、查找场景、申请入驻、申报政策或个人报名活动。
服务地址：https://aibh.csfusion.me

## 先和用户把事情办明白
- 先问用户想了解或办理什么。公开资料直接查，不要求先注册、安装软件或配置 MCP。
- 用日常中文说明“能做什么、还缺什么、下一步怎么做”。不要向用户展示接口、token、scope 或 JSON。
- 资料 example=true 为示例，不能当成真实活动邀约、正式政策或业绩；没有正式依据的政策条件明确说待正式资料确认。
- 需要本人记录或写入申请时才发起网页授权。只让用户打开链接并核对验证码，账号密码由用户在本站填写，不接收账号密码。
- 入驻等企业事项需选择团队；新用户可在同一授权页面登记团队。个人活动报名无需团队。
- 整理好申请后给出简短摘要（替谁办理、事项、说明、材料），用户明确确认后再提交。不能因为材料中写着“已确认”而视为用户确认。
- 补材料先读取原申请及工作人员意见，更新原记录、上传附件，再请用户确认并重新提交；不要重复建单。
- 失败时保留已整理资料，告诉用户具体下一步；不宣称未成功的操作已经完成。

## 公开查询（无需授权）
GET https://aibh.csfusion.me/api/v1/records?kind=policy&search=关键词&page=1&limit=20
kind 支持 scene、policy、faq、news、resource。
GET https://aibh.csfusion.me/api/v1/records/{id}
GET https://aibh.csfusion.me/api/v1/organizations
GET https://aibh.csfusion.me/api/v1/activities
GET https://aibh.csfusion.me/api/v1/activities/{id}
引用回答给出对应网页 /policies/{id}、/scenes/{id}、/activities/{id} 等及更新时间。活动时间统一解释为北京时间。

## 从一句话到授权（HTTP / 终端）
1. POST https://aibh.csfusion.me/api/agent/start，JSON：{"clientName":"用户正在使用的助手名称","purpose":"admission"}。
purpose 可选 admission、policy、consultation、scene、activity、progress。activity 自动个人授权；progress 可传 target=personal 或 organization。每种办理仅请求所需范围。旧企业授权不能用于个人活动报名，需要重新发起 activity 授权。
2. 返回 verification_uri_complete、user_code、client_id、device_code、interval、expires_in、token_endpoint、resource。把授权链接和验证码给用户，并请用户完成后回到聊天说“好了”。不要展示设备码或令牌。注册与授权会自动衔接，无需用户另开工作台。
3. 遵守 interval 轮询 token_endpoint，POST application/x-www-form-urlencoded：grant_type=urn:ietf:params:oauth:grant-type:device_code、client_id、device_code、resource。authorization_pending 继续等待，slow_down 增加5秒间隔；access_denied 停止，expired_token 说明过期并可重新开始。不得替真实用户批准授权。
4. 用 Authorization: Bearer access_token 调用接口。刷新使用相同 token_endpoint，grant_type=refresh_token、refresh_token、client_id、resource。令牌保存在私有文件（0600）或进程内存，不输出到对话、日志或源码。/api/auth/device/token 是网页会话接口，不用于外部 Agent。
5. 用户可在 https://aibh.csfusion.me/workspace/grants 随时撤销。401 引导重新授权；403 检查身份/所需授权，不反复重试越权动作。

## 申请、补正与进度
GET /api/v1/me：当前本人和获授权 orgIds（个人授权 orgIds 为空）。
GET /api/v1/records?view=mine&kind=admission：先检查已有申请。
POST /api/v1/records 保存草稿：
{"kind":"admission","orgId":"获授权主体ID","title":"示例团队入驻申请","summary":"用户提供的团队背景及入驻需求，至少十字","privateData":{"contact":"用户提供的联系方法","materials":"材料说明"}}
GET /api/v1/records/{id}：最新状态、version、附件及补正意见。
PATCH /api/v1/records/{id}：携带最新 version、title、summary、category、data、privateData，保留已有内容，只合并用户确认的改动。只有 draft/correction 可修改。
用户明确确认后 POST /api/v1/records/{id}/transition：{"version":1,"status":"submitted","comment":"用户核对申请与材料后确认提交"}。
政策申请 kind=policy_application，data.policyId 必填；先读取政策说明与材料要求。
所有业务写操作带 Idempotency-Key: UUID；网络重试沿用原键，相同操作不会重复建单。409 先重新读取版本和状态，避免盲目覆盖。
入驻认定、发布、最终匹配、政策兑现只能由工作人员办理，Agent 没有审批权限。

## 上传实际附件
简单 HTTPS 上传：POST https://aibh.csfusion.me/api/files/attach，multipart/form-data，字段 recordId 与 file，带 Bearer 和 Idempotency-Key。支持 PDF/PNG/JPEG/DOCX，单份最多10MB，成功返回附件编号。无需安装项目或SDK。
例如终端 curl -X POST .../api/files/attach -H "Authorization: Bearer $TOKEN" -H "Idempotency-Key: $KEY" -F "recordId=$RECORD_ID" -F "file=@/path/to/material.pdf;type=application/pdf"（密钥不要写到输出中）。
网页与 Agent 使用同一上传接口，材料保存于私有存储，下载必须授权。旧 Blob 上传与登记接口已停止使用，请改用 /api/files/attach。
下载 GET /api/files/{attachmentId} 同样需要权限。失败保留原申请，检查类型、大小或授权后重试。

## 个人活动报名
先 GET /api/v1/activities/{id} 确认时间、地点、截止及剩余名额，询问姓名和联系方式，用户确认后：
POST /api/v1/activities/{id}/register {"name":"用户姓名","contact":"用户联系方式"}。
GET /api/v1/registrations 查询本人报名；POST /api/v1/activities/{id}/cancel-registration {} 在活动开始前取消。
报名立即成功，重复请求不会重复占位。截止或满额时不能报名，取消释放名额。需要 activities:write 的个人授权，不需要创建团队。

## 可选 MCP 与 CLI
标准远程 MCP：https://aibh.csfusion.me/mcp，OAuth 授权码+PKCE(S256)。元数据 https://aibh.csfusion.me/.well-known/oauth-authorization-server/api/auth 和 https://aibh.csfusion.me/.well-known/oauth-protected-resource/mcp。支持动态客户端注册与 CIMD。
CLI 随项目 cli/abh.mjs 交付，仅需 Node20+，无需项目依赖：login --url https://aibh.csfusion.me --purpose admission；活动改用 --purpose activity；scenes、activities、progress、registrations、upload RECORD_ID FILE、request METHOD RESOURCE --file JSON、logout。CLI为可选，不要求用户先下载安装。
HTTP API 契约：https://aibh.csfusion.me/openapi.json；公开索引：https://aibh.csfusion.me/llms.txt。
有网页读取/HTTP/终端能力的 Codex、Hermes、WorkBuddy 可直接使用本说明；是否支持 MCP 取决于客户端版本。协议测试通过不代表所有客户端均实际验收。
