donobu
Version:
Create browser automations with an LLM agent and replay them as Playwright scripts.
71 lines • 3.26 kB
TypeScript
import { FlowsPersistence, PaginatedFlowsResult } from './FlowsPersistence';
import { FlowMetadata } from '../models/FlowMetadata';
import { ToolCall } from '../models/ToolCall';
import { VideoSegment } from '../models/VideoSegment';
import { BrowserStorageState } from '../models/BrowserStorageState';
import { FlowsQuery } from '../models/FlowsQuery';
/**
* A persistence implementation that uses Google Cloud Storage.
*
* If you are running locally, be sure to have the Google Cloud CLI installed
* so that you can authenticate using `gcloud auth application-default login`
* before running Donobu.
*
* If Donobu is being run in the Google cloud, be sure that the service account
* in which it is being run has permissions to read and write the Google Cloud
* Storage bucket specified as a constructor argument.
*/
export declare class FlowsPersistenceGoogleCloudStorage implements FlowsPersistence {
private readonly bucket;
private static readonly NAME_INDEX_PREFIX;
private static readonly RUN_MODE_INDEX_PREFIX;
private static readonly STATE_INDEX_PREFIX;
private static readonly RUN_MODE_STATE_INDEX_PREFIX;
private static readonly METADATA_FILENAME;
private static readonly BROWSER_STATE_FILENAME;
private static readonly SCREENSHOT_FILENAME_SUFFIX;
private static readonly TOOL_CALL_FILENAME_SUFFIX;
private static readonly VIDEO_FILENAME;
/**
* Dynamically imports the Google Cloud Storage library.
* This helps to delay loading the library until it's actually needed.
*/
private static importGoogleCloudStorage;
static create(bucketName: string): Promise<FlowsPersistenceGoogleCloudStorage>;
private constructor();
saveMetadata(flowMetadata: FlowMetadata): Promise<void>;
getMetadataByFlowId(flowId: string): Promise<FlowMetadata>;
getMetadataByFlowName(flowName: string): Promise<FlowMetadata>;
savePngScreenShot(flowId: string, bytes: Buffer): Promise<string>;
getPngScreenShot(flowId: string, screenShotId: string): Promise<Buffer | null>;
saveToolCall(flowId: string, toolCall: ToolCall): Promise<void>;
getToolCalls(flowId: string): Promise<ToolCall[]>;
getFlows(query: FlowsQuery): Promise<PaginatedFlowsResult>;
setVideo(flowId: string, bytes: Buffer): Promise<void>;
getVideoSegment(flowId: string, startOffset: number, length: number): Promise<VideoSegment | null>;
getFlowFile(flowId: string, fileId: string): Promise<Buffer | null>;
setFlowFile(flowId: string, fileId: string, fileBytes: Buffer): Promise<void>;
setBrowserState(flowId: string, browserState: BrowserStorageState): Promise<void>;
getBrowserState(flowId: string): Promise<BrowserStorageState | null>;
deleteFlow(flowId: string): Promise<void>;
private uploadString;
private uploadBytes;
private downloadString;
/**
* Update name-to-id index.
*/
private updateNameIndex;
/**
* Update runMode-to-id index.
*/
private updateRunModeIndex;
/**
* Update state-to-id index.
*/
private updateStateIndex;
/**
* Update combined runMode+state-to-id index.
*/
private updateRunModeStateIndex;
}
//# sourceMappingURL=FlowsPersistenceGoogleCloudStorage.d.ts.map