learngraph 0.1.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/LICENSE +21 -0
- package/README.md +25 -0
- package/dist/cjs/education/index.js +18 -0
- package/dist/cjs/education/index.js.map +1 -0
- package/dist/cjs/graph/index.js +14 -0
- package/dist/cjs/graph/index.js.map +1 -0
- package/dist/cjs/index.js +61 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/llm/index.js +12 -0
- package/dist/cjs/llm/index.js.map +1 -0
- package/dist/cjs/parsers/index.js +11 -0
- package/dist/cjs/parsers/index.js.map +1 -0
- package/dist/cjs/query/index.js +12 -0
- package/dist/cjs/query/index.js.map +1 -0
- package/dist/cjs/storage/index.js +12 -0
- package/dist/cjs/storage/index.js.map +1 -0
- package/dist/cjs/types/bloom.js +174 -0
- package/dist/cjs/types/bloom.js.map +1 -0
- package/dist/cjs/types/edge.js +42 -0
- package/dist/cjs/types/edge.js.map +1 -0
- package/dist/cjs/types/graph.js +8 -0
- package/dist/cjs/types/graph.js.map +1 -0
- package/dist/cjs/types/index.js +32 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/mastery.js +31 -0
- package/dist/cjs/types/mastery.js.map +1 -0
- package/dist/cjs/types/query.js +3 -0
- package/dist/cjs/types/query.js.map +1 -0
- package/dist/cjs/types/skill.js +38 -0
- package/dist/cjs/types/skill.js.map +1 -0
- package/dist/cjs/types/storage.js +3 -0
- package/dist/cjs/types/storage.js.map +1 -0
- package/dist/esm/education/index.js +12 -0
- package/dist/esm/education/index.js.map +1 -0
- package/dist/esm/graph/index.js +10 -0
- package/dist/esm/graph/index.js.map +1 -0
- package/dist/esm/index.js +44 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/llm/index.js +12 -0
- package/dist/esm/llm/index.js.map +1 -0
- package/dist/esm/parsers/index.js +11 -0
- package/dist/esm/parsers/index.js.map +1 -0
- package/dist/esm/query/index.js +11 -0
- package/dist/esm/query/index.js.map +1 -0
- package/dist/esm/storage/index.js +11 -0
- package/dist/esm/storage/index.js.map +1 -0
- package/dist/esm/types/bloom.js +168 -0
- package/dist/esm/types/bloom.js.map +1 -0
- package/dist/esm/types/edge.js +36 -0
- package/dist/esm/types/edge.js.map +1 -0
- package/dist/esm/types/graph.js +5 -0
- package/dist/esm/types/graph.js.map +1 -0
- package/dist/esm/types/index.js +11 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/mastery.js +26 -0
- package/dist/esm/types/mastery.js.map +1 -0
- package/dist/esm/types/query.js +2 -0
- package/dist/esm/types/query.js.map +1 -0
- package/dist/esm/types/skill.js +32 -0
- package/dist/esm/types/skill.js.map +1 -0
- package/dist/esm/types/storage.js +2 -0
- package/dist/esm/types/storage.js.map +1 -0
- package/dist/types/education/index.d.ts +8 -0
- package/dist/types/education/index.d.ts.map +1 -0
- package/dist/types/graph/index.d.ts +8 -0
- package/dist/types/graph/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +38 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/llm/index.d.ts +6 -0
- package/dist/types/llm/index.d.ts.map +1 -0
- package/dist/types/parsers/index.d.ts +6 -0
- package/dist/types/parsers/index.d.ts.map +1 -0
- package/dist/types/query/index.d.ts +7 -0
- package/dist/types/query/index.d.ts.map +1 -0
- package/dist/types/storage/index.d.ts +7 -0
- package/dist/types/storage/index.d.ts.map +1 -0
- package/dist/types/types/bloom.d.ts +33 -0
- package/dist/types/types/bloom.d.ts.map +1 -0
- package/dist/types/types/edge.d.ts +80 -0
- package/dist/types/types/edge.d.ts.map +1 -0
- package/dist/types/types/graph.d.ts +99 -0
- package/dist/types/types/graph.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +18 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/mastery.d.ts +89 -0
- package/dist/types/types/mastery.d.ts.map +1 -0
- package/dist/types/types/query.d.ts +155 -0
- package/dist/types/types/query.d.ts.map +1 -0
- package/dist/types/types/skill.d.ts +107 -0
- package/dist/types/types/skill.d.ts.map +1 -0
- package/dist/types/types/storage.d.ts +214 -0
- package/dist/types/types/storage.d.ts.map +1 -0
- package/package.json +149 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import type { SkillNode, SkillId, SkillNodeInput, SkillNodeUpdate } from './skill.js';
|
|
2
|
+
import type { PrerequisiteEdge, EdgeId, PrerequisiteEdgeInput } from './edge.js';
|
|
3
|
+
import type { Subgraph, GraphExport, GraphStats } from './graph.js';
|
|
4
|
+
import type { SkillQuery } from './query.js';
|
|
5
|
+
/**
|
|
6
|
+
* Storage backend types
|
|
7
|
+
*/
|
|
8
|
+
export type StorageBackend = 'neo4j' | 'levelgraph' | 'memory';
|
|
9
|
+
/**
|
|
10
|
+
* Base configuration for all storage adapters
|
|
11
|
+
*/
|
|
12
|
+
export interface StorageConfigBase {
|
|
13
|
+
/** Storage backend type */
|
|
14
|
+
backend: StorageBackend;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Neo4j connection configuration
|
|
18
|
+
*/
|
|
19
|
+
export interface Neo4jConfig extends StorageConfigBase {
|
|
20
|
+
backend: 'neo4j';
|
|
21
|
+
/** Neo4j connection URI (e.g., "bolt://localhost:7687") */
|
|
22
|
+
uri: string;
|
|
23
|
+
/** Username for authentication */
|
|
24
|
+
username: string;
|
|
25
|
+
/** Password for authentication */
|
|
26
|
+
password: string;
|
|
27
|
+
/** Database name (default: "neo4j") */
|
|
28
|
+
database?: string;
|
|
29
|
+
/** Connection pool size (default: 50) */
|
|
30
|
+
maxConnectionPoolSize?: number;
|
|
31
|
+
/** Connection timeout in milliseconds (default: 30000) */
|
|
32
|
+
connectionTimeout?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* LevelGraph configuration
|
|
36
|
+
*/
|
|
37
|
+
export interface LevelGraphConfig extends StorageConfigBase {
|
|
38
|
+
backend: 'levelgraph';
|
|
39
|
+
/** Path to the database directory (for Node.js) */
|
|
40
|
+
path?: string;
|
|
41
|
+
/** Database name for browser IndexedDB */
|
|
42
|
+
dbName?: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* In-memory storage configuration (for testing)
|
|
46
|
+
*/
|
|
47
|
+
export interface MemoryConfig extends StorageConfigBase {
|
|
48
|
+
backend: 'memory';
|
|
49
|
+
/** Optional initial data */
|
|
50
|
+
initialData?: GraphExport;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Union of all storage configurations
|
|
54
|
+
*/
|
|
55
|
+
export type StorageConfig = Neo4jConfig | LevelGraphConfig | MemoryConfig;
|
|
56
|
+
/**
|
|
57
|
+
* Connection status
|
|
58
|
+
*/
|
|
59
|
+
export interface ConnectionStatus {
|
|
60
|
+
connected: boolean;
|
|
61
|
+
backend: StorageBackend;
|
|
62
|
+
latencyMs?: number;
|
|
63
|
+
lastChecked: Date;
|
|
64
|
+
error?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Result of bulk import operation
|
|
68
|
+
*/
|
|
69
|
+
export interface ImportResult {
|
|
70
|
+
nodesCreated: number;
|
|
71
|
+
edgesCreated: number;
|
|
72
|
+
nodesSkipped: number;
|
|
73
|
+
edgesSkipped: number;
|
|
74
|
+
errors: Array<{
|
|
75
|
+
type: 'node' | 'edge';
|
|
76
|
+
id: string;
|
|
77
|
+
error: string;
|
|
78
|
+
}>;
|
|
79
|
+
durationMs: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Abstract interface for graph storage backends.
|
|
83
|
+
*
|
|
84
|
+
* This is the primary abstraction that allows swapping between
|
|
85
|
+
* Neo4j (production) and LevelGraph (browser/local development).
|
|
86
|
+
*
|
|
87
|
+
* All methods return Promises for async operation.
|
|
88
|
+
*/
|
|
89
|
+
export interface GraphStorage {
|
|
90
|
+
/**
|
|
91
|
+
* Connect to the storage backend
|
|
92
|
+
*/
|
|
93
|
+
connect(config: StorageConfig): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Disconnect from the storage backend
|
|
96
|
+
*/
|
|
97
|
+
disconnect(): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Check if connected to the storage backend
|
|
100
|
+
*/
|
|
101
|
+
isConnected(): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Get connection status with health check
|
|
104
|
+
*/
|
|
105
|
+
getStatus(): Promise<ConnectionStatus>;
|
|
106
|
+
/**
|
|
107
|
+
* Create a new skill node
|
|
108
|
+
*/
|
|
109
|
+
createSkill(skill: SkillNodeInput): Promise<SkillNode>;
|
|
110
|
+
/**
|
|
111
|
+
* Get a skill by ID
|
|
112
|
+
* Returns null if not found
|
|
113
|
+
*/
|
|
114
|
+
getSkill(id: SkillId): Promise<SkillNode | null>;
|
|
115
|
+
/**
|
|
116
|
+
* Get multiple skills by ID
|
|
117
|
+
* Returns found skills (missing IDs are not included)
|
|
118
|
+
*/
|
|
119
|
+
getSkills(ids: SkillId[]): Promise<SkillNode[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Update an existing skill
|
|
122
|
+
* Throws if skill not found
|
|
123
|
+
*/
|
|
124
|
+
updateSkill(id: SkillId, updates: SkillNodeUpdate): Promise<SkillNode>;
|
|
125
|
+
/**
|
|
126
|
+
* Delete a skill and all its edges
|
|
127
|
+
* No-op if skill not found
|
|
128
|
+
*/
|
|
129
|
+
deleteSkill(id: SkillId): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Find skills matching query criteria
|
|
132
|
+
*/
|
|
133
|
+
findSkills(query: Partial<SkillQuery>): Promise<SkillNode[]>;
|
|
134
|
+
/**
|
|
135
|
+
* Count skills matching query criteria
|
|
136
|
+
*/
|
|
137
|
+
countSkills(query?: Partial<SkillQuery>): Promise<number>;
|
|
138
|
+
/**
|
|
139
|
+
* Create a prerequisite edge
|
|
140
|
+
* Throws if source or target skill not found
|
|
141
|
+
*/
|
|
142
|
+
createPrerequisite(edge: PrerequisiteEdgeInput): Promise<PrerequisiteEdge>;
|
|
143
|
+
/**
|
|
144
|
+
* Get a prerequisite edge by ID
|
|
145
|
+
* Returns null if not found
|
|
146
|
+
*/
|
|
147
|
+
getPrerequisite(id: EdgeId): Promise<PrerequisiteEdge | null>;
|
|
148
|
+
/**
|
|
149
|
+
* Delete a prerequisite edge
|
|
150
|
+
* No-op if edge not found
|
|
151
|
+
*/
|
|
152
|
+
deletePrerequisite(id: EdgeId): Promise<void>;
|
|
153
|
+
/**
|
|
154
|
+
* Find edges matching criteria
|
|
155
|
+
*/
|
|
156
|
+
findPrerequisites(criteria: {
|
|
157
|
+
sourceId?: SkillId;
|
|
158
|
+
targetId?: SkillId;
|
|
159
|
+
type?: string;
|
|
160
|
+
minStrength?: number;
|
|
161
|
+
}): Promise<PrerequisiteEdge[]>;
|
|
162
|
+
/**
|
|
163
|
+
* Get all prerequisite skills for a given skill
|
|
164
|
+
* (skills that should be learned before this one)
|
|
165
|
+
*/
|
|
166
|
+
getPrerequisitesOf(skillId: SkillId): Promise<SkillNode[]>;
|
|
167
|
+
/**
|
|
168
|
+
* Get all dependent skills for a given skill
|
|
169
|
+
* (skills that require this one as a prerequisite)
|
|
170
|
+
*/
|
|
171
|
+
getDependentsOf(skillId: SkillId): Promise<SkillNode[]>;
|
|
172
|
+
/**
|
|
173
|
+
* Get a subgraph rooted at a skill
|
|
174
|
+
* Includes all ancestors up to specified depth
|
|
175
|
+
*/
|
|
176
|
+
getSubgraph(rootId: SkillId, depth: number): Promise<Subgraph>;
|
|
177
|
+
/**
|
|
178
|
+
* Get all root skills (skills with no prerequisites)
|
|
179
|
+
*/
|
|
180
|
+
getRootSkills(): Promise<SkillNode[]>;
|
|
181
|
+
/**
|
|
182
|
+
* Get all leaf skills (skills with no dependents)
|
|
183
|
+
*/
|
|
184
|
+
getLeafSkills(): Promise<SkillNode[]>;
|
|
185
|
+
/**
|
|
186
|
+
* Get the shortest path between two skills
|
|
187
|
+
* Returns null if no path exists
|
|
188
|
+
*/
|
|
189
|
+
getPath(fromId: SkillId, toId: SkillId): Promise<SkillNode[] | null>;
|
|
190
|
+
/**
|
|
191
|
+
* Import a complete graph (nodes and edges)
|
|
192
|
+
* Optionally clears existing data first
|
|
193
|
+
*/
|
|
194
|
+
importGraph(nodes: SkillNodeInput[], edges: PrerequisiteEdgeInput[], options?: {
|
|
195
|
+
clearExisting?: boolean;
|
|
196
|
+
}): Promise<ImportResult>;
|
|
197
|
+
/**
|
|
198
|
+
* Export the complete graph
|
|
199
|
+
*/
|
|
200
|
+
exportGraph(): Promise<GraphExport>;
|
|
201
|
+
/**
|
|
202
|
+
* Clear all data in the graph
|
|
203
|
+
*/
|
|
204
|
+
clearAll(): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Get graph statistics
|
|
207
|
+
*/
|
|
208
|
+
getStats(): Promise<GraphStats>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Factory function type for creating storage instances
|
|
212
|
+
*/
|
|
213
|
+
export type StorageFactory = (config: StorageConfig) => GraphStorage;
|
|
214
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/types/storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "learngraph",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "AI-powered educational knowledge graph infrastructure - decompose curricula into skill graphs with learning science built in",
|
|
5
|
+
"author": "LearnGraph Team",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/fenago/Jali.git",
|
|
10
|
+
"directory": "packages/core"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"education",
|
|
14
|
+
"knowledge-graph",
|
|
15
|
+
"learning",
|
|
16
|
+
"curriculum",
|
|
17
|
+
"neo4j",
|
|
18
|
+
"levelgraph",
|
|
19
|
+
"ai",
|
|
20
|
+
"llm",
|
|
21
|
+
"mastery-learning",
|
|
22
|
+
"zpd",
|
|
23
|
+
"blooms-taxonomy",
|
|
24
|
+
"adaptive-learning",
|
|
25
|
+
"edtech"
|
|
26
|
+
],
|
|
27
|
+
"type": "module",
|
|
28
|
+
"main": "./dist/cjs/index.js",
|
|
29
|
+
"module": "./dist/esm/index.js",
|
|
30
|
+
"types": "./dist/types/index.d.ts",
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"import": {
|
|
34
|
+
"types": "./dist/types/index.d.ts",
|
|
35
|
+
"default": "./dist/esm/index.js"
|
|
36
|
+
},
|
|
37
|
+
"require": {
|
|
38
|
+
"types": "./dist/types/index.d.ts",
|
|
39
|
+
"default": "./dist/cjs/index.js"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"./storage": {
|
|
43
|
+
"import": {
|
|
44
|
+
"types": "./dist/types/storage/index.d.ts",
|
|
45
|
+
"default": "./dist/esm/storage/index.js"
|
|
46
|
+
},
|
|
47
|
+
"require": {
|
|
48
|
+
"types": "./dist/types/storage/index.d.ts",
|
|
49
|
+
"default": "./dist/cjs/storage/index.js"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"./parsers": {
|
|
53
|
+
"import": {
|
|
54
|
+
"types": "./dist/types/parsers/index.d.ts",
|
|
55
|
+
"default": "./dist/esm/parsers/index.js"
|
|
56
|
+
},
|
|
57
|
+
"require": {
|
|
58
|
+
"types": "./dist/types/parsers/index.d.ts",
|
|
59
|
+
"default": "./dist/cjs/parsers/index.js"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"./llm": {
|
|
63
|
+
"import": {
|
|
64
|
+
"types": "./dist/types/llm/index.d.ts",
|
|
65
|
+
"default": "./dist/esm/llm/index.js"
|
|
66
|
+
},
|
|
67
|
+
"require": {
|
|
68
|
+
"types": "./dist/types/llm/index.d.ts",
|
|
69
|
+
"default": "./dist/cjs/llm/index.js"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"./graph": {
|
|
73
|
+
"import": {
|
|
74
|
+
"types": "./dist/types/graph/index.d.ts",
|
|
75
|
+
"default": "./dist/esm/graph/index.js"
|
|
76
|
+
},
|
|
77
|
+
"require": {
|
|
78
|
+
"types": "./dist/types/graph/index.d.ts",
|
|
79
|
+
"default": "./dist/cjs/graph/index.js"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"./query": {
|
|
83
|
+
"import": {
|
|
84
|
+
"types": "./dist/types/query/index.d.ts",
|
|
85
|
+
"default": "./dist/esm/query/index.js"
|
|
86
|
+
},
|
|
87
|
+
"require": {
|
|
88
|
+
"types": "./dist/types/query/index.d.ts",
|
|
89
|
+
"default": "./dist/cjs/query/index.js"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"./education": {
|
|
93
|
+
"import": {
|
|
94
|
+
"types": "./dist/types/education/index.d.ts",
|
|
95
|
+
"default": "./dist/esm/education/index.js"
|
|
96
|
+
},
|
|
97
|
+
"require": {
|
|
98
|
+
"types": "./dist/types/education/index.d.ts",
|
|
99
|
+
"default": "./dist/cjs/education/index.js"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"files": [
|
|
104
|
+
"dist",
|
|
105
|
+
"README.md",
|
|
106
|
+
"LICENSE"
|
|
107
|
+
],
|
|
108
|
+
"scripts": {
|
|
109
|
+
"build": "npm run build:esm && npm run build:cjs && npm run build:types",
|
|
110
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
111
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
112
|
+
"build:types": "tsc -p tsconfig.types.json",
|
|
113
|
+
"test": "vitest run",
|
|
114
|
+
"test:watch": "vitest",
|
|
115
|
+
"test:coverage": "vitest run --coverage",
|
|
116
|
+
"lint": "eslint src --ext .ts",
|
|
117
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
118
|
+
"typecheck": "tsc --noEmit",
|
|
119
|
+
"clean": "rm -rf dist coverage"
|
|
120
|
+
},
|
|
121
|
+
"dependencies": {
|
|
122
|
+
"zod": "^3.23.0"
|
|
123
|
+
},
|
|
124
|
+
"devDependencies": {
|
|
125
|
+
"@types/node": "^20.0.0",
|
|
126
|
+
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
127
|
+
"@typescript-eslint/parser": "^7.0.0",
|
|
128
|
+
"@vitest/coverage-v8": "^1.6.0",
|
|
129
|
+
"eslint": "^8.57.0",
|
|
130
|
+
"typescript": "^5.4.0",
|
|
131
|
+
"vitest": "^1.6.0"
|
|
132
|
+
},
|
|
133
|
+
"peerDependencies": {
|
|
134
|
+
"neo4j-driver": "^5.0.0",
|
|
135
|
+
"level": "^8.0.0",
|
|
136
|
+
"levelgraph": "^3.0.0"
|
|
137
|
+
},
|
|
138
|
+
"peerDependenciesMeta": {
|
|
139
|
+
"neo4j-driver": {
|
|
140
|
+
"optional": true
|
|
141
|
+
},
|
|
142
|
+
"level": {
|
|
143
|
+
"optional": true
|
|
144
|
+
},
|
|
145
|
+
"levelgraph": {
|
|
146
|
+
"optional": true
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|