learngraph 0.5.0 → 0.7.0

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.
Files changed (235) hide show
  1. package/dist/cjs/api/routes/analytics.js +288 -0
  2. package/dist/cjs/api/routes/analytics.js.map +1 -0
  3. package/dist/cjs/api/routes/assessments.js +269 -0
  4. package/dist/cjs/api/routes/assessments.js.map +1 -0
  5. package/dist/cjs/api/routes/curriculum.js +345 -0
  6. package/dist/cjs/api/routes/curriculum.js.map +1 -0
  7. package/dist/cjs/api/routes/edges.js +162 -0
  8. package/dist/cjs/api/routes/edges.js.map +1 -0
  9. package/dist/cjs/api/routes/explore.js +224 -0
  10. package/dist/cjs/api/routes/explore.js.map +1 -0
  11. package/dist/cjs/api/routes/learners.js +324 -0
  12. package/dist/cjs/api/routes/learners.js.map +1 -0
  13. package/dist/cjs/api/routes/me.js +404 -0
  14. package/dist/cjs/api/routes/me.js.map +1 -0
  15. package/dist/cjs/api/routes/skills.js +319 -0
  16. package/dist/cjs/api/routes/skills.js.map +1 -0
  17. package/dist/cjs/api/server.js +185 -0
  18. package/dist/cjs/api/server.js.map +1 -0
  19. package/dist/cjs/api/types.js +10 -0
  20. package/dist/cjs/api/types.js.map +1 -0
  21. package/dist/cjs/assessment/adaptive.js +390 -0
  22. package/dist/cjs/assessment/adaptive.js.map +1 -0
  23. package/dist/cjs/assessment/bkt.js +362 -0
  24. package/dist/cjs/assessment/bkt.js.map +1 -0
  25. package/dist/cjs/assessment/index.js +54 -0
  26. package/dist/cjs/assessment/index.js.map +1 -0
  27. package/dist/cjs/assessment/irt.js +420 -0
  28. package/dist/cjs/assessment/irt.js.map +1 -0
  29. package/dist/cjs/assessment/mastery-engine.js +411 -0
  30. package/dist/cjs/assessment/mastery-engine.js.map +1 -0
  31. package/dist/cjs/components/LearningPathView.js +320 -0
  32. package/dist/cjs/components/LearningPathView.js.map +1 -0
  33. package/dist/cjs/components/ProgressDashboard.js +308 -0
  34. package/dist/cjs/components/ProgressDashboard.js.map +1 -0
  35. package/dist/cjs/components/SkillCard.js +264 -0
  36. package/dist/cjs/components/SkillCard.js.map +1 -0
  37. package/dist/cjs/components/SkillExplorer.js +401 -0
  38. package/dist/cjs/components/SkillExplorer.js.map +1 -0
  39. package/dist/cjs/components/SkillGraph.js +435 -0
  40. package/dist/cjs/components/SkillGraph.js.map +1 -0
  41. package/dist/cjs/components/hooks.js +510 -0
  42. package/dist/cjs/components/hooks.js.map +1 -0
  43. package/dist/cjs/components/index.js +77 -0
  44. package/dist/cjs/components/index.js.map +1 -0
  45. package/dist/cjs/components/types.js +34 -0
  46. package/dist/cjs/components/types.js.map +1 -0
  47. package/dist/cjs/index.js +35 -1
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/llm/adapters/anthropic.js +91 -3
  50. package/dist/cjs/llm/adapters/anthropic.js.map +1 -1
  51. package/dist/cjs/llm/adapters/gemini.js +101 -8
  52. package/dist/cjs/llm/adapters/gemini.js.map +1 -1
  53. package/dist/cjs/llm/adapters/index.js +42 -1
  54. package/dist/cjs/llm/adapters/index.js.map +1 -1
  55. package/dist/cjs/llm/adapters/ollama.js +120 -3
  56. package/dist/cjs/llm/adapters/ollama.js.map +1 -1
  57. package/dist/cjs/llm/adapters/openai.js +108 -2
  58. package/dist/cjs/llm/adapters/openai.js.map +1 -1
  59. package/dist/cjs/mcp/cli.js +302 -0
  60. package/dist/cjs/mcp/cli.js.map +1 -0
  61. package/dist/cjs/mcp/index.js +79 -0
  62. package/dist/cjs/mcp/index.js.map +1 -0
  63. package/dist/cjs/mcp/prompts.js +425 -0
  64. package/dist/cjs/mcp/prompts.js.map +1 -0
  65. package/dist/cjs/mcp/resources.js +371 -0
  66. package/dist/cjs/mcp/resources.js.map +1 -0
  67. package/dist/cjs/mcp/server.js +410 -0
  68. package/dist/cjs/mcp/server.js.map +1 -0
  69. package/dist/cjs/mcp/tools.js +612 -0
  70. package/dist/cjs/mcp/tools.js.map +1 -0
  71. package/dist/cjs/mcp/types.js +10 -0
  72. package/dist/cjs/mcp/types.js.map +1 -0
  73. package/dist/cjs/types/assessment.js +46 -0
  74. package/dist/cjs/types/assessment.js.map +1 -0
  75. package/dist/cjs/types/bloom.js +12 -1
  76. package/dist/cjs/types/bloom.js.map +1 -1
  77. package/dist/cjs/types/index.js +7 -1
  78. package/dist/cjs/types/index.js.map +1 -1
  79. package/dist/esm/api/routes/analytics.js +285 -0
  80. package/dist/esm/api/routes/analytics.js.map +1 -0
  81. package/dist/esm/api/routes/assessments.js +266 -0
  82. package/dist/esm/api/routes/assessments.js.map +1 -0
  83. package/dist/esm/api/routes/curriculum.js +342 -0
  84. package/dist/esm/api/routes/curriculum.js.map +1 -0
  85. package/dist/esm/api/routes/edges.js +159 -0
  86. package/dist/esm/api/routes/edges.js.map +1 -0
  87. package/dist/esm/api/routes/explore.js +221 -0
  88. package/dist/esm/api/routes/explore.js.map +1 -0
  89. package/dist/esm/api/routes/learners.js +321 -0
  90. package/dist/esm/api/routes/learners.js.map +1 -0
  91. package/dist/esm/api/routes/me.js +401 -0
  92. package/dist/esm/api/routes/me.js.map +1 -0
  93. package/dist/esm/api/routes/skills.js +316 -0
  94. package/dist/esm/api/routes/skills.js.map +1 -0
  95. package/dist/esm/api/server.js +179 -0
  96. package/dist/esm/api/server.js.map +1 -0
  97. package/dist/esm/api/types.js +9 -0
  98. package/dist/esm/api/types.js.map +1 -0
  99. package/dist/esm/assessment/adaptive.js +384 -0
  100. package/dist/esm/assessment/adaptive.js.map +1 -0
  101. package/dist/esm/assessment/bkt.js +354 -0
  102. package/dist/esm/assessment/bkt.js.map +1 -0
  103. package/dist/esm/assessment/index.js +21 -0
  104. package/dist/esm/assessment/index.js.map +1 -0
  105. package/dist/esm/assessment/irt.js +406 -0
  106. package/dist/esm/assessment/irt.js.map +1 -0
  107. package/dist/esm/assessment/mastery-engine.js +406 -0
  108. package/dist/esm/assessment/mastery-engine.js.map +1 -0
  109. package/dist/esm/components/LearningPathView.js +316 -0
  110. package/dist/esm/components/LearningPathView.js.map +1 -0
  111. package/dist/esm/components/ProgressDashboard.js +304 -0
  112. package/dist/esm/components/ProgressDashboard.js.map +1 -0
  113. package/dist/esm/components/SkillCard.js +260 -0
  114. package/dist/esm/components/SkillCard.js.map +1 -0
  115. package/dist/esm/components/SkillExplorer.js +397 -0
  116. package/dist/esm/components/SkillExplorer.js.map +1 -0
  117. package/dist/esm/components/SkillGraph.js +398 -0
  118. package/dist/esm/components/SkillGraph.js.map +1 -0
  119. package/dist/esm/components/hooks.js +502 -0
  120. package/dist/esm/components/hooks.js.map +1 -0
  121. package/dist/esm/components/index.js +61 -0
  122. package/dist/esm/components/index.js.map +1 -0
  123. package/dist/esm/components/types.js +31 -0
  124. package/dist/esm/components/types.js.map +1 -0
  125. package/dist/esm/index.js +12 -0
  126. package/dist/esm/index.js.map +1 -1
  127. package/dist/esm/llm/adapters/anthropic.js +88 -2
  128. package/dist/esm/llm/adapters/anthropic.js.map +1 -1
  129. package/dist/esm/llm/adapters/gemini.js +98 -7
  130. package/dist/esm/llm/adapters/gemini.js.map +1 -1
  131. package/dist/esm/llm/adapters/index.js +15 -4
  132. package/dist/esm/llm/adapters/index.js.map +1 -1
  133. package/dist/esm/llm/adapters/ollama.js +117 -2
  134. package/dist/esm/llm/adapters/ollama.js.map +1 -1
  135. package/dist/esm/llm/adapters/openai.js +105 -1
  136. package/dist/esm/llm/adapters/openai.js.map +1 -1
  137. package/dist/esm/mcp/cli.js +267 -0
  138. package/dist/esm/mcp/cli.js.map +1 -0
  139. package/dist/esm/mcp/index.js +39 -0
  140. package/dist/esm/mcp/index.js.map +1 -0
  141. package/dist/esm/mcp/prompts.js +419 -0
  142. package/dist/esm/mcp/prompts.js.map +1 -0
  143. package/dist/esm/mcp/resources.js +359 -0
  144. package/dist/esm/mcp/resources.js.map +1 -0
  145. package/dist/esm/mcp/server.js +372 -0
  146. package/dist/esm/mcp/server.js.map +1 -0
  147. package/dist/esm/mcp/tools.js +598 -0
  148. package/dist/esm/mcp/tools.js.map +1 -0
  149. package/dist/esm/mcp/types.js +9 -0
  150. package/dist/esm/mcp/types.js.map +1 -0
  151. package/dist/esm/types/assessment.js +40 -0
  152. package/dist/esm/types/assessment.js.map +1 -0
  153. package/dist/esm/types/bloom.js +11 -0
  154. package/dist/esm/types/bloom.js.map +1 -1
  155. package/dist/esm/types/index.js +2 -1
  156. package/dist/esm/types/index.js.map +1 -1
  157. package/dist/types/api/routes/analytics.d.ts +14 -0
  158. package/dist/types/api/routes/analytics.d.ts.map +1 -0
  159. package/dist/types/api/routes/assessments.d.ts +14 -0
  160. package/dist/types/api/routes/assessments.d.ts.map +1 -0
  161. package/dist/types/api/routes/curriculum.d.ts +14 -0
  162. package/dist/types/api/routes/curriculum.d.ts.map +1 -0
  163. package/dist/types/api/routes/edges.d.ts +14 -0
  164. package/dist/types/api/routes/edges.d.ts.map +1 -0
  165. package/dist/types/api/routes/explore.d.ts +14 -0
  166. package/dist/types/api/routes/explore.d.ts.map +1 -0
  167. package/dist/types/api/routes/learners.d.ts +14 -0
  168. package/dist/types/api/routes/learners.d.ts.map +1 -0
  169. package/dist/types/api/routes/me.d.ts +14 -0
  170. package/dist/types/api/routes/me.d.ts.map +1 -0
  171. package/dist/types/api/routes/skills.d.ts +14 -0
  172. package/dist/types/api/routes/skills.d.ts.map +1 -0
  173. package/dist/types/api/server.d.ts +147 -0
  174. package/dist/types/api/server.d.ts.map +1 -0
  175. package/dist/types/api/types.d.ts +443 -0
  176. package/dist/types/api/types.d.ts.map +1 -0
  177. package/dist/types/assessment/adaptive.d.ts +155 -0
  178. package/dist/types/assessment/adaptive.d.ts.map +1 -0
  179. package/dist/types/assessment/bkt.d.ts +185 -0
  180. package/dist/types/assessment/bkt.d.ts.map +1 -0
  181. package/dist/types/assessment/index.d.ts +18 -0
  182. package/dist/types/assessment/index.d.ts.map +1 -0
  183. package/dist/types/assessment/irt.d.ts +159 -0
  184. package/dist/types/assessment/irt.d.ts.map +1 -0
  185. package/dist/types/assessment/mastery-engine.d.ts +178 -0
  186. package/dist/types/assessment/mastery-engine.d.ts.map +1 -0
  187. package/dist/types/components/LearningPathView.d.ts +40 -0
  188. package/dist/types/components/LearningPathView.d.ts.map +1 -0
  189. package/dist/types/components/ProgressDashboard.d.ts +49 -0
  190. package/dist/types/components/ProgressDashboard.d.ts.map +1 -0
  191. package/dist/types/components/SkillCard.d.ts +34 -0
  192. package/dist/types/components/SkillCard.d.ts.map +1 -0
  193. package/dist/types/components/SkillExplorer.d.ts +39 -0
  194. package/dist/types/components/SkillExplorer.d.ts.map +1 -0
  195. package/dist/types/components/SkillGraph.d.ts +38 -0
  196. package/dist/types/components/SkillGraph.d.ts.map +1 -0
  197. package/dist/types/components/hooks.d.ts +187 -0
  198. package/dist/types/components/hooks.d.ts.map +1 -0
  199. package/dist/types/components/index.d.ts +59 -0
  200. package/dist/types/components/index.d.ts.map +1 -0
  201. package/dist/types/components/types.d.ts +410 -0
  202. package/dist/types/components/types.d.ts.map +1 -0
  203. package/dist/types/index.d.ts +1 -0
  204. package/dist/types/index.d.ts.map +1 -1
  205. package/dist/types/llm/adapters/anthropic.d.ts +84 -1
  206. package/dist/types/llm/adapters/anthropic.d.ts.map +1 -1
  207. package/dist/types/llm/adapters/gemini.d.ts +93 -6
  208. package/dist/types/llm/adapters/gemini.d.ts.map +1 -1
  209. package/dist/types/llm/adapters/index.d.ts +13 -4
  210. package/dist/types/llm/adapters/index.d.ts.map +1 -1
  211. package/dist/types/llm/adapters/ollama.d.ts +126 -1
  212. package/dist/types/llm/adapters/ollama.d.ts.map +1 -1
  213. package/dist/types/llm/adapters/openai.d.ts +104 -1
  214. package/dist/types/llm/adapters/openai.d.ts.map +1 -1
  215. package/dist/types/mcp/cli.d.ts +15 -0
  216. package/dist/types/mcp/cli.d.ts.map +1 -0
  217. package/dist/types/mcp/index.d.ts +32 -0
  218. package/dist/types/mcp/index.d.ts.map +1 -0
  219. package/dist/types/mcp/prompts.d.ts +27 -0
  220. package/dist/types/mcp/prompts.d.ts.map +1 -0
  221. package/dist/types/mcp/resources.d.ts +59 -0
  222. package/dist/types/mcp/resources.d.ts.map +1 -0
  223. package/dist/types/mcp/server.d.ts +136 -0
  224. package/dist/types/mcp/server.d.ts.map +1 -0
  225. package/dist/types/mcp/tools.d.ts +344 -0
  226. package/dist/types/mcp/tools.d.ts.map +1 -0
  227. package/dist/types/mcp/types.d.ts +137 -0
  228. package/dist/types/mcp/types.d.ts.map +1 -0
  229. package/dist/types/types/assessment.d.ts +512 -0
  230. package/dist/types/types/assessment.d.ts.map +1 -0
  231. package/dist/types/types/bloom.d.ts +4 -0
  232. package/dist/types/types/bloom.d.ts.map +1 -1
  233. package/dist/types/types/index.d.ts +3 -1
  234. package/dist/types/types/index.d.ts.map +1 -1
  235. package/package.json +48 -3
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Assessment Types
3
+ *
4
+ * Comprehensive type definitions for the assessment framework including:
5
+ * - Question types (multiple choice, free response, etc.)
6
+ * - Assessment structures
7
+ * - Item Response Theory (IRT) parameters
8
+ * - Bayesian Knowledge Tracing (BKT) parameters
9
+ * - Evidence of learning
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ /**
14
+ * Create a typed QuestionId from a string
15
+ */
16
+ export function createQuestionId(id) {
17
+ return id;
18
+ }
19
+ /**
20
+ * Create a typed AssessmentId from a string
21
+ */
22
+ export function createAssessmentId(id) {
23
+ return id;
24
+ }
25
+ /**
26
+ * Create a typed ResponseId from a string
27
+ */
28
+ export function createResponseId(id) {
29
+ return id;
30
+ }
31
+ /**
32
+ * Default BKT parameters (empirically derived)
33
+ */
34
+ export const BKT_DEFAULTS = {
35
+ pInit: 0.3, // 30% prior mastery
36
+ pLearn: 0.1, // 10% chance to learn per opportunity
37
+ pSlip: 0.1, // 10% slip rate
38
+ pGuess: 0.2, // 20% guess rate
39
+ };
40
+ //# sourceMappingURL=assessment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assessment.js","sourceRoot":"","sources":["../../../src/types/assessment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,EAAgB,CAAC;AAC1B,CAAC;AAmGD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,OAAO,EAAkB,CAAC;AAC5B,CAAC;AA+FD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,EAAgB,CAAC;AAC1B,CAAC;AAwJD;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,KAAK,EAAE,GAAG,EAAK,oBAAoB;IACnC,MAAM,EAAE,GAAG,EAAI,sCAAsC;IACrD,KAAK,EAAE,GAAG,EAAK,gBAAgB;IAC/B,MAAM,EAAE,GAAG,EAAI,iBAAiB;CACjC,CAAC"}
@@ -1,3 +1,14 @@
1
+ /**
2
+ * All Bloom's levels as an ordered array
3
+ */
4
+ export const BLOOM_LEVELS = [
5
+ 'remember',
6
+ 'understand',
7
+ 'apply',
8
+ 'analyze',
9
+ 'evaluate',
10
+ 'create',
11
+ ];
1
12
  /**
2
13
  * Numeric mapping for Bloom's levels (1-6 scale)
3
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bloom.js","sourceRoot":"","sources":["../../../src/types/bloom.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;CACD,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA0C;IAChE,QAAQ,EAAE;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,WAAW;QACX,WAAW;QACX,QAAQ;QACR,OAAO;QACP,UAAU;QACV,QAAQ;KACT;IACD,UAAU,EAAE;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,aAAa;QACb,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,WAAW;QACX,YAAY;QACZ,SAAS;QACT,WAAW;QACX,WAAW;QACX,SAAS;QACT,aAAa;KACd;IACD,KAAK,EAAE;QACL,OAAO;QACP,WAAW;QACX,QAAQ;QACR,UAAU;QACV,SAAS;QACT,WAAW;QACX,aAAa;QACb,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,KAAK;QACL,WAAW;QACX,SAAS;KACV;IACD,OAAO,EAAE;QACP,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,UAAU;QACV,aAAa;QACb,eAAe;QACf,cAAc;QACd,aAAa;QACb,SAAS;QACT,YAAY;QACZ,UAAU;QACV,OAAO;QACP,UAAU;QACV,MAAM;QACN,aAAa;KACd;IACD,QAAQ,EAAE;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;QACP,SAAS;QACT,YAAY;QACZ,MAAM;QACN,MAAM;QACN,WAAW;QACX,SAAS;QACT,OAAO;KACR;IACD,MAAM,EAAE;QACN,UAAU;QACV,SAAS;QACT,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,WAAW;QACX,UAAU;QACV,aAAa;QACb,QAAQ;QACR,MAAM;QACN,SAAS;QACT,OAAO;QACP,YAAY;QACZ,WAAW;KACZ;CACO,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAE5C,yEAAyE;IACzE,MAAM,MAAM,GAAiB;QAC3B,QAAQ;QACR,UAAU;QACV,SAAS;QACT,OAAO;QACP,YAAY;QACZ,UAAU;KACX,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,yDAAyD;YACzD,IACE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,SAAS,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;gBAClC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,EAC/B,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAa,EAAE,CAAa;IAC7D,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAiB,EAAE,OAAmB;IACxE,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"bloom.js","sourceRoot":"","sources":["../../../src/types/bloom.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,UAAU;IACV,YAAY;IACZ,OAAO;IACP,SAAS;IACT,UAAU;IACV,QAAQ;CACA,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;CACD,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA0C;IAChE,QAAQ,EAAE;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,WAAW;QACX,WAAW;QACX,QAAQ;QACR,OAAO;QACP,UAAU;QACV,QAAQ;KACT;IACD,UAAU,EAAE;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,aAAa;QACb,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,WAAW;QACX,YAAY;QACZ,SAAS;QACT,WAAW;QACX,WAAW;QACX,SAAS;QACT,aAAa;KACd;IACD,KAAK,EAAE;QACL,OAAO;QACP,WAAW;QACX,QAAQ;QACR,UAAU;QACV,SAAS;QACT,WAAW;QACX,aAAa;QACb,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,KAAK;QACL,WAAW;QACX,SAAS;KACV;IACD,OAAO,EAAE;QACP,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,UAAU;QACV,aAAa;QACb,eAAe;QACf,cAAc;QACd,aAAa;QACb,SAAS;QACT,YAAY;QACZ,UAAU;QACV,OAAO;QACP,UAAU;QACV,MAAM;QACN,aAAa;KACd;IACD,QAAQ,EAAE;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;QACP,SAAS;QACT,YAAY;QACZ,MAAM;QACN,MAAM;QACN,WAAW;QACX,SAAS;QACT,OAAO;KACR;IACD,MAAM,EAAE;QACN,UAAU;QACV,SAAS;QACT,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,WAAW;QACX,UAAU;QACV,aAAa;QACb,QAAQ;QACR,MAAM;QACN,SAAS;QACT,OAAO;QACP,YAAY;QACZ,WAAW;KACZ;CACO,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAE5C,yEAAyE;IACzE,MAAM,MAAM,GAAiB;QAC3B,QAAQ;QACR,UAAU;QACV,SAAS;QACT,OAAO;QACP,YAAY;QACZ,UAAU;KACX,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,yDAAyD;YACzD,IACE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,SAAS,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;gBAClC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,EAC/B,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAa,EAAE,CAAa;IAC7D,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAiB,EAAE,OAAmB;IACxE,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAChE,CAAC"}
@@ -3,9 +3,10 @@
3
3
  *
4
4
  * @packageDocumentation
5
5
  */
