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.
- package/dist/cjs/api/routes/analytics.js +288 -0
- package/dist/cjs/api/routes/analytics.js.map +1 -0
- package/dist/cjs/api/routes/assessments.js +269 -0
- package/dist/cjs/api/routes/assessments.js.map +1 -0
- package/dist/cjs/api/routes/curriculum.js +345 -0
- package/dist/cjs/api/routes/curriculum.js.map +1 -0
- package/dist/cjs/api/routes/edges.js +162 -0
- package/dist/cjs/api/routes/edges.js.map +1 -0
- package/dist/cjs/api/routes/explore.js +224 -0
- package/dist/cjs/api/routes/explore.js.map +1 -0
- package/dist/cjs/api/routes/learners.js +324 -0
- package/dist/cjs/api/routes/learners.js.map +1 -0
- package/dist/cjs/api/routes/me.js +404 -0
- package/dist/cjs/api/routes/me.js.map +1 -0
- package/dist/cjs/api/routes/skills.js +319 -0
- package/dist/cjs/api/routes/skills.js.map +1 -0
- package/dist/cjs/api/server.js +185 -0
- package/dist/cjs/api/server.js.map +1 -0
- package/dist/cjs/api/types.js +10 -0
- package/dist/cjs/api/types.js.map +1 -0
- package/dist/cjs/assessment/adaptive.js +390 -0
- package/dist/cjs/assessment/adaptive.js.map +1 -0
- package/dist/cjs/assessment/bkt.js +362 -0
- package/dist/cjs/assessment/bkt.js.map +1 -0
- package/dist/cjs/assessment/index.js +54 -0
- package/dist/cjs/assessment/index.js.map +1 -0
- package/dist/cjs/assessment/irt.js +420 -0
- package/dist/cjs/assessment/irt.js.map +1 -0
- package/dist/cjs/assessment/mastery-engine.js +411 -0
- package/dist/cjs/assessment/mastery-engine.js.map +1 -0
- package/dist/cjs/components/LearningPathView.js +320 -0
- package/dist/cjs/components/LearningPathView.js.map +1 -0
- package/dist/cjs/components/ProgressDashboard.js +308 -0
- package/dist/cjs/components/ProgressDashboard.js.map +1 -0
- package/dist/cjs/components/SkillCard.js +264 -0
- package/dist/cjs/components/SkillCard.js.map +1 -0
- package/dist/cjs/components/SkillExplorer.js +401 -0
- package/dist/cjs/components/SkillExplorer.js.map +1 -0
- package/dist/cjs/components/SkillGraph.js +435 -0
- package/dist/cjs/components/SkillGraph.js.map +1 -0
- package/dist/cjs/components/hooks.js +510 -0
- package/dist/cjs/components/hooks.js.map +1 -0
- package/dist/cjs/components/index.js +77 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/components/types.js +34 -0
- package/dist/cjs/components/types.js.map +1 -0
- package/dist/cjs/index.js +36 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/llm/adapters/anthropic.js +91 -3
- package/dist/cjs/llm/adapters/anthropic.js.map +1 -1
- package/dist/cjs/llm/adapters/gemini.js +101 -8
- package/dist/cjs/llm/adapters/gemini.js.map +1 -1
- package/dist/cjs/llm/adapters/index.js +42 -1
- package/dist/cjs/llm/adapters/index.js.map +1 -1
- package/dist/cjs/llm/adapters/ollama.js +120 -3
- package/dist/cjs/llm/adapters/ollama.js.map +1 -1
- package/dist/cjs/llm/adapters/openai.js +108 -2
- package/dist/cjs/llm/adapters/openai.js.map +1 -1
- package/dist/cjs/mcp/cli.js +302 -0
- package/dist/cjs/mcp/cli.js.map +1 -0
- package/dist/cjs/mcp/index.js +79 -0
- package/dist/cjs/mcp/index.js.map +1 -0
- package/dist/cjs/mcp/prompts.js +425 -0
- package/dist/cjs/mcp/prompts.js.map +1 -0
- package/dist/cjs/mcp/resources.js +371 -0
- package/dist/cjs/mcp/resources.js.map +1 -0
- package/dist/cjs/mcp/server.js +410 -0
- package/dist/cjs/mcp/server.js.map +1 -0
- package/dist/cjs/mcp/tools.js +612 -0
- package/dist/cjs/mcp/tools.js.map +1 -0
- package/dist/cjs/mcp/types.js +10 -0
- package/dist/cjs/mcp/types.js.map +1 -0
- package/dist/cjs/query/index.js +23 -4
- package/dist/cjs/query/index.js.map +1 -1
- package/dist/cjs/query/path.js +313 -0
- package/dist/cjs/query/path.js.map +1 -0
- package/dist/cjs/query/spaced-repetition.js +298 -0
- package/dist/cjs/query/spaced-repetition.js.map +1 -0
- package/dist/cjs/query/zpd.js +216 -0
- package/dist/cjs/query/zpd.js.map +1 -0
- package/dist/cjs/types/assessment.js +46 -0
- package/dist/cjs/types/assessment.js.map +1 -0
- package/dist/cjs/types/bloom.js +12 -1
- package/dist/cjs/types/bloom.js.map +1 -1
- package/dist/cjs/types/index.js +7 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/esm/api/routes/analytics.js +285 -0
- package/dist/esm/api/routes/analytics.js.map +1 -0
- package/dist/esm/api/routes/assessments.js +266 -0
- package/dist/esm/api/routes/assessments.js.map +1 -0
- package/dist/esm/api/routes/curriculum.js +342 -0
- package/dist/esm/api/routes/curriculum.js.map +1 -0
- package/dist/esm/api/routes/edges.js +159 -0
- package/dist/esm/api/routes/edges.js.map +1 -0
- package/dist/esm/api/routes/explore.js +221 -0
- package/dist/esm/api/routes/explore.js.map +1 -0
- package/dist/esm/api/routes/learners.js +321 -0
- package/dist/esm/api/routes/learners.js.map +1 -0
- package/dist/esm/api/routes/me.js +401 -0
- package/dist/esm/api/routes/me.js.map +1 -0
- package/dist/esm/api/routes/skills.js +316 -0
- package/dist/esm/api/routes/skills.js.map +1 -0
- package/dist/esm/api/server.js +179 -0
- package/dist/esm/api/server.js.map +1 -0
- package/dist/esm/api/types.js +9 -0
- package/dist/esm/api/types.js.map +1 -0
- package/dist/esm/assessment/adaptive.js +384 -0
- package/dist/esm/assessment/adaptive.js.map +1 -0
- package/dist/esm/assessment/bkt.js +354 -0
- package/dist/esm/assessment/bkt.js.map +1 -0
- package/dist/esm/assessment/index.js +21 -0
- package/dist/esm/assessment/index.js.map +1 -0
- package/dist/esm/assessment/irt.js +406 -0
- package/dist/esm/assessment/irt.js.map +1 -0
- package/dist/esm/assessment/mastery-engine.js +406 -0
- package/dist/esm/assessment/mastery-engine.js.map +1 -0
- package/dist/esm/components/LearningPathView.js +316 -0
- package/dist/esm/components/LearningPathView.js.map +1 -0
- package/dist/esm/components/ProgressDashboard.js +304 -0
- package/dist/esm/components/ProgressDashboard.js.map +1 -0
- package/dist/esm/components/SkillCard.js +260 -0
- package/dist/esm/components/SkillCard.js.map +1 -0
- package/dist/esm/components/SkillExplorer.js +397 -0
- package/dist/esm/components/SkillExplorer.js.map +1 -0
- package/dist/esm/components/SkillGraph.js +398 -0
- package/dist/esm/components/SkillGraph.js.map +1 -0
- package/dist/esm/components/hooks.js +502 -0
- package/dist/esm/components/hooks.js.map +1 -0
- package/dist/esm/components/index.js +61 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/components/types.js +31 -0
- package/dist/esm/components/types.js.map +1 -0
- package/dist/esm/index.js +13 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/llm/adapters/anthropic.js +88 -2
- package/dist/esm/llm/adapters/anthropic.js.map +1 -1
- package/dist/esm/llm/adapters/gemini.js +98 -7
- package/dist/esm/llm/adapters/gemini.js.map +1 -1
- package/dist/esm/llm/adapters/index.js +15 -4
- package/dist/esm/llm/adapters/index.js.map +1 -1
- package/dist/esm/llm/adapters/ollama.js +117 -2
- package/dist/esm/llm/adapters/ollama.js.map +1 -1
- package/dist/esm/llm/adapters/openai.js +105 -1
- package/dist/esm/llm/adapters/openai.js.map +1 -1
- package/dist/esm/mcp/cli.js +267 -0
- package/dist/esm/mcp/cli.js.map +1 -0
- package/dist/esm/mcp/index.js +39 -0
- package/dist/esm/mcp/index.js.map +1 -0
- package/dist/esm/mcp/prompts.js +419 -0
- package/dist/esm/mcp/prompts.js.map +1 -0
- package/dist/esm/mcp/resources.js +359 -0
- package/dist/esm/mcp/resources.js.map +1 -0
- package/dist/esm/mcp/server.js +372 -0
- package/dist/esm/mcp/server.js.map +1 -0
- package/dist/esm/mcp/tools.js +598 -0
- package/dist/esm/mcp/tools.js.map +1 -0
- package/dist/esm/mcp/types.js +9 -0
- package/dist/esm/mcp/types.js.map +1 -0
- package/dist/esm/query/index.js +11 -5
- package/dist/esm/query/index.js.map +1 -1
- package/dist/esm/query/path.js +308 -0
- package/dist/esm/query/path.js.map +1 -0
- package/dist/esm/query/spaced-repetition.js +292 -0
- package/dist/esm/query/spaced-repetition.js.map +1 -0
- package/dist/esm/query/zpd.js +211 -0
- package/dist/esm/query/zpd.js.map +1 -0
- package/dist/esm/types/assessment.js +40 -0
- package/dist/esm/types/assessment.js.map +1 -0
- package/dist/esm/types/bloom.js +11 -0
- package/dist/esm/types/bloom.js.map +1 -1
- package/dist/esm/types/index.js +2 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/types/api/routes/analytics.d.ts +14 -0
- package/dist/types/api/routes/analytics.d.ts.map +1 -0
- package/dist/types/api/routes/assessments.d.ts +14 -0
- package/dist/types/api/routes/assessments.d.ts.map +1 -0
- package/dist/types/api/routes/curriculum.d.ts +14 -0
- package/dist/types/api/routes/curriculum.d.ts.map +1 -0
- package/dist/types/api/routes/edges.d.ts +14 -0
- package/dist/types/api/routes/edges.d.ts.map +1 -0
- package/dist/types/api/routes/explore.d.ts +14 -0
- package/dist/types/api/routes/explore.d.ts.map +1 -0
- package/dist/types/api/routes/learners.d.ts +14 -0
- package/dist/types/api/routes/learners.d.ts.map +1 -0
- package/dist/types/api/routes/me.d.ts +14 -0
- package/dist/types/api/routes/me.d.ts.map +1 -0
- package/dist/types/api/routes/skills.d.ts +14 -0
- package/dist/types/api/routes/skills.d.ts.map +1 -0
- package/dist/types/api/server.d.ts +147 -0
- package/dist/types/api/server.d.ts.map +1 -0
- package/dist/types/api/types.d.ts +443 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/assessment/adaptive.d.ts +155 -0
- package/dist/types/assessment/adaptive.d.ts.map +1 -0
- package/dist/types/assessment/bkt.d.ts +185 -0
- package/dist/types/assessment/bkt.d.ts.map +1 -0
- package/dist/types/assessment/index.d.ts +18 -0
- package/dist/types/assessment/index.d.ts.map +1 -0
- package/dist/types/assessment/irt.d.ts +159 -0
- package/dist/types/assessment/irt.d.ts.map +1 -0
- package/dist/types/assessment/mastery-engine.d.ts +178 -0
- package/dist/types/assessment/mastery-engine.d.ts.map +1 -0
- package/dist/types/components/LearningPathView.d.ts +40 -0
- package/dist/types/components/LearningPathView.d.ts.map +1 -0
- package/dist/types/components/ProgressDashboard.d.ts +49 -0
- package/dist/types/components/ProgressDashboard.d.ts.map +1 -0
- package/dist/types/components/SkillCard.d.ts +34 -0
- package/dist/types/components/SkillCard.d.ts.map +1 -0
- package/dist/types/components/SkillExplorer.d.ts +39 -0
- package/dist/types/components/SkillExplorer.d.ts.map +1 -0
- package/dist/types/components/SkillGraph.d.ts +38 -0
- package/dist/types/components/SkillGraph.d.ts.map +1 -0
- package/dist/types/components/hooks.d.ts +187 -0
- package/dist/types/components/hooks.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +59 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/components/types.d.ts +410 -0
- package/dist/types/components/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/llm/adapters/anthropic.d.ts +84 -1
- package/dist/types/llm/adapters/anthropic.d.ts.map +1 -1
- package/dist/types/llm/adapters/gemini.d.ts +93 -6
- package/dist/types/llm/adapters/gemini.d.ts.map +1 -1
- package/dist/types/llm/adapters/index.d.ts +13 -4
- package/dist/types/llm/adapters/index.d.ts.map +1 -1
- package/dist/types/llm/adapters/ollama.d.ts +126 -1
- package/dist/types/llm/adapters/ollama.d.ts.map +1 -1
- package/dist/types/llm/adapters/openai.d.ts +104 -1
- package/dist/types/llm/adapters/openai.d.ts.map +1 -1
- package/dist/types/mcp/cli.d.ts +15 -0
- package/dist/types/mcp/cli.d.ts.map +1 -0
- package/dist/types/mcp/index.d.ts +32 -0
- package/dist/types/mcp/index.d.ts.map +1 -0
- package/dist/types/mcp/prompts.d.ts +27 -0
- package/dist/types/mcp/prompts.d.ts.map +1 -0
- package/dist/types/mcp/resources.d.ts +59 -0
- package/dist/types/mcp/resources.d.ts.map +1 -0
- package/dist/types/mcp/server.d.ts +136 -0
- package/dist/types/mcp/server.d.ts.map +1 -0
- package/dist/types/mcp/tools.d.ts +344 -0
- package/dist/types/mcp/tools.d.ts.map +1 -0
- package/dist/types/mcp/types.d.ts +137 -0
- package/dist/types/mcp/types.d.ts.map +1 -0
- package/dist/types/query/index.d.ts +8 -0
- package/dist/types/query/index.d.ts.map +1 -1
- package/dist/types/query/path.d.ts +102 -0
- package/dist/types/query/path.d.ts.map +1 -0
- package/dist/types/query/spaced-repetition.d.ts +135 -0
- package/dist/types/query/spaced-repetition.d.ts.map +1 -0
- package/dist/types/query/zpd.d.ts +97 -0
- package/dist/types/query/zpd.d.ts.map +1 -0
- package/dist/types/types/assessment.d.ts +512 -0
- package/dist/types/types/assessment.d.ts.map +1 -0
- package/dist/types/types/bloom.d.ts +4 -0
- package/dist/types/types/bloom.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +3 -1
- package/dist/types/types/index.d.ts.map +1 -1
- 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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"}
|