业务平台(Vue + TS + UnoCSS)需要在浏览器里直接对话:流式事件、审批、上传文件。原设计在前端直接使用 API Key,这样任何能打开平台页面的人都能从开发者工具中拿到 Key 并长期使用。另外,@agent-server/client / chat-ui 只是仓库内的 TS 源码,平台项目无法直接安装。
POST /v1/browser-tokens 换取短期令牌 bt_…,交给浏览器使用。
AgentClient 新增 getTokenbrowserTokenProvider 负责缓存令牌、过期前 60 秒换新、合并并发请求;遇到 401 时刷新令牌并重试一次credentials: 'same-origin':后台同源时继续使用 Cookie,跨域时不带 Cookie/v1 开放给后台"设置 › 安全 › CORS 来源"中逐个列出的地址(https://host[:port])Access-Control-Allow-Credentials/admin/v1、/mcp 不开放scripts/build-sdk.mjs 构建三个包,部署时发布到服务的 /sdk/(公开,不含密钥),平台用 URL 安装。
@agent-server/shared(类型与常量)、@agent-server/client、@agent-server/chat-ui(ESM + 类型声明 + 编译好的 style.css)vue-scoped 模式,生成的原子类写入各组件的 scoped 样式,不与平台自己的 UnoCSS / Tailwind 类冲突。
style.css 只包含 --app-* 设计变量,以及作用于 .agent-chat 内部的基础样式,不改动宿主页面的 html / body--app-* 变量调整配色;<html data-theme="light|dark"> 可以指定亮/暗