{"version":3,"sources":["../src/telemetry/posthog.ts"],"names":["createHash","os","PostHog"],"mappings":";;;;;;;;;;;AAIA,IAAM,eAAA,GAAkB,iDAAA;AACxB,IAAM,YAAA,GAAe,wBAAA;AACrB,IAAM,yCAAyB,IAAI,GAAA,CAAI,CAAC,GAAA,EAAK,MAAA,EAAQ,KAAK,CAAC,CAAA;AAE3D,IAAI,MAAA,GAAyB,IAAA;AAMtB,SAAS,oBAAA,GAAgC;AAC9C,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,2BAA2B,CAAA;AACrD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,CAAC,sBAAA,CAAuB,GAAA,CAAI,MAAM,IAAA,EAAK,CAAE,aAAa,CAAA;AAC/D;AAEO,SAAS,mBAAmB,KAAA,EAAuB;AACxD,EAAA,OAAOA,kBAAW,QAAQ,CAAA,CAAE,OAAO,KAAK,CAAA,CAAE,OAAO,KAAK,CAAA;AACxD;AAEA,SAAS,iBAAA,GAA4B;AACnC,EAAA,OAAO,kBAAA,CAAmBC,oBAAG,QAAA,EAAS,IAAK,cAAc,CAAA,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AACxE;AAEO,SAAS,gCAAA,GAA2C;AACzD,EAAA,OAAO,CAAA,OAAA,EAAU,mBAAmB,CAAA,CAAA;AACtC;AAEA,SAAS,SAAA,GAA4B;AACnC,EAAA,IAAI,CAAC,sBAAqB,EAAG;AAC3B,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAA,GAAS,IAAIC,oBAAQ,eAAA,EAAiB;AAAA,MACpC,IAAA,EAAM,YAAA;AAAA,MACN,OAAA,EAAS,CAAA;AAAA,MACT,aAAA,EAAe,CAAA;AAAA,MACf,YAAA,EAAc;AAAA,KACf,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,mBAAA,GAA+C;AACtD,EAAA,OAAO;AAAA,IACL,IAAI,OAAA,CAAQ,QAAA;AAAA,IACZ,UAAA,EAAYD,oBAAG,OAAA,EAAQ;AAAA,IACvB,cAAc,OAAA,CAAQ,OAAA;AAAA,IACtB,UAAU,OAAA,CAAQ,IAAA;AAAA,IAClB,YAAY,iBAAA,EAAkB;AAAA,IAC9B,cAAA,EAAgB,OAAA,CAAQ,GAAA,CAAI,qBAAqB,CAAA,IAAK;AAAA,GACxD;AACF;AAEO,SAAS,qBAAA,CACd,KAAA,EACA,UAAA,EACA,UAAA,EACM;AACN,EAAA,IAAI;AACF,IAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,CAAQ,OAAA,CAAQ;AAAA,MACd,UAAA,EAAY,cAAc,gCAAA,EAAiC;AAAA,MAC3D,KAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,GAAG,mBAAA,EAAoB;AAAA,QACvB,GAAG;AAAA;AACL,KACD,CAAA;AAAA,EACH,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAEO,SAAS,cAAA,CACd,KAAA,EACA,UAAA,EACA,UAAA,EACM;AACN,EAAA,qBAAA,CAAsB,KAAA,EAAO,YAAY,UAAU,CAAA;AACrD","file":"chunk-OEW7GS6U.cjs","sourcesContent":["import { createHash } from 'node:crypto';\nimport os from 'node:os';\nimport { PostHog } from 'posthog-node';\n\nconst POSTHOG_API_KEY = 'phc_SBLpZVAB6jmHOct9CABq3PF0Yn5FU3G2FgT4xUr2XrT';\nconst POSTHOG_HOST = 'https://us.posthog.com';\nconst TRUTHY_DISABLED_VALUES = new Set(['1', 'true', 'yes']);\n\nlet client: PostHog | null = null;\n\nexport type EEEventName = 'ee_license_check' | 'ee_feature_used';\n\nexport type TelemetryEventName = EEEventName | 'mastra_model_token_usage';\n\nexport function isEETelemetryEnabled(): boolean {\n const value = process.env['MASTRA_TELEMETRY_DISABLED'];\n if (!value) {\n return true;\n }\n return !TRUTHY_DISABLED_VALUES.has(value.trim().toLowerCase());\n}\n\nexport function hashTelemetryValue(value: string): string {\n return createHash('sha256').update(value).digest('hex');\n}\n\nfunction getHashedHostname(): string {\n return hashTelemetryValue(os.hostname() || 'unknown-host').slice(0, 16);\n}\n\nexport function getEETelemetryFallbackDistinctId(): string {\n return `mastra-${getHashedHostname()}`;\n}\n\nfunction getClient(): PostHog | null {\n if (!isEETelemetryEnabled()) {\n return null;\n }\n\n if (!client) {\n client = new PostHog(POSTHOG_API_KEY, {\n host: POSTHOG_HOST,\n flushAt: 1,\n flushInterval: 0,\n disableGeoip: false,\n });\n }\n\n return client;\n}\n\nfunction getSystemProperties(): Record {\n return {\n os: process.platform,\n os_version: os.release(),\n node_version: process.version,\n platform: process.arch,\n machine_id: getHashedHostname(),\n mastra_version: process.env['npm_package_version'] || 'unknown',\n };\n}\n\nexport function captureTelemetryEvent(\n event: TelemetryEventName,\n distinctId: string | undefined,\n properties?: Record,\n): void {\n try {\n const posthog = getClient();\n if (!posthog) {\n return;\n }\n\n posthog.capture({\n distinctId: distinctId || getEETelemetryFallbackDistinctId(),\n event,\n properties: {\n ...getSystemProperties(),\n ...properties,\n },\n });\n } catch {\n // Telemetry must never affect auth or EE feature behavior.\n }\n}\n\nexport function captureEEEvent(\n event: EEEventName,\n distinctId: string | undefined,\n properties?: Record,\n): void {\n captureTelemetryEvent(event, distinctId, properties);\n}\n\nexport function resetEETelemetryForTests(): void {\n client = null;\n}\n"]}