UNPKG

@copilotkit/runtime

Version:

<img src="https://github.com/user-attachments/assets/0a6b64d9-e193-4940-a3f6-60334ac34084" alt="banner" style="border-radius: 12px; border: 2px solid #d6d4fa;" />

66 lines (64 loc) 2.44 kB
import "reflect-metadata"; import { __toESM } from "../../../_virtual/_rolldown/runtime.mjs"; import { require_package } from "../../../runtime/package.mjs"; import { lambdaClient, parseAndWarnTelemetryId } from "@copilotkit/shared"; //#region src/v2/runtime/telemetry/telemetry-client.ts var import_package = /* @__PURE__ */ __toESM(require_package()); function isTelemetryDisabled$1() { return process.env.COPILOTKIT_TELEMETRY_DISABLED === "true" || process.env.COPILOTKIT_TELEMETRY_DISABLED === "1" || process.env.DO_NOT_TRACK === "true" || process.env.DO_NOT_TRACK === "1"; } var TelemetryClient$1 = class { constructor({ telemetryDisabled, sampleRate } = {}) { this.telemetryDisabled = false; this.sampleRate = .05; this.licenseToken = null; this.telemetryId = null; this.globalProperties = {}; this.telemetryDisabled = telemetryDisabled ?? isTelemetryDisabled$1(); this.setSampleRate(sampleRate); } shouldSendEvent() { if (this.sampleRate >= 1) return true; return Math.random() < this.sampleRate; } /** * Add properties carried by every subsequent event. * * Merged rather than replaced, so two callers setting different fields do not * erase each other. Set once at runtime construction in practice; nothing * here is per-request. */ setGlobalProperties(properties) { this.globalProperties = { ...this.globalProperties, ...properties }; } setLicenseToken(licenseToken) { this.licenseToken = licenseToken; this.telemetryId = parseAndWarnTelemetryId(licenseToken); } async capture(event, properties) { if (this.telemetryDisabled) return; if (!this.telemetryId && !this.shouldSendEvent()) return; await lambdaClient.send({ event, properties, globalProperties: this.globalProperties, packageName: import_package.name, packageVersion: import_package.version, licenseToken: this.licenseToken ?? void 0 }); } setSampleRate(sampleRate) { let _sampleRate; _sampleRate = sampleRate ?? .05; if (process.env.COPILOTKIT_TELEMETRY_SAMPLE_RATE) _sampleRate = parseFloat(process.env.COPILOTKIT_TELEMETRY_SAMPLE_RATE); if (Number.isNaN(_sampleRate) || _sampleRate < 0 || _sampleRate > 1) throw new Error("Sample rate must be between 0 and 1"); this.sampleRate = _sampleRate; } }; const telemetry = new TelemetryClient$1(); //#endregion export { telemetry as default, isTelemetryDisabled$1 as isTelemetryDisabled }; //# sourceMappingURL=telemetry-client.mjs.map