SuperAPI AI 工具集

openbot-data-access

数据与分析

查看项目

更新于 10-15 20:28

技能介绍

用途:该技能约束 OpenBot 浏览器应用在 app/src 下与 API 服务器之间的所有数据读写,适用于新增页面、端点、查询键,以及任何在 app/src/lib/client.ts 之外引入 fetch 的改动。不覆盖 server/ 下的服务端处理器、zod 表单 schema(lib/<entity>/form.ts)和页面布局;lib/copilot/ 中 Bot 回合内的工具调用属于普通认证请求,同样走 client。

主要能力与结构:每个实体在 app/src/lib/ 下拥有目录,含 queries.ts(读类型、键工厂、queryOptions 工厂)、mutations.ts(输入类型、mutationOptions 工厂)、form.ts(zod schema,属其他技能)。client.ts 负责传输层:凭据、JSON 内容类型、请求体序列化、把失败状态转为携带服务端消息的 Error。提供 client<T>(path, key, options?)、client(path, options?)、tryClient(path, options?) 三种形式;options 为 { method?, body?, fallback?, signal? },body 由 client 序列化,调用方传对象而非字符串。请求分三类:缓存读用 queries.ts 的 queryOptions 工厂;用户发起的写用 mutations.ts 的 mutationOptions 工厂并在成功时失效;其余(如 decideComponent、testAgentConnection、callPluginTool)为普通导出函数,失败即返回而非抛出。目前有 agents、audit、auth、channels、components、computers、connectors、credentials、package、plugins、sandboxed、skills、copilot 十三个实体,lib/agents/queries.ts 与 mutations.ts 为参考范例。

使用方式:新增读时声明浏览器侧类型、把服务端授权判定作为字段(canManage、systemOwned、mine、hasAuth),密钥值不得进入读类型;键工厂以实体名为失效根,列表参数放尾部对象;queryFn 内调用 client 并显式标注返回类型。新增写时声明 <Entity>Input,调用 client,每个文件保留一个 const FALLBACK,成功时用 invalidateQueries 而非手工改缓存。组件中导入工厂与 @/query-client 的单例 queryClient,按 pending、error、empty、rows 四态分支,pending 返回 null(OpenBot 无加载占位)。路由守卫用 beforeLoad 配合 ensureQueryData 预加载。

限制:组件内出现 fetch 即视为错误;不得使用 useQueryClient() 或新建 QueryClient;不得内联 queryKey;不得手工提取 body.error;401 由 _authed 守卫处理,仅 currentUserQueryOptions 用 tryClient。资料未提供安装命令、收费与平台信息。