Add versioned telemetry events

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
dotta 2026-04-03 07:32:54 -05:00
parent 2ac40aba56
commit 37b6ad42ea
16 changed files with 577 additions and 0 deletions

View file

@ -58,6 +58,7 @@ export class TelemetryClient {
app,
schemaVersion,
installId: state.installId,
version: this.version,
events,
}),
signal: controller.signal,

View file

@ -23,6 +23,48 @@ export function trackCompanyImported(
});
}
export function trackProjectCreated(client: TelemetryClient): void {
client.track("project.created");
}
export function trackRoutineCreated(client: TelemetryClient): void {
client.track("routine.created");
}
export function trackRoutineRun(
client: TelemetryClient,
dims: { source: string; status: string },
): void {
client.track("routine.run", {
source: dims.source,
status: dims.status,
});
}
export function trackGoalCreated(
client: TelemetryClient,
dims?: { goalLevel?: string | null },
): void {
client.track("goal.created", dims?.goalLevel ? { goal_level: dims.goalLevel } : undefined);
}
export function trackAgentCreated(
client: TelemetryClient,
dims: { agentRole: string },
): void {
client.track("agent.created", { agent_role: dims.agentRole });
}
export function trackSkillImported(
client: TelemetryClient,
dims: { sourceType: string; skillRef?: string | null },
): void {
client.track("skill.imported", {
source_type: dims.sourceType,
...(dims.skillRef ? { skill_ref: dims.skillRef } : {}),
});
}
export function trackAgentFirstHeartbeat(
client: TelemetryClient,
dims: { agentRole: string },

View file

@ -5,6 +5,12 @@ export {
trackInstallStarted,
trackInstallCompleted,
trackCompanyImported,
trackProjectCreated,
trackRoutineCreated,
trackRoutineRun,
trackGoalCreated,
trackAgentCreated,
trackSkillImported,
trackAgentFirstHeartbeat,
trackAgentTaskCompleted,
trackErrorHandlerCrash,

View file

@ -24,6 +24,7 @@ export interface TelemetryEventEnvelope {
app: string;
schemaVersion: string;
installId: string;
version: string;
events: TelemetryEvent[];
}
@ -31,6 +32,12 @@ export type TelemetryEventName =
| "install.started"
| "install.completed"
| "company.imported"
| "project.created"
| "routine.created"
| "routine.run"
| "goal.created"
| "agent.created"
| "skill.imported"
| "agent.first_heartbeat"
| "agent.task_completed"
| "error.handler_crash"