xonecode 0.8.46 → 0.11.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 (147) hide show
  1. package/THIRD_PARTY_NOTICES.md +56 -0
  2. package/apps/web/dist/assets/index-BAyybSz-.css +1 -0
  3. package/apps/web/dist/assets/index-BNCMVjWv.js +485 -0
  4. package/apps/web/dist/assets/{php-Bx1jVads.js → php-DPbDT8rX.js} +1 -1
  5. package/apps/web/dist/assets/{ruby-L0I9KR6K.js → ruby-Bfvws9R8.js} +1 -1
  6. package/apps/web/dist/index.html +2 -2
  7. package/apps/web/dist/openui/visor.css +1 -0
  8. package/apps/web/dist/openui/visor.js +9113 -0
  9. package/dist/agent/exportarPdf.js +5 -1
  10. package/dist/agent/exportarPdf.js.map +1 -1
  11. package/dist/agent/grafo/arbolDeProyecto.js +67 -2
  12. package/dist/agent/grafo/arbolDeProyecto.js.map +1 -1
  13. package/dist/agent/grafo/memoriaDeProyecto.js +3 -2
  14. package/dist/agent/grafo/memoriaDeProyecto.js.map +1 -1
  15. package/dist/agent/grafo/navegacionXone.js +8 -3
  16. package/dist/agent/grafo/navegacionXone.js.map +1 -1
  17. package/dist/agent/grafo/opcionesDeFicheros.js +24 -0
  18. package/dist/agent/grafo/opcionesDeFicheros.js.map +1 -0
  19. package/dist/agent/grafo/perfiles.js +1 -1
  20. package/dist/agent/grafo/perfiles.js.map +1 -1
  21. package/dist/agent/grafo/proyecto.js +31 -15
  22. package/dist/agent/grafo/proyecto.js.map +1 -1
  23. package/dist/agent/grafo/unirSecciones.js +128 -0
  24. package/dist/agent/grafo/unirSecciones.js.map +1 -0
  25. package/dist/agent/grafo/xoneAgent.js +56 -51
  26. package/dist/agent/grafo/xoneAgent.js.map +1 -1
  27. package/dist/agent/motores/trueforge/capacidades.js +179 -0
  28. package/dist/agent/motores/trueforge/capacidades.js.map +1 -0
  29. package/dist/agent/motores/trueforge/eventosTrueforge.js +143 -0
  30. package/dist/agent/motores/trueforge/eventosTrueforge.js.map +1 -0
  31. package/dist/agent/motores/trueforge/memoriaTrueforge.js +336 -0
  32. package/dist/agent/motores/trueforge/memoriaTrueforge.js.map +1 -0
  33. package/dist/agent/motores/trueforge/metricasTrueforge.js +55 -0
  34. package/dist/agent/motores/trueforge/metricasTrueforge.js.map +1 -0
  35. package/dist/agent/motores/trueforge/modeloExterno.js +46 -0
  36. package/dist/agent/motores/trueforge/modeloExterno.js.map +1 -0
  37. package/dist/agent/motores/trueforge/modeloLangchain.js +152 -0
  38. package/dist/agent/motores/trueforge/modeloLangchain.js.map +1 -0
  39. package/dist/agent/motores/trueforge/recortes.js +121 -0
  40. package/dist/agent/motores/trueforge/recortes.js.map +1 -0
  41. package/dist/agent/motores/trueforge/sesionTrueforge.js +1062 -0
  42. package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -0
  43. package/dist/agent/motores/trueforge/skillsTrueforge.js +14 -0
  44. package/dist/agent/motores/trueforge/skillsTrueforge.js.map +1 -0
  45. package/dist/agent/motores/trueforge/toolsDeFichero.js +265 -0
  46. package/dist/agent/motores/trueforge/toolsDeFichero.js.map +1 -0
  47. package/dist/agent/motores/trueforge/toolsPropias.js +65 -0
  48. package/dist/agent/motores/trueforge/toolsPropias.js.map +1 -0
  49. package/dist/agent/motores/trueforge/trueforge.js +45 -0
  50. package/dist/agent/motores/trueforge/trueforge.js.map +1 -0
  51. package/dist/agent/navegacion/indiceEnDisco.js +10 -1
  52. package/dist/agent/navegacion/indiceEnDisco.js.map +1 -1
  53. package/dist/agent/planesEnDisco.js +64 -0
  54. package/dist/agent/planesEnDisco.js.map +1 -0
  55. package/dist/agent/sesiones/memoriaDeHilo.js +24 -0
  56. package/dist/agent/sesiones/memoriaDeHilo.js.map +1 -0
  57. package/dist/agent/sesiones/modeloDelCambio.js +70 -0
  58. package/dist/agent/sesiones/modeloDelCambio.js.map +1 -0
  59. package/dist/agent/sesiones/sesionGit.js +14 -0
  60. package/dist/agent/sesiones/sesionGit.js.map +1 -1
  61. package/dist/agent/subagentes/actividadDeCodex.js +60 -0
  62. package/dist/agent/subagentes/actividadDeCodex.js.map +1 -0
  63. package/dist/agent/subagentes/agentesEnDisco.js +95 -5
  64. package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
  65. package/dist/agent/subagentes/escrituraExterna.js +10 -2
  66. package/dist/agent/subagentes/escrituraExterna.js.map +1 -1
  67. package/dist/agent/subagentes/subagenteCodex.js +20 -0
  68. package/dist/agent/subagentes/subagenteCodex.js.map +1 -1
  69. package/dist/agent/subagentes/subagenteExterno.js +269 -202
  70. package/dist/agent/subagentes/subagenteExterno.js.map +1 -1
  71. package/dist/agent/subagentes/subagenteOpencode.js +19 -2
  72. package/dist/agent/subagentes/subagenteOpencode.js.map +1 -1
  73. package/dist/agent/turno/diagnosticoDeTools.js +3 -0
  74. package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
  75. package/dist/agent/turno/ficherosDelProyecto.js +62 -0
  76. package/dist/agent/turno/ficherosDelProyecto.js.map +1 -0
  77. package/dist/agent/turno/informeDeTraza.js +28 -1
  78. package/dist/agent/turno/informeDeTraza.js.map +1 -1
  79. package/dist/agent/turno/puente.js +17 -1
  80. package/dist/agent/turno/puente.js.map +1 -1
  81. package/dist/agent/turno/resumenDeContexto.js +17 -4
  82. package/dist/agent/turno/resumenDeContexto.js.map +1 -1
  83. package/dist/agent/turno/resumenDeTool.js +3 -0
  84. package/dist/agent/turno/resumenDeTool.js.map +1 -1
  85. package/dist/agent/turno/sesionReal.js +2 -0
  86. package/dist/agent/turno/sesionReal.js.map +1 -0
  87. package/dist/agent/turno/turnoReal.js +55 -164
  88. package/dist/agent/turno/turnoReal.js.map +1 -1
  89. package/dist/agent/turno/verificacion.js +142 -0
  90. package/dist/agent/turno/verificacion.js.map +1 -0
  91. package/dist/cli/config.js +19 -0
  92. package/dist/cli/config.js.map +1 -1
  93. package/dist/cli/consola.js.map +1 -1
  94. package/dist/cli/main.js +35 -2
  95. package/dist/cli/main.js.map +1 -1
  96. package/dist/cli/tui/correrTui.js +1 -1
  97. package/dist/cli/tui/correrTui.js.map +1 -1
  98. package/dist/cli/tui/transcript.js +9 -0
  99. package/dist/cli/tui/transcript.js.map +1 -1
  100. package/dist/core/actos.js.map +1 -1
  101. package/dist/core/agentes.js +17 -0
  102. package/dist/core/agentes.js.map +1 -1
  103. package/dist/core/artefactos.js +22 -0
  104. package/dist/core/artefactos.js.map +1 -1
  105. package/dist/core/config.js +13 -0
  106. package/dist/core/config.js.map +1 -1
  107. package/dist/core/diffDeColecciones.js +84 -0
  108. package/dist/core/diffDeColecciones.js.map +1 -0
  109. package/dist/core/exportacion.js +6 -1
  110. package/dist/core/exportacion.js.map +1 -1
  111. package/dist/core/fotoDeColecciones.js +48 -0
  112. package/dist/core/fotoDeColecciones.js.map +1 -0
  113. package/dist/core/imagenesDeDocumento.js +88 -0
  114. package/dist/core/imagenesDeDocumento.js.map +1 -0
  115. package/dist/core/memoria.js +24 -0
  116. package/dist/core/memoria.js.map +1 -0
  117. package/dist/core/motor.js +41 -0
  118. package/dist/core/motor.js.map +1 -0
  119. package/dist/core/navegacion.js.map +1 -1
  120. package/dist/core/notify.js +23 -5
  121. package/dist/core/notify.js.map +1 -1
  122. package/dist/core/ports.js.map +1 -1
  123. package/dist/core/serieDeEscrituras.js +13 -0
  124. package/dist/core/serieDeEscrituras.js.map +1 -1
  125. package/dist/core/settings.js +17 -1
  126. package/dist/core/settings.js.map +1 -1
  127. package/dist/core/tareasDelPlan.js +103 -0
  128. package/dist/core/tareasDelPlan.js.map +1 -0
  129. package/dist/core/trazaDeErrores.js +42 -3
  130. package/dist/core/trazaDeErrores.js.map +1 -1
  131. package/dist/core/turno.js +44 -4
  132. package/dist/core/turno.js.map +1 -1
  133. package/dist/web/servidor/arranque.js +204 -5
  134. package/dist/web/servidor/arranque.js.map +1 -1
  135. package/dist/web/servidor/pielWeb.js +69 -4
  136. package/dist/web/servidor/pielWeb.js.map +1 -1
  137. package/dist/web/servidor/sesiones.js +11 -0
  138. package/dist/web/servidor/sesiones.js.map +1 -1
  139. package/dist/web/servidor/transporte.js.map +1 -1
  140. package/dist/web/servidor/vestibulo.js +23 -2
  141. package/dist/web/servidor/vestibulo.js.map +1 -1
  142. package/dist/web/servidor/visorOpenui.js +63 -0
  143. package/dist/web/servidor/visorOpenui.js.map +1 -0
  144. package/package.json +7 -2
  145. package/skills/openui-builder/SKILL.md +48 -0
  146. package/apps/web/dist/assets/index-GRwyotMV.js +0 -478
  147. package/apps/web/dist/assets/index-_cBVqq54.css +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sesionTrueforge.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/sesionTrueforge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export function anuncioDeSkills(agente, catalogo) {
2
+ const porNombre = new Map(catalogo.map((s) => [s.nombre, s]));
3
+ const suyas = agente.skills.flatMap((n) => {
4
+ const s = porNombre.get(n);
5
+ return s === undefined ? [] : [s];
6
+ });
7
+ if (suyas.length === 0)
8
+ return "";
9
+ return [
10
+ "TUS SKILLS (léelas con read_file cuando el encargo las necesite, antes de actuar):",
11
+ ...suyas.map((s) => `- ${s.nombre}: ${s.descripcion} — /skills/${s.nombre}/SKILL.md`),
12
+ ].join("\n");
13
+ }
14
+ //# sourceMappingURL=skillsTrueforge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillsTrueforge.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/skillsTrueforge.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,eAAe,CAAC,MAA8B,EAAE,QAA8B;IAC5F,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACxC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO;QACL,oFAAoF;QACpF,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,WAAW,cAAc,CAAC,CAAC,MAAM,WAAW,CAAC;KACtF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,265 @@
1
+ /**
2
+ * Las tools de fichero del motor TrueForge, sobre NUESTRO backend.
3
+ *
4
+ * TrueForge no trae tools de fichero: el `ToolSource` que se le pasa es el que lee y escribe.
5
+ * Así que aquí se hacen las seis de deepagents —`ls`, `read_file`, `write_file`, `edit_file`,
6
+ * `glob`, `grep`—, con sus mismos nombres y argumentos, para que un prompt que las nombra valga
7
+ * con los dos motores, y **delegando en el mismo backend** (`backendDeAgente`): con eso las
8
+ * guardas que viven en su pila de Proxies —el confinamiento virtual, las vistas aplanadas, los
9
+ * artefactos y descargas fuera del proyecto, las escrituras en serie por fichero, la validación
10
+ * del contenido, los montajes de `/skills/`, `/artefactos/`, `/adjuntos/`— van gratis.
11
+ *
12
+ * **Lo que NO va gratis es `permisosDe`**: en deepagents es middleware, no Proxy, así que aquí
13
+ * nadie denegaría `/.env`, `/.git`, `/.xonecode` ni escribir en `/skills/` o `/adjuntos/`. Se
14
+ * evalúan las MISMAS reglas (`perfiles.ts#permisosDe`, que las compone) con la misma semántica
15
+ * que la librería —la primera que casa decide, y si no casa ninguna se permite— y con el mismo
16
+ * `micromatch` y opciones. No es una segunda copia de la regla: la regla sigue siendo la lista
17
+ * de `permisosDe`; esto solo la evalúa donde el middleware no llega.
18
+ *
19
+ * Un rechazo se DEVUELVE como resultado de error y nunca se lanza: el modelo lo lee y reintenta,
20
+ * que es la regla de las guardas del backend.
21
+ */
22
+ import { posix } from "node:path";
23
+ import micromatch from "micromatch";
24
+ import { toolResultResponse } from "./trueforge.js";
25
+ import { REGLA_DE_ESCRITURAS_EN_PARALELO } from "../../../core/serieDeEscrituras.js";
26
+ import { desalojarSiGrande, MAXIMO_DE_COINCIDENCIAS, truncarSiLargo } from "./recortes.js";
27
+ /** La misma decisión que `decidePathAccess` de deepagents: primera que casa, y permitir por
28
+ * omisión. Con `micromatch` y `dot: true`, que es como la librería compara. */
29
+ export function decidirAccesoDeRuta(reglas, operacion, ruta) {
30
+ for (const regla of reglas) {
31
+ if (!regla.operations.includes(operacion))
32
+ continue;
33
+ if (regla.paths.some((p) => micromatch.isMatch(ruta, p, { dot: true })))
34
+ return regla.mode ?? "allow";
35
+ }
36
+ return "allow";
37
+ }
38
+ /** Las seis tools y lo que cada una toca, para decidir el permiso antes de llamar al backend. */
39
+ export const TOOLS_DE_FICHERO = ["ls", "read_file", "write_file", "edit_file", "glob", "grep"];
40
+ /** Las que ESCRIBEN: son las que piden aprobación, igual que el HITL de deepagents. */
41
+ export const TOOLS_QUE_ESCRIBEN = ["write_file", "edit_file"];
42
+ const cadena = { type: "string" };
43
+ const ESQUEMAS = {
44
+ ls: { descripcion: "Lists files and directories in a directory (non-recursive).", propiedades: { path: cadena }, obligatorias: ["path"] },
45
+ read_file: {
46
+ descripcion: "Reads a file. Returns its lines numbered. Use offset/limit to page through long files.",
47
+ propiedades: { file_path: cadena, offset: { type: "number" }, limit: { type: "number" } },
48
+ obligatorias: ["file_path"],
49
+ },
50
+ write_file: { descripcion: `Writes a NEW file with the given content. ${REGLA_DE_ESCRITURAS_EN_PARALELO}`, propiedades: { file_path: cadena, content: cadena }, obligatorias: ["file_path", "content"] },
51
+ edit_file: {
52
+ descripcion: `Replaces old_string with new_string in a file. old_string must match exactly. ${REGLA_DE_ESCRITURAS_EN_PARALELO}`,
53
+ propiedades: { file_path: cadena, old_string: cadena, new_string: cadena, replace_all: { type: "boolean" } },
54
+ obligatorias: ["file_path", "old_string", "new_string"],
55
+ },
56
+ glob: { descripcion: "Finds files matching a glob pattern.", propiedades: { pattern: cadena, path: cadena }, obligatorias: ["pattern"] },
57
+ grep: { descripcion: "Searches file contents for a literal pattern.", propiedades: { pattern: cadena, path: cadena, glob: cadena }, obligatorias: ["pattern"] },
58
+ };
59
+ /**
60
+ * La ruta VIRTUAL que el backend entiende, desde lo que escriba el modelo. Medido en la primera
61
+ * sesión real: el modelo pidió `ls .` y `read_file MEMORIA_PROYECTO.md`, sin la barra, y el
62
+ * backend —que solo sabe de rutas absolutas del espacio virtual— contestó «no existe» sobre un
63
+ * fichero que sí está; el agente acabó barriendo los `.xne` a mano. Vacía o `.` es la raíz, y
64
+ * lo relativo cuelga de ella.
65
+ *
66
+ * **Se normaliza ANTES de evaluar los permisos**, y es lo que importa: las reglas de `permisosDe`
67
+ * están escritas sobre rutas absolutas (`/.env`), así que una relativa (`.env`) no casaría con
68
+ * ninguna y pasaría. Y una que se sale de la raíz con `..` no es una ruta del proyecto: `undefined`,
69
+ * que quien llama rechaza — lo mismo que hace deepagents.
70
+ */
71
+ export function normalizarRuta(bruta) {
72
+ const limpia = bruta.trim();
73
+ if (limpia === "" || limpia === ".")
74
+ return "/";
75
+ const absoluta = limpia.startsWith("/") ? limpia : `/${limpia.replace(/^\.\//, "")}`;
76
+ if (absoluta.split("/").includes(".."))
77
+ return undefined;
78
+ const normal = posix.normalize(absoluta);
79
+ return normal.length > 1 && normal.endsWith("/") ? normal.slice(0, -1) : normal;
80
+ }
81
+ /** La ruta de la que habla cada tool, y si es para leer o para escribir. */
82
+ function objetivoDe(nombre, args) {
83
+ const texto = (v, omision = "/") => (typeof v === "string" && v !== "" ? v : omision);
84
+ switch (nombre) {
85
+ case "ls":
86
+ return { ruta: texto(args.path), operacion: "read" };
87
+ case "read_file":
88
+ return { ruta: texto(args.file_path, ""), operacion: "read" };
89
+ case "write_file":
90
+ case "edit_file":
91
+ return { ruta: texto(args.file_path, ""), operacion: "write" };
92
+ case "glob":
93
+ case "grep":
94
+ return { ruta: texto(args.path), operacion: "read" };
95
+ }
96
+ }
97
+ /** El contenido de un fichero, numerado como lo numera deepagents (6 de ancho y un tabulador). */
98
+ function numerado(contenido, desde) {
99
+ const lineas = contenido.split("\n");
100
+ if (lineas.length > 0 && lineas[lineas.length - 1] === "")
101
+ lineas.pop();
102
+ return lineas.map((l, i) => `${String(i + desde).padStart(6)}\t${l}`).join("\n");
103
+ }
104
+ /** Lo que el backend contestó, en el texto que ve el modelo. */
105
+ async function ejecutar(backend, nombre, args) {
106
+ const s = (v) => (typeof v === "string" ? v : "");
107
+ switch (nombre) {
108
+ case "ls": {
109
+ const r = (await backend.ls(s(args.path) || "/"));
110
+ if (r.error !== undefined)
111
+ return { texto: r.error, error: true };
112
+ return { texto: truncarSiLargo((r.files ?? []).map((f) => (f.is_dir === true ? `${f.path}/` : f.path)).join("\n")) || "(vacío)", error: false };
113
+ }
114
+ case "read_file": {
115
+ const offset = typeof args.offset === "number" && args.offset > 0 ? Math.floor(args.offset) : 0;
116
+ const limit = typeof args.limit === "number" && args.limit > 0 ? Math.floor(args.limit) : 100;
117
+ const r = (await backend.read(s(args.file_path), offset, limit));
118
+ if (r.error !== undefined)
119
+ return { texto: r.error, error: true };
120
+ if (typeof r.content !== "string")
121
+ return { texto: "fichero binario: no se puede leer como texto", error: true };
122
+ return { texto: numerado(r.content, offset + 1), error: false };
123
+ }
124
+ case "write_file": {
125
+ const r = (await backend.write(s(args.file_path), s(args.content)));
126
+ if (r.error !== undefined)
127
+ return { texto: r.error, error: true };
128
+ return { texto: `Successfully wrote to ${s(args.file_path)}`, error: false };
129
+ }
130
+ case "edit_file": {
131
+ const r = (await backend.edit(s(args.file_path), s(args.old_string), s(args.new_string), args.replace_all === true));
132
+ if (r.error !== undefined)
133
+ return { texto: r.error, error: true };
134
+ return { texto: `Successfully replaced ${r.occurrences ?? 1} occurrence(s) in ${s(args.file_path)}`, error: false };
135
+ }
136
+ case "glob": {
137
+ const r = (await backend.glob(s(args.pattern), s(args.path) || "/"));
138
+ if (r.error !== undefined)
139
+ return { texto: r.error, error: true };
140
+ return { texto: truncarSiLargo((r.files ?? []).map((f) => f.path).join("\n")) || "(ninguno)", error: false };
141
+ }
142
+ case "grep": {
143
+ const r = (await backend.grep(s(args.pattern), s(args.path) || "/", s(args.glob) || null));
144
+ if (r.error !== undefined)
145
+ return { texto: r.error, error: true };
146
+ // El tope de coincidencias y el truncado de deepagents (`recortes.ts`): sin ellos un `grep`
147
+ // sobre la raíz metía cientos de líneas que se reenviaban en cada llamada siguiente.
148
+ const todas = r.matches ?? [];
149
+ const lineas = todas.slice(0, MAXIMO_DE_COINCIDENCIAS).map((m) => `${m.path}:${m.line}: ${m.text}`);
150
+ const resto = todas.length > MAXIMO_DE_COINCIDENCIAS ? `\n... [${todas.length - MAXIMO_DE_COINCIDENCIAS} coincidencias más: afina el patrón o la ruta]` : "";
151
+ return { texto: truncarSiLargo(lineas.join("\n") + resto) || "(sin coincidencias)", error: false };
152
+ }
153
+ }
154
+ }
155
+ /**
156
+ * El `ToolSource` de TrueForge con las seis tools. La aprobación NO se decide aquí: la pone el
157
+ * `ToolSet` que lo envuelve (`requireApprovalForTools`), y la tool solo corre tras el «sí».
158
+ */
159
+ export function fuenteDeFicheros(opciones) {
160
+ const ofrecidas = opciones.tools ?? TOOLS_DE_FICHERO;
161
+ const esDeFichero = (n) => ofrecidas.includes(n);
162
+ return {
163
+ name: "xone",
164
+ id: "xone",
165
+ listTools: async () => ({
166
+ result: {
167
+ tools: ofrecidas.map((n) => ({
168
+ name: n,
169
+ description: ESQUEMAS[n].descripcion,
170
+ inputSchema: { type: "object", properties: ESQUEMAS[n].propiedades, required: ESQUEMAS[n].obligatorias },
171
+ preload: true,
172
+ })),
173
+ },
174
+ wasInitialized: undefined,
175
+ }),
176
+ callTool: async (params) => {
177
+ if (!esDeFichero(params.name))
178
+ return toolResultResponse({ text: `tool desconocida: ${params.name}`, isError: true });
179
+ const crudos = params.arguments ?? {};
180
+ const { ruta: bruta, operacion } = objetivoDe(params.name, crudos);
181
+ if (bruta === "")
182
+ return toolResultResponse({ text: "falta la ruta del fichero", isError: true });
183
+ const ruta = normalizarRuta(bruta);
184
+ if (ruta === undefined) {
185
+ return toolResultResponse({ text: `ruta fuera del proyecto: ${bruta}`, isError: true });
186
+ }
187
+ // Los argumentos que llegan al backend llevan la ruta YA normalizada: la misma que se
188
+ // acaba de autorizar, y no otra.
189
+ const campo = params.name === "ls" || params.name === "glob" || params.name === "grep" ? "path" : "file_path";
190
+ const args = { ...crudos, [campo]: ruta };
191
+ if (decidirAccesoDeRuta(opciones.reglas, operacion, ruta) === "deny") {
192
+ return toolResultResponse({ text: `permission denied: ${operacion} ${ruta}`, isError: true });
193
+ }
194
+ try {
195
+ const { texto, error } = await ejecutar(opciones.backend, params.name, args);
196
+ return toolResultResponse({ text: texto, isError: error });
197
+ }
198
+ catch (e) {
199
+ // Un backend que LANZA no tumba el turno: se le devuelve al modelo, como las guardas.
200
+ return toolResultResponse({ text: e instanceof Error ? e.message : String(e), isError: true });
201
+ }
202
+ },
203
+ toolCallInfo: async (params) => ({
204
+ type: "mcp",
205
+ mcp_server_id: "xone",
206
+ mcp_server_name: "xone",
207
+ original_tool_name: params.name,
208
+ }),
209
+ };
210
+ }
211
+ /** Las que solo LEEN: las que lleva un subagente que no escribe el proyecto. */
212
+ export const TOOLS_DE_LECTURA = ["ls", "read_file", "glob", "grep"];
213
+ /**
214
+ * `execute`: la shell del `device-controller`, sobre el MISMO backend que le monta deepagents
215
+ * (`backendDeAgente` con `ejecucion`), así que su entorno —los scripts de las skills en el PATH, sin
216
+ * las claves de API, con el fichero del dispositivo de la sesión— y el anuncio de los artefactos que
217
+ * deje un comando son los de siempre.
218
+ *
219
+ * **Solo la lleva UN agente**, como en deepagents: una shell no pasa por `permisosDe` ni por la
220
+ * aprobación, así que no se le da al que escribe el proyecto. Y no pregunta antes de cada comando:
221
+ * lo que lo compensa es que el comando entero se VE en el chat (`resumenDeTool.ts` lo tiene en su
222
+ * lista blanca).
223
+ */
224
+ export function fuenteDeEjecucion(backend) {
225
+ return {
226
+ name: "shell",
227
+ id: "shell",
228
+ listTools: async () => ({
229
+ result: {
230
+ tools: [
231
+ {
232
+ name: "execute",
233
+ description: "Runs a shell command in the project root and returns its output and exit code. Use the xone-* scripts of your skills.",
234
+ inputSchema: { type: "object", properties: { command: { type: "string" } }, required: ["command"] },
235
+ preload: true,
236
+ },
237
+ ],
238
+ },
239
+ wasInitialized: undefined,
240
+ }),
241
+ callTool: async (params) => {
242
+ const comando = params.arguments?.command;
243
+ if (params.name !== "execute" || typeof comando !== "string" || comando.trim() === "") {
244
+ return toolResultResponse({ text: "execute necesita un `command`", isError: true });
245
+ }
246
+ try {
247
+ const r = (await backend.execute(comando));
248
+ const salida = `${r.output ?? ""}${r.truncated === true ? "\n[salida truncada]" : ""}`;
249
+ const codigo = r.exitCode ?? 0;
250
+ const texto = await desalojarSiGrande(`${salida}\n[exit code ${codigo}]`, backend);
251
+ return toolResultResponse({ text: texto, isError: codigo !== 0 });
252
+ }
253
+ catch (e) {
254
+ return toolResultResponse({ text: e instanceof Error ? e.message : String(e), isError: true });
255
+ }
256
+ },
257
+ toolCallInfo: async (params) => ({
258
+ type: "mcp",
259
+ mcp_server_id: "shell",
260
+ mcp_server_name: "shell",
261
+ original_tool_name: params.name,
262
+ }),
263
+ };
264
+ }
265
+ //# sourceMappingURL=toolsDeFichero.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolsDeFichero.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/toolsDeFichero.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Las tools PROPIAS de xonecode —las que no son de fichero— en TrueForge.
3
+ *
4
+ * En deepagents son tools de LangChain (`tool()` de `@langchain/core`): `xone_navegacion`,
5
+ * `regex_search`, `copiar_artefacto`, la crítica visual y traer de la máquina. No se reescriben
6
+ * para este motor: un segundo sitio donde decidir qué contesta `xone_navegacion` sería un segundo
7
+ * sitio donde las dos respuestas pueden divergir. Se ADAPTAN: el esquema sale del de la tool y la
8
+ * llamada es su `invoke`, así que lo que hace cada una —sus guardas incluidas, que ya re-aplican
9
+ * `puedeLeerRuta` a mano porque tampoco en deepagents pasan por el middleware de permisos— es el
10
+ * mismo código en los dos motores.
11
+ */
12
+ import { toolResultResponse } from "./trueforge.js";
13
+ import { toJsonSchema } from "@langchain/core/utils/json_schema";
14
+ import { desalojarSiGrande } from "./recortes.js";
15
+ /** El texto de lo que devuelve una tool de LangChain: una cadena, o un `ToolMessage`. */
16
+ function textoDeResultado(r) {
17
+ if (typeof r === "string")
18
+ return r;
19
+ const contenido = r?.content;
20
+ if (typeof contenido === "string")
21
+ return contenido;
22
+ return JSON.stringify(r ?? "");
23
+ }
24
+ /** Un `ToolSource` de TrueForge con estas tools, llamadas tal cual. */
25
+ export function fuenteDeLangchain(tools, backend) {
26
+ const porNombre = new Map(tools.map((t) => [t.name, t]));
27
+ return {
28
+ name: "xone-propias",
29
+ id: "xone-propias",
30
+ listTools: async () => ({
31
+ result: {
32
+ tools: tools.map((t) => ({
33
+ name: t.name,
34
+ description: t.description,
35
+ inputSchema: toJsonSchema(t.schema),
36
+ preload: true,
37
+ })),
38
+ },
39
+ wasInitialized: undefined,
40
+ }),
41
+ callTool: async (params) => {
42
+ const t = porNombre.get(params.name);
43
+ if (t === undefined)
44
+ return toolResultResponse({ text: `tool desconocida: ${params.name}`, isError: true });
45
+ try {
46
+ // Las propias SÍ se desalojan cuando son grandes: no son de fichero, y en deepagents el
47
+ // `FilesystemMiddleware` solo exime a esas (`recortes.ts`).
48
+ const texto = await desalojarSiGrande(textoDeResultado(await t.invoke(params.arguments ?? {})), backend);
49
+ return toolResultResponse({ text: texto, isError: false });
50
+ }
51
+ catch (e) {
52
+ // Una tool que LANZA —un argumento que no pasa su esquema, por ejemplo— no tumba el turno:
53
+ // se le devuelve al modelo, que puede corregirse, como las guardas.
54
+ return toolResultResponse({ text: e instanceof Error ? e.message : String(e), isError: true });
55
+ }
56
+ },
57
+ toolCallInfo: async (params) => ({
58
+ type: "mcp",
59
+ mcp_server_id: "xone-propias",
60
+ mcp_server_name: "xone-propias",
61
+ original_tool_name: params.name,
62
+ }),
63
+ };
64
+ }
65
+ //# sourceMappingURL=toolsPropias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolsPropias.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/toolsPropias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAA2B,MAAM,eAAe,CAAC;AAU3E,yFAAyF;AACzF,SAAS,gBAAgB,CAAC,CAAU;IAClC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,MAAM,SAAS,GAAI,CAAkC,EAAE,OAAO,CAAC;IAC/D,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,iBAAiB,CAAC,KAAiC,EAAE,OAA2B;IAC9F,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,EAAE,EAAE,cAAc;QAClB,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,MAAe,CAAuB;oBAClE,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;aACJ;YACD,cAAc,EAAE,SAAS;SAC1B,CAAC;QACF,QAAQ,EAAE,KAAK,EAAE,MAA6D,EAAE,EAAE;YAChF,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,kBAAkB,CAAC,EAAE,IAAI,EAAE,qBAAqB,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5G,IAAI,CAAC;gBACH,wFAAwF;gBACxF,4DAA4D;gBAC5D,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBACzG,OAAO,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,2FAA2F;gBAC3F,oEAAoE;gBACpE,OAAO,kBAAkB,CAAC,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,MAAwB,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,EAAE,KAAc;YACpB,aAAa,EAAE,cAAc;YAC7B,eAAe,EAAE,cAAc;YAC/B,kBAAkB,EAAE,MAAM,CAAC,IAAI;SAChC,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * TODO lo que XOneCode usa de `@truefoundry/trueforge-core`, por un solo sitio.
3
+ *
4
+ * La librería es 0.x (fijada EXACTA a 0.2.1 en `package.json`) y no promete compatibilidad entre
5
+ * versiones. Con los imports repartidos por el motor, subirla obligaba a revisar cada fichero; aquí
6
+ * se revisa uno. Dos clases de cosas, y se separan a propósito:
7
+ *
8
+ * - Lo de la API PÚBLICA (`@truefoundry/trueforge-core/core`): el orquestador, los hilos, las
9
+ * capabilities, `ILLM`.
10
+ * - Lo que SOLO está en rutas profundas: los tipos de los fragmentos del modelo y el trazado mudo.
11
+ * El paquete los deja importar (`"./*"` en sus `exports`), pero no son su API: son lo primero
12
+ * que puede moverse en una versión nueva, y por eso viven aquí y en ningún otro sitio.
13
+ *
14
+ * El trazado mudo (`NOOP_AGENT_TRACING`) es NUESTRO y va con `satisfies` contra los tipos PÚBLICOS
15
+ * de la librería: si su interfaz cambia, el compilador lo dice aquí. Era una ruta profunda más, y la
16
+ * única que no era un tipo.
17
+ */
18
+ /**
19
+ * La versión de la librería con la que corre este motor, la MISMA que fija `package.json`
20
+ * (`frontera.test.ts` compara las dos, y contra la instalada). Viaja en la foto de memoria
21
+ * (`memoriaTrueforge.ts`) para que una migración futura sepa con qué `toSnapshot()` se escribió.
22
+ * Es una constante y no una lectura de su `package.json`: leerlo desde otro fichero sería una
23
+ * segunda puerta a la librería, y aquí subirla se revisa de todas formas.
24
+ */
25
+ export const VERSION_DE_TRUEFORGE = "0.2.1";
26
+ export { AgentThread, AgentThreadOrchestrator, EventType, ToolSet, askUserQuestion, contextCompaction, currentDateTime, dynamicSubAgents, openUI, toolResultResponse, } from "@truefoundry/trueforge-core/core";
27
+ // ── El trazado mudo: no trazamos con la librería (la traza es la nuestra, `diagnosticoDeTools`) ─
28
+ const TRAZA_MUDA = {
29
+ runInContext: (operation) => operation(),
30
+ startSubAgent: () => TRAZA_MUDA,
31
+ setOutput: () => undefined,
32
+ setMetrics: () => undefined,
33
+ setError: () => undefined,
34
+ setSuccess: () => undefined,
35
+ end: () => undefined,
36
+ };
37
+ const TOOL_MUDA = { setOutput: () => undefined, setSandboxId: () => undefined };
38
+ const MCP_MUDO = { setOutput: () => undefined, setNumberOfTools: () => undefined };
39
+ export const NOOP_AGENT_TRACING = {
40
+ withInitSpan: (operation) => operation(),
41
+ startRootSpan: () => TRAZA_MUDA,
42
+ withLocalToolSpan: (_input, operation) => operation(TOOL_MUDA),
43
+ withRemoteMcpToolSpan: (_input, operation) => operation(MCP_MUDO),
44
+ };
45
+ //# sourceMappingURL=trueforge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trueforge.js","sourceRoot":"","sources":["../../../../src/agent/motores/trueforge/trueforge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAE5C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,SAAS,EACT,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,MAAM,EACN,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAY1C,mGAAmG;AACnG,MAAM,UAAU,GAAG;IACjB,YAAY,EAAE,CAAI,SAAkB,EAAK,EAAE,CAAC,SAAS,EAAE;IACvD,aAAa,EAAE,GAAwB,EAAE,CAAC,UAAU;IACpD,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS;IAC1B,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;IAC3B,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS;IACzB,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;IAC3B,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;CACS,CAAC;AAChC,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS,EAAgC,CAAC;AAC9G,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS,EAAoC,CAAC;AAErH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY,EAAE,CAAI,SAA2B,EAAc,EAAE,CAAC,SAAS,EAAE;IACzE,aAAa,EAAE,GAAwB,EAAE,CAAC,UAAU;IACpD,iBAAiB,EAAE,CAAI,MAAe,EAAE,SAAoD,EAAc,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC;IACjI,qBAAqB,EAAE,CAAI,MAAe,EAAE,SAAwD,EAAc,EAAE,CAClH,SAAS,CAAC,QAAQ,CAAC;CACC,CAAC"}
@@ -14,9 +14,18 @@ import { estilosEnDisco } from "./estilosEnDisco.js";
14
14
  * tendríamos una tool que lee cualquier carpeta de la máquina.
