@n8n/telemetry 1.0.0 → 1.2.0

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.
@@ -0,0 +1,466 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AGENTS_TELEMETRY = void 0;
4
+ const v4_1 = require("zod/v4");
5
+ const define_1 = require("../define");
6
+ const builderSessionIdentity = {
7
+ agent_id: v4_1.z.string(),
8
+ user_id: v4_1.z.string(),
9
+ thread_id: v4_1.z.string().optional().describe('Instance AI thread hosting the builder session'),
10
+ run_id: v4_1.z.string().optional().describe('Instance AI run that triggered this builder call'),
11
+ };
12
+ const agentStatus = v4_1.z.enum(['draft', 'production']);
13
+ const agentRunType = v4_1.z
14
+ .enum(['test', 'production'])
15
+ .describe('production means the run executed the published snapshot; test means it ran a draft');
16
+ const agentConfigurationTelemetry = {
17
+ model: v4_1.z.string().nullable(),
18
+ channels: v4_1.z.array(v4_1.z.string()),
19
+ tool_types: v4_1.z.array(v4_1.z.string()),
20
+ tool_count: v4_1.z.number(),
21
+ num_skills: v4_1.z.number(),
22
+ memory_type: v4_1.z.enum([
23
+ 'none',
24
+ 'n8n',
25
+ 'n8n_observational',
26
+ 'n8n_episodic',
27
+ 'n8n_observational_episodic',
28
+ ]),
29
+ };
30
+ const builderPreWriteStatus = agentStatus.describe("Agent status before the builder's write");
31
+ const sessionId = v4_1.z.string().describe('Editor push session id (pushRef)');
32
+ const agentConfigFingerprint = v4_1.z.object({
33
+ instructions: v4_1.z.string(),
34
+ tools: v4_1.z.array(v4_1.z.string()),
35
+ skills: v4_1.z.array(v4_1.z.string()),
36
+ tasks: v4_1.z.array(v4_1.z.string()),
37
+ triggers: v4_1.z.array(v4_1.z.string()),
38
+ vector_stores: v4_1.z.array(v4_1.z.string()),
39
+ memory: v4_1.z.object({ enabled: v4_1.z.boolean(), storage: v4_1.z.literal('n8n') }).nullable(),
40
+ model: v4_1.z.string().nullable(),
41
+ config_version: v4_1.z.string(),
42
+ });
43
+ const toolIdentity = {
44
+ node_type: v4_1.z.string().optional(),
45
+ workflow: v4_1.z.string().optional(),
46
+ custom_id: v4_1.z.string().optional(),
47
+ server_name: v4_1.z.string().optional(),
48
+ };
49
+ const optionalAgentId = v4_1.z.string().optional();
50
+ const agentCapabilityKind = v4_1.z.enum([
51
+ 'channel',
52
+ 'tool',
53
+ 'mcpServer',
54
+ 'skill',
55
+ 'task',
56
+ 'subAgent',
57
+ 'vectorStore',
58
+ ]);
59
+ const agentConfigPart = v4_1.z.enum([
60
+ 'instructions',
61
+ 'model',
62
+ 'credential',
63
+ 'memory',
64
+ 'name',
65
+ 'config',
66
+ 'tools',
67
+ 'providerTools',
68
+ 'skills',
69
+ 'tasks',
70
+ 'triggers',
71
+ 'subAgents',
72
+ 'mcpServers',
73
+ 'vectorStores',
74
+ ]);
75
+ const agentActorIdentity = {
76
+ agent_id: v4_1.z.string(),
77
+ project_id: v4_1.z.string(),
78
+ user_id: v4_1.z.string().describe('The acting user, on every surface including MCP'),
79
+ };
80
+ const agentCapabilityProfile = {
81
+ capability_kinds: v4_1.z.array(agentCapabilityKind),
82
+ capability_count: v4_1.z.number(),
83
+ tool_count: v4_1.z.number(),
84
+ skill_count: v4_1.z.number(),
85
+ sub_agent_count: v4_1.z.number(),
86
+ mcp_server_count: v4_1.z.number(),
87
+ vector_store_count: v4_1.z.number(),
88
+ task_count: v4_1.z.number(),
89
+ trigger_count: v4_1.z.number(),
90
+ model: v4_1.z.string().nullable(),
91
+ tool_types: v4_1.z.array(v4_1.z.string()).describe('Tool types, never user-authored tool names'),
92
+ };
93
+ const agentWrite = {
94
+ ...agentActorIdentity,
95
+ ...agentCapabilityProfile,
96
+ changed_parts: v4_1.z
97
+ .array(agentConfigPart)
98
+ .describe('Config parts this save actually changed. "credential" is the model credential, which the retired "User edited agent config" reported as part "model". "config" is the feature block: web search and prompt caching. "providerTools" is the provider-native tools map, including web-search tool settings reconciled from config.webSearch.'),
99
+ has_published_version: v4_1.z
100
+ .boolean()
101
+ .describe('Whether a live published version exists; stable across an editing session. Always false on the creation events, which is what makes the six safe to union.'),
102
+ };
103
+ const agentPublishTrigger = v4_1.z
104
+ .enum(['explicit', 'republish', 'channel_connect', 'slack_setup'])
105
+ .describe('What caused the publish, as opposed to who performed it. channel_connect and slack_setup are historical values only.');
106
+ const agentPublish = {
107
+ ...agentActorIdentity,
108
+ ...agentCapabilityProfile,
109
+ trigger: agentPublishTrigger,
110
+ version_id: v4_1.z.string().describe('AgentHistory versionId that became active'),
111
+ };
112
+ exports.AGENTS_TELEMETRY = (0, define_1.defineTelemetryEvents)({
113
+ AGENT_SETUP_COMPLETED: {
114
+ name: 'Agent setup completed',
115
+ description: 'The first time an agent reached a complete setup: it passes the same validation the Publish button requires, and has at least one configured capability. Fires at most once per agent, guarded by the persisted `agents.setupCompletedAt`. Emitted from the config-save path, with the publish path as a backstop so a published agent is always marked first.',
116
+ properties: v4_1.z.object({
117
+ agent_id: v4_1.z.string(),
118
+ project_id: v4_1.z.string(),
119
+ user_id: v4_1.z
120
+ .string()
121
+ .optional()
122
+ .describe('Absent for builder writes made without an acting user'),
123
+ capability_kinds: v4_1.z
124
+ .array(agentCapabilityKind)
125
+ .describe('Capability kinds with at least one configured entry'),
126
+ capability_count: v4_1.z.number().describe('Total configured capabilities across all kinds'),
127
+ tool_count: v4_1.z.number(),
128
+ skill_count: v4_1.z.number(),
129
+ sub_agent_count: v4_1.z.number(),
130
+ mcp_server_count: v4_1.z.number().describe('MCP servers with a URL set'),
131
+ vector_store_count: v4_1.z.number(),
132
+ task_count: v4_1.z.number(),
133
+ trigger_count: v4_1.z.number().describe('Configured chat integrations; draft channels excluded'),
134
+ status: agentStatus,
135
+ }),
136
+ },
137
+ AGENT_EXECUTION_COUNT: {
138
+ name: 'Agent execution count',
139
+ description: 'Six-hourly pulse of aggregate agent usage, bucketed by agent, run type and optional user. event_version 2 added run_type; version 1 rows are a mix of test and production and must not be read as production. token_count is broader than "Agent session metrics".cost_sum: it also covers LLM calls belonging to no single turn (title generation, observational/episodic memory, embeddings).',
140
+ properties: v4_1.z.object({
141
+ event_version: v4_1.z.literal('2'),
142
+ agent_id: v4_1.z.string(),
143
+ user_id: v4_1.z
144
+ .string()
145
+ .optional()
146
+ .describe('Present only for runs with an n8n user — absent for chat integrations and cron'),
147
+ run_type: agentRunType,
148
+ message_count: v4_1.z
149
+ .number()
150
+ .describe('Fresh top-level user turns; delegated child runs excluded'),
151
+ token_count: v4_1.z
152
+ .number()
153
+ .describe('Includes LLM calls belonging to no turn (title generation, memory, embeddings), so runs higher than "Agent session metrics".token_count_sum'),
154
+ tool_call_count: v4_1.z.number(),
155
+ }),
156
+ },
157
+ AGENT_SESSION_METRICS: {
158
+ name: 'Agent session metrics',
159
+ description: 'Six-hourly pulse of agent session and turn metrics, bucketed by agent, run type, turn status and configuration. Two token numbers exist across the agent events and they measure different things: token_count_sum here covers only the recorded turns, from the same usage as cost_sum so the two reconcile, while token_count on "Agent execution count" additionally covers LLM calls belonging to no turn (title generation, observational/episodic memory, embeddings) and so runs higher.',
160
+ properties: v4_1.z.object({
161
+ event_version: v4_1.z.literal('1'),
162
+ agent_id: v4_1.z.string(),
163
+ agent_type: v4_1.z.literal('inline').optional(),
164
+ run_type: agentRunType,
165
+ turn_status: v4_1.z.enum(['succeeded', 'failed']),
166
+ session_count: v4_1.z.number(),
167
+ turn_count: v4_1.z.number(),
168
+ latency_ms_sum: v4_1.z.number(),
169
+ cost_sum: v4_1.z.number(),
170
+ token_count_sum: v4_1.z
171
+ .number()
172
+ .describe('Recorded-turn tokens only; reconciles with cost_sum, unlike token_count'),
173
+ tool_call_count_sum: v4_1.z.number(),
174
+ num_skills_sum: v4_1.z.number(),
175
+ ...agentConfigurationTelemetry,
176
+ }),
177
+ },
178
+ BUILDER_CREATED_AGENT: {
179
+ name: 'Builder created agent',
180
+ description: 'The Instance AI builder was the first surface to configure an agent. One of three same-shaped creation events ("User created agent", "MCP created agent") — union them for total agent creation, or read one for that surface alone. Emitted from `AgentConfigService.updateConfig` on the agent\'s first configuring write, so the builder minting an agent row emits nothing and a build that fails before writing config never counts. event_version 2 replaced thread_id with user_id, moved the emit from the frontend-facing delegate wrapper to the config-save path, and added the write profile.',
181
+ properties: v4_1.z.object({
182
+ ...agentWrite,
183
+ event_version: v4_1.z.literal('2'),
184
+ }),
185
+ },
186
+ USER_CREATED_AGENT: {
187
+ name: 'User created agent',
188
+ description: 'A user was the first surface to configure an agent, from the editor. One of three same-shaped creation events ("Builder created agent", "MCP created agent") — union them for total agent creation, or read one for that surface alone. Emitted from `AgentConfigService.updateConfig` on the agent\'s first configuring write: agents are created lazily and the row alone emits nothing, so this fires when the agent gains a model, instructions or a capability rather than on the click, and an abandoned new-agent flow never counts. A rename or an icon change does not qualify. "User clicked new agent" carries the same agent_id, so the two join into a click-to-creation funnel whose gap is abandoned flows. event_version 2 dropped source (editor-only knowledge, still on the click event), added project_id, user_id and the write profile, and moved the emit to the backend.',
189
+ properties: v4_1.z.object({
190
+ ...agentWrite,
191
+ event_version: v4_1.z.literal('2'),
192
+ }),
193
+ },
194
+ MCP_CREATED_AGENT: {
195
+ name: 'MCP created agent',
196
+ description: 'An MCP client was the first surface to configure an agent, through the `create_agent` or `mutate_agent` tool. One of three same-shaped creation events ("User created agent", "Builder created agent") — union them for total agent creation, or read one for that surface alone. Emitted from `AgentConfigService.updateConfig` on the agent\'s first configuring write, so a `create_agent` call carrying no initial config emits nothing until something configures the agent. The coarser "User called mcp tool" event also fires for the same call.',
197
+ properties: v4_1.z.object({
198
+ ...agentWrite,
199
+ event_version: v4_1.z.literal('1'),
200
+ }),
201
+ },
202
+ USER_MODIFIED_AGENT: {
203
+ name: 'User modified agent',
204
+ description: 'A user saved a change to an agent that was already configured, from the editor. One of three same-shaped modification events ("Builder modified agent", "MCP modified agent") — union them for total agent modification, or read one for that surface alone. Emitted once per save from `AgentConfigService.updateConfig`; a save that changed nothing emits nothing, and the agent\'s first configuring write emits the matching creation event instead — so a write is never counted as both, and this event is not inflated by every agent\'s birth. The capability counts mirror "Agent setup completed", so a profile at each modification lines up with the profile at setup completion. Replaces the per-part "User edited agent config" and the per-item "User added/removed tools/skills/tasks" and "User added/removed agent tool" events, which fired several times for a single save and never covered the builder or MCP.',
205
+ properties: v4_1.z.object({
206
+ ...agentWrite,
207
+ event_version: v4_1.z.literal('1'),
208
+ }),
209
+ },
210
+ BUILDER_MODIFIED_AGENT: {
211
+ name: 'Builder modified agent',
212
+ description: 'The Instance AI builder saved a change to an agent that was already configured. One of three same-shaped modification events ("User modified agent", "MCP modified agent") — union them for total agent modification, or read one for that surface alone. Emitted once per save from `AgentConfigService.updateConfig`; a save that changed nothing emits nothing, and the agent\'s first configuring write emits "Builder created agent" instead. The capability counts mirror "Agent setup completed", so a profile at each modification lines up with the profile at setup completion. Replaces the per-item "Builder added tools/skills to agent" and "Builder removed tasks from agent" events.',
213
+ properties: v4_1.z.object({
214
+ ...agentWrite,
215
+ event_version: v4_1.z.literal('1'),
216
+ }),
217
+ },
218
+ MCP_MODIFIED_AGENT: {
219
+ name: 'MCP modified agent',
220
+ description: 'An MCP client saved a change to an agent that was already configured, through the `create_agent` or `mutate_agent` tool. One of three same-shaped modification events ("User modified agent", "Builder modified agent") — union them for total agent modification, or read one for that surface alone. Emitted once per save from `AgentConfigService.updateConfig`; a save that changed nothing emits nothing, and the agent\'s first configuring write emits "MCP created agent" instead. The capability counts mirror "Agent setup completed", so a profile at each modification lines up with the profile at setup completion. This surface had no modification telemetry before. The coarser "User called mcp tool" event also fires for the same call.',
221
+ properties: v4_1.z.object({
222
+ ...agentWrite,
223
+ event_version: v4_1.z.literal('1'),
224
+ }),
225
+ },
226
+ USER_PUBLISHED_AGENT: {
227
+ name: 'User published agent',
228
+ description: 'A user explicitly published an agent version, making it the active one. One of three same-shaped publish events ("Builder published agent", "MCP published agent") — union them for total agent publishing, or read one for that surface alone. Emitted from `AgentPublishService.publishAgent`; an idempotent no-op publish emits nothing. `republish` identifies a rollback to an older snapshot; `channel_connect` and `slack_setup` are retained only as historical trigger values. event_version 2 moved the emit from the frontend to the backend, which replaced the editor-only scope (version-history publishes were missing) with every user surface, dropped config_version, status and session_id, and added project_id, user_id, trigger, version_id and the capability profile.',
229
+ properties: v4_1.z.object({
230
+ ...agentPublish,
231
+ event_version: v4_1.z.literal('2'),
232
+ }),
233
+ },
234
+ BUILDER_PUBLISHED_AGENT: {
235
+ name: 'Builder published agent',
236
+ description: 'The Instance AI builder published an agent version through its publish_agent tool. One of three same-shaped publish events ("User published agent", "MCP published agent") — union them for total agent publishing, or read one for that surface alone. Emitted from `AgentPublishService.publishAgent`; an idempotent no-op publish emits nothing.',
237
+ properties: v4_1.z.object({
238
+ ...agentPublish,
239
+ event_version: v4_1.z.literal('1'),
240
+ }),
241
+ },
242
+ MCP_PUBLISHED_AGENT: {
243
+ name: 'MCP published agent',
244
+ description: 'An MCP client explicitly published an agent version through the `publish_agent` tool. One of three same-shaped publish events ("User published agent", "Builder published agent") — union them for total agent publishing, or read one for that surface alone. Emitted from `AgentPublishService.publishAgent`; an idempotent no-op publish emits nothing. Before this event existed these publishes were reported as "Agent published" with source "builder", so they were indistinguishable from Instance AI builder publishes.',
245
+ properties: v4_1.z.object({
246
+ ...agentPublish,
247
+ event_version: v4_1.z.literal('1'),
248
+ }),
249
+ },
250
+ USER_UNPUBLISHED_AGENT: {
251
+ name: 'User unpublished agent',
252
+ description: 'A user unpublished an agent, clearing its active version. One of three same-shaped unpublish events ("Builder unpublished agent", "MCP unpublished agent") — union them for total agent unpublishing, or read one for that surface alone. Emitted from `AgentPublishService.unpublishAgent`. Unlike the publish events these carry no trigger (there is one way to unpublish) and no capability profile. event_version 2 moved the emit from the frontend to the backend and replaced status and session_id with project_id and user_id.',
253
+ properties: v4_1.z.object({
254
+ ...agentActorIdentity,
255
+ event_version: v4_1.z.literal('2'),
256
+ }),
257
+ },
258
+ BUILDER_UNPUBLISHED_AGENT: {
259
+ name: 'Builder unpublished agent',
260
+ description: 'The Instance AI builder unpublished an agent through its unpublish_agent tool. One of three same-shaped unpublish events ("User unpublished agent", "MCP unpublished agent") — union them for total agent unpublishing, or read one for that surface alone. Emitted from `AgentPublishService.unpublishAgent`.',
261
+ properties: v4_1.z.object({
262
+ ...agentActorIdentity,
263
+ event_version: v4_1.z.literal('1'),
264
+ }),
265
+ },
266
+ MCP_UNPUBLISHED_AGENT: {
267
+ name: 'MCP unpublished agent',
268
+ description: 'An MCP client unpublished an agent through the `unpublish_agent` tool. One of three same-shaped unpublish events ("User unpublished agent", "Builder unpublished agent") — union them for total agent unpublishing, or read one for that surface alone. Emitted from `AgentPublishService.unpublishAgent`. Before this event existed these unpublishes were reported as "Agent unpublished" with source "builder", so they were indistinguishable from Instance AI builder unpublishes.',
269
+ properties: v4_1.z.object({
270
+ ...agentActorIdentity,
271
+ event_version: v4_1.z.literal('1'),
272
+ }),
273
+ },
274
+ INSTANCE_AI_OPENED_FROM_AGENT_PREVIEW: {
275
+ name: 'Instance AI opened from agent preview',
276
+ description: 'The user handed a preview chat session off to Instance AI from the agent builder preview panel.',
277
+ properties: v4_1.z.object({
278
+ agent_id: v4_1.z.string(),
279
+ preview_thread_id: v4_1.z.string(),
280
+ preview_execution_id: v4_1.z.string().optional(),
281
+ }),
282
+ },
283
+ USER_GAVE_MCP_ACCESS_TO_AGENT: {
284
+ name: 'User gave MCP access to agent',
285
+ description: 'An agent was exposed over MCP. The sibling "User gave MCP access to workflow" and "User toggled MCP access" events are not registered.',
286
+ properties: v4_1.z.object({
287
+ agent_id: v4_1.z.string(),
288
+ }),
289
+ },
290
+ USER_SELECTED_AGENTS_FOR_MCP: {
291
+ name: 'User selected agent from list',
292
+ description: 'The user confirmed a bulk agent selection in the MCP connect-agents dialog. Property is camelCase for warehouse continuity with existing rows.',
293
+ properties: v4_1.z.object({
294
+ agentIds: v4_1.z.array(v4_1.z.string()),
295
+ count: v4_1.z.number(),
296
+ }),
297
+ },
298
+ USER_DISMISSED_MCP_AGENTS_DIALOG: {
299
+ name: 'User dismissed mcp agents dialog',
300
+ description: 'The user closed the MCP connect-agents dialog without confirming a selection.',
301
+ properties: v4_1.z.object({}),
302
+ },
303
+ USER_CLICKED_CONNECT_AGENTS_FROM_MCP_SETTINGS: {
304
+ name: 'User clicked connect agents from mcp settings',
305
+ description: 'The user opened the MCP connect-agents dialog from the MCP settings page.',
306
+ properties: v4_1.z.object({}),
307
+ },
308
+ BUILDER_ADDED_TASKS: {
309
+ name: 'Builder added tasks to agent',
310
+ description: 'The Instance AI builder created a scheduled task through the `create_tasks` tool. That path persists outside `AgentConfigService.updateConfig`, so it is not covered by "Builder modified agent" — this event stays until the task write path is folded in.',
311
+ properties: v4_1.z.object({
312
+ ...builderSessionIdentity,
313
+ task_added: v4_1.z.string().describe('Identifier of the newly added task'),
314
+ tasks: v4_1.z.array(v4_1.z.string()).describe('Full task identifier list after the save'),
315
+ status: builderPreWriteStatus,
316
+ }),
317
+ },
318
+ BUILDER_ADDED_TRIGGER: {
319
+ name: 'Builder added trigger to agent',
320
+ description: 'The Instance AI builder configured and persisted a chat channel for the target agent through the configure_channel tool, mirroring the frontend "User added trigger to agent" event.',
321
+ properties: v4_1.z.object({
322
+ ...builderSessionIdentity,
323
+ trigger_type: v4_1.z.string().describe('Chat integration type that was configured and persisted'),
324
+ }),
325
+ },
326
+ BUILDER_ASKED_QUESTIONS: {
327
+ name: 'Builder asked questions',
328
+ description: 'The Instance AI builder used the ask_questions tool and suspended, showing the user a batch of questions to determine the shape of the agent.',
329
+ properties: v4_1.z.object({
330
+ ...builderSessionIdentity,
331
+ question_count: v4_1.z.number(),
332
+ question_types: v4_1.z.array(v4_1.z.string()).describe('Distinct question types in the batch'),
333
+ }),
334
+ },
335
+ USER_ANSWERED_BUILDER_QUESTIONS: {
336
+ name: 'User answered builder questions',
337
+ description: 'The user resumed a builder ask_questions card by answering, skipping, or dismissing it.',
338
+ properties: v4_1.z.object({
339
+ ...builderSessionIdentity,
340
+ outcome: v4_1.z.enum(['answered', 'skipped', 'dismissed']),
341
+ answered_count: v4_1.z.number(),
342
+ skipped_count: v4_1.z.number(),
343
+ }),
344
+ },
345
+ BUILDER_REQUESTED_CREDENTIAL: {
346
+ name: 'Builder requested credential',
347
+ description: 'The Instance AI builder used the ask_credential (or ask_embedding_credential) tool and suspended to show a credential picker card. Does not fire when the request auto-resolves without showing a card.',
348
+ properties: v4_1.z.object({
349
+ ...builderSessionIdentity,
350
+ credential_type: v4_1.z.string(),
351
+ }),
352
+ },
353
+ USER_PROVIDED_CREDENTIAL: {
354
+ name: 'User provided credential',
355
+ description: 'The user resumed a builder credential picker card by selecting a credential or skipping.',
356
+ properties: v4_1.z.object({
357
+ ...builderSessionIdentity,
358
+ credential_type: v4_1.z.string(),
359
+ outcome: v4_1.z.enum(['provided', 'skipped']),
360
+ }),
361
+ },
362
+ USER_CLICKED_NEW_AGENT: {
363
+ name: 'User clicked new agent',
364
+ description: 'The user clicked a new-agent entry point (button, dropdown, or card). No agent exists at this point — `agent_id` is the id minted for the click, which whichever path later persists the agent creates it under, so this joins to the eventual creation event. Clicks with no matching creation are abandoned new-agent flows.',
365
+ properties: v4_1.z.object({
366
+ source: v4_1.z.enum(['button', 'dropdown', 'card']),
367
+ agent_id: v4_1.z.string().describe('Minted at the click; no agent row exists yet'),
368
+ session_id: sessionId,
369
+ }),
370
+ },
371
+ USER_SUBMITTED_MESSAGE_TO_AGENT: {
372
+ name: 'User submitted message to agent',
373
+ description: 'The user sent a test-mode chat message to an agent, with a fingerprint of the agent config at send time.',
374
+ properties: v4_1.z.object({
375
+ agent_id: v4_1.z.string(),
376
+ mode: v4_1.z.literal('test').describe('Constant dimension kept for warehouse-schema stability'),
377
+ status: agentStatus,
378
+ agent_config: agentConfigFingerprint,
379
+ session_id: sessionId,
380
+ }),
381
+ },
382
+ USER_ADDED_TRIGGER_TO_AGENT: {
383
+ name: 'User added trigger to agent',
384
+ description: 'The user configured and persisted a chat trigger from the agent builder.',
385
+ properties: v4_1.z.object({
386
+ agent_id: v4_1.z.string(),
387
+ trigger_type: v4_1.z.string(),
388
+ triggers: v4_1.z.array(v4_1.z.string()).describe('Configured trigger types after the change'),
389
+ config_version: v4_1.z.string(),
390
+ status: agentStatus,
391
+ session_id: sessionId,
392
+ }),
393
+ },
394
+ USER_OPENED_AGENT_TOOL: {
395
+ name: 'User opened agent tool',
396
+ description: 'The user opened a tool from the builder capabilities list.',
397
+ properties: v4_1.z.object({
398
+ agent_id: v4_1.z.string(),
399
+ tool_type: v4_1.z.string(),
400
+ session_id: sessionId,
401
+ }),
402
+ },
403
+ USER_OPENED_AGENT_SKILL: {
404
+ name: 'User opened agent skill',
405
+ description: 'The user opened a skill from the builder capabilities list.',
406
+ properties: v4_1.z.object({
407
+ agent_id: v4_1.z.string(),
408
+ skill_id: v4_1.z.string(),
409
+ session_id: sessionId,
410
+ }),
411
+ },
412
+ USER_OPENED_ADD_SKILL_MODAL: {
413
+ name: 'User opened add skill modal',
414
+ description: 'The user opened the add-skill modal in the builder.',
415
+ properties: v4_1.z.object({
416
+ agent_id: v4_1.z.string(),
417
+ session_id: sessionId,
418
+ }),
419
+ },
420
+ USER_IMPORTED_AGENT_SKILL: {
421
+ name: 'User imported agent skill',
422
+ description: 'The user imported a skill into an agent from a skill file or folder, with success or error outcome.',
423
+ properties: v4_1.z.object({
424
+ agent_id: v4_1.z.string(),
425
+ source: v4_1.z.enum(['skill_file', 'folder']),
426
+ status: v4_1.z.enum(['success', 'error']),
427
+ reference_count: v4_1.z.number(),
428
+ error: v4_1.z.string().optional(),
429
+ session_id: sessionId,
430
+ }),
431
+ },
432
+ USER_STARTED_ADDING_AGENT_TOOL: {
433
+ name: 'User started adding agent tool',
434
+ description: 'The user clicked Connect on an available row in the tools modal, starting a new tool flow.',
435
+ properties: v4_1.z.object({
436
+ tool_type: v4_1.z.enum(['custom', 'workflow', 'node']),
437
+ source: v4_1.z.literal('manual'),
438
+ agent_id: optionalAgentId,
439
+ }),
440
+ },
441
+ USER_EDITED_AGENT_TOOL: {
442
+ name: 'User edited agent tool',
443
+ description: "An existing agent tool's configuration was saved from the tools modal.",
444
+ properties: v4_1.z.object({
445
+ tool_type: v4_1.z.enum(['custom', 'workflow', 'node']),
446
+ ...toolIdentity,
447
+ agent_id: optionalAgentId,
448
+ }),
449
+ },
450
+ USER_OPENED_AGENT_PREVIEW: {
451
+ name: 'User opened agent preview',
452
+ description: 'The user opened the agent preview panel in the builder.',
453
+ properties: v4_1.z.object({
454
+ agent_id: v4_1.z.string(),
455
+ }),
456
+ },
457
+ USER_SAVED_AGENT_SKILL: {
458
+ name: 'User saved agent skill',
459
+ description: 'An agent skill autosave completed in the builder.',
460
+ properties: v4_1.z.object({
461
+ agent_id: v4_1.z.string(),
462
+ skill_id: v4_1.z.string(),
463
+ }),
464
+ },
465
+ });
466
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/events/agents.ts"],"names":[],"mappings":"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"}