learngraph 0.1.0 → 0.2.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 (99) hide show
  1. package/LICENSE +190 -21
  2. package/README.md +187 -5
  3. package/dist/cjs/index.js +1 -1
  4. package/dist/cjs/parsers/base.js +189 -0
  5. package/dist/cjs/parsers/base.js.map +1 -0
  6. package/dist/cjs/parsers/demo.js +159 -0
  7. package/dist/cjs/parsers/demo.js.map +1 -0
  8. package/dist/cjs/parsers/extractor.js +191 -0
  9. package/dist/cjs/parsers/extractor.js.map +1 -0
  10. package/dist/cjs/parsers/index.js +43 -4
  11. package/dist/cjs/parsers/index.js.map +1 -1
  12. package/dist/cjs/parsers/json.js +157 -0
  13. package/dist/cjs/parsers/json.js.map +1 -0
  14. package/dist/cjs/parsers/markdown.js +168 -0
  15. package/dist/cjs/parsers/markdown.js.map +1 -0
  16. package/dist/cjs/parsers/samples.js +139 -0
  17. package/dist/cjs/parsers/samples.js.map +1 -0
  18. package/dist/cjs/storage/base.js +231 -0
  19. package/dist/cjs/storage/base.js.map +1 -0
  20. package/dist/cjs/storage/errors.js +128 -0
  21. package/dist/cjs/storage/errors.js.map +1 -0
  22. package/dist/cjs/storage/index.js +92 -5
  23. package/dist/cjs/storage/index.js.map +1 -1
  24. package/dist/cjs/storage/levelgraph.js +855 -0
  25. package/dist/cjs/storage/levelgraph.js.map +1 -0
  26. package/dist/cjs/storage/memory.js +447 -0
  27. package/dist/cjs/storage/memory.js.map +1 -0
  28. package/dist/cjs/storage/neo4j.js +866 -0
  29. package/dist/cjs/storage/neo4j.js.map +1 -0
  30. package/dist/cjs/storage/seeds.js +565 -0
  31. package/dist/cjs/storage/seeds.js.map +1 -0
  32. package/dist/cjs/types/parser.js +8 -0
  33. package/dist/cjs/types/parser.js.map +1 -0
  34. package/dist/esm/index.js +1 -1
  35. package/dist/esm/parsers/base.js +179 -0
  36. package/dist/esm/parsers/base.js.map +1 -0
  37. package/dist/esm/parsers/demo.js +154 -0
  38. package/dist/esm/parsers/demo.js.map +1 -0
  39. package/dist/esm/parsers/extractor.js +187 -0
  40. package/dist/esm/parsers/extractor.js.map +1 -0
  41. package/dist/esm/parsers/index.js +24 -5
  42. package/dist/esm/parsers/index.js.map +1 -1
  43. package/dist/esm/parsers/json.js +153 -0
  44. package/dist/esm/parsers/json.js.map +1 -0
  45. package/dist/esm/parsers/markdown.js +164 -0
  46. package/dist/esm/parsers/markdown.js.map +1 -0
  47. package/dist/esm/parsers/samples.js +136 -0
  48. package/dist/esm/parsers/samples.js.map +1 -0
  49. package/dist/esm/storage/base.js +221 -0
  50. package/dist/esm/storage/base.js.map +1 -0
  51. package/dist/esm/storage/errors.js +116 -0
  52. package/dist/esm/storage/errors.js.map +1 -0
  53. package/dist/esm/storage/index.js +71 -6
  54. package/dist/esm/storage/index.js.map +1 -1
  55. package/dist/esm/storage/levelgraph.js +818 -0
  56. package/dist/esm/storage/levelgraph.js.map +1 -0
  57. package/dist/esm/storage/memory.js +443 -0
  58. package/dist/esm/storage/memory.js.map +1 -0
  59. package/dist/esm/storage/neo4j.js +829 -0
  60. package/dist/esm/storage/neo4j.js.map +1 -0
  61. package/dist/esm/storage/seeds.js +561 -0
  62. package/dist/esm/storage/seeds.js.map +1 -0
  63. package/dist/esm/types/parser.js +7 -0
  64. package/dist/esm/types/parser.js.map +1 -0
  65. package/dist/types/index.d.ts +1 -1
  66. package/dist/types/parsers/base.d.ts +39 -0
  67. package/dist/types/parsers/base.d.ts.map +1 -0
  68. package/dist/types/parsers/demo.d.ts +87 -0
  69. package/dist/types/parsers/demo.d.ts.map +1 -0
  70. package/dist/types/parsers/extractor.d.ts +43 -0
  71. package/dist/types/parsers/extractor.d.ts.map +1 -0
  72. package/dist/types/parsers/index.d.ts +10 -0
  73. package/dist/types/parsers/index.d.ts.map +1 -1
  74. package/dist/types/parsers/json.d.ts +71 -0
  75. package/dist/types/parsers/json.d.ts.map +1 -0
  76. package/dist/types/parsers/markdown.d.ts +43 -0
  77. package/dist/types/parsers/markdown.d.ts.map +1 -0
  78. package/dist/types/parsers/samples.d.ts +27 -0
  79. package/dist/types/parsers/samples.d.ts.map +1 -0
  80. package/dist/types/storage/base.d.ts +39 -0
  81. package/dist/types/storage/base.d.ts.map +1 -0
  82. package/dist/types/storage/errors.d.ts +74 -0
  83. package/dist/types/storage/errors.d.ts.map +1 -0
  84. package/dist/types/storage/index.d.ts +50 -2
  85. package/dist/types/storage/index.d.ts.map +1 -1
  86. package/dist/types/storage/levelgraph.d.ts +92 -0
  87. package/dist/types/storage/levelgraph.d.ts.map +1 -0
  88. package/dist/types/storage/memory.d.ts +70 -0
  89. package/dist/types/storage/memory.d.ts.map +1 -0
  90. package/dist/types/storage/neo4j.d.ts +88 -0
  91. package/dist/types/storage/neo4j.d.ts.map +1 -0
  92. package/dist/types/storage/seeds.d.ts +27 -0
  93. package/dist/types/storage/seeds.d.ts.map +1 -0
  94. package/dist/types/types/index.d.ts +1 -0
  95. package/dist/types/types/index.d.ts.map +1 -1
  96. package/dist/types/types/parser.d.ts +208 -0
  97. package/dist/types/types/parser.d.ts.map +1 -0
  98. package/package.json +33 -6
  99. package/scripts/postinstall.js +68 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"levelgraph.js","sourceRoot":"","sources":["../../../src/storage/levelgraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,443 @@
1
+ /**
2
+ * In-memory storage adapter for testing and prototyping
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import { GRAPH_VERSION } from '../types/index.js';
7
+ import { NotFoundError, DuplicateError, ReferenceError as StorageReferenceError, } from './errors.js';
8
+ import { nowISO, inputToSkillNode, inputToEdge, validateSkillInput, validateEdgeInput, requireConnection, calculateStats, } from './base.js';
9
+ /**
10
+ * In-memory graph storage adapter.
11
+ *
12
+ * Stores all data in memory - lost on process exit.
13
+ * Ideal for unit tests and rapid prototyping.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const storage = new MemoryStorage();
18
+ * await storage.connect({ backend: 'memory' });
19
+ *
20
+ * const skill = await storage.createSkill({
21
+ * name: 'Add Fractions',
22
+ * description: 'Add fractions with like denominators',
23
+ * bloomLevel: 'apply',
24
+ * difficulty: 0.4,
25
+ * isThresholdConcept: false,
26
+ * masteryThreshold: 0.8,
27
+ * estimatedMinutes: 30,
28
+ * tags: ['math', 'fractions'],
29
+ * metadata: {},
30
+ * });
31
+ *
32
+ * console.log(skill.id); // skill_abc123...
33
+ * ```
34
+ */
35
+ export class MemoryStorage {
36
+ nodes = new Map();
37
+ edges = new Map();
38
+ _connected = false;
39
+ // ─────────────────────────────────────────────────────────────────────────────
40
+ // Connection Management
41
+ // ─────────────────────────────────────────────────────────────────────────────
42
+ async connect(config) {
43
+ if (config.backend !== 'memory') {
44
+ throw new Error('MemoryStorage only supports "memory" backend');
45
+ }
46
+ // Initialize with optional initial data
47
+ const memConfig = config;
48
+ if (memConfig.initialData) {
49
+ for (const node of memConfig.initialData.nodes) {
50
+ this.nodes.set(node.id, node);
51
+ }
52
+ for (const edge of memConfig.initialData.edges) {
53
+ this.edges.set(edge.id, edge);
54
+ }
55
+ }
56
+ this._connected = true;
57
+ }
58
+ async disconnect() {
59
+ this._connected = false;
60
+ this.nodes.clear();
61
+ this.edges.clear();
62
+ }
63
+ isConnected() {
64
+ return this._connected;
65
+ }
66
+ async getStatus() {
67
+ return {
68
+ connected: this._connected,
69
+ backend: 'memory',
70
+ latencyMs: 0,
71
+ lastChecked: new Date(),
72
+ };
73
+ }
74
+ // ─────────────────────────────────────────────────────────────────────────────
75
+ // Skill Node CRUD
76
+ // ─────────────────────────────────────────────────────────────────────────────
77
+ async createSkill(input) {
78
+ requireConnection(this._connected);
79
+ validateSkillInput(input);
80
+ const skill = inputToSkillNode(input);
81
+ if (this.nodes.has(skill.id)) {
82
+ throw new DuplicateError('skill', skill.id);
83
+ }
84
+ this.nodes.set(skill.id, skill);
85
+ return skill;
86
+ }
87
+ async getSkill(id) {
88
+ requireConnection(this._connected);
89
+ return this.nodes.get(id) ?? null;
90
+ }
91
+ async getSkills(ids) {
92
+ requireConnection(this._connected);
93
+ const result = [];
94
+ for (const id of ids) {
95
+ const node = this.nodes.get(id);
96
+ if (node)
97
+ result.push(node);
98
+ }
99
+ return result;
100
+ }
101
+ async updateSkill(id, updates) {
102
+ requireConnection(this._connected);
103
+ const existing = this.nodes.get(id);
104
+ if (!existing) {
105
+ throw new NotFoundError('skill', id);
106
+ }
107
+ const updated = {
108
+ ...existing,
109
+ ...updates,
110
+ id: existing.id,
111
+ createdAt: existing.createdAt,
112
+ updatedAt: nowISO(),
113
+ };
114
+ this.nodes.set(id, updated);
115
+ return updated;
116
+ }
117
+ async deleteSkill(id) {
118
+ requireConnection(this._connected);
119
+ // Delete the skill
120
+ this.nodes.delete(id);
121
+ // Delete all edges referencing this skill
122
+ for (const [edgeId, edge] of this.edges) {
123
+ if (edge.sourceId === id || edge.targetId === id) {
124
+ this.edges.delete(edgeId);
125
+ }
126
+ }
127
+ }
128
+ async findSkills(query) {
129
+ requireConnection(this._connected);
130
+ let results = Array.from(this.nodes.values());
131
+ // Apply filters
132
+ if (query.filters) {
133
+ for (const filter of query.filters) {
134
+ results = results.filter((skill) => {
135
+ const value = skill[filter.field];
136
+ switch (filter.operator) {
137
+ case 'eq':
138
+ return value === filter.value;
139
+ case 'neq':
140
+ return value !== filter.value;
141
+ case 'gt':
142
+ return typeof value === 'number' && value > filter.value;
143
+ case 'gte':
144
+ return typeof value === 'number' && value >= filter.value;
145
+ case 'lt':
146
+ return typeof value === 'number' && value < filter.value;
147
+ case 'lte':
148
+ return typeof value === 'number' && value <= filter.value;
149
+ case 'in':
150
+ return Array.isArray(filter.value) && filter.value.includes(value);
151
+ case 'contains':
152
+ if (Array.isArray(value)) {
153
+ return value.includes(filter.value);
154
+ }
155
+ if (typeof value === 'string') {
156
+ return value.includes(filter.value);
157
+ }
158
+ return false;
159
+ default:
160
+ return true;
161
+ }
162
+ });
163
+ }
164
+ }
165
+ // Apply sorting
166
+ if (query.sorting && query.sorting.length > 0) {
167
+ results.sort((a, b) => {
168
+ for (const sortItem of query.sorting) {
169
+ const aVal = a[sortItem.field];
170
+ const bVal = b[sortItem.field];
171
+ const cmp = aVal < bVal ? -1 : aVal > bVal ? 1 : 0;
172
+ if (cmp !== 0) {
173
+ return sortItem.direction === 'asc' ? cmp : -cmp;
174
+ }
175
+ }
176
+ return 0;
177
+ });
178
+ }
179
+ // Apply pagination
180
+ if (query.pagination) {
181
+ const { offset = 0, limit = 100 } = query.pagination;
182
+ results = results.slice(offset, offset + limit);
183
+ }
184
+ return results;
185
+ }
186
+ async countSkills(query) {
187
+ requireConnection(this._connected);
188
+ if (!query) {
189
+ return this.nodes.size;
190
+ }
191
+ // Use findSkills without pagination to count
192
+ const { pagination, ...queryWithoutPagination } = query;
193
+ const results = await this.findSkills(queryWithoutPagination);
194
+ return results.length;
195
+ }
196
+ // ─────────────────────────────────────────────────────────────────────────────
197
+ // Prerequisite Edge CRUD
198
+ // ─────────────────────────────────────────────────────────────────────────────
199
+ async createPrerequisite(input) {
200
+ requireConnection(this._connected);
201
+ validateEdgeInput(input);
202
+ // Verify source and target exist
203
+ if (!this.nodes.has(input.sourceId)) {
204
+ throw new StorageReferenceError(input.id || 'new', input.sourceId, 'source');
205
+ }
206
+ if (!this.nodes.has(input.targetId)) {
207
+ throw new StorageReferenceError(input.id || 'new', input.targetId, 'target');
208
+ }
209
+ const edge = inputToEdge(input);
210
+ if (this.edges.has(edge.id)) {
211
+ throw new DuplicateError('edge', edge.id);
212
+ }
213
+ this.edges.set(edge.id, edge);
214
+ return edge;
215
+ }
216
+ async getPrerequisite(id) {
217
+ requireConnection(this._connected);
218
+ return this.edges.get(id) ?? null;
219
+ }
220
+ async deletePrerequisite(id) {
221
+ requireConnection(this._connected);
222
+ this.edges.delete(id);
223
+ }
224
+ async findPrerequisites(criteria) {
225
+ requireConnection(this._connected);
226
+ let results = Array.from(this.edges.values());
227
+ if (criteria.sourceId) {
228
+ results = results.filter((e) => e.sourceId === criteria.sourceId);
229
+ }
230
+ if (criteria.targetId) {
231
+ results = results.filter((e) => e.targetId === criteria.targetId);
232
+ }
233
+ if (criteria.type) {
234
+ results = results.filter((e) => e.type === criteria.type);
235
+ }
236
+ if (criteria.minStrength !== undefined) {
237
+ results = results.filter((e) => e.strength >= criteria.minStrength);
238
+ }
239
+ return results;
240
+ }
241
+ // ─────────────────────────────────────────────────────────────────────────────
242
+ // Graph Traversal
243
+ // ─────────────────────────────────────────────────────────────────────────────
244
+ async getPrerequisitesOf(skillId) {
245
+ requireConnection(this._connected);
246
+ const prerequisites = [];
247
+ for (const edge of this.edges.values()) {
248
+ if (edge.targetId === skillId) {
249
+ const source = this.nodes.get(edge.sourceId);
250
+ if (source)
251
+ prerequisites.push(source);
252
+ }
253
+ }
254
+ return prerequisites;
255
+ }
256
+ async getDependentsOf(skillId) {
257
+ requireConnection(this._connected);
258
+ const dependents = [];
259
+ for (const edge of this.edges.values()) {
260
+ if (edge.sourceId === skillId) {
261
+ const target = this.nodes.get(edge.targetId);
262
+ if (target)
263
+ dependents.push(target);
264
+ }
265
+ }
266
+ return dependents;
267
+ }
268
+ async getSubgraph(rootId, depth) {
269
+ requireConnection(this._connected);
270
+ const visitedNodes = new Set();
271
+ const subgraphNodes = [];
272
+ const subgraphEdges = [];
273
+ // BFS to collect nodes up to depth
274
+ const queue = [
275
+ { id: rootId, level: 0 },
276
+ ];
277
+ while (queue.length > 0) {
278
+ const { id, level } = queue.shift();
279
+ if (visitedNodes.has(id) || level > depth) {
280
+ continue;
281
+ }
282
+ visitedNodes.add(id);
283
+ const node = this.nodes.get(id);
284
+ if (node) {
285
+ subgraphNodes.push(node);
286
+ // Get prerequisites (go backwards)
287
+ for (const edge of this.edges.values()) {
288
+ if (edge.targetId === id) {
289
+ subgraphEdges.push(edge);
290
+ queue.push({ id: edge.sourceId, level: level + 1 });
291
+ }
292
+ }
293
+ }
294
+ }
295
+ return {
296
+ rootId,
297
+ depth,
298
+ nodes: subgraphNodes,
299
+ edges: subgraphEdges.filter((e) => visitedNodes.has(e.sourceId) &&
300
+ visitedNodes.has(e.targetId)),
301
+ };
302
+ }
303
+ async getRootSkills() {
304
+ requireConnection(this._connected);
305
+ const hasPrerequisite = new Set();
306
+ for (const edge of this.edges.values()) {
307
+ hasPrerequisite.add(edge.targetId);
308
+ }
309
+ return Array.from(this.nodes.values()).filter((node) => !hasPrerequisite.has(node.id));
310
+ }
311
+ async getLeafSkills() {
312
+ requireConnection(this._connected);
313
+ const hasDependents = new Set();
314
+ for (const edge of this.edges.values()) {
315
+ hasDependents.add(edge.sourceId);
316
+ }
317
+ return Array.from(this.nodes.values()).filter((node) => !hasDependents.has(node.id));
318
+ }
319
+ async getPath(fromId, toId) {
320
+ requireConnection(this._connected);
321
+ // BFS to find shortest path
322
+ const visited = new Set();
323
+ const parent = new Map();
324
+ const queue = [fromId];
325
+ visited.add(fromId);
326
+ while (queue.length > 0) {
327
+ const current = queue.shift();
328
+ if (current === toId) {
329
+ // Reconstruct path
330
+ const path = [];
331
+ let node = toId;
332
+ while (node) {
333
+ const skillNode = this.nodes.get(node);
334
+ if (skillNode)
335
+ path.unshift(skillNode);
336
+ node = parent.get(node);
337
+ }
338
+ return path;
339
+ }
340
+ // Get dependents (forward direction)
341
+ for (const edge of this.edges.values()) {
342
+ if (edge.sourceId === current) {
343
+ const targetId = edge.targetId;
344
+ if (!visited.has(targetId)) {
345
+ visited.add(targetId);
346
+ parent.set(targetId, current);
347
+ queue.push(edge.targetId);
348
+ }
349
+ }
350
+ }
351
+ }
352
+ return null; // No path found
353
+ }
354
+ // ─────────────────────────────────────────────────────────────────────────────
355
+ // Bulk Operations
356
+ // ─────────────────────────────────────────────────────────────────────────────
357
+ async importGraph(nodes, edges, options) {
358
+ requireConnection(this._connected);
359
+ const startTime = Date.now();
360
+ const result = {
361
+ nodesCreated: 0,
362
+ edgesCreated: 0,
363
+ nodesSkipped: 0,
364
+ edgesSkipped: 0,
365
+ errors: [],
366
+ durationMs: 0,
367
+ };
368
+ if (options?.clearExisting) {
369
+ await this.clearAll();
370
+ }
371
+ // Import nodes
372
+ for (const nodeInput of nodes) {
373
+ try {
374
+ const skill = inputToSkillNode(nodeInput);
375
+ if (this.nodes.has(skill.id)) {
376
+ result.nodesSkipped++;
377
+ }
378
+ else {
379
+ this.nodes.set(skill.id, skill);
380
+ result.nodesCreated++;
381
+ }
382
+ }
383
+ catch (error) {
384
+ result.errors.push({
385
+ type: 'node',
386
+ id: nodeInput.id || 'unknown',
387
+ error: error instanceof Error ? error.message : String(error),
388
+ });
389
+ }
390
+ }
391
+ // Import edges
392
+ for (const edgeInput of edges) {
393
+ try {
394
+ const edge = inputToEdge(edgeInput);
395
+ // Verify references
396
+ if (!this.nodes.has(edge.sourceId)) {
397
+ throw new Error(`Source skill not found: ${edge.sourceId}`);
398
+ }
399
+ if (!this.nodes.has(edge.targetId)) {
400
+ throw new Error(`Target skill not found: ${edge.targetId}`);
401
+ }
402
+ if (this.edges.has(edge.id)) {
403
+ result.edgesSkipped++;
404
+ }
405
+ else {
406
+ this.edges.set(edge.id, edge);
407
+ result.edgesCreated++;
408
+ }
409
+ }
410
+ catch (error) {
411
+ result.errors.push({
412
+ type: 'edge',
413
+ id: edgeInput.id || 'unknown',
414
+ error: error instanceof Error ? error.message : String(error),
415
+ });
416
+ }
417
+ }
418
+ result.durationMs = Date.now() - startTime;
419
+ return result;
420
+ }
421
+ async exportGraph() {
422
+ requireConnection(this._connected);
423
+ return {
424
+ version: GRAPH_VERSION,
425
+ exportedAt: nowISO(),
426
+ nodes: Array.from(this.nodes.values()),
427
+ edges: Array.from(this.edges.values()),
428
+ };
429
+ }
430
+ async clearAll() {
431
+ requireConnection(this._connected);
432
+ this.nodes.clear();
433
+ this.edges.clear();
434
+ }
435
+ // ─────────────────────────────────────────────────────────────────────────────
436
+ // Analytics
437
+ // ─────────────────────────────────────────────────────────────────────────────
438
+ async getStats() {
439
+ requireConnection(this._connected);
440
+ return calculateStats(Array.from(this.nodes.values()), Array.from(this.edges.values()));
441
+ }
442
+ }
443
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"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"}