From 7a8a38ac6f1ef0f98b491f5b4c7443dfe76d6656 Mon Sep 17 00:00:00 2001 From: Zhiqiang ZHOU Date: Thu, 19 Jun 2025 23:20:31 -0700 Subject: [PATCH 1/2] feat: identidy jan for openrouter Signed-off-by: Zhiqiang ZHOU --- .../engine-management-extension/resources/openrouter.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/engine-management-extension/resources/openrouter.json b/extensions/engine-management-extension/resources/openrouter.json index 798199708..0eeb516d4 100644 --- a/extensions/engine-management-extension/resources/openrouter.json +++ b/extensions/engine-management-extension/resources/openrouter.json @@ -6,7 +6,7 @@ "api_key": "", "metadata": { "get_models_url": "https://openrouter.ai/api/v1/models", - "header_template": "Authorization: Bearer {{api_key}}", + "header_template": "Authorization: Bearer {{api_key}} HTTP-Referer: https://jan.ai X-Title: Jan", "transform_req": { "chat_completions": { "url": "https://openrouter.ai/api/v1/chat/completions", From aa7775225a36f009d38f1f925d00c443cae28e8e Mon Sep 17 00:00:00 2001 From: Zhiqiang ZHOU Date: Fri, 20 Jun 2025 12:39:18 -0700 Subject: [PATCH 2/2] chore: change how headers affect Signed-off-by: Zhiqiang ZHOU --- .../resources/openrouter.json | 2 +- web-app/src/lib/completion.ts | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/extensions/engine-management-extension/resources/openrouter.json b/extensions/engine-management-extension/resources/openrouter.json index 0eeb516d4..798199708 100644 --- a/extensions/engine-management-extension/resources/openrouter.json +++ b/extensions/engine-management-extension/resources/openrouter.json @@ -6,7 +6,7 @@ "api_key": "", "metadata": { "get_models_url": "https://openrouter.ai/api/v1/models", - "header_template": "Authorization: Bearer {{api_key}} HTTP-Referer: https://jan.ai X-Title: Jan", + "header_template": "Authorization: Bearer {{api_key}}", "transform_req": { "chat_completions": { "url": "https://openrouter.ai/api/v1/chat/completions", diff --git a/web-app/src/lib/completion.ts b/web-app/src/lib/completion.ts index 24daec3cd..e14642a26 100644 --- a/web-app/src/lib/completion.ts +++ b/web-app/src/lib/completion.ts @@ -129,6 +129,14 @@ export const sendCompletion = async ( apiKey: provider.api_key ?? (await invoke('app_token')), // TODO: Retrieve from extension settings baseURL: provider.base_url, + // OpenRouter identification headers for Jan + // ref: https://openrouter.ai/docs/api-reference/overview#headers + ...(provider.provider === 'openrouter' && { + defaultHeaders: { + 'HTTP-Referer': 'https://jan.ai', + 'X-Title': 'Jan', + }, + }), }) if ( thread.model.id && @@ -277,10 +285,10 @@ export const extractToolCall = ( * @param calls * @param builder * @param message - * @param content - * @param approvedTools - Record of approved tools per thread - * @param showModal - Function to show approval modal, returns true if approved - * @param allowAllMCPPermissions - Global setting to allow all MCP permissions without modal + * @param abortController + * @param approvedTools + * @param showModal + * @param allowAllMCPPermissions */ export const postMessageProcessing = async ( calls: ChatCompletionMessageToolCall[],