README.md
__init__.py
__main__.py
curriculum.py
firme_logo_purple.png
prompts.py
pyproject.toml
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-B8bv5B3N.js
./web/dist/assets/arc-hcHIXwUj.js
./web/dist/assets/architecture-7EHR7CIX-CfWJRDbS.js
./web/dist/assets/architecture-7EHR7CIX-D7wqdsRm.js
./web/dist/assets/architectureDiagram-3BPJPVTR-CjMDtn76.js
./web/dist/assets/architectureDiagram-3BPJPVTR-DP_FUTYE.js
./web/dist/assets/blockDiagram-GPEHLZMM-BwUytfp7.js
./web/dist/assets/blockDiagram-GPEHLZMM-aYsXAwRW.js
./web/dist/assets/c4Diagram-AAUBKEIU-Bp77wM0V.js
./web/dist/assets/c4Diagram-AAUBKEIU-H-Jn5xGT.js
./web/dist/assets/channel-D3zhJf12.js
./web/dist/assets/channel-DUET4myG.js
./web/dist/assets/chunk-2J33WTMH-B2JfwxXI.js
./web/dist/assets/chunk-2J33WTMH-CmbDIqse.js
./web/dist/assets/chunk-4BX2VUAB-CiRJvBSS.js
./web/dist/assets/chunk-4BX2VUAB-DFJ9PiVX.js
./web/dist/assets/chunk-55IACEB6-D3HDZt19.js
./web/dist/assets/chunk-55IACEB6-DDqBhfOL.js
./web/dist/assets/chunk-727SXJPM-DOKYRhEn.js
./web/dist/assets/chunk-727SXJPM-dQ45P2iw.js
./web/dist/assets/chunk-AQP2D5EJ-Bee_W2_Y.js
./web/dist/assets/chunk-AQP2D5EJ-f6mrCGpl.js
./web/dist/assets/chunk-FMBD7UC4-BlVqdx0u.js
./web/dist/assets/chunk-FMBD7UC4-CsLkUbYG.js
./web/dist/assets/chunk-ND2GUHAM-BE3EMr9M.js
./web/dist/assets/chunk-ND2GUHAM-DPCZFRwg.js
./web/dist/assets/chunk-QZHKN3VN-C2EmNhuC.js
./web/dist/assets/chunk-QZHKN3VN-CsETkrdx.js
./web/dist/assets/classDiagram-4FO5ZUOK-6z0PHbLf.js
./web/dist/assets/classDiagram-4FO5ZUOK-_VQcyODs.js
./web/dist/assets/classDiagram-v2-Q7XG4LA2-6z0PHbLf.js
./web/dist/assets/classDiagram-v2-Q7XG4LA2-_VQcyODs.js
./web/dist/assets/cose-bilkent-S5V4N54A-DDbXV7Jg.js
./web/dist/assets/cose-bilkent-S5V4N54A-b1UkYwjp.js
./web/dist/assets/cytoscape.esm-FqbQrHcz.js
./web/dist/assets/dagre-BM42HDAG-BsNa8bKt.js
./web/dist/assets/dagre-BM42HDAG-Sj4pza0E.js
./web/dist/assets/dagre-Bx709z4p.js
./web/dist/assets/defaultLocale-C8Fc0cco.js
./web/dist/assets/diagram-2AECGRRQ-BG1EVSbc.js
./web/dist/assets/diagram-2AECGRRQ-BKbqr1fn.js
./web/dist/assets/diagram-5GNKFQAL-BNip8_sK.js
./web/dist/assets/diagram-5GNKFQAL-zB-3Fy6R.js
./web/dist/assets/diagram-KO2AKTUF-BjYQE0x7.js
./web/dist/assets/diagram-KO2AKTUF-_PS8ucO2.js
./web/dist/assets/diagram-LMA3HP47-CwrlWP0x.js
./web/dist/assets/diagram-LMA3HP47-DthtUw5L.js
./web/dist/assets/diagram-OG6HWLK6-DVwpvzfb.js
./web/dist/assets/diagram-OG6HWLK6-qEpybCEy.js
./web/dist/assets/erDiagram-TEJ5UH35-ClFzIpuj.js
./web/dist/assets/erDiagram-TEJ5UH35-Hd0qiO8b.js
./web/dist/assets/eventmodeling-FCH6USID--Mtgjm_v.js
./web/dist/assets/eventmodeling-FCH6USID-D_pZo8i_.js
./web/dist/assets/flowDiagram-I6XJVG4X-Ig0KZKOS.js
./web/dist/assets/flowDiagram-I6XJVG4X-um4xeAwx.js
./web/dist/assets/ganttDiagram-6RSMTGT7-BKf9wbVM.js
./web/dist/assets/ganttDiagram-6RSMTGT7-C0geFI1t.js
./web/dist/assets/gitGraph-WXDBUCRP-CX6Fr11a.js
./web/dist/assets/gitGraph-WXDBUCRP-D6XLrz9f.js
./web/dist/assets/gitGraphDiagram-PVQCEYII-B9ranWDI.js
./web/dist/assets/gitGraphDiagram-PVQCEYII-CvumOUae.js
./web/dist/assets/graphlib-B8gBHxth.js
./web/dist/assets/index-BTb5-sb9.js
./web/dist/assets/index-BVsG-zyT.css
./web/dist/assets/index-BsQieKqg.js
./web/dist/assets/index-DzgywBd5.css
./web/dist/assets/info-J43DQDTF-BIlDfkV-.js
./web/dist/assets/info-J43DQDTF-Cl5xrj6u.js
./web/dist/assets/infoDiagram-5YYISTIA-LFNqA-Ef.js
./web/dist/assets/infoDiagram-5YYISTIA-gh4R7xRA.js
./web/dist/assets/init-D6jRqBbL.js
./web/dist/assets/ishikawaDiagram-YF4QCWOH-Cm_oPlFP.js
./web/dist/assets/ishikawaDiagram-YF4QCWOH-CxggAMWN.js
./web/dist/assets/journeyDiagram-JHISSGLW-CX0FSEjo.js
./web/dist/assets/journeyDiagram-JHISSGLW-D7I1V3cu.js
./web/dist/assets/kanban-definition-UN3LZRKU-ABQNt4rG.js
./web/dist/assets/kanban-definition-UN3LZRKU-C5n2jO9q.js
./web/dist/assets/katex-Vhh-h91d.js
./web/dist/assets/linear-CD4Oo35k.js
./web/dist/assets/linear-CtNFkBk8.js
./web/dist/assets/mermaid-parser.core-78hM4Y96.js
./web/dist/assets/mermaid-parser.core-BkDxsFuj.js
./web/dist/assets/mindmap-definition-RKZ34NQL-C1pGZ1LG.js
./web/dist/assets/mindmap-definition-RKZ34NQL-GGLqgti3.js
./web/dist/assets/ordinal-hYBb2elL.js
./web/dist/assets/packet-YPE3B663-B8-1g1QF.js
./web/dist/assets/packet-YPE3B663-DqtUQHPE.js
./web/dist/assets/pie-LRSECV5Y-BPuzttrq.js
./web/dist/assets/pie-LRSECV5Y-DwwS2nmL.js
./web/dist/assets/pieDiagram-4H26LBE5-DtT_nRRn.js
./web/dist/assets/pieDiagram-4H26LBE5-LYEy49q8.js
./web/dist/assets/quadrantDiagram-W4KKPZXB-Bvd1jbhg.js
./web/dist/assets/quadrantDiagram-W4KKPZXB-D1ov-gdL.js
./web/dist/assets/radar-GUYGQ44K-DXtzkNxC.js
./web/dist/assets/radar-GUYGQ44K-TjLlmiCU.js
./web/dist/assets/requirementDiagram-4Y6WPE33-B1VZI8BL.js
./web/dist/assets/requirementDiagram-4Y6WPE33-CCfFYSqM.js
./web/dist/assets/sankeyDiagram-5OEKKPKP-BztZ_EFc.js
./web/dist/assets/sankeyDiagram-5OEKKPKP-CXb7EmOJ.js
./web/dist/assets/sequenceDiagram-3UESZ5HK-QX4NdcK_.js
./web/dist/assets/sequenceDiagram-3UESZ5HK-Sp2tvkoT.js
./web/dist/assets/stateDiagram-AJRCARHV-CpsWzZ9I.js
./web/dist/assets/stateDiagram-AJRCARHV-DIOdasDM.js
./web/dist/assets/stateDiagram-v2-BHNVJYJU-Jt9E-Zt_.js
./web/dist/assets/stateDiagram-v2-BHNVJYJU-LfyaYy96.js
./web/dist/assets/timeline-definition-PNZ67QCA-D0_o57jX.js
./web/dist/assets/timeline-definition-PNZ67QCA-Ue-hnFjk.js
./web/dist/assets/treeView-BLDUP644-BueViHYx.js
./web/dist/assets/treeView-BLDUP644-ZtLGkb3B.js
./web/dist/assets/treemap-LRROVOQU-BBsbNAZ6.js
./web/dist/assets/treemap-LRROVOQU-Cm4jfzQA.js
./web/dist/assets/vennDiagram-CIIHVFJN-DihoR2xs.js
./web/dist/assets/vennDiagram-CIIHVFJN-NQ-U2Ihc.js
./web/dist/assets/wardley-L42UT6IY-mqWJpr_T.js
./web/dist/assets/wardley-L42UT6IY-nzZZ6F8x.js
./web/dist/assets/wardleyDiagram-YWT4CUSO-BXAvaj3_.js
./web/dist/assets/wardleyDiagram-YWT4CUSO-ChvZuWwP.js
./web/dist/assets/xychartDiagram-2RQKCTM6-BaC7fSuu.js
./web/dist/assets/xychartDiagram-2RQKCTM6-BvyHx8AJ.js
./web/routers/__init__.py
./web/routers/auth.py
./web/routers/chat.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/requires.txt
firme_tutor.egg-info/top_level.txt
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-B8bv5B3N.js
web/dist/assets/arc-hcHIXwUj.js
web/dist/assets/architecture-7EHR7CIX-CfWJRDbS.js
web/dist/assets/architecture-7EHR7CIX-D7wqdsRm.js
web/dist/assets/architectureDiagram-3BPJPVTR-CjMDtn76.js
web/dist/assets/architectureDiagram-3BPJPVTR-DP_FUTYE.js
web/dist/assets/blockDiagram-GPEHLZMM-BwUytfp7.js
web/dist/assets/blockDiagram-GPEHLZMM-aYsXAwRW.js
web/dist/assets/c4Diagram-AAUBKEIU-Bp77wM0V.js
web/dist/assets/c4Diagram-AAUBKEIU-H-Jn5xGT.js
web/dist/assets/channel-D3zhJf12.js
web/dist/assets/channel-DUET4myG.js
web/dist/assets/chunk-2J33WTMH-B2JfwxXI.js
web/dist/assets/chunk-2J33WTMH-CmbDIqse.js
web/dist/assets/chunk-4BX2VUAB-CiRJvBSS.js
web/dist/assets/chunk-4BX2VUAB-DFJ9PiVX.js
web/dist/assets/chunk-55IACEB6-D3HDZt19.js
web/dist/assets/chunk-55IACEB6-DDqBhfOL.js
web/dist/assets/chunk-727SXJPM-DOKYRhEn.js
web/dist/assets/chunk-727SXJPM-dQ45P2iw.js
web/dist/assets/chunk-AQP2D5EJ-Bee_W2_Y.js
web/dist/assets/chunk-AQP2D5EJ-f6mrCGpl.js
web/dist/assets/chunk-FMBD7UC4-BlVqdx0u.js
web/dist/assets/chunk-FMBD7UC4-CsLkUbYG.js
web/dist/assets/chunk-ND2GUHAM-BE3EMr9M.js
web/dist/assets/chunk-ND2GUHAM-DPCZFRwg.js
web/dist/assets/chunk-QZHKN3VN-C2EmNhuC.js
web/dist/assets/chunk-QZHKN3VN-CsETkrdx.js
web/dist/assets/classDiagram-4FO5ZUOK-6z0PHbLf.js
web/dist/assets/classDiagram-4FO5ZUOK-_VQcyODs.js
web/dist/assets/classDiagram-v2-Q7XG4LA2-6z0PHbLf.js
web/dist/assets/classDiagram-v2-Q7XG4LA2-_VQcyODs.js
web/dist/assets/cose-bilkent-S5V4N54A-DDbXV7Jg.js
web/dist/assets/cose-bilkent-S5V4N54A-b1UkYwjp.js
web/dist/assets/cytoscape.esm-FqbQrHcz.js
web/dist/assets/dagre-BM42HDAG-BsNa8bKt.js
web/dist/assets/dagre-BM42HDAG-Sj4pza0E.js
web/dist/assets/dagre-Bx709z4p.js
web/dist/assets/defaultLocale-C8Fc0cco.js
web/dist/assets/diagram-2AECGRRQ-BG1EVSbc.js
web/dist/assets/diagram-2AECGRRQ-BKbqr1fn.js
web/dist/assets/diagram-5GNKFQAL-BNip8_sK.js
web/dist/assets/diagram-5GNKFQAL-zB-3Fy6R.js
web/dist/assets/diagram-KO2AKTUF-BjYQE0x7.js
web/dist/assets/diagram-KO2AKTUF-_PS8ucO2.js
web/dist/assets/diagram-LMA3HP47-CwrlWP0x.js
web/dist/assets/diagram-LMA3HP47-DthtUw5L.js
web/dist/assets/diagram-OG6HWLK6-DVwpvzfb.js
web/dist/assets/diagram-OG6HWLK6-qEpybCEy.js
web/dist/assets/erDiagram-TEJ5UH35-ClFzIpuj.js
web/dist/assets/erDiagram-TEJ5UH35-Hd0qiO8b.js
web/dist/assets/eventmodeling-FCH6USID--Mtgjm_v.js
web/dist/assets/eventmodeling-FCH6USID-D_pZo8i_.js
web/dist/assets/flowDiagram-I6XJVG4X-Ig0KZKOS.js
web/dist/assets/flowDiagram-I6XJVG4X-um4xeAwx.js
web/dist/assets/ganttDiagram-6RSMTGT7-BKf9wbVM.js
web/dist/assets/ganttDiagram-6RSMTGT7-C0geFI1t.js
web/dist/assets/gitGraph-WXDBUCRP-CX6Fr11a.js
web/dist/assets/gitGraph-WXDBUCRP-D6XLrz9f.js
web/dist/assets/gitGraphDiagram-PVQCEYII-B9ranWDI.js
web/dist/assets/gitGraphDiagram-PVQCEYII-CvumOUae.js
web/dist/assets/graphlib-B8gBHxth.js
web/dist/assets/index-BTb5-sb9.js
web/dist/assets/index-BVsG-zyT.css
web/dist/assets/index-BsQieKqg.js
web/dist/assets/index-DzgywBd5.css
web/dist/assets/info-J43DQDTF-BIlDfkV-.js
web/dist/assets/info-J43DQDTF-Cl5xrj6u.js
web/dist/assets/infoDiagram-5YYISTIA-LFNqA-Ef.js
web/dist/assets/infoDiagram-5YYISTIA-gh4R7xRA.js
web/dist/assets/init-D6jRqBbL.js
web/dist/assets/ishikawaDiagram-YF4QCWOH-Cm_oPlFP.js
web/dist/assets/ishikawaDiagram-YF4QCWOH-CxggAMWN.js
web/dist/assets/journeyDiagram-JHISSGLW-CX0FSEjo.js
web/dist/assets/journeyDiagram-JHISSGLW-D7I1V3cu.js
web/dist/assets/kanban-definition-UN3LZRKU-ABQNt4rG.js
web/dist/assets/kanban-definition-UN3LZRKU-C5n2jO9q.js
web/dist/assets/katex-Vhh-h91d.js
web/dist/assets/linear-CD4Oo35k.js
web/dist/assets/linear-CtNFkBk8.js
web/dist/assets/mermaid-parser.core-78hM4Y96.js
web/dist/assets/mermaid-parser.core-BkDxsFuj.js
web/dist/assets/mindmap-definition-RKZ34NQL-C1pGZ1LG.js
web/dist/assets/mindmap-definition-RKZ34NQL-GGLqgti3.js
web/dist/assets/ordinal-hYBb2elL.js
web/dist/assets/packet-YPE3B663-B8-1g1QF.js
web/dist/assets/packet-YPE3B663-DqtUQHPE.js
web/dist/assets/pie-LRSECV5Y-BPuzttrq.js
web/dist/assets/pie-LRSECV5Y-DwwS2nmL.js
web/dist/assets/pieDiagram-4H26LBE5-DtT_nRRn.js
web/dist/assets/pieDiagram-4H26LBE5-LYEy49q8.js
web/dist/assets/quadrantDiagram-W4KKPZXB-Bvd1jbhg.js
web/dist/assets/quadrantDiagram-W4KKPZXB-D1ov-gdL.js
web/dist/assets/radar-GUYGQ44K-DXtzkNxC.js
web/dist/assets/radar-GUYGQ44K-TjLlmiCU.js
web/dist/assets/requirementDiagram-4Y6WPE33-B1VZI8BL.js
web/dist/assets/requirementDiagram-4Y6WPE33-CCfFYSqM.js
web/dist/assets/sankeyDiagram-5OEKKPKP-BztZ_EFc.js
web/dist/assets/sankeyDiagram-5OEKKPKP-CXb7EmOJ.js
web/dist/assets/sequenceDiagram-3UESZ5HK-QX4NdcK_.js
web/dist/assets/sequenceDiagram-3UESZ5HK-Sp2tvkoT.js
web/dist/assets/stateDiagram-AJRCARHV-CpsWzZ9I.js
web/dist/assets/stateDiagram-AJRCARHV-DIOdasDM.js
web/dist/assets/stateDiagram-v2-BHNVJYJU-Jt9E-Zt_.js
web/dist/assets/stateDiagram-v2-BHNVJYJU-LfyaYy96.js
web/dist/assets/timeline-definition-PNZ67QCA-D0_o57jX.js
web/dist/assets/timeline-definition-PNZ67QCA-Ue-hnFjk.js
web/dist/assets/treeView-BLDUP644-BueViHYx.js
web/dist/assets/treeView-BLDUP644-ZtLGkb3B.js
web/dist/assets/treemap-LRROVOQU-BBsbNAZ6.js
web/dist/assets/treemap-LRROVOQU-Cm4jfzQA.js
web/dist/assets/vennDiagram-CIIHVFJN-DihoR2xs.js
web/dist/assets/vennDiagram-CIIHVFJN-NQ-U2Ihc.js
web/dist/assets/wardley-L42UT6IY-mqWJpr_T.js
web/dist/assets/wardley-L42UT6IY-nzZZ6F8x.js
web/dist/assets/wardleyDiagram-YWT4CUSO-BXAvaj3_.js
web/dist/assets/wardleyDiagram-YWT4CUSO-ChvZuWwP.js
web/dist/assets/xychartDiagram-2RQKCTM6-BaC7fSuu.js
web/dist/assets/xychartDiagram-2RQKCTM6-BvyHx8AJ.js
web/routers/__init__.py
web/routers/auth.py
web/routers/chat.py
web/routers/progress.py
web/routers/typing_game.py