learngraph 0.7.0 → 0.8.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 (74) hide show
  1. package/dist/cjs/components/SkillGraph.js +224 -23
  2. package/dist/cjs/components/SkillGraph.js.map +1 -1
  3. package/dist/cjs/components/hooks.js +10 -0
  4. package/dist/cjs/components/hooks.js.map +1 -1
  5. package/dist/cjs/embeddings/base.js +104 -0
  6. package/dist/cjs/embeddings/base.js.map +1 -0
  7. package/dist/cjs/embeddings/index.js +91 -0
  8. package/dist/cjs/embeddings/index.js.map +1 -0
  9. package/dist/cjs/embeddings/local.js +224 -0
  10. package/dist/cjs/embeddings/local.js.map +1 -0
  11. package/dist/cjs/embeddings/openai.js +169 -0
  12. package/dist/cjs/embeddings/openai.js.map +1 -0
  13. package/dist/cjs/index.js +25 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/llm/graphrag-orchestrator.js +1004 -0
  16. package/dist/cjs/llm/graphrag-orchestrator.js.map +1 -0
  17. package/dist/cjs/llm/index.js +7 -1
  18. package/dist/cjs/llm/index.js.map +1 -1
  19. package/dist/cjs/storage/index.js +15 -1
  20. package/dist/cjs/storage/index.js.map +1 -1
  21. package/dist/cjs/storage/neo4j-graphrag.js +596 -0
  22. package/dist/cjs/storage/neo4j-graphrag.js.map +1 -0
  23. package/dist/cjs/types/graphrag.js +11 -0
  24. package/dist/cjs/types/graphrag.js.map +1 -0
  25. package/dist/esm/components/SkillGraph.js +226 -25
  26. package/dist/esm/components/SkillGraph.js.map +1 -1
  27. package/dist/esm/components/hooks.js +10 -0
  28. package/dist/esm/components/hooks.js.map +1 -1
  29. package/dist/esm/embeddings/base.js +99 -0
  30. package/dist/esm/embeddings/base.js.map +1 -0
  31. package/dist/esm/embeddings/index.js +79 -0
  32. package/dist/esm/embeddings/index.js.map +1 -0
  33. package/dist/esm/embeddings/local.js +219 -0
  34. package/dist/esm/embeddings/local.js.map +1 -0
  35. package/dist/esm/embeddings/openai.js +164 -0
  36. package/dist/esm/embeddings/openai.js.map +1 -0
  37. package/dist/esm/index.js +16 -0
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/llm/graphrag-orchestrator.js +999 -0
  40. package/dist/esm/llm/graphrag-orchestrator.js.map +1 -0
  41. package/dist/esm/llm/index.js +4 -0
  42. package/dist/esm/llm/index.js.map +1 -1
  43. package/dist/esm/storage/index.js +8 -0
  44. package/dist/esm/storage/index.js.map +1 -1
  45. package/dist/esm/storage/neo4j-graphrag.js +591 -0
  46. package/dist/esm/storage/neo4j-graphrag.js.map +1 -0
  47. package/dist/esm/types/graphrag.js +10 -0
  48. package/dist/esm/types/graphrag.js.map +1 -0
  49. package/dist/types/components/SkillGraph.d.ts.map +1 -1
  50. package/dist/types/components/hooks.d.ts.map +1 -1
  51. package/dist/types/embeddings/base.d.ts +51 -0
  52. package/dist/types/embeddings/base.d.ts.map +1 -0
  53. package/dist/types/embeddings/index.d.ts +48 -0
  54. package/dist/types/embeddings/index.d.ts.map +1 -0
  55. package/dist/types/embeddings/local.d.ts +82 -0
  56. package/dist/types/embeddings/local.d.ts.map +1 -0
  57. package/dist/types/embeddings/openai.d.ts +48 -0
  58. package/dist/types/embeddings/openai.d.ts.map +1 -0
  59. package/dist/types/index.d.ts +2 -0
  60. package/dist/types/index.d.ts.map +1 -1
  61. package/dist/types/llm/graphrag-orchestrator.d.ts +280 -0
  62. package/dist/types/llm/graphrag-orchestrator.d.ts.map +1 -0
  63. package/dist/types/llm/index.d.ts +2 -0
  64. package/dist/types/llm/index.d.ts.map +1 -1
  65. package/dist/types/mcp/tools.d.ts +6 -6
  66. package/dist/types/storage/index.d.ts +2 -0
  67. package/dist/types/storage/index.d.ts.map +1 -1
  68. package/dist/types/storage/neo4j-graphrag.d.ts +106 -0
  69. package/dist/types/storage/neo4j-graphrag.d.ts.map +1 -0
  70. package/dist/types/types/graphrag.d.ts +335 -0
  71. package/dist/types/types/graphrag.d.ts.map +1 -0
  72. package/dist/types/types/index.d.ts +1 -0
  73. package/dist/types/types/index.d.ts.map +1 -1
  74. package/package.json +1 -1
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Base adapter class for embedding providers
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { EmbeddingProvider, EmbeddingConfig, EmbeddingAdapter, EmbeddingResult, BatchEmbeddingResult } from '../types/graphrag.js';
7
+ /**
8
+ * Embedding-related errors
9
+ */
10
+ export declare class EmbeddingError extends Error {
11
+ readonly code: EmbeddingErrorCode;
12
+ readonly provider: EmbeddingProvider;
13
+ readonly cause?: Error | undefined;
14
+ constructor(message: string, code: EmbeddingErrorCode, provider: EmbeddingProvider, cause?: Error | undefined);
15
+ }
16
+ export type EmbeddingErrorCode = 'NOT_CONFIGURED' | 'API_ERROR' | 'RATE_LIMIT' | 'INVALID_RESPONSE' | 'TIMEOUT' | 'NETWORK_ERROR' | 'MODEL_NOT_FOUND';
17
+ /**
18
+ * Default configuration values
19
+ */
20
+ export declare const DEFAULT_EMBEDDING_CONFIG: {
21
+ timeout: number;
22
+ retries: number;
23
+ batchSize: number;
24
+ };
25
+ /**
26
+ * Abstract base class for embedding adapters
27
+ */
28
+ export declare abstract class BaseEmbeddingAdapter implements EmbeddingAdapter {
29
+ protected config: EmbeddingConfig;
30
+ constructor(config: EmbeddingConfig);
31
+ abstract get provider(): EmbeddingProvider;
32
+ abstract get model(): string;
33
+ abstract get dimensions(): number;
34
+ abstract embed(text: string): Promise<EmbeddingResult>;
35
+ abstract embedBatch(texts: string[]): Promise<BatchEmbeddingResult>;
36
+ abstract isConfigured(): boolean;
37
+ getConfig(): Omit<EmbeddingConfig, 'apiKey'>;
38
+ /**
39
+ * Retry a function with exponential backoff
40
+ */
41
+ protected withRetry<T>(fn: () => Promise<T>, maxRetries?: number): Promise<T>;
42
+ /**
43
+ * Calculate cosine similarity between two vectors
44
+ */
45
+ protected cosineSimilarity(a: number[], b: number[]): number;
46
+ /**
47
+ * Normalize a vector to unit length
48
+ */
49
+ protected normalizeVector(vector: number[]): number[];
50
+ }
51
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/embeddings/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;aAGrB,IAAI,EAAE,kBAAkB;aACxB,QAAQ,EAAE,iBAAiB;aAC3B,KAAK,CAAC,EAAE,KAAK;gBAH7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,SAAS,GACT,eAAe,GACf,iBAAiB,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;CAIpC,CAAC;AAEF;;GAEG;AACH,8BAAsB,oBAAqB,YAAW,gBAAgB;IACpE,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;gBAEtB,MAAM,EAAE,eAAe;IAInC,QAAQ,KAAK,QAAQ,IAAI,iBAAiB,CAAC;IAC3C,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAC;IAC7B,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC;IAElC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAEnE,QAAQ,CAAC,YAAY,IAAI,OAAO;IAEhC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IAQ5C;;OAEG;cACa,SAAS,CAAC,CAAC,EACzB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,SAAmC,GAC5C,OAAO,CAAC,CAAC,CAAC;IA2Bb;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAoB5D;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAKtD"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Embedding Adapters
3
+ *
4
+ * This module provides embedding generation for GraphRAG functionality.
5
+ * Embeddings are used to enable semantic search across skills.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ export { BaseEmbeddingAdapter, EmbeddingError } from './base.js';
10
+ export type { EmbeddingErrorCode } from './base.js';
11
+ export { DEFAULT_EMBEDDING_CONFIG } from './base.js';
12
+ export { OpenAIEmbeddingAdapter, createOpenAIEmbeddingAdapter } from './openai.js';
13
+ export { LocalEmbeddingAdapter, createLocalEmbeddingAdapter } from './local.js';
14
+ export type { EmbeddingProvider, EmbeddingConfig, EmbeddingConfigBase, OpenAIEmbeddingConfig, VoyageEmbeddingConfig, CohereEmbeddingConfig, LocalEmbeddingConfig, EmbeddingResult, BatchEmbeddingResult, EmbeddingAdapter, } from '../types/graphrag.js';
15
+ import type { EmbeddingConfig, EmbeddingAdapter } from '../types/graphrag.js';
16
+ /**
17
+ * Create an embedding adapter from configuration
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // OpenAI embeddings
22
+ * const openai = createEmbeddingAdapter({
23
+ * provider: 'openai',
24
+ * apiKey: 'sk-...',
25
+ * model: 'text-embedding-3-small',
26
+ * });
27
+ *
28
+ * // Local embeddings (no API key needed)
29
+ * const local = createEmbeddingAdapter({
30
+ * provider: 'local',
31
+ * });
32
+ * ```
33
+ */
34
+ export declare function createEmbeddingAdapter(config: EmbeddingConfig): EmbeddingAdapter;
35
+ /**
36
+ * Create an embedding adapter from environment variables
37
+ *
38
+ * Automatically detects available API keys and creates the appropriate adapter.
39
+ * Falls back to local embeddings if no API keys are found.
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * // Will use OpenAI if OPENAI_API_KEY is set, otherwise local
44
+ * const adapter = createEmbeddingAdapterFromEnv();
45
+ * ```
46
+ */
47
+ export declare function createEmbeddingAdapterFromEnv(): EmbeddingAdapter;
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/embeddings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAGnF,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAGhF,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAK9E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CA6BhF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,IAAI,gBAAgB,CAgBhE"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Local embedding adapter
3
+ *
4
+ * Provides embedding generation without external API calls.
5
+ * Uses a simple but effective TF-IDF based approach for semantic similarity.
6
+ *
7
+ * For production use with better quality, consider using transformers.js
8
+ * with a model like 'Xenova/all-MiniLM-L6-v2'.
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ import type { EmbeddingProvider, LocalEmbeddingConfig, EmbeddingResult, BatchEmbeddingResult } from '../types/graphrag.js';
13
+ import { BaseEmbeddingAdapter } from './base.js';
14
+ /**
15
+ * Local embedding adapter using TF-IDF-like approach
16
+ *
17
+ * This provides a simple, fast, offline embedding that works well for
18
+ * finding similar skills based on shared vocabulary and structure.
19
+ */
20
+ export declare class LocalEmbeddingAdapter extends BaseEmbeddingAdapter {
21
+ private readonly modelName;
22
+ private readonly dims;
23
+ private vocabulary;
24
+ private idfScores;
25
+ private documentCount;
26
+ constructor(config: LocalEmbeddingConfig);
27
+ get provider(): EmbeddingProvider;
28
+ get model(): string;
29
+ get dimensions(): number;
30
+ isConfigured(): boolean;
31
+ /**
32
+ * Tokenize text into normalized tokens
33
+ */
34
+ private tokenize;
35
+ /**
36
+ * Calculate term frequency for a document
37
+ */
38
+ private calculateTF;
39
+ /**
40
+ * Generate a deterministic embedding vector from text
41
+ *
42
+ * Uses a combination of:
43
+ * 1. Token-based hashing for semantic representation
44
+ * 2. N-gram features for capturing word relationships
45
+ * 3. Positional encoding for word order sensitivity
46
+ */
47
+ private generateEmbedding;
48
+ /**
49
+ * Extract character n-grams from text
50
+ */
51
+ private getCharNgrams;
52
+ embed(text: string): Promise<EmbeddingResult>;
53
+ embedBatch(texts: string[]): Promise<BatchEmbeddingResult>;
54
+ /**
55
+ * Build vocabulary from a corpus for improved embeddings
56
+ *
57
+ * Call this with your skill names/descriptions to improve
58
+ * the quality of embeddings through proper IDF weighting.
59
+ */
60
+ buildVocabulary(documents: string[]): void;
61
+ /**
62
+ * Get vocabulary size
63
+ */
64
+ getVocabularySize(): number;
65
+ }
66
+ /**
67
+ * Create a local embedding adapter
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * // Create adapter
72
+ * const adapter = createLocalEmbeddingAdapter();
73
+ *
74
+ * // Optionally build vocabulary for better quality
75
+ * adapter.buildVocabulary(skillDescriptions);
76
+ *
77
+ * // Generate embedding
78
+ * const result = await adapter.embed('Learn to write JavaScript functions');
79
+ * ```
80
+ */
81
+ export declare function createLocalEmbeddingAdapter(model?: string): LocalEmbeddingAdapter;
82
+ //# sourceMappingURL=local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../src/embeddings/local.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAmCjD;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,aAAa,CAAK;gBAEd,MAAM,EAAE,oBAAoB;IAMxC,IAAI,QAAQ,IAAI,iBAAiB,CAEhC;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IA4CzB;;OAEG;IACH,OAAO,CAAC,aAAa;IASf,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAU7C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAahE;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAmB1C;;OAEG;IACH,iBAAiB,IAAI,MAAM;CAG5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,CAAC,EAAE,MAAM,GACb,qBAAqB,CAOvB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * OpenAI embedding adapter
3
+ *
4
+ * Supports OpenAI's text-embedding models including:
5
+ * - text-embedding-3-small (default, 1536 dims, cheapest)
6
+ * - text-embedding-3-large (3072 dims, highest quality)
7
+ * - text-embedding-ada-002 (legacy, 1536 dims)
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ import type { EmbeddingProvider, OpenAIEmbeddingConfig, EmbeddingResult, BatchEmbeddingResult } from '../types/graphrag.js';
12
+ import { BaseEmbeddingAdapter } from './base.js';
13
+ /**
14
+ * OpenAI embedding adapter
15
+ */
16
+ export declare class OpenAIEmbeddingAdapter extends BaseEmbeddingAdapter {
17
+ private readonly apiKey;
18
+ private readonly baseUrl;
19
+ private readonly modelName;
20
+ private readonly dims;
21
+ constructor(config: OpenAIEmbeddingConfig);
22
+ get provider(): EmbeddingProvider;
23
+ get model(): string;
24
+ get dimensions(): number;
25
+ isConfigured(): boolean;
26
+ embed(text: string): Promise<EmbeddingResult>;
27
+ embedBatch(texts: string[]): Promise<BatchEmbeddingResult>;
28
+ }
29
+ /**
30
+ * Create an OpenAI embedding adapter from environment variables
31
+ *
32
+ * @param model - Model to use (default: 'text-embedding-3-small')
33
+ * @param dimensions - Custom dimensions for text-embedding-3-* models
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * // Using default model (cheapest, good quality)
38
+ * const adapter = createOpenAIEmbeddingAdapter();
39
+ *
40
+ * // Using highest quality model
41
+ * const adapter = createOpenAIEmbeddingAdapter('text-embedding-3-large');
42
+ *
43
+ * // Using smaller dimensions for efficiency
44
+ * const adapter = createOpenAIEmbeddingAdapter('text-embedding-3-small', 512);
45
+ * ```
46
+ */
47
+ export declare function createOpenAIEmbeddingAdapter(model?: 'text-embedding-3-small' | 'text-embedding-3-large' | 'text-embedding-ada-002', dimensions?: number, apiKey?: string): OpenAIEmbeddingAdapter;
48
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/embeddings/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAA4C,MAAM,WAAW,CAAC;AAsC3F;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,oBAAoB;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,MAAM,EAAE,qBAAqB;IAczC,IAAI,QAAQ,IAAI,iBAAiB,CAEhC;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,YAAY,IAAI,OAAO;IAIjB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAS7C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA2GjE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,GAAE,wBAAwB,GAAG,wBAAwB,GAAG,wBAAmD,EAChH,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,CAmBxB"}
@@ -28,6 +28,8 @@
28
28
  */
