* Implement OpenRouter TTS * Implement suggestions from Gemini code review * Extract OpenRouter speech logic outside of providers.ts * Address Gemini's comments * break loop properly * refactor to match existing pattern --------- Co-authored-by-agent: Cursor
Stage UI
Shared core for stage
Histoire (UI storyboard)
pnpm -F @proj-airi/stage-ui run story:dev
Project structure
- If a story is bound to a specific component, it can be placed beside the component in the
srcfolder. e.g.,MyComponent.story.vue - If a story is not bound to a specific component, then it should be placed in the
storiesfolder. e.g.,MyStory.story.vue