xonecode 0.19.0 → 0.20.1
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.
- package/dist/agent/config/modelos.js +13 -8
- package/dist/agent/config/modelos.js.map +1 -1
- package/dist/agent/grafo/atributosXone.js +58 -0
- package/dist/agent/grafo/atributosXone.js.map +1 -0
- package/dist/agent/grafo/xoneAgent.js +3 -2
- package/dist/agent/grafo/xoneAgent.js.map +1 -1
- package/dist/agent/motores/trueforge/capacidades.js +49 -1
- package/dist/agent/motores/trueforge/capacidades.js.map +1 -1
- package/dist/agent/motores/trueforge/esperas.js +61 -0
- package/dist/agent/motores/trueforge/esperas.js.map +1 -0
- package/dist/agent/motores/trueforge/informesDeHijos.js +63 -0
- package/dist/agent/motores/trueforge/informesDeHijos.js.map +1 -0
- package/dist/agent/motores/trueforge/medidaAutomatica.js +118 -0
- package/dist/agent/motores/trueforge/medidaAutomatica.js.map +1 -0
- package/dist/agent/motores/trueforge/memoriaDeEspecialistas.js +186 -0
- package/dist/agent/motores/trueforge/memoriaDeEspecialistas.js.map +1 -0
- package/dist/agent/motores/trueforge/resumenSeguro.js +52 -0
- package/dist/agent/motores/trueforge/resumenSeguro.js.map +1 -0
- package/dist/agent/motores/trueforge/sesionTrueforge.js +485 -27
- package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
- package/dist/agent/motores/trueforge/toolsDeFichero.js +69 -3
- package/dist/agent/motores/trueforge/toolsDeFichero.js.map +1 -1
- package/dist/agent/subagentes/agentesEnDisco.js +71 -18
- package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
- package/dist/agent/turno/diagnosticoDeTools.js +12 -0
- package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
- package/dist/agent/turno/informeDeTraza.js +13 -1
- package/dist/agent/turno/informeDeTraza.js.map +1 -1
- package/dist/agent/turno/resumenDeTool.js +3 -0
- package/dist/agent/turno/resumenDeTool.js.map +1 -1
- package/dist/core/agentes.js +7 -1
- package/dist/core/agentes.js.map +1 -1
- package/dist/core/atributosXone.js +187 -0
- package/dist/core/atributosXone.js.map +1 -0
- package/dist/core/compararCapturas.js +80 -14
- package/dist/core/compararCapturas.js.map +1 -1
- package/dist/core/esfuerzo.js +33 -0
- package/dist/core/esfuerzo.js.map +1 -1
- package/dist/core/iconos.js +6 -1
- package/dist/core/iconos.js.map +1 -1
- package/dist/core/modoDeEscritura.js +18 -0
- package/dist/core/modoDeEscritura.js.map +1 -1
- package/dist/core/nucleoXone.js +3 -1
- package/dist/core/nucleoXone.js.map +1 -1
- package/dist/core/selectorDeCarpeta.js +15 -1
- package/dist/core/selectorDeCarpeta.js.map +1 -1
- package/dist/core/settings.js +19 -4
- package/dist/core/settings.js.map +1 -1
- package/dist/core/shellDeAgente.js +39 -0
- package/dist/core/shellDeAgente.js.map +1 -1
- package/dist/core/tareasDelPlan.js +69 -7
- package/dist/core/tareasDelPlan.js.map +1 -1
- package/package.json +1 -1
- package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +2 -2
- package/skills/xone-development/references/datos/appdata.md +5 -3
- package/skills/xone-development/references/fundamentos/errores-comunes.md +34 -0
- package/skills/xone-hotswap/SKILL.md +2 -0
- package/skills/xone-hotswap/scripts/xone-log-android +18 -1
- package/skills/xone-plan-builder/SKILL.md +10 -10
- package/skills/xone-plan-builder/references/TASKS-FORMAT.md +5 -5
- package/skills/xone-spec-builder/SKILL.md +3 -3
|
@@ -4,7 +4,7 @@ import { ChatAnthropic } from "@langchain/anthropic";
|
|
|
4
4
|
import { ChatOllama } from "@langchain/ollama";
|
|
5
5
|
import { COMPATIBLES_OPENAI, compatibleConOpenAi, esProveedorPersonalizado, parsear, resolver, pideThinkingAdaptativo, aceptaThinkingAdaptativo, } from "../../core/modelos.js";
|
|
6
6
|
import { topeDeSalida } from "../../core/contextos.js";
|
|
7
|
-
import { esfuerzoAplicable } from "../../core/esfuerzo.js";
|
|
7
|
+
import { esfuerzoAplicable, pensamientoAplicable } from "../../core/esfuerzo.js";
|
|
8
8
|
import { baseUrlDeOllama, baseUrlDeOllamaCloud } from "./catalogoModelos.js";
|
|
9
9
|
import { crearMemoriaDeEco, fetchConEcoDeRazonamiento } from "./ecoDeRazonamiento.js";
|
|
10
10
|
import { ChatGoogleGenerativeAICompatible } from "./gemini.js";
|
|
@@ -79,16 +79,16 @@ export class Modelos {
|
|
|
79
79
|
this.capacidades = capacidades ?? (() => undefined);
|
|
80
80
|
this.esfuerzoDeLaSesion = esfuerzo;
|
|
81
81
|
}
|
|
82
|
-
paraPapel(papel, esfuerzo) {
|
|
83
|
-
return construirModelo(this.eleccion[papel], this.personalizados(), esfuerzo ?? this.esfuerzoDeLaSesion, this.capacidades, this.identidad);
|
|
82
|
+
paraPapel(papel, esfuerzo, clase, pensamiento) {
|
|
83
|
+
return construirModelo(this.eleccion[papel], this.personalizados(), esfuerzo ?? this.esfuerzoDeLaSesion, this.capacidades, this.identidad, clase, pensamiento);
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Un modelo concreto por su «proveedor/modelo». `parsear` es la MISMA función que valida
|
|
87
87
|
* `--modelo` y `/modelo`, no una copia: un id mal escrito en el `.md` de un agente tiene
|
|
88
88
|
* que fallar igual y con el mismo mensaje que uno mal escrito en la línea de comandos.
|
|
89
89
|
*/
|
|
90
|
-
paraModelo(id, esfuerzo) {
|
|
91
|
-
return construirModelo(parsear(id), this.personalizados(), esfuerzo ?? this.esfuerzoDeLaSesion, this.capacidades, this.identidad);
|
|
90
|
+
paraModelo(id, esfuerzo, clase, pensamiento) {
|
|
91
|
+
return construirModelo(parsear(id), this.personalizados(), esfuerzo ?? this.esfuerzoDeLaSesion, this.capacidades, this.identidad, clase, pensamiento);
|
|
92
92
|
}
|
|
93
93
|
descripcion() {
|
|
94
94
|
const salida = {};
|
|
@@ -125,7 +125,7 @@ export class Modelos {
|
|
|
125
125
|
* proveedor: el día que otro lo exija, esto se convierte en una fila más.
|
|
126
126
|
*/
|
|
127
127
|
const AGENTE_DE_USUARIO_OPENCODE = "xonecode/1.0";
|
|
128
|
-
function construirCompatibleOpenAi(proveedor, modelo, { baseUrl, variable }, esfuerzo, identidad = () => undefined) {
|
|
128
|
+
function construirCompatibleOpenAi(proveedor, modelo, { baseUrl, variable }, esfuerzo, identidad = () => undefined, sinPensamiento = false) {
|
|
129
129
|
const apiKey = process.env[variable];
|
|
130
130
|
if (apiKey === undefined || apiKey.trim() === "") {
|
|
131
131
|
throw new Error(`falta la credencial para ${proveedor} (${variable}); usa /provider ${proveedor}`);
|
|
@@ -165,6 +165,8 @@ function construirCompatibleOpenAi(proveedor, modelo, { baseUrl, variable }, esf
|
|
|
165
165
|
const userId = proveedor === "deepseek" ? identidad() : undefined;
|
|
166
166
|
const kwargs = {
|
|
167
167
|
...(esfuerzo === undefined ? {} : { reasoning_effort: esfuerzo }),
|
|
168
|
+
// El interruptor: `thinking` desactivado, por `modelKwargs` como el esfuerzo (cuerpo raíz de la petición).
|
|
169
|
+
...(sinPensamiento ? { thinking: { type: "disabled" } } : {}),
|
|
168
170
|
...(userId === undefined ? {} : { user_id: userId }),
|
|
169
171
|
};
|
|
170
172
|
/**
|
|
@@ -197,7 +199,7 @@ function construirCompatibleOpenAi(proveedor, modelo, { baseUrl, variable }, esf
|
|
|
197
199
|
});
|
|
198
200
|
}
|
|
199
201
|
/** El cliente de un `{proveedor, modelo}`, venga de un papel o de la elección de un agente. */
|
|
200
|
-
function construirModelo({ proveedor, modelo }, personalizados = [], esfuerzoPedido, capacidades = () => undefined, identidad = () => undefined) {
|
|
202
|
+
function construirModelo({ proveedor, modelo }, personalizados = [], esfuerzoPedido, capacidades = () => undefined, identidad = () => undefined, clase, pensamiento) {
|
|
201
203
|
/**
|
|
202
204
|
* **El nivel se criba AQUÍ y contra ESTE modelo, no donde se eligió.**
|
|
203
205
|
*
|
|
@@ -213,6 +215,9 @@ function construirModelo({ proveedor, modelo }, personalizados = [], esfuerzoPed
|
|
|
213
215
|
* sería decidir en nombre de alguien, y aquí eso se paga en tokens que no pidió.
|
|
214
216
|
*/
|
|
215
217
|
const esfuerzo = esfuerzoAplicable(esfuerzoPedido, proveedor, modelo, capacidades(proveedor, modelo));
|
|
218
|
+
// Si piensa: lo que dice el `.md`, o la omisión de la familia y la clase, y solo donde el modelo lo admite.
|
|
219
|
+
// Apagado manda sobre el esfuerzo: sin pensamiento no hay nivel que pedir.
|
|
220
|
+
const pensamientoApagado = pensamientoAplicable(pensamiento, proveedor, modelo, clase) === "apagado";
|
|
216
221
|
// Un personalizado se resuelve ANTES del switch, contra el registro: sin él no hay URL
|
|
217
222
|
// base, y eso es un alta que falta y no un proveedor roto. El switch de abajo sigue
|
|
218
223
|
// siendo exhaustivo sobre los de serie.
|
|
@@ -233,7 +238,7 @@ function construirModelo({ proveedor, modelo }, personalizados = [], esfuerzoPed
|
|
|
233
238
|
// Enumerados uno a uno, y no un `default`, para que el switch siga siendo
|
|
234
239
|
// exhaustivo: el día que se añada un proveedor, esto tiene que dar un error de
|
|
235
240
|
// compilación y no construir un cliente equivocado en silencio.
|
|
236
|
-
return construirCompatibleOpenAi(proveedor, modelo, COMPATIBLES_OPENAI[proveedor], esfuerzo, identidad);
|
|
241
|
+
return construirCompatibleOpenAi(proveedor, modelo, COMPATIBLES_OPENAI[proveedor], pensamientoApagado ? undefined : esfuerzo, identidad, pensamientoApagado);
|
|
237
242
|
case "openai":
|
|
238
243
|
return new ChatOpenAI({
|
|
239
244
|
model: modelo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelos.js","sourceRoot":"","sources":["../../../src/agent/config/modelos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EACL,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,OAAO,EAAE,QAAQ,EACpF,sBAAsB,EAAE,wBAAwB,GAEjD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"modelos.js","sourceRoot":"","sources":["../../../src/agent/config/modelos.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { tool } from "@langchain/core/tools";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { consultarAtributos, indiceDeAtributos, interpretarReferenciaDeAtributos } from "../../core/atributosXone.js";
|
|
6
|
+
import { RAIZ_SKILLS } from "./skills.js";
|
|
7
|
+
export const NOMBRE_ATRIBUTOS_XONE = "xone_atributos";
|
|
8
|
+
/**
|
|
9
|
+
* Las tablas de las que sale el índice, dentro de la skill `xone-development` del PAQUETE: las de referencia de cada nodo y
|
|
10
|
+
* las de su capítulo propio, porque la skill no siempre dice lo mismo en los dos y el índice enseña los dos. `nodo` es el
|
|
11
|
+
* del fichero entero cuando su título no lo parte en secciones `## N. Nodo …`.
|
|
12
|
+
*/
|
|
13
|
+
export const REFERENCIAS_DE_ATRIBUTOS = [
|
|
14
|
+
{ fichero: "xml-ui/atributos-coll-group-frame.md" },
|
|
15
|
+
{ fichero: "xml-ui/atributos-prop.md" },
|
|
16
|
+
{ fichero: "xml-ui/estructura-y-nodo-coll.md" },
|
|
17
|
+
{ fichero: "xml-ui/nodos-group-y-frame.md" },
|
|
18
|
+
{ fichero: "xml-ui/prop-atributos-y-condiciones.md", nodo: "prop" },
|
|
19
|
+
];
|
|
20
|
+
/** Dónde se busca lo que el índice no trae: la skill entera, con la tool de fichero que todos tienen. */
|
|
21
|
+
export const RUTA_DE_LA_SKILL = "/skills/xone-development/references/";
|
|
22
|
+
export const busquedaEnLaSkill = (atributo) => `búscalo en la skill con grep ${JSON.stringify({ pattern: atributo, path: RUTA_DE_LA_SKILL })} y lee el fichero que salga`;
|
|
23
|
+
/**
|
|
24
|
+
* `xone_atributos`: ¿existe este atributo en este nodo?, en una línea (`core/atributosXone.ts` tiene el porqué medido).
|
|
25
|
+
*
|
|
26
|
+
* Se lee de la skill del PAQUETE en cada construcción, nunca de una copia: si la referencia cambia, el índice cambia con
|
|
27
|
+
* ella. Una referencia que falta no tumba nada: la tool dice que no tiene índice y remite a la skill. Solo LEE, y lo que
|
|
28
|
+
* lee es de la skill, no del proyecto, así que no pasa por `puedeLeerRuta`.
|
|
29
|
+
*/
|
|
30
|
+
export function crearAtributosXone(raizDeSkills = RAIZ_SKILLS) {
|
|
31
|
+
let indice;
|
|
32
|
+
let fallo;
|
|
33
|
+
try {
|
|
34
|
+
const base = join(raizDeSkills, "xone-development", "references");
|
|
35
|
+
indice = indiceDeAtributos(REFERENCIAS_DE_ATRIBUTOS.flatMap((r) => interpretarReferenciaDeAtributos(readFileSync(join(base, r.fichero), "utf8"), r.fichero, r.nodo)));
|
|
36
|
+
if (indice.porAtributo.size === 0)
|
|
37
|
+
fallo = "la referencia no trae ninguna tabla de atributos reconocible";
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
fallo = `no se pudo leer la referencia (${e.code ?? "error de lectura"})`;
|
|
41
|
+
}
|
|
42
|
+
return tool(async (entrada) => indice === undefined || fallo !== undefined
|
|
43
|
+
? `Sin índice de atributos: ${fallo ?? "no cargado"}. Ve a la skill: ${busquedaEnLaSkill(entrada.atributo ?? "<atributo>")}.`
|
|
44
|
+
: consultarAtributos(indice, entrada, busquedaEnLaSkill), {
|
|
45
|
+
name: NOMBRE_ATRIBUTOS_XONE,
|
|
46
|
+
description: "ÍNDICE DE CONSULTA RÁPIDA de los atributos XML de XOne, sacado de las tablas de la skill xone-development: no la " +
|
|
47
|
+
"sustituye, te dice si un atributo está en sus tablas y DÓNDE leer el detalle. Con `atributo` (bgcolor, imgbk…): en " +
|
|
48
|
+
"qué nodos está (coll, group, frame, prop), tipo, omisión, una línea de descripción y el fichero y sección; si dos " +
|
|
49
|
+
"ficheros de la skill dicen cosas distintas, te da los dos. Con solo `nodo`: sus atributos por sección. Las tablas " +
|
|
50
|
+
"son por NODO, no por tipo de control: que esté en <prop> no dice que haga algo en cada `type`. Si no encuentras lo " +
|
|
51
|
+
"que buscas, o necesitas ejemplos o matices, VE A LA SKILL: la respuesta te da la búsqueda hecha, y manda la skill.",
|
|
52
|
+
schema: z.object({
|
|
53
|
+
atributo: z.string().max(64).optional().describe("El atributo, tal cual se escribe en el XML (bgcolor, border-corner-radius…)."),
|
|
54
|
+
nodo: z.string().max(16).optional().describe("coll, group, frame o prop. Con atributo, lo acota; solo, lista sus atributos."),
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=atributosXone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atributosXone.js","sourceRoot":"","sources":["../../../src/agent/grafo/atributosXone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gCAAgC,EAA0B,MAAM,6BAA6B,CAAC;AAC9I,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkD;IACrF,EAAE,OAAO,EAAE,sCAAsC,EAAE;IACnD,EAAE,OAAO,EAAE,0BAA0B,EAAE;IACvC,EAAE,OAAO,EAAE,kCAAkC,EAAE;IAC/C,EAAE,OAAO,EAAE,+BAA+B,EAAE;IAC5C,EAAE,OAAO,EAAE,wCAAwC,EAAE,IAAI,EAAE,MAAM,EAAE;CACpE,CAAC;AAEF,yGAAyG;AACzG,MAAM,CAAC,MAAM,gBAAgB,GAAG,sCAAsC,CAAC;AACvE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAU,EAAE,CAC5D,gCAAgC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,6BAA6B,CAAC;AAE7H;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,eAAuB,WAAW;IACnE,IAAI,MAAqC,CAAC;IAC1C,IAAI,KAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,GAAG,iBAAiB,CACxB,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gCAAgC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAC1I,CAAC;QACF,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;YAAE,KAAK,GAAG,8DAA8D,CAAC;IAC5G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,GAAG,kCAAmC,CAAuB,CAAC,IAAI,IAAI,kBAAkB,GAAG,CAAC;IACnG,CAAC;IACD,OAAO,IAAI,CACT,KAAK,EAAE,OAA6C,EAAmB,EAAE,CACvE,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QACzC,CAAC,CAAC,4BAA4B,KAAK,IAAI,YAAY,oBAAoB,iBAAiB,CAAC,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC,GAAG;QAC7H,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAC5D;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,mHAAmH;YACnH,qHAAqH;YACrH,oHAAoH;YACpH,oHAAoH;YACpH,qHAAqH;YACrH,oHAAoH;QACtH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;YAChI,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+EAA+E,CAAC;SAC9H,CAAC;KACH,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createDeepAgent, createFilesystemMiddleware } from "deepagents";
|
|
2
2
|
import { MAPA_DEL_PROYECTO, fichaDeAgente, promptDeAgente, repartirSkills } from "../../core/agentes.js";
|
|
3
|
+
import { claseDeTrabajo } from "../../core/esfuerzo.js";
|
|
3
4
|
import { REGLA_DE_ESCRITURAS_EN_PARALELO } from "../../core/serieDeEscrituras.js";
|
|
4
5
|
import { RunnableLambda } from "@langchain/core/runnables";
|
|
5
6
|
import { AIMessage } from "@langchain/core/messages";
|
|
@@ -532,8 +533,8 @@ export async function construirAgente(opciones) {
|
|
|
532
533
|
// consultor piensa poco» lo dice de ESE especialista, no de la conversación. Ausente
|
|
533
534
|
// deja pasar el de la sesión, que es lo que `Modelos` resuelve por dentro.
|
|
534
535
|
model: perfil.modelo === undefined
|
|
535
|
-
? opciones.modelos.paraPapel(perfil.soloLectura ? "rapido" : "trabajo", perfil.esfuerzo)
|
|
536
|
-
: opciones.modelos.paraModelo(perfil.modelo, perfil.esfuerzo),
|
|
536
|
+
? opciones.modelos.paraPapel(perfil.soloLectura ? "rapido" : "trabajo", perfil.esfuerzo, claseDeTrabajo(perfil), perfil.pensamiento)
|
|
537
|
+
: opciones.modelos.paraModelo(perfil.modelo, perfil.esfuerzo, claseDeTrabajo(perfil), perfil.pensamiento),
|
|
537
538
|
};
|
|
538
539
|
});
|
|
539
540
|
return createDeepAgent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xoneAgent.js","sourceRoot":"","sources":["../../../src/agent/grafo/xoneAgent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xoneAgent.js","sourceRoot":"","sources":["../../../src/agent/grafo/xoneAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* sobre lo que declara su `.md`, con la misma partición que deepagents. Es lo que deja probar el
|
|
12
12
|
* reparto sin levantar un hilo.
|
|
13
13
|
*/
|
|
14
|
-
import { NOOP_AGENT_TRACING, ToolSet, currentDateTime, openUI } from "./trueforge.js";
|
|
14
|
+
import { NOOP_AGENT_TRACING, ToolSet, currentDateTime, dynamicSubAgents, openUI } from "./trueforge.js";
|
|
15
15
|
import { permisosDe } from "../../grafo/perfiles.js";
|
|
16
16
|
import { NOMBRE_INCORPORAR_ADJUNTO } from "../../../core/adjuntos.js";
|
|
17
17
|
import { fuenteDeEjecucion, fuenteDeFicheros, TOOLS_DE_FICHERO, TOOLS_DE_LECTURA, TOOLS_QUE_ESCRIBEN, } from "./toolsDeFichero.js";
|
|
@@ -202,6 +202,52 @@ export function clasesDeTools(agente) {
|
|
|
202
202
|
return "ejecuta";
|
|
203
203
|
return agente.soloLectura ? "lee" : "escribe";
|
|
204
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* `create_sub_agent` para un HIJO: la misma delegación que tiene el raíz, dada a quien su `.md` declara que puede
|
|
207
|
+
* llamar a otro (`llama`). La librería crea el nieto igual que cualquier hijo y su respuesta vuelve a quien lo
|
|
208
|
+
* llamó. El nombre no se restringe aquí —el esquema de la tool es un texto libre—: lo hace la fábrica de hijos de la
|
|
209
|
+
* sesión, que no concede a quien no está en su lista.
|
|
210
|
+
*/
|
|
211
|
+
export function capacidadDeSubagentes() {
|
|
212
|
+
return {
|
|
213
|
+
nombre: "subagentes",
|
|
214
|
+
tools: ["create_sub_agent"],
|
|
215
|
+
capability: dynamicSubAgents({ sandboxAvailable: false, tracing: NOOP_AGENT_TRACING }),
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Avisa a quien lleva un LAZO (escribir, comprobar, corregir) de cuántas comprobaciones lleva, por
|
|
220
|
+
* `preLLMProcessors`: al llegar a cada umbral se le añade UN mensaje de usuario, y no otro más hasta el siguiente.
|
|
221
|
+
*
|
|
222
|
+
* Existe porque «tres vueltas» estaba solo en el prompt del desarrollador y una pasada real hizo seis llamadas al
|
|
223
|
+
* conductor: un texto no es un contador. Y el aviso no dice «para», dice «cambia de procedimiento»: repetir la
|
|
224
|
+
* misma familia de fallo con otra reescritura completa es lo que se vio (un control que falta, y al arreglarlo,
|
|
225
|
+
* otro), y lo que hay que hacer es aislar la causa, no cortar. No añade tools.
|
|
226
|
+
*/
|
|
227
|
+
export function capacidadDeAvisoDeVueltas(opciones) {
|
|
228
|
+
const avisados = new Map();
|
|
229
|
+
return {
|
|
230
|
+
nombre: "vueltas",
|
|
231
|
+
tools: [],
|
|
232
|
+
capability: {
|
|
233
|
+
preLLMProcessors: [
|
|
234
|
+
{
|
|
235
|
+
async *processPreLLM(execution) {
|
|
236
|
+
const n = opciones.vueltasDe(execution.threadId);
|
|
237
|
+
const ya = avisados.get(execution.threadId) ?? new Set();
|
|
238
|
+
const toca = [...opciones.umbrales].filter((u) => n >= u && !ya.has(u));
|
|
239
|
+
if (toca.length === 0)
|
|
240
|
+
return;
|
|
241
|
+
for (const u of toca)
|
|
242
|
+
ya.add(u);
|
|
243
|
+
avisados.set(execution.threadId, ya);
|
|
244
|
+
yield { type: "internal.agent.context.append", context: [{ role: "user", content: opciones.texto(n) }], output: [] };
|
|
245
|
+
},
|
|
246
|
+
},
|
|
247
|
+
],
|
|
248
|
+
},
|
|
249
|
+
};
|
|
250
|
+
}
|
|
205
251
|
/**
|
|
206
252
|
* Las piezas de un especialista —o del hijo genérico, si el nombre no es de ninguno—, sin sus
|
|
207
253
|
* instrucciones: esas se escriben con la lista de tools que salga de aquí.
|
|
@@ -233,6 +279,8 @@ export function capacidadesDelEspecialista(agente, nombrePedido, deps) {
|
|
|
233
279
|
? [capacidadDePropias(propias, deps.backend, propias.some((t) => t.name === NOMBRE_INCORPORAR_ADJUNTO) ? [NOMBRE_INCORPORAR_ADJUNTO] : [])]
|
|
234
280
|
: []),
|
|
235
281
|
...(clase === "ejecuta" ? [capacidadDeEjecucion(deps.conShell())] : []),
|
|
282
|
+
...(deps.puedeLlamar?.(agente) === true ? [capacidadDeSubagentes(), ...(deps.informes === undefined ? [] : [deps.informes])] : []),
|
|
283
|
+
...(deps.vueltas?.(agente) === undefined ? [] : [deps.vueltas(agente)]),
|
|
236
284
|
capacidadDeRecortes(deps.backend),
|
|
237
285
|
capacidadDeFecha(),
|
|
238
286
|
deps.notas,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capacidades.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/capacidades.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"capacidades.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/capacidades.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExG,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,GAGnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAA2B,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAa,MAAM,YAAY,CAAC;AAUtD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC;AACzH,4FAA4F;AAC5F,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,uBAAuB,EAAE,CAAC,GAAG,kBAAkB,CAAC,EAAE,CAAC;AAE9I,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CAAC,QAKnC;IACC,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,UAAU,EAAE;YACV,cAAc,EAAE;gBACd,IAAI,OAAO,CAAC;oBACV,MAAM,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAU;oBAChH,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc;oBACnE,OAAO,EAAE,IAAI;iBACd,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAiC,EACjC,OAA2B,EAC3B,gBAAmC,EAAE;IAErC,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/B,UAAU,EAAE;YACV,cAAc,EAAE;gBACd,IAAI,OAAO,CAAC;oBACV,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAU;oBAClD,SAAS,EAAE,EAAE,GAAG,cAAc,EAAE,uBAAuB,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE;oBAC7E,OAAO,EAAE,IAAI;iBACd,CAAC;aACH;SACF;KACF,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB,CAAC,QAA0F;IAC7H,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,CAAC,SAAS,CAAC;QAClB,UAAU,EAAE,EAAE,cAAc,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAU,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;KAC1I,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA2B;IAC7D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;AAClH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,WAKI,EAAE;IAEN,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC;IAC7C,OAAO;QACL,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,EAAE;QACT,UAAU,EAAE;YACV,gBAAgB,EAAE;gBAChB;oBACE,KAAK,CAAC,CAAC,aAAa,CAAC,SAA+B;wBAClD,8EAA8E;wBAC9E,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;4BACtD,QAAQ;4BACR,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC;4BACxC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;yBAC1C,CAAC,CAAC;wBACH,MAAM,KAAK,GAAG,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;wBAC3D,IAAI,KAAK,KAAK,SAAS;4BAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;4BAAE,OAAO;wBAChC,MAAM;4BACJ,IAAI,EAAE,+BAA+B;4BACrC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;4BACzD,MAAM,EAAE,EAAE;yBACX,CAAC;oBACJ,CAAC;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,sBAAsB,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAU,EAAE,CAAC;AACrI,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kPAAkP;IAClP,mJAAmJ;IACnJ,+GAA+G;IAC/G,qEAAqE;CACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,kGAAkG;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAGlE,CAAC;IACF,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,CAAC,yBAAyB,CAAC;QAClC,UAAU,EAAE;YACV,GAAG,IAAI;YACP,mBAAmB,EAAE;gBACnB,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC;gBACnC,CAAC,CAA6E,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,IAAI,CAAC;aACnJ;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,EAAE;QACT,UAAU,EAAE;YACV,mBAAmB,EAAE,CAAC,CAAC,CAA6E,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SACzJ;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,OAAO,CAAC,WAAiC;IACvD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,WAAiC;IAC9D,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiD;IAC7E,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,CAAC,kBAAkB,CAAC;QAC3B,UAAU,EAAE,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAuC;KAC7H,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAIzC;IACC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,EAAE;QACT,UAAU,EAAE;YACV,gBAAgB,EAAE;gBAChB;oBACE,KAAK,CAAC,CAAC,aAAa,CAAC,SAA+B;wBAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;wBACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;wBACjE,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;4BAAE,OAAO;wBAC9B,KAAK,MAAM,CAAC,IAAI,IAAI;4BAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAChC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;wBACrC,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;oBACvH,CAAC;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAmBD;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAA0B,EAC1B,YAAoB,EACpB,IAAiC;IAEjC,wGAAwG;IACxG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,mBAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;YAC9J,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;YACjC,gBAAgB,EAAE;YAClB,IAAI,CAAC,KAAK;SACX,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO;QACL,mBAAmB,CAAC;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;YACN,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB;YAChE,aAAa,EAAE,KAAK,KAAK,SAAS;SACnC,CAAC;QACF,4FAA4F;QAC5F,8FAA8F;QAC9F,gDAAgD;QAChD,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3I,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,CAAC;QACxE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,gBAAgB,EAAE;QAClB,IAAI,CAAC,KAAK;QACV,2FAA2F;QAC3F,yFAAyF;QACzF,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quién no arranca hasta que otro termine, entre HIJOS que el orquestador lanzó a la vez.
|
|
3
|
+
*
|
|
4
|
+
* El orquestador delega en paralelo cuando le parece independiente, y no siempre lo es: en una pasada real lanzó a
|
|
5
|
+
* `developer-xone` y a `designer-xone` a la vez, el desarrollador escribió el `.xne` antes de que el diseñador
|
|
6
|
+
* terminara y **9 de los 26 recursos del diseñador se quedaron sin usar**. La cola por FICHERO solo evita que dos
|
|
7
|
+
* escriban el mismo; no sabe de dependencias.
|
|
8
|
+
*
|
|
9
|
+
* ## Por qué NO se espera bloqueando (y la primera versión lo hacía)
|
|
10
|
+
*
|
|
11
|
+
* Es un dato del `.md` (`espera: [designer-xone]`). La primera versión paraba al desarrollador ANTES de cada
|
|
12
|
+
* llamada al modelo mientras el diseñador estuviera vivo, y **atascó la pasada**: la librería ejecuta todos los hilos
|
|
13
|
+
* activos juntos y solo devuelve el control cuando TODOS terminan su paso, y una aprobación de escritura del
|
|
14
|
+
* diseñador solo se atiende al devolver el control. El desarrollador, parado dentro de su espera, impedía que
|
|
15
|
+
* volviera, y el diseñador no podía acabar sin aprobación: un bloqueo mutuo, con la CPU a cero y sin ningún error. Los
|
|
16
|
+
* tests con dobles no lo vieron porque el diseñador doble no pedía aprobación.
|
|
17
|
+
*
|
|
18
|
+
* Así que ahora **no bloquea nunca**: si al crear el hijo hay uno vivo —o anunciado por el mismo mensaje del
|
|
19
|
+
* orquestador— de los que declara, el hijo **no arranca** y su llamada se devuelve al instante diciéndolo. El
|
|
20
|
+
* orquestador, que ya tiene el informe del otro cuando lo recibe, vuelve a llamarlo con él en el encargo.
|
|
21
|
+
*/
|
|
22
|
+
export function crearEsperas() {
|
|
23
|
+
const vivos = new Map(); // hilo → nombre
|
|
24
|
+
const anunciados = [];
|
|
25
|
+
const terminados = new Set();
|
|
26
|
+
return {
|
|
27
|
+
anunciar(nombre) {
|
|
28
|
+
anunciados.push(nombre);
|
|
29
|
+
},
|
|
30
|
+
nacio(nombre, hilo) {
|
|
31
|
+
const i = anunciados.indexOf(nombre);
|
|
32
|
+
if (i >= 0)
|
|
33
|
+
anunciados.splice(i, 1);
|
|
34
|
+
vivos.set(hilo, nombre);
|
|
35
|
+
},
|
|
36
|
+
murio(hilo) {
|
|
37
|
+
const nombre = vivos.get(hilo);
|
|
38
|
+
if (nombre === undefined)
|
|
39
|
+
return;
|
|
40
|
+
vivos.delete(hilo);
|
|
41
|
+
terminados.add(nombre);
|
|
42
|
+
},
|
|
43
|
+
vivos(nombres, propio) {
|
|
44
|
+
const entre = [...vivos.entries()].filter(([h, n]) => h !== propio && nombres.includes(n)).map(([, n]) => n);
|
|
45
|
+
return [...new Set([...entre, ...anunciados.filter((n) => nombres.includes(n))])];
|
|
46
|
+
},
|
|
47
|
+
terminados(nombres) {
|
|
48
|
+
return nombres.filter((n) => terminados.has(n));
|
|
49
|
+
},
|
|
50
|
+
darPorMuertos() {
|
|
51
|
+
vivos.clear();
|
|
52
|
+
anunciados.length = 0;
|
|
53
|
+
},
|
|
54
|
+
olvidar() {
|
|
55
|
+
vivos.clear();
|
|
56
|
+
anunciados.length = 0;
|
|
57
|
+
terminados.clear();
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=esperas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"esperas.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/esperas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAmBH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,gBAAgB;IACzD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,OAAO;QACL,QAAQ,CAAC,MAAM;YACb,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,MAAM,EAAE,IAAI;YAChB,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC;gBAAE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI;YACR,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO;YACjC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,CAAC,OAAO,EAAE,MAAM;YACnB,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7G,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,UAAU,CAAC,OAAO;YAChB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,aAAa;YACX,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,OAAO;YACL,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
const lineas = (t) => (typeof t === "string" && t !== "" ? t.replace(/\n$/, "").split("\n").length : 0);
|
|
2
|
+
/** Lo que suma UNA escritura que salió bien, por sus argumentos (los de la tool, que nunca salen de aquí). */
|
|
3
|
+
export function anotarEscritura(cambios, nombre, args) {
|
|
4
|
+
const ruta = typeof args["file_path"] === "string" ? args["file_path"] : undefined;
|
|
5
|
+
if (ruta === undefined || (nombre !== "write_file" && nombre !== "edit_file"))
|
|
6
|
+
return;
|
|
7
|
+
const previo = cambios.get(ruta) ?? { ediciones: 0, nuevo: false, mas: 0, menos: 0 };
|
|
8
|
+
if (nombre === "write_file") {
|
|
9
|
+
cambios.set(ruta, { ediciones: previo.ediciones + 1, nuevo: previo.ediciones === 0 ? true : previo.nuevo, mas: previo.mas + lineas(args["content"]), menos: previo.menos });
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
cambios.set(ruta, { ...previo, ediciones: previo.ediciones + 1, mas: previo.mas + lineas(args["new_string"]), menos: previo.menos + lineas(args["old_string"]) });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** ¿Salió bien? El texto de éxito es el de `toolsDeFichero.ts#ejecutar`; un rechazo o un error no cuenta. */
|
|
16
|
+
export function escrituraConExito(contenido) {
|
|
17
|
+
return typeof contenido === "string" && contenido.startsWith("Successfully");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* El informe para el padre. `escribe` dice si el hijo podía escribir el proyecto: a uno que no podía no se le
|
|
21
|
+
* atribuye nada, y a uno que podía y no escribió se le dice —un «ya está hecho» sin ninguna escritura es justo lo
|
|
22
|
+
* que el padre tiene que saber—.
|
|
23
|
+
*/
|
|
24
|
+
export function textoDelInforme(quien, cambios, escribe, medida) {
|
|
25
|
+
const lineaDeMedida = medida === undefined ? [] : [`Última medida de su pantalla contra la maqueta, hecha por el harness: ${medida}.`];
|
|
26
|
+
if (cambios.size === 0) {
|
|
27
|
+
return escribe ? [`[harness] ${quien} ha terminado su encargo SIN escribir ningún fichero.`, ...lineaDeMedida].join("\n") : undefined;
|
|
28
|
+
}
|
|
29
|
+
const filas = [...cambios.entries()]
|
|
30
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
31
|
+
.map(([ruta, c]) => c.nuevo
|
|
32
|
+
? `- ${ruta}: nuevo${c.ediciones > 1 ? ` y ${c.ediciones - 1} edición(es) después` : ""}, +${c.mas} −${c.menos} líneas`
|
|
33
|
+
: `- ${ruta}: ${c.ediciones} edición(es), +${c.mas} −${c.menos} líneas`);
|
|
34
|
+
return [
|
|
35
|
+
`[harness] Lo que ESCRIBIÓ ${quien} en su encargo, contado por el harness (no por su informe):`,
|
|
36
|
+
...filas,
|
|
37
|
+
...lineaDeMedida,
|
|
38
|
+
"Para saber QUÉ ficheros cambió no hace falta releerlos; léelos solo si necesitas su contenido.",
|
|
39
|
+
].join("\n");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Entrega, antes de la siguiente llamada del hilo, los informes que le esperan (`pendientes` los CONSUME: cada uno
|
|
43
|
+
* sale una vez). Va en el raíz y en quien puede llamar a otros. No añade tools.
|
|
44
|
+
*/
|
|
45
|
+
export function capacidadDeInformesDeHijos(pendientes) {
|
|
46
|
+
return {
|
|
47
|
+
nombre: "informes-de-hijos",
|
|
48
|
+
tools: [],
|
|
49
|
+
capability: {
|
|
50
|
+
preLLMProcessors: [
|
|
51
|
+
{
|
|
52
|
+
async *processPreLLM(execution) {
|
|
53
|
+
const textos = pendientes(execution.threadId);
|
|
54
|
+
if (textos.length === 0)
|
|
55
|
+
return;
|
|
56
|
+
yield { type: "internal.agent.context.append", context: [{ role: "user", content: textos.join("\n\n") }], output: [] };
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=informesDeHijos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"informesDeHijos.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/informesDeHijos.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* La MEDIDA de la pantalla, puesta por el harness tras cada prueba en el aparato.
|
|
3
|
+
*
|
|
4
|
+
* Existe por tres pasadas de la misma calculadora: en la mejor (calc9) el desarrollador midió su pantalla con
|
|
5
|
+
* `comparar_capturas` y el crítico diez veces; en la siguiente (calc10), una, y quien acabó juzgando fue el
|
|
6
|
+
* orquestador, con dos rondas de rediseño que no convergieron. El prompt del bucle ya le daba las herramientas y el
|
|
7
|
+
* criterio del 10 %; era texto, y un texto no se cumple solo. Así que cuando vuelve quien EJECUTA con una captura
|
|
8
|
+
* nueva, el harness la mide contra la maqueta —la misma aritmética de `comparar_capturas`, sin modelo— y se la da a
|
|
9
|
+
* quien lo llamó: el desarrollador tiene el número delante sin acordarse de pedirlo, y el orquestador no tiene que
|
|
10
|
+
* volver a medir para saber cómo quedó.
|
|
11
|
+
*
|
|
12
|
+
* Lo cualitativo —texto cortado, formas, colores— sigue siendo del crítico, que cuesta una llamada de visión: aquí
|
|
13
|
+
* solo se le RECUERDA pasarlo si la medida no llega y no lo ha pasado desde su última escritura.
|
|
14
|
+
*/
|
|
15
|
+
import { readdirSync, readFileSync, statSync, existsSync } from "node:fs";
|
|
16
|
+
import { join, relative, sep } from "node:path";
|
|
17
|
+
import { compararPantallas, desajusteDeEncaje, informeDeComparacion, TOLERANCIA_DE_ENCAJE } from "../../../core/compararCapturas.js";
|
|
18
|
+
import { decodificarImagen } from "../../dispositivos/decodificarImagen.js";
|
|
19
|
+
/**
|
|
20
|
+
* Rondas VISUALES por encargo: una por captura medida. calc9, calc12 y calc13 sacaron 20-25 capturas cada una, retocando
|
|
21
|
+
* una o dos cosas por despliegue. Con el aviso, la tercera se DICE la última: después se devuelve con lo que falta.
|
|
22
|
+
*/
|
|
23
|
+
export const RONDAS_VISUALES = 3;
|
|
24
|
+
/** El criterio de aceptación por omisión del bucle (`textoDelBucle`): por debajo, en vertical Y en horizontal. */
|
|
25
|
+
export const CRITERIO_DE_DISTANCIA = 0.1;
|
|
26
|
+
const ES_IMAGEN = /\.(png|jpe?g)$/i;
|
|
27
|
+
/** La maqueta de la sesión: `/diseno/screen.png` si está, si no la primera imagen de `/diseno/` y después la de los adjuntos. */
|
|
28
|
+
export function buscarMaqueta(raiz, adjuntos) {
|
|
29
|
+
const diseno = join(raiz, "diseno");
|
|
30
|
+
const preferida = join(diseno, "screen.png");
|
|
31
|
+
if (existsSync(preferida))
|
|
32
|
+
return { virtual: "/diseno/screen.png", disco: preferida };
|
|
33
|
+
for (const [carpeta, prefijo] of [
|
|
34
|
+
[diseno, "/diseno/"],
|
|
35
|
+
...(adjuntos === undefined ? [] : [[adjuntos, "/adjuntos/"]]),
|
|
36
|
+
]) {
|
|
37
|
+
try {
|
|
38
|
+
const nombre = readdirSync(carpeta).filter((n) => ES_IMAGEN.test(n)).sort()[0];
|
|
39
|
+
if (nombre !== undefined)
|
|
40
|
+
return { virtual: `${prefijo}${nombre}`, disco: join(carpeta, nombre) };
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Sin esa carpeta no hay maqueta ahí.
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
/** La captura MÁS RECIENTE de la carpeta de artefactos escrita desde `desdeMs`, con su nombre relativo (dos niveles). */
|
|
49
|
+
export function ultimaCaptura(carpeta, desdeMs) {
|
|
50
|
+
let mejor;
|
|
51
|
+
const mirar = (dir, nivel) => {
|
|
52
|
+
let entradas;
|
|
53
|
+
try {
|
|
54
|
+
entradas = readdirSync(dir);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
for (const n of entradas) {
|
|
60
|
+
const ruta = join(dir, n);
|
|
61
|
+
let st;
|
|
62
|
+
try {
|
|
63
|
+
st = statSync(ruta);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (st.isDirectory()) {
|
|
69
|
+
if (nivel < 1)
|
|
70
|
+
mirar(ruta, nivel + 1);
|
|
71
|
+
}
|
|
72
|
+
else if (ES_IMAGEN.test(n) && st.mtimeMs >= desdeMs && (mejor === undefined || st.mtimeMs > mejor.t)) {
|
|
73
|
+
mejor = { nombre: relative(carpeta, ruta).split(sep).join("/"), t: st.mtimeMs };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
mirar(carpeta, 0);
|
|
78
|
+
return mejor?.nombre;
|
|
79
|
+
}
|
|
80
|
+
/** Mide una captura contra la maqueta. Lanza si alguna no se puede abrir o decodificar: quien llama lo traga. */
|
|
81
|
+
export function medirContraMaqueta(captura, maqueta) {
|
|
82
|
+
return compararPantallas(decodificarImagen(readFileSync(maqueta)), decodificarImagen(readFileSync(captura)));
|
|
83
|
+
}
|
|
84
|
+
const pct = (x) => `${Math.round(x * 100)} %`;
|
|
85
|
+
/** ¿Cumple el criterio? En las DOS direcciones Y encajando en la pantalla: cada borde del contenido cerca del de la maqueta. */
|
|
86
|
+
export function cumpleElCriterio(c) {
|
|
87
|
+
return (c.distanciaVertical < CRITERIO_DE_DISTANCIA &&
|
|
88
|
+
c.distanciaHorizontal < CRITERIO_DE_DISTANCIA &&
|
|
89
|
+
desajusteDeEncaje(c.encaje) <= TOLERANCIA_DE_ENCAJE);
|
|
90
|
+
}
|
|
91
|
+
/** La cifra corta, para el informe al orquestador. */
|
|
92
|
+
export function resumenDeMedida(c, captura) {
|
|
93
|
+
return `vertical ${pct(c.distanciaVertical)}, horizontal ${pct(c.distanciaHorizontal)}, encaje ${pct(desajusteDeEncaje(c.encaje))} en el peor borde (${cumpleElCriterio(c) ? "cumple" : "NO cumple"} el ${pct(CRITERIO_DE_DISTANCIA)} y el ${pct(TOLERANCIA_DE_ENCAJE)} de encaje; captura /artefactos/${captura})`;
|
|
94
|
+
}
|
|
95
|
+
/** El mensaje para quien llamó a quien ejecuta. `pedirCritica`: no ha pasado el crítico desde su última escritura. */
|
|
96
|
+
export function textoDeMedidaAutomatica(opciones) {
|
|
97
|
+
const { comparacion: c } = opciones;
|
|
98
|
+
const cumple = cumpleElCriterio(c);
|
|
99
|
+
return [
|
|
100
|
+
`[harness] Medida AUTOMÁTICA de la última captura que dejó ${opciones.quien} (/artefactos/${opciones.captura}) contra la maqueta ${opciones.maqueta}:`,
|
|
101
|
+
...informeDeComparacion(c),
|
|
102
|
+
cumple
|
|
103
|
+
? `La estructura CUMPLE el criterio (< ${pct(CRITERIO_DE_DISTANCIA)} en vertical y en horizontal, y cada borde a ${pct(TOLERANCIA_DE_ENCAJE)} o menos del de la maqueta). Queda lo que esto no mide: el crítico.`
|
|
104
|
+
: `NO cumple el criterio (< ${pct(CRITERIO_DE_DISTANCIA)} en vertical y en horizontal, y que ENCAJE en la pantalla: cada borde del contenido a ${pct(TOLERANCIA_DE_ENCAJE)} o menos del de la maqueta). No lo des por terminado ni lo devuelvas así: ` +
|
|
105
|
+
"corrige tú, o encarga al diseñador las diferencias CONCRETAS de arriba (qué franja, qué falta o sobra), y vuelve a comprobar.",
|
|
106
|
+
...(opciones.ronda !== undefined && !cumple
|
|
107
|
+
? [
|
|
108
|
+
opciones.ronda >= RONDAS_VISUALES
|
|
109
|
+
? `Es tu ronda visual ${opciones.ronda} de ${RONDAS_VISUALES}: arregla lo que puedas en ESTA y devuelve el trabajo diciendo qué falta, con esta medida. No pidas otra captura para retocar.`
|
|
110
|
+
: `Ronda visual ${opciones.ronda} de ${RONDAS_VISUALES}: junta TODAS las diferencias en un solo cambio antes de pedir la siguiente captura.`,
|
|
111
|
+
]
|
|
112
|
+
: []),
|
|
113
|
+
...(opciones.pedirCritica
|
|
114
|
+
? [`Desde tu última escritura no has pasado xone_critica_visual: pásala con pantalla=/artefactos/${opciones.captura} y referencia=${opciones.maqueta}.`]
|
|
115
|
+
: []),
|
|
116
|
+
].join("\n");
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=medidaAutomatica.js.map
|