Merge v0.2.1 release into main
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.2.1 - 2026-07-24
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Claude Opus 5 is available
|
||||||
|
|
||||||
## 0.2.0 - 2026-07-24
|
## 0.2.0 - 2026-07-24
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
Generated
+21
-21
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "paseo",
|
"name": "paseo",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "paseo",
|
"name": "paseo",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
@@ -35211,7 +35211,7 @@
|
|||||||
},
|
},
|
||||||
"packages/app": {
|
"packages/app": {
|
||||||
"name": "@getpaseo/app",
|
"name": "@getpaseo/app",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@codemirror/commands": "6.10.4",
|
"@codemirror/commands": "6.10.4",
|
||||||
"@codemirror/language": "6.12.4",
|
"@codemirror/language": "6.12.4",
|
||||||
@@ -36236,12 +36236,12 @@
|
|||||||
},
|
},
|
||||||
"packages/cli": {
|
"packages/cli": {
|
||||||
"name": "@getpaseo/cli",
|
"name": "@getpaseo/cli",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@clack/prompts": "^1.0.0",
|
"@clack/prompts": "^1.0.0",
|
||||||
"@getpaseo/client": "0.2.0",
|
"@getpaseo/client": "0.2.1",
|
||||||
"@getpaseo/protocol": "0.2.0",
|
"@getpaseo/protocol": "0.2.1",
|
||||||
"@getpaseo/server": "0.2.0",
|
"@getpaseo/server": "0.2.1",
|
||||||
"chalk": "^5.3.0",
|
"chalk": "^5.3.0",
|
||||||
"commander": "^12.0.0",
|
"commander": "^12.0.0",
|
||||||
"mime-types": "^2.1.35",
|
"mime-types": "^2.1.35",
|
||||||
@@ -36488,10 +36488,10 @@
|
|||||||
},
|
},
|
||||||
"packages/client": {
|
"packages/client": {
|
||||||
"name": "@getpaseo/client",
|
"name": "@getpaseo/client",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@getpaseo/protocol": "0.2.0",
|
"@getpaseo/protocol": "0.2.1",
|
||||||
"@getpaseo/relay": "0.2.0",
|
"@getpaseo/relay": "0.2.1",
|
||||||
"zod": "^4.4.3"
|
"zod": "^4.4.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -36502,7 +36502,7 @@
|
|||||||
},
|
},
|
||||||
"packages/desktop": {
|
"packages/desktop": {
|
||||||
"name": "@getpaseo/desktop",
|
"name": "@getpaseo/desktop",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@getpaseo/cli": "*",
|
"@getpaseo/cli": "*",
|
||||||
@@ -36745,7 +36745,7 @@
|
|||||||
},
|
},
|
||||||
"packages/expo-two-way-audio": {
|
"packages/expo-two-way-audio": {
|
||||||
"name": "@getpaseo/expo-two-way-audio",
|
"name": "@getpaseo/expo-two-way-audio",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.5.14",
|
"@types/jest": "^29.5.14",
|
||||||
@@ -37641,7 +37641,7 @@
|
|||||||
},
|
},
|
||||||
"packages/highlight": {
|
"packages/highlight": {
|
||||||
"name": "@getpaseo/highlight",
|
"name": "@getpaseo/highlight",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@codemirror/language": "6.12.4",
|
"@codemirror/language": "6.12.4",
|
||||||
"@codemirror/legacy-modes": "^6.5.3",
|
"@codemirror/legacy-modes": "^6.5.3",
|
||||||
@@ -37873,7 +37873,7 @@
|
|||||||
},
|
},
|
||||||
"packages/protocol": {
|
"packages/protocol": {
|
||||||
"name": "@getpaseo/protocol",
|
"name": "@getpaseo/protocol",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"zod": "^4.4.3"
|
"zod": "^4.4.3"
|
||||||
},
|
},
|
||||||
@@ -37886,7 +37886,7 @@
|
|||||||
},
|
},
|
||||||
"packages/relay": {
|
"packages/relay": {
|
||||||
"name": "@getpaseo/relay",
|
"name": "@getpaseo/relay",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"base64-js": "^1.5.1",
|
"base64-js": "^1.5.1",
|
||||||
"tweetnacl": "^1.0.3",
|
"tweetnacl": "^1.0.3",
|
||||||
@@ -38104,15 +38104,15 @@
|
|||||||
},
|
},
|
||||||
"packages/server": {
|
"packages/server": {
|
||||||
"name": "@getpaseo/server",
|
"name": "@getpaseo/server",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@agentclientprotocol/sdk": "^0.17.1",
|
"@agentclientprotocol/sdk": "^0.17.1",
|
||||||
"@anthropic-ai/claude-agent-sdk": "^0.3.214",
|
"@anthropic-ai/claude-agent-sdk": "^0.3.214",
|
||||||
"@anthropic-ai/sdk": "^0.104.2",
|
"@anthropic-ai/sdk": "^0.104.2",
|
||||||
"@getpaseo/client": "0.2.0",
|
"@getpaseo/client": "0.2.1",
|
||||||
"@getpaseo/highlight": "0.2.0",
|
"@getpaseo/highlight": "0.2.1",
|
||||||
"@getpaseo/protocol": "0.2.0",
|
"@getpaseo/protocol": "0.2.1",
|
||||||
"@getpaseo/relay": "0.2.0",
|
"@getpaseo/relay": "0.2.1",
|
||||||
"@isaacs/ttlcache": "^2.1.4",
|
"@isaacs/ttlcache": "^2.1.4",
|
||||||
"@modelcontextprotocol/sdk": "^1.20.1",
|
"@modelcontextprotocol/sdk": "^1.20.1",
|
||||||
"@opencode-ai/sdk": "1.14.46",
|
"@opencode-ai/sdk": "1.14.46",
|
||||||
@@ -38649,7 +38649,7 @@
|
|||||||
},
|
},
|
||||||
"packages/website": {
|
"packages/website": {
|
||||||
"name": "@getpaseo/website",
|
"name": "@getpaseo/website",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@cloudflare/vite-plugin": "^1.29.1",
|
"@cloudflare/vite-plugin": "^1.29.1",
|
||||||
"@cloudflare/workers-types": "^4.20260317.1",
|
"@cloudflare/workers-types": "^4.20260317.1",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "paseo",
|
"name": "paseo",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Paseo: voice-controlled development environment for local AI coding agents",
|
"description": "Paseo: voice-controlled development environment for local AI coding agents",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/app",
|
"name": "@getpaseo/app",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"main": "index.ts",
|
"main": "index.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/cli",
|
"name": "@getpaseo/cli",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"description": "Paseo CLI - control your AI coding agents from the command line",
|
"description": "Paseo CLI - control your AI coding agents from the command line",
|
||||||
"bin": {
|
"bin": {
|
||||||
"paseo": "bin/paseo"
|
"paseo": "bin/paseo"
|
||||||
@@ -28,9 +28,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@clack/prompts": "^1.0.0",
|
"@clack/prompts": "^1.0.0",
|
||||||
"@getpaseo/client": "0.2.0",
|
"@getpaseo/client": "0.2.1",
|
||||||
"@getpaseo/protocol": "0.2.0",
|
"@getpaseo/protocol": "0.2.1",
|
||||||
"@getpaseo/server": "0.2.0",
|
"@getpaseo/server": "0.2.1",
|
||||||
"chalk": "^5.3.0",
|
"chalk": "^5.3.0",
|
||||||
"commander": "^12.0.0",
|
"commander": "^12.0.0",
|
||||||
"mime-types": "^2.1.35",
|
"mime-types": "^2.1.35",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/client",
|
"name": "@getpaseo/client",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"description": "Paseo client SDK package",
|
"description": "Paseo client SDK package",
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
@@ -35,8 +35,8 @@
|
|||||||
"test": "vitest run"
|
"test": "vitest run"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@getpaseo/protocol": "0.2.0",
|
"@getpaseo/protocol": "0.2.1",
|
||||||
"@getpaseo/relay": "0.2.0",
|
"@getpaseo/relay": "0.2.1",
|
||||||
"zod": "^4.4.3"
|
"zod": "^4.4.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/desktop",
|
"name": "@getpaseo/desktop",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Paseo desktop app (Electron wrapper)",
|
"description": "Paseo desktop app (Electron wrapper)",
|
||||||
"homepage": "https://paseo.sh",
|
"homepage": "https://paseo.sh",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/expo-two-way-audio",
|
"name": "@getpaseo/expo-two-way-audio",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"description": "Native module for two way audio streaming",
|
"description": "Native module for two way audio streaming",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ExpoTwoWayAudio",
|
"ExpoTwoWayAudio",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/highlight",
|
"name": "@getpaseo/highlight",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
"!dist/**/*.map"
|
"!dist/**/*.map"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/protocol",
|
"name": "@getpaseo/protocol",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"description": "Paseo shared protocol schemas and wire types",
|
"description": "Paseo shared protocol schemas and wire types",
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/relay",
|
"name": "@getpaseo/relay",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"description": "Paseo relay for bridging daemon and client connections",
|
"description": "Paseo relay for bridging daemon and client connections",
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/server",
|
"name": "@getpaseo/server",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"description": "Paseo backend server",
|
"description": "Paseo backend server",
|
||||||
"files": [
|
"files": [
|
||||||
"dist/server",
|
"dist/server",
|
||||||
@@ -67,10 +67,10 @@
|
|||||||
"@agentclientprotocol/sdk": "^0.17.1",
|
"@agentclientprotocol/sdk": "^0.17.1",
|
||||||
"@anthropic-ai/claude-agent-sdk": "^0.3.214",
|
"@anthropic-ai/claude-agent-sdk": "^0.3.214",
|
||||||
"@anthropic-ai/sdk": "^0.104.2",
|
"@anthropic-ai/sdk": "^0.104.2",
|
||||||
"@getpaseo/client": "0.2.0",
|
"@getpaseo/client": "0.2.1",
|
||||||
"@getpaseo/highlight": "0.2.0",
|
"@getpaseo/highlight": "0.2.1",
|
||||||
"@getpaseo/protocol": "0.2.0",
|
"@getpaseo/protocol": "0.2.1",
|
||||||
"@getpaseo/relay": "0.2.0",
|
"@getpaseo/relay": "0.2.1",
|
||||||
"@isaacs/ttlcache": "^2.1.4",
|
"@isaacs/ttlcache": "^2.1.4",
|
||||||
"@modelcontextprotocol/sdk": "^1.20.1",
|
"@modelcontextprotocol/sdk": "^1.20.1",
|
||||||
"@opencode-ai/sdk": "1.14.46",
|
"@opencode-ai/sdk": "1.14.46",
|
||||||
|
|||||||
@@ -414,6 +414,7 @@ describe("ClaudeAgentClient.fetchCatalog", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
expect(models.map((m) => m.id)).toEqual([
|
expect(models.map((m) => m.id)).toEqual([
|
||||||
|
"claude-opus-5",
|
||||||
"claude-fable-5",
|
"claude-fable-5",
|
||||||
"claude-opus-4-8[1m]",
|
"claude-opus-4-8[1m]",
|
||||||
"claude-opus-4-8",
|
"claude-opus-4-8",
|
||||||
@@ -433,7 +434,7 @@ describe("ClaudeAgentClient.fetchCatalog", () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const defaultModel = models.find((m) => m.isDefault);
|
const defaultModel = models.find((m) => m.isDefault);
|
||||||
expect(defaultModel?.id).toBe("claude-opus-4-8");
|
expect(defaultModel?.id).toBe("claude-opus-5");
|
||||||
} finally {
|
} finally {
|
||||||
await fs.rm(emptyConfigDir, { recursive: true, force: true });
|
await fs.rm(emptyConfigDir, { recursive: true, force: true });
|
||||||
}
|
}
|
||||||
@@ -456,6 +457,7 @@ describe("ClaudeAgentClient.fetchCatalog", () => {
|
|||||||
return models.find((model) => model.id === modelId)?.thinkingOptions?.map(({ id }) => id);
|
return models.find((model) => model.id === modelId)?.thinkingOptions?.map(({ id }) => id);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
expect(getThinkingIds("claude-opus-5")).toContain("ultracode");
|
||||||
expect(getThinkingIds("claude-fable-5")).toContain("ultracode");
|
expect(getThinkingIds("claude-fable-5")).toContain("ultracode");
|
||||||
expect(getThinkingIds("claude-opus-4-8[1m]")).toContain("ultracode");
|
expect(getThinkingIds("claude-opus-4-8[1m]")).toContain("ultracode");
|
||||||
expect(getThinkingIds("claude-opus-4-8")).toContain("ultracode");
|
expect(getThinkingIds("claude-opus-4-8")).toContain("ultracode");
|
||||||
|
|||||||
@@ -30,6 +30,15 @@ export const CLAUDE_DISABLED_THINKING_OPTION_ID = "off";
|
|||||||
export const CLAUDE_ULTRACODE_THINKING_OPTION_ID = "ultracode";
|
export const CLAUDE_ULTRACODE_THINKING_OPTION_ID = "ultracode";
|
||||||
|
|
||||||
export const CLAUDE_MODEL_MANIFEST = [
|
export const CLAUDE_MODEL_MANIFEST = [
|
||||||
|
{
|
||||||
|
id: "claude-opus-5",
|
||||||
|
label: "Opus 5",
|
||||||
|
description: "Opus 5 · Latest release",
|
||||||
|
isDefault: true,
|
||||||
|
contextWindowMaxTokens: 1_000_000,
|
||||||
|
effortLevels: CLAUDE_EFFORT_LEVELS.xhigh,
|
||||||
|
supportsThinkingDisabled: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "claude-fable-5",
|
id: "claude-fable-5",
|
||||||
label: "Fable 5",
|
label: "Fable 5",
|
||||||
@@ -49,8 +58,7 @@ export const CLAUDE_MODEL_MANIFEST = [
|
|||||||
{
|
{
|
||||||
id: "claude-opus-4-8",
|
id: "claude-opus-4-8",
|
||||||
label: "Opus 4.8",
|
label: "Opus 4.8",
|
||||||
description: "Opus 4.8 · Latest release",
|
description: "Opus 4.8 · Previous release",
|
||||||
isDefault: true,
|
|
||||||
contextWindowMaxTokens: 200_000,
|
contextWindowMaxTokens: 200_000,
|
||||||
effortLevels: CLAUDE_EFFORT_LEVELS.xhigh,
|
effortLevels: CLAUDE_EFFORT_LEVELS.xhigh,
|
||||||
supportsThinkingDisabled: true,
|
supportsThinkingDisabled: true,
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ describe("getClaudeModels", () => {
|
|||||||
it("returns all claude models", () => {
|
it("returns all claude models", () => {
|
||||||
const models = getClaudeModels();
|
const models = getClaudeModels();
|
||||||
expect(models.map((m) => m.id)).toEqual([
|
expect(models.map((m) => m.id)).toEqual([
|
||||||
|
"claude-opus-5",
|
||||||
"claude-fable-5",
|
"claude-fable-5",
|
||||||
"claude-opus-4-8[1m]",
|
"claude-opus-4-8[1m]",
|
||||||
"claude-opus-4-8",
|
"claude-opus-4-8",
|
||||||
@@ -60,7 +61,7 @@ describe("getClaudeModels", () => {
|
|||||||
const models = getClaudeModels();
|
const models = getClaudeModels();
|
||||||
const defaults = models.filter((m) => m.isDefault);
|
const defaults = models.filter((m) => m.isDefault);
|
||||||
expect(defaults).toHaveLength(1);
|
expect(defaults).toHaveLength(1);
|
||||||
expect(defaults[0].id).toBe("claude-opus-4-8");
|
expect(defaults[0].id).toBe("claude-opus-5");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("defines context window sizes in the catalog", () => {
|
it("defines context window sizes in the catalog", () => {
|
||||||
@@ -70,6 +71,7 @@ describe("getClaudeModels", () => {
|
|||||||
|
|
||||||
expect(contextWindows).toEqual(
|
expect(contextWindows).toEqual(
|
||||||
new Map([
|
new Map([
|
||||||
|
["claude-opus-5", 1_000_000],
|
||||||
["claude-fable-5", 1_000_000],
|
["claude-fable-5", 1_000_000],
|
||||||
["claude-opus-4-8[1m]", 1_000_000],
|
["claude-opus-4-8[1m]", 1_000_000],
|
||||||
["claude-opus-4-8", 200_000],
|
["claude-opus-4-8", 200_000],
|
||||||
@@ -88,6 +90,15 @@ describe("getClaudeModels", () => {
|
|||||||
it("derives thinking options from model effort capabilities", () => {
|
it("derives thinking options from model effort capabilities", () => {
|
||||||
const models = new Map(getClaudeModels().map((model) => [model.id, model]));
|
const models = new Map(getClaudeModels().map((model) => [model.id, model]));
|
||||||
|
|
||||||
|
expect(models.get("claude-opus-5")?.thinkingOptions?.map((option) => option.id)).toEqual([
|
||||||
|
CLAUDE_DISABLED_THINKING_OPTION_ID,
|
||||||
|
"low",
|
||||||
|
"medium",
|
||||||
|
"high",
|
||||||
|
"xhigh",
|
||||||
|
"max",
|
||||||
|
CLAUDE_ULTRACODE_THINKING_OPTION_ID,
|
||||||
|
]);
|
||||||
expect(models.get("claude-sonnet-5")?.thinkingOptions?.map((option) => option.id)).toEqual([
|
expect(models.get("claude-sonnet-5")?.thinkingOptions?.map((option) => option.id)).toEqual([
|
||||||
CLAUDE_DISABLED_THINKING_OPTION_ID,
|
CLAUDE_DISABLED_THINKING_OPTION_ID,
|
||||||
"low",
|
"low",
|
||||||
@@ -128,6 +139,8 @@ describe("getClaudeModels", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it.each([
|
it.each([
|
||||||
|
["claude-opus-5", true, "low"],
|
||||||
|
["claude-opus-5-20260724", true, "low"],
|
||||||
["claude-sonnet-5", true, "low"],
|
["claude-sonnet-5", true, "low"],
|
||||||
["claude-sonnet-5-20260101", true, "low"],
|
["claude-sonnet-5-20260101", true, "low"],
|
||||||
["claude-fable-5", false, "low"],
|
["claude-fable-5", false, "low"],
|
||||||
@@ -286,6 +299,7 @@ describe("ClaudeAgentClient.fetchCatalog", () => {
|
|||||||
|
|
||||||
describe("normalizeClaudeRuntimeModelId", () => {
|
describe("normalizeClaudeRuntimeModelId", () => {
|
||||||
it("returns exact match for known model IDs", () => {
|
it("returns exact match for known model IDs", () => {
|
||||||
|
expect(normalizeClaudeRuntimeModelId("claude-opus-5")).toBe("claude-opus-5");
|
||||||
expect(normalizeClaudeRuntimeModelId("claude-fable-5")).toBe("claude-fable-5");
|
expect(normalizeClaudeRuntimeModelId("claude-fable-5")).toBe("claude-fable-5");
|
||||||
expect(normalizeClaudeRuntimeModelId("claude-sonnet-5")).toBe("claude-sonnet-5");
|
expect(normalizeClaudeRuntimeModelId("claude-sonnet-5")).toBe("claude-sonnet-5");
|
||||||
expect(normalizeClaudeRuntimeModelId("claude-opus-4-6")).toBe("claude-opus-4-6");
|
expect(normalizeClaudeRuntimeModelId("claude-opus-4-6")).toBe("claude-opus-4-6");
|
||||||
@@ -295,6 +309,7 @@ describe("normalizeClaudeRuntimeModelId", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("normalizes dated model IDs to base model", () => {
|
it("normalizes dated model IDs to base model", () => {
|
||||||
|
expect(normalizeClaudeRuntimeModelId("claude-opus-5-20260724")).toBe("claude-opus-5");
|
||||||
expect(normalizeClaudeRuntimeModelId("claude-fable-5-20260301")).toBe("claude-fable-5");
|
expect(normalizeClaudeRuntimeModelId("claude-fable-5-20260301")).toBe("claude-fable-5");
|
||||||
expect(normalizeClaudeRuntimeModelId("claude-sonnet-5-20260101")).toBe("claude-sonnet-5");
|
expect(normalizeClaudeRuntimeModelId("claude-sonnet-5-20260101")).toBe("claude-sonnet-5");
|
||||||
expect(normalizeClaudeRuntimeModelId("claude-opus-4-6-20260101")).toBe("claude-opus-4-6");
|
expect(normalizeClaudeRuntimeModelId("claude-opus-4-6-20260101")).toBe("claude-opus-4-6");
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@getpaseo/website",
|
"name": "@getpaseo/website",
|
||||||
"version": "0.2.0",
|
"version": "0.2.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user