6
- export { BLOOM_LEVEL_ORDER, BLOOM_VERBS, detectBloomLevel, compareBloomLevels, meetsBloomThreshold, } from './bloom.js';
6
+ export { BLOOM_LEVELS, BLOOM_LEVEL_ORDER, BLOOM_VERBS, detectBloomLevel, compareBloomLevels, meetsBloomThreshold, } from './bloom.js';
7
7
  export { createSkillId, SKILL_DEFAULTS, THRESHOLD_CONCEPT_MASTERY, isValidDifficulty, isValidMasteryThreshold, } from './skill.js';
8
8
  export { createEdgeId, EDGE_STRENGTH_THRESHOLDS, isValidEdgeStrength, suggestEdgeType, } from './edge.js';
9
9
  export { MASTERY_THRESHOLDS, hasMastery, masteryGap } from './mastery.js';
10
10
  export { GRAPH_VERSION } from './graph.js';
11
+ export { createQuestionId, createAssessmentId, createResponseId, BKT_DEFAULTS, } from './assessment.js';
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,WAAW,CAAC;AAMnB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAa1E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,WAAW,CAAC;AAMnB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAa1E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgI3C,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,GACb,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Analytics routes
3
+ *
4
+ * Endpoints for skill analytics and cohort analysis.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { ApiContext } from '../server.js';
10
+ /**
11
+ * Create analytics routes
12
+ */
13
+ export declare function createAnalyticsRoutes(ctx: ApiContext): Hono;
14
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/analytics.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAmV3D"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Assessment routes
3
+ *
4
+ * Endpoints for assessments, questions, and adaptive testing.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { ApiContext } from '../server.js';
10
+ /**
11
+ * Create assessment routes
12
+ */
13
+ export declare function createAssessmentRoutes(ctx: ApiContext): Hono;
14
+ //# sourceMappingURL=assessments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assessments.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/assessments.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CA6V5D"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Curriculum routes
3
+ *
4
+ * Endpoints for curriculum management and bulk operations.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { ApiContext } from '../server.js';
10
+ /**
11
+ * Create curriculum routes
12
+ */
13
+ export declare function createCurriculumRoutes(ctx: ApiContext): Hono;
14
+ //# sourceMappingURL=curriculum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curriculum.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/curriculum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CA+W5D"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Edge routes
3
+ *
4
+ * CRUD endpoints for prerequisite edges between skills.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { ApiContext } from '../server.js';
10
+ /**
11
+ * Create edge routes
12
+ */
13
+ export declare function createEdgeRoutes(ctx: ApiContext): Hono;
14
+ //# sourceMappingURL=edges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/edges.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAsMtD"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Explore routes
3
+ *
4
+ * Public skill exploration endpoints for discovery.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { ApiContext } from '../server.js';
10
+ /**
11
+ * Create explore routes for public skill discovery
12
+ */
13
+ export declare function createExploreRoutes(ctx: ApiContext): Hono;
14
+ //# sourceMappingURL=explore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explore.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/explore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAmQzD"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Learner routes
3
+ *
4
+ * CRUD operations for learners and their mastery states.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { ApiContext } from '../server.js';
10
+ /**
11
+ * Create learner routes
12
+ */
13
+ export declare function createLearnerRoutes(ctx: ApiContext): Hono;
14
+ //# sourceMappingURL=learners.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learners.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/learners.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU/C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAgXzD"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Student self-service routes (/me)
3
+ *
4
+ * Endpoints for authenticated students to manage their own learning.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { ApiContext } from '../server.js';
10
+ /**
11
+ * Create /me routes for student self-service
12
+ */
13
+ export declare function createMeRoutes(ctx: ApiContext): Hono;
14
+ //# sourceMappingURL=me.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"me.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/me.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAM/C;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAwdpD"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Skill routes
3
+ *
4
+ * CRUD operations and graph traversal for skills.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { ApiContext } from '../server.js';
10
+ /**
11
+ * Create skill routes
12
+ */
13
+ export declare function createSkillRoutes(ctx: ApiContext): Hono;
14
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../../src/api/routes/skills.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW/C;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAsWvD"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * LearnGraph REST API Server
3
+ *
4
+ * Hono-based REST API for skill graphs, learners, and assessments.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import { Hono } from 'hono';
9
+ import type { GraphStorage } from '../types/index.js';
10
+ import type { ApiResponse } from './types.js';
11
+ /**
12
+ * API server configuration
13
+ */
14
+ export interface ApiServerConfig {
15
+ /** Storage backend */
16
+ storage: GraphStorage;
17
+ /** Base path for API (default: /api) */
18
+ basePath?: string;
19
+ /** Enable CORS (default: true) */
20
+ cors?: boolean;
21
+ /** CORS origins (default: *) */
22
+ corsOrigins?: string[];
23
+ /** Enable request logging (default: true) */
24
+ logging?: boolean;
25
+ /** Enable timing headers (default: true) */
26
+ timing?: boolean;
27
+ /** Enable pretty JSON (default: false in production) */
28
+ prettyJson?: boolean;
29
+ /** Auth middleware (optional) */
30
+ authMiddleware?: (c: unknown, next: () => Promise<void>) => Promise<void | Response>;
31
+ /** Get current user ID from context */
32
+ getCurrentUserId?: (c: unknown) => string | undefined;
33
+ }
34
+ /**
35
+ * Extended storage for API with learner support
36
+ * The base GraphStorage handles skill graphs; this extends it with learner operations
37
+ */
38
+ export interface ExtendedStorage extends GraphStorage {
39
+ createLearner?(input: {
40
+ metadata?: Record<string, unknown>;
41
+ }): Promise<{
42
+ id: string;
43
+ metadata?: Record<string, unknown>;
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ }>;
47
+ getLearner?(id: string): Promise<{
48
+ id: string;
49
+ metadata?: Record<string, unknown>;
50
+ createdAt: string;
51
+ updatedAt: string;
52
+ } | null>;
53
+ updateLearner?(id: string, updates: {
54
+ metadata?: Record<string, unknown>;
55
+ }): Promise<{
56
+ id: string;
57
+ metadata?: Record<string, unknown>;
58
+ createdAt: string;
59
+ updatedAt: string;
60
+ }>;
61
+ deleteLearner?(id: string): Promise<void>;
62
+ getAllLearners?(): Promise<Array<{
63
+ id: string;
64
+ metadata?: Record<string, unknown>;
65
+ createdAt: string;
66
+ updatedAt: string;
67
+ }>>;
68
+ getMastery?(learnerId: string, skillId: string): Promise<{
69
+ skillId: string;
70
+ mastery: number;
71
+ confidence?: number;
72
+ lastUpdated?: string;
73
+ responseHistory?: unknown[];
74
+ } | null>;
75
+ getLearnerMastery?(learnerId: string): Promise<Array<{
76
+ skillId: string;
77
+ mastery: number;
78
+ confidence?: number;
79
+ lastUpdated?: string;
80
+ responseHistory?: unknown[];
81
+ }>>;
82
+ updateMastery?(learnerId: string, skillId: string, response: {
83
+ correct: boolean;
84
+ responseTimeMs?: number;
85
+ questionId?: string;
86
+ }): Promise<{
87
+ skillId: string;
88
+ mastery: number;
89
+ confidence?: number;
90
+ lastUpdated?: string;
91
+ responseHistory?: unknown[];
92
+ }>;
93
+ }
94
+ /**
95
+ * API context passed to route handlers
96
+ */
97
+ export interface ApiContext {
98
+ storage: ExtendedStorage;
99
+ getCurrentUserId?: (c: unknown) => string | undefined;
100
+ }
101
+ /**
102
+ * Create success response
103
+ */
104
+ export declare function success<T>(data: T, meta?: ApiResponse<T>['meta']): ApiResponse<T>;
105
+ /**
106
+ * Create error response
107
+ */
108
+ export declare function error(code: string, message: string, details?: Record<string, unknown>): ApiResponse<never>;
109
+ /**
110
+ * Common error codes
111
+ */
112
+ export declare const ErrorCodes: {
113
+ readonly NOT_FOUND: "NOT_FOUND";
114
+ readonly BAD_REQUEST: "BAD_REQUEST";
115
+ readonly UNAUTHORIZED: "UNAUTHORIZED";
116
+ readonly FORBIDDEN: "FORBIDDEN";
117
+ readonly CONFLICT: "CONFLICT";
118
+ readonly INTERNAL_ERROR: "INTERNAL_ERROR";
119
+ readonly VALIDATION_ERROR: "VALIDATION_ERROR";
120
+ };
121
+ /**
122
+ * Create the LearnGraph API server
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * import { createApiServer } from 'learngraph/api';
127
+ * import { MemoryStorage } from 'learngraph/storage';
128
+ *
129
+ * const storage = new MemoryStorage();
130
+ * await storage.connect({ backend: 'memory' });
131
+ *
132
+ * const app = createApiServer({ storage });
133
+ *
134
+ * // Start with Bun
135
+ * export default app;
136
+ *
137
+ * // Or with Node.js
138
+ * import { serve } from '@hono/node-server';
139
+ * serve({ fetch: app.fetch, port: 3000 });
140
+ * ```
141
+ */
142
+ export declare function createApiServer(config: ApiServerConfig): Hono;
143
+ /**
144
+ * Export Hono type for type inference
145
+ */
146
+ export type { Hono };
147
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/api/server.ts"],"names":[],"mappings":"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"}