@n8n/telemetry 1.10.3 → 1.11.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.
@@ -28,6 +28,25 @@ export declare const TELEMETRY_EVENT: {
28
28
  };
29
29
  };
30
30
  AGENTS: {
31
+ readonly USER_RESPONDED_TO_AGENT_TOOL_APPROVAL: {
32
+ readonly name: "User responded to agent tool approval";
33
+ readonly description: "The tool gate accepted a human approval response. Excludes parent forwarding and calls that use an existing session grant. A session grant can still fail to save.";
34
+ readonly properties: import("zod/v4").ZodObject<{
35
+ agent_id: import("zod/v4").ZodString;
36
+ user_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
37
+ run_type: import("zod/v4").ZodEnum<{
38
+ production: "production";
39
+ test: "test";
40
+ }>;
41
+ approved: import("zod/v4").ZodBoolean;
42
+ scope: import("zod/v4").ZodEnum<{
43
+ once: "once";
44
+ session: "session";
45
+ }>;
46
+ }, import("zod/v4/core").$strip>;
47
+ } & import("./define").TelemetryEventInput & {
48
+ readonly getValidationError: (properties: unknown) => string | null;
49
+ };
31
50
  readonly AGENT_SETUP_COMPLETED: {
32
51
  readonly name: "Agent setup completed";
33
52
  readonly 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.";
@@ -1152,6 +1171,7 @@ export declare const TELEMETRY_EVENT: {
1152
1171
  readonly name: "User updated preference";
1153
1172
  readonly description: "A user saved an edit to an existing preference. Fires once the save succeeds. Reports the resulting scope, not the prior one; `scope_changed` tells them apart.";
1154
1173
  readonly properties: import("zod/v4").ZodObject<{
1174
+ user_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
1155
1175
  scope_type: import("zod/v4").ZodEnum<{
1156
1176
  instance: "instance";
1157
1177
  project: "project";
@@ -1173,6 +1193,7 @@ export declare const TELEMETRY_EVENT: {
1173
1193
  readonly name: "User deleted preferences";
1174
1194
  readonly description: "A user deleted one or more preferences. One event covers a single row action and a bulk delete; `source` tells them apart and `count` carries how many went. Fires after the delete succeeds and the confirmation was accepted.";
1175
1195
  readonly properties: import("zod/v4").ZodObject<{
1196
+ user_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
1176
1197
  count: import("zod/v4").ZodNumber;
1177
1198
  source: import("zod/v4").ZodEnum<{
1178
1199
  bulk: "bulk";
@@ -1197,6 +1218,7 @@ export declare const TELEMETRY_EVENT: {
1197
1218
  readonly name: "Preferences applied to a turn";
1198
1219
  readonly description: "A turn was built with the saved preferences available to it. Fires once for each turn that ran the preferences path, including a turn that applied none, so the share of turns with preferences is computable. CONTEXT-139 fires it.";
1199
1220
  readonly properties: import("zod/v4").ZodObject<{
1221
+ user_id: import("zod/v4").ZodString;
1200
1222
  count: import("zod/v4").ZodNumber;
1201
1223
  scope_types: import("zod/v4").ZodArray<import("zod/v4").ZodEnum<{
1202
1224
  instance: "instance";
@@ -1219,6 +1241,7 @@ export declare const TELEMETRY_EVENT: {
1219
1241
  readonly name: "Preferences read over MCP";
1220
1242
  readonly description: "An MCP client called `get_user_preferences`. Kept apart from `Preferences applied to a turn` because an MCP read is not a turn: n8n hands the text over and never learns whether the client applied it, so the latency and token columns of the turn event would stay empty. Fires on a successful read, including one that found nothing.";
1221
1243
  readonly properties: import("zod/v4").ZodObject<{
1244
+ user_id: import("zod/v4").ZodString;
1222
1245
  count: import("zod/v4").ZodNumber;
1223
1246
  scope_types: import("zod/v4").ZodArray<import("zod/v4").ZodEnum<{
1224
1247
  instance: "instance";
@@ -1235,6 +1258,7 @@ export declare const TELEMETRY_EVENT: {
1235
1258
  readonly name: "Assistant saved preference";
1236
1259
  readonly description: "An AI surface created or updated a preference on the user behalf. The assistant writes first and the chat card is the confirmation, so this fires with the write, before the user has said anything. Kept apart from the UI events so an assistant write is never counted as a person writing in settings.";
1237
1260
  readonly properties: import("zod/v4").ZodObject<{
1261
+ user_id: import("zod/v4").ZodString;
1238
1262
  surface: import("zod/v4").ZodEnum<{
1239
1263
  aia: "aia";
1240
1264
  mcp: "mcp";
@@ -1254,6 +1278,7 @@ export declare const TELEMETRY_EVENT: {
1254
1278
  readonly name: "Preference confirmation shown";
1255
1279
  readonly description: "The assistant saved a preference and the user was given the way to edit or undo it: the chat card, the MCP review form, or, on an MCP client without elicitation, the tool result that tells the client to relay the saved text and the settings link. Fires with the write, whatever the user does next.";
1256
1280
  readonly properties: import("zod/v4").ZodObject<{
1281
+ user_id: import("zod/v4").ZodString;
1257
1282
  surface: import("zod/v4").ZodEnum<{
1258
1283
  aia: "aia";
1259
1284
  mcp: "mcp";
@@ -1290,6 +1315,7 @@ export declare const TELEMETRY_EVENT: {
1290
1315
  readonly name: "Preference confirmation resolved";
1291
1316
  readonly description: "How a preference the assistant saved was settled. `accepted` fires with the write itself: the assistant writes first and silence is agreement, so it is not a user answer. `accepted_after_edit` and `rejected` are the explicit user actions, and either one supersedes the `accepted` already recorded for the same preference: read the last outcome for a preference, not the count of them. A high share of edits and removals means the assistant saves the wrong preferences, and no other number shows that.";
1292
1317
  readonly properties: import("zod/v4").ZodObject<{
1318
+ user_id: import("zod/v4").ZodString;
1293
1319
  surface: import("zod/v4").ZodEnum<{
1294
1320
  aia: "aia";
1295
1321
  mcp: "mcp";
@@ -1313,6 +1339,7 @@ export declare const TELEMETRY_EVENT: {
1313
1339
  readonly name: "Preference scope accepted";
1314
1340
  readonly description: "The scope the user accepted against the scope offered. An accepted write from the assistant reports `user` for both, because the tool writes only `user`. A later move reports the scope the row left as `offered_scope`, so `user` appears there only on the first move off the default. Fires on an accepted assistant write, on every move from the chat card, and on a move from MCP: the review form, or `update_user_preference` with a scope.";
1315
1341
  readonly properties: import("zod/v4").ZodObject<{
1342
+ user_id: import("zod/v4").ZodString;
1316
1343
  surface: import("zod/v4").ZodEnum<{
1317
1344
  aia: "aia";
1318
1345
  mcp: "mcp";
@@ -1336,6 +1363,7 @@ export declare const TELEMETRY_EVENT: {
1336
1363
  readonly name: "Preference write rejected";
1337
1364
  readonly description: "A preference write was refused before it reached the database. Separates a rule the code applied from a user saying no, which is `Preference confirmation resolved`.";
1338
1365
  readonly properties: import("zod/v4").ZodObject<{
1366
+ user_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
1339
1367
  surface: import("zod/v4").ZodEnum<{
1340
1368
  aia: "aia";
1341
1369
  mcp: "mcp";
@@ -1675,6 +1703,39 @@ export declare const TELEMETRY_EVENT: {
1675
1703
  } & import("./define").TelemetryEventInput & {
1676
1704
  readonly getValidationError: (properties: unknown) => string | null;
1677
1705
  };
1706
+ readonly USER_VIEWED_FIX_WITH_ASSISTANT_NUDGE: {
1707
+ readonly name: "User viewed fix with Assistant nudge";
1708
+ readonly description: "The Fix with Assistant button was shown inside a workflow error toast. Fires once for each toast that receives the button.";
1709
+ readonly properties: import("zod/v4").ZodObject<{
1710
+ variant: import("zod/v4").ZodEnum<{
1711
+ control: "control";
1712
+ variant: "variant";
1713
+ }>;
1714
+ '$feature/119_surface_assistant_on_workflow_error': import("zod/v4").ZodEnum<{
1715
+ control: "control";
1716
+ variant: "variant";
1717
+ }>;
1718
+ }, import("zod/v4/core").$strip>;
1719
+ } & import("./define").TelemetryEventInput & {
1720
+ readonly getValidationError: (properties: unknown) => string | null;
1721
+ };
1722
+ readonly USER_CLICKED_ERROR_TOAST_FIX_WITH_ASSISTANT: {
1723
+ readonly name: "User clicked fix with Assistant CTA on error toast";
1724
+ readonly description: "The user clicked the Fix with Assistant button on a workflow error toast. assistant_enabled records whether n8n Assistant was enabled at click time. Enabled opens the Assistant. Disabled opens Assistant settings.";
1725
+ readonly properties: import("zod/v4").ZodObject<{
1726
+ assistant_enabled: import("zod/v4").ZodBoolean;
1727
+ variant: import("zod/v4").ZodEnum<{
1728
+ control: "control";
1729
+ variant: "variant";
1730
+ }>;
1731
+ '$feature/119_surface_assistant_on_workflow_error': import("zod/v4").ZodEnum<{
1732
+ control: "control";
1733
+ variant: "variant";
1734
+ }>;
1735
+ }, import("zod/v4/core").$strip>;
1736
+ } & import("./define").TelemetryEventInput & {
1737
+ readonly getValidationError: (properties: unknown) => string | null;
1738
+ };
1678
1739
  readonly TOOLS_LIST_OPENED: {
1679
1740
  readonly name: "Instance AI tools list opened";
1680
1741
  readonly description: "The user opened the n8n Assistant tools connection modal.";
@@ -1736,16 +1797,22 @@ export declare const TELEMETRY_EVENT: {
1736
1797
  } & import("./define").TelemetryEventInput & {
1737
1798
  readonly getValidationError: (properties: unknown) => string | null;
1738
1799
  };
1739
- readonly MCP_TOOL_FILTER_SETTINGS_UPDATED: {
1740
- readonly name: "Instance AI mcp tool filter settings updated";
1741
- readonly description: "The user updated which tools are enabled for an MCP server.";
1800
+ readonly MCP_TOOL_PERMISSIONS_UPDATED: {
1801
+ readonly name: "User updated Instance AI MCP tool permissions";
1802
+ readonly description: "The user saved changed read, write, or tool-specific permissions for an MCP server.";
1742
1803
  readonly properties: import("zod/v4").ZodObject<{
1743
1804
  server_slug: import("zod/v4").ZodString;
1744
- inclusion_mode: import("zod/v4").ZodEnum<{
1745
- all: "all";
1746
- except: "except";
1747
- selected: "selected";
1805
+ read_permission: import("zod/v4").ZodEnum<{
1806
+ always_allow: "always_allow";
1807
+ blocked: "blocked";
1808
+ require_approval: "require_approval";
1809
+ }>;
1810
+ write_permission: import("zod/v4").ZodEnum<{
1811
+ always_allow: "always_allow";
1812
+ blocked: "blocked";
1813
+ require_approval: "require_approval";
1748
1814
  }>;
1815
+ tool_override_count: import("zod/v4").ZodNumber;
1749
1816
  }, import("zod/v4/core").$strip>;
1750
1817
  } & import("./define").TelemetryEventInput & {
1751
1818
  readonly getValidationError: (properties: unknown) => string | null;
@@ -1820,6 +1887,7 @@ export declare const TELEMETRY_EVENT: {
1820
1887
  "template-view": "template-view";
1821
1888
  unknown: "unknown";
1822
1889
  "website-template": "website-template";
1890
+ workflow_error_nudge: "workflow_error_nudge";
1823
1891
  workflow_list_auto: "workflow_list_auto";
1824
1892
  workflow_list_button: "workflow_list_button";
1825
1893
  }>;
@@ -2179,6 +2247,7 @@ export declare const TELEMETRY_EVENT: {
2179
2247
  "template-view": "template-view";
2180
2248
  unknown: "unknown";
2181
2249
  "website-template": "website-template";
2250
+ workflow_error_nudge: "workflow_error_nudge";
2182
2251
  workflow_list_auto: "workflow_list_auto";
2183
2252
  workflow_list_button: "workflow_list_button";
2184
2253
  }>;
@@ -2510,7 +2579,7 @@ export declare const TELEMETRY_EVENT: {
2510
2579
  };
2511
2580
  readonly AUTO_EXPOSE_NEW_WORKFLOWS_TOGGLED: {
2512
2581
  readonly name: "User toggled auto-expose new workflows to MCP";
2513
- readonly description: "An admin turned the \"Auto-expose new workflows\" MCP setting on or off. Reports the resulting state so enabling and disabling are distinguishable.";
2582
+ readonly description: "An admin turned the \"MCP access for new workflows\" setting on or off. Reports the resulting state so enabling and disabling are distinguishable.";
2514
2583
  readonly properties: import("zod/v4").ZodObject<{
2515
2584
  enabled: import("zod/v4").ZodBoolean;
2516
2585
  source: import("zod/v4").ZodEnum<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/telemetry",
3
- "version": "1.10.3",
3
+ "version": "1.11.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
6
6
  "types": "dist/index.d.ts",
@@ -10,17 +10,18 @@
10
10
  "LICENSE.md"
11
11
  ],
12
12
  "dependencies": {
13
- "@n8n/api-types": "1.42.3",
14
- "@n8n/utils": "1.49.0",
13
+ "@n8n/api-types": "1.43.0",
14
+ "@n8n/utils": "1.50.0",
15
15
  "zod": "3.25.76"
16
16
  },
17
17
  "devDependencies": {
18
- "@n8n/eslint-config": "0.0.1",
18
+ "@n8n/oxlint-config": "0.0.1",
19
19
  "@n8n/typescript-config": "1.12.0",
20
- "@n8n/vitest-config": "1.23.0",
20
+ "@n8n/vitest-config": "1.24.0",
21
21
  "@types/node": "24.10.1",
22
22
  "@vitest/coverage-v8": "5.0.1",
23
- "eslint": "9.29.0",
23
+ "oxlint": "1.78.0",
24
+ "oxlint-tsgolint": "^0.21.1",
24
25
  "typescript": "7.0.2",
25
26
  "vite": "^8.0.2",
26
27
  "vitest": "5.0.1"
@@ -43,8 +44,8 @@
43
44
  "build:unchecked": "tsc -p tsconfig.build.json --noCheck",
44
45
  "format": "biome format --write .",
45
46
  "format:check": "biome ci .",
46
- "lint": "eslint . --quiet",
47
- "lint:fix": "eslint . --fix",
47
+ "lint": "oxlint --quiet",
48
+ "lint:fix": "oxlint --fix",
48
49
  "watch": "tsc -p tsconfig.build.json --watch",
49
50
  "catalog": "pnpm --silent build:unchecked && node bin/catalog.mjs",
50
51
  "test": "vitest run",