firme-tutor 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- firme_tutor/__init__.py +46 -0
- firme_tutor/__main__.py +8 -0
- firme_tutor/curriculum.py +5623 -0
- firme_tutor/db/__init__.py +16 -0
- firme_tutor/db/engine.py +42 -0
- firme_tutor/db/models.py +160 -0
- firme_tutor/firme_logo_purple.png +0 -0
- firme_tutor/multimodal/__init__.py +0 -0
- firme_tutor/multimodal/modes.py +66 -0
- firme_tutor/prompts.py +183 -0
- firme_tutor/tutor.py +137 -0
- firme_tutor/typing_game/__init__.py +0 -0
- firme_tutor/typing_game/keyboard.py +77 -0
- firme_tutor/typing_game/scoring.py +22 -0
- firme_tutor/typing_game/sentences.py +229 -0
- firme_tutor/web/__init__.py +22 -0
- firme_tutor/web/app.py +60 -0
- firme_tutor/web/config.py +38 -0
- firme_tutor/web/dependencies.py +59 -0
- firme_tutor/web/dist/assets/arc-B8bv5B3N.js +1 -0
- firme_tutor/web/dist/assets/arc-hcHIXwUj.js +1 -0
- firme_tutor/web/dist/assets/architecture-7EHR7CIX-CfWJRDbS.js +1 -0
- firme_tutor/web/dist/assets/architecture-7EHR7CIX-D7wqdsRm.js +1 -0
- firme_tutor/web/dist/assets/architectureDiagram-3BPJPVTR-CjMDtn76.js +36 -0
- firme_tutor/web/dist/assets/architectureDiagram-3BPJPVTR-DP_FUTYE.js +36 -0
- firme_tutor/web/dist/assets/blockDiagram-GPEHLZMM-BwUytfp7.js +132 -0
- firme_tutor/web/dist/assets/blockDiagram-GPEHLZMM-aYsXAwRW.js +132 -0
- firme_tutor/web/dist/assets/c4Diagram-AAUBKEIU-Bp77wM0V.js +10 -0
- firme_tutor/web/dist/assets/c4Diagram-AAUBKEIU-H-Jn5xGT.js +10 -0
- firme_tutor/web/dist/assets/channel-D3zhJf12.js +1 -0
- firme_tutor/web/dist/assets/channel-DUET4myG.js +1 -0
- firme_tutor/web/dist/assets/chunk-2J33WTMH-B2JfwxXI.js +1 -0
- firme_tutor/web/dist/assets/chunk-2J33WTMH-CmbDIqse.js +1 -0
- firme_tutor/web/dist/assets/chunk-4BX2VUAB-CiRJvBSS.js +1 -0
- firme_tutor/web/dist/assets/chunk-4BX2VUAB-DFJ9PiVX.js +1 -0
- firme_tutor/web/dist/assets/chunk-55IACEB6-D3HDZt19.js +1 -0
- firme_tutor/web/dist/assets/chunk-55IACEB6-DDqBhfOL.js +1 -0
- firme_tutor/web/dist/assets/chunk-727SXJPM-DOKYRhEn.js +206 -0
- firme_tutor/web/dist/assets/chunk-727SXJPM-dQ45P2iw.js +206 -0
- firme_tutor/web/dist/assets/chunk-AQP2D5EJ-Bee_W2_Y.js +231 -0
- firme_tutor/web/dist/assets/chunk-AQP2D5EJ-f6mrCGpl.js +231 -0
- firme_tutor/web/dist/assets/chunk-FMBD7UC4-BlVqdx0u.js +15 -0
- firme_tutor/web/dist/assets/chunk-FMBD7UC4-CsLkUbYG.js +15 -0
- firme_tutor/web/dist/assets/chunk-ND2GUHAM-BE3EMr9M.js +1 -0
- firme_tutor/web/dist/assets/chunk-ND2GUHAM-DPCZFRwg.js +1 -0
- firme_tutor/web/dist/assets/chunk-QZHKN3VN-C2EmNhuC.js +1 -0
- firme_tutor/web/dist/assets/chunk-QZHKN3VN-CsETkrdx.js +1 -0
- firme_tutor/web/dist/assets/classDiagram-4FO5ZUOK-6z0PHbLf.js +1 -0
- firme_tutor/web/dist/assets/classDiagram-4FO5ZUOK-_VQcyODs.js +1 -0
- firme_tutor/web/dist/assets/classDiagram-v2-Q7XG4LA2-6z0PHbLf.js +1 -0
- firme_tutor/web/dist/assets/classDiagram-v2-Q7XG4LA2-_VQcyODs.js +1 -0
- firme_tutor/web/dist/assets/cose-bilkent-S5V4N54A-DDbXV7Jg.js +1 -0
- firme_tutor/web/dist/assets/cose-bilkent-S5V4N54A-b1UkYwjp.js +1 -0
- firme_tutor/web/dist/assets/cytoscape.esm-FqbQrHcz.js +321 -0
- firme_tutor/web/dist/assets/dagre-BM42HDAG-BsNa8bKt.js +4 -0
- firme_tutor/web/dist/assets/dagre-BM42HDAG-Sj4pza0E.js +4 -0
- firme_tutor/web/dist/assets/dagre-Bx709z4p.js +1 -0
- firme_tutor/web/dist/assets/defaultLocale-C8Fc0cco.js +1 -0
- firme_tutor/web/dist/assets/diagram-2AECGRRQ-BG1EVSbc.js +43 -0
- firme_tutor/web/dist/assets/diagram-2AECGRRQ-BKbqr1fn.js +43 -0
- firme_tutor/web/dist/assets/diagram-5GNKFQAL-BNip8_sK.js +10 -0
- firme_tutor/web/dist/assets/diagram-5GNKFQAL-zB-3Fy6R.js +10 -0
- firme_tutor/web/dist/assets/diagram-KO2AKTUF-BjYQE0x7.js +3 -0
- firme_tutor/web/dist/assets/diagram-KO2AKTUF-_PS8ucO2.js +3 -0
- firme_tutor/web/dist/assets/diagram-LMA3HP47-CwrlWP0x.js +24 -0
- firme_tutor/web/dist/assets/diagram-LMA3HP47-DthtUw5L.js +24 -0
- firme_tutor/web/dist/assets/diagram-OG6HWLK6-DVwpvzfb.js +24 -0
- firme_tutor/web/dist/assets/diagram-OG6HWLK6-qEpybCEy.js +24 -0
- firme_tutor/web/dist/assets/erDiagram-TEJ5UH35-ClFzIpuj.js +85 -0
- firme_tutor/web/dist/assets/erDiagram-TEJ5UH35-Hd0qiO8b.js +85 -0
- firme_tutor/web/dist/assets/eventmodeling-FCH6USID--Mtgjm_v.js +1 -0
- firme_tutor/web/dist/assets/eventmodeling-FCH6USID-D_pZo8i_.js +1 -0
- firme_tutor/web/dist/assets/flowDiagram-I6XJVG4X-Ig0KZKOS.js +162 -0
- firme_tutor/web/dist/assets/flowDiagram-I6XJVG4X-um4xeAwx.js +162 -0
- firme_tutor/web/dist/assets/ganttDiagram-6RSMTGT7-BKf9wbVM.js +292 -0
- firme_tutor/web/dist/assets/ganttDiagram-6RSMTGT7-C0geFI1t.js +292 -0
- firme_tutor/web/dist/assets/gitGraph-WXDBUCRP-CX6Fr11a.js +1 -0
- firme_tutor/web/dist/assets/gitGraph-WXDBUCRP-D6XLrz9f.js +1 -0
- firme_tutor/web/dist/assets/gitGraphDiagram-PVQCEYII-B9ranWDI.js +106 -0
- firme_tutor/web/dist/assets/gitGraphDiagram-PVQCEYII-CvumOUae.js +106 -0
- firme_tutor/web/dist/assets/graphlib-B8gBHxth.js +1 -0
- firme_tutor/web/dist/assets/index-BTb5-sb9.js +339 -0
- firme_tutor/web/dist/assets/index-BVsG-zyT.css +1 -0
- firme_tutor/web/dist/assets/index-BsQieKqg.js +339 -0
- firme_tutor/web/dist/assets/index-DzgywBd5.css +1 -0
- firme_tutor/web/dist/assets/info-J43DQDTF-BIlDfkV-.js +1 -0
- firme_tutor/web/dist/assets/info-J43DQDTF-Cl5xrj6u.js +1 -0
- firme_tutor/web/dist/assets/infoDiagram-5YYISTIA-LFNqA-Ef.js +2 -0
- firme_tutor/web/dist/assets/infoDiagram-5YYISTIA-gh4R7xRA.js +2 -0
- firme_tutor/web/dist/assets/init-D6jRqBbL.js +1 -0
- firme_tutor/web/dist/assets/ishikawaDiagram-YF4QCWOH-Cm_oPlFP.js +70 -0
- firme_tutor/web/dist/assets/ishikawaDiagram-YF4QCWOH-CxggAMWN.js +70 -0
- firme_tutor/web/dist/assets/journeyDiagram-JHISSGLW-CX0FSEjo.js +139 -0
- firme_tutor/web/dist/assets/journeyDiagram-JHISSGLW-D7I1V3cu.js +139 -0
- firme_tutor/web/dist/assets/kanban-definition-UN3LZRKU-ABQNt4rG.js +89 -0
- firme_tutor/web/dist/assets/kanban-definition-UN3LZRKU-C5n2jO9q.js +89 -0
- firme_tutor/web/dist/assets/katex-Vhh-h91d.js +257 -0
- firme_tutor/web/dist/assets/linear-CD4Oo35k.js +1 -0
- firme_tutor/web/dist/assets/linear-CtNFkBk8.js +1 -0
- firme_tutor/web/dist/assets/mermaid-parser.core-78hM4Y96.js +161 -0
- firme_tutor/web/dist/assets/mermaid-parser.core-BkDxsFuj.js +161 -0
- firme_tutor/web/dist/assets/mindmap-definition-RKZ34NQL-C1pGZ1LG.js +96 -0
- firme_tutor/web/dist/assets/mindmap-definition-RKZ34NQL-GGLqgti3.js +96 -0
- firme_tutor/web/dist/assets/ordinal-hYBb2elL.js +1 -0
- firme_tutor/web/dist/assets/packet-YPE3B663-B8-1g1QF.js +1 -0
- firme_tutor/web/dist/assets/packet-YPE3B663-DqtUQHPE.js +1 -0
- firme_tutor/web/dist/assets/pie-LRSECV5Y-BPuzttrq.js +1 -0
- firme_tutor/web/dist/assets/pie-LRSECV5Y-DwwS2nmL.js +1 -0
- firme_tutor/web/dist/assets/pieDiagram-4H26LBE5-DtT_nRRn.js +30 -0
- firme_tutor/web/dist/assets/pieDiagram-4H26LBE5-LYEy49q8.js +30 -0
- firme_tutor/web/dist/assets/quadrantDiagram-W4KKPZXB-Bvd1jbhg.js +7 -0
- firme_tutor/web/dist/assets/quadrantDiagram-W4KKPZXB-D1ov-gdL.js +7 -0
- firme_tutor/web/dist/assets/radar-GUYGQ44K-DXtzkNxC.js +1 -0
- firme_tutor/web/dist/assets/radar-GUYGQ44K-TjLlmiCU.js +1 -0
- firme_tutor/web/dist/assets/requirementDiagram-4Y6WPE33-B1VZI8BL.js +84 -0
- firme_tutor/web/dist/assets/requirementDiagram-4Y6WPE33-CCfFYSqM.js +84 -0
- firme_tutor/web/dist/assets/sankeyDiagram-5OEKKPKP-BztZ_EFc.js +40 -0
- firme_tutor/web/dist/assets/sankeyDiagram-5OEKKPKP-CXb7EmOJ.js +40 -0
- firme_tutor/web/dist/assets/sequenceDiagram-3UESZ5HK-QX4NdcK_.js +162 -0
- firme_tutor/web/dist/assets/sequenceDiagram-3UESZ5HK-Sp2tvkoT.js +162 -0
- firme_tutor/web/dist/assets/stateDiagram-AJRCARHV-CpsWzZ9I.js +1 -0
- firme_tutor/web/dist/assets/stateDiagram-AJRCARHV-DIOdasDM.js +1 -0
- firme_tutor/web/dist/assets/stateDiagram-v2-BHNVJYJU-Jt9E-Zt_.js +1 -0
- firme_tutor/web/dist/assets/stateDiagram-v2-BHNVJYJU-LfyaYy96.js +1 -0
- firme_tutor/web/dist/assets/timeline-definition-PNZ67QCA-D0_o57jX.js +120 -0
- firme_tutor/web/dist/assets/timeline-definition-PNZ67QCA-Ue-hnFjk.js +120 -0
- firme_tutor/web/dist/assets/treeView-BLDUP644-BueViHYx.js +1 -0
- firme_tutor/web/dist/assets/treeView-BLDUP644-ZtLGkb3B.js +1 -0
- firme_tutor/web/dist/assets/treemap-LRROVOQU-BBsbNAZ6.js +1 -0
- firme_tutor/web/dist/assets/treemap-LRROVOQU-Cm4jfzQA.js +1 -0
- firme_tutor/web/dist/assets/vennDiagram-CIIHVFJN-DihoR2xs.js +34 -0
- firme_tutor/web/dist/assets/vennDiagram-CIIHVFJN-NQ-U2Ihc.js +34 -0
- firme_tutor/web/dist/assets/wardley-L42UT6IY-mqWJpr_T.js +1 -0
- firme_tutor/web/dist/assets/wardley-L42UT6IY-nzZZ6F8x.js +1 -0
- firme_tutor/web/dist/assets/wardleyDiagram-YWT4CUSO-BXAvaj3_.js +78 -0
- firme_tutor/web/dist/assets/wardleyDiagram-YWT4CUSO-ChvZuWwP.js +78 -0
- firme_tutor/web/dist/assets/xychartDiagram-2RQKCTM6-BaC7fSuu.js +7 -0
- firme_tutor/web/dist/assets/xychartDiagram-2RQKCTM6-BvyHx8AJ.js +7 -0
- firme_tutor/web/dist/favicon.svg +1 -0
- firme_tutor/web/dist/firme_logo_purple.png +0 -0
- firme_tutor/web/dist/icons.svg +24 -0
- firme_tutor/web/dist/index.html +14 -0
- firme_tutor/web/routers/__init__.py +0 -0
- firme_tutor/web/routers/auth.py +43 -0
- firme_tutor/web/routers/chat.py +244 -0
- firme_tutor/web/routers/progress.py +242 -0
- firme_tutor/web/routers/typing_game.py +217 -0
- firme_tutor-0.2.0.dist-info/METADATA +15 -0
- firme_tutor-0.2.0.dist-info/RECORD +151 -0
- firme_tutor-0.2.0.dist-info/WHEEL +5 -0
- firme_tutor-0.2.0.dist-info/top_level.txt +1 -0
firme_tutor/__init__.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""
|
|
2
|
+
firme-tutor
|
|
3
|
+
-----------
|
|
4
|
+
AI-powered Socratic tutor for Firme Coding fellows.
|
|
5
|
+
Built on the Claude API. Designed to guide learners through
|
|
6
|
+
lessons and homework without giving direct answers.
|
|
7
|
+
|
|
8
|
+
Includes:
|
|
9
|
+
- Socratic AI tutor with multi-modal teaching (text, visual, audio, hands-on)
|
|
10
|
+
- Typing practice game with reentry-themed content
|
|
11
|
+
- Progress tracking API for staff and funders
|
|
12
|
+
- Fellow memory — the tutor remembers each learner across sessions
|
|
13
|
+
|
|
14
|
+
Basic usage:
|
|
15
|
+
from firme_tutor import FirmeTutor
|
|
16
|
+
|
|
17
|
+
tutor = FirmeTutor(topic="What is a variable?")
|
|
18
|
+
reply = tutor.chat("I don't understand what a variable does")
|
|
19
|
+
print(reply)
|
|
20
|
+
|
|
21
|
+
Run the web app:
|
|
22
|
+
pip install "firme-tutor[web]"
|
|
23
|
+
firme-tutor-web
|
|
24
|
+
|
|
25
|
+
# or
|
|
26
|
+
python -m firme_tutor
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
from .tutor import FirmeTutor
|
|
30
|
+
from .prompts import build_system_prompt, BASE_SYSTEM_PROMPT
|
|
31
|
+
from .curriculum import MODULES, get_curriculum_for_module
|
|
32
|
+
from .multimodal.modes import LearningMode
|
|
33
|
+
from .typing_game.sentences import STAGES as TYPING_STAGES
|
|
34
|
+
|
|
35
|
+
__version__ = "0.2.0"
|
|
36
|
+
__author__ = "Maria D. Martinez <maria@firmecoding.org>"
|
|
37
|
+
|
|
38
|
+
__all__ = [
|
|
39
|
+
"FirmeTutor",
|
|
40
|
+
"build_system_prompt",
|
|
41
|
+
"BASE_SYSTEM_PROMPT",
|
|
42
|
+
"MODULES",
|
|
43
|
+
"get_curriculum_for_module",
|
|
44
|
+
"LearningMode",
|
|
45
|
+
"TYPING_STAGES",
|
|
46
|
+
]
|