mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-31 16:57:08 +02:00
feat(editor): Update agent events (no-changelog) (#30620)
This commit is contained in:
parent
784a56dcf5
commit
76cdf993bf
|
|
@ -104,6 +104,9 @@ vi.mock('../composables/useAgentBuilderTelemetry', () => ({
|
|||
flushConfigEdits: vi.fn(),
|
||||
trackToolsAdded: vi.fn(),
|
||||
trackSkillsAdded: vi.fn(),
|
||||
trackOpenedToolFromList: vi.fn(),
|
||||
trackOpenedSkillFromList: vi.fn(),
|
||||
trackOpenedAddSkillModal: vi.fn(),
|
||||
}),
|
||||
}));
|
||||
|
||||
|
|
|
|||
|
|
@ -145,4 +145,30 @@ describe('useAgentTelemetry', () => {
|
|||
session_id: 'session-xyz',
|
||||
});
|
||||
});
|
||||
|
||||
it('trackOpenedToolFromList fires with agent_id and tool_type', () => {
|
||||
useAgentTelemetry().trackOpenedToolFromList({ agentId: 'ag-1', toolType: 'node' });
|
||||
expect(trackMock).toHaveBeenCalledWith('User opened agent tool', {
|
||||
agent_id: 'ag-1',
|
||||
tool_type: 'node',
|
||||
session_id: 'session-xyz',
|
||||
});
|
||||
});
|
||||
|
||||
it('trackOpenedSkillFromList fires with agent_id and skill_id', () => {
|
||||
useAgentTelemetry().trackOpenedSkillFromList({ agentId: 'ag-1', skillId: 'skill-42' });
|
||||
expect(trackMock).toHaveBeenCalledWith('User opened agent skill', {
|
||||
agent_id: 'ag-1',
|
||||
skill_id: 'skill-42',
|
||||
session_id: 'session-xyz',
|
||||
});
|
||||
});
|
||||
|
||||
it('trackOpenedAddSkillModal fires with agent_id', () => {
|
||||
useAgentTelemetry().trackOpenedAddSkillModal({ agentId: 'ag-1' });
|
||||
expect(trackMock).toHaveBeenCalledWith('User opened add skill modal', {
|
||||
agent_id: 'ag-1',
|
||||
session_id: 'session-xyz',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -289,6 +289,18 @@ export function useAgentBuilderTelemetry(deps: AgentBuilderTelemetryDeps) {
|
|||
previousSkills = [];
|
||||
}
|
||||
|
||||
function trackOpenedToolFromList(toolType: string) {
|
||||
agentTelemetry.trackOpenedToolFromList({ agentId: deps.agentId.value, toolType });
|
||||
}
|
||||
|
||||
function trackOpenedSkillFromList(skillId: string) {
|
||||
agentTelemetry.trackOpenedSkillFromList({ agentId: deps.agentId.value, skillId });
|
||||
}
|
||||
|
||||
function trackOpenedAddSkillModal() {
|
||||
agentTelemetry.trackOpenedAddSkillModal({ agentId: deps.agentId.value });
|
||||
}
|
||||
|
||||
return {
|
||||
recordConfigEdit,
|
||||
flushConfigEdits,
|
||||
|
|
@ -300,5 +312,8 @@ export function useAgentBuilderTelemetry(deps: AgentBuilderTelemetryDeps) {
|
|||
captureSkillsBaseline,
|
||||
fetchInitialTriggersBaseline,
|
||||
resetForAgentSwitch,
|
||||
trackOpenedToolFromList,
|
||||
trackOpenedSkillFromList,
|
||||
trackOpenedAddSkillModal,
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,6 +134,29 @@ export function useAgentTelemetry() {
|
|||
});
|
||||
}
|
||||
|
||||
function trackOpenedToolFromList(params: { agentId: string; toolType: string }) {
|
||||
safeTrack('User opened agent tool', {
|
||||
agent_id: params.agentId,
|
||||
tool_type: params.toolType,
|
||||
...common(),
|
||||
});
|
||||
}
|
||||
|
||||
function trackOpenedSkillFromList(params: { agentId: string; skillId: string }) {
|
||||
safeTrack('User opened agent skill', {
|
||||
agent_id: params.agentId,
|
||||
skill_id: params.skillId,
|
||||
...common(),
|
||||
});
|
||||
}
|
||||
|
||||
function trackOpenedAddSkillModal(params: { agentId: string }) {
|
||||
safeTrack('User opened add skill modal', {
|
||||
agent_id: params.agentId,
|
||||
...common(),
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
trackClickedNewAgent,
|
||||
trackSubmittedMessage,
|
||||
|
|
@ -143,5 +166,8 @@ export function useAgentTelemetry() {
|
|||
trackAddedSkills,
|
||||
trackPublishedAgent,
|
||||
trackUnpublishedAgent,
|
||||
trackOpenedToolFromList,
|
||||
trackOpenedSkillFromList,
|
||||
trackOpenedAddSkillModal,
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -366,7 +366,6 @@ async function saveSkill(snapshot: SkillAutosaveSnapshot): Promise<void> {
|
|||
const configAutosave = useAgentConfigAutosave<ConfigAutosaveSnapshot>({
|
||||
save: saveConfig,
|
||||
onSaved: () => {
|
||||
telemetry.track('User saved agent settings', { agent_id: agentId.value });
|
||||
builderTelemetry.flushConfigEdits();
|
||||
// Diff the saved tool/skill lists against the last baseline. No-op when
|
||||
// nothing new landed, so calling on every save also handles the build-chat
|
||||
|
|
@ -638,6 +637,7 @@ function onOpenToolFromList(index: number) {
|
|||
const tools = localConfig.value?.tools ?? [];
|
||||
const tool = tools[index];
|
||||
if (!tool) return;
|
||||
builderTelemetry.trackOpenedToolFromList(tool.type);
|
||||
const customTool = tool.type === 'custom' && tool.id ? agent.value?.tools?.[tool.id] : undefined;
|
||||
uiStore.openModalWithData({
|
||||
name: AGENT_TOOL_CONFIG_MODAL_KEY,
|
||||
|
|
@ -683,6 +683,7 @@ const appliedSkills = computed<Array<{ id: string; skill: AgentSkill }>>(() => {
|
|||
function onOpenSkillFromList(id: string) {
|
||||
const skill = appliedSkills.value.find((s) => s.id === id)?.skill;
|
||||
if (!skill) return;
|
||||
builderTelemetry.trackOpenedSkillFromList(id);
|
||||
uiStore.openModalWithData({
|
||||
name: AGENT_SKILL_MODAL_KEY,
|
||||
data: {
|
||||
|
|
@ -726,6 +727,7 @@ function onRemoveSkill(id: string) {
|
|||
}
|
||||
|
||||
function onOpenAddSkillModal() {
|
||||
builderTelemetry.trackOpenedAddSkillModal();
|
||||
uiStore.openModalWithData({
|
||||
name: AGENT_SKILL_MODAL_KEY,
|
||||
data: {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user