learngraph 0.4.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 (259) 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 +36 -2
  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/query/index.js +23 -4
  74. package/dist/cjs/query/index.js.map +1 -1
  75. package/dist/cjs/query/path.js +313 -0
  76. package/dist/cjs/query/path.js.map +1 -0
  77. package/dist/cjs/query/spaced-repetition.js +298 -0
  78. package/dist/cjs/query/spaced-repetition.js.map +1 -0
  79. package/dist/cjs/query/zpd.js +216 -0
  80. package/dist/cjs/query/zpd.js.map +1 -0
  81. package/dist/cjs/types/assessment.js +46 -0
  82. package/dist/cjs/types/assessment.js.map +1 -0
  83. package/dist/cjs/types/bloom.js +12 -1
  84. package/dist/cjs/types/bloom.js.map +1 -1
  85. package/dist/cjs/types/index.js +7 -1
  86. package/dist/cjs/types/index.js.map +1 -1
  87. package/dist/esm/api/routes/analytics.js +285 -0
  88. package/dist/esm/api/routes/analytics.js.map +1 -0
  89. package/dist/esm/api/routes/assessments.js +266 -0
  90. package/dist/esm/api/routes/assessments.js.map +1 -0
  91. package/dist/esm/api/routes/curriculum.js +342 -0
  92. package/dist/esm/api/routes/curriculum.js.map +1 -0
  93. package/dist/esm/api/routes/edges.js +159 -0
  94. package/dist/esm/api/routes/edges.js.map +1 -0
  95. package/dist/esm/api/routes/explore.js +221 -0
  96. package/dist/esm/api/routes/explore.js.map +1 -0
  97. package/dist/esm/api/routes/learners.js +321 -0
  98. package/dist/esm/api/routes/learners.js.map +1 -0
  99. package/dist/esm/api/routes/me.js +401 -0
  100. package/dist/esm/api/routes/me.js.map +1 -0
  101. package/dist/esm/api/routes/skills.js +316 -0
  102. package/dist/esm/api/routes/skills.js.map +1 -0
  103. package/dist/esm/api/server.js +179 -0
  104. package/dist/esm/api/server.js.map +1 -0
  105. package/dist/esm/api/types.js +9 -0
  106. package/dist/esm/api/types.js.map +1 -0
  107. package/dist/esm/assessment/adaptive.js +384 -0
  108. package/dist/esm/assessment/adaptive.js.map +1 -0
  109. package/dist/esm/assessment/bkt.js +354 -0
  110. package/dist/esm/assessment/bkt.js.map +1 -0
  111. package/dist/esm/assessment/index.js +21 -0
  112. package/dist/esm/assessment/index.js.map +1 -0
  113. package/dist/esm/assessment/irt.js +406 -0
  114. package/dist/esm/assessment/irt.js.map +1 -0
  115. package/dist/esm/assessment/mastery-engine.js +406 -0
  116. package/dist/esm/assessment/mastery-engine.js.map +1 -0
  117. package/dist/esm/components/LearningPathView.js +316 -0
  118. package/dist/esm/components/LearningPathView.js.map +1 -0
  119. package/dist/esm/components/ProgressDashboard.js +304 -0
  120. package/dist/esm/components/ProgressDashboard.js.map +1 -0
  121. package/dist/esm/components/SkillCard.js +260 -0
  122. package/dist/esm/components/SkillCard.js.map +1 -0
  123. package/dist/esm/components/SkillExplorer.js +397 -0
  124. package/dist/esm/components/SkillExplorer.js.map +1 -0
  125. package/dist/esm/components/SkillGraph.js +398 -0
  126. package/dist/esm/components/SkillGraph.js.map +1 -0
  127. package/dist/esm/components/hooks.js +502 -0
  128. package/dist/esm/components/hooks.js.map +1 -0
  129. package/dist/esm/components/index.js +61 -0
  130. package/dist/esm/components/index.js.map +1 -0
  131. package/dist/esm/components/types.js +31 -0
  132. package/dist/esm/components/types.js.map +1 -0
  133. package/dist/esm/index.js +13 -1
  134. package/dist/esm/index.js.map +1 -1
  135. package/dist/esm/llm/adapters/anthropic.js +88 -2
  136. package/dist/esm/llm/adapters/anthropic.js.map +1 -1
  137. package/dist/esm/llm/adapters/gemini.js +98 -7
  138. package/dist/esm/llm/adapters/gemini.js.map +1 -1
  139. package/dist/esm/llm/adapters/index.js +15 -4
  140. package/dist/esm/llm/adapters/index.js.map +1 -1
  141. package/dist/esm/llm/adapters/ollama.js +117 -2
  142. package/dist/esm/llm/adapters/ollama.js.map +1 -1
  143. package/dist/esm/llm/adapters/openai.js +105 -1
  144. package/dist/esm/llm/adapters/openai.js.map +1 -1
  145. package/dist/esm/mcp/cli.js +267 -0
  146. package/dist/esm/mcp/cli.js.map +1 -0
  147. package/dist/esm/mcp/index.js +39 -0
  148. package/dist/esm/mcp/index.js.map +1 -0
  149. package/dist/esm/mcp/prompts.js +419 -0
  150. package/dist/esm/mcp/prompts.js.map +1 -0
  151. package/dist/esm/mcp/resources.js +359 -0
  152. package/dist/esm/mcp/resources.js.map +1 -0
  153. package/dist/esm/mcp/server.js +372 -0
  154. package/dist/esm/mcp/server.js.map +1 -0
  155. package/dist/esm/mcp/tools.js +598 -0
  156. package/dist/esm/mcp/tools.js.map +1 -0
  157. package/dist/esm/mcp/types.js +9 -0
  158. package/dist/esm/mcp/types.js.map +1 -0
  159. package/dist/esm/query/index.js +11 -5
  160. package/dist/esm/query/index.js.map +1 -1
  161. package/dist/esm/query/path.js +308 -0
  162. package/dist/esm/query/path.js.map +1 -0
  163. package/dist/esm/query/spaced-repetition.js +292 -0
  164. package/dist/esm/query/spaced-repetition.js.map +1 -0
  165. package/dist/esm/query/zpd.js +211 -0
  166. package/dist/esm/query/zpd.js.map +1 -0
  167. package/dist/esm/types/assessment.js +40 -0
  168. package/dist/esm/types/assessment.js.map +1 -0
  169. package/dist/esm/types/bloom.js +11 -0
  170. package/dist/esm/types/bloom.js.map +1 -1
  171. package/dist/esm/types/index.js +2 -1
  172. package/dist/esm/types/index.js.map +1 -1
  173. package/dist/types/api/routes/analytics.d.ts +14 -0
  174. package/dist/types/api/routes/analytics.d.ts.map +1 -0
  175. package/dist/types/api/routes/assessments.d.ts +14 -0
  176. package/dist/types/api/routes/assessments.d.ts.map +1 -0
  177. package/dist/types/api/routes/curriculum.d.ts +14 -0
  178. package/dist/types/api/routes/curriculum.d.ts.map +1 -0
  179. package/dist/types/api/routes/edges.d.ts +14 -0
  180. package/dist/types/api/routes/edges.d.ts.map +1 -0
  181. package/dist/types/api/routes/explore.d.ts +14 -0
  182. package/dist/types/api/routes/explore.d.ts.map +1 -0
  183. package/dist/types/api/routes/learners.d.ts +14 -0
  184. package/dist/types/api/routes/learners.d.ts.map +1 -0
  185. package/dist/types/api/routes/me.d.ts +14 -0
  186. package/dist/types/api/routes/me.d.ts.map +1 -0
  187. package/dist/types/api/routes/skills.d.ts +14 -0
  188. package/dist/types/api/routes/skills.d.ts.map +1 -0
  189. package/dist/types/api/server.d.ts +147 -0
  190. package/dist/types/api/server.d.ts.map +1 -0
  191. package/dist/types/api/types.d.ts +443 -0
  192. package/dist/types/api/types.d.ts.map +1 -0
  193. package/dist/types/assessment/adaptive.d.ts +155 -0
  194. package/dist/types/assessment/adaptive.d.ts.map +1 -0
  195. package/dist/types/assessment/bkt.d.ts +185 -0
  196. package/dist/types/assessment/bkt.d.ts.map +1 -0
  197. package/dist/types/assessment/index.d.ts +18 -0
  198. package/dist/types/assessment/index.d.ts.map +1 -0
  199. package/dist/types/assessment/irt.d.ts +159 -0
  200. package/dist/types/assessment/irt.d.ts.map +1 -0
  201. package/dist/types/assessment/mastery-engine.d.ts +178 -0
  202. package/dist/types/assessment/mastery-engine.d.ts.map +1 -0
  203. package/dist/types/components/LearningPathView.d.ts +40 -0
  204. package/dist/types/components/LearningPathView.d.ts.map +1 -0
  205. package/dist/types/components/ProgressDashboard.d.ts +49 -0
  206. package/dist/types/components/ProgressDashboard.d.ts.map +1 -0
  207. package/dist/types/components/SkillCard.d.ts +34 -0
  208. package/dist/types/components/SkillCard.d.ts.map +1 -0
  209. package/dist/types/components/SkillExplorer.d.ts +39 -0
  210. package/dist/types/components/SkillExplorer.d.ts.map +1 -0
  211. package/dist/types/components/SkillGraph.d.ts +38 -0
  212. package/dist/types/components/SkillGraph.d.ts.map +1 -0
  213. package/dist/types/components/hooks.d.ts +187 -0
  214. package/dist/types/components/hooks.d.ts.map +1 -0
  215. package/dist/types/components/index.d.ts +59 -0
  216. package/dist/types/components/index.d.ts.map +1 -0
  217. package/dist/types/components/types.d.ts +410 -0
  218. package/dist/types/components/types.d.ts.map +1 -0
  219. package/dist/types/index.d.ts +2 -1
  220. package/dist/types/index.d.ts.map +1 -1
  221. package/dist/types/llm/adapters/anthropic.d.ts +84 -1
  222. package/dist/types/llm/adapters/anthropic.d.ts.map +1 -1
  223. package/dist/types/llm/adapters/gemini.d.ts +93 -6
  224. package/dist/types/llm/adapters/gemini.d.ts.map +1 -1
  225. package/dist/types/llm/adapters/index.d.ts +13 -4
  226. package/dist/types/llm/adapters/index.d.ts.map +1 -1
  227. package/dist/types/llm/adapters/ollama.d.ts +126 -1
  228. package/dist/types/llm/adapters/ollama.d.ts.map +1 -1
  229. package/dist/types/llm/adapters/openai.d.ts +104 -1
  230. package/dist/types/llm/adapters/openai.d.ts.map +1 -1
  231. package/dist/types/mcp/cli.d.ts +15 -0
  232. package/dist/types/mcp/cli.d.ts.map +1 -0
  233. package/dist/types/mcp/index.d.ts +32 -0
  234. package/dist/types/mcp/index.d.ts.map +1 -0
  235. package/dist/types/mcp/prompts.d.ts +27 -0
  236. package/dist/types/mcp/prompts.d.ts.map +1 -0
  237. package/dist/types/mcp/resources.d.ts +59 -0
  238. package/dist/types/mcp/resources.d.ts.map +1 -0
  239. package/dist/types/mcp/server.d.ts +136 -0
  240. package/dist/types/mcp/server.d.ts.map +1 -0
  241. package/dist/types/mcp/tools.d.ts +344 -0
  242. package/dist/types/mcp/tools.d.ts.map +1 -0
  243. package/dist/types/mcp/types.d.ts +137 -0
  244. package/dist/types/mcp/types.d.ts.map +1 -0
  245. package/dist/types/query/index.d.ts +8 -0
  246. package/dist/types/query/index.d.ts.map +1 -1
  247. package/dist/types/query/path.d.ts +102 -0
  248. package/dist/types/query/path.d.ts.map +1 -0
  249. package/dist/types/query/spaced-repetition.d.ts +135 -0
  250. package/dist/types/query/spaced-repetition.d.ts.map +1 -0
  251. package/dist/types/query/zpd.d.ts +97 -0
  252. package/dist/types/query/zpd.d.ts.map +1 -0
  253. package/dist/types/types/assessment.d.ts +512 -0
  254. package/dist/types/types/assessment.d.ts.map +1 -0
  255. package/dist/types/types/bloom.d.ts +4 -0
  256. package/dist/types/types/bloom.d.ts.map +1 -1
  257. package/dist/types/types/index.d.ts +3 -1
  258. package/dist/types/types/index.d.ts.map +1 -1
  259. package/package.json +48 -3
