├── .editorconfig ├── .github ├── CODE_OF_CONDUCT.md ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.yaml │ ├── feature_request.yaml │ └── typo.yaml ├── PULL_REQUEST_TEMPLATE.md ├── SECURITY.md └── workflows │ ├── build-tamagotchi.yml │ ├── ci.yml │ ├── deploy-huggingface-spaces.yml │ ├── release-crates.yaml │ ├── release-pkg.yaml │ └── release-tamagotchi.yml ├── .gitignore ├── .npmrc ├── .tool-versions ├── .vscode ├── extensions.json └── settings.json ├── CONTRIBUTING.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.ja-JP.md ├── README.md ├── README.zh-CN.md ├── apps ├── playground-prompt-engineering │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── components │ │ │ ├── ChatSimulator.vue │ │ │ ├── ControlPanel.vue │ │ │ ├── Form │ │ │ │ └── Range │ │ │ │ │ └── Range.vue │ │ │ ├── Notification.vue │ │ │ └── PromptPreview.vue │ │ ├── composables │ │ │ ├── useCharacterPrompt.ts │ │ │ └── useChatSimulator.ts │ │ ├── main.ts │ │ ├── prompts │ │ │ ├── CharacterPrompt.md │ │ │ └── Example.md │ │ └── styles │ │ │ ├── main.css │ │ │ ├── themes.css │ │ │ └── transitions.css │ ├── tsconfig.json │ ├── uno.config.ts │ └── vite.config.ts ├── realtime-audio │ ├── index.html │ ├── netlify.toml │ ├── package.json │ ├── public │ │ ├── favicon-96x96.png │ │ └── favicon.svg │ ├── src │ │ ├── App.vue │ │ ├── composables │ │ │ └── queue.ts │ │ ├── main.ts │ │ ├── pages │ │ │ └── index.vue │ │ └── types │ │ │ └── elevenlabs.ts │ ├── tsconfig.json │ ├── uno.config.ts │ └── vite.config.ts ├── stage-tamagotchi │ ├── README.md │ ├── build │ │ ├── entitlements.mac.plist │ │ ├── icon-tray-macos.png │ │ ├── icon.icns │ │ ├── icon.ico │ │ └── icon.png │ ├── index.html │ ├── locales │ │ ├── en.yml │ │ └── zh-CN.yml │ ├── package.json │ ├── public │ │ └── assets │ │ │ └── fonts │ │ │ ├── dmmono-612bc94f.woff2 │ │ │ ├── dmmono-cbe07c46.woff2 │ │ │ ├── dmsans-2fb93aaf.woff2 │ │ │ ├── dmsans-dbe1f17c.woff2 │ │ │ ├── dmserifdisplay-aca0e217.woff2 │ │ │ ├── dmserifdisplay-cbc631ca.woff2 │ │ │ ├── kiwimaru-009c5be8.woff2 │ │ │ ├── kiwimaru-0514b7cf.woff2 │ │ │ ├── kiwimaru-0573d686.woff2 │ │ │ ├── kiwimaru-07244ee5.woff2 │ │ │ ├── kiwimaru-085a6c22.woff2 │ │ │ ├── kiwimaru-0ad0a9d2.woff2 │ │ │ ├── kiwimaru-0be7afce.woff2 │ │ │ ├── kiwimaru-0c23635e.woff2 │ │ │ ├── kiwimaru-0df9a253.woff2 │ │ │ ├── kiwimaru-13545cae.woff2 │ │ │ ├── kiwimaru-1911008c.woff2 │ │ │ ├── kiwimaru-1af0c5f1.woff2 │ │ │ ├── kiwimaru-1f1e6991.woff2 │ │ │ ├── kiwimaru-208d5a34.woff2 │ │ │ ├── kiwimaru-2096dedd.woff2 │ │ │ ├── kiwimaru-209bc0be.woff2 │ │ │ ├── kiwimaru-20e80c6c.woff2 │ │ │ ├── kiwimaru-2313b129.woff2 │ │ │ ├── kiwimaru-29d8c55e.woff2 │ │ │ ├── kiwimaru-2b6ed312.woff2 │ │ │ ├── kiwimaru-2c33d41c.woff2 │ │ │ ├── kiwimaru-3481cc4f.woff2 │ │ │ ├── kiwimaru-35084dac.woff2 │ │ │ ├── kiwimaru-36856d50.woff2 │ │ │ ├── kiwimaru-36fb3c4a.woff2 │ │ │ ├── kiwimaru-3751c113.woff2 │ │ │ ├── kiwimaru-3b771b65.woff2 │ │ │ ├── kiwimaru-3b952c26.woff2 │ │ │ ├── kiwimaru-474380dd.woff2 │ │ │ ├── kiwimaru-50117413.woff2 │ │ │ ├── kiwimaru-521bee63.woff2 │ │ │ ├── kiwimaru-552cc702.woff2 │ │ │ ├── kiwimaru-55844dc7.woff2 │ │ │ ├── kiwimaru-560b3902.woff2 │ │ │ ├── kiwimaru-568dcfeb.woff2 │ │ │ ├── kiwimaru-58a9d5c0.woff2 │ │ │ ├── kiwimaru-59fd3126.woff2 │ │ │ ├── kiwimaru-5a124686.woff2 │ │ │ ├── kiwimaru-5a44543f.woff2 │ │ │ ├── kiwimaru-5bcb5bb1.woff2 │ │ │ ├── kiwimaru-5cd182e6.woff2 │ │ │ ├── kiwimaru-5f4b3a5f.woff2 │ │ │ ├── kiwimaru-60c3071b.woff2 │ │ │ ├── kiwimaru-6464e25a.woff2 │ │ │ ├── kiwimaru-658259dc.woff2 │ │ │ ├── kiwimaru-66c47429.woff2 │ │ │ ├── kiwimaru-6778f7b4.woff2 │ │ │ ├── kiwimaru-69d7c25a.woff2 │ │ │ ├── kiwimaru-6e2ab1e1.woff2 │ │ │ ├── kiwimaru-6eae6b4e.woff2 │ │ │ ├── kiwimaru-70080563.woff2 │ │ │ ├── kiwimaru-71977e4e.woff2 │ │ │ ├── kiwimaru-73847400.woff2 │ │ │ ├── kiwimaru-75fe32cd.woff2 │ │ │ ├── kiwimaru-760852b7.woff2 │ │ │ ├── kiwimaru-7a3241e4.woff2 │ │ │ ├── kiwimaru-7b15712b.woff2 │ │ │ ├── kiwimaru-7b447157.woff2 │ │ │ ├── kiwimaru-7dee4ebf.woff2 │ │ │ ├── kiwimaru-7f0a0379.woff2 │ │ │ ├── kiwimaru-80e73823.woff2 │ │ │ ├── kiwimaru-81074aff.woff2 │ │ │ ├── kiwimaru-819c2998.woff2 │ │ │ ├── kiwimaru-86b6e796.woff2 │ │ │ ├── kiwimaru-885da82c.woff2 │ │ │ ├── kiwimaru-90cc0d1a.woff2 │ │ │ ├── kiwimaru-94fef971.woff2 │ │ │ ├── kiwimaru-95eff089.woff2 │ │ │ ├── kiwimaru-985f589c.woff2 │ │ │ ├── kiwimaru-9b76e2f0.woff2 │ │ │ ├── kiwimaru-9c102d1a.woff2 │ │ │ ├── kiwimaru-9d655fac.woff2 │ │ │ ├── kiwimaru-9e940f57.woff2 │ │ │ ├── kiwimaru-a5630ec7.woff2 │ │ │ ├── kiwimaru-a7ab692f.woff2 │ │ │ ├── kiwimaru-aac8709a.woff2 │ │ │ ├── kiwimaru-af619bd5.woff2 │ │ │ ├── kiwimaru-b04ffcce.woff2 │ │ │ ├── kiwimaru-b39ac2f6.woff2 │ │ │ ├── kiwimaru-b402bc8c.woff2 │ │ │ ├── kiwimaru-b46cec37.woff2 │ │ │ ├── kiwimaru-bc139138.woff2 │ │ │ ├── kiwimaru-bc2d093d.woff2 │ │ │ ├── kiwimaru-bc3c7c33.woff2 │ │ │ ├── kiwimaru-bcbe7b3b.woff2 │ │ │ ├── kiwimaru-bce63905.woff2 │ │ │ ├── kiwimaru-c1cf71b4.woff2 │ │ │ ├── kiwimaru-c1eabbbc.woff2 │ │ │ ├── kiwimaru-c25beab3.woff2 │ │ │ ├── kiwimaru-c5809977.woff2 │ │ │ ├── kiwimaru-c5c8b82e.woff2 │ │ │ ├── kiwimaru-c72fdfa6.woff2 │ │ │ ├── kiwimaru-c8a93c23.woff2 │ │ │ ├── kiwimaru-ce5c77b3.woff2 │ │ │ ├── kiwimaru-ce780496.woff2 │ │ │ ├── kiwimaru-d13b9d8b.woff2 │ │ │ ├── kiwimaru-d140488a.woff2 │ │ │ ├── kiwimaru-d41f6232.woff2 │ │ │ ├── kiwimaru-d73140ea.woff2 │ │ │ ├── kiwimaru-d7d83579.woff2 │ │ │ ├── kiwimaru-d91677f3.woff2 │ │ │ ├── kiwimaru-d994ed13.woff2 │ │ │ ├── kiwimaru-da327858.woff2 │ │ │ ├── kiwimaru-dd0c5406.woff2 │ │ │ ├── kiwimaru-dedcfb85.woff2 │ │ │ ├── kiwimaru-e48a5515.woff2 │ │ │ ├── kiwimaru-e5aefc78.woff2 │ │ │ ├── kiwimaru-e67556ab.woff2 │ │ │ ├── kiwimaru-e6b086e0.woff2 │ │ │ ├── kiwimaru-e9eb7394.woff2 │ │ │ ├── kiwimaru-edd0d1f2.woff2 │ │ │ ├── kiwimaru-eeb0715d.woff2 │ │ │ ├── kiwimaru-efe9b6c4.woff2 │ │ │ ├── kiwimaru-f5117da0.woff2 │ │ │ ├── kiwimaru-f66e1e71.woff2 │ │ │ ├── kiwimaru-f772615a.woff2 │ │ │ ├── kiwimaru-fa4521f3.woff2 │ │ │ ├── kiwimaru-faaf0afb.woff2 │ │ │ ├── kiwimaru-fffa0d98.woff2 │ │ │ ├── sniglet-fdcce1d2.woff2 │ │ │ └── sniglet-ffe0add4.woff2 │ ├── scripts │ │ └── rename-artifacts.js │ ├── src-tauri │ │ ├── .gitignore │ │ ├── Cargo.lock │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── capabilities │ │ │ └── default.json │ │ ├── icons │ │ │ ├── 128x128.png │ │ │ ├── 128x128@2x.png │ │ │ ├── 32x32.png │ │ │ ├── 64x64.png │ │ │ ├── Square107x107Logo.png │ │ │ ├── Square142x142Logo.png │ │ │ ├── Square150x150Logo.png │ │ │ ├── Square284x284Logo.png │ │ │ ├── Square30x30Logo.png │ │ │ ├── Square310x310Logo.png │ │ │ ├── Square44x44Logo.png │ │ │ ├── Square71x71Logo.png │ │ │ ├── Square89x89Logo.png │ │ │ ├── StoreLogo.png │ │ │ ├── android │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ └── mipmap-xxxhdpi │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ ├── ic_launcher_foreground.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ ├── icon.icns │ │ │ ├── icon.ico │ │ │ └── icon.png │ │ ├── src │ │ │ ├── app_click_through │ │ │ │ ├── mod.rs │ │ │ │ ├── native_macos.rs │ │ │ │ ├── native_windows.rs │ │ │ │ └── state.rs │ │ │ ├── app_windows │ │ │ │ ├── chat.rs │ │ │ │ ├── mod.rs │ │ │ │ └── settings.rs │ │ │ ├── commands.rs │ │ │ ├── lib.rs │ │ │ └── main.rs │ │ └── tauri.conf.json │ ├── src │ │ ├── App.vue │ │ ├── components │ │ │ ├── ChatHistory.vue │ │ │ ├── IconAnimation.vue │ │ │ ├── InteractiveArea.vue │ │ │ ├── Settings │ │ │ │ ├── CheckBar.vue │ │ │ │ └── ColorPalette.vue │ │ │ ├── Widgets │ │ │ │ └── Live2DSettings.vue │ │ │ └── Window │ │ │ │ └── TitleBar.vue │ │ ├── composables │ │ │ ├── useIconAnimation.ts │ │ │ └── window-shortcuts.ts │ │ ├── layouts │ │ │ ├── default.vue │ │ │ ├── settings.vue │ │ │ └── stage.vue │ │ ├── main.ts │ │ ├── modules │ │ │ └── i18n.ts │ │ ├── pages │ │ │ ├── chat.vue │ │ │ ├── index.vue │ │ │ └── settings │ │ │ │ ├── airi-card │ │ │ │ ├── components │ │ │ │ │ ├── CardDetailDialog.vue │ │ │ │ │ ├── CardListItem.vue │ │ │ │ │ └── DeleteCardDialog.vue │ │ │ │ └── index.vue │ │ │ │ ├── appearance │ │ │ │ ├── color-presets.json │ │ │ │ ├── color-scheme.vue │ │ │ │ ├── developer.vue │ │ │ │ ├── general.vue │ │ │ │ ├── index.vue │ │ │ │ └── window-shortcuts.vue │ │ │ │ ├── index.vue │ │ │ │ ├── memory │ │ │ │ └── index.vue │ │ │ │ ├── models │ │ │ │ └── index.vue │ │ │ │ ├── modules │ │ │ │ ├── consciousness.vue │ │ │ │ ├── index.vue │ │ │ │ ├── mcp.vue │ │ │ │ ├── memory-long-term.vue │ │ │ │ ├── memory-short-term.vue │ │ │ │ └── speech.vue │ │ │ │ ├── providers │ │ │ │ ├── alibaba-cloud-model-studio.vue │ │ │ │ ├── anthropic.vue │ │ │ │ ├── cloudflare-workers-ai.vue │ │ │ │ ├── deepseek.vue │ │ │ │ ├── elevenlabs.vue │ │ │ │ ├── featherless-ai.vue │ │ │ │ ├── fireworks-ai.vue │ │ │ │ ├── google-generative-ai.vue │ │ │ │ ├── index.vue │ │ │ │ ├── microsoft-speech.vue │ │ │ │ ├── mistral-ai.vue │ │ │ │ ├── moonshot-ai.vue │ │ │ │ ├── novita-ai.vue │ │ │ │ ├── ollama.vue │ │ │ │ ├── openai.vue │ │ │ │ ├── openrouter-ai.vue │ │ │ │ ├── together-ai.vue │ │ │ │ ├── volcengine.vue │ │ │ │ └── xai.vue │ │ │ │ └── scene │ │ │ │ └── index.vue │ │ ├── shims.ts │ │ ├── stores │ │ │ ├── shortcuts.ts │ │ │ └── window-controls.ts │ │ ├── styles │ │ │ ├── main.css │ │ │ ├── themes.css │ │ │ └── transitions.css │ │ ├── types │ │ │ └── window-controls.ts │ │ ├── utils │ │ │ └── windows.ts │ │ └── worker.d.ts │ ├── tsconfig.json │ ├── uno.config.ts │ └── vite.config.ts └── stage-web │ ├── .dockerignore │ ├── Dockerfile │ ├── README.md │ ├── index.html │ ├── locales │ ├── en.yml │ └── zh-CN.yml │ ├── netlify.toml │ ├── package.json │ ├── public │ ├── _headers │ ├── apple-touch-icon.png │ ├── assets │ │ └── vrm │ │ │ └── animations │ │ │ └── idle_loop.vrma │ ├── favicon.ico │ ├── favicon.svg │ ├── maskable_icon_x192.png │ ├── maskable_icon_x512.png │ ├── web-app-manifest-192x192.png │ └── web-app-manifest-512x512.png │ ├── src │ ├── App.vue │ ├── assets │ │ ├── icons │ │ │ └── modules │ │ │ │ └── games │ │ │ │ └── factorio.png │ │ ├── live2d │ │ │ └── models │ │ │ │ └── hiyori_free_zh │ │ │ │ └── avatar.png │ │ ├── logo-dark.svg │ │ └── logo.svg │ ├── components │ │ ├── AudioWaveform.vue │ │ ├── Backgrounds │ │ │ ├── Cross.vue │ │ │ ├── Line1.vue │ │ │ ├── SakuraPetal.vue │ │ │ └── TicTacToe.vue │ │ ├── DataGui │ │ │ └── DualEndRange.vue │ │ ├── IconAnimation.vue │ │ ├── Layouts │ │ │ ├── Header.vue │ │ │ ├── HeaderLink.vue │ │ │ ├── InteractiveArea.vue │ │ │ └── MobileInteractiveArea.vue │ │ ├── Settings │ │ │ ├── CheckBar.vue │ │ │ ├── ColorPalette.vue │ │ │ └── Live2DModelControlButton.vue │ │ └── Widgets │ │ │ ├── AnimatedWave.vue │ │ │ ├── ChatHistory.vue │ │ │ ├── Live2DSettings.vue │ │ │ └── MobileChatHistory.vue │ ├── composables │ │ └── useIconAnimation.ts │ ├── layouts │ │ ├── default.vue │ │ ├── settings.vue │ │ └── stage.vue │ ├── main.ts │ ├── modules │ │ └── i18n.ts │ ├── pages │ │ ├── [...all].vue │ │ ├── audio.vue │ │ ├── devtools │ │ │ ├── background-remove.vue │ │ │ ├── chat.vue │ │ │ ├── image.vue │ │ │ └── vibrant.vue │ │ ├── index.vue │ │ ├── queue.vue │ │ ├── settings │ │ │ ├── airi-card │ │ │ │ ├── components │ │ │ │ │ ├── CardDetailDialog.vue │ │ │ │ │ ├── CardListItem.vue │ │ │ │ │ └── DeleteCardDialog.vue │ │ │ │ └── index.vue │ │ │ ├── appearance │ │ │ │ ├── color-presets.json │ │ │ │ └── index.vue │ │ │ ├── index.vue │ │ │ ├── memory │ │ │ │ └── index.vue │ │ │ ├── models │ │ │ │ └── index.vue │ │ │ ├── modules │ │ │ │ ├── consciousness.vue │ │ │ │ ├── index.vue │ │ │ │ ├── memory-long-term.vue │ │ │ │ ├── memory-short-term.vue │ │ │ │ └── speech.vue │ │ │ ├── providers │ │ │ │ ├── alibaba-cloud-model-studio.vue │ │ │ │ ├── anthropic.vue │ │ │ │ ├── cloudflare-workers-ai.vue │ │ │ │ ├── deepseek.vue │ │ │ │ ├── elevenlabs.vue │ │ │ │ ├── featherless-ai.vue │ │ │ │ ├── fireworks-ai.vue │ │ │ │ ├── google-generative-ai.vue │ │ │ │ ├── index.vue │ │ │ │ ├── microsoft-speech.vue │ │ │ │ ├── mistral-ai.vue │ │ │ │ ├── moonshot-ai.vue │ │ │ │ ├── novita-ai.vue │ │ │ │ ├── ollama.vue │ │ │ │ ├── openai.vue │ │ │ │ ├── openrouter-ai.vue │ │ │ │ ├── together-ai.vue │ │ │ │ ├── volcengine.vue │ │ │ │ └── xai.vue │ │ │ └── scene │ │ │ │ └── index.vue │ │ └── test │ │ │ ├── filter-message.vue │ │ │ └── queues │ │ │ ├── delays.vue │ │ │ ├── emotions.vue │ │ │ └── messages.vue │ ├── styles │ │ ├── main.css │ │ ├── themes.css │ │ └── transitions.css │ └── utils │ │ ├── binary.ts │ │ ├── jsonFormat.ts │ │ └── platform.ts │ ├── tsconfig.json │ ├── uno.config.ts │ ├── vite-env.d.ts │ └── vite.config.ts ├── bump.config.ts ├── changelogithub.config.ts ├── crates └── tauri-plugin-mcp │ ├── Cargo.lock │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ ├── permissions │ ├── autogenerated │ │ ├── commands │ │ │ ├── call_tool.toml │ │ │ ├── connect_server.toml │ │ │ ├── disconnect_server.toml │ │ │ └── list_tools.toml │ │ └── reference.md │ ├── default.toml │ └── schemas │ │ └── schema.json │ └── src │ └── lib.rs ├── cspell.config.yaml ├── docs ├── .gitignore ├── README.md ├── astro.config.ts ├── netlify.toml ├── package.json ├── pages │ └── en │ │ ├── index.md │ │ └── research │ │ ├── gaming │ │ └── minecraft.md │ │ ├── lipsync.md │ │ ├── mocap.md │ │ ├── text-to-motion.md │ │ └── tts.md ├── public │ ├── favicon.ico │ ├── favicon.svg │ ├── logo-dark.png │ ├── logo-light.png │ ├── maskable_icon_x192.png │ ├── maskable_icon_x512.png │ ├── readme-image-pc-preview.png │ ├── site.webmanifest │ ├── static │ │ └── blog │ │ │ ├── DevLog-2025.03.10 │ │ │ └── customizable-theme-colors.mp4 │ │ │ ├── DevLog-2025.03.20 │ │ │ ├── airi-demo.mp4 │ │ │ ├── ashley-pitch-test.mp3 │ │ │ └── histoire-first-look.mp4 │ │ │ ├── DevLog-2025.04.22 │ │ │ └── cursor-open-settings.mp4 │ │ │ ├── DevLog-2025.04.28 │ │ │ ├── airi-mcp-input-text.mp4 │ │ │ └── airi-mcp-settings.mp4 │ │ │ └── DevLog-2025.05.16 │ │ │ └── webai-examples-demo.MP4 │ ├── web-app-manifest-192x192.png │ └── web-app-manifest-512x512.png ├── src │ ├── assets │ │ ├── app-logo-dark.svg │ │ ├── app-logo.svg │ │ ├── images │ │ │ └── blog │ │ │ │ ├── DevLog-2025.03.05 │ │ │ │ ├── airi-build-dark.png │ │ │ │ ├── airi-build-light.png │ │ │ │ ├── airi-logo-v2-dark.png │ │ │ │ ├── airi-logo-v2.png │ │ │ │ ├── airi-logos-final.png │ │ │ │ ├── airi-logos-v1.png │ │ │ │ ├── airi-logos-v2.png │ │ │ │ ├── airi-logos-v3.png │ │ │ │ ├── airi-logos-v4.png │ │ │ │ ├── airi-logos-v5.png │ │ │ │ └── animation-transitions.gif │ │ │ │ ├── DevLog-2025.03.06 │ │ │ │ └── live-stream-layout-update.jpeg │ │ │ │ ├── DevLog-2025.03.10 │ │ │ │ ├── customizable-theme-colors.mp4 │ │ │ │ ├── new-ui-v1-dark.png │ │ │ │ ├── new-ui-v1.png │ │ │ │ ├── new-ui-v2.png │ │ │ │ ├── new-ui-v3-dark.png │ │ │ │ └── new-ui-v3.png │ │ │ │ ├── DevLog-2025.03.20 │ │ │ │ ├── elevenlabs-api-key.jpeg │ │ │ │ ├── elevenlabs.jpeg │ │ │ │ ├── histoire-color-slider-dark.png │ │ │ │ ├── histoire-color-slider.png │ │ │ │ ├── histoire-logo-dark.png │ │ │ │ ├── histoire-logo.png │ │ │ │ ├── modules-i18n.jpeg │ │ │ │ ├── new-ui-v4-speech-dark.png │ │ │ │ ├── new-ui-v4-speech.png │ │ │ │ ├── settings-i18n.jpeg │ │ │ │ ├── steins-gate-gelnana-from-elpsycongrooblog.webp │ │ │ │ └── steins-gate-mayori.webp │ │ │ │ ├── DevLog-2025.04.06 │ │ │ │ ├── awesome-ai-vtuber-logo-light.png │ │ │ │ ├── character-card-detail.png │ │ │ │ ├── character-card.png │ │ │ │ ├── memory-decay.png │ │ │ │ ├── memory-retrieval.png │ │ │ │ ├── more-theme-colors.png │ │ │ │ └── relu-sticker-wow.png │ │ │ │ ├── DevLog-2025.04.14 │ │ │ │ ├── memory-controler.jpg │ │ │ │ ├── memory-decay.jpg │ │ │ │ ├── memory-driver.jpg │ │ │ │ ├── memory-emotional-model.jpg │ │ │ │ ├── memory-emotional-score.jpg │ │ │ │ ├── memory-emotional-simulator.jpg │ │ │ │ ├── memory-retrieval.jpg │ │ │ │ ├── review-1.jpg │ │ │ │ └── review-2.jpg │ │ │ │ ├── DevLog-2025.04.22 │ │ │ │ └── develop-with-cursor.jpeg │ │ │ │ ├── DevLog-2025.04.28 │ │ │ │ └── airi-mcp-arch.jpg │ │ │ │ └── DevLog-2025.05.16 │ │ │ │ ├── character-card-menu-dark.png │ │ │ │ ├── character-card-menu-light.png │ │ │ │ ├── character-card-settings-dark.png │ │ │ │ ├── character-card-settings-light.png │ │ │ │ ├── character-card-showcase-dark.png │ │ │ │ ├── character-card-showcase-light.png │ │ │ │ ├── demo-day-hangzhou-1.jpeg │ │ │ │ ├── demo-day-hangzhou-2.jpeg │ │ │ │ ├── demo-day-hangzhou-3.jpeg │ │ │ │ ├── velin-dark.png │ │ │ │ ├── velin-light.png │ │ │ │ ├── velin-playground-dark.png │ │ │ │ └── velin-playground-light.png │ │ ├── logo-dark.svg │ │ └── logo.svg │ ├── components │ │ └── starlight │ │ │ └── Head.astro │ ├── content.config.ts │ ├── content │ │ └── docs │ │ │ ├── about-neurosama │ │ │ └── discussions.md │ │ │ ├── blog │ │ │ ├── DevLog-2025.03.05.md │ │ │ ├── DevLog-2025.03.06.md │ │ │ ├── DevLog-2025.03.10.md │ │ │ ├── DevLog-2025.03.20.mdx │ │ │ ├── DevLog-2025.04.06.mdx │ │ │ ├── DevLog-2025.04.14.md │ │ │ ├── DevLog-2025.04.22.md │ │ │ ├── DevLog-2025.04.28.mdx │ │ │ └── DevLog-2025.05.16.mdx │ │ │ ├── guides │ │ │ ├── about-ai-vtuber.md │ │ │ └── index.md │ │ │ ├── index.mdx │ │ │ └── references │ │ │ ├── Contributing │ │ │ └── guide.md │ │ │ └── Design Guidelines │ │ │ ├── index.md │ │ │ ├── resources.md │ │ │ └── tools.md │ ├── env.d.ts │ ├── layouts │ │ └── 98.astro │ ├── pages │ │ └── og │ │ │ └── [...slug].ts │ └── styles │ │ ├── 98-patched.css │ │ ├── custom.css │ │ └── nixie.css ├── tsconfig.json └── uno.config.ts ├── eslint.config.ts ├── package.json ├── packages ├── ccc │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── define │ │ │ ├── card.ts │ │ │ ├── ext.ts │ │ │ ├── index.ts │ │ │ └── types │ │ │ │ └── mes_example.ts │ │ ├── export │ │ │ ├── apng.ts │ │ │ ├── index.ts │ │ │ ├── json.ts │ │ │ ├── md.ts │ │ │ ├── png.ts │ │ │ └── types │ │ │ │ ├── assets.ts │ │ │ │ ├── character_book.ts │ │ │ │ ├── character_card_v3.ts │ │ │ │ ├── data.ts │ │ │ │ ├── extensions.ts │ │ │ │ └── index.ts │ │ ├── index.ts │ │ └── utils │ │ │ ├── chat.ts │ │ │ ├── index.ts │ │ │ └── markdown.ts │ ├── test │ │ └── fixture │ │ │ └── seraphina.ts │ └── tsconfig.json ├── drizzle-duckdb-wasm │ └── README.md ├── duckdb-wasm │ └── README.md ├── font-cjkfonts-allseto │ ├── build.config.ts │ ├── license.txt │ ├── package.json │ ├── src │ │ ├── files │ │ │ └── cjkFonts_allseto_v1.11.ttf │ │ ├── index.css │ │ └── index.ts │ └── tsconfig.json ├── font-departure-mono │ ├── LICENSE │ ├── build.config.ts │ ├── package.json │ ├── src │ │ ├── README.md │ │ ├── files │ │ │ ├── DepartureMono-Regular.otf │ │ │ ├── DepartureMono-Regular.woff │ │ │ └── DepartureMono-Regular.woff2 │ │ ├── index.css │ │ └── index.ts │ └── tsconfig.json ├── font-xiaolai │ ├── build.config.ts │ ├── package.json │ ├── src │ │ ├── files │ │ │ └── XiaolaiSC-Regular.ttf │ │ ├── index.css │ │ └── index.ts │ └── tsconfig.json ├── memory-pgvector │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json ├── server-runtime │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── types │ │ │ ├── conn.ts │ │ │ └── index.ts │ └── tsconfig.json ├── server-sdk │ ├── README.md │ ├── package.json │ ├── src │ │ ├── client.ts │ │ ├── index.ts │ │ └── utils │ │ │ ├── concurrency.ts │ │ │ ├── index.ts │ │ │ └── node │ │ │ ├── index.ts │ │ │ └── process.ts │ └── tsconfig.json ├── server-shared │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── types │ │ │ ├── index.ts │ │ │ └── websocket │ │ │ ├── events.ts │ │ │ └── index.ts │ └── tsconfig.json ├── stage-ui │ ├── README.md │ ├── build.config.ts │ ├── env.d.ts │ ├── histoire.config.ts │ ├── package.json │ ├── public │ │ ├── apple-touch-icon.png │ │ ├── favicon.ico │ │ ├── favicon.svg │ │ ├── logo-dark.svg │ │ ├── logo.svg │ │ ├── maskable_icon_x192.png │ │ ├── maskable_icon_x512.png │ │ ├── web-app-manifest-192x192.png │ │ └── web-app-manifest-512x512.png │ ├── src │ │ ├── components │ │ │ ├── Button │ │ │ │ ├── Button.story.vue │ │ │ │ ├── Button.vue │ │ │ │ └── index.ts │ │ │ ├── DataGui │ │ │ │ ├── Range.story.vue │ │ │ │ └── Range.vue │ │ │ ├── Form │ │ │ │ ├── Checkbox │ │ │ │ │ └── Checkbox.story.vue │ │ │ │ ├── Field │ │ │ │ │ ├── FieldCheckbox.story.vue │ │ │ │ │ ├── FieldInput.story.vue │ │ │ │ │ ├── FieldKeyValues.story.vue │ │ │ │ │ └── FieldRange.story.vue │ │ │ │ ├── Input │ │ │ │ │ ├── Input.story.vue │ │ │ │ │ ├── InputFile.story.vue │ │ │ │ │ └── InputKeyValue.story.vue │ │ │ │ ├── Range │ │ │ │ │ └── Range.story.vue │ │ │ │ ├── Select │ │ │ │ │ └── Select.story.vue │ │ │ │ └── Textarea │ │ │ │ │ ├── Basic.story.vue │ │ │ │ │ └── Textarea.story.vue │ │ │ ├── Gadgets │ │ │ │ ├── AudioSpectrum.story.vue │ │ │ │ ├── AudioSpectrum.vue │ │ │ │ ├── AudioSpectrumVisualizer.vue │ │ │ │ ├── TestDummyMarker.story.vue │ │ │ │ ├── TestDummyMarker.vue │ │ │ │ ├── TestDummyMarkerFlat.vue │ │ │ │ └── index.ts │ │ │ ├── Graphics │ │ │ │ ├── Volumed.story.vue │ │ │ │ ├── Volumed.vue │ │ │ │ └── index.ts │ │ │ ├── Layouts │ │ │ │ ├── PageHeader.vue │ │ │ │ └── index.ts │ │ │ ├── Live2D │ │ │ │ ├── Canvas.vue │ │ │ │ ├── Model.vue │ │ │ │ └── index.ts │ │ │ ├── Menu │ │ │ │ ├── CharacterCard.story.vue │ │ │ │ ├── CharacterCard.vue │ │ │ │ ├── HeroCardDemo.story.vue │ │ │ │ ├── HeroCardDemo.vue │ │ │ │ ├── IconItem.story.vue │ │ │ │ ├── IconItem.vue │ │ │ │ ├── IconStatusItem.story.vue │ │ │ │ ├── IconStatusItem.vue │ │ │ │ ├── RadioCardDetail.story.vue │ │ │ │ ├── RadioCardDetail.vue │ │ │ │ ├── RadioCardManySelect.vue │ │ │ │ ├── RadioCardSimple.story.vue │ │ │ │ ├── RadioCardSimple.vue │ │ │ │ ├── VoiceCard.story.vue │ │ │ │ ├── VoiceCard.vue │ │ │ │ ├── VoiceCardManySelect.story.vue │ │ │ │ ├── VoiceCardManySelect.vue │ │ │ │ ├── index.ts │ │ │ │ └── relu.png │ │ │ ├── Misc │ │ │ │ ├── Collapsable.vue │ │ │ │ ├── Skeleton.story.vue │ │ │ │ ├── Skeleton.vue │ │ │ │ ├── Steppers │ │ │ │ │ ├── Steppers.story.vue │ │ │ │ │ ├── Steppers.vue │ │ │ │ │ └── index.ts │ │ │ │ ├── Steps │ │ │ │ │ └── Steps.story.vue │ │ │ │ └── index.ts │ │ │ ├── Physics │ │ │ │ ├── CursorFloating.story.vue │ │ │ │ ├── CursorFloating.vue │ │ │ │ ├── CursorMomentum.story.vue │ │ │ │ ├── CursorMomentum.vue │ │ │ │ └── index.ts │ │ │ ├── Providers │ │ │ │ ├── ProviderAccountIdInput.story.vue │ │ │ │ ├── ProviderAccountIdInput.vue │ │ │ │ ├── ProviderAdvancedSettings.story.vue │ │ │ │ ├── ProviderAdvancedSettings.vue │ │ │ │ ├── ProviderApiKeyInput.story.vue │ │ │ │ ├── ProviderApiKeyInput.vue │ │ │ │ ├── ProviderBaseUrlInput.story.vue │ │ │ │ ├── ProviderBaseUrlInput.vue │ │ │ │ ├── ProviderBasicSettings.story.vue │ │ │ │ ├── ProviderBasicSettings.vue │ │ │ │ ├── ProviderSettingsContainer.story.vue │ │ │ │ ├── ProviderSettingsContainer.vue │ │ │ │ ├── ProviderSettingsLayout.story.vue │ │ │ │ ├── ProviderSettingsLayout.vue │ │ │ │ ├── ProviderSettingsLayout2.vue │ │ │ │ ├── SpeechPlayground.vue │ │ │ │ ├── SpeechProviderSettings.vue │ │ │ │ └── index.ts │ │ │ ├── Scenes │ │ │ │ ├── Live2D.vue │ │ │ │ ├── VRM.vue │ │ │ │ └── index.ts │ │ │ ├── Screen.vue │ │ │ ├── Section │ │ │ │ ├── Section.story.vue │ │ │ │ ├── Section.vue │ │ │ │ └── index.ts │ │ │ ├── VRM │ │ │ │ ├── Model.vue │ │ │ │ └── index.ts │ │ │ ├── Widgets │ │ │ │ ├── Stage.vue │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── composables │ │ │ ├── index.ts │ │ │ ├── live2d │ │ │ │ ├── animation.ts │ │ │ │ └── index.ts │ │ │ ├── llmmarkerParser.test.ts │ │ │ ├── llmmarkerParser.ts │ │ │ ├── markdown.ts │ │ │ ├── micvad.ts │ │ │ ├── queue.ts │ │ │ ├── queues.ts │ │ │ ├── vrm │ │ │ │ ├── animation.ts │ │ │ │ ├── core.ts │ │ │ │ ├── expression.ts │ │ │ │ ├── index.ts │ │ │ │ └── loader.ts │ │ │ └── whisper.ts │ │ ├── constants │ │ │ ├── emotions.ts │ │ │ ├── index.ts │ │ │ └── prompts │ │ │ │ └── system-v2.ts │ │ ├── libs │ │ │ ├── audio │ │ │ │ └── manager.ts │ │ │ ├── index.ts │ │ │ └── workers │ │ │ │ ├── types.ts │ │ │ │ └── worker.ts │ │ ├── stores │ │ │ ├── audio.ts │ │ │ ├── chat.ts │ │ │ ├── index.ts │ │ │ ├── llm.ts │ │ │ ├── mcp.ts │ │ │ ├── modules │ │ │ │ ├── airi-card.ts │ │ │ │ ├── consciousness.ts │ │ │ │ ├── index.ts │ │ │ │ └── speech.ts │ │ │ ├── providers.ts │ │ │ ├── providers │ │ │ │ └── elevenlabs │ │ │ │ │ └── list-models.ts │ │ │ ├── server.ts │ │ │ └── settings.ts │ │ ├── tools │ │ │ ├── debug.ts │ │ │ ├── index.ts │ │ │ └── mcp.ts │ │ ├── types │ │ │ └── chat.ts │ │ └── utils │ │ │ ├── eye-motions.ts │ │ │ ├── index.ts │ │ │ ├── iterator.ts │ │ │ └── live2d-zip-loader.ts │ ├── stories │ │ ├── CharacterCardColorControls.vue │ │ ├── ColorPickerControl.vue │ │ ├── Colors.story.vue │ │ ├── ThemeColorsHueControl.vue │ │ ├── TypographyMono.story.vue │ │ ├── TypographySans.story.vue │ │ ├── main.css │ │ ├── setup.ts │ │ ├── themes.css │ │ └── transitions.css │ ├── tsconfig.json │ ├── uno.config.ts │ └── vite.config.ts ├── tauri-plugin-mcp │ ├── README.md │ ├── package.json │ └── src │ │ └── index.ts ├── ui-loading-screens │ ├── README.md │ ├── build.config.ts │ ├── index.html │ ├── netlify.toml │ ├── package.json │ ├── playground │ │ ├── public │ │ │ ├── apple-touch-icon.png │ │ │ ├── favicon.ico │ │ │ ├── favicon.svg │ │ │ ├── maskable_icon_x192.png │ │ │ ├── maskable_icon_x512.png │ │ │ ├── web-app-manifest-192x192.png │ │ │ └── web-app-manifest-512x512.png │ │ └── src │ │ │ ├── App.vue │ │ │ ├── main.ts │ │ │ └── pages │ │ │ ├── index.vue │ │ │ └── scifi-circle.vue │ ├── src │ │ ├── components │ │ │ ├── LoadingLogoWithBar.vue │ │ │ ├── LoadingSciFiCircle │ │ │ │ ├── CRT.vue │ │ │ │ ├── CRTLine.vue │ │ │ │ ├── assets │ │ │ │ │ ├── Circle Blink In - Loading (@proj-airi).rev │ │ │ │ │ ├── barrel_distortion_map.png │ │ │ │ │ └── circle_blink_in_-_loading_(@proj-airi).riv │ │ │ │ └── index.vue │ │ │ └── index.ts │ │ └── index.ts │ ├── tsconfig.json │ ├── uno.config.ts │ └── vite.config.ts ├── ui-transitions │ ├── README.md │ ├── build.config.ts │ ├── index.html │ ├── netlify.toml │ ├── package.json │ ├── playground │ │ ├── public │ │ │ ├── apple-touch-icon.png │ │ │ ├── favicon.ico │ │ │ ├── favicon.svg │ │ │ ├── maskable_icon_x192.png │ │ │ ├── maskable_icon_x512.png │ │ │ ├── web-app-manifest-192x192.png │ │ │ └── web-app-manifest-512x512.png │ │ └── src │ │ │ ├── App.vue │ │ │ ├── components │ │ │ └── Buttons.vue │ │ │ ├── main.ts │ │ │ └── pages │ │ │ ├── index.vue │ │ │ ├── transition-2.vue │ │ │ ├── transition-3.vue │ │ │ ├── transition-4.vue │ │ │ ├── transition-5.vue │ │ │ ├── transition-6.vue │ │ │ └── transition-7.vue │ ├── src │ │ ├── components │ │ │ ├── ArrowTransition.vue │ │ │ ├── BubbleWaveOutTransition.vue │ │ │ ├── FantasyFallTransition.vue │ │ │ ├── MultipleBlocksRevealTransition.vue │ │ │ ├── RectanglesRotateTransition.vue │ │ │ ├── SlideTransition.vue │ │ │ ├── SlopeSlideTransition.vue │ │ │ ├── StageTransitionGroup.vue │ │ │ └── index.ts │ │ └── index.ts │ ├── tsconfig.json │ ├── uno.config.ts │ └── vite.config.ts └── ui │ ├── README.md │ ├── build.config.ts │ ├── package.json │ ├── src │ ├── components │ │ ├── Animations │ │ │ ├── TransitionVertical.vue │ │ │ └── index.ts │ │ └── Form │ │ │ ├── Checkbox │ │ │ ├── Checkbox.vue │ │ │ └── index.ts │ │ │ ├── Field │ │ │ ├── FieldCheckbox.vue │ │ │ ├── FieldInput.vue │ │ │ ├── FieldKeyValues.vue │ │ │ ├── FieldRange.vue │ │ │ └── index.ts │ │ │ ├── Input │ │ │ ├── Input.vue │ │ │ ├── InputFile.vue │ │ │ ├── InputKeyValue.vue │ │ │ └── index.ts │ │ │ ├── Radio │ │ │ ├── Radio.vue │ │ │ └── index.ts │ │ │ ├── Range │ │ │ ├── Range.vue │ │ │ └── index.ts │ │ │ ├── Select │ │ │ ├── Select.vue │ │ │ └── index.ts │ │ │ ├── Textarea │ │ │ ├── Basic.vue │ │ │ ├── Textarea.vue │ │ │ └── index.ts │ │ │ └── index.ts │ └── index.ts │ ├── tsconfig.json │ └── uno.config.ts ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── rust-toolchain.toml ├── rustfmt.toml ├── scripts └── fs.ts ├── services ├── discord-bot │ ├── .env │ ├── README.md │ ├── package.json │ ├── src │ │ ├── bots │ │ │ └── discord │ │ │ │ └── commands │ │ │ │ ├── index.ts │ │ │ │ ├── ping.ts │ │ │ │ └── summon.ts │ │ ├── constants │ │ │ └── audio.ts │ │ ├── index.ts │ │ ├── pipelines │ │ │ └── tts.ts │ │ └── utils │ │ │ ├── audio-monitor.ts │ │ │ ├── audio.ts │ │ │ └── opus.ts │ └── tsconfig.json ├── minecraft │ ├── .env │ ├── README.md │ ├── docs │ │ └── preview.png │ ├── package.json │ ├── src │ │ ├── agents │ │ │ ├── action │ │ │ │ ├── adapter.test.ts │ │ │ │ ├── adapter.ts │ │ │ │ ├── index.ts │ │ │ │ ├── tools.test.ts │ │ │ │ └── tools.ts │ │ │ ├── chat │ │ │ │ ├── adapter.ts │ │ │ │ ├── index.ts │ │ │ │ ├── llm.ts │ │ │ │ └── types.ts │ │ │ ├── memory │ │ │ │ └── index.ts │ │ │ └── planning │ │ │ │ ├── adapter.ts │ │ │ │ └── index.ts │ │ ├── composables │ │ │ ├── bot.ts │ │ │ ├── config.ts │ │ │ └── neuri.ts │ │ ├── libs │ │ │ ├── llm-agent │ │ │ │ ├── chat.ts │ │ │ │ ├── completion.ts │ │ │ │ ├── container.ts │ │ │ │ ├── handler.ts │ │ │ │ ├── index.ts │ │ │ │ ├── prompt.ts │ │ │ │ ├── types.ts │ │ │ │ └── voice.ts │ │ │ └── mineflayer │ │ │ │ ├── action.ts │ │ │ │ ├── base-agent.ts │ │ │ │ ├── command.ts │ │ │ │ ├── components.ts │ │ │ │ ├── core.ts │ │ │ │ ├── health.ts │ │ │ │ ├── index.ts │ │ │ │ ├── memory.ts │ │ │ │ ├── message.ts │ │ │ │ ├── plugin.ts │ │ │ │ ├── status.ts │ │ │ │ ├── ticker.ts │ │ │ │ └── types.ts │ │ ├── main.ts │ │ ├── plugins │ │ │ ├── echo.ts │ │ │ ├── follow.ts │ │ │ ├── pathfinder.ts │ │ │ └── status.ts │ │ ├── skills │ │ │ ├── actions │ │ │ │ ├── collect-block.ts │ │ │ │ ├── ensure.ts │ │ │ │ ├── gather-wood.ts │ │ │ │ ├── inventory.ts │ │ │ │ └── world-interactions.ts │ │ │ ├── base.ts │ │ │ ├── blocks.ts │ │ │ ├── combat.ts │ │ │ ├── crafting.ts │ │ │ ├── index.ts │ │ │ ├── inventory.ts │ │ │ ├── movement.ts │ │ │ └── world.ts │ │ └── utils │ │ │ ├── helper.ts │ │ │ ├── logger.ts │ │ │ └── mcdata.ts │ ├── tsconfig.json │ └── vitest.config.ts ├── telegram-bot │ ├── .env │ ├── README.md │ ├── docker-compose.yaml │ ├── drizzle.config.ts │ ├── drizzle │ │ ├── 0000_harsh_king_cobra.sql │ │ ├── 0001_next_talkback.sql │ │ ├── 0002_calm_magdalene.sql │ │ ├── 0003_black_warbird.sql │ │ ├── 0004_complete_gravity.sql │ │ ├── 0005_workable_shockwave.sql │ │ └── meta │ │ │ ├── 0000_snapshot.json │ │ │ ├── 0001_snapshot.json │ │ │ ├── 0002_snapshot.json │ │ │ ├── 0003_snapshot.json │ │ │ ├── 0004_snapshot.json │ │ │ ├── 0005_snapshot.json │ │ │ └── _journal.json │ ├── package.json │ ├── scripts │ │ └── embed-all-chat-messages.ts │ ├── sql │ │ └── init.sql │ ├── src │ │ ├── bots │ │ │ └── telegram │ │ │ │ ├── attention-handler.ts │ │ │ │ ├── index.ts │ │ │ │ ├── loop │ │ │ │ └── read-message.ts │ │ │ │ └── utils │ │ │ │ ├── interruption.ts │ │ │ │ ├── message.test.ts │ │ │ │ └── message.ts │ │ ├── db │ │ │ ├── index.ts │ │ │ └── schema.ts │ │ ├── index.ts │ │ ├── llm │ │ │ ├── actions.ts │ │ │ ├── animated-sticker.ts │ │ │ ├── index.ts │ │ │ ├── photo.ts │ │ │ └── sticker.ts │ │ ├── memory │ │ │ └── actor-memory.ts │ │ ├── models │ │ │ ├── chat-completions-history.ts │ │ │ ├── chat-message.ts │ │ │ ├── chats.ts │ │ │ ├── common.ts │ │ │ ├── index.ts │ │ │ ├── photos.ts │ │ │ ├── sticker-packs.ts │ │ │ └── stickers.ts │ │ ├── prompts │ │ │ ├── system-v1.ts │ │ │ └── utils.ts │ │ ├── types.ts │ │ └── utils │ │ │ ├── fs.ts │ │ │ ├── promise.ts │ │ │ └── time.ts │ ├── tsconfig.json │ └── vitest.config.ts └── twitter-services │ ├── .env.example │ ├── docs │ └── architecture-20250304.md │ ├── package.json │ ├── src │ ├── adapters │ │ ├── adapter.ts │ │ ├── airi-adapter.ts │ │ └── mcp-adapter.ts │ ├── config │ │ ├── index.ts │ │ └── types.ts │ ├── constants.ts │ ├── core │ │ ├── browser │ │ │ └── context.ts │ │ ├── services │ │ │ ├── auth.ts │ │ │ ├── timeline.ts │ │ │ ├── tweet.ts │ │ │ └── user.ts │ │ └── utils │ │ │ └── scroll-helper.ts │ ├── main.ts │ ├── parsers │ │ ├── profile-parser.ts │ │ ├── selectors.ts │ │ └── tweet-parser.ts │ ├── types │ │ └── services.ts │ └── utils │ │ ├── error.ts │ │ └── logger.ts │ └── tsconfig.json ├── tsconfig.json ├── uno.config.ts └── vitest.workspace.ts /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [nekomeowww, kwaa, luoling8192] 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/typo.yaml: -------------------------------------------------------------------------------- 1 | name: 👀 Typo / Grammar fix 2 | description: You can just go ahead and send a PR! Thank you! 3 | labels: [documentation] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: | 8 | ## PR Welcome! 9 | 10 | If the typo / grammar issue is trivial and straightforward, you can help by **directly sending a quick pull request**! 11 | If you spot multiple of them, we suggest combining them into a single PR. Thanks! 12 | - type: textarea 13 | id: context 14 | attributes: 15 | label: Additional context 16 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | 3 | 4 | 5 | ## Linked Issues 6 | 7 | 8 | 9 | ## Additional context 10 | 11 | 12 | -------------------------------------------------------------------------------- /.github/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 0.3.x | :white_check_mark: | 11 | 12 | ## Reporting a Vulnerability 13 | 14 | Use this section to tell people how to report a vulnerability. 15 | 16 | Tell them where to go, how often they can expect to get an update on a 17 | reported vulnerability, what to expect if the vulnerability is accepted or 18 | declined, etc. 19 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 24.1.0 2 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "streetsidesoftware.code-spell-checker", 4 | "mikestead.dotenv", 5 | "EditorConfig.EditorConfig", 6 | "usernamehw.errorlens", 7 | "dbaeumer.vscode-eslint", 8 | "antfu.goto-alias", 9 | "lokalise.i18n-ally", 10 | "antfu.iconify", 11 | "yzhang.markdown-all-in-one", 12 | "antfu.unocss", 13 | "Vue.volar", 14 | "vitest.explorer", 15 | "redhat.vscode-yaml", 16 | "rust-lang.rust-analyzer" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ 3 | "crates/*", 4 | "apps/stage-tamagotchi/src-tauri" 5 | ] 6 | resolver = "2" 7 | 8 | [workspace.package] 9 | version = "0.4.27" 10 | 11 | [workspace.dependencies] 12 | tauri-plugin-mcp = { path = "./crates/tauri-plugin-mcp" } 13 | -------------------------------------------------------------------------------- /apps/playground-prompt-engineering/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ReLU Prompt Engineering Playground 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/playground-prompt-engineering/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createPinia } from 'pinia' 2 | import { createApp } from 'vue' 3 | 4 | import App from './App.vue' 5 | import '@unocss/reset/tailwind.css' 6 | import 'uno.css' 7 | import './styles/main.css' 8 | 9 | const pinia = createPinia() 10 | 11 | createApp(App).use(pinia).mount('#app') 12 | -------------------------------------------------------------------------------- /apps/playground-prompt-engineering/src/prompts/Example.md: -------------------------------------------------------------------------------- 1 | ## Prompt Template 2 | 3 | 9 | 10 |
11 | 12 | ## System Prompt 13 | 14 | You are a professional code assistant, please answer the question using {{language}} language. 15 | 16 |
17 | 18 | ## User Prompt 19 | 20 | {{userQuestion}} 21 | -------------------------------------------------------------------------------- /apps/playground-prompt-engineering/src/styles/main.css: -------------------------------------------------------------------------------- 1 | @import './themes.css'; 2 | @import './transitions.css'; 3 | 4 | html, 5 | body, 6 | #app { 7 | height: 100%; 8 | margin: 0; 9 | padding: 0; 10 | overscroll-behavior: none; 11 | } 12 | 13 | html { 14 | background: #fff; 15 | transition: all 0.3s ease-in-out; 16 | } 17 | 18 | html.dark { 19 | background: #121212; 20 | color-scheme: dark; 21 | } 22 | 23 | #nprogress { 24 | pointer-events: none; 25 | } 26 | 27 | #nprogress .bar { 28 | background: #f472b6; 29 | opacity: 0.75; 30 | position: fixed; 31 | z-index: 1031; 32 | top: 0; 33 | left: 0; 34 | width: 100%; 35 | height: 2px; 36 | } 37 | -------------------------------------------------------------------------------- /apps/playground-prompt-engineering/src/styles/transitions.css: -------------------------------------------------------------------------------- 1 | .slide-away-enter-active, 2 | .slide-away-leave-active { 3 | transition: 4 | transform 0.3s ease-in-out, 5 | opacity 0.3s ease-in-out; 6 | } 7 | 8 | .slide-away-enter, 9 | .slide-away-leave-to { 10 | transform: translateY(-10px); 11 | opacity: 0; 12 | } 13 | 14 | .slide-away-enter-from, 15 | .slide-away-leave { 16 | transform: translateY(10px); 17 | opacity: 0; 18 | } 19 | -------------------------------------------------------------------------------- /apps/playground-prompt-engineering/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | import vue from '@vitejs/plugin-vue' 3 | import UnoCSS from 'unocss/vite' 4 | import { defineConfig } from 'vite' 5 | import Devtools from 'vite-plugin-vue-devtools' 6 | 7 | // https://vitejs.dev/config/ 8 | export default defineConfig({ 9 | plugins: [ 10 | vue(), 11 | UnoCSS(), 12 | Devtools(), 13 | ], 14 | resolve: { 15 | alias: { 16 | '@': fileURLToPath(new URL('./src', import.meta.url)), 17 | }, 18 | }, 19 | }) 20 | -------------------------------------------------------------------------------- /apps/realtime-audio/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | base = "/" 3 | command = "pnpm -F @proj-airi/realtime-audio... run build" 4 | publish = "/apps/realtime-audio/dist" 5 | 6 | [build.environment] 7 | NODE_VERSION = "23" 8 | 9 | [[redirects]] 10 | from = "/*" 11 | to = "/index.html" 12 | status = 200 13 | force = false 14 | -------------------------------------------------------------------------------- /apps/realtime-audio/public/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/realtime-audio/public/favicon-96x96.png -------------------------------------------------------------------------------- /apps/realtime-audio/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import { createRouter, createWebHashHistory } from 'vue-router' 3 | import { routes } from 'vue-router/auto-routes' 4 | 5 | import App from './App.vue' 6 | import '@unocss/reset/tailwind.css' 7 | import 'uno.css' 8 | 9 | const router = createRouter({ routes, history: createWebHashHistory() }) 10 | 11 | createApp(App) 12 | .use(router) 13 | .mount('#app') 14 | -------------------------------------------------------------------------------- /apps/realtime-audio/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext", 6 | "DOM", 7 | "DOM.Iterable", 8 | "DOM.AsyncIterable", 9 | "WebWorker" 10 | ], 11 | "module": "ESNext", 12 | "moduleResolution": "bundler", 13 | "types": [ 14 | "vite/client", 15 | "unplugin-vue-router/client" 16 | ], 17 | "esModuleInterop": true, 18 | "forceConsistentCasingInFileNames": true, 19 | "isolatedModules": true, 20 | "verbatimModuleSyntax": true, 21 | "skipLibCheck": true 22 | }, 23 | "include": [ 24 | "src/**/*.ts", 25 | "src/**/*.d.ts", 26 | "src/**/*.mts" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /apps/realtime-audio/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { resolve } from 'node:path' 2 | import Vue from '@vitejs/plugin-vue' 3 | import Unocss from 'unocss/vite' 4 | import VueRouter from 'unplugin-vue-router/vite' 5 | import { defineConfig } from 'vite' 6 | 7 | export default defineConfig({ 8 | plugins: [ 9 | // https://github.com/posva/unplugin-vue-router 10 | VueRouter({ 11 | extensions: ['.vue', '.md'], 12 | dts: resolve(import.meta.dirname, 'src', 'typed-router.d.ts'), 13 | }), 14 | Vue(), 15 | // https://github.com/antfu/unocss 16 | // see uno.config.ts for config 17 | Unocss(), 18 | ], 19 | }) 20 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/build/entitlements.mac.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.allow-jit 6 | 7 | com.apple.security.cs.allow-unsigned-executable-memory 8 | 9 | com.apple.security.cs.allow-dyld-environment-variables 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/build/icon-tray-macos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/build/icon-tray-macos.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/build/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/build/icon.icns -------------------------------------------------------------------------------- /apps/stage-tamagotchi/build/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/build/icon.ico -------------------------------------------------------------------------------- /apps/stage-tamagotchi/build/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/build/icon.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/dmmono-612bc94f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/dmmono-612bc94f.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/dmmono-cbe07c46.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/dmmono-cbe07c46.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/dmsans-2fb93aaf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/dmsans-2fb93aaf.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/dmsans-dbe1f17c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/dmsans-dbe1f17c.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/dmserifdisplay-aca0e217.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/dmserifdisplay-aca0e217.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/dmserifdisplay-cbc631ca.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/dmserifdisplay-cbc631ca.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-009c5be8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-009c5be8.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0514b7cf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0514b7cf.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0573d686.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0573d686.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-07244ee5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-07244ee5.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-085a6c22.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-085a6c22.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0ad0a9d2.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0ad0a9d2.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0be7afce.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0be7afce.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0c23635e.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0c23635e.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0df9a253.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-0df9a253.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-13545cae.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-13545cae.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-1911008c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-1911008c.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-1af0c5f1.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-1af0c5f1.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-1f1e6991.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-1f1e6991.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-208d5a34.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-208d5a34.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-2096dedd.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-2096dedd.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-209bc0be.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-209bc0be.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-20e80c6c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-20e80c6c.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-2313b129.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-2313b129.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-29d8c55e.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-29d8c55e.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-2b6ed312.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-2b6ed312.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-2c33d41c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-2c33d41c.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-3481cc4f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-3481cc4f.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-35084dac.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-35084dac.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-36856d50.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-36856d50.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-36fb3c4a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-36fb3c4a.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-3751c113.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-3751c113.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-3b771b65.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-3b771b65.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-3b952c26.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-3b952c26.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-474380dd.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-474380dd.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-50117413.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-50117413.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-521bee63.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-521bee63.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-552cc702.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-552cc702.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-55844dc7.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-55844dc7.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-560b3902.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-560b3902.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-568dcfeb.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-568dcfeb.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-58a9d5c0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-58a9d5c0.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-59fd3126.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-59fd3126.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5a124686.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5a124686.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5a44543f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5a44543f.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5bcb5bb1.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5bcb5bb1.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5cd182e6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5cd182e6.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5f4b3a5f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-5f4b3a5f.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-60c3071b.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-60c3071b.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-6464e25a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-6464e25a.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-658259dc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-658259dc.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-66c47429.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-66c47429.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-6778f7b4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-6778f7b4.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-69d7c25a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-69d7c25a.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-6e2ab1e1.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-6e2ab1e1.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-6eae6b4e.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-6eae6b4e.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-70080563.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-70080563.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-71977e4e.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-71977e4e.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-73847400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-73847400.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-75fe32cd.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-75fe32cd.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-760852b7.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-760852b7.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7a3241e4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7a3241e4.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7b15712b.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7b15712b.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7b447157.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7b447157.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7dee4ebf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7dee4ebf.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7f0a0379.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-7f0a0379.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-80e73823.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-80e73823.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-81074aff.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-81074aff.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-819c2998.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-819c2998.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-86b6e796.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-86b6e796.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-885da82c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-885da82c.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-90cc0d1a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-90cc0d1a.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-94fef971.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-94fef971.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-95eff089.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-95eff089.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-985f589c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-985f589c.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-9b76e2f0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-9b76e2f0.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-9c102d1a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-9c102d1a.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-9d655fac.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-9d655fac.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-9e940f57.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-9e940f57.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-a5630ec7.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-a5630ec7.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-a7ab692f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-a7ab692f.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-aac8709a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-aac8709a.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-af619bd5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-af619bd5.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-b04ffcce.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-b04ffcce.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-b39ac2f6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-b39ac2f6.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-b402bc8c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-b402bc8c.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-b46cec37.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-b46cec37.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bc139138.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bc139138.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bc2d093d.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bc2d093d.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bc3c7c33.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bc3c7c33.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bcbe7b3b.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bcbe7b3b.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bce63905.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-bce63905.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c1cf71b4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c1cf71b4.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c1eabbbc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c1eabbbc.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c25beab3.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c25beab3.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c5809977.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c5809977.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c5c8b82e.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c5c8b82e.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c72fdfa6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c72fdfa6.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c8a93c23.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-c8a93c23.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-ce5c77b3.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-ce5c77b3.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-ce780496.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-ce780496.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d13b9d8b.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d13b9d8b.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d140488a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d140488a.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d41f6232.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d41f6232.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d73140ea.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d73140ea.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d7d83579.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d7d83579.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d91677f3.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d91677f3.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d994ed13.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-d994ed13.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-da327858.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-da327858.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-dd0c5406.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-dd0c5406.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-dedcfb85.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-dedcfb85.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e48a5515.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e48a5515.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e5aefc78.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e5aefc78.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e67556ab.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e67556ab.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e6b086e0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e6b086e0.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e9eb7394.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-e9eb7394.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-edd0d1f2.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-edd0d1f2.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-eeb0715d.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-eeb0715d.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-efe9b6c4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-efe9b6c4.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-f5117da0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-f5117da0.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-f66e1e71.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-f66e1e71.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-f772615a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-f772615a.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-fa4521f3.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-fa4521f3.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-faaf0afb.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-faaf0afb.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/kiwimaru-fffa0d98.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/kiwimaru-fffa0d98.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/sniglet-fdcce1d2.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/sniglet-fdcce1d2.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/public/assets/fonts/sniglet-ffe0add4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/public/assets/fonts/sniglet-ffe0add4.woff2 -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | /gen/schemas 5 | 6 | # Mcp plugin 7 | /tauri-plugin-mcp/target/ 8 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | tauri_build::build(); 3 | } 4 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/capabilities/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../gen/schemas/desktop-schema.json", 3 | "identifier": "default", 4 | "description": "enables the default permissions", 5 | "windows": [ 6 | "main", "settings", "chat" 7 | ], 8 | "permissions": [ 9 | "core:default", 10 | "os:default", 11 | "core:window:default", 12 | "core:window:allow-start-dragging", 13 | "core:window:allow-set-focus", 14 | "core:window:allow-set-minimizable", 15 | "mcp:default", 16 | "global-shortcut:allow-is-registered", 17 | "global-shortcut:allow-register", 18 | "global-shortcut:allow-unregister", 19 | "global-shortcut:allow-unregister-all" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/128x128.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/128x128@2x.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/32x32.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/64x64.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square107x107Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square107x107Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square142x142Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square142x142Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square150x150Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square284x284Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square284x284Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square30x30Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square30x30Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square310x310Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square310x310Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square44x44Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square71x71Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/Square89x89Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/Square89x89Logo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/StoreLogo.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/icon.icns -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-tamagotchi/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/src/app_click_through/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod native_macos; 2 | pub mod native_windows; 3 | pub mod state; 4 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/src/app_windows/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod chat; 2 | pub mod settings; 3 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/src/commands.rs: -------------------------------------------------------------------------------- 1 | use tauri::Manager; 2 | 3 | use crate::app_windows; 4 | 5 | #[tauri::command] 6 | pub async fn open_settings_window(app: tauri::AppHandle) -> Result<(), tauri::Error> { 7 | let window = app.get_webview_window("settings"); 8 | if let Some(window) = window { 9 | let _ = window.show(); 10 | return Ok(()); 11 | } 12 | 13 | app_windows::settings::new_settings_window(&app)?; 14 | Ok(()) 15 | } 16 | 17 | #[tauri::command] 18 | pub async fn open_chat_window(app: tauri::AppHandle) -> Result<(), tauri::Error> { 19 | let window = app.get_webview_window("chat"); 20 | if let Some(window) = window { 21 | let _ = window.show(); 22 | return Ok(()); 23 | } 24 | 25 | app_windows::chat::new_chat_window(&app)?; 26 | Ok(()) 27 | } 28 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src-tauri/src/main.rs: -------------------------------------------------------------------------------- 1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!! 2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 3 | 4 | fn main() { 5 | app_lib::run(); 6 | } 7 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/layouts/default.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/layouts/stage.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/modules/i18n.ts: -------------------------------------------------------------------------------- 1 | import messages from '@intlify/unplugin-vue-i18n/messages' 2 | import { createI18n } from 'vue-i18n' 3 | 4 | export const i18n = createI18n({ 5 | legacy: false, 6 | locale: getLocale(), 7 | fallbackLocale: 'en', 8 | messages, 9 | }) 10 | 11 | function getLocale() { 12 | const language = localStorage.getItem('settings/language') 13 | const languages = Object.keys(messages!) 14 | 15 | if (language && languages.includes(language)) 16 | return language 17 | 18 | // let locale = navigator.language 19 | 20 | // if (locale === 'zh') 21 | // locale = 'zh-CN' 22 | 23 | return 'en' 24 | } 25 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/pages/chat.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 18 | 19 | 20 | meta: 21 | layout: stage 22 | 23 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/pages/settings/appearance/color-presets.json: -------------------------------------------------------------------------------- 1 | [ 2 | [], 3 | ["#A5978B", "#D8CAAF", "#B8B4A7", "#C4BCB1", "#E5DED8", "#9A8F7D", "#BEB5A7", "#C9C0B6"], 4 | ["#7A9EAF", "#B8C7CC", "#D4B79C", "#8B9D77", "#C7D5CB", "#E6D0B1", "#94A7B1", "#B4C8C3"], 5 | ["#D9B48F", "#B5917A", "#8C7A6B", "#A17F5F", "#B98C46", "#C7A252", "#DAB300", "#D19826"], 6 | ["#9BA7B0", "#C1CBD4", "#A5ADB6", "#8B959E", "#D4DCE4", "#7F8A94", "#B3BCC6", "#98A4AE"], 7 | ["#E4C6D0", "#A61B29", "#5D513C", "#789262", "#1C0D1A", "#F7C242", "#62A9DD", "#8C4B3C"] 8 | ] 9 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/pages/settings/modules/memory-long-term.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | meta: 13 | layout: settings 14 | stageTransition: 15 | name: slide 16 | 17 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/pages/settings/modules/memory-short-term.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | meta: 13 | layout: settings 14 | stageTransition: 15 | name: slide 16 | 17 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/shims.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import type { DefineComponent } from 'vue' 3 | 4 | const component: DefineComponent 5 | export default component 6 | } 7 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/styles/transitions.css: -------------------------------------------------------------------------------- 1 | .slide-away-enter-active, 2 | .slide-away-leave-active { 3 | transition: 4 | transform 0.3s ease-in-out, 5 | opacity 0.3s ease-in-out; 6 | } 7 | 8 | .slide-away-enter, 9 | .slide-away-leave-to { 10 | transform: translateY(-10px); 11 | opacity: 0; 12 | } 13 | 14 | .slide-away-enter-from, 15 | .slide-away-leave { 16 | transform: translateY(10px); 17 | opacity: 0; 18 | } 19 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/types/window-controls.ts: -------------------------------------------------------------------------------- 1 | export enum WindowControlMode { 2 | NONE = 'none', 3 | MOVE = 'move', 4 | RESIZE = 'resize', 5 | DEBUG = 'debug', 6 | } 7 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/utils/windows.ts: -------------------------------------------------------------------------------- 1 | import { invoke } from '@tauri-apps/api/core' 2 | 3 | export async function startClickThrough() { 4 | await invoke('start_click_through') 5 | } 6 | 7 | export async function stopClickThrough() { 8 | await invoke('stop_click_through') 9 | } 10 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/src/worker.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.js?url' { 2 | const content: string 3 | export default content 4 | } 5 | 6 | declare module '*.wasm?url' { 7 | const content: string 8 | export default content 9 | } 10 | 11 | declare module '*.cjs?url' { 12 | const content: string 13 | export default content 14 | } 15 | -------------------------------------------------------------------------------- /apps/stage-tamagotchi/uno.config.ts: -------------------------------------------------------------------------------- 1 | import { sharedUnoConfig } from '../../uno.config' 2 | 3 | export default sharedUnoConfig() 4 | -------------------------------------------------------------------------------- /apps/stage-web/.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /apps/stage-web/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:20-alpine as build-stage 2 | 3 | WORKDIR /app 4 | RUN corepack enable 5 | 6 | COPY .npmrc package.json pnpm-lock.yaml ./ 7 | RUN --mount=type=cache,id=pnpm-store,target=/root/.pnpm-store \ 8 | pnpm install --frozen-lockfile 9 | 10 | COPY . . 11 | RUN pnpm build 12 | 13 | FROM nginx:stable-alpine as production-stage 14 | 15 | COPY --from=build-stage /app/dist /usr/share/nginx/html 16 | EXPOSE 80 17 | 18 | CMD ["nginx", "-g", "daemon off;"] 19 | -------------------------------------------------------------------------------- /apps/stage-web/README.md: -------------------------------------------------------------------------------- 1 |

