feat(editor): Update agent events (no-changelog) (#30620)

This commit is contained in:
yehorkardash 2026-05-19 10:59:13 +03:00 committed by GitHub
parent 784a56dcf5
commit 76cdf993bf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 73 additions and 1 deletions

View File

@ -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(),
}),
}));

View File

@ -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',
});
});
});

View File

@ -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,
};
}

View File

@ -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,
};
}

View File

@ -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: {