@hostwebhook/platform-contracts 0.23.0 → 0.24.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.
@@ -78,6 +78,32 @@ export interface PasoEjecutado {
78
78
  * conditional; ver `EvaluacionDeRamas`.
79
79
  */
80
80
  evaluacion?: EvaluacionDeRamas;
81
+ /**
82
+ * En qué vuelta de qué bucle corrió [2026-09-29]: la pila de los bucles que
83
+ * lo contienen, del de FUERA al de DENTRO. Ausente fuera de un bucle, en las
84
+ * corridas de antes, y donde el motor la pierde (tras reanudar un approval).
85
+ * Ver `VueltaDeBucle`.
86
+ */
87
+ vueltas?: VueltaDeBucle[];
88
+ }
89
+ /**
90
+ * Una vuelta de un bucle, vista desde un paso que corre dentro de él
91
+ * [2026-09-29].
92
+ *
93
+ * Hace falta porque el historial sólo sabía el ORDEN de los pasos: en un
94
+ * bucle dentro de otro, «la tercera vez que corrió el cuerpo» no dice de qué
95
+ * pedido ni de qué artículo. La pila la lleva el motor en el contexto
96
+ * (`ContextoDeCorrida.pilaDeVueltas`) y cada paso se la queda.
97
+ */
98
+ export interface VueltaDeBucle {
99
+ /** El id del nodo Loop. */
100
+ bucleId: string;
101
+ /** Su nombre cuando corrió, para la pantalla. */
102
+ nombre?: string;
103
+ /** La vuelta, contando desde 0. */
104
+ vuelta: number;
105
+ /** Cuántas vueltas da en esta pasada. */
106
+ total: number;
81
107
  }
82
108
  /**
83
109
  * Una condición de una rama, tal como se evaluó.
@@ -26,7 +26,7 @@
26
26
  * que está diseñada justo para que los secretos NO crucen a lo bruto. Ningún
27
27
  * secreto vive aquí.
28
28
  */
29
- export type { FileRef, ChunkingStrategy, RunStepStatus, PasoEjecutado as PasoEjecutadoDelSdk, CondicionEvaluada, ResultadoDeRama, RamaEvaluada, EvaluacionDeRamas, } from './formas-compartidas';
29
+ export type { FileRef, ChunkingStrategy, RunStepStatus, PasoEjecutado as PasoEjecutadoDelSdk, CondicionEvaluada, ResultadoDeRama, RamaEvaluada, EvaluacionDeRamas, VueltaDeBucle, } from './formas-compartidas';
30
30
  export * from './almacenes-vectoriales';
31
31
  export * from './aprobaciones-pendientes';
32
32
  export * from './avisos-en-vivo';
@@ -1,4 +1,5 @@
1
1
  import type { Types } from 'mongoose';
2
+ import type { VueltaDeBucle } from './formas-compartidas';
2
3
  /**
3
4
  * Lo que un nodo le pide al motor de ejecución. Nada más.
4
5
  *
@@ -168,6 +169,13 @@ export interface ContextoDeCorrida {
168
169
  * detecta los ciclos de FlowLinks y aplica el `maxFlowCallDepth` del plan.
169
170
  */
170
171
  callStack?: string[];
172
+ /**
173
+ * La vuelta de cada bucle en el que se está, del de fuera al de dentro
174
+ * [2026-09-29]. La pone el bucle al despachar cada vuelta —a partir de su
175
+ * estado, no de lo que traiga el contexto—, y los pasos la guardan. Es
176
+ * JSON plano: cruza el cable tal cual.
177
+ */
178
+ pilaDeVueltas?: VueltaDeBucle[];
171
179
  }
172
180
  /** Una espera pendiente, de lo que el motor le lee. */
173
181
  export interface EsperaPendiente {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hostwebhook/platform-contracts",
3
- "version": "0.23.0",
3
+ "version": "0.24.0",
4
4
  "description": "Contratos compartidos entre los servicios de HostWebhook: addons del plan, identidad interna, y las formas que cruzan una frontera de red",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",