@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;" />
51 lines (49 loc) • 2 kB
JavaScript
import "reflect-metadata";
import { __toESM } from "../../../_virtual/_rolldown/runtime.mjs";
import { require_package } from "../../../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.telemetryDisabled = telemetryDisabled ?? isTelemetryDisabled$1();
this.setSampleRate(sampleRate);
}
shouldSendEvent() {
if (this.sampleRate >= 1) return true;
return Math.random() < this.sampleRate;
}
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,
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