@se-agent/platform-core
v0.3.0
Published
Framework-agnostic shared primitives for the SE Agent platform.
Downloads
250
Readme
@se-agent/platform-core
Agent 平台跨应用共享的框架无关基础能力,可发布到私有 npm 仓库供 Admin、Studio、Workspace 使用。
能力边界
- 平台地址注册、当前平台识别和跨平台跳转
- Access Token 存储契约与浏览器实现
- 远端登出与本地 Token 清理编排
- 与后端现有协议兼容的 AES、RSA 公钥加密和请求级加密上下文
包内不包含 React/Vue 组件、路由实例、Axios/fetch 实例、业务 API、环境变量读取和 RSA 私钥。各应用负责读取自己的环境变量,再通过参数注入本包。
平台跳转
import { createPlatformNavigator } from '@se-agent/platform-core'
const navigator = createPlatformNavigator(
{
admin: import.meta.env.VITE_ADMIN_URL,
studio: import.meta.env.VITE_STUDIO_URL,
application: import.meta.env.VITE_APPLICATION_URL,
},
window.location,
)
navigator.to('application')登出
import { createBrowserAccessTokenStorage, logout } from '@se-agent/platform-core'
const tokenStorage = createBrowserAccessTokenStorage()
// 默认 key:se-agent-platform:auth:v1:access-token
await logout({
tokenStorage,
remoteLogout: async (token) => {
const response = await fetch('/api/logout', {
method: 'POST',
headers: token ? { Authorization: `Bearer ${token}` } : {},
})
return { ok: response.ok, status: response.status }
},
})即使远端接口超时或失败,本地 Token 仍会清理。
请求级加密
import { createRequestCryptoContext } from '@se-agent/platform-core'
const cryptoContext = createRequestCryptoContext({
publicKey: import.meta.env.VITE_RSA_PUBLIC_KEY,
})
const response = await fetch('/api/sensitive', {
method: 'POST',
headers: { 'encrypt-key': cryptoContext.encryptedKey },
body: cryptoContext.encrypt(JSON.stringify(payload)),
})
const data = cryptoContext.decrypt(await response.text())每次请求创建独立上下文;不要把临时 AES Key 或上下文写入全局变量、Store、localStorage 或 sessionStorage。
开发
vp install
vp check
vp test
vp pack只从包根入口导入,禁止使用 @se-agent/platform-core/src/*。
