agentfootprint 9.2.0 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/adapters/memory/pgVector.js +731 -0
  2. package/dist/adapters/memory/pgVector.js.map +1 -0
  3. package/dist/adapters/memory/s3Vectors.js +628 -0
  4. package/dist/adapters/memory/s3Vectors.js.map +1 -0
  5. package/dist/adapters/memory/sqliteVector.js +16 -79
  6. package/dist/adapters/memory/sqliteVector.js.map +1 -1
  7. package/dist/embedders/index.js +240 -76
  8. package/dist/embedders/index.js.map +1 -1
  9. package/dist/esm/adapters/memory/pgVector.d.ts +243 -0
  10. package/dist/esm/adapters/memory/pgVector.js +726 -0
  11. package/dist/esm/adapters/memory/pgVector.js.map +1 -0
  12. package/dist/esm/adapters/memory/s3Vectors.d.ts +208 -0
  13. package/dist/esm/adapters/memory/s3Vectors.js +624 -0
  14. package/dist/esm/adapters/memory/s3Vectors.js.map +1 -0
  15. package/dist/esm/adapters/memory/sqliteVector.d.ts +5 -27
  16. package/dist/esm/adapters/memory/sqliteVector.js +10 -73
  17. package/dist/esm/adapters/memory/sqliteVector.js.map +1 -1
  18. package/dist/esm/embedders/index.d.ts +99 -19
  19. package/dist/esm/embedders/index.js +240 -76
  20. package/dist/esm/embedders/index.js.map +1 -1
  21. package/dist/esm/lib/embedderMismatch.d.ts +67 -0
  22. package/dist/esm/lib/embedderMismatch.js +96 -0
  23. package/dist/esm/lib/embedderMismatch.js.map +1 -0
  24. package/dist/esm/lib/rag/defineRAG.d.ts +28 -6
  25. package/dist/esm/lib/rag/defineRAG.js +39 -5
  26. package/dist/esm/lib/rag/defineRAG.js.map +1 -1
  27. package/dist/esm/memory/define.js +31 -1
  28. package/dist/esm/memory/define.js.map +1 -1
  29. package/dist/esm/memory/define.types.d.ts +13 -2
  30. package/dist/esm/memory/define.types.js.map +1 -1
  31. package/dist/esm/memory/embedding/loadRelevant.d.ts +10 -2
  32. package/dist/esm/memory/embedding/loadRelevant.js +36 -18
  33. package/dist/esm/memory/embedding/loadRelevant.js.map +1 -1
  34. package/dist/esm/memory/pipeline/semantic.d.ts +13 -2
  35. package/dist/esm/memory/pipeline/semantic.js +11 -5
  36. package/dist/esm/memory/pipeline/semantic.js.map +1 -1
  37. package/dist/esm/memory/store/capability.d.ts +25 -6
  38. package/dist/esm/memory/store/capability.js +68 -3
  39. package/dist/esm/memory/store/capability.js.map +1 -1
  40. package/dist/esm/memory/store/index.d.ts +1 -0
  41. package/dist/esm/memory/store/index.js +4 -0
  42. package/dist/esm/memory/store/index.js.map +1 -1
  43. package/dist/esm/memory/store/types.d.ts +40 -0
  44. package/dist/esm/memory-providers.d.ts +7 -4
  45. package/dist/esm/memory-providers.js +18 -4
  46. package/dist/esm/memory-providers.js.map +1 -1
  47. package/dist/lib/embedderMismatch.js +103 -0
  48. package/dist/lib/embedderMismatch.js.map +1 -0
  49. package/dist/lib/rag/defineRAG.js +39 -5
  50. package/dist/lib/rag/defineRAG.js.map +1 -1
  51. package/dist/memory/define.js +31 -1
  52. package/dist/memory/define.js.map +1 -1
  53. package/dist/memory/define.types.js.map +1 -1
  54. package/dist/memory/embedding/loadRelevant.js +36 -18
  55. package/dist/memory/embedding/loadRelevant.js.map +1 -1
  56. package/dist/memory/pipeline/semantic.js +11 -5
  57. package/dist/memory/pipeline/semantic.js.map +1 -1
  58. package/dist/memory/store/capability.js +70 -4
  59. package/dist/memory/store/capability.js.map +1 -1
  60. package/dist/memory/store/index.js +7 -1
  61. package/dist/memory/store/index.js.map +1 -1
  62. package/dist/memory-providers.js +22 -5
  63. package/dist/memory-providers.js.map +1 -1
  64. package/dist/types/adapters/memory/pgVector.d.ts +244 -0
  65. package/dist/types/adapters/memory/pgVector.d.ts.map +1 -0
  66. package/dist/types/adapters/memory/s3Vectors.d.ts +209 -0
  67. package/dist/types/adapters/memory/s3Vectors.d.ts.map +1 -0
  68. package/dist/types/adapters/memory/sqliteVector.d.ts +5 -27
  69. package/dist/types/adapters/memory/sqliteVector.d.ts.map +1 -1
  70. package/dist/types/embedders/index.d.ts +99 -19
  71. package/dist/types/embedders/index.d.ts.map +1 -1
  72. package/dist/types/lib/embedderMismatch.d.ts +68 -0
  73. package/dist/types/lib/embedderMismatch.d.ts.map +1 -0
  74. package/dist/types/lib/rag/defineRAG.d.ts +28 -6
  75. package/dist/types/lib/rag/defineRAG.d.ts.map +1 -1
  76. package/dist/types/memory/define.d.ts.map +1 -1
  77. package/dist/types/memory/define.types.d.ts +13 -2
  78. package/dist/types/memory/define.types.d.ts.map +1 -1
  79. package/dist/types/memory/embedding/loadRelevant.d.ts +10 -2
  80. package/dist/types/memory/embedding/loadRelevant.d.ts.map +1 -1
  81. package/dist/types/memory/pipeline/semantic.d.ts +13 -2
  82. package/dist/types/memory/pipeline/semantic.d.ts.map +1 -1
  83. package/dist/types/memory/store/capability.d.ts +25 -6
  84. package/dist/types/memory/store/capability.d.ts.map +1 -1
  85. package/dist/types/memory/store/index.d.ts +1 -0
  86. package/dist/types/memory/store/index.d.ts.map +1 -1
  87. package/dist/types/memory/store/types.d.ts +40 -0
  88. package/dist/types/memory/store/types.d.ts.map +1 -1
  89. package/dist/types/memory-providers.d.ts +7 -4
  90. package/dist/types/memory-providers.d.ts.map +1 -1
  91. package/package.json +9 -1
