@carlonicora/nestjs-neo4jsonapi 2.7.2 → 2.9.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 (106) hide show
  1. package/dist/agents/graph.creator/services/graph.creator.service.d.ts +82 -0
  2. package/dist/agents/graph.creator/services/graph.creator.service.d.ts.map +1 -1
  3. package/dist/agents/graph.creator/services/graph.creator.service.js +43 -10
  4. package/dist/agents/graph.creator/services/graph.creator.service.js.map +1 -1
  5. package/dist/agents/index.d.ts +1 -1
  6. package/dist/agents/index.d.ts.map +1 -1
  7. package/dist/agents/index.js +7 -1
  8. package/dist/agents/index.js.map +1 -1
  9. package/dist/config/base.config.d.ts.map +1 -1
  10. package/dist/config/base.config.js +4 -0
  11. package/dist/config/base.config.js.map +1 -1
  12. package/dist/config/interfaces/config.ai.interface.d.ts +5 -0
  13. package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
  14. package/dist/config/interfaces/config.prompts.interface.d.ts +15 -0
  15. package/dist/config/interfaces/config.prompts.interface.d.ts.map +1 -1
  16. package/dist/core/llm/index.d.ts +2 -0
  17. package/dist/core/llm/index.d.ts.map +1 -1
  18. package/dist/core/llm/index.js +2 -0
  19. package/dist/core/llm/index.js.map +1 -1
  20. package/dist/core/llm/interfaces/ai-candidate.interface.d.ts +32 -0
  21. package/dist/core/llm/interfaces/ai-candidate.interface.d.ts.map +1 -0
  22. package/dist/core/llm/interfaces/ai-candidate.interface.js +15 -0
  23. package/dist/core/llm/interfaces/ai-candidate.interface.js.map +1 -0
  24. package/dist/core/llm/llm.module.d.ts.map +1 -1
  25. package/dist/core/llm/llm.module.js +6 -1
  26. package/dist/core/llm/llm.module.js.map +1 -1
  27. package/dist/core/llm/services/ai-connection-resolver.service.d.ts +107 -0
  28. package/dist/core/llm/services/ai-connection-resolver.service.d.ts.map +1 -0
  29. package/dist/core/llm/services/ai-connection-resolver.service.js +329 -0
  30. package/dist/core/llm/services/ai-connection-resolver.service.js.map +1 -0
  31. package/dist/core/llm/services/embedder.service.d.ts +21 -0
  32. package/dist/core/llm/services/embedder.service.d.ts.map +1 -1
  33. package/dist/core/llm/services/embedder.service.js +52 -3
  34. package/dist/core/llm/services/embedder.service.js.map +1 -1
  35. package/dist/core/llm/services/llm.service.d.ts +65 -18
  36. package/dist/core/llm/services/llm.service.d.ts.map +1 -1
  37. package/dist/core/llm/services/llm.service.js +214 -70
  38. package/dist/core/llm/services/llm.service.js.map +1 -1
  39. package/dist/core/llm/services/model.service.d.ts +79 -2
  40. package/dist/core/llm/services/model.service.d.ts.map +1 -1
  41. package/dist/core/llm/services/model.service.js +289 -31
  42. package/dist/core/llm/services/model.service.js.map +1 -1
  43. package/dist/core/llm/services/vision.llm.service.d.ts +25 -1
  44. package/dist/core/llm/services/vision.llm.service.d.ts.map +1 -1
  45. package/dist/core/llm/services/vision.llm.service.js +74 -33
  46. package/dist/core/llm/services/vision.llm.service.js.map +1 -1
  47. package/dist/foundations/ai-connection/ai-connection.module.d.ts +5 -0
  48. package/dist/foundations/ai-connection/ai-connection.module.d.ts.map +1 -0
  49. package/dist/foundations/ai-connection/ai-connection.module.js +37 -0
  50. package/dist/foundations/ai-connection/ai-connection.module.js.map +1 -0
  51. package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts +32 -0
  52. package/dist/foundations/ai-connection/controllers/ai-connection.controller.d.ts.map +1 -0
  53. package/dist/foundations/ai-connection/controllers/ai-connection.controller.js +162 -0
  54. package/dist/foundations/ai-connection/controllers/ai-connection.controller.js.map +1 -0
  55. package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.d.ts +41 -0
  56. package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.d.ts.map +1 -0
  57. package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.js +189 -0
  58. package/dist/foundations/ai-connection/dtos/ai-connection.post.dto.js.map +1 -0
  59. package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.d.ts +42 -0
  60. package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.d.ts.map +1 -0
  61. package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.js +179 -0
  62. package/dist/foundations/ai-connection/dtos/ai-connection.put.dto.js.map +1 -0
  63. package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.d.ts +8 -0
  64. package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.d.ts.map +1 -0
  65. package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.js +38 -0
  66. package/dist/foundations/ai-connection/dtos/ai-connection.reorder.dto.js.map +1 -0
  67. package/dist/foundations/ai-connection/entities/ai-connection.d.ts +57 -0
  68. package/dist/foundations/ai-connection/entities/ai-connection.d.ts.map +1 -0
  69. package/dist/foundations/ai-connection/entities/ai-connection.js +73 -0
  70. package/dist/foundations/ai-connection/entities/ai-connection.js.map +1 -0
  71. package/dist/foundations/ai-connection/entities/ai-connection.meta.d.ts +3 -0
  72. package/dist/foundations/ai-connection/entities/ai-connection.meta.d.ts.map +1 -0
  73. package/dist/foundations/ai-connection/entities/ai-connection.meta.js +10 -0
  74. package/dist/foundations/ai-connection/entities/ai-connection.meta.js.map +1 -0
  75. package/dist/foundations/ai-connection/index.d.ts +12 -0
  76. package/dist/foundations/ai-connection/index.d.ts.map +1 -0
  77. package/dist/foundations/ai-connection/index.js +35 -0
  78. package/dist/foundations/ai-connection/index.js.map +1 -0
  79. package/dist/foundations/ai-connection/registry/ai-provider.registry.d.ts +54 -0
  80. package/dist/foundations/ai-connection/registry/ai-provider.registry.d.ts.map +1 -0
  81. package/dist/foundations/ai-connection/registry/ai-provider.registry.js +255 -0
  82. package/dist/foundations/ai-connection/registry/ai-provider.registry.js.map +1 -0
  83. package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts +52 -0
  84. package/dist/foundations/ai-connection/repositories/ai-connection.repository.d.ts.map +1 -0
  85. package/dist/foundations/ai-connection/repositories/ai-connection.repository.js +85 -0
  86. package/dist/foundations/ai-connection/repositories/ai-connection.repository.js.map +1 -0
  87. package/dist/foundations/ai-connection/services/ai-connection-encryption.service.d.ts +52 -0
  88. package/dist/foundations/ai-connection/services/ai-connection-encryption.service.d.ts.map +1 -0
  89. package/dist/foundations/ai-connection/services/ai-connection-encryption.service.js +148 -0
  90. package/dist/foundations/ai-connection/services/ai-connection-encryption.service.js.map +1 -0
  91. package/dist/foundations/ai-connection/services/ai-connection.service.d.ts +79 -0
  92. package/dist/foundations/ai-connection/services/ai-connection.service.d.ts.map +1 -0
  93. package/dist/foundations/ai-connection/services/ai-connection.service.js +184 -0
  94. package/dist/foundations/ai-connection/services/ai-connection.service.js.map +1 -0
  95. package/dist/foundations/foundations.modules.d.ts.map +1 -1
  96. package/dist/foundations/foundations.modules.js +2 -0
  97. package/dist/foundations/foundations.modules.js.map +1 -1
  98. package/dist/foundations/index.d.ts +1 -0
  99. package/dist/foundations/index.d.ts.map +1 -1
  100. package/dist/foundations/index.js +1 -0
  101. package/dist/foundations/index.js.map +1 -1
  102. package/dist/foundations/tokenusage/services/tokenusage.service.d.ts +29 -0
  103. package/dist/foundations/tokenusage/services/tokenusage.service.d.ts.map +1 -1
  104. package/dist/foundations/tokenusage/services/tokenusage.service.js +15 -3
  105. package/dist/foundations/tokenusage/services/tokenusage.service.js.map +1 -1
  106. package/package.json +1 -1
