@builder.io/dev-tools
Version:
Builder.io Visual CMS Devtools
73 lines (72 loc) • 3.38 kB
TypeScript
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 {};