@botuyo/mcp 0.2.14 → 0.2.16
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.
|
@@ -3,45 +3,39 @@ export declare const EXAMPLE_AGENT_TOOL: Tool;
|
|
|
3
3
|
export declare function exampleAgentHandler(): Promise<{
|
|
4
4
|
success: boolean;
|
|
5
5
|
data: {
|
|
6
|
-
_comment: string;
|
|
7
6
|
name: string;
|
|
7
|
+
_name_doc: string;
|
|
8
8
|
identity: {
|
|
9
9
|
tone: string;
|
|
10
10
|
language: string;
|
|
11
11
|
objective: string;
|
|
12
12
|
customInstructions: string;
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
_note?: undefined;
|
|
22
|
-
} | {
|
|
14
|
+
_identity_doc: {
|
|
15
|
+
tone: string;
|
|
16
|
+
language: string;
|
|
17
|
+
objective: string;
|
|
18
|
+
customInstructions: string;
|
|
19
|
+
};
|
|
20
|
+
stages: {
|
|
23
21
|
id: string;
|
|
24
22
|
name: string;
|
|
25
23
|
type: string;
|
|
26
24
|
instruction: string;
|
|
27
25
|
tools: string[];
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} | {
|
|
26
|
+
}[];
|
|
27
|
+
_stages_doc: {
|
|
31
28
|
id: string;
|
|
32
29
|
name: string;
|
|
33
30
|
type: string;
|
|
34
31
|
instruction: string;
|
|
35
|
-
tools: string
|
|
36
|
-
|
|
37
|
-
_note?: undefined;
|
|
38
|
-
})[];
|
|
32
|
+
tools: string;
|
|
33
|
+
};
|
|
39
34
|
connections: ({
|
|
40
35
|
id: string;
|
|
41
36
|
from: string;
|
|
42
37
|
to: string;
|
|
43
38
|
type: string;
|
|
44
|
-
_note: string;
|
|
45
39
|
condition?: undefined;
|
|
46
40
|
} | {
|
|
47
41
|
id: string;
|
|
@@ -49,15 +43,14 @@ export declare function exampleAgentHandler(): Promise<{
|
|
|
49
43
|
to: string;
|
|
50
44
|
type: string;
|
|
51
45
|
condition: string;
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
})[];
|
|
47
|
+
_connections_doc: {
|
|
54
48
|
id: string;
|
|
55
49
|
from: string;
|
|
56
50
|
to: string;
|
|
57
51
|
type: string;
|
|
58
52
|
condition: string;
|
|
59
|
-
|
|
60
|
-
})[];
|
|
53
|
+
};
|
|
61
54
|
channelFlows: {
|
|
62
55
|
phone: {
|
|
63
56
|
connections: ({
|
|
@@ -73,74 +66,131 @@ export declare function exampleAgentHandler(): Promise<{
|
|
|
73
66
|
type: string;
|
|
74
67
|
condition: string;
|
|
75
68
|
})[];
|
|
76
|
-
_note: string;
|
|
77
|
-
};
|
|
78
|
-
whatsapp: {
|
|
79
|
-
connections: ({
|
|
80
|
-
id: string;
|
|
81
|
-
from: string;
|
|
82
|
-
to: string;
|
|
83
|
-
type: string;
|
|
84
|
-
condition?: undefined;
|
|
85
|
-
} | {
|
|
86
|
-
id: string;
|
|
87
|
-
from: string;
|
|
88
|
-
to: string;
|
|
89
|
-
type: string;
|
|
90
|
-
condition: string;
|
|
91
|
-
})[];
|
|
92
|
-
_note: string;
|
|
93
69
|
};
|
|
94
70
|
};
|
|
71
|
+
_channelFlows_doc: string;
|
|
95
72
|
enabledTools: string[];
|
|
96
|
-
|
|
73
|
+
_enabledTools_doc: string;
|
|
97
74
|
channels: string[];
|
|
98
|
-
|
|
75
|
+
_channels_doc: string;
|
|
99
76
|
widgetConfig: {
|
|
77
|
+
welcomeMessage: string;
|
|
78
|
+
placeholder: string;
|
|
79
|
+
position: string;
|
|
80
|
+
headerText: string;
|
|
81
|
+
starterPrompt: string;
|
|
82
|
+
defaultLocale: string;
|
|
83
|
+
avatarScale: number;
|
|
84
|
+
showPromptAvatar: boolean;
|
|
85
|
+
avatar3dUrl: string;
|
|
100
86
|
cssVariables: {
|
|
101
87
|
primary: string;
|
|
102
|
-
|
|
88
|
+
primaryForeground: string;
|
|
103
89
|
background: string;
|
|
104
90
|
foreground: string;
|
|
91
|
+
card: string;
|
|
92
|
+
cardForeground: string;
|
|
105
93
|
muted: string;
|
|
106
|
-
|
|
107
|
-
accent: string;
|
|
108
|
-
'accent-foreground': string;
|
|
94
|
+
mutedForeground: string;
|
|
109
95
|
border: string;
|
|
110
|
-
|
|
111
|
-
'chat-bubble-user': string;
|
|
112
|
-
'chat-bubble-user-foreground': string;
|
|
113
|
-
'chat-bubble-bot': string;
|
|
114
|
-
'chat-bubble-bot-foreground': string;
|
|
96
|
+
destructive: string;
|
|
115
97
|
radius: string;
|
|
116
|
-
|
|
98
|
+
windowBorderRadius: string;
|
|
99
|
+
launcherBorderRadius: string;
|
|
100
|
+
windowHeight: string;
|
|
101
|
+
windowBottom: string;
|
|
102
|
+
spacing1: string;
|
|
103
|
+
spacing2: string;
|
|
104
|
+
spacing3: string;
|
|
105
|
+
spacing4: string;
|
|
106
|
+
spacing5: string;
|
|
107
|
+
spacing6: string;
|
|
108
|
+
spacing7: string;
|
|
109
|
+
spacing8: string;
|
|
110
|
+
};
|
|
111
|
+
darkCssVariables: {
|
|
112
|
+
background: string;
|
|
113
|
+
foreground: string;
|
|
114
|
+
card: string;
|
|
115
|
+
cardForeground: string;
|
|
116
|
+
muted: string;
|
|
117
|
+
mutedForeground: string;
|
|
118
|
+
border: string;
|
|
119
|
+
destructive: string;
|
|
120
|
+
};
|
|
121
|
+
animations: {
|
|
122
|
+
enabled: boolean;
|
|
123
|
+
messageEntry: string;
|
|
124
|
+
typingIndicator: string;
|
|
125
|
+
buttonEffects: boolean;
|
|
126
|
+
smoothScroll: boolean;
|
|
127
|
+
windowTransitions: boolean;
|
|
128
|
+
launcherPulse: boolean;
|
|
129
|
+
speedMultiplier: number;
|
|
130
|
+
staggerDelay: number;
|
|
131
|
+
};
|
|
132
|
+
effects: {
|
|
133
|
+
glassmorphism: boolean;
|
|
134
|
+
gradients: boolean;
|
|
135
|
+
softShadows: boolean;
|
|
136
|
+
glowEffects: boolean;
|
|
137
|
+
shimmerLoading: boolean;
|
|
138
|
+
hoverLift: boolean;
|
|
139
|
+
particles: boolean;
|
|
140
|
+
soundEffects: boolean;
|
|
141
|
+
hapticFeedback: boolean;
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
_widgetConfig_doc: {
|
|
145
|
+
cssVariables: string;
|
|
146
|
+
darkCssVariables: string;
|
|
147
|
+
avatar3dUrl: string;
|
|
148
|
+
avatarScale: string;
|
|
149
|
+
showPromptAvatar: string;
|
|
150
|
+
defaultLocale: string;
|
|
151
|
+
starterPrompt: string;
|
|
152
|
+
animations: {
|
|
153
|
+
enabled: string;
|
|
154
|
+
messageEntry: string;
|
|
155
|
+
typingIndicator: string;
|
|
156
|
+
speedMultiplier: string;
|
|
157
|
+
staggerDelay: string;
|
|
158
|
+
};
|
|
159
|
+
effects: {
|
|
160
|
+
glassmorphism: string;
|
|
161
|
+
gradients: string;
|
|
162
|
+
particles: string;
|
|
163
|
+
soundEffects: string;
|
|
164
|
+
hapticFeedback: string;
|
|
117
165
|
};
|
|
118
|
-
welcomeMessage: string;
|
|
119
|
-
placeholder: string;
|
|
120
|
-
position: string;
|
|
121
166
|
};
|
|
122
167
|
voice: {
|
|
123
168
|
profile: string;
|
|
124
169
|
widgetCallEnabled: boolean;
|
|
125
|
-
|
|
170
|
+
};
|
|
171
|
+
_voice_doc: {
|
|
172
|
+
profile: string;
|
|
173
|
+
widgetCallEnabled: string;
|
|
174
|
+
_adminOnly: string;
|
|
175
|
+
_availableProfiles: {
|
|
176
|
+
displayName: string;
|
|
177
|
+
id: string;
|
|
178
|
+
gender: string;
|
|
179
|
+
tone: string;
|
|
180
|
+
description: string;
|
|
181
|
+
}[];
|
|
182
|
+
_importNote: string;
|
|
126
183
|
};
|
|
127
184
|
channelPrompts: {
|
|
128
185
|
whatsapp: string;
|
|
129
186
|
phone: string;
|
|
130
|
-
_note: string;
|
|
131
187
|
};
|
|
188
|
+
_channelPrompts_doc: string;
|
|
132
189
|
knowledgeDocumentIds: string[];
|
|
133
|
-
|
|
190
|
+
_knowledgeDocumentIds_doc: string;
|
|
134
191
|
_readOnlyFields: {
|
|
135
192
|
apiKey: string;
|
|
136
|
-
|
|
137
|
-
};
|
|
138
|
-
_adminOnlyFields: {
|
|
139
|
-
model: string;
|
|
140
|
-
temperature: number;
|
|
141
|
-
summaryThreshold: number;
|
|
142
|
-
'voice.liveModel': string;
|
|
143
|
-
_note: string;
|
|
193
|
+
_doc: string;
|
|
144
194
|
};
|
|
145
195
|
};
|
|
146
196
|
message: string;
|
|
@@ -3,12 +3,13 @@ export const EXAMPLE_AGENT_TOOL = {
|
|
|
3
3
|
description: `Returns a complete, documented example of an agent configuration JSON with ALL possible fields explained.
|
|
4
4
|
|
|
5
5
|
Use this as a reference when creating or editing agents. Every field includes a description of what it does,
|
|
6
|
-
its type,
|
|
6
|
+
its type, valid values, and conditions. This is a read-only reference tool — it doesn't create or modify anything.
|
|
7
7
|
|
|
8
8
|
Useful for:
|
|
9
9
|
- New users learning the agent config structure
|
|
10
10
|
- Checking available fields before using import_agent_json
|
|
11
|
-
- Understanding how stages, connections, channelFlows, and tools work together
|
|
11
|
+
- Understanding how stages, connections, channelFlows, and tools work together
|
|
12
|
+
- Learning the widget theming system (cssVariables, darkCssVariables, animations, effects)`,
|
|
12
13
|
inputSchema: {
|
|
13
14
|
type: 'object',
|
|
14
15
|
properties: {},
|
|
@@ -16,95 +17,92 @@ Useful for:
|
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
export async function exampleAgentHandler() {
|
|
19
|
-
const
|
|
20
|
-
|
|
20
|
+
const reference = {
|
|
21
|
+
// ═══════════════════════════════════════════════════════════════════
|
|
22
|
+
// AGENT CONFIGURATION REFERENCE
|
|
23
|
+
// All fields documented with types, valid values, and conditions.
|
|
24
|
+
// Use export_agent_json → edit → import_agent_json workflow.
|
|
25
|
+
// ═══════════════════════════════════════════════════════════════════
|
|
26
|
+
// ─── CORE IDENTITY ─────────────────────────────────────────────
|
|
21
27
|
name: 'Mi Agente de Ejemplo',
|
|
28
|
+
_name_doc: 'Required. String. Display name shown in widget header and admin panel.',
|
|
22
29
|
identity: {
|
|
23
30
|
tone: 'Amigable, profesional y empático. Usá un tono cercano pero respetuoso.',
|
|
24
31
|
language: 'es-AR',
|
|
25
32
|
objective: 'Asistir a los usuarios con consultas sobre productos, reservas y soporte general.',
|
|
26
33
|
customInstructions: 'Instrucciones adicionales libres. Pueden incluir reglas de negocio, restricciones, o comportamiento especial.'
|
|
27
34
|
},
|
|
35
|
+
_identity_doc: {
|
|
36
|
+
tone: 'Optional. String. Personality/voice of the agent. Included in every system prompt.',
|
|
37
|
+
language: 'Required. String. BCP-47 locale (es-AR, en-US, pt-BR, etc.). Controls response language.',
|
|
38
|
+
objective: 'Optional. String. High-level goal. Helps the LLM stay on-topic.',
|
|
39
|
+
customInstructions: 'Optional. String. Free-form rules injected into system prompt. Can include markdown, lists, etc.'
|
|
40
|
+
},
|
|
41
|
+
// ─── CONVERSATIONAL FLOW (STAGES + CONNECTIONS) ────────────────
|
|
28
42
|
stages: [
|
|
29
43
|
{
|
|
30
44
|
id: 'greeting',
|
|
31
45
|
name: 'Saludo Inicial',
|
|
32
46
|
type: 'start',
|
|
33
|
-
instruction: 'Saludá al usuario de forma cálida y preguntale en qué lo podés ayudar.
|
|
34
|
-
tools: []
|
|
35
|
-
_types: 'type can be: start, action, router, end. Only 1 start allowed.'
|
|
47
|
+
instruction: 'Saludá al usuario de forma cálida y preguntale en qué lo podés ayudar.',
|
|
48
|
+
tools: []
|
|
36
49
|
},
|
|
37
50
|
{
|
|
38
51
|
id: 'guest_discovery',
|
|
39
52
|
name: 'Descubrimiento',
|
|
40
53
|
type: 'action',
|
|
41
|
-
instruction: 'Hacé preguntas para entender las necesidades del usuario
|
|
42
|
-
tools: ['search_accommodations', 'search_knowledge_base']
|
|
43
|
-
_note: 'tools[] lists tool IDs available in THIS stage. They must also be in enabledTools[].'
|
|
54
|
+
instruction: 'Hacé preguntas para entender las necesidades del usuario.',
|
|
55
|
+
tools: ['search_accommodations', 'search_knowledge_base']
|
|
44
56
|
},
|
|
45
57
|
{
|
|
46
58
|
id: 'guest_booking',
|
|
47
59
|
name: 'Reserva',
|
|
48
60
|
type: 'action',
|
|
49
|
-
instruction: 'Guiá al usuario por el proceso de reserva.
|
|
61
|
+
instruction: 'Guiá al usuario por el proceso de reserva.',
|
|
50
62
|
tools: ['create_pre_reservation', 'get_accommodation_details']
|
|
51
63
|
},
|
|
52
64
|
{
|
|
53
65
|
id: 'farewell',
|
|
54
66
|
name: 'Despedida',
|
|
55
67
|
type: 'end',
|
|
56
|
-
instruction: 'Despedite amablemente.
|
|
68
|
+
instruction: 'Despedite amablemente.',
|
|
57
69
|
tools: []
|
|
58
70
|
}
|
|
59
71
|
],
|
|
72
|
+
_stages_doc: {
|
|
73
|
+
id: 'Required. Unique string identifier. Referenced by connections.',
|
|
74
|
+
name: 'Optional. Human-readable label for admin UI.',
|
|
75
|
+
type: 'Required. One of: "start" (exactly 1), "action" (unlimited), "router" (decision point), "end" (at least 1).',
|
|
76
|
+
instruction: 'Required. System prompt for this stage. The LLM follows this when the stage is active.',
|
|
77
|
+
tools: 'Optional. Array of tool IDs available in THIS stage. Must be a subset of enabledTools[].'
|
|
78
|
+
},
|
|
60
79
|
connections: [
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
type: 'default',
|
|
66
|
-
_note: 'Default connections always transition. No condition needed.'
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
id: 'c2',
|
|
70
|
-
from: 'guest_discovery',
|
|
71
|
-
to: 'guest_booking',
|
|
72
|
-
type: 'conditional',
|
|
73
|
-
condition: 'El usuario expresó interés en reservar una opción específica',
|
|
74
|
-
_note: 'Conditional connections: the LLM evaluates the condition to decide if to transition.'
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
id: 'c3',
|
|
78
|
-
from: 'guest_booking',
|
|
79
|
-
to: 'farewell',
|
|
80
|
-
type: 'conditional',
|
|
81
|
-
condition: 'La reserva fue completada exitosamente o el usuario quiere terminar'
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
id: 'c_disc_farewell',
|
|
85
|
-
from: 'guest_discovery',
|
|
86
|
-
to: 'farewell',
|
|
87
|
-
type: 'conditional',
|
|
88
|
-
condition: 'El usuario quiere despedirse sin reservar'
|
|
89
|
-
}
|
|
80
|
+
{ id: 'c1', from: 'greeting', to: 'guest_discovery', type: 'default' },
|
|
81
|
+
{ id: 'c2', from: 'guest_discovery', to: 'guest_booking', type: 'conditional', condition: 'El usuario quiere reservar' },
|
|
82
|
+
{ id: 'c3', from: 'guest_booking', to: 'farewell', type: 'conditional', condition: 'Reserva completada' },
|
|
83
|
+
{ id: 'c4', from: 'guest_discovery', to: 'farewell', type: 'conditional', condition: 'El usuario quiere despedirse' }
|
|
90
84
|
],
|
|
85
|
+
_connections_doc: {
|
|
86
|
+
id: 'Required. Unique string identifier.',
|
|
87
|
+
from: 'Required. Stage ID where the edge originates.',
|
|
88
|
+
to: 'Required. Stage ID where the edge points.',
|
|
89
|
+
type: '"default" = always transitions (no AI evaluation). "conditional" = LLM evaluates the condition string.',
|
|
90
|
+
condition: 'Required for "conditional" type. Natural language evaluated by the LLM to decide if to transition.'
|
|
91
|
+
},
|
|
92
|
+
// ─── CHANNEL FLOWS (Per-Channel Overrides) ─────────────────────
|
|
91
93
|
channelFlows: {
|
|
92
94
|
phone: {
|
|
93
95
|
connections: [
|
|
94
96
|
{ id: 'phone_c1', from: 'greeting', to: 'guest_discovery', type: 'default' },
|
|
95
97
|
{ id: 'phone_c2', from: 'guest_discovery', to: 'farewell', type: 'conditional', condition: 'El usuario quiere terminar' }
|
|
96
|
-
]
|
|
97
|
-
_note: 'ChannelFlows override the default connections for a specific channel. Here, phone skips booking (tools not phone-compatible).'
|
|
98
|
-
},
|
|
99
|
-
whatsapp: {
|
|
100
|
-
connections: [
|
|
101
|
-
{ id: 'wa_c1', from: 'greeting', to: 'guest_discovery', type: 'default' },
|
|
102
|
-
{ id: 'wa_c2', from: 'guest_discovery', to: 'guest_booking', type: 'conditional', condition: 'Quiere reservar' },
|
|
103
|
-
{ id: 'wa_c3', from: 'guest_booking', to: 'farewell', type: 'conditional', condition: 'Reserva completada' }
|
|
104
|
-
],
|
|
105
|
-
_note: 'If a channel is NOT in channelFlows, it uses the default connections array.'
|
|
98
|
+
]
|
|
106
99
|
}
|
|
107
100
|
},
|
|
101
|
+
_channelFlows_doc: 'Optional. Object keyed by channel name. Each overrides the default connections[] for that channel. ' +
|
|
102
|
+
'Use this when a channel has different flow paths (e.g. phone skips booking because tools like create_pre_reservation are text-only). ' +
|
|
103
|
+
'If a channel is NOT listed here, it uses the default connections array. ' +
|
|
104
|
+
'Runtime filters tools per-channel automatically, so text-only tools simply won\'t load on phone.',
|
|
105
|
+
// ─── TOOLS & CHANNELS ──────────────────────────────────────────
|
|
108
106
|
enabledTools: [
|
|
109
107
|
'search_accommodations',
|
|
110
108
|
'get_accommodation_details',
|
|
@@ -113,60 +111,159 @@ export async function exampleAgentHandler() {
|
|
|
113
111
|
'identify_user_context',
|
|
114
112
|
'update_user_profile'
|
|
115
113
|
],
|
|
116
|
-
|
|
114
|
+
_enabledTools_doc: 'Array of tool IDs the agent can use. Per-stage tools[] must be a subset. ' +
|
|
115
|
+
'Use list_available_tools to see all options with descriptions. ' +
|
|
116
|
+
'Tools auto-sync: any tool referenced in a stage.tools[] is automatically added to enabledTools on save.',
|
|
117
117
|
channels: ['web', 'whatsapp', 'phone'],
|
|
118
|
-
|
|
118
|
+
_channels_doc: 'Array of channels the agent is published on. Valid: "web", "whatsapp", "telegram", "discord", "instagram", "phone". ' +
|
|
119
|
+
'Runtime filters tools by channel compatibility — text-only tools (e.g. create_pre_reservation) won\'t load on phone. ' +
|
|
120
|
+
'You can have phone + text-only tools as long as your channelFlows.phone never reaches stages with those tools.',
|
|
121
|
+
// ─── WIDGET CONFIGURATION ──────────────────────────────────────
|
|
119
122
|
widgetConfig: {
|
|
123
|
+
// -- Appearance --
|
|
124
|
+
welcomeMessage: '¡Hola! 👋 Soy tu asistente virtual. ¿En qué puedo ayudarte?',
|
|
125
|
+
placeholder: 'Escribí tu mensaje...',
|
|
126
|
+
position: 'bottom-right',
|
|
127
|
+
headerText: 'MI AGENTE 🤖',
|
|
128
|
+
starterPrompt: '¿Necesitas ayuda?',
|
|
129
|
+
defaultLocale: 'es',
|
|
130
|
+
avatarScale: 1.2,
|
|
131
|
+
showPromptAvatar: true,
|
|
132
|
+
// -- 3D Avatar for Voice Calls --
|
|
133
|
+
avatar3dUrl: 'https://example.com/model.glb',
|
|
134
|
+
// -- Light Mode CSS Variables --
|
|
120
135
|
cssVariables: {
|
|
136
|
+
// Brand colors (preserved in both light AND dark mode)
|
|
121
137
|
primary: '210 100% 50%',
|
|
122
|
-
|
|
138
|
+
primaryForeground: '0 0% 100%',
|
|
139
|
+
// Light mode surfaces
|
|
140
|
+
background: '0 0% 100%',
|
|
141
|
+
foreground: '210 20% 12%',
|
|
142
|
+
card: '0 0% 100%',
|
|
143
|
+
cardForeground: '210 20% 12%',
|
|
144
|
+
muted: '210 20% 96%',
|
|
145
|
+
mutedForeground: '210 10% 45%',
|
|
146
|
+
border: '210 20% 90%',
|
|
147
|
+
destructive: '0 84% 60%',
|
|
148
|
+
// Sizing
|
|
149
|
+
radius: '0.75rem',
|
|
150
|
+
windowBorderRadius: '24px',
|
|
151
|
+
launcherBorderRadius: '50%',
|
|
152
|
+
windowHeight: '700px',
|
|
153
|
+
windowBottom: '24px',
|
|
154
|
+
// Spacing (design system)
|
|
155
|
+
spacing1: '0.25rem',
|
|
156
|
+
spacing2: '0.5rem',
|
|
157
|
+
spacing3: '0.75rem',
|
|
158
|
+
spacing4: '1rem',
|
|
159
|
+
spacing5: '1.25rem',
|
|
160
|
+
spacing6: '1.5rem',
|
|
161
|
+
spacing7: '1.75rem',
|
|
162
|
+
spacing8: '2rem'
|
|
163
|
+
},
|
|
164
|
+
// -- Dark Mode CSS Variables (override surfaces, brand stays) --
|
|
165
|
+
darkCssVariables: {
|
|
123
166
|
background: '222 47% 6%',
|
|
124
167
|
foreground: '210 40% 98%',
|
|
168
|
+
card: '217 33% 12%',
|
|
169
|
+
cardForeground: '210 40% 98%',
|
|
125
170
|
muted: '217 33% 17%',
|
|
126
|
-
|
|
127
|
-
accent: '210 100% 50%',
|
|
128
|
-
'accent-foreground': '0 0% 100%',
|
|
171
|
+
mutedForeground: '215 20% 65%',
|
|
129
172
|
border: '217 33% 17%',
|
|
130
|
-
|
|
131
|
-
'chat-bubble-user': '210 100% 50%',
|
|
132
|
-
'chat-bubble-user-foreground': '0 0% 100%',
|
|
133
|
-
'chat-bubble-bot': '217 33% 17%',
|
|
134
|
-
'chat-bubble-bot-foreground': '210 40% 98%',
|
|
135
|
-
radius: '0.75rem',
|
|
136
|
-
_note: 'HSL values WITHOUT the hsl() wrapper. Widget uses these as CSS custom properties.'
|
|
173
|
+
destructive: '0 63% 31%'
|
|
137
174
|
},
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
175
|
+
// -- Animations --
|
|
176
|
+
animations: {
|
|
177
|
+
enabled: true,
|
|
178
|
+
messageEntry: 'spring',
|
|
179
|
+
typingIndicator: 'dots',
|
|
180
|
+
buttonEffects: true,
|
|
181
|
+
smoothScroll: true,
|
|
182
|
+
windowTransitions: true,
|
|
183
|
+
launcherPulse: true,
|
|
184
|
+
speedMultiplier: 1.0,
|
|
185
|
+
staggerDelay: 50
|
|
186
|
+
},
|
|
187
|
+
// -- Visual Effects --
|
|
188
|
+
effects: {
|
|
189
|
+
glassmorphism: true,
|
|
190
|
+
gradients: true,
|
|
191
|
+
softShadows: true,
|
|
192
|
+
glowEffects: true,
|
|
193
|
+
shimmerLoading: true,
|
|
194
|
+
hoverLift: true,
|
|
195
|
+
particles: false,
|
|
196
|
+
soundEffects: false,
|
|
197
|
+
hapticFeedback: true
|
|
198
|
+
}
|
|
141
199
|
},
|
|
200
|
+
_widgetConfig_doc: {
|
|
201
|
+
cssVariables: 'HSL values WITHOUT the hsl() wrapper. "primary" and "primaryForeground" are your brand colors — they are preserved in both light and dark mode.',
|
|
202
|
+
darkCssVariables: 'Optional. Overrides ONLY the surface colors (background, card, muted, border, etc.) for dark mode. ' +
|
|
203
|
+
'primary/primaryForeground from cssVariables are ALWAYS preserved. Dark mode activates automatically when the host page uses prefers-color-scheme: dark.',
|
|
204
|
+
avatar3dUrl: 'Optional. URL to a .glb/.vrm 3D model. Displayed as the voice call avatar orb instead of the 2D image.',
|
|
205
|
+
avatarScale: 'Optional. Number (default 1). Controls avatar zoom. 1.2 = 20% larger.',
|
|
206
|
+
showPromptAvatar: 'Optional. Boolean. Shows a mini avatar next to the starter prompt bubble.',
|
|
207
|
+
defaultLocale: 'Optional. "es" | "en" | "pt" | "fr". Sets the widget UI language.',
|
|
208
|
+
starterPrompt: 'Optional. String. Small bubble shown when the widget is closed to invite interaction.',
|
|
209
|
+
animations: {
|
|
210
|
+
enabled: 'Master toggle. false disables ALL animations.',
|
|
211
|
+
messageEntry: '"slide" | "fade" | "scale" | "spring" | "none". How new messages appear.',
|
|
212
|
+
typingIndicator: '"dots" | "wave" | "pulse" | "none". Style of the "agent is typing" indicator.',
|
|
213
|
+
speedMultiplier: 'Number. 0.5 = 2x faster, 2 = 2x slower. Default: 1.',
|
|
214
|
+
staggerDelay: 'Number (ms). Delay between sequential message animations. Default: 50.'
|
|
215
|
+
},
|
|
216
|
+
effects: {
|
|
217
|
+
glassmorphism: 'Frosted glass blur on header and overlays.',
|
|
218
|
+
gradients: 'Gradient backgrounds on cards and surfaces.',
|
|
219
|
+
particles: 'Confetti/particles on certain actions (e.g. booking confirmed). Off by default.',
|
|
220
|
+
soundEffects: 'UI sounds on send/receive. Off by default.',
|
|
221
|
+
hapticFeedback: 'Vibration on mobile when interacting. On by default.'
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
// ─── VOICE CONFIGURATION ───────────────────────────────────────
|
|
142
225
|
voice: {
|
|
143
|
-
profile: '
|
|
144
|
-
widgetCallEnabled: true
|
|
145
|
-
|
|
226
|
+
profile: 'Profesional Femenina',
|
|
227
|
+
widgetCallEnabled: true
|
|
228
|
+
},
|
|
229
|
+
_voice_doc: {
|
|
230
|
+
profile: 'Display name of a voice profile. Resolved to internal ID on save. Use one from the catalog below.',
|
|
231
|
+
widgetCallEnabled: 'Boolean. Enables the phone icon in the widget for browser-based voice calls.',
|
|
232
|
+
_adminOnly: 'liveModel (e.g. "gemini-2.0-flash-live-001") is admin-only and auto-preserved on import.',
|
|
233
|
+
_availableProfiles: [
|
|
234
|
+
{ displayName: 'Profesional Femenina', id: 'kore', gender: 'F', tone: 'Cálida', description: 'Voz femenina cálida y profesional' },
|
|
235
|
+
{ displayName: 'Amigable Femenina', id: 'aoede', gender: 'F', tone: 'Amigable', description: 'Voz femenina joven y amigable' },
|
|
236
|
+
{ displayName: 'Serena Femenina', id: 'leda', gender: 'F', tone: 'Serena', description: 'Voz femenina suave y tranquilizadora' },
|
|
237
|
+
{ displayName: 'Energético Masculino', id: 'puck', gender: 'M', tone: 'Energético', description: 'Voz masculina joven y dinámica' },
|
|
238
|
+
{ displayName: 'Formal Masculino', id: 'charon', gender: 'M', tone: 'Formal', description: 'Voz masculina grave y profesional' },
|
|
239
|
+
{ displayName: 'Cálido Masculino', id: 'fenrir', gender: 'M', tone: 'Cálido', description: 'Voz masculina amigable y cercana' },
|
|
240
|
+
{ displayName: 'Neutro Profesional', id: 'orus', gender: 'NB', tone: 'Profesional', description: 'Voz neutral y profesional' },
|
|
241
|
+
{ displayName: 'Suave Neutral', id: 'zephyr', gender: 'NB', tone: 'Suave', description: 'Voz suave y relajante' }
|
|
242
|
+
],
|
|
243
|
+
_importNote: 'Podés pasar el displayName (ej: "Profesional Femenina"), el ID interno (ej: "kore"), o el nombre legacy Gemini (ej: "Kore"). Todos se resuelven al mismo perfil.'
|
|
146
244
|
},
|
|
245
|
+
// ─── PER-CHANNEL PROMPTS ───────────────────────────────────────
|
|
147
246
|
channelPrompts: {
|
|
148
247
|
whatsapp: 'Recordá que estás hablando por WhatsApp. Usá mensajes cortos y directos. Evitá markdown complejo.',
|
|
149
|
-
phone: 'Estás en una llamada telefónica. Hablá de forma natural, sin usar formato visual. Sé conciso.'
|
|
150
|
-
_note: 'Per-channel system prompt overrides. Merged into the base prompt when that channel is active.'
|
|
248
|
+
phone: 'Estás en una llamada telefónica. Hablá de forma natural, sin usar formato visual. Sé conciso.'
|
|
151
249
|
},
|
|
250
|
+
_channelPrompts_doc: 'Optional. Object keyed by channel name. These prompts are MERGED into the base system prompt when that channel is active. ' +
|
|
251
|
+
'Use this to adapt the agent\'s behavior per channel (e.g. shorter messages on WhatsApp, no markdown on phone).',
|
|
252
|
+
// ─── KNOWLEDGE BASE ────────────────────────────────────────────
|
|
152
253
|
knowledgeDocumentIds: ['doc_abc123', 'doc_def456'],
|
|
153
|
-
|
|
254
|
+
_knowledgeDocumentIds_doc: 'Optional. Array of MongoDB IDs of knowledge base documents for RAG. ' +
|
|
255
|
+
'The agent will search these documents for context when the search_knowledge_base tool is invoked.',
|
|
256
|
+
// ─── READ-ONLY FIELDS (visible in export, ignored on import) ──
|
|
154
257
|
_readOnlyFields: {
|
|
155
|
-
apiKey: '
|
|
156
|
-
|
|
157
|
-
},
|
|
158
|
-
_adminOnlyFields: {
|
|
159
|
-
model: 'gemini-2.0-flash',
|
|
160
|
-
temperature: 0.7,
|
|
161
|
-
summaryThreshold: 15,
|
|
162
|
-
'voice.liveModel': 'gemini-2.0-flash-live-001',
|
|
163
|
-
_note: 'These fields are only editable via the admin panel, never via MCP import.'
|
|
258
|
+
apiKey: 'agent_xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
|
|
259
|
+
_doc: 'The agent API key is auto-generated and shown in export. Use it for external integrations (widget embed, API calls). Cannot be modified via import.'
|
|
164
260
|
}
|
|
165
261
|
};
|
|
166
262
|
return {
|
|
167
263
|
success: true,
|
|
168
|
-
data:
|
|
169
|
-
message: '
|
|
264
|
+
data: reference,
|
|
265
|
+
message: 'Complete agent configuration reference. Fields prefixed with _ are documentation-only and should be removed when using import_agent_json. ' +
|
|
266
|
+
'Workflow: export_agent_json → edit local file → import_agent_json(filePath: "./agents/my-agent.json")'
|
|
170
267
|
};
|
|
171
268
|
}
|
|
172
269
|
//# sourceMappingURL=example_agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example_agent.js","sourceRoot":"","sources":["../../src/tools/example_agent.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAS;IACtC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"example_agent.js","sourceRoot":"","sources":["../../src/tools/example_agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,22 +47,62 @@ Requires role: owner, admin, or developer.`,
|
|
|
47
47
|
channels: { type: 'array', items: { type: 'string' }, description: 'Channels: web, whatsapp, phone, etc.' },
|
|
48
48
|
widgetConfig: {
|
|
49
49
|
type: 'object',
|
|
50
|
-
description: 'Widget appearance and behavior config',
|
|
50
|
+
description: 'Widget appearance, theming, animations, and behavior config',
|
|
51
51
|
properties: {
|
|
52
52
|
cssVariables: {
|
|
53
53
|
type: 'object',
|
|
54
|
-
description: 'CSS custom properties
|
|
54
|
+
description: 'Light mode CSS custom properties. Keys: primary, primaryForeground, background, foreground, card, cardForeground, muted, mutedForeground, border, destructive, radius, windowBorderRadius, launcherBorderRadius, windowHeight, windowBottom, spacing1-8. Values: HSL WITHOUT hsl() wrapper (e.g. "210 100% 50%").'
|
|
55
|
+
},
|
|
56
|
+
darkCssVariables: {
|
|
57
|
+
type: 'object',
|
|
58
|
+
description: 'Dark mode overrides. Same keys as cssVariables. primary/primaryForeground are preserved from light mode — only override surface colors (background, card, muted, border, etc.).'
|
|
55
59
|
},
|
|
56
60
|
welcomeMessage: { type: 'string', description: 'Initial greeting shown when widget opens' },
|
|
57
61
|
placeholder: { type: 'string', description: 'Placeholder text in chat input' },
|
|
58
|
-
position: { type: 'string',
|
|
62
|
+
position: { type: 'string', enum: ['bottom-right', 'bottom-left'], description: 'Widget position' },
|
|
63
|
+
headerText: { type: 'string', description: 'Text shown in the widget header bar' },
|
|
64
|
+
starterPrompt: { type: 'string', description: 'Bubble text shown when widget is closed to invite interaction' },
|
|
65
|
+
defaultLocale: { type: 'string', enum: ['es', 'en', 'pt', 'fr'], description: 'Widget UI language' },
|
|
66
|
+
avatarScale: { type: 'number', description: 'Avatar zoom factor (default 1, e.g. 1.2 = 20% larger)' },
|
|
67
|
+
showPromptAvatar: { type: 'boolean', description: 'Show mini avatar next to starter prompt bubble' },
|
|
68
|
+
avatar3dUrl: { type: 'string', description: 'URL to .glb/.vrm 3D model for voice call avatar' },
|
|
69
|
+
animations: {
|
|
70
|
+
type: 'object',
|
|
71
|
+
description: 'Animation config',
|
|
72
|
+
properties: {
|
|
73
|
+
enabled: { type: 'boolean', description: 'Master toggle for all animations' },
|
|
74
|
+
messageEntry: { type: 'string', enum: ['slide', 'fade', 'scale', 'spring', 'none'] },
|
|
75
|
+
typingIndicator: { type: 'string', enum: ['dots', 'wave', 'pulse', 'none'] },
|
|
76
|
+
buttonEffects: { type: 'boolean' },
|
|
77
|
+
smoothScroll: { type: 'boolean' },
|
|
78
|
+
windowTransitions: { type: 'boolean' },
|
|
79
|
+
launcherPulse: { type: 'boolean' },
|
|
80
|
+
speedMultiplier: { type: 'number', description: '0.5 = faster, 2 = slower, default 1' },
|
|
81
|
+
staggerDelay: { type: 'number', description: 'ms between sequential message animations, default 50' }
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
effects: {
|
|
85
|
+
type: 'object',
|
|
86
|
+
description: 'Visual effects config',
|
|
87
|
+
properties: {
|
|
88
|
+
glassmorphism: { type: 'boolean', description: 'Frosted glass blur on headers' },
|
|
89
|
+
gradients: { type: 'boolean', description: 'Gradient backgrounds on surfaces' },
|
|
90
|
+
softShadows: { type: 'boolean' },
|
|
91
|
+
glowEffects: { type: 'boolean', description: 'Glow effects on hover/focus' },
|
|
92
|
+
shimmerLoading: { type: 'boolean' },
|
|
93
|
+
hoverLift: { type: 'boolean', description: 'Lift effect on card hover' },
|
|
94
|
+
particles: { type: 'boolean', description: 'Confetti on actions (default false)' },
|
|
95
|
+
soundEffects: { type: 'boolean', description: 'UI sounds (default false)' },
|
|
96
|
+
hapticFeedback: { type: 'boolean', description: 'Mobile vibration (default true)' }
|
|
97
|
+
}
|
|
98
|
+
}
|
|
59
99
|
}
|
|
60
100
|
},
|
|
61
101
|
voice: {
|
|
62
102
|
type: 'object',
|
|
63
|
-
description: 'Voice config
|
|
103
|
+
description: 'Voice config. liveModel is admin-only and preserved.',
|
|
64
104
|
properties: {
|
|
65
|
-
profile: { type: 'string', description: 'Voice profile display name
|
|
105
|
+
profile: { type: 'string', description: 'Voice profile. Accepts display name, ID, or legacy Gemini name. Valid: "Profesional Femenina" (kore), "Amigable Femenina" (aoede), "Serena Femenina" (leda), "Energético Masculino" (puck), "Formal Masculino" (charon), "Cálido Masculino" (fenrir), "Neutro Profesional" (orus), "Suave Neutral" (zephyr).' },
|
|
66
106
|
widgetCallEnabled: { type: 'boolean', description: 'Whether voice calls are enabled in the widget' }
|
|
67
107
|
}
|
|
68
108
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import_agent_json.js","sourceRoot":"","sources":["../../src/tools/import_agent_json.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,MAAM,CAAC,MAAM,sBAAsB,GAAS;IAC1C,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE;;;;;;;;;;;;;;;;;2CAiB4B;IACzC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2GAA2G,EAAE;YACrJ,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8GAA8G,EAAE;YACzJ,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qGAAqG;gBAClH,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;oBAC3D,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,gEAAgE;wBAC7E,UAAU,EAAE;4BACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC5B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BAC7B,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBACvC;qBACF;oBACD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yDAAyD,EAAE;oBACjG,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,+DAA+D,EAAE;oBAC5G,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qEAAqE,EAAE;oBACpH,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE;oBAC7F,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE;oBAC3G,YAAY,EAAE;wBACZ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"import_agent_json.js","sourceRoot":"","sources":["../../src/tools/import_agent_json.ts"],"names":[],"mappings":"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"}
|