chore(deps): bump dependencies
This commit is contained in:
@@ -11,14 +11,14 @@
|
||||
"typecheck": "vue-tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@velin-dev/core": "^0.2.5",
|
||||
"@velin-dev/vue": "^0.2.5",
|
||||
"@velin-dev/core": "^0.2.6",
|
||||
"@velin-dev/vue": "^0.2.6",
|
||||
"pinia": "^3.0.3",
|
||||
"vue": "^3.5.17"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify/vue": "^5.0.0",
|
||||
"@types/node": "^24.0.13",
|
||||
"@types/node": "^24.0.15",
|
||||
"@unocss/reset": "^66.3.3",
|
||||
"@vitejs/plugin-vue": "^6.0.0",
|
||||
"typescript": "~5.8.3",
|
||||
@@ -28,6 +28,6 @@
|
||||
"vite": "catalog:rolldown-vite",
|
||||
"vite-plugin-vue-devtools": "^7.7.7",
|
||||
"vite-plugin-vue-layouts": "^0.11.0",
|
||||
"vue-tsc": "^2.2.12"
|
||||
"vue-tsc": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"@xsai/generate-text": "catalog:",
|
||||
"@xsai/shared-chat": "catalog:",
|
||||
"@xsai/stream-text": "catalog:",
|
||||
"es-toolkit": "^1.39.6",
|
||||
"es-toolkit": "^1.39.7",
|
||||
"vue": "^3.5.17"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -36,6 +36,6 @@
|
||||
"unplugin-vue-router": "^0.14.0",
|
||||
"vite": "catalog:rolldown-vite",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue-tsc": "^3.0.1"
|
||||
"vue-tsc": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"dependencies": {
|
||||
"@date-fns/utc": "^2.1.0",
|
||||
"@formkit/auto-animate": "^0.8.2",
|
||||
"@huggingface/transformers": "^3.6.1",
|
||||
"@huggingface/transformers": "^3.6.3",
|
||||
"@moeru/std": "catalog:",
|
||||
"@proj-airi/audio": "workspace:^",
|
||||
"@proj-airi/ccc": "workspace:^",
|
||||
@@ -33,14 +33,14 @@
|
||||
"@proj-airi/ui": "workspace:^",
|
||||
"@ricky0123/vad-web": "^0.0.24",
|
||||
"@stdlib/string-base-kebabcase": "^0.2.2",
|
||||
"@tauri-apps/api": "^2.6.0",
|
||||
"@tauri-apps/api": "^2.7.0",
|
||||
"@tauri-apps/plugin-global-shortcut": "^2.3.0",
|
||||
"@tauri-apps/plugin-os": "^2.3.0",
|
||||
"@tauri-apps/plugin-positioner": "^2.3.0",
|
||||
"@tauri-apps/plugin-window-state": "^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.77",
|
||||
"@types/audioworklet": "^0.0.81",
|
||||
"@vueuse/core": "^13.5.0",
|
||||
"@vueuse/shared": "^13.5.0",
|
||||
"@xsai-ext/providers-cloud": "catalog:",
|
||||
@@ -56,7 +56,7 @@
|
||||
"culori": "^4.0.2",
|
||||
"date-fns": "^4.1.0",
|
||||
"drizzle-kit": "^0.31.4",
|
||||
"drizzle-orm": "^0.44.2",
|
||||
"drizzle-orm": "^0.44.3",
|
||||
"jszip": "^3.10.1",
|
||||
"localforage": "^1.10.0",
|
||||
"node-vibrant": "^4.0.3",
|
||||
@@ -70,7 +70,7 @@
|
||||
"reka-ui": "^2.3.2",
|
||||
"remark-parse": "^11.0.0",
|
||||
"remark-rehype": "^11.1.2",
|
||||
"shiki": "^3.7.0",
|
||||
"shiki": "^3.8.1",
|
||||
"three": "^0.178.0",
|
||||
"unified": "^11.0.5",
|
||||
"unspeech": "^0.1.7",
|
||||
@@ -78,11 +78,11 @@
|
||||
"vaul-vue": "^0.4.1",
|
||||
"vue": "^3.5.17",
|
||||
"vue-demi": "^0.14.10",
|
||||
"vue-i18n": "^11.1.9",
|
||||
"vue-i18n": "^11.1.10",
|
||||
"vue-router": "^4.5.1",
|
||||
"xsschema": "catalog:",
|
||||
"yauzl": "^3.2.0",
|
||||
"zod": "^3.25.74"
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fontsource-variable/dm-sans": "^5.2.6",
|
||||
@@ -95,12 +95,12 @@
|
||||
"@fontsource/kiwi-maru": "^5.2.6",
|
||||
"@fontsource/m-plus-rounded-1c": "^5.2.8",
|
||||
"@fontsource/sniglet": "^5.2.6",
|
||||
"@iconify-json/carbon": "^1.2.10",
|
||||
"@iconify-json/carbon": "^1.2.11",
|
||||
"@iconify-json/eos-icons": "^1.2.2",
|
||||
"@iconify-json/lucide": "^1.2.57",
|
||||
"@iconify-json/mingcute": "^1.2.3",
|
||||
"@iconify-json/ph": "^1.2.2",
|
||||
"@iconify-json/simple-icons": "^1.2.43",
|
||||
"@iconify-json/simple-icons": "^1.2.44",
|
||||
"@iconify-json/solar": "^1.2.2",
|
||||
"@iconify-json/svg-spinners": "^1.2.2",
|
||||
"@iconify-json/vscode-icons": "^1.2.23",
|
||||
@@ -110,29 +110,29 @@
|
||||
"@proj-airi/ui-transitions": "workspace:^",
|
||||
"@proj-airi/unplugin-fetch": "^0.1.6",
|
||||
"@proj-airi/unplugin-live2d-sdk": "^0.1.5",
|
||||
"@shikijs/markdown-it": "^3.7.0",
|
||||
"@tauri-apps/cli": "^2.6.2",
|
||||
"@shikijs/markdown-it": "^3.8.1",
|
||||
"@tauri-apps/cli": "^2.7.1",
|
||||
"@types/culori": "^4.0.0",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/three": "^0.178.1",
|
||||
"@types/yauzl": "^2.10.3",
|
||||
"@unocss/reset": "^66.3.3",
|
||||
"@vitejs/plugin-vue": "^6.0.0",
|
||||
"@vue-macros/volar": "^3.0.0-beta.15",
|
||||
"@vue-macros/volar": "^3.0.0-beta.17",
|
||||
"@vueuse/motion": "^3.0.3",
|
||||
"@xsai-transformers/embed": "^0.0.7",
|
||||
"cac": "^6.7.14",
|
||||
"execa": "^9.6.0",
|
||||
"less": "^4.3.0",
|
||||
"less": "^4.4.0",
|
||||
"unocss-preset-scrollbar": "^3.2.0",
|
||||
"unplugin-info": "^1.2.2",
|
||||
"unplugin-vue-macros": "^2.14.5",
|
||||
"unplugin-vue-router": "^0.14.0",
|
||||
"unplugin-yaml": "^3.0.1",
|
||||
"unplugin-yaml": "^3.0.2",
|
||||
"vite": "catalog:rolldown-vite",
|
||||
"vite-bundle-visualizer": "^1.2.1",
|
||||
"vite-plugin-vue-devtools": "^7.7.7",
|
||||
"vite-plugin-vue-layouts": "^0.11.0",
|
||||
"vue-tsc": "^3.0.1"
|
||||
"vue-tsc": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { useMarkdown } from '@proj-airi/stage-ui/composables'
|
||||
import { useChatStore } from '@proj-airi/stage-ui/stores'
|
||||
import { useElementBounding, useScroll } from '@vueuse/core'
|
||||
import { storeToRefs } from 'pinia'
|
||||
import { nextTick, ref } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
@@ -10,72 +9,70 @@ const chatHistoryRef = ref<HTMLDivElement>()
|
||||
|
||||
const { t } = useI18n()
|
||||
const { messages, sending } = storeToRefs(useChatStore())
|
||||
const bounding = useElementBounding(chatHistoryRef, { immediate: true, windowScroll: true, windowResize: true })
|
||||
const { y: chatHistoryContainerY } = useScroll(chatHistoryRef)
|
||||
|
||||
const { process } = useMarkdown()
|
||||
const { onBeforeMessageComposed, onTokenLiteral } = useChatStore()
|
||||
|
||||
onBeforeMessageComposed(async () => {
|
||||
// Scroll down to the new sent message
|
||||
await nextTick()
|
||||
bounding.update()
|
||||
chatHistoryContainerY.value = bounding.height.value
|
||||
nextTick().then(() => {
|
||||
if (!chatHistoryRef.value)
|
||||
return
|
||||
|
||||
chatHistoryRef.value.scrollTop = chatHistoryRef.value.scrollHeight
|
||||
})
|
||||
})
|
||||
|
||||
onTokenLiteral(async () => {
|
||||
// Scroll down to the new responding message
|
||||
await nextTick()
|
||||
bounding.update()
|
||||
chatHistoryContainerY.value = bounding.height.value
|
||||
nextTick().then(() => {
|
||||
if (!chatHistoryRef.value)
|
||||
return
|
||||
|
||||
chatHistoryRef.value.scrollTop = chatHistoryRef.value.scrollHeight
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div py="1" flex="~ col" h-full rounded="lg" overflow-hidden>
|
||||
<div relative px="<sm:2" py="<sm:2" flex="~ col" rounded="lg" overflow-hidden>
|
||||
<div flex-1 /> <!-- spacer -->
|
||||
<div
|
||||
ref="chatHistoryRef" v-auto-animate flex="~ col"
|
||||
scrollbar="~ w-2 track-color-transparent thumb-color-primary-300 rounded" h-full w-full overflow-scroll
|
||||
>
|
||||
<div ref="chatHistoryRef" v-auto-animate h-full w-full flex="~ col" overflow-scroll>
|
||||
<div flex-1 /> <!-- spacer -->
|
||||
<div v-for="(message, index) in messages" :key="index" mb-2>
|
||||
<div v-if="message.role === 'error'" flex mr="12">
|
||||
<div
|
||||
flex="~ col" border="4 solid violet-200/50 dark:violet-500/50" shadow="md violet-200/50 dark:none"
|
||||
flex="~ col" border="2 solid violet-200/50 dark:violet-500/50" shadow="md violet-200/50 dark:none"
|
||||
min-w-20 rounded-lg px-2 py-1 h="unset <sm:fit" bg="<md:violet-500/25"
|
||||
>
|
||||
<div flex="~ row" gap-2>
|
||||
<div flex-1>
|
||||
<span text-xs text="violet-400/90 dark:violet-600/90" font-semibold class="inline <sm:hidden">{{
|
||||
t('stage.chat.message.character-name.core-system') }}</span>
|
||||
<span text-xs text="violet-400/90 dark:violet-600/90" font-normal class="inline <sm:hidden">{{ t('stage.chat.message.character-name.core-system') }}</span>
|
||||
</div>
|
||||
<div i-solar:danger-triangle-bold-duotone text-violet-500 />
|
||||
</div>
|
||||
<div v-if="sending" i-eos-icons:three-dots-loading />
|
||||
<div v-if="sending && index === messages.length - 1" i-eos-icons:three-dots-loading />
|
||||
<div
|
||||
v-else class="markdown-content text-violet-500" text="base <sm:xs"
|
||||
v-else class="markdown-content break-words text-violet-500" text="base <sm:xs"
|
||||
v-html="process(message.content as string)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="message.role === 'assistant'" flex mr="12">
|
||||
<div
|
||||
flex="~ col" border="4 solid primary-200" shadow="md primary-200/50" min-w-20 rounded-lg px-2 py-1 h="fit"
|
||||
bg="primary-100"
|
||||
flex="~ col" border="2 solid primary-200/50 dark:primary-500/50" shadow="md primary-200/50 dark:none" min-w-20
|
||||
rounded-lg px-2 py-1 h="unset <sm:fit" bg="<md:primary-500/25"
|
||||
>
|
||||
<div>
|
||||
<span text-xs text="primary-400/90" font-semibold class="inline hidden">AIRI</span>
|
||||
<span text-xs text="primary-400/90 dark:primary-600/90" font-normal class="inline <sm:hidden">{{ t('stage.chat.message.character-name.airi') }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="message.content" class="markdown-content" text="xs primary-400"
|
||||
>
|
||||
<div v-if="message.content && index === messages.length - 1" class="markdown-content" text="xs primary-400">
|
||||
<div v-for="(slice, sliceIndex) in message.slices" :key="sliceIndex">
|
||||
<div v-if="slice.type === 'tool-call'">
|
||||
<div
|
||||
p="1" border="1 solid primary-200" rounded-lg m="y-1" bg="primary-100"
|
||||
>
|
||||
Called: <code>{{ slice.toolCall.function.name }}</code>
|
||||
Called: <code>{{ slice.toolCall.toolName }}</code>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="slice.type === 'tool-call-result'" /> <!-- this line should be unreachable -->
|
||||
@@ -85,18 +82,15 @@ onTokenLiteral(async () => {
|
||||
<div v-else i-eos-icons:three-dots-loading />
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="message.role === 'user'" flex="~">
|
||||
<div v-else-if="message.role === 'user'" flex="~ row-reverse" ml="12">
|
||||
<div
|
||||
flex="~ col" border="4 solid cyan-200" shadow="md cyan-200/50" px="2" h="fit" min-w-20 rounded-lg px-2
|
||||
py-1 bg="cyan-100"
|
||||
flex="~ col" border="2 solid cyan-200/50 dark:cyan-500/50" shadow="md cyan-200/50 dark:none" px="2"
|
||||
h="unset <sm:fit" min-w-20 rounded-lg px-2 py-1 bg="<md:cyan-500/25"
|
||||
>
|
||||
<div>
|
||||
<span text-xs text="cyan-600/90" font-semibold class="hidden">You</span>
|
||||
<span text-xs text="cyan-400/90 dark:cyan-600/90" font-normal class="inline <sm:hidden">{{ t('stage.chat.message.character-name.you') }}</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="message.content" class="markdown-content" text="xs cyan-600"
|
||||
v-html="process(message.content as string)"
|
||||
/>
|
||||
<div v-if="message.content" class="markdown-content break-words" text="base <sm:xs" v-html="process(message.content as string)" />
|
||||
<div v-else />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+13
-13
@@ -19,7 +19,7 @@
|
||||
"dependencies": {
|
||||
"@date-fns/utc": "^2.1.0",
|
||||
"@formkit/auto-animate": "^0.8.2",
|
||||
"@huggingface/transformers": "^3.6.1",
|
||||
"@huggingface/transformers": "^3.6.3",
|
||||
"@llama-flow/core": "^0.4.4",
|
||||
"@moeru/std": "catalog:",
|
||||
"@proj-airi/audio": "workspace:^",
|
||||
@@ -56,7 +56,7 @@
|
||||
"date-fns": "^4.1.0",
|
||||
"driver.js": "^1.3.6",
|
||||
"drizzle-kit": "^0.31.4",
|
||||
"drizzle-orm": "^0.44.2",
|
||||
"drizzle-orm": "^0.44.3",
|
||||
"gpuu": "^1.0.4",
|
||||
"jszip": "^3.10.1",
|
||||
"localforage": "^1.10.0",
|
||||
@@ -71,7 +71,7 @@
|
||||
"reka-ui": "^2.3.2",
|
||||
"remark-parse": "^11.0.0",
|
||||
"remark-rehype": "^11.1.2",
|
||||
"shiki": "^3.7.0",
|
||||
"shiki": "^3.8.1",
|
||||
"three": "^0.178.0",
|
||||
"unified": "^11.0.5",
|
||||
"unspeech": "^0.1.7",
|
||||
@@ -79,20 +79,20 @@
|
||||
"vaul-vue": "^0.4.1",
|
||||
"vue": "^3.5.17",
|
||||
"vue-demi": "^0.14.10",
|
||||
"vue-i18n": "^11.1.9",
|
||||
"vue-i18n": "^11.1.10",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue-sonner": "^2.0.1",
|
||||
"vue-sonner": "^2.0.2",
|
||||
"workbox-window": "^7.3.0",
|
||||
"xsschema": "catalog:",
|
||||
"yauzl": "^3.2.0",
|
||||
"zod": "^3.25.74"
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/carbon": "^1.2.10",
|
||||
"@iconify-json/carbon": "^1.2.11",
|
||||
"@iconify-json/eos-icons": "^1.2.2",
|
||||
"@iconify-json/lucide": "^1.2.57",
|
||||
"@iconify-json/mingcute": "^1.2.3",
|
||||
"@iconify-json/simple-icons": "^1.2.43",
|
||||
"@iconify-json/simple-icons": "^1.2.44",
|
||||
"@iconify-json/solar": "^1.2.2",
|
||||
"@iconify-json/svg-spinners": "^1.2.2",
|
||||
"@iconify-json/vscode-icons": "^1.2.23",
|
||||
@@ -100,15 +100,15 @@
|
||||
"@proj-airi/lobe-icons": "^1.0.8",
|
||||
"@proj-airi/unplugin-fetch": "^0.1.6",
|
||||
"@proj-airi/unplugin-live2d-sdk": "^0.1.5",
|
||||
"@shikijs/markdown-it": "^3.7.0",
|
||||
"@types/audioworklet": "^0.0.77",
|
||||
"@shikijs/markdown-it": "^3.8.1",
|
||||
"@types/audioworklet": "^0.0.81",
|
||||
"@types/culori": "^4.0.0",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/three": "^0.178.1",
|
||||
"@types/yauzl": "^2.10.3",
|
||||
"@unocss/reset": "^66.3.3",
|
||||
"@vitejs/plugin-vue": "^6.0.0",
|
||||
"@vue-macros/volar": "^3.0.0-beta.15",
|
||||
"@vue-macros/volar": "^3.0.0-beta.17",
|
||||
"@vueuse/motion": "^3.0.3",
|
||||
"execa": "^9.6.0",
|
||||
"hfup": "^0.5.0",
|
||||
@@ -116,12 +116,12 @@
|
||||
"unplugin-info": "^1.2.2",
|
||||
"unplugin-vue-macros": "^2.14.5",
|
||||
"unplugin-vue-router": "^0.14.0",
|
||||
"unplugin-yaml": "^3.0.1",
|
||||
"unplugin-yaml": "^3.0.2",
|
||||
"vite": "catalog:rolldown-vite",
|
||||
"vite-bundle-visualizer": "^1.2.1",
|
||||
"vite-plugin-pwa": "^1.0.1",
|
||||
"vite-plugin-vue-devtools": "^7.7.7",
|
||||
"vite-plugin-vue-layouts": "^0.11.0",
|
||||
"vue-tsc": "^3.0.1"
|
||||
"vue-tsc": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,8 +66,20 @@ onTokenLiteral(async () => {
|
||||
<div>
|
||||
<span text-xs text="primary-400/90 dark:primary-600/90" font-normal class="inline <sm:hidden">{{ t('stage.chat.message.character-name.airi') }}</span>
|
||||
</div>
|
||||
<div v-if="sending && index === messages.length - 1" i-eos-icons:three-dots-loading />
|
||||
<div v-else class="markdown-content break-words" text="base <sm:xs" v-html="process(message.content as string)" />
|
||||
<div v-if="message.content && index === messages.length - 1" class="markdown-content" text="xs primary-400">
|
||||
<div v-for="(slice, sliceIndex) in message.slices" :key="sliceIndex">
|
||||
<div v-if="slice.type === 'tool-call'">
|
||||
<div
|
||||
p="1" border="1 solid primary-200" rounded-lg m="y-1" bg="primary-100"
|
||||
>
|
||||
Called: <code>{{ slice.toolCall.toolName }}</code>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="slice.type === 'tool-call-result'" /> <!-- this line should be unreachable -->
|
||||
<div v-else v-html="process(slice.text)" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-else i-eos-icons:three-dots-loading />
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="message.role === 'user'" flex="~ row-reverse" ml="12">
|
||||
|
||||
@@ -46,8 +46,10 @@ async function handleChatSendMessage() {
|
||||
messages: messages.value.slice(0, messages.value.length - 1).map(msg => toRaw(msg)),
|
||||
})
|
||||
|
||||
for await (const chunk of response.chunkStream)
|
||||
sendEvent(tokenEvent.with(chunk.choices[0].delta.content || ''))
|
||||
for await (const chunk of response.fullStream) {
|
||||
if (chunk.type === 'text-delta')
|
||||
sendEvent(tokenEvent.with(chunk.text || ''))
|
||||
}
|
||||
|
||||
return doneEvent.with()
|
||||
})
|
||||
|
||||
@@ -175,13 +175,13 @@ function formMarkRegex(terms: Set<string>) {
|
||||
<div class="flex flex-wrap items-center">
|
||||
<!-- <span>#</span> -->
|
||||
<span
|
||||
v-for="(t, index) in p.titles"
|
||||
v-for="(title, index) in p.titles"
|
||||
:key="index"
|
||||
class="flex items-center"
|
||||
>
|
||||
<span
|
||||
class="text"
|
||||
v-html="t"
|
||||
v-html="title"
|
||||
/>
|
||||
<Icon
|
||||
icon="lucide:chevron-right"
|
||||
|
||||
+12
-12
@@ -18,18 +18,18 @@
|
||||
"@fontsource/dm-mono": "^5.2.6",
|
||||
"@fontsource/dm-serif-display": "^5.2.6",
|
||||
"@internationalized/date": "^3.8.2",
|
||||
"@proj-airi/chromatic": "^0.0.7",
|
||||
"@proj-airi/chromatic": "^1.0.0",
|
||||
"@proj-airi/i18n": "workspace:^",
|
||||
"@vueuse/core": "^12.8.2",
|
||||
"@vueuse/core": "^13.5.0",
|
||||
"motion-v": "^1.5.0",
|
||||
"pathe": "^2.0.3",
|
||||
"reka-ui": "^2.3.1",
|
||||
"vue": "^3.5.13",
|
||||
"vue-i18n": "^11.1.9",
|
||||
"vue-sonner": "^1.3.2"
|
||||
"reka-ui": "^2.3.2",
|
||||
"vue": "^3.5.17",
|
||||
"vue-i18n": "^11.1.10",
|
||||
"vue-sonner": "^2.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/traverse": "^7.27.4",
|
||||
"@babel/traverse": "^7.28.0",
|
||||
"@iconify/vue": "^5.0.0",
|
||||
"@intlify/unplugin-vue-i18n": "^6.0.8",
|
||||
"@mdit/plugin-footnote": "^0.22.2",
|
||||
@@ -46,13 +46,13 @@
|
||||
"markdown-it-anchor": "^9.2.0",
|
||||
"minisearch": "^7.1.2",
|
||||
"postcss": "^8.5.6",
|
||||
"sharp": "^0.34.2",
|
||||
"shiki": "^3.7.0",
|
||||
"sharp": "^0.34.3",
|
||||
"shiki": "^3.8.1",
|
||||
"tsx": "^4.20.3",
|
||||
"uncrypto": "^0.1.3",
|
||||
"unplugin-yaml": "^3.0.1",
|
||||
"unplugin-yaml": "^3.0.2",
|
||||
"vitepress": "^2.0.0-alpha.8",
|
||||
"vue-component-meta": "^2.2.12",
|
||||
"vue-tsc": "^3.0.1"
|
||||
"vue-component-meta": "^3.0.3",
|
||||
"vue-tsc": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
+8
-8
@@ -36,28 +36,28 @@
|
||||
"nolyfill": "pnpm dlx nolyfill"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^4.16.2",
|
||||
"@antfu/eslint-config": "^4.17.0",
|
||||
"@antfu/ni": "^25.0.0",
|
||||
"@arethetypeswrong/core": "^0.18.2",
|
||||
"@iconify/utils": "^2.3.0",
|
||||
"@proj-airi/unocss-preset-chromatic": "^1.0.0",
|
||||
"@types/node": "^24.0.13",
|
||||
"@types/node": "^24.0.15",
|
||||
"@unocss/eslint-config": "^66.3.3",
|
||||
"@unocss/eslint-plugin": "^66.3.3",
|
||||
"@unocss/preset-mini": "^66.3.3",
|
||||
"@unocss/preset-web-fonts": "^66.3.3",
|
||||
"@vitest/coverage-v8": "^3.2.4",
|
||||
"bumpp": "^10.2.0",
|
||||
"eslint": "^9.30.1",
|
||||
"eslint": "^9.31.0",
|
||||
"execa": "^9.6.0",
|
||||
"lint-staged": "^16.1.2",
|
||||
"rollup": "^4.44.2",
|
||||
"rollup": "^4.45.1",
|
||||
"simple-git-hooks": "^2.13.0",
|
||||
"smol-toml": "^1.4.1",
|
||||
"taze": "^19.1.0",
|
||||
"tsdown": "^0.12.9",
|
||||
"tsdown": "^0.13.0",
|
||||
"tsx": "^4.20.3",
|
||||
"turbo": "^2.5.4",
|
||||
"turbo": "^2.5.5",
|
||||
"typescript": "~5.8.3",
|
||||
"uncrypto": "^0.1.3",
|
||||
"unocss": "^66.3.3",
|
||||
@@ -65,8 +65,8 @@
|
||||
"unplugin-lightningcss": "^0.4.1",
|
||||
"unplugin-raw": "^0.5.0",
|
||||
"unplugin-unused": "^0.5.1",
|
||||
"unplugin-vue": "^6.2.0",
|
||||
"vite": "^7.0.3",
|
||||
"unplugin-vue": "^7.0.0",
|
||||
"vite": "^7.0.5",
|
||||
"vite-plugin-inspect": "^11.3.0",
|
||||
"vitest": "^3.2.4"
|
||||
},
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@moeru/std": "catalog:",
|
||||
"@types/audioworklet": "^0.0.77",
|
||||
"vite": "^7.0.2"
|
||||
"@types/audioworklet": "^0.0.81",
|
||||
"vite": "^7.0.5"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +48,6 @@
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"devDependencies": {
|
||||
"unplugin-yaml": "^3.0.1"
|
||||
"unplugin-yaml": "^3.0.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"dependencies": {
|
||||
"@guiiai/logg": "^1.0.10",
|
||||
"@proj-airi/server-sdk": "workspace:^",
|
||||
"drizzle-orm": "^0.44.2",
|
||||
"drizzle-orm": "^0.44.3",
|
||||
"postgres": "^3.4.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"dependencies": {
|
||||
"@date-fns/utc": "^2.1.0",
|
||||
"@formkit/auto-animate": "^0.8.2",
|
||||
"@huggingface/transformers": "^3.6.1",
|
||||
"@huggingface/transformers": "^3.6.3",
|
||||
"@pixi/app": "^6.5.10",
|
||||
"@pixi/constants": "^6.5.10",
|
||||
"@pixi/core": "^6.5.10",
|
||||
@@ -55,11 +55,11 @@
|
||||
"@pixi/sprite": "^6.5.10",
|
||||
"@pixi/ticker": "^6.5.10",
|
||||
"@pixi/utils": "6",
|
||||
"@pixiv/three-vrm": "^3.4.1",
|
||||
"@pixiv/three-vrm-animation": "^3.4.1",
|
||||
"@pixiv/three-vrm-core": "^3.4.1",
|
||||
"@pixiv/three-vrm": "^3.4.2",
|
||||
"@pixiv/three-vrm-animation": "^3.4.2",
|
||||
"@pixiv/three-vrm-core": "^3.4.2",
|
||||
"@proj-airi/ccc": "workspace:^",
|
||||
"@proj-airi/chromatic": "^0.0.7",
|
||||
"@proj-airi/chromatic": "^1.0.0",
|
||||
"@proj-airi/drizzle-duckdb-wasm": "catalog:",
|
||||
"@proj-airi/font-cjkfonts-allseto": "workspace:^",
|
||||
"@proj-airi/font-xiaolai": "workspace:^",
|
||||
@@ -106,14 +106,14 @@
|
||||
"unist-builder": "^4.0.0",
|
||||
"unspeech": "^0.1.7",
|
||||
"vaul-vue": "^0.4.1",
|
||||
"vue-i18n": "^11.1.9",
|
||||
"vue-i18n": "^11.1.10",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue-sonner": "^2.0.1",
|
||||
"vue-tsc": "^2.2.12",
|
||||
"vue-sonner": "^2.0.2",
|
||||
"vue-tsc": "^3.0.3",
|
||||
"wlipsync": "^1.2.1",
|
||||
"xast-util-to-xml": "^4.0.0",
|
||||
"xastscript": "^4.0.0",
|
||||
"zod": "^3.25.74"
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@fontsource-variable/dm-sans": "^5.2.6",
|
||||
@@ -127,11 +127,11 @@
|
||||
"@fontsource/m-plus-rounded-1c": "^5.2.8",
|
||||
"@fontsource/sniglet": "^5.2.6",
|
||||
"@histoire/plugin-vue": "1.0.0-alpha.2",
|
||||
"@iconify-json/carbon": "^1.2.10",
|
||||
"@iconify-json/carbon": "^1.2.11",
|
||||
"@iconify-json/eos-icons": "^1.2.2",
|
||||
"@iconify-json/lucide": "^1.2.57",
|
||||
"@iconify-json/mingcute": "^1.2.3",
|
||||
"@iconify-json/simple-icons": "^1.2.43",
|
||||
"@iconify-json/simple-icons": "^1.2.44",
|
||||
"@iconify-json/solar": "^1.2.2",
|
||||
"@iconify-json/svg-spinners": "^1.2.2",
|
||||
"@iconify-json/vscode-icons": "^1.2.23",
|
||||
@@ -145,8 +145,8 @@
|
||||
"histoire": "1.0.0-alpha.2",
|
||||
"unocss": "^66.3.3",
|
||||
"unplugin-info": "^1.2.2",
|
||||
"unplugin-yaml": "^3.0.1",
|
||||
"vite": "^6.3.5",
|
||||
"unplugin-yaml": "^3.0.2",
|
||||
"vite": "^7.0.5",
|
||||
"vue": "^3.5.17"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { ChatProvider } from '@xsai-ext/shared-providers'
|
||||
import type { Message, ToolCall, ToolMessagePart } from '@xsai/shared-chat'
|
||||
import type { CompletionToolCall, Message, ToolMessagePart } from '@xsai/shared-chat'
|
||||
|
||||
import { readableStreamToAsyncIterator } from '@moeru/std'
|
||||
import { listModels } from '@xsai/model'
|
||||
@@ -12,7 +12,7 @@ import { debug, mcp } from '../tools'
|
||||
|
||||
export interface StreamOptions {
|
||||
headers?: Record<string, string>
|
||||
onToolCall?: (toolCall: ToolCall) => void
|
||||
onToolCall?: (toolCall: CompletionToolCall) => void
|
||||
onToolCallResult?: (toolCallResult: {
|
||||
id: string
|
||||
result?: string | ToolMessagePart[]
|
||||
@@ -43,10 +43,10 @@ async function streamFrom(model: string, chatProvider: ChatProvider, messages: M
|
||||
: undefined,
|
||||
onEvent(event) {
|
||||
if (event.type === 'tool-call') {
|
||||
options?.onToolCall?.(event.toolCall)
|
||||
options?.onToolCall?.(event)
|
||||
}
|
||||
else if (event.type === 'tool-call-result') {
|
||||
options?.onToolCallResult?.({ id: event.id, result: event.result })
|
||||
else if (event.type === 'tool-result') {
|
||||
options?.onToolCallResult?.({ id: event.toolCallId, result: event.result })
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { AssistantMessage, SystemMessage, ToolCall, ToolMessage, ToolMessagePart, UserMessage } from '@xsai/shared-chat'
|
||||
import type { AssistantMessage, CompletionToolCall, SystemMessage, ToolMessage, ToolMessagePart, UserMessage } from '@xsai/shared-chat'
|
||||
|
||||
export interface ChatSlicesText {
|
||||
type: 'text'
|
||||
@@ -7,7 +7,7 @@ export interface ChatSlicesText {
|
||||
|
||||
export interface ChatSlicesToolCall {
|
||||
type: 'tool-call'
|
||||
toolCall: ToolCall
|
||||
toolCall: CompletionToolCall
|
||||
}
|
||||
|
||||
export interface ChatSlicesToolCallResult {
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
"build": "pkgroll"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "^2.6.0"
|
||||
"@tauri-apps/api": "^2.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"pkgroll": "^2.13.1"
|
||||
"pkgroll": "^2.14.3"
|
||||
},
|
||||
"publishConfig": {
|
||||
"exports": {
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@proj-airi/font-departure-mono": "workspace:^",
|
||||
"@rive-app/canvas-lite": "^2.30.1",
|
||||
"@rive-app/canvas-lite": "^2.30.4",
|
||||
"@vueuse/core": "^13.5.0",
|
||||
"@vueuse/motion": "^3.0.3",
|
||||
"vue": "^3.5.17"
|
||||
@@ -40,6 +40,6 @@
|
||||
"vite": "catalog:rolldown-vite",
|
||||
"vite-plugin-vue-devtools": "^7.7.7",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue-tsc": "^3.0.1"
|
||||
"vue-tsc": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,6 @@
|
||||
"vite": "catalog:rolldown-vite",
|
||||
"vite-plugin-vue-devtools": "^7.7.7",
|
||||
"vue-router": "^4.5.1",
|
||||
"vue-tsc": "^3.0.1"
|
||||
"vue-tsc": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue-macros/volar": "3.0.0-beta.8",
|
||||
"vue-tsc": "^3.0.1"
|
||||
"vue-tsc": "^3.0.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
"postinstall": "wxt prepare"
|
||||
},
|
||||
"dependencies": {
|
||||
"vue": "^3.5.13"
|
||||
"vue": "^3.5.17"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@unocss/reset": "^66.3.3",
|
||||
"@wxt-dev/module-vue": "^1.0.2",
|
||||
"vue-tsc": "^2.2.10",
|
||||
"wxt": "^0.20.6"
|
||||
"vue-tsc": "^2.2.12",
|
||||
"wxt": "^0.20.7"
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+1845
-2316
File diff suppressed because it is too large
Load Diff
+12
-12
@@ -10,20 +10,20 @@ packages:
|
||||
catalog:
|
||||
'@moeru/std': 0.1.0-beta.4
|
||||
'@proj-airi/drizzle-duckdb-wasm': ^0.4.28
|
||||
'@xsai-ext/providers-cloud': ^0.3.0-beta.8
|
||||
'@xsai-ext/providers-local': ^0.3.0-beta.8
|
||||
'@xsai-ext/shared-providers': ^0.3.0-beta.8
|
||||
'@xsai/embed': ^0.3.0-beta.8
|
||||
'@xsai/generate-speech': ^0.3.0-beta.8
|
||||
'@xsai/generate-text': ^0.3.0-beta.8
|
||||
'@xsai-ext/providers-cloud': ^0.3.2
|
||||
'@xsai-ext/providers-local': ^0.3.2
|
||||
'@xsai-ext/shared-providers': ^0.3.2
|
||||
'@xsai/embed': ^0.3.2
|
||||
'@xsai/generate-speech': ^0.3.2
|
||||
'@xsai/generate-text': ^0.3.2
|
||||
'@xsai/generate-transcription': 0.3.0-beta.8
|
||||
'@xsai/model': ^0.3.0-beta.8
|
||||
'@xsai/model': ^0.3.2
|
||||
'@xsai/shared': 0.3.0-beta.8
|
||||
'@xsai/shared-chat': ^0.3.0-beta.8
|
||||
'@xsai/stream-text': ^0.3.0-beta.8
|
||||
'@xsai/tool': ^0.3.0-beta.8
|
||||
'@xsai/utils-chat': ^0.3.0-beta.8
|
||||
xsschema: ^0.3.0-beta.8
|
||||
'@xsai/shared-chat': ^0.3.2
|
||||
'@xsai/stream-text': ^0.3.2
|
||||
'@xsai/tool': ^0.3.2
|
||||
'@xsai/utils-chat': ^0.3.2
|
||||
xsschema: ^0.3.2
|
||||
|
||||
catalogs:
|
||||
rolldown-vite:
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@discordjs/voice": "^0.18.0",
|
||||
"@dotenvx/dotenvx": "^1.45.2",
|
||||
"@dotenvx/dotenvx": "^1.48.3",
|
||||
"@guiiai/logg": "^1.0.10",
|
||||
"@huggingface/transformers": "^3.6.1",
|
||||
"@huggingface/transformers": "^3.6.3",
|
||||
"@proj-airi/audio": "workspace:^",
|
||||
"@proj-airi/server-sdk": "workspace:^",
|
||||
"@proj-airi/server-shared": "workspace:^",
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"@moeru/std": "catalog:",
|
||||
"@proj-airi/server-sdk": "^0.6.1",
|
||||
"awilix": "^12.0.5",
|
||||
"es-toolkit": "^1.39.6",
|
||||
"es-toolkit": "^1.39.7",
|
||||
"eventemitter3": "^5.0.1",
|
||||
"minecraft-data": "^3.93.0",
|
||||
"mineflayer": "^4.30.0",
|
||||
@@ -26,7 +26,7 @@
|
||||
"mineflayer-pathfinder": "^2.4.5",
|
||||
"mineflayer-pvp": "^1.3.2",
|
||||
"mineflayer-tool": "^1.2.0",
|
||||
"neuri": "^0.1.8",
|
||||
"neuri": "^0.2.1",
|
||||
"prismarine-block": "^1.21.0",
|
||||
"prismarine-entity": "^2.5.0",
|
||||
"prismarine-item": "^1.16.0",
|
||||
@@ -35,11 +35,11 @@
|
||||
"prismarine-windows": "^2.9.0",
|
||||
"valibot": "1.0.0-beta.9",
|
||||
"vec3": "^0.1.10",
|
||||
"zod": "^3.25.74",
|
||||
"zod": "^3.25.76",
|
||||
"zod-to-json-schema": "^3.24.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@dotenvx/dotenvx": "^1.45.2",
|
||||
"dotenv": "^17.0.1"
|
||||
"@dotenvx/dotenvx": "^1.48.3",
|
||||
"dotenv": "^17.2.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@dotenvx/dotenvx": "^1.45.2",
|
||||
"@dotenvx/dotenvx": "^1.48.3",
|
||||
"@ffmpeg-installer/ffmpeg": "^1.1.0",
|
||||
"@grammyjs/files": "^1.1.1",
|
||||
"@guiiai/logg": "^1.0.10",
|
||||
@@ -33,16 +33,16 @@
|
||||
"@xsai/shared-chat": "catalog:",
|
||||
"@xsai/tool": "catalog:",
|
||||
"@xsai/utils-chat": "catalog:",
|
||||
"best-effort-json-parser": "^1.1.3",
|
||||
"dotenv": "^17.0.1",
|
||||
"drizzle-orm": "^0.44.2",
|
||||
"es-toolkit": "^1.39.6",
|
||||
"best-effort-json-parser": "^1.2.1",
|
||||
"dotenv": "^17.2.0",
|
||||
"drizzle-orm": "^0.44.3",
|
||||
"es-toolkit": "^1.39.7",
|
||||
"fluent-ffmpeg": "^2.1.3",
|
||||
"grammy": "^1.37.0",
|
||||
"nanoid": "^5.1.5",
|
||||
"p-limit": "^6.2.0",
|
||||
"pg": "^8.16.3",
|
||||
"sharp": "^0.34.2",
|
||||
"sharp": "^0.34.3",
|
||||
"telegram": "^2.26.22",
|
||||
"uuid": "^11.1.0",
|
||||
"valibot": "1.0.0-beta.9"
|
||||
|
||||
@@ -14,18 +14,18 @@
|
||||
"dependencies": {
|
||||
"@browserbasehq/stagehand": "^2.4.1",
|
||||
"@guiiai/logg": "^1.0.10",
|
||||
"@modelcontextprotocol/sdk": "^1.15.0",
|
||||
"@modelcontextprotocol/sdk": "^1.16.0",
|
||||
"@moeru/std": "catalog:",
|
||||
"@proj-airi/server-sdk": "^0.6.1",
|
||||
"dotenv": "^17.0.1",
|
||||
"dotenv": "^17.2.0",
|
||||
"h3": "^1.15.3",
|
||||
"listhen": "^1.9.0",
|
||||
"ofetch": "^1.4.1",
|
||||
"playwright": "^1.53.2",
|
||||
"zod": "^3.25.74"
|
||||
"playwright": "^1.54.1",
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.0.13",
|
||||
"@types/node": "^24.0.15",
|
||||
"tsx": "^4.20.3",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user