.dockerignore
.env.example
.gitignore
.gitlab-ci.yml
CLAUDE.md
Dockerfile
README.md
TECHNICAL_DESIGN.md
__init__.py
__main__.py
curriculum.py
firme_logo_purple.png
package-lock.json
prompts.py
pyproject.toml
requirements.txt
tutor.py
./__init__.py
./__main__.py
./curriculum.py
./firme_logo_purple.png
./prompts.py
./tutor.py
./db/__init__.py
./db/engine.py
./db/models.py
./multimodal/__init__.py
./multimodal/modes.py
./typing_game/__init__.py
./typing_game/keyboard.py
./typing_game/scoring.py
./typing_game/sentences.py
./web/__init__.py
./web/app.py
./web/config.py
./web/dependencies.py
./web/dist/favicon.svg
./web/dist/firme_logo_purple.png
./web/dist/icons.svg
./web/dist/index.html
./web/dist/assets/arc-CMkKFqXL.js
./web/dist/assets/architecture-7EHR7CIX-CeT3YNNI.js
./web/dist/assets/architectureDiagram-3BPJPVTR-BW3_Q5dD.js
./web/dist/assets/blockDiagram-GPEHLZMM-BJqgixu2.js
./web/dist/assets/c4Diagram-AAUBKEIU-DLcQFuSZ.js
./web/dist/assets/channel-ZG8_s615.js
./web/dist/assets/chunk-2J33WTMH-BRaRZtqi.js
./web/dist/assets/chunk-4BX2VUAB-BAyvwiSX.js
./web/dist/assets/chunk-55IACEB6-C-Pk824y.js
./web/dist/assets/chunk-727SXJPM-ChPbJ4Sw.js
./web/dist/assets/chunk-AQP2D5EJ-Dz4ZHE2K.js
./web/dist/assets/chunk-FMBD7UC4-PyoHc2IQ.js
./web/dist/assets/chunk-ND2GUHAM-B9gkInTL.js
./web/dist/assets/chunk-QZHKN3VN-CXjZoM6v.js
./web/dist/assets/classDiagram-4FO5ZUOK-lV8yHJng.js
./web/dist/assets/classDiagram-v2-Q7XG4LA2-lV8yHJng.js
./web/dist/assets/cose-bilkent-S5V4N54A-BaEvXRcZ.js
./web/dist/assets/cytoscape.esm-FqbQrHcz.js
./web/dist/assets/dagre-BM42HDAG-0QHN0I_c.js
./web/dist/assets/dagre-Bx709z4p.js
./web/dist/assets/defaultLocale-C8Fc0cco.js
./web/dist/assets/diagram-2AECGRRQ-CcY0-Xc4.js
./web/dist/assets/diagram-5GNKFQAL-CbSkkwLJ.js
./web/dist/assets/diagram-KO2AKTUF-BCowA81A.js
./web/dist/assets/diagram-LMA3HP47-G5DoGsoa.js
./web/dist/assets/diagram-OG6HWLK6-BeE8UhHX.js
./web/dist/assets/erDiagram-TEJ5UH35-D0RWhlD_.js
./web/dist/assets/eventmodeling-FCH6USID-CEY92nI5.js
./web/dist/assets/flowDiagram-I6XJVG4X-UwUnG4VH.js
./web/dist/assets/ganttDiagram-6RSMTGT7-BYJMv5FH.js
./web/dist/assets/gitGraph-WXDBUCRP-yPDE1Z5U.js
./web/dist/assets/gitGraphDiagram-PVQCEYII-CgM83UJ-.js
./web/dist/assets/graphlib-B8gBHxth.js
./web/dist/assets/index-5enmlxH9.css
./web/dist/assets/index-PksRXx_q.js
./web/dist/assets/info-J43DQDTF-yxXBAwVN.js
./web/dist/assets/infoDiagram-5YYISTIA-EZfXkFM7.js
./web/dist/assets/init-D6jRqBbL.js
./web/dist/assets/ishikawaDiagram-YF4QCWOH-CEk1Osck.js
./web/dist/assets/journeyDiagram-JHISSGLW-Dvhbwbuv.js
./web/dist/assets/kanban-definition-UN3LZRKU-B7NeHTp0.js
./web/dist/assets/katex-Vhh-h91d.js
./web/dist/assets/linear-CeXrm_7P.js
./web/dist/assets/mermaid-parser.core-BXR2ZJRc.js
./web/dist/assets/mindmap-definition-RKZ34NQL-BVvoECbE.js
./web/dist/assets/ordinal-hYBb2elL.js
./web/dist/assets/packet-YPE3B663-BCrDDU5g.js
./web/dist/assets/pie-LRSECV5Y-DgT-4MdS.js
./web/dist/assets/pieDiagram-4H26LBE5-CwxTcwjA.js
./web/dist/assets/quadrantDiagram-W4KKPZXB-Dw3QVDZw.js
./web/dist/assets/radar-GUYGQ44K-BjBcVFgw.js
./web/dist/assets/requirementDiagram-4Y6WPE33-C7Gw7SSG.js
./web/dist/assets/sankeyDiagram-5OEKKPKP-BZefY_oF.js
./web/dist/assets/sequenceDiagram-3UESZ5HK-DxOjhU2X.js
./web/dist/assets/stateDiagram-AJRCARHV-DSpLgYQp.js
./web/dist/assets/stateDiagram-v2-BHNVJYJU-DtZq9lOU.js
./web/dist/assets/timeline-definition-PNZ67QCA-vNQZewVK.js
./web/dist/assets/treeView-BLDUP644-Bp3blmCj.js
./web/dist/assets/treemap-LRROVOQU-CGcgnT9k.js
./web/dist/assets/vennDiagram-CIIHVFJN-CXF-J0La.js
./web/dist/assets/wardley-L42UT6IY-DfyqjAMg.js
./web/dist/assets/wardleyDiagram-YWT4CUSO-D5R2ZNe1.js
./web/dist/assets/xychartDiagram-2RQKCTM6-CqH0T4Kq.js
./web/routers/__init__.py
./web/routers/auth.py
./web/routers/chat.py
./web/routers/generate.py
./web/routers/progress.py
./web/routers/typing_game.py
db/__init__.py
db/engine.py
db/models.py
firme_tutor.egg-info/PKG-INFO
firme_tutor.egg-info/SOURCES.txt
firme_tutor.egg-info/dependency_links.txt
firme_tutor.egg-info/entry_points.txt
firme_tutor.egg-info/requires.txt
firme_tutor.egg-info/top_level.txt
frontend/.gitignore
frontend/README.md
frontend/eslint.config.js
frontend/index.html
frontend/package-lock.json
frontend/package.json
frontend/tsconfig.app.json
frontend/tsconfig.json
frontend/tsconfig.node.json
frontend/vite.config.ts
frontend/voice-tester.html
frontend/public/favicon.svg
frontend/public/firme_logo_purple.png
frontend/public/icons.svg
frontend/src/App.tsx
frontend/src/main.tsx
frontend/src/api/auth.ts
frontend/src/api/chat.ts
frontend/src/api/client.ts
frontend/src/api/progress.ts
frontend/src/api/typing.ts
frontend/src/components/Chat/ChatView.module.css
frontend/src/components/Chat/ChatView.tsx
frontend/src/components/Chat/MermaidBlock.tsx
frontend/src/components/Leaderboard/LeaderboardView.module.css
frontend/src/components/Leaderboard/LeaderboardView.tsx
frontend/src/components/Progress/ProgressView.module.css
frontend/src/components/Progress/ProgressView.tsx
frontend/src/components/TypingGame/Keyboard.module.css
frontend/src/components/TypingGame/Keyboard.tsx
frontend/src/components/TypingGame/ResultsOverlay.module.css
frontend/src/components/TypingGame/ResultsOverlay.tsx
frontend/src/components/TypingGame/SentenceDisplay.module.css
frontend/src/components/TypingGame/SentenceDisplay.tsx
frontend/src/components/TypingGame/TypingView.module.css
frontend/src/components/TypingGame/TypingView.tsx
frontend/src/components/UsernameEntry/UsernameEntry.module.css
frontend/src/components/UsernameEntry/UsernameEntry.tsx
frontend/src/components/ui/Nav.module.css
frontend/src/components/ui/Nav.tsx
frontend/src/components/ui/TutorIcon.tsx
frontend/src/components/ui/Widget.module.css
frontend/src/components/ui/Widget.tsx
frontend/src/hooks/useTTS.ts
frontend/src/hooks/useTypingEngine.ts
frontend/src/styles/global.css
multimodal/__init__.py
multimodal/modes.py
tests/conftest.py
tests/test_pipeline.py
typing_game/__init__.py
typing_game/keyboard.py
typing_game/scoring.py
typing_game/sentences.py
web/__init__.py
web/app.py
web/config.py
web/dependencies.py
web/routers/__init__.py
web/routers/auth.py
web/routers/chat.py
web/routers/generate.py
web/routers/progress.py
web/routers/typing_game.py