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