@nahisaho/musubix-neural-search 2.1.1 → 2.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.
- package/dist/EnhancedNeuralSearchManager.d.ts +215 -0
- package/dist/EnhancedNeuralSearchManager.d.ts.map +1 -0
- package/dist/EnhancedNeuralSearchManager.js +307 -0
- package/dist/EnhancedNeuralSearchManager.js.map +1 -0
- package/dist/cache/EmbeddingCache.d.ts +93 -0
- package/dist/cache/EmbeddingCache.d.ts.map +1 -0
- package/dist/cache/EmbeddingCache.js +208 -0
- package/dist/cache/EmbeddingCache.js.map +1 -0
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/fusion/ModalFusion.d.ts +111 -0
- package/dist/fusion/ModalFusion.d.ts.map +1 -0
- package/dist/fusion/ModalFusion.js +127 -0
- package/dist/fusion/ModalFusion.js.map +1 -0
- package/dist/fusion/index.d.ts +6 -0
- package/dist/fusion/index.d.ts.map +1 -0
- package/dist/fusion/index.js +6 -0
- package/dist/fusion/index.js.map +1 -0
- package/dist/index.d.ts +14 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/learning/OnlineModelUpdater.d.ts +195 -0
- package/dist/learning/OnlineModelUpdater.d.ts.map +1 -0
- package/dist/learning/OnlineModelUpdater.js +231 -0
- package/dist/learning/OnlineModelUpdater.js.map +1 -0
- package/dist/learning/__tests__/OnlineModelUpdater.test.d.ts +9 -0
- package/dist/learning/__tests__/OnlineModelUpdater.test.d.ts.map +1 -0
- package/dist/learning/__tests__/OnlineModelUpdater.test.js +174 -0
- package/dist/learning/__tests__/OnlineModelUpdater.test.js.map +1 -0
- package/dist/learning/index.d.ts +2 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +2 -0
- package/dist/learning/index.js.map +1 -1
- package/dist/logging/TrajectoryLogger.d.ts +115 -0
- package/dist/logging/TrajectoryLogger.d.ts.map +1 -0
- package/dist/logging/TrajectoryLogger.js +128 -0
- package/dist/logging/TrajectoryLogger.js.map +1 -0
- package/dist/logging/index.d.ts +9 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +8 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/pruning/LearnedPruningPolicy.d.ts +129 -0
- package/dist/pruning/LearnedPruningPolicy.d.ts.map +1 -0
- package/dist/pruning/LearnedPruningPolicy.js +332 -0
- package/dist/pruning/LearnedPruningPolicy.js.map +1 -0
- package/dist/pruning/index.d.ts +6 -0
- package/dist/pruning/index.d.ts.map +1 -0
- package/dist/pruning/index.js +6 -0
- package/dist/pruning/index.js.map +1 -0
- package/dist/scorer/ContextAwareScorer.d.ts +126 -0
- package/dist/scorer/ContextAwareScorer.d.ts.map +1 -0
- package/dist/scorer/ContextAwareScorer.js +281 -0
- package/dist/scorer/ContextAwareScorer.js.map +1 -0
- package/dist/scorer/index.d.ts +2 -0
- package/dist/scorer/index.d.ts.map +1 -1
- package/dist/scorer/index.js +2 -0
- package/dist/scorer/index.js.map +1 -1
- package/dist/search/AdaptiveBeamSearch.d.ts +98 -0
- package/dist/search/AdaptiveBeamSearch.d.ts.map +1 -0
- package/dist/search/AdaptiveBeamSearch.js +240 -0
- package/dist/search/AdaptiveBeamSearch.js.map +1 -0
- package/dist/search/index.d.ts +2 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +2 -0
- package/dist/search/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EmbeddingCache - LRU Cache for Embeddings
|
|
3
|
+
* @module @nahisaho/musubix-neural-search
|
|
4
|
+
* @see TSK-NS-105
|
|
5
|
+
* @see DES-NS-105
|
|
6
|
+
* @see REQ-NS-105
|
|
7
|
+
*
|
|
8
|
+
* LRUキャッシュ(最大10,000エントリ)
|
|
9
|
+
* - 80%以上のヒット率目標
|
|
10
|
+
* - TTLサポート
|
|
11
|
+
* - バッチ操作
|
|
12
|
+
*/
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Implementation
|
|
15
|
+
// =============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Default EmbeddingCache implementation using LRU eviction
|
|
18
|
+
*/
|
|
19
|
+
export class DefaultEmbeddingCache {
|
|
20
|
+
config;
|
|
21
|
+
cache = new Map();
|
|
22
|
+
accessOrder = [];
|
|
23
|
+
// Statistics
|
|
24
|
+
hits = 0;
|
|
25
|
+
misses = 0;
|
|
26
|
+
evictions = 0;
|
|
27
|
+
constructor(config = {}) {
|
|
28
|
+
this.config = {
|
|
29
|
+
maxSize: config.maxSize ?? 10000,
|
|
30
|
+
ttlMs: config.ttlMs ?? 0,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// =========================================================================
|
|
34
|
+
// Basic Operations
|
|
35
|
+
// =========================================================================
|
|
36
|
+
get(key) {
|
|
37
|
+
const entry = this.cache.get(key);
|
|
38
|
+
if (!entry) {
|
|
39
|
+
this.misses++;
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
// Check TTL
|
|
43
|
+
if (this.isExpired(entry)) {
|
|
44
|
+
this.delete(key);
|
|
45
|
+
this.misses++;
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
// Update access order (move to end = most recently used)
|
|
49
|
+
this.updateAccessOrder(key);
|
|
50
|
+
entry.lastAccessedAt = Date.now();
|
|
51
|
+
this.hits++;
|
|
52
|
+
return entry.value;
|
|
53
|
+
}
|
|
54
|
+
set(key, value) {
|
|
55
|
+
// Check if key already exists
|
|
56
|
+
const exists = this.cache.has(key);
|
|
57
|
+
if (!exists && this.cache.size >= this.config.maxSize) {
|
|
58
|
+
this.evictLRU();
|
|
59
|
+
}
|
|
60
|
+
const now = Date.now();
|
|
61
|
+
this.cache.set(key, {
|
|
62
|
+
value,
|
|
63
|
+
addedAt: now,
|
|
64
|
+
lastAccessedAt: now,
|
|
65
|
+
});
|
|
66
|
+
// Update access order
|
|
67
|
+
if (exists) {
|
|
68
|
+
this.updateAccessOrder(key);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.accessOrder.push(key);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
has(key) {
|
|
75
|
+
const entry = this.cache.get(key);
|
|
76
|
+
if (!entry)
|
|
77
|
+
return false;
|
|
78
|
+
if (this.isExpired(entry)) {
|
|
79
|
+
this.delete(key);
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
delete(key) {
|
|
85
|
+
const existed = this.cache.delete(key);
|
|
86
|
+
if (existed) {
|
|
87
|
+
this.removeFromAccessOrder(key);
|
|
88
|
+
}
|
|
89
|
+
return existed;
|
|
90
|
+
}
|
|
91
|
+
clear() {
|
|
92
|
+
this.cache.clear();
|
|
93
|
+
this.accessOrder = [];
|
|
94
|
+
}
|
|
95
|
+
size() {
|
|
96
|
+
return this.cache.size;
|
|
97
|
+
}
|
|
98
|
+
// =========================================================================
|
|
99
|
+
// Batch Operations
|
|
100
|
+
// =========================================================================
|
|
101
|
+
getMany(keys) {
|
|
102
|
+
const results = new Map();
|
|
103
|
+
for (const key of keys) {
|
|
104
|
+
const value = this.get(key);
|
|
105
|
+
if (value !== undefined) {
|
|
106
|
+
results.set(key, value);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return results;
|
|
110
|
+
}
|
|
111
|
+
setMany(entries) {
|
|
112
|
+
for (const [key, value] of entries) {
|
|
113
|
+
this.set(key, value);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// =========================================================================
|
|
117
|
+
// Statistics
|
|
118
|
+
// =========================================================================
|
|
119
|
+
getHitRate() {
|
|
120
|
+
const total = this.hits + this.misses;
|
|
121
|
+
if (total === 0)
|
|
122
|
+
return 0;
|
|
123
|
+
return this.hits / total;
|
|
124
|
+
}
|
|
125
|
+
getStatistics() {
|
|
126
|
+
return {
|
|
127
|
+
size: this.cache.size,
|
|
128
|
+
maxSize: this.config.maxSize,
|
|
129
|
+
hits: this.hits,
|
|
130
|
+
misses: this.misses,
|
|
131
|
+
hitRate: this.getHitRate(),
|
|
132
|
+
evictions: this.evictions,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
resetStatistics() {
|
|
136
|
+
this.hits = 0;
|
|
137
|
+
this.misses = 0;
|
|
138
|
+
this.evictions = 0;
|
|
139
|
+
}
|
|
140
|
+
// =========================================================================
|
|
141
|
+
// Serialization
|
|
142
|
+
// =========================================================================
|
|
143
|
+
toJSON() {
|
|
144
|
+
return JSON.stringify({
|
|
145
|
+
config: this.config,
|
|
146
|
+
statistics: this.getStatistics(),
|
|
147
|
+
// Don't serialize actual embeddings for size reasons
|
|
148
|
+
entryCount: this.cache.size,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
fromJSON(json) {
|
|
152
|
+
const data = JSON.parse(json);
|
|
153
|
+
if (data.config) {
|
|
154
|
+
this.config = {
|
|
155
|
+
maxSize: data.config.maxSize ?? 10000,
|
|
156
|
+
ttlMs: data.config.ttlMs ?? 0,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (data.statistics) {
|
|
160
|
+
this.hits = data.statistics.hits ?? 0;
|
|
161
|
+
this.misses = data.statistics.misses ?? 0;
|
|
162
|
+
this.evictions = data.statistics.evictions ?? 0;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// =========================================================================
|
|
166
|
+
// Private Methods
|
|
167
|
+
// =========================================================================
|
|
168
|
+
isExpired(entry) {
|
|
169
|
+
if (this.config.ttlMs === 0)
|
|
170
|
+
return false;
|
|
171
|
+
return Date.now() - entry.addedAt > this.config.ttlMs;
|
|
172
|
+
}
|
|
173
|
+
evictLRU() {
|
|
174
|
+
if (this.accessOrder.length === 0)
|
|
175
|
+
return;
|
|
176
|
+
// Find the least recently used entry that still exists
|
|
177
|
+
while (this.accessOrder.length > 0) {
|
|
178
|
+
const lruKey = this.accessOrder.shift();
|
|
179
|
+
if (this.cache.has(lruKey)) {
|
|
180
|
+
this.cache.delete(lruKey);
|
|
181
|
+
this.evictions++;
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
updateAccessOrder(key) {
|
|
187
|
+
this.removeFromAccessOrder(key);
|
|
188
|
+
this.accessOrder.push(key);
|
|
189
|
+
}
|
|
190
|
+
removeFromAccessOrder(key) {
|
|
191
|
+
const index = this.accessOrder.indexOf(key);
|
|
192
|
+
if (index > -1) {
|
|
193
|
+
this.accessOrder.splice(index, 1);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// =============================================================================
|
|
198
|
+
// Factory Function
|
|
199
|
+
// =============================================================================
|
|
200
|
+
/**
|
|
201
|
+
* Create an EmbeddingCache instance
|
|
202
|
+
* @param config - Optional configuration
|
|
203
|
+
* @returns EmbeddingCache instance
|
|
204
|
+
*/
|
|
205
|
+
export function createEmbeddingCache(config = {}) {
|
|
206
|
+
return new DefaultEmbeddingCache(config);
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=EmbeddingCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddingCache.js","sourceRoot":"","sources":["../../src/cache/EmbeddingCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Module
|
|
3
|
+
* @module @nahisaho/musubix-neural-search/cache
|
|
4
|
+
*/
|
|
5
|
+
export { createEmbeddingCache, DefaultEmbeddingCache, } from './EmbeddingCache.js';
|
|
6
|
+
export type { EmbeddingCache, EmbeddingCacheConfig, CacheStatistics, } from './EmbeddingCache.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModalFusion - Multi-modal Embedding Fusion
|
|
3
|
+
* @module @nahisaho/musubix-neural-search
|
|
4
|
+
* @see TSK-NS-106
|
|
5
|
+
* @see DES-NS-106
|
|
6
|
+
* @see REQ-NS-106 Text/code embedding fusion with 3+ strategies
|
|
7
|
+
*/
|
|
8
|
+
import type { Embedding } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Fusion strategy types
|
|
11
|
+
*/
|
|
12
|
+
export type FusionStrategy = 'concat' | 'attention' | 'weighted_sum';
|
|
13
|
+
/**
|
|
14
|
+
* ModalFusion configuration
|
|
15
|
+
*/
|
|
16
|
+
export interface ModalFusionConfig {
|
|
17
|
+
/** Default fusion strategy */
|
|
18
|
+
defaultStrategy: FusionStrategy;
|
|
19
|
+
/** Weight for text embedding (0-1) */
|
|
20
|
+
textWeight: number;
|
|
21
|
+
/** Weight for code embedding (0-1) */
|
|
22
|
+
codeWeight: number;
|
|
23
|
+
/** Attention temperature for softmax */
|
|
24
|
+
attentionTemperature: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Embedding pair for batch operations
|
|
28
|
+
*/
|
|
29
|
+
export interface EmbeddingPair {
|
|
30
|
+
text: Embedding;
|
|
31
|
+
code: Embedding;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* ModalFusion interface
|
|
35
|
+
*/
|
|
36
|
+
export interface ModalFusion {
|
|
37
|
+
/**
|
|
38
|
+
* Fuse text and code embeddings
|
|
39
|
+
*/
|
|
40
|
+
fuse(textEmbedding: Embedding, codeEmbedding: Embedding, strategy?: FusionStrategy): Embedding;
|
|
41
|
+
/**
|
|
42
|
+
* Fuse multiple embedding pairs
|
|
43
|
+
*/
|
|
44
|
+
fuseBatch(pairs: EmbeddingPair[], strategy?: FusionStrategy): Embedding[];
|
|
45
|
+
/**
|
|
46
|
+
* Get available fusion strategies
|
|
47
|
+
*/
|
|
48
|
+
getAvailableStrategies(): FusionStrategy[];
|
|
49
|
+
/**
|
|
50
|
+
* Get current configuration
|
|
51
|
+
*/
|
|
52
|
+
getConfig(): ModalFusionConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Serialize to JSON
|
|
55
|
+
*/
|
|
56
|
+
toJSON(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Deserialize from JSON
|
|
59
|
+
*/
|
|
60
|
+
fromJSON(json: string): void;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Default ModalFusion implementation
|
|
64
|
+
*/
|
|
65
|
+
export declare class DefaultModalFusion implements ModalFusion {
|
|
66
|
+
private config;
|
|
67
|
+
constructor(config?: Partial<ModalFusionConfig>);
|
|
68
|
+
/**
|
|
69
|
+
* Fuse text and code embeddings using specified strategy
|
|
70
|
+
*/
|
|
71
|
+
fuse(textEmbedding: Embedding, codeEmbedding: Embedding, strategy?: FusionStrategy): Embedding;
|
|
72
|
+
/**
|
|
73
|
+
* Concatenation fusion: [text; code]
|
|
74
|
+
*/
|
|
75
|
+
private concatFusion;
|
|
76
|
+
/**
|
|
77
|
+
* Weighted sum fusion: w1 * text + w2 * code
|
|
78
|
+
*/
|
|
79
|
+
private weightedSumFusion;
|
|
80
|
+
/**
|
|
81
|
+
* Attention-based fusion with learned weights
|
|
82
|
+
*/
|
|
83
|
+
private attentionFusion;
|
|
84
|
+
/**
|
|
85
|
+
* Fuse multiple embedding pairs
|
|
86
|
+
*/
|
|
87
|
+
fuseBatch(pairs: EmbeddingPair[], strategy?: FusionStrategy): Embedding[];
|
|
88
|
+
/**
|
|
89
|
+
* Get available fusion strategies
|
|
90
|
+
*/
|
|
91
|
+
getAvailableStrategies(): FusionStrategy[];
|
|
92
|
+
/**
|
|
93
|
+
* Get current configuration
|
|
94
|
+
*/
|
|
95
|
+
getConfig(): ModalFusionConfig;
|
|
96
|
+
/**
|
|
97
|
+
* Serialize to JSON
|
|
98
|
+
*/
|
|
99
|
+
toJSON(): string;
|
|
100
|
+
/**
|
|
101
|
+
* Deserialize from JSON
|
|
102
|
+
*/
|
|
103
|
+
fromJSON(json: string): void;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Create a ModalFusion instance
|
|
107
|
+
* @param config - Optional configuration
|
|
108
|
+
* @returns ModalFusion instance
|
|
109
|
+
*/
|
|
110
|
+
export declare function createModalFusion(config?: Partial<ModalFusionConfig>): ModalFusion;
|
|
111
|
+
//# sourceMappingURL=ModalFusion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalFusion.d.ts","sourceRoot":"","sources":["../../src/fusion/ModalFusion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,eAAe,EAAE,cAAc,CAAC;IAChC,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,CACF,aAAa,EAAE,SAAS,EACxB,aAAa,EAAE,SAAS,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,SAAS,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,EAAE,CAAC;IAE1E;;OAEG;IACH,sBAAsB,IAAI,cAAc,EAAE,CAAC;IAE3C;;OAEG;IACH,SAAS,IAAI,iBAAiB,CAAC;IAE/B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAMD;;GAEG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAS/C;;OAEG;IACH,IAAI,CACF,aAAa,EAAE,SAAS,EACxB,aAAa,EAAE,SAAS,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,SAAS;IAeZ;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,EAAE;IAIzE;;OAEG;IACH,sBAAsB,IAAI,cAAc,EAAE;IAI1C;;OAEG;IACH,SAAS,IAAI,iBAAiB;IAI9B;;OAEG;IACH,MAAM,IAAI,MAAM;IAMhB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAU7B;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,WAAW,CAEb"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModalFusion - Multi-modal Embedding Fusion
|
|
3
|
+
* @module @nahisaho/musubix-neural-search
|
|
4
|
+
* @see TSK-NS-106
|
|
5
|
+
* @see DES-NS-106
|
|
6
|
+
* @see REQ-NS-106 Text/code embedding fusion with 3+ strategies
|
|
7
|
+
*/
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// Default Implementation
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Default ModalFusion implementation
|
|
13
|
+
*/
|
|
14
|
+
export class DefaultModalFusion {
|
|
15
|
+
config;
|
|
16
|
+
constructor(config) {
|
|
17
|
+
this.config = {
|
|
18
|
+
defaultStrategy: config?.defaultStrategy ?? 'weighted_sum',
|
|
19
|
+
textWeight: config?.textWeight ?? 0.5,
|
|
20
|
+
codeWeight: config?.codeWeight ?? 0.5,
|
|
21
|
+
attentionTemperature: config?.attentionTemperature ?? 1.0,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Fuse text and code embeddings using specified strategy
|
|
26
|
+
*/
|
|
27
|
+
fuse(textEmbedding, codeEmbedding, strategy) {
|
|
28
|
+
const fusionStrategy = strategy ?? this.config.defaultStrategy;
|
|
29
|
+
switch (fusionStrategy) {
|
|
30
|
+
case 'concat':
|
|
31
|
+
return this.concatFusion(textEmbedding, codeEmbedding);
|
|
32
|
+
case 'weighted_sum':
|
|
33
|
+
return this.weightedSumFusion(textEmbedding, codeEmbedding);
|
|
34
|
+
case 'attention':
|
|
35
|
+
return this.attentionFusion(textEmbedding, codeEmbedding);
|
|
36
|
+
default:
|
|
37
|
+
return this.weightedSumFusion(textEmbedding, codeEmbedding);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Concatenation fusion: [text; code]
|
|
42
|
+
*/
|
|
43
|
+
concatFusion(text, code) {
|
|
44
|
+
return [...text, ...code];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Weighted sum fusion: w1 * text + w2 * code
|
|
48
|
+
*/
|
|
49
|
+
weightedSumFusion(text, code) {
|
|
50
|
+
const minLength = Math.min(text.length, code.length);
|
|
51
|
+
const result = [];
|
|
52
|
+
for (let i = 0; i < minLength; i++) {
|
|
53
|
+
result.push(this.config.textWeight * text[i] + this.config.codeWeight * code[i]);
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Attention-based fusion with learned weights
|
|
59
|
+
*/
|
|
60
|
+
attentionFusion(text, code) {
|
|
61
|
+
const minLength = Math.min(text.length, code.length);
|
|
62
|
+
const result = [];
|
|
63
|
+
// Compute attention scores based on element magnitudes
|
|
64
|
+
for (let i = 0; i < minLength; i++) {
|
|
65
|
+
const textMag = Math.abs(text[i]);
|
|
66
|
+
const codeMag = Math.abs(code[i]);
|
|
67
|
+
// Softmax-like attention with temperature
|
|
68
|
+
const expText = Math.exp(textMag / this.config.attentionTemperature);
|
|
69
|
+
const expCode = Math.exp(codeMag / this.config.attentionTemperature);
|
|
70
|
+
const sumExp = expText + expCode;
|
|
71
|
+
const textAttention = expText / sumExp;
|
|
72
|
+
const codeAttention = expCode / sumExp;
|
|
73
|
+
result.push(textAttention * text[i] + codeAttention * code[i]);
|
|
74
|
+
}
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Fuse multiple embedding pairs
|
|
79
|
+
*/
|
|
80
|
+
fuseBatch(pairs, strategy) {
|
|
81
|
+
return pairs.map((pair) => this.fuse(pair.text, pair.code, strategy));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get available fusion strategies
|
|
85
|
+
*/
|
|
86
|
+
getAvailableStrategies() {
|
|
87
|
+
return ['concat', 'attention', 'weighted_sum'];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get current configuration
|
|
91
|
+
*/
|
|
92
|
+
getConfig() {
|
|
93
|
+
return { ...this.config };
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Serialize to JSON
|
|
97
|
+
*/
|
|
98
|
+
toJSON() {
|
|
99
|
+
return JSON.stringify({
|
|
100
|
+
config: this.config,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Deserialize from JSON
|
|
105
|
+
*/
|
|
106
|
+
fromJSON(json) {
|
|
107
|
+
const data = JSON.parse(json);
|
|
108
|
+
if (data.config) {
|
|
109
|
+
this.config = {
|
|
110
|
+
...this.config,
|
|
111
|
+
...data.config,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// ============================================================================
|
|
117
|
+
// Factory Function
|
|
118
|
+
// ============================================================================
|
|
119
|
+
/**
|
|
120
|
+
* Create a ModalFusion instance
|
|
121
|
+
* @param config - Optional configuration
|
|
122
|
+
* @returns ModalFusion instance
|
|
123
|
+
*/
|
|
124
|
+
export function createModalFusion(config) {
|
|
125
|
+
return new DefaultModalFusion(config);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=ModalFusion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalFusion.js","sourceRoot":"","sources":["../../src/fusion/ModalFusion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fusion Module - Multi-modal Embedding Fusion
|
|
3
|
+
* @module @nahisaho/musubix-neural-search/fusion
|
|
4
|
+
*/
|
|
5
|
+
export { createModalFusion, DefaultModalFusion, type ModalFusion, type ModalFusionConfig, type FusionStrategy, type EmbeddingPair, } from './ModalFusion.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fusion/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fusion/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAKnB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,10 +5,20 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export * from './types.js';
|
|
7
7
|
export * from './errors.js';
|
|
8
|
-
export { EmbeddingModel, BranchScorer, ContextEncoder, } from './scorer/index.js';
|
|
9
|
-
export type { ScoreWeights } from './scorer/index.js';
|
|
10
|
-
export { PriorityQueue, BeamSearch, BestFirstSearch, PruningManager, } from './search/index.js';
|
|
11
|
-
export type { PruningConfig } from './search/index.js';
|
|
8
|
+
export { EmbeddingModel, BranchScorer, ContextEncoder, createContextAwareScorer, DefaultContextAwareScorer, } from './scorer/index.js';
|
|
9
|
+
export type { ScoreWeights, ContextAwareScorer, ContextAwareScorerConfig, ProjectContext, ScoreBreakdown, ScoringStatistics, } from './scorer/index.js';
|
|
10
|
+
export { PriorityQueue, BeamSearch, BestFirstSearch, PruningManager, AdaptiveBeamSearch, } from './search/index.js';
|
|
11
|
+
export type { PruningConfig, AdaptiveBeamConfig, AdaptiveStatistics, } from './search/index.js';
|
|
12
12
|
export { TrajectoryLog, OnlineLearner, ModelUpdater, } from './learning/index.js';
|
|
13
13
|
export type { OnlineLearnerConfig, ModelUpdaterConfig, } from './learning/index.js';
|
|
14
|
+
export { createLearnedPruningPolicy } from './pruning/index.js';
|
|
15
|
+
export type { LearnedPruningPolicy, PolicyConfig, PolicyUpdate, PolicyStatistics, ResetOptions, } from './pruning/index.js';
|
|
16
|
+
export { createEmbeddingCache, DefaultEmbeddingCache } from './cache/index.js';
|
|
17
|
+
export type { EmbeddingCache, EmbeddingCacheConfig, CacheStatistics, } from './cache/index.js';
|
|
18
|
+
export { createModalFusion, DefaultModalFusion } from './fusion/index.js';
|
|
19
|
+
export type { ModalFusion, ModalFusionConfig, FusionStrategy, EmbeddingPair, } from './fusion/index.js';
|
|
20
|
+
export { createTrajectoryLogger, DefaultTrajectoryLogger } from './logging/index.js';
|
|
21
|
+
export type { TrajectoryLogger, BranchRecord, TrajectoryData, TrajectoryExportFormat, ParquetSchema, ParquetExport, } from './logging/index.js';
|
|
22
|
+
export { createEnhancedNeuralSearchManager, DefaultEnhancedNeuralSearchManager, } from './EnhancedNeuralSearchManager.js';
|
|
23
|
+
export type { EnhancedNeuralSearchManager, EnhancedNeuralSearchManagerConfig, SearchCandidate, SearchRequest, SearchResult, BeamSearchRequest, BeamSearchResult, CombinedSearchRequest, SearchFeedback, LearningStats, SearchHistoryEntry, EnhancedSearchStats, } from './EnhancedNeuralSearchManager.js';
|
|
14
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACrF,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,2BAA2B,EAC3B,iCAAiC,EACjC,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,9 +8,19 @@ export * from './types.js';
|
|
|
8
8
|
// Errors
|
|
9
9
|
export * from './errors.js';
|
|
10
10
|
// Neural Scorer
|
|
11
|
-
export { EmbeddingModel, BranchScorer, ContextEncoder, } from './scorer/index.js';
|
|
11
|
+
export { EmbeddingModel, BranchScorer, ContextEncoder, createContextAwareScorer, DefaultContextAwareScorer, } from './scorer/index.js';
|
|
12
12
|
// Search Engine
|
|
13
|
-
export { PriorityQueue, BeamSearch, BestFirstSearch, PruningManager, } from './search/index.js';
|
|
13
|
+
export { PriorityQueue, BeamSearch, BestFirstSearch, PruningManager, AdaptiveBeamSearch, } from './search/index.js';
|
|
14
14
|
// Learning Module
|
|
15
15
|
export { TrajectoryLog, OnlineLearner, ModelUpdater, } from './learning/index.js';
|
|
16
|
+
// Pruning Module (v2.2.0 NEW!)
|
|
17
|
+
export { createLearnedPruningPolicy } from './pruning/index.js';
|
|
18
|
+
// Cache Module (v2.2.0 NEW!)
|
|
19
|
+
export { createEmbeddingCache, DefaultEmbeddingCache } from './cache/index.js';
|
|
20
|
+
// Fusion Module (v2.2.0 NEW!)
|
|
21
|
+
export { createModalFusion, DefaultModalFusion } from './fusion/index.js';
|
|
22
|
+
// Logging Module (v2.2.0 NEW!)
|
|
23
|
+
export { createTrajectoryLogger, DefaultTrajectoryLogger } from './logging/index.js';
|
|
24
|
+
// Enhanced Neural Search Manager (v2.2.0 NEW!)
|
|
25
|
+
export { createEnhancedNeuralSearchManager, DefaultEnhancedNeuralSearchManager, } from './EnhancedNeuralSearchManager.js';
|
|
16
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,SAAS;AACT,cAAc,aAAa,CAAC;AAE5B,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,SAAS;AACT,cAAc,aAAa,CAAC;AAE5B,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAU3B,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAO3B,kBAAkB;AAClB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAC;AAM7B,+BAA+B;AAC/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAShE,6BAA6B;AAC7B,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAO/E,8BAA8B;AAC9B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ1E,+BAA+B;AAC/B,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAUrF,+CAA+C;AAC/C,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,kCAAkC,CAAC"}
|