evo360-types 1.3.352 → 1.3.354

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.
@@ -18,12 +18,90 @@ export declare const zHubiaV1ChannelConfigSchema: z.ZodObject<{
18
18
  llm_model: z.ZodDefault<z.ZodString>;
19
19
  llm_temperature: z.ZodDefault<z.ZodNumber>;
20
20
  llm_max_tokens: z.ZodDefault<z.ZodNumber>;
21
+ /** @deprecated Coleção `apps/evo-hubia-v1/prompts/{id}` virou histórico (Q5=B em decisions.md). Após a migração, runtime ignora este campo. */
21
22
  prompt_ids: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
23
+ /** Prompts inline herdados pelos bindings que apontam para este canal.
24
+ * Identity/safety/channel_custom específicos do canal.
25
+ * Migrados a partir da coleção legada `apps/evo-hubia-v1/prompts/{id}` (Q5=B em decisions.md). */
26
+ prompts: z.ZodOptional<z.ZodObject<{
27
+ identity: z.ZodOptional<z.ZodObject<{
28
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
29
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
30
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ version?: number | undefined;
33
+ updated_at?: any;
34
+ text?: string | undefined;
35
+ }, {
36
+ version?: number | undefined;
37
+ updated_at?: any;
38
+ text?: string | undefined;
39
+ }>>;
40
+ safety: z.ZodOptional<z.ZodObject<{
41
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
42
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
43
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ version?: number | undefined;
46
+ updated_at?: any;
47
+ text?: string | undefined;
48
+ }, {
49
+ version?: number | undefined;
50
+ updated_at?: any;
51
+ text?: string | undefined;
52
+ }>>;
53
+ channel_custom: z.ZodOptional<z.ZodObject<{
54
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
55
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
56
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ version?: number | undefined;
59
+ updated_at?: any;
60
+ text?: string | undefined;
61
+ }, {
62
+ version?: number | undefined;
63
+ updated_at?: any;
64
+ text?: string | undefined;
65
+ }>>;
66
+ }, "strip", z.ZodTypeAny, {
67
+ identity?: {
68
+ version?: number | undefined;
69
+ updated_at?: any;
70
+ text?: string | undefined;
71
+ } | undefined;
72
+ safety?: {
73
+ version?: number | undefined;
74
+ updated_at?: any;
75
+ text?: string | undefined;
76
+ } | undefined;
77
+ channel_custom?: {
78
+ version?: number | undefined;
79
+ updated_at?: any;
80
+ text?: string | undefined;
81
+ } | undefined;
82
+ }, {
83
+ identity?: {
84
+ version?: number | undefined;
85
+ updated_at?: any;
86
+ text?: string | undefined;
87
+ } | undefined;
88
+ safety?: {
89
+ version?: number | undefined;
90
+ updated_at?: any;
91
+ text?: string | undefined;
92
+ } | undefined;
93
+ channel_custom?: {
94
+ version?: number | undefined;
95
+ updated_at?: any;
96
+ text?: string | undefined;
97
+ } | undefined;
98
+ }>>;
22
99
  toolkit_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
23
100
  max_rounds: z.ZodDefault<z.ZodNumber>;
24
101
  max_tool_calls: z.ZodDefault<z.ZodNumber>;
25
102
  execution_timeout_ms: z.ZodDefault<z.ZodNumber>;
26
- capabilities: z.ZodObject<{
103
+ /** @deprecated Movido para `binding.capabilities`. Permanece como fallback indefinido (Q2=C em decisions.md). Não deve ser editado pela nova UI. */
104
+ capabilities: z.ZodOptional<z.ZodObject<{
27
105
  can_schedule: z.ZodDefault<z.ZodBoolean>;
28
106
  can_reschedule: z.ZodDefault<z.ZodBoolean>;
29
107
  can_cancel: z.ZodDefault<z.ZodBoolean>;
@@ -41,7 +119,7 @@ export declare const zHubiaV1ChannelConfigSchema: z.ZodObject<{
41
119
  can_cancel?: boolean | undefined;
42
120
  can_handoff?: boolean | undefined;
43
121
  can_read_finops?: boolean | undefined;
44
- }>;
122
+ }>>;
45
123
  timezone: z.ZodDefault<z.ZodString>;
46
124
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
47
125
  id: z.ZodString;
@@ -60,12 +138,90 @@ export declare const zHubiaV1ChannelConfigSchema: z.ZodObject<{
60
138
  llm_model: z.ZodDefault<z.ZodString>;
61
139
  llm_temperature: z.ZodDefault<z.ZodNumber>;
62
140
  llm_max_tokens: z.ZodDefault<z.ZodNumber>;
141
+ /** @deprecated Coleção `apps/evo-hubia-v1/prompts/{id}` virou histórico (Q5=B em decisions.md). Após a migração, runtime ignora este campo. */
63
142
  prompt_ids: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
143
+ /** Prompts inline herdados pelos bindings que apontam para este canal.
144
+ * Identity/safety/channel_custom específicos do canal.
145
+ * Migrados a partir da coleção legada `apps/evo-hubia-v1/prompts/{id}` (Q5=B em decisions.md). */
146
+ prompts: z.ZodOptional<z.ZodObject<{
147
+ identity: z.ZodOptional<z.ZodObject<{
148
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
149
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
150
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
151
+ }, "strip", z.ZodTypeAny, {
152
+ version?: number | undefined;
153
+ updated_at?: any;
154
+ text?: string | undefined;
155
+ }, {
156
+ version?: number | undefined;
157
+ updated_at?: any;
158
+ text?: string | undefined;
159
+ }>>;
160
+ safety: z.ZodOptional<z.ZodObject<{
161
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
162
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
163
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
164
+ }, "strip", z.ZodTypeAny, {
165
+ version?: number | undefined;
166
+ updated_at?: any;
167
+ text?: string | undefined;
168
+ }, {
169
+ version?: number | undefined;
170
+ updated_at?: any;
171
+ text?: string | undefined;
172
+ }>>;
173
+ channel_custom: z.ZodOptional<z.ZodObject<{
174
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
175
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
176
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ version?: number | undefined;
179
+ updated_at?: any;
180
+ text?: string | undefined;
181
+ }, {
182
+ version?: number | undefined;
183
+ updated_at?: any;
184
+ text?: string | undefined;
185
+ }>>;
186
+ }, "strip", z.ZodTypeAny, {
187
+ identity?: {
188
+ version?: number | undefined;
189
+ updated_at?: any;
190
+ text?: string | undefined;
191
+ } | undefined;
192
+ safety?: {
193
+ version?: number | undefined;
194
+ updated_at?: any;
195
+ text?: string | undefined;
196
+ } | undefined;
197
+ channel_custom?: {
198
+ version?: number | undefined;
199
+ updated_at?: any;
200
+ text?: string | undefined;
201
+ } | undefined;
202
+ }, {
203
+ identity?: {
204
+ version?: number | undefined;
205
+ updated_at?: any;
206
+ text?: string | undefined;
207
+ } | undefined;
208
+ safety?: {
209
+ version?: number | undefined;
210
+ updated_at?: any;
211
+ text?: string | undefined;
212
+ } | undefined;
213
+ channel_custom?: {
214
+ version?: number | undefined;
215
+ updated_at?: any;
216
+ text?: string | undefined;
217
+ } | undefined;
218
+ }>>;
64
219
  toolkit_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
65
220
  max_rounds: z.ZodDefault<z.ZodNumber>;
66
221
  max_tool_calls: z.ZodDefault<z.ZodNumber>;
67
222
  execution_timeout_ms: z.ZodDefault<z.ZodNumber>;
68
- capabilities: z.ZodObject<{
223
+ /** @deprecated Movido para `binding.capabilities`. Permanece como fallback indefinido (Q2=C em decisions.md). Não deve ser editado pela nova UI. */
224
+ capabilities: z.ZodOptional<z.ZodObject<{
69
225
  can_schedule: z.ZodDefault<z.ZodBoolean>;
70
226
  can_reschedule: z.ZodDefault<z.ZodBoolean>;
71
227
  can_cancel: z.ZodDefault<z.ZodBoolean>;
@@ -83,7 +239,7 @@ export declare const zHubiaV1ChannelConfigSchema: z.ZodObject<{
83
239
  can_cancel?: boolean | undefined;
84
240
  can_handoff?: boolean | undefined;
85
241
  can_read_finops?: boolean | undefined;
86
- }>;
242
+ }>>;
87
243
  timezone: z.ZodDefault<z.ZodString>;
88
244
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
89
245
  id: z.ZodString;
@@ -102,12 +258,90 @@ export declare const zHubiaV1ChannelConfigSchema: z.ZodObject<{
102
258
  llm_model: z.ZodDefault<z.ZodString>;
103
259
  llm_temperature: z.ZodDefault<z.ZodNumber>;
104
260
  llm_max_tokens: z.ZodDefault<z.ZodNumber>;
261
+ /** @deprecated Coleção `apps/evo-hubia-v1/prompts/{id}` virou histórico (Q5=B em decisions.md). Após a migração, runtime ignora este campo. */
105
262
  prompt_ids: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
263
+ /** Prompts inline herdados pelos bindings que apontam para este canal.
264
+ * Identity/safety/channel_custom específicos do canal.
265
+ * Migrados a partir da coleção legada `apps/evo-hubia-v1/prompts/{id}` (Q5=B em decisions.md). */
266
+ prompts: z.ZodOptional<z.ZodObject<{
267
+ identity: z.ZodOptional<z.ZodObject<{
268
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
269
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
270
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
271
+ }, "strip", z.ZodTypeAny, {
272
+ version?: number | undefined;
273
+ updated_at?: any;
274
+ text?: string | undefined;
275
+ }, {
276
+ version?: number | undefined;
277
+ updated_at?: any;
278
+ text?: string | undefined;
279
+ }>>;
280
+ safety: z.ZodOptional<z.ZodObject<{
281
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
282
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
283
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
284
+ }, "strip", z.ZodTypeAny, {
285
+ version?: number | undefined;
286
+ updated_at?: any;
287
+ text?: string | undefined;
288
+ }, {
289
+ version?: number | undefined;
290
+ updated_at?: any;
291
+ text?: string | undefined;
292
+ }>>;
293
+ channel_custom: z.ZodOptional<z.ZodObject<{
294
+ text: z.ZodOptional<z.ZodDefault<z.ZodString>>;
295
+ version: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
296
+ updated_at: z.ZodOptional<z.ZodOptional<z.ZodAny>>;
297
+ }, "strip", z.ZodTypeAny, {
298
+ version?: number | undefined;
299
+ updated_at?: any;
300
+ text?: string | undefined;
301
+ }, {
302
+ version?: number | undefined;
303
+ updated_at?: any;
304
+ text?: string | undefined;
305
+ }>>;
306
+ }, "strip", z.ZodTypeAny, {
307
+ identity?: {
308
+ version?: number | undefined;
309
+ updated_at?: any;
310
+ text?: string | undefined;
311
+ } | undefined;
312
+ safety?: {
313
+ version?: number | undefined;
314
+ updated_at?: any;
315
+ text?: string | undefined;
316
+ } | undefined;
317
+ channel_custom?: {
318
+ version?: number | undefined;
319
+ updated_at?: any;
320
+ text?: string | undefined;
321
+ } | undefined;
322
+ }, {
323
+ identity?: {
324
+ version?: number | undefined;
325
+ updated_at?: any;
326
+ text?: string | undefined;
327
+ } | undefined;
328
+ safety?: {
329
+ version?: number | undefined;
330
+ updated_at?: any;
331
+ text?: string | undefined;
332
+ } | undefined;
333
+ channel_custom?: {
334
+ version?: number | undefined;
335
+ updated_at?: any;
336
+ text?: string | undefined;
337
+ } | undefined;
338
+ }>>;
106
339
  toolkit_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
107
340
  max_rounds: z.ZodDefault<z.ZodNumber>;
108
341
  max_tool_calls: z.ZodDefault<z.ZodNumber>;
109
342
  execution_timeout_ms: z.ZodDefault<z.ZodNumber>;
110
- capabilities: z.ZodObject<{
343
+ /** @deprecated Movido para `binding.capabilities`. Permanece como fallback indefinido (Q2=C em decisions.md). Não deve ser editado pela nova UI. */
344
+ capabilities: z.ZodOptional<z.ZodObject<{
111
345
  can_schedule: z.ZodDefault<z.ZodBoolean>;
112
346
  can_reschedule: z.ZodDefault<z.ZodBoolean>;
113
347
  can_cancel: z.ZodDefault<z.ZodBoolean>;
@@ -125,7 +359,7 @@ export declare const zHubiaV1ChannelConfigSchema: z.ZodObject<{
125
359
  can_cancel?: boolean | undefined;
126
360
  can_handoff?: boolean | undefined;
127
361
  can_read_finops?: boolean | undefined;
128
- }>;
362
+ }>>;
129
363
  timezone: z.ZodDefault<z.ZodString>;
130
364
  }, z.ZodTypeAny, "passthrough">>;
131
365
  export type IHubiaV1ChannelConfig = z.infer<typeof zHubiaV1ChannelConfigSchema>;
@@ -151,6 +385,42 @@ export declare const zAiBindingSchema: z.ZodObject<{
151
385
  * human_only — AI disabled, operator can switch to other modes
152
386
  * blocked — AI disabled, operator CANNOT change mode (admin lock) */
153
387
  default_mode: z.ZodDefault<z.ZodEnum<["ai_only", "hybrid_assist", "human_only", "blocked"]>>;
388
+ /** Capacidades efetivas para tools deste departamento.
389
+ * Quando ausente, runtime aplica `channel.capabilities` como fallback. */
390
+ capabilities: z.ZodOptional<z.ZodObject<{
391
+ can_schedule: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
392
+ can_reschedule: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
393
+ can_cancel: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
394
+ can_handoff: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
395
+ can_read_finops: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
396
+ }, "strip", z.ZodTypeAny, {
397
+ can_schedule?: boolean | undefined;
398
+ can_reschedule?: boolean | undefined;
399
+ can_cancel?: boolean | undefined;
400
+ can_handoff?: boolean | undefined;
401
+ can_read_finops?: boolean | undefined;
402
+ }, {
403
+ can_schedule?: boolean | undefined;
404
+ can_reschedule?: boolean | undefined;
405
+ can_cancel?: boolean | undefined;
406
+ can_handoff?: boolean | undefined;
407
+ can_read_finops?: boolean | undefined;
408
+ }>>;
409
+ /** Prompts específicos do fluxo do departamento (texto inline).
410
+ * Empilhados após identity/safety/channel_custom do canal. */
411
+ prompt_overrides: z.ZodOptional<z.ZodObject<{
412
+ behavior: z.ZodOptional<z.ZodString>;
413
+ routing: z.ZodOptional<z.ZodString>;
414
+ tool_usage: z.ZodOptional<z.ZodString>;
415
+ }, "strip", z.ZodTypeAny, {
416
+ behavior?: string | undefined;
417
+ routing?: string | undefined;
418
+ tool_usage?: string | undefined;
419
+ }, {
420
+ behavior?: string | undefined;
421
+ routing?: string | undefined;
422
+ tool_usage?: string | undefined;
423
+ }>>;
154
424
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
155
425
  id: z.ZodString;
156
426
  ref: z.ZodAny;
@@ -171,6 +441,42 @@ export declare const zAiBindingSchema: z.ZodObject<{
171
441
  * human_only — AI disabled, operator can switch to other modes
172
442
  * blocked — AI disabled, operator CANNOT change mode (admin lock) */
173
443
  default_mode: z.ZodDefault<z.ZodEnum<["ai_only", "hybrid_assist", "human_only", "blocked"]>>;
444
+ /** Capacidades efetivas para tools deste departamento.
445
+ * Quando ausente, runtime aplica `channel.capabilities` como fallback. */
446
+ capabilities: z.ZodOptional<z.ZodObject<{
447
+ can_schedule: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
448
+ can_reschedule: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
449
+ can_cancel: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
450
+ can_handoff: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
451
+ can_read_finops: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
452
+ }, "strip", z.ZodTypeAny, {
453
+ can_schedule?: boolean | undefined;
454
+ can_reschedule?: boolean | undefined;
455
+ can_cancel?: boolean | undefined;
456
+ can_handoff?: boolean | undefined;
457
+ can_read_finops?: boolean | undefined;
458
+ }, {
459
+ can_schedule?: boolean | undefined;
460
+ can_reschedule?: boolean | undefined;
461
+ can_cancel?: boolean | undefined;
462
+ can_handoff?: boolean | undefined;
463
+ can_read_finops?: boolean | undefined;
464
+ }>>;
465
+ /** Prompts específicos do fluxo do departamento (texto inline).
466
+ * Empilhados após identity/safety/channel_custom do canal. */
467
+ prompt_overrides: z.ZodOptional<z.ZodObject<{
468
+ behavior: z.ZodOptional<z.ZodString>;
469
+ routing: z.ZodOptional<z.ZodString>;
470
+ tool_usage: z.ZodOptional<z.ZodString>;
471
+ }, "strip", z.ZodTypeAny, {
472
+ behavior?: string | undefined;
473
+ routing?: string | undefined;
474
+ tool_usage?: string | undefined;
475
+ }, {
476
+ behavior?: string | undefined;
477
+ routing?: string | undefined;
478
+ tool_usage?: string | undefined;
479
+ }>>;
174
480
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
175
481
  id: z.ZodString;
176
482
  ref: z.ZodAny;
@@ -191,5 +497,41 @@ export declare const zAiBindingSchema: z.ZodObject<{
191
497
  * human_only — AI disabled, operator can switch to other modes
192
498
  * blocked — AI disabled, operator CANNOT change mode (admin lock) */
193
499
  default_mode: z.ZodDefault<z.ZodEnum<["ai_only", "hybrid_assist", "human_only", "blocked"]>>;
500
+ /** Capacidades efetivas para tools deste departamento.
501
+ * Quando ausente, runtime aplica `channel.capabilities` como fallback. */
502
+ capabilities: z.ZodOptional<z.ZodObject<{
503
+ can_schedule: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
504
+ can_reschedule: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
505
+ can_cancel: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
506
+ can_handoff: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
507
+ can_read_finops: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
508
+ }, "strip", z.ZodTypeAny, {
509
+ can_schedule?: boolean | undefined;
510
+ can_reschedule?: boolean | undefined;
511
+ can_cancel?: boolean | undefined;
512
+ can_handoff?: boolean | undefined;
513
+ can_read_finops?: boolean | undefined;
514
+ }, {
515
+ can_schedule?: boolean | undefined;
516
+ can_reschedule?: boolean | undefined;
517
+ can_cancel?: boolean | undefined;
518
+ can_handoff?: boolean | undefined;
519
+ can_read_finops?: boolean | undefined;
520
+ }>>;
521
+ /** Prompts específicos do fluxo do departamento (texto inline).
522
+ * Empilhados após identity/safety/channel_custom do canal. */
523
+ prompt_overrides: z.ZodOptional<z.ZodObject<{
524
+ behavior: z.ZodOptional<z.ZodString>;
525
+ routing: z.ZodOptional<z.ZodString>;
526
+ tool_usage: z.ZodOptional<z.ZodString>;
527
+ }, "strip", z.ZodTypeAny, {
528
+ behavior?: string | undefined;
529
+ routing?: string | undefined;
530
+ tool_usage?: string | undefined;
531
+ }, {
532
+ behavior?: string | undefined;
533
+ routing?: string | undefined;
534
+ tool_usage?: string | undefined;
535
+ }>>;
194
536
  }, z.ZodTypeAny, "passthrough">>;
195
537
  export type IAiBinding = z.infer<typeof zAiBindingSchema>;
@@ -6,6 +6,11 @@ const zod_schemas_1 = require("../../shared/zod-schemas");
6
6
  // ───────── Attendance Mode (how AI operates on this channel) ─────────
7
7
  exports.zHubiaAttendanceModeSchema = zod_1.z.enum(["ai_auto", "ai_suggest", "disabled"]);
8
8
  // ───────── Channel Config (evo-hubia-v1 automation config per channel) ─────────
9
+ const zHubiaInlinePromptSchema = zod_1.z.object({
10
+ text: zod_1.z.string().default(""),
11
+ version: zod_1.z.number().default(1),
12
+ updated_at: zod_1.z.any().optional(),
13
+ }).partial();
9
14
  exports.zHubiaV1ChannelConfigSchema = zod_schemas_1.zFireDocSchema.extend({
10
15
  evo_chat_channel_id: zod_1.z.string(),
11
16
  channel_name: zod_1.z.string(),
@@ -15,23 +20,45 @@ exports.zHubiaV1ChannelConfigSchema = zod_schemas_1.zFireDocSchema.extend({
15
20
  llm_model: zod_1.z.string().default("claude-sonnet-4-20250514"),
16
21
  llm_temperature: zod_1.z.number().min(0).max(1).default(0.3),
17
22
  llm_max_tokens: zod_1.z.number().default(2048),
23
+ /** @deprecated Coleção `apps/evo-hubia-v1/prompts/{id}` virou histórico (Q5=B em decisions.md). Após a migração, runtime ignora este campo. */
18
24
  prompt_ids: zod_1.z.array(zod_1.z.string()).default([]),
25
+ /** Prompts inline herdados pelos bindings que apontam para este canal.
26
+ * Identity/safety/channel_custom específicos do canal.
27
+ * Migrados a partir da coleção legada `apps/evo-hubia-v1/prompts/{id}` (Q5=B em decisions.md). */
28
+ prompts: zod_1.z.object({
29
+ identity: zHubiaInlinePromptSchema.optional(),
30
+ safety: zHubiaInlinePromptSchema.optional(),
31
+ channel_custom: zHubiaInlinePromptSchema.optional(),
32
+ }).optional(),
19
33
  toolkit_id: zod_1.z.string().nullable().optional(),
20
34
  max_rounds: zod_1.z.number().default(5),
21
35
  max_tool_calls: zod_1.z.number().default(10),
22
36
  execution_timeout_ms: zod_1.z.number().default(30000),
37
+ /** @deprecated Movido para `binding.capabilities`. Permanece como fallback indefinido (Q2=C em decisions.md). Não deve ser editado pela nova UI. */
23
38
  capabilities: zod_1.z.object({
24
39
  can_schedule: zod_1.z.boolean().default(false),
25
40
  can_reschedule: zod_1.z.boolean().default(false),
26
41
  can_cancel: zod_1.z.boolean().default(false),
27
42
  can_handoff: zod_1.z.boolean().default(true),
28
43
  can_read_finops: zod_1.z.boolean().default(false),
29
- }),
44
+ }).optional(),
30
45
  timezone: zod_1.z.string().default("America/Sao_Paulo"),
31
46
  }).passthrough();
32
47
  // ───────── Conversation Mode ─────────
33
48
  exports.zHubiaConversationModeSchema = zod_1.z.enum(["ai_only", "hybrid_assist", "human_only", "blocked"]);
34
49
  // ───────── AI Binding (department → AI agent routing) ─────────
50
+ const zHubiaCapabilitiesSchema = zod_1.z.object({
51
+ can_schedule: zod_1.z.boolean().default(false),
52
+ can_reschedule: zod_1.z.boolean().default(false),
53
+ can_cancel: zod_1.z.boolean().default(false),
54
+ can_handoff: zod_1.z.boolean().default(true),
55
+ can_read_finops: zod_1.z.boolean().default(false),
56
+ }).partial();
57
+ const zHubiaPromptOverridesSchema = zod_1.z.object({
58
+ behavior: zod_1.z.string().optional(),
59
+ routing: zod_1.z.string().optional(),
60
+ tool_usage: zod_1.z.string().optional(),
61
+ });
35
62
  exports.zAiBindingSchema = zod_schemas_1.zFireDocSchema.extend({
36
63
  agent_type: zod_1.z.string(), // 'evo-hubia-v1', future: 'evo-hubia-v2', etc.
37
64
  agent_config_id: zod_1.z.string(), // ref to the agent's channel config doc
@@ -44,4 +71,10 @@ exports.zAiBindingSchema = zod_schemas_1.zFireDocSchema.extend({
44
71
  * human_only — AI disabled, operator can switch to other modes
45
72
  * blocked — AI disabled, operator CANNOT change mode (admin lock) */
46
73
  default_mode: exports.zHubiaConversationModeSchema.default("ai_only"),
74
+ /** Capacidades efetivas para tools deste departamento.
75
+ * Quando ausente, runtime aplica `channel.capabilities` como fallback. */
76
+ capabilities: zHubiaCapabilitiesSchema.optional(),
77
+ /** Prompts específicos do fluxo do departamento (texto inline).
78
+ * Empilhados após identity/safety/channel_custom do canal. */
79
+ prompt_overrides: zHubiaPromptOverridesSchema.optional(),
47
80
  }).passthrough();
@@ -8,6 +8,12 @@ export type IHubiaAttendanceMode = z.infer<typeof zHubiaAttendanceModeSchema>;
8
8
 
9
9
  // ───────── Channel Config (evo-hubia-v1 automation config per channel) ─────────
10
10
 
11
+ const zHubiaInlinePromptSchema = z.object({
12
+ text: z.string().default(""),
13
+ version: z.number().default(1),
14
+ updated_at: z.any().optional(),
15
+ }).partial();
16
+
11
17
  export const zHubiaV1ChannelConfigSchema = zFireDocSchema.extend({
12
18
  evo_chat_channel_id: z.string(),
13
19
  channel_name: z.string(),
@@ -17,18 +23,28 @@ export const zHubiaV1ChannelConfigSchema = zFireDocSchema.extend({
17
23
  llm_model: z.string().default("claude-sonnet-4-20250514"),
18
24
  llm_temperature: z.number().min(0).max(1).default(0.3),
19
25
  llm_max_tokens: z.number().default(2048),
26
+ /** @deprecated Coleção `apps/evo-hubia-v1/prompts/{id}` virou histórico (Q5=B em decisions.md). Após a migração, runtime ignora este campo. */
20
27
  prompt_ids: z.array(z.string()).default([]),
28
+ /** Prompts inline herdados pelos bindings que apontam para este canal.
29
+ * Identity/safety/channel_custom específicos do canal.
30
+ * Migrados a partir da coleção legada `apps/evo-hubia-v1/prompts/{id}` (Q5=B em decisions.md). */
31
+ prompts: z.object({
32
+ identity: zHubiaInlinePromptSchema.optional(),
33
+ safety: zHubiaInlinePromptSchema.optional(),
34
+ channel_custom: zHubiaInlinePromptSchema.optional(),
35
+ }).optional(),
21
36
  toolkit_id: z.string().nullable().optional(),
22
37
  max_rounds: z.number().default(5),
23
38
  max_tool_calls: z.number().default(10),
24
39
  execution_timeout_ms: z.number().default(30000),
40
+ /** @deprecated Movido para `binding.capabilities`. Permanece como fallback indefinido (Q2=C em decisions.md). Não deve ser editado pela nova UI. */
25
41
  capabilities: z.object({
26
42
  can_schedule: z.boolean().default(false),
27
43
  can_reschedule: z.boolean().default(false),
28
44
  can_cancel: z.boolean().default(false),
29
45
  can_handoff: z.boolean().default(true),
30
46
  can_read_finops: z.boolean().default(false),
31
- }),
47
+ }).optional(),
32
48
  timezone: z.string().default("America/Sao_Paulo"),
33
49
  }).passthrough();
34
50
 
@@ -41,6 +57,20 @@ export type IHubiaConversationMode = z.infer<typeof zHubiaConversationModeSchema
41
57
 
42
58
  // ───────── AI Binding (department → AI agent routing) ─────────
43
59
 
60
+ const zHubiaCapabilitiesSchema = z.object({
61
+ can_schedule: z.boolean().default(false),
62
+ can_reschedule: z.boolean().default(false),
63
+ can_cancel: z.boolean().default(false),
64
+ can_handoff: z.boolean().default(true),
65
+ can_read_finops: z.boolean().default(false),
66
+ }).partial();
67
+
68
+ const zHubiaPromptOverridesSchema = z.object({
69
+ behavior: z.string().optional(),
70
+ routing: z.string().optional(),
71
+ tool_usage: z.string().optional(),
72
+ });
73
+
44
74
  export const zAiBindingSchema = zFireDocSchema.extend({
45
75
  agent_type: z.string(), // 'evo-hubia-v1', future: 'evo-hubia-v2', etc.
46
76
  agent_config_id: z.string(), // ref to the agent's channel config doc
@@ -53,6 +83,12 @@ export const zAiBindingSchema = zFireDocSchema.extend({
53
83
  * human_only — AI disabled, operator can switch to other modes
54
84
  * blocked — AI disabled, operator CANNOT change mode (admin lock) */
55
85
  default_mode: zHubiaConversationModeSchema.default("ai_only"),
86
+ /** Capacidades efetivas para tools deste departamento.
87
+ * Quando ausente, runtime aplica `channel.capabilities` como fallback. */
88
+ capabilities: zHubiaCapabilitiesSchema.optional(),
89
+ /** Prompts específicos do fluxo do departamento (texto inline).
90
+ * Empilhados após identity/safety/channel_custom do canal. */
91
+ prompt_overrides: zHubiaPromptOverridesSchema.optional(),
56
92
  }).passthrough();
57
93
 
58
94
  export type IAiBinding = z.infer<typeof zAiBindingSchema>;
@@ -1,5 +1,6 @@
1
1
  import type { IFireGlobalDoc } from '../../shared';
2
2
  export type NexFinopsBillingStatus = 'draft' | 'issued' | 'paid' | 'overdue' | 'canceled';
3
+ export type NexFinopsBillingAttachmentCategory = 'boleto' | 'invoice' | 'other';
3
4
  export interface INexFinopsBillingServiceItem {
4
5
  category: string;
5
6
  description: string;
@@ -31,6 +32,8 @@ export interface INexFinopsBillingAttachment {
31
32
  url?: string | null;
32
33
  /** Timestamp de upload. */
33
34
  uploaded_at: string;
35
+ /** Categoria do anexo. Quando ausente em registros legados, frontend trata como 'other'. */
36
+ category?: NexFinopsBillingAttachmentCategory;
34
37
  }
35
38
  export interface INexFinopsBilling extends IFireGlobalDoc {
36
39
  customer_id: string;
@@ -11,6 +11,8 @@ export type NexFinopsBillingStatus =
11
11
 
12
12
  // ── Sub-interfaces ──
13
13
 
14
+ export type NexFinopsBillingAttachmentCategory = 'boleto' | 'invoice' | 'other';
15
+
14
16
  export interface INexFinopsBillingServiceItem {
15
17
  category: string;
16
18
  description: string;
@@ -45,6 +47,8 @@ export interface INexFinopsBillingAttachment {
45
47
  url?: string | null;
46
48
  /** Timestamp de upload. */
47
49
  uploaded_at: string;
50
+ /** Categoria do anexo. Quando ausente em registros legados, frontend trata como 'other'. */
51
+ category?: NexFinopsBillingAttachmentCategory;
48
52
  }
49
53
 
50
54
  // ── Main Document ──
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evo360-types",
3
- "version": "1.3.352",
3
+ "version": "1.3.354",
4
4
  "description": "HREVO360 Shared Types",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",