fix: align tui editor with pi-tui API
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import type { Api, Model, OpenAICompat } from "@mariozechner/pi-ai";
|
import type { Api, Model, OpenAICompletionsCompat } from "@mariozechner/pi-ai";
|
||||||
|
|
||||||
function isOpenAiCompletionsModel(model: Model<Api>): model is Model<"openai-completions"> {
|
function isOpenAiCompletionsModel(model: Model<Api>): model is Model<"openai-completions"> {
|
||||||
return model.api === "openai-completions";
|
return model.api === "openai-completions";
|
||||||
@@ -10,7 +10,7 @@ export function normalizeModelCompat(model: Model<Api>): Model<Api> {
|
|||||||
if (!isZai || !isOpenAiCompletionsModel(model)) return model;
|
if (!isZai || !isOpenAiCompletionsModel(model)) return model;
|
||||||
|
|
||||||
const openaiModel = model as Model<"openai-completions">;
|
const openaiModel = model as Model<"openai-completions">;
|
||||||
const compat = openaiModel.compat as OpenAICompat | undefined;
|
const compat = openaiModel.compat as OpenAICompletionsCompat | undefined;
|
||||||
if (compat?.supportsDeveloperRole === false) return model;
|
if (compat?.supportsDeveloperRole === false) return model;
|
||||||
|
|
||||||
openaiModel.compat = compat
|
openaiModel.compat = compat
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
import {
|
import { Editor, type EditorTheme, type TUI, Key, matchesKey } from "@mariozechner/pi-tui";
|
||||||
Editor,
|
|
||||||
type EditorTheme,
|
|
||||||
Key,
|
|
||||||
matchesKey,
|
|
||||||
} from "@mariozechner/pi-tui";
|
|
||||||
|
|
||||||
export class CustomEditor extends Editor {
|
export class CustomEditor extends Editor {
|
||||||
onEscape?: () => void;
|
onEscape?: () => void;
|
||||||
@@ -17,8 +12,8 @@ export class CustomEditor extends Editor {
|
|||||||
onShiftTab?: () => void;
|
onShiftTab?: () => void;
|
||||||
onAltEnter?: () => void;
|
onAltEnter?: () => void;
|
||||||
|
|
||||||
constructor(theme: EditorTheme) {
|
constructor(tui: TUI, theme: EditorTheme) {
|
||||||
super(theme);
|
super(tui, theme);
|
||||||
}
|
}
|
||||||
handleInput(data: string): void {
|
handleInput(data: string): void {
|
||||||
if (matchesKey(data, Key.alt("enter")) && this.onAltEnter) {
|
if (matchesKey(data, Key.alt("enter")) && this.onAltEnter) {
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ export async function runTui(opts: TuiOptions) {
|
|||||||
const statusContainer = new Container();
|
const statusContainer = new Container();
|
||||||
const footer = new Text("", 1, 0);
|
const footer = new Text("", 1, 0);
|
||||||
const chatLog = new ChatLog();
|
const chatLog = new ChatLog();
|
||||||
const editor = new CustomEditor(editorTheme);
|
const editor = new CustomEditor(tui, editorTheme);
|
||||||
const root = new Container();
|
const root = new Container();
|
||||||
root.addChild(header);
|
root.addChild(header);
|
||||||
root.addChild(chatLog);
|
root.addChild(chatLog);
|
||||||
|
|||||||
Reference in New Issue
Block a user