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,419 @@
1
+ /**
2
+ * MCP Prompt Templates
3
+ *
4
+ * Educational prompt templates for curriculum building and learning path generation.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ // ─────────────────────────────────────────────────────────────────────────────
9
+ // Prompt Definitions
10
+ // ─────────────────────────────────────────────────────────────────────────────
11
+ /**
12
+ * All available prompt templates
13
+ */
14
+ export const PROMPT_DEFINITIONS = {
15
+ analyze_syllabus: {
16
+ name: 'analyze_syllabus',
17
+ description: 'Analyze a course syllabus and extract skills with Bloom\'s Taxonomy levels',
18
+ arguments: [
19
+ {
20
+ name: 'syllabus_text',
21
+ description: 'The syllabus content to analyze',
22
+ required: true,
23
+ },
24
+ {
25
+ name: 'course_name',
26
+ description: 'Name of the course (optional)',
27
+ required: false,
28
+ },
29
+ ],
30
+ template: (args) => `You are an expert curriculum designer and educational psychologist. Analyze the following syllabus and extract all learning objectives as discrete skills.
31
+
32
+ For each skill, determine:
33
+ 1. A clear, concise skill name
34
+ 2. A description of what the learner will be able to do
35
+ 3. The Bloom's Taxonomy level (remember, understand, apply, analyze, evaluate, create)
36
+ 4. Estimated time to master (in minutes)
37
+ 5. Relevant tags for categorization
38
+
39
+ Course: ${args.course_name || 'Unknown'}
40
+
41
+ Syllabus:
42
+ ${args.syllabus_text}
43
+
44
+ Use the create_skill tool to add each skill to the knowledge graph. After creating skills, identify prerequisite relationships and use create_prerequisite to link them.
45
+
46
+ Focus on creating a coherent learning progression that respects cognitive load and builds from foundational to advanced concepts.`,
47
+ },
48
+ generate_learning_path: {
49
+ name: 'generate_learning_path',
50
+ description: 'Generate a personalized learning path for a student',
51
+ arguments: [
52
+ {
53
+ name: 'target_skill',
54
+ description: 'The skill the learner wants to achieve',
55
+ required: true,
56
+ },
57
+ {
58
+ name: 'mastered_skills',
59
+ description: 'Comma-separated list of skills already mastered',
60
+ required: false,
61
+ },
62
+ {
63
+ name: 'time_available',
64
+ description: 'Available study time per session in minutes',
65
+ required: false,
66
+ },
67
+ ],
68
+ template: (args) => `You are a personalized learning coach. Create an optimal learning path for a student.
69
+
70
+ Target Skill: ${args.target_skill}
71
+ Already Mastered: ${args.mastered_skills || 'None specified'}
72
+ Time Available: ${args.time_available || '30'} minutes per session
73
+
74
+ First, use the search_skills tool to find the target skill. Then use get_learning_path to generate the recommended path.
75
+
76
+ For each skill in the path:
77
+ 1. Explain why this skill is necessary
78
+ 2. Suggest learning resources or activities
79
+ 3. Provide practice exercises appropriate for the Bloom's level
80
+ 4. Estimate time needed based on the skill's complexity
81
+
82
+ Present the path as a numbered journey, highlighting:
83
+ - Prerequisites that must be completed first
84
+ - Skills in the Zone of Proximal Development
85
+ - The final target skill
86
+
87
+ Include motivational checkpoints and suggest review intervals based on spaced repetition principles.`,
88
+ },
89
+ identify_prerequisites: {
90
+ name: 'identify_prerequisites',
91
+ description: 'Identify prerequisite relationships between skills',
92
+ arguments: [
93
+ {
94
+ name: 'skill_list',
95
+ description: 'Comma-separated list of skill names to analyze',
96
+ required: true,
97
+ },
98
+ {
99
+ name: 'domain',
100
+ description: 'The subject domain (e.g., mathematics, programming, biology)',
101
+ required: false,
102
+ },
103
+ ],
104
+ template: (args) => `You are an expert in educational prerequisite mapping. Analyze the following skills and determine which ones are prerequisites for others.
105
+
106
+ Skills to analyze: ${args.skill_list}
107
+ Domain: ${args.domain || 'General'}
108
+
109
+ For each potential prerequisite relationship, consider:
110
+ 1. **Conceptual Dependency**: Does understanding skill A require understanding skill B first?
111
+ 2. **Procedural Dependency**: Does performing skill A require the ability to perform skill B?
112
+ 3. **Strength**: How essential is this prerequisite? (0.0-1.0)
113
+ - 1.0: Absolutely required (hard prerequisite)
114
+ - 0.7-0.9: Strongly recommended
115
+ - 0.4-0.6: Helpful but not essential (soft prerequisite)
116
+ 4. **Type**: Is this a hard, soft, or recommended prerequisite?
117
+
118
+ Use the search_skills tool to find each skill, then use create_prerequisite to establish the relationships.
119
+
120
+ Avoid creating cycles in the dependency graph. If A → B and B → C, don't create A → C unless there's a direct conceptual reason.`,
121
+ },
122
+ zpd_recommendations: {
123
+ name: 'zpd_recommendations',
124
+ description: 'Get personalized skill recommendations in the Zone of Proximal Development',
125
+ arguments: [
126
+ {
127
+ name: 'learner_profile',
128
+ description: 'JSON description of learner including mastered skills and goals',
129
+ required: true,
130
+ },
131
+ {
132
+ name: 'session_time',
133
+ description: 'Available time for this learning session in minutes',
134
+ required: false,
135
+ },
136
+ ],
137
+ template: (args) => `You are an adaptive learning system implementing Vygotsky's Zone of Proximal Development (ZPD).
138
+
139
+ Learner Profile: ${args.learner_profile}
140
+ Session Time: ${args.session_time || '45'} minutes
141
+
142
+ Use the get_zpd_skills tool with the learner's mastered skill IDs to find skills they're ready to learn.
143
+
144
+ For each recommended skill:
145
+ 1. Explain why this skill is in their ZPD
146
+ 2. Connect it to skills they've already mastered
147
+ 3. Suggest scaffolding strategies
148
+ 4. Provide concrete activities appropriate for the Bloom's level:
149
+ - Remember: Flashcards, recall exercises
150
+ - Understand: Explanations, summarizations
151
+ - Apply: Practice problems, simulations
152
+ - Analyze: Case studies, comparisons
153
+ - Evaluate: Critiques, decision-making scenarios
154
+ - Create: Projects, original work
155
+
156
+ Prioritize skills that:
157
+ - Have all prerequisites mastered
158
+ - Align with the learner's stated goals
159
+ - Fit within the available session time
160
+ - Build toward more advanced competencies`,
161
+ },
162
+ curriculum_validation: {
163
+ name: 'curriculum_validation',
164
+ description: 'Validate a curriculum for pedagogical soundness',
165
+ arguments: [
166
+ {
167
+ name: 'focus_area',
168
+ description: 'Specific area to focus validation on (optional)',
169
+ required: false,
170
+ },
171
+ ],
172
+ template: (args) => `You are an educational quality assurance specialist. Validate the current curriculum for pedagogical soundness.
173
+
174
+ Focus Area: ${args.focus_area || 'Complete curriculum'}
175
+
176
+ Use the following tools in sequence:
177
+ 1. validate_curriculum - Check for structural issues
178
+ 2. get_graph_stats - Understand the curriculum structure
179
+ 3. list_skills - Review all skills
180
+
181
+ Evaluate against these criteria:
182
+
183
+ **Structural Integrity**
184
+ - No circular dependencies
185
+ - All skills are reachable from entry points
186
+ - No orphaned skills without connections
187
+
188
+ **Bloom's Taxonomy Progression**
189
+ - Lower levels generally precede higher levels
190
+ - Appropriate distribution across cognitive levels
191
+ - Complex skills have adequate foundational prerequisites
192
+
193
+ **Time Estimates**
194
+ - Reasonable time allocations for each skill
195
+ - Total learning time is feasible
196
+ - Complex topics have sufficient depth
197
+
198
+ **Coverage**
199
+ - No significant gaps in the learning progression
200
+ - Skills build logically toward competency
201
+ - Tags and categories are consistent
202
+
203
+ Provide a detailed report with:
204
+ - Summary of findings
205
+ - Critical issues requiring immediate attention
206
+ - Recommendations for improvement
207
+ - Suggestions for additional skills or relationships`,
208
+ },
209
+ gap_analysis: {
210
+ name: 'gap_analysis',
211
+ description: 'Analyze gaps between learner\'s current state and target competencies',
212
+ arguments: [
213
+ {
214
+ name: 'current_skills',
215
+ description: 'Comma-separated list of currently mastered skills',
216
+ required: true,
217
+ },
218
+ {
219
+ name: 'target_competency',
220
+ description: 'The target competency or role requirements',
221
+ required: true,
222
+ },
223
+ ],
224
+ template: (args) => `You are a competency gap analyst. Analyze the distance between a learner's current state and target competency.
225
+
226
+ Current Skills: ${args.current_skills}
227
+ Target Competency: ${args.target_competency}
228
+
229
+ Steps:
230
+ 1. Use search_skills to find skills matching the target competency
231
+ 2. For each target skill, use get_learning_path to find required prerequisites
232
+ 3. Compare against the learner's current skills
233
+ 4. Calculate the skill gap
234
+
235
+ Provide analysis including:
236
+
237
+ **Gap Summary**
238
+ - Total skills needed to reach target
239
+ - Estimated total learning time
240
+ - Percentage of path already completed
241
+
242
+ **Priority Skills**
243
+ - Critical skills blocking multiple pathways
244
+ - Quick wins (easily achievable with current knowledge)
245
+ - High-impact skills that unlock many dependents
246
+
247
+ **Learning Roadmap**
248
+ - Suggested order of skill acquisition
249
+ - Milestones and checkpoints
250
+ - Estimated timeline with realistic pacing
251
+
252
+ **Risk Assessment**
253
+ - Skills that may be particularly challenging
254
+ - Potential bottlenecks in the learning path
255
+ - Prerequisites that may need reinforcement`,
256
+ },
257
+ create_assessment: {
258
+ name: 'create_assessment',
259
+ description: 'Create an assessment for a specific skill',
260
+ arguments: [
261
+ {
262
+ name: 'skill_id',
263
+ description: 'The skill ID to assess',
264
+ required: true,
265
+ },
266
+ {
267
+ name: 'difficulty',
268
+ description: 'Assessment difficulty (easy, medium, hard)',
269
+ required: false,
270
+ },
271
+ {
272
+ name: 'question_count',
273
+ description: 'Number of questions to generate',
274
+ required: false,
275
+ },
276
+ ],
277
+ template: (args) => `You are an assessment designer creating formative assessments aligned with learning objectives.
278
+
279
+ Skill ID: ${args.skill_id}
280
+ Difficulty: ${args.difficulty || 'medium'}
281
+ Question Count: ${args.question_count || '5'}
282
+
283
+ First, use get_skill to retrieve the skill details including its Bloom's Taxonomy level.
284
+
285
+ Design questions that:
286
+
287
+ 1. **Align with Bloom's Level**
288
+ - Remember: Recognition, recall questions
289
+ - Understand: Explanation, interpretation
290
+ - Apply: Problem-solving, procedural
291
+ - Analyze: Pattern identification, comparisons
292
+ - Evaluate: Judgment, critique questions
293
+ - Create: Open-ended, design challenges
294
+
295
+ 2. **Use Appropriate Formats**
296
+ - Multiple choice for lower Bloom's levels
297
+ - Short answer for mid-levels
298
+ - Extended response for higher levels
299
+ - Performance tasks for application/creation
300
+
301
+ 3. **Include Scaffolding**
302
+ - Start with easier questions
303
+ - Build complexity gradually
304
+ - Provide hints or partial solutions where appropriate
305
+
306
+ 4. **Enable Mastery Assessment**
307
+ - Clear success criteria
308
+ - Rubrics for subjective questions
309
+ - Passing threshold aligned with skill's mastery threshold
310
+
311
+ Output the assessment as a structured JSON with:
312
+ - Question text
313
+ - Question type
314
+ - Correct answer(s)
315
+ - Distractors (for multiple choice)
316
+ - Point value
317
+ - Bloom's level targeted`,
318
+ },
319
+ explain_concept: {
320
+ name: 'explain_concept',
321
+ description: 'Generate a multi-level explanation of a concept from the curriculum',
322
+ arguments: [
323
+ {
324
+ name: 'skill_id',
325
+ description: 'The skill ID to explain',
326
+ required: true,
327
+ },
328
+ {
329
+ name: 'learner_level',
330
+ description: 'Learner level (beginner, intermediate, advanced)',
331
+ required: false,
332
+ },
333
+ ],
334
+ template: (args) => `You are an expert educator skilled at explaining concepts at multiple levels of complexity.
335
+
336
+ Skill ID: ${args.skill_id}
337
+ Learner Level: ${args.learner_level || 'intermediate'}
338
+
339
+ First, use get_skill to retrieve the skill details and use get_prerequisites to understand the foundational concepts.
340
+
341
+ Create a comprehensive explanation including:
342
+
343
+ **Core Concept (ELI5)**
344
+ A simple explanation that a beginner could understand. Use analogies and everyday examples.
345
+
346
+ **Technical Definition**
347
+ A precise, formal definition suitable for reference.
348
+
349
+ **Prerequisites Recap**
350
+ Brief review of prerequisite concepts that support understanding.
351
+
352
+ **Detailed Explanation**
353
+ Step-by-step breakdown appropriate for the learner's level.
354
+
355
+ **Examples**
356
+ - Simple worked example
357
+ - More complex example showing edge cases
358
+ - Common mistakes to avoid
359
+
360
+ **Connections**
361
+ - How this skill relates to other skills in the graph
362
+ - Real-world applications
363
+ - Why this skill matters
364
+
365
+ **Practice Suggestions**
366
+ - Activities to reinforce understanding
367
+ - Resources for further learning
368
+ - Next skills to explore in the learning path
369
+
370
+ Adapt language complexity, example sophistication, and depth based on the specified learner level.`,
371
+ },
372
+ };
373
+ /**
374
+ * Get prompt metadata for MCP listing
375
+ */
376
+ export function getPromptMetas() {
377
+ return Object.values(PROMPT_DEFINITIONS).map((def) => {
378
+ const result = {
379
+ name: def.name,
380
+ };
381
+ if (def.description !== undefined) {
382
+ result.description = def.description;
383
+ }
384
+ if (def.arguments !== undefined) {
385
+ result.arguments = def.arguments;
386
+ }
387
+ return result;
388
+ });
389
+ }
390
+ /**
391
+ * Render a prompt with arguments
392
+ */
393
+ export function renderPrompt(promptName, args) {
394
+ const prompt = PROMPT_DEFINITIONS[promptName];
395
+ if (!prompt) {
396
+ return null;
397
+ }
398
+ return prompt.template(args);
399
+ }
400
+ /**
401
+ * Get a prompt definition by name
402
+ */
403
+ export function getPromptDefinition(promptName) {
404
+ const def = PROMPT_DEFINITIONS[promptName];
405
+ if (!def) {
406
+ return null;
407
+ }
408
+ const result = {
409
+ name: def.name,
410
+ };
411
+ if (def.description !== undefined) {
412
+ result.description = def.description;
413
+ }
414
+ if (def.arguments !== undefined) {
415
+ result.arguments = def.arguments;
416
+ }
417
+ return result;
418
+ }
419
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/mcp/prompts.ts"],"names":[],"mappings":"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"}