chore(gpuu): migrate to @moeru-ai/gpuu (#145)

* chore(gpuu): migrate to @moeru-ai/gpuu
* chore: install gpuu
This commit is contained in:
RainbowBird
2025-04-27 15:19:57 +08:00
committed by GitHub
parent 30e338c475
commit 6961c43f1c
7 changed files with 81 additions and 156 deletions
+1 -1
View File
@@ -54,7 +54,7 @@
"drizzle-kit": "^0.31.0",
"drizzle-orm": "^0.43.1",
"fluere": "0.3.0-beta.1",
"gpuu": "workspace:^",
"gpuu": "^1.0.0",
"jszip": "^3.10.1",
"localforage": "^1.10.0",
"node-vibrant": "^4.0.3",
-50
View File
@@ -1,50 +0,0 @@
{
"name": "gpuu",
"type": "module",
"version": "0.4.25",
"description": "A collection of utilities for working with GPUs, especially for WebGPU.",
"author": {
"name": "Neko Ayaka",
"email": "neko@ayaka.moe",
"url": "https://github.com/nekomeowww"
},
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/moeru-ai/airi.git",
"directory": "packages/gpuu"
},
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.mjs",
"require": "./dist/index.cjs"
},
"./webgpu": {
"types": "./dist/webgpu/index.d.ts",
"import": "./dist/webgpu/index.mjs",
"require": "./dist/webgpu/index.cjs"
}
},
"main": "./dist/index.cjs",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
"files": [
"README.md",
"dist",
"package.json"
],
"scripts": {
"dev": "pnpm run stub",
"stub": "unbuild --stub",
"build": "unbuild",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"defu": "^6.1.4"
},
"devDependencies": {
"@types/node": "^22.15.2",
"@webgpu/types": "^0.1.60"
}
}
-1
View File
@@ -1 +0,0 @@
console.warn('Please import \'gpuu\' instead.')
-40
View File
@@ -1,40 +0,0 @@
export interface WebGPUCheckResult {
supported: boolean
fp16Supported: boolean
isNode: boolean
reason: string
adapter?: GPUAdapter
}
export async function check(): Promise<WebGPUCheckResult> {
try {
if (isInNodejsRuntime())
return { supported: false, isNode: true, reason: '', fp16Supported: false }
if (typeof navigator === 'undefined' || !navigator.gpu)
return { supported: false, isNode: false, reason: 'WebGPU is not available (navigator.gpu is undefined)', fp16Supported: false }
const adapter = await navigator.gpu.requestAdapter()
if (!adapter)
return { supported: false, isNode: false, reason: 'WebGPU is not supported (no adapter found)', fp16Supported: false }
return { supported: true, isNode: false, reason: '', adapter, fp16Supported: adapter.features.has('shader-f16') }
}
catch (error) {
const errorMessage = error instanceof Error ? error.toString() : String(error)
return { supported: false, isNode: false, reason: errorMessage, fp16Supported: false }
}
}
function isInNodejsRuntime() {
// eslint-disable-next-line node/prefer-global/process
return typeof process !== 'undefined'
// eslint-disable-next-line node/prefer-global/process
&& 'versions' in process && process.versions != null && typeof process.versions === 'object'
// eslint-disable-next-line node/prefer-global/process
&& 'node' in process.versions && process.versions.node != null
}
export async function isWebGPUSupported() {
return check().then(result => result.supported)
}
-2
View File
@@ -1,2 +0,0 @@
export { check } from './checker'
export type { WebGPUCheckResult } from './checker'
-29
View File
@@ -1,29 +0,0 @@
{
"compilerOptions": {
"target": "ESNext",
"lib": [
"ESNext",
"DOM",
"DOM.Iterable",
"WebWorker"
],
"module": "ESNext",
"moduleResolution": "bundler",
"types": [
"node",
// @webgpu/types
// https://www.npmjs.com/package/@webgpu/types
"@webgpu/types"
],
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"skipLibCheck": true
},
"include": [
"src/**/*.ts",
"src/**/*.d.ts",
"src/**/*.mts"
]
}
+80 -33
View File
@@ -413,7 +413,7 @@ importers:
version: 2.3.0
'@intlify/unplugin-vue-i18n':
specifier: ^6.0.8
version: 6.0.8(@vue/compiler-dom@3.5.13)(eslint@9.25.1(jiti@2.4.2))(rollup@2.79.1)(typescript@5.8.3)(vue-i18n@11.1.3(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
version: 6.0.8(@vue/compiler-dom@3.5.13)(eslint@9.25.1(jiti@2.4.2))(rollup@4.40.0)(typescript@5.8.3)(vue-i18n@11.1.3(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
'@proj-airi/lobe-icons':
specifier: ^1.0.5
version: 1.0.5
@@ -458,7 +458,7 @@ importers:
version: 3.0.0-beta.10(typescript@5.8.3)(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))
'@vueuse/motion':
specifier: ^3.0.3
version: 3.0.3(magicast@0.3.5)(rollup@2.79.1)(vue@3.5.13(typescript@5.8.3))
version: 3.0.3(magicast@0.3.5)(rollup@4.40.0)(vue@3.5.13(typescript@5.8.3))
'@xsai-transformers/embed':
specifier: ^0.0.5
version: 0.0.5(web-worker@1.5.0)
@@ -473,13 +473,13 @@ importers:
version: 3.2.0(unocss@66.1.0-beta.12(postcss@8.5.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3)))
unplugin-auto-import:
specifier: ^19.1.2
version: 19.1.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))
version: 19.1.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))
unplugin-vue-components:
specifier: ^28.5.0
version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(vue@3.5.13(typescript@5.8.3))
version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(vue@3.5.13(typescript@5.8.3))
unplugin-vue-macros:
specifier: ^2.14.5
version: 2.14.5(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))(esbuild@0.25.2)(rollup@2.79.1)(typescript@5.8.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))
version: 2.14.5(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))(esbuild@0.25.2)(rollup@4.40.0)(typescript@5.8.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))
unplugin-vue-markdown:
specifier: ^28.3.1
version: 28.3.1(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))
@@ -488,13 +488,13 @@ importers:
version: 0.12.0(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
vite-bundle-visualizer:
specifier: ^1.2.1
version: 1.2.1(rollup@2.79.1)
version: 1.2.1(rollup@4.40.0)
vite-plugin-pwa:
specifier: ^1.0.0
version: 1.0.0(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
vite-plugin-vue-devtools:
specifier: ^7.7.5
version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(rollup@2.79.1)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
vite-plugin-vue-layouts:
specifier: ^0.11.0
version: 0.11.0(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
@@ -616,8 +616,8 @@ importers:
specifier: 0.3.0-beta.1
version: 0.3.0-beta.1(@modelcontextprotocol/sdk@1.10.2)(zod@3.24.3)
gpuu:
specifier: workspace:^
version: link:../../packages/gpuu
specifier: ^1.0.0
version: 1.0.0
jszip:
specifier: ^3.10.1
version: 3.10.1
@@ -720,7 +720,7 @@ importers:
version: 1.2.20
'@intlify/unplugin-vue-i18n':
specifier: ^6.0.8
version: 6.0.8(@vue/compiler-dom@3.5.13)(eslint@9.25.1(jiti@2.4.2))(rollup@4.40.0)(typescript@5.8.3)(vue-i18n@11.1.3(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
version: 6.0.8(@vue/compiler-dom@3.5.13)(eslint@9.25.1(jiti@2.4.2))(rollup@2.79.1)(typescript@5.8.3)(vue-i18n@11.1.3(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
'@proj-airi/lobe-icons':
specifier: ^1.0.5
version: 1.0.5
@@ -759,7 +759,7 @@ importers:
version: 3.0.0-beta.10(typescript@5.8.3)(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))
'@vueuse/motion':
specifier: ^3.0.3
version: 3.0.3(magicast@0.3.5)(rollup@4.40.0)(vue@3.5.13(typescript@5.8.3))
version: 3.0.3(magicast@0.3.5)(rollup@2.79.1)(vue@3.5.13(typescript@5.8.3))
hfup:
specifier: ^0.5.0
version: 0.5.0(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0)
@@ -771,13 +771,13 @@ importers:
version: 4.0.1
unplugin-auto-import:
specifier: ^19.1.2
version: 19.1.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))
version: 19.1.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))
unplugin-vue-components:
specifier: ^28.5.0
version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(vue@3.5.13(typescript@5.8.3))
version: 28.5.0(@babel/parser@7.27.0)(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(vue@3.5.13(typescript@5.8.3))
unplugin-vue-macros:
specifier: ^2.14.5
version: 2.14.5(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))(esbuild@0.25.2)(rollup@4.40.0)(typescript@5.8.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))
version: 2.14.5(@vueuse/core@13.1.0(vue@3.5.13(typescript@5.8.3)))(esbuild@0.25.2)(rollup@2.79.1)(typescript@5.8.3)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-tsc@3.0.0-alpha.4(typescript@5.8.3))(vue@3.5.13(typescript@5.8.3))
unplugin-vue-markdown:
specifier: ^28.3.1
version: 28.3.1(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))
@@ -786,13 +786,13 @@ importers:
version: 0.12.0(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
vite-bundle-visualizer:
specifier: ^1.2.1
version: 1.2.1(rollup@4.40.0)
version: 1.2.1(rollup@2.79.1)
vite-plugin-pwa:
specifier: ^1.0.0
version: 1.0.0(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
vite-plugin-vue-devtools:
specifier: ^7.7.5
version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
version: 7.7.5(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@2.79.1))(rollup@2.79.1)(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue@3.5.13(typescript@5.8.3))
vite-plugin-vue-layouts:
specifier: ^0.11.0
version: 0.11.0(vite@6.3.3(@types/node@22.15.2)(jiti@2.4.2)(less@4.3.0)(terser@5.17.6)(tsx@4.19.3)(yaml@2.7.0))(vue-router@4.5.1(vue@3.5.13(typescript@5.8.3)))(vue@3.5.13(typescript@5.8.3))
@@ -5287,6 +5287,9 @@ packages:
'@xsai-ext/shared-providers@0.2.0-beta.5':
resolution: {integrity: sha512-HNiFi19CzPIwxFiJbu70YDNRhwscfC9yFZ2b24dpaRDHsDAMlDDR9buuYJjeN+16EmBp1ODD+T4Q6yDgNpfk0g==}
'@xsai-ext/shared-providers@0.2.0-beta.6':
resolution: {integrity: sha512-k1UjAqk7NA0NsJmWAFWYyPoYPiuuvHLHUxiCP5wahwp9xubTAqkdOcZP+bjkBFUtpVkFKW365jJ0tSs6xygorg==}
'@xsai-transformers/embed@0.0.5':
resolution: {integrity: sha512-lBHSNVPomexFLcl4LKOgt04+j7oprXSvV0QsdMDsx6TXVJL40OnqtBUfZ8/nRNjx2AujkbrueYFSCk8bn5Ljtg==}
peerDependencies:
@@ -5316,12 +5319,18 @@ packages:
'@xsai/shared-chat@0.2.0-beta.5':
resolution: {integrity: sha512-GbjXeMFylP07sNlSpJIIsJysi866tUnTIw+yFLL5G9i8Bi8uHiBxcJJNxw5P5GUXJ1nuq5jEe4Vo+Gsnz0Xd1Q==}
'@xsai/shared-chat@0.2.0-beta.6':
resolution: {integrity: sha512-gzeMfPu7NHcHYeg1kIeET99wtrNezMbU6T85yk8xPovqJttcEkxpST0dAvXhPtwCyg4o3SYkKtT2Etl1xm3UEw==}
'@xsai/shared@0.2.0-beta.2':
resolution: {integrity: sha512-IWMv1lO6BqvX7PiqVlFLuVnF1eXjQ4V0ustTADIk21eacVoaS58lPs+XXnqyy354xX+FQohlPNNKD89lpkRlOQ==}
'@xsai/shared@0.2.0-beta.5':
resolution: {integrity: sha512-3Ca5ORn49p5PRdhA156rw0izX1azUnM1K/falv0SEBVQhOEGNNGUQLGWCuh9JHKamoRMfkw47gCR+30Onr6r+g==}
'@xsai/shared@0.2.0-beta.6':
resolution: {integrity: sha512-mDKSXhQpiYansxwe0+oG20drKkYJrOuQM9fMiThgjNgTPBkGd1CvnwJWSwPZQeHgQ7ytNJ/Vd8P3s1lLUlT1Xg==}
'@xsai/stream-text@0.2.0-beta.5':
resolution: {integrity: sha512-nCxoQM2bl0HrT+tH1I4kwWKt01tBSDuGXSOQaIdtQCPZNYFqVWhrNm6YPFJSqySykw0afIb4/a6Q6xOlvYIGqg==}
@@ -11600,6 +11609,29 @@ packages:
zod-to-json-schema:
optional: true
xsschema@0.2.0-beta.6:
resolution: {integrity: sha512-xlGzeFtQV3nVEmrJ9PH3RI3tABDbGfPva9P4NvbFeO3NZjc/dmR4Ne6YFKb7G6DEfaXHaz6R/HSpGXWPgkovNw==}
peerDependencies:
'@valibot/to-json-schema': ^1.0.0
'@zod/mini': ^4.0.0-beta
arktype: ^2.1.16
effect: ^3.14.5
zod: ^3.24.3 || ^4.0.0-beta
zod-to-json-schema: ^3.24.5
peerDependenciesMeta:
'@valibot/to-json-schema':
optional: true
'@zod/mini':
optional: true
arktype:
optional: true
effect:
optional: true
zod:
optional: true
zod-to-json-schema:
optional: true
xtend@4.0.2:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
@@ -16379,17 +16411,21 @@ snapshots:
'@xsai-ext/providers-cloud@0.2.0-beta.5':
dependencies:
'@xsai-ext/shared-providers': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.5
'@xsai-ext/shared-providers': 0.2.0-beta.6
'@xsai/shared': 0.2.0-beta.6
'@xsai-ext/providers-local@0.2.0-beta.5':
dependencies:
'@xsai-ext/shared-providers': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.5
'@xsai-ext/shared-providers': 0.2.0-beta.6
'@xsai/shared': 0.2.0-beta.6
'@xsai-ext/shared-providers@0.2.0-beta.5':
dependencies:
'@xsai/shared': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.6
'@xsai-ext/shared-providers@0.2.0-beta.6':
dependencies:
'@xsai/shared': 0.2.0-beta.6
'@xsai-transformers/embed@0.0.5(web-worker@1.5.0)':
dependencies:
@@ -16413,42 +16449,48 @@ snapshots:
'@xsai/embed@0.2.0-beta.5':
dependencies:
'@xsai/shared': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.6
'@xsai/generate-speech@0.2.0-beta.5':
dependencies:
'@xsai/shared': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.6
'@xsai/generate-text@0.2.0-beta.5':
dependencies:
'@xsai/shared': 0.2.0-beta.5
'@xsai/shared-chat': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.6
'@xsai/shared-chat': 0.2.0-beta.6
'@xsai/generate-transcription@0.2.0-beta.5':
dependencies:
'@xsai/shared': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.6
'@xsai/model@0.2.0-beta.5':
dependencies:
'@xsai/shared': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.6
'@xsai/shared-chat@0.2.0-beta.5':
dependencies:
'@xsai/shared': 0.2.0-beta.5
'@xsai/shared': 0.2.0-beta.6
'@xsai/shared-chat@0.2.0-beta.6':
dependencies:
'@xsai/shared': 0.2.0-beta.6
'@xsai/shared@0.2.0-beta.2': {}
'@xsai/shared@0.2.0-beta.5': {}
'@xsai/shared@0.2.0-beta.6': {}
'@xsai/stream-text@0.2.0-beta.5':
dependencies:
'@xsai/shared-chat': 0.2.0-beta.5
'@xsai/shared-chat': 0.2.0-beta.6
'@xsai/tool@0.2.0-beta.5(zod-to-json-schema@3.24.5(zod@3.24.3))(zod@3.24.3)':
dependencies:
'@xsai/shared': 0.2.0-beta.5
'@xsai/shared-chat': 0.2.0-beta.5
xsschema: 0.2.0-beta.5(@valibot/to-json-schema@1.0.0-rc.0(valibot@1.0.0-beta.9(typescript@5.8.3)))(zod-to-json-schema@3.24.5(zod@3.24.3))(zod@3.24.3)
'@xsai/shared': 0.2.0-beta.6
'@xsai/shared-chat': 0.2.0-beta.6
xsschema: 0.2.0-beta.6(zod-to-json-schema@3.24.5(zod@3.24.3))(zod@3.24.3)
transitivePeerDependencies:
- '@valibot/to-json-schema'
- '@zod/mini'
@@ -16459,7 +16501,7 @@ snapshots:
'@xsai/utils-chat@0.2.0-beta.5':
dependencies:
'@xsai/shared-chat': 0.2.0-beta.5
'@xsai/shared-chat': 0.2.0-beta.6
abbrev@1.1.1:
optional: true
@@ -24376,6 +24418,11 @@ snapshots:
zod: 3.24.3
zod-to-json-schema: 3.24.5(zod@3.24.3)
xsschema@0.2.0-beta.6(zod-to-json-schema@3.24.5(zod@3.24.3))(zod@3.24.3):
optionalDependencies:
zod: 3.24.3
zod-to-json-schema: 3.24.5(zod@3.24.3)
xtend@4.0.2: {}
xxhash-wasm@0.4.2: {}