@hemia-ai/automation-agents 0.0.1

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/README.md ADDED
@@ -0,0 +1,159 @@
1
+ # @hemia-ai/automation-agents
2
+
3
+ Pack reutilizable de Hemia para tareas automáticas, recordatorios, notificaciones, workflows, asignación de tareas, seguimientos y agenda.
4
+
5
+ Este paquete provee definiciones de agentes, definiciones de tools, contratos TypeScript y JSON Schemas para automatización operativa entre productos.
6
+
7
+ No incluye un runtime independiente. Se acopla a los paquetes base de Hemia:
8
+
9
+ - `@hemia-ai/agents-core` para contratos de agentes y tools.
10
+ - `@hemia-ai/agents-runtime` para registro y ejecución.
11
+ - `@hemia-ai/agents-tools` para registro y handlers de tools.
12
+
13
+ ## Instalación
14
+
15
+ ```sh
16
+ pnpm add @hemia-ai/automation-agents
17
+ ```
18
+
19
+ Uso dentro del workspace:
20
+
21
+ ```sh
22
+ pnpm add @hemia-ai/automation-agents --workspace
23
+ ```
24
+
25
+ ## Inicio Rápido
26
+
27
+ ```ts
28
+ import { HemiaAgentRuntime } from '@hemia-ai/agents-runtime';
29
+ import { InMemoryToolRegistry } from '@hemia-ai/agents-tools';
30
+ import {
31
+ AUTOMATION_AGENT_KEYS,
32
+ registerAutomationAgents,
33
+ registerAutomationTools,
34
+ } from '@hemia-ai/automation-agents';
35
+
36
+ const runtime = new HemiaAgentRuntime({ services });
37
+ const toolRegistry = new InMemoryToolRegistry();
38
+
39
+ registerAutomationAgents(runtime);
40
+ registerAutomationTools(toolRegistry);
41
+
42
+ const result = await runtime.runAgent({
43
+ agentKey: AUTOMATION_AGENT_KEYS.followUpScheduler,
44
+ payload: {
45
+ conversationId: 'conv_456',
46
+ message: 'Dar seguimiento si el usuario no responde.',
47
+ timezone: 'America/Mexico_City',
48
+ },
49
+ context: {
50
+ tenantId: 'tenant_123',
51
+ conversationId: 'conv_456',
52
+ locale: 'es-MX',
53
+ timezone: 'America/Mexico_City',
54
+ },
55
+ });
56
+ ```
57
+
58
+ ## Agentes
59
+
60
+ | Agent key | Export | Propósito |
61
+ |---|---|---|
62
+ | `automation.reminder` | `ReminderAgent` | Crear recordatorios para citas, demos, seguimientos o tareas. |
63
+ | `automation.notification` | `NotificationAgent` | Enviar notificaciones por email, WhatsApp, Slack, app o webhook. |
64
+ | `automation.workflow_trigger` | `WorkflowTriggerAgent` | Disparar workflows según intención, estado o evento. |
65
+ | `automation.task_assignment` | `TaskAssignmentAgent` | Asignar tareas a humanos, equipos, prioridades, SLAs o colas. |
66
+ | `automation.follow_up_scheduler` | `FollowUpSchedulerAgent` | Programar seguimientos automáticos con tiempos, reintentos y mensajes. |
67
+ | `automation.agenda` | `AgendaAgent` | Consultar disponibilidad, proponer horarios, agendar, reagendar o cancelar. |
68
+
69
+ Las keys `automation.*` son contratos estables para registro en runtime, policies, tracing y composición con productos.
70
+
71
+ ## Tools
72
+
73
+ | Tool name | Alias | Propósito |
74
+ |---|---|---|
75
+ | `automation.schedule_follow_up` | `scheduleFollowUpTool` | Programar seguimiento automático. |
76
+ | `automation.create_reminder` | `createReminderTool` | Crear recordatorio. |
77
+ | `automation.send_notification` | `sendNotificationTool` | Enviar notificación. |
78
+ | `automation.trigger_workflow` | `triggerWorkflowTool` | Disparar workflow. |
79
+ | `automation.assign_task` | `assignTaskTool` | Asignar tarea a humano, equipo o cola. |
80
+ | `automation.create_calendar_event` | `createCalendarEventTool` | Crear, reagendar o cancelar evento de calendario. |
81
+
82
+ Los handlers de tools son específicos de cada producto. Loop, Directory, soporte interno o integraciones externas deben conectar estos contratos a su scheduler, notification service, workflow engine, task manager o calendario.
83
+
84
+ ## API
85
+
86
+ Exports principales:
87
+
88
+ ```ts
89
+ import {
90
+ AUTOMATION_AGENT_KEYS,
91
+ AUTOMATION_TOOL_NAMES,
92
+ automationAgentDefinitions,
93
+ automationToolDefinitions,
94
+ registerAutomationAgents,
95
+ registerAutomationTools,
96
+ ReminderAgent,
97
+ NotificationAgent,
98
+ WorkflowTriggerAgent,
99
+ TaskAssignmentAgent,
100
+ FollowUpSchedulerAgent,
101
+ AgendaAgent,
102
+ } from '@hemia-ai/automation-agents';
103
+ ```
104
+
105
+ Schemas de salida estructurada:
106
+
107
+ ```ts
108
+ import {
109
+ reminderOutputSchema,
110
+ notificationOutputSchema,
111
+ workflowTriggerOutputSchema,
112
+ taskAssignmentOutputSchema,
113
+ followUpSchedulerOutputSchema,
114
+ agendaOutputSchema,
115
+ } from '@hemia-ai/automation-agents';
116
+ ```
117
+
118
+ ## Registrar Handlers de Tools
119
+
120
+ ```ts
121
+ import { InMemoryToolHandlerRegistry } from '@hemia-ai/agents-tools';
122
+ import { AUTOMATION_TOOL_NAMES } from '@hemia-ai/automation-agents';
123
+
124
+ const toolHandlers = new InMemoryToolHandlerRegistry();
125
+
126
+ toolHandlers.register({
127
+ name: AUTOMATION_TOOL_NAMES.createReminder,
128
+ async execute(input, context) {
129
+ return automationService.createReminder({
130
+ tenantId: context.tenantId,
131
+ title: input.title,
132
+ remindAt: input.remindAt,
133
+ timezone: input.timezone,
134
+ });
135
+ },
136
+ });
137
+ ```
138
+
139
+ ## Idioma
140
+
141
+ Todas las definiciones de agentes incluyen una instrucción de idioma. Si `context.locale` está definido, los agentes deben responder en ese locale. Si es `es-MX` o empieza con `es`, deben responder en español.
142
+
143
+ ## Handlers vs LLM
144
+
145
+ Los agentes pueden correr de dos formas:
146
+
147
+ - Con handler registrado: el código del producto controla el comportamiento.
148
+ - Sin handler registrado: el runtime puede usar `instructions`, `tools` y `outputSchema` para ejecutar un agente respaldado por modelo.
149
+
150
+ Cuando se registra un handler custom para la misma key, `outputSchema` se mantiene como contrato compartido para compatibilidad entre productos.
151
+
152
+ ## Composición con Productos
153
+
154
+ Este pack es genérico. Los paquetes de producto deben envolverlo o componerlo cuando el comportamiento dependa de permisos, reglas de workflow, colas, calendarios, proveedores de notificación o SLAs.
155
+
156
+ Ejemplos:
157
+
158
+ - Hemia Loop puede componer `automation.follow_up_scheduler`, `automation.notification` y `automation.task_assignment`.
159
+ - Hemia Directory puede componer `automation.agenda` y `automation.reminder`.
@@ -0,0 +1,124 @@
1
+ import { AgentDefinition, ToolDefinition, AgentContext, JsonObject } from '@hemia-ai/agents-core';
2
+ import { HemiaAgentRuntime } from '@hemia-ai/agents-runtime';
3
+ import { ToolRegistry } from '@hemia-ai/agents-tools';
4
+
5
+ declare const ReminderAgent: AgentDefinition;
6
+ declare const NotificationAgent: AgentDefinition;
7
+ declare const WorkflowTriggerAgent: AgentDefinition;
8
+ declare const TaskAssignmentAgent: AgentDefinition;
9
+ declare const FollowUpSchedulerAgent: AgentDefinition;
10
+ declare const AgendaAgent: AgentDefinition;
11
+ declare const automationAgentDefinitions: AgentDefinition[];
12
+
13
+ declare const AUTOMATION_AGENT_KEYS: {
14
+ readonly reminder: "automation.reminder";
15
+ readonly notification: "automation.notification";
16
+ readonly workflowTrigger: "automation.workflow_trigger";
17
+ readonly taskAssignment: "automation.task_assignment";
18
+ readonly followUpScheduler: "automation.follow_up_scheduler";
19
+ readonly agenda: "automation.agenda";
20
+ };
21
+ type AutomationAgentKey = (typeof AUTOMATION_AGENT_KEYS)[keyof typeof AUTOMATION_AGENT_KEYS];
22
+
23
+ interface RegisterAutomationAgentsOptions {
24
+ include?: AutomationAgentKey[];
25
+ }
26
+ declare function getAutomationAgentDefinitions(options?: RegisterAutomationAgentsOptions): AgentDefinition[];
27
+ declare function registerAutomationAgents(runtime: Pick<HemiaAgentRuntime, 'registerAgent'>, options?: RegisterAutomationAgentsOptions): AgentDefinition[];
28
+
29
+ declare function registerAutomationTools(toolRegistry: ToolRegistry): void;
30
+
31
+ declare const automationToolDefinitions: ToolDefinition[];
32
+
33
+ declare const AUTOMATION_TOOL_NAMES: {
34
+ readonly scheduleFollowUp: "automation.schedule_follow_up";
35
+ readonly createReminder: "automation.create_reminder";
36
+ readonly sendNotification: "automation.send_notification";
37
+ readonly triggerWorkflow: "automation.trigger_workflow";
38
+ readonly assignTask: "automation.assign_task";
39
+ readonly createCalendarEvent: "automation.create_calendar_event";
40
+ };
41
+ type AutomationToolName = (typeof AUTOMATION_TOOL_NAMES)[keyof typeof AUTOMATION_TOOL_NAMES];
42
+
43
+ type AutomationChannel = 'email' | 'whatsapp' | 'slack' | 'app' | 'webhook' | 'calendar' | 'internal';
44
+ interface AutomationAgentContext extends AgentContext {
45
+ workflowId?: string;
46
+ conversationId?: string;
47
+ contactId?: string;
48
+ channel?: AutomationChannel;
49
+ locale?: string;
50
+ timezone?: string;
51
+ }
52
+
53
+ type AutomationPriority = 'low' | 'normal' | 'high' | 'urgent';
54
+ type AutomationStatus = 'scheduled' | 'created' | 'sent' | 'triggered' | 'assigned' | 'cancelled' | 'failed';
55
+ type AgendaAction = 'availability_returned' | 'proposed_times' | 'scheduled' | 'rescheduled' | 'cancelled';
56
+ interface AutomationInput {
57
+ message?: string;
58
+ conversationId?: string;
59
+ contactId?: string;
60
+ workflowId?: string;
61
+ timezone?: string;
62
+ metadata?: Record<string, unknown>;
63
+ }
64
+ interface ReminderOutput {
65
+ status: AutomationStatus;
66
+ reminderId?: string;
67
+ title: string;
68
+ remindAt?: string;
69
+ timezone?: string;
70
+ reason?: string;
71
+ }
72
+ interface NotificationOutput {
73
+ status: AutomationStatus;
74
+ notificationId?: string;
75
+ channel: string;
76
+ recipient?: string;
77
+ message: string;
78
+ reason?: string;
79
+ }
80
+ interface WorkflowTriggerOutput {
81
+ status: AutomationStatus;
82
+ workflowId?: string;
83
+ triggerName?: string;
84
+ reason: string;
85
+ payload?: Record<string, unknown>;
86
+ }
87
+ interface TaskAssignmentOutput {
88
+ status: AutomationStatus;
89
+ taskId?: string;
90
+ assignee?: string;
91
+ team?: string;
92
+ priority: AutomationPriority;
93
+ sla?: string;
94
+ queue?: string;
95
+ }
96
+ interface FollowUpSchedulerOutput {
97
+ status: AutomationStatus;
98
+ followUpId?: string;
99
+ sendAfter?: string;
100
+ retryCount?: number;
101
+ message?: string;
102
+ reason?: string;
103
+ }
104
+ interface AgendaOutput {
105
+ action: AgendaAction;
106
+ eventId?: string;
107
+ proposedTimes: string[];
108
+ scheduledAt?: string;
109
+ timezone?: string;
110
+ reason?: string;
111
+ }
112
+
113
+ declare const automationPriorityValues: readonly ["low", "normal", "high", "urgent"];
114
+ declare const automationStatusValues: readonly ["scheduled", "created", "sent", "triggered", "assigned", "cancelled", "failed"];
115
+ declare const agendaActionValues: readonly ["availability_returned", "proposed_times", "scheduled", "rescheduled", "cancelled"];
116
+ declare const stringArraySchema: JsonObject;
117
+ declare const reminderOutputSchema: JsonObject;
118
+ declare const notificationOutputSchema: JsonObject;
119
+ declare const workflowTriggerOutputSchema: JsonObject;
120
+ declare const taskAssignmentOutputSchema: JsonObject;
121
+ declare const followUpSchedulerOutputSchema: JsonObject;
122
+ declare const agendaOutputSchema: JsonObject;
123
+
124
+ export { AUTOMATION_AGENT_KEYS, AUTOMATION_TOOL_NAMES, type AgendaAction, AgendaAgent, type AgendaOutput, type AutomationAgentContext, type AutomationAgentKey, type AutomationChannel, type AutomationInput, type AutomationPriority, type AutomationStatus, type AutomationToolName, FollowUpSchedulerAgent, type FollowUpSchedulerOutput, NotificationAgent, type NotificationOutput, type RegisterAutomationAgentsOptions, ReminderAgent, type ReminderOutput, TaskAssignmentAgent, type TaskAssignmentOutput, WorkflowTriggerAgent, type WorkflowTriggerOutput, agendaActionValues, agendaOutputSchema, automationAgentDefinitions, automationPriorityValues, automationStatusValues, automationToolDefinitions, followUpSchedulerOutputSchema, getAutomationAgentDefinitions, notificationOutputSchema, registerAutomationAgents, registerAutomationTools, reminderOutputSchema, stringArraySchema, taskAssignmentOutputSchema, workflowTriggerOutputSchema };
package/dist/index.js ADDED
@@ -0,0 +1,333 @@
1
+ // src/tools/tool-names.ts
2
+ var AUTOMATION_TOOL_NAMES = {
3
+ scheduleFollowUp: "automation.schedule_follow_up",
4
+ createReminder: "automation.create_reminder",
5
+ sendNotification: "automation.send_notification",
6
+ triggerWorkflow: "automation.trigger_workflow",
7
+ assignTask: "automation.assign_task",
8
+ createCalendarEvent: "automation.create_calendar_event"
9
+ };
10
+
11
+ // src/types/json-schemas.ts
12
+ var automationPriorityValues = ["low", "normal", "high", "urgent"];
13
+ var automationStatusValues = ["scheduled", "created", "sent", "triggered", "assigned", "cancelled", "failed"];
14
+ var agendaActionValues = ["availability_returned", "proposed_times", "scheduled", "rescheduled", "cancelled"];
15
+ var stringArraySchema = {
16
+ type: "array",
17
+ items: { type: "string" }
18
+ };
19
+ var reminderOutputSchema = {
20
+ type: "object",
21
+ properties: {
22
+ status: { type: "string", enum: [...automationStatusValues] },
23
+ reminderId: { type: "string" },
24
+ title: { type: "string" },
25
+ remindAt: { type: "string" },
26
+ timezone: { type: "string" },
27
+ reason: { type: "string" }
28
+ },
29
+ required: ["status", "title"],
30
+ additionalProperties: false
31
+ };
32
+ var notificationOutputSchema = {
33
+ type: "object",
34
+ properties: {
35
+ status: { type: "string", enum: [...automationStatusValues] },
36
+ notificationId: { type: "string" },
37
+ channel: { type: "string" },
38
+ recipient: { type: "string" },
39
+ message: { type: "string" },
40
+ reason: { type: "string" }
41
+ },
42
+ required: ["status", "channel", "message"],
43
+ additionalProperties: false
44
+ };
45
+ var workflowTriggerOutputSchema = {
46
+ type: "object",
47
+ properties: {
48
+ status: { type: "string", enum: [...automationStatusValues] },
49
+ workflowId: { type: "string" },
50
+ triggerName: { type: "string" },
51
+ reason: { type: "string" },
52
+ payload: { type: "object" }
53
+ },
54
+ required: ["status", "reason"],
55
+ additionalProperties: false
56
+ };
57
+ var taskAssignmentOutputSchema = {
58
+ type: "object",
59
+ properties: {
60
+ status: { type: "string", enum: [...automationStatusValues] },
61
+ taskId: { type: "string" },
62
+ assignee: { type: "string" },
63
+ team: { type: "string" },
64
+ priority: { type: "string", enum: [...automationPriorityValues] },
65
+ sla: { type: "string" },
66
+ queue: { type: "string" }
67
+ },
68
+ required: ["status", "priority"],
69
+ additionalProperties: false
70
+ };
71
+ var followUpSchedulerOutputSchema = {
72
+ type: "object",
73
+ properties: {
74
+ status: { type: "string", enum: [...automationStatusValues] },
75
+ followUpId: { type: "string" },
76
+ sendAfter: { type: "string" },
77
+ retryCount: { type: "number" },
78
+ message: { type: "string" },
79
+ reason: { type: "string" }
80
+ },
81
+ required: ["status"],
82
+ additionalProperties: false
83
+ };
84
+ var agendaOutputSchema = {
85
+ type: "object",
86
+ properties: {
87
+ action: { type: "string", enum: [...agendaActionValues] },
88
+ eventId: { type: "string" },
89
+ proposedTimes: stringArraySchema,
90
+ scheduledAt: { type: "string" },
91
+ timezone: { type: "string" },
92
+ reason: { type: "string" }
93
+ },
94
+ required: ["action", "proposedTimes"],
95
+ additionalProperties: false
96
+ };
97
+
98
+ // src/agents/agent-keys.ts
99
+ var AUTOMATION_AGENT_KEYS = {
100
+ reminder: "automation.reminder",
101
+ notification: "automation.notification",
102
+ workflowTrigger: "automation.workflow_trigger",
103
+ taskAssignment: "automation.task_assignment",
104
+ followUpScheduler: "automation.follow_up_scheduler",
105
+ agenda: "automation.agenda"
106
+ };
107
+
108
+ // src/agents/agent-definitions.ts
109
+ var packMetadata = {
110
+ pack: "@hemia-ai/automation-agents",
111
+ domain: "automation"
112
+ };
113
+ var localeInstruction = "Always respond in the user locale when context.locale is provided. If context.locale is es-MX or starts with es, respond in Spanish.";
114
+ var ReminderAgent = {
115
+ key: AUTOMATION_AGENT_KEYS.reminder,
116
+ name: "Reminder Agent",
117
+ version: "0.1.0",
118
+ description: "Creates reminders for appointments, demos, follow-ups, or tasks.",
119
+ instructions: `${localeInstruction} Create reminder decisions with title, date/time, timezone, assignee, and reason. Ask for missing schedule details when needed.`,
120
+ tools: [AUTOMATION_TOOL_NAMES.createReminder],
121
+ riskLevel: "medium",
122
+ outputSchema: reminderOutputSchema,
123
+ metadata: packMetadata
124
+ };
125
+ var NotificationAgent = {
126
+ key: AUTOMATION_AGENT_KEYS.notification,
127
+ name: "Notification Agent",
128
+ version: "0.1.0",
129
+ description: "Sends notifications by email, WhatsApp, Slack, app, or webhook.",
130
+ instructions: `${localeInstruction} Prepare notifications with channel, recipient, message, and reason. Avoid sending if recipient or channel is unclear.`,
131
+ tools: [AUTOMATION_TOOL_NAMES.sendNotification],
132
+ riskLevel: "medium",
133
+ outputSchema: notificationOutputSchema,
134
+ metadata: packMetadata
135
+ };
136
+ var WorkflowTriggerAgent = {
137
+ key: AUTOMATION_AGENT_KEYS.workflowTrigger,
138
+ name: "Workflow Trigger Agent",
139
+ version: "0.1.0",
140
+ description: "Triggers workflows from intent, state, or event data.",
141
+ instructions: `${localeInstruction} Decide whether a workflow should be triggered from intent, state, event data, or product rules. Include workflow id/name, payload, and reason.`,
142
+ tools: [AUTOMATION_TOOL_NAMES.triggerWorkflow],
143
+ riskLevel: "medium",
144
+ outputSchema: workflowTriggerOutputSchema,
145
+ metadata: packMetadata
146
+ };
147
+ var TaskAssignmentAgent = {
148
+ key: AUTOMATION_AGENT_KEYS.taskAssignment,
149
+ name: "Task Assignment Agent",
150
+ version: "0.1.0",
151
+ description: "Assigns tasks to humans, teams, queues, priorities, and SLAs.",
152
+ instructions: `${localeInstruction} Assign tasks with responsible person or team, priority, SLA, queue, and concise description. Ask for missing assignment details when needed.`,
153
+ tools: [AUTOMATION_TOOL_NAMES.assignTask],
154
+ riskLevel: "medium",
155
+ outputSchema: taskAssignmentOutputSchema,
156
+ metadata: packMetadata
157
+ };
158
+ var FollowUpSchedulerAgent = {
159
+ key: AUTOMATION_AGENT_KEYS.followUpScheduler,
160
+ name: "Follow Up Scheduler Agent",
161
+ version: "0.1.0",
162
+ description: "Schedules automatic follow-ups.",
163
+ instructions: `${localeInstruction} Schedule follow-ups with timing, retry count, and message content. Respect product rules for cooldowns and avoid duplicate follow-ups when context says one exists.`,
164
+ tools: [AUTOMATION_TOOL_NAMES.scheduleFollowUp],
165
+ riskLevel: "medium",
166
+ outputSchema: followUpSchedulerOutputSchema,
167
+ metadata: packMetadata
168
+ };
169
+ var AgendaAgent = {
170
+ key: AUTOMATION_AGENT_KEYS.agenda,
171
+ name: "Agenda Agent",
172
+ version: "0.1.0",
173
+ description: "Helps book, reschedule, or cancel appointments, demos, and calls.",
174
+ instructions: `${localeInstruction} Help with availability, proposed times, scheduling, rescheduling, and cancellation. Ask for missing attendees, timezone, date, or duration when needed.`,
175
+ tools: [AUTOMATION_TOOL_NAMES.createCalendarEvent],
176
+ riskLevel: "medium",
177
+ outputSchema: agendaOutputSchema,
178
+ metadata: packMetadata
179
+ };
180
+ var automationAgentDefinitions = [
181
+ ReminderAgent,
182
+ NotificationAgent,
183
+ WorkflowTriggerAgent,
184
+ TaskAssignmentAgent,
185
+ FollowUpSchedulerAgent,
186
+ AgendaAgent
187
+ ];
188
+
189
+ // src/registration/register-automation-agents.ts
190
+ function getAutomationAgentDefinitions(options = {}) {
191
+ if (options.include === void 0) {
192
+ return [...automationAgentDefinitions];
193
+ }
194
+ const included = new Set(options.include);
195
+ return automationAgentDefinitions.filter((agent) => included.has(agent.key));
196
+ }
197
+ function registerAutomationAgents(runtime, options = {}) {
198
+ const definitions = getAutomationAgentDefinitions(options);
199
+ for (const definition of definitions) {
200
+ runtime.registerAgent(definition);
201
+ }
202
+ return definitions;
203
+ }
204
+
205
+ // src/tools/tool-definitions.ts
206
+ var objectSchema = (properties, required = []) => ({
207
+ type: "object",
208
+ properties,
209
+ required,
210
+ additionalProperties: false
211
+ });
212
+ var automationToolDefinitions = [
213
+ {
214
+ name: AUTOMATION_TOOL_NAMES.scheduleFollowUp,
215
+ description: "Schedules an automatic follow-up with timing, retries, and message content.",
216
+ riskLevel: "medium",
217
+ inputSchema: objectSchema({
218
+ conversationId: { type: "string" },
219
+ contactId: { type: "string" },
220
+ sendAfter: { type: "string" },
221
+ retryCount: { type: "number" },
222
+ message: { type: "string" },
223
+ timezone: { type: "string" }
224
+ }, ["sendAfter"]),
225
+ outputSchema: followUpSchedulerOutputSchema,
226
+ metadata: { alias: "scheduleFollowUpTool", pack: "@hemia-ai/automation-agents" }
227
+ },
228
+ {
229
+ name: AUTOMATION_TOOL_NAMES.createReminder,
230
+ description: "Creates a reminder for appointments, demos, follow-ups, or tasks.",
231
+ riskLevel: "medium",
232
+ inputSchema: objectSchema({
233
+ title: { type: "string" },
234
+ remindAt: { type: "string" },
235
+ timezone: { type: "string" },
236
+ assignee: { type: "string" },
237
+ metadata: { type: "object" }
238
+ }, ["title"]),
239
+ outputSchema: reminderOutputSchema,
240
+ metadata: { alias: "createReminderTool", pack: "@hemia-ai/automation-agents" }
241
+ },
242
+ {
243
+ name: AUTOMATION_TOOL_NAMES.sendNotification,
244
+ description: "Sends a notification by email, WhatsApp, Slack, app, or webhook.",
245
+ riskLevel: "medium",
246
+ inputSchema: objectSchema({
247
+ channel: { type: "string", enum: ["email", "whatsapp", "slack", "app", "webhook"] },
248
+ recipient: { type: "string" },
249
+ message: { type: "string" },
250
+ metadata: { type: "object" }
251
+ }, ["channel", "message"]),
252
+ outputSchema: notificationOutputSchema,
253
+ metadata: { alias: "sendNotificationTool", pack: "@hemia-ai/automation-agents" }
254
+ },
255
+ {
256
+ name: AUTOMATION_TOOL_NAMES.triggerWorkflow,
257
+ description: "Triggers a workflow from intent, state, or event data.",
258
+ riskLevel: "medium",
259
+ inputSchema: objectSchema({
260
+ workflowId: { type: "string" },
261
+ triggerName: { type: "string" },
262
+ reason: { type: "string" },
263
+ payload: { type: "object" }
264
+ }, ["reason"]),
265
+ outputSchema: workflowTriggerOutputSchema,
266
+ metadata: { alias: "triggerWorkflowTool", pack: "@hemia-ai/automation-agents" }
267
+ },
268
+ {
269
+ name: AUTOMATION_TOOL_NAMES.assignTask,
270
+ description: "Assigns a task to a person, team, queue, priority, and SLA.",
271
+ riskLevel: "medium",
272
+ inputSchema: objectSchema({
273
+ title: { type: "string" },
274
+ description: { type: "string" },
275
+ assignee: { type: "string" },
276
+ team: { type: "string" },
277
+ priority: { type: "string", enum: [...automationPriorityValues] },
278
+ sla: { type: "string" },
279
+ queue: { type: "string" }
280
+ }, ["title"]),
281
+ outputSchema: taskAssignmentOutputSchema,
282
+ metadata: { alias: "assignTaskTool", pack: "@hemia-ai/automation-agents" }
283
+ },
284
+ {
285
+ name: AUTOMATION_TOOL_NAMES.createCalendarEvent,
286
+ description: "Creates, reschedules, or cancels calendar events.",
287
+ riskLevel: "medium",
288
+ inputSchema: objectSchema({
289
+ title: { type: "string" },
290
+ attendee: { type: "string" },
291
+ startAt: { type: "string" },
292
+ endAt: { type: "string" },
293
+ timezone: { type: "string" },
294
+ action: { type: "string", enum: ["schedule", "reschedule", "cancel"] },
295
+ eventId: { type: "string" }
296
+ }, ["title", "action"]),
297
+ outputSchema: agendaOutputSchema,
298
+ metadata: { alias: "createCalendarEventTool", pack: "@hemia-ai/automation-agents" }
299
+ }
300
+ ];
301
+
302
+ // src/tools/register-tools.ts
303
+ function registerAutomationTools(toolRegistry) {
304
+ for (const tool of automationToolDefinitions) {
305
+ toolRegistry.register(tool);
306
+ }
307
+ }
308
+ export {
309
+ AUTOMATION_AGENT_KEYS,
310
+ AUTOMATION_TOOL_NAMES,
311
+ AgendaAgent,
312
+ FollowUpSchedulerAgent,
313
+ NotificationAgent,
314
+ ReminderAgent,
315
+ TaskAssignmentAgent,
316
+ WorkflowTriggerAgent,
317
+ agendaActionValues,
318
+ agendaOutputSchema,
319
+ automationAgentDefinitions,
320
+ automationPriorityValues,
321
+ automationStatusValues,
322
+ automationToolDefinitions,
323
+ followUpSchedulerOutputSchema,
324
+ getAutomationAgentDefinitions,
325
+ notificationOutputSchema,
326
+ registerAutomationAgents,
327
+ registerAutomationTools,
328
+ reminderOutputSchema,
329
+ stringArraySchema,
330
+ taskAssignmentOutputSchema,
331
+ workflowTriggerOutputSchema
332
+ };
333
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/tool-names.ts","../src/types/json-schemas.ts","../src/agents/agent-keys.ts","../src/agents/agent-definitions.ts","../src/registration/register-automation-agents.ts","../src/tools/tool-definitions.ts","../src/tools/register-tools.ts"],"sourcesContent":["export const AUTOMATION_TOOL_NAMES = {\n scheduleFollowUp: 'automation.schedule_follow_up',\n createReminder: 'automation.create_reminder',\n sendNotification: 'automation.send_notification',\n triggerWorkflow: 'automation.trigger_workflow',\n assignTask: 'automation.assign_task',\n createCalendarEvent: 'automation.create_calendar_event',\n} as const;\n\nexport type AutomationToolName = (typeof AUTOMATION_TOOL_NAMES)[keyof typeof AUTOMATION_TOOL_NAMES];\n","import type { JsonObject } from '@hemia-ai/agents-core';\n\nexport const automationPriorityValues = ['low', 'normal', 'high', 'urgent'] as const;\nexport const automationStatusValues = ['scheduled', 'created', 'sent', 'triggered', 'assigned', 'cancelled', 'failed'] as const;\nexport const agendaActionValues = ['availability_returned', 'proposed_times', 'scheduled', 'rescheduled', 'cancelled'] as const;\n\nexport const stringArraySchema: JsonObject = {\n type: 'array',\n items: { type: 'string' },\n};\n\nexport const reminderOutputSchema: JsonObject = {\n type: 'object',\n properties: {\n status: { type: 'string', enum: [...automationStatusValues] },\n reminderId: { type: 'string' },\n title: { type: 'string' },\n remindAt: { type: 'string' },\n timezone: { type: 'string' },\n reason: { type: 'string' },\n },\n required: ['status', 'title'],\n additionalProperties: false,\n};\n\nexport const notificationOutputSchema: JsonObject = {\n type: 'object',\n properties: {\n status: { type: 'string', enum: [...automationStatusValues] },\n notificationId: { type: 'string' },\n channel: { type: 'string' },\n recipient: { type: 'string' },\n message: { type: 'string' },\n reason: { type: 'string' },\n },\n required: ['status', 'channel', 'message'],\n additionalProperties: false,\n};\n\nexport const workflowTriggerOutputSchema: JsonObject = {\n type: 'object',\n properties: {\n status: { type: 'string', enum: [...automationStatusValues] },\n workflowId: { type: 'string' },\n triggerName: { type: 'string' },\n reason: { type: 'string' },\n payload: { type: 'object' },\n },\n required: ['status', 'reason'],\n additionalProperties: false,\n};\n\nexport const taskAssignmentOutputSchema: JsonObject = {\n type: 'object',\n properties: {\n status: { type: 'string', enum: [...automationStatusValues] },\n taskId: { type: 'string' },\n assignee: { type: 'string' },\n team: { type: 'string' },\n priority: { type: 'string', enum: [...automationPriorityValues] },\n sla: { type: 'string' },\n queue: { type: 'string' },\n },\n required: ['status', 'priority'],\n additionalProperties: false,\n};\n\nexport const followUpSchedulerOutputSchema: JsonObject = {\n type: 'object',\n properties: {\n status: { type: 'string', enum: [...automationStatusValues] },\n followUpId: { type: 'string' },\n sendAfter: { type: 'string' },\n retryCount: { type: 'number' },\n message: { type: 'string' },\n reason: { type: 'string' },\n },\n required: ['status'],\n additionalProperties: false,\n};\n\nexport const agendaOutputSchema: JsonObject = {\n type: 'object',\n properties: {\n action: { type: 'string', enum: [...agendaActionValues] },\n eventId: { type: 'string' },\n proposedTimes: stringArraySchema,\n scheduledAt: { type: 'string' },\n timezone: { type: 'string' },\n reason: { type: 'string' },\n },\n required: ['action', 'proposedTimes'],\n additionalProperties: false,\n};\n","export const AUTOMATION_AGENT_KEYS = {\n reminder: 'automation.reminder',\n notification: 'automation.notification',\n workflowTrigger: 'automation.workflow_trigger',\n taskAssignment: 'automation.task_assignment',\n followUpScheduler: 'automation.follow_up_scheduler',\n agenda: 'automation.agenda',\n} as const;\n\nexport type AutomationAgentKey = (typeof AUTOMATION_AGENT_KEYS)[keyof typeof AUTOMATION_AGENT_KEYS];\n","import type { AgentDefinition, JsonObject } from '@hemia-ai/agents-core';\nimport { AUTOMATION_TOOL_NAMES } from '../tools/tool-names';\nimport {\n agendaOutputSchema,\n followUpSchedulerOutputSchema,\n notificationOutputSchema,\n reminderOutputSchema,\n taskAssignmentOutputSchema,\n workflowTriggerOutputSchema,\n} from '../types/json-schemas';\nimport { AUTOMATION_AGENT_KEYS } from './agent-keys';\n\nconst packMetadata: JsonObject = {\n pack: '@hemia-ai/automation-agents',\n domain: 'automation',\n};\n\nconst localeInstruction =\n 'Always respond in the user locale when context.locale is provided. If context.locale is es-MX or starts with es, respond in Spanish.';\n\nexport const ReminderAgent: AgentDefinition = {\n key: AUTOMATION_AGENT_KEYS.reminder,\n name: 'Reminder Agent',\n version: '0.1.0',\n description: 'Creates reminders for appointments, demos, follow-ups, or tasks.',\n instructions:\n `${localeInstruction} Create reminder decisions with title, date/time, timezone, assignee, and reason. Ask for missing schedule details when needed.`,\n tools: [AUTOMATION_TOOL_NAMES.createReminder],\n riskLevel: 'medium',\n outputSchema: reminderOutputSchema,\n metadata: packMetadata,\n};\n\nexport const NotificationAgent: AgentDefinition = {\n key: AUTOMATION_AGENT_KEYS.notification,\n name: 'Notification Agent',\n version: '0.1.0',\n description: 'Sends notifications by email, WhatsApp, Slack, app, or webhook.',\n instructions:\n `${localeInstruction} Prepare notifications with channel, recipient, message, and reason. Avoid sending if recipient or channel is unclear.`,\n tools: [AUTOMATION_TOOL_NAMES.sendNotification],\n riskLevel: 'medium',\n outputSchema: notificationOutputSchema,\n metadata: packMetadata,\n};\n\nexport const WorkflowTriggerAgent: AgentDefinition = {\n key: AUTOMATION_AGENT_KEYS.workflowTrigger,\n name: 'Workflow Trigger Agent',\n version: '0.1.0',\n description: 'Triggers workflows from intent, state, or event data.',\n instructions:\n `${localeInstruction} Decide whether a workflow should be triggered from intent, state, event data, or product rules. Include workflow id/name, payload, and reason.`,\n tools: [AUTOMATION_TOOL_NAMES.triggerWorkflow],\n riskLevel: 'medium',\n outputSchema: workflowTriggerOutputSchema,\n metadata: packMetadata,\n};\n\nexport const TaskAssignmentAgent: AgentDefinition = {\n key: AUTOMATION_AGENT_KEYS.taskAssignment,\n name: 'Task Assignment Agent',\n version: '0.1.0',\n description: 'Assigns tasks to humans, teams, queues, priorities, and SLAs.',\n instructions:\n `${localeInstruction} Assign tasks with responsible person or team, priority, SLA, queue, and concise description. Ask for missing assignment details when needed.`,\n tools: [AUTOMATION_TOOL_NAMES.assignTask],\n riskLevel: 'medium',\n outputSchema: taskAssignmentOutputSchema,\n metadata: packMetadata,\n};\n\nexport const FollowUpSchedulerAgent: AgentDefinition = {\n key: AUTOMATION_AGENT_KEYS.followUpScheduler,\n name: 'Follow Up Scheduler Agent',\n version: '0.1.0',\n description: 'Schedules automatic follow-ups.',\n instructions:\n `${localeInstruction} Schedule follow-ups with timing, retry count, and message content. Respect product rules for cooldowns and avoid duplicate follow-ups when context says one exists.`,\n tools: [AUTOMATION_TOOL_NAMES.scheduleFollowUp],\n riskLevel: 'medium',\n outputSchema: followUpSchedulerOutputSchema,\n metadata: packMetadata,\n};\n\nexport const AgendaAgent: AgentDefinition = {\n key: AUTOMATION_AGENT_KEYS.agenda,\n name: 'Agenda Agent',\n version: '0.1.0',\n description: 'Helps book, reschedule, or cancel appointments, demos, and calls.',\n instructions:\n `${localeInstruction} Help with availability, proposed times, scheduling, rescheduling, and cancellation. Ask for missing attendees, timezone, date, or duration when needed.`,\n tools: [AUTOMATION_TOOL_NAMES.createCalendarEvent],\n riskLevel: 'medium',\n outputSchema: agendaOutputSchema,\n metadata: packMetadata,\n};\n\nexport const automationAgentDefinitions: AgentDefinition[] = [\n ReminderAgent,\n NotificationAgent,\n WorkflowTriggerAgent,\n TaskAssignmentAgent,\n FollowUpSchedulerAgent,\n AgendaAgent,\n];\n","import type { AgentDefinition } from '@hemia-ai/agents-core';\nimport type { HemiaAgentRuntime } from '@hemia-ai/agents-runtime';\nimport { automationAgentDefinitions } from '../agents/agent-definitions';\nimport type { AutomationAgentKey } from '../agents/agent-keys';\n\nexport interface RegisterAutomationAgentsOptions {\n include?: AutomationAgentKey[];\n}\n\nexport function getAutomationAgentDefinitions(options: RegisterAutomationAgentsOptions = {}): AgentDefinition[] {\n if (options.include === undefined) {\n return [...automationAgentDefinitions];\n }\n\n const included = new Set<string>(options.include);\n return automationAgentDefinitions.filter((agent) => included.has(agent.key));\n}\n\nexport function registerAutomationAgents(\n runtime: Pick<HemiaAgentRuntime, 'registerAgent'>,\n options: RegisterAutomationAgentsOptions = {},\n): AgentDefinition[] {\n const definitions = getAutomationAgentDefinitions(options);\n\n for (const definition of definitions) {\n runtime.registerAgent(definition);\n }\n\n return definitions;\n}\n","import type { JsonObject, ToolDefinition } from '@hemia-ai/agents-core';\nimport {\n agendaOutputSchema,\n automationPriorityValues,\n followUpSchedulerOutputSchema,\n notificationOutputSchema,\n reminderOutputSchema,\n taskAssignmentOutputSchema,\n workflowTriggerOutputSchema,\n} from '../types/json-schemas';\nimport { AUTOMATION_TOOL_NAMES } from './tool-names';\n\nconst objectSchema = (properties: JsonObject, required: string[] = []): JsonObject => ({\n type: 'object',\n properties,\n required,\n additionalProperties: false,\n});\n\nexport const automationToolDefinitions: ToolDefinition[] = [\n {\n name: AUTOMATION_TOOL_NAMES.scheduleFollowUp,\n description: 'Schedules an automatic follow-up with timing, retries, and message content.',\n riskLevel: 'medium',\n inputSchema: objectSchema({\n conversationId: { type: 'string' },\n contactId: { type: 'string' },\n sendAfter: { type: 'string' },\n retryCount: { type: 'number' },\n message: { type: 'string' },\n timezone: { type: 'string' },\n }, ['sendAfter']),\n outputSchema: followUpSchedulerOutputSchema,\n metadata: { alias: 'scheduleFollowUpTool', pack: '@hemia-ai/automation-agents' },\n },\n {\n name: AUTOMATION_TOOL_NAMES.createReminder,\n description: 'Creates a reminder for appointments, demos, follow-ups, or tasks.',\n riskLevel: 'medium',\n inputSchema: objectSchema({\n title: { type: 'string' },\n remindAt: { type: 'string' },\n timezone: { type: 'string' },\n assignee: { type: 'string' },\n metadata: { type: 'object' },\n }, ['title']),\n outputSchema: reminderOutputSchema,\n metadata: { alias: 'createReminderTool', pack: '@hemia-ai/automation-agents' },\n },\n {\n name: AUTOMATION_TOOL_NAMES.sendNotification,\n description: 'Sends a notification by email, WhatsApp, Slack, app, or webhook.',\n riskLevel: 'medium',\n inputSchema: objectSchema({\n channel: { type: 'string', enum: ['email', 'whatsapp', 'slack', 'app', 'webhook'] },\n recipient: { type: 'string' },\n message: { type: 'string' },\n metadata: { type: 'object' },\n }, ['channel', 'message']),\n outputSchema: notificationOutputSchema,\n metadata: { alias: 'sendNotificationTool', pack: '@hemia-ai/automation-agents' },\n },\n {\n name: AUTOMATION_TOOL_NAMES.triggerWorkflow,\n description: 'Triggers a workflow from intent, state, or event data.',\n riskLevel: 'medium',\n inputSchema: objectSchema({\n workflowId: { type: 'string' },\n triggerName: { type: 'string' },\n reason: { type: 'string' },\n payload: { type: 'object' },\n }, ['reason']),\n outputSchema: workflowTriggerOutputSchema,\n metadata: { alias: 'triggerWorkflowTool', pack: '@hemia-ai/automation-agents' },\n },\n {\n name: AUTOMATION_TOOL_NAMES.assignTask,\n description: 'Assigns a task to a person, team, queue, priority, and SLA.',\n riskLevel: 'medium',\n inputSchema: objectSchema({\n title: { type: 'string' },\n description: { type: 'string' },\n assignee: { type: 'string' },\n team: { type: 'string' },\n priority: { type: 'string', enum: [...automationPriorityValues] },\n sla: { type: 'string' },\n queue: { type: 'string' },\n }, ['title']),\n outputSchema: taskAssignmentOutputSchema,\n metadata: { alias: 'assignTaskTool', pack: '@hemia-ai/automation-agents' },\n },\n {\n name: AUTOMATION_TOOL_NAMES.createCalendarEvent,\n description: 'Creates, reschedules, or cancels calendar events.',\n riskLevel: 'medium',\n inputSchema: objectSchema({\n title: { type: 'string' },\n attendee: { type: 'string' },\n startAt: { type: 'string' },\n endAt: { type: 'string' },\n timezone: { type: 'string' },\n action: { type: 'string', enum: ['schedule', 'reschedule', 'cancel'] },\n eventId: { type: 'string' },\n }, ['title', 'action']),\n outputSchema: agendaOutputSchema,\n metadata: { alias: 'createCalendarEventTool', pack: '@hemia-ai/automation-agents' },\n },\n];\n","import type { ToolRegistry } from '@hemia-ai/agents-tools';\nimport { automationToolDefinitions } from './tool-definitions';\n\nexport function registerAutomationTools(toolRegistry: ToolRegistry): void {\n for (const tool of automationToolDefinitions) {\n toolRegistry.register(tool);\n }\n}\n"],"mappings":"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","names":[]}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@hemia-ai/automation-agents",
3
+ "version": "0.0.1",
4
+ "description": "Automation, reminders, notifications, workflows, tasks, follow-up, and agenda agent definitions for Hemia AI products.",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "files": ["dist"],
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "scripts": {
18
+ "build": "tsup src/index.ts --format esm --dts --sourcemap --clean",
19
+ "clean": "rm -rf dist *.tsbuildinfo",
20
+ "dev": "tsup src/index.ts --format esm --dts --watch",
21
+ "lint": "tsc --noEmit",
22
+ "test": "vitest run --passWithNoTests",
23
+ "typecheck": "tsc --noEmit",
24
+ "prepack": "npm run build"
25
+ },
26
+ "dependencies": {
27
+ "@hemia-ai/agents-core": "^0.0.2",
28
+ "@hemia-ai/agents-runtime": "^0.0.3",
29
+ "@hemia-ai/agents-tools": "^0.0.2"
30
+ }
31
+ }