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.
- package/dist/cjs/components/SkillGraph.js +224 -23
- package/dist/cjs/components/SkillGraph.js.map +1 -1
- package/dist/cjs/components/hooks.js +10 -0
- package/dist/cjs/components/hooks.js.map +1 -1
- package/dist/cjs/embeddings/base.js +104 -0
- package/dist/cjs/embeddings/base.js.map +1 -0
- package/dist/cjs/embeddings/index.js +91 -0
- package/dist/cjs/embeddings/index.js.map +1 -0
- package/dist/cjs/embeddings/local.js +224 -0
- package/dist/cjs/embeddings/local.js.map +1 -0
- package/dist/cjs/embeddings/openai.js +169 -0
- package/dist/cjs/embeddings/openai.js.map +1 -0
- package/dist/cjs/index.js +25 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/llm/graphrag-orchestrator.js +1004 -0
- package/dist/cjs/llm/graphrag-orchestrator.js.map +1 -0
- package/dist/cjs/llm/index.js +7 -1
- package/dist/cjs/llm/index.js.map +1 -1
- package/dist/cjs/storage/index.js +15 -1
- package/dist/cjs/storage/index.js.map +1 -1
- package/dist/cjs/storage/neo4j-graphrag.js +596 -0
- package/dist/cjs/storage/neo4j-graphrag.js.map +1 -0
- package/dist/cjs/types/graphrag.js +11 -0
- package/dist/cjs/types/graphrag.js.map +1 -0
- package/dist/esm/components/SkillGraph.js +226 -25
- package/dist/esm/components/SkillGraph.js.map +1 -1
- package/dist/esm/components/hooks.js +10 -0
- package/dist/esm/components/hooks.js.map +1 -1
- package/dist/esm/embeddings/base.js +99 -0
- package/dist/esm/embeddings/base.js.map +1 -0
- package/dist/esm/embeddings/index.js +79 -0
- package/dist/esm/embeddings/index.js.map +1 -0
- package/dist/esm/embeddings/local.js +219 -0
- package/dist/esm/embeddings/local.js.map +1 -0
- package/dist/esm/embeddings/openai.js +164 -0
- package/dist/esm/embeddings/openai.js.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/llm/graphrag-orchestrator.js +999 -0
- package/dist/esm/llm/graphrag-orchestrator.js.map +1 -0
- package/dist/esm/llm/index.js +4 -0
- package/dist/esm/llm/index.js.map +1 -1
- package/dist/esm/storage/index.js +8 -0
- package/dist/esm/storage/index.js.map +1 -1
- package/dist/esm/storage/neo4j-graphrag.js +591 -0
- package/dist/esm/storage/neo4j-graphrag.js.map +1 -0
- package/dist/esm/types/graphrag.js +10 -0
- package/dist/esm/types/graphrag.js.map +1 -0
- package/dist/types/components/SkillGraph.d.ts.map +1 -1
- package/dist/types/components/hooks.d.ts.map +1 -1
- package/dist/types/embeddings/base.d.ts +51 -0
- package/dist/types/embeddings/base.d.ts.map +1 -0
- package/dist/types/embeddings/index.d.ts +48 -0
- package/dist/types/embeddings/index.d.ts.map +1 -0
- package/dist/types/embeddings/local.d.ts +82 -0
- package/dist/types/embeddings/local.d.ts.map +1 -0
- package/dist/types/embeddings/openai.d.ts +48 -0
- package/dist/types/embeddings/openai.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/llm/graphrag-orchestrator.d.ts +280 -0
- package/dist/types/llm/graphrag-orchestrator.d.ts.map +1 -0
- package/dist/types/llm/index.d.ts +2 -0
- package/dist/types/llm/index.d.ts.map +1 -1
- package/dist/types/mcp/tools.d.ts +6 -6
- package/dist/types/storage/index.d.ts +2 -0
- package/dist/types/storage/index.d.ts.map +1 -1
- package/dist/types/storage/neo4j-graphrag.d.ts +106 -0
- package/dist/types/storage/neo4j-graphrag.d.ts.map +1 -0
- package/dist/types/types/graphrag.d.ts +335 -0
- package/dist/types/types/graphrag.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/embeddings/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Embedding Adapters
|
|
4
|
+
*
|
|
5
|
+
* This module provides embedding generation for GraphRAG functionality.
|
|
6
|
+
* Embeddings are used to enable semantic search across skills.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.createLocalEmbeddingAdapter = exports.LocalEmbeddingAdapter = exports.createOpenAIEmbeddingAdapter = exports.OpenAIEmbeddingAdapter = exports.DEFAULT_EMBEDDING_CONFIG = exports.EmbeddingError = exports.BaseEmbeddingAdapter = void 0;
|
|
12
|
+
exports.createEmbeddingAdapter = createEmbeddingAdapter;
|
|
13
|
+
exports.createEmbeddingAdapterFromEnv = createEmbeddingAdapterFromEnv;
|
|
14
|
+
// Base classes and utilities
|
|
15
|
+
var base_js_1 = require("./base.js");
|
|
16
|
+
Object.defineProperty(exports, "BaseEmbeddingAdapter", { enumerable: true, get: function () { return base_js_1.BaseEmbeddingAdapter; } });
|
|
17
|
+
Object.defineProperty(exports, "EmbeddingError", { enumerable: true, get: function () { return base_js_1.EmbeddingError; } });
|
|
18
|
+
var base_js_2 = require("./base.js");
|
|
19
|
+
Object.defineProperty(exports, "DEFAULT_EMBEDDING_CONFIG", { enumerable: true, get: function () { return base_js_2.DEFAULT_EMBEDDING_CONFIG; } });
|
|
20
|
+
// OpenAI embeddings
|
|
21
|
+
var openai_js_1 = require("./openai.js");
|
|
22
|
+
Object.defineProperty(exports, "OpenAIEmbeddingAdapter", { enumerable: true, get: function () { return openai_js_1.OpenAIEmbeddingAdapter; } });
|
|
23
|
+
Object.defineProperty(exports, "createOpenAIEmbeddingAdapter", { enumerable: true, get: function () { return openai_js_1.createOpenAIEmbeddingAdapter; } });
|
|
24
|
+
// Local embeddings (no API required)
|
|
25
|
+
var local_js_1 = require("./local.js");
|
|
26
|
+
Object.defineProperty(exports, "LocalEmbeddingAdapter", { enumerable: true, get: function () { return local_js_1.LocalEmbeddingAdapter; } });
|
|
27
|
+
Object.defineProperty(exports, "createLocalEmbeddingAdapter", { enumerable: true, get: function () { return local_js_1.createLocalEmbeddingAdapter; } });
|
|
28
|
+
const openai_js_2 = require("./openai.js");
|
|
29
|
+
const local_js_2 = require("./local.js");
|
|
30
|
+
const base_js_3 = require("./base.js");
|
|
31
|
+
/**
|
|
32
|
+
* Create an embedding adapter from configuration
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* // OpenAI embeddings
|
|
37
|
+
* const openai = createEmbeddingAdapter({
|
|
38
|
+
* provider: 'openai',
|
|
39
|
+
* apiKey: 'sk-...',
|
|
40
|
+
* model: 'text-embedding-3-small',
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* // Local embeddings (no API key needed)
|
|
44
|
+
* const local = createEmbeddingAdapter({
|
|
45
|
+
* provider: 'local',
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
function createEmbeddingAdapter(config) {
|
|
50
|
+
switch (config.provider) {
|
|
51
|
+
case 'openai':
|
|
52
|
+
return new openai_js_2.OpenAIEmbeddingAdapter(config);
|
|
53
|
+
case 'local':
|
|
54
|
+
return new local_js_2.LocalEmbeddingAdapter(config);
|
|
55
|
+
case 'voyage':
|
|
56
|
+
throw new base_js_3.EmbeddingError('Voyage AI embeddings not yet implemented. Use OpenAI or local.', 'NOT_CONFIGURED', 'voyage');
|
|
57
|
+
case 'cohere':
|
|
58
|
+
throw new base_js_3.EmbeddingError('Cohere embeddings not yet implemented. Use OpenAI or local.', 'NOT_CONFIGURED', 'cohere');
|
|
59
|
+
default:
|
|
60
|
+
throw new base_js_3.EmbeddingError(`Unknown embedding provider: ${config.provider}`, 'NOT_CONFIGURED', 'local');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create an embedding adapter from environment variables
|
|
65
|
+
*
|
|
66
|
+
* Automatically detects available API keys and creates the appropriate adapter.
|
|
67
|
+
* Falls back to local embeddings if no API keys are found.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* // Will use OpenAI if OPENAI_API_KEY is set, otherwise local
|
|
72
|
+
* const adapter = createEmbeddingAdapterFromEnv();
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
function createEmbeddingAdapterFromEnv() {
|
|
76
|
+
// Check for OpenAI
|
|
77
|
+
const openaiKey = typeof process !== 'undefined' ? process.env.OPENAI_API_KEY : undefined;
|
|
78
|
+
if (openaiKey) {
|
|
79
|
+
return new openai_js_2.OpenAIEmbeddingAdapter({
|
|
80
|
+
provider: 'openai',
|
|
81
|
+
apiKey: openaiKey,
|
|
82
|
+
model: 'text-embedding-3-small',
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
// Fall back to local embeddings
|
|
86
|
+
console.warn('No embedding API keys found. Using local embeddings (lower quality).');
|
|
87
|
+
return new local_js_2.LocalEmbeddingAdapter({
|
|
88
|
+
provider: 'local',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/embeddings/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAmDH,wDA6BC;AAcD,sEAgBC;AA5GD,6BAA6B;AAC7B,qCAAiE;AAAxD,+GAAA,oBAAoB,OAAA;AAAE,yGAAA,cAAc,OAAA;AAE7C,qCAAqD;AAA5C,mHAAA,wBAAwB,OAAA;AAEjC,oBAAoB;AACpB,yCAAmF;AAA1E,mHAAA,sBAAsB,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AAE7D,qCAAqC;AACrC,uCAAgF;AAAvE,iHAAA,qBAAqB,OAAA;AAAE,uHAAA,2BAA2B,OAAA;AAkB3D,2CAAqD;AACrD,yCAAmD;AACnD,uCAA2C;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,sBAAsB,CAAC,MAAuB;IAC5D,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,IAAI,kCAAsB,CAAC,MAAM,CAAC,CAAC;QAE5C,KAAK,OAAO;YACV,OAAO,IAAI,gCAAqB,CAAC,MAAM,CAAC,CAAC;QAE3C,KAAK,QAAQ;YACX,MAAM,IAAI,wBAAc,CACtB,gEAAgE,EAChE,gBAAgB,EAChB,QAAQ,CACT,CAAC;QAEJ,KAAK,QAAQ;YACX,MAAM,IAAI,wBAAc,CACtB,6DAA6D,EAC7D,gBAAgB,EAChB,QAAQ,CACT,CAAC;QAEJ;YACE,MAAM,IAAI,wBAAc,CACtB,+BAAgC,MAA0B,CAAC,QAAQ,EAAE,EACrE,gBAAgB,EAChB,OAAO,CACR,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,6BAA6B;IAC3C,mBAAmB;IACnB,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,kCAAsB,CAAC;YAChC,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,gCAAgC;IAChC,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACrF,OAAO,IAAI,gCAAqB,CAAC;QAC/B,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Local embedding adapter
|
|
4
|
+
*
|
|
5
|
+
* Provides embedding generation without external API calls.
|
|
6
|
+
* Uses a simple but effective TF-IDF based approach for semantic similarity.
|
|
7
|
+
*
|
|
8
|
+
* For production use with better quality, consider using transformers.js
|
|
9
|
+
* with a model like 'Xenova/all-MiniLM-L6-v2'.
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.LocalEmbeddingAdapter = void 0;
|
|
15
|
+
exports.createLocalEmbeddingAdapter = createLocalEmbeddingAdapter;
|
|
16
|
+
const base_js_1 = require("./base.js");
|
|
17
|
+
/**
|
|
18
|
+
* Default dimensions for local embeddings
|
|
19
|
+
*/
|
|
20
|
+
const DEFAULT_LOCAL_DIMENSIONS = 384;
|
|
21
|
+
/**
|
|
22
|
+
* Common English stop words to filter out
|
|
23
|
+
*/
|
|
24
|
+
const STOP_WORDS = new Set([
|
|
25
|
+
'a', 'an', 'the', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for',
|
|
26
|
+
'of', 'with', 'by', 'from', 'as', 'is', 'was', 'are', 'were', 'been',
|
|
27
|
+
'be', 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would',
|
|
28
|
+
'could', 'should', 'may', 'might', 'must', 'shall', 'can', 'need',
|
|
29
|
+
'dare', 'ought', 'used', 'this', 'that', 'these', 'those', 'i', 'you',
|
|
30
|
+
'he', 'she', 'it', 'we', 'they', 'what', 'which', 'who', 'whom',
|
|
31
|
+
'whose', 'where', 'when', 'why', 'how', 'all', 'each', 'every',
|
|
32
|
+
'both', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor',
|
|
33
|
+
'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 'just',
|
|
34
|
+
]);
|
|
35
|
+
/**
|
|
36
|
+
* Simple hash function for consistent vector generation
|
|
37
|
+
*/
|
|
38
|
+
function hashCode(str) {
|
|
39
|
+
let hash = 0;
|
|
40
|
+
for (let i = 0; i < str.length; i++) {
|
|
41
|
+
const char = str.charCodeAt(i);
|
|
42
|
+
hash = ((hash << 5) - hash) + char;
|
|
43
|
+
hash = hash & hash; // Convert to 32bit integer
|
|
44
|
+
}
|
|
45
|
+
return hash;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Local embedding adapter using TF-IDF-like approach
|
|
49
|
+
*
|
|
50
|
+
* This provides a simple, fast, offline embedding that works well for
|
|
51
|
+
* finding similar skills based on shared vocabulary and structure.
|
|
52
|
+
*/
|
|
53
|
+
class LocalEmbeddingAdapter extends base_js_1.BaseEmbeddingAdapter {
|
|
54
|
+
modelName;
|
|
55
|
+
dims;
|
|
56
|
+
vocabulary = new Map();
|
|
57
|
+
idfScores = new Map();
|
|
58
|
+
documentCount = 0;
|
|
59
|
+
constructor(config) {
|
|
60
|
+
super(config);
|
|
61
|
+
this.modelName = config.model ?? 'local-tfidf';
|
|
62
|
+
this.dims = DEFAULT_LOCAL_DIMENSIONS;
|
|
63
|
+
}
|
|
64
|
+
get provider() {
|
|
65
|
+
return 'local';
|
|
66
|
+
}
|
|
67
|
+
get model() {
|
|
68
|
+
return this.modelName;
|
|
69
|
+
}
|
|
70
|
+
get dimensions() {
|
|
71
|
+
return this.dims;
|
|
72
|
+
}
|
|
73
|
+
isConfigured() {
|
|
74
|
+
return true; // Local adapter is always configured
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Tokenize text into normalized tokens
|
|
78
|
+
*/
|
|
79
|
+
tokenize(text) {
|
|
80
|
+
return text
|
|
81
|
+
.toLowerCase()
|
|
82
|
+
.replace(/[^a-z0-9\s]/g, ' ')
|
|
83
|
+
.split(/\s+/)
|
|
84
|
+
.filter((token) => token.length > 1 && !STOP_WORDS.has(token));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Calculate term frequency for a document
|
|
88
|
+
*/
|
|
89
|
+
calculateTF(tokens) {
|
|
90
|
+
const tf = new Map();
|
|
91
|
+
const maxFreq = Math.max(...Array.from(tokens.reduce((acc, token) => {
|
|
92
|
+
acc.set(token, (acc.get(token) ?? 0) + 1);
|
|
93
|
+
return acc;
|
|
94
|
+
}, new Map()).values()), 1);
|
|
95
|
+
for (const token of tokens) {
|
|
96
|
+
const count = tokens.filter((t) => t === token).length;
|
|
97
|
+
tf.set(token, count / maxFreq);
|
|
98
|
+
}
|
|
99
|
+
return tf;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Generate a deterministic embedding vector from text
|
|
103
|
+
*
|
|
104
|
+
* Uses a combination of:
|
|
105
|
+
* 1. Token-based hashing for semantic representation
|
|
106
|
+
* 2. N-gram features for capturing word relationships
|
|
107
|
+
* 3. Positional encoding for word order sensitivity
|
|
108
|
+
*/
|
|
109
|
+
generateEmbedding(text) {
|
|
110
|
+
const tokens = this.tokenize(text);
|
|
111
|
+
const vector = new Array(this.dims).fill(0);
|
|
112
|
+
if (tokens.length === 0) {
|
|
113
|
+
return this.normalizeVector(vector);
|
|
114
|
+
}
|
|
115
|
+
const tf = this.calculateTF(tokens);
|
|
116
|
+
// Generate embedding from tokens with positional encoding
|
|
117
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
118
|
+
const token = tokens[i];
|
|
119
|
+
const baseHash = hashCode(token);
|
|
120
|
+
const positionWeight = 1 / (1 + Math.log(i + 1));
|
|
121
|
+
const tfWeight = tf.get(token) ?? 1;
|
|
122
|
+
// Distribute token influence across multiple dimensions
|
|
123
|
+
for (let j = 0; j < 8; j++) {
|
|
124
|
+
const dimIndex = Math.abs((baseHash + j * 7919) % this.dims);
|
|
125
|
+
const value = Math.sin(baseHash * (j + 1)) * tfWeight * positionWeight;
|
|
126
|
+
vector[dimIndex] += value;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Add bigram features
|
|
130
|
+
for (let i = 0; i < tokens.length - 1; i++) {
|
|
131
|
+
const bigram = tokens[i] + '_' + tokens[i + 1];
|
|
132
|
+
const bigramHash = hashCode(bigram);
|
|
133
|
+
const dimIndex = Math.abs(bigramHash % this.dims);
|
|
134
|
+
vector[dimIndex] += 0.5 * Math.sin(bigramHash);
|
|
135
|
+
}
|
|
136
|
+
// Add character-level n-gram features for robustness
|
|
137
|
+
const charNgrams = this.getCharNgrams(text.toLowerCase(), 3);
|
|
138
|
+
for (const ngram of charNgrams) {
|
|
139
|
+
const ngramHash = hashCode(ngram);
|
|
140
|
+
const dimIndex = Math.abs(ngramHash % this.dims);
|
|
141
|
+
vector[dimIndex] += 0.1 * Math.sin(ngramHash);
|
|
142
|
+
}
|
|
143
|
+
return this.normalizeVector(vector);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Extract character n-grams from text
|
|
147
|
+
*/
|
|
148
|
+
getCharNgrams(text, n) {
|
|
149
|
+
const ngrams = [];
|
|
150
|
+
const cleanText = text.replace(/\s+/g, ' ');
|
|
151
|
+
for (let i = 0; i <= cleanText.length - n; i++) {
|
|
152
|
+
ngrams.push(cleanText.substring(i, i + n));
|
|
153
|
+
}
|
|
154
|
+
return ngrams;
|
|
155
|
+
}
|
|
156
|
+
async embed(text) {
|
|
157
|
+
const vector = this.generateEmbedding(text);
|
|
158
|
+
return {
|
|
159
|
+
vector,
|
|
160
|
+
dimensions: this.dims,
|
|
161
|
+
model: this.modelName,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
async embedBatch(texts) {
|
|
165
|
+
// Update document statistics for better IDF weighting
|
|
166
|
+
this.documentCount += texts.length;
|
|
167
|
+
const embeddings = await Promise.all(texts.map((text) => this.embed(text)));
|
|
168
|
+
return {
|
|
169
|
+
embeddings,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Build vocabulary from a corpus for improved embeddings
|
|
174
|
+
*
|
|
175
|
+
* Call this with your skill names/descriptions to improve
|
|
176
|
+
* the quality of embeddings through proper IDF weighting.
|
|
177
|
+
*/
|
|
178
|
+
buildVocabulary(documents) {
|
|
179
|
+
const documentFreq = new Map();
|
|
180
|
+
this.documentCount = documents.length;
|
|
181
|
+
for (const doc of documents) {
|
|
182
|
+
const tokens = new Set(this.tokenize(doc));
|
|
183
|
+
for (const token of tokens) {
|
|
184
|
+
documentFreq.set(token, (documentFreq.get(token) ?? 0) + 1);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// Calculate IDF scores
|
|
188
|
+
for (const [token, freq] of documentFreq.entries()) {
|
|
189
|
+
const idf = Math.log(this.documentCount / (1 + freq)) + 1;
|
|
190
|
+
this.idfScores.set(token, idf);
|
|
191
|
+
this.vocabulary.set(token, this.vocabulary.size);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get vocabulary size
|
|
196
|
+
*/
|
|
197
|
+
getVocabularySize() {
|
|
198
|
+
return this.vocabulary.size;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.LocalEmbeddingAdapter = LocalEmbeddingAdapter;
|
|
202
|
+
/**
|
|
203
|
+
* Create a local embedding adapter
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* // Create adapter
|
|
208
|
+
* const adapter = createLocalEmbeddingAdapter();
|
|
209
|
+
*
|
|
210
|
+
* // Optionally build vocabulary for better quality
|
|
211
|
+
* adapter.buildVocabulary(skillDescriptions);
|
|
212
|
+
*
|
|
213
|
+
* // Generate embedding
|
|
214
|
+
* const result = await adapter.embed('Learn to write JavaScript functions');
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
function createLocalEmbeddingAdapter(model) {
|
|
218
|
+
const config = {
|
|
219
|
+
provider: 'local',
|
|
220
|
+
model,
|
|
221
|
+
};
|
|
222
|
+
return new LocalEmbeddingAdapter(config);
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/embeddings/local.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenAI embedding adapter
|
|
4
|
+
*
|
|
5
|
+
* Supports OpenAI's text-embedding models including:
|
|
6
|
+
* - text-embedding-3-small (default, 1536 dims, cheapest)
|
|
7
|
+
* - text-embedding-3-large (3072 dims, highest quality)
|
|
8
|
+
* - text-embedding-ada-002 (legacy, 1536 dims)
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.OpenAIEmbeddingAdapter = void 0;
|
|
14
|
+
exports.createOpenAIEmbeddingAdapter = createOpenAIEmbeddingAdapter;
|
|
15
|
+
const base_js_1 = require("./base.js");
|
|
16
|
+
/**
|
|
17
|
+
* OpenAI embedding model dimensions
|
|
18
|
+
*/
|
|
19
|
+
const MODEL_DIMENSIONS = {
|
|
20
|
+
'text-embedding-3-small': 1536,
|
|
21
|
+
'text-embedding-3-large': 3072,
|
|
22
|
+
'text-embedding-ada-002': 1536,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* OpenAI embedding adapter
|
|
26
|
+
*/
|
|
27
|
+
class OpenAIEmbeddingAdapter extends base_js_1.BaseEmbeddingAdapter {
|
|
28
|
+
apiKey;
|
|
29
|
+
baseUrl;
|
|
30
|
+
modelName;
|
|
31
|
+
dims;
|
|
32
|
+
constructor(config) {
|
|
33
|
+
super(config);
|
|
34
|
+
this.apiKey = config.apiKey;
|
|
35
|
+
this.baseUrl = 'https://api.openai.com/v1';
|
|
36
|
+
this.modelName = config.model ?? 'text-embedding-3-small';
|
|
37
|
+
// Handle custom dimensions for text-embedding-3-* models
|
|
38
|
+
if (config.dimensions && this.modelName.startsWith('text-embedding-3')) {
|
|
39
|
+
this.dims = config.dimensions;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.dims = MODEL_DIMENSIONS[this.modelName] ?? 1536;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
get provider() {
|
|
46
|
+
return 'openai';
|
|
47
|
+
}
|
|
48
|
+
get model() {
|
|
49
|
+
return this.modelName;
|
|
50
|
+
}
|
|
51
|
+
get dimensions() {
|
|
52
|
+
return this.dims;
|
|
53
|
+
}
|
|
54
|
+
isConfigured() {
|
|
55
|
+
return !!this.apiKey;
|
|
56
|
+
}
|
|
57
|
+
async embed(text) {
|
|
58
|
+
const result = await this.embedBatch([text]);
|
|
59
|
+
const embedding = result.embeddings[0];
|
|
60
|
+
if (!embedding) {
|
|
61
|
+
throw new base_js_1.EmbeddingError('No embedding returned', 'INVALID_RESPONSE', this.provider);
|
|
62
|
+
}
|
|
63
|
+
return embedding;
|
|
64
|
+
}
|
|
65
|
+
async embedBatch(texts) {
|
|
66
|
+
if (!this.isConfigured()) {
|
|
67
|
+
throw new base_js_1.EmbeddingError('OpenAI embedding adapter not configured. Set apiKey in config.', 'NOT_CONFIGURED', this.provider);
|
|
68
|
+
}
|
|
69
|
+
if (texts.length === 0) {
|
|
70
|
+
return { embeddings: [], totalTokens: 0 };
|
|
71
|
+
}
|
|
72
|
+
return this.withRetry(async () => {
|
|
73
|
+
const headers = {
|
|
74
|
+
'Content-Type': 'application/json',
|
|
75
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
76
|
+
};
|
|
77
|
+
const body = {
|
|
78
|
+
model: this.modelName,
|
|
79
|
+
input: texts,
|
|
80
|
+
};
|
|
81
|
+
// Add dimensions for text-embedding-3-* models with custom dimensions
|
|
82
|
+
const config = this.config;
|
|
83
|
+
if (config.dimensions && this.modelName.startsWith('text-embedding-3')) {
|
|
84
|
+
body.dimensions = config.dimensions;
|
|
85
|
+
}
|
|
86
|
+
const controller = new AbortController();
|
|
87
|
+
const timeout = setTimeout(() => controller.abort(), base_js_1.DEFAULT_EMBEDDING_CONFIG.timeout);
|
|
88
|
+
try {
|
|
89
|
+
const response = await fetch(`${this.baseUrl}/embeddings`, {
|
|
90
|
+
method: 'POST',
|
|
91
|
+
headers,
|
|
92
|
+
body: JSON.stringify(body),
|
|
93
|
+
signal: controller.signal,
|
|
94
|
+
});
|
|
95
|
+
clearTimeout(timeout);
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
const errorData = (await response.json().catch(() => ({})));
|
|
98
|
+
const errorMessage = errorData.error?.message ?? `HTTP ${response.status}`;
|
|
99
|
+
if (response.status === 429) {
|
|
100
|
+
throw new base_js_1.EmbeddingError(`Rate limit exceeded: ${errorMessage}`, 'RATE_LIMIT', this.provider);
|
|
101
|
+
}
|
|
102
|
+
throw new base_js_1.EmbeddingError(`OpenAI API error: ${errorMessage}`, 'API_ERROR', this.provider);
|
|
103
|
+
}
|
|
104
|
+
const data = (await response.json());
|
|
105
|
+
// Sort by index to ensure correct order
|
|
106
|
+
const sortedData = [...data.data].sort((a, b) => a.index - b.index);
|
|
107
|
+
const embeddings = sortedData.map((item) => ({
|
|
108
|
+
vector: item.embedding,
|
|
109
|
+
dimensions: item.embedding.length,
|
|
110
|
+
model: data.model,
|
|
111
|
+
usage: {
|
|
112
|
+
promptTokens: Math.round(data.usage.prompt_tokens / texts.length),
|
|
113
|
+
totalTokens: Math.round(data.usage.total_tokens / texts.length),
|
|
114
|
+
},
|
|
115
|
+
}));
|
|
116
|
+
return {
|
|
117
|
+
embeddings,
|
|
118
|
+
totalTokens: data.usage.total_tokens,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
clearTimeout(timeout);
|
|
123
|
+
if (error instanceof base_js_1.EmbeddingError) {
|
|
124
|
+
throw error;
|
|
125
|
+
}
|
|
126
|
+
if (error instanceof Error) {
|
|
127
|
+
if (error.name === 'AbortError') {
|
|
128
|
+
throw new base_js_1.EmbeddingError('Request timeout', 'TIMEOUT', this.provider, error);
|
|
129
|
+
}
|
|
130
|
+
throw new base_js_1.EmbeddingError(`Network error: ${error.message}`, 'NETWORK_ERROR', this.provider, error);
|
|
131
|
+
}
|
|
132
|
+
throw new base_js_1.EmbeddingError('Unknown error', 'API_ERROR', this.provider);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.OpenAIEmbeddingAdapter = OpenAIEmbeddingAdapter;
|
|
138
|
+
/**
|
|
139
|
+
* Create an OpenAI embedding adapter from environment variables
|
|
140
|
+
*
|
|
141
|
+
* @param model - Model to use (default: 'text-embedding-3-small')
|
|
142
|
+
* @param dimensions - Custom dimensions for text-embedding-3-* models
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```typescript
|
|
146
|
+
* // Using default model (cheapest, good quality)
|
|
147
|
+
* const adapter = createOpenAIEmbeddingAdapter();
|
|
148
|
+
*
|
|
149
|
+
* // Using highest quality model
|
|
150
|
+
* const adapter = createOpenAIEmbeddingAdapter('text-embedding-3-large');
|
|
151
|
+
*
|
|
152
|
+
* // Using smaller dimensions for efficiency
|
|
153
|
+
* const adapter = createOpenAIEmbeddingAdapter('text-embedding-3-small', 512);
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
function createOpenAIEmbeddingAdapter(model = 'text-embedding-3-small', dimensions, apiKey) {
|
|
157
|
+
const key = apiKey ?? (typeof process !== 'undefined' ? process.env.OPENAI_API_KEY : undefined);
|
|
158
|
+
if (!key) {
|
|
159
|
+
throw new base_js_1.EmbeddingError('OpenAI API key not provided. Set OPENAI_API_KEY environment variable or pass apiKey.', 'NOT_CONFIGURED', 'openai');
|
|
160
|
+
}
|
|
161
|
+
const config = {
|
|
162
|
+
provider: 'openai',
|
|
163
|
+
apiKey: key,
|
|
164
|
+
model,
|
|
165
|
+
dimensions,
|
|
166
|
+
};
|
|
167
|
+
return new OpenAIEmbeddingAdapter(config);
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/embeddings/openai.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -42,7 +42,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
42
42
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
43
43
|
};
|
|
44
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.PACKAGE_NAME = exports.VERSION = exports.TERMINATION_DEFAULTS = exports.ADAPTIVE_DEFAULTS = exports.createQuestionPool = exports.createAdaptiveEngine = exports.AdaptiveEngine = exports.MASTERY_ENGINE_DEFAULTS = exports.createMasteryEngine = exports.MasteryEngine = exports.IRT_CONFIG_DEFAULTS = exports.estimateAbility = exports.abilityToGradeLevel = exports.abilityToPercentile = exports.selectNextItemMFI = exports.calculateStandardError = exports.calculateTestInformation = exports.calculateInformation = exports.calculateProbabilityDerivative = exports.calculateProbability = exports.createIRTEstimator = exports.IRTEstimator = exports.BKT_CONFIG_DEFAULTS = exports.calculateLogLikelihood = exports.fitBKTParameters = exports.estimateMastery = exports.createBKTEngine = exports.BKTEngine = void 0;
|
|
45
|
+
exports.PACKAGE_NAME = exports.VERSION = exports.GRAPHRAG_DEFAULTS = exports.createNeo4jGraphRAGStorage = exports.Neo4jGraphRAGStorage = exports.createEmbeddingAdapterFromEnv = exports.createEmbeddingAdapter = exports.createLocalEmbeddingAdapter = exports.LocalEmbeddingAdapter = exports.createOpenAIEmbeddingAdapter = exports.OpenAIEmbeddingAdapter = exports.DEFAULT_EMBEDDING_CONFIG = exports.EmbeddingError = exports.BaseEmbeddingAdapter = exports.TERMINATION_DEFAULTS = exports.ADAPTIVE_DEFAULTS = exports.createQuestionPool = exports.createAdaptiveEngine = exports.AdaptiveEngine = exports.MASTERY_ENGINE_DEFAULTS = exports.createMasteryEngine = exports.MasteryEngine = exports.IRT_CONFIG_DEFAULTS = exports.estimateAbility = exports.abilityToGradeLevel = exports.abilityToPercentile = exports.selectNextItemMFI = exports.calculateStandardError = exports.calculateTestInformation = exports.calculateInformation = exports.calculateProbabilityDerivative = exports.calculateProbability = exports.createIRTEstimator = exports.IRTEstimator = exports.BKT_CONFIG_DEFAULTS = exports.calculateLogLikelihood = exports.fitBKTParameters = exports.estimateMastery = exports.createBKTEngine = exports.BKTEngine = void 0;
|
|
46
46
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
47
47
|
// Core Types
|
|
48
48
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -82,6 +82,30 @@ Object.defineProperty(exports, "createQuestionPool", { enumerable: true, get: fu
|
|
|
82
82
|
Object.defineProperty(exports, "ADAPTIVE_DEFAULTS", { enumerable: true, get: function () { return index_js_1.ADAPTIVE_DEFAULTS; } });
|
|
83
83
|
Object.defineProperty(exports, "TERMINATION_DEFAULTS", { enumerable: true, get: function () { return index_js_1.TERMINATION_DEFAULTS; } });
|
|
84
84
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
85
|
+
// Embedding Adapters (for GraphRAG)
|
|
86
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
87
|
+
var index_js_2 = require("./embeddings/index.js");
|
|
88
|
+
// Base
|
|
89
|
+
Object.defineProperty(exports, "BaseEmbeddingAdapter", { enumerable: true, get: function () { return index_js_2.BaseEmbeddingAdapter; } });
|
|
90
|
+
Object.defineProperty(exports, "EmbeddingError", { enumerable: true, get: function () { return index_js_2.EmbeddingError; } });
|
|
91
|
+
Object.defineProperty(exports, "DEFAULT_EMBEDDING_CONFIG", { enumerable: true, get: function () { return index_js_2.DEFAULT_EMBEDDING_CONFIG; } });
|
|
92
|
+
// OpenAI
|
|
93
|
+
Object.defineProperty(exports, "OpenAIEmbeddingAdapter", { enumerable: true, get: function () { return index_js_2.OpenAIEmbeddingAdapter; } });
|
|
94
|
+
Object.defineProperty(exports, "createOpenAIEmbeddingAdapter", { enumerable: true, get: function () { return index_js_2.createOpenAIEmbeddingAdapter; } });
|
|
95
|
+
// Local
|
|
96
|
+
Object.defineProperty(exports, "LocalEmbeddingAdapter", { enumerable: true, get: function () { return index_js_2.LocalEmbeddingAdapter; } });
|
|
97
|
+
Object.defineProperty(exports, "createLocalEmbeddingAdapter", { enumerable: true, get: function () { return index_js_2.createLocalEmbeddingAdapter; } });
|
|
98
|
+
// Factory
|
|
99
|
+
Object.defineProperty(exports, "createEmbeddingAdapter", { enumerable: true, get: function () { return index_js_2.createEmbeddingAdapter; } });
|
|
100
|
+
Object.defineProperty(exports, "createEmbeddingAdapterFromEnv", { enumerable: true, get: function () { return index_js_2.createEmbeddingAdapterFromEnv; } });
|
|
101
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
102
|
+
// GraphRAG Storage
|
|
103
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
104
|
+
var neo4j_graphrag_js_1 = require("./storage/neo4j-graphrag.js");
|
|
105
|
+
Object.defineProperty(exports, "Neo4jGraphRAGStorage", { enumerable: true, get: function () { return neo4j_graphrag_js_1.Neo4jGraphRAGStorage; } });
|
|
106
|
+
Object.defineProperty(exports, "createNeo4jGraphRAGStorage", { enumerable: true, get: function () { return neo4j_graphrag_js_1.createNeo4jGraphRAGStorage; } });
|
|
107
|
+
Object.defineProperty(exports, "GRAPHRAG_DEFAULTS", { enumerable: true, get: function () { return neo4j_graphrag_js_1.GRAPHRAG_DEFAULTS; } });
|
|
108
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
85
109
|
// Package Metadata
|
|
86
110
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
87
111
|
/**
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;;;;;;;;;;;;;;;AAEH,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAChF,mDAAiC;AAEjC,gFAAgF;AAChF,6DAA6D;AAC7D,gFAAgF;AAChF,kDA+B+B;AA9B7B,MAAM;AACN,qGAAA,SAAS,OAAA;AACT,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,kHAAA,sBAAsB,OAAA;AACtB,+GAAA,mBAAmB,OAAA;AACnB,MAAM;AACN,wGAAA,YAAY,OAAA;AACZ,8GAAA,kBAAkB,OAAA;AAClB,gHAAA,oBAAoB,OAAA;AACpB,0HAAA,8BAA8B,OAAA;AAC9B,gHAAA,oBAAoB,OAAA;AACpB,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,6GAAA,iBAAiB,OAAA;AACjB,+GAAA,mBAAmB,OAAA;AACnB,+GAAA,mBAAmB,OAAA;AACnB,2GAAA,eAAe,OAAA;AACf,+GAAA,mBAAmB,OAAA;AACnB,iBAAiB;AACjB,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,mBAAmB;AACnB,0GAAA,cAAc,OAAA;AACd,gHAAA,oBAAoB,OAAA;AACpB,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,gHAAA,oBAAoB,OAAA;AAGtB,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACU,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B;;GAEG;AACU,QAAA,YAAY,GAAG,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;;;;;;;;;;;;;;;AAEH,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAChF,mDAAiC;AAEjC,gFAAgF;AAChF,6DAA6D;AAC7D,gFAAgF;AAChF,kDA+B+B;AA9B7B,MAAM;AACN,qGAAA,SAAS,OAAA;AACT,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,4GAAA,gBAAgB,OAAA;AAChB,kHAAA,sBAAsB,OAAA;AACtB,+GAAA,mBAAmB,OAAA;AACnB,MAAM;AACN,wGAAA,YAAY,OAAA;AACZ,8GAAA,kBAAkB,OAAA;AAClB,gHAAA,oBAAoB,OAAA;AACpB,0HAAA,8BAA8B,OAAA;AAC9B,gHAAA,oBAAoB,OAAA;AACpB,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,6GAAA,iBAAiB,OAAA;AACjB,+GAAA,mBAAmB,OAAA;AACnB,+GAAA,mBAAmB,OAAA;AACnB,2GAAA,eAAe,OAAA;AACf,+GAAA,mBAAmB,OAAA;AACnB,iBAAiB;AACjB,yGAAA,aAAa,OAAA;AACb,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,mBAAmB;AACnB,0GAAA,cAAc,OAAA;AACd,gHAAA,oBAAoB,OAAA;AACpB,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,gHAAA,oBAAoB,OAAA;AAGtB,gFAAgF;AAChF,oCAAoC;AACpC,gFAAgF;AAChF,kDAc+B;AAb7B,OAAO;AACP,gHAAA,oBAAoB,OAAA;AACpB,0GAAA,cAAc,OAAA;AACd,oHAAA,wBAAwB,OAAA;AACxB,SAAS;AACT,kHAAA,sBAAsB,OAAA;AACtB,wHAAA,4BAA4B,OAAA;AAC5B,QAAQ;AACR,iHAAA,qBAAqB,OAAA;AACrB,uHAAA,2BAA2B,OAAA;AAC3B,UAAU;AACV,kHAAA,sBAAsB,OAAA;AACtB,yHAAA,6BAA6B,OAAA;AAG/B,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,iEAIqC;AAHnC,yHAAA,oBAAoB,OAAA;AACpB,+HAAA,0BAA0B,OAAA;AAC1B,sHAAA,iBAAiB,OAAA;AAGnB,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;GAEG;AACU,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B;;GAEG;AACU,QAAA,YAAY,GAAG,YAAY,CAAC"}
|