diff --git a/.gitignore b/.gitignore index 64dbe07..18a9070 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,6 @@ agentblame-chrome.zip # Build artifacts packages/chrome/agentblame-chrome-*.zip Implementation.md + +# OpenCode local plugin (installed by agentblame init) +.opencode/ diff --git a/packages/chrome/package.json b/packages/chrome/package.json index c49ef4f..7f3ada6 100644 --- a/packages/chrome/package.json +++ b/packages/chrome/package.json @@ -1,6 +1,6 @@ { "name": "@agentblame/chrome", - "version": "0.2.8", + "version": "0.2.9", "description": "Agent Blame Chrome Extension - See AI attribution on GitHub PRs", "private": true, "scripts": { diff --git a/packages/chrome/src/content/analytics-overlay.ts b/packages/chrome/src/content/analytics-overlay.ts index d9f169f..8089a64 100644 --- a/packages/chrome/src/content/analytics-overlay.ts +++ b/packages/chrome/src/content/analytics-overlay.ts @@ -699,28 +699,47 @@ function formatModelName(model: string): string { "claude-3-sonnet": "Claude 3 Sonnet", "claude-3.5-sonnet": "Claude 3.5 Sonnet", "claude-3-haiku": "Claude 3 Haiku", + "claude-sonnet-4": "Claude Sonnet 4", + "claude-opus-4": "Claude Opus 4", + "claude-opus-4-5": "Claude Opus 4.5", + "claude-sonnet-4-5": "Claude Sonnet 4.5", "gpt-4": "GPT-4", "gpt-4o": "GPT-4o", "gpt-4-turbo": "GPT-4 Turbo", + "gpt-5": "GPT-5", + "gpt-5-turbo": "GPT-5 Turbo", }; + // Handle versioned models with date suffixes (e.g., "claude-opus-4-5-20251101") + // Strip the date suffix first, then check known models + const withoutDate = model.replace(/-\d{8}$/, ""); + if (knownModels[withoutDate]) { + return knownModels[withoutDate]; + } + // Check for exact match first if (knownModels[model]) { return knownModels[model]; } - // Handle versioned model names like "claude-opus-4-5-20251101" - // Extract the model family and version, strip the date suffix - const datePattern = /-\d{8}$/; - let cleaned = model.replace(datePattern, ""); + let cleaned = model; - // Convert patterns like "4-5" to "4.5" for version numbers + // Strip date suffix (YYYYMMDD) - matches patterns like "-20251101" at the end + // Also handles cases where it might appear without a leading dash + cleaned = cleaned.replace(/-?\d{8}$/, ""); + + // Convert version patterns like "-4-5" to "-4.5" (major-minor versions) + // This handles claude-opus-4-5 -> claude-opus-4.5 cleaned = cleaned.replace(/-(\d+)-(\d+)$/, "-$1.$2"); - // Title case and replace dashes with spaces + // Also handle version at end without trailing content: "model-4-5" -> "model 4.5" + cleaned = cleaned.replace(/-(\d+)\.(\d+)$/, " $1.$2"); + + // Title case and replace remaining dashes with spaces return cleaned .replace(/-/g, " ") - .replace(/\b\w/g, (c) => c.toUpperCase()); + .replace(/\b\w/g, (c) => c.toUpperCase()) + .trim(); } /** diff --git a/packages/chrome/src/manifest.json b/packages/chrome/src/manifest.json index e0664d5..eae3627 100644 --- a/packages/chrome/src/manifest.json +++ b/packages/chrome/src/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Agent Blame", - "version": "0.2.7", + "version": "0.2.9", "description": "See AI-generated vs human-written code on GitHub PRs", "icons": { "16": "icons/icon16.png", diff --git a/packages/chrome/src/popup/popup.html b/packages/chrome/src/popup/popup.html index 19c4bc1..7c126e2 100644 --- a/packages/chrome/src/popup/popup.html +++ b/packages/chrome/src/popup/popup.html @@ -76,7 +76,7 @@

Agent Blame

diff --git a/packages/cli/package.json b/packages/cli/package.json index 08c52b4..5a5c25c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@mesadev/agentblame", - "version": "0.2.7", + "version": "0.2.9", "description": "CLI to track AI-generated vs human-written code", "license": "Apache-2.0", "repository": {