アイリ VTuber

2 | 3 |

4 | [Try it] 5 |

6 | 7 | > Heavily inspired by [Neuro-sama](https://www.youtube.com/@Neurosama) 8 | -------------------------------------------------------------------------------- /apps/stage-web/public/_headers: -------------------------------------------------------------------------------- 1 | /assets/* 2 | cache-control: max-age=31536000 3 | cache-control: immutable 4 | 5 | -------------------------------------------------------------------------------- /apps/stage-web/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/public/apple-touch-icon.png -------------------------------------------------------------------------------- /apps/stage-web/public/assets/vrm/animations/idle_loop.vrma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/public/assets/vrm/animations/idle_loop.vrma -------------------------------------------------------------------------------- /apps/stage-web/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/public/favicon.ico -------------------------------------------------------------------------------- /apps/stage-web/public/maskable_icon_x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/public/maskable_icon_x192.png -------------------------------------------------------------------------------- /apps/stage-web/public/maskable_icon_x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/public/maskable_icon_x512.png -------------------------------------------------------------------------------- /apps/stage-web/public/web-app-manifest-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/public/web-app-manifest-192x192.png -------------------------------------------------------------------------------- /apps/stage-web/public/web-app-manifest-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/public/web-app-manifest-512x512.png -------------------------------------------------------------------------------- /apps/stage-web/src/assets/icons/modules/games/factorio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/src/assets/icons/modules/games/factorio.png -------------------------------------------------------------------------------- /apps/stage-web/src/assets/live2d/models/hiyori_free_zh/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/apps/stage-web/src/assets/live2d/models/hiyori_free_zh/avatar.png -------------------------------------------------------------------------------- /apps/stage-web/src/components/Layouts/Header.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 20 | -------------------------------------------------------------------------------- /apps/stage-web/src/components/Settings/Live2DModelControlButton.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 23 | -------------------------------------------------------------------------------- /apps/stage-web/src/layouts/stage.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 20 | -------------------------------------------------------------------------------- /apps/stage-web/src/modules/i18n.ts: -------------------------------------------------------------------------------- 1 | import messages from '@intlify/unplugin-vue-i18n/messages' 2 | import { createI18n } from 'vue-i18n' 3 | 4 | export const i18n = createI18n({ 5 | legacy: false, 6 | locale: getLocale(), 7 | fallbackLocale: 'en', 8 | messages, 9 | }) 10 | 11 | function getLocale() { 12 | const language = localStorage.getItem('settings/language') 13 | const languages = Object.keys(messages!) 14 | 15 | if (language && languages.includes(language)) 16 | return language 17 | 18 | // let locale = navigator.language 19 | 20 | // if (locale === 'zh') 21 | // locale = 'zh-CN' 22 | 23 | return 'en' 24 | } 25 | -------------------------------------------------------------------------------- /apps/stage-web/src/pages/[...all].vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /apps/stage-web/src/pages/settings/appearance/color-presets.json: -------------------------------------------------------------------------------- 1 | [ 2 | [], 3 | ["#A5978B", "#D8CAAF", "#B8B4A7", "#C4BCB1", "#E5DED8", "#9A8F7D", "#BEB5A7", "#C9C0B6"], 4 | ["#7A9EAF", "#B8C7CC", "#D4B79C", "#8B9D77", "#C7D5CB", "#E6D0B1", "#94A7B1", "#B4C8C3"], 5 | ["#D9B48F", "#B5917A", "#8C7A6B", "#A17F5F", "#B98C46", "#C7A252", "#DAB300", "#D19826"], 6 | ["#9BA7B0", "#C1CBD4", "#A5ADB6", "#8B959E", "#D4DCE4", "#7F8A94", "#B3BCC6", "#98A4AE"], 7 | ["#E4C6D0", "#A61B29", "#5D513C", "#789262", "#1C0D1A", "#F7C242", "#62A9DD", "#8C4B3C"] 8 | ] 9 | -------------------------------------------------------------------------------- /apps/stage-web/src/pages/settings/modules/memory-long-term.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | meta: 13 | layout: settings 14 | stageTransition: 15 | name: slide 16 | 17 | -------------------------------------------------------------------------------- /apps/stage-web/src/pages/settings/modules/memory-short-term.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | 11 | 12 | meta: 13 | layout: settings 14 | stageTransition: 15 | name: slide 16 | 17 | -------------------------------------------------------------------------------- /apps/stage-web/src/styles/transitions.css: -------------------------------------------------------------------------------- 1 | .slide-away-enter-active, 2 | .slide-away-leave-active { 3 | transition: 4 | transform 0.3s ease-in-out, 5 | opacity 0.3s ease-in-out; 6 | } 7 | 8 | .slide-away-enter, 9 | .slide-away-leave-to { 10 | transform: translateY(-10px); 11 | opacity: 0; 12 | } 13 | 14 | .slide-away-enter-from, 15 | .slide-away-leave { 16 | transform: translateY(10px); 17 | opacity: 0; 18 | } 19 | -------------------------------------------------------------------------------- /apps/stage-web/src/utils/platform.ts: -------------------------------------------------------------------------------- 1 | export function isPlatformTamagotchi() { 2 | return import.meta.env.MODE === 'tamagotchi' 3 | } 4 | -------------------------------------------------------------------------------- /apps/stage-web/uno.config.ts: -------------------------------------------------------------------------------- 1 | import { mergeConfigs } from 'unocss' 2 | 3 | import { histoireUnoConfig, sharedUnoConfig } from '../../uno.config' 4 | 5 | export default mergeConfigs([ 6 | sharedUnoConfig(), 7 | histoireUnoConfig(), 8 | { 9 | rules: [ 10 | ['transition-colors-none', { 11 | 'transition-property': 'color, background-color, border-color, text-color', 12 | 'transition-duration': '0s', 13 | }], 14 | ], 15 | }, 16 | ]) 17 | -------------------------------------------------------------------------------- /apps/stage-web/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | interface ImportMetaEnv { 4 | readonly VITE_APP_TARGET_HUGGINGFACE_SPACE: boolean 5 | // more env variables... 6 | } 7 | 8 | interface ImportMeta { 9 | readonly env: ImportMetaEnv 10 | } 11 | -------------------------------------------------------------------------------- /bump.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'bumpp' 2 | 3 | export default defineConfig({ 4 | recursive: true, 5 | commit: 'release: v%s', 6 | sign: true, 7 | push: false, 8 | }) 9 | -------------------------------------------------------------------------------- /changelogithub.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'changelogithub' 2 | 3 | export default defineConfig({ draft: true }) 4 | -------------------------------------------------------------------------------- /crates/tauri-plugin-mcp/build.rs: -------------------------------------------------------------------------------- 1 | const COMMANDS: &[&str] = &["connect_server", "disconnect_server", "list_tools", "call_tool"]; 2 | 3 | fn main() { 4 | tauri_plugin::Builder::new(COMMANDS).build(); 5 | } 6 | -------------------------------------------------------------------------------- /crates/tauri-plugin-mcp/permissions/autogenerated/commands/call_tool.toml: -------------------------------------------------------------------------------- 1 | # Automatically generated - DO NOT EDIT! 2 | 3 | "$schema" = "../../schemas/schema.json" 4 | 5 | [[permission]] 6 | identifier = "allow-call-tool" 7 | description = "Enables the call_tool command without any pre-configured scope." 8 | commands.allow = ["call_tool"] 9 | 10 | [[permission]] 11 | identifier = "deny-call-tool" 12 | description = "Denies the call_tool command without any pre-configured scope." 13 | commands.deny = ["call_tool"] 14 | -------------------------------------------------------------------------------- /crates/tauri-plugin-mcp/permissions/autogenerated/commands/connect_server.toml: -------------------------------------------------------------------------------- 1 | # Automatically generated - DO NOT EDIT! 2 | 3 | "$schema" = "../../schemas/schema.json" 4 | 5 | [[permission]] 6 | identifier = "allow-connect-server" 7 | description = "Enables the connect_server command without any pre-configured scope." 8 | commands.allow = ["connect_server"] 9 | 10 | [[permission]] 11 | identifier = "deny-connect-server" 12 | description = "Denies the connect_server command without any pre-configured scope." 13 | commands.deny = ["connect_server"] 14 | -------------------------------------------------------------------------------- /crates/tauri-plugin-mcp/permissions/autogenerated/commands/disconnect_server.toml: -------------------------------------------------------------------------------- 1 | # Automatically generated - DO NOT EDIT! 2 | 3 | "$schema" = "../../schemas/schema.json" 4 | 5 | [[permission]] 6 | identifier = "allow-disconnect-server" 7 | description = "Enables the disconnect_server command without any pre-configured scope." 8 | commands.allow = ["disconnect_server"] 9 | 10 | [[permission]] 11 | identifier = "deny-disconnect-server" 12 | description = "Denies the disconnect_server command without any pre-configured scope." 13 | commands.deny = ["disconnect_server"] 14 | -------------------------------------------------------------------------------- /crates/tauri-plugin-mcp/permissions/autogenerated/commands/list_tools.toml: -------------------------------------------------------------------------------- 1 | # Automatically generated - DO NOT EDIT! 2 | 3 | "$schema" = "../../schemas/schema.json" 4 | 5 | [[permission]] 6 | identifier = "allow-list-tools" 7 | description = "Enables the list_tools command without any pre-configured scope." 8 | commands.allow = ["list_tools"] 9 | 10 | [[permission]] 11 | identifier = "deny-list-tools" 12 | description = "Denies the list_tools command without any pre-configured scope." 13 | commands.deny = ["list_tools"] 14 | -------------------------------------------------------------------------------- /crates/tauri-plugin-mcp/permissions/default.toml: -------------------------------------------------------------------------------- 1 | "$schema" = "schemas/schema.json" 2 | 3 | [default] 4 | description = """ 5 | This permission set configures what kind of 6 | operations are available from the mcp plugin. 7 | 8 | #### Granted Permissions 9 | 10 | All operations are enabled by default. 11 | """ 12 | permissions = [ 13 | "allow-connect-server", 14 | "allow-disconnect-server", 15 | "allow-list-tools", 16 | "allow-call-tool" 17 | ] 18 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | # generated types 4 | .astro/ 5 | 6 | # dependencies 7 | node_modules/ 8 | 9 | # logs 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | pnpm-debug.log* 14 | 15 | 16 | # environment variables 17 | .env 18 | .env.production 19 | 20 | # macOS-specific files 21 | .DS_Store 22 | -------------------------------------------------------------------------------- /docs/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | base = "/" 3 | command = "pnpm -F @proj-airi/docs... run build" 4 | publish = "/docs/dist" 5 | 6 | [build.environment] 7 | NODE_VERSION = "23" 8 | 9 | # Plausible.io analytics 10 | # 11 | # Proxying Plausible through Netlify | Plausible docs 12 | # https://plausible.io/docs/proxy/guides/netlify 13 | 14 | [[redirects]] 15 | from = "/remote-assets/page-external-data/js/script.js" 16 | to = "https://plausible.io/js/script.js" 17 | status = 200 18 | force = true 19 | 20 | [[redirects]] 21 | from = "/api/v1/page-external-data/submit" 22 | to = "https://plausible.io/api/event" 23 | status = 200 24 | force = true 25 | 26 | [[headers]] 27 | for = "/site.webmanifest" 28 | 29 | [headers.values] 30 | Content-Type = "application/manifest+json" 31 | -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@proj-airi/docs", 3 | "type": "module", 4 | "private": true, 5 | "scripts": { 6 | "dev": "astro dev", 7 | "start": "astro dev", 8 | "build": "astro build", 9 | "build:base": "astro build --base /docs", 10 | "preview": "astro preview", 11 | "astro": "astro" 12 | }, 13 | "devDependencies": { 14 | "98.css": "^0.1.21", 15 | "@astrojs/starlight": "^0.34.3", 16 | "@fontsource/fusion-pixel-12px-proportional-sc": "^5.2.5", 17 | "@fontsource/quicksand": "^5.2.8", 18 | "astro": "^5.8.2", 19 | "astro-og-canvas": "^0.7.0", 20 | "sharp": "^0.34.2", 21 | "unocss": "^66.1.3", 22 | "vue": "^3.5.16" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /docs/pages/en/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/pages/en/index.md -------------------------------------------------------------------------------- /docs/pages/en/research/gaming/minecraft.md: -------------------------------------------------------------------------------- 1 | PrismarineJS/mineflayer: Create Minecraft bots with a powerful, stable, and high level JavaScript API. 2 | https://github.com/PrismarineJS/mineflayer 3 | 4 | mindcraft/src/agent/agent.js at main · kolbytn/mindcraft 5 | https://github.com/kolbytn/mindcraft/blob/main/src/agent/agent.js 6 | -------------------------------------------------------------------------------- /docs/pages/en/research/mocap.md: -------------------------------------------------------------------------------- 1 | - [freemocap/freemocap: Free Motion Capture for Everyone 💀✨](https://github.com/freemocap/freemocap) 2 | -------------------------------------------------------------------------------- /docs/pages/en/research/tts.md: -------------------------------------------------------------------------------- 1 | - [snakers4/silero-models](https://github.com/snakers4/silero-models#text-to-speech) 2 | - [voicevox-client/python](https://github.com/voicevox-client/python) 3 | - [VOICEVOX/voicevox_engine: 無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXの音声合成エンジン](https://github.com/VOICEVOX/voicevox_engine/tree/master) 4 | -------------------------------------------------------------------------------- /docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/public/logo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/logo-dark.png -------------------------------------------------------------------------------- /docs/public/logo-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/logo-light.png -------------------------------------------------------------------------------- /docs/public/maskable_icon_x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/maskable_icon_x192.png -------------------------------------------------------------------------------- /docs/public/maskable_icon_x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/maskable_icon_x512.png -------------------------------------------------------------------------------- /docs/public/readme-image-pc-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/readme-image-pc-preview.png -------------------------------------------------------------------------------- /docs/public/static/blog/DevLog-2025.03.10/customizable-theme-colors.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/static/blog/DevLog-2025.03.10/customizable-theme-colors.mp4 -------------------------------------------------------------------------------- /docs/public/static/blog/DevLog-2025.03.20/airi-demo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/static/blog/DevLog-2025.03.20/airi-demo.mp4 -------------------------------------------------------------------------------- /docs/public/static/blog/DevLog-2025.03.20/ashley-pitch-test.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/static/blog/DevLog-2025.03.20/ashley-pitch-test.mp3 -------------------------------------------------------------------------------- /docs/public/static/blog/DevLog-2025.03.20/histoire-first-look.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/static/blog/DevLog-2025.03.20/histoire-first-look.mp4 -------------------------------------------------------------------------------- /docs/public/static/blog/DevLog-2025.04.22/cursor-open-settings.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/static/blog/DevLog-2025.04.22/cursor-open-settings.mp4 -------------------------------------------------------------------------------- /docs/public/static/blog/DevLog-2025.04.28/airi-mcp-input-text.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/static/blog/DevLog-2025.04.28/airi-mcp-input-text.mp4 -------------------------------------------------------------------------------- /docs/public/static/blog/DevLog-2025.04.28/airi-mcp-settings.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/static/blog/DevLog-2025.04.28/airi-mcp-settings.mp4 -------------------------------------------------------------------------------- /docs/public/static/blog/DevLog-2025.05.16/webai-examples-demo.MP4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/static/blog/DevLog-2025.05.16/webai-examples-demo.MP4 -------------------------------------------------------------------------------- /docs/public/web-app-manifest-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/web-app-manifest-192x192.png -------------------------------------------------------------------------------- /docs/public/web-app-manifest-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/public/web-app-manifest-512x512.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-build-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-build-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-build-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-build-light.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-logo-v2-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-logo-v2-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-logo-v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-logo-v2.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-final.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v1.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v2.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v3.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v4.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/airi-logos-v5.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.05/animation-transitions.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.05/animation-transitions.gif -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.06/live-stream-layout-update.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.06/live-stream-layout-update.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.10/customizable-theme-colors.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.10/customizable-theme-colors.mp4 -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v1-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v1-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v1.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v2.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v3-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v3-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.10/new-ui-v3.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs-api-key.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs-api-key.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/elevenlabs.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-color-slider.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/histoire-logo.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/modules-i18n.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/modules-i18n.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/new-ui-v4-speech.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/settings-i18n.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/settings-i18n.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-gelnana-from-elpsycongrooblog.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-gelnana-from-elpsycongrooblog.webp -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-mayori.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.03.20/steins-gate-mayori.webp -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.06/awesome-ai-vtuber-logo-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.06/awesome-ai-vtuber-logo-light.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.06/character-card-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.06/character-card-detail.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.06/character-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.06/character-card.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.06/memory-decay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.06/memory-decay.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.06/memory-retrieval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.06/memory-retrieval.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.06/more-theme-colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.06/more-theme-colors.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.06/relu-sticker-wow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.06/relu-sticker-wow.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/memory-controler.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/memory-controler.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/memory-decay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/memory-decay.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/memory-driver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/memory-driver.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/memory-emotional-model.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/memory-emotional-model.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/memory-emotional-score.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/memory-emotional-score.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/memory-emotional-simulator.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/memory-emotional-simulator.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/memory-retrieval.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/memory-retrieval.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/review-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/review-1.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.14/review-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.14/review-2.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.22/develop-with-cursor.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.22/develop-with-cursor.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.04.28/airi-mcp-arch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.04.28/airi-mcp-arch.jpg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/character-card-menu-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/character-card-menu-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/character-card-menu-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/character-card-menu-light.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/character-card-settings-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/character-card-settings-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/character-card-settings-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/character-card-settings-light.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/character-card-showcase-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/character-card-showcase-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/character-card-showcase-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/character-card-showcase-light.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/demo-day-hangzhou-1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/demo-day-hangzhou-1.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/demo-day-hangzhou-2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/demo-day-hangzhou-2.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/demo-day-hangzhou-3.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/demo-day-hangzhou-3.jpeg -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/velin-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/velin-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/velin-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/velin-light.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/velin-playground-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/velin-playground-dark.png -------------------------------------------------------------------------------- /docs/src/assets/images/blog/DevLog-2025.05.16/velin-playground-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/docs/src/assets/images/blog/DevLog-2025.05.16/velin-playground-light.png -------------------------------------------------------------------------------- /docs/src/components/starlight/Head.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import Default from '@astrojs/starlight/components/Head.astro' 3 | 4 | const ogImageUrl = new URL(`/og/${Astro.locals.starlightRoute.id || 'index'}.webp`, Astro.site) 5 | --- 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/src/content.config.ts: -------------------------------------------------------------------------------- 1 | import { docsLoader } from '@astrojs/starlight/loaders' 2 | import { docsSchema } from '@astrojs/starlight/schema' 3 | import { defineCollection } from 'astro:content' 4 | 5 | export const collections = { 6 | docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }), 7 | } 8 | -------------------------------------------------------------------------------- /docs/src/content/docs/guides/about-ai-vtuber.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About AI VTuber 3 | --- 4 | 5 | LLM Generated documentation, but contains some useful resources about Japanese TTS modules and services: 6 | 7 | [【AI VTuber作り方ガイド】初心者でも簡単に自動生成する方法 – AI Front Trend](https://ai-front-trend.jp/how-to-make-ai-vtuber/) 8 | -------------------------------------------------------------------------------- /docs/src/content/docs/guides/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Getting Started 3 | description: Get to know the UI of Project AIRI 4 | --- 5 | 6 | For guides that help you understand how to contribute to this project, please refer to [Contributing](../references/contributing/guide/) page. 7 | 8 | For references Contributing help you design and improve the UI of Project AIRI, please refer to [Design Guidelines](../references/design-guidelines/) page. 9 | -------------------------------------------------------------------------------- /docs/src/content/docs/index.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Living cyber life like Neuro-sama 3 | description: LLM powered AI VTuber, built by the community, open source 4 | template: splash 5 | hero: 6 | tagline: A LLM powered AI VTuber like Neuro-sama, but Open Source 7 | image: 8 | dark: ../../assets/app-logo-dark.svg 9 | light: ../../assets/app-logo.svg 10 | actions: 11 | - text: Try it! 12 | link: https://airi.moeru.ai 13 | icon: external 14 | - text: Build together 15 | link: guides/ 16 | icon: right-arrow 17 | variant: minimal 18 | --- 19 | -------------------------------------------------------------------------------- /docs/src/content/docs/references/Design Guidelines/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overview 3 | description: Overview 4 | --- 5 | 6 | WIP. 7 | -------------------------------------------------------------------------------- /docs/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /docs/src/layouts/98.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import { getCollection, render } from 'astro:content'; 3 | import '98.css'; 4 | import '../styles/98-patched.css'; 5 | --- 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict", 3 | "include": [ 4 | ".astro/types.d.ts", 5 | "**/*" 6 | ], 7 | "exclude": [ 8 | "dist" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /docs/uno.config.ts: -------------------------------------------------------------------------------- 1 | import { 2 | defineConfig, 3 | presetAttributify, 4 | presetTypography, 5 | presetWind3, 6 | transformerDirectives, 7 | transformerVariantGroup, 8 | } from 'unocss' 9 | 10 | export default defineConfig({ 11 | presets: [ 12 | presetWind3(), 13 | presetAttributify(), 14 | presetTypography(), 15 | ], 16 | transformers: [ 17 | transformerDirectives({ 18 | applyVariable: ['--at-apply'], 19 | }), 20 | transformerVariantGroup(), 21 | ], 22 | }) 23 | -------------------------------------------------------------------------------- /eslint.config.ts: -------------------------------------------------------------------------------- 1 | import antfu from '@antfu/eslint-config' 2 | 3 | export default await antfu( 4 | { 5 | unocss: true, 6 | vue: true, 7 | ignores: [ 8 | '**/assets/js/**', 9 | '**/assets/live2d/models/**', 10 | 'apps/stage-tamagotchi/out/**', 11 | 'apps/stage-tamagotchi/src-tauri/**', 12 | 'crates/**', 13 | '**/drizzle/**', 14 | '**/.astro/**', 15 | ], 16 | rules: { 17 | 'import/order': [ 18 | 'error', 19 | { 20 | 'groups': [ 21 | ['type'], 22 | ['builtin', 'external'], 23 | ['parent', 'sibling', 'index'], 24 | ], 25 | 'newlines-between': 'always', 26 | }, 27 | ], 28 | }, 29 | }, 30 | ) 31 | -------------------------------------------------------------------------------- /packages/ccc/README.md: -------------------------------------------------------------------------------- 1 | # @proj-airi/ccc 2 | 3 | Create Character Card in a modular way. 4 | 5 | ## License 6 | 7 | [MIT](./LICENSE) 8 | -------------------------------------------------------------------------------- /packages/ccc/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@proj-airi/ccc", 3 | "type": "module", 4 | "private": true, 5 | "exports": { 6 | ".": { 7 | "types": "./dist/index.d.ts", 8 | "default": "./dist/index.mjs" 9 | } 10 | }, 11 | "module": "./dist/index.mjs", 12 | "types": "./dist/index.d.ts", 13 | "files": [ 14 | "dist" 15 | ], 16 | "scripts": { 17 | "stub": "unbuild --stub", 18 | "build": "unbuild", 19 | "test": "vitest run", 20 | "test:watch": "vitest", 21 | "lint": "eslint .", 22 | "lint:fix": "eslint --fix ." 23 | }, 24 | "dependencies": { 25 | "meta-png": "^1.0.6" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /packages/ccc/src/define/ext.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Moeru-AI Character Card Markdown Extension 3 | */ 4 | export interface Ext {} 5 | 6 | export const defineExt = (ext: Ext) => ext 7 | -------------------------------------------------------------------------------- /packages/ccc/src/define/index.ts: -------------------------------------------------------------------------------- 1 | export { type Card, defineCard } from './card' 2 | -------------------------------------------------------------------------------- /packages/ccc/src/define/types/mes_example.ts: -------------------------------------------------------------------------------- 1 | export type Message = `{{${'char' | 'user'}}}: ${string}` 2 | -------------------------------------------------------------------------------- /packages/ccc/src/export/apng.ts: -------------------------------------------------------------------------------- 1 | export function exportToAPNG() {} 2 | -------------------------------------------------------------------------------- /packages/ccc/src/export/index.ts: -------------------------------------------------------------------------------- 1 | export { exportToAPNG } from './apng' 2 | export { exportToJSON } from './json' 3 | export { exportToMD as exportToMarkdown, exportToMD } from './md' 4 | export { exportToPNG, exportToPNGBase64 } from './png' 5 | export type * as ccv3 from './types' 6 | -------------------------------------------------------------------------------- /packages/ccc/src/export/md.ts: -------------------------------------------------------------------------------- 1 | export function exportToMD() {} 2 | -------------------------------------------------------------------------------- /packages/ccc/src/export/types/assets.ts: -------------------------------------------------------------------------------- 1 | export type Assets = Asset[] 2 | 3 | export interface Asset { 4 | ext: string 5 | name: string 6 | type: string 7 | uri: string 8 | } 9 | -------------------------------------------------------------------------------- /packages/ccc/src/export/types/character_card_v3.ts: -------------------------------------------------------------------------------- 1 | import type { Data } from './data' 2 | 3 | export interface CharacterCardV3 { 4 | data: Data 5 | spec: 'chara_card_v3' 6 | spec_version: '3.0' 7 | } 8 | -------------------------------------------------------------------------------- /packages/ccc/src/export/types/extensions.ts: -------------------------------------------------------------------------------- 1 | export interface Extensions extends Record { 2 | /** 3 | * @default 4 | * ```ts 5 | * { 6 | * depth: 4, 7 | * prompt: '', 8 | * role: 'system', 9 | * } 10 | * ``` 11 | */ 12 | depth_prompt?: ExtensionsDepthPrompt 13 | /** @default `false` */ 14 | fav?: boolean 15 | /** @default `0.5` */ 16 | talkativeness?: number 17 | /** @default `undefined` */ 18 | world?: string 19 | } 20 | 21 | export interface ExtensionsDepthPrompt { 22 | depth: number 23 | prompt: string 24 | role: 'system' | ({} & string) 25 | } 26 | -------------------------------------------------------------------------------- /packages/ccc/src/export/types/index.ts: -------------------------------------------------------------------------------- 1 | export type { Asset, Assets } from './assets' 2 | export type { CharacterBook, CharacterBookEntry, CharacterBookEntryExtensions, CharacterBookExtensions } from './character_book' 3 | export type { CharacterCardV3 } from './character_card_v3' 4 | export type { Data, DataV2, DataV3 } from './data' 5 | export type { Extensions, ExtensionsDepthPrompt } from './extensions' 6 | -------------------------------------------------------------------------------- /packages/ccc/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './define' 2 | export * from './export' 3 | export * from './utils' 4 | -------------------------------------------------------------------------------- /packages/ccc/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | import * as chat from './chat' 2 | import * as markdown from './markdown' 3 | 4 | export { chat as c, chat, markdown, markdown as md } 5 | -------------------------------------------------------------------------------- /packages/ccc/src/utils/markdown.ts: -------------------------------------------------------------------------------- 1 | export const content = (...contents: string[]) => contents.join('\n\n') 2 | 3 | export const h = (length: 1 | 2 | 3 | 4 | 5 | 6, str: string) => `${'#'.repeat(length)} ${str}` 4 | 5 | export const p = (arr: string[], separator = ' ') => arr.join(separator) 6 | 7 | export const link = (content: string, href: string) => `[${content}](${href})` 8 | -------------------------------------------------------------------------------- /packages/ccc/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext" 6 | ], 7 | "module": "ESNext", 8 | "moduleResolution": "bundler", 9 | "esModuleInterop": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "isolatedModules": true, 12 | "verbatimModuleSyntax": true, 13 | "skipLibCheck": true 14 | }, 15 | "include": [ 16 | "src/**/*.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/drizzle-duckdb-wasm/README.md: -------------------------------------------------------------------------------- 1 | # We have moved 2 | 3 | Hello! This package has been moved to [proj-airi/duckdb-wasm](https://github.com/proj-airi/duckdb-wasm). You may keep tracking the updates of this package there. 4 | -------------------------------------------------------------------------------- /packages/duckdb-wasm/README.md: -------------------------------------------------------------------------------- 1 | # We have moved 2 | 3 | Hello! This package has been moved to [proj-airi/duckdb-wasm](https://github.com/proj-airi/duckdb-wasm). You may keep tracking the updates of this package there. 4 | -------------------------------------------------------------------------------- /packages/font-cjkfonts-allseto/build.config.ts: -------------------------------------------------------------------------------- 1 | import { defineBuildConfig } from 'unbuild' 2 | 3 | export default defineBuildConfig({ 4 | entries: [ 5 | { builder: 'copy', input: './src', outDir: './dist' }, 6 | ], 7 | declaration: false, 8 | sourcemap: false, 9 | clean: true, 10 | }) 11 | -------------------------------------------------------------------------------- /packages/font-cjkfonts-allseto/src/files/cjkFonts_allseto_v1.11.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/font-cjkfonts-allseto/src/files/cjkFonts_allseto_v1.11.ttf -------------------------------------------------------------------------------- /packages/font-cjkfonts-allseto/src/index.css: -------------------------------------------------------------------------------- 1 | /* cjkfonts_allseto_v1.11 */ 2 | @font-face { 3 | font-family: 'cjkfonts AllSeto'; 4 | font-style: normal; 5 | font-display: swap; 6 | src: url(./files/cjkFonts_allseto_v1.11.ttf) format('truetype'); 7 | } 8 | -------------------------------------------------------------------------------- /packages/font-cjkfonts-allseto/src/index.ts: -------------------------------------------------------------------------------- 1 | import './index.css' 2 | -------------------------------------------------------------------------------- /packages/font-cjkfonts-allseto/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext", 6 | "DOM", 7 | "DOM.Iterable" 8 | ], 9 | "module": "ESNext", 10 | "moduleResolution": "bundler", 11 | "types": [ 12 | "vite/client" 13 | ], 14 | "esModuleInterop": true, 15 | "forceConsistentCasingInFileNames": true, 16 | "isolatedModules": true, 17 | "verbatimModuleSyntax": true, 18 | "skipLibCheck": true 19 | }, 20 | "include": [ 21 | "src/**/*.ts", 22 | "src/**/*.d.ts", 23 | "src/**/*.mts", 24 | "src/**/*.vue" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /packages/font-departure-mono/build.config.ts: -------------------------------------------------------------------------------- 1 | import { defineBuildConfig } from 'unbuild' 2 | 3 | export default defineBuildConfig({ 4 | entries: [ 5 | { builder: 'copy', input: './src', outDir: './dist' }, 6 | ], 7 | declaration: false, 8 | sourcemap: false, 9 | clean: true, 10 | }) 11 | -------------------------------------------------------------------------------- /packages/font-departure-mono/src/files/DepartureMono-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/font-departure-mono/src/files/DepartureMono-Regular.otf -------------------------------------------------------------------------------- /packages/font-departure-mono/src/files/DepartureMono-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/font-departure-mono/src/files/DepartureMono-Regular.woff -------------------------------------------------------------------------------- /packages/font-departure-mono/src/files/DepartureMono-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/font-departure-mono/src/files/DepartureMono-Regular.woff2 -------------------------------------------------------------------------------- /packages/font-departure-mono/src/index.css: -------------------------------------------------------------------------------- 1 | /* Departure Mono Regular */ 2 | @font-face { 3 | font-family: 'Departure Mono'; 4 | font-style: normal; 5 | font-display: swap; 6 | src: url(./files/DepartureMono-Regular.otf) format('opentype'); 7 | } 8 | -------------------------------------------------------------------------------- /packages/font-departure-mono/src/index.ts: -------------------------------------------------------------------------------- 1 | import './index.css' 2 | -------------------------------------------------------------------------------- /packages/font-departure-mono/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext", 6 | "DOM", 7 | "DOM.Iterable" 8 | ], 9 | "module": "ESNext", 10 | "moduleResolution": "bundler", 11 | "types": [ 12 | "vite/client" 13 | ], 14 | "esModuleInterop": true, 15 | "forceConsistentCasingInFileNames": true, 16 | "isolatedModules": true, 17 | "verbatimModuleSyntax": true, 18 | "skipLibCheck": true 19 | }, 20 | "include": [ 21 | "src/**/*.ts", 22 | "src/**/*.d.ts", 23 | "src/**/*.mts", 24 | "src/**/*.vue" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /packages/font-xiaolai/build.config.ts: -------------------------------------------------------------------------------- 1 | import { defineBuildConfig } from 'unbuild' 2 | 3 | export default defineBuildConfig({ 4 | entries: [ 5 | { builder: 'copy', input: './src', outDir: './dist' }, 6 | ], 7 | declaration: false, 8 | sourcemap: false, 9 | clean: true, 10 | }) 11 | -------------------------------------------------------------------------------- /packages/font-xiaolai/src/files/XiaolaiSC-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/font-xiaolai/src/files/XiaolaiSC-Regular.ttf -------------------------------------------------------------------------------- /packages/font-xiaolai/src/index.css: -------------------------------------------------------------------------------- 1 | /* Xiaolai SC Regular */ 2 | @font-face { 3 | font-family: 'Xiaolai SC'; 4 | font-style: normal; 5 | font-display: swap; 6 | src: url(./files/XiaolaiSC-Regular.ttf) format('truetype'); 7 | } 8 | -------------------------------------------------------------------------------- /packages/font-xiaolai/src/index.ts: -------------------------------------------------------------------------------- 1 | import './index.css' 2 | -------------------------------------------------------------------------------- /packages/font-xiaolai/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext", 6 | "DOM", 7 | "DOM.Iterable" 8 | ], 9 | "module": "ESNext", 10 | "moduleResolution": "bundler", 11 | "types": [ 12 | "vite/client" 13 | ], 14 | "esModuleInterop": true, 15 | "forceConsistentCasingInFileNames": true, 16 | "isolatedModules": true, 17 | "verbatimModuleSyntax": true, 18 | "skipLibCheck": true 19 | }, 20 | "include": [ 21 | "src/**/*.ts", 22 | "src/**/*.d.ts", 23 | "src/**/*.mts", 24 | "src/**/*.vue" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /packages/memory-pgvector/src/index.ts: -------------------------------------------------------------------------------- 1 | import process from 'node:process' 2 | import { Format, LogLevel, setGlobalFormat, setGlobalLogLevel } from '@guiiai/logg' 3 | import { Client } from '@proj-airi/server-sdk' 4 | import { runUntilSignal } from '@proj-airi/server-sdk/utils/node' 5 | 6 | setGlobalFormat(Format.Pretty) 7 | setGlobalLogLevel(LogLevel.Log) 8 | 9 | async function main() { 10 | const client = new Client<{ connectionString: string }>({ 11 | name: 'memory-pgvector', 12 | }) 13 | 14 | client.onEvent('module:configure', (_event) => { 15 | }) 16 | 17 | runUntilSignal() 18 | 19 | process.on('SIGINT', () => client.close()) 20 | process.on('SIGTERM', () => client.close()) 21 | } 22 | 23 | main() 24 | -------------------------------------------------------------------------------- /packages/memory-pgvector/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext" 6 | ], 7 | "module": "ESNext", 8 | "moduleResolution": "bundler", 9 | "esModuleInterop": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "isolatedModules": true, 12 | "verbatimModuleSyntax": true, 13 | "skipLibCheck": true 14 | }, 15 | "include": [ 16 | "src/**/*.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/server-runtime/src/types/conn.ts: -------------------------------------------------------------------------------- 1 | export interface Peer { 2 | /** 3 | * Unique random [uuid v4](https://developer.mozilla.org/en-US/docs/Glossary/UUID) identifier for the peer. 4 | */ 5 | get id(): string 6 | send: (data: unknown, options?: { 7 | compress?: boolean 8 | }) => number | void | undefined 9 | } 10 | 11 | export interface NamedPeer { 12 | name: string 13 | index?: number 14 | peer: Peer 15 | } 16 | 17 | export interface AuthenticatedPeer extends NamedPeer { 18 | authenticated: boolean 19 | } 20 | -------------------------------------------------------------------------------- /packages/server-runtime/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './conn' 2 | -------------------------------------------------------------------------------- /packages/server-runtime/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext" 6 | ], 7 | "module": "ESNext", 8 | "moduleResolution": "bundler", 9 | "esModuleInterop": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "isolatedModules": true, 12 | "verbatimModuleSyntax": true, 13 | "skipLibCheck": true 14 | }, 15 | "include": [ 16 | "src/**/*.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/server-sdk/README.md: -------------------------------------------------------------------------------- 1 | # @proj-airi/server-sdk 2 | 3 | The SDK for cliet-side code to connect to the server-side components. 4 | 5 | ## Usage 6 | 7 | ```shell 8 | ni @proj-airi/server-sdk -D # from @antfu/ni, can be installed via `npm i -g @antfu/ni` 9 | pnpm i @proj-airi/server-sdk -D 10 | yarn i @proj-airi/server-sdk -D 11 | npm i @proj-airi/server-sdk -D 12 | ``` 13 | 14 | ```typescript 15 | import { Client } from '@proj-airi/server-sdk' 16 | 17 | const c = new Client({ name: 'your airi plugin' }) 18 | ``` 19 | 20 | ## License 21 | 22 | [MIT](../../LICENSE) 23 | -------------------------------------------------------------------------------- /packages/server-sdk/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './client' 2 | -------------------------------------------------------------------------------- /packages/server-sdk/src/utils/concurrency.ts: -------------------------------------------------------------------------------- 1 | export function sleep(ms: number) { 2 | return new Promise(resolve => setTimeout(resolve, ms)) 3 | } 4 | -------------------------------------------------------------------------------- /packages/server-sdk/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './concurrency' 2 | -------------------------------------------------------------------------------- /packages/server-sdk/src/utils/node/index.ts: -------------------------------------------------------------------------------- 1 | export * from './process' 2 | -------------------------------------------------------------------------------- /packages/server-sdk/src/utils/node/process.ts: -------------------------------------------------------------------------------- 1 | import process from 'node:process' 2 | 3 | let running = true 4 | 5 | function killProcess() { 6 | running = false 7 | } 8 | 9 | process.on('SIGTERM', () => { 10 | killProcess() 11 | }) 12 | process.on('SIGINT', () => { 13 | killProcess() 14 | }) 15 | process.on('uncaughtException', (e) => { 16 | console.error(e) 17 | killProcess() 18 | }) 19 | 20 | export function runUntilSignal() { 21 | setTimeout(() => { 22 | if (running) 23 | runUntilSignal() 24 | }, 10) 25 | } 26 | -------------------------------------------------------------------------------- /packages/server-sdk/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext" 6 | ], 7 | "module": "ESNext", 8 | "moduleResolution": "bundler", 9 | "esModuleInterop": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "isolatedModules": true, 12 | "verbatimModuleSyntax": true, 13 | "skipLibCheck": true 14 | }, 15 | "include": [ 16 | "src/**/*.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/server-shared/README.md: -------------------------------------------------------------------------------- 1 | # @proj-airi/server-shared 2 | 3 | The shared type definitions for all server-side packages of Project AIRI. 4 | 5 | ## Usage 6 | 7 | ```shell 8 | ni @proj-airi/server-shared -D # from @antfu/ni, can be installed via `npm i -g @antfu/ni` 9 | pnpm i @proj-airi/server-shared -D 10 | yarn i @proj-airi/server-shared -D 11 | npm i @proj-airi/server-shared -D 12 | ``` 13 | 14 | ```typescript 15 | import type { WebSocketEvents } from '@proj-airi/server-shared' 16 | ``` 17 | 18 | ## License 19 | 20 | [MIT](../../LICENSE) 21 | -------------------------------------------------------------------------------- /packages/server-shared/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/server-shared/src/index.ts -------------------------------------------------------------------------------- /packages/server-shared/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './websocket' 2 | -------------------------------------------------------------------------------- /packages/server-shared/src/types/websocket/index.ts: -------------------------------------------------------------------------------- 1 | export * from './events' 2 | -------------------------------------------------------------------------------- /packages/server-shared/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "lib": [ 5 | "ESNext" 6 | ], 7 | "module": "ESNext", 8 | "moduleResolution": "bundler", 9 | "esModuleInterop": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "isolatedModules": true, 12 | "verbatimModuleSyntax": true, 13 | "skipLibCheck": true 14 | }, 15 | "include": [ 16 | "src/**/*.ts" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/stage-ui/README.md: -------------------------------------------------------------------------------- 1 | # Stage UI 2 | 3 | Shared core for stage 4 | 5 | ## Histoire (UI storyboard) 6 | 7 | https://histoire.dev/ 8 | 9 | ``` 10 | pnpm -F @proj-airi/stage-ui run story:dev 11 | ``` 12 | 13 | ### Project structure 14 | 15 | 1. If a story is bound to a specific component, it can be placed beside the component in the `src` folder. e.g., `MyComponent.story.vue` 16 | 2. If a story is not bound to a specific component, then it should be placed in the `stories` folder. e.g., `MyStory.story.vue` 17 | -------------------------------------------------------------------------------- /packages/stage-ui/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/stage-ui/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/stage-ui/public/apple-touch-icon.png -------------------------------------------------------------------------------- /packages/stage-ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/stage-ui/public/favicon.ico -------------------------------------------------------------------------------- /packages/stage-ui/public/maskable_icon_x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/stage-ui/public/maskable_icon_x192.png -------------------------------------------------------------------------------- /packages/stage-ui/public/maskable_icon_x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/stage-ui/public/maskable_icon_x512.png -------------------------------------------------------------------------------- /packages/stage-ui/public/web-app-manifest-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/stage-ui/public/web-app-manifest-192x192.png -------------------------------------------------------------------------------- /packages/stage-ui/public/web-app-manifest-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/moeru-ai/airi/39160badaacd097150dc891ec0db6b1a8c7d1d35/packages/stage-ui/public/web-app-manifest-512x512.png -------------------------------------------------------------------------------- /packages/stage-ui/src/components/Button/index.ts: -------------------------------------------------------------------------------- 1 | export { default as Button } from './Button.vue' 2 | -------------------------------------------------------------------------------- /packages/stage-ui/src/components/Form/Input/InputKeyValue.story.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 27 | -------------------------------------------------------------------------------- /packages/stage-ui/src/components/Form/Textarea/Basic.story.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 22 | -------------------------------------------------------------------------------- /packages/stage-ui/src/components/Form/Textarea/Textarea.story.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 |