UNPKG

@builder.io/dev-tools

Version:

Builder.io Visual CMS Devtools

73 lines (72 loc) 3.38 kB
import type { DevToolsSys } from "../types"; import type { CLIArgs } from "./index"; import { type Credentials } from "./credentials"; import { type Checkpoint } from "./incremental-tsc"; import type { ApplyActionsResult, Attachment, CodebaseSearchResponse, ContentMessageItemToolResult, CustomInstruction, GenerateCompletionStep, GenerateUserMessage, ProjectFile, UserContext } from "$/ai-utils"; import prettier from "prettier"; interface Turn { completionId: string; nextUrl: string | undefined; originalFiles: { path: string; content: Uint8Array | null; }[]; isUserMessage: boolean; toolResults: ContentMessageItemToolResult[]; sentiment?: "positive" | "negative" | "undo"; applyResults: ApplyActionsResult[]; projectFiles: ProjectFile[]; userInput: UserInput; } type State = "unknown" | "initial-with-url" | "initial-without-url" | "generating" | "success" | "abort" | "error"; export interface SessionContext { sessionId: string; turns: Turn[]; selectedFilePaths: Map<string, number>; customInstructions: CustomInstruction[]; userContext: UserContext; prettierConfig: prettier.Config | null; state: State; } export interface UserInput { userPrompt: string; attachments: Attachment[]; sentiment: "positive" | "negative" | "undo"; files: ProjectFile[]; searchResponse: CodebaseSearchResponse | null; rerankFiles?: number; mostRelevantFile: string | null; role: "user" | "agent"; } export declare class CodeGenSession { #private; constructor(sys: DevToolsSys, credentials: Credentials, args: CLIArgs, position: string, initialUrl?: string, mode?: "quality" | "quality-v3" | "fast"); setDebug(debug: boolean): void; getAllFiles(): Promise<string[]>; isNextPage(): boolean; getSessionId(): Promise<string>; getSpaceId(): string | undefined; undoLastUserMessage(dryRun?: boolean): Promise<string[]>; getLastCompletionId(): string | undefined; getCurrentState(): State; getLastTurn(): Turn | undefined; getNextUrl(): string | undefined; getNextMessage(): Promise<GenerateUserMessage>; sendFeedback(sentiment: "positive" | "negative" | "undo", message?: string, lastCompletionId?: string | undefined): Promise<void>; hasUndoChanges(): Promise<boolean>; isBusy(): boolean; sendMessage(message: GenerateUserMessage): void; isEventLoopRunning(): boolean; getTurns(): void; getSessionContext(): Promise<SessionContext>; abort(): void; stopEventLoop(): void; startEventLoop(onStep: (step: GenerateCompletionStep) => void): Promise<void>; agentCompletion(userMessage: GenerateUserMessage, baselineCheckpoint: Checkpoint, signal: AbortSignal | undefined, onStep: (step: GenerateCompletionStep) => Promise<void> | void): Promise<Checkpoint>; getUserInput(userMessage: GenerateUserMessage, signal: AbortSignal | undefined): Promise<UserInput>; } export declare const createSessionContext: (sys: DevToolsSys) => Promise<SessionContext>; export declare function transformStream(body: ReadableStream<Uint8Array> | null): AsyncGenerator<string, void, unknown>; export declare function getUserContext(sys: DevToolsSys): Promise<UserContext>; export declare function makeAsyncIterator<T>(): readonly [AsyncGenerator<T, void, void>, (event: T) => void, () => void]; export {};