@sparkleideas/embeddings 3.0.0-alpha.12-patch.26 → 3.0.0-alpha.12-patch.28
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/__tests__/embedding-service.test.d.ts +2 -0
- package/dist/__tests__/embedding-service.test.d.ts.map +1 -0
- package/dist/__tests__/embedding-service.test.js +98 -0
- package/dist/__tests__/embedding-service.test.js.map +1 -0
- package/dist/chunking.d.ts +68 -0
- package/dist/chunking.d.ts.map +1 -0
- package/dist/chunking.js +251 -0
- package/dist/chunking.js.map +1 -0
- package/dist/embedding-service.d.ts +207 -0
- package/dist/embedding-service.d.ts.map +1 -0
- package/dist/embedding-service.js +965 -0
- package/dist/embedding-service.js.map +1 -0
- package/dist/hyperbolic.d.ts +103 -0
- package/dist/hyperbolic.d.ts.map +1 -0
- package/dist/hyperbolic.js +343 -0
- package/dist/hyperbolic.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/neural-integration.d.ts +203 -0
- package/dist/neural-integration.d.ts.map +1 -0
- package/dist/neural-integration.js +213 -0
- package/dist/neural-integration.js.map +1 -0
- package/dist/normalization.d.ts +73 -0
- package/dist/normalization.d.ts.map +1 -0
- package/dist/normalization.js +192 -0
- package/dist/normalization.js.map +1 -0
- package/dist/persistent-cache.d.ts +119 -0
- package/dist/persistent-cache.d.ts.map +1 -0
- package/dist/persistent-cache.js +337 -0
- package/dist/persistent-cache.js.map +1 -0
- package/dist/rvf-embedding-cache.d.ts +118 -0
- package/dist/rvf-embedding-cache.d.ts.map +1 -0
- package/dist/rvf-embedding-cache.js +458 -0
- package/dist/rvf-embedding-cache.js.map +1 -0
- package/dist/rvf-embedding-service.d.ts +79 -0
- package/dist/rvf-embedding-service.d.ts.map +1 -0
- package/dist/rvf-embedding-service.js +318 -0
- package/dist/rvf-embedding-service.js.map +1 -0
- package/dist/types.d.ts +237 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neural Substrate Integration
|
|
3
|
+
*
|
|
4
|
+
* Integrates agentic-flow's neural embedding features:
|
|
5
|
+
* - Semantic drift detection
|
|
6
|
+
* - Memory physics (hippocampal dynamics)
|
|
7
|
+
* - Embedding state machine
|
|
8
|
+
* - Swarm coordination
|
|
9
|
+
* - Coherence monitoring
|
|
10
|
+
*
|
|
11
|
+
* These features treat embeddings as a synthetic nervous system.
|
|
12
|
+
*/
|
|
13
|
+
export interface DriftResult {
|
|
14
|
+
distance: number;
|
|
15
|
+
velocity: number;
|
|
16
|
+
acceleration: number;
|
|
17
|
+
trend: 'stable' | 'drifting' | 'accelerating' | 'recovering';
|
|
18
|
+
shouldEscalate: boolean;
|
|
19
|
+
shouldTriggerReasoning: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface MemoryEntry {
|
|
22
|
+
id: string;
|
|
23
|
+
embedding: Float32Array;
|
|
24
|
+
content: string;
|
|
25
|
+
strength: number;
|
|
26
|
+
timestamp: number;
|
|
27
|
+
accessCount: number;
|
|
28
|
+
associations: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface AgentState {
|
|
31
|
+
id: string;
|
|
32
|
+
position: Float32Array;
|
|
33
|
+
velocity: Float32Array;
|
|
34
|
+
attention: Float32Array;
|
|
35
|
+
energy: number;
|
|
36
|
+
lastUpdate: number;
|
|
37
|
+
}
|
|
38
|
+
export interface CoherenceResult {
|
|
39
|
+
isCoherent: boolean;
|
|
40
|
+
anomalyScore: number;
|
|
41
|
+
stabilityScore: number;
|
|
42
|
+
driftDirection: Float32Array | null;
|
|
43
|
+
warnings: string[];
|
|
44
|
+
}
|
|
45
|
+
export interface SubstrateHealth {
|
|
46
|
+
memoryCount: number;
|
|
47
|
+
activeAgents: number;
|
|
48
|
+
avgDrift: number;
|
|
49
|
+
avgCoherence: number;
|
|
50
|
+
lastConsolidation: number;
|
|
51
|
+
uptime: number;
|
|
52
|
+
}
|
|
53
|
+
export interface NeuralSubstrateConfig {
|
|
54
|
+
dimension?: number;
|
|
55
|
+
driftThreshold?: number;
|
|
56
|
+
decayRate?: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Lazy-loaded Neural Substrate wrapper
|
|
60
|
+
*
|
|
61
|
+
* Wraps agentic-flow's NeuralSubstrate with graceful fallback
|
|
62
|
+
*/
|
|
63
|
+
export declare class NeuralEmbeddingService {
|
|
64
|
+
private config;
|
|
65
|
+
private substrate;
|
|
66
|
+
private initialized;
|
|
67
|
+
private available;
|
|
68
|
+
constructor(config?: NeuralSubstrateConfig);
|
|
69
|
+
/**
|
|
70
|
+
* Initialize neural substrate
|
|
71
|
+
*/
|
|
72
|
+
init(): Promise<boolean>;
|
|
73
|
+
/**
|
|
74
|
+
* Check if neural features are available
|
|
75
|
+
*/
|
|
76
|
+
isAvailable(): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Detect semantic drift from baseline
|
|
79
|
+
*/
|
|
80
|
+
detectDrift(input: string): Promise<DriftResult | null>;
|
|
81
|
+
/**
|
|
82
|
+
* Set baseline for drift detection
|
|
83
|
+
*/
|
|
84
|
+
setDriftBaseline(context: string): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Store memory with interference detection
|
|
87
|
+
*/
|
|
88
|
+
storeMemory(id: string, content: string): Promise<{
|
|
89
|
+
stored: boolean;
|
|
90
|
+
interference: string[];
|
|
91
|
+
} | null>;
|
|
92
|
+
/**
|
|
93
|
+
* Recall memories by similarity
|
|
94
|
+
*/
|
|
95
|
+
recallMemories(query: string, topK?: number): Promise<Array<MemoryEntry & {
|
|
96
|
+
relevance: number;
|
|
97
|
+
}> | null>;
|
|
98
|
+
/**
|
|
99
|
+
* Consolidate memories (merge similar, forget weak)
|
|
100
|
+
*/
|
|
101
|
+
consolidateMemories(): {
|
|
102
|
+
merged: number;
|
|
103
|
+
forgotten: number;
|
|
104
|
+
remaining: number;
|
|
105
|
+
} | null;
|
|
106
|
+
/**
|
|
107
|
+
* Register agent for state tracking
|
|
108
|
+
*/
|
|
109
|
+
registerAgent(id: string, role: string): Promise<AgentState | null>;
|
|
110
|
+
/**
|
|
111
|
+
* Update agent state based on observation
|
|
112
|
+
*/
|
|
113
|
+
updateAgentState(agentId: string, observation: string): Promise<{
|
|
114
|
+
newState: AgentState;
|
|
115
|
+
nearestRegion: string;
|
|
116
|
+
regionProximity: number;
|
|
117
|
+
} | null>;
|
|
118
|
+
/**
|
|
119
|
+
* Get agent state
|
|
120
|
+
*/
|
|
121
|
+
getAgentState(agentId: string): AgentState | null;
|
|
122
|
+
/**
|
|
123
|
+
* Coordinate swarm for task
|
|
124
|
+
*/
|
|
125
|
+
coordinateSwarm(task: string): Promise<Array<{
|
|
126
|
+
agentId: string;
|
|
127
|
+
taskAlignment: number;
|
|
128
|
+
bestCollaborator: string | null;
|
|
129
|
+
collaborationScore: number;
|
|
130
|
+
}> | null>;
|
|
131
|
+
/**
|
|
132
|
+
* Add agent to swarm
|
|
133
|
+
*/
|
|
134
|
+
addSwarmAgent(id: string, role: string): Promise<AgentState | null>;
|
|
135
|
+
/**
|
|
136
|
+
* Calibrate coherence monitor
|
|
137
|
+
*/
|
|
138
|
+
calibrateCoherence(goodOutputs: string[]): Promise<{
|
|
139
|
+
calibrated: boolean;
|
|
140
|
+
sampleCount: number;
|
|
141
|
+
} | null>;
|
|
142
|
+
/**
|
|
143
|
+
* Check output coherence
|
|
144
|
+
*/
|
|
145
|
+
checkCoherence(output: string): Promise<CoherenceResult | null>;
|
|
146
|
+
/**
|
|
147
|
+
* Process input through full neural substrate
|
|
148
|
+
*/
|
|
149
|
+
process(input: string, context?: {
|
|
150
|
+
agentId?: string;
|
|
151
|
+
memoryId?: string;
|
|
152
|
+
checkCoherence?: boolean;
|
|
153
|
+
}): Promise<{
|
|
154
|
+
drift: DriftResult;
|
|
155
|
+
state?: {
|
|
156
|
+
nearestRegion: string;
|
|
157
|
+
regionProximity: number;
|
|
158
|
+
};
|
|
159
|
+
coherence?: CoherenceResult;
|
|
160
|
+
stored?: boolean;
|
|
161
|
+
} | null>;
|
|
162
|
+
/**
|
|
163
|
+
* Get substrate health
|
|
164
|
+
*/
|
|
165
|
+
health(): SubstrateHealth | null;
|
|
166
|
+
/**
|
|
167
|
+
* Full consolidation pass
|
|
168
|
+
*/
|
|
169
|
+
consolidate(): {
|
|
170
|
+
memory: {
|
|
171
|
+
merged: number;
|
|
172
|
+
forgotten: number;
|
|
173
|
+
remaining: number;
|
|
174
|
+
};
|
|
175
|
+
} | null;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Create neural embedding service
|
|
179
|
+
*/
|
|
180
|
+
export declare function createNeuralService(config?: NeuralSubstrateConfig): NeuralEmbeddingService;
|
|
181
|
+
/**
|
|
182
|
+
* Check if neural features are available
|
|
183
|
+
*/
|
|
184
|
+
export declare function isNeuralAvailable(): Promise<boolean>;
|
|
185
|
+
/**
|
|
186
|
+
* List available ONNX embedding models
|
|
187
|
+
*/
|
|
188
|
+
export declare function listEmbeddingModels(): Promise<Array<{
|
|
189
|
+
id: string;
|
|
190
|
+
dimension: number;
|
|
191
|
+
size: string;
|
|
192
|
+
quantized: boolean;
|
|
193
|
+
downloaded: boolean;
|
|
194
|
+
}>>;
|
|
195
|
+
/**
|
|
196
|
+
* Download embedding model
|
|
197
|
+
*/
|
|
198
|
+
export declare function downloadEmbeddingModel(modelId: string, targetDir?: string, onProgress?: (progress: {
|
|
199
|
+
percent: number;
|
|
200
|
+
bytesDownloaded: number;
|
|
201
|
+
totalBytes: number;
|
|
202
|
+
}) => void): Promise<string>;
|
|
203
|
+
//# sourceMappingURL=neural-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neural-integration.d.ts","sourceRoot":"","sources":["../src/neural-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neural Substrate Integration
|
|
3
|
+
*
|
|
4
|
+
* Integrates agentic-flow's neural embedding features:
|
|
5
|
+
* - Semantic drift detection
|
|
6
|
+
* - Memory physics (hippocampal dynamics)
|
|
7
|
+
* - Embedding state machine
|
|
8
|
+
* - Swarm coordination
|
|
9
|
+
* - Coherence monitoring
|
|
10
|
+
*
|
|
11
|
+
* These features treat embeddings as a synthetic nervous system.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Lazy-loaded Neural Substrate wrapper
|
|
15
|
+
*
|
|
16
|
+
* Wraps agentic-flow's NeuralSubstrate with graceful fallback
|
|
17
|
+
*/
|
|
18
|
+
export class NeuralEmbeddingService {
|
|
19
|
+
config;
|
|
20
|
+
substrate = null;
|
|
21
|
+
initialized = false;
|
|
22
|
+
available = false;
|
|
23
|
+
constructor(config = {}) {
|
|
24
|
+
this.config = config;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Initialize neural substrate
|
|
28
|
+
*/
|
|
29
|
+
async init() {
|
|
30
|
+
if (this.initialized)
|
|
31
|
+
return this.available;
|
|
32
|
+
try {
|
|
33
|
+
const { getNeuralSubstrate } = await import('agentic-flow/embeddings');
|
|
34
|
+
this.substrate = await getNeuralSubstrate(this.config);
|
|
35
|
+
await this.substrate.init();
|
|
36
|
+
this.available = true;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.warn('[neural] Neural substrate not available:', error instanceof Error ? error.message : error);
|
|
40
|
+
this.available = false;
|
|
41
|
+
}
|
|
42
|
+
this.initialized = true;
|
|
43
|
+
return this.available;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Check if neural features are available
|
|
47
|
+
*/
|
|
48
|
+
isAvailable() {
|
|
49
|
+
return this.available;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Detect semantic drift from baseline
|
|
53
|
+
*/
|
|
54
|
+
async detectDrift(input) {
|
|
55
|
+
if (!this.available || !this.substrate)
|
|
56
|
+
return null;
|
|
57
|
+
return this.substrate.drift.detect(input);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Set baseline for drift detection
|
|
61
|
+
*/
|
|
62
|
+
async setDriftBaseline(context) {
|
|
63
|
+
if (!this.available || !this.substrate)
|
|
64
|
+
return;
|
|
65
|
+
await this.substrate.drift.setBaseline(context);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Store memory with interference detection
|
|
69
|
+
*/
|
|
70
|
+
async storeMemory(id, content) {
|
|
71
|
+
if (!this.available || !this.substrate)
|
|
72
|
+
return null;
|
|
73
|
+
return this.substrate.memory.store(id, content);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Recall memories by similarity
|
|
77
|
+
*/
|
|
78
|
+
async recallMemories(query, topK = 5) {
|
|
79
|
+
if (!this.available || !this.substrate)
|
|
80
|
+
return null;
|
|
81
|
+
return this.substrate.memory.recall(query, topK);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Consolidate memories (merge similar, forget weak)
|
|
85
|
+
*/
|
|
86
|
+
consolidateMemories() {
|
|
87
|
+
if (!this.available || !this.substrate)
|
|
88
|
+
return null;
|
|
89
|
+
return this.substrate.memory.consolidate();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Register agent for state tracking
|
|
93
|
+
*/
|
|
94
|
+
async registerAgent(id, role) {
|
|
95
|
+
if (!this.available || !this.substrate)
|
|
96
|
+
return null;
|
|
97
|
+
return this.substrate.states.registerAgent(id, role);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Update agent state based on observation
|
|
101
|
+
*/
|
|
102
|
+
async updateAgentState(agentId, observation) {
|
|
103
|
+
if (!this.available || !this.substrate)
|
|
104
|
+
return null;
|
|
105
|
+
return this.substrate.states.updateState(agentId, observation);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get agent state
|
|
109
|
+
*/
|
|
110
|
+
getAgentState(agentId) {
|
|
111
|
+
if (!this.available || !this.substrate)
|
|
112
|
+
return null;
|
|
113
|
+
return this.substrate.states.getAgent(agentId);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Coordinate swarm for task
|
|
117
|
+
*/
|
|
118
|
+
async coordinateSwarm(task) {
|
|
119
|
+
if (!this.available || !this.substrate)
|
|
120
|
+
return null;
|
|
121
|
+
return this.substrate.swarm.coordinate(task);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Add agent to swarm
|
|
125
|
+
*/
|
|
126
|
+
async addSwarmAgent(id, role) {
|
|
127
|
+
if (!this.available || !this.substrate)
|
|
128
|
+
return null;
|
|
129
|
+
return this.substrate.swarm.addAgent(id, role);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Calibrate coherence monitor
|
|
133
|
+
*/
|
|
134
|
+
async calibrateCoherence(goodOutputs) {
|
|
135
|
+
if (!this.available || !this.substrate)
|
|
136
|
+
return null;
|
|
137
|
+
return this.substrate.coherence.calibrate(goodOutputs);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Check output coherence
|
|
141
|
+
*/
|
|
142
|
+
async checkCoherence(output) {
|
|
143
|
+
if (!this.available || !this.substrate)
|
|
144
|
+
return null;
|
|
145
|
+
return this.substrate.coherence.check(output);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Process input through full neural substrate
|
|
149
|
+
*/
|
|
150
|
+
async process(input, context) {
|
|
151
|
+
if (!this.available || !this.substrate)
|
|
152
|
+
return null;
|
|
153
|
+
return this.substrate.process(input, context);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get substrate health
|
|
157
|
+
*/
|
|
158
|
+
health() {
|
|
159
|
+
if (!this.available || !this.substrate)
|
|
160
|
+
return null;
|
|
161
|
+
return this.substrate.health();
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Full consolidation pass
|
|
165
|
+
*/
|
|
166
|
+
consolidate() {
|
|
167
|
+
if (!this.available || !this.substrate)
|
|
168
|
+
return null;
|
|
169
|
+
return this.substrate.consolidate();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Create neural embedding service
|
|
174
|
+
*/
|
|
175
|
+
export function createNeuralService(config = {}) {
|
|
176
|
+
return new NeuralEmbeddingService(config);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Check if neural features are available
|
|
180
|
+
*/
|
|
181
|
+
export async function isNeuralAvailable() {
|
|
182
|
+
try {
|
|
183
|
+
await import('agentic-flow/embeddings');
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* List available ONNX embedding models
|
|
192
|
+
*/
|
|
193
|
+
export async function listEmbeddingModels() {
|
|
194
|
+
try {
|
|
195
|
+
const { listAvailableModels } = await import('agentic-flow/embeddings');
|
|
196
|
+
return listAvailableModels();
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// Return default models if agentic-flow not available
|
|
200
|
+
return [
|
|
201
|
+
{ id: 'all-MiniLM-L6-v2', dimension: 384, size: '23MB', quantized: false, downloaded: false },
|
|
202
|
+
{ id: 'all-mpnet-base-v2', dimension: 768, size: '110MB', quantized: false, downloaded: false },
|
|
203
|
+
];
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Download embedding model
|
|
208
|
+
*/
|
|
209
|
+
export async function downloadEmbeddingModel(modelId, targetDir, onProgress) {
|
|
210
|
+
const { downloadModel } = await import('agentic-flow/embeddings');
|
|
211
|
+
return downloadModel(modelId, targetDir ?? '.models', onProgress);
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=neural-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"neural-integration.js","sourceRoot":"","sources":["../src/neural-integration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Embedding Normalization Utilities
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - L2 (Euclidean) normalization
|
|
6
|
+
* - L1 (Manhattan) normalization
|
|
7
|
+
* - Min-max normalization
|
|
8
|
+
* - Z-score standardization
|
|
9
|
+
* - Batch normalization
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Normalization type
|
|
13
|
+
*/
|
|
14
|
+
export type NormalizationType = 'l2' | 'l1' | 'minmax' | 'zscore' | 'none';
|
|
15
|
+
/**
|
|
16
|
+
* Normalization options
|
|
17
|
+
*/
|
|
18
|
+
export interface NormalizationOptions {
|
|
19
|
+
/** Normalization type (default: 'l2') */
|
|
20
|
+
type?: NormalizationType;
|
|
21
|
+
/** Epsilon for numerical stability (default: 1e-12) */
|
|
22
|
+
epsilon?: number;
|
|
23
|
+
/** In-place modification (default: false) */
|
|
24
|
+
inPlace?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* L2 (Euclidean) normalize embedding to unit length
|
|
28
|
+
* Most common for cosine similarity
|
|
29
|
+
*
|
|
30
|
+
* @param embedding - Input embedding vector
|
|
31
|
+
* @param epsilon - Small value to prevent division by zero
|
|
32
|
+
* @returns Normalized embedding with ||v|| = 1
|
|
33
|
+
*/
|
|
34
|
+
export declare function l2Normalize(embedding: Float32Array | number[], epsilon?: number): Float32Array;
|
|
35
|
+
/**
|
|
36
|
+
* L2 normalize embedding in-place (modifies original array)
|
|
37
|
+
*/
|
|
38
|
+
export declare function l2NormalizeInPlace(embedding: Float32Array, epsilon?: number): Float32Array;
|
|
39
|
+
/**
|
|
40
|
+
* L1 (Manhattan) normalize embedding
|
|
41
|
+
* Sum of absolute values = 1
|
|
42
|
+
*/
|
|
43
|
+
export declare function l1Normalize(embedding: Float32Array | number[], epsilon?: number): Float32Array;
|
|
44
|
+
/**
|
|
45
|
+
* Min-max normalize embedding to [0, 1] range
|
|
46
|
+
*/
|
|
47
|
+
export declare function minMaxNormalize(embedding: Float32Array | number[], epsilon?: number): Float32Array;
|
|
48
|
+
/**
|
|
49
|
+
* Z-score standardize embedding (mean=0, std=1)
|
|
50
|
+
*/
|
|
51
|
+
export declare function zScoreNormalize(embedding: Float32Array | number[], epsilon?: number): Float32Array;
|
|
52
|
+
/**
|
|
53
|
+
* Normalize embedding using specified method
|
|
54
|
+
*/
|
|
55
|
+
export declare function normalize(embedding: Float32Array | number[], options?: NormalizationOptions): Float32Array;
|
|
56
|
+
/**
|
|
57
|
+
* Batch normalize multiple embeddings
|
|
58
|
+
*/
|
|
59
|
+
export declare function normalizeBatch(embeddings: Array<Float32Array | number[]>, options?: NormalizationOptions): Float32Array[];
|
|
60
|
+
/**
|
|
61
|
+
* Calculate L2 norm of embedding
|
|
62
|
+
*/
|
|
63
|
+
export declare function l2Norm(embedding: Float32Array | number[]): number;
|
|
64
|
+
/**
|
|
65
|
+
* Check if embedding is already normalized (L2 norm ≈ 1)
|
|
66
|
+
*/
|
|
67
|
+
export declare function isNormalized(embedding: Float32Array | number[], tolerance?: number): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Center embeddings by subtracting mean across batch
|
|
70
|
+
* Useful for improving similarity metrics
|
|
71
|
+
*/
|
|
72
|
+
export declare function centerEmbeddings(embeddings: Array<Float32Array | number[]>): Float32Array[];
|
|
73
|
+
//# sourceMappingURL=normalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalization.d.ts","sourceRoot":"","sources":["../src/normalization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,EAClC,OAAO,SAAQ,GACd,YAAY,CAoBd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,YAAY,EACvB,OAAO,SAAQ,GACd,YAAY,CAcd;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,EAClC,OAAO,SAAQ,GACd,YAAY,CAgBd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,EAClC,OAAO,SAAQ,GACd,YAAY,CAoBd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,EAClC,OAAO,SAAQ,GACd,YAAY,CA0Bd;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,EAClC,OAAO,GAAE,oBAAyB,GACjC,YAAY,CAyBd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,EAAE,CAAC,EAC1C,OAAO,GAAE,oBAAyB,GACjC,YAAY,EAAE,CAEhB;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,GAAG,MAAM,CAMjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,YAAY,GAAG,MAAM,EAAE,EAClC,SAAS,SAAO,GACf,OAAO,CAGT;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,EAAE,CAAC,GACzC,YAAY,EAAE,CAyBhB"}
|