@hostwebhook/platform-contracts 0.21.1 → 0.23.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.
|
@@ -54,4 +54,81 @@ export interface PasoEjecutado {
|
|
|
54
54
|
metadata?: Record<string, unknown>;
|
|
55
55
|
/** Cómo se disparó la corrida. Ausente = producción. */
|
|
56
56
|
modo?: 'pipeline';
|
|
57
|
+
/**
|
|
58
|
+
* La configuración con la que corrió el nodo [2026-09-29].
|
|
59
|
+
*
|
|
60
|
+
* Hace falta porque la versión del flujo NO cambia cuando cambia la
|
|
61
|
+
* configuración —su huella sólo mira nodos y aristas, a propósito—, así que
|
|
62
|
+
* la foto de la versión no dice con qué umbral, qué prompt o qué hoja corrió
|
|
63
|
+
* este paso si alguien los tocó después. Y la foto usa la proyección del
|
|
64
|
+
* lienzo, que ni siquiera trae lo pesado (el body, el prompt).
|
|
65
|
+
*
|
|
66
|
+
* Ya viene SIN secretos, sin estado de ejecución y sin lo que cambia en
|
|
67
|
+
* cada corrida: la saca `configuracionDelPaso` de `@hostwebhook/node-sdk`.
|
|
68
|
+
* Quien graba la guarda UNA vez por configuración distinta (por huella) y
|
|
69
|
+
* el paso apunta a ella; no se repite en cada paso.
|
|
70
|
+
*
|
|
71
|
+
* Ausente cuando quien anota no tiene la entidad a mano, y en las corridas
|
|
72
|
+
* de antes: la pantalla cae a la de la versión, avisando.
|
|
73
|
+
*/
|
|
74
|
+
configuracion?: Record<string, unknown>;
|
|
75
|
+
/**
|
|
76
|
+
* Cómo decidió un conditional [2026-09-29]: cada rama, cada condición con
|
|
77
|
+
* lo que valió cada lado, y cuál ganó. Sólo lo llevan los pasos de un
|
|
78
|
+
* conditional; ver `EvaluacionDeRamas`.
|
|
79
|
+
*/
|
|
80
|
+
evaluacion?: EvaluacionDeRamas;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Una condición de una rama, tal como se evaluó.
|
|
84
|
+
*
|
|
85
|
+
* `actual` y `esperado` son los dos lados YA RESUELTOS —lo que salió de
|
|
86
|
+
* `{{payload.amount}}` y de lo que se escribió como valor—, recortados para
|
|
87
|
+
* que un payload grande no infle el paso. `actual` AUSENTE quiere decir que
|
|
88
|
+
* el campo no resolvió (`undefined`), que es justo lo que más se busca al
|
|
89
|
+
* mirar por qué una rama no casó; salvo cuando el payload era una lista, que
|
|
90
|
+
* entonces no hay un valor sino muchos y lo que va es `items`.
|
|
91
|
+
*/
|
|
92
|
+
export interface CondicionEvaluada {
|
|
93
|
+
/** El campo tal como se escribió: `{{payload.amount}}` o `amount`. */
|
|
94
|
+
campo: string;
|
|
95
|
+
operador: string;
|
|
96
|
+
/** El valor tal como se escribió, sin resolver. */
|
|
97
|
+
valor?: string;
|
|
98
|
+
/** No cuenta: desactivada, o sin campo. Ver `condicionPuesta`. */
|
|
99
|
+
ignorada?: true;
|
|
100
|
+
/** Si se cumplió. Ausente si está ignorada, si la rama no llegó a evaluarse o si el payload era una lista. */
|
|
101
|
+
paso?: boolean;
|
|
102
|
+
actual?: unknown;
|
|
103
|
+
esperado?: unknown;
|
|
104
|
+
/** Payload iterable: cuántos ítems la cumplieron, de cuántos. */
|
|
105
|
+
items?: {
|
|
106
|
+
total: number;
|
|
107
|
+
pasan: number;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* - `casa`: se cumplió y es la que se tomó (la primera que casa gana).
|
|
112
|
+
* - `no-casa`: se evaluó y no se cumplió.
|
|
113
|
+
* - `sin-condiciones`: no tiene ninguna, y el conditional se la salta.
|
|
114
|
+
* - `no-evaluada`: una anterior ya había casado, así que ésta ni se miró.
|
|
115
|
+
*/
|
|
116
|
+
export type ResultadoDeRama = 'casa' | 'no-casa' | 'sin-condiciones' | 'no-evaluada';
|
|
117
|
+
export interface RamaEvaluada {
|
|
118
|
+
id: string;
|
|
119
|
+
nombre: string;
|
|
120
|
+
modo: 'and' | 'or';
|
|
121
|
+
resultado: ResultadoDeRama;
|
|
122
|
+
condiciones: CondicionEvaluada[];
|
|
123
|
+
/** Payload iterable: cuántos ítems cumplieron la rama entera. */
|
|
124
|
+
items?: {
|
|
125
|
+
total: number;
|
|
126
|
+
pasan: number;
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/** La decisión de un conditional, en el orden en que se evaluaron sus ramas. */
|
|
130
|
+
export interface EvaluacionDeRamas {
|
|
131
|
+
ramas: RamaEvaluada[];
|
|
132
|
+
/** El id de la rama que ganó; `null` = ninguna, se fue por el `else`. */
|
|
133
|
+
ganadora: string | null;
|
|
57
134
|
}
|
|
@@ -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, } from './formas-compartidas';
|
|
29
|
+
export type { FileRef, ChunkingStrategy, RunStepStatus, PasoEjecutado as PasoEjecutadoDelSdk, CondicionEvaluada, ResultadoDeRama, RamaEvaluada, EvaluacionDeRamas, } from './formas-compartidas';
|
|
30
30
|
export * from './almacenes-vectoriales';
|
|
31
31
|
export * from './aprobaciones-pendientes';
|
|
32
32
|
export * from './avisos-en-vivo';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hostwebhook/platform-contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.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",
|