fix: use TruncatedText in oauth-selector to prevent line overflow

This commit is contained in:
Mario Zechner 2025-12-02 09:28:27 +01:00
parent 87b7343b00
commit 5a65ce5349
2 changed files with 97 additions and 80 deletions

View file

@ -1974,6 +1974,23 @@ export const MODELS = {
} satisfies Model<"anthropic-messages">, } satisfies Model<"anthropic-messages">,
}, },
openrouter: { openrouter: {
"deepseek/deepseek-v3.2": {
id: "deepseek/deepseek-v3.2",
name: "DeepSeek: DeepSeek V3.2",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.28,
output: 0.42,
cacheRead: 0.028,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 64000,
} satisfies Model<"openai-completions">,
"prime-intellect/intellect-3": { "prime-intellect/intellect-3": {
id: "prime-intellect/intellect-3", id: "prime-intellect/intellect-3",
name: "Prime Intellect: INTELLECT-3", name: "Prime Intellect: INTELLECT-3",
@ -5119,6 +5136,23 @@ export const MODELS = {
contextWindow: 128000, contextWindow: 128000,
maxTokens: 16384, maxTokens: 16384,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"meta-llama/llama-3.1-70b-instruct": {
id: "meta-llama/llama-3.1-70b-instruct",
name: "Meta: Llama 3.1 70B Instruct",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.39999999999999997,
output: 0.39999999999999997,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"meta-llama/llama-3.1-8b-instruct": { "meta-llama/llama-3.1-8b-instruct": {
id: "meta-llama/llama-3.1-8b-instruct", id: "meta-llama/llama-3.1-8b-instruct",
name: "Meta: Llama 3.1 8B Instruct", name: "Meta: Llama 3.1 8B Instruct",
@ -5153,23 +5187,6 @@ export const MODELS = {
contextWindow: 130815, contextWindow: 130815,
maxTokens: 4096, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"meta-llama/llama-3.1-70b-instruct": {
id: "meta-llama/llama-3.1-70b-instruct",
name: "Meta: Llama 3.1 70B Instruct",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.39999999999999997,
output: 0.39999999999999997,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/mistral-nemo": { "mistralai/mistral-nemo": {
id: "mistralai/mistral-nemo", id: "mistralai/mistral-nemo",
name: "Mistral: Mistral Nemo", name: "Mistral: Mistral Nemo",
@ -5306,6 +5323,23 @@ export const MODELS = {
contextWindow: 128000, contextWindow: 128000,
maxTokens: 4096, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"openai/gpt-4o-2024-05-13": {
id: "openai/gpt-4o-2024-05-13",
name: "OpenAI: GPT-4o (2024-05-13)",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text", "image"],
cost: {
input: 5,
output: 15,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"openai/gpt-4o": { "openai/gpt-4o": {
id: "openai/gpt-4o", id: "openai/gpt-4o",
name: "OpenAI: GPT-4o", name: "OpenAI: GPT-4o",
@ -5340,22 +5374,22 @@ export const MODELS = {
contextWindow: 128000, contextWindow: 128000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"openai/gpt-4o-2024-05-13": { "meta-llama/llama-3-70b-instruct": {
id: "openai/gpt-4o-2024-05-13", id: "meta-llama/llama-3-70b-instruct",
name: "OpenAI: GPT-4o (2024-05-13)", name: "Meta: Llama 3 70B Instruct",
api: "openai-completions", api: "openai-completions",
provider: "openrouter", provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1", baseUrl: "https://openrouter.ai/api/v1",
reasoning: false, reasoning: false,
input: ["text", "image"], input: ["text"],
cost: { cost: {
input: 5, input: 0.3,
output: 15, output: 0.39999999999999997,
cacheRead: 0, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 128000, contextWindow: 8192,
maxTokens: 4096, maxTokens: 16384,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"meta-llama/llama-3-8b-instruct": { "meta-llama/llama-3-8b-instruct": {
id: "meta-llama/llama-3-8b-instruct", id: "meta-llama/llama-3-8b-instruct",
@ -5374,23 +5408,6 @@ export const MODELS = {
contextWindow: 8192, contextWindow: 8192,
maxTokens: 16384, maxTokens: 16384,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"meta-llama/llama-3-70b-instruct": {
id: "meta-llama/llama-3-70b-instruct",
name: "Meta: Llama 3 70B Instruct",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0.3,
output: 0.39999999999999997,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 8192,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
"mistralai/mixtral-8x22b-instruct": { "mistralai/mixtral-8x22b-instruct": {
id: "mistralai/mixtral-8x22b-instruct", id: "mistralai/mixtral-8x22b-instruct",
name: "Mistral: Mixtral 8x22B Instruct", name: "Mistral: Mixtral 8x22B Instruct",
@ -5476,23 +5493,6 @@ export const MODELS = {
contextWindow: 128000, contextWindow: 128000,
maxTokens: 4096, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"openai/gpt-4-turbo-preview": {
id: "openai/gpt-4-turbo-preview",
name: "OpenAI: GPT-4 Turbo Preview",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 10,
output: 30,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"openai/gpt-3.5-turbo-0613": { "openai/gpt-3.5-turbo-0613": {
id: "openai/gpt-3.5-turbo-0613", id: "openai/gpt-3.5-turbo-0613",
name: "OpenAI: GPT-3.5 Turbo (older v0613)", name: "OpenAI: GPT-3.5 Turbo (older v0613)",
@ -5510,6 +5510,23 @@ export const MODELS = {
contextWindow: 4095, contextWindow: 4095,
maxTokens: 4096, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"openai/gpt-4-turbo-preview": {
id: "openai/gpt-4-turbo-preview",
name: "OpenAI: GPT-4 Turbo Preview",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 10,
output: 30,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 128000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/mistral-small": { "mistralai/mistral-small": {
id: "mistralai/mistral-small", id: "mistralai/mistral-small",
name: "Mistral Small", name: "Mistral Small",
@ -5595,23 +5612,6 @@ export const MODELS = {
contextWindow: 16385, contextWindow: 16385,
maxTokens: 4096, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"openai/gpt-4-0314": {
id: "openai/gpt-4-0314",
name: "OpenAI: GPT-4 (older v0314)",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 30,
output: 60,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 8191,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"openai/gpt-3.5-turbo": { "openai/gpt-3.5-turbo": {
id: "openai/gpt-3.5-turbo", id: "openai/gpt-3.5-turbo",
name: "OpenAI: GPT-3.5 Turbo", name: "OpenAI: GPT-3.5 Turbo",
@ -5629,6 +5629,23 @@ export const MODELS = {
contextWindow: 16385, contextWindow: 16385,
maxTokens: 4096, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"openai/gpt-4-0314": {
id: "openai/gpt-4-0314",
name: "OpenAI: GPT-4 (older v0314)",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text"],
cost: {
input: 30,
output: 60,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 8191,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"openai/gpt-4": { "openai/gpt-4": {
id: "openai/gpt-4", id: "openai/gpt-4",
name: "OpenAI: GPT-4", name: "OpenAI: GPT-4",

View file

@ -1,4 +1,4 @@
import { Container, Spacer, Text } from "@mariozechner/pi-tui"; import { Container, Spacer, TruncatedText } from "@mariozechner/pi-tui";
import { getOAuthProviders, type OAuthProviderInfo } from "../oauth/index.js"; import { getOAuthProviders, type OAuthProviderInfo } from "../oauth/index.js";
import { loadOAuthCredentials } from "../oauth/storage.js"; import { loadOAuthCredentials } from "../oauth/storage.js";
import { theme } from "../theme/theme.js"; import { theme } from "../theme/theme.js";
@ -31,7 +31,7 @@ export class OAuthSelectorComponent extends Container {
// Add title // Add title
const title = mode === "login" ? "Select provider to login:" : "Select provider to logout:"; const title = mode === "login" ? "Select provider to login:" : "Select provider to logout:";
this.addChild(new Text(theme.bold(title), 0, 0)); this.addChild(new TruncatedText(theme.bold(title)));
this.addChild(new Spacer(1)); this.addChild(new Spacer(1));
// Create list container // Create list container
@ -77,14 +77,14 @@ export class OAuthSelectorComponent extends Container {
line = text + statusIndicator; line = text + statusIndicator;
} }
this.listContainer.addChild(new Text(line, 0, 0)); this.listContainer.addChild(new TruncatedText(line, 0, 0));
} }
// Show "no providers" if empty // Show "no providers" if empty
if (this.allProviders.length === 0) { if (this.allProviders.length === 0) {
const message = const message =
this.mode === "login" ? "No OAuth providers available" : "No OAuth providers logged in. Use /login first."; this.mode === "login" ? "No OAuth providers available" : "No OAuth providers logged in. Use /login first.";
this.listContainer.addChild(new Text(theme.fg("muted", ` ${message}`), 0, 0)); this.listContainer.addChild(new TruncatedText(theme.fg("muted", ` ${message}`), 0, 0));
} }
} }