oh-my-second-brain 0.3.0 → 0.6.2
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/ACKNOWLEDGMENTS.md +8 -0
- package/CHANGELOG-assets.md +10 -0
- package/CHANGELOG-cli.md +11 -0
- package/CHANGELOG-kernel.md +31 -0
- package/CHANGELOG-mcp.md +12 -0
- package/CHANGELOG-vendors.md +6 -0
- package/CHANGELOG.md +35 -0
- package/assets/hermes-manifest.json +1 -1
- package/assets/skills/doctor/SKILL.md +2 -2
- package/assets/skills/search/SKILL.md +17 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.js +13 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/host-commands.js +2 -1
- package/dist/cli/host-commands.js.map +1 -1
- package/dist/cli/oms.d.ts +1 -1
- package/dist/cli/oms.js +26 -3
- package/dist/cli/oms.js.map +1 -1
- package/dist/cli/semantic-args.js +102 -3
- package/dist/cli/semantic-args.js.map +1 -1
- package/dist/cli/semantic.js +30 -6
- package/dist/cli/semantic.js.map +1 -1
- package/dist/cli/setup-command.d.ts +16 -0
- package/dist/cli/setup-command.js +50 -1
- package/dist/cli/setup-command.js.map +1 -1
- package/dist/kernel/contracts/index.d.ts +144 -0
- package/dist/kernel/contracts/index.js +401 -0
- package/dist/kernel/contracts/index.js.map +1 -0
- package/dist/kernel/conventions/note-exclude.d.ts +14 -0
- package/dist/kernel/conventions/note-exclude.js +95 -0
- package/dist/kernel/conventions/note-exclude.js.map +1 -0
- package/dist/kernel/engine/assemble.d.ts +22 -1
- package/dist/kernel/engine/assemble.js +202 -19
- package/dist/kernel/engine/assemble.js.map +1 -1
- package/dist/kernel/engine/axes/store.d.ts +90 -0
- package/dist/kernel/engine/axes/store.js +422 -0
- package/dist/kernel/engine/axes/store.js.map +1 -0
- package/dist/kernel/engine/conventions/vault-lint.d.ts +7 -2
- package/dist/kernel/engine/conventions/vault-lint.js +7 -21
- package/dist/kernel/engine/conventions/vault-lint.js.map +1 -1
- package/dist/kernel/engine/embed/identity.d.ts +14 -4
- package/dist/kernel/engine/embed/identity.js +33 -1
- package/dist/kernel/engine/embed/identity.js.map +1 -1
- package/dist/kernel/engine/embed/model.d.ts +134 -0
- package/dist/kernel/engine/embed/model.js +302 -0
- package/dist/kernel/engine/embed/model.js.map +1 -0
- package/dist/kernel/engine/embed/provider.d.ts +36 -5
- package/dist/kernel/engine/embed/provider.js +240 -103
- package/dist/kernel/engine/embed/provider.js.map +1 -1
- package/dist/kernel/engine/embed/store.d.ts +5 -1
- package/dist/kernel/engine/embed/store.js +136 -26
- package/dist/kernel/engine/embed/store.js.map +1 -1
- package/dist/kernel/engine/embed/sync.d.ts +53 -0
- package/dist/kernel/engine/embed/sync.js +489 -59
- package/dist/kernel/engine/embed/sync.js.map +1 -1
- package/dist/kernel/engine/graph/builder.d.ts +9 -5
- package/dist/kernel/engine/graph/builder.js +225 -82
- package/dist/kernel/engine/graph/builder.js.map +1 -1
- package/dist/kernel/engine/graph/node.d.ts +49 -1
- package/dist/kernel/engine/graph/node.js +205 -0
- package/dist/kernel/engine/graph/node.js.map +1 -1
- package/dist/kernel/engine/mcp/facade.d.ts +21 -1
- package/dist/kernel/engine/mcp/facade.js +523 -28
- package/dist/kernel/engine/mcp/facade.js.map +1 -1
- package/dist/kernel/engine/mcp/query-mapper.d.ts +27 -2
- package/dist/kernel/engine/mcp/query-mapper.js +157 -12
- package/dist/kernel/engine/mcp/query-mapper.js.map +1 -1
- package/dist/kernel/engine/mcp/types.d.ts +64 -2
- package/dist/kernel/engine/retrieval/dispatcher.d.ts +22 -0
- package/dist/kernel/engine/retrieval/dispatcher.js +84 -8
- package/dist/kernel/engine/retrieval/dispatcher.js.map +1 -1
- package/dist/kernel/engine/retrieval/index.d.ts +2 -1
- package/dist/kernel/engine/retrieval/index.js +1 -1
- package/dist/kernel/engine/retrieval/index.js.map +1 -1
- package/dist/kernel/engine/retrieval/reranker.d.ts +82 -4
- package/dist/kernel/engine/retrieval/reranker.js +178 -3
- package/dist/kernel/engine/retrieval/reranker.js.map +1 -1
- package/dist/kernel/engine/retrieval/rrf.d.ts +10 -2
- package/dist/kernel/engine/retrieval/rrf.js +39 -16
- package/dist/kernel/engine/retrieval/rrf.js.map +1 -1
- package/dist/kernel/engine/tracer.d.ts +13 -0
- package/dist/kernel/engine/tracer.js +63 -6
- package/dist/kernel/engine/tracer.js.map +1 -1
- package/dist/kernel/graph/cache.js +174 -23
- package/dist/kernel/graph/cache.js.map +1 -1
- package/dist/kernel/index.d.ts +2 -0
- package/dist/kernel/index.js +2 -0
- package/dist/kernel/index.js.map +1 -1
- package/dist/kernel/measurement/no-default-contract.d.ts +17 -0
- package/dist/kernel/measurement/no-default-contract.js +84 -0
- package/dist/kernel/measurement/no-default-contract.js.map +1 -0
- package/dist/kernel/searchbackend/engine-search-backend.js +93 -7
- package/dist/kernel/searchbackend/engine-search-backend.js.map +1 -1
- package/dist/kernel/searchbackend/search-backend.d.ts +11 -1
- package/dist/kernel/searchbackend/search-backend.js +66 -5
- package/dist/kernel/searchbackend/search-backend.js.map +1 -1
- package/dist/kernel/semantic/semantic-engine.js +31 -5
- package/dist/kernel/semantic/semantic-engine.js.map +1 -1
- package/dist/kernel/semantic/semantic-retrieve-args.d.ts +19 -2
- package/dist/kernel/semantic/semantic-retrieve-args.js +81 -7
- package/dist/kernel/semantic/semantic-retrieve-args.js.map +1 -1
- package/dist/kernel/update/update.d.ts +7 -0
- package/dist/kernel/update/update.js +106 -8
- package/dist/kernel/update/update.js.map +1 -1
- package/dist/mcp/server.js +84 -34
- package/dist/mcp/server.js.map +1 -1
- package/package.json +3 -2
|
@@ -22,48 +22,46 @@ import { cpus } from "node:os";
|
|
|
22
22
|
// ---------------------------------------------------------------------------
|
|
23
23
|
/** Default embedding dimension for the GGUF provider (EmbeddingGemma-300M). */
|
|
24
24
|
export const GGUF_EMBEDDING_DIMENSIONS = 768;
|
|
25
|
+
/** Default context length for the GGUF provider (EmbeddingGemma-300M). */
|
|
26
|
+
export const GGUF_EMBEDDING_CONTEXT_LENGTH = 2048;
|
|
25
27
|
/** Milliseconds of inactivity before the GGUF pool is unloaded (plan.md:83). */
|
|
26
28
|
const IDLE_UNLOAD_MS = 5 * 60 * 1000;
|
|
27
|
-
/**
|
|
28
|
-
* Embedding context window for EmbeddingGemma-300M (its trained n_ctx).
|
|
29
|
-
*
|
|
30
|
-
* Each pooled context is sized to this EXPLICITLY rather than left to
|
|
31
|
-
* node-llama-cpp's "auto": a pool of N auto-sized contexts divides available
|
|
32
|
-
* memory N ways and each can silently shrink below the largest chunk, making
|
|
33
|
-
* getEmbeddingFor() throw "Input is longer than the context size". Pinning the
|
|
34
|
-
* window makes embedding deterministic across pool sizes and keeps inputs
|
|
35
|
-
* in-distribution (2048 = trained context → no overflow degradation).
|
|
36
|
-
*/
|
|
37
|
-
const EMBED_CONTEXT_TOKENS = 2048;
|
|
38
29
|
/**
|
|
39
30
|
* Hard input-token ceiling enforced before every embed() call.
|
|
40
31
|
*
|
|
41
|
-
* Sits a margin below
|
|
32
|
+
* Sits a margin below the descriptor context length to leave room for any special /
|
|
42
33
|
* task-prefix tokens getEmbeddingFor() injects. Inputs above this are
|
|
43
34
|
* token-exactly truncated via the model's own tokenizer rather than thrown —
|
|
44
35
|
* the engine MUST never choke on one oversized chunk the way the whole-doc
|
|
45
36
|
* floor (src/search) does. This bounds INPUT LENGTH only; it is NOT a dimension
|
|
46
|
-
* fold (ADR-007) — the emitted vector
|
|
37
|
+
* fold (ADR-007) — the emitted vector remains the provider width.
|
|
47
38
|
*/
|
|
48
|
-
const
|
|
39
|
+
const EMBED_INPUT_TOKEN_MARGIN = 148;
|
|
49
40
|
// ---------------------------------------------------------------------------
|
|
50
41
|
// L2-normalise helper (GGUF provider — full vector, NO dimension folding)
|
|
51
42
|
// ---------------------------------------------------------------------------
|
|
52
43
|
/**
|
|
53
44
|
* L2-normalise a raw embedding vector and return as Float32Array.
|
|
54
45
|
*
|
|
55
|
-
* There is NO modulo fold or projection here: the full
|
|
56
|
-
* preserved
|
|
57
|
-
*
|
|
46
|
+
* There is NO modulo fold or projection here: the full provider vector is
|
|
47
|
+
* preserved. A malformed model response is a hard error. Replacing NaN or
|
|
48
|
+
* Infinity with zero would make a corrupted index look valid and, worse,
|
|
49
|
+
* produce vectors that cannot be reproduced on a later sync.
|
|
58
50
|
*/
|
|
59
51
|
function normalizeVector(values) {
|
|
60
52
|
const vec = new Float32Array(values.length);
|
|
61
53
|
let mag = 0;
|
|
62
54
|
for (let i = 0; i < values.length; i++) {
|
|
63
|
-
const v = values[i]
|
|
64
|
-
|
|
55
|
+
const v = values[i];
|
|
56
|
+
if (typeof v !== "number" || !Number.isFinite(v)) {
|
|
57
|
+
throw new Error(`Embedding vector contains a non-finite value at index ${i}.`);
|
|
58
|
+
}
|
|
59
|
+
vec[i] = v;
|
|
65
60
|
mag += vec[i] * vec[i];
|
|
66
61
|
}
|
|
62
|
+
if (!Number.isFinite(mag)) {
|
|
63
|
+
throw new Error("Embedding vector norm is non-finite.");
|
|
64
|
+
}
|
|
67
65
|
if (mag === 0)
|
|
68
66
|
return vec;
|
|
69
67
|
const norm = Math.sqrt(mag);
|
|
@@ -71,9 +69,81 @@ function normalizeVector(values) {
|
|
|
71
69
|
vec[i] = vec[i] / norm;
|
|
72
70
|
return vec;
|
|
73
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Parse the descriptor's compact prefix declaration. Setup descriptors use
|
|
74
|
+
* either `none`, a JSON object (`{"query":"...","passage":"..."}`), or a
|
|
75
|
+
* delimited pair such as `query=search_query:,passage=search_document:`.
|
|
76
|
+
* Keeping parsing here makes the actual embedding calls deterministic and
|
|
77
|
+
* prevents silently ignoring a non-`none` declaration.
|
|
78
|
+
*/
|
|
79
|
+
function parsePrefixScheme(value) {
|
|
80
|
+
const scheme = typeof value === "string" ? value.trim() : "none";
|
|
81
|
+
if (scheme === "" || scheme.toLowerCase() === "none" || scheme.toLowerCase() === "symmetric") {
|
|
82
|
+
return { query: "", passage: "" };
|
|
83
|
+
}
|
|
84
|
+
if (scheme.startsWith("{")) {
|
|
85
|
+
let parsed;
|
|
86
|
+
try {
|
|
87
|
+
parsed = JSON.parse(scheme);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
throw new Error(`Invalid embedding prefixScheme JSON: ${scheme}`);
|
|
91
|
+
}
|
|
92
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
93
|
+
throw new Error("Embedding prefixScheme JSON must be an object.");
|
|
94
|
+
}
|
|
95
|
+
const record = parsed;
|
|
96
|
+
const query = record["query"] ?? record["queryPrefix"];
|
|
97
|
+
const passage = record["passage"] ?? record["document"] ?? record["passagePrefix"] ?? record["documentPrefix"];
|
|
98
|
+
if ((query !== undefined && typeof query !== "string") ||
|
|
99
|
+
(passage !== undefined && typeof passage !== "string") ||
|
|
100
|
+
(query === undefined && passage === undefined)) {
|
|
101
|
+
throw new Error("Embedding prefixScheme JSON requires a string query or passage value.");
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
query: typeof query === "string" ? query : "",
|
|
105
|
+
passage: typeof passage === "string" ? passage : "",
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const fields = {};
|
|
109
|
+
const keyPattern = /(?:^|[;,|])\s*(query|queryPrefix|passage|passagePrefix|document|documentPrefix)\s*[:=]\s*/giu;
|
|
110
|
+
const matches = [...scheme.matchAll(keyPattern)];
|
|
111
|
+
for (let i = 0; i < matches.length; i++) {
|
|
112
|
+
const match = matches[i];
|
|
113
|
+
const key = match[1].toLowerCase().startsWith("document")
|
|
114
|
+
? "passage"
|
|
115
|
+
: match[1].toLowerCase().startsWith("passage")
|
|
116
|
+
? "passage"
|
|
117
|
+
: "query";
|
|
118
|
+
const start = (match.index ?? 0) + match[0].length;
|
|
119
|
+
const end = i + 1 < matches.length ? (matches[i + 1].index ?? scheme.length) : scheme.length;
|
|
120
|
+
fields[key] = scheme.slice(start, end).trim();
|
|
121
|
+
}
|
|
122
|
+
if (fields.query !== undefined || fields.passage !== undefined) {
|
|
123
|
+
return { query: fields.query ?? "", passage: fields.passage ?? "" };
|
|
124
|
+
}
|
|
125
|
+
throw new Error(`Unsupported embedding prefixScheme "${scheme}". Use "none", JSON, or query/passage declarations.`);
|
|
126
|
+
}
|
|
127
|
+
function positiveInteger(value, fallback, label) {
|
|
128
|
+
const resolved = value ?? fallback;
|
|
129
|
+
if (!Number.isInteger(resolved) || resolved <= 0) {
|
|
130
|
+
throw new Error(`Embedding ${label} must be a positive integer.`);
|
|
131
|
+
}
|
|
132
|
+
return resolved;
|
|
133
|
+
}
|
|
134
|
+
function runtimeOptions(value, contextLength) {
|
|
135
|
+
const dimensionsInput = typeof value === "number" ? value : value?.dimensions;
|
|
136
|
+
const contextInput = typeof value === "number"
|
|
137
|
+
? contextLength
|
|
138
|
+
: value?.context ?? value?.contextLength ?? value?.contextTokens ?? contextLength;
|
|
139
|
+
return {
|
|
140
|
+
dimensions: positiveInteger(dimensionsInput, GGUF_EMBEDDING_DIMENSIONS, "dimensions"),
|
|
141
|
+
contextLength: positiveInteger(contextInput, GGUF_EMBEDDING_CONTEXT_LENGTH, "context length"),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
74
144
|
/**
|
|
75
145
|
* Create a production EmbeddingProvider backed by a local GGUF model via
|
|
76
|
-
* node-llama-cpp. Target model: EmbeddingGemma-300M (
|
|
146
|
+
* node-llama-cpp. Target model: EmbeddingGemma-300M (descriptor width).
|
|
77
147
|
*
|
|
78
148
|
* Design (ported idea-only from qmd, MIT — ACKNOWLEDGMENTS.md M1):
|
|
79
149
|
* - Lazy-load: model/contexts are not initialised until the first embed() call.
|
|
@@ -84,9 +154,13 @@ function normalizeVector(values) {
|
|
|
84
154
|
* Contexts are selected round-robin; embed calls do not queue.
|
|
85
155
|
*
|
|
86
156
|
* @param modelPath - Absolute path to the GGUF model file.
|
|
87
|
-
* @param
|
|
157
|
+
* @param dimensionsOrOptions - Expected width or descriptor runtime options.
|
|
158
|
+
* @param contextLength - Legacy positional context-length override.
|
|
88
159
|
*/
|
|
89
|
-
export function createGGUFEmbeddingProvider(modelPath,
|
|
160
|
+
export function createGGUFEmbeddingProvider(modelPath, dimensionsOrOptions = GGUF_EMBEDDING_DIMENSIONS, contextLength) {
|
|
161
|
+
const runtime = runtimeOptions(dimensionsOrOptions, contextLength);
|
|
162
|
+
const prefixes = parsePrefixScheme(typeof dimensionsOrOptions === "object" ? dimensionsOrOptions.prefixScheme : undefined);
|
|
163
|
+
const maxInputTokens = Math.max(1, runtime.contextLength - EMBED_INPUT_TOKEN_MARGIN);
|
|
90
164
|
// Hardware-adaptive pool size (P-01 pattern, qmd MIT)
|
|
91
165
|
const poolSize = Math.min(4, Math.max(1, cpus().length - 1));
|
|
92
166
|
let pool = null;
|
|
@@ -118,8 +192,8 @@ export function createGGUFEmbeddingProvider(modelPath, dimensions = GGUF_EMBEDDI
|
|
|
118
192
|
const llama = await getLlama();
|
|
119
193
|
const model = await llama.loadModel({ modelPath });
|
|
120
194
|
const contexts = await Promise.all(Array.from({ length: poolSize }, () => model.createEmbeddingContext({
|
|
121
|
-
contextSize:
|
|
122
|
-
batchSize:
|
|
195
|
+
contextSize: runtime.contextLength,
|
|
196
|
+
batchSize: runtime.contextLength,
|
|
123
197
|
})));
|
|
124
198
|
pool = { model, contexts, nextIdx: 0 };
|
|
125
199
|
return pool;
|
|
@@ -128,49 +202,77 @@ export function createGGUFEmbeddingProvider(modelPath, dimensions = GGUF_EMBEDDI
|
|
|
128
202
|
});
|
|
129
203
|
return loadPromise;
|
|
130
204
|
}
|
|
131
|
-
|
|
205
|
+
const provider = {
|
|
132
206
|
model: `node-llama-cpp:${modelPath}`,
|
|
133
|
-
dimensions,
|
|
207
|
+
dimensions: runtime.dimensions,
|
|
208
|
+
// Expose the descriptor-derived context to identity/sync without widening
|
|
209
|
+
// the shared EmbeddingProvider contract.
|
|
210
|
+
context: runtime.contextLength,
|
|
211
|
+
contextLength: runtime.contextLength,
|
|
212
|
+
...(typeof dimensionsOrOptions === "object" && dimensionsOrOptions.mrlDim !== undefined
|
|
213
|
+
? { mrlDim: dimensionsOrOptions.mrlDim }
|
|
214
|
+
: {}),
|
|
215
|
+
...(typeof dimensionsOrOptions === "object" && dimensionsOrOptions.normalization !== undefined
|
|
216
|
+
? { normalization: dimensionsOrOptions.normalization }
|
|
217
|
+
: {}),
|
|
218
|
+
...(typeof dimensionsOrOptions === "object" && dimensionsOrOptions.prefixScheme !== undefined
|
|
219
|
+
? { prefixScheme: dimensionsOrOptions.prefixScheme }
|
|
220
|
+
: {}),
|
|
134
221
|
async embed(text) {
|
|
135
|
-
|
|
136
|
-
const p = await ensurePool();
|
|
137
|
-
// Token-exact truncation: never feed more than the context can hold, so a
|
|
138
|
-
// single oversized chunk can never throw "Input is longer than the context
|
|
139
|
-
// size". Bounds INPUT LENGTH only via the model's own tokenizer — NOT a
|
|
140
|
-
// dimension fold (ADR-007); the output stays full 768d.
|
|
141
|
-
let input = text;
|
|
142
|
-
const tokens = p.model.tokenize(text);
|
|
143
|
-
if (tokens.length > EMBED_MAX_INPUT_TOKENS) {
|
|
144
|
-
input = p.model.detokenize(tokens.slice(0, EMBED_MAX_INPUT_TOKENS));
|
|
145
|
-
}
|
|
146
|
-
// Round-robin context selection across the pool
|
|
147
|
-
const idx = p.nextIdx % p.contexts.length;
|
|
148
|
-
p.nextIdx = idx + 1;
|
|
149
|
-
const ctx = p.contexts[idx];
|
|
150
|
-
const result = await ctx.getEmbeddingFor(input);
|
|
151
|
-
// No fold — return full 768d, L2-normalised
|
|
152
|
-
return normalizeVector(result.vector);
|
|
222
|
+
return embedPassage(text);
|
|
153
223
|
},
|
|
154
|
-
async
|
|
155
|
-
|
|
156
|
-
clearTimeout(idleTimer);
|
|
157
|
-
idleTimer = null;
|
|
158
|
-
}
|
|
159
|
-
// Wait for any in-flight load to complete before disposing
|
|
160
|
-
if (loadPromise !== null) {
|
|
161
|
-
try {
|
|
162
|
-
await loadPromise;
|
|
163
|
-
}
|
|
164
|
-
catch { /* load failed, nothing to dispose */ }
|
|
165
|
-
}
|
|
166
|
-
if (pool !== null) {
|
|
167
|
-
const p = pool;
|
|
168
|
-
pool = null;
|
|
169
|
-
await Promise.all(p.contexts.map((ctx) => ctx.dispose().catch(() => undefined)));
|
|
170
|
-
await p.model.dispose().catch(() => undefined);
|
|
171
|
-
}
|
|
224
|
+
async embedQuery(text) {
|
|
225
|
+
return embedText(`${prefixes.query}${text}`);
|
|
172
226
|
},
|
|
227
|
+
dispose: disposeProvider,
|
|
173
228
|
};
|
|
229
|
+
async function embedText(text) {
|
|
230
|
+
resetIdleTimer();
|
|
231
|
+
const p = await ensurePool();
|
|
232
|
+
// Token-exact truncation: never feed more than the context can hold, so a
|
|
233
|
+
// single oversized chunk can never throw "Input is longer than the context
|
|
234
|
+
// size". Bounds INPUT LENGTH only via the model's own tokenizer — NOT a
|
|
235
|
+
// dimension fold (ADR-007); the output stays at the provider width.
|
|
236
|
+
let input = text;
|
|
237
|
+
const tokens = p.model.tokenize(text);
|
|
238
|
+
if (tokens.length > maxInputTokens) {
|
|
239
|
+
input = p.model.detokenize(tokens.slice(0, maxInputTokens));
|
|
240
|
+
}
|
|
241
|
+
// Round-robin context selection across the pool
|
|
242
|
+
const idx = p.nextIdx % p.contexts.length;
|
|
243
|
+
p.nextIdx = idx + 1;
|
|
244
|
+
const ctx = p.contexts[idx];
|
|
245
|
+
const result = await ctx.getEmbeddingFor(input);
|
|
246
|
+
// No fold — return the full provider vector, L2-normalised
|
|
247
|
+
const vector = normalizeVector(result.vector);
|
|
248
|
+
if (vector.length !== runtime.dimensions) {
|
|
249
|
+
throw new Error(`GGUF embedding returned ${vector.length} dimensions; expected ${runtime.dimensions}.`);
|
|
250
|
+
}
|
|
251
|
+
return vector;
|
|
252
|
+
}
|
|
253
|
+
async function embedPassage(text) {
|
|
254
|
+
return embedText(`${prefixes.passage}${text}`);
|
|
255
|
+
}
|
|
256
|
+
async function disposeProvider() {
|
|
257
|
+
if (idleTimer !== null) {
|
|
258
|
+
clearTimeout(idleTimer);
|
|
259
|
+
idleTimer = null;
|
|
260
|
+
}
|
|
261
|
+
// Wait for any in-flight load to complete before disposing
|
|
262
|
+
if (loadPromise !== null) {
|
|
263
|
+
try {
|
|
264
|
+
await loadPromise;
|
|
265
|
+
}
|
|
266
|
+
catch { /* load failed, nothing to dispose */ }
|
|
267
|
+
}
|
|
268
|
+
if (pool !== null) {
|
|
269
|
+
const p = pool;
|
|
270
|
+
pool = null;
|
|
271
|
+
await Promise.all(p.contexts.map((ctx) => ctx.dispose().catch(() => undefined)));
|
|
272
|
+
await p.model.dispose().catch(() => undefined);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return provider;
|
|
174
276
|
}
|
|
175
277
|
// ---------------------------------------------------------------------------
|
|
176
278
|
// Upstage Solar provider (4096d, REST API, opt-in commercial, ADR-002)
|
|
@@ -184,50 +286,70 @@ const UPSTAGE_API_URL = "https://api.upstage.ai/v1/embeddings";
|
|
|
184
286
|
* when UPSTAGE_API_KEY is set in the environment; never use by default.
|
|
185
287
|
* The API key MUST come from env — never hardcoded (R4 secrets-via-env).
|
|
186
288
|
*/
|
|
187
|
-
export function createUpstageProvider(apiKey, model) {
|
|
188
|
-
|
|
289
|
+
export function createUpstageProvider(apiKey, model, dimensions = UPSTAGE_DIMENSIONS, metadata = {}) {
|
|
290
|
+
const resolvedDimensions = positiveInteger(dimensions, UPSTAGE_DIMENSIONS, "dimensions");
|
|
291
|
+
const contextLength = metadata.context ?? metadata.contextLength ?? metadata.contextTokens;
|
|
292
|
+
const prefixes = parsePrefixScheme(metadata.prefixScheme);
|
|
293
|
+
const provider = {
|
|
189
294
|
model: `upstage:${model}`,
|
|
190
|
-
dimensions:
|
|
295
|
+
dimensions: resolvedDimensions,
|
|
296
|
+
...(contextLength === undefined ? {} : { context: contextLength }),
|
|
297
|
+
...(contextLength === undefined ? {} : { contextLength }),
|
|
298
|
+
...(metadata.mrlDim === undefined ? {} : { mrlDim: metadata.mrlDim }),
|
|
299
|
+
...(metadata.normalization === undefined ? {} : { normalization: metadata.normalization }),
|
|
300
|
+
...(metadata.prefixScheme === undefined ? {} : { prefixScheme: metadata.prefixScheme }),
|
|
191
301
|
async embed(text) {
|
|
192
|
-
|
|
193
|
-
// Upstage rejects empty input with HTTP 400. Empty/whitespace chunks
|
|
194
|
-
// carry no semantic signal — return a zero vector so sync proceeds.
|
|
195
|
-
if (input.length === 0)
|
|
196
|
-
return new Float32Array(UPSTAGE_DIMENSIONS);
|
|
197
|
-
// Solar caps input at 4000 tokens. Rather than fail the whole sync on a
|
|
198
|
-
// single oversized chunk, shrink the input and retry until it fits.
|
|
199
|
-
for (let attempt = 0; attempt < 6; attempt += 1) {
|
|
200
|
-
const response = await fetch(UPSTAGE_API_URL, {
|
|
201
|
-
method: "POST",
|
|
202
|
-
headers: {
|
|
203
|
-
"Content-Type": "application/json",
|
|
204
|
-
Authorization: `Bearer ${apiKey}`,
|
|
205
|
-
},
|
|
206
|
-
body: JSON.stringify({ input, model }),
|
|
207
|
-
});
|
|
208
|
-
if (response.ok) {
|
|
209
|
-
const json = (await response.json());
|
|
210
|
-
const embedding = json.data[0]?.embedding;
|
|
211
|
-
if (!embedding) {
|
|
212
|
-
throw new Error("Upstage Solar API returned no embedding");
|
|
213
|
-
}
|
|
214
|
-
return normalizeVector(embedding);
|
|
215
|
-
}
|
|
216
|
-
const body = await response.text().catch(() => "");
|
|
217
|
-
if (response.status === 400 &&
|
|
218
|
-
/maximum context length/i.test(body) &&
|
|
219
|
-
input.length > 200) {
|
|
220
|
-
input = input.slice(0, Math.floor(input.length * 0.6));
|
|
221
|
-
continue;
|
|
222
|
-
}
|
|
223
|
-
throw new Error(`Upstage Solar API error: ${response.status} ${response.statusText} ${body.slice(0, 160)}`);
|
|
224
|
-
}
|
|
225
|
-
throw new Error("Upstage Solar API error: input could not be reduced under the 4000-token limit");
|
|
302
|
+
return embedPassage(text);
|
|
226
303
|
},
|
|
227
|
-
|
|
228
|
-
return
|
|
304
|
+
async embedQuery(text) {
|
|
305
|
+
return embedText(`${prefixes.query}${text}`);
|
|
229
306
|
},
|
|
307
|
+
dispose: () => Promise.resolve(),
|
|
230
308
|
};
|
|
309
|
+
async function embedPassage(text) {
|
|
310
|
+
return embedText(`${prefixes.passage}${text}`);
|
|
311
|
+
}
|
|
312
|
+
async function embedText(text) {
|
|
313
|
+
let input = (text ?? "").trim();
|
|
314
|
+
// Upstage rejects empty input with HTTP 400. Empty/whitespace chunks
|
|
315
|
+
// carry no semantic signal — return a zero vector so sync proceeds.
|
|
316
|
+
if (input.length === 0)
|
|
317
|
+
return new Float32Array(resolvedDimensions);
|
|
318
|
+
// Solar caps input at 4000 tokens. Rather than fail the whole sync on a
|
|
319
|
+
// single oversized chunk, shrink the input and retry until it fits.
|
|
320
|
+
for (let attempt = 0; attempt < 6; attempt += 1) {
|
|
321
|
+
const response = await fetch(UPSTAGE_API_URL, {
|
|
322
|
+
method: "POST",
|
|
323
|
+
headers: {
|
|
324
|
+
"Content-Type": "application/json",
|
|
325
|
+
Authorization: `Bearer ${apiKey}`,
|
|
326
|
+
},
|
|
327
|
+
body: JSON.stringify({ input, model }),
|
|
328
|
+
});
|
|
329
|
+
if (response.ok) {
|
|
330
|
+
const json = (await response.json());
|
|
331
|
+
const embedding = json.data[0]?.embedding;
|
|
332
|
+
if (!embedding) {
|
|
333
|
+
throw new Error("Upstage Solar API returned no embedding");
|
|
334
|
+
}
|
|
335
|
+
const vector = normalizeVector(embedding);
|
|
336
|
+
if (vector.length !== resolvedDimensions) {
|
|
337
|
+
throw new Error(`Upstage Solar API returned ${vector.length} dimensions; expected ${resolvedDimensions}.`);
|
|
338
|
+
}
|
|
339
|
+
return vector;
|
|
340
|
+
}
|
|
341
|
+
const body = await response.text().catch(() => "");
|
|
342
|
+
if (response.status === 400 &&
|
|
343
|
+
/maximum context length/i.test(body) &&
|
|
344
|
+
input.length > 200) {
|
|
345
|
+
input = input.slice(0, Math.floor(input.length * 0.6));
|
|
346
|
+
continue;
|
|
347
|
+
}
|
|
348
|
+
throw new Error(`Upstage Solar API error: ${response.status} ${response.statusText} ${body.slice(0, 160)}`);
|
|
349
|
+
}
|
|
350
|
+
throw new Error("Upstage Solar API error: input could not be reduced under the 4000-token limit");
|
|
351
|
+
}
|
|
352
|
+
return provider;
|
|
231
353
|
}
|
|
232
354
|
/**
|
|
233
355
|
* Resolve a REAL embedding provider or throw.
|
|
@@ -251,14 +373,29 @@ export function requireRealEmbeddingProvider(opts = {}) {
|
|
|
251
373
|
"Set OMS_EMBEDDING_MODEL and rerun sync.");
|
|
252
374
|
}
|
|
253
375
|
if (providerRaw === "gguf") {
|
|
254
|
-
return createGGUFEmbeddingProvider(model
|
|
376
|
+
return createGGUFEmbeddingProvider(model, {
|
|
377
|
+
dimensions: opts.dimensions,
|
|
378
|
+
context: opts.context,
|
|
379
|
+
contextLength: opts.contextLength,
|
|
380
|
+
contextTokens: opts.contextTokens,
|
|
381
|
+
mrlDim: opts.mrlDim,
|
|
382
|
+
normalization: opts.normalization,
|
|
383
|
+
prefixScheme: opts.prefixScheme,
|
|
384
|
+
});
|
|
255
385
|
}
|
|
256
386
|
if (providerRaw === "upstage") {
|
|
257
387
|
const upstageKey = process.env["UPSTAGE_API_KEY"];
|
|
258
388
|
if (!upstageKey) {
|
|
259
389
|
throw new Error("OMS embedding provider is configured as upstage but UPSTAGE_API_KEY is missing.");
|
|
260
390
|
}
|
|
261
|
-
return createUpstageProvider(upstageKey, model
|
|
391
|
+
return createUpstageProvider(upstageKey, model, opts.dimensions, {
|
|
392
|
+
context: opts.context,
|
|
393
|
+
contextLength: opts.contextLength,
|
|
394
|
+
contextTokens: opts.contextTokens,
|
|
395
|
+
mrlDim: opts.mrlDim,
|
|
396
|
+
normalization: opts.normalization,
|
|
397
|
+
prefixScheme: opts.prefixScheme,
|
|
398
|
+
});
|
|
262
399
|
}
|
|
263
400
|
throw new Error(`OMS embedding provider "${providerRaw}" is unsupported. ` +
|
|
264
401
|
"Supported providers: gguf, upstage.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/kernel/engine/embed/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C,gFAAgF;AAChF,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAapC,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAE9E;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,MAAyB;IAChD,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;IAC3B,CAAC;IACD,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAYD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B,CACzC,SAAiB,EACjB,UAAU,GAAG,yBAAyB;IAEtC,sDAAsD;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7D,IAAI,IAAI,GAAoB,IAAI,CAAC;IACjC,IAAI,WAAW,GAA6B,IAAI,CAAC;IACjD,IAAI,SAAS,GAAyC,IAAI,CAAC;IAE3D,qEAAqE;IACrE,SAAS,cAAc;QACrB,IAAI,SAAS,KAAK,IAAI;YAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAChD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO;YAC1B,MAAM,CAAC,GAAG,IAAI,CAAC;YACf,IAAI,GAAG,IAAI,CAAC;YACZ,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC5E,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1D,CAAC,EAAE,cAAc,CAAC,CAAC;IACrB,CAAC;IAED,6DAA6D;IAC7D,KAAK,UAAU,UAAU;QACvB,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,yDAAyD;QACzD,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;QAE7C,WAAW,GAAG,CAAC,KAAK,IAAuB,EAAE;YAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CACpC,KAAK,CAAC,sBAAsB,CAAC;gBAC3B,WAAW,EAAE,oBAAoB;gBACjC,SAAS,EAAE,oBAAoB;aAChC,CAAC,CACH,CACF,CAAC;YACF,IAAI,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,kBAAkB,SAAS,EAAE;QACpC,UAAU;QAEV,KAAK,CAAC,KAAK,CAAC,IAAY;YACtB,cAAc,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;YAC7B,0EAA0E;YAC1E,2EAA2E;YAC3E,wEAAwE;YACxE,wDAAwD;YACxD,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;gBAC3C,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,gDAAgD;YAChD,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1C,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAChD,4CAA4C;YAC5C,OAAO,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,OAAO;YACX,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,2DAA2D;YAC3D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC;oBAAC,MAAM,WAAW,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,GAAG,IAAI,CAAC;gBACf,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjF,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,eAAe,GAAG,sCAAsC,CAAC;AAO/D;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,KAAa;IACjE,OAAO;QACL,KAAK,EAAE,WAAW,KAAK,EAAE;QACzB,UAAU,EAAE,kBAAkB;QAE9B,KAAK,CAAC,KAAK,CAAC,IAAY;YACtB,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAChC,qEAAqE;YACrE,oEAAoE;YACpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAEpE,wEAAwE;YACxE,oEAAoE;YACpE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,eAAe,EAAE;oBAC5C,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;qBAClC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;iBACvC,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;oBACjE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;oBAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBAC7D,CAAC;oBACD,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,IACE,QAAQ,CAAC,MAAM,KAAK,GAAG;oBACvB,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;oBACpC,KAAK,CAAC,MAAM,GAAG,GAAG,EAClB,CAAC;oBACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;oBACvD,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC3F,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC;AAmBD;;;;;;;;;GASG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAuC,EAAE;IAEzC,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAEnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,uEAAuE;YACrE,kEAAkE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,uDAAuD,WAAW,KAAK;YACrE,yCAAyC,CAC5C,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QAC3B,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;QACD,OAAO,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,KAAK,CACb,2BAA2B,WAAW,oBAAoB;QACxD,qCAAqC,CACxC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/kernel/engine/embed/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,10 @@ export interface EmbeddingIdentity {
|
|
|
17
17
|
readonly provider: string;
|
|
18
18
|
readonly model: string;
|
|
19
19
|
readonly dimensions: number;
|
|
20
|
+
readonly contextLength: number;
|
|
21
|
+
readonly mrlDim: number;
|
|
22
|
+
readonly normalization: string;
|
|
23
|
+
readonly prefixScheme: string;
|
|
20
24
|
readonly fingerprint: string;
|
|
21
25
|
}
|
|
22
26
|
/**
|
|
@@ -43,7 +47,7 @@ export interface EngineStore extends VectorStore {
|
|
|
43
47
|
/** Return every distinct `doc_path` currently stored. */
|
|
44
48
|
listDocPaths(): string[];
|
|
45
49
|
}
|
|
46
|
-
export declare const ENGINE_EMBED_META_VERSION = "oms-embed-meta-
|
|
50
|
+
export declare const ENGINE_EMBED_META_VERSION = "oms-embed-meta-v2";
|
|
47
51
|
/**
|
|
48
52
|
* Open (or create) an engine store at `dbPath` in CORE-ONLY mode.
|
|
49
53
|
*
|