@ssolis-ti/mcp-compra-agil 2.1.0 → 2.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 (43) hide show
  1. package/README.md +3 -2
  2. package/dist/api/compra-agil-client.d.ts +35 -1
  3. package/dist/api/compra-agil-client.d.ts.map +1 -1
  4. package/dist/api/compra-agil-client.js +69 -4
  5. package/dist/api/compra-agil-client.js.map +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/services/monitor.js +1 -1
  9. package/dist/services/monitor.js.map +1 -1
  10. package/dist/tools/analizar-precios-mercado.js +2 -2
  11. package/dist/tools/auditar-desiertas.js +2 -2
  12. package/dist/tools/detalle-oc.d.ts.map +1 -1
  13. package/dist/tools/detalle-oc.js +2 -3
  14. package/dist/tools/detalle-oc.js.map +1 -1
  15. package/dist/tools/documentos.d.ts.map +1 -1
  16. package/dist/tools/documentos.js +68 -37
  17. package/dist/tools/documentos.js.map +1 -1
  18. package/dist/tools/estadisticas-uso.d.ts.map +1 -1
  19. package/dist/tools/estadisticas-uso.js +12 -2
  20. package/dist/tools/estadisticas-uso.js.map +1 -1
  21. package/dist/tools/generar-borrador.d.ts +25 -1
  22. package/dist/tools/generar-borrador.d.ts.map +1 -1
  23. package/dist/tools/generar-borrador.js +96 -78
  24. package/dist/tools/generar-borrador.js.map +1 -1
  25. package/dist/tools/verificar-oc.d.ts.map +1 -1
  26. package/dist/tools/verificar-oc.js +30 -4
  27. package/dist/tools/verificar-oc.js.map +1 -1
  28. package/dist/utils/cache.d.ts +53 -0
  29. package/dist/utils/cache.d.ts.map +1 -0
  30. package/dist/utils/cache.js +131 -0
  31. package/dist/utils/cache.js.map +1 -0
  32. package/dist/utils/doc-search.d.ts +52 -0
  33. package/dist/utils/doc-search.d.ts.map +1 -0
  34. package/dist/utils/doc-search.js +97 -0
  35. package/dist/utils/doc-search.js.map +1 -0
  36. package/dist/utils/error-handler.d.ts.map +1 -1
  37. package/dist/utils/error-handler.js +4 -6
  38. package/dist/utils/error-handler.js.map +1 -1
  39. package/dist/utils/rate-limiter.d.ts +37 -2
  40. package/dist/utils/rate-limiter.d.ts.map +1 -1
  41. package/dist/utils/rate-limiter.js +101 -13
  42. package/dist/utils/rate-limiter.js.map +1 -1
  43. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"documentos.js","sourceRoot":"","sources":["../../src/tools/documentos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documentos.js","sourceRoot":"","sources":["../../src/tools/documentos.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"estadisticas-uso.d.ts","sourceRoot":"","sources":["../../src/tools/estadisticas-uso.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAKhE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAgBzF"}
1
+ {"version":3,"file":"estadisticas-uso.d.ts","sourceRoot":"","sources":["../../src/tools/estadisticas-uso.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMhE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAyBzF"}
@@ -5,16 +5,26 @@
5
5
  * para la API de Compra Ágil de Mercado Público.
6
6
  */
7
7
  const TOOL_NAME = 'obtener_estadisticas_uso';
8
- const TOOL_DESCRIPTION = 'Obtiene las estadísticas de uso de la API y el estado actual de la cuota diaria (Rate Limiting). Útil para que el agente supervise cuántos requests quedan disponibles.';
8
+ const TOOL_DESCRIPTION = `Informa cuántas consultas a la API lleva hecha esta instalación en el día UTC en curso, y si ya se recibió un 429 por cuota agotada.
9
+ IMPORTANTE: es un conteo LOCAL, no el saldo oficial del ticket. La API no publica cuánta cuota queda, y el ticket puede estar siendo consumido también por otras herramientas o equipos. Sirve para moderar el gasto, no para afirmar cuántas consultas quedan.`;
9
10
  export function registerEstadisticasUso(server, client) {
10
11
  server.registerTool(TOOL_NAME, {
11
12
  description: TOOL_DESCRIPTION,
12
13
  }, async () => {
13
14
  const stats = client.getRateLimitStats();
15
+ const salida = {
16
+ _alcance: 'Conteo local de esta instalación para el día UTC en curso. La API no expone el saldo real del ticket; si otras herramientas usan el mismo ticket, el consumo real es mayor que este número.',
17
+ requests_hechos_hoy: stats.requestsToday,
18
+ cuota_agotada: stats.isLimited,
19
+ reset_estimado: stats.resetTime,
20
+ _nota: stats.isLimited
21
+ ? 'Se recibió un 429: la cuota diaria del ticket está agotada hasta el reset indicado. Evita nuevas consultas hasta entonces.'
22
+ : 'No se ha recibido ningún 429 en esta jornada. Eso NO garantiza que quede cuota: solo que esta instalación aún no ha chocado con el límite.',
23
+ };
14
24
  return {
15
25
  content: [{
16
26
  type: 'text',
17
- text: JSON.stringify(stats, null, 2),
27
+ text: JSON.stringify(salida, null, 2),
18
28
  }],
19
29
  };
20
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"estadisticas-uso.js","sourceRoot":"","sources":["../../src/tools/estadisticas-uso.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAC7C,MAAM,gBAAgB,GAAG,yKAAyK,CAAC;AAEnM,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,MAAwB;IACjF,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBACrC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"estadisticas-uso.js","sourceRoot":"","sources":["../../src/tools/estadisticas-uso.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,SAAS,GAAG,0BAA0B,CAAC;AAC7C,MAAM,gBAAgB,GAAG;gQACuO,CAAC;AAEjQ,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,MAAwB;IACjF,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,WAAW,EAAE,gBAAgB;KAC9B,EACD,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,6LAA6L;YACvM,mBAAmB,EAAE,KAAK,CAAC,aAAa;YACxC,aAAa,EAAE,KAAK,CAAC,SAAS;YAC9B,cAAc,EAAE,KAAK,CAAC,SAAS;YAC/B,KAAK,EAAE,KAAK,CAAC,SAAS;gBACpB,CAAC,CAAC,4HAA4H;gBAC9H,CAAC,CAAC,4IAA4I;SACjJ,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,28 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { CompraAgilClient } from '../api/compra-agil-client.js';
2
+ import { CompraAgilClient, CompraAgilDetalle } from '../api/compra-agil-client.js';
3
+ /** Precio de relleno cuando no se pudo estimar nada. Hay que advertirlo. */
4
+ export declare const PRECIO_PLACEHOLDER = 1000;
5
+ export interface EstimacionPrecio {
6
+ precio: number;
7
+ fuente: string;
8
+ /** `false` ⇒ es el placeholder y el borrador debe advertirlo. */
9
+ sugerido: boolean;
10
+ }
11
+ /**
12
+ * Decide el precio unitario del borrador, en orden de preferencia:
13
+ * 1. el que ingresó el usuario,
14
+ * 2. el percentil 25 de lo que cotizó el mercado en procesos similares,
15
+ * 3. el presupuesto del comprador menos 10%,
16
+ * 4. un placeholder de $1.000, que se advierte explícitamente.
17
+ *
18
+ * ⚠ POR QUÉ EL PASO 3 VIVE FUERA DEL try: antes, la consulta de precios de
19
+ * mercado y el respaldo por presupuesto estaban dentro del mismo bloque, así
20
+ * que CUALQUIER fallo de la API durante la consulta —un 429 por cuota
21
+ * agotada, típicamente— saltaba también el respaldo y el borrador salía con
22
+ * $1.000, pese a que el presupuesto ya estaba en la mano desde el detalle y
23
+ * no requería ninguna llamada adicional. Detectado en auditoría: un llamado
24
+ * de $4.800.000 generó un borrador de $1.000 por este camino.
25
+ */
26
+ export declare function estimarPrecioUnitario(client: Pick<CompraAgilClient, 'buscar' | 'detalle'>, detalle: CompraAgilDetalle, precioPersonalizado?: number): Promise<EstimacionPrecio>;
3
27
  export declare function registerGenerarBorrador(server: McpServer, client: CompraAgilClient): void;
4
28
  //# sourceMappingURL=generar-borrador.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generar-borrador.d.ts","sourceRoot":"","sources":["../../src/tools/generar-borrador.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAoBhE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAoLzF"}
1
+ {"version":3,"file":"generar-borrador.d.ts","sourceRoot":"","sources":["../../src/tools/generar-borrador.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAMnF,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,SAAS,CAAC,EACpD,OAAO,EAAE,iBAAiB,EAC1B,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAwE3B;AAgBD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA+GzF"}
@@ -3,6 +3,98 @@ import { CompraAgilApiError } from '../utils/error-handler.js';
3
3
  import { logger } from '../utils/logger.js';
4
4
  import { extraerPrecioUnitario, percentil } from '../utils/quotation.js';
5
5
  import { safeError } from '../utils/redact.js';
6
+ /** Precio de relleno cuando no se pudo estimar nada. Hay que advertirlo. */
7
+ export const PRECIO_PLACEHOLDER = 1000;
8
+ /** Presupuesto del comprador, mirando también el estimado. */
9
+ function presupuestoDelComprador(detalle) {
10
+ const p = detalle.presupuesto;
11
+ return p?.monto_disponible_clp || p?.monto_disponible || p?.presupuesto_estimado || 0;
12
+ }
13
+ /**
14
+ * Decide el precio unitario del borrador, en orden de preferencia:
15
+ * 1. el que ingresó el usuario,
16
+ * 2. el percentil 25 de lo que cotizó el mercado en procesos similares,
17
+ * 3. el presupuesto del comprador menos 10%,
18
+ * 4. un placeholder de $1.000, que se advierte explícitamente.
19
+ *
20
+ * ⚠ POR QUÉ EL PASO 3 VIVE FUERA DEL try: antes, la consulta de precios de
21
+ * mercado y el respaldo por presupuesto estaban dentro del mismo bloque, así
22
+ * que CUALQUIER fallo de la API durante la consulta —un 429 por cuota
23
+ * agotada, típicamente— saltaba también el respaldo y el borrador salía con
24
+ * $1.000, pese a que el presupuesto ya estaba en la mano desde el detalle y
25
+ * no requería ninguna llamada adicional. Detectado en auditoría: un llamado
26
+ * de $4.800.000 generó un borrador de $1.000 por este camino.
27
+ */
28
+ export async function estimarPrecioUnitario(client, detalle, precioPersonalizado) {
29
+ if (precioPersonalizado !== undefined && precioPersonalizado > 0) {
30
+ return {
31
+ precio: precioPersonalizado,
32
+ fuente: 'Precio neto ingresado por el usuario',
33
+ sugerido: true,
34
+ };
35
+ }
36
+ const keyword = detalle.productos_solicitados?.[0]?.nombre || detalle.nombre || '';
37
+ const precios = [];
38
+ if (keyword) {
39
+ try {
40
+ logger.info(`generar_borrador_cotizacion: Consultando precios cotizados por el mercado para "${keyword}"`);
41
+ // Solo `desierta`: medido contra la API real, es el único estado que
42
+ // publica cotizaciones (desierta 5/8 procesos con precios; cerrada 0/8).
43
+ // `proveedor_seleccionado` devuelve 0 resultados.
44
+ const busqueda = await client.buscar({
45
+ q: keyword,
46
+ estado: 'desierta',
47
+ tamano_pagina: 50,
48
+ numero_pagina: 1,
49
+ });
50
+ for (const item of (busqueda.items || []).slice(0, 5)) {
51
+ try {
52
+ const det = await client.detalle(item.codigo);
53
+ // Se toman TODAS las cotizaciones, incluidas las inadmisibles: en los
54
+ // procesos desiertos casi todas lo son (por eso quedaron desiertos), y
55
+ // el precio ofertado sigue siendo señal de mercado. Filtrarlas dejaba
56
+ // la muestra vacía. La API nunca marca un ganador, así que la
57
+ // referencia es lo que ofertó la competencia.
58
+ for (const prov of det.proveedores_cotizando ?? []) {
59
+ const unitario = extraerPrecioUnitario(prov, keyword);
60
+ if (unitario !== null)
61
+ precios.push(unitario);
62
+ }
63
+ }
64
+ catch {
65
+ // Un histórico que falla no invalida el resto de la muestra.
66
+ }
67
+ }
68
+ }
69
+ catch (err) {
70
+ logger.warn(`generar_borrador_cotizacion: No se pudo consultar precios de mercado: ${safeError(err)}`);
71
+ }
72
+ }
73
+ if (precios.length > 0) {
74
+ precios.sort((a, b) => a - b);
75
+ // Percentil 25 de lo cotizado: ubica la oferta en el cuarto más económico
76
+ // sin regalar margen, y resiste valores atípicos mejor que un promedio.
77
+ return {
78
+ precio: percentil(precios, 25),
79
+ fuente: `Sugerencia automática: percentil 25 de ${precios.length} precio(s) cotizado(s) por el mercado en procesos similares (NO son precios adjudicados: la API no los expone)`,
80
+ sugerido: true,
81
+ };
82
+ }
83
+ const presupuesto = presupuestoDelComprador(detalle);
84
+ if (presupuesto > 0) {
85
+ const cantidadTotal = detalle.productos_solicitados?.reduce((acc, p) => acc + p.cantidad, 0) || 1;
86
+ return {
87
+ precio: Math.round((presupuesto * 0.9) / cantidadTotal),
88
+ fuente: 'Sugerencia automática: presupuesto del comprador descontado 10% (no hubo cotizaciones de mercado comparables)',
89
+ sugerido: true,
90
+ };
91
+ }
92
+ return {
93
+ precio: PRECIO_PLACEHOLDER,
94
+ fuente: `Valor por defecto (placeholder de $${PRECIO_PLACEHOLDER.toLocaleString('es-CL')})`,
95
+ sugerido: false,
96
+ };
97
+ }
6
98
  const TOOL_NAME = 'generar_borrador_cotizacion';
7
99
  const TOOL_DESCRIPTION = `Genera un borrador estructurado en formato JSON para presentar una cotización formal a un llamado de Compra Ágil activa.
8
100
  Calcula automáticamente los valores netos, impuestos (19% IVA de Chile) y montos brutos, sugiriendo un precio unitario de mercado si no se ingresa uno personalizado.`;
@@ -30,88 +122,14 @@ export function registerGenerarBorrador(server, client) {
30
122
  advertencias.push('rut_proveedor es un valor PLACEHOLDER; reemplázalo por el RUT real del proveedor antes de presentar.');
31
123
  if (!args.razon_social)
32
124
  advertencias.push('razon_social es un valor PLACEHOLDER; reemplázalo por la razón social real.');
33
- const customPrice = args.precio_unitario_personalizado;
34
125
  let plazoEntrega = args.plazo_entrega_dias;
35
126
  if (plazoEntrega === undefined) {
36
127
  plazoEntrega = targetDetail.entrega?.plazo_entrega_dias || 5;
37
128
  }
38
- // Estimar o adoptar precio unitario
39
- let suggestedPrice = 1000;
40
- let isPriceSuggested = false;
41
- let priceSource = 'Valor por defecto (placeholder de $1.000)';
42
- if (customPrice !== undefined && customPrice > 0) {
43
- suggestedPrice = customPrice;
44
- priceSource = 'Precio neto ingresado por el usuario';
45
- isPriceSuggested = true;
46
- }
47
- else {
48
- // Intentar obtener palabras clave del primer producto solicitado
49
- let keyword = '';
50
- if (targetDetail.productos_solicitados && targetDetail.productos_solicitados.length > 0) {
51
- keyword = targetDetail.productos_solicitados[0].nombre;
52
- }
53
- else {
54
- keyword = targetDetail.nombre;
55
- }
56
- if (keyword) {
57
- try {
58
- logger.info(`generar_borrador_cotizacion: Consultando precios cotizados por el mercado para "${keyword}"`);
59
- // Solo `desierta`: medido contra la API real, es el único estado que
60
- // publica cotizaciones (desierta 5/8 procesos con precios; cerrada 0/8).
61
- // `proveedor_seleccionado` devuelve 0 resultados.
62
- const searchResponse = await client.buscar({
63
- q: keyword,
64
- estado: 'desierta',
65
- tamano_pagina: 50, // mínimo de la API: 10
66
- numero_pagina: 1,
67
- });
68
- const prices = [];
69
- const itemsToProcess = (searchResponse.items || []).slice(0, 5);
70
- if (itemsToProcess.length > 0) {
71
- for (const item of itemsToProcess) {
72
- try {
73
- const detail = await client.detalle(item.codigo);
74
- // Se toman TODAS las cotizaciones, incluidas las inadmisibles: en los
75
- // procesos desiertos casi todas lo son (por eso quedaron desiertos), y
76
- // el precio ofertado sigue siendo señal de mercado. Filtrarlas dejaba
77
- // la muestra vacía. La API nunca marca un ganador, así que la
78
- // referencia es lo que ofertó la competencia.
79
- for (const prov of detail.proveedores_cotizando ?? []) {
80
- const unitPrice = extraerPrecioUnitario(prov, keyword);
81
- if (unitPrice !== null)
82
- prices.push(unitPrice);
83
- }
84
- }
85
- catch (e) {
86
- // ignore errors for individual historical lookups
87
- }
88
- }
89
- }
90
- if (prices.length > 0) {
91
- prices.sort((a, b) => a - b);
92
- // Percentil 25 de lo cotizado: ubica la oferta en el cuarto más
93
- // económico sin regalar margen, y resiste valores atípicos mejor
94
- // que un promedio.
95
- suggestedPrice = percentil(prices, 25);
96
- priceSource = `Sugerencia automática: percentil 25 de ${prices.length} precio(s) cotizado(s) por el mercado en procesos similares (NO son precios adjudicados: la API no los expone)`;
97
- isPriceSuggested = true;
98
- }
99
- else {
100
- // Fallback: usar presupuesto estimado del comprador si existe
101
- const totalCantidad = targetDetail.productos_solicitados?.reduce((acc, p) => acc + p.cantidad, 0) || 1;
102
- const budget = targetDetail.presupuesto?.monto_disponible_clp || targetDetail.presupuesto?.monto_disponible || 0;
103
- if (budget > 0) {
104
- suggestedPrice = Math.round((budget * 0.9) / totalCantidad);
105
- priceSource = 'Sugerencia automática: Presupuesto estimado del comprador (descontado 10%)';
106
- isPriceSuggested = true;
107
- }
108
- }
109
- }
110
- catch (err) {
111
- logger.warn(`generar_borrador_cotizacion: No se pudo estimar precio sugerido: ${safeError(err)}`);
112
- }
113
- }
114
- }
129
+ const estimacion = await estimarPrecioUnitario(client, targetDetail, args.precio_unitario_personalizado);
130
+ const suggestedPrice = estimacion.precio;
131
+ const isPriceSuggested = estimacion.sugerido;
132
+ const priceSource = estimacion.fuente;
115
133
  // Construir productos cotizados
116
134
  const productosCotizados = (targetDetail.productos_solicitados || []).map(prod => {
117
135
  const uPrice = suggestedPrice;
@@ -1 +1 @@
1
- {"version":3,"file":"generar-borrador.js","sourceRoot":"","sources":["../../src/tools/generar-borrador.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generar-borrador.js","sourceRoot":"","sources":["../../src/tools/generar-borrador.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verificar-oc.d.ts","sourceRoot":"","sources":["../../src/tools/verificar-oc.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAkBhE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA+ErF"}
1
+ {"version":3,"file":"verificar-oc.d.ts","sourceRoot":"","sources":["../../src/tools/verificar-oc.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAkBhE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA0GrF"}
@@ -13,9 +13,9 @@ import { logger } from '../utils/logger.js';
13
13
  import { esGanador } from '../utils/quotation.js';
14
14
  import { safeError } from '../utils/redact.js';
15
15
  const TOOL_NAME = 'verificar_orden_compra';
16
- const TOOL_DESCRIPTION = `Verifica si una Compra Ágil específica ya tiene una Orden de Compra (OC) emitida, leyendo id_orden_compra del detalle y cruzándolo con la API de Órdenes de Compra.
17
- ⚠ LIMITACIÓN VERIFICADA EMPÍRICAMENTE (julio 2026): en 45 procesos inspeccionados, NINGUNO traía id_orden_compra (siempre null), y el filtro de estado "proveedor_seleccionado" devuelve 0 resultados. En la práctica, la API de Compra Ágil no está publicando adjudicaciones ni órdenes de compra, por lo que esta herramienta reportará "sin OC" en la mayoría o totalidad de los casos.
18
- Un resultado "sin OC" NO significa necesariamente que la OC no exista: puede significar que la API no la expone. Para confirmarlo, consulta la ficha pública del proceso en https://buscador.mercadopublico.cl/ficha?code={codigo}`;
16
+ const TOOL_DESCRIPTION = `Informa si una Compra Ágil tiene Orden de Compra emitida, leyendo id_orden_compra del detalle.
17
+ ⚠ LIMITACIÓN VERIFICADA (julio 2026, re-confirmada en septiembre): en 45 procesos inspeccionados NINGUNO traía id_orden_compra, y el filtro "proveedor_seleccionado" devuelve 0 resultados. La API de Compra Ágil no publica adjudicaciones. Por eso esta herramienta NO consulta la API por su cuenta —sería gastar cuota para responder "no puedo saberlo"—: reutiliza el detalle si ya se pidió con "obtener_detalle_compra", y en cualquier caso indica cómo confirmarlo en la ficha pública.
18
+ Un "sin OC" NO prueba que la OC no exista: significa que la API no la expone.`;
19
19
  const inputSchema = {
20
20
  codigo: z.string().describe('Código único de la Compra Ágil a verificar. Formato: XXXXXX-YYY-COTXX. Ej: "1057539-228-COT26".'),
21
21
  };
@@ -25,7 +25,33 @@ export function registerVerificarOC(server, client) {
25
25
  inputSchema: inputSchema,
26
26
  }, async (args) => {
27
27
  try {
28
- const detalle = await client.detalle(args.codigo);
28
+ // ⚠ NO se consulta la API si el detalle no está ya en caché.
29
+ // Esta herramienta gastaba una consulta de cuota para responder algo
30
+ // que la API estructuralmente no publica: en 45 procesos inspeccionados
31
+ // más las verificaciones de septiembre 2026, NINGUNO trajo
32
+ // id_orden_compra. Pagar cuota por un "no puedo saberlo" garantizado
33
+ // es el peor negocio posible cuando el balde de tokens es escaso.
34
+ //
35
+ // Si el detalle ya se pagó antes (flujo natural: obtener_detalle_compra
36
+ // y luego preguntar por la OC), se aprovecha y la respuesta va completa
37
+ // sin costo. Si no, se responde igual con la explicación y la ficha.
38
+ const detalle = client.detalleEnCache(args.codigo);
39
+ if (!detalle) {
40
+ return {
41
+ content: [{
42
+ type: 'text',
43
+ text: JSON.stringify({
44
+ codigo: args.codigo,
45
+ verificacion_oc: {
46
+ tiene_orden_compra: null,
47
+ motivo: 'No se consultó la API a propósito, para no gastar cuota en una respuesta que se conoce de antemano: la API de Compra Ágil no publica adjudicaciones ni órdenes de compra (0 de 45 procesos inspeccionados traían id_orden_compra, re-verificado en septiembre de 2026).',
48
+ como_confirmarlo: `Abre la ficha pública del proceso, que sí muestra el estado real: https://buscador.mercadopublico.cl/ficha?code=${args.codigo}`,
49
+ si_quieres_los_datos_del_proceso: 'Llama primero a "obtener_detalle_compra"; después esta herramienta reutiliza ese detalle sin costo adicional y te informa lo que la API sí trae.',
50
+ },
51
+ }, null, 2),
52
+ }],
53
+ };
54
+ }
29
55
  const idOrdenCompra = detalle.id_orden_compra ?? detalle.orden_compra?.id_orden_compra ?? null;
30
56
  const idOc = detalle.orden_compra?.id_oc ?? null;
31
57
  const tieneOC = idOrdenCompra !== null && idOrdenCompra !== undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"verificar-oc.js","sourceRoot":"","sources":["../../src/tools/verificar-oc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verificar-oc.js","sourceRoot":"","sources":["../../src/tools/verificar-oc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Caché de respuestas de la API, con vencimiento y persistencia en disco.
3
+ *
4
+ * ⚠ POR QUÉ EXISTE: la cuota del ticket se agotaba en minutos. Medido en
5
+ * auditoría, evaluar UNA oportunidad con el flujo natural (radar → detalle →
6
+ * analizar_precios → generar_borrador → auditar_desiertas) costaba ~29
7
+ * consultas, porque las tres herramientas de análisis repiten exactamente la
8
+ * misma pareja de llamadas —`buscar({q, estado:'desierta'})` y luego
9
+ * `detalle()` sobre los primeros resultados— y no existía ninguna caché: el
10
+ * mismo histórico se descargaba hasta tres veces en cuestión de minutos.
11
+ *
12
+ * Un proceso ya declarado desierto es inmutable, así que reutilizarlo es
13
+ * gratis en exactitud y enorme en cuota.
14
+ *
15
+ * 🔒 El ticket NUNCA entra aquí: se excluye al construir la clave (el endpoint
16
+ * heredado de Órdenes de Compra lo lleva en el query string) y solo se
17
+ * guarda el cuerpo de la respuesta, que es información pública.
18
+ */
19
+ export interface OpcionesCache {
20
+ /** Ruta del archivo de persistencia, o `null` para vivir solo en memoria. */
21
+ rutaEstado?: string | null;
22
+ /** Máximo de entradas retenidas; al excederlo se descartan las más antiguas. */
23
+ maxEntradas?: number;
24
+ }
25
+ export declare class ResponseCache {
26
+ private entradas;
27
+ private readonly rutaEstado;
28
+ private readonly maxEntradas;
29
+ private aciertos;
30
+ private fallos;
31
+ constructor(opciones?: OpcionesCache);
32
+ /**
33
+ * Clave estable para una consulta: mismo endpoint y mismos parámetros
34
+ * producen la misma clave sin importar el orden en que se escribieron.
35
+ */
36
+ static clave(path: string, params?: Record<string, unknown>): string;
37
+ /** Devuelve el valor vigente, o `undefined` si no está o ya venció. */
38
+ obtener<T>(clave: string): T | undefined;
39
+ guardar(clave: string, valor: unknown, ttlSegundos: number): void;
40
+ /** Elimina lo vencido y, si aún sobra, lo más antiguo. */
41
+ private purgar;
42
+ estadisticas(): {
43
+ entradas: number;
44
+ aciertos: number;
45
+ fallos: number;
46
+ ahorroPorcentaje: number;
47
+ };
48
+ /** Vacía la caché (memoria y disco). */
49
+ limpiar(): void;
50
+ private cargar;
51
+ private persistir;
52
+ }
53
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,MAAM,CAAK;gBAEP,QAAQ,GAAE,aAAkB;IAMxC;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IASpE,uEAAuE;IACvE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAkBxC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAOjE,0DAA0D;IAC1D,OAAO,CAAC,MAAM;IAYd,YAAY,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE;IAUhG,wCAAwC;IACxC,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,SAAS;CAQlB"}