chore(deps): bump dependencies

Notice: after bumping up to three 0.180.0 with @types/three 0.180.0,
  Argument of type 'Group<Object3DEventMap>' is not assignable to parameter of type 'Object3D<Object3DEventMap>'.
    Type 'Group<Object3DEventMap>' is missing the following properties from type 'Object3D<Object3DEventMap>': setPointerCapture, releasePointerCapture, hasPointerCapture

Currently, AFAIK, clearly, three, and @types/three doesn't have the setPointerCapture, releasePointerCapture, hasPointerCapture method / getters
The only place I found on GitHub, points out that https://github.com/pmndrs/xr/blob/456aa380206e93888cd3a5741a1534e672ae3106/packages/pointer-events/src/pointer.ts#L69-L100 declares

```js
declare module 'three' {
  interface Object3D {
    setPointerCapture(pointerId: number): void
    releasePointerCapture(pointerId: number): void
    hasPointerCapture(pointerId: number): boolean

    intersectChildren?: boolean
    interactableDescendants?: Array<Object3D>
    /**
     * @deprecated
     */
    ancestorsHaveListeners?: boolean
    ancestorsHavePointerListeners?: boolean
    ancestorsHaveWheelListeners?: boolean
  }
}
```

And in @tresjs/core v5, it uses the @pmndrs/pointer-events internally.
Somehow the Object3D from @types/three and the one augmented by @pmndrs/pointer-events are not compatible.

