@reftrixmcp/ml 0.1.7
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/LICENSE +661 -0
- package/dist/dinov2/index.d.ts +7 -0
- package/dist/dinov2/index.d.ts.map +1 -0
- package/dist/dinov2/index.js +7 -0
- package/dist/dinov2/index.js.map +1 -0
- package/dist/dinov2/service.d.ts +106 -0
- package/dist/dinov2/service.d.ts.map +1 -0
- package/dist/dinov2/service.js +446 -0
- package/dist/dinov2/service.js.map +1 -0
- package/dist/dinov2/worker-thread-types.d.ts +77 -0
- package/dist/dinov2/worker-thread-types.d.ts.map +1 -0
- package/dist/dinov2/worker-thread-types.js +4 -0
- package/dist/dinov2/worker-thread-types.js.map +1 -0
- package/dist/dinov2/worker-thread.d.ts +2 -0
- package/dist/dinov2/worker-thread.d.ts.map +1 -0
- package/dist/dinov2/worker-thread.js +231 -0
- package/dist/dinov2/worker-thread.js.map +1 -0
- package/dist/embeddings/index.d.ts +12 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +13 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/multimodal-embedding.service.d.ts +400 -0
- package/dist/embeddings/multimodal-embedding.service.d.ts.map +1 -0
- package/dist/embeddings/multimodal-embedding.service.js +650 -0
- package/dist/embeddings/multimodal-embedding.service.js.map +1 -0
- package/dist/embeddings/service.d.ts +261 -0
- package/dist/embeddings/service.d.ts.map +1 -0
- package/dist/embeddings/service.js +1093 -0
- package/dist/embeddings/service.js.map +1 -0
- package/dist/embeddings/style-embedding.service.d.ts +117 -0
- package/dist/embeddings/style-embedding.service.d.ts.map +1 -0
- package/dist/embeddings/style-embedding.service.js +157 -0
- package/dist/embeddings/style-embedding.service.js.map +1 -0
- package/dist/embeddings/types.d.ts +83 -0
- package/dist/embeddings/types.d.ts.map +1 -0
- package/dist/embeddings/types.js +4 -0
- package/dist/embeddings/types.js.map +1 -0
- package/dist/embeddings/vision-embedding.service.d.ts +70 -0
- package/dist/embeddings/vision-embedding.service.d.ts.map +1 -0
- package/dist/embeddings/vision-embedding.service.js +221 -0
- package/dist/embeddings/vision-embedding.service.js.map +1 -0
- package/dist/embeddings/vision-embedding.types.d.ts +102 -0
- package/dist/embeddings/vision-embedding.types.d.ts.map +1 -0
- package/dist/embeddings/vision-embedding.types.js +4 -0
- package/dist/embeddings/vision-embedding.types.js.map +1 -0
- package/dist/embeddings/worker-thread-types.d.ts +152 -0
- package/dist/embeddings/worker-thread-types.d.ts.map +1 -0
- package/dist/embeddings/worker-thread-types.js +4 -0
- package/dist/embeddings/worker-thread-types.js.map +1 -0
- package/dist/embeddings/worker-thread.d.ts +4 -0
- package/dist/embeddings/worker-thread.d.ts.map +1 -0
- package/dist/embeddings/worker-thread.js +441 -0
- package/dist/embeddings/worker-thread.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/search/fulltext-helpers.d.ts +30 -0
- package/dist/search/fulltext-helpers.d.ts.map +1 -0
- package/dist/search/fulltext-helpers.js +40 -0
- package/dist/search/fulltext-helpers.js.map +1 -0
- package/dist/search/hybrid.d.ts +40 -0
- package/dist/search/hybrid.d.ts.map +1 -0
- package/dist/search/hybrid.js +61 -0
- package/dist/search/hybrid.js.map +1 -0
- package/dist/search/index.d.ts +12 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +11 -0
- package/dist/search/index.js.map +1 -0
- package/dist/search/rrf.d.ts +69 -0
- package/dist/search/rrf.d.ts.map +1 -0
- package/dist/search/rrf.js +108 -0
- package/dist/search/rrf.js.map +1 -0
- package/dist/search/types.d.ts +130 -0
- package/dist/search/types.d.ts.map +1 -0
- package/dist/search/types.js +4 -0
- package/dist/search/types.js.map +1 -0
- package/package.json +65 -0
- package/src/dinov2/index.ts +21 -0
- package/src/dinov2/service.ts +539 -0
- package/src/dinov2/worker-thread-types.ts +103 -0
- package/src/dinov2/worker-thread.ts +306 -0
- package/src/embeddings/index.ts +74 -0
- package/src/embeddings/multimodal-embedding.service.ts +992 -0
- package/src/embeddings/service.ts +1287 -0
- package/src/embeddings/style-embedding.service.ts +201 -0
- package/src/embeddings/types.ts +95 -0
- package/src/embeddings/vision-embedding.service.ts +273 -0
- package/src/embeddings/vision-embedding.types.ts +117 -0
- package/src/embeddings/worker-thread-types.ts +194 -0
- package/src/embeddings/worker-thread.ts +529 -0
- package/src/index.ts +70 -0
- package/src/search/fulltext-helpers.ts +45 -0
- package/src/search/hybrid.ts +107 -0
- package/src/search/index.ts +25 -0
- package/src/search/rrf.ts +154 -0
- package/src/search/types.ts +141 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2026 TKMD and Reftrix Contributors
|
|
2
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Worker Thread message types for ONNX embedding inference.
|
|
6
|
+
*
|
|
7
|
+
* Communication protocol between main thread (EmbeddingService) and
|
|
8
|
+
* worker thread (embedding-worker.ts). Messages are serialized via
|
|
9
|
+
* structured clone (MessagePort), so only plain objects and typed arrays
|
|
10
|
+
* are used — no ONNX Session/Tensor objects cross the boundary.
|
|
11
|
+
*
|
|
12
|
+
* @module embeddings/worker-thread-types
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
// =====================================================
|
|
16
|
+
// Main → Worker messages
|
|
17
|
+
// =====================================================
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Initialize the ONNX pipeline in the worker thread.
|
|
21
|
+
*/
|
|
22
|
+
export interface WorkerInitMessage {
|
|
23
|
+
type: "init";
|
|
24
|
+
requestId: string;
|
|
25
|
+
config: {
|
|
26
|
+
modelId: string;
|
|
27
|
+
cacheDir: string;
|
|
28
|
+
device: string;
|
|
29
|
+
dtype: string;
|
|
30
|
+
pipelineRecycleThreshold: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Generate embedding for a single prefixed text.
|
|
36
|
+
* The main thread is responsible for adding E5 prefix before sending.
|
|
37
|
+
*/
|
|
38
|
+
export interface WorkerGenerateMessage {
|
|
39
|
+
type: "generate";
|
|
40
|
+
requestId: string;
|
|
41
|
+
text: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Generate embeddings for a batch of prefixed texts.
|
|
46
|
+
* The main thread is responsible for adding E5 prefix before sending.
|
|
47
|
+
*/
|
|
48
|
+
export interface WorkerGenerateBatchMessage {
|
|
49
|
+
type: "generateBatch";
|
|
50
|
+
requestId: string;
|
|
51
|
+
texts: string[];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Dispose the ONNX pipeline to free native memory.
|
|
56
|
+
*/
|
|
57
|
+
export interface WorkerDisposeMessage {
|
|
58
|
+
type: "dispose";
|
|
59
|
+
requestId: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Terminate the worker thread gracefully.
|
|
64
|
+
*/
|
|
65
|
+
export interface WorkerTerminateMessage {
|
|
66
|
+
type: "terminate";
|
|
67
|
+
requestId: string;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Switch the ONNX execution provider at runtime (e.g. cpu → cuda).
|
|
72
|
+
* Disposes the current pipeline and re-initializes with the new provider.
|
|
73
|
+
*/
|
|
74
|
+
export interface WorkerSwitchProviderMessage {
|
|
75
|
+
type: "switch-provider";
|
|
76
|
+
requestId: string;
|
|
77
|
+
provider: "cpu" | "cuda";
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Release GPU resources by disposing the pipeline and reverting to CPU.
|
|
82
|
+
* Safe to call even if already on CPU — acts as a no-op dispose.
|
|
83
|
+
*/
|
|
84
|
+
export interface WorkerReleaseGpuMessage {
|
|
85
|
+
type: "release-gpu";
|
|
86
|
+
requestId: string;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export type WorkerMessage =
|
|
90
|
+
| WorkerInitMessage
|
|
91
|
+
| WorkerGenerateMessage
|
|
92
|
+
| WorkerGenerateBatchMessage
|
|
93
|
+
| WorkerDisposeMessage
|
|
94
|
+
| WorkerTerminateMessage
|
|
95
|
+
| WorkerSwitchProviderMessage
|
|
96
|
+
| WorkerReleaseGpuMessage;
|
|
97
|
+
|
|
98
|
+
// =====================================================
|
|
99
|
+
// Worker → Main messages
|
|
100
|
+
// =====================================================
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Successful response from init.
|
|
104
|
+
*/
|
|
105
|
+
export interface WorkerInitResponse {
|
|
106
|
+
type: "init";
|
|
107
|
+
requestId: string;
|
|
108
|
+
success: true;
|
|
109
|
+
loadTimeMs: number;
|
|
110
|
+
/** The resolved ONNX execution provider ('cpu' or 'cuda'). */
|
|
111
|
+
executionProvider: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Successful response from generate.
|
|
116
|
+
* Embedding is a plain number[] (structured clone compatible).
|
|
117
|
+
*/
|
|
118
|
+
export interface WorkerGenerateResponse {
|
|
119
|
+
type: "generate";
|
|
120
|
+
requestId: string;
|
|
121
|
+
success: true;
|
|
122
|
+
embedding: number[];
|
|
123
|
+
inferenceTimeMs: number;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Successful response from generateBatch.
|
|
128
|
+
*/
|
|
129
|
+
export interface WorkerGenerateBatchResponse {
|
|
130
|
+
type: "generateBatch";
|
|
131
|
+
requestId: string;
|
|
132
|
+
success: true;
|
|
133
|
+
embeddings: number[][];
|
|
134
|
+
inferenceTimeMs: number;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Successful response from dispose.
|
|
139
|
+
*/
|
|
140
|
+
export interface WorkerDisposeResponse {
|
|
141
|
+
type: "dispose";
|
|
142
|
+
requestId: string;
|
|
143
|
+
success: true;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Successful response from terminate (sent just before process.exit).
|
|
148
|
+
*/
|
|
149
|
+
export interface WorkerTerminateResponse {
|
|
150
|
+
type: "terminate";
|
|
151
|
+
requestId: string;
|
|
152
|
+
success: true;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Successful response from switch-provider.
|
|
157
|
+
*/
|
|
158
|
+
export interface WorkerSwitchProviderResponse {
|
|
159
|
+
type: "switch-provider";
|
|
160
|
+
requestId: string;
|
|
161
|
+
success: true;
|
|
162
|
+
/** The provider now in effect after the switch. */
|
|
163
|
+
provider: "cpu" | "cuda";
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Successful response from release-gpu.
|
|
168
|
+
*/
|
|
169
|
+
export interface WorkerReleaseGpuResponse {
|
|
170
|
+
type: "release-gpu";
|
|
171
|
+
requestId: string;
|
|
172
|
+
success: true;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Error response for any message type.
|
|
177
|
+
*/
|
|
178
|
+
export interface WorkerErrorResponse {
|
|
179
|
+
type: "error";
|
|
180
|
+
requestId: string;
|
|
181
|
+
success: false;
|
|
182
|
+
error: string;
|
|
183
|
+
originalType: WorkerMessage["type"];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export type WorkerResponse =
|
|
187
|
+
| WorkerInitResponse
|
|
188
|
+
| WorkerGenerateResponse
|
|
189
|
+
| WorkerGenerateBatchResponse
|
|
190
|
+
| WorkerDisposeResponse
|
|
191
|
+
| WorkerTerminateResponse
|
|
192
|
+
| WorkerSwitchProviderResponse
|
|
193
|
+
| WorkerReleaseGpuResponse
|
|
194
|
+
| WorkerErrorResponse;
|