fix: honor telemetry for Cloudflare attribution headers

This commit is contained in:
Mario Zechner
2026-04-27 23:49:14 +02:00
parent d6e08b3da0
commit fbb5eed191
5 changed files with 27 additions and 24 deletions

View File

@@ -2,6 +2,10 @@
## [Unreleased]
### Fixed
- Fixed Cloudflare Workers AI attribution headers to honor the install telemetry setting.
## [0.70.5] - 2026-04-27
### Fixed

View File

@@ -125,21 +125,29 @@ function getDefaultAgentDir(): string {
return getAgentDir();
}
function getOpenRouterAttributionHeaders(
function getAttributionHeaders(
model: Model<any>,
settingsManager: SettingsManager,
): Record<string, string> | undefined {
if (!isInstallTelemetryEnabled(settingsManager)) {
return undefined;
}
if (model.provider !== "openrouter" && !model.baseUrl.includes("openrouter.ai")) {
return undefined;
if (model.provider === "openrouter" || model.baseUrl.includes("openrouter.ai")) {
return {
"HTTP-Referer": "https://pi.dev",
"X-OpenRouter-Title": "pi",
"X-OpenRouter-Categories": "cli-agent",
};
}
return {
"HTTP-Referer": "https://pi.dev",
"X-OpenRouter-Title": "pi",
"X-OpenRouter-Categories": "cli-agent",
};
if (model.provider === "cloudflare-workers-ai" || model.baseUrl.includes("api.cloudflare.com")) {
return {
"User-Agent": "pi-coding-agent",
};
}
return undefined;
}
/**
@@ -316,7 +324,7 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
throw new Error(auth.error);
}
const providerRetrySettings = settingsManager.getProviderRetrySettings();
const openRouterAttributionHeaders = getOpenRouterAttributionHeaders(model, settingsManager);
const attributionHeaders = getAttributionHeaders(model, settingsManager);
return streamSimple(model, context, {
...options,
apiKey: auth.apiKey,
@@ -324,8 +332,8 @@ export async function createAgentSession(options: CreateAgentSessionOptions = {}
maxRetries: options?.maxRetries ?? providerRetrySettings.maxRetries,
maxRetryDelayMs: options?.maxRetryDelayMs ?? providerRetrySettings.maxRetryDelayMs,
headers:
openRouterAttributionHeaders || auth.headers || options?.headers
? { ...openRouterAttributionHeaders, ...auth.headers, ...options?.headers }
attributionHeaders || auth.headers || options?.headers
? { ...attributionHeaders, ...auth.headers, ...options?.headers }
: undefined,
});
},