import type { AgentRunParams, BrowserProfile, Run, RunStatus } from '@tiny-fish/sdk'; export type OutputSchema = Record; export interface CliAgentRunParams extends AgentRunParams { output_schema?: OutputSchema; agent_config?: { mode?: 'default' | 'strict'; cursor_style?: 'fish' | 'standard' | 'green-pointer'; max_steps?: number; max_duration_seconds?: number; }; capture_config?: { elements?: boolean; snapshots?: boolean; screenshots?: boolean; recording?: boolean; html?: boolean; }; webhook_url?: string; browser_profile?: BrowserProfile; session_id?: string; use_vault?: boolean; credential_item_ids?: string[]; } type VaultProvider = '1password' | 'bitwarden'; export interface VaultConnection { id: string; provider: VaultProvider; connectionStatus: string; lastValidatedAt: string | null; } interface VaultFieldMetadata { fieldId: string; label: string; type: 'STRING' | 'CONCEALED' | 'OTP'; } export interface VaultItem { itemId: string; connectionId: string | null; label: string; vaultName: string; domains: string[]; fieldMetadata: VaultFieldMetadata[]; hasTotp: boolean; } export type VaultConnectRequest = { provider: '1password'; token: string; } | { provider: 'bitwarden'; clientId: string; clientSecret: string; masterPassword: string; serverUrl?: string; }; export interface VaultConnectionsListResponse { connections: VaultConnection[]; } export interface VaultConnectResponse { connectionId: string; connected: true; provider: VaultProvider; items: unknown[]; } export interface VaultDisconnectResponse { disconnected: true; connectionId: string; } export interface VaultItemsListResponse { items: VaultItem[]; } export interface VaultItemsSyncResponse { items: unknown[]; sync_summary: { added: number; updated: number; removed: number; }; } export interface RunStep { id: string; timestamp: string; status: string; action: string | null; screenshot: string | null; duration: string | null; target_elements?: unknown[]; snapshot_url?: string; } export interface RunStepsResponse { run_id: string; status: RunStatus; steps: RunStep[]; } export interface CliBrowserSessionCreateParams { url?: string; browser_profile?: 'lite' | 'stealth'; } export interface CancelRunResponse { run_id: string; status: RunStatus | string; cancelled_at: string | null; message: string | null; } export interface BatchRunEntry { url: string; goal: string; } export interface BatchRunRequest { runs: BatchRunEntry[]; } export interface BatchRunResponse { run_ids: string[] | null; error: { code: string; message: string; } | null; } export interface BatchGetResponse { data: Run[]; not_found: string[] | null; } interface BatchCancelResult { run_id: string; status: string; cancelled_at: string | null; message: string | null; } export interface BatchCancelResponse { results: BatchCancelResult[]; not_found: string[] | null; } export interface LocalBatch { batch_id: string; run_ids: string[]; total: number; submitted: number; created_at: string; } export interface ProfileCreateResponse { id: string; name: string; created_at: string; } export interface CookieRecord { name: string; value: string; domain: string; path: string; httpOnly: boolean; secure: boolean; sameSite?: string; expires?: number; } export interface ProfileUploadResponse { profile_id?: string; cookie_count: number; domains_updated: string[]; domains_failed?: string[]; } export {};