@@ -64,6 +64,7 @@ const openai_2 = __importStar(require("openai"));
64
64
  const logging_service_1 = require("../../logging/services/logging.service");
65
65
  const model_weight_1 = require("../enums/model.weight");
66
66
  const vertex_utils_1 = require("../utils/vertex.utils");
67
+ const ai_connection_resolver_service_1 = require("./ai-connection-resolver.service");
67
68
  const embedder_token_bucket_service_1 = require("./embedder-token-bucket.service");
68
69
  const openrouter_fetch_1 = require("./openrouter-fetch");
69
70
  const rate_limited_embedder_1 = require("./rate-limited-embedder");
@@ -182,12 +183,28 @@ function normaliseConfiguredReasoningEffort(value) {
182
183
  * emptied and the anomaly is logged rather than silently retained.
183
184
  */
184
185
  const LLM_CACHE_MAX_ENTRIES = 100;
186
+ /**
187
+ * Copies only the DEFINED entries of an object.
188
+ *
189
+ * Used when a resolved candidate is merged over an env config block: spreading
190
+ * the candidate wholesale would let its absent optionals (`region: undefined`,
191
+ * …) erase perfectly good env values, and would drop fields the candidate shape
192
+ * has no room for at all (`secret`).
193
+ */
194
+ function definedFieldsOnly(source) {
195
+ const result = {};
196
+ for (const [key, value] of Object.entries(source))
197
+ if (value !== undefined)
198
+ result[key] = value;
199
+ return result;
200
+ }
185
201
  let ModelService = ModelService_1 = class ModelService {
186
- constructor(clsService, configService, bucket, logger) {
202
+ constructor(clsService, configService, bucket, logger, aiConnectionResolver) {
187
203
  this.clsService = clsService;
188
204
  this.configService = configService;
189
205
  this.bucket = bucket;
190
206
  this.logger = logger;
207
+ this.aiConnectionResolver = aiConnectionResolver;
191
208
  /**
192
209
  * Chat models built by {@link getLLM}, keyed on every parameter that is BAKED
193
210
  * INTO the instance (see the key built there).
@@ -232,10 +249,13 @@ let ModelService = ModelService_1 = class ModelService {
232
249
  return this.aiConfig.audio;
233
250
  }
234
251
  /**
235
- * Resolves the AI config block for a model weight.
252
+ * Resolves the `.env` AI config block for a model weight.
236
253
  * Undefined / Normal → `ai`; Lite → `aiLite`; Large → `aiLarge`.
254
+ *
255
+ * This is the FINAL fallback of every chat chain — {@link getResolvedConfig}
256
+ * layers the resolved (DB-first) candidate over it.
237
257
  */
238
- getResolvedConfig(weight) {
258
+ envTierConfig(weight) {
239
259
  switch (weight) {
240
260
  case model_weight_1.ModelWeight.Lite:
241
261
  return this.aiConfig.aiLite;
@@ -245,6 +265,215 @@ let ModelService = ModelService_1 = class ModelService {
245
265
  return this.aiConfig.ai;
246
266
  }
247
267
  }
268
+ /** Chat tier → AI connection type. Undefined / Normal → `ai`. */
269
+ weightToType(weight) {
270
+ switch (weight) {
271
+ case model_weight_1.ModelWeight.Lite:
272
+ return "aiLite";
273
+ case model_weight_1.ModelWeight.Large:
274
+ return "aiLarge";
275
+ default:
276
+ return "ai";
277
+ }
278
+ }
279
+ /**
280
+ * Ordered fallback candidates for a chat tier, healthiest first.
281
+ *
282
+ * Without a resolver (tests, minimal harnesses, an app that never registered
283
+ * the AI-connection feature) this is exactly one `.env` candidate — today's
284
+ * behaviour.
285
+ */
286
+ getCandidates(weight) {
287
+ return this.getCandidatesForType(this.weightToType(weight));
288
+ }
289
+ /**
290
+ * Ordered fallback candidates for any AI connection type.
291
+ *
292
+ * Never throws: a resolver failure degrades to the `.env` candidate rather
293
+ * than to "no AI" (spec § 5), because this sits on the hot path of every
294
+ * single model construction.
295
+ */
296
+ getCandidatesForType(type) {
297
+ if (this.aiConnectionResolver) {
298
+ try {
299
+ const candidates = this.aiConnectionResolver.resolve(type);
300
+ if (candidates.length > 0)
301
+ return candidates;
302
+ }
303
+ catch (error) {
304
+ const warning = `[ModelService] AI connection resolver failed for "${type}" — falling back to the .env connection: ${error instanceof Error ? error.message : String(error)}`;
305
+ if (this.logger)
306
+ this.logger.warn(warning, ModelService_1.name);
307
+ else
308
+ console.warn(warning);
309
+ }
310
+ }
311
+ return [this.envCandidate(type)];
312
+ }
313
+ /** Reports a transient failure so the resolver cools that connection down. */
314
+ notifyCandidateFailure(candidate) {
315
+ this.aiConnectionResolver?.markFailure(candidate.connectionId);
316
+ }
317
+ /**
318
+ * Picks one link out of a chain. Out-of-range indexes clamp to the last
319
+ * candidate, so a retry loop that outruns the chain simply keeps hammering
320
+ * the final (`.env`) link instead of crashing.
321
+ */
322
+ pickCandidate(type, candidateIndex) {
323
+ const candidates = this.getCandidatesForType(type);
324
+ if (candidates.length === 0)
325
+ return this.envCandidate(type);
326
+ const index = Math.min(Math.max(candidateIndex ?? 0, 0), candidates.length - 1);
327
+ return candidates[index];
328
+ }
329
+ /**
330
+ * The `.env` block of one connection type, normalised to a candidate.
331
+ *
332
+ * Used when no resolver is wired. A resolver appends its own env candidate as
333
+ * the last link of every chain, so this is the no-resolver twin of that entry
334
+ * and MUST stay field-for-field identical to it.
335
+ *
336
+ * Tolerates missing config blocks (a harness that only configures the chat
337
+ * tiers must not explode when something asks for the vision chain).
338
+ */
339
+ envCandidate(type) {
340
+ const cfg = this.aiConfig ?? {};
341
+ const identity = { source: "env", connectionId: `env:${type}`, connectionType: type };
342
+ switch (type) {
343
+ case "vision": {
344
+ const vision = cfg.vision;
345
+ return {
346
+ ...identity,
347
+ provider: vision?.provider ?? "",
348
+ apiKey: vision?.apiKey ?? "",
349
+ model: vision?.model ?? "",
350
+ url: vision?.url ?? "",
351
+ region: vision?.region,
352
+ instance: vision?.instance,
353
+ apiVersion: vision?.apiVersion,
354
+ googleCredentialsBase64: vision?.googleCredentialsBase64,
355
+ reasoningEffort: vision?.reasoningEffort,
356
+ inputCostPer1MTokens: vision?.inputCostPer1MTokens,
357
+ outputCostPer1MTokens: vision?.outputCostPer1MTokens,
358
+ };
359
+ }
360
+ case "audio": {
361
+ const audio = cfg.audio;
362
+ return {
363
+ ...identity,
364
+ provider: audio?.provider ?? "",
365
+ apiKey: audio?.apiKey ?? "",
366
+ model: audio?.model ?? "",
367
+ url: audio?.url ?? "",
368
+ region: audio?.region,
369
+ instance: audio?.instance,
370
+ apiVersion: audio?.apiVersion,
371
+ googleCredentialsBase64: audio?.googleCredentialsBase64,
372
+ inputCostPer1MTokens: audio?.inputCostPer1MTokens,
373
+ outputCostPer1MTokens: audio?.outputCostPer1MTokens,
374
+ costPerMinute: audio?.costPerMinute,
375
+ directUrl: audio?.directUrl,
376
+ language: audio?.language,
377
+ directFormat: audio?.directFormat,
378
+ directProvider: audio?.directProvider,
379
+ };
380
+ }
381
+ case "embedder": {
382
+ const embedder = cfg.embedder;
383
+ return {
384
+ ...identity,
385
+ provider: embedder?.provider ?? "",
386
+ apiKey: embedder?.apiKey ?? "",
387
+ model: embedder?.model ?? "",
388
+ url: embedder?.url ?? "",
389
+ region: embedder?.region,
390
+ instance: embedder?.instance,
391
+ apiVersion: embedder?.apiVersion,
392
+ googleCredentialsBase64: embedder?.googleCredentialsBase64,
393
+ dimensions: embedder?.dimensions,
394
+ inputCostPer1MTokens: embedder?.inputCostPer1MTokens,
395
+ };
396
+ }
397
+ case "transcriber": {
398
+ const transcriber = cfg.transcriber;
399
+ return {
400
+ ...identity,
401
+ provider: transcriber?.provider ?? "",
402
+ apiKey: transcriber?.apiKey ?? "",
403
+ model: transcriber?.model ?? "",
404
+ url: transcriber?.url ?? "",
405
+ apiVersion: transcriber?.apiVersion,
406
+ };
407
+ }
408
+ case "documentAi": {
409
+ const documentAi = cfg.documentAi;
410
+ return {
411
+ ...identity,
412
+ provider: documentAi?.provider ?? "",
413
+ apiKey: documentAi?.apiKey ?? "",
414
+ model: documentAi?.model ?? "",
415
+ url: documentAi?.url ?? "",
416
+ apiVersion: documentAi?.apiVersion,
417
+ costPerPage: documentAi?.costPerPage,
418
+ };
419
+ }
420
+ default: {
421
+ const tier = type === "aiLite" ? cfg.aiLite : type === "aiLarge" ? cfg.aiLarge : cfg.ai;
422
+ return {
423
+ ...identity,
424
+ provider: tier?.provider ?? "",
425
+ apiKey: tier?.apiKey ?? "",
426
+ model: tier?.model ?? "",
427
+ url: tier?.url ?? "",
428
+ region: tier?.region,
429
+ instance: tier?.instance,
430
+ apiVersion: tier?.apiVersion,
431
+ googleCredentialsBase64: tier?.googleCredentialsBase64,
432
+ allowFallbacks: tier?.allowFallbacks,
433
+ reasoningEffort: tier?.reasoningEffort,
434
+ maxOutputTokens: tier?.maxOutputTokens,
435
+ inputCostPer1MTokens: tier?.inputCostPer1MTokens,
436
+ outputCostPer1MTokens: tier?.outputCostPer1MTokens,
437
+ cachedInputCostPer1MTokens: tier?.cachedInputCostPer1MTokens,
438
+ };
439
+ }
440
+ }
441
+ }
442
+ /**
443
+ * Resolves the effective AI config block for a model weight: the first
444
+ * healthy candidate of that chat tier, expressed in the `.env` block's shape.
445
+ *
446
+ * The signature is deliberately unchanged, so every existing caller
447
+ * (`LLMService` cost lookups, {@link supportsStrictStructuredOutput}, …)
448
+ * transparently reads the DB-first configuration. Only DEFINED candidate
449
+ * fields are layered over the env block, so fields the candidate shape does
450
+ * not carry (`secret`) survive.
451
+ */
452
+ getResolvedConfig(weight) {
453
+ const envBlock = this.envTierConfig(weight);
454
+ const candidate = this.pickCandidate(this.weightToType(weight));
455
+ if (candidate.source === "env")
456
+ return envBlock;
457
+ return {
458
+ ...envBlock,
459
+ ...definedFieldsOnly({
460
+ provider: candidate.provider,
461
+ apiKey: candidate.apiKey,
462
+ model: candidate.model,
463
+ url: candidate.url,
464
+ region: candidate.region,
465
+ instance: candidate.instance,
466
+ apiVersion: candidate.apiVersion,
467
+ googleCredentialsBase64: candidate.googleCredentialsBase64,
468
+ allowFallbacks: candidate.allowFallbacks,
469
+ reasoningEffort: candidate.reasoningEffort,
470
+ maxOutputTokens: candidate.maxOutputTokens,
471
+ inputCostPer1MTokens: candidate.inputCostPer1MTokens,
472
+ outputCostPer1MTokens: candidate.outputCostPer1MTokens,
473
+ cachedInputCostPer1MTokens: candidate.cachedInputCostPer1MTokens,
474
+ }),
475
+ };
476
+ }
248
477
  /**
249
478
  * Whether this tier's provider honours OpenAI's STRICT structured-output mode.
250
479
  *
@@ -286,6 +515,8 @@ let ModelService = ModelService_1 = class ModelService {
286
515
  * Lower = more deterministic, Higher = more creative
287
516
  * @param params.maxOutputTokens - Maximum output tokens (default from config)
288
517
  * @param params.modelWeight - Which AI tier to use (undefined → Normal)
518
+ * @param params.candidateIndex - Which link of the tier's fallback chain to
519
+ * build (default 0 = first healthy candidate)
289
520
  * @returns Configured BaseChatModel instance from LangChain
290
521
  * @throws {Error} If the configured LLM type is not supported
291
522
  */
@@ -294,7 +525,7 @@ let ModelService = ModelService_1 = class ModelService {
294
525
  return new testing_1.FakeListChatModel({ responses: ["mock summary"] });
295
526
  }
296
527
  const temperature = params?.temperature ?? 0.2;
297
- const cfg = this.getResolvedConfig(params?.modelWeight);
528
+ const cfg = this.pickCandidate(this.weightToType(params?.modelWeight), params?.candidateIndex);
298
529
  const maxOutputTokens = params?.maxOutputTokens ?? cfg.maxOutputTokens;
299
530
  // Precedence (Shared Contracts, plan 2026-07-31-llm-latency-and-structured-output):
300
531
  // an explicit per-call `reasoningEffort` wins; failing that, the equally
@@ -314,7 +545,11 @@ let ModelService = ModelService_1 = class ModelService {
314
545
  // pair — two different spellings of the same effort must hit the same entry.
315
546
  // `timeoutMs` and `frequencyPenalty` are part of the key because both are
316
547
  // baked into the constructed client, not passed per invocation.
548
+ // The connection id leads the key: two links of the same chain may agree on
549
+ // every other resolved parameter yet be different deployments (and carry
550
+ // different credentials), so each one caches its own client.
317
551
  const cacheKey = [
552
+ cfg.connectionId,
318
553
  cfg.provider,
319
554
  cfg.instance ?? cfg.url,
320
555
  cfg.model,
@@ -364,6 +599,8 @@ let ModelService = ModelService_1 = class ModelService {
364
599
  *
365
600
  * @param params - Optional parameters
366
601
  * @param params.temperature - Temperature for text generation (0-2, default: 0.1)
602
+ * @param params.candidateIndex - Which link of the vision fallback chain to
603
+ * build (default 0 = first healthy candidate)
367
604
  * @returns Configured BaseChatModel instance from LangChain
368
605
  * @throws {Error} If the configured LLM type is not supported
369
606
  */
@@ -372,7 +609,7 @@ let ModelService = ModelService_1 = class ModelService {
372
609
  return new testing_1.FakeListChatModel({ responses: ["mock summary"] });
373
610
  }
374
611
  const temperature = params?.temperature ?? 0.1;
375
- const visionConfig = this.visionConfig;
612
+ const visionConfig = this.pickCandidate("vision", params?.candidateIndex);
376
613
  // Reasoning models (gpt-5 / o-series) accept `reasoning_effort` on the chat-completions
377
614
  // call. Lower effort = far fewer reasoning tokens = much faster. Passed via modelKwargs
378
615
  // (raw param) because the LangChain `reasoning` object is rejected by Azure chat-completions
@@ -383,7 +620,14 @@ let ModelService = ModelService_1 = class ModelService {
383
620
  // block reads its own `VISION_REASONING_EFFORT` and is just as typo-prone.
384
621
  const visionEffort = normaliseConfiguredReasoningEffort(visionConfig.reasoningEffort);
385
622
  const modelKwargs = isReasoningVisionModel && visionEffort ? { reasoning_effort: visionEffort } : undefined;
386
- return this.buildChatModel(visionConfig, { temperature, credentialFileTag: "vision", modelKwargs });
623
+ return this.buildChatModel(visionConfig, {
624
+ temperature,
625
+ credentialFileTag: "vision",
626
+ modelKwargs,
627
+ // Absent on the `.env` vision block (it has no such field), so this stays
628
+ // undefined — and today's behaviour — until a DB connection sets it.
629
+ maxOutputTokens: visionConfig.maxOutputTokens,
630
+ });
387
631
  }
388
632
  /**
389
633
  * Gets a configured LLM instance for audio operations based on the current config.
@@ -397,7 +641,7 @@ let ModelService = ModelService_1 = class ModelService {
397
641
  */
398
642
  getAudioLLM(params) {
399
643
  const temperature = params?.temperature ?? 0.1;
400
- return this.buildChatModel(this.audioConfig, { temperature, credentialFileTag: "audio" });
644
+ return this.buildChatModel(this.pickCandidate("audio"), { temperature, credentialFileTag: "audio" });
401
645
  }
402
646
  /**
403
647
  * Builds a LangChain chat model from a resolved config block.
@@ -570,51 +814,62 @@ let ModelService = ModelService_1 = class ModelService {
570
814
  };
571
815
  }
572
816
  const rateLimit = this.aiConfig.embedder.rateLimit;
817
+ const candidate = this.pickCandidate("embedder");
573
818
  if (rateLimit && this.bucket && this.logger) {
574
- if (this.cachedEmbedder)
819
+ // Memoised per CONNECTION: an admin editing the embedder connection must
820
+ // take effect on the next call, not on the next process restart.
821
+ if (this.cachedEmbedder && this.cachedEmbedderConnectionId === candidate.connectionId)
575
822
  return this.cachedEmbedder;
576
- const inner = this.buildInnerEmbedder();
823
+ const inner = this.buildInnerEmbedder(candidate);
577
824
  this.cachedEmbedder = new rate_limited_embedder_1.RateLimitedEmbedder(inner, this.bucket, rateLimit, this.logger);
825
+ this.cachedEmbedderConnectionId = candidate.connectionId;
578
826
  return this.cachedEmbedder;
579
827
  }
580
- return this.buildInnerEmbedder();
828
+ return this.buildInnerEmbedder(candidate);
581
829
  }
582
- buildInnerEmbedder() {
830
+ /**
831
+ * Builds the raw provider embedder for one resolved candidate. `dimensions`
832
+ * falls back to the `.env` embedder block when the candidate does not carry
833
+ * one, so a DB connection that omits it keeps today's vector size.
834
+ */
835
+ buildInnerEmbedder(candidate) {
583
836
  let response;
584
- switch (this.aiConfig.embedder.provider) {
837
+ const embedderConfig = candidate ?? this.pickCandidate("embedder");
838
+ const dimensions = embedderConfig.dimensions ?? this.aiConfig.embedder?.dimensions;
839
+ switch (embedderConfig.provider) {
585
840
  case "local":
586
841
  throw new Error("Local embedder is not supported");
587
842
  case "openrouter":
588
843
  response = new openai_1.OpenAIEmbeddings({
589
- openAIApiKey: this.aiConfig.embedder.apiKey,
590
- model: this.aiConfig.embedder.model,
844
+ openAIApiKey: embedderConfig.apiKey,
845
+ model: embedderConfig.model,
591
846
  configuration: {
592
- baseURL: this.aiConfig.embedder.url,
847
+ baseURL: embedderConfig.url,
593
848
  },
594
849
  });
595
850
  break;
596
851
  case "requesty":
597
852
  response = new openai_1.OpenAIEmbeddings({
598
- openAIApiKey: this.aiConfig.embedder.apiKey,
599
- model: this.aiConfig.embedder.model,
600
- dimensions: this.aiConfig.embedder.dimensions,
853
+ openAIApiKey: embedderConfig.apiKey,
854
+ model: embedderConfig.model,
855
+ dimensions: dimensions,
601
856
  configuration: {
602
- baseURL: this.aiConfig.embedder.url,
857
+ baseURL: embedderConfig.url,
603
858
  },
604
859
  });
605
860
  break;
606
861
  case "openai":
607
862
  response = new openai_1.OpenAIEmbeddings({
608
- openAIApiKey: this.aiConfig.embedder.apiKey,
609
- model: this.aiConfig.embedder.model,
863
+ openAIApiKey: embedderConfig.apiKey,
864
+ model: embedderConfig.model,
610
865
  });
611
866
  break;
612
867
  case "azure":
613
868
  response = new openai_1.AzureOpenAIEmbeddings({
614
- azureOpenAIApiKey: this.aiConfig.embedder.apiKey,
615
- azureOpenAIApiInstanceName: this.aiConfig.embedder.instance,
616
- azureOpenAIApiDeploymentName: this.aiConfig.embedder.model,
617
- azureOpenAIApiVersion: this.aiConfig.embedder.apiVersion,
869
+ azureOpenAIApiKey: embedderConfig.apiKey,
870
+ azureOpenAIApiInstanceName: embedderConfig.instance,
871
+ azureOpenAIApiDeploymentName: embedderConfig.model,
872
+ azureOpenAIApiVersion: embedderConfig.apiVersion,
618
873
  batchSize: 100,
619
874
  });
620
875
  break;
@@ -622,7 +877,6 @@ let ModelService = ModelService_1 = class ModelService {
622
877
  // Google Vertex AI Embeddings (uses embedder-specific credentials).
623
878
  // Match app-local behaviour: set GOOGLE_APPLICATION_CREDENTIALS and LEAVE it set
624
879
  // (the project id is resolved lazily at request time — do NOT restore/delete it).
625
- const embedderConfig = this.aiConfig.embedder;
626
880
  if (embedderConfig.googleCredentialsBase64) {
627
881
  const credentialsJson = Buffer.from(embedderConfig.googleCredentialsBase64, "base64").toString("utf-8");
628
882
  const credsPath = writeGcpCredentials(credentialsJson, "embedder");
@@ -633,7 +887,7 @@ let ModelService = ModelService_1 = class ModelService {
633
887
  location: embedderConfig.region,
634
888
  // EMBEDDER_REGION accepts a region or a multi-region, same as AI_REGION.
635
889
  ...(0, vertex_utils_1.vertexLocationParams)(embedderConfig.region),
636
- dimensions: embedderConfig.dimensions,
890
+ dimensions: dimensions,
637
891
  });
638
892
  break;
639
893
  }
@@ -641,7 +895,7 @@ let ModelService = ModelService_1 = class ModelService {
641
895
  return response;
642
896
  }
643
897
  getEmbedderDimensions() {
644
- return this.aiConfig.embedder.dimensions;
898
+ return this.pickCandidate("embedder").dimensions ?? this.aiConfig.embedder.dimensions;
645
899
  }
646
900
  /**
647
901
  * Builds an OpenAI / Azure OpenAI SDK client for audio transcription. This is
@@ -650,7 +904,7 @@ let ModelService = ModelService_1 = class ModelService {
650
904
  * by the `transcriber` config block (TRANSCRIBER_* env vars).
651
905
  */
652
906
  getTranscriber() {
653
- const transcriber = this.aiConfig.transcriber;
907
+ const transcriber = this.pickCandidate("transcriber");
654
908
  switch (transcriber.provider) {
655
909
  case "openai":
656
910
  return new openai_2.default({ apiKey: transcriber.apiKey });
@@ -666,9 +920,11 @@ let ModelService = ModelService_1 = class ModelService {
666
920
  }
667
921
  }
668
922
  async transcribeAudio(params) {
923
+ // Same candidate the client above was built from — reading the model from
924
+ // config while the client came from a DB connection would mix two chains.
669
925
  return await this.getTranscriber().audio.transcriptions.create({
670
926
  file: fs.createReadStream(params.filePath),
671
- model: this.aiConfig.transcriber.model,
927
+ model: this.pickCandidate("transcriber").model,
672
928
  prompt: params.prompt,
673
929
  response_format: "json",
674
930
  });
@@ -679,9 +935,11 @@ exports.ModelService = ModelService = ModelService_1 = __decorate([
679
935
  (0, common_1.Injectable)(),
680
936
  __param(2, (0, common_1.Optional)()),
681
937
  __param(3, (0, common_1.Optional)()),
938
+ __param(4, (0, common_1.Optional)()),
682
939
  __metadata("design:paramtypes", [nestjs_cls_1.ClsService,
683
940
  config_1.ConfigService,
684
941
  embedder_token_bucket_service_1.EmbedderTokenBucketService,
685
- logging_service_1.AppLoggingService])
942
+ logging_service_1.AppLoggingService,
943
+ ai_connection_resolver_service_1.AiConnectionResolverService])
686
944
  ], ModelService);
687
945
  //# sourceMappingURL=model.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/model.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.service.js","sourceRoot":"","sources":["../../../../src/core/llm/services/model.service.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,22 @@ export declare class VisionLLMService {
38
38
  */
39
39
  private withTimeout;
40
40
  /**
41
- * Execute a function with exponential backoff retry on rate limit errors
41
+ * Puts the vision candidate that just rate-limited into its cooldown window,
42
+ * so the next resolution reaches for the next link of the chain instead.
43
+ *
44
+ * Best-effort in every direction — no candidate-aware `ModelService`, an empty
45
+ * chain, or a throwing registry all leave the retry exactly as it was.
46
+ * Failover bookkeeping must never turn a retryable 429 into a hard failure.
47
+ */
48
+ private markCandidateFailure;
49
+ /**
50
+ * Execute a function with exponential backoff retry on rate limit errors.
51
+ *
52
+ * `fn` receives the ATTEMPT INDEX so it can rebuild its model against the
53
+ * n-th connection of the vision chain — that is what makes a 429 move to a
54
+ * different provider rather than knocking on the same closed door. With no
55
+ * DB-backed connections every index resolves the same `.env` connection, i.e.
56
+ * today's behaviour.
42
57
  */
43
58
  private withRetry;
44
59
  /**
@@ -72,6 +87,15 @@ export declare class VisionLLMService {
72
87
  * @returns Promise with parsed response and raw content
73
88
  */
74
89
  private callWithoutStructuredOutput;
90
+ /**
91
+ * Builds the structured-output vision model for ONE attempt, from the
92
+ * `candidateIndex`-th link of the vision fallback chain.
93
+ *
94
+ * Extracted from {@link call} so each retry can rebuild against a different
95
+ * connection; the provider-shaped schema handling (Gemini sanitization,
96
+ * pre-converted JSON Schema for Azure/GPT-5, raw Zod elsewhere) is unchanged.
97
+ */
98
+ private buildStructuredVisionModel;
75
99
  /**
76
100
  * Calls the LLM with an image for vision analysis using structured output.
77
101
  *
@@ -1 +1 @@
1
- {"version":3,"file":"vision.llm.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/vision.llm.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAIhE;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,UAAU,gBAAgB,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,gBAAgB;IAMzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;gBAGvB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAG7D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;YACW,SAAS;IAyBvB;;;OAGG;YACW,kBAAkB;IAahC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;;OAQG;YACW,2BAA2B;IAgDzC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG;QAAE,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAyH3G"}
1
+ {"version":3,"file":"vision.llm.service.d.ts","sourceRoot":"","sources":["../../../../src/core/llm/services/vision.llm.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAgBhE;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,UAAU,gBAAgB,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,gBAAgB;IAMzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;gBAGvB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAG7D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;;;;;;;OAQG;YACW,SAAS;IA6BvB;;;OAGG;YACW,kBAAkB;IAahC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;;OAQG;YACW,2BAA2B;IAmDzC;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAyBlC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG;QAAE,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAkG3G"}