29
29
  export * from './types/index.js';
30
30
  export { BKTEngine, createBKTEngine, estimateMastery, fitBKTParameters, calculateLogLikelihood, BKT_CONFIG_DEFAULTS, IRTEstimator, createIRTEstimator, calculateProbability, calculateProbabilityDerivative, calculateInformation, calculateTestInformation, calculateStandardError, selectNextItemMFI, abilityToPercentile, abilityToGradeLevel, estimateAbility, IRT_CONFIG_DEFAULTS, MasteryEngine, createMasteryEngine, MASTERY_ENGINE_DEFAULTS, AdaptiveEngine, createAdaptiveEngine, createQuestionPool, ADAPTIVE_DEFAULTS, TERMINATION_DEFAULTS, } from './assessment/index.js';
31
+ export { BaseEmbeddingAdapter, EmbeddingError, DEFAULT_EMBEDDING_CONFIG, OpenAIEmbeddingAdapter, createOpenAIEmbeddingAdapter, LocalEmbeddingAdapter, createLocalEmbeddingAdapter, createEmbeddingAdapter, createEmbeddingAdapterFromEnv, } from './embeddings/index.js';
32
+ export { Neo4jGraphRAGStorage, createNeo4jGraphRAGStorage, GRAPHRAG_DEFAULTS, } from './storage/neo4j-graphrag.js';
31
33
  /**
32
34
  * Package version
33
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,cAAc,kBAAkB,CAAC;AAKjC,OAAO,EAEL,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAEnB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EAEnB,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EAEvB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAM/B;;GAEG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,YAAY,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH,cAAc,kBAAkB,CAAC;AAKjC,OAAO,EAEL,SAAS,EACT,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EAEnB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EAEnB,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EAEvB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAEL,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EAExB,sBAAsB,EACtB,4BAA4B,EAE5B,qBAAqB,EACrB,2BAA2B,EAE3B,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AAMrC;;GAEG;AACH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,YAAY,eAAe,CAAC"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * GraphRAG-enhanced LLM orchestrator
3
+ *
4
+ * Extends the base orchestrator with semantic search capabilities
5
+ * to provide better context for skill extraction and prerequisite inference.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import type { LLMAdapter, SkillExtractionRequest, SkillExtractionResponse, PrerequisiteInferenceRequest, PrerequisiteInferenceResponse, DecompositionRequest, DecompositionResponse, ExtractedSkillLLM } from '../types/llm.js';
10
+ import type { BloomLevel } from '../types/bloom.js';
11
+ import type { GraphRAGStorage, VectorSearchResult } from '../types/graphrag.js';
12
+ import { LLMOrchestrator } from './orchestrator.js';
13
+ /**
14
+ * Options for GraphRAG-enhanced operations
15
+ */
16
+ export interface GraphRAGOrchestratorOptions {
17
+ /** Maximum similar skills to include in context (default: 5) */
18
+ maxContextSkills?: number;
19
+ /** Minimum similarity score for context skills (default: 0.6) */
20
+ minContextScore?: number;
21
+ /** Include prerequisite chains in context (default: true) */
22
+ includePrerequisites?: boolean;
23
+ /** Weight for similar skill context in prompt (default: 0.3) */
24
+ contextWeight?: number;
25
+ }
26
+ /**
27
+ * Extended extraction request with RAG context
28
+ */
29
+ export interface RAGSkillExtractionRequest extends SkillExtractionRequest {
30
+ /** Enable RAG-enhanced extraction */
31
+ useRAG?: boolean;
32
+ /** RAG options */
33
+ ragOptions?: GraphRAGOrchestratorOptions;
34
+ }
35
+ /**
36
+ * Extended extraction response with RAG metadata
37
+ */
38
+ export interface RAGSkillExtractionResponse extends SkillExtractionResponse {
39
+ /** Similar skills used for context */
40
+ contextSkills?: VectorSearchResult[];
41
+ /** RAG context that was provided */
42
+ ragContext?: string;
43
+ }
44
+ /**
45
+ * Extended decomposition request with RAG
46
+ */
47
+ export interface RAGDecompositionRequest extends DecompositionRequest {
48
+ /** Enable RAG-enhanced decomposition */
49
+ useRAG?: boolean;
50
+ /** RAG options */
51
+ ragOptions?: GraphRAGOrchestratorOptions;
52
+ }
53
+ /**
54
+ * Extended decomposition response with RAG metadata
55
+ */
56
+ export interface RAGDecompositionResponse extends DecompositionResponse {
57
+ /** Similar skills used for context */
58
+ contextSkills?: VectorSearchResult[];
59
+ /** RAG context that was provided */
60
+ ragContext?: string;
61
+ /** Skills that were matched to existing graph skills */
62
+ matchedSkills?: Array<{
63
+ extractedId: string;
64
+ matchedSkillId: string;
65
+ similarity: number;
66
+ }>;
67
+ }
68
+ /**
69
+ * GraphRAG-enhanced LLM orchestrator
70
+ *
71
+ * Provides semantic search-enhanced skill extraction and prerequisite inference.
72
+ */
73
+ export declare class GraphRAGOrchestrator extends LLMOrchestrator {
74
+ private storage;
75
+ private defaultOptions;
76
+ constructor(adapter: LLMAdapter, storage?: GraphRAGStorage, options?: GraphRAGOrchestratorOptions);
77
+ /**
78
+ * Set the GraphRAG storage
79
+ */
80
+ setStorage(storage: GraphRAGStorage): void;
81
+ /**
82
+ * Get the current storage
83
+ */
84
+ getStorage(): GraphRAGStorage | null;
85
+ /**
86
+ * Check if GraphRAG is available
87
+ */
88
+ isRAGEnabled(): boolean;
89
+ /**
90
+ * Build context string from similar skills
91
+ */
92
+ private formatSkillContext;
93
+ /**
94
+ * Build context from full GraphRAG context
95
+ */
96
+ private formatGraphRAGContext;
97
+ /**
98
+ * Extract skills with RAG enhancement
99
+ */
100
+ extractSkillsWithRAG(request: RAGSkillExtractionRequest): Promise<RAGSkillExtractionResponse>;
101
+ /**
102
+ * Infer prerequisites with RAG enhancement
103
+ */
104
+ inferPrerequisitesWithRAG(request: PrerequisiteInferenceRequest & {
105
+ useRAG?: boolean;
106
+ ragOptions?: GraphRAGOrchestratorOptions;
107
+ }): Promise<PrerequisiteInferenceResponse & {
108
+ ragContext?: string;
109
+ }>;
110
+ /**
111
+ * Full curriculum decomposition with RAG enhancement
112
+ */
113
+ decomposeWithRAG(request: RAGDecompositionRequest): Promise<RAGDecompositionResponse>;
114
+ /**
115
+ * Find existing skills that match extracted skills
116
+ *
117
+ * Use this after extraction to identify duplicates
118
+ */
119
+ matchExtractedSkills(extractedSkills: ExtractedSkillLLM[], options?: {
120
+ minSimilarity?: number;
121
+ }): Promise<Array<{
122
+ extracted: ExtractedSkillLLM;
123
+ matches: VectorSearchResult[];
124
+ bestMatch?: {
125
+ skillId: string;
126
+ similarity: number;
127
+ };
128
+ }>>;
129
+ /**
130
+ * Suggest prerequisite links between extracted and existing skills
131
+ */
132
+ suggestPrerequisiteLinks(extractedSkills: Array<{
133
+ id: string;
134
+ name: string;
135
+ description: string;
136
+ bloomLevel: BloomLevel;
137
+ }>, options?: {
138
+ maxSuggestionsPerSkill?: number;
139
+ }): Promise<Array<{
140
+ extractedSkillId: string;
141
+ suggestedPrerequisites: Array<{
142
+ skillId: string;
143
+ skillName: string;
144
+ confidence: number;
145
+ }>;
146
+ suggestedDependents: Array<{
147
+ skillId: string;
148
+ skillName: string;
149
+ confidence: number;
150
+ }>;
151
+ }>>;
152
+ /**
153
+ * Generate a personalized learning path with LLM-enhanced reasoning
154
+ *
155
+ * This combines GraphRAG path generation with LLM analysis
156
+ * to provide better explanations and alternative paths.
157
+ */
158
+ generateLearningPath(request: LearningPathRequest): Promise<LearningPathWithReasoning>;
159
+ /**
160
+ * Format a learning path for LLM context
161
+ */
162
+ private formatPathForLLM;
163
+ /**
164
+ * Analyze a learner's progress and recommend next steps
165
+ */
166
+ analyzeProgressAndRecommend(request: ProgressAnalysisRequest): Promise<ProgressAnalysisResult>;
167
+ }
168
+ /**
169
+ * Request for learning path generation
170
+ */
171
+ export interface LearningPathRequest {
172
+ /** Natural language goal description */
173
+ goal: string;
174
+ /** Current skill mastery states (skillId -> mastery 0-1) */
175
+ currentMastery?: Map<string, number>;
176
+ /** Maximum path length */
177
+ maxSteps?: number;
178
+ /** Learning preferences */
179
+ preferences?: {
180
+ style?: 'practical' | 'theoretical' | 'balanced';
181
+ difficulty?: 'gradual' | 'challenging';
182
+ };
183
+ /** Enhance path with LLM reasoning */
184
+ enhanceWithLLM?: boolean;
185
+ }
186
+ /**
187
+ * Enhanced learning path result with LLM reasoning
188
+ */
189
+ export interface LearningPathWithReasoning {
190
+ /** Ordered list of skills with optional learning guidance */
191
+ path: Array<import('../types/skill.js').SkillNode & {
192
+ learningGuidance?: {
193
+ whyImportant: string;
194
+ howToApproach: string;
195
+ estimatedEffort: string;
196
+ };
197
+ }>;
198
+ /** Edges connecting path skills */
199
+ edges: import('../types/edge.js').PrerequisiteEdge[];
200
+ /** Estimated total time (minutes) */
201
+ estimatedMinutes: number;
202
+ /** Detailed reasoning for the path */
203
+ reasoning: string;
204
+ /** Alternative paths */
205
+ alternatives?: Array<{
206
+ path: import('../types/skill.js').SkillNode[];
207
+ reasoning: string;
208
+ }>;
209
+ /** LLM-generated enhancements */
210
+ llmEnhancements?: {
211
+ tips: string[];
212
+ potentialChallenges: string[];
213
+ alternativeApproaches?: Array<{
214
+ name: string;
215
+ description: string;
216
+ tradeoffs: string;
217
+ }>;
218
+ };
219
+ /** API usage */
220
+ usage?: import('../types/llm.js').CompletionResponse['usage'];
221
+ /** Processing time in milliseconds */
222
+ durationMs: number;
223
+ }
224
+ /**
225
+ * Progress analysis request
226
+ */
227
+ export interface ProgressAnalysisRequest {
228
+ /** Map of skill IDs to mastery levels (0-1) */
229
+ masteredSkills: Map<string, number>;
230
+ /** The learner's goal (optional) */
231
+ goal?: string;
232
+ /** Generate LLM insights */
233
+ generateInsights?: boolean;
234
+ /** Max recommendations to return */
235
+ maxRecommendations?: number;
236
+ }
237
+ /**
238
+ * Skill recommendation
239
+ */
240
+ export interface SkillRecommendation {
241
+ /** The recommended skill */
242
+ skill: import('../types/skill.js').SkillNode;
243
+ /** How ready the learner is (0-1) */
244
+ readiness: number;
245
+ /** Why this skill is recommended */
246
+ reason: string;
247
+ /** Priority score */
248
+ priority: number;
249
+ }
250
+ /**
251
+ * LLM-generated progress insights
252
+ */
253
+ export interface ProgressInsights {
254
+ /** Summary of current progress */
255
+ progressSummary: string;
256
+ /** Strengths identified */
257
+ strengths: string[];
258
+ /** Areas for improvement */
259
+ areasToImprove: string[];
260
+ /** Motivational message */
261
+ encouragement: string;
262
+ /** Suggested focus areas */
263
+ focusAreas: string[];
264
+ }
265
+ /**
266
+ * Progress analysis result
267
+ */
268
+ export interface ProgressAnalysisResult {
269
+ /** Recommended skills */
270
+ recommendations: SkillRecommendation[];
271
+ /** LLM insights (if requested) */
272
+ insights?: ProgressInsights;
273
+ /** Processing time */
274
+ durationMs: number;
275
+ }
276
+ /**
277
+ * Create a GraphRAG-enhanced orchestrator
278
+ */
279
+ export declare function createGraphRAGOrchestrator(adapter: LLMAdapter, storage?: GraphRAGStorage, options?: GraphRAGOrchestratorOptions): GraphRAGOrchestrator;
280
+ //# sourceMappingURL=graphrag-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphrag-orchestrator.d.ts","sourceRoot":"","sources":["../../../src/llm/graphrag-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ export type { LLMProvider, LLMConfig, OpenAIConfig, AnthropicConfig, OllamaConfi
7
7
  export { BaseLLMAdapter, LLMError, DEFAULT_CONFIG, OpenAIAdapter, createOpenAIAdapter, AnthropicAdapter, createAnthropicAdapter, OllamaAdapter, createOllamaAdapter, GeminiAdapter, createGeminiAdapter, OpenRouterAdapter, createOpenRouterAdapter, OPENROUTER_MODELS, MediaPipeAdapter, createMediaPipeAdapter, MEDIAPIPE_MODELS, } from './adapters/index.js';
