UNPKG

anchorbrowser

Version:

The official TypeScript library for the Anchorbrowser API

114 lines (99 loc) 2.99 kB
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../../core/resource'; import { APIPromise } from '../../../core/api-promise'; import { type Uploadable } from '../../../core/uploads'; import { RequestOptions } from '../../../internal/request-options'; import { multipartFormRequestOptions } from '../../../internal/uploads'; import { path } from '../../../internal/utils/path'; export class Files extends APIResource { /** * List all resources that have been uploaded to the browser session for agent use. * Returns resource metadata including name, size, type, and last modified * timestamp. * * @example * ```ts * const files = await client.sessions.agent.files.list( * '550e8400-e29b-41d4-a716-446655440000', * ); * ``` */ list(sessionID: string, options?: RequestOptions): APIPromise<FileListResponse> { return this._client.get(path`/v1/sessions/${sessionID}/agent/files`, options); } /** * Upload files as agent resources to a browser session using multipart/form-data. * If you upload a ZIP file, it will be automatically extracted and the files will * be made available as agent resources. If you upload a single file, it will be * saved directly as an agent resource. Resources are then accessible to AI agents * for task completion and automation. * * @example * ```ts * const response = await client.sessions.agent.files.upload( * '550e8400-e29b-41d4-a716-446655440000', * { file: fs.createReadStream('path/to/file') }, * ); * ``` */ upload( sessionID: string, body: FileUploadParams, options?: RequestOptions, ): APIPromise<FileUploadResponse> { return this._client.post( path`/v1/sessions/${sessionID}/agent/files`, multipartFormRequestOptions({ body, ...options }, this._client), ); } } export interface FileListResponse { data?: FileListResponse.Data; } export namespace FileListResponse { export interface Data { files?: Array<Data.File>; } export namespace Data { export interface File { /** * When the resource was last modified */ lastModified?: string; /** * The resource name */ name?: string; /** * Resource size in bytes */ size?: number; /** * Resource extension/type */ type?: string; } } } export interface FileUploadResponse { data?: FileUploadResponse.Data; } export namespace FileUploadResponse { export interface Data { message?: string; status?: string; } } export interface FileUploadParams { /** * File to upload as agent resource (ZIP files will be extracted automatically) */ file: Uploadable; } export declare namespace Files { export { type FileListResponse as FileListResponse, type FileUploadResponse as FileUploadResponse, type FileUploadParams as FileUploadParams, }; }