@@ -0,0 +1,344 @@
1
+ /**
2
+ * MCP Tool Definitions
3
+ *
4
+ * Tool implementations for LearnGraph MCP server.
5
+ * These tools enable Claude to interact with knowledge graphs.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import { z } from 'zod';
10
+ import type { GraphStorage } from '../types/index.js';
11
+ import type { McpToolResult } from './types.js';
12
+ export declare const ListSkillsSchema: z.ZodObject<{
13
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
14
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
15
+ bloomLevel: z.ZodOptional<z.ZodEnum<["remember", "understand", "apply", "analyze", "evaluate", "create"]>>;
16
+ tag: z.ZodOptional<z.ZodString>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ limit: number;
19
+ offset: number;
20
+ bloomLevel?: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create" | undefined;
21
+ tag?: string | undefined;
22
+ }, {
23
+ bloomLevel?: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create" | undefined;
24
+ limit?: number | undefined;
25
+ tag?: string | undefined;
26
+ offset?: number | undefined;
27
+ }>;
28
+ export declare const GetSkillSchema: z.ZodObject<{
29
+ skillId: z.ZodString;
30
+ }, "strip", z.ZodTypeAny, {
31
+ skillId: string;
32
+ }, {
33
+ skillId: string;
34
+ }>;
35
+ export declare const CreateSkillSchema: z.ZodObject<{
36
+ name: z.ZodString;
37
+ description: z.ZodOptional<z.ZodString>;
38
+ bloomLevel: z.ZodEnum<["remember", "understand", "apply", "analyze", "evaluate", "create"]>;
39
+ estimatedMinutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
40
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
41
+ }, "strip", z.ZodTypeAny, {
42
+ name: string;
43
+ bloomLevel: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create";
44
+ estimatedMinutes: number;
45
+ tags: string[];
46
+ description?: string | undefined;
47
+ }, {
48
+ name: string;
49
+ bloomLevel: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create";
50
+ description?: string | undefined;
51
+ estimatedMinutes?: number | undefined;
52
+ tags?: string[] | undefined;
53
+ }>;
54
+ export declare const SearchSkillsSchema: z.ZodObject<{
55
+ query: z.ZodString;
56
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ query: string;
59
+ limit: number;
60
+ }, {
61
+ query: string;
62
+ limit?: number | undefined;
63
+ }>;
64
+ export declare const GetPrerequisitesSchema: z.ZodObject<{
65
+ skillId: z.ZodString;
66
+ depth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ skillId: string;
69
+ depth: number;
70
+ }, {
71
+ skillId: string;
72
+ depth?: number | undefined;
73
+ }>;
74
+ export declare const GetDependentsSchema: z.ZodObject<{
75
+ skillId: z.ZodString;
76
+ depth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ skillId: string;
79
+ depth: number;
80
+ }, {
81
+ skillId: string;
82
+ depth?: number | undefined;
83
+ }>;
84
+ export declare const GetLearningPathSchema: z.ZodObject<{
85
+ targetSkillId: z.ZodString;
86
+ masteredSkillIds: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ targetSkillId: string;
89
+ masteredSkillIds: string[];
90
+ }, {
91
+ targetSkillId: string;
92
+ masteredSkillIds?: string[] | undefined;
93
+ }>;
94
+ export declare const GetZpdSkillsSchema: z.ZodObject<{
95
+ masteredSkillIds: z.ZodArray<z.ZodString, "many">;
96
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
97
+ }, "strip", z.ZodTypeAny, {
98
+ limit: number;
99
+ masteredSkillIds: string[];
100
+ }, {
101
+ masteredSkillIds: string[];
102
+ limit?: number | undefined;
103
+ }>;
104
+ export declare const CreatePrerequisiteSchema: z.ZodObject<{
105
+ sourceSkillId: z.ZodString;
106
+ targetSkillId: z.ZodString;
107
+ strength: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
108
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["hard", "soft", "recommended"]>>>;
109
+ }, "strip", z.ZodTypeAny, {
110
+ strength: number;
111
+ type: "hard" | "soft" | "recommended";
112
+ targetSkillId: string;
113
+ sourceSkillId: string;
114
+ }, {
115
+ targetSkillId: string;
116
+ sourceSkillId: string;
117
+ strength?: number | undefined;
118
+ type?: "hard" | "soft" | "recommended" | undefined;
119
+ }>;
120
+ export declare const GetGraphStatsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
121
+ export declare const ValidateCurriculumSchema: z.ZodObject<{
122
+ checkCycles: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
123
+ checkOrphans: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ checkCycles: boolean;
126
+ checkOrphans: boolean;
127
+ }, {
128
+ checkCycles?: boolean | undefined;
129
+ checkOrphans?: boolean | undefined;
130
+ }>;
131
+ /**
132
+ * List skills in the graph
133
+ */
134
+ export declare function listSkills(storage: GraphStorage, params: z.infer<typeof ListSkillsSchema>): Promise<McpToolResult>;
135
+ /**
136
+ * Get a single skill by ID
137
+ */
138
+ export declare function getSkill(storage: GraphStorage, params: z.infer<typeof GetSkillSchema>): Promise<McpToolResult>;
139
+ /**
140
+ * Create a new skill
141
+ */
142
+ export declare function createSkill(storage: GraphStorage, params: z.infer<typeof CreateSkillSchema>): Promise<McpToolResult>;
143
+ /**
144
+ * Search skills by name/description
145
+ */
146
+ export declare function searchSkills(storage: GraphStorage, params: z.infer<typeof SearchSkillsSchema>): Promise<McpToolResult>;
147
+ /**
148
+ * Get prerequisites for a skill
149
+ */
150
+ export declare function getPrerequisites(storage: GraphStorage, params: z.infer<typeof GetPrerequisitesSchema>): Promise<McpToolResult>;
151
+ /**
152
+ * Get dependents for a skill
153
+ */
154
+ export declare function getDependents(storage: GraphStorage, params: z.infer<typeof GetDependentsSchema>): Promise<McpToolResult>;
155
+ /**
156
+ * Get learning path to a target skill
157
+ */
158
+ export declare function getLearningPath(storage: GraphStorage, params: z.infer<typeof GetLearningPathSchema>): Promise<McpToolResult>;
159
+ /**
160
+ * Get skills in the Zone of Proximal Development
161
+ */
162
+ export declare function getZpdSkills(storage: GraphStorage, params: z.infer<typeof GetZpdSkillsSchema>): Promise<McpToolResult>;
163
+ /**
164
+ * Create a prerequisite relationship
165
+ */
166
+ export declare function createPrerequisite(storage: GraphStorage, params: z.infer<typeof CreatePrerequisiteSchema>): Promise<McpToolResult>;
167
+ /**
168
+ * Get graph statistics
169
+ */
170
+ export declare function getGraphStats(storage: GraphStorage, _params: z.infer<typeof GetGraphStatsSchema>): Promise<McpToolResult>;
171
+ /**
172
+ * Validate curriculum structure
173
+ */
174
+ export declare function validateCurriculum(storage: GraphStorage, params: z.infer<typeof ValidateCurriculumSchema>): Promise<McpToolResult>;
175
+ /**
176
+ * Export all tool definitions for MCP registration
177
+ */
178
+ export declare const TOOL_DEFINITIONS: {
179
+ readonly list_skills: {
180
+ readonly description: "List all skills in the knowledge graph with optional filtering by Bloom's Taxonomy level or tags.";
181
+ readonly inputSchema: z.ZodObject<{
182
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
183
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
184
+ bloomLevel: z.ZodOptional<z.ZodEnum<["remember", "understand", "apply", "analyze", "evaluate", "create"]>>;
185
+ tag: z.ZodOptional<z.ZodString>;
186
+ }, "strip", z.ZodTypeAny, {
187
+ limit: number;
188
+ offset: number;
189
+ bloomLevel?: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create" | undefined;
190
+ tag?: string | undefined;
191
+ }, {
192
+ bloomLevel?: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create" | undefined;
193
+ limit?: number | undefined;
194
+ tag?: string | undefined;
195
+ offset?: number | undefined;
196
+ }>;
197
+ readonly handler: typeof listSkills;
198
+ };
199
+ readonly get_skill: {
200
+ readonly description: "Get detailed information about a specific skill including its prerequisites and dependents.";
201
+ readonly inputSchema: z.ZodObject<{
202
+ skillId: z.ZodString;
203
+ }, "strip", z.ZodTypeAny, {
204
+ skillId: string;
205
+ }, {
206
+ skillId: string;
207
+ }>;
208
+ readonly handler: typeof getSkill;
209
+ };
210
+ readonly create_skill: {
211
+ readonly description: "Create a new skill in the knowledge graph with name, Bloom's level, and optional metadata.";
212
+ readonly inputSchema: z.ZodObject<{
213
+ name: z.ZodString;
214
+ description: z.ZodOptional<z.ZodString>;
215
+ bloomLevel: z.ZodEnum<["remember", "understand", "apply", "analyze", "evaluate", "create"]>;
216
+ estimatedMinutes: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
217
+ tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
218
+ }, "strip", z.ZodTypeAny, {
219
+ name: string;
220
+ bloomLevel: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create";
221
+ estimatedMinutes: number;
222
+ tags: string[];
223
+ description?: string | undefined;
224
+ }, {
225
+ name: string;
226
+ bloomLevel: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create";
227
+ description?: string | undefined;
228
+ estimatedMinutes?: number | undefined;
229
+ tags?: string[] | undefined;
230
+ }>;
231
+ readonly handler: typeof createSkill;
232
+ };
233
+ readonly search_skills: {
234
+ readonly description: "Search for skills by name, description, or tags using fuzzy matching.";
235
+ readonly inputSchema: z.ZodObject<{
236
+ query: z.ZodString;
237
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ query: string;
240
+ limit: number;
241
+ }, {
242
+ query: string;
243
+ limit?: number | undefined;
244
+ }>;
245
+ readonly handler: typeof searchSkills;
246
+ };
247
+ readonly get_prerequisites: {
248
+ readonly description: "Get all prerequisite skills for a given skill, optionally traversing multiple levels deep.";
249
+ readonly inputSchema: z.ZodObject<{
250
+ skillId: z.ZodString;
251
+ depth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ skillId: string;
254
+ depth: number;
255
+ }, {
256
+ skillId: string;
257
+ depth?: number | undefined;
258
+ }>;
259
+ readonly handler: typeof getPrerequisites;
260
+ };
261
+ readonly get_dependents: {
262
+ readonly description: "Get all skills that depend on a given skill as a prerequisite.";
263
+ readonly inputSchema: z.ZodObject<{
264
+ skillId: z.ZodString;
265
+ depth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
266
+ }, "strip", z.ZodTypeAny, {
267
+ skillId: string;
268
+ depth: number;
269
+ }, {
270
+ skillId: string;
271
+ depth?: number | undefined;
272
+ }>;
273
+ readonly handler: typeof getDependents;
274
+ };
275
+ readonly get_learning_path: {
276
+ readonly description: "Generate an optimal learning path to a target skill, considering already mastered skills.";
277
+ readonly inputSchema: z.ZodObject<{
278
+ targetSkillId: z.ZodString;
279
+ masteredSkillIds: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ targetSkillId: string;
282
+ masteredSkillIds: string[];
283
+ }, {
284
+ targetSkillId: string;
285
+ masteredSkillIds?: string[] | undefined;
286
+ }>;
287
+ readonly handler: typeof getLearningPath;
288
+ };
289
+ readonly get_zpd_skills: {
290
+ readonly description: "Get skills in the learner's Zone of Proximal Development - skills they're ready to learn based on mastered prerequisites.";
291
+ readonly inputSchema: z.ZodObject<{
292
+ masteredSkillIds: z.ZodArray<z.ZodString, "many">;
293
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
294
+ }, "strip", z.ZodTypeAny, {
295
+ limit: number;
296
+ masteredSkillIds: string[];
297
+ }, {
298
+ masteredSkillIds: string[];
299
+ limit?: number | undefined;
300
+ }>;
301
+ readonly handler: typeof getZpdSkills;
302
+ };
303
+ readonly create_prerequisite: {
304
+ readonly description: "Create a prerequisite relationship between two skills (source skill is required before target skill).";
305
+ readonly inputSchema: z.ZodObject<{
306
+ sourceSkillId: z.ZodString;
307
+ targetSkillId: z.ZodString;
308
+ strength: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
309
+ type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["hard", "soft", "recommended"]>>>;
310
+ }, "strip", z.ZodTypeAny, {
311
+ strength: number;
312
+ type: "hard" | "soft" | "recommended";
313
+ targetSkillId: string;
314
+ sourceSkillId: string;
315
+ }, {
316
+ targetSkillId: string;
317
+ sourceSkillId: string;
318
+ strength?: number | undefined;
319
+ type?: "hard" | "soft" | "recommended" | undefined;
320
+ }>;
321
+ readonly handler: typeof createPrerequisite;
322
+ };
323
+ readonly get_graph_stats: {
324
+ readonly description: "Get statistics about the knowledge graph including skill counts, edge counts, and Bloom's Taxonomy distribution.";
325
+ readonly inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
326
+ readonly handler: typeof getGraphStats;
327
+ };
328
+ readonly validate_curriculum: {
329
+ readonly description: "Validate the curriculum structure checking for cycles and orphaned skills.";
330
+ readonly inputSchema: z.ZodObject<{
331
+ checkCycles: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
332
+ checkOrphans: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
333
+ }, "strip", z.ZodTypeAny, {
334
+ checkCycles: boolean;
335
+ checkOrphans: boolean;
336
+ }, {
337
+ checkCycles?: boolean | undefined;
338
+ checkOrphans?: boolean | undefined;
339
+ }>;
340
+ readonly handler: typeof validateCurriculum;
341
+ };
342
+ };
343
+ export type ToolName = keyof typeof TOOL_DEFINITIONS;
344
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * MCP Server Type Definitions
3
+ *
4
+ * Types for the LearnGraph MCP server integration.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import type { GraphStorage } from '../types/index.js';
9
+ /**
10
+ * MCP server configuration
11
+ */
12
+ export interface McpServerConfig {
13
+ /** Storage backend for graph operations */
14
+ storage: GraphStorage;
15
+ /** Server name (default: learngraph) */
16
+ name?: string;
17
+ /** Server version (default: from package.json) */
18
+ version?: string;
19
+ /** Enable debug logging */
20
+ debug?: boolean;
21
+ }
22
+ /**
23
+ * MCP tool result content
24
+ */
25
+ export interface McpTextContent {
26
+ type: 'text';
27
+ text: string;
28
+ }
29
+ export interface McpImageContent {
30
+ type: 'image';
31
+ data: string;
32
+ mimeType: string;
33
+ }
34
+ export type McpContent = McpTextContent | McpImageContent;
35
+ /**
36
+ * MCP tool result
37
+ */
38
+ export interface McpToolResult {
39
+ content: McpContent[];
40
+ isError?: boolean;
41
+ }
42
+ /**
43
+ * MCP resource metadata
44
+ */
45
+ export interface McpResourceMeta {
46
+ uri: string;
47
+ name: string;
48
+ description?: string;
49
+ mimeType?: string;
50
+ }
51
+ /**
52
+ * MCP prompt argument
53
+ */
54
+ export interface McpPromptArgument {
55
+ name: string;
56
+ description?: string;
57
+ required?: boolean;
58
+ }
59
+ /**
60
+ * MCP prompt definition
61
+ */
62
+ export interface McpPromptMeta {
63
+ name: string;
64
+ description?: string;
65
+ arguments?: McpPromptArgument[];
66
+ }
67
+ /**
68
+ * Learner profile for MCP operations
69
+ */
70
+ export interface LearnerProfile {
71
+ id: string;
72
+ masteredSkills: string[];
73
+ currentGoals?: string[];
74
+ preferences?: {
75
+ learningStyle?: 'visual' | 'auditory' | 'reading' | 'kinesthetic';
76
+ sessionDuration?: number;
77
+ difficultyPreference?: 'easy' | 'medium' | 'hard' | 'adaptive';
78
+ };
79
+ }
80
+ /**
81
+ * Learning path result
82
+ */
83
+ export interface LearningPathResult {
84
+ path: Array<{
85
+ skillId: string;
86
+ skillName: string;
87
+ bloomLevel: string;
88
+ estimatedMinutes: number;
89
+ isPrerequisite: boolean;
90
+ }>;
91
+ totalEstimatedMinutes: number;
92
+ totalSkills: number;
93
+ }
94
+ /**
95
+ * ZPD (Zone of Proximal Development) result
96
+ */
97
+ export interface ZpdResult {
98
+ readyToLearn: Array<{
99
+ skillId: string;
100
+ skillName: string;
101
+ bloomLevel: string;
102
+ readinessScore: number;
103
+ missingPrerequisites: string[];
104
+ }>;
105
+ almostReady: Array<{
106
+ skillId: string;
107
+ skillName: string;
108
+ prerequisitesNeeded: number;
109
+ }>;
110
+ }
111
+ /**
112
+ * Skill search result
113
+ */
114
+ export interface SkillSearchResult {
115
+ skills: Array<{
116
+ id: string;
117
+ name: string;
118
+ description?: string;
119
+ bloomLevel: string;
120
+ tags: string[];
121
+ matchScore: number;
122
+ }>;
123
+ totalCount: number;
124
+ }
125
+ /**
126
+ * Graph statistics
127
+ */
128
+ export interface GraphStatistics {
129
+ totalSkills: number;
130
+ totalEdges: number;
131
+ averagePrerequisites: number;
132
+ maxDepth: number;
133
+ rootSkills: number;
134
+ leafSkills: number;
135
+ bloomDistribution: Record<string, number>;
136
+ }
137
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,15 @@
1
1
  /**
2
2
  * Query and traversal engines
3
3
  *
4
+ * This module provides intelligent query engines for:
5
+ * - Zone of Proximal Development (ZPD) calculation
6
+ * - Learning path generation
7
+ * - Spaced repetition scheduling
8
+ *
4
9
  * @packageDocumentation
5
10
  */