8
8
  export type { LLMErrorCode } from './adapters/index.js';
9
9
  export { LLMOrchestrator, createOrchestrator } from './orchestrator.js';
10
+ export { GraphRAGOrchestrator, createGraphRAGOrchestrator, } from './graphrag-orchestrator.js';
11
+ export type { GraphRAGOrchestratorOptions, RAGSkillExtractionRequest, RAGSkillExtractionResponse, RAGDecompositionRequest, RAGDecompositionResponse, LearningPathRequest, LearningPathWithReasoning, ProgressAnalysisRequest, ProgressAnalysisResult, SkillRecommendation, ProgressInsights, } from './graphrag-orchestrator.js';
10
12
  export { SYSTEM_PROMPTS, EXTRACTION_SCHEMA, PREREQUISITE_SCHEMA, BLOOM_ANALYSIS_SCHEMA, DECOMPOSITION_SCHEMA, buildExtractionPrompt, buildPrerequisitePrompt, buildBloomPrompt, buildDecompositionPrompt, } from './prompts.js';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,YAAY,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,EACpB,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,eAAe,IAAI,gBAAgB,GACpC,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKxE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/llm/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,YAAY,EACV,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,oBAAoB,EACpB,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,eAAe,IAAI,gBAAgB,GACpC,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAKxE,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,cAAc,CAAC"}
