feat: add fullscreen TUI mode with Ink React components
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import React from 'react';
|
||||
import { render } from 'ink';
|
||||
import { App } from './components/index.js';
|
||||
import type { ManagedSession } from '../../session/index.js';
|
||||
import type { ModelClient } from '../../models/types.js';
|
||||
|
||||
export interface FullscreenTuiConfig {
|
||||
session: ManagedSession;
|
||||
modelClient: ModelClient;
|
||||
systemPrompt: string;
|
||||
model: string;
|
||||
onExit?: () => void;
|
||||
}
|
||||
|
||||
export async function startFullscreenTui(config: FullscreenTuiConfig): Promise<void> {
|
||||
const { waitUntilExit } = render(
|
||||
React.createElement(App, {
|
||||
session: config.session,
|
||||
modelClient: config.modelClient,
|
||||
systemPrompt: config.systemPrompt,
|
||||
model: config.model,
|
||||
onExit: config.onExit,
|
||||
})
|
||||
);
|
||||
|
||||
await waitUntilExit();
|
||||
}
|
||||
Reference in New Issue
Block a user