@mrc2204/agent-smart-memo 4.0.9 → 4.0.11

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.
Files changed (37) hide show
  1. package/dist/config.js +2 -2
  2. package/dist/config.js.map +1 -1
  3. package/dist/hooks/auto-capture.d.ts.map +1 -1
  4. package/dist/hooks/auto-capture.js +19 -34
  5. package/dist/hooks/auto-capture.js.map +1 -1
  6. package/dist/hooks/auto-recall.d.ts.map +1 -1
  7. package/dist/hooks/auto-recall.js +16 -8
  8. package/dist/hooks/auto-recall.js.map +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +39 -4
  11. package/dist/index.js.map +1 -1
  12. package/dist/services/embedding-capability-registry.d.ts +23 -0
  13. package/dist/services/embedding-capability-registry.d.ts.map +1 -0
  14. package/dist/services/embedding-capability-registry.js +56 -0
  15. package/dist/services/embedding-capability-registry.js.map +1 -0
  16. package/dist/services/embedding.d.ts +30 -11
  17. package/dist/services/embedding.d.ts.map +1 -1
  18. package/dist/services/embedding.js +316 -87
  19. package/dist/services/embedding.js.map +1 -1
  20. package/dist/services/llm-extractor.d.ts.map +1 -1
  21. package/dist/services/llm-extractor.js +7 -3
  22. package/dist/services/llm-extractor.js.map +1 -1
  23. package/dist/services/qdrant.d.ts +6 -4
  24. package/dist/services/qdrant.d.ts.map +1 -1
  25. package/dist/services/qdrant.js +43 -8
  26. package/dist/services/qdrant.js.map +1 -1
  27. package/dist/shared/memory-config.d.ts +30 -74
  28. package/dist/shared/memory-config.d.ts.map +1 -1
  29. package/dist/shared/memory-config.js +129 -134
  30. package/dist/shared/memory-config.js.map +1 -1
  31. package/dist/tools/memory_search.d.ts.map +1 -1
  32. package/dist/tools/memory_search.js +16 -3
  33. package/dist/tools/memory_search.js.map +1 -1
  34. package/dist/tools/memory_store.d.ts.map +1 -1
  35. package/dist/tools/memory_store.js +26 -5
  36. package/dist/tools/memory_store.js.map +1 -1
  37. package/package.json +7 -4
@@ -1,3 +1,4 @@
1
+ import { EmbeddingCapabilityRegistry } from "./embedding-capability-registry.js";
1
2
  class EmbeddingHttpError extends Error {
2
3
  status;
3
4
  bodyPreview;
@@ -8,27 +9,37 @@ class EmbeddingHttpError extends Error {
8
9
  this.bodyPreview = bodyPreview;
9
10
  }
10
11
  }
12
+ const MODEL_DEFAULTS = {
13
+ "text-embedding-3-small": { seedMaxTokens: 8192, safeRatio: 0.82, reserveTokens: 64, vectorDim: 1536 },
14
+ "text-embedding-3-large": { seedMaxTokens: 8192, safeRatio: 0.82, reserveTokens: 64, vectorDim: 3072 },
15
+ "qwen3-embedding:0.6b": { seedMaxTokens: 8192, safeRatio: 0.76, reserveTokens: 80, vectorDim: 1024 },
16
+ "qwen3-embedding:4b": { seedMaxTokens: 8192, safeRatio: 0.72, reserveTokens: 128, vectorDim: 2560 },
17
+ };
11
18
  /**
12
- * Embedding service client
19
+ * Embedding service client with runtime capability calibration + persistence
13
20
  */
