@builder.io/dev-tools
Version:
Builder.io Visual CMS Devtools
80 lines (79 loc) • 5.17 kB
TypeScript
import type { DevToolsSys } from "../../core";
import { type Credentials } from "../credentials";
export { getCustomInstructions } from "./rules-discovery";
import type { CodeGenInputOptions, CodegenSetLastCompletion, CodegenTurn, GenerateCodeEvent, GenerateUserMessage, GetSessionTurnsResult, UserContext, WorkspaceConfiguration, EnvironmentVariable, PushChangesArgs, GenerateCompletionStepDevServerState, FusionConfig } from "$/ai-utils";
import type { SessionContext } from "../codegen";
import type { DevServerOrchestrator } from "../launch/dev-server-orchestrator";
export declare const DEFAULT_MAX_COMPLETIONS = 30;
/**
* Merges and deduplicates items by name.
* Built-in items come first, discovered items can override them by name.
* @param builtIn - Built-in items
* @param discovered - Discovered items from project
* @returns Deduplicated array with discovered overriding built-in
*/
export declare function mergeByName<T extends {
name: string;
}>(builtIn: T[], discovered: T[]): T[];
export declare function getLastGoodTurn(sessionContext: SessionContext): CodegenTurn | undefined;
export declare function getLastUserTurn(sessionContext: SessionContext): CodegenTurn | undefined;
export declare function getLastApplyResultsTurn(sessionContext: SessionContext): CodegenTurn | undefined;
export declare function getLastOne<T>(array: T[]): T | undefined;
export declare function inPlaceRemovePendingTurns(turns: CodegenTurn[]): void;
export declare function restoreConsumedCredit(sys: DevToolsSys, credentials: Credentials, sessionId: string, restoreCredits: number): Promise<void>;
/**
* Analyzes the payload to identify what's making it large
*/
export declare function analyzePayloadBreakdown(body: CodeGenInputOptions, jsonString: string): Record<string, any>;
export declare function completionStream(sys: DevToolsSys, credentials: Credentials, body: CodeGenInputOptions, signal: AbortSignal): AsyncGenerator<GenerateCodeEvent, void, unknown>;
export declare function codegenEndpoint(sys: DevToolsSys, credentials: Credentials, endpoint: string, body: Record<string, any>): Promise<boolean>;
export declare function setLastCompletionOfSession(sys: DevToolsSys, credentials: Credentials, data: CodegenSetLastCompletion, _verbose: boolean): Promise<boolean>;
export declare function getTurnsBySessionId(sys: DevToolsSys, credentials: Credentials, sessionId: string, linear: boolean, completionIdCursor?: string): Promise<GetSessionTurnsResult>;
export declare const parseCLIURL: (url: string | undefined) => {
id: undefined;
isInitial: boolean;
} | {
isInitial: boolean;
id: string;
};
export declare function getUserContext(sys: DevToolsSys, gitWorkingDirectory?: string): Promise<UserContext>;
export declare function makeAsyncIterator<T>(): readonly [AsyncGenerator<T, void, void>, (event: T) => void, () => void];
export declare function isAGENTSFile(filePath: string): boolean;
export declare function isBaseImportantFile(filePath: string, recommendedRootDir: string): boolean;
export declare function hasBuildError(text: string): boolean;
/**
* Loads a workspace configuration from a JSON file
* @param sys DevToolsSys instance
* @param workspaceFile Path to the workspace JSON file
* @returns The workspace configuration and working directory
*/
export declare function loadWorkspace(sys: DevToolsSys, workspaceFile: string): Promise<{
workspace: WorkspaceConfiguration;
workingDirectory: string;
}>;
export declare function mergeMessages(messages: GenerateUserMessage[]): GenerateUserMessage;
export declare function mergeUserMessages(currentMessage: GenerateUserMessage, newMessage: GenerateUserMessage): GenerateUserMessage;
export declare function keepAlive(): () => void;
export declare function parseAheadBehind(line: string): {
ahead: number;
behind: number;
};
export declare class BashError extends Error {
readonly code: number | string | undefined;
readonly stdout: string;
readonly stderr: string;
readonly command: string;
constructor(command: string, code: number | string | undefined, stdout: string, stderr: string, opts?: {
cause?: Error;
});
}
export declare function mergeEnvironmentVariables(envVariables: EnvironmentVariable[], extraEnvVariables: EnvironmentVariable[]): EnvironmentVariable[];
export declare function processPushChangesArgs(opts: PushChangesArgs): import("$/ai-utils").PushChangesOptions;
export declare function getErrorMessage(err: unknown): string;
export declare function waitImmediate(): Promise<void>;
export declare function abortPromise<T extends Promise<any> | undefined>(promise: T, signal: AbortSignal | undefined): T;
export declare function waitRace(promise: Promise<any>, timeout: number): Promise<boolean>;
export declare function newAbortError(): Error;
export declare function getDevServerStep(devServer: DevServerOrchestrator, fusionConfig: FusionConfig | undefined): GenerateCompletionStepDevServerState;
export declare function moveArrayElement<T>(arr: T[], old_index: number, new_index: number): T[];
export declare function computeRecommendedRootDir(workspace: WorkspaceConfiguration | undefined): string;