@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;" />
54 lines (52 loc) • 1.97 kB
JavaScript
import "reflect-metadata";
import { require_package } from "../package.mjs";
import { EndpointType } from "./runtime/types.mjs";
import { resolveEndpointType } from "./runtime/copilot-runtime.mjs";
import { TelemetryClient } from "@copilotkit/shared";
import { createHash } from "node:crypto";
//#region src/lib/telemetry-client.ts
const packageJson = require_package();
const telemetryClient = new TelemetryClient({
packageName: packageJson.name,
packageVersion: packageJson.version
});
function getRuntimeInstanceTelemetryInfo(options) {
const runtime = options.runtime;
const remoteEndpoints = runtime.params?.remoteEndpoints ?? [];
const endpointsInfo = remoteEndpoints.reduce((acc, endpoint) => {
let info = { ...acc };
const endpointType = resolveEndpointType(endpoint);
if (!info.endpointTypes.includes(endpointType)) info = {
...info,
endpointTypes: [...info.endpointTypes, endpointType]
};
if (endpointType === EndpointType.LangGraphPlatform) {
const ep = endpoint;
info = {
...info,
agentsAmount: ep.agents.length,
hashedKey: ep.langsmithApiKey ? createHash("sha256").update(ep.langsmithApiKey).digest("hex") : null
};
}
return info;
}, {
endpointTypes: [],
agentsAmount: null,
hashedKey: null
});
const publicApiKey = options.cloud?.publicApiKey;
const apiKeyProvided = !!publicApiKey && publicApiKey.trim().length > 0;
return {
actionsAmount: runtime.params?.actions?.length ?? 0,
endpointsAmount: remoteEndpoints.length,
endpointTypes: endpointsInfo.endpointTypes,
agentsAmount: Object.keys(runtime.instance.agents).length,
hashedLgcKey: endpointsInfo.hashedKey,
"cloud.api_key_provided": apiKeyProvided,
...apiKeyProvided ? { "cloud.public_api_key": publicApiKey } : {},
...options.cloud?.baseUrl ? { "cloud.base_url": options.cloud.baseUrl } : {}
};
}
//#endregion
export { telemetryClient as default, getRuntimeInstanceTelemetryInfo };
//# sourceMappingURL=telemetry-client.mjs.map