diff --git a/.npmrc b/.npmrc
index 9835c4d..3f02032 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1,4 +1,4 @@
-registry = "https://registry.npmmirror.com"
+registry = https://registry.npmmirror.com
@sy:registry=http://sy-registry.shiyue.com
public-hoist-pattern[]=husky
public-hoist-pattern[]=eslint
diff --git a/apps/docs/src/guide/integration/index.md b/apps/docs/src/guide/integration/index.md
new file mode 100644
index 0000000..d3ec0d0
--- /dev/null
+++ b/apps/docs/src/guide/integration/index.md
@@ -0,0 +1,125 @@
+# 低代码渲染器接入指南
+
+## 1. 概述
+
+- 1.1 什么是低代码渲染器
+- 1.2 核心功能和优势
+- 1.3 适用项目
+ - vue2
+ - vue3
+ - react
+ - 其他框架请联系伊利(sy)或王雪峰(sy3570)添加适配器
+
+## 2. 环境要求
+
+- node >= 20
+- vue2 > 2.7.0
+- vue3 > 3.5.0
+- react > 18.0.0
+
+## 3. 准备工作
+
+1.npmrc 配置文件增加镜像指定,sy 组件库走 shiyue 源,其他走淘宝镜像
+
+```bash
+registry=https://registry.npmmirror.com
+@sy:registry=http://sy-registry.shiyue.com
+```
+
+2. node 至少要升级为 20 以上的版本
+
+```bash
+nvm install 20
+nvm use 20
+```
+
+若不可行,请查看 node 官网历代大版本的 lts 版本(长期维护),自行安装,查看是否能正常渲染,选取稳定渲染悦码的那一个 node 版本作为开发环境
+
+## 5. 接入方式
+
+### vue2 项目接入
+
+```bash
+pnpm i @sy/wujie-vue2-renderer-adapter@latest --save
+# or 或者
+npm i @sy/wujie-vue2-renderer-adapter@latest --save
+```
+
+### vue3 项目接入
+
+```bash
+pnpm i @sy/wujie-vue3-renderer-adapter@latest --save
+# or 或者
+npm i @sy/wujie-vue3-renderer-adapter@latest --save
+```
+
+### react 项目接入
+
+```bash
+pnpm i @sy/wujie-react-renderer-adapter@latest --save
+# or 或者
+npm i @sy/wujie-react-renderer-adapter@latest --save
+```
+
+## API 参考
+
+- 6.1 Props 参数详解
+- 6.2 事件监听与回调
+- 6.3 实例方法
+- 6.4 拦截器使用
+
+## 7. 高级用法
+
+- 7.1 自定义主题
+- 7.2 数据交互与通信
+- 7.3 插件扩展
+- 7.4 微前端降级处理
+
+## 8. 故障排除
+
+- 8.1 常见错误及解决方案
+- 8.2 日志与调试
+ - 悦码的日志输出一般在控制台中有 `console.ts 40` 的源码位置标记
+- 8.3 兼容性问题处理
+- renderer-adapter 是默认使用无界降级的 iframe 加载悦码渲染器应用的,你如果希望悦码与你的页面有更深的上下文结合和交互,你可以手动设置 `degrade` 为 `false`,这将开启高级渲染,但有一定的兼容性问题,如果需要在 C 端运行业务,我建议你采用默认的渲染模式
+
+```vue
+
+
+
+
+
+
+
+
+
+```
+
+- 8.4 性能问题诊断
+- 悦码渲染器内部使用了 sentry 上报错误,你可以跟 徐川(sy0182) 申请对应警告邮箱的使用权,获取报错邮件
+
+
+
+## 9. 最佳实践
+
+- 9.1 推荐的项目结构
+- 9.2 安全性建议
+- 9.3 性能优化建议
+- 9.4 版本升级策略
+
+## 10. 示例
+
+ - 10.1 基础示例
+ - 10.2 完整应用示例
+ - 10.3 实际案例展示
+
+## 11. 常见问题 (FAQ)
+
+## 12. 联系支持与反馈渠道
diff --git a/apps/renderer/src/index.ts b/apps/renderer/src/index.ts
index 47c2c8f..dceb89a 100644
--- a/apps/renderer/src/index.ts
+++ b/apps/renderer/src/index.ts
@@ -17,6 +17,15 @@ const app = createApp(App);
Sentry.init({
app,
dsn: 'https://5bcf1344794fea64fc5e5fe7da4821c1@o4508962650783744.ingest.de.sentry.io/4508962653143120',
+ integrations: [
+ // 异常路径回放
+ Sentry.replayIntegration(),
+ // 异常端信息追踪
+ Sentry.browserTracingIntegration(),
+ ],
+ // Session Replay
+ replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.
+ replaysOnErrorSampleRate: 1, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.
});
// 批量注册组件
diff --git a/apps/renderer/src/utils/alert.ts b/apps/renderer/src/utils/alert.ts
new file mode 100644
index 0000000..a2b5c70
--- /dev/null
+++ b/apps/renderer/src/utils/alert.ts
@@ -0,0 +1,3 @@
+export function test() {
+ console.log('test');
+}
diff --git a/apps/renderer/src/utils/index.ts b/apps/renderer/src/utils/index.ts
new file mode 100644
index 0000000..ab34032
--- /dev/null
+++ b/apps/renderer/src/utils/index.ts
@@ -0,0 +1 @@
+export * from './alert';
diff --git a/packages/renderer-adapter/wujie-vue2/package.json b/packages/renderer-adapter/wujie-vue2/package.json
new file mode 100644
index 0000000..54dbe64
--- /dev/null
+++ b/packages/renderer-adapter/wujie-vue2/package.json
@@ -0,0 +1,39 @@
+{
+ "name": "@sy/wujie-vue3-renderer-adapter",
+ "version": "1.0.0-alpha.2",
+ "description": "wujie-vue3 ycode renderer adapter",
+ "type": "module",
+ "scripts": {
+ "build": "vite build"
+ },
+ "alias": {
+ "#": "./src"
+ },
+ "files": [
+ "dist"
+ ],
+ "main": "./dist/index.cjs",
+ "module": "./dist/index.js",
+ "unpkg": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./dist/types/index.d.ts",
+ "import": "./dist/index.mjs",
+ "require": "./dist/index.cjs",
+ "default": "./dist/index.mjs"
+ }
+ },
+ "dependencies": {
+ "licia-es": "catalog:",
+ "vue": "2.7.16",
+ "wujie-vue2": "1.0.22"
+ },
+ "devDependencies": {
+ "@types/axios": "0.14.4",
+ "@vitejs/plugin-vue": "catalog:",
+ "axios": "catalog:",
+ "vite-plugin-dts": "catalog:",
+ "vue-router": ""
+ }
+}
diff --git a/packages/renderer-adapter/wujie-vue2/src/adapter.vue b/packages/renderer-adapter/wujie-vue2/src/adapter.vue
new file mode 100644
index 0000000..5b4aab6
--- /dev/null
+++ b/packages/renderer-adapter/wujie-vue2/src/adapter.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
diff --git a/packages/renderer-adapter/wujie-vue2/src/index.ts b/packages/renderer-adapter/wujie-vue2/src/index.ts
new file mode 100644
index 0000000..8e94574
--- /dev/null
+++ b/packages/renderer-adapter/wujie-vue2/src/index.ts
@@ -0,0 +1 @@
+export { default } from './adapter.vue';
diff --git a/packages/renderer-adapter/wujie-vue2/tsconfig.json b/packages/renderer-adapter/wujie-vue2/tsconfig.json
new file mode 100644
index 0000000..7c018f7
--- /dev/null
+++ b/packages/renderer-adapter/wujie-vue2/tsconfig.json
@@ -0,0 +1,29 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "jsx": "preserve",
+ "jsxFactory": "h",
+ "jsxFragmentFactory": "Fragment",
+ "lib": ["ESNext", "DOM", "DOM.Iterable"],
+ "baseUrl": ".",
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "paths": {
+ "@/*": ["src/*"]
+ },
+ "resolveJsonModule": true,
+ "types": ["vite/client", "vue/runtime-dom"],
+ "strict": true,
+ "useUnknownInCatchVariables": false,
+ "declaration": true,
+ "declarationDir": "dist/types",
+ "outDir": "dist",
+ "sourceMap": true,
+ "allowSyntheticDefaultImports": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "skipLibCheck": true
+ },
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/packages/renderer-adapter/wujie-vue2/vite.config.ts b/packages/renderer-adapter/wujie-vue2/vite.config.ts
new file mode 100644
index 0000000..0b98961
--- /dev/null
+++ b/packages/renderer-adapter/wujie-vue2/vite.config.ts
@@ -0,0 +1,68 @@
+import path from 'node:path';
+import { fileURLToPath } from 'node:url';
+
+import vue from '@vitejs/plugin-vue';
+import { defineConfig } from 'vite';
+import dts from 'vite-plugin-dts';
+
+const __dirname = path.dirname(fileURLToPath(import.meta.url));
+
+export default defineConfig({
+ build: {
+ cssCodeSplit: true,
+ lib: {
+ entry: path.resolve(__dirname, 'src/index.ts'),
+ fileName: (format) => {
+ switch (format) {
+ case 'cjs': {
+ return 'index.cjs';
+ }
+ case 'es': {
+ return 'index.mjs';
+ }
+ case 'umd': {
+ return 'index.js';
+ }
+ default: {
+ return `index.${format}.js`;
+ }
+ }
+ },
+ formats: ['es', 'cjs', 'umd'],
+ name: 'RendererAdapter',
+ },
+ outDir: 'dist',
+ rollupOptions: {
+ external: ['vue'],
+ output: {
+ assetFileNames: (assetInfo) => {
+ if (assetInfo.name === 'style.css') return 'assets/[name][extname]';
+ return 'assets/[name]-[hash][extname]';
+ },
+ globals: {
+ vue: 'Vue',
+ },
+ },
+ },
+ sourcemap: true,
+ },
+ css: {
+ extract: false,
+ modules: {
+ localsConvention: 'camelCaseOnly',
+ scopeBehaviour: 'local',
+ },
+ },
+ plugins: [
+ vue({
+ css: {
+ injectCss: true,
+ },
+ }),
+ dts({
+ insertTypesEntry: true,
+ outDir: 'dist/types',
+ staticImport: true,
+ }),
+ ],
+});