xonecode 0.39.5 → 0.39.10

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 (32) hide show
  1. package/apps/web/dist/assets/{EditorDeFichero-DepW4HeV.js → EditorDeFichero-r9TLKir8.js} +1 -1
  2. package/apps/web/dist/assets/{index-C57A_ylS.css → index-B_efwIyb.css} +1 -1
  3. package/apps/web/dist/assets/{index-5CcbWnvf.js → index-dTeeqNUw.js} +80 -80
  4. package/apps/web/dist/assets/{php-CNLsjKXL.js → php-CpfBLfZT.js} +1 -1
  5. package/apps/web/dist/assets/{ruby-Bc_7OXRJ.js → ruby-tuiuxnLd.js} +1 -1
  6. package/apps/web/dist/index.html +2 -2
  7. package/dist/agent/motores/trueforge/sesionTrueforge.js +39 -4
  8. package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
  9. package/dist/agent/sesiones/sesionGit.d.ts +35 -2
  10. package/dist/agent/sesiones/sesionGit.js +88 -4
  11. package/dist/agent/sesiones/sesionGit.js.map +1 -1
  12. package/dist/agent/subagentes/agotamiento.d.ts +33 -0
  13. package/dist/agent/subagentes/agotamiento.js +77 -0
  14. package/dist/agent/subagentes/agotamiento.js.map +1 -0
  15. package/dist/core/agotamientoExterno.d.ts +19 -0
  16. package/dist/core/agotamientoExterno.js +83 -0
  17. package/dist/core/agotamientoExterno.js.map +1 -0
  18. package/dist/core/motoresLocales.d.ts +6 -0
  19. package/dist/core/motoresLocales.js.map +1 -1
  20. package/dist/core/tareas.d.ts +38 -1
  21. package/dist/core/tareas.js +77 -1
  22. package/dist/core/tareas.js.map +1 -1
  23. package/dist/web/servidor/arranque.d.ts +1 -1
  24. package/dist/web/servidor/arranque.js +79 -4
  25. package/dist/web/servidor/arranque.js.map +1 -1
  26. package/dist/web/servidor/corredorDeTareas.d.ts +3 -3
  27. package/dist/web/servidor/corredorDeTareas.js +4 -3
  28. package/dist/web/servidor/corredorDeTareas.js.map +1 -1
  29. package/dist/web/servidor/transporte.d.ts +20 -2
  30. package/dist/web/servidor/transporte.js +3 -0
  31. package/dist/web/servidor/transporte.js.map +1 -1
  32. package/package.json +1 -1
