@n8n/telemetry 1.9.0 → 1.10.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.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/catalog.js +18 -16
- package/dist/catalog.js.map +1 -1
- package/dist/events/agents.d.ts +90 -0
- package/dist/events/agents.js +65 -0
- package/dist/events/agents.js.map +1 -1
- package/dist/events/context.d.ts +81 -5
- package/dist/events/context.js +73 -19
- package/dist/events/context.js.map +1 -1
- package/dist/events/credentials.d.ts +32 -3
- package/dist/events/credentials.js +15 -2
- package/dist/events/credentials.js.map +1 -1
- package/dist/events/instance-ai.d.ts +307 -1
- package/dist/events/instance-ai.js +241 -2
- package/dist/events/instance-ai.js.map +1 -1
- package/dist/events/mcp.d.ts +1 -0
- package/dist/events/mcp.js +1 -1
- package/dist/events/mcp.js.map +1 -1
- package/dist/events/{node-type-policies.d.ts → type-availability-policies.d.ts} +9 -9
- package/dist/events/{node-type-policies.js → type-availability-policies.js} +16 -16
- package/dist/events/type-availability-policies.js.map +1 -0
- package/dist/events/workflow.d.ts +186 -0
- package/dist/events/workflow.js +123 -0
- package/dist/events/workflow.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/registry-checks.js +3 -2
- package/dist/registry-checks.js.map +1 -1
- package/dist/schemas.d.ts +5 -0
- package/dist/schemas.js +8 -0
- package/dist/schemas.js.map +1 -0
- package/dist/setup-properties.d.ts +22 -0
- package/dist/setup-properties.js +18 -0
- package/dist/setup-properties.js.map +1 -0
- package/dist/telemetry-events.d.ts +705 -18
- package/dist/telemetry-events.js +2 -2
- package/dist/telemetry-events.js.map +1 -1
- package/package.json +8 -8
- package/dist/events/node-type-policies.js.map +0 -1
package/dist/events/context.js
CHANGED
|
@@ -3,19 +3,39 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CONTEXT_TELEMETRY = void 0;
|
|
4
4
|
const v4_1 = require("zod/v4");
|
|
5
5
|
const define_1 = require("../define");
|
|
6
|
+
const schemas_1 = require("../schemas");
|
|
6
7
|
const scopeType = v4_1.z
|
|
7
8
|
.enum(['user', 'project', 'instance'])
|
|
8
9
|
.describe('Who the preference applies to: only its author, one project, or the whole instance');
|
|
9
10
|
const textLength = v4_1.z
|
|
10
11
|
.number()
|
|
11
12
|
.describe('Character count of the preference text. The text itself is never reported');
|
|
12
|
-
const
|
|
13
|
+
const surfaceType = v4_1.z
|
|
13
14
|
.enum(['ui', 'aia', 'mcp'])
|
|
14
15
|
.describe('Surface the event came from, with the same values as the `source` column');
|
|
15
|
-
const assistantSurface = v4_1.z
|
|
16
|
-
.enum(['aia', 'mcp'])
|
|
17
|
-
.describe('Assistant surface that acted. The settings area cannot fire this event');
|
|
18
16
|
exports.CONTEXT_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
17
|
+
USER_VIEWED_PREFERENCES: {
|
|
18
|
+
name: 'User viewed preferences',
|
|
19
|
+
description: 'A user opened the preferences list in the Context settings area. Fires on every visit, so it is the first step of the create funnel and the only sign that somebody read their saved preferences without changing one.',
|
|
20
|
+
properties: v4_1.z.object({
|
|
21
|
+
count: v4_1.z
|
|
22
|
+
.number()
|
|
23
|
+
.describe('Preferences the user can see in total, not the number the page showed'),
|
|
24
|
+
scope_types: v4_1.z
|
|
25
|
+
.array(scopeType)
|
|
26
|
+
.describe('Distinct scopes on the page the visit loaded. The list pages at 50 rows, so a longer list reports the scopes of the first page only and does not cover `count`'),
|
|
27
|
+
}),
|
|
28
|
+
},
|
|
29
|
+
USER_OPENED_PREFERENCE_MODAL: {
|
|
30
|
+
name: 'User opened preference modal',
|
|
31
|
+
description: 'A user opened the create or edit dialog on the preferences settings page. Pairs with `User created preference` and `User updated preference`: an open with no save that follows is an abandoned edit, which no other event shows.',
|
|
32
|
+
properties: v4_1.z.object({
|
|
33
|
+
mode: v4_1.z
|
|
34
|
+
.enum(['new', 'edit'])
|
|
35
|
+
.describe('`new` is the Add button. `edit` is the pencil on an existing row'),
|
|
36
|
+
scope_type: scopeType.optional().describe('Scope of the row being edited. Absent on `new`'),
|
|
37
|
+
}),
|
|
38
|
+
},
|
|
19
39
|
USER_CREATED_PREFERENCE: {
|
|
20
40
|
name: 'User created preference',
|
|
21
41
|
description: 'A user saved a new preference from the Context settings area. Fires once the save succeeds, so opening the modal and cancelling reports nothing.',
|
|
@@ -38,6 +58,9 @@ exports.CONTEXT_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
|
38
58
|
.string()
|
|
39
59
|
.optional()
|
|
40
60
|
.describe('Present only when the resulting scope is a project'),
|
|
61
|
+
surface: surfaceType
|
|
62
|
+
.optional()
|
|
63
|
+
.describe('Where the user made the edit: `ui` is the settings page and `aia` the chat card. Absent on a row written before the chat card could edit'),
|
|
41
64
|
}),
|
|
42
65
|
},
|
|
43
66
|
USER_DELETED_PREFERENCES: {
|
|
@@ -46,9 +69,16 @@ exports.CONTEXT_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
|
46
69
|
properties: v4_1.z.object({
|
|
47
70
|
count: v4_1.z.number().describe('How many preferences the operation deleted'),
|
|
48
71
|
source: v4_1.z
|
|
49
|
-
.enum(['row', 'bulk'])
|
|
50
|
-
.describe('`row` is the per-row Delete button
|
|
72
|
+
.enum(['row', 'bulk', 'rejected'])
|
|
73
|
+
.describe('`row` is the per-row Delete button and `bulk` the selection toolbar on the settings page. `rejected` is the Undo on the chat card, Decline on the MCP review form, or the MCP undo tool: the user did not accept a preference the assistant saved, a late refusal of one they first let stand'),
|
|
51
74
|
scope_types: v4_1.z.array(scopeType).describe('Distinct scopes the deleted preferences covered'),
|
|
75
|
+
surface: schemas_1.assistantSurfaceSchema
|
|
76
|
+
.optional()
|
|
77
|
+
.describe('Set on a `rejected` delete, to tell the chat card from an MCP client'),
|
|
78
|
+
seconds_since_saved: v4_1.z
|
|
79
|
+
.number()
|
|
80
|
+
.optional()
|
|
81
|
+
.describe('On a `rejected` delete, how long after the assistant write the user took it back. A short gap means the write itself was wrong, not a later change of mind'),
|
|
52
82
|
}),
|
|
53
83
|
},
|
|
54
84
|
PREFERENCES_APPLIED_TO_TURN: {
|
|
@@ -60,7 +90,7 @@ exports.CONTEXT_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
|
60
90
|
rendered_length: v4_1.z
|
|
61
91
|
.number()
|
|
62
92
|
.describe('Characters in the rendered block. Reviews the caps: a 95th percentile above 8,000 means the caps need new numbers'),
|
|
63
|
-
surface:
|
|
93
|
+
surface: schemas_1.assistantSurfaceSchema.describe('Always `aia`. An MCP client reads through a tool and never reports a turn, so it fires `Preferences read over MCP` instead'),
|
|
64
94
|
injected_this_turn: v4_1.z
|
|
65
95
|
.boolean()
|
|
66
96
|
.describe('False when the text was unchanged and an earlier block in the same conversation still carries it. Shows how often re-injecting on every turn actually costs anything'),
|
|
@@ -74,44 +104,68 @@ exports.CONTEXT_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
|
74
104
|
.describe('Input tokens of the turn, so the cost with and without the block is comparable'),
|
|
75
105
|
}),
|
|
76
106
|
},
|
|
107
|
+
PREFERENCES_READ_OVER_MCP: {
|
|
108
|
+
name: 'Preferences read over MCP',
|
|
109
|
+
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.',
|
|
110
|
+
properties: v4_1.z.object({
|
|
111
|
+
count: v4_1.z.number().describe('Preferences the read returned. 0 when none are saved'),
|
|
112
|
+
scope_types: v4_1.z.array(scopeType).describe('Distinct scopes the returned preferences covered'),
|
|
113
|
+
rendered_length: v4_1.z
|
|
114
|
+
.number()
|
|
115
|
+
.describe('Characters in the rendered block the client received. 0 when nothing is saved. Reviews the caps against the same number the turn event reports'),
|
|
116
|
+
project_scoped: v4_1.z
|
|
117
|
+
.boolean()
|
|
118
|
+
.describe('Whether the call named one project instead of reading every visible project'),
|
|
119
|
+
}),
|
|
120
|
+
},
|
|
77
121
|
ASSISTANT_SAVED_PREFERENCE: {
|
|
78
122
|
name: 'Assistant saved preference',
|
|
79
|
-
description: 'An AI surface created or updated a preference on the user behalf,
|
|
123
|
+
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.',
|
|
80
124
|
properties: v4_1.z.object({
|
|
81
|
-
surface:
|
|
125
|
+
surface: schemas_1.assistantSurfaceSchema,
|
|
82
126
|
scope_type: scopeType,
|
|
83
127
|
text_length: textLength,
|
|
84
128
|
replaced_existing: v4_1.z
|
|
85
129
|
.boolean()
|
|
86
|
-
.describe('Whether the write updated an existing preference instead of adding one'),
|
|
130
|
+
.describe('Whether the write updated an existing preference instead of adding one. Only `update_user_preference` on MCP sets this true. The chat assistant has no update tool, so an `aia` row is always false'),
|
|
87
131
|
}),
|
|
88
132
|
},
|
|
89
133
|
PREFERENCE_CONFIRMATION_SHOWN: {
|
|
90
134
|
name: 'Preference confirmation shown',
|
|
91
|
-
description: 'The assistant
|
|
135
|
+
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.',
|
|
92
136
|
properties: v4_1.z.object({
|
|
93
|
-
surface:
|
|
137
|
+
surface: schemas_1.assistantSurfaceSchema,
|
|
94
138
|
scope_type: scopeType.describe('Scope the assistant offered'),
|
|
95
139
|
text_length: textLength,
|
|
96
140
|
}),
|
|
97
141
|
},
|
|
142
|
+
USER_SAW_PREFERENCE_CARD: {
|
|
143
|
+
name: 'User saw preference card',
|
|
144
|
+
description: 'The preference card rendered in the chat thread. `Preference confirmation shown` fires with the write, so it counts confirmations offered, not confirmations seen. The gap between the two is a write whose card never reached the screen, which an MCP client without a review form always produces.',
|
|
145
|
+
properties: v4_1.z.object({
|
|
146
|
+
scope_type: scopeType.describe('Scope the card names at render time'),
|
|
147
|
+
state: v4_1.z
|
|
148
|
+
.enum(['saved', 'edited', 'undone'])
|
|
149
|
+
.describe('State the card rendered in, so a re-render after an edit is not read as a new write'),
|
|
150
|
+
}),
|
|
151
|
+
},
|
|
98
152
|
PREFERENCE_CONFIRMATION_RESOLVED: {
|
|
99
153
|
name: 'Preference confirmation resolved',
|
|
100
|
-
description: '
|
|
154
|
+
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.',
|
|
101
155
|
properties: v4_1.z.object({
|
|
102
|
-
surface:
|
|
156
|
+
surface: schemas_1.assistantSurfaceSchema,
|
|
103
157
|
outcome: v4_1.z
|
|
104
158
|
.enum(['accepted', 'accepted_after_edit', 'rejected'])
|
|
105
|
-
.describe('`accepted_after_edit` means the user changed the text
|
|
159
|
+
.describe('`accepted` is implicit, fired with the write. `accepted_after_edit` means the user changed the text from the card or the MCP review form. `rejected` means the user took the write back: Undo on the card, Decline on the MCP review form, or the MCP undo tool. The same removal also fires `User deleted preferences` with source `rejected`'),
|
|
106
160
|
scope_type: scopeType.describe('Scope the preference was saved with, or the offered scope on a rejection'),
|
|
107
161
|
text_length: textLength.describe('Character count of the text the user accepted or rejected'),
|
|
108
162
|
}),
|
|
109
163
|
},
|
|
110
164
|
PREFERENCE_SCOPE_ACCEPTED: {
|
|
111
165
|
name: 'Preference scope accepted',
|
|
112
|
-
description: 'The scope the user accepted against the scope the assistant
|
|
166
|
+
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.',
|
|
113
167
|
properties: v4_1.z.object({
|
|
114
|
-
surface:
|
|
168
|
+
surface: schemas_1.assistantSurfaceSchema,
|
|
115
169
|
offered_scope: scopeType,
|
|
116
170
|
accepted_scope: scopeType,
|
|
117
171
|
scope_changed: v4_1.z.boolean().describe('Whether the user moved the write to another scope'),
|
|
@@ -119,9 +173,9 @@ exports.CONTEXT_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
|
119
173
|
},
|
|
120
174
|
PREFERENCE_WRITE_REJECTED: {
|
|
121
175
|
name: 'Preference write rejected',
|
|
122
|
-
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`.
|
|
176
|
+
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`.',
|
|
123
177
|
properties: v4_1.z.object({
|
|
124
|
-
surface,
|
|
178
|
+
surface: surfaceType,
|
|
125
179
|
reason: v4_1.z
|
|
126
180
|
.enum([
|
|
127
181
|
'too_long',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/events/context.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAE3B,sCAAkD;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/events/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
2
|
export declare const CREDENTIALS_TELEMETRY: {
|
|
3
|
+
readonly USER_VIEWED_GATEWAY_CREDITS_CREDENTIAL_ERROR_NUDGE: {
|
|
4
|
+
readonly name: "User viewed Gateway credits credential error nudge";
|
|
5
|
+
readonly description: "The credential modal showed a Gateway credits suggestion after a failed credential test for an eligible workflow node.";
|
|
6
|
+
readonly properties: z.ZodObject<{
|
|
7
|
+
credential_type: z.ZodString;
|
|
8
|
+
node_type: z.ZodString;
|
|
9
|
+
workflow_id: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
} & import("../define").TelemetryEventInput & {
|
|
12
|
+
readonly getValidationError: (properties: unknown) => string | null;
|
|
13
|
+
};
|
|
3
14
|
readonly USER_CREATED_CREDENTIALS: {
|
|
4
15
|
readonly name: "User created credentials";
|
|
5
16
|
readonly description: "A credential was created. The server sets source to backend and reports description metadata. Existing editor events omit these properties. Description text is never included.";
|
|
@@ -29,13 +40,13 @@ export declare const CREDENTIALS_TELEMETRY: {
|
|
|
29
40
|
readonly name: "User updated credentials";
|
|
30
41
|
readonly description: "The server updated a credential through the internal credential API. Description metadata comes from the saved record. Description text is never included.";
|
|
31
42
|
readonly properties: z.ZodObject<{
|
|
32
|
-
has_description: z.ZodBoolean;
|
|
33
|
-
description_length: z.ZodNumber;
|
|
34
43
|
user_id: z.ZodString;
|
|
35
44
|
user_role: z.ZodOptional<z.ZodString>;
|
|
36
45
|
credential_id: z.ZodString;
|
|
37
46
|
credential_type: z.ZodString;
|
|
38
|
-
source: z.ZodLiteral<"backend"
|
|
47
|
+
source: z.ZodOptional<z.ZodLiteral<"backend">>;
|
|
48
|
+
has_description: z.ZodOptional<z.ZodBoolean>;
|
|
49
|
+
description_length: z.ZodOptional<z.ZodNumber>;
|
|
39
50
|
is_private: z.ZodBoolean;
|
|
40
51
|
uses_external_secrets: z.ZodBoolean;
|
|
41
52
|
jwe_enabled: z.ZodBoolean;
|
|
@@ -49,6 +60,15 @@ export declare const CREDENTIALS_TELEMETRY: {
|
|
|
49
60
|
readonly name: "User started credential connection";
|
|
50
61
|
readonly description: "The user started a connection attempt or selected an existing credential in the setup panel. Includes retries.";
|
|
51
62
|
readonly properties: z.ZodObject<{
|
|
63
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
64
|
+
variant: z.ZodOptional<z.ZodEnum<{
|
|
65
|
+
control: "control";
|
|
66
|
+
variant: "variant";
|
|
67
|
+
}>>;
|
|
68
|
+
'$feature/118_instance_ai_setup_overhaul': z.ZodOptional<z.ZodEnum<{
|
|
69
|
+
control: "control";
|
|
70
|
+
variant: "variant";
|
|
71
|
+
}>>;
|
|
52
72
|
source: z.ZodLiteral<"instance_ai_setup_panel">;
|
|
53
73
|
workflow_id: z.ZodString;
|
|
54
74
|
thread_id: z.ZodString;
|
|
@@ -68,6 +88,15 @@ export declare const CREDENTIALS_TELEMETRY: {
|
|
|
68
88
|
readonly name: "User completed credential connection";
|
|
69
89
|
readonly description: "A setup-panel credential was selected or connected and its workflow binding was applied or queued. This does not report workflow validation.";
|
|
70
90
|
readonly properties: z.ZodObject<{
|
|
91
|
+
session_id: z.ZodOptional<z.ZodString>;
|
|
92
|
+
variant: z.ZodOptional<z.ZodEnum<{
|
|
93
|
+
control: "control";
|
|
94
|
+
variant: "variant";
|
|
95
|
+
}>>;
|
|
96
|
+
'$feature/118_instance_ai_setup_overhaul': z.ZodOptional<z.ZodEnum<{
|
|
97
|
+
control: "control";
|
|
98
|
+
variant: "variant";
|
|
99
|
+
}>>;
|
|
71
100
|
source: z.ZodLiteral<"instance_ai_setup_panel">;
|
|
72
101
|
workflow_id: z.ZodString;
|
|
73
102
|
thread_id: z.ZodString;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CREDENTIALS_TELEMETRY = void 0;
|
|
4
4
|
const v4_1 = require("zod/v4");
|
|
5
5
|
const define_1 = require("../define");
|
|
6
|
+
const setup_properties_1 = require("../setup-properties");
|
|
6
7
|
const descriptionProperties = {
|
|
7
8
|
has_description: v4_1.z.boolean().describe('Whether the saved credential has a nonempty description.'),
|
|
8
9
|
description_length: v4_1.z
|
|
@@ -12,6 +13,15 @@ const descriptionProperties = {
|
|
|
12
13
|
.describe('Length of the trimmed, saved description in UTF-16 code units. Zero when absent.'),
|
|
13
14
|
};
|
|
14
15
|
exports.CREDENTIALS_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
16
|
+
USER_VIEWED_GATEWAY_CREDITS_CREDENTIAL_ERROR_NUDGE: {
|
|
17
|
+
name: 'User viewed Gateway credits credential error nudge',
|
|
18
|
+
description: 'The credential modal showed a Gateway credits suggestion after a failed credential test for an eligible workflow node.',
|
|
19
|
+
properties: v4_1.z.object({
|
|
20
|
+
credential_type: v4_1.z.string(),
|
|
21
|
+
node_type: v4_1.z.string(),
|
|
22
|
+
workflow_id: v4_1.z.string().optional(),
|
|
23
|
+
}),
|
|
24
|
+
},
|
|
15
25
|
USER_CREATED_CREDENTIALS: {
|
|
16
26
|
name: 'User created credentials',
|
|
17
27
|
description: 'A credential was created. The server sets source to backend and reports description metadata. Existing editor events omit these properties. Description text is never included.',
|
|
@@ -46,8 +56,9 @@ exports.CREDENTIALS_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
|
46
56
|
user_role: v4_1.z.string().optional(),
|
|
47
57
|
credential_id: v4_1.z.string(),
|
|
48
58
|
credential_type: v4_1.z.string(),
|
|
49
|
-
source: v4_1.z.literal('backend'),
|
|
50
|
-
|
|
59
|
+
source: v4_1.z.literal('backend').optional(),
|
|
60
|
+
has_description: descriptionProperties.has_description.optional(),
|
|
61
|
+
description_length: descriptionProperties.description_length.optional(),
|
|
51
62
|
is_private: v4_1.z.boolean(),
|
|
52
63
|
uses_external_secrets: v4_1.z.boolean(),
|
|
53
64
|
jwe_enabled: v4_1.z.boolean(),
|
|
@@ -59,6 +70,7 @@ exports.CREDENTIALS_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
|
59
70
|
name: 'User started credential connection',
|
|
60
71
|
description: 'The user started a connection attempt or selected an existing credential in the setup panel. Includes retries.',
|
|
61
72
|
properties: v4_1.z.object({
|
|
73
|
+
...setup_properties_1.setupTelemetryProperties,
|
|
62
74
|
source: v4_1.z.literal('instance_ai_setup_panel'),
|
|
63
75
|
workflow_id: v4_1.z.string(),
|
|
64
76
|
thread_id: v4_1.z.string(),
|
|
@@ -70,6 +82,7 @@ exports.CREDENTIALS_TELEMETRY = (0, define_1.defineTelemetryEvents)({
|
|
|
70
82
|
name: 'User completed credential connection',
|
|
71
83
|
description: 'A setup-panel credential was selected or connected and its workflow binding was applied or queued. This does not report workflow validation.',
|
|
72
84
|
properties: v4_1.z.object({
|
|
85
|
+
...setup_properties_1.setupTelemetryProperties,
|
|
73
86
|
source: v4_1.z.literal('instance_ai_setup_panel'),
|
|
74
87
|
workflow_id: v4_1.z.string(),
|
|
75
88
|
thread_id: v4_1.z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/events/credentials.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAE3B,sCAAkD;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/events/credentials.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAE3B,sCAAkD;AAClD,0DAA+D;AAE/D,MAAM,qBAAqB,GAAG;IAC7B,eAAe,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACjG,kBAAkB,EAAE,MAAC;SACnB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,CAAC,kFAAkF,CAAC;CAC9F,CAAC;AAEW,QAAA,qBAAqB,GAAG,IAAA,8BAAqB,EAAC;IAC1D,kDAAkD,EAAE;QACnD,IAAI,EAAE,oDAAoD;QAC1D,WAAW,EACV,wHAAwH;QACzH,UAAU,EAAE,MAAC,CAAC,MAAM,CAAC;YACpB,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE;YAC3B,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE;YACrB,WAAW,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAClC,CAAC;KACF;IACD,wBAAwB,EAAE;QACzB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACV,iLAAiL;QAClL,UAAU,EAAE,MAAC,CAAC,MAAM,CAAC;YACpB,aAAa,EAAE,MAAC,CAAC,MAAM,EAAE;YACzB,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE;YAC3B,MAAM,EAAE,MAAC;iBACP,OAAO,CAAC,SAAS,CAAC;iBAClB,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;YAChE,UAAU,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACtF,eAAe,EAAE,qBAAqB,CAAC,eAAe,CAAC,QAAQ,EAAE;YACjE,kBAAkB,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YACvE,OAAO,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,UAAU,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,YAAY,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,WAAW,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC7C,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YACxF,UAAU,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAClC,qBAAqB,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC7C,WAAW,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACnC,gCAAgC,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACxD,4BAA4B,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACpD,CAAC;KACF;IACD,wBAAwB,EAAE;QACzB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACV,4JAA4J;QAC7J,UAAU,EAAE,MAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,MAAC,CAAC,MAAM,EAAE;YACnB,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,aAAa,EAAE,MAAC,CAAC,MAAM,EAAE;YACzB,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE;YAC3B,MAAM,EAAE,MAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;YACvC,eAAe,EAAE,qBAAqB,CAAC,eAAe,CAAC,QAAQ,EAAE;YACjE,kBAAkB,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YACvE,UAAU,EAAE,MAAC,CAAC,OAAO,EAAE;YACvB,qBAAqB,EAAE,MAAC,CAAC,OAAO,EAAE;YAClC,WAAW,EAAE,MAAC,CAAC,OAAO,EAAE;YACxB,gCAAgC,EAAE,MAAC,CAAC,OAAO,EAAE;YAC7C,4BAA4B,EAAE,MAAC,CAAC,OAAO,EAAE;SACzC,CAAC;KACF;IACD,kCAAkC,EAAE;QACnC,IAAI,EAAE,oCAAoC;QAC1C,WAAW,EACV,gHAAgH;QACjH,UAAU,EAAE,MAAC,CAAC,MAAM,CAAC;YACpB,GAAG,2CAAwB;YAC3B,MAAM,EAAE,MAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;YAC5C,WAAW,EAAE,MAAC,CAAC,MAAM,EAAE;YACvB,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE;YACrB,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE;YAC3B,MAAM,EAAE,MAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;SACvE,CAAC;KACF;IACD,oCAAoC,EAAE;QACrC,IAAI,EAAE,sCAAsC;QAC5C,WAAW,EACV,8IAA8I;QAC/I,UAAU,EAAE,MAAC,CAAC,MAAM,CAAC;YACpB,GAAG,2CAAwB;YAC3B,MAAM,EAAE,MAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;YAC5C,WAAW,EAAE,MAAC,CAAC,MAAM,EAAE;YACvB,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE;YACrB,eAAe,EAAE,MAAC,CAAC,MAAM,EAAE;YAC3B,aAAa,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACpC,MAAM,EAAE,MAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACvE,aAAa,EAAE,MAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;SACpD,CAAC;KACF;IACD,sBAAsB,EAAE;QACvB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACV,0VAA0V;QAC3V,UAAU,EAAE,MAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,MAAC,CAAC,MAAM,EAAE;YACnB,aAAa,EAAE,MAAC,CAAC,MAAM,EAAE;YACzB,OAAO,EAAE,MAAC;iBACR,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;iBAC5C,QAAQ,CACR,wPAAwP,CACxP;SACF,CAAC;KACF;CACD,CAAC,CAAC"}
|