From 6b22b1f4909dac6f6ad46b27fecf84bb8432775f Mon Sep 17 00:00:00 2001 From: decolua Date: Fri, 16 Jan 2026 12:39:03 +0700 Subject: [PATCH] Fix Kiro token refresh logic --- open-sse/executors/kiro.js | 31 +++++++------------------------ src/lib/usageDb.js | 7 +++++++ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/open-sse/executors/kiro.js b/open-sse/executors/kiro.js index 2c71237c..996f819b 100644 --- a/open-sse/executors/kiro.js +++ b/open-sse/executors/kiro.js @@ -1,6 +1,7 @@ import { BaseExecutor } from "./base.js"; import { PROVIDERS } from "../config/constants.js"; import { v4 as uuidv4 } from "uuid"; +import { refreshKiroToken } from "../services/tokenRefresh.js"; /** * KiroExecutor - Executor for Kiro AI (AWS CodeWhisperer) @@ -319,31 +320,13 @@ export class KiroExecutor extends BaseExecutor { if (!credentials.refreshToken) return null; try { - const response = await fetch(this.config.tokenUrl, { - method: "POST", - headers: { - "Content-Type": "application/json", - "User-Agent": "kiro-cli/1.0.0" - }, - body: JSON.stringify({ - refreshToken: credentials.refreshToken - }) - }); + // Use centralized refreshKiroToken function (handles both AWS SSO OIDC and Social Auth) + const result = await refreshKiroToken( + credentials.refreshToken, + credentials.providerSpecificData, + log + ); - if (!response.ok) { - log?.error?.("TOKEN", `Kiro refresh failed: ${response.status}`); - return null; - } - - const data = await response.json(); - - const result = { - accessToken: data.accessToken, - refreshToken: data.refreshToken || credentials.refreshToken, - expiresIn: data.expiresIn || 3600 - }; - - log?.info?.("TOKEN", "Kiro token refreshed"); return result; } catch (error) { log?.error?.("TOKEN", `Kiro refresh error: ${error.message}`); diff --git a/src/lib/usageDb.js b/src/lib/usageDb.js index 195ebbaa..40123c17 100644 --- a/src/lib/usageDb.js +++ b/src/lib/usageDb.js @@ -228,6 +228,13 @@ export async function appendRequestLog({ model, provider, connectionId, tokens, const line = `${timestamp} | ${m} | ${p} | ${account} | ${sent} | ${received} | ${status}\n`; fs.appendFileSync(LOG_FILE, line); + + // Trim to keep only last 200 lines + const content = fs.readFileSync(LOG_FILE, "utf-8"); + const lines = content.trim().split("\n"); + if (lines.length > 200) { + fs.writeFileSync(LOG_FILE, lines.slice(-200).join("\n") + "\n"); + } } catch (error) { console.error("Failed to append to log.txt:", error.message); }