Spaces:
Paused
Paused
| import path from "node:path"; | |
| import { | |
| TelemetryClient, | |
| resolveTelemetryConfig, | |
| loadOrCreateState, | |
| } from "@paperclipai/shared/telemetry"; | |
| import { resolvePaperclipInstanceRoot } from "./home-paths.js"; | |
| import { serverVersion } from "./version.js"; | |
| let client: TelemetryClient | null = null; | |
| export function initTelemetry(fileConfig?: { enabled?: boolean }): TelemetryClient | null { | |
| if (client) return client; | |
| const config = resolveTelemetryConfig(fileConfig); | |
| if (!config.enabled) return null; | |
| const stateDir = path.join(resolvePaperclipInstanceRoot(), "telemetry"); | |
| client = new TelemetryClient( | |
| config, | |
| () => loadOrCreateState(stateDir, serverVersion), | |
| serverVersion, | |
| ); | |
| client.startPeriodicFlush(60_000); | |
| return client; | |
| } | |
| export function getTelemetryClient(): TelemetryClient | null { | |
| return client; | |
| } | |