6
11
  export type { QueryOperator, QueryFilter, QuerySort, QueryPagination, SkillQuery, ZPDResult, LearningPath, LearningSession, ReviewSchedule, ReviewItem, ZPDOptions, PathOptions, ReviewOptions, } from '../types/query.js';
12
+ export { ZPDCalculator, createZPDCalculator, ZPD_DEFAULTS, type LearnerProfile, } from './zpd.js';
13
+ export { PathGenerator, createPathGenerator, PATH_DEFAULTS, type LearnerState, } from './path.js';
14
+ export { SpacedRepetitionScheduler, createSpacedRepetitionScheduler, calculateSM2, REVIEW_DEFAULTS, SM2_CONSTANTS, type ReviewQuality, type ReviewState, type SM2Result, } from './spaced-repetition.js';
7
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/query/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,eAAe,EACf,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/query/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,eAAe,EACf,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,EACV,WAAW,EACX,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,KAAK,cAAc,GACpB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,YAAY,EACZ,eAAe,EACf,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,SAAS,GACf,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Learning Path Generator
3
+ *
4
+ * Generates personalized learning paths from current state to target skills.
5
+ * Uses topological sorting and groups skills into manageable sessions.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import type { SkillId } from '../types/skill.js';
10
+ import type { MasteryState } from '../types/mastery.js';
11
+ import type { GraphStorage } from '../types/storage.js';
12
+ import type { LearningPath, PathOptions } from '../types/query.js';
13
+ /**
14
+ * Default options for path generation
15
+ */
16
+ export declare const PATH_DEFAULTS: Required<PathOptions>;
17
+ /**
18
+ * Learner state for path generation
19
+ */
20
+ export interface LearnerState {
21
+ /** Mastery states for skills (keyed by skill ID) */
22
+ masteryStates: Map<SkillId, MasteryState>;
23
+ }
24
+ /**
25
+ * Learning Path Generator
26
+ *
27
+ * Generates optimal learning paths to reach target skills by:
28
+ * 1. Finding all unmastered prerequisites
29
+ * 2. Topologically sorting based on dependencies
30
+ * 3. Grouping into sessions based on cognitive load
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const generator = new PathGenerator(storage);
35
+ *
36
+ * const path = await generator.generatePath(
37
+ * 'advanced-skill',
38
+ * learnerState,
39
+ * { sessionMinutes: 45 }
40
+ * );
41
+ *
42
+ * console.log(`Path has ${path.skills.length} skills`);
43
+ * console.log(`Estimated time: ${path.totalMinutes} minutes`);
44
+ * ```
45
+ */
46
+ export declare class PathGenerator {
47
+ private readonly storage;
48
+ constructor(storage: GraphStorage);
49
+ /**
50
+ * Generate a learning path to a target skill
51
+ *
52
+ * @param targetId - The skill to learn
53
+ * @param learner - Current learner state
54
+ * @param options - Path generation options
55
+ * @returns Learning path with skills grouped into sessions
56
+ */
57
+ generatePath(targetId: SkillId, learner: LearnerState, options?: PathOptions): Promise<LearningPath | null>;
58
+ /**
59
+ * Generate paths to multiple target skills
60
+ *
61
+ * @param targetIds - Skills to learn
62
+ * @param learner - Current learner state
63
+ * @param options - Path generation options
64
+ * @returns Array of learning paths
65
+ */
66
+ generatePaths(targetIds: SkillId[], learner: LearnerState, options?: PathOptions): Promise<LearningPath[]>;
67
+ /**
68
+ * Get a merged learning path for multiple targets
69
+ * Combines all required skills and eliminates duplicates
70
+ */
71
+ generateMergedPath(targetIds: SkillId[], learner: LearnerState, options?: PathOptions): Promise<LearningPath | null>;
72
+ /**
73
+ * Get all transitive prerequisites of a skill
74
+ */
75
+ private getTransitivePrerequisites;
76
+ /**
77
+ * Filter skills to only unmastered ones
78
+ */
79
+ private filterUnmastered;
80
+ /**
81
+ * Topologically sort skills based on prerequisites
82
+ * Skills with no unmastered prerequisites come first
83
+ */
84
+ private topologicalSort;
85
+ /**
86
+ * Group skills into learning sessions based on target duration
87
+ */
88
+ private groupIntoSessions;
89
+ /**
90
+ * Create a learning session from a group of skills
91
+ */
92
+ private createSession;
93
+ /**
94
+ * Determine the focus/theme of a session
95
+ */
96
+ private determineFocus;
97
+ }
98
+ /**
99
+ * Create a path generator
100
+ */
101
+ export declare function createPathGenerator(storage: GraphStorage): PathGenerator;
102
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/query/path.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAa,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAmB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEpF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,WAAW,CAI/C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAElD;;;;;;;OAOG;IACG,YAAY,CAChB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA4D/B;;;;;;;OAOG;IACG,aAAa,CACjB,SAAS,EAAE,OAAO,EAAE,EACpB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,YAAY,EAAE,CAAC;IAa1B;;;OAGG;IACG,kBAAkB,CACtB,SAAS,EAAE,OAAO,EAAE,EACpB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAiE/B;;OAEG;YACW,0BAA0B;IAyBxC;;OAEG;YACW,gBAAgB;IAmB9B;;;OAGG;YACW,eAAe;IA0C7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,OAAO,CAAC,cAAc;CAqBvB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa,CAExE"}