{ "name": "moeka", "type": "module", "version": "0.12.0-beta.5", "private": true, "packageManager": "bun@1.4.2", "description": "LLM powered virtual character", "author": "Moeka Team", "license": "MIT", "scripts": { "postinstall": "bunx simple-git-hooks && bun run build:packages", "publish:packages": "bun scripts/publish-workspace-packages.mjs", "dev": "bun run --filter @proj-airi/stage-web dev", "dev:docs": "bun run --filter @proj-airi/docs dev", "dev:ui": "bun run --filter @proj-airi/stage-ui story:dev", "dev:web": "bun run --filter @proj-airi/stage-web dev", "dev:web:https": "bun run --filter @proj-airi/stage-web dev:https", "dev:server": "bun run --filter @proj-airi/server-runtime dev", "dev:apps": "bun run --filter './apps/*' --parallel dev", "dev:packages": "bun run --filter './packages/*' --parallel dev", "build": "turbo run build -F=\"./packages/*\" -F=\"./apps/*\"", "build:web": "turbo run build -F @proj-airi/stage-web", "build:apps": "turbo run build -F=\"./apps/*\"", "build:packages": "turbo run build -F=\"./packages/*\"", "test": "vitest --coverage", "test:run": "vitest run && bun run test-stage-web:run && bun run test-stage-pages:run && bun run test-ui:run", "test-stage-pages:run": "bun run --filter @proj-airi/stage-pages test:run", "test-stage-web:run": "bun run --filter @proj-airi/stage-web test:browser:run", "test-ui:run": "vitest run --config packages/stage-ui/vitest.config.ts", "lint": "moeru-lint .", "lint:fix": "moeru-lint --fix .", "to-avif": "tsx docs/scripts/avif.ts", "sponsors:generate": "sponsorkit --output-dir docs/content/public/assets/sponsors", "typecheck": "turbo run typecheck -F=\"./packages/*\" -F=\"./apps/*\" -F=\"./docs\"", "up": "taze -w -r -I && bun prune && bun dedupe", "nolyfill": "bunx nolyfill", "knip": "knip" }, "devDependencies": { "@alint-js/cli": "catalog:", "@alint-js/plugin-js": "catalog:", "@antfu/eslint-config": "catalog:", "@arethetypeswrong/core": "catalog:", "@electron-toolkit/eslint-config-ts": "catalog:", "@iconify/utils": "catalog:", "@moeru/eslint-config": "catalog:", "@proj-airi/unocss-preset-chromatic": "catalog:", "@types/node": "catalog:", "@unocss/eslint-config": "catalog:", "@unocss/eslint-plugin": "catalog:", "@unocss/preset-mini": "catalog:", "@unocss/preset-web-fonts": "catalog:", "@vishot/cli": "catalog:", "@vitest/browser-playwright": "catalog:vitest", "@vitest/coverage-v8": "catalog:vitest", "bumpp": "catalog:", "eslint": "catalog:", "eslint-plugin-format": "catalog:", "eslint-plugin-oxlint": "catalog:", "eslint-plugin-perfectionist": "catalog:", "knip": "catalog:", "nano-staged": "catalog:", "oxc-minify": "catalog:", "oxlint": "catalog:", "playwright": "catalog:", "publint": "catalog:", "rollup": "catalog:", "simple-git-hooks": "catalog:", "sponsorkit": "catalog:", "sponsors-svg": "catalog:", "taze": "catalog:", "tinyexec": "catalog:", "tsdown": "catalog:", "tsx": "catalog:", "turbo": "catalog:", "typescript": "catalog:", "uncrypto": "catalog:", "unocss": "catalog:", "unocss-preset-scrollbar": "catalog:", "unplugin-lightningcss": "catalog:", "unplugin-raw": "catalog:", "unplugin-unused": "catalog:", "vite": "catalog:", "vite-plugin-inspect": "catalog:", "vitest": "catalog:vitest", "vitest-browser-vue": "catalog:", "yaml": "catalog:" }, "workspaces": [ "packages/*", "plugins/*", "integrations/*", "services/*", "examples/*", "docs", "apps/*" ], "catalog": { "@alexanderolsen/libsamplerate-js": "^2.1.2", "@alint-js/cli": "^0.6.0", "@alint-js/plugin-js": "^0.6.0", "@antfu/eslint-config": "8.2.0", "@anthropic-ai/claude-code": "^2.1.241", "@arethetypeswrong/core": "^0.18.5", "@ax-llm/ax": "^24.0.5", "@better-auth/cli": "^1.4.22", "@better-auth/drizzle-adapter": "1.6.25", "@better-auth/oauth-provider": "1.6.25", "@better-fetch/fetch": "^1.3.1", "@capacitor/android": "^8.5.0", "@capacitor/app": "^8.1.1", "@capacitor/barcode-scanner": "^3.1.1", "@capacitor/cli": "^8.5.0", "@capacitor/core": "^8.5.0", "@capacitor/ios": "^8.5.0", "@capacitor/local-notifications": "^8.3.1", "@date-fns/utc": "^2.1.1", "@discordjs/voice": "^0.19.2", "@dotenvx/dotenvx": "^2.21.0", "@electric-sql/pglite": "^0.5.6", "@electric-sql/pglite-pgvector": "0.0.7", "@electron-toolkit/eslint-config-ts": "^3.1.0", "@electron-toolkit/preload": "^3.0.2", "@electron-toolkit/tsconfig": "^2.0.0", "@electron-toolkit/utils": "^4.0.0", "@electron/notarize": "^3.1.1", "@esotericsoftware/spine-webgl": "~4.2.0", "@esotericsoftware/spine-webgl-4-0": "npm:@esotericsoftware/spine-webgl@~4.0.31", "@esotericsoftware/spine-webgl-4-1": "npm:@esotericsoftware/spine-webgl@~4.1.56", "@ffmpeg-installer/ffmpeg": "^1.1.0", "@fontsource-variable/comfortaa": "^5.3.0", "@fontsource-variable/dm-sans": "^5.3.0", "@fontsource-variable/jura": "^5.3.0", "@fontsource-variable/nunito": "^5.3.0", "@fontsource-variable/quicksand": "^5.3.0", "@fontsource-variable/urbanist": "^5.3.0", "@fontsource/dm-mono": "^5.3.0", "@fontsource/dm-serif-display": "^5.3.0", "@fontsource/gugi": "^5.3.0", "@fontsource/kiwi-maru": "^5.3.0", "@fontsource/m-plus-rounded-1c": "^5.3.0", "@formkit/auto-animate": "^0.10.0", "@grammyjs/files": "^1.2.0", "@guiiai/logg": "^1.2.11", "@histoire/plugin-vue": "1.0.0-beta.1", "@hono/node-server": "^2.1.1", "@hono/node-ws": "^1.3.1", "@hono/otel": "^1.1.2", "@huggingface/transformers": "3.8.1", "@iconify-json/carbon": "^1.2.25", "@iconify-json/eos-icons": "^1.2.4", "@iconify-json/line-md": "^1.2.16", "@iconify-json/logos": "^1.2.13", "@iconify-json/lucide": "^1.2.125", "@iconify-json/material-symbols": "^1.2.89", "@iconify-json/mdi": "^1.2.3", "@iconify-json/mingcute": "^1.2.8", "@iconify-json/ph": "^1.2.2", "@iconify-json/simple-icons": "^1.2.93", "@iconify-json/solar": "^1.2.9", "@iconify-json/svg-spinners": "^1.2.4", "@iconify-json/tabler": "^1.2.38", "@iconify-json/twemoji": "^1.2.5", "@iconify-json/vscode-icons": "^1.2.74", "@iconify/utils": "^3.1.4", "@iconify/vue": "^5.0.1", "@intlify/core": "^11.4.9", "@intlify/unplugin-vue-i18n": "^11.2.5", "@langfuse/otel": "^5.10.1", "@langfuse/tracing": "^5.10.1", "@laplace.live/event-bridge-sdk": "^1.1.0", "@laplace.live/event-types": "^2.0.21", "@lemonneko/crop-empty-pixels": "0.1.1", "@mdit/plugin-footnote": "^1.1.0", "@mdit/plugin-tasklist": "^1.1.0", "@mediapipe/tasks-vision": "^1.0.1", "@modelcontextprotocol/sdk": "^1.30.0", "@moeru/eslint-config": "0.1.0-beta.19", "@moeru/eventa": "1.0.0", "@moeru/std": "0.1.0-beta.17", "@moeru/three-mmd": "0.2.0-beta.2", "@moeru/three-mmd-physics-ammo": "0.2.0-beta.2", "@napi-rs/image": "^1.14.0", "@nekopaw/tempora": "0.4.0-alpha.1", "@openpanel/sdk": "1.3.1", "@openpanel/web": "1.4.1", "@opentelemetry/api": "^1.9.1", "@opentelemetry/api-logs": "^0.221.0", "@opentelemetry/auto-instrumentations-node": "^0.79.0", "@opentelemetry/core": "^2.10.0", "@opentelemetry/exporter-logs-otlp-proto": "^0.221.0", "@opentelemetry/exporter-metrics-otlp-proto": "^0.221.0", "@opentelemetry/exporter-trace-otlp-proto": "^0.221.0", "@opentelemetry/instrumentation": "^0.221.0", "@opentelemetry/instrumentation-http": "^0.221.0", "@opentelemetry/instrumentation-ioredis": "^0.69.0", "@opentelemetry/instrumentation-pg": "^0.73.0", "@opentelemetry/instrumentation-runtime-node": "^0.34.0", "@opentelemetry/instrumentation-undici": "^0.31.0", "@opentelemetry/resources": "^2.10.0", "@opentelemetry/sdk-logs": "^0.221.0", "@opentelemetry/sdk-metrics": "^2.10.0", "@opentelemetry/sdk-node": "^0.221.0", "@opentelemetry/sdk-trace-base": "^2.10.0", "@opentelemetry/sdk-trace-node": "^2.10.0", "@opentelemetry/semantic-conventions": "^1.43.0", "@pinia/colada": "^1.4.2", "@pinia/testing": "^2.0.1", "@pixi/app": "^6.5.10", "@pixi/constants": "^6.5.10", "@pixi/core": "^6.5.10", "@pixi/display": "^6.5.10", "@pixi/extensions": "^6.5.10", "@pixi/interaction": "^6.5.10", "@pixi/loaders": "^6.5.10", "@pixi/math": "^6.5.10", "@pixi/runner": "^6.5.10", "@pixi/settings": "^6.5.10", "@pixi/sprite": "^6.5.10", "@pixi/ticker": "^6.5.10", "@pixi/utils": "^6.5.10", "@pixiv/three-vrm": "^3.5.5", "@pixiv/three-vrm-animation": "^3.5.5", "@pixiv/three-vrm-core": "^3.5.5", "@proj-airi/chromatic": "^1.1.4", "@proj-airi/drizzle-duckdb-wasm": "^0.6.0", "@proj-airi/iconify-meteocons": "^0.1.5", "@proj-airi/lobe-icons": "^1.0.19", "@proj-airi/unocss-preset-chromatic": "^1.1.4", "@proj-airi/unplugin-fetch": "^0.2.3", "@proj-airi/unplugin-live2d-sdk": "^0.1.7", "@radix-ui/colors": "^3.0.0", "@ricky0123/vad-web": "^0.0.30", "@rive-app/canvas-lite": "^2.40.1", "@shikijs/markdown-it": "^4.4.3", "@shikijs/rehype": "^4.4.3", "@shopify/draggable": "^1.2.1", "@snazzah/davey": "^0.1.12", "@takumi-rs/image-response": "1.0.0-beta.20", "@tresjs/cientos": "^5.8.1", "@tresjs/core": "^5.8.3", "@tresjs/post-processing": "^3.7.4", "@types/audioworklet": "^0.0.100", "@types/culori": "^4.0.1", "@types/d3": "^7.4.3", "@types/hast": "^3.0.5", "@types/ioredis-mock": "^8.2.8", "@types/markdown-it": "^14.2.0", "@types/mdast": "^4.0.4", "@types/node": "^26.2.0", "@types/nprogress": "^0.2.3", "@types/pg": "^8.23.1", "@types/semver": "^7.8.0", "@types/splitpanes": "^2.2.6", "@types/three": "^0.185.4", "@types/unist": "^3.0.3", "@types/vscode": "^1.134.0", "@types/w3c-web-hid": "^1.0.7", "@types/whatwg-mimetype": "^5.0.0", "@types/ws": "^8.18.1", "@types/xast": "^2.0.4", "@types/yauzl": "^3.4.0", "@unocss/eslint-config": "66.7.5", "@unocss/eslint-plugin": "66.7.5", "@unocss/preset-mini": "66.7.5", "@unocss/preset-web-fonts": "66.7.5", "@unocss/reset": "66.7.5", "@valibot/to-json-schema": "1.0.0-rc.0", "@velin-dev/core": "^0.4.0", "@vishot/cli": "^0.2.0", "@vishot/mockup-desktop-vue": "^0.2.0", "@vishot/renderer-browser": "^0.2.0", "@vishot/source-electron": "^0.2.0", "@vitejs/plugin-vue": "^6.0.8", "@vue-macros/volar": "^3.1.4", "@vue/test-utils": "^2.4.11", "@vue/tsconfig": "^0.9.1", "@vueuse/core": "^14.4.0", "@vueuse/motion": "^3.0.3", "@vueuse/shared": "^14.4.0", "@wxt-dev/module-vue": "^1.0.3", "@xsai-apple-speech/transcription": "0.1.3", "@xsai-apple-speech/transcription-electron-plugin": "0.1.3", "@xsai-apple-speech/transcription-native": "0.1.3", "@xsai-apple-speech/transcription-native-darwin-arm64": "0.1.3", "@xsai-apple-speech/transcription-native-darwin-x64": "0.1.3", "@xsai-ext/providers": "0.5.0", "@xsai-transformers/embed": "^0.1.0", "@xsai-transformers/shared": "^0.1.0", "@xsai-transformers/transcription": "^0.1.0", "@xsai/embed": "0.5.0", "@xsai/generate-speech": "0.5.0", "@xsai/generate-text": "0.5.0", "@xsai/generate-transcription": "0.5.0", "@xsai/model": "0.5.0", "@xsai/shared": "0.5.0", "@xsai/shared-chat": "0.5.0", "@xsai/stream-text": "0.5.0", "@xsai/stream-transcription": "0.5.0", "@xsai/tool": "0.5.0", "@xsai/utils-chat": "0.5.0", "alien-signals": "^3.2.1", "animejs": "^4.5.0", "async-mutex": "0.5.0", "awilix": "^13.0.5", "best-effort-json-parser": "^1.5.1", "better-auth": "1.6.25", "builder-util-runtime": "^9.7.0", "bumpp": "^12.2.1", "cac": "^7.0.0", "canvas": "^3.2.3", "capacitor-native-settings": "^8.2.0", "chess.js": "^1.4.0", "clustr": "^1.0.2", "colorjs.io": "^0.7.1", "crossws": "^0.4.12", "csstype": "^3.2.3", "culori": "^4.0.2", "d3": "7.9.0", "date-fns": "^4.4.0", "debug": "^4.4.3", "defu": "^6.1.7", "destr": "^2.0.5", "discord.js": "^14.27.0", "dockview-vue": "^8.2.0", "dompurify": "^3.4.14", "driver.js": "^1.8.0", "drizzle-kit": "^0.31.10", "drizzle-orm": "^0.45.2", "drizzle-valibot": "^0.4.2", "electron": "^43.4.1", "electron-builder": "^26.16.1", "electron-click-drag-plugin": "^2.0.2", "electron-updater": "^6.8.9", "electron-vite": "^5.0.0", "embla-carousel-autoplay": "9.0.0-rc01", "embla-carousel-vue": "9.0.0-rc02", "es-toolkit": "^1.51.0", "eslint": "^10.9.0", "eslint-plugin-format": "^2.0.1", "eslint-plugin-oxlint": "^1.79.0", "eslint-plugin-perfectionist": "^5.10.1", "eventemitter3": "^5.0.4", "fflate": "^0.8.3", "floating-vue": "^5.2.2", "fluent-ffmpeg": "^2.1.3", "get-port-please": "^3.2.0", "gpuu": "^1.0.7", "grammy": "^1.45.1", "gray-matter": "^4.0.3", "h3": "2.0.1-rc.29", "hfup": "^1.0.4", "histoire": "1.0.0-beta.1", "hono": "4.13.3", "hono-rate-limiter": "^0.5.3", "html2canvas": "^1.4.1", "idb-keyval": "^6.3.0", "injeca": "^0.2.0", "ioredis": "^6.0.0", "ioredis-mock": "^8.13.1", "is-network-error": "^1.3.2", "isolated-vm": "^7.0.1", "jose": "^6.2.10", "jsdom": "^30.0.1", "jszip": "^3.10.1", "knip": "^6.32.2", "kokoro-js": "^1.2.1", "kysely": "0.29.5", "less": "^4.9.0", "libsodium-wrappers": "^0.8.4", "localforage": "^1.10.0", "mark.js": "^8.11.1", "markdown-it": "14.1.1", "markdown-it-anchor": "^9.2.1", "mediabunny": "^1.55.2", "meta-png": "^1.0.6", "minecraft-data": "3.102.3", "mineflayer": "^4.37.1", "mineflayer-armor-manager": "^2.0.1", "mineflayer-auto-eat": "^5.0.3", "mineflayer-collectblock": "^1.6.0", "mineflayer-pathfinder": "^2.4.5", "mineflayer-pvp": "^1.3.2", "mineflayer-tool": "^1.2.0", "minisearch": "^7.2.0", "mkcert": "^3.2.0", "motion-v": "^2.4.0", "nano-staged": "^1.0.2", "nanoid": "^6.0.1", "node-pty": "npm:@lydell/node-pty@^1.2.0-beta.15", "node-vibrant": "^4.0.4", "nprogress": "^0.2.0", "ofetch": "^1.5.1", "onnxruntime-web": "^1.27.0", "opusscript": "^0.1.1", "oxc-minify": "^0.146.0", "oxlint": "^1.79.0", "p-limit": "^7.3.1", "pathe": "^2.0.3", "pg": "^8.23.0", "pinia": "^4.0.3", "pinia-plugin-synced": "^0.1.4", "pixi-filters": "^4.2.0", "pixi-live2d-display": "^0.4.0", "playwright": "^1.62.1", "popmotion": "^11.0.5", "postcss": "^8.5.26", "postgres": "^3.4.9", "postprocessing": "^6.39.4", "prismarine-block": "^1.23.0", "prismarine-entity": "^2.6.0", "prismarine-item": "^1.18.0", "prismarine-recipe": "^1.5.0", "prismarine-viewer": "^1.33.0", "prismarine-windows": "^2.10.0", "publint": "^0.3.24", "rehype-katex": "^7.0.1", "rehype-parse": "^9.0.1", "rehype-stringify": "^10.0.1", "reka-ui": "^2.10.3", "remark-math": "^6.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "replicate": "^1.4.0", "resend": "^6.22.0", "rollup": "^4.62.5", "semver": "^7.8.5", "shiki": "^4.4.3", "simple-git-hooks": "^2.13.1", "splitpanes": "^4.1.2", "sponsorkit": "17.1.0", "sponsors-svg": "^0.3.0", "srvx": "^0.12.7", "std-env": "^4.2.0", "stockfish": "^18.0.8", "stripe": "^22.5.0", "superjson": "^2.2.6", "taze": "^21.1.0", "telegram": "^2.26.22", "three": "^0.185.1", "three-stdlib": "^2.36.1", "tinyexec": "^1.3.0", "tinyglobby": "^0.2.17", "tsdown": "^0.22.14", "tsx": "^4.23.12", "turbo": "^2.10.11", "typescript": "^6.0.3", "uiohook-napi": "^1.5.5", "uncrypto": "^0.1.3", "unified": "^11.0.5", "unist-builder": "^4.0.0", "unist-util-visit": "^5.1.0", "unocss": "66.7.5", "unocss-preset-scrollbar": "^4.0.0", "unplugin-basemove": "0.0.1", "unplugin-info": "^1.3.2", "unplugin-lightningcss": "^0.5.0", "unplugin-raw": "^0.7.0", "unplugin-unused": "^0.6.0", "unplugin-vue-router": "^0.19.2", "unplugin-yaml": "^4.2.1", "unstorage": "^1.17.5", "uqr": "^0.1.3", "uuid": "^14.0.2", "valibot": "^1.4.2", "vaul-vue": "^0.4.1", "vec3": "^0.2.0", "vieval": "^0.0.12", "virtua": "^0.50.4", "vite": "^8.2.2", "vite-bundle-visualizer": "^1.2.1", "vite-plugin-inspect": "12.0.0-beta.1", "vite-plugin-mkcert": "^2.1.0", "vite-plugin-pwa": "^1.3.0", "vite-plugin-vue-devtools": "^8.2.1", "vite-plugin-vue-layouts": "^0.11.0", "vitepress": "2.0.0-alpha.17", "vitest-browser-vue": "^2.1.0", "vscode-ext-gen": "^1.6.0", "vue": "^3.5.41", "vue-demi": "^0.14.10", "vue-i18n": "^11.4.9", "vue-macros": "^3.1.4", "vue-router": "^5.2.0", "vue-sonner": "^2.0.9", "vue-tsc": "^3.3.11", "wavefile": "^11.0.0", "web-haptics": "^0.0.6", "whatwg-mimetype": "^5.0.0", "wheel-gestures": "^2.2.48", "wlipsync": "^1.3.1", "workbox-window": "^7.4.1", "ws": "^8.21.3", "wxt": "^0.21.4", "xast-util-to-xml": "^4.0.0", "xastscript": "^4.0.0", "xsschema": "0.5.0", "yaml": "^2.9.0", "yauzl": "^3.4.0", "zod": "^4.4.3", "zod-to-json-schema": "^3.25.2" }, "catalogs": { "vitest": { "@vitest/browser-playwright": "^4.1.11", "@vitest/coverage-v8": "^4.1.11", "vitest": "^4.1.11" }, "xsai": { "unspeech": "^0.1.16" } }, "overrides": { "@types/hast": "^3.0.5", "array-flatten": "npm:@nolyfill/array-flatten@^1.0.44", "axios": "npm:feaxios@^0.0.23", "eslint-plugin-sonarjs": { "typescript": "^6.0.3" }, "hono": "4.13.3", "is-core-module": "npm:@nolyfill/is-core-module@^1.0.39", "isarray": "npm:@nolyfill/isarray@^1.0.44", "onnxruntime-web": "npm:onnxruntime-web@^1.27.0", "safe-buffer": "npm:@nolyfill/safe-buffer@^1.0.44", "safer-buffer": "npm:@nolyfill/safer-buffer@^1.0.44", "side-channel": "npm:@nolyfill/side-channel@^1.0.44", "string.prototype.matchall": "npm:@nolyfill/string.prototype.matchall@^1.0.44" }, "patchedDependencies": { "mineflayer-pathfinder": "patches/mineflayer-pathfinder.patch", "pixi-live2d-display@0.4.0": "patches/pixi-live2d-display.patch", "sponsorkit@17.1.0": "patches/sponsorkit@17.1.0.patch", "tab-election@4.6.2": "patches/tab-election@4.6.2.patch", "uiohook-napi@1.5.5": "patches/uiohook-napi@1.5.5.patch" }, "trustedDependencies": [ "@anthropic-ai/claude-code", "@discordjs/opus", "@ffmpeg-installer/darwin-arm64", "@ffmpeg-installer/darwin-x64", "@ffmpeg-installer/linux-arm64", "@ffmpeg-installer/linux-x64", "@napi-rs/image", "@parcel/watcher", "bufferutil", "canvas", "core-js", "electron", "electron-click-drag-plugin", "electron-winstaller", "es5-ext", "esbuild", "ffmpeg-static", "isolated-vm", "less", "msw", "node-pty", "onnxruntime-node", "protobufjs", "sharp", "spawn-sync", "stockfish", "uiohook-napi", "utf-8-validate", "vue-demi" ], "simple-git-hooks": { "pre-commit": "bunx nano-staged" }, "nano-staged": { "*": "moeru-lint --fix" } }