diff --git a/apps/component-calling/index.html b/apps/component-calling/index.html
new file mode 100644
index 000000000..d8e0ffd22
--- /dev/null
+++ b/apps/component-calling/index.html
@@ -0,0 +1,23 @@
+
+
+
+
+ Component Calling by Project AIRI Team
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/component-calling/netlify.toml b/apps/component-calling/netlify.toml
new file mode 100755
index 000000000..900a505ed
--- /dev/null
+++ b/apps/component-calling/netlify.toml
@@ -0,0 +1,14 @@
+[build]
+base = "/"
+command = "pnpm -F @proj-airi/stream-vue-components... run build"
+publish = "/apps/stream-vue-components/dist"
+
+[build.environment]
+NODE_VERSION = "24.3.0"
+NODE_OPTIONS = "--max-old-space-size=4096"
+
+[[redirects]]
+from = "/*"
+to = "/index.html"
+status = 200
+force = false
diff --git a/apps/component-calling/package.json b/apps/component-calling/package.json
new file mode 100644
index 000000000..01752822c
--- /dev/null
+++ b/apps/component-calling/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "@proj-airi/component-calling",
+ "type": "module",
+ "private": true,
+ "description": "Realtime audio",
+ "author": {
+ "name": "Moeru AI Project AIRI Team",
+ "email": "airi@moeru.ai",
+ "url": "https://github.com/moeru-ai"
+ },
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/moeru-ai/airi.git",
+ "directory": "apps/component-calling"
+ },
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview",
+ "typecheck": "vue-tsc --noEmit"
+ },
+ "dependencies": {
+ "@proj-airi/ui": "workspace:^",
+ "@valibot/to-json-schema": "1.0.0-rc.0",
+ "@vueuse/core": "^13.5.0",
+ "@xsai/generate-text": "catalog:",
+ "@xsai/shared-chat": "catalog:",
+ "@xsai/stream-text": "catalog:",
+ "es-toolkit": "^1.39.7",
+ "valibot": "1.0.0-beta.9",
+ "vue": "^3.5.17",
+ "xsschema": "catalog:"
+ },
+ "devDependencies": {
+ "@iconify-json/solar": "^1.2.2",
+ "@iconify-json/svg-spinners": "^1.2.2",
+ "@types/xast": "^2.0.4",
+ "@unocss/reset": "^66.3.3",
+ "@vitejs/plugin-vue": "^6.0.0",
+ "superjson": "^2.2.2",
+ "unplugin-vue-router": "^0.14.0",
+ "vite": "catalog:rolldown-vite",
+ "vue-router": "^4.5.1",
+ "vue-tsc": "^3.0.3"
+ }
+}
diff --git a/apps/component-calling/public/apple-touch-icon.png b/apps/component-calling/public/apple-touch-icon.png
new file mode 100644
index 000000000..e3bfed969
Binary files /dev/null and b/apps/component-calling/public/apple-touch-icon.png differ
diff --git a/apps/component-calling/public/favicon.ico b/apps/component-calling/public/favicon.ico
new file mode 100644
index 000000000..a47f8f675
Binary files /dev/null and b/apps/component-calling/public/favicon.ico differ
diff --git a/apps/component-calling/public/favicon.svg b/apps/component-calling/public/favicon.svg
new file mode 100644
index 000000000..eae728aa1
--- /dev/null
+++ b/apps/component-calling/public/favicon.svg
@@ -0,0 +1,61 @@
+
diff --git a/apps/component-calling/public/maskable_icon_x192.png b/apps/component-calling/public/maskable_icon_x192.png
new file mode 100644
index 000000000..106e21b24
Binary files /dev/null and b/apps/component-calling/public/maskable_icon_x192.png differ
diff --git a/apps/component-calling/public/maskable_icon_x512.png b/apps/component-calling/public/maskable_icon_x512.png
new file mode 100644
index 000000000..97da486e5
Binary files /dev/null and b/apps/component-calling/public/maskable_icon_x512.png differ
diff --git a/apps/component-calling/public/web-app-manifest-192x192.png b/apps/component-calling/public/web-app-manifest-192x192.png
new file mode 100644
index 000000000..c046e5331
Binary files /dev/null and b/apps/component-calling/public/web-app-manifest-192x192.png differ
diff --git a/apps/component-calling/public/web-app-manifest-512x512.png b/apps/component-calling/public/web-app-manifest-512x512.png
new file mode 100644
index 000000000..e92eb2fd7
Binary files /dev/null and b/apps/component-calling/public/web-app-manifest-512x512.png differ
diff --git a/apps/component-calling/src/App.vue b/apps/component-calling/src/App.vue
new file mode 100644
index 000000000..748a0ce59
--- /dev/null
+++ b/apps/component-calling/src/App.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+ Component Calling
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/component-calling/src/main.ts b/apps/component-calling/src/main.ts
new file mode 100644
index 000000000..934946054
--- /dev/null
+++ b/apps/component-calling/src/main.ts
@@ -0,0 +1,14 @@
+import { createApp } from 'vue'
+import { createRouter, createWebHashHistory } from 'vue-router'
+import { routes } from 'vue-router/auto-routes'
+
+import App from './App.vue'
+
+import '@unocss/reset/tailwind.css'
+import 'uno.css'
+
+const router = createRouter({ routes, history: createWebHashHistory() })
+
+createApp(App)
+ .use(router)
+ .mount('#app')
diff --git a/apps/component-calling/src/pages/index.vue b/apps/component-calling/src/pages/index.vue
new file mode 100644
index 000000000..6ba7e0149
--- /dev/null
+++ b/apps/component-calling/src/pages/index.vue
@@ -0,0 +1,480 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ message.content }}
+
+
+
+
+ {{ message.content }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ message.content }}
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/component-calling/src/plugins/api.ts b/apps/component-calling/src/plugins/api.ts
new file mode 100644
index 000000000..e69de29bb
diff --git a/apps/component-calling/src/plugins/plugin-component-calling-weather/assets/README.md b/apps/component-calling/src/plugins/plugin-component-calling-weather/assets/README.md
new file mode 100644
index 000000000..de6b5727a
--- /dev/null
+++ b/apps/component-calling/src/plugins/plugin-component-calling-weather/assets/README.md
@@ -0,0 +1,10 @@
+## Acknowledgements
+
+- [Meteocons | Bas Milius — Full-Stack Developer](https://bas.dev/work/meteocons)
+
+## Many other alternatives
+
+- [Weather Icons by Bas](https://basmilius.github.io/weather-icons/index-fill.html)
+- [erikflowers/weather-icons: 215 Weather Themed Icons and CSS](https://github.com/erikflowers/weather-icons)
+- [basmilius/weather-icons: Free to use animated weather icons.](https://github.com/basmilius/weather-icons)
+- [Makin-Things/weather-icons: A set of updated weather icons based of the AmCharts style of icon.](https://github.com/Makin-Things/weather-icons)
diff --git a/apps/component-calling/src/plugins/plugin-component-calling-weather/assets/clear-day.svg b/apps/component-calling/src/plugins/plugin-component-calling-weather/assets/clear-day.svg
new file mode 100644
index 000000000..5a5c52c5b
--- /dev/null
+++ b/apps/component-calling/src/plugins/plugin-component-calling-weather/assets/clear-day.svg
@@ -0,0 +1,13 @@
+
diff --git a/apps/component-calling/src/plugins/plugin-component-calling-weather/components/Skeleton.vue b/apps/component-calling/src/plugins/plugin-component-calling-weather/components/Skeleton.vue
new file mode 100644
index 000000000..098fcd452
--- /dev/null
+++ b/apps/component-calling/src/plugins/plugin-component-calling-weather/components/Skeleton.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/component-calling/src/plugins/plugin-component-calling-weather/components/Weather.vue b/apps/component-calling/src/plugins/plugin-component-calling-weather/components/Weather.vue
new file mode 100644
index 000000000..b9a4991d7
--- /dev/null
+++ b/apps/component-calling/src/plugins/plugin-component-calling-weather/components/Weather.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.city }}
+
+
![Weather Icon]()
+
+ {{ props.temperature }}
+
+
+ {{ props.condition }}
+
+
+
+
diff --git a/apps/component-calling/src/plugins/plugin-component-calling-weather/components/index.ts b/apps/component-calling/src/plugins/plugin-component-calling-weather/components/index.ts
new file mode 100644
index 000000000..8eee490f4
--- /dev/null
+++ b/apps/component-calling/src/plugins/plugin-component-calling-weather/components/index.ts
@@ -0,0 +1,22 @@
+import { object, string } from 'valibot'
+
+import Weather from './Weather.vue'
+
+import { defineCCComponent } from '../../plugin-component-calling'
+
+export { default as Weather } from './Weather.vue'
+
+export const weatherComponent = defineCCComponent(
+ 'weather',
+ Weather,
+ object({
+ city: string(),
+ temperature: string(),
+ condition: string(),
+ }),
+ {
+ city: 'Tokyo',
+ temperature: '25°',
+ condition: 'Sunny',
+ },
+)
diff --git a/apps/component-calling/src/plugins/plugin-component-calling-weather/index.ts b/apps/component-calling/src/plugins/plugin-component-calling-weather/index.ts
new file mode 100644
index 000000000..d8f1be702
--- /dev/null
+++ b/apps/component-calling/src/plugins/plugin-component-calling-weather/index.ts
@@ -0,0 +1,9 @@
+import { weatherComponent } from './components'
+
+export function registerWidgets() {
+ return {
+ components: [
+ weatherComponent,
+ ],
+ }
+}
diff --git a/apps/component-calling/src/plugins/plugin-component-calling/index.ts b/apps/component-calling/src/plugins/plugin-component-calling/index.ts
new file mode 100644
index 000000000..d18d0d2c8
--- /dev/null
+++ b/apps/component-calling/src/plugins/plugin-component-calling/index.ts
@@ -0,0 +1,14 @@
+import type { Component } from 'vue'
+import type { Schema } from 'xsschema'
+
+import { markRaw } from 'vue'
+import { toJsonSchema } from 'xsschema'
+
+export function defineCCComponent(name: string, component: Component, schema: T, exampleProps?: Record) {
+ return {
+ name,
+ schema: toJsonSchema(schema),
+ component: markRaw(component),
+ exampleProps,
+ }
+}
diff --git a/apps/component-calling/src/utils/xsai-testing.ts b/apps/component-calling/src/utils/xsai-testing.ts
new file mode 100644
index 000000000..7fbefa3f9
--- /dev/null
+++ b/apps/component-calling/src/utils/xsai-testing.ts
@@ -0,0 +1,29 @@
+import type { streamText } from '@xsai/stream-text'
+
+type InferStreamType = T extends ReadableStream ? U : never
+type StreamTextEvent = InferStreamType>['fullStream']>
+
+export function mockStreamText(): {
+ fullStream: ReadableStream
+} {
+ const source = `weather \`\`\`json {"city":"Shanghai","temperature":"29","condition":"cloudy"} \`\`\``
+ return {
+ fullStream: new ReadableStream({
+ start(controller) {
+ const text = source.split('')
+ let index = 0
+
+ const interval = setInterval(() => {
+ if (index < text.length) {
+ controller.enqueue({ type: 'text-delta', text: text[index] })
+ index++
+ }
+ else {
+ clearInterval(interval)
+ controller.close()
+ }
+ }, 10)
+ },
+ }),
+ }
+}
diff --git a/apps/component-calling/tsconfig.json b/apps/component-calling/tsconfig.json
new file mode 100644
index 000000000..3ab7df553
--- /dev/null
+++ b/apps/component-calling/tsconfig.json
@@ -0,0 +1,29 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "lib": [
+ "ESNext",
+ "DOM",
+ "DOM.Iterable",
+ "DOM.AsyncIterable",
+ "WebWorker"
+ ],
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "types": [
+ "vite/client",
+ "unplugin-vue-router/client"
+ ],
+ "noUnusedLocals": false,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "isolatedModules": true,
+ "verbatimModuleSyntax": true,
+ "skipLibCheck": true
+ },
+ "include": [
+ "src/**/*.ts",
+ "src/**/*.d.ts",
+ "src/**/*.mts"
+ ]
+}
diff --git a/apps/component-calling/uno.config.ts b/apps/component-calling/uno.config.ts
new file mode 100644
index 000000000..cba9c11c2
--- /dev/null
+++ b/apps/component-calling/uno.config.ts
@@ -0,0 +1,48 @@
+import type { Preset } from 'unocss'
+
+import { presetChromatic } from '@proj-airi/unocss-preset-chromatic'
+import {
+ defineConfig,
+
+ presetAttributify,
+ presetIcons,
+ presetTypography,
+ presetWebFonts,
+ presetWind3,
+ transformerDirectives,
+ transformerVariantGroup,
+} from 'unocss'
+
+import { presetWebFontsFonts } from '../../uno.config'
+
+export default defineConfig({
+ presets: [
+ presetWind3(),
+ presetAttributify(),
+ presetTypography(),
+ presetWebFonts({
+ fonts: {
+ ...presetWebFontsFonts('fontsource'),
+ },
+ timeouts: {
+ warning: 5000,
+ failure: 10000,
+ },
+ }),
+ presetIcons({
+ scale: 1.2,
+ }),
+ presetChromatic({
+ baseHue: 240.25,
+ colors: {
+ primary: 0,
+ complementary: 180,
+ },
+ }) as Preset,
+ ],
+ transformers: [
+ transformerDirectives(),
+ transformerVariantGroup(),
+ ],
+ safelist: 'prose prose-sm m-auto text-left'.split(' '),
+})
diff --git a/apps/component-calling/vite.config.ts b/apps/component-calling/vite.config.ts
new file mode 100644
index 000000000..07b53abb7
--- /dev/null
+++ b/apps/component-calling/vite.config.ts
@@ -0,0 +1,21 @@
+import { resolve } from 'node:path'
+
+import Vue from '@vitejs/plugin-vue'
+import Unocss from 'unocss/vite'
+import VueRouter from 'unplugin-vue-router/vite'
+
+import { defineConfig } from 'vite'
+
+export default defineConfig({
+ plugins: [
+ // https://github.com/posva/unplugin-vue-router
+ VueRouter({
+ extensions: ['.vue', '.md'],
+ dts: resolve(import.meta.dirname, 'src', 'typed-router.d.ts'),
+ }),
+ Vue(),
+ // https://github.com/antfu/unocss
+ // see uno.config.ts for config
+ Unocss(),
+ ],
+})
diff --git a/cspell.config.yaml b/cspell.config.yaml
index 80d8ff3c1..2bdb7a099 100644
--- a/cspell.config.yaml
+++ b/cspell.config.yaml
@@ -91,6 +91,7 @@ words:
- grammyjs
- groq
- gugi
+ - guii
- guiiai
- hfspaceup
- hfsup
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2e43a2694..1003f148a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -52,7 +52,7 @@ catalogs:
specifier: ^0.3.2
version: 0.3.2
xsschema:
- specifier: ^0.3.2
+ specifier: 0.3.2
version: 0.3.2
rolldown-vite:
vite:
@@ -173,6 +173,70 @@ importers:
specifier: ^3.2.4
version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.15)(jiti@2.4.2)(jsdom@25.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(less@4.4.0)(lightningcss@1.30.1)(msw@2.7.3(@types/node@24.0.15)(typescript@5.8.3))(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
+ apps/component-calling:
+ dependencies:
+ '@proj-airi/ui':
+ specifier: workspace:^
+ version: link:../../packages/ui
+ '@valibot/to-json-schema':
+ specifier: 1.0.0-rc.0
+ version: 1.0.0-rc.0(valibot@1.0.0-beta.9(typescript@5.8.3))
+ '@vueuse/core':
+ specifier: ^13.5.0
+ version: 13.5.0(vue@3.5.17(typescript@5.8.3))
+ '@xsai/generate-text':
+ specifier: 'catalog:'
+ version: 0.3.2
+ '@xsai/shared-chat':
+ specifier: 'catalog:'
+ version: 0.3.2
+ '@xsai/stream-text':
+ specifier: 'catalog:'
+ version: 0.3.2
+ es-toolkit:
+ specifier: ^1.39.7
+ version: 1.39.7
+ valibot:
+ specifier: 1.0.0-beta.9
+ version: 1.0.0-beta.9(typescript@5.8.3)
+ vue:
+ specifier: ^3.5.17
+ version: 3.5.17(typescript@5.8.3)
+ xsschema:
+ specifier: 'catalog:'
+ version: 0.3.2(@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.6(zod@3.25.76))(zod@3.25.76)
+ devDependencies:
+ '@iconify-json/solar':
+ specifier: ^1.2.2
+ version: 1.2.2
+ '@iconify-json/svg-spinners':
+ specifier: ^1.2.2
+ version: 1.2.2
+ '@types/xast':
+ specifier: ^2.0.4
+ version: 2.0.4
+ '@unocss/reset':
+ specifier: ^66.3.3
+ version: 66.3.3
+ '@vitejs/plugin-vue':
+ specifier: ^6.0.0
+ version: 6.0.0(rolldown-vite@7.0.9(@types/node@24.0.15)(esbuild@0.25.5)(jiti@2.4.2)(less@4.4.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.17(typescript@5.8.3))
+ superjson:
+ specifier: ^2.2.2
+ version: 2.2.2
+ unplugin-vue-router:
+ specifier: ^0.14.0
+ version: 0.14.0(@vue/compiler-sfc@3.5.17)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))(vue@3.5.17(typescript@5.8.3))
+ vite:
+ specifier: catalog:rolldown-vite
+ version: rolldown-vite@7.0.9(@types/node@24.0.15)(esbuild@0.25.5)(jiti@2.4.2)(less@4.4.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
+ vue-router:
+ specifier: ^4.5.1
+ version: 4.5.1(vue@3.5.17(typescript@5.8.3))
+ vue-tsc:
+ specifier: ^3.0.3
+ version: 3.0.3(typescript@5.8.3)
+
apps/playground-prompt-engineering:
dependencies:
'@velin-dev/core':
@@ -1055,7 +1119,7 @@ importers:
version: 0.1.3
unplugin-yaml:
specifier: ^3.0.2
- version: 3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(encoding@0.1.13)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@7.0.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
+ version: 3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@7.0.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
vitepress:
specifier: ^2.0.0-alpha.8
version: 2.0.0-alpha.8(@algolia/client-search@5.32.0)(@types/node@24.0.15)(change-case@5.4.4)(fuse.js@7.1.0)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(nprogress@0.2.0)(postcss@8.5.6)(react@18.3.1)(search-insights@2.17.3)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0)
@@ -1098,7 +1162,7 @@ importers:
devDependencies:
unplugin-yaml:
specifier: ^3.0.2
- version: 3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(encoding@0.1.13)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@7.0.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
+ version: 3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@7.0.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
packages/memory-pgvector:
dependencies:
@@ -1475,7 +1539,7 @@ importers:
version: 1.2.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(esbuild@0.25.5)(rollup@4.45.1)(vite@6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
unplugin-yaml:
specifier: ^3.0.2
- version: 3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(encoding@0.1.13)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
+ version: 3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
vite:
specifier: ^6.3.5
version: 6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
@@ -18686,6 +18750,107 @@ snapshots:
- yaml
optional: true
+ astro@5.10.1(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0):
+ dependencies:
+ '@astrojs/compiler': 2.12.2
+ '@astrojs/internal-helpers': 0.6.1
+ '@astrojs/markdown-remark': 6.3.2
+ '@astrojs/telemetry': 3.3.0
+ '@capsizecss/unpack': 2.4.0(encoding@0.1.13)
+ '@oslojs/encoding': 1.1.0
+ '@rollup/pluginutils': 5.2.0(rollup@4.45.1)
+ acorn: 8.15.0
+ aria-query: 5.3.2
+ axobject-query: 4.1.0
+ boxen: 8.0.1
+ ci-info: 4.2.0
+ clsx: 2.1.1
+ common-ancestor-path: 1.0.1
+ cookie: 1.0.2
+ cssesc: 3.0.0
+ debug: 4.4.1
+ deterministic-object-hash: 2.0.2
+ devalue: 5.1.1
+ diff: 5.2.0
+ dlv: 1.1.3
+ dset: 3.1.4
+ es-module-lexer: 1.7.0
+ esbuild: 0.25.5
+ estree-walker: 3.0.3
+ flattie: 1.1.1
+ fontace: 0.3.0
+ github-slugger: 2.0.0
+ html-escaper: 3.0.3
+ http-cache-semantics: 4.2.0
+ import-meta-resolve: 4.1.0
+ js-yaml: 4.1.0
+ kleur: 4.1.5
+ magic-string: 0.30.17
+ magicast: 0.3.5
+ mrmime: 2.0.1
+ neotraverse: 0.6.18
+ p-limit: 6.2.0
+ p-queue: 8.1.0
+ package-manager-detector: 1.3.0
+ picomatch: 4.0.2
+ prompts: 2.4.2
+ rehype: 13.0.2
+ semver: 7.7.2
+ shiki: 3.8.1
+ tinyexec: 0.3.2
+ tinyglobby: 0.2.14
+ tsconfck: 3.1.6(typescript@5.8.3)
+ ultrahtml: 1.6.0
+ unifont: 0.5.2
+ unist-util-visit: 5.0.0
+ unstorage: 1.16.0
+ vfile: 6.0.3
+ vite: 6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
+ vitefu: 1.0.7(vite@6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
+ xxhash-wasm: 1.1.0
+ yargs-parser: 21.1.1
+ yocto-spinner: 0.2.3
+ zod: 3.25.76
+ zod-to-json-schema: 3.24.6(zod@3.25.76)
+ zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.25.76)
+ optionalDependencies:
+ sharp: 0.33.5
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@deno/kv'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@types/node'
+ - '@upstash/redis'
+ - '@vercel/blob'
+ - '@vercel/kv'
+ - aws4fetch
+ - db0
+ - encoding
+ - idb-keyval
+ - ioredis
+ - jiti
+ - less
+ - lightningcss
+ - rollup
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - typescript
+ - uploadthing
+ - yaml
+ optional: true
+
async-mutex@0.3.2:
dependencies:
tslib: 2.8.1
@@ -25571,7 +25736,7 @@ snapshots:
rollup: 4.45.1
vite: rolldown-vite@7.0.9(@types/node@24.0.15)(esbuild@0.25.5)(jiti@2.4.2)(less@4.4.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
- unplugin-yaml@3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(encoding@0.1.13)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
+ unplugin-yaml@3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
dependencies:
'@rollup/pluginutils': 5.2.0(rollup@4.45.1)
unplugin: 2.3.5
@@ -25579,13 +25744,13 @@ snapshots:
optionalDependencies:
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.45.1)
'@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.45.1)
- astro: 5.10.1(@types/node@24.0.15)(encoding@0.1.13)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0)
+ astro: 5.10.1(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0)
esbuild: 0.25.5
rolldown: 1.0.0-beta.29
rollup: 4.45.1
vite: 6.3.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
- unplugin-yaml@3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(encoding@0.1.13)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@7.0.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
+ unplugin-yaml@3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.45.1))(astro@5.10.1(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0))(esbuild@0.25.5)(rolldown@1.0.0-beta.29)(rollup@4.45.1)(vite@7.0.5(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
dependencies:
'@rollup/pluginutils': 5.2.0(rollup@4.45.1)
unplugin: 2.3.5
@@ -25593,7 +25758,7 @@ snapshots:
optionalDependencies:
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.45.1)
'@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.45.1)
- astro: 5.10.1(@types/node@24.0.15)(encoding@0.1.13)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0)
+ astro: 5.10.1(@types/node@24.0.15)(jiti@2.4.2)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.45.1)(terser@5.43.1)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.0)
esbuild: 0.25.5
rolldown: 1.0.0-beta.29
rollup: 4.45.1
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 4eebe2ad0..98ef4e8da 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -23,7 +23,7 @@ catalog:
'@xsai/stream-text': ^0.3.2
'@xsai/tool': ^0.3.2
'@xsai/utils-chat': ^0.3.2
- xsschema: ^0.3.2
+ xsschema: 0.3.2
catalogs:
rolldown-vite: