feat: add configurable transport and codex websocket session caching

This commit is contained in:
Mario Zechner
2026-02-13 23:41:49 +01:00
parent 9537919a49
commit a26a9cfabd
15 changed files with 580 additions and 4 deletions

View File

@@ -1,4 +1,5 @@
import type { ThinkingLevel } from "@mariozechner/pi-agent-core";
import type { Transport } from "@mariozechner/pi-ai";
import {
Container,
getCapabilities,
@@ -29,6 +30,7 @@ export interface SettingsConfig {
enableSkillCommands: boolean;
steeringMode: "all" | "one-at-a-time";
followUpMode: "all" | "one-at-a-time";
transport: Transport;
thinkingLevel: ThinkingLevel;
availableThinkingLevels: ThinkingLevel[];
currentTheme: string;
@@ -51,6 +53,7 @@ export interface SettingsCallbacks {
onEnableSkillCommandsChange: (enabled: boolean) => void;
onSteeringModeChange: (mode: "all" | "one-at-a-time") => void;
onFollowUpModeChange: (mode: "all" | "one-at-a-time") => void;
onTransportChange: (transport: Transport) => void;
onThinkingLevelChange: (level: ThinkingLevel) => void;
onThemeChange: (theme: string) => void;
onThemePreview?: (theme: string) => void;
@@ -162,6 +165,13 @@ export class SettingsSelectorComponent extends Container {
currentValue: config.followUpMode,
values: ["one-at-a-time", "all"],
},
{
id: "transport",
label: "Transport",
description: "Preferred transport for providers that support multiple transports",
currentValue: config.transport,
values: ["sse", "websocket", "auto"],
},
{
id: "hide-thinking",
label: "Hide thinking",
@@ -354,6 +364,9 @@ export class SettingsSelectorComponent extends Container {
case "follow-up-mode":
callbacks.onFollowUpModeChange(newValue as "all" | "one-at-a-time");
break;
case "transport":
callbacks.onTransportChange(newValue as Transport);
break;
case "hide-thinking":
callbacks.onHideThinkingBlockChange(newValue === "true");
break;