@runnerpro/backend 1.29.0 → 1.31.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.
@@ -214,6 +214,38 @@ function withLaxSchemaDefaults(options) {
214
214
  const po = options.providerOptions;
215
215
  return Object.assign(Object.assign({}, options), { providerOptions: Object.assign(Object.assign({}, po), { openai: Object.assign({ strictJsonSchema: false }, po === null || po === void 0 ? void 0 : po.openai), azure: Object.assign({ strictJsonSchema: false }, po === null || po === void 0 ? void 0 : po.azure) }) });
216
216
  }
217
+ /**
218
+ * Quita `temperature` cuando el modelo que va a atender ESTA llamada la descarta.
219
+ *
220
+ * Los GPT-5.x de Azure son "reasoning models": el SDK borra `temperature` y emite un warning
221
+ * ("temperature is not supported for reasoning models") en CADA llamada. No rompe nada —la
222
+ * llamada sigue y no salta al fallback—, pero ensucia los logs del pipeline (~80 call sites
223
+ * pasan temperature) y hace creer que el valor se está aplicando cuando no es así.
224
+ *
225
+ * ⚠️ Se aplica POR INTENTO, no una vez al entrar: la cola de la cascada es Gemini, y ahí
226
+ * `temperature` SÍ se respeta. Los modelos de Google/Bedrock no llevan la etiqueta
227
+ * `_ignoresTemperature`, así que conservan el valor que pase el caller.
228
+ *
229
+ * @param options - Opciones tal y como se van a mandar al SDK en este intento
230
+ * @returns Las mismas opciones, sin `temperature` si el modelo la fuese a descartar
231
+ */
232
+ function withoutUnsupportedTemperature(options) {
233
+ var _a, _b, _c;
234
+ const model = options.model;
235
+ if (!(model === null || model === void 0 ? void 0 : model._ignoresTemperature))
236
+ return options;
237
+ if (typeof options.temperature !== 'number')
238
+ return options;
239
+ // Única vía de escape del SDK: reasoningEffort 'none' en las familias que aún admiten
240
+ // parámetros de muestreo (5.1–5.5). Si el caller la pide, respetamos su temperature.
241
+ const po = options.providerOptions;
242
+ const reasoningEffort = (_b = (_a = po === null || po === void 0 ? void 0 : po.openai) === null || _a === void 0 ? void 0 : _a.reasoningEffort) !== null && _b !== void 0 ? _b : (_c = po === null || po === void 0 ? void 0 : po.azure) === null || _c === void 0 ? void 0 : _c.reasoningEffort;
243
+ if (reasoningEffort === 'none' && model._supportsNonReasoningParameters)
244
+ return options;
245
+ const rest = Object.assign({}, options);
246
+ delete rest.temperature;
247
+ return rest;
248
+ }
217
249
  function generateObject(options) {
218
250
  var _a;
219
251
  return __awaiter(this, void 0, void 0, function* () {
@@ -236,7 +268,7 @@ function generateObject(options) {
236
268
  let fallbackIdx = 0;
237
269
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
238
270
  try {
239
- const { object, usage } = yield (0, ai_1.generateObject)(currentOptions);
271
+ const { object, usage } = yield (0, ai_1.generateObject)(withoutUnsupportedTemperature(currentOptions));
240
272
  const modelName = extractModelName(currentOptions.model);
241
273
  const cost = (0, modelPricing_1.calculateCost)(modelName, usage === null || usage === void 0 ? void 0 : usage.inputTokens, usage === null || usage === void 0 ? void 0 : usage.outputTokens);
242
274
  const tracker = costTrackingStorage.getStore();
@@ -397,7 +429,7 @@ function generateText(options) {
397
429
  let fallbackIdx = 0;
398
430
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
399
431
  try {
400
- const { text, usage } = yield (0, ai_1.generateText)(currentOptions);
432
+ const { text, usage } = yield (0, ai_1.generateText)(withoutUnsupportedTemperature(currentOptions));
401
433
  const modelName = extractModelName(currentOptions.model);
402
434
  const cost = (0, modelPricing_1.calculateCost)(modelName, usage === null || usage === void 0 ? void 0 : usage.inputTokens, usage === null || usage === void 0 ? void 0 : usage.outputTokens);
403
435
  const cleanResult = yield ensureNoChainOfThought({ rawText: text, baseCost: cost, originalOptions: options, modelLabel: modelName });
@@ -459,9 +491,11 @@ function ensureNoChainOfThought(params) {
459
491
  const accumulatedCost = Object.assign({}, baseCost);
460
492
  const baseTemperature = typeof originalOptions.temperature === 'number' ? originalOptions.temperature : 0.7;
461
493
  const retryTemperature = Math.min(1, baseTemperature + 0.1);
462
- // Paso 2: retry con system anti-CoT y temperatura ligeramente superior
494
+ // Paso 2: retry con system anti-CoT y temperatura ligeramente superior.
495
+ // En los reasoning models de Azure el empujón de temperatura no llega a aplicarse (el SDK la
496
+ // descarta), así que allí lo que desatasca el retry es únicamente el `system` reforzado.
463
497
  try {
464
- const { text: retryText, usage: retryUsage } = yield (0, ai_1.generateText)(Object.assign(Object.assign({}, originalOptions), { system: buildAntiCotSystem(originalOptions.system), temperature: retryTemperature }));
498
+ const { text: retryText, usage: retryUsage } = yield (0, ai_1.generateText)(withoutUnsupportedTemperature(Object.assign(Object.assign({}, originalOptions), { system: buildAntiCotSystem(originalOptions.system), temperature: retryTemperature })));
465
499
  const retryModelLabel = extractModelName(originalOptions.model);
466
500
  const retryCost = (0, modelPricing_1.calculateCost)(retryModelLabel, retryUsage === null || retryUsage === void 0 ? void 0 : retryUsage.inputTokens, retryUsage === null || retryUsage === void 0 ? void 0 : retryUsage.outputTokens);
467
501
  accumulatedCost.inputTokens = (accumulatedCost.inputTokens || 0) + (retryCost.inputTokens || 0);
@@ -20,10 +20,34 @@ function getAzureProvider() {
20
20
  const baseURL = process.env.AZURE_BASE_URL;
21
21
  return (0, azure_1.createAzure)(Object.assign(Object.assign({ apiKey: process.env.AZURE_API_KEY }, (baseURL ? { baseURL } : { resourceName: process.env.AZURE_RESOURCE_NAME })), (apiVersion ? { apiVersion } : {})));
22
22
  }
23
+ // Prefijos de razonamiento que NO son de la familia gpt-5 (esa se trata aparte por la
24
+ // excepción de gpt-5-chat, que es el único gpt-5* conversacional).
25
+ const OPENAI_REASONING_PREFIXES = ['o1', 'o3', 'o4-mini'];
26
+ // Familias que recuperan los parámetros de muestreo si se pide `reasoningEffort: 'none'`.
27
+ // ⚠️ La 5.6 NO está en la lista: en terra/luna `temperature` se descarta siempre, pase lo
28
+ // que pase. Réplica de `supportsNonReasoningParameters` en @ai-sdk/openai.
29
+ const NON_REASONING_PARAM_PREFIXES = ['gpt-5.1', 'gpt-5.2', 'gpt-5.3', 'gpt-5.4', 'gpt-5.5'];
30
+ /**
31
+ * Indica si el SDK va a tratar el deployment como "reasoning model" y, por tanto, va a
32
+ * DESCARTAR `temperature` y `topP` antes de llamar (avisando con un warning por llamada).
33
+ *
34
+ * Réplica de `getOpenAILanguageModelCapabilities` de @ai-sdk/openai: los modelos `.responses()`
35
+ * de @ai-sdk/azure comparten ese parser, así que la regla aplica igual a los deployments de Azure.
36
+ * Los DeepSeek quedan fuera a propósito (no empiezan por gpt-5/o*), que es justo lo que hace el SDK.
37
+ *
38
+ * @param deploymentName - Nombre del deployment (ej: 'gpt-5.6-terra')
39
+ * @returns true si el SDK descartará los parámetros de muestreo
40
+ */
41
+ function isReasoningDeployment(deploymentName) {
42
+ if (deploymentName.startsWith('gpt-5'))
43
+ return !deploymentName.startsWith('gpt-5-chat');
44
+ return OPENAI_REASONING_PREFIXES.some((prefix) => deploymentName.startsWith(prefix));
45
+ }
23
46
  /**
24
47
  * Crea una instancia del modelo de Azure OpenAI a partir del nombre del deployment.
25
48
  * Etiqueta el objeto con _productionModelName (nombre limpio, sin el prefijo "azure:")
26
- * para el cálculo de costes.
49
+ * para el cálculo de costes, y con _ignoresTemperature / _supportsNonReasoningParameters
50
+ * para que `generateObject`/`generateText` no manden `temperature` a un modelo que la descarta.
27
51
  *
28
52
  * @param deploymentName - Nombre del deployment en Azure (ej: 'gpt-5')
29
53
  * @returns Instancia del modelo de Azure compatible con AI SDK
@@ -42,6 +66,8 @@ function createAzureModelFromString(deploymentName) {
42
66
  const model = azure.responses(deploymentName);
43
67
  model._productionModelName = deploymentName;
44
68
  model._fallbackModelNames = [];
69
+ model._ignoresTemperature = isReasoningDeployment(deploymentName);
70
+ model._supportsNonReasoningParameters = NON_REASONING_PARAM_PREFIXES.some((prefix) => deploymentName.startsWith(prefix));
45
71
  return model;
46
72
  }
47
73
  exports.createAzureModelFromString = createAzureModelFromString;
@@ -78,16 +78,20 @@ const AZURE_PRIMARY_MODELS = {
78
78
  };
79
79
  exports.AZURE_PRIMARY_MODELS = AZURE_PRIMARY_MODELS;
80
80
  // Fallbacks Azure por tier (en orden): se anteponen a la cascada Gemini en createGoogleModel,
81
- // para agotar el proveedor primario antes de cambiar de nube. Los DeepSeek cierran el tramo
82
- // Azure como familia independiente: si Azure-OpenAI cae entero, se sigue quemando crédito
83
- // Azure antes de pagar Gemini. Parrilla de David (4-ago-2026):
84
- // PRO terra5.5 → Gemini
85
- // FLASH → terra → luna → DeepSeek-V4-Pro → Gemini
86
- // LITE → luna mini nano DeepSeek-V4-Flash Gemini
81
+ // para agotar el proveedor primario antes de cambiar de nube.
82
+ // PRO → 5.5 Gemini
83
+ // FLASH luna Gemini
84
+ // LITE mininano → Gemini
85
+ //
86
+ // ⚠️ Los DeepSeek NO entran aquí pese a estar desplegados: no sirven para generateObject.
87
+ // Con strictJsonSchema=true rechazan los esquemas del proyecto (piden additionalProperties y
88
+ // required completo) y con false ignoran el json_schema y contestan en prosa, que el SDK no
89
+ // puede parsear («No object generated»). Verificado el 5-ago-2026 contra el esquema real del
90
+ // agente entrenador. Siguen exportados por si se usan en generateText, donde sí responden bien.
87
91
  const AZURE_FALLBACK_MODELS = {
88
92
  PRO: [AZURE_GPT_5_5],
89
- FLASH: [AZURE_GPT_5_6_LUNA, AZURE_DEEPSEEK_V4_PRO],
90
- LITE: [AZURE_GPT_5_4_MINI, AZURE_GPT_5_4_NANO, AZURE_DEEPSEEK_V4_FLASH],
93
+ FLASH: [AZURE_GPT_5_6_LUNA],
94
+ LITE: [AZURE_GPT_5_4_MINI, AZURE_GPT_5_4_NANO],
91
95
  };
92
96
  exports.AZURE_FALLBACK_MODELS = AZURE_FALLBACK_MODELS;
93
97
  // ⚠️ Bedrock/Claude retirado del enrutado: el provider, las constantes BEDROCK_CLAUDE_*
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../../src/prompt/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAEpG,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoNhE,iBAAe,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAoD/H;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iBAAe,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CA4C5H;AA+ED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAe,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,SAAS,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB5H;AAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../../src/prompt/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,IAAI,CAAC;AAEpG,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmPhE,iBAAe,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CAoD/H;AAkFD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iBAAe,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,CA4C5H;AAmFD;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAe,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,SAAS,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB5H;AAED,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Crea una instancia del modelo de Azure OpenAI a partir del nombre del deployment.
3
3
  * Etiqueta el objeto con _productionModelName (nombre limpio, sin el prefijo "azure:")
4
- * para el cálculo de costes.
4
+ * para el cálculo de costes, y con _ignoresTemperature / _supportsNonReasoningParameters
5
+ * para que `generateObject`/`generateText` no manden `temperature` a un modelo que la descarta.
5
6
  *
6
7
  * @param deploymentName - Nombre del deployment en Azure (ej: 'gpt-5')
7
8
  * @returns Instancia del modelo de Azure compatible con AI SDK
@@ -1 +1 @@
1
- {"version":3,"file":"azureModel.d.ts","sourceRoot":"","sources":["../../../../src/prompt/azureModel.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;GAaG;AACH,iBAAS,0BAA0B,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,CAS/D;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"azureModel.d.ts","sourceRoot":"","sources":["../../../../src/prompt/azureModel.ts"],"names":[],"mappings":"AAkDA;;;;;;;;;;;;;;GAcG;AACH,iBAAS,0BAA0B,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,CAW/D;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/prompt/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/prompt/constants.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAIzC,QAAA,MAAM,mBAAmB,oCAAoC,CAAC;AAC9D,QAAA,MAAM,qBAAqB,mCAAmC,CAAC;AAC/D,QAAA,MAAM,uBAAuB,+CAA+C,CAAC;AAC7E,QAAA,MAAM,uBAAuB,+CAA+C,CAAC;AAC7E,QAAA,MAAM,yBAAyB,iDAAiD,CAAC;AACjF,QAAA,MAAM,uBAAuB,+CAA+C,CAAC;AAC7E,QAAA,MAAM,oBAAoB,gDAAgD,CAAC;AAE3E,QAAA,MAAM,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAI3C,CAAC;AAMF,QAAA,MAAM,YAAY,WAAW,CAAC;AAC9B,QAAA,MAAM,wBAAwB,QAAoD,CAAC;AAGnF,QAAA,MAAM,4BAA4B,QAA4D,CAAC;AAC/F,QAAA,MAAM,8BAA8B,QAAgE,CAAC;AACrG,QAAA,MAAM,6BAA6B,QAA8D,CAAC;AAClG,QAAA,MAAM,6BAA6B,QAA8D,CAAC;AAClG,QAAA,MAAM,6BAA6B,QAA8D,CAAC;AAIlG,QAAA,MAAM,gCAAgC,QAAoE,CAAC;AAC3G,QAAA,MAAM,kCAAkC,QAAwE,CAAC;AAEjH,QAAA,MAAM,aAAa,QAA+C,CAAC;AACnE,QAAA,MAAM,iBAAiB,QAAmD,CAAC;AAC3E,QAAA,MAAM,mBAAmB,QAAqD,CAAC;AAC/E,QAAA,MAAM,kBAAkB,QAAoD,CAAC;AAC7E,QAAA,MAAM,kBAAkB,QAAoD,CAAC;AAC7E,QAAA,MAAM,kBAAkB,QAAoD,CAAC;AAC7E,QAAA,MAAM,qBAAqB,QAAuD,CAAC;AACnF,QAAA,MAAM,uBAAuB,QAAyD,CAAC;AAQvF,QAAA,MAAM,oBAAoB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAIlD,CAAC;AAaF,QAAA,MAAM,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAI9D,CAAC;AAKF,QAAA,MAAM,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAI/C,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAIzC,CAAC;AAEF,QAAA,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAIzC,CAAC;AAGF,QAAA,MAAM,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAI1C,CAAC;AAEF,QAAA,MAAM,eAAe,cAAc,CAAC;AAIpC,QAAA,MAAM,oBAAoB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAIlD,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAkB/C,CAAC;AAEF,QAAA,MAAM,UAAU;;;;;CAKN,CAAC;AAEX,KAAK,cAAc,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AASnE;;;;;;;;GAQG;AACH,QAAA,MAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQtC,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,iBAAS,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAErF;AAED,OAAO,EACL,QAAQ,EACR,cAAc,EACd,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,wBAAwB,EACxB,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,gCAAgC,EAChC,kCAAkC,EAClC,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,aAAa,GACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runnerpro/backend",
3
- "version": "1.29.0",
3
+ "version": "1.31.0",
4
4
  "description": "A collection of common backend functions",
5
5
  "exports": {
6
6
  ".": "./lib/cjs/index.js"