15
15
  */
16
16
  export function indiceEnDisco(raiz) {
17
+ const modelo = modeloEnDisco(raiz);
18
+ return async (ficheros) => construirIndice(await modelo(ficheros));
19
+ }
20
+ /**
21
+ * El MODELO de navegación de una raíz, ya traducido y filtrado: lo que el índice consulta y lo
22
+ * que la pestaña Colecciones fotografía (`core/fotoDeColecciones.ts`). Un solo cargador para
23
+ * los dos, así que lo que ve la persona y lo que ve el agente salen de la misma lectura.
24
+ */
25
+ export function modeloEnDisco(raiz) {
17
26
  return async (ficheros) => {
18
27
  const proyecto = await XoneProject.load(raiz);
19
- return construirIndice(modeloDeNavegacion(proyecto.model, raiz, ficheros));
28
+ return modeloDeNavegacion(proyecto.model, raiz, ficheros);
20
29
  };
21
30
  }
22
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"indiceEnDisco.js","sourceRoot":"","sources":["../../../src/agent/navegacion/indiceEnDisco.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,4FAA4F;AAC5F,sFAAsF;AACtF,sFAAsF;AACtF,4FAA4F;AAC5F,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,eAAe,EAA2B,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAwB,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AA2BzE;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,eAAe,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAwB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAc,CAAC,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"indiceEnDisco.js","sourceRoot":"","sources":["../../../src/agent/navegacion/indiceEnDisco.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,4FAA4F;AAC5F,sFAAsF;AACtF,sFAAsF;AACtF,4FAA4F;AAC5F,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAoD,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAwB,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AA2BzE;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,KAAwB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/E,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAc,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Los planes del proyecto, leídos de `.xonecode/planes/` para la pestaña Planes.
3
+ *
4
+ * Solo LEE: escribir un plan es del agente (por `/planes/`, sin aprobación, ver `core/planes.ts`)
5
+ * y publicarlo es de `/plan publicar`. Las barreras son las de `publicarPlan.ts`, por lo mismo:
6
+ *
7
+ * - **El nombre de la carpeta es un SLUG válido** (`motivoDePlanInaceptable`) o no se lista: de
8
+ * ahí sale lo que se enseña y el nombre con el que se publica.
9
+ * - **No se sigue un enlace** (`lstat`), ni en la carpeta ni en sus ficheros: lo que se enseña es
10
+ * lo que el plan tiene dentro, no lo que apunta a otro sitio del disco.
11
+ * - **Se acota lo que se lee**: un `PLAN.md` enorme no puede convertirse en un mensaje sin fondo.
12
+ *
13
+ * Nada de esto lleva una ruta de la máquina: el cable recibe nombres y texto del plan.
14
+ */
15
+ import { existsSync, lstatSync, readdirSync, readFileSync } from "node:fs";
16
+ import { join } from "node:path";
17
+ import { CARPETA_DE_PLANES, FICHEROS_DE_UN_PLAN, motivoDePlanInaceptable } from "../core/planes.js";
18
+ import { leerTareasDelPlan } from "../core/tareasDelPlan.js";
19
+ /** Cuánto se lee de un fichero de plan. Uno real ronda los 10-15 KB. */
20
+ export const TOPE_DE_FICHERO_DE_PLAN = 128 * 1024;
21
+ /** Un fichero normal del plan (nunca un enlace), leído con tope; `undefined` si no está. */
22
+ function leerAcotado(ruta) {
23
+ try {
24
+ const info = lstatSync(ruta);
25
+ if (!info.isFile())
26
+ return undefined;
27
+ const bytes = readFileSync(ruta);
28
+ const recortado = bytes.length > TOPE_DE_FICHERO_DE_PLAN;
29
+ return { texto: bytes.subarray(0, TOPE_DE_FICHERO_DE_PLAN).toString("utf8"), recortado, mtime: info.mtimeMs };
30
+ }
31
+ catch {
32
+ return undefined;
33
+ }
34
+ }
35
+ export function planesDelProyecto(raiz) {
36
+ const carpeta = join(raiz, CARPETA_DE_PLANES);
37
+ if (!existsSync(carpeta))
38
+ return [];
39
+ const salida = [];
40
+ for (const entrada of readdirSync(carpeta, { withFileTypes: true })) {
41
+ if (!entrada.isDirectory() || entrada.isSymbolicLink())
42
+ continue;
43
+ if (motivoDePlanInaceptable(entrada.name) !== undefined)
44
+ continue;
45
+ const dir = join(carpeta, entrada.name);
46
+ if (!lstatSync(dir).isDirectory())
47
+ continue;
48
+ const leidos = new Map(FICHEROS_DE_UN_PLAN.flatMap((f) => {
49
+ const leido = leerAcotado(join(dir, f));
50
+ return leido === undefined ? [] : [[f, leido]];
51
+ }));
52
+ const tasks = leidos.get("TASKS.md");
53
+ const plan = leidos.get("PLAN.md");
54
+ salida.push({
55
+ nombre: entrada.name,
56
+ ficheros: [...leidos.keys()],
57
+ ...(tasks === undefined ? {} : { tareas: leerTareasDelPlan(tasks.texto) }),
58
+ ...(plan === undefined ? {} : { plan: { texto: plan.texto, recortado: plan.recortado } }),
59
+ modificado: Math.max(lstatSync(dir).mtimeMs, ...[...leidos.values()].map((l) => l.mtime)),
60
+ });
61
+ }
62
+ return salida.sort((a, b) => b.modificado - a.modificado);
63
+ }
64
+ //# sourceMappingURL=planesEnDisco.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planesEnDisco.js","sourceRoot":"","sources":["../../src/agent/planesEnDisco.ts"],"names":[],"mappings":"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"}