@@ -15,15 +15,15 @@ export declare const ListSkillsSchema: z.ZodObject<{
15
15
  bloomLevel: z.ZodOptional<z.ZodEnum<["remember", "understand", "apply", "analyze", "evaluate", "create"]>>;
16
16
  tag: z.ZodOptional<z.ZodString>;
17
17
  }, "strip", z.ZodTypeAny, {
18
- limit: number;
19
18
  offset: number;
19
+ limit: number;
20
20
  bloomLevel?: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create" | undefined;
21
21
  tag?: string | undefined;
22
22
  }, {
23
23
  bloomLevel?: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create" | undefined;
24
+ offset?: number | undefined;
24
25
  limit?: number | undefined;
25
26
  tag?: string | undefined;
26
- offset?: number | undefined;
27
27
  }>;
28
28
  export declare const GetSkillSchema: z.ZodObject<{
29
29
  skillId: z.ZodString;
@@ -55,8 +55,8 @@ export declare const SearchSkillsSchema: z.ZodObject<{
55
55
  query: z.ZodString;
56
56
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
57
  }, "strip", z.ZodTypeAny, {
58
- query: string;
59
58
  limit: number;
59
+ query: string;
60
60
  }, {
61
61
  query: string;
62
62
  limit?: number | undefined;
@@ -184,15 +184,15 @@ export declare const TOOL_DEFINITIONS: {
184
184
  bloomLevel: z.ZodOptional<z.ZodEnum<["remember", "understand", "apply", "analyze", "evaluate", "create"]>>;
185
185
  tag: z.ZodOptional<z.ZodString>;
186
186
  }, "strip", z.ZodTypeAny, {
187
- limit: number;
188
187
  offset: number;
188
+ limit: number;
189
189
  bloomLevel?: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create" | undefined;
190
190
  tag?: string | undefined;
191
191
  }, {
192
192
  bloomLevel?: "remember" | "understand" | "apply" | "analyze" | "evaluate" | "create" | undefined;
193
+ offset?: number | undefined;
193
194
  limit?: number | undefined;
194
195
  tag?: string | undefined;
195
- offset?: number | undefined;
196
196
  }>;
197
197
  readonly handler: typeof listSkills;
198
198
  };
@@ -236,8 +236,8 @@ export declare const TOOL_DEFINITIONS: {
236
236
  query: z.ZodString;
237
237
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
238
238
  }, "strip", z.ZodTypeAny, {
239
- query: string;
240
239
  limit: number;
240
+ query: string;
241
241
  }, {
242
242
  query: string;
243
243
  limit?: number | undefined;
@@ -41,6 +41,8 @@ export { generateId, nowISO, inputToSkillNode, inputToEdge, validateSkillInput,
41
41
  export { MemoryStorage } from './memory.js';
42
42
  export { LevelGraphStorage } from './levelgraph.js';
43
43
  export { Neo4jStorage } from './neo4j.js';
44
+ export { Neo4jGraphRAGStorage, createNeo4jGraphRAGStorage, GRAPHRAG_DEFAULTS, } from './neo4j-graphrag.js';
45
+ export { FRACTIONS_CURRICULUM, PROGRAMMING_CURRICULUM, seedStorage, } from './seeds.js';
44
46
  import type { StorageConfig, GraphStorage } from '../types/storage.js';
45
47
  /**
46
48
  * Create a storage adapter based on configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAKH,YAAY,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,WAAW,CAAC;AAKnB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK1C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKvE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,CAWjE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAKH,YAAY,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,WAAW,CAAC;AAKnB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK1C,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,GACZ,MAAM,YAAY,CAAC;AAKpB,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKvE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,YAAY,CAWjE"}