diff --git a/packages/core/scripts/build.ts b/packages/core/scripts/build.ts index 38166fa..06e9329 100644 --- a/packages/core/scripts/build.ts +++ b/packages/core/scripts/build.ts @@ -8,6 +8,7 @@ import { pathAliasPlugin } from "./esbuild-plugin-path-alias"; const watch = process.argv.includes("--watch"); // Get the absolute path to the src directory (ES module compatible) +// @ts-ignore const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const baseUrl = path.resolve(__dirname, ".."); diff --git a/packages/core/src/plugins/output/temp-file-handler.ts b/packages/core/src/plugins/output/temp-file-handler.ts index fa1fea5..3265e16 100644 --- a/packages/core/src/plugins/output/temp-file-handler.ts +++ b/packages/core/src/plugins/output/temp-file-handler.ts @@ -41,7 +41,7 @@ export class TempFileOutputHandler implements OutputHandler { this.config = { subdirectory: 'claude-code-router', extension: 'json', - includeTimestamp: true, + includeTimestamp: false, prefix: 'session', ...config }; diff --git a/packages/core/src/plugins/token-speed.ts b/packages/core/src/plugins/token-speed.ts index 60ab745..482338a 100644 --- a/packages/core/src/plugins/token-speed.ts +++ b/packages/core/src/plugins/token-speed.ts @@ -160,13 +160,16 @@ export const tokenSpeedPlugin: CCRPlugin = { // Add onRequest hook to capture actual request start time (before processing) fastify.addHook('onRequest', async (request) => { + const url = new URL(`http://127.0.0.1${request.url}`); + if (!url.pathname.endsWith("/v1/messages")) return; (request as any).requestStartTime = performance.now(); }); // Add onSend hook to intercept both streaming and non-streaming responses fastify.addHook('onSend', async (request, _reply, payload) => { + const startTime = (request as any).requestStartTime; + if (!startTime) return; const requestId = (request as any).id || Date.now().toString(); - const startTime = (request as any).requestStartTime || performance.now(); // Extract session ID from request body metadata let sessionId: string | undefined; @@ -177,8 +180,8 @@ export const tokenSpeedPlugin: CCRPlugin = { sessionId = match ? match[1] : undefined; } } catch (error) { - // Ignore errors extracting session ID } + if (!sessionId) return; // Get tokenizer for this specific request const tokenizer = await getTokenizerForRequest(request);