@hostwebhook/platform-contracts 0.7.0 → 0.8.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.
@@ -32,7 +32,15 @@
32
32
  * Antes la puerta leía `memoryEnabled` del documento para decidir; esa decisión
33
33
  * se va con el dato, que es donde puede comprobarse.
34
34
  */
35
- /** El nodo conectado, en lo que la puerta lee de él. Cuatro campos, medidos. */
35
+ /**
36
+ * El nodo conectado, en lo que la puerta lee de él. Siete campos, medidos.
37
+ *
38
+ * Los cuatro primeros son lo que la puerta necesitaba para EJECUTAR. Los tres
39
+ * últimos son lo que necesita para PONERLE PRECIO al turno antes de ejecutarlo:
40
+ * el Chat Trigger tiene topes en dólares y reserva por adelantado, y esa reserva
41
+ * no se puede calcular sin saber a qué modelo se va a llamar ni cuánto puede
42
+ * devolver. Sin ellos la estimación caía a sus valores por defecto en silencio.
43
+ */
36
44
  export interface NodoDeIaConectado {
37
45
  id: string;
38
46
  /** Para el paso del historial y para decirle al widget con quién habla. */
@@ -40,6 +48,35 @@ export interface NodoDeIaConectado {
40
48
  workspaceId: string | null;
41
49
  /** Si el widget enseña las llamadas a herramientas mientras ocurren. */
42
50
  muestraLasHerramientas: boolean;
51
+ /** El modelo configurado en el nodo. Sin el nombre no hay tarifa, y sin
52
+ * tarifa la reserva del tope EN DÓLARES no se puede calcular: los tokens
53
+ * estimados no son un precio hasta que alguien dice de qué modelo son. */
54
+ model: string;
55
+ /** El tope de salida del nodo. Es el techo de lo que puede devolver, y la
56
+ * estimación es deliberadamente PESIMISTA: reserva el techo entero. */
57
+ maxTokens: number;
58
+ /**
59
+ * La LONGITUD del system prompt del nodo, no el prompt.
60
+ *
61
+ * ⚠️ Un `number` y no la cadena, por dos motivos, y los dos importan:
62
+ *
63
+ * 1. No hace falta más. La estimación sólo hace `.length`: suma ese largo a
64
+ * los caracteres del turno y divide entre tres. El número da exactamente
65
+ * el mismo resultado que la cadena, así que mandar la cadena sería mandar
66
+ * algo que nadie va a leer.
67
+ *
68
+ * 2. Esto CRUZA UNA FRONTERA DE SERVICIO —es el motivo de existir de este
69
+ * fichero, y está en su cabecera—, y el `systemPrompt` es contenido del
70
+ * cliente. Mandarlo entero lo filtraría a un servicio que no lo necesita.
71
+ * Mismo criterio que ya aplica `ChunkingStrategy` en `formas-compartidas`:
72
+ * «sólo cruza la ESTRATEGIA, no la configuración entera».
73
+ *
74
+ * ⚠️ Y se llama `largoDelSystemPrompt` y no `largoDelPrompt` porque en el
75
+ * consumidor conviven DOS prompts: el del nodo y el `systemPromptOverride`
76
+ * del trigger, que lo pisa. El nombre dice cuál se midió — éste es el del
77
+ * nodo, y quien tenga override medirá el suyo y no usará éste.
78
+ */
79
+ largoDelSystemPrompt: number;
43
80
  }
44
81
  export interface EjecucionDeIa {
45
82
  /** El nodo conectado a ese chat, o `null` si ya no existe. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hostwebhook/platform-contracts",
3
- "version": "0.7.0",
3
+ "version": "0.8.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",