temp
This commit is contained in:
		
							
								
								
									
										27
									
								
								packages/webshell/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								packages/webshell/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| # Logs | ||||
| logs | ||||
| *.log | ||||
| npm-debug.log* | ||||
| yarn-debug.log* | ||||
| yarn-error.log* | ||||
| pnpm-debug.log* | ||||
| lerna-debug.log* | ||||
|  | ||||
| node_modules | ||||
| dist | ||||
| dist-ssr | ||||
| *.local | ||||
|  | ||||
| # Editor directories and files | ||||
| .vscode/* | ||||
| !.vscode/extensions.json | ||||
| .idea | ||||
| .DS_Store | ||||
| *.suo | ||||
| *.ntvs* | ||||
| *.njsproj | ||||
| *.sln | ||||
| *.sw? | ||||
|  | ||||
| tsconfig.app.tsbuildinfo | ||||
| tsconfig.node.tsbuildinfo | ||||
							
								
								
									
										33
									
								
								packages/webshell/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								packages/webshell/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <meta charset="UTF-8"> | ||||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
| <title>AI Apps</title> | ||||
| <link rel="stylesheet" href="./src/assets/index.css"> | ||||
| <style> | ||||
|   html, | ||||
|   body { | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
|     overflow: hidden; | ||||
|     font-size: 16px; | ||||
|   } | ||||
|  | ||||
|   #ai-root { | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
|   } | ||||
| </style> | ||||
| <!-- <script src="/system/lib/app.js"></script> --> | ||||
| <script src="https://kevisual.xiongxiao.me/system/lib/app.js"></script> | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|   <div id="ai-root"></div> | ||||
|   <!-- <div id="ai-bot-root"></div> --> | ||||
| </body> | ||||
| <script src="./src/main.ts" type="module"></script> | ||||
|  | ||||
| </html> | ||||
							
								
								
									
										13
									
								
								packages/webshell/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								packages/webshell/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| { | ||||
|   "name": "webshell", | ||||
|   "version": "0.0.1", | ||||
|   "description": "", | ||||
|   "main": "index.js", | ||||
|   "scripts": { | ||||
|     "test": "echo \"Error: no test specified\" && exit 1" | ||||
|   }, | ||||
|   "keywords": [], | ||||
|   "author": "abearxiong <xiongxiao@xiongxiao.me>", | ||||
|   "license": "MIT", | ||||
|   "type": "module" | ||||
| } | ||||
							
								
								
									
										0
									
								
								packages/webshell/src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								packages/webshell/src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										39
									
								
								packages/webshell/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								packages/webshell/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| { | ||||
|   "compilerOptions": { | ||||
|     "jsx": "react-jsx", | ||||
|     "target": "ES2020", | ||||
|     "useDefineForClassFields": true, | ||||
|     "lib": [ | ||||
|       "ES2020", | ||||
|       "DOM", | ||||
|       "DOM.Iterable" | ||||
|     ], | ||||
|     "module": "ESNext", | ||||
|     "skipLibCheck": true, | ||||
|     /* Bundler mode */ | ||||
|     "moduleResolution": "bundler", | ||||
|     "allowImportingTsExtensions": true, | ||||
|     "isolatedModules": true, | ||||
|     "moduleDetection": "force", | ||||
|     "noEmit": true, | ||||
|     "baseUrl": "./", | ||||
|     "typeRoots": [ | ||||
|       "node_modules/@types", | ||||
|       "node_modules/@kevisual/types", | ||||
|     ], | ||||
|     "paths": { | ||||
|       "@kevisual/resources/*": [ | ||||
|         "src/*" | ||||
|       ] | ||||
|     }, | ||||
|     /* Linting */ | ||||
|     "strict": true, | ||||
|     "noImplicitAny": false, | ||||
|     "noUnusedLocals": false, | ||||
|     "noUnusedParameters": false, | ||||
|     "noFallthroughCasesInSwitch": true | ||||
|   }, | ||||
|   "include": [ | ||||
|     "src", | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										92
									
								
								packages/webshell/vite.config.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								packages/webshell/vite.config.mjs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | ||||
| import { defineConfig } from 'vite'; | ||||
| import react from '@vitejs/plugin-react'; | ||||
| import path from 'path'; | ||||
| import tailwindcss from '@tailwindcss/vite'; | ||||
| import basicSsl from '@vitejs/plugin-basic-ssl'; | ||||
|  | ||||
| const isDev = process.env.NODE_ENV === 'development'; | ||||
| const plugins = [basicSsl()]; | ||||
| // const plugins = []; | ||||
| plugins.push(tailwindcss()); | ||||
| let proxy = {}; | ||||
| if (true) { | ||||
|   proxy = { | ||||
|     '/api': { | ||||
|       target: 'https://kevisual.silkyai.cn', | ||||
|       changeOrigin: true, | ||||
|       ws: true, | ||||
|       cookieDomainRewrite: 'localhost', | ||||
|       rewrite: (path) => path.replace(/^\/api/, '/api'), | ||||
|     }, | ||||
|     '/api/router': { | ||||
|       target: 'wss://kevisual.silkyai.cn', | ||||
|       changeOrigin: true, | ||||
|       ws: true, | ||||
|       rewriteWsOrigin: true, | ||||
|       rewrite: (path) => path.replace(/^\/api/, '/api'), | ||||
|     }, | ||||
|     '/user/login': { | ||||
|       target: 'https://kevisual.silkyai.cn', | ||||
|       changeOrigin: true, | ||||
|       cookieDomainRewrite: 'localhost', | ||||
|       rewrite: (path) => path.replace(/^\/user/, '/user'), | ||||
|     }, | ||||
|   }; | ||||
| } | ||||
| // https://vitejs.dev/config/ | ||||
| export default defineConfig({ | ||||
|   plugins: [react(), ...plugins], | ||||
|  | ||||
|   css: { | ||||
|     postcss: {}, | ||||
|   }, | ||||
|   resolve: { | ||||
|     alias: { | ||||
|       '@kevisual/resources': path.resolve(__dirname, './src'), | ||||
|       // 'react/jsx-dev-runtime': 'https://cdn.jsdelivr.net/npm/react/jsx-dev-runtime/+esm', | ||||
|       // 'react/jsx-runtime': 'https://cdn.jsdelivr.net/npm/react/jsx-runtime/+esm', | ||||
|       // 'react/jsx-runtime': path.resolve(__dirname, './node_modules/react/jsx-runtime'), | ||||
|       // 'react/jsx-dev-runtime': path.resolve(__dirname, './node_modules/react/jsx-dev-runtime'), | ||||
|       // 'react-dom/client': 'https://cdn.jsdelivr.net/npm/react-dom/client/+esm', | ||||
|       // react: 'https://cdn.jsdelivr.net/npm/react@19.0.0/+esm', | ||||
|       // 'react-dom': 'https://cdn.jsdelivr.net/npm/react-dom@19.0.0/+esm', | ||||
|        | ||||
|     }, | ||||
|   }, | ||||
|   define: { | ||||
|     DEV_SERVER: JSON.stringify(process.env.NODE_ENV === 'development'), | ||||
|     BASE_NAME: JSON.stringify('/root/resources/'), | ||||
|   }, | ||||
|   base: './', | ||||
|   // base: isDev ? '/' : '/root/resources/', | ||||
|   build: { | ||||
|     rollupOptions: { | ||||
|       // external: ['react', 'react-dom'], | ||||
|     }, | ||||
|   }, | ||||
|   server: { | ||||
|     port: 6022, | ||||
|     host: '0.0.0.0', | ||||
|     proxy: { | ||||
|       '/system/lib': { | ||||
|         target: 'https://kevisual.xiongxiao.me', | ||||
|         changeOrigin: true, | ||||
|       }, | ||||
|       '/api': { | ||||
|         target: 'http://localhost:4005', | ||||
|         changeOrigin: true, | ||||
|         ws: true, | ||||
|         cookieDomainRewrite: 'localhost', | ||||
|         rewrite: (path) => path.replace(/^\/api/, '/api'), | ||||
|       }, | ||||
|       '/api/router': { | ||||
|         target: 'ws://localhost:4005', | ||||
|         changeOrigin: true, | ||||
|         ws: true, | ||||
|         rewriteWsOrigin: true, | ||||
|         rewrite: (path) => path.replace(/^\/api/, '/api'), | ||||
|       }, | ||||
|       ...proxy, | ||||
|     }, | ||||
|   }, | ||||
| }); | ||||
							
								
								
									
										19
									
								
								packages/webshell/webshell-node/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								packages/webshell/webshell-node/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| { | ||||
|   "name": "webshell-node", | ||||
|   "version": "0.0.1", | ||||
|   "description": "", | ||||
|   "main": "index.js", | ||||
|   "scripts": { | ||||
|     "test": "echo \"Error: no test specified\" && exit 1" | ||||
|   }, | ||||
|   "keywords": [], | ||||
|   "author": "abearxiong <xiongxiao@xiongxiao.me>", | ||||
|   "license": "MIT", | ||||
|   "type": "module", | ||||
|   "dependencies": { | ||||
|     "node-pty": "^1.0.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@kevisual/types": "^0.0.6" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										20
									
								
								packages/webshell/webshell-node/src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								packages/webshell/webshell-node/src/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| import os from 'node:os'; | ||||
| import pty, { IPty } from 'node-pty'; | ||||
|  | ||||
| const shell: string = os.platform() === 'win32' ? 'powershell.exe' : 'bash'; | ||||
| console.log(shell); | ||||
| const ptyProcess: IPty = pty.spawn(shell, [], { | ||||
|   name: 'xterm-color', | ||||
|   cols: 80, | ||||
|   rows: 30, | ||||
|   cwd: process.env.HOME || '', | ||||
|   env: process.env as NodeJS.ProcessEnv, | ||||
| }); | ||||
|  | ||||
| ptyProcess.onData((data: string) => { | ||||
|   process.stdout.write(data); | ||||
| }); | ||||
|  | ||||
| ptyProcess.write('ls\r'); | ||||
| ptyProcess.resize(100, 40); | ||||
| ptyProcess.write('ls\r'); | ||||
		Reference in New Issue
	
	Block a user