evo360-types 1.3.736 → 1.3.746

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,6 +32,16 @@ export interface IUsageCapabilities {
32
32
  * desenhada antes dessa data, porque ausência de medição não é consumo zero.
33
33
  */
34
34
  telemedicine_since: string | null;
35
+ /**
36
+ * feat-302 F2 — transcrição de áudio medida (evento `media.transcription`).
37
+ * Opcional: produtor antigo não envia; ausente = série não desenhada.
38
+ */
39
+ transcription?: boolean;
40
+ /**
41
+ * Data (`YYYY-MM-DD`) do primeiro evento de transcrição medido (sem
42
+ * backfill). `null`/ausente antes do deploy do emissor.
43
+ */
44
+ transcription_since?: string | null;
35
45
  }
36
46
  /**
37
47
  * Uma linha da abertura por departamento dentro de um mês.
@@ -94,6 +104,46 @@ export interface IUsageLlm {
94
104
  tokens_output: number;
95
105
  tokens_cache_write: number;
96
106
  tokens_cache_read: number;
107
+ /**
108
+ * feat-302 F2 — custo ESTIMADO em US$ (preço de lista, `cost_usd_est` dos
109
+ * eventos). Informativo, não é fatura. `null` quando nenhum evento do mês tem
110
+ * preço conhecido. Opcional: produtor antigo não envia.
111
+ */
112
+ cost_usd_est?: number | null;
113
+ /**
114
+ * feat-302 F2 — quebra por categoria de produto (visão de custo por tenant).
115
+ * Só categorias com uso no mês aparecem. A soma bate com o total do bloco.
116
+ * Opcional: produtor antigo não envia.
117
+ */
118
+ por_categoria?: Partial<Record<UsageAiCategory, IUsageLlmCategory>>;
119
+ }
120
+ /**
121
+ * feat-302 F2 — categorias de uso de IA do TENANT (espelho de
122
+ * `AiUsageCategory` do `@evo/hubia`, sem as internas como `csq_judge`).
123
+ * - `hubia`: atendimento (turnos do LLM, reativação, busca de família).
124
+ * - `attachment_analysis`: leitura de foto/PDF pelo classificador de anexos.
125
+ * - `audio_synthesis`: resposta em áudio (reservada; ainda sem emissor).
126
+ */
127
+ export type UsageAiCategory = "hubia" | "attachment_analysis" | "audio_synthesis";
128
+ export interface IUsageLlmCategory {
129
+ /** Chamadas ao LLM nesta categoria (execuções/análises, dedup por evento). */
130
+ turnos: number;
131
+ tokens_total: number;
132
+ /** US$ estimado (preço de lista); `null` sem preço conhecido. */
133
+ cost_usd_est: number | null;
134
+ }
135
+ /**
136
+ * feat-302 F2 — transcrição de áudio no mês (Whisper; evento
137
+ * `media.transcription`, 1 por áudio, dedup por mensagem). Informativo: não é
138
+ * cobrado. Bloco `null` = capability desligada (não é consumo zero).
139
+ */
140
+ export interface IUsageTranscription {
141
+ audios: number;
142
+ segundos: number;
143
+ /** `segundos / 60`, 2 casas. */
144
+ minutos: number;
145
+ /** US$ estimado (preço de lista); `null` sem duração/preço. */
146
+ cost_usd_est: number | null;
97
147
  }
98
148
  /**
99
149
  * Teleconsultas REALIZADAS no mês (feat-160 F18 / D33). Realizada = a consulta
@@ -119,6 +169,8 @@ export interface IMonthlyUsageRow {
119
169
  notificacoes: IUsageNotifications;
120
170
  ia: IUsageLlm | null;
121
171
  telemedicina: IUsageTelemedicine | null;
172
+ /** feat-302 F2 — opcional: produtor antigo não envia; `null` = capability desligada. */
173
+ transcricao?: IUsageTranscription | null;
122
174
  }
