@rodrigobeber/patoai-dtos 4.8.20 → 4.8.21
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.
package/dist/support/index.d.ts
CHANGED
package/dist/support/index.js
CHANGED
|
@@ -30,3 +30,4 @@ __exportStar(require("./support-insight-access.dto"), exports);
|
|
|
30
30
|
__exportStar(require("./support-agent-balance.dto"), exports);
|
|
31
31
|
__exportStar(require("./support-lab-session.dto"), exports);
|
|
32
32
|
__exportStar(require("./support-lab-onboarding.dto"), exports);
|
|
33
|
+
__exportStar(require("./lab-action-catalog"), exports);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** Como o DIÁLOGO renderiza a proposta (é o que decide se um leigo entende o que vai mudar). */
|
|
2
|
+
export type LabActionRender = 'text' | // diff antes/depois (roteiro, contexto — campos longos)
|
|
3
|
+
'field' | // tabela "Antes -> Depois" com rótulo em pt-BR (liga/desliga, número, enum, horário)
|
|
4
|
+
'item';
|
|
5
|
+
export type LabActionParamKind = 'text' | 'boolean' | 'number' | 'enum' | 'time';
|
|
6
|
+
export interface LabActionOption {
|
|
7
|
+
value: string | number;
|
|
8
|
+
label: string;
|
|
9
|
+
}
|
|
10
|
+
export interface LabActionParam {
|
|
11
|
+
name: string;
|
|
12
|
+
kind: LabActionParamKind;
|
|
13
|
+
label: string;
|
|
14
|
+
description: string;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
/** Identifica QUAL item/campo a ação altera (ex.: idPrompt). Compõe a chave anti-duplicata. */
|
|
17
|
+
identity?: boolean;
|
|
18
|
+
min?: number;
|
|
19
|
+
max?: number;
|
|
20
|
+
unit?: string;
|
|
21
|
+
options?: LabActionOption[];
|
|
22
|
+
}
|
|
23
|
+
export interface LabAction {
|
|
24
|
+
id: string;
|
|
25
|
+
op: 'update' | 'create';
|
|
26
|
+
render: LabActionRender;
|
|
27
|
+
title: string;
|
|
28
|
+
path: string;
|
|
29
|
+
summary: string;
|
|
30
|
+
params: LabActionParam[];
|
|
31
|
+
undoHint: string;
|
|
32
|
+
}
|
|
33
|
+
/** Uma linha "Antes -> Depois" já formatada em pt-BR (render 'field' e 'item'). */
|
|
34
|
+
export interface LabProposalChangeDto {
|
|
35
|
+
label: string;
|
|
36
|
+
before: string;
|
|
37
|
+
after: string;
|
|
38
|
+
}
|
|
39
|
+
export declare const LAB_ACTIONS: LabAction[];
|
|
40
|
+
export declare function findLabAction(id: string): LabAction | undefined;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// CATÁLOGO DE AÇÕES da Oráculo (Laboratório) — fonte única, consumida pelos DOIS lados:
|
|
3
|
+
// `patoai-support` renderiza o índice no prompt, valida o que o modelo pediu e materializa a proposta;
|
|
4
|
+
// `patoai-frontend` mapeia cada `id` para {ler valor atual, aplicar} e escolhe o formato do diálogo.
|
|
5
|
+
//
|
|
6
|
+
// Por que um catálogo em vez de um alvo por vez: o painel tem 176 endpoints de escrita e quase tudo é
|
|
7
|
+
// ESTRUTURADO (liga/desliga, número, enum, item de lista). Sem uma declaração comum, cada alvo novo
|
|
8
|
+
// reescreveria DTO, diálogo e persona. Aqui, alvo novo = 1 entrada aqui + 1 linha no registro do
|
|
9
|
+
// frontend. O modelo continua com UMA tool genérica (`propose_change`) — tool nova encareceria toda
|
|
10
|
+
// chamada da Oráculo, porque schema de tool entra no prefixo cacheado.
|
|
11
|
+
//
|
|
12
|
+
// A IA NUNCA aplica: a proposta é um formulário pré-preenchido e quem aplica é o usuário, pelo diálogo,
|
|
13
|
+
// no endpoint REST normal — com o guard que já existe. Por isso não há `delete` no catálogo: sem
|
|
14
|
+
// exclusão não existe perda de dado possível por sugestão de IA.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.LAB_ACTIONS = void 0;
|
|
17
|
+
exports.findLabAction = findLabAction;
|
|
18
|
+
const CONTEXT_FIELDS = [
|
|
19
|
+
{ value: 'about', label: 'Sobre a empresa/oferta' },
|
|
20
|
+
{ value: 'role', label: 'Papel do agente' },
|
|
21
|
+
{ value: 'audience', label: 'Público-alvo' },
|
|
22
|
+
{ value: 'behavior', label: 'Comportamento/tom' },
|
|
23
|
+
];
|
|
24
|
+
exports.LAB_ACTIONS = [
|
|
25
|
+
{
|
|
26
|
+
id: 'prompt.update',
|
|
27
|
+
op: 'update',
|
|
28
|
+
render: 'text',
|
|
29
|
+
title: 'Roteiro',
|
|
30
|
+
path: 'Configurações → Agente → Prompts',
|
|
31
|
+
summary: 'Reescrever o texto de um roteiro do agente (informe o id do roteiro).',
|
|
32
|
+
undoHint: 'Configurações → Agente → Prompts: o roteiro tem histórico e dá para restaurar a versão anterior.',
|
|
33
|
+
params: [
|
|
34
|
+
{
|
|
35
|
+
name: 'idPrompt', kind: 'number', identity: true, required: true,
|
|
36
|
+
label: 'Roteiro',
|
|
37
|
+
description: 'Id do roteiro a alterar — o número entre colchetes no ÍNDICE dos roteiros.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'proposedText', kind: 'text', required: true,
|
|
41
|
+
label: 'Texto do roteiro',
|
|
42
|
+
description: 'O texto INTEGRAL novo do roteiro (como deve ficar por completo, não um trecho nem instruções).',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'context.update',
|
|
48
|
+
op: 'update',
|
|
49
|
+
render: 'text',
|
|
50
|
+
title: 'Contexto básico',
|
|
51
|
+
path: 'Configurações → Agente → Contexto Básico',
|
|
52
|
+
summary: 'Reescrever um campo do contexto básico (sobre, papel, público ou comportamento).',
|
|
53
|
+
undoHint: 'Configurações → Agente → Contexto Básico: dá para editar o campo de novo a qualquer momento.',
|
|
54
|
+
params: [
|
|
55
|
+
{
|
|
56
|
+
name: 'field', kind: 'enum', identity: true, required: true, options: CONTEXT_FIELDS,
|
|
57
|
+
label: 'Campo',
|
|
58
|
+
description: 'Qual campo do contexto básico alterar.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'proposedText', kind: 'text', required: true,
|
|
62
|
+
label: 'Texto do campo',
|
|
63
|
+
description: 'O texto INTEGRAL novo do campo (como deve ficar por completo).',
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
function findLabAction(id) {
|
|
69
|
+
return exports.LAB_ACTIONS.find(a => a.id === id);
|
|
70
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SupportMessageDto } from "./support-message.dto";
|
|
2
2
|
import { SupportAgentBalanceDto } from "./support-agent-balance.dto";
|
|
3
3
|
import { SupportLabPendingAnalysisDto } from "./support-lab-analyze.dto";
|
|
4
|
+
import { LabActionRender, LabProposalChangeDto } from "./lab-action-catalog";
|
|
4
5
|
export interface SupportLabFocusDto {
|
|
5
6
|
idStage?: number;
|
|
6
7
|
runType?: string;
|
|
@@ -18,14 +19,23 @@ export interface SupportLabAskDto {
|
|
|
18
19
|
}
|
|
19
20
|
export interface SupportLabProposalDto {
|
|
20
21
|
id: string;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
idPrompt?: number;
|
|
24
|
-
kind: 'markdown' | 'spin-yaml';
|
|
22
|
+
actionId: string;
|
|
23
|
+
render: LabActionRender;
|
|
25
24
|
title: string;
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
path: string;
|
|
26
|
+
params: Record<string, unknown>;
|
|
28
27
|
rationale: string;
|
|
28
|
+
undoHint: string;
|
|
29
|
+
kind?: 'markdown' | 'spin-yaml';
|
|
30
|
+
baseText?: string;
|
|
31
|
+
proposedText?: string;
|
|
32
|
+
changes?: LabProposalChangeDto[];
|
|
33
|
+
/** @deprecated compat 1 deploy (frontend antigo lê estes); use `actionId` + `params`. */
|
|
34
|
+
target?: 'context' | 'prompt';
|
|
35
|
+
/** @deprecated compat 1 deploy; use `params.field`. */
|
|
36
|
+
field?: 'about' | 'role' | 'audience' | 'behavior';
|
|
37
|
+
/** @deprecated compat 1 deploy; use `params.idPrompt`. */
|
|
38
|
+
idPrompt?: number;
|
|
29
39
|
}
|
|
30
40
|
export interface SupportLabAnswerDto {
|
|
31
41
|
content: string;
|