File size: 1,657 Bytes
3d700dd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 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,
});
}
|