`new Object3D() as unknown as Object3D` works as workaround here but there should be no need to do such a thing since these two Object3D should be the same.
With no updates from `typescript`, I assume there is no breaking change or regression from `typescript` side.
This commit is contained in:
Neko Ayaka
2025-09-26 17:07:07 +08:00
parent 6d4c823070
commit 372125fb89
34 changed files with 4113 additions and 4337 deletions
+1 -1
View File
@@ -1 +1 @@
nodejs 24.1.0
nodejs 24.9.0
+3 -3
View File
@@ -29,19 +29,19 @@
"@xsai/stream-text": "catalog:",
"es-toolkit": "^1.39.10",
"valibot": "1.0.0-beta.9",
"vue": "^3.5.21",
"vue": "^3.5.22",
"xsschema": "catalog:"
},
"devDependencies": {
"@iconify-json/solar": "^1.2.4",
"@iconify-json/svg-spinners": "^1.2.4",
"@types/xast": "^2.0.4",
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"superjson": "^2.2.2",
"unplugin-vue-router": "^0.15.0",
"vite": "catalog:rolldown-vite",
"vue-router": "^4.5.1",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
@@ -11,22 +11,22 @@
"typecheck": "vue-tsc --noEmit"
},
"dependencies": {
"@velin-dev/core": "^0.2.6",
"@velin-dev/vue": "^0.2.6",
"@velin-dev/core": "^0.3.1",
"@velin-dev/vue": "^0.3.1",
"pinia": "^3.0.3",
"vue": "^3.5.21"
"vue": "^3.5.22"
},
"devDependencies": {
"@iconify/vue": "^5.0.0",
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"typescript": "~5.9.2",
"unocss": "^66.5.0",
"unocss": "^66.5.2",
"unplugin-vue-macros": "^2.14.5",
"unplugin-vue-router": "^0.15.0",
"vite": "catalog:rolldown-vite",
"vite-plugin-vue-devtools": "^8.0.1",
"vite-plugin-vue-devtools": "^8.0.2",
"vite-plugin-vue-layouts": "^0.11.0",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
+3 -3
View File
@@ -26,16 +26,16 @@
"@xsai/shared-chat": "catalog:",
"@xsai/stream-text": "catalog:",
"es-toolkit": "^1.39.10",
"vue": "^3.5.21"
"vue": "^3.5.22"
},
"devDependencies": {
"@iconify-json/solar": "^1.2.4",
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"superjson": "^2.2.2",
"unplugin-vue-router": "^0.15.0",
"vite": "catalog:rolldown-vite",
"vue-router": "^4.5.1",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
+44 -44
View File
@@ -27,9 +27,9 @@
"@date-fns/utc": "^2.1.1",
"@electron-toolkit/preload": "^3.0.2",
"@electron-toolkit/utils": "^4.0.0",
"@formkit/auto-animate": "^0.8.4",
"@formkit/auto-animate": "^0.9.0",
"@guiiai/logg": "catalog:",
"@huggingface/transformers": "^3.7.2",
"@huggingface/transformers": "^3.7.3",
"@moeru/std": "catalog:",
"@proj-airi/audio": "workspace:^",
"@proj-airi/ccc": "workspace:^",
@@ -39,12 +39,12 @@
"@proj-airi/i18n": "workspace:^",
"@proj-airi/stage-ui": "workspace:^",
"@proj-airi/ui": "workspace:^",
"@ricky0123/vad-web": "^0.0.26",
"@ricky0123/vad-web": "^0.0.28",
"@stdlib/string-base-kebabcase": "^0.2.2",
"@tresjs/cientos": "^4.3.1",
"@tresjs/core": "^4.3.6",
"@types/audioworklet": "^0.0.83",
"@unbird/eventa": "^0.0.8",
"@tresjs/cientos": "^5.0.0",
"@tresjs/core": "^5.0.2",
"@types/audioworklet": "^0.0.85",
"@unbird/eventa": "^0.0.11",
"@vueuse/core": "^13.9.0",
"@vueuse/shared": "^13.9.0",
"@xsai-ext/providers-cloud": "catalog:",
@@ -60,90 +60,90 @@
"colorjs.io": "^0.5.2",
"culori": "^4.0.2",
"date-fns": "^4.1.0",
"dompurify": "^3.2.6",
"dompurify": "^3.2.7",
"drizzle-kit": "^0.31.4",
"drizzle-orm": "^0.44.5",
"jszip": "^3.10.1",
"localforage": "^1.10.0",
"mediabunny": "^1.13.0",
"mediabunny": "^1.20.1",
"node-vibrant": "^4.0.3",
"nprogress": "^0.2.0",
"ofetch": "^1.4.1",
"onnxruntime-web": "^1.22.0",
"onnxruntime-web": "^1.23.0",
"pinia": "^3.0.3",
"popmotion": "^11.0.5",
"rehype-stringify": "^10.0.1",
"reka-ui": "^2.5.0",
"reka-ui": "^2.5.1",
"remark-parse": "^11.0.0",
"remark-rehype": "^11.1.2",
"shiki": "^3.12.2",
"shiki": "^3.13.0",
"std-env": "^3.9.0",
"three": "^0.179.1",
"three": "^0.180.0",
"unified": "^11.0.5",
"unspeech": "^0.1.7",
"valibot": "1.0.0-beta.9",
"vaul-vue": "^0.4.1",
"vue": "^3.5.21",
"vue": "^3.5.22",
"vue-demi": "^0.14.10",
"vue-i18n": "^11.1.11",
"vue-i18n": "^11.1.12",
"vue-router": "^4.5.1",
"xsschema": "catalog:",
"yauzl": "^3.2.0",
"zod": "^4.1.5"
"zod": "^4.1.11"
},
"devDependencies": {
"@electron-toolkit/tsconfig": "^1.0.1",
"@fontsource-variable/dm-sans": "^5.2.6",
"@fontsource-variable/jura": "^5.2.6",
"@fontsource-variable/quicksand": "^5.2.8",
"@fontsource-variable/urbanist": "^5.2.6",
"@fontsource/dm-mono": "^5.2.6",
"@fontsource/dm-serif-display": "^5.2.6",
"@fontsource/gugi": "^5.2.6",
"@fontsource/kiwi-maru": "^5.2.6",
"@fontsource/m-plus-rounded-1c": "^5.2.8",
"@fontsource/sniglet": "^5.2.6",
"@electron-toolkit/tsconfig": "^2.0.0",
"@fontsource-variable/dm-sans": "^5.2.8",
"@fontsource-variable/jura": "^5.2.7",
"@fontsource-variable/quicksand": "^5.2.10",
"@fontsource-variable/urbanist": "^5.2.7",
"@fontsource/dm-mono": "^5.2.7",
"@fontsource/dm-serif-display": "^5.2.8",
"@fontsource/gugi": "^5.2.7",
"@fontsource/kiwi-maru": "^5.2.8",
"@fontsource/m-plus-rounded-1c": "^5.2.9",
"@fontsource/sniglet": "^5.2.8",
"@iconify-json/carbon": "^1.2.13",
"@iconify-json/eos-icons": "^1.2.4",
"@iconify-json/lucide": "^1.2.66",
"@iconify-json/lucide": "^1.2.68",
"@iconify-json/mingcute": "^1.2.5",
"@iconify-json/ph": "^1.2.2",
"@iconify-json/simple-icons": "^1.2.50",
"@iconify-json/simple-icons": "^1.2.53",
"@iconify-json/solar": "^1.2.4",
"@iconify-json/svg-spinners": "^1.2.4",
"@iconify-json/vscode-icons": "^1.2.30",
"@iconify/utils": "^3.0.1",
"@intlify/unplugin-vue-i18n": "^6.0.8",
"@proj-airi/lobe-icons": "^1.0.10",
"@iconify/utils": "^3.0.2",
"@intlify/unplugin-vue-i18n": "^11.0.1",
"@proj-airi/lobe-icons": "^1.0.11",
"@proj-airi/ui-transitions": "workspace:^",
"@proj-airi/unplugin-fetch": "^0.1.6",
"@proj-airi/unplugin-live2d-sdk": "^0.1.5",
"@shikijs/markdown-it": "^3.12.2",
"@proj-airi/unplugin-fetch": "^0.1.7",
"@proj-airi/unplugin-live2d-sdk": "^0.1.6",
"@shikijs/markdown-it": "^3.13.0",
"@types/culori": "^4.0.1",
"@types/nprogress": "^0.2.3",
"@types/three": "^0.179.0",
"@types/three": "^0.180.0",
"@types/yauzl": "^2.10.3",
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"@vue-macros/volar": "^3.0.0-beta.22",
"@vue-macros/volar": "^3.1.1",
"@vueuse/motion": "^3.0.3",
"@xsai-transformers/embed": "^0.0.7",
"cac": "^6.7.14",
"csstype": "^3.1.3",
"electron": "^37.2.3",
"electron-builder": "^26.0.0",
"electron-vite": "^4.0.0",
"electron": "^38.1.2",
"electron-builder": "^26.0.12",
"electron-vite": "^4.0.1",
"execa": "^9.6.0",
"less": "^4.4.1",
"unocss-preset-scrollbar": "^3.2.0",
"unplugin-info": "^1.2.4",
"unplugin-vue-macros": "^2.14.5",
"unplugin-vue-router": "^0.15.0",
"unplugin-yaml": "^3.0.5",
"unplugin-yaml": "^3.0.6",
"vite": "catalog:rolldown-vite",
"vite-bundle-visualizer": "^1.2.1",
"vite-plugin-vue-devtools": "^8.0.1",
"vite-plugin-vue-devtools": "^8.0.2",
"vite-plugin-vue-layouts": "^0.11.0",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
+39 -39
View File
@@ -19,8 +19,8 @@
},
"dependencies": {
"@date-fns/utc": "^2.1.1",
"@formkit/auto-animate": "^0.8.4",
"@huggingface/transformers": "^3.7.2",
"@formkit/auto-animate": "^0.9.0",
"@huggingface/transformers": "^3.7.3",
"@moeru/std": "catalog:",
"@proj-airi/audio": "workspace:^",
"@proj-airi/ccc": "workspace:^",
@@ -31,16 +31,16 @@
"@proj-airi/stage-ui": "workspace:^",
"@proj-airi/tauri-plugin-mcp": "workspace:^",
"@proj-airi/ui": "workspace:^",
"@ricky0123/vad-web": "^0.0.26",
"@ricky0123/vad-web": "^0.0.28",
"@stdlib/string-base-kebabcase": "^0.2.2",
"@tauri-apps/api": "^2.8.0",
"@tauri-apps/plugin-global-shortcut": "^2.3.0",
"@tauri-apps/plugin-os": "^2.3.1",
"@tauri-apps/plugin-positioner": "^2.3.0",
"@tauri-apps/plugin-window-state": "^2.4.0",
"@tresjs/cientos": "^4.3.1",
"@tresjs/core": "^4.3.6",
"@types/audioworklet": "^0.0.83",
"@tresjs/cientos": "^5.0.0",
"@tresjs/core": "^5.0.2",
"@types/audioworklet": "^0.0.85",
"@vueuse/core": "^13.9.0",
"@vueuse/shared": "^13.9.0",
"@xsai-ext/providers-cloud": "catalog:",
@@ -56,71 +56,71 @@
"colorjs.io": "^0.5.2",
"culori": "^4.0.2",
"date-fns": "^4.1.0",
"dompurify": "^3.2.6",
"dompurify": "^3.2.7",
"drizzle-kit": "^0.31.4",
"drizzle-orm": "^0.44.5",
"jszip": "^3.10.1",
"localforage": "^1.10.0",
"mediabunny": "^1.13.0",
"mediabunny": "^1.20.1",
"node-vibrant": "^4.0.3",
"nprogress": "^0.2.0",
"ofetch": "^1.4.1",
"onnxruntime-web": "^1.22.0",
"onnxruntime-web": "^1.23.0",
"pinia": "^3.0.3",
"popmotion": "^11.0.5",
"rehype-stringify": "^10.0.1",
"reka-ui": "^2.5.0",
"reka-ui": "^2.5.1",
"remark-parse": "^11.0.0",
"remark-rehype": "^11.1.2",
"shiki": "^3.12.2",
"three": "^0.179.1",
"shiki": "^3.13.0",
"three": "^0.180.0",
"unified": "^11.0.5",
"unspeech": "^0.1.7",
"valibot": "1.0.0-beta.9",
"vaul-vue": "^0.4.1",
"vue": "^3.5.21",
"vue": "^3.5.22",
"vue-demi": "^0.14.10",
"vue-i18n": "^11.1.11",
"vue-i18n": "^11.1.12",
"vue-router": "^4.5.1",
"xsschema": "catalog:",
"yauzl": "^3.2.0",
"zod": "^4.1.5"
"zod": "^4.1.11"
},
"devDependencies": {
"@fontsource-variable/dm-sans": "^5.2.6",
"@fontsource-variable/jura": "^5.2.6",
"@fontsource-variable/quicksand": "^5.2.8",
"@fontsource-variable/urbanist": "^5.2.6",
"@fontsource/dm-mono": "^5.2.6",
"@fontsource/dm-serif-display": "^5.2.6",
"@fontsource/gugi": "^5.2.6",
"@fontsource/kiwi-maru": "^5.2.6",
"@fontsource/m-plus-rounded-1c": "^5.2.8",
"@fontsource/sniglet": "^5.2.6",
"@fontsource-variable/dm-sans": "^5.2.8",
"@fontsource-variable/jura": "^5.2.7",
"@fontsource-variable/quicksand": "^5.2.10",
"@fontsource-variable/urbanist": "^5.2.7",
"@fontsource/dm-mono": "^5.2.7",
"@fontsource/dm-serif-display": "^5.2.8",
"@fontsource/gugi": "^5.2.7",
"@fontsource/kiwi-maru": "^5.2.8",
"@fontsource/m-plus-rounded-1c": "^5.2.9",
"@fontsource/sniglet": "^5.2.8",
"@iconify-json/carbon": "^1.2.13",
"@iconify-json/eos-icons": "^1.2.4",
"@iconify-json/lucide": "^1.2.66",
"@iconify-json/lucide": "^1.2.68",
"@iconify-json/mingcute": "^1.2.5",
"@iconify-json/ph": "^1.2.2",
"@iconify-json/simple-icons": "^1.2.50",
"@iconify-json/simple-icons": "^1.2.53",
"@iconify-json/solar": "^1.2.4",
"@iconify-json/svg-spinners": "^1.2.4",
"@iconify-json/vscode-icons": "^1.2.30",
"@iconify/utils": "^3.0.1",
"@intlify/unplugin-vue-i18n": "^6.0.8",
"@proj-airi/lobe-icons": "^1.0.10",
"@iconify/utils": "^3.0.2",
"@intlify/unplugin-vue-i18n": "^11.0.1",
"@proj-airi/lobe-icons": "^1.0.11",
"@proj-airi/ui-transitions": "workspace:^",
"@proj-airi/unplugin-fetch": "^0.1.6",
"@proj-airi/unplugin-live2d-sdk": "^0.1.5",
"@shikijs/markdown-it": "^3.12.2",
"@proj-airi/unplugin-fetch": "^0.1.7",
"@proj-airi/unplugin-live2d-sdk": "^0.1.6",
"@shikijs/markdown-it": "^3.13.0",
"@tauri-apps/cli": "^2.8.4",
"@types/culori": "^4.0.1",
"@types/nprogress": "^0.2.3",
"@types/three": "^0.179.0",
"@types/three": "^0.180.0",
"@types/yauzl": "^2.10.3",
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"@vue-macros/volar": "^3.0.0-beta.22",
"@vue-macros/volar": "^3.1.1",
"@vueuse/motion": "^3.0.3",
"@xsai-transformers/embed": "^0.0.7",
"cac": "^6.7.14",
@@ -131,11 +131,11 @@
"unplugin-info": "^1.2.4",
"unplugin-vue-macros": "^2.14.5",
"unplugin-vue-router": "^0.15.0",
"unplugin-yaml": "^3.0.5",
"unplugin-yaml": "^3.0.6",
"vite": "catalog:rolldown-vite",
"vite-bundle-visualizer": "^1.2.1",
"vite-plugin-vue-devtools": "^8.0.1",
"vite-plugin-vue-devtools": "^8.0.2",
"vite-plugin-vue-layouts": "^0.11.0",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
+32 -32
View File
@@ -18,8 +18,8 @@
},
"dependencies": {
"@date-fns/utc": "^2.1.1",
"@formkit/auto-animate": "^0.8.4",
"@huggingface/transformers": "^3.7.2",
"@formkit/auto-animate": "^0.9.0",
"@huggingface/transformers": "^3.7.3",
"@llama-flow/core": "^0.4.4",
"@moeru/std": "catalog:",
"@proj-airi/audio": "workspace:^",
@@ -33,12 +33,12 @@
"@proj-airi/stage-ui-three": "workspace:^",
"@proj-airi/ui": "workspace:^",
"@proj-airi/ui-transitions": "workspace:^",
"@ricky0123/vad-web": "^0.0.26",
"@ricky0123/vad-web": "^0.0.28",
"@standard-schema/spec": "^1.0.0",
"@stdlib/string-base-kebabcase": "^0.2.2",
"@tresjs/cientos": "^4.3.1",
"@tresjs/core": "^4.3.6",
"@unbird/eventa": "^0.0.5",
"@tresjs/cientos": "^5.0.0",
"@tresjs/core": "^5.0.2",
"@unbird/eventa": "^0.0.11",
"@valibot/to-json-schema": "1.0.0-rc.0",
"@vueuse/core": "^13.9.0",
"@vueuse/shared": "^13.9.0",
@@ -56,77 +56,77 @@
"colorjs.io": "^0.5.2",
"culori": "^4.0.2",
"date-fns": "^4.1.0",
"dompurify": "^3.2.6",
"dompurify": "^3.2.7",
"driver.js": "^1.3.6",
"drizzle-kit": "^0.31.4",
"drizzle-orm": "^0.44.5",
"gpuu": "^1.0.4",
"gpuu": "^1.0.5",
"html2canvas": "^1.4.1",
"jszip": "^3.10.1",
"localforage": "^1.10.0",
"mediabunny": "^1.13.0",
"nanoid": "^5.1.5",
"mediabunny": "^1.20.1",
"nanoid": "^5.1.6",
"node-vibrant": "^4.0.3",
"nprogress": "^0.2.0",
"ofetch": "^1.4.1",
"onnxruntime-web": "^1.22.0",
"onnxruntime-web": "^1.23.0",
"pinia": "^3.0.3",
"rehype-stringify": "^10.0.1",
"reka-ui": "^2.5.0",
"reka-ui": "^2.5.1",
"remark-parse": "^11.0.0",
"remark-rehype": "^11.1.2",
"shiki": "^3.12.2",
"three": "^0.179.1",
"shiki": "^3.13.0",
"three": "^0.180.0",
"unified": "^11.0.5",
"unspeech": "^0.1.7",
"valibot": "1.0.0-beta.9",
"vaul-vue": "^0.4.1",
"vue": "^3.5.21",
"vue": "^3.5.22",
"vue-demi": "^0.14.10",
"vue-i18n": "^11.1.11",
"vue-i18n": "^11.1.12",
"vue-router": "^4.5.1",
"vue-sonner": "^2.0.8",
"workbox-window": "^7.3.0",
"xsschema": "catalog:",
"yauzl": "^3.2.0",
"zod": "^4.1.5"
"zod": "^4.1.11"
},
"devDependencies": {
"@iconify-json/carbon": "^1.2.13",
"@iconify-json/eos-icons": "^1.2.4",
"@iconify-json/lucide": "^1.2.66",
"@iconify-json/lucide": "^1.2.68",
"@iconify-json/mingcute": "^1.2.5",
"@iconify-json/simple-icons": "^1.2.50",
"@iconify-json/simple-icons": "^1.2.53",
"@iconify-json/solar": "^1.2.4",
"@iconify-json/svg-spinners": "^1.2.4",
"@iconify-json/vscode-icons": "^1.2.30",
"@intlify/unplugin-vue-i18n": "^6.0.8",
"@proj-airi/lobe-icons": "^1.0.10",
"@proj-airi/unplugin-fetch": "^0.1.6",
"@proj-airi/unplugin-live2d-sdk": "^0.1.5",
"@shikijs/markdown-it": "^3.12.2",
"@types/audioworklet": "^0.0.83",
"@intlify/unplugin-vue-i18n": "^11.0.1",
"@proj-airi/lobe-icons": "^1.0.11",
"@proj-airi/unplugin-fetch": "^0.1.7",
"@proj-airi/unplugin-live2d-sdk": "^0.1.6",
"@shikijs/markdown-it": "^3.13.0",
"@types/audioworklet": "^0.0.85",
"@types/culori": "^4.0.1",
"@types/nprogress": "^0.2.3",
"@types/three": "^0.179.0",
"@types/three": "^0.180.0",
"@types/yauzl": "^2.10.3",
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"@vue-macros/volar": "^3.0.0-beta.22",
"@vue-macros/volar": "^3.1.1",
"@vueuse/motion": "^3.0.3",
"csstype": "^3.1.3",
"execa": "^9.6.0",
"hfup": "^0.6.2",
"hfup": "^0.6.3",
"less": "^4.4.1",
"unplugin-info": "^1.2.4",
"unplugin-vue-macros": "^2.14.5",
"unplugin-vue-router": "^0.15.0",
"unplugin-yaml": "^3.0.5",
"unplugin-yaml": "^3.0.6",
"vite": "catalog:rolldown-vite",
"vite-bundle-visualizer": "^1.2.1",
"vite-plugin-pwa": "^1.0.3",
"vite-plugin-vue-devtools": "^8.0.1",
"vite-plugin-vue-devtools": "^8.0.2",
"vite-plugin-vue-layouts": "^0.11.0",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
+20 -20
View File
@@ -12,12 +12,12 @@
"contributors": "tsx scripts/update-contributors.ts"
},
"dependencies": {
"@fontsource-variable/comfortaa": "^5.2.6",
"@fontsource-variable/dm-sans": "^5.2.6",
"@fontsource-variable/quicksand": "^5.2.8",
"@fontsource/dm-mono": "^5.2.6",
"@fontsource/dm-serif-display": "^5.2.6",
"@fontsource/quicksand": "^5.2.8",
"@fontsource-variable/comfortaa": "^5.2.8",
"@fontsource-variable/dm-sans": "^5.2.8",
"@fontsource-variable/quicksand": "^5.2.10",
"@fontsource/dm-mono": "^5.2.7",
"@fontsource/dm-serif-display": "^5.2.8",
"@fontsource/quicksand": "^5.2.10",
"@moeru/std": "catalog:",
"@proj-airi/chromatic": "^1.0.0",
"@proj-airi/i18n": "workspace:^",
@@ -26,15 +26,15 @@
"mark.js": "^8.11.1",
"motion-v": "^1.7.1",
"pathe": "^2.0.3",
"reka-ui": "^2.5.0",
"vue": "^3.5.21",
"vue-i18n": "^11.1.11",
"reka-ui": "^2.5.1",
"vue": "^3.5.22",
"vue-i18n": "^11.1.12",
"vue-sonner": "^2.0.8"
},
"devDependencies": {
"@iconify-json/lucide": "^1.2.66",
"@iconify-json/lucide": "^1.2.68",
"@iconify/vue": "^5.0.0",
"@intlify/unplugin-vue-i18n": "^6.0.8",
"@intlify/unplugin-vue-i18n": "^11.0.1",
"@mdit/plugin-footnote": "^0.22.2",
"@mdit/plugin-tasklist": "^0.22.1",
"@proj-airi/stage-ui": "workspace:^",
@@ -42,22 +42,22 @@
"@types/hast": "^3.0.4",
"@types/markdown-it": "^14.1.2",
"@types/markdown-it-anchor": "^7.0.0",
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vue/tsconfig": "^0.8.1",
"animejs": "^4.1.3",
"animejs": "^4.1.4",
"fast-glob": "^3.3.3",
"gray-matter": "^4.0.3",
"markdown-it": "^14.1.0",
"markdown-it-anchor": "^9.2.0",
"minisearch": "^7.1.2",
"minisearch": "^7.2.0",
"postcss": "^8.5.6",
"sharp": "^0.34.3",
"shiki": "^3.12.2",
"tinyglobby": "^0.2.14",
"tsx": "^4.20.5",
"sharp": "^0.34.4",
"shiki": "^3.13.0",
"tinyglobby": "^0.2.15",
"tsx": "^4.20.6",
"uncrypto": "^0.1.3",
"unplugin-yaml": "^3.0.5",
"unplugin-yaml": "^3.0.6",
"vitepress": "^2.0.0-alpha.12",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
+22 -22
View File
@@ -3,7 +3,7 @@
"type": "module",
"version": "0.7.2-beta.3",
"private": true,
"packageManager": "pnpm@10.15.1",
"packageManager": "pnpm@10.17.1",
"description": "LLM powered virtual character",
"author": {
"name": "Moeru AI Project AIRI Team",
@@ -38,38 +38,38 @@
"nolyfill": "pnpm dlx nolyfill"
},
"devDependencies": {
"@antfu/eslint-config": "^5.2.1",
"@antfu/ni": "^25.0.0",
"@antfu/eslint-config": "^5.4.1",
"@antfu/ni": "^26.0.1",
"@arethetypeswrong/core": "^0.18.2",
"@electron-toolkit/eslint-config-ts": "^3.0.0",
"@iconify/utils": "^3.0.1",
"@electron-toolkit/eslint-config-ts": "^3.1.0",
"@iconify/utils": "^3.0.2",
"@proj-airi/unocss-preset-chromatic": "^1.0.0",
"@types/node": "^24.3.0",
"@unocss/eslint-config": "^66.5.0",
"@unocss/eslint-plugin": "^66.5.0",
"@unocss/preset-mini": "^66.5.0",
"@unocss/preset-web-fonts": "^66.5.0",
"@types/node": "^24.5.2",
"@unocss/eslint-config": "^66.5.2",
"@unocss/eslint-plugin": "^66.5.2",
"@unocss/preset-mini": "^66.5.2",
"@unocss/preset-web-fonts": "^66.5.2",
"@vitest/coverage-v8": "^3.2.4",
"bumpp": "^10.2.3",
"eslint": "^9.34.0",
"eslint": "^9.36.0",
"execa": "^9.6.0",
"lint-staged": "^16.1.6",
"rollup": "^4.50.0",
"lint-staged": "^16.2.1",
"rollup": "^4.52.2",
"simple-git-hooks": "^2.13.1",
"smol-toml": "^1.4.2",
"taze": "^19.4.0",
"tsdown": "^0.13.5",
"tsx": "^4.20.5",
"turbo": "^2.5.6",
"taze": "^19.7.0",
"tsdown": "^0.15.4",
"tsx": "^4.20.6",
"turbo": "^2.5.8",
"typescript": "~5.9.2",
"uncrypto": "^0.1.3",
"unocss": "^66.5.0",
"unocss": "^66.5.2",
"unocss-preset-scrollbar": "^3.2.0",
"unplugin-lightningcss": "^0.4.2",
"unplugin-raw": "^0.6.1",
"unplugin-unused": "^0.5.2",
"unplugin-lightningcss": "^0.4.3",
"unplugin-raw": "^0.6.3",
"unplugin-unused": "^0.5.3",
"unplugin-vue": "^7.0.1",
"vite": "^7.1.4",
"vite": "^7.1.7",
"vite-plugin-inspect": "^11.3.3",
"vitest": "^3.2.4"
},
+2 -2
View File
@@ -57,7 +57,7 @@
},
"devDependencies": {
"@moeru/std": "catalog:",
"@types/audioworklet": "^0.0.83",
"vite": "^7.1.4"
"@types/audioworklet": "^0.0.85",
"vite": "^7.1.7"
}
}
+1 -1
View File
@@ -64,6 +64,6 @@
"typecheck": "tsc --noEmit"
},
"devDependencies": {
"unplugin-yaml": "^3.0.5"
"unplugin-yaml": "^3.0.6"
}
}
+1 -1
View File
@@ -26,6 +26,6 @@
"postgres": "^3.4.7"
},
"devDependencies": {
"tsx": "^4.20.5"
"tsx": "^4.20.6"
}
}
+3 -3
View File
@@ -1,9 +1,9 @@
import { defineConfig } from 'tsdown'
export default defineConfig({
entry: [
'./src/',
],
entry: {
'types/index': 'src/types/index.ts',
},
sourcemap: true,
unused: true,
fixedExtension: true,
+7 -7
View File
@@ -24,19 +24,19 @@
"@pixiv/three-vrm": "^3.4.2",
"@pixiv/three-vrm-animation": "^3.4.2",
"@pixiv/three-vrm-core": "^3.4.2",
"@tresjs/cientos": "^4.3.1",
"@tresjs/core": "^4.3.6",
"@tresjs/cientos": "^5.0.0",
"@tresjs/core": "^5.0.2",
"@tresjs/post-processing": "^2.4.0",
"@vueuse/core": "^13.9.0",
"culori": "^4.0.2",
"pinia": "^3.0.3",
"postprocessing": "^6.37.7",
"three": "^0.179.1",
"vue": "^3.5.21"
"postprocessing": "^6.37.8",
"three": "^0.180.0",
"vue": "^3.5.22"
},
"devDependencies": {
"@types/culori": "^4.0.1",
"@types/three": "^0.179.0",
"vue-tsc": "^3.0.6"
"@types/three": "^0.180.0",
"vue-tsc": "^3.0.8"
}
}
@@ -1,13 +1,12 @@
<script setup lang="ts">
/*
* OrbitControls.vue
* - Extend OrbitControls from three
* - Define camera behaviour
* - Define camera behavior
*/
import type { Vec3 } from '../../stores/model-store'
import { extend, useTresContext } from '@tresjs/core'
import { extend, useTres } from '@tresjs/core'
import { until } from '@vueuse/core'
import {
MOUSE,
@@ -59,7 +58,7 @@ const {
extend({ OrbitControls })
const { camera: cameraTres, renderer } = useTresContext()
const { camera: cameraTres, renderer } = useTres()
const controls = shallowRef<OrbitControls>()
const camera = shallowRef<PerspectiveCamera | null>(null)
@@ -146,10 +145,10 @@ function registerInfoFlow() {
onMounted(async () => {
// wait until camera is not undefined
await until(() => cameraTres.value && renderer.value?.domElement).toBeTruthy()
await until(() => cameraTres.value && renderer.domElement).toBeTruthy()
// Prevent the data value fluctuation, camera setting should take effective after model loading
await until(() => props.modelLoaded).toBeTruthy()
if (!cameraTres.value || !renderer.value?.domElement) {
if (!cameraTres.value || !renderer.domElement) {
console.warn('Camera or Renderer initialisation failure!')
return
}
@@ -160,7 +159,7 @@ onMounted(async () => {
}
camera.value = cameraTres.value as PerspectiveCamera
// Obtain orbitControl instance
controls.value = new OrbitControls(camera.value, renderer.value.domElement)
controls.value = new OrbitControls(camera.value, renderer.domElement)
// Align to tresjs conventions
controls.value.mouseButtons = {
LEFT: MOUSE.ROTATE,
@@ -16,7 +16,7 @@ import type {
WebGLRenderTarget,
} from 'three'
import { useTresContext } from '@tresjs/core'
import { useTres } from '@tresjs/core'
import { until } from '@vueuse/core'
import {
ACESFilmicToneMapping,
@@ -68,7 +68,7 @@ const environment = ref<DataTexture | CanvasTexture>()
let _pmrem: PMREMGenerator | null = null
let _envRT: WebGLRenderTarget | null = null // WebGLRenderTarget from PMREM
const { scene, renderer } = useTresContext()
const { scene, renderer } = useTres()
// Remove the sky box
function clearEnvironment() {
@@ -89,14 +89,14 @@ function clearEnvironment() {
// load HDRI environment from sky box
async function loadEnvironment(skyBoxSrc: string) {
// Wait until renderer is ready
await until(() => !!renderer.value && !!renderer.value).toBeTruthy()
await until(() => !!renderer && !!renderer.domElement).toBeTruthy()
// Always dispose previous env when switching
clearEnvironment()
// Recommended renderer configuration for HDR + PBR
renderer.value.outputColorSpace = SRGBColorSpace
renderer.outputColorSpace = SRGBColorSpace
// This tone mapping is only for BPR parts, for NPR parts, this mapping will be disabled when loading model (as per parts)
renderer.value.toneMapping = ACESFilmicToneMapping
renderer.toneMapping = ACESFilmicToneMapping
try {
// Resources
@@ -112,17 +112,17 @@ async function loadEnvironment(skyBoxSrc: string) {
hdrTex.colorSpace = LinearSRGBColorSpace
// PMREM prefiltering for physically correct IBL
_pmrem = new PMREMGenerator(renderer.value as WebGLRenderer)
_pmrem = new PMREMGenerator(renderer as WebGLRenderer)
const rt = _pmrem.fromEquirectangular(hdrTex)
_envRT = rt
// Convert equirectangular to cube render target
const cubeRT = new WebGLCubeRenderTarget(256)
cubeRT.fromEquirectangularTexture(renderer.value as WebGLRenderer, hdrTex)
cubeRT.fromEquirectangularTexture(renderer as WebGLRenderer, hdrTex)
// Generate SH from cube render target
const probe: LightProbe = await LightProbeGenerator.fromCubeRenderTarget(
renderer.value as WebGLRenderer,
renderer as WebGLRenderer,
cubeRT,
)
@@ -9,6 +9,7 @@
import type { VRMCore } from '@pixiv/three-vrm-core'
import type {
Group,
Object3D,
PerspectiveCamera,
ShaderMaterial,
SphericalHarmonics3,
@@ -155,7 +156,7 @@ let stopCameraWatch: WatchStopHandle | undefined
// Animation related ref
const vrmAnimationMixer = ref<AnimationMixer>()
const { onBeforeRender, pause, resume } = useLoop()
const { onBeforeRender, stop, start } = useLoop()
let disposeBeforeRenderLoop: (() => void | undefined)
// Expressions
@@ -178,7 +179,32 @@ function componentCleanUp() {
}
// deep clear
if (vrm.value) {
VRMUtils.deepDispose(vrm.value.scene)
// TODO: after bumping up to three 0.180.0 with @types/three 0.180.0,
// Argument of type 'Group<Object3DEventMap>' is not assignable to parameter of type 'Object3D<Object3DEventMap>'.
// Type 'Group<Object3DEventMap>' is missing the following properties from type 'Object3D<Object3DEventMap>': setPointerCapture, releasePointerCapture, hasPointerCapture
//
// Currently, AFAIK, https://github.com/pmndrs/xr/blob/456aa380206e93888cd3a5741a1534e672ae3106/packages/pointer-events/src/pointer.ts#L69-L100 declares
// declare module 'three' {
// interface Object3D {
// setPointerCapture(pointerId: number): void
// releasePointerCapture(pointerId: number): void
// hasPointerCapture(pointerId: number): boolean
// intersectChildren?: boolean
// interactableDescendants?: Array<Object3D>
// /**
// * @deprecated
// */
// ancestorsHaveListeners?: boolean
// ancestorsHavePointerListeners?: boolean
// ancestorsHaveWheelListeners?: boolean
// }
// }
//
// And in @tresjs/core v5, it uses the @pmndrs/pointer-events internally.
// Somehow the Object3D from @types/three and the one augmented by @pmndrs/pointer-events are not compatible.
// This needs to be fixed later.
VRMUtils.deepDispose(vrm.value.scene as unknown as Object3D)
}
// clear IBL probe
airiIblProbe?.dispose()
@@ -440,10 +466,10 @@ onMounted(async () => {
// watch if the animation should be paused
watch(paused, (isPaused) => {
if (isPaused) {
pause()
stop()
}
else {
resume()
start()
}
}, { immediate: true })
// update model position
@@ -469,7 +495,33 @@ onMounted(async () => {
// force the program to flush
nprProgramVersion.value += 1
const mode = normalizeEnvMode(envSelect.value)
updateNprShaderSetting(vrm.value?.scene, {
// TODO: after bumping up to three 0.180.0 with @types/three 0.180.0,
// Argument of type 'Group<Object3DEventMap>' is not assignable to parameter of type 'Object3D<Object3DEventMap>'.
// Type 'Group<Object3DEventMap>' is missing the following properties from type 'Object3D<Object3DEventMap>': setPointerCapture, releasePointerCapture, hasPointerCapture
//
// Currently, AFAIK, https://github.com/pmndrs/xr/blob/456aa380206e93888cd3a5741a1534e672ae3106/packages/pointer-events/src/pointer.ts#L69-L100 declares
// declare module 'three' {
// interface Object3D {
// setPointerCapture(pointerId: number): void
// releasePointerCapture(pointerId: number): void
// hasPointerCapture(pointerId: number): boolean
// intersectChildren?: boolean
// interactableDescendants?: Array<Object3D>
// /**
// * @deprecated
// */
// ancestorsHaveListeners?: boolean
// ancestorsHavePointerListeners?: boolean
// ancestorsHaveWheelListeners?: boolean
// }
// }
//
// And in @tresjs/core v5, it uses the @pmndrs/pointer-events internally.
// Somehow the Object3D from @types/three and the one augmented by @pmndrs/pointer-events are not compatible.
// This needs to be fixed later.
updateNprShaderSetting(vrm.value?.scene as unknown as Object3D, {
mode,
intensity: skyBoxIntensity.value,
sh: nprIrrSH.value ?? null,
@@ -268,7 +268,7 @@ defineExpose({
modelRef.value?.setExpression(expression)
},
canvasElement: () => {
return tresCanvasRef.value?.renderer.value.domElement
return tresCanvasRef.value?.renderer.instance.domElement
},
})
</script>
@@ -168,10 +168,35 @@ export function useIdleEyeSaccades() {
}
if (!vrm.lookAt.target) {
vrm.lookAt.target = new Object3D()
// TODO: after bumping up to three 0.180.0 with @types/three 0.180.0,
// Argument of type 'Object3D<Object3DEventMap>' is not assignable to parameter of type 'Object3D<Object3DEventMap>'.
// Type 'Object3D<Object3DEventMap>' is missing the following properties from type 'Object3D<Object3DEventMap>': setPointerCapture, releasePointerCapture, hasPointerCapture
//
// Currently, AFAIK, https://github.com/pmndrs/xr/blob/456aa380206e93888cd3a5741a1534e672ae3106/packages/pointer-events/src/pointer.ts#L69-L100 declares
// declare module 'three' {
// interface Object3D {
// setPointerCapture(pointerId: number): void
// releasePointerCapture(pointerId: number): void
// hasPointerCapture(pointerId: number): boolean
// intersectChildren?: boolean
// interactableDescendants?: Array<Object3D>
// /**
// * @deprecated
// */
// ancestorsHaveListeners?: boolean
// ancestorsHavePointerListeners?: boolean
// ancestorsHaveWheelListeners?: boolean
// }
// }
//
// And in @tresjs/core v5, it uses the @pmndrs/pointer-events internally.
// Somehow the Object3D from @types/three and the one augmented by @pmndrs/pointer-events are not compatible.
// This needs to be fixed later.
vrm.lookAt.target = new Object3D() as unknown as Object3D
}
vrm.lookAt.target.position.lerp(fixationTarget!, 1)
vrm.lookAt.target?.position.lerp(fixationTarget!, 1)
vrm.lookAt?.update(delta)
timeSinceLastSaccade += delta
@@ -186,9 +211,35 @@ export function useIdleEyeSaccades() {
if (!vrm?.expressionManager || !vrm.lookAt)
return
if (!vrm.lookAt.target) {
vrm.lookAt.target = new Object3D()
// TODO: after bumping up to three 0.180.0 with @types/three 0.180.0,
// Argument of type 'Object3D<Object3DEventMap>' is not assignable to parameter of type 'Object3D<Object3DEventMap>'.
// Type 'Object3D<Object3DEventMap>' is missing the following properties from type 'Object3D<Object3DEventMap>': setPointerCapture, releasePointerCapture, hasPointerCapture
//
// Currently, AFAIK, https://github.com/pmndrs/xr/blob/456aa380206e93888cd3a5741a1534e672ae3106/packages/pointer-events/src/pointer.ts#L69-L100 declares
// declare module 'three' {
// interface Object3D {
// setPointerCapture(pointerId: number): void
// releasePointerCapture(pointerId: number): void
// hasPointerCapture(pointerId: number): boolean
// intersectChildren?: boolean
// interactableDescendants?: Array<Object3D>
// /**
// * @deprecated
// */
// ancestorsHaveListeners?: boolean
// ancestorsHavePointerListeners?: boolean
// ancestorsHaveWheelListeners?: boolean
// }
// }
//
// And in @tresjs/core v5, it uses the @pmndrs/pointer-events internally.
// Somehow the Object3D from @types/three and the one augmented by @pmndrs/pointer-events are not compatible.
// This needs to be fixed later.
vrm.lookAt.target = new Object3D() as unknown as Object3D
}
vrm.lookAt.target.position.lerp(fixationTarget!, 1)
vrm.lookAt.target?.position.lerp(fixationTarget!, 1)
vrm.lookAt?.update(0.016)
}
+37 -37
View File
@@ -40,8 +40,8 @@
},
"dependencies": {
"@date-fns/utc": "^2.1.1",
"@formkit/auto-animate": "^0.8.4",
"@huggingface/transformers": "^3.7.2",
"@formkit/auto-animate": "^0.9.0",
"@huggingface/transformers": "^3.7.3",
"@lemonneko/crop-empty-pixels": "0.1.1",
"@pixi/app": "^6.5.10",
"@pixi/constants": "^6.5.10",
@@ -70,10 +70,10 @@
"@proj-airi/stage-ui-three": "workspace:^",
"@proj-airi/tauri-plugin-mcp": "workspace:^",
"@proj-airi/ui": "workspace:^",
"@ricky0123/vad-web": "^0.0.26",
"@shikijs/rehype": "^3.12.2",
"@tresjs/cientos": "^4.3.1",
"@tresjs/core": "^4.3.6",
"@ricky0123/vad-web": "^0.0.28",
"@shikijs/rehype": "^3.13.0",
"@tresjs/cientos": "^5.0.0",
"@tresjs/core": "^5.0.2",
"@tresjs/post-processing": "^2.4.0",
"@vueuse/core": "^13.9.0",
"@vueuse/motion": "^3.0.3",
@@ -91,73 +91,73 @@
"@xsai/shared-chat": "catalog:",
"@xsai/stream-text": "catalog:",
"@xsai/tool": "catalog:",
"animejs": "^4.1.3",
"animejs": "^4.1.4",
"culori": "^4.0.2",
"date-fns": "^4.1.0",
"dompurify": "^3.2.6",
"gpuu": "^1.0.4",
"dompurify": "^3.2.7",
"gpuu": "^1.0.5",
"jszip": "^3.10.1",
"localforage": "^1.10.0",
"mediabunny": "^1.13.0",
"nanoid": "^5.1.5",
"mediabunny": "^1.20.1",
"nanoid": "^5.1.6",
"pinia": "^3.0.3",
"pixi-filters": "4",
"pixi-live2d-display": "^0.4.0",
"postprocessing": "^6.37.7",
"postprocessing": "^6.37.8",
"rehype-katex": "^7.0.1",
"rehype-stringify": "^10.0.1",
"reka-ui": "^2.5.0",
"reka-ui": "^2.5.1",
"remark-math": "^6.0.0",
"remark-parse": "^11.0.0",
"remark-rehype": "^11.1.2",
"shiki": "^3.12.2",
"three": "^0.179.1",
"shiki": "^3.13.0",
"three": "^0.180.0",
"unified": "^11.0.5",
"unist-builder": "^4.0.0",
"unspeech": "^0.1.7",
"vaul-vue": "^0.4.1",
"vue-i18n": "^11.1.11",
"vue-i18n": "^11.1.12",
"vue-router": "^4.5.1",
"vue-sonner": "^2.0.8",
"vue-tsc": "^3.0.6",
"vue-tsc": "^3.0.8",
"wlipsync": "^1.2.1",
"xast-util-to-xml": "^4.0.0",
"xastscript": "^4.0.0",
"zod": "^4.1.5"
"zod": "^4.1.11"
},
"devDependencies": {
"@fontsource-variable/dm-sans": "^5.2.6",
"@fontsource-variable/jura": "^5.2.6",
"@fontsource-variable/quicksand": "^5.2.8",
"@fontsource-variable/urbanist": "^5.2.6",
"@fontsource/dm-mono": "^5.2.6",
"@fontsource/dm-serif-display": "^5.2.6",
"@fontsource/gugi": "^5.2.6",
"@fontsource/kiwi-maru": "^5.2.6",
"@fontsource/m-plus-rounded-1c": "^5.2.8",
"@fontsource/sniglet": "^5.2.6",
"@fontsource-variable/dm-sans": "^5.2.8",
"@fontsource-variable/jura": "^5.2.7",
"@fontsource-variable/quicksand": "^5.2.10",
"@fontsource-variable/urbanist": "^5.2.7",
"@fontsource/dm-mono": "^5.2.7",
"@fontsource/dm-serif-display": "^5.2.8",
"@fontsource/gugi": "^5.2.7",
"@fontsource/kiwi-maru": "^5.2.8",
"@fontsource/m-plus-rounded-1c": "^5.2.9",
"@fontsource/sniglet": "^5.2.8",
"@histoire/plugin-vue": "1.0.0-alpha.2",
"@iconify-json/carbon": "^1.2.13",
"@iconify-json/eos-icons": "^1.2.4",
"@iconify-json/lucide": "^1.2.66",
"@iconify-json/lucide": "^1.2.68",
"@iconify-json/mingcute": "^1.2.5",
"@iconify-json/simple-icons": "^1.2.50",
"@iconify-json/simple-icons": "^1.2.53",
"@iconify-json/solar": "^1.2.4",
"@iconify-json/svg-spinners": "^1.2.4",
"@iconify-json/vscode-icons": "^1.2.30",
"@moeru/std": "catalog:",
"@proj-airi/lobe-icons": "^1.0.10",
"@proj-airi/lobe-icons": "^1.0.11",
"@types/culori": "^4.0.1",
"@types/three": "^0.179.0",
"@unocss/reset": "^66.5.0",
"@types/three": "^0.180.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"clustr": "^1.0.2",
"csstype": "^3.1.3",
"histoire": "1.0.0-alpha.2",
"unocss": "^66.5.0",
"unocss": "^66.5.2",
"unplugin-info": "^1.2.4",
"unplugin-yaml": "^3.0.5",
"vite": "^6.3.5",
"vue": "^3.5.21"
"unplugin-yaml": "^3.0.6",
"vite": "^6.3.6",
"vue": "^3.5.22"
}
}
+5 -3
View File
@@ -10,10 +10,10 @@ import { onUnmounted, ref, toRef, unref, watch } from 'vue'
export function useMicVAD(deviceId: MaybeRef<ConstrainDOMString | undefined>, options: Partial<RealTimeVADOptions> & { auto?: boolean } = {}) {
const opts = merge<Omit<RealTimeVADOptions, 'stream'> & { auto?: boolean }, Partial<RealTimeVADOptions> & { auto?: boolean }>({
...getDefaultRealTimeVADOptions('v5'),
preSpeechPadFrames: 30,
preSpeechPadMs: 30,
positiveSpeechThreshold: 0.5, // default is 0.5
negativeSpeechThreshold: 0.5 - 0.15, // default is 0.5 - 0.15
minSpeechFrames: 30, // default is 9
minSpeechMs: 30, // default is 9
auto: true,
}, options)
@@ -39,7 +39,9 @@ export function useMicVAD(deviceId: MaybeRef<ConstrainDOMString | undefined>, op
// Source code reference: https://github.com/t41372/Open-LLM-VTuber/blob/92cbf4349b84a68b0035bc825bc3d1d61fd0f063/static/index.html#L119
micVad.value = await MicVAD.new({
...opts,
stream: media,
getStream: async () => {
return media
},
})
if (opts.auto)
+2 -2
View File
@@ -2,7 +2,7 @@
"name": "@proj-airi/tauri-plugin-mcp",
"type": "module",
"version": "0.7.2-beta.3",
"packageManager": "pnpm@10.15.1",
"packageManager": "pnpm@10.17.1",
"description": "A Tauri plugin for interacting with MCP servers.",
"author": {
"name": "Moeru AI Project AIRI Team",
@@ -30,7 +30,7 @@
"@tauri-apps/api": "^2.8.0"
},
"devDependencies": {
"pkgroll": "^2.15.3"
"pkgroll": "^2.15.4"
},
"publishConfig": {
"exports": {
+5 -5
View File
@@ -27,19 +27,19 @@
},
"dependencies": {
"@proj-airi/font-departure-mono": "workspace:^",
"@rive-app/canvas-lite": "^2.31.2",
"@rive-app/canvas-lite": "^2.31.6",
"@vueuse/core": "^13.9.0",
"@vueuse/motion": "^3.0.3",
"vue": "^3.5.21"
"vue": "^3.5.22"
},
"devDependencies": {
"@proj-airi/ui": "workspace:^",
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"unplugin-vue-router": "^0.15.0",
"vite": "catalog:rolldown-vite",
"vite-plugin-vue-devtools": "^8.0.1",
"vite-plugin-vue-devtools": "^8.0.2",
"vue-router": "^4.5.1",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
+4 -4
View File
@@ -28,15 +28,15 @@
"dependencies": {
"@vueuse/core": "^13.9.0",
"@vueuse/motion": "^3.0.3",
"vue": "^3.5.21"
"vue": "^3.5.22"
},
"devDependencies": {
"@unocss/reset": "^66.5.0",
"@unocss/reset": "^66.5.2",
"@vitejs/plugin-vue": "^6.0.1",
"unplugin-vue-router": "^0.15.0",
"vite": "catalog:rolldown-vite",
"vite-plugin-vue-devtools": "^8.0.1",
"vite-plugin-vue-devtools": "^8.0.2",
"vue-router": "^4.5.1",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
+3 -3
View File
@@ -26,11 +26,11 @@
"dependencies": {
"@vueuse/core": "^13.9.0",
"floating-vue": "^5.2.2",
"reka-ui": "^2.5.0",
"vue": "^3.5.21"
"reka-ui": "^2.5.1",
"vue": "^3.5.22"
},
"devDependencies": {
"@vue-macros/volar": "3.0.0-beta.8",
"vue-tsc": "^3.0.6"
"vue-tsc": "^3.0.8"
}
}
@@ -15,12 +15,12 @@
"postinstall": "wxt prepare"
},
"dependencies": {
"vue": "^3.5.21"
"vue": "^3.5.22"
},
"devDependencies": {
"@unocss/reset": "^66.5.0",
"@wxt-dev/module-vue": "^1.0.2",
"vue-tsc": "^3.0.6",
"wxt": "^0.20.8"
"@unocss/reset": "^66.5.2",
"@wxt-dev/module-vue": "^1.0.3",
"vue-tsc": "^3.0.8",
"wxt": "^0.20.11"
}
}
+3692 -4020
View File
File diff suppressed because it is too large Load Diff
+15 -15
View File
@@ -11,21 +11,21 @@ catalog:
'@guiiai/logg': ^1.1.0
'@moeru/std': 0.1.0-beta.7
'@proj-airi/drizzle-duckdb-wasm': ^0.4.28
'@xsai-ext/providers-cloud': ^0.4.0-beta.2
'@xsai-ext/providers-local': ^0.4.0-beta.2
'@xsai-ext/shared-providers': ^0.4.0-beta.2
'@xsai/embed': ^0.4.0-beta.2
'@xsai/generate-speech': ^0.4.0-beta.2
'@xsai/generate-text': ^0.4.0-beta.2
'@xsai/generate-transcription': ^0.4.0-beta.2
'@xsai/model': ^0.4.0-beta.2
'@xsai/shared': ^0.4.0-beta.2
'@xsai/shared-chat': ^0.4.0-beta.2
'@xsai/stream-text': ^0.4.0-beta.2
'@xsai/tool': ^0.4.0-beta.2
'@xsai/utils-chat': ^0.4.0-beta.2
xsschema: ^0.4.0-beta.2
'@xsai-ext/providers-cloud': ^0.4.0-beta.4
'@xsai-ext/providers-local': ^0.4.0-beta.4
'@xsai-ext/shared-providers': ^0.4.0-beta.4
'@xsai/embed': ^0.4.0-beta.4
'@xsai/generate-speech': ^0.4.0-beta.4
'@xsai/generate-text': ^0.4.0-beta.4
'@xsai/generate-transcription': ^0.4.0-beta.4
'@xsai/model': ^0.4.0-beta.4
'@xsai/shared': ^0.4.0-beta.4
'@xsai/shared-chat': ^0.4.0-beta.4
'@xsai/stream-text': ^0.4.0-beta.4
'@xsai/tool': ^0.4.0-beta.4
'@xsai/utils-chat': ^0.4.0-beta.4
xsschema: ^0.4.0-beta.4
catalogs:
rolldown-vite:
vite: npm:rolldown-vite@^7.1.5
vite: npm:rolldown-vite@^7.1.13
+3 -3
View File
@@ -20,9 +20,9 @@
},
"dependencies": {
"@discordjs/voice": "^0.19.0",
"@dotenvx/dotenvx": "^1.49.0",
"@dotenvx/dotenvx": "^1.51.0",
"@guiiai/logg": "catalog:",
"@huggingface/transformers": "^3.7.2",
"@huggingface/transformers": "^3.7.3",
"@proj-airi/audio": "workspace:^",
"@proj-airi/server-sdk": "workspace:^",
"@proj-airi/server-shared": "workspace:^",
@@ -34,7 +34,7 @@
"discord.js": "^14.22.1",
"libsodium-wrappers": "^0.7.15",
"opusscript": "^0.1.1",
"tsx": "^4.20.5",
"tsx": "^4.20.6",
"wavefile": "^11.0.0"
}
}
+4 -4
View File
@@ -18,8 +18,8 @@
"awilix": "^12.0.5",
"es-toolkit": "^1.39.10",
"eventemitter3": "^5.0.1",
"minecraft-data": "^3.97.0",
"mineflayer": "^4.32.0",
"minecraft-data": "^3.98.0",
"mineflayer": "^4.33.0",
"mineflayer-armor-manager": "^2.0.1",
"mineflayer-auto-eat": "^5.0.3",
"mineflayer-collectblock": "^1.6.0",
@@ -35,11 +35,11 @@
"prismarine-windows": "^2.9.0",
"valibot": "1.0.0-beta.9",
"vec3": "^0.1.10",
"zod": "^4.1.5",
"zod": "^4.1.11",
"zod-to-json-schema": "^3.24.6"
},
"devDependencies": {
"@dotenvx/dotenvx": "^1.49.0",
"@dotenvx/dotenvx": "^1.51.0",
"dotenv": "^17.2.2"
}
}
+15 -15
View File
@@ -22,22 +22,22 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@dotenvx/dotenvx": "^1.49.0",
"@dotenvx/dotenvx": "^1.51.0",
"@ffmpeg-installer/ffmpeg": "^1.1.0",
"@grammyjs/files": "^1.1.1",
"@grammyjs/files": "^1.2.0",
"@guiiai/logg": "catalog:",
"@moeru/std": "catalog:",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/auto-instrumentations-node": "^0.62.2",
"@opentelemetry/exporter-metrics-otlp-proto": "^0.203.0",
"@opentelemetry/exporter-trace-otlp-proto": "^0.203.0",
"@opentelemetry/instrumentation-pg": "^0.56.1",
"@opentelemetry/resources": "^2.0.1",
"@opentelemetry/sdk-metrics": "^2.0.1",
"@opentelemetry/sdk-node": "^0.203.0",
"@opentelemetry/sdk-trace-node": "^2.0.1",
"@opentelemetry/auto-instrumentations-node": "^0.64.1",
"@opentelemetry/exporter-metrics-otlp-proto": "^0.205.0",
"@opentelemetry/exporter-trace-otlp-proto": "^0.205.0",
"@opentelemetry/instrumentation-pg": "^0.58.0",
"@opentelemetry/resources": "^2.1.0",
"@opentelemetry/sdk-metrics": "^2.1.0",
"@opentelemetry/sdk-node": "^0.205.0",
"@opentelemetry/sdk-trace-node": "^2.1.0",
"@opentelemetry/semantic-conventions": "^1.37.0",
"@velin-dev/core": "^0.2.6",
"@velin-dev/core": "^0.3.1",
"@xsai-ext/providers-cloud": "catalog:",
"@xsai/embed": "catalog:",
"@xsai/generate-text": "catalog:",
@@ -50,17 +50,17 @@
"es-toolkit": "^1.39.10",
"fluent-ffmpeg": "^2.1.3",
"grammy": "^1.38.2",
"nanoid": "^5.1.5",
"nanoid": "^5.1.6",
"p-limit": "^7.1.1",
"pg": "^8.16.3",
"sharp": "^0.34.3",
"sharp": "^0.34.4",
"telegram": "^2.26.22",
"uuid": "^11.1.0",
"uuid": "^13.0.0",
"valibot": "1.0.0-beta.9"
},
"devDependencies": {
"@types/pg": "^8.15.5",
"drizzle-kit": "^0.31.4",
"tsx": "^4.20.5"
"tsx": "^4.20.6"
}
}
+6 -6
View File
@@ -12,21 +12,21 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@browserbasehq/stagehand": "^2.4.4",
"@browserbasehq/stagehand": "^2.5.0",
"@guiiai/logg": "catalog:",
"@modelcontextprotocol/sdk": "^1.17.5",
"@modelcontextprotocol/sdk": "^1.18.2",
"@moeru/std": "catalog:",
"@proj-airi/server-sdk": "^0.7.2-beta.2",
"dotenv": "^17.2.2",
"h3": "^1.15.4",
"listhen": "^1.9.0",
"ofetch": "^1.4.1",
"playwright": "^1.55.0",
"zod": "^4.1.5"
"playwright": "^1.55.1",
"zod": "^4.1.11"
},
"devDependencies": {
"@types/node": "^24.3.0",
"tsx": "^4.20.5",
"@types/node": "^24.5.2",
"tsx": "^4.20.6",
"typescript": "^5.9.2"
}
}