@@ -154,39 +154,99 @@ function openaiEmbedder(options = {}) {
154
154
  }
155
155
  exports.openaiEmbedder = openaiEmbedder;
156
156
  /**
157
- * Default output size per Titan text-embedding model, so `.dimensions` reports
158
- * the truth rather than one hard-coded guess.
157
+ * The Bedrock embedding models this library knows by name — three facts each,
158
+ * in one table, because they arrive together and drift apart when they are
159
+ * kept apart (9.3.0; two Titan-only tables until then).
159
160
  *
160
- * Titan Text Embeddings **V2** is configurable — 1024 (default), 512, 256.
161
- * Titan Embeddings G1 – Text (**V1**) has one size, 1536, and no `dimensions`
162
- * parameter at all. Every other model on Bedrock (Cohere's, a custom
163
- * deployment, one released after this version) has a size this library cannot
164
- * know, so it must state its own rather than be guessed at — the same rule
165
- * `openaiEmbedder` applies, for the same reason: a store that trusts
161
+ * **Size.** Titan Text Embeddings **V2** is the configurable one — 1024
162
+ * (default), 512, 256. Titan Embeddings G1 – Text (**V1**) has one size, 1536,
163
+ * and no `dimensions` parameter at all. Cohere Embed v3 (English and
164
+ * Multilingual) returns 1024 and likewise takes no size. A model outside this
165
+ * table has a length this library cannot know and must state its own — the same
166
+ * rule `openaiEmbedder` applies, for the same reason: a store that trusts
166
167
  * `.dimensions` and gets a different length back corrupts silently.
168
+ *
169
+ * **Window.** Both Titan text-embedding models accept **8,192 tokens** —
170
+ * sixteen times the on-device model the shipped default ceiling was measured
171
+ * on. Cohere Embed v3 accepts **512**, and that number is the whole argument
172
+ * for a per-MODEL ceiling rather than a per-VENDOR one: 512 tokens is ~2,000
173
+ * characters, so the same corpus that is embedded whole by Titan is silently
174
+ * truncated by Cohere at a quarter of the chunk. Declared, the indexers cut to
175
+ * fit; guessed from a sibling model, they would not.
176
+ *
177
+ * **Family.** The body shape (see {@link BedrockEmbeddingFamily}) — the fact
178
+ * whose absence made a Cohere model id constructible and unusable before 9.3.0.
167
179
  */
