openhands / src /services /cloud-funnel-analytics.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
3d700dd verified
Raw
History Blame Contribute Delete
1.66 kB
import { AGENT_CANVAS_CLIENT_SOURCE } from "#/api/client-source";
import { getBackendTelemetryProperties } from "#/services/telemetry-context";
import { trackEvent } from "#/services/telemetry";
export type CloudConnectionSource =
| "onboarding"
| "add_backend_modal"
| "manage_backends_modal"
| "cloud_auto_connect";
const CLOUD_CONVERSATION_READY_INSERT_ID_PREFIX = `${AGENT_CANVAS_CLIENT_SOURCE}:cloud_conversation_ready`;
function trackCloudFunnelEvent(
event: string,
properties: Record<string, unknown>,
): void {
void trackEvent(event, properties);
}
function cloudLoginBackendContext() {
return getBackendTelemetryProperties({
backendKind: "cloud",
connectionMethod: "cloud_login",
});
}
function cloudConversationBackendContext() {
return getBackendTelemetryProperties({
backendKind: "cloud",
});
}
export function trackCloudDeviceAuthorizationStarted(
_host: string,
source?: CloudConnectionSource,
): void {
trackCloudFunnelEvent("cloud_device_authorization_started", {
...cloudLoginBackendContext(),
source,
});
}
export function trackCloudDeviceAuthorizationSucceeded(
_host: string,
source?: CloudConnectionSource,
): void {
trackCloudFunnelEvent("cloud_device_authorization_succeeded", {
...cloudLoginBackendContext(),
source,
});
}
export function trackCloudConversationReady(
taskId: string,
conversationId: string,
): void {
trackCloudFunnelEvent("cloud_conversation_ready", {
...cloudConversationBackendContext(),
$insert_id: `${CLOUD_CONVERSATION_READY_INSERT_ID_PREFIX}:${taskId}`,
task_id: taskId,
conversation_id: conversationId,
});
}