123
175
  export interface IMonthlyUsageResponse {
124
176
  ok: true;
@@ -48,6 +48,16 @@ export interface IUsageCapabilities {
48
48
  * desenhada antes dessa data, porque ausência de medição não é consumo zero.
49
49
  */
50
50
  telemedicine_since: string | null;
51
+ /**
52
+ * feat-302 F2 — transcrição de áudio medida (evento `media.transcription`).
53
+ * Opcional: produtor antigo não envia; ausente = série não desenhada.
54
+ */
55
+ transcription?: boolean;
56
+ /**
57
+ * Data (`YYYY-MM-DD`) do primeiro evento de transcrição medido (sem
58
+ * backfill). `null`/ausente antes do deploy do emissor.
59
+ */
60
+ transcription_since?: string | null;
51
61
  }
52
62
 
53
63
  /**
@@ -114,6 +124,49 @@ export interface IUsageLlm {
114
124
  tokens_output: number;
115
125
  tokens_cache_write: number;
116
126
  tokens_cache_read: number;
127
+ /**
128
+ * feat-302 F2 — custo ESTIMADO em US$ (preço de lista, `cost_usd_est` dos
129
+ * eventos). Informativo, não é fatura. `null` quando nenhum evento do mês tem
130
+ * preço conhecido. Opcional: produtor antigo não envia.
131
+ */
132
+ cost_usd_est?: number | null;
133
+ /**
134
+ * feat-302 F2 — quebra por categoria de produto (visão de custo por tenant).
135
+ * Só categorias com uso no mês aparecem. A soma bate com o total do bloco.
136
+ * Opcional: produtor antigo não envia.
137
+ */
138
+ por_categoria?: Partial<Record<UsageAiCategory, IUsageLlmCategory>>;
139
+ }
140
+
141
+ /**
142
+ * feat-302 F2 — categorias de uso de IA do TENANT (espelho de
143
+ * `AiUsageCategory` do `@evo/hubia`, sem as internas como `csq_judge`).
144
+ * - `hubia`: atendimento (turnos do LLM, reativação, busca de família).
145
+ * - `attachment_analysis`: leitura de foto/PDF pelo classificador de anexos.
146
+ * - `audio_synthesis`: resposta em áudio (reservada; ainda sem emissor).
147
+ */
148
+ export type UsageAiCategory = "hubia" | "attachment_analysis" | "audio_synthesis";
149
+
150
+ export interface IUsageLlmCategory {
151
+ /** Chamadas ao LLM nesta categoria (execuções/análises, dedup por evento). */
152
+ turnos: number;
153
+ tokens_total: number;
154
+ /** US$ estimado (preço de lista); `null` sem preço conhecido. */
155
+ cost_usd_est: number | null;
156
+ }
157
+
158
+ /**
159
+ * feat-302 F2 — transcrição de áudio no mês (Whisper; evento
160
+ * `media.transcription`, 1 por áudio, dedup por mensagem). Informativo: não é
161
+ * cobrado. Bloco `null` = capability desligada (não é consumo zero).
162
+ */
163
+ export interface IUsageTranscription {
164
+ audios: number;
165
+ segundos: number;
166
+ /** `segundos / 60`, 2 casas. */
167
+ minutos: number;
168
+ /** US$ estimado (preço de lista); `null` sem duração/preço. */
169
+ cost_usd_est: number | null;
117
170
  }
118
171
 
119
172
  /**
@@ -141,6 +194,8 @@ export interface IMonthlyUsageRow {
141
194
  notificacoes: IUsageNotifications;
142
195
  ia: IUsageLlm | null;
143
196
  telemedicina: IUsageTelemedicine | null;
197
+ /** feat-302 F2 — opcional: produtor antigo não envia; `null` = capability desligada. */
198
+ transcricao?: IUsageTranscription | null;
144
199
  }
145
200
 
146
201
  export interface IMonthlyUsageResponse {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.736",
3
+ "version": "1.3.746",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",