168
- const TITAN_DIMENSIONS = {
169
- 'amazon.titan-embed-text-v2:0': 1024,
170
- 'amazon.titan-embed-text-v1': 1536,
180
+ const BEDROCK_EMBEDDING_MODELS = {
181
+ 'amazon.titan-embed-text-v2:0': {
182
+ family: 'titan',
183
+ dimensions: 1024,
184
+ sizes: [1024, 512, 256],
185
+ maxInputTokens: 8192,
186
+ },
187
+ 'amazon.titan-embed-text-v1': { family: 'titan', dimensions: 1536, maxInputTokens: 8192 },
188
+ 'cohere.embed-english-v3': { family: 'cohere', dimensions: 1024, maxInputTokens: 512 },
189
+ 'cohere.embed-multilingual-v3': { family: 'cohere', dimensions: 1024, maxInputTokens: 512 },
171
190
  };
172
191
  /**
173
- * Documented input window per Titan text-embedding model, in TOKENS.
192
+ * Titan V2's configurable sizes, kept as a constant because an id this table
193
+ * has never seen can still be recognisably Titan V2 (a variant released after
194
+ * this version) — and for such an id the size must still be SENT, or the model
195
+ * returns 1024 while `.dimensions` reports 512.
196
+ */
197
+ const TITAN_V2_SIZES = [1024, 512, 256];
198
+ /**
199
+ * How many texts Cohere embeds in ONE `InvokeModel` call.
174
200
  *
175
- * Both Titan text-embedding models accept **8,192 tokens** sixteen times the
176
- * on-device model the shipped default ceiling was measured on. That gap is the
177
- * whole point of declaring one: without it, a corpus split at 2,500 characters
178
- * is reported as clipped (and treated as such by the indexer's default) by an
179
- * embedder that reads every one of those chunks whole.
201
+ * **96**, the documented maximum, and the reason `embedBatch` is a real batch
202
+ * here and N calls for Titan: a 500-chunk corpus is 6 round-trips instead of
203
+ * 500. Chunked at exactly the documented number rather than under it, because
204
+ * unlike a byte limit this one is a count the caller can see — and a batch that
205
+ * silently used half the allowance would be a cost nobody asked for.
206
+ */
207
+ const COHERE_MAX_TEXTS_PER_CALL = 96;
208
+ /**
209
+ * The body shape sent to a model id this library has never met.
180
210
  *
181
- * A model outside this table gets NO declared ceiling the same rule
182
- * `.dimensions` applies. Another vendor's embedding model on the same runtime
183
- * may have a far shorter window, and guessing this one's would clip in silence.
211
+ * Titan's because it is the shape EVERY release before 9.3.0 sent to every
212
+ * model, so an unknown id keeps doing exactly what it did. `family` is how a
213
+ * caller says otherwise, and the read-side refusal names that option.
184
214
  */
185
- const TITAN_MAX_INPUT_TOKENS = {
186
- 'amazon.titan-embed-text-v2:0': 8192,
187
- 'amazon.titan-embed-text-v1': 8192,
188
- };
189
- const TITAN_V2_SUPPORTED = [1024, 512, 256];
215
+ const DEFAULT_BEDROCK_FAMILY = 'titan';
216
+ /**
217
+ * The facts for a model id, including ids that WRAP a known one.
218
+ *
219
+ * A cross-region inference profile (`us.amazon.titan-embed-text-v2:0`) and an
220
+ * inference-profile ARN both END in the model id they route to, so containment
221
+ * resolves them exactly rather than by guess — and an id that names its model is
222
+ * not "unknown" just because it has a prefix. Before 9.3.0 those were refused
223
+ * as unknown models, which is why widening this is safe: it accepts what used
224
+ * to throw.
225
+ */
226
+ function bedrockFactsFor(model) {
227
+ const exact = BEDROCK_EMBEDDING_MODELS[model];
228
+ if (exact)
229
+ return exact;
230
+ for (const [id, facts] of Object.entries(BEDROCK_EMBEDDING_MODELS)) {
231
+ if (model.includes(id))
232
+ return facts;
233
+ }
234
+ return undefined;
235
+ }
236
+ /**
237
+ * The family a model id NAMES, or `undefined` when it names none.
238
+ *
239
+ * Substring, not prefix: the id may be wrapped by a region prefix or an ARN.
240
+ * An id that says neither gets Titan's body — the shape every release before
241
+ * 9.3.0 sent to everything — and `family` is how you say otherwise.
242
+ */
243
+ function inferBedrockFamily(model) {
244
+ if (model.includes('cohere.embed'))
245
+ return 'cohere';
246
+ if (model.includes('titan-embed'))
247
+ return 'titan';
248
+ return undefined;
249
+ }
190
250
  /**
191
251
  * Amazon Bedrock's hosted embeddings, through `InvokeModel`.
192
252
  *
@@ -215,19 +275,31 @@ const TITAN_V2_SUPPORTED = [1024, 512, 256];
215
275
  * q8 and an fp32 build of one model are near-identical spaces, and "near" is
216
276
  * exactly the difference that surfaces as a mysteriously worse ranking.)
217
277
  *
278
+ * ── One operation, two body shapes (9.3.0) ───────────────────────────────
279
+ * `InvokeModel` is a single API over vendor-specific JSON. Titan takes
280
+ * `{ inputText }` and answers `{ embedding }`; Cohere takes
281
+ * `{ texts, input_type }` and answers `{ embeddings }`, embeds up to
282
+ * {@link COHERE_MAX_TEXTS_PER_CALL} of them per call, and distinguishes a
283
+ * QUERY from a DOCUMENT. So the model id selects a FAMILY
284
+ * ({@link BedrockEmbeddingFamily}), and the family owns the request, the
285
+ * response and the batching. Before this, one shape was sent to everything —
286
+ * a Cohere id constructed fine and failed at the first embed.
287
+ *
218
288
  * ── The input ceiling (9.1.0) ────────────────────────────────────────────
219
- * `.maxInputChars` reports **32,000** for both Titan text-embedding models:
220
- * their documented 8,192-token window, converted at the stated
221
- * {@link CHARS_PER_TOKEN} assumption of 4 characters per token. Sixteen times
222
- * the indexer's own default, which was measured on an on-device model — so an
223
- * indexing run against this embedder now embeds a 2,500-character chunk whole
224
- * instead of clipping it and calling that success. Dense text (code, tables,
225
- * CJK) tokenises tighter than the assumption; pass an explicit `maxChunkChars`
226
- * for such a corpus, and it wins over this number.
289
+ * `.maxInputChars` is per MODEL, from its documented token window converted at
290
+ * the stated {@link CHARS_PER_TOKEN} assumption of 4 characters per token:
291
+ * **32,000** for both Titan text-embedding models (8,192 tokens sixteen
292
+ * times the indexer's own default, which was measured on an on-device model),
293
+ * and **2,000** for Cohere Embed v3 (512 tokens). Those two numbers are why the
294
+ * ceiling cannot be a per-vendor constant: the same 2,500-character chunk is
295
+ * read whole by Titan and truncated by Cohere. Dense text (code, tables, CJK)
296
+ * tokenises tighter than the assumption; pass an explicit `maxChunkChars` for
297
+ * such a corpus, and it wins over this number.
227
298
  *
228
299
  * @throws if `model` is unknown and `dimensions` was not supplied; if
229
- * `dimensions` is not one of Titan V2's supported sizes; or if the SDK
230
- * is missing and no `client` / `_client` / `_sdk` was passed.
300
+ * `dimensions` is a size the model does not produce; if `family`
301
+ * contradicts a known model id; or if the SDK is missing and no
302
+ * `client` / `_client` / `_sdk` was passed.
231
303
  *
232
304
  * @example
233
305
  * ```ts
@@ -238,24 +310,61 @@ const TITAN_V2_SUPPORTED = [1024, 512, 256];
238
310
  * const embedder = bedrockEmbedder({ region: 'us-east-1', dimensions: 512 });
239
311
  * await indexFolder('./docs', { to: sqliteVectorStore({ file: './corpus.db' }), embedder });
240
312
  * ```
313
+ *
314
+ * @example A Cohere embedding model on the same runtime
315
+ * ```ts
316
+ * // Body shape, response field, batch size and 512-token window all follow
317
+ * // from the model id — nothing else changes at the call site.
318
+ * const embedder = bedrockEmbedder({ model: 'cohere.embed-english-v3' });
319
+ * ```
241
320
  */
242
321
  function bedrockEmbedder(options = {}) {
243
322
  const model = options.model ?? 'amazon.titan-embed-text-v2:0';
244
- const isTitanV2 = model.startsWith('amazon.titan-embed-text-v2');
323
+ const facts = bedrockFactsFor(model);
324
+ const named = inferBedrockFamily(model);
325
+ if (options.family !== undefined && facts !== undefined && options.family !== facts.family) {
326
+ throw new Error(`bedrockEmbedder: model '${model}' is a ${facts.family} model, and \`family: ` +
327
+ `'${options.family}'\` says otherwise. The two cannot both be right, and guessing ` +
328
+ `which line is the mistake would decide the request body — the one thing a wrong ` +
329
+ `answer here breaks at the first embed. Drop \`family\` (the model id already says ` +
330
+ `it), or name the model you meant.`);
331
+ }
332
+ // Explicit, then what the id names, then Titan — which is the body every
333
+ // release before 9.3.0 sent to every model, so an id this library has never
334
+ // met keeps behaving exactly as it did.
335
+ const family = options.family ?? facts?.family ?? named ?? DEFAULT_BEDROCK_FAMILY;
245
336
  const requested = options.dimensions;
246
- const dimensions = requested ?? TITAN_DIMENSIONS[model];
337
+ const dimensions = requested ?? facts?.dimensions;
247
338
  if (dimensions === undefined) {
248
339
  throw new Error(`bedrockEmbedder: unknown model '${model}' — its vector length is not something this ` +
249
340
  `library can know, and reporting a wrong .dimensions silently corrupts a vector store. ` +
250
341
  `Pass { dimensions } with the length that model returns.`);
251
342
  }
252
- if (isTitanV2 && requested !== undefined && !TITAN_V2_SUPPORTED.includes(requested)) {
253
- throw new Error(`bedrockEmbedder: Titan Text Embeddings V2 returns ${TITAN_V2_SUPPORTED.join(', ')} ` +
343
+ // A model this table has never seen can still be recognisably Titan V2, and
344
+ // for one of those the requested size must still be validated and SENT.
345
+ const sizes = facts?.sizes ??
346
+ (family === 'titan' && model.includes('titan-embed-text-v2') ? TITAN_V2_SIZES : undefined);
347
+ if (requested !== undefined && sizes !== undefined && !sizes.includes(requested)) {
348
+ throw new Error(`bedrockEmbedder: '${model}' returns ${sizes.join(', ')} ` +
254
349
  `dimensions — received ${String(requested)}. Asking for a size the model does not ` +
255
350
  `produce would store vectors of a length that disagrees with the .dimensions this ` +
256
351
  `embedder reports.`);
257
352
  }
258
- const maxInputChars = charsFor(TITAN_MAX_INPUT_TOKENS[model]);
353
+ if (requested !== undefined &&
354
+ sizes === undefined &&
355
+ facts !== undefined &&
356
+ requested !== facts.dimensions) {
357
+ throw new Error(`bedrockEmbedder: '${model}' returns ${facts.dimensions}-dimension vectors and takes no ` +
358
+ `size parameter — received ${String(requested)}, which would be reported as ` +
359
+ `.dimensions and never be the length that comes back. Drop \`dimensions\`: this ` +
360
+ `factory already knows this model's size.`);
361
+ }
362
+ const maxInputChars = options.maxInputChars ?? charsFor(facts?.maxInputTokens);
363
+ // Only a size the model actually TAKES is sent. Titan V2 defaults to 1024 on
364
+ // its own side, V1 and Cohere reject the field — so a caller who asked for
365
+ // nothing gets a request body identical to the one before this option
366
+ // existed.
367
+ const sendSize = requested !== undefined && sizes !== undefined;
259
368
  let connection;
260
369
  /**
261
370
  * Resolve the client + command constructor, once, on first embed.
@@ -298,20 +407,26 @@ function bedrockEmbedder(options = {}) {
298
407
  return connection;
299
408
  };
300
409
  /**
301
- * One text in, one vector out. Titan's `InvokeModel` embeds a SINGLE
302
- * `inputText` per call — there is no batch operation on the API, so
303
- * `embedBatch` below is honest about being N calls rather than pretending
304
- * to a batch discount that does not exist.
410
+ * ONE `InvokeModel` round-trip, with the family's body on the way in and the
411
+ * family's field on the way out.
412
+ *
413
+ * Takes a slice of texts rather than one, because how many fit in a call is
414
+ * itself a family fact: Titan embeds a single `inputText`, Cohere embeds up
415
+ * to {@link COHERE_MAX_TEXTS_PER_CALL}. The callers below never have to know
416
+ * which — they hand over texts and get one vector per text back, in order.
305
417
  */
306
- async function invoke(text, signal) {
418
+ async function invoke(texts, inputType, signal) {
307
419
  const conn = connect();
308
- const body = JSON.stringify({
309
- inputText: text,
310
- // Only an EXPLICIT request is sent. Titan V2 defaults to 1024 on its own
311
- // side, and V1 rejects the field so a caller who asked for nothing
312
- // gets a request body identical to the one before this option existed.
313
- ...(requested !== undefined && isTitanV2 && { dimensions: requested }),
314
- });
420
+ const body = JSON.stringify(family === 'cohere'
421
+ ? {
422
+ texts: [...texts],
423
+ // Required by the model, so there is no "unset" see `inputType`.
424
+ input_type: options.inputType ?? inputType,
425
+ }
426
+ : {
427
+ inputText: texts[0],
428
+ ...(sendSize && { dimensions: requested }),
429
+ });
315
430
  const command = new conn.Command({
316
431
  modelId: model,
317
432
  contentType: 'application/json',
@@ -321,7 +436,29 @@ function bedrockEmbedder(options = {}) {
321
436
  const out = await (signal
322
437
  ? conn.client.send(command, { abortSignal: signal })
323
438
  : conn.client.send(command));
324
- return readEmbedding(out, model);
439
+ return readEmbeddings(out, model, family, texts.length, facts === undefined);
440
+ }
441
+ /**
442
+ * The calls one batch becomes: Titan one text at a time, Cohere in chunks.
443
+ *
444
+ * Sequential rather than parallel either way: callers of the batch path are
445
+ * usually indexing a whole corpus, and `indexCorpus` already fans out over
446
+ * batches with its own bounded parallelism and retry. Racing N more requests
447
+ * inside one of those branches is how a corpus index meets a throttling
448
+ * error.
449
+ *
450
+ * The abort is checked between calls as well as passed into each one, so an
451
+ * aborted batch stops at the next boundary instead of embedding the rest of a
452
+ * corpus nobody is waiting for.
453
+ */
454
+ async function invokeAll(texts, inputType, signal) {
455
+ const perCall = family === 'cohere' ? COHERE_MAX_TEXTS_PER_CALL : 1;
456
+ const out = [];
457
+ for (let i = 0; i < texts.length; i += perCall) {
458
+ signal?.throwIfAborted();
459
+ out.push(...(await invoke(texts.slice(i, i + perCall), inputType, signal)));
460
+ }
461
+ return out;
325
462
  }
326
463
  return {
327
464
  dimensions,
@@ -331,24 +468,16 @@ function bedrockEmbedder(options = {}) {
331
468
  // than one it cannot stand behind.
332
469
  ...(maxInputChars !== undefined && { maxInputChars }),
333
470
  async embed({ text, signal }) {
334
- return invoke(text, signal);
471
+ // ONE text is this library's query shape (`loadRelevant` embeds the
472
+ // question) — so Cohere is told it is a query unless `inputType` says
473
+ // otherwise. Titan ignores the argument entirely.
474
+ return (await invoke([text], 'search_query', signal))[0];
335
475
  },
336
476
  async embedBatch({ texts, signal }) {
337
- // Titan has no batch embed operation. Sequential rather than parallel:
338
- // callers of this path are usually indexing a whole corpus, and
339
- // `indexCorpus` already fans out over batches with its own bounded
340
- // parallelism and retry. Racing N more requests inside one of those
341
- // branches is how a corpus index meets a throttling error.
342
- //
343
- // The abort is checked between calls as well as passed into each one,
344
- // so an aborted batch stops at the next boundary instead of embedding
345
- // the rest of a corpus nobody is waiting for.
346
- const out = [];
347
- for (const text of texts) {
348
- signal?.throwIfAborted();
349
- out.push(await invoke(text, signal));
350
- }
351
- return out;
477
+ // MANY texts is this library's document shape (`indexDocuments`,
478
+ // `embedMessages`), and Cohere embeds a document into a different place
479
+ // from a query on purpose.
480
+ return invokeAll(texts, 'search_document', signal);
352
481
  },
353
482
  };
354
483
  }
@@ -370,15 +499,26 @@ function loadBedrockRuntimeSdk() {
370
499
  }
371
500
  }
372
501
  /**
373
- * Pull the vector out of an `InvokeModel` response.
502
+ * Pull the vectors out of an `InvokeModel` response, by FAMILY.
374
503
  *
375
504
  * The SDK hands back `body` as a `Uint8Array`; a hand-rolled or mock client
376
505
  * may hand back the decoded object or a string. All three are read, and
377
506
  * anything else is refused by NAME rather than returning an empty vector —
378
507
  * an embedder that silently returns `[]` writes a row a store will never
379
508
  * rank, which is indistinguishable from "the corpus does not mention that".
509
+ *
510
+ * The field differs with the family (`embedding` vs `embeddings`), so the
511
+ * refusal has to as well: told the wrong family, the response is perfectly
512
+ * valid and this is the only place that can say so — which is why the message
513
+ * names `family` when the model id was not one this library knows.
514
+ *
515
+ * @param expected how many vectors were asked for. A count mismatch is refused
516
+ * rather than returned short: the caller pairs vectors with texts by
517
+ * POSITION, so a missing one does not go missing — it silently re-labels
518
+ * every passage after it.
519
+ * @param guessedFamily whether the family was a fallback rather than a fact.
380
520
  */
381
- function readEmbedding(response, model) {
521
+ function readEmbeddings(response, model, family, expected, guessedFamily) {
382
522
  const body = response?.body ?? response;
383
523
  let parsed = body;
384
524
  if (body instanceof Uint8Array) {
@@ -387,13 +527,37 @@ function readEmbedding(response, model) {
387
527
  else if (typeof body === 'string') {
388
528
  parsed = JSON.parse(body);
389
529
  }
390
- const embedding = parsed?.embedding;
391
- if (!Array.isArray(embedding) || embedding.some((n) => typeof n !== 'number')) {
392
- throw new Error(`bedrockEmbedder: '${model}' returned no \`embedding\` array. Bedrock answered with ` +
530
+ const field = family === 'cohere' ? 'embeddings' : 'embedding';
531
+ const raw = parsed?.[field];
532
+ // Cohere answers `{ embeddings: [[...]] }`, or `{ embeddings: { float: [[...]] } }`
533
+ // when a caller asked for typed embeddings. This never asks, and reads both.
534
+ const rows = family === 'cohere'
535
+ ? Array.isArray(raw)
536
+ ? raw
537
+ : raw?.float
538
+ : [raw];
539
+ const vectors = Array.isArray(rows) &&
540
+ rows.every((row) => Array.isArray(row) && row.every((n) => typeof n === 'number'))
541
+ ? rows
542
+ : undefined;
543
+ if (vectors === undefined) {
544
+ throw new Error(`bedrockEmbedder: '${model}' returned no \`${field}\` array. Bedrock answered with ` +
393
545
  `${describeShape(parsed)}, which this adapter cannot read — check the model id names an ` +
394
- `EMBEDDING model (a text-generation model answers a different shape).`);
546
+ `EMBEDDING model (a text-generation model answers a different shape).` +
547
+ (guessedFamily
548
+ ? `\n This model id is not one this library knows, so it was sent the ${family} ` +
549
+ `request body. If it is a ${family === 'titan' ? 'Cohere' : 'Titan'} model, pass ` +
550
+ `\`family: '${family === 'titan' ? 'cohere' : 'titan'}'\` — the request body and ` +
551
+ `the response field both differ per family.`
552
+ : ''));
553
+ }
554
+ if (vectors.length !== expected) {
555
+ throw new Error(`bedrockEmbedder: '${model}' was sent ${expected} text(s) and answered with ` +
556
+ `${vectors.length} vector(s). Vectors are paired with texts by POSITION, so a short ` +
557
+ `answer would not lose one passage — it would attach every later vector to the wrong ` +
558
+ `passage, and the corpus would rank confidently and wrongly forever.`);
395
559
  }
396
- return embedding;
560
+ return vectors;
397
561
  }
398
562
  /** Describe a response by shape, never by content — it may carry customer text. */
399
563
  function describeShape(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedders/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedders/index.ts"],"names":[],"mappings":"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"}