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,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
|
|
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"}
|