{"_id":"@agent-anvil-platform/sdk","_rev":"3-6ea2f925290d07db848b4b131d140871","name":"@agent-anvil-platform/sdk","dist-tags":{"latest":"0.7.0"},"versions":{"0.2.0":{"name":"@agent-anvil-platform/sdk","version":"0.2.0","keywords":["agent-anvil-platform","sdk","plugin","react"],"author":{"name":"MapleBytes"},"license":"UNLICENSED","_id":"@agent-anvil-platform/sdk@0.2.0","maintainers":[{"name":"ai-admin-platform","email":"987846224@qq.com"}],"homepage":"https://gitee.com/XimfengYao/agent-anvil-platform/tree/master/agent-anvil-frontend/packages/sdk","bugs":{"url":"https://gitee.com/XimfengYao/agent-anvil-platform/issues"},"dist":{"shasum":"b15626c71db5afecf35149ca8049b069f8d431b7","tarball":"https://registry.npmjs.org/@agent-anvil-platform/sdk/-/sdk-0.2.0.tgz","fileCount":27,"integrity":"sha512-7SF3EgP5Vx1lSNQY/9EeKx33byFRm6DjaWYumKPxpaf+mH9ID5REwO5nD3HzDKn57FI1qPkqjRFHRMhFvFOVQw==","signatures":[{"sig":"MEUCICrTCQnmIS+qJVbjPDHrbHH7dtFb7S3nJDEjIwcpQDBoAiEAsxPPoNVIoLPORthw5BrNgaJDgqaQVu4D8+rnyKEBkFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195541},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"vite build --watch","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.build.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"ai-admin-platform","email":"987846224@qq.com"},"repository":{"url":"git+https://gitee.com/XimfengYao/agent-anvil-platform.git","type":"git","directory":"agent-anvil-frontend/packages/sdk"},"_npmVersion":"10.9.3","description":"agent-anvil Platform 插件运行期共享 SDK：httpClient、zustand stores、A2UI 消息协议、通用 UI 组件与类型契约","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"antd":"^5.21.0","axios":"^1.7.0","zustand":"^4.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0"},"peerDependencies":{"react":"^18.3.0","react-dom":"^18.3.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1786530638238_0.7607326737002149","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@agent-anvil-platform/sdk","version":"0.3.0","keywords":["agent-anvil-platform","sdk","plugin","react"],"author":{"name":"MapleBytes"},"license":"Apache-2.0","_id":"@agent-anvil-platform/sdk@0.3.0","maintainers":[{"name":"ai-admin-platform","email":"987846224@qq.com"}],"homepage":"https://gitee.com/agent-anvil/agent-anvil-platform-sdk/tree/master/packages/sdk","bugs":{"url":"https://gitee.com/agent-anvil/agent-anvil-platform-sdk/issues"},"dist":{"shasum":"13b3b54da9beef520c19755f8cb65ccab4efe2e6","tarball":"https://registry.npmjs.org/@agent-anvil-platform/sdk/-/sdk-0.3.0.tgz","fileCount":27,"integrity":"sha512-xP3PgD9uxLOG3Q5RIjxWD/cr0IJD/MVm5R84xaTGdCa0qxL5LshsS5ORKIxZdzcR3s/BSIWYc5CnW9tHkD5czA==","signatures":[{"sig":"MEUCIQDed53S/kX4+eYW3yGAeEBtOEXbAE98Me4m2KHPBL+48QIgIfpciRP4IkJ/lf+MKcRBtjJxmzm7rnSUY1PrZDwwqpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195514},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"dev":"vite build --watch","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.build.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"ai-admin-platform","email":"987846224@qq.com"},"repository":{"url":"git+https://gitee.com/agent-anvil/agent-anvil-platform-sdk.git","type":"git","directory":"packages/sdk"},"_npmVersion":"10.9.3","description":"agent-anvil Platform 插件运行期共享 SDK：httpClient、zustand stores、A2UI 消息协议、通用 UI 组件与类型契约","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"antd":"^5.21.0","axios":"^1.7.0","zustand":"^4.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.0","typescript":"^5.5.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0"},"peerDependencies":{"react":"^18.3.0","react-dom":"^18.3.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1787013269037_0.6051879171239603","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@agent-anvil-platform/sdk","version":"0.7.0","description":"agent-anvil Platform 插件运行期共享 SDK：httpClient、zustand stores、A2UI 消息协议、通用 UI 组件与类型契约","keywords":["agent-anvil-platform","sdk","plugin","react"],"license":"Apache-2.0","author":{"name":"MapleBytes"},"homepage":"https://gitee.com/agent-anvil/agent-anvil-platform-sdk/tree/master/packages/sdk","repository":{"type":"git","url":"git+https://gitee.com/agent-anvil/agent-anvil-platform-sdk.git","directory":"packages/sdk"},"bugs":{"url":"https://gitee.com/agent-anvil/agent-anvil-platform-sdk/issues"},"type":"module","main":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./package.json":"./package.json"},"sideEffects":false,"engines":{"node":">=20"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"vite build && tsc -p tsconfig.build.json","dev":"vite build --watch","typecheck":"tsc -p tsconfig.build.json --noEmit","docs":"cd ../.. && npx typedoc --entryPoints packages/sdk/src/index.ts --out docs/api/sdk","prepublishOnly":"npm run build"},"dependencies":{"antd":"^5.21.0","axios":"^1.7.0","zustand":"^4.5.0"},"peerDependencies":{"react":"^18.3.0","react-dom":"^18.3.0"},"devDependencies":{"@types/react":"^18.3.0","@types/react-dom":"^18.3.0","typescript":"^5.5.0","vite":"^5.4.0"},"_id":"@agent-anvil-platform/sdk@0.7.0","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-JHkIAN97fYnqyCEj+c8f/At+nMHcXgo9QQEX6h33IDak1LRBLx3mUaDnGXxCxXlCwtbPv5TjEbCj1Fle8yv5lA==","shasum":"dc78611772a85e2b68b66d5e9fe752dcb1313496","tarball":"https://registry.npmjs.org/@agent-anvil-platform/sdk/-/sdk-0.7.0.tgz","fileCount":27,"unpackedSize":209763,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIClLSSSGvQP3BLu9WCOgPEE49xm5JCK9zmKhavRdwW/vAiAMmE/uvrfg7CG7k9HbV5HYyudN0CBQ5cwonXDMQIgVEw=="}]},"_npmUser":{"name":"ai-admin-platform","email":"987846224@qq.com"},"directories":{},"maintainers":[{"name":"ai-admin-platform","email":"987846224@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.7.0_1788917504548_0.826611201990344"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-12T10:30:38.082Z","modified":"2026-09-09T01:31:44.880Z","0.2.0":"2026-08-12T10:30:38.378Z","0.3.0":"2026-08-18T00:34:29.194Z","0.7.0":"2026-09-09T01:31:44.695Z"},"bugs":{"url":"https://gitee.com/agent-anvil/agent-anvil-platform-sdk/issues"},"author":{"name":"MapleBytes"},"license":"Apache-2.0","homepage":"https://gitee.com/agent-anvil/agent-anvil-platform-sdk/tree/master/packages/sdk","keywords":["agent-anvil-platform","sdk","plugin","react"],"repository":{"type":"git","url":"git+https://gitee.com/agent-anvil/agent-anvil-platform-sdk.git","directory":"packages/sdk"},"description":"agent-anvil Platform 插件运行期共享 SDK：httpClient、zustand stores、A2UI 消息协议、通用 UI 组件与类型契约","maintainers":[{"name":"ai-admin-platform","email":"987846224@qq.com"}],"readme":"# @agent-anvil-platform/sdk\r\n\r\nagent-anvil Platform 插件前端的**运行期共享 SDK**。\r\n\r\n主前端（宿主）把本包打进自己的 bundle 并在运行期提供实现；插件前端在构建期以**裸包名**\r\n`@agent-anvil-platform/sdk` 引用并被 externalize，运行期由宿主注入。因此**宿主与全部插件必须使用\r\nAPI 兼容的同一版本**，破坏性变更必须升 major。\r\n\r\n## 安装\r\n\r\n```bash\r\nnpm i @agent-anvil-platform/sdk\r\n```\r\n\r\n仓库内开发无需安装：本包是 `agent-anvil-frontend` 的 npm workspace 成员，\r\n`npm install` 后 `node_modules/@agent-anvil-platform/sdk` 会软链到 `packages/sdk` 源码目录。\r\n\r\n## 导出内容\r\n\r\n| 分类 | 导出 |\r\n|---|---|\r\n| HTTP | `httpClient`（axios 实例，统一 baseURL / 鉴权头 / 错误封装） |\r\n| 状态 | `useAuthStore`、`useChatStore`、`useLeftPanelStore`、`useSidePanelStore`（zustand） |\r\n| A2UI | `a2ui` 消息协议（宿主 ↔ 插件的跨界面通信） |\r\n| UI | `PageContainer`、`SectionCard`、`StatusTag` |\r\n| 类型 | 插件契约、Surface 契约等 TypeScript 类型声明 |\r\n\r\n以根入口统一导入：\r\n\r\n```ts\r\nimport { httpClient, useAuthStore, PageContainer } from '@agent-anvil-platform/sdk';\r\n```\r\n\r\n## 构建\r\n\r\n```bash\r\nnpm run build      # vite build（ESM 产物）+ tsc -p tsconfig.build.json（.d.ts）\r\nnpm run dev        # watch 模式\r\nnpm run typecheck  # 仅类型检查\r\n```\r\n\r\n产物固定为 `dist/index.mjs` + `dist/index.d.ts`；`react` / `react-dom` / `axios` / `zustand` /\r\n`antd` / `@ant-design/icons` 均为 external，不打进产物。\r\n\r\n## 发布\r\n\r\n```bash\r\nnpm version <patch|minor|major>\r\nnpm publish          # prepublishOnly 自动执行 build；registry 取 publishConfig\r\n```\r\n\r\n发布后必须**同批次**把主前端与 8 个插件前端的依赖 range 升到同一版本，\r\nCI 的 sdk 单版本断言会拦截版本分叉。\r\n\r\n## 权限契约（fail-closed）\r\n\r\n`useAuth`（auth store）的权限判定默认**拒绝**，不再存在「权限集为空即放行」的 fail-open 逻辑：\r\n\r\n- `hasPermission(code)`：`permissionsLoaded === false`（权限尚未下发完成）或权限集合不含\r\n  `code` 时一律返回 `false`；\r\n- `fetchPermissions()`：登录态就绪后调用，请求 `GET /api/user/permissions`\r\n  （`httpClient` baseURL 为 `/api`，SDK 内部路径写 `/user/permissions`），\r\n  解包平台统一 R 信封 `{ code, msg, data }`（`code === '0'` 为成功）下的\r\n  `data.permissionCodes` 与 `data.accessiblePluginIds`；\r\n- 拉取失败或 `code !== '0'` 时按空权限集处理（拒绝一切），避免卡在加载态；\r\n- 权限组件可订阅 `permissionsLoaded` 展示 loading，避免「加载完成前全部拒绝」的闪拒。\r\n","readmeFilename":"README.md"}