{"openapi":"3.1.0","info":{"title":"AI Builder House API","version":"1.1.0","description":"网页、HTTP、CLI、MCP 共用业务权限。示例记录 example=true。公开返回永不包含联系方式、材料或悬赏金额。"},"servers":[{"url":"https://aibh.csfusion.me/api/v1"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"RecordInput":{"type":"object","required":["kind","orgId","title","summary"],"properties":{"kind":{"enum":["admission","scene","policy_application","consultation"]},"orgId":{"type":"string"},"title":{"type":"string","minLength":2,"maxLength":180},"summary":{"type":"string","maxLength":12000},"category":{"type":"string"},"data":{"type":"object","properties":{"policyId":{"type":"string","description":"政策申请必填"},"background":{"type":"string"},"outcomes":{"type":"string"},"constraints":{"type":"string"},"budgetMode":{"enum":["reward","negotiation"]}}},"privateData":{"type":"object","properties":{"contact":{"type":"string"},"materials":{"type":"string"},"reward":{"type":"number","minimum":0}}}}}}},"paths":{"/api/agent/start":{"servers":[{"url":"https://aibh.csfusion.me"}],"post":{"summary":"按办理目的开始标准设备授权","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientName":{"type":"string"},"purpose":{"enum":["admission","policy","consultation","scene","activity","progress"]},"target":{"enum":["personal","organization"]}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/api/files/attach":{"servers":[{"url":"https://aibh.csfusion.me"}],"post":{"summary":"网页与 HTTP 附件上传（最大10MB，私有存储）","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["recordId","file"],"properties":{"recordId":{"type":"string"},"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/activities":{"get":{"summary":"公开活动（search/page）；view=admin需活动管理权限","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}},"post":{"summary":"工作人员保存活动草稿","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/activities/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"活动详情、名额及本人报名","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}},"patch":{"summary":"工作人员更新草稿，需version","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/activities/{id}/register":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"post":{"summary":"个人报名；activities:write个人授权","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","contact"],"properties":{"name":{"type":"string"},"contact":{"type":"string"}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/activities/{id}/cancel-registration":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"post":{"summary":"取消个人报名","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/registrations":{"get":{"summary":"本人报名；portal:read个人授权","security":[{"bearer":[]}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/activities/{id}/transition":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"post":{"summary":"工作人员活动审核、发布或取消","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/activities/{id}/registrations":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"有权限工作人员查询名单","security":[{"bearer":[]}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/activities/{id}/export":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"有权限工作人员导出名单CSV","security":[{"bearer":[]}],"responses":{"200":{"description":"报名名单CSV"},"403":{"description":"主体、权限或授权范围不足"}}}},"/records":{"get":{"summary":"查询公开资料或自己的事项","parameters":[{"name":"kind","in":"query","schema":{"type":"string"}},{"name":"search","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"string"}},{"name":"view","in":"query","schema":{"enum":["public","mine","admin"]}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}},"post":{"summary":"创建草稿","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordInput"}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/records/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"读取公开详情或授权的内部事项","responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}},"patch":{"summary":"更新草稿或补正材料（version 必填）","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["version","title","summary","category"],"properties":{"version":{"type":"integer"},"title":{"type":"string","minLength":2,"maxLength":180},"summary":{"type":"string","maxLength":12000},"category":{"type":"string","maxLength":80},"data":{"$ref":"#/components/schemas/RecordInput/properties/data"},"privateData":{"$ref":"#/components/schemas/RecordInput/properties/privateData"}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/records/{id}/transition":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"post":{"summary":"提交申请或补正 / 撤回","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["version","status","comment"],"properties":{"version":{"type":"integer"},"status":{"enum":["submitted","withdrawn"]},"comment":{"type":"string","minLength":1}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/records/{id}/claims":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"post":{"summary":"正式入驻主体申请认领","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["orgId","proposal"],"properties":{"orgId":{"type":"string"},"proposal":{"type":"string","minLength":10}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/me":{"get":{"summary":"读取当前身份、授权范围、所属主体","security":[{"bearer":[]}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/organizations":{"get":{"summary":"公开主体 / view=mine 查询授权主体","parameters":[{"name":"view","in":"query","schema":{"enum":["public","mine"]}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/organizations/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"patch":{"summary":"负责人更新主体档案，公开需要人工审核","security":[{"bearer":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":150},"description":"每次业务操作使用新的 UUID；重试沿用原值。"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["version","name","description","capabilities","contact","publicConsent"],"properties":{"version":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"},"capabilities":{"type":"string"},"contact":{"type":"string"},"publicConsent":{"type":"boolean"}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}},"/claims":{"get":{"summary":"本人主体的认领记录","security":[{"bearer":[]}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"参数不完整"},"401":{"description":"需要认证"},"403":{"description":"主体、权限或授权范围不足"},"404":{"description":"不存在或不可见"},"409":{"description":"状态、版本或幂等冲突"},"429":{"description":"请求过于频繁"}}}}}}