export type UnbodyConfig = { /** * @default '.unbody' * The directory where the plugin will store the generated files. (relative to the project root) */ dir?: string /** * @default true * If true, the plugin will create the search endpoint at `/api/search` automatically. */ setupApi?: boolean /** * @default true * If true, the plugin will inject the search components into theme config. */ setupComponents?: boolean /** * The configuration for generating the output files. */ output?: { browser?: { /** * @default false * If true, the plugin will use a headless browser to fetch the content of the pages. */ enable?: boolean /** * @default undefined * The number of pages to process concurrently. */ concurrency?: number /** * @default [] * The list of URL patterns that the browser will wait for * to load before capturing the page content. */ resourceUrlWhitelist?: string[] } /** * @default false * If true, the plugin will run the production server * to fetch the content of the pages instead of directly reading the files. */ server?: { enable?: boolean } } assistant?: { /** * @default 'Assistant' * The name of the assistant. Will be used in the prompt messages and the chat component. */ name?: string } env?: { /** * Environment variable name for the Unbody API key. */ apiKey?: string /** * Environment variable name for the Unbody project ID. */ projectId?: string /** * Environment variable name for the Unbody source ID. */ sourceId?: string } remote?: { /** * The name of the remote repository */ name?: string /** * The URL of the remote repository */ url?: string /** * The branch to push the generated files */ branch?: string /** * The username to use when committing the changes */ userName?: string /** * The email to use when committing the changes */ userEmail?: string /** * The commit message to use when committing the changes */ commitMessage?: string } } export type LoadedUnbodyConfig = { dir: string projectDir: string setupApi: boolean setupComponents: boolean output: { browser: { enable: boolean concurrency: number | undefined resourceUrlWhitelist: string[] | undefined } server: { enable: boolean } } assistant: { name: string } env: { apiKey: string projectId: string sourceId: string } remote: { name?: string url?: string branch?: string userName?: string userEmail?: string commitMessage?: string } }