@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;" />
52 lines (50 loc) • 2.05 kB
JavaScript
require("reflect-metadata");
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
const require_package$1 = require('../../../package.cjs');
let _copilotkit_shared = require("@copilotkit/shared");
//#region src/v2/runtime/telemetry/telemetry-client.ts
var import_package = /* @__PURE__ */ require_runtime.__toESM(require_package$1.default);
function isTelemetryDisabled() {
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 = class {
constructor({ telemetryDisabled, sampleRate } = {}) {
this.telemetryDisabled = false;
this.sampleRate = .05;
this.licenseToken = null;
this.telemetryId = null;
this.telemetryDisabled = telemetryDisabled ?? isTelemetryDisabled();
this.setSampleRate(sampleRate);
}
shouldSendEvent() {
if (this.sampleRate >= 1) return true;
return Math.random() < this.sampleRate;
}
setLicenseToken(licenseToken) {
this.licenseToken = licenseToken;
this.telemetryId = (0, _copilotkit_shared.parseAndWarnTelemetryId)(licenseToken);
}
async capture(event, properties) {
if (this.telemetryDisabled) return;
if (!this.telemetryId && !this.shouldSendEvent()) return;
await _copilotkit_shared.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();
//#endregion
exports.default = telemetry;
exports.isTelemetryDisabled = isTelemetryDisabled;
//# sourceMappingURL=telemetry-client.cjs.map