@@ -73,7 +73,9 @@ export function selloDeSesion(id) {
73
73
  * comentario de cierre de una tarea — la MISMA lista que ya sostiene `cambiosDeSesion`, así
74
74
  * que no se recalcula con otro criterio.
75
75
  */
76
- export async function commitsDeSesion(raiz, id, ruta) {
76
+ export async function commitsDeSesion(raiz, id, ruta,
77
+ /** Solo los commiteados desde este instante (ISO), con la fecha del commit. Lo usa la continuación de una tarea. */
78
+ desde) {
77
79
  const sello = selloDeSesion(id);
78
80
  if (sello === undefined)
79
81
  return [];
@@ -89,7 +91,7 @@ export async function commitsDeSesion(raiz, id, ruta) {
89
91
  "--no-merges",
90
92
  // La coma como separador porque el de omisión es un salto de línea, que partiría
91
93
  // las filas de esta salida. Un id no puede llevar comas (`idAceptable`).
92
- `--format=%H%x09%(trailers:key=${CLAVE_DE_SELLO},valueonly,separator=%x2C)`,
94
+ `--format=%H%x09%ct%x09%(trailers:key=${CLAVE_DE_SELLO},valueonly,separator=%x2C)`,
93
95
  "--fixed-strings",
94
96
  `--grep=${sello}`,
95
97
  "HEAD",
@@ -99,11 +101,15 @@ export async function commitsDeSesion(raiz, id, ruta) {
99
101
  catch {
100
102
  return [];
101
103
  }
104
+ // La fecha de git va en SEGUNDOS: el instante se redondea hacia abajo, o un commit del mismo segundo se quedaría fuera.
105
+ const desdeS = desde === undefined ? undefined : Math.floor(Date.parse(desde) / 1000);
102
106
  const commits = [];
103
107
  for (const linea of stdout.split("\n")) {
104
- const [sha, valores] = linea.split("\t");
108
+ const [sha, fecha, valores] = linea.split("\t");
105
109
  if (sha === undefined || sha === "" || valores === undefined)
106
110
  continue;
111
+ if (desdeS !== undefined && !(Number(fecha) >= desdeS))
112
+ continue;
107
113
  if (valores.split(",").some((v) => v.trim() === id))
108
114
  commits.push(sha);
109
115
  }
@@ -296,9 +302,19 @@ async function filasDeDiff(raiz, args) {
296
302
  * sesión sin commitear. Es la misma honestidad que separa `Tarea.autorizadas` de
297
303
  * «aplicados»; el aislamiento de verdad es un árbol por sesión, que no está hecho.
298
304
  */
299
- export async function cambiosDeSesion(raiz, id) {
305
+ export async function cambiosDeSesion(raiz, id,
306
+ /**
307
+ * Solo lo commiteado DESDE este instante (ISO). Para la CONTINUACIÓN de una tarea, que comparte la sesión con su
308
+ * finalizada: sin esto heredaba lo que escribió la otra y se cerraba como si hubiera trabajado (medido en Maset: 33 s,
309
+ * nada escrito, cerrada sin juez). Con sello pero nada desde ahí, es «git dice que no escribió», no el respaldo.
310
+ */
311
+ desde) {
300
312
  try {
301
313
  const commits = await commitsDeSesion(raiz, id);
314
+ if (desde !== undefined && commits.length > 0) {
315
+ const suyos = await commitsDeSesion(raiz, id, undefined, desde);
316
+ return suyos.length > 0 ? await porCommits(raiz, suyos) : { via: "git", ficheros: [] };
317
+ }
302
318
  if (commits.length > 0)
303
319
  return await porCommits(raiz, commits);
304
320
  }
@@ -501,4 +517,72 @@ export async function olvidarSesion(raiz, id) {
501
517
  // Borrar lo que no está no es un error.
502
518
  }
503
519
  }
520
+ export async function planDeReversion(raiz, id, desde) {
521
+ let commits;
522
+ try {
523
+ commits = await commitsDeSesion(raiz, id, undefined, desde);
524
+ }
525
+ catch {
526
+ return { ok: false, motivo: "no se pudo preguntar a git por sus cambios" };
527
+ }
528
+ if (commits.length === 0)
529
+ return { ok: false, motivo: "no consta ningún cambio suyo en git que deshacer" };
530
+ let deArriba;
531
+ let sucio;
532
+ try {
533
+ deArriba = (await ejecutar("git", ["rev-list", "--max-count", String(commits.length), "HEAD"], { cwd: raiz })).stdout
534
+ .split("\n")
535
+ .filter((l) => l !== "");
536
+ sucio = (await ejecutar("git", ["status", "--porcelain", "--untracked-files=no"], { cwd: raiz })).stdout.trim();
537
+ }
538
+ catch {
539
+ return { ok: false, motivo: "no se pudo preguntar a git por el historial" };
540
+ }
541
+ const suyos = new Set(commits);
542
+ if (deArriba.length !== commits.length || !deArriba.every((sha) => suyos.has(sha))) {
543
+ return { ok: false, motivo: "no es lo último que cambió el proyecto: después escribió otra conversación o tarea, y eso se revierte antes" };
544
+ }
545
+ if (sucio !== "")
546
+ return { ok: false, motivo: "hay cambios sin commitear en el proyecto: revertir los pisaría" };
547
+ const base = await padreDe(raiz, commits[0]);
548
+ if (base === undefined || base === ARBOL_VACIO)
549
+ return { ok: false, motivo: "sus cambios empiezan el repositorio: no hay un antes al que volver" };
550
+ let ficheros;
551
+ try {
552
+ ficheros = (await ejecutar("git", ["diff", "--name-only", "--no-renames", "--relative", base, "HEAD"], { cwd: raiz })).stdout
553
+ .split("\n")
554
+ .filter((l) => l !== "");
555
+ }
556
+ catch {
557
+ return { ok: false, motivo: "no se pudo preguntar a git qué ficheros tocó" };
558
+ }
559
+ return { ok: true, base, commits, ficheros };
560
+ }
561
+ /** El respaldo de lo revertido: el HEAD de antes queda alcanzable por esta ref, por si hay que volver atrás. */
562
+ export const refDeRevertida = (tarea) => (idAceptable(tarea) ? `refs/xonecode/revertida/${tarea}` : undefined);
563
+ /**
564
+ * Revierte de verdad: se vuelve a COMPROBAR el plan —entre enseñarlo y confirmarlo pudo escribir alguien—, se guarda el
565
+ * HEAD de antes en `refDeRevertida` y se vuelve a la base con `reset --hard`. Sin el respaldo escrito no se toca nada.
566
+ */
567
+ export async function revertirSesion(raiz, id, tarea, desde) {
568
+ const plan = await planDeReversion(raiz, id, desde);
569
+ if (!plan.ok)
570
+ return plan;
571
+ const respaldo = refDeRevertida(tarea);
572
+ if (respaldo === undefined)
573
+ return { ok: false, motivo: "esa tarea no tiene un id que git acepte" };
574
+ try {
575
+ await ejecutar("git", ["update-ref", respaldo, "HEAD"], { cwd: raiz });
576
+ }
577
+ catch {
578
+ return { ok: false, motivo: "no se pudo guardar el respaldo: no se ha tocado nada" };
579
+ }
580
+ try {
581
+ await ejecutar("git", ["reset", "--hard", "--quiet", plan.base], { cwd: raiz });
582
+ }
583
+ catch {
584
+ return { ok: false, motivo: "git no pudo volver atrás; el respaldo quedó guardado" };
585
+ }
586
+ return plan;
587
+ }
504
588
  //# sourceMappingURL=sesionGit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sesionGit.js","sourceRoot":"","sources":["../../../src/agent/sesiones/sesionGit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AA4CrC;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,wBAAwB,EAAE,EAAE,CAAC;AACtC,CAAC;AAED,8FAA8F;AAC9F,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEhD,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,EAAU,EAAE,IAAa;IAC3E,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,uFAAuF;IACvF,yFAAyF;IACzF,qFAAqF;IACrF,qEAAqE;IACrE,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAC1B,KAAK,EACL;YACE,KAAK;YACL,WAAW;YACX,aAAa;YACb,iFAAiF;YACjF,yEAAyE;YACzE,iCAAiC,cAAc,4BAA4B;YAC3E,iBAAiB;YACjB,UAAU,KAAK,EAAE;YACjB,MAAM;YACN,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC5C,EACD,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAC1C,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS;QACvE,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,OAAwB,EAAE,MAAuB;IACzE,IAAI,OAAO,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAClE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,KAAK,GAAG,qBAAqB,CAAC;AAEpC;;;;;;;;;GASG;AACH,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC;iEACiE;AACjE,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,wEAAwE;QACxE,uFAAuF;QACvF,uFAAuF;QACvF,qFAAqF;QACrF,qFAAqF;QACrF,oFAAoF;QACpF,sFAAsF;QACtF,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;YAC9C,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,EAAE;SAClD,CAAC,CAAC;QACH,sFAAsF;QACtF,wFAAwF;QACxF,qFAAqF;QACrF,MAAM,sBAAsB,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE;YACvD,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,IAAI,EAAE;SAClD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,EAAU;IACzD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,IAAI,KAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;IACD,OAAO,KAAK,EAAE,EAAU,EAAoB,EAAE;QAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;4EAE4E;AAC5E,MAAM,WAAW,GAAG,0CAA0C,CAAC;AAE/D;4EAC4E;AAC5E,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAEvD;kFACkF;AAClF,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAY,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC;AAE7G,0EAA0E;AAC1E,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAY,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7E;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,IAAuB;IAC9D,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;QAChG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;KAC7F,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4C,CAAC;IACpE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,8EAA8E;QAC9E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YACvB,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,SAAS;QAC5B,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,EAAU;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,OAAiB;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAEvC,wEAAwE;IACxE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiE,CAAC;IACzF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/F,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,uFAAuF;QACvF,sFAAsF;QACtF,sDAAsD;QACtD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrF,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,OAAO;QACL,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC;AAED;uEACuE;AACvE,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,GAAW;IAC9C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QACzG,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,WAAW,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACpG,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED;iFACiF;AACjF,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,OAAiB;IACxE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;QACnH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,MAAM;aACV,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,EAAU;IACrD,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,yFAAyF;QACzF,wFAAwF;QACxF,yFAAyF;QACzF,wDAAwD;QACxD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5D,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IACpG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;sDACsD;AACtD,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,EAAU,EACV,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC7C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CACtC,KAAK;QACL,+EAA+E;QAC/E,+EAA+E;QAC/E,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QAC3F,4FAA4F;QAC5F,+DAA+D;QAC/D,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAC/D,CAAC;QACF,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,IAAI,cAAc;YAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAChF,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,EAAU,EACV,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;IAC7G,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAY,EACZ,EAAU,EACV,IAAY;IAEZ,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAC5C,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC;IACD,2FAA2F;IAC3F,2FAA2F;IAC3F,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACjE,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC;AAED;oFACoF;AACpF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,EAAU;IAC1D,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO;IAC9B,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"sesionGit.js","sourceRoot":"","sources":["../../../src/agent/sesiones/sesionGit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Qué motor EXTERNO está sin cuota, y hasta cuándo: mientras dure, sus especialistas corren con el modelo por defecto.
3
+ *
4
+ * Es del PROCESO y no de la sesión: la cuota es de la cuenta de Claude Code (o de Codex), así que la agota cualquier
5
+ * sesión o tarea de esta máquina y la sufren todas. Solo en memoria: al reiniciar se vuelve a probar el motor, y si
6
+ * sigue agotado lo dirá su primer error. Reconocerlo y calcular la hora es de `core/agotamientoExterno.ts`.
7
+ */
8
+ import type { Agente } from "../../core/agentes.js";
9
+ import type { MotorExterno } from "../../core/ports.js";
10
+ /** Apunta el agotamiento si el error lo es; devuelve hasta cuándo, o `undefined` si es otro fallo. */
11
+ export declare function apuntarSiSeAgoto(motor: MotorExterno, error: unknown, ahora?: number): number | undefined;
12
+ /**
13
+ * «Ya está restablecido» (Ajustes → Motores locales): la persona compró crédito o se le reinició la cuota antes de la
14
+ * hora. Se OLVIDA y el siguiente encargo vuelve al motor; si sigue agotado, su error lo vuelve a apuntar.
15
+ */
16
+ export declare function restablecer(motor: MotorExterno): boolean;
17
+ /** Que te avisen cuando un motor se agota o se restablece. Devuelve con qué dejar de escuchar. */
18
+ export declare function alCambiarAgotamiento(oyente: () => void): () => void;
19
+ /** Hasta cuándo está agotado ese motor, o `undefined` si no lo está (o ya pasó la hora, y entonces se olvida). */
20
+ export declare function agotadoHastaAhora(motor: string, ahora?: number): number | undefined;
21
+ /** Solo para tests: el registro es del proceso y un test no puede dejárselo al siguiente. */
22
+ export declare function olvidarAgotamientos(): void;
23
+ /**
24
+ * El MISMO especialista en nuestro motor: su `.md` entero (prompt, skills, permisos, ejecución), sin el `modelo` ni el
25
+ * `esfuerzo` del producto externo —son de Claude Code; aquí manda el modelo por defecto de su papel—.
26
+ */
27
+ export declare function conModeloPorDefecto(agente: Agente): Agente;
28
+ /** Lo que lee el ORQUESTADOR en vez de la respuesta del especialista: qué pasó y que vuelva a encargarlo. */
29
+ export declare function textoDeExternoAgotado(motor: MotorExterno, agente: string, hasta: number, modelo: string | undefined): string;
30
+ /** El aviso del chat: quién cambia de motor y hasta cuándo. */
31
+ export declare function avisoDeFallback(motor: string, agente: string, hasta: number, modelo: string | undefined): string;
32
+ /** El aviso del chat cuando el producto SE AGOTA a mitad: ese encargo no se hizo, los siguientes irán con el de reserva. */
33
+ export declare function avisoDeAgotamiento(motor: string, agente: string, hasta: number, modelo: string | undefined): string;
@@ -0,0 +1,77 @@
1
+ import { agotadoHasta } from "../../core/agotamientoExterno.js";
2
+ const agotados = new Map();
3
+ const oyentes = new Set();
4
+ const avisarOyentes = () => {
5
+ for (const oyente of oyentes) {
6
+ try {
7
+ oyente();
8
+ }
9
+ catch {
10
+ // Quien escucha (la pantalla de Ajustes) no puede tumbar a quien apunta (un turno).
11
+ }
12
+ }
13
+ };
14
+ /** Apunta el agotamiento si el error lo es; devuelve hasta cuándo, o `undefined` si es otro fallo. */
15
+ export function apuntarSiSeAgoto(motor, error, ahora = Date.now()) {
16
+ const hasta = agotadoHasta(error instanceof Error ? error.message : String(error), ahora);
17
+ if (hasta !== undefined) {
18
+ agotados.set(motor, hasta);
19
+ avisarOyentes();
20
+ }
21
+ return hasta;
22
+ }
23
+ /**
24
+ * «Ya está restablecido» (Ajustes → Motores locales): la persona compró crédito o se le reinició la cuota antes de la
25
+ * hora. Se OLVIDA y el siguiente encargo vuelve al motor; si sigue agotado, su error lo vuelve a apuntar.
26
+ */
27
+ export function restablecer(motor) {
28
+ const habia = agotados.delete(motor);
29
+ if (habia)
30
+ avisarOyentes();
31
+ return habia;
32
+ }
33
+ /** Que te avisen cuando un motor se agota o se restablece. Devuelve con qué dejar de escuchar. */
34
+ export function alCambiarAgotamiento(oyente) {
35
+ oyentes.add(oyente);
36
+ return () => void oyentes.delete(oyente);
37
+ }
38
+ /** Hasta cuándo está agotado ese motor, o `undefined` si no lo está (o ya pasó la hora, y entonces se olvida). */
39
+ export function agotadoHastaAhora(motor, ahora = Date.now()) {
40
+ const hasta = agotados.get(motor);
41
+ if (hasta === undefined)
42
+ return undefined;
43
+ if (hasta <= ahora) {
44
+ agotados.delete(motor);
45
+ return undefined;
46
+ }
47
+ return hasta;
48
+ }
49
+ /** Solo para tests: el registro es del proceso y un test no puede dejárselo al siguiente. */
50
+ export function olvidarAgotamientos() {
51
+ agotados.clear();
52
+ }
53
+ /**
54
+ * El MISMO especialista en nuestro motor: su `.md` entero (prompt, skills, permisos, ejecución), sin el `modelo` ni el
55
+ * `esfuerzo` del producto externo —son de Claude Code; aquí manda el modelo por defecto de su papel—.
56
+ */
57
+ export function conModeloPorDefecto(agente) {
58
+ const { modelo: _modelo, esfuerzo: _esfuerzo, ...resto } = agente;
59
+ return { ...resto, motor: "modelo" };
60
+ }
61
+ const hora = (ms) => new Date(ms).toLocaleTimeString("es-ES", { hour: "2-digit", minute: "2-digit" });
62
+ /** Lo que lee el ORQUESTADOR en vez de la respuesta del especialista: qué pasó y que vuelva a encargarlo. */
63
+ export function textoDeExternoAgotado(motor, agente, hasta, modelo) {
64
+ return (`⚠ El agente externo (${motor}) se ha quedado sin cuota hasta las ${hora(hasta)} y no hizo este encargo. ` +
65
+ `Desde ahora ${agente} y los demás especialistas de ${motor} corren con el modelo por defecto` +
66
+ `${modelo === undefined ? "" : ` (${modelo})`}: vuelve a encargarle esto mismo a ${agente}.`);
67
+ }
68
+ /** El aviso del chat: quién cambia de motor y hasta cuándo. */
69
+ export function avisoDeFallback(motor, agente, hasta, modelo) {
70
+ return `⚠ ${motor} sin cuota hasta las ${hora(hasta)}: ${agente} trabaja con el modelo por defecto${modelo === undefined ? "" : ` (${modelo})`}`;
71
+ }
72
+ /** El aviso del chat cuando el producto SE AGOTA a mitad: ese encargo no se hizo, los siguientes irán con el de reserva. */
73
+ export function avisoDeAgotamiento(motor, agente, hasta, modelo) {
74
+ return (`⚠ ${motor} se ha quedado sin cuota hasta las ${hora(hasta)}: ${agente} no hizo su encargo; los siguientes irán con el ` +
75
+ `modelo por defecto${modelo === undefined ? "" : ` (${modelo})`}. Si recuperas la cuota antes, dilo en Ajustes → Motores locales`);
76
+ }
77
+ //# sourceMappingURL=agotamiento.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agotamiento.js","sourceRoot":"","sources":["../../../src/agent/subagentes/agotamiento.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Un motor EXTERNO sin cuota: reconocerlo en su error y saber hasta cuándo dura.
3
+ *
4
+ * Medido en tres tareas de soporte (19-10-2026): Claude Code contestaba «You've hit your session limit · resets 4:30pm
5
+ * (Europe/Madrid)», y cada especialista que corría en él (developer-xone, analyst-xone) se quedaba sin arrancar hasta
6
+ * esa hora. El orquestador, sin nadie que escribiera, dejaba un documento o un icono y la tarea se cerraba sin hacer.
7
+ * Mientras dure, esos especialistas corren con el modelo por defecto (`agent/subagentes/agotamiento.ts`).
8
+ *
9
+ * Puro: sin reloj ni zona de la máquina, que entran por parámetro.
10
+ */
11
+ /** Lo que dura un agotamiento cuyo mensaje no dice hasta cuándo: se vuelve a probar el motor después. */
12
+ export declare const TOPE_DE_AGOTAMIENTO_MS: number;
13
+ /** ¿Este error de un motor externo es que se quedó sin cuota? */
14
+ export declare function esAgotamiento(mensaje: string): boolean;
15
+ /**
16
+ * Hasta cuándo (ms) está agotado, si el mensaje lo es. La hora que el mensaje dice, en SU zona; «try again in N
17
+ * minutes/hours» relativo a `ahora`; y si no dice nada, `TOPE_DE_AGOTAMIENTO_MS`. `undefined` = no es un agotamiento.
18
+ */
19
+ export declare function agotadoHasta(mensaje: string, ahora: number): number | undefined;
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Un motor EXTERNO sin cuota: reconocerlo en su error y saber hasta cuándo dura.
3
+ *
4
+ * Medido en tres tareas de soporte (19-10-2026): Claude Code contestaba «You've hit your session limit · resets 4:30pm
5
+ * (Europe/Madrid)», y cada especialista que corría en él (developer-xone, analyst-xone) se quedaba sin arrancar hasta
6
+ * esa hora. El orquestador, sin nadie que escribiera, dejaba un documento o un icono y la tarea se cerraba sin hacer.
7
+ * Mientras dure, esos especialistas corren con el modelo por defecto (`agent/subagentes/agotamiento.ts`).
8
+ *
9
+ * Puro: sin reloj ni zona de la máquina, que entran por parámetro.
10
+ */
11
+ /** Lo que dura un agotamiento cuyo mensaje no dice hasta cuándo: se vuelve a probar el motor después. */
12
+ export const TOPE_DE_AGOTAMIENTO_MS = 60 * 60 * 1000;
13
+ /**
14
+ * Las frases con las que un producto dice que se quedó sin cuota. Claude Code: «You've hit your session limit», «…your
15
+ * usage limit», «…weekly limit»; Codex: «You've hit your usage limit»; y las genéricas de cuota. Un error cualquiera
16
+ * (no arranca, se cortó, un 500) NO es esto: ahí no hay cuota que esperar y el modelo por defecto no lo arregla.
17
+ */
18
+ const FRASES_DE_AGOTAMIENTO = [
19
+ /hit your (?:\w+ )?limit/i,
20
+ /\b(?:session|usage|weekly|daily|5-hour) limit\b/i,
21
+ /\bquota (?:exceeded|exhausted)\b/i,
22
+ /\bexhausted\b/i,
23
+ ];
24
+ /** ¿Este error de un motor externo es que se quedó sin cuota? */
25
+ export function esAgotamiento(mensaje) {
26
+ return FRASES_DE_AGOTAMIENTO.some((r) => r.test(mensaje));
27
+ }
28
+ /**
29
+ * Hasta cuándo (ms) está agotado, si el mensaje lo es. La hora que el mensaje dice, en SU zona; «try again in N
30
+ * minutes/hours» relativo a `ahora`; y si no dice nada, `TOPE_DE_AGOTAMIENTO_MS`. `undefined` = no es un agotamiento.
31
+ */
32
+ export function agotadoHasta(mensaje, ahora) {
33
+ if (!esAgotamiento(mensaje))
34
+ return undefined;
35
+ return horaDeReinicio(mensaje, ahora) ?? enUnRato(mensaje, ahora) ?? ahora + TOPE_DE_AGOTAMIENTO_MS;
36
+ }
37
+ /** «resets 4:30pm (Europe/Madrid)», «resets 16:30 (Europe/Madrid)»: la PRÓXIMA vez que en esa zona son esas. */
38
+ function horaDeReinicio(mensaje, ahora) {
39
+ const m = /resets?\s+(?:at\s+)?(\d{1,2})(?::(\d{2}))?\s*(am|pm)?\s*\(([^)]+)\)/i.exec(mensaje);
40
+ if (m === null)
41
+ return undefined;
42
+ let hora = Number(m[1]);
43
+ const minuto = m[2] === undefined ? 0 : Number(m[2]);
44
+ const sufijo = m[3]?.toLowerCase();
45
+ if (sufijo === "pm" && hora < 12)
46
+ hora += 12;
47
+ if (sufijo === "am" && hora === 12)
48
+ hora = 0;
49
+ if (hora > 23 || minuto > 59)
50
+ return undefined;
51
+ const ahoraEnZona = minutosDelDiaEn(m[4].trim(), ahora);
52
+ if (ahoraEnZona === undefined)
53
+ return undefined;
54
+ let faltan = hora * 60 + minuto - ahoraEnZona;
55
+ if (faltan <= 0)
56
+ faltan += 24 * 60;
57
+ // Al minuto: los segundos de `ahora` se quitan para caer en la hora en punto que dice el mensaje.
58
+ return Math.floor(ahora / 60_000) * 60_000 + faltan * 60_000;
59
+ }
60
+ /** «try again in 2 hours 5 minutes», «in 45 minutes». */
61
+ function enUnRato(mensaje, ahora) {
62
+ const m = /(?:try again|resets?)\s+in\s+((?:\d+\s*(?:hours?|hrs?|h|minutes?|mins?|m)\b[\s,and]*)+)/i.exec(mensaje);
63
+ if (m === null)
64
+ return undefined;
65
+ let minutos = 0;
66
+ for (const [, n, unidad] of m[1].matchAll(/(\d+)\s*(hours?|hrs?|h|minutes?|mins?|m)\b/gi)) {
67
+ minutos += Number(n) * (/^h/i.test(unidad) ? 60 : 1);
68
+ }
69
+ return minutos === 0 ? undefined : ahora + minutos * 60_000;
70
+ }
71
+ /** Los minutos desde medianoche que marca el reloj de esa zona en `ahora`; `undefined` si la zona no existe. */
72
+ function minutosDelDiaEn(zona, ahora) {
73
+ try {
74
+ const partes = new Intl.DateTimeFormat("en-GB", { timeZone: zona, hour: "2-digit", minute: "2-digit", hourCycle: "h23" }).formatToParts(ahora);
75
+ const h = Number(partes.find((p) => p.type === "hour")?.value);
76
+ const min = Number(partes.find((p) => p.type === "minute")?.value);
77
+ return Number.isFinite(h) && Number.isFinite(min) ? h * 60 + min : undefined;
78
+ }
79
+ catch {
80
+ return undefined;
81
+ }
82
+ }
83
+ //# sourceMappingURL=agotamientoExterno.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agotamientoExterno.js","sourceRoot":"","sources":["../../src/core/agotamientoExterno.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,12 @@ export interface EstadoDeMotorLocal {
68
68
  admiteModelo?: true;
69
69
  /** El elegido, `proveedor/modelo`. Ausente es que no hay ninguno. */
70
70
  modelo?: string;
71
+ /**
72
+ * Sin CUOTA hasta este instante (ISO), según su último error (`agent/subagentes/agotamiento.ts`): mientras tanto sus
73
+ * especialistas trabajan con el modelo por defecto. Lo pone el SERVIDOR del registro del proceso; ausente = no consta
74
+ * agotado. Se quita con «Ya está restablecido» (`accion: "restablecer"`).
75
+ */
76
+ agotadoHasta?: string;
71
77
  medido: string;
72
78
  }
73
79
  /** Los motores a los que se les elige el modelo en Ajustes. */
@@ -1 +1 @@
1
- {"version":3,"file":"motoresLocales.js","sourceRoot":"","sources":["../../src/core/motoresLocales.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"motoresLocales.js","sourceRoot":"","sources":["../../src/core/motoresLocales.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,4FAA4F;AAC5F,MAAM,CAAC,MAAM,eAAe,GAA4B,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAE7F,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,eAAqC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7F,CAAC;AAoED,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAA4B,CAAC,UAAU,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAAC,MAAc;IAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,yCAAyC,CAAC;IAC1E,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,6EAA6E,CAAC;IACjJ,OAAO,SAAS,CAAC;AACnB,CAAC;AAYD;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAc;IAC1D,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,IAAI,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzD,MAAM,KAAK,GAAG,CAAC,CAAU,EAAsB,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1C,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC;QACvB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,SAAS;QAChD,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QAChE,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,qBAAqB,CAAC,CAAiB;IACrD,IAAI,CAAC,CAAC,QAAQ;QAAE,OAAO,yCAAyC,CAAC;IACjE,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,qBAAqB,CAAC;IAC9C,MAAM,MAAM,GACV,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,iBAAiB,CAAC,CAAC;IACpI,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,CAAC,GAAG,2CAA2C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,GAAG,GAAG,iBAAiB,CAAC;AAE9B,wFAAwF;AACxF,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AAEpE,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC1B,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC3H,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,KAAK,GAAG,MAAM;SACjB,KAAK,CAAC,OAAO,CAAC;QACf,yFAAyF;QACzF,sFAAsF;SACrF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAC3D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;SACvB,GAAG,EAAE,CAAC;IACT,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,IAAI,GAAG,GAAG;IAChD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAChE,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,eAAe,GAAG,oDAAoD,CAAC;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAClC,+GAA+G,CAAC;AAElH,iGAAiG;AACjG,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
@@ -179,6 +179,11 @@ export interface Tarea {
179
179
  * Maset, «Menu Listado Entregas» no era el título de ninguna y la tarea construyó con otra maqueta).
180
180
  */
181
181
  pantallaDeStitch?: PantallaElegida;
182
+ /**
183
+ * La finalizada de la que es CONTINUACIÓN (`tareaReencolada`). Es lo que impide reencolar dos veces la misma mientras
184
+ * la primera no acaba —también sin hilo, donde la `sesion` compartida no la delata—. No viaja.
185
+ */
186
+ continuaDe?: string;
182
187
  }
183
188
  /** Una pantalla de Stitch elegida: su `name` (`projects/<id>/screens/<id>`) y su título, para decirlo sin preguntar. */
184
189
  export interface PantallaElegida {
@@ -345,7 +350,7 @@ export declare function conFeedback(tarea: Tarea, texto: string, ahora?: string)
345
350
  * entonces es su hilo y el feedback, no el encargo: dejar editarlo sería cambiar un texto que el
346
351
  * agente no va a volver a leer.
347
352
  */
348
- export declare function puedeEditarEncargo(tarea: Pick<Tarea, "estado" | "empezada">): boolean;
353
+ export declare function puedeEditarEncargo(tarea: Pick<Tarea, "estado" | "empezada" | "feedback">): boolean;
349
354
  /**
350
355
  * La tarea con otro encargo, o una excepción con el motivo. Sin `peticion`, la petición y el título
351
356
  * no se tocan; con ella (IXCODE-53: se edita lo que escribió la persona y se vuelve a preparar el
@@ -405,6 +410,38 @@ export declare const motivoTrasReanudar: (motivo: string) => string;
405
410
  * añadir nada era «Reintentar», que vuelve a mandar el encargo entero.
406
411
  */
407
412
  export declare const TEXTO_DE_CONTINUAR = "Contin\u00FAa donde lo dejaste.";
413
+ /**
414
+ * ¿Se puede REENCOLAR esta finalizada para acabar lo que no hizo? Cualquier terminada, salvo
415
+ * las que viven en un GESTOR (decisión suya): desde el ticket ya se relanza, y una segunda
416
+ * puerta aquí abriría otra tarea que el gestor no conoce.
417
+ */
418
+ export declare function puedeReencolar(tarea: Pick<Tarea, "estado" | "ticket">): boolean;
419
+ /**
420
+ * Lo que se le propone mandar a la tarea REENCOLADA, editable antes de encolar: lo que su
421
+ * cierre dejó sin hacer. Sin cierre (una de antes de que existiera), lo que dijo el juez si
422
+ * no fue verde; sin nada de eso, pedirle que lo repase contra el encargo.
423
+ */
424
+ export declare function textoParaReencolar(tarea: Pick<Tarea, "cierre" | "veredicto">): string;
425
+ /**
426
+ * La continuación de esta finalizada que todavía NO ha acabado, si la hay: reencolarla otra vez pondría dos tareas a
427
+ * escribir en el mismo hilo una detrás de otra. Por `continuaDe`, o por compartir su hilo (`sesion`).
428
+ */
429
+ export declare function continuacionEnCurso(original: Pick<Tarea, "id" | "sesion">, lista: readonly Tarea[]): Tarea | undefined;
430
+ /**
431
+ * La tarea NUEVA que acaba lo que dejó una finalizada. **No reabre la original**: `terminada`
432
+ * no tiene salida, y la original se queda en el histórico tal cual.
433
+ *
434
+ * Sigue en el HILO de la original (`sesion`), así el agente recuerda lo que hizo, y el texto
435
+ * le entra como un FEEDBACK pendiente: el mismo camino que «Continuar» —`peticionDeFeedback`
436
+ * en el corredor—, que sin hilo manda el encargo original delante y lo dice. Sin ticket, y
437
+ * sin veredicto ni cierre: son del trabajo de antes.
438
+ */
439
+ export declare function tareaReencolada(original: Tarea, nueva: {
440
+ id: string;
441
+ texto: string;
442
+ adjuntos: AdjuntoDeTarea[];
443
+ ahora?: string;
444
+ }): Tarea;
408
445
  /**
409
446
  * ¿Se puede «Arrancar ahora»? Una tarea `nuevo` que no espera a ninguna anterior (`tras`): las encadenadas esperan a
410
447
  * que la suya termine, y saltárselo sería arrancar sobre trabajo sin aceptar. La MISMA regla que `siguientesAEjecutar`.
@@ -216,7 +216,8 @@ export function conFeedback(tarea, texto, ahora) {
216
216
  * agente no va a volver a leer.
217
217
  */
218
218
  export function puedeEditarEncargo(tarea) {
219
- return tarea.estado === "nuevo" && tarea.empezada === undefined;
219
+ // Con un feedback (una REENCOLADA nace con uno) lo que se le manda es el feedback, no el encargo.
220
+ return tarea.estado === "nuevo" && tarea.empezada === undefined && tarea.feedback === undefined;
220
221
  }
221
222
  /**
222
223
  * La tarea con otro encargo, o una excepción con el motivo. Sin `peticion`, la petición y el título
@@ -317,6 +318,81 @@ export const motivoTrasReanudar = (motivo) => `${motivo}; ya se reanudó sola un
317
318
  * añadir nada era «Reintentar», que vuelve a mandar el encargo entero.
318
319
  */
319
320
  export const TEXTO_DE_CONTINUAR = "Continúa donde lo dejaste.";
321
+ /**
322
+ * ¿Se puede REENCOLAR esta finalizada para acabar lo que no hizo? Cualquier terminada, salvo
323
+ * las que viven en un GESTOR (decisión suya): desde el ticket ya se relanza, y una segunda
324
+ * puerta aquí abriría otra tarea que el gestor no conoce.
325
+ */
326
+ export function puedeReencolar(tarea) {
327
+ return tarea.estado === "terminada" && tarea.ticket === undefined;
328
+ }
329
+ /**
330
+ * Lo que se le propone mandar a la tarea REENCOLADA, editable antes de encolar: lo que su
331
+ * cierre dejó sin hacer. Sin cierre (una de antes de que existiera), lo que dijo el juez si
332
+ * no fue verde; sin nada de eso, pedirle que lo repase contra el encargo.
333
+ */
334
+ export function textoParaReencolar(tarea) {
335
+ const criticos = tarea.cierre?.criticos ?? [];
336
+ const observaciones = tarea.cierre?.observaciones ??
337
+ (tarea.veredicto !== undefined && tarea.veredicto.veredicto !== "verde"
338
+ ? [tarea.veredicto.resumen, ...(tarea.veredicto.hallazgos ?? [])]
339
+ : []);
340
+ const lista = (titulo, cosas) => cosas.length === 0 ? [] : [`${titulo}\n${cosas.map((c) => `- ${c}`).join("\n")}`];
341
+ const partes = [...lista("## CRITICAL", criticos), ...lista("## Observaciones", observaciones)];
342
+ /**
343
+ * Que HAGA, no que resuma: medido en Maset, con solo la lista del cierre (dos omisiones decididas) el agente volvió a
344
+ * escribir su resumen en 33 s y paró — y lo que él mismo había dejado «pendiente» en ese resumen no se lo pedía nadie.
345
+ */
346
+ const pedir = "Sigue con esta tarea y HAZ lo que falta: lo que dejaste pendiente en tu último resumen" +
347
+ (partes.length === 0 ? "" : " y lo que anotó su cierre") +
348
+ ". No te limites a resumir otra vez: cambia el proyecto y compruébalo; si algo no se puede hacer, di por qué. " +
349
+ "No rehagas lo que ya está en el disco.";
350
+ return [pedir, ...partes].join("\n\n");
351
+ }
352
+ /**
353
+ * La continuación de esta finalizada que todavía NO ha acabado, si la hay: reencolarla otra vez pondría dos tareas a
354
+ * escribir en el mismo hilo una detrás de otra. Por `continuaDe`, o por compartir su hilo (`sesion`).
355
+ */
356
+ export function continuacionEnCurso(original, lista) {
357
+ return lista.find((t) => t.id !== original.id &&
358
+ t.estado !== "terminada" &&
359
+ (t.continuaDe === original.id || (original.sesion !== undefined && t.sesion === original.sesion)));
360
+ }
361
+ /**
362
+ * La tarea NUEVA que acaba lo que dejó una finalizada. **No reabre la original**: `terminada`
363
+ * no tiene salida, y la original se queda en el histórico tal cual.
364
+ *
365
+ * Sigue en el HILO de la original (`sesion`), así el agente recuerda lo que hizo, y el texto
366
+ * le entra como un FEEDBACK pendiente: el mismo camino que «Continuar» —`peticionDeFeedback`
367
+ * en el corredor—, que sin hilo manda el encargo original delante y lo dice. Sin ticket, y
368
+ * sin veredicto ni cierre: son del trabajo de antes.
369
+ */
370
+ export function tareaReencolada(original, nueva) {
371
+ if (!puedeReencolar(original)) {
372
+ throw new Error(original.ticket === undefined
373
+ ? "solo se reencola una tarea terminada"
374
+ : `vive en ${original.ticket.clave}: se relanza desde el gestor`);
375
+ }
376
+ const ahora = nueva.ahora ?? new Date().toISOString();
377
+ const base = {
378
+ id: nueva.id,
379
+ proyecto: original.proyecto,
380
+ // Sin apilar: reencolar una continuación no da «X (continuación) (continuación)».
381
+ titulo: `${original.titulo.replace(/ \(continuación\)$/, "")} (continuación)`,
382
+ peticion: original.peticion,
383
+ encargo: original.encargo,
384
+ adjuntos: nueva.adjuntos,
385
+ estado: "nuevo",
386
+ creada: ahora,
387
+ continuaDe: original.id,
388
+ ...(original.sesion === undefined ? {} : { sesion: original.sesion }),
389
+ ...(original.pantallaDeStitch === undefined ? {} : { pantallaDeStitch: original.pantallaDeStitch }),
390
+ };
391
+ const limpio = nueva.texto.trim();
392
+ if (limpio === "")
393
+ throw new Error("dile qué tiene que acabar: el texto está vacío");
394
+ return { ...base, feedback: [{ texto: limpio, creado: ahora, consumido: false }] };
395
+ }
320
396
  /**
321
397
  * ¿Se puede «Arrancar ahora»? Una tarea `nuevo` que no espera a ninguna anterior (`tras`): las encadenadas esperan a
322
398
  * que la suya termine, y saltárselo sería arrancar sobre trabajo sin aceptar. La MISMA regla que `siguientesAEjecutar`.