14
21
  export class EmbeddingClient {
15
22
  config;
16
23
  logger;
17
- dimensions;
18
- // conservative model context windows
19
- modelMaxTokens = {
20
- "text-embedding-3-small": 8192,
21
- "text-embedding-3-large": 8192,
22
- "qwen3-embedding:0.6b": 8192,
23
- };
24
+ registry;
25
+ capability;
26
+ activeEndpoint = "";
27
+ provider = "auto";
28
+ modelKey = "";
29
+ ready;
24
30
  constructor(config, logger) {
31
+ const model = config.model || "qwen3-embedding:0.6b";
32
+ const defaults = MODEL_DEFAULTS[model] || { seedMaxTokens: 4096, safeRatio: 0.72, reserveTokens: 96, vectorDim: config.dimensions || 1024 };
25
33
  this.config = {
26
34
  embeddingApiUrl: config.embeddingApiUrl || "http://localhost:11434",
27
35
  timeout: config.timeout || 30000,
28
- model: config.model || "qwen3-embedding:0.6b",
36
+ model,
37
+ dimensions: config.dimensions || defaults.vectorDim,
38
+ stateDir: config.stateDir || process.env.OPENCLAW_STATE_DIR || `${process.env.HOME}/.openclaw`,
29
39
  };
30
40
  this.logger = logger || console;
31
- this.dimensions = config.dimensions || 1024;
41
+ this.registry = new EmbeddingCapabilityRegistry(this.config.stateDir, this.logger);
42
+ this.ready = this.initializeCapabilities();
32
43
  }
33
44
  resolveEmbeddingEndpoints(rawBaseUrl) {
34
45
  const base = (rawBaseUrl || "").trim();
@@ -38,18 +49,34 @@ export class EmbeddingClient {
38
49
  }
39
50
  return [`${normalizedBase}/v1/embeddings`, `${normalizedBase}/api/embeddings`];
40
51
  }
41
- isOpenAIEmbeddingEndpoint(url) {
42
- return /\/v1\/embeddings\/?$/i.test(url);
52
+ detectProvider(endpoint) {
53
+ if (/\/v1\/embeddings\/?$/i.test(endpoint))
54
+ return "openai";
55
+ if (/\/api\/embeddings\/?$/i.test(endpoint))
56
+ return "ollama";
57
+ return "auto";
43
58
  }
44
- getModelMaxTokens() {
45
- return this.modelMaxTokens[this.config.model] || 4096;
59
+ getDefaults() {
60
+ return MODEL_DEFAULTS[this.config.model] || {
61
+ seedMaxTokens: 4096,
62
+ safeRatio: 0.72,
63
+ reserveTokens: 96,
64
+ vectorDim: this.config.dimensions,
65
+ };
66
+ }
67
+ buildModelKey(provider, endpoint) {
68
+ return `${provider}::${endpoint}::${this.config.model}`;
46
69
  }
47
- getSafeChunkTokens(maxTokens) {
48
- return Math.max(256, Math.floor(maxTokens * 0.95));
70
+ tokenBudget() {
71
+ const discovered = Math.max(256, this.capability.discoveredMaxTokens || this.capability.seedMaxTokens);
72
+ const rawBudget = Math.floor(discovered * this.capability.safeRatio) - this.capability.reserveTokens;
73
+ return Math.max(128, rawBudget);
49
74
  }
50
- // Approximation: ~4 chars/token for multilingual text (safe-enough fallback)
75
+ // conservative estimator: whitespace tokens + char heuristic safeguard
51
76
  estimateTokens(text) {
52
- return Math.max(1, Math.ceil(text.length / 4));
77
+ const whitespaceTokens = text.trim() ? text.trim().split(/\s+/).length : 0;
78
+ const charTokens = Math.ceil(text.length / 4);
79
+ return Math.max(1, Math.max(whitespaceTokens, charTokens));
53
80
  }
54
81
  normalizeInput(input) {
55
82
  if (Array.isArray(input)) {
@@ -63,30 +90,58 @@ export class EmbeddingClient {
63
90
  }
64
91
  return [];
65
92
  }
66
- chunkTextBySafeTokens(text, safeChunkTokens) {
67
- const maxChars = Math.max(1, safeChunkTokens * 4);
68
- if (text.length <= maxChars)
93
+ splitIntoSentences(text) {
94
+ return text
95
+ .split(/(?<=[\n\.!?;])\s+/)
96
+ .map((s) => s.trim())
97
+ .filter(Boolean);
98
+ }
99
+ chunkTextByTokenBudget(text, tokenBudget) {
100
+ if (this.estimateTokens(text) <= tokenBudget)
69
101
  return [text];
102
+ const sentences = this.splitIntoSentences(text);
103
+ if (sentences.length === 0)
104
+ return [text.slice(0, Math.max(64, tokenBudget * 4))];
70
105
  const chunks = [];
71
- let cursor = 0;
72
- while (cursor < text.length) {
73
- const remaining = text.length - cursor;
74
- if (remaining <= maxChars) {
75
- chunks.push(text.slice(cursor).trim());
76
- break;
106
+ let current = "";
107
+ const pushCurrent = () => {
108
+ const trimmed = current.trim();
109
+ if (trimmed.length > 0)
110
+ chunks.push(trimmed);
111
+ current = "";
112
+ };
113
+ for (const sentence of sentences) {
114
+ const next = current ? `${current} ${sentence}` : sentence;
115
+ if (this.estimateTokens(next) <= tokenBudget) {
116
+ current = next;
117
+ continue;
118
+ }
119
+ if (current)
120
+ pushCurrent();
121
+ if (this.estimateTokens(sentence) <= tokenBudget) {
122
+ current = sentence;
123
+ continue;
77
124
  }
78
- let end = cursor + maxChars;
79
- const window = text.slice(cursor, end);
80
- const lastBreak = Math.max(window.lastIndexOf("\n"), window.lastIndexOf(" "));
81
- if (lastBreak > Math.floor(maxChars * 0.5)) {
82
- end = cursor + lastBreak;
125
+ // ultra-long sentence fallback: split by words with hard guard
126
+ const words = sentence.split(/\s+/).filter(Boolean);
127
+ let wordChunk = "";
128
+ for (const word of words) {
129
+ const candidate = wordChunk ? `${wordChunk} ${word}` : word;
130
+ if (this.estimateTokens(candidate) <= tokenBudget) {
131
+ wordChunk = candidate;
132
+ }
133
+ else {
134
+ if (wordChunk)
135
+ chunks.push(wordChunk);
136
+ wordChunk = word;
137
+ }
83
138
  }
84
- const chunk = text.slice(cursor, end).trim();
85
- if (chunk.length > 0)
86
- chunks.push(chunk);
87
- cursor = Math.max(end, cursor + 1);
139
+ if (wordChunk)
140
+ chunks.push(wordChunk);
88
141
  }
89
- return chunks.filter((c) => c.length > 0);
142
+ if (current)
143
+ pushCurrent();
144
+ return chunks.filter((c) => this.estimateTokens(c) <= tokenBudget + 2);
90
145
  }
91
146
  l2Normalize(vector) {
92
147
  const norm = Math.sqrt(vector.reduce((sum, v) => sum + v * v, 0));
@@ -112,6 +167,176 @@ export class EmbeddingClient {
112
167
  }
113
168
  return this.l2Normalize(out);
114
169
  }
170
+ isContextLengthError(error) {
171
+ if (!(error instanceof EmbeddingHttpError))
172
+ return false;
173
+ if (![400, 413, 422, 500].includes(error.status))
174
+ return false;
175
+ return /context length|maximum context|too many tokens|exceed|token limit|8192|input length/i.test(error.bodyPreview || "");
176
+ }
177
+ extractTokenLimitFromError(errorText) {
178
+ const normalized = errorText || "";
179
+ const patterns = [
180
+ /(?:context length|maximum context|token(?:s)? limit)[^\d]*(\d{3,6})/i,
181
+ /exceeds[^\d]*(\d{3,6})/i,
182
+ /max(?:imum)?[^\d]*(\d{3,6})\s*tokens?/i,
183
+ ];
184
+ for (const p of patterns) {
185
+ const m = normalized.match(p);
186
+ if (m?.[1]) {
187
+ const parsed = Number(m[1]);
188
+ if (Number.isFinite(parsed) && parsed >= 128)
189
+ return parsed;
190
+ }
191
+ }
192
+ return null;
193
+ }
194
+ async updateCapabilityFromContextError(error) {
195
+ const parsed = this.extractTokenLimitFromError(error.bodyPreview || "");
196
+ const current = this.capability.discoveredMaxTokens || this.capability.seedMaxTokens;
197
+ const fallback = Math.floor(current * 0.85);
198
+ const discovered = Math.max(128, parsed ? Math.min(current, parsed) : fallback);
199
+ if (discovered < current) {
200
+ this.capability = {
201
+ ...this.capability,
202
+ discoveredMaxTokens: discovered,
203
+ updatedAt: new Date().toISOString(),
204
+ source: "error-feedback",
205
+ };
206
+ await this.registry.set(this.modelKey, this.capability);
207
+ this.logger.warn(`[Embedding] capability refined from error-feedback: ${current} -> ${discovered} (modelKey=${this.modelKey})`);
208
+ }
209
+ }
210
+ async initializeCapabilities() {
211
+ const endpoints = this.resolveEmbeddingEndpoints(this.config.embeddingApiUrl);
212
+ const endpoint = endpoints[0];
213
+ const provider = this.detectProvider(endpoint);
214
+ this.activeEndpoint = endpoint;
215
+ this.provider = provider;
216
+ this.modelKey = this.buildModelKey(provider, endpoint);
217
+ const defaults = this.getDefaults();
218
+ const existing = await this.registry.get(this.modelKey);
219
+ this.capability = existing || {
220
+ seedMaxTokens: defaults.seedMaxTokens,
221
+ discoveredMaxTokens: defaults.seedMaxTokens,
222
+ safeRatio: defaults.safeRatio,
223
+ reserveTokens: defaults.reserveTokens,
224
+ vectorDim: defaults.vectorDim,
225
+ updatedAt: new Date().toISOString(),
226
+ source: "docs",
227
+ };
228
+ if (!existing) {
229
+ await this.registry.set(this.modelKey, this.capability);
230
+ }
231
+ // light startup calibration (max 1/day)
232
+ const ageMs = Date.now() - new Date(this.capability.updatedAt).getTime();
233
+ if (!Number.isFinite(ageMs) || ageMs > 24 * 60 * 60 * 1000) {
234
+ await this.calibrateRuntimeCapability();
235
+ }
236
+ }
237
+ async readEndpointMetadata() {
238
+ const endpoint = this.activeEndpoint;
239
+ const provider = this.detectProvider(endpoint);
240
+ try {
241
+ if (provider === "ollama") {
242
+ const base = endpoint.replace(/\/api\/embeddings\/?$/i, "");
243
+ const res = await fetch(`${base}/api/tags`, { signal: AbortSignal.timeout(4000) });
244
+ if (!res.ok)
245
+ return {};
246
+ const json = await res.json();
247
+ const models = Array.isArray(json?.models) ? json.models : [];
248
+ const modelInfo = models.find((m) => m?.model === this.config.model || m?.name === this.config.model);
249
+ const dimFromModel = Number(modelInfo?.details?.embedding_length || modelInfo?.details?.dimensions || 0);
250
+ return {
251
+ vectorDim: dimFromModel > 0 ? dimFromModel : undefined,
252
+ };
253
+ }
254
+ }
255
+ catch {
256
+ // best effort metadata
257
+ }
258
+ return {};
259
+ }
260
+ async probeWithinBudget(tokenTarget) {
261
+ const sample = Array(tokenTarget).fill("t").join(" ");
262
+ try {
263
+ await this.embedChunksFromApi([sample]);
264
+ return true;
265
+ }
266
+ catch (error) {
267
+ if (this.isContextLengthError(error))
268
+ return false;
269
+ throw error;
270
+ }
271
+ }
272
+ async probeContextWindow(seed) {
273
+ const clamp = (n) => Math.max(128, Math.floor(n));
274
+ let low = 256;
275
+ let high = clamp(seed);
276
+ // stepped exploration (safe / low spam)
277
+ const steps = [0.5, 0.75, 1, 1.1].map((x) => clamp(seed * x));
278
+ for (const s of steps) {
279
+ let ok = false;
280
+ try {
281
+ ok = await this.probeWithinBudget(s);
282
+ }
283
+ catch {
284
+ continue;
285
+ }
286
+ if (ok) {
287
+ low = Math.max(low, s);
288
+ high = Math.max(high, s);
289
+ }
290
+ else {
291
+ high = Math.min(high, s);
292
+ break;
293
+ }
294
+ }
295
+ // binary search refinement, max 5 probes
296
+ for (let i = 0; i < 5 && high - low > 96; i++) {
297
+ const mid = clamp((low + high) / 2);
298
+ const ok = await this.probeWithinBudget(mid);
299
+ if (ok)
300
+ low = mid;
301
+ else
302
+ high = mid;
303
+ }
304
+ return clamp(low);
305
+ }
306
+ async calibrateRuntimeCapability(force = false) {
307
+ await this.ready;
308
+ if (!force) {
309
+ const ageMs = Date.now() - new Date(this.capability.updatedAt).getTime();
310
+ if (Number.isFinite(ageMs) && ageMs < 30 * 60 * 1000)
311
+ return;
312
+ }
313
+ const metadata = await this.readEndpointMetadata();
314
+ const seed = Math.max(256, metadata.discoveredMaxTokens || metadata.seedMaxTokens || this.capability.seedMaxTokens);
315
+ let discovered = this.capability.discoveredMaxTokens;
316
+ try {
317
+ discovered = await this.probeContextWindow(seed);
318
+ }
319
+ catch (error) {
320
+ this.logger.warn(`[Embedding] calibration probe skipped: ${error.message}`);
321
+ }
322
+ this.capability = {
323
+ ...this.capability,
324
+ discoveredMaxTokens: Math.max(128, discovered || seed),
325
+ vectorDim: metadata.vectorDim || this.capability.vectorDim,
326
+ updatedAt: new Date().toISOString(),
327
+ source: "probe",
328
+ };
329
+ await this.registry.set(this.modelKey, this.capability);
330
+ this.logger.info(`[Embedding] calibrated capability modelKey=${this.modelKey} maxTokens=${this.capability.discoveredMaxTokens} vectorDim=${this.capability.vectorDim}`);
331
+ }
332
+ async getVectorDimensionHint() {
333
+ await this.ready;
334
+ return this.capability.vectorDim || this.config.dimensions;
335
+ }
336
+ async getModelKey() {
337
+ await this.ready;
338
+ return this.modelKey;
339
+ }
115
340
  /**
116
341
  * Backward-compatible method
117
342
  */
@@ -120,9 +345,10 @@ export class EmbeddingClient {
120
345
  return result.vector;
121
346
  }
122
347
  /**
123
- * New method with chunking + metadata
348
+ * New method with calibration-aware adaptive chunking + metadata
124
349
  */
125
350
  async embedDetailed(text) {
351
+ await this.ready;
126
352
  const normalizedInput = this.normalizeInput(text);
127
353
  if (normalizedInput.length === 0) {
128
354
  this.logger.warn("[Embedding] Skip API call: empty input after trim/filter");
@@ -133,19 +359,27 @@ export class EmbeddingClient {
133
359
  embedding_chunks_count: 0,
134
360
  embedding_chunking_strategy: "array_batch_weighted_avg",
135
361
  embedding_model: this.config.model,
136
- embedding_max_tokens: this.getModelMaxTokens(),
137
- embedding_safe_chunk_tokens: this.getSafeChunkTokens(this.getModelMaxTokens()),
362
+ embedding_model_key: this.modelKey,
363
+ embedding_provider: this.provider,
364
+ embedding_max_tokens: this.capability.discoveredMaxTokens,
365
+ embedding_safe_chunk_tokens: this.tokenBudget(),
366
+ embedding_source: this.capability.source,
367
+ embedding_fallback_hash: true,
138
368
  },
139
369
  };
140
370
  }
141
371
  const mergedText = normalizedInput.join("\n\n");
142
- const maxTokens = this.getModelMaxTokens();
143
- // Retry by shrinking chunk size for 400 context-length failures
144
- const safetyMultipliers = [0.95, 0.85, 0.75, 0.6];
372
+ const baseBudget = this.tokenBudget();
373
+ // retry policy with progressive budget reduction
374
+ const safetyMultipliers = [1, 0.8, 0.65, 0.5, 0.4, 0.3];
145
375
  for (const mul of safetyMultipliers) {
146
- const safeChunkTokens = Math.max(256, Math.floor(maxTokens * mul));
147
- const chunks = this.chunkTextBySafeTokens(mergedText, safeChunkTokens);
376
+ const safeChunkTokens = Math.max(128, Math.floor(baseBudget * mul));
377
+ const chunks = this.chunkTextByTokenBudget(mergedText, safeChunkTokens);
148
378
  const chunkWeights = chunks.map((c) => this.estimateTokens(c));
379
+ // hard guard: never send chunk above discovered budget
380
+ if (chunks.some((chunk) => this.estimateTokens(chunk) > safeChunkTokens + 2)) {
381
+ continue;
382
+ }
149
383
  try {
150
384
  const vectors = await this.embedChunksFromApi(chunks);
151
385
  const vector = vectors.length === 1
@@ -158,21 +392,23 @@ export class EmbeddingClient {
158
392
  embedding_chunks_count: chunks.length,
159
393
  embedding_chunking_strategy: "array_batch_weighted_avg",
160
394
  embedding_model: this.config.model,
161
- embedding_max_tokens: maxTokens,
395
+ embedding_model_key: this.modelKey,
396
+ embedding_provider: this.provider,
397
+ embedding_max_tokens: this.capability.discoveredMaxTokens,
162
398
  embedding_safe_chunk_tokens: safeChunkTokens,
399
+ embedding_source: this.capability.source,
400
+ embedding_fallback_hash: false,
163
401
  },
164
402
  };
165
403
  }
166
404
  catch (error) {
167
- const isContextLength400 = error instanceof EmbeddingHttpError &&
168
- error.status === 400 &&
169
- /context length|maximum context|too many tokens|exceed/i.test(error.bodyPreview || "");
170
- if (isContextLength400) {
171
- this.logger.warn(`[Embedding] 400 context-length detected. Retry with smaller chunk size (safeChunkTokens=${safeChunkTokens})`);
405
+ if (this.isContextLengthError(error)) {
406
+ await this.updateCapabilityFromContextError(error);
407
+ this.logger.warn(`[Embedding] context-length detected. retry with smaller chunk budget=${safeChunkTokens} modelKey=${this.modelKey}`);
172
408
  continue;
173
409
  }
174
410
  // non context-length error -> fallback hash immediately
175
- this.logger.warn(`[Embedding] API failed, fallback to hash embedding: ${error.message}`);
411
+ this.logger.error(`[Embedding][HIGH] API failed; fallback to hash embedding. reason=${error.message} modelKey=${this.modelKey}`);
176
412
  return {
177
413
  vector: this.embedFromHash(mergedText),
178
414
  metadata: {
@@ -180,23 +416,31 @@ export class EmbeddingClient {
180
416
  embedding_chunks_count: chunks.length,
181
417
  embedding_chunking_strategy: "array_batch_weighted_avg",
182
418
  embedding_model: this.config.model,
183
- embedding_max_tokens: maxTokens,
419
+ embedding_model_key: this.modelKey,
420
+ embedding_provider: this.provider,
421
+ embedding_max_tokens: this.capability.discoveredMaxTokens,
184
422
  embedding_safe_chunk_tokens: safeChunkTokens,
423
+ embedding_source: this.capability.source,
424
+ embedding_fallback_hash: true,
185
425
  },
186
426
  };
187
427
  }
188
428
  }
189
- // Exhausted shrink retries -> fallback hash
190
- this.logger.warn("[Embedding] Exhausted context-length retries, fallback to hash embedding");
429
+ // exhausted retries
430
+ this.logger.error(`[Embedding][CRITICAL] exhausted context retries; fallback hash modelKey=${this.modelKey}`);
191
431
  return {
192
432
  vector: this.embedFromHash(mergedText),
193
433
  metadata: {
194
434
  embedding_chunked: true,
195
- embedding_chunks_count: Math.max(1, this.chunkTextBySafeTokens(mergedText, this.getSafeChunkTokens(maxTokens)).length),
435
+ embedding_chunks_count: Math.max(1, this.chunkTextByTokenBudget(mergedText, Math.max(128, Math.floor(baseBudget * 0.3))).length),
196
436
  embedding_chunking_strategy: "array_batch_weighted_avg",
197
437
  embedding_model: this.config.model,
198
- embedding_max_tokens: maxTokens,
199
- embedding_safe_chunk_tokens: this.getSafeChunkTokens(maxTokens),
438
+ embedding_model_key: this.modelKey,
439
+ embedding_provider: this.provider,
440
+ embedding_max_tokens: this.capability.discoveredMaxTokens,
441
+ embedding_safe_chunk_tokens: Math.max(128, Math.floor(baseBudget * 0.3)),
442
+ embedding_source: this.capability.source,
443
+ embedding_fallback_hash: true,
200
444
  },
201
445
  };
202
446
  }
@@ -207,20 +451,13 @@ export class EmbeddingClient {
207
451
  const endpoints = this.resolveEmbeddingEndpoints(this.config.embeddingApiUrl);
208
452
  let lastError = null;
209
453
  for (const url of endpoints) {
210
- const useOpenAiFormat = this.isOpenAIEmbeddingEndpoint(url);
454
+ const useOpenAiFormat = /\/v1\/embeddings\/?$/i.test(url);
211
455
  try {
212
- if (process.env.EMBEDDING_DEBUG === "1") {
213
- this.logger.debug?.(`[Embedding] API request schema: ${JSON.stringify({
214
- endpoint: url,
215
- model: this.config.model,
216
- chunksCount: chunks.length,
217
- firstChunkChars: chunks[0]?.length || 0,
218
- firstChunkTokensEst: this.estimateTokens(chunks[0] || ""),
219
- format: useOpenAiFormat ? "openai" : "ollama",
220
- })}`);
221
- }
456
+ this.activeEndpoint = url;
457
+ this.provider = this.detectProvider(url);
458
+ this.modelKey = this.buildModelKey(this.provider, this.activeEndpoint);
222
459
  if (!useOpenAiFormat && chunks.length > 1) {
223
- // Ollama /api/embeddings: no array batch support in one call (do sequential fallback)
460
+ // Ollama /api/embeddings: sequential requests
224
461
  const vectors = [];
225
462
  for (const c of chunks) {
226
463
  vectors.push(await this.embedSingle(url, false, c));
@@ -235,18 +472,15 @@ export class EmbeddingClient {
235
472
  }
236
473
  catch (error) {
237
474
  lastError = error;
475
+ if (this.isContextLengthError(error)) {
476
+ throw error;
477
+ }
238
478
  if (error instanceof EmbeddingHttpError &&
239
- error.status === 404 &&
479
+ [404, 429].includes(error.status) &&
240
480
  endpoints.length > 1 &&
241
481
  url !== endpoints[endpoints.length - 1]) {
242
482
  continue;
243
483
  }
244
- if (error instanceof EmbeddingHttpError &&
245
- error.status === 429) {
246
- // endpoint is rate-limited; try next endpoint if any
247
- continue;
248
- }
249
- // for other errors we still may try next endpoint
250
484
  if (url !== endpoints[endpoints.length - 1]) {
251
485
  continue;
252
486
  }
@@ -258,8 +492,7 @@ export class EmbeddingClient {
258
492
  const controller = new AbortController();
259
493
  const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
260
494
  try {
261
- // 429 retry/backoff
262
- const max429Retries = 4;
495
+ const max429Retries = 3;
263
496
  for (let attempt = 0; attempt <= max429Retries; attempt++) {
264
497
  const response = await fetch(url, {
265
498
  method: "POST",
@@ -270,15 +503,14 @@ export class EmbeddingClient {
270
503
  signal: controller.signal,
271
504
  });
272
505
  if (response.status === 429 && attempt < max429Retries) {
273
- const backoffMs = Math.min(8000, 500 * Math.pow(2, attempt));
274
- this.logger.warn(`[Embedding] 429 rate limit. Retry in ${backoffMs}ms (attempt ${attempt + 1}/${max429Retries})`);
506
+ const backoffMs = Math.min(4000, 300 * Math.pow(2, attempt));
507
+ this.logger.warn(`[Embedding] 429 rate limit. retry in ${backoffMs}ms (attempt ${attempt + 1}/${max429Retries})`);
275
508
  await new Promise((r) => setTimeout(r, backoffMs));
276
509
  continue;
277
510
  }
278
511
  if (!response.ok) {
279
512
  const errorText = await response.text().catch(() => "Unknown error");
280
- const preview = errorText.substring(0, 300);
281
- this.logger.error(`[Embedding] HTTP ${response.status} @ ${url}: ${preview}`);
513
+ const preview = errorText.substring(0, 500);
282
514
  throw new EmbeddingHttpError(response.status, preview);
283
515
  }
284
516
  const data = await response.json();
@@ -324,14 +556,11 @@ export class EmbeddingClient {
324
556
  return a & a;
325
557
  }, 0);
326
558
  const embedding = [];
327
- for (let i = 0; i < this.dimensions; i++) {
559
+ for (let i = 0; i < this.config.dimensions; i++) {
328
560
  embedding.push(Math.sin(hash + i) * 0.1);
329
561
  }
330
562
  return this.l2Normalize(embedding);
331
563
  }
332
- /**
333
- * Calculate cosine similarity
334
- */
335
564
  cosineSimilarity(a, b) {
336
565
  if (a.length !== b.length) {
337
566
  throw new Error("Vector dimensions mismatch");
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/services/embedding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../../src/services/embedding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"llm-extractor.d.ts","sourceRoot":"","sources":["../../src/services/llm-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,eAAe,GAAG,SAAS,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,aAAa,EAAE,KAAK,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,eAAe,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAcD;;GAEG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EACjD,MAAM,EAAE,SAAS,EACjB,WAAW,GAAE,WAAuB,GACnC,OAAO,CAAC,gBAAgB,CAAC,CA8D3B;AAoHD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUtF"}
1
+ {"version":3,"file":"llm-extractor.d.ts","sourceRoot":"","sources":["../../src/services/llm-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,eAAe,GAAG,SAAS,CAAC;AAEtF,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,KAAK,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,aAAa,EAAE,KAAK,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,eAAe,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAcD;;GAEG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EACjD,MAAM,EAAE,SAAS,EACjB,WAAW,GAAE,WAAuB,GACnC,OAAO,CAAC,gBAAgB,CAAC,CA8D3B;AAwHD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUtF"}