Gaunt Sloth Assistant - v1.0.5
    Preparing search index...

    Interface GthConfig

    This is a processed Gaunt Sloth config ready to be passed down into components.

    Default values can be found in DEFAULT_CONFIG

    interface GthConfig {
        a2aAgents?: Record<string, A2AConfig>;
        builtInTools?: string[];
        builtInToolsConfig?: BuiltInToolsConfig;
        canInterruptInferenceWithEsc: boolean;
        commands?: {
            ask?: {
                builtInTools?: string[];
                filesystem?: string[] | "read" | "all" | "none";
            };
            chat?: {
                builtInTools?: string[];
                filesystem?: string[]
                | "read"
                | "all"
                | "none";
            };
            code?: {
                builtInTools?: string[];
                devTools?: GthDevToolsConfig;
                filesystem?: string[]
                | "read"
                | "all"
                | "none";
            };
            pr?: {
                builtInTools?: string[];
                contentProvider?: string;
                filesystem?: string[]
                | "read"
                | "all"
                | "none";
                logWorkForReviewInSeconds?: number;
                rating?: RatingConfig;
                requirementsProvider?: string;
            };
            review?: {
                builtInTools?: string[];
                contentProvider?: string;
                filesystem?: string[]
                | "read"
                | "all"
                | "none";
                rating?: RatingConfig;
                requirementsProvider?: string;
            };
        };
        contentProvider: string;
        contentProviderConfig?: Record<string, unknown>;
        customToolsConfig?: CustomToolsConfig;
        debugLog?: boolean;
        filesystem: string[] | "read" | "all" | "none";
        identityProfile?: string;
        includeCurrentDateAfterGuidelines: boolean;
        llm: BaseChatModel;
        mcpServers?: Record<
            string,
            | {
                args: string[];
                command: string;
                cwd?: string;
                encoding?: string;
                env?: Record<string, string>;
                restart?: { delayMs?: number; enabled?: boolean; maxAttempts?: number };
                stderr?: "pipe" | "ignore" | "inherit" | "overlapped";
                transport?: "stdio";
                type?: "stdio";
            } & {
                defaultToolTimeout?: number;
                outputHandling?: | "content"
                | "artifact"
                | {
                    audio?: "content"
                    | "artifact";
                    image?: "content" | "artifact";
                    resource?: "content" | "artifact";
                    resource_link?: "content" | "artifact";
                    text?: "content" | "artifact";
                };
            }
            | {
                authProvider?: OAuthClientProvider;
                automaticSSEFallback?: boolean;
                headers?: Record<string, string>;
                reconnect?: { delayMs?: number; enabled?: boolean; maxAttempts?: number };
                transport?: "http" | "sse";
                type?: "http" | "sse";
                url: string;
            } & {
                defaultToolTimeout?: number;
                outputHandling?: | "content"
                | "artifact"
                | {
                    audio?: "content"
                    | "artifact";
                    image?: "content" | "artifact";
                    resource?: "content" | "artifact";
                    resource_link?: "content" | "artifact";
                    text?: "content" | "artifact";
                };
            },
        >;
        middleware?: MiddlewareConfig[];
        modelDisplayName?: string;
        organization?: { locale?: string; name?: string; timezone?: string };
        projectGuidelines: string;
        projectReviewInstructions: string;
        requirementsProvider: string;
        requirementsProviderConfig?: Record<string, unknown>;
        streamOutput: boolean;
        streamSessionInferenceLog: boolean;
        tools?:
            | StructuredToolInterface<ToolInputSchemaBase, any, any>[]
            | BaseToolkit[]
            | ServerTool[];
        useColour: boolean;
        writeOutputToFile: string | boolean;
    }
    Index

    Properties

    a2aAgents?: Record<string, A2AConfig>

    A2A (Agent-to-Agent) protocol agents configuration. Enables delegation of tasks to external AI agents. Each agent becomes available as a tool named a2a_agent_<agentId>. This feature is experimental and may change.

    builtInTools?: string[]
    builtInToolsConfig?: BuiltInToolsConfig
    canInterruptInferenceWithEsc: boolean

    Allow inference to be interrupted with esc. Only has an effect in TTY mode.

    commands?: {
        ask?: {
            builtInTools?: string[];
            filesystem?: string[] | "read" | "all" | "none";
        };
        chat?: {
            builtInTools?: string[];
            filesystem?: string[]
            | "read"
            | "all"
            | "none";
        };
        code?: {
            builtInTools?: string[];
            devTools?: GthDevToolsConfig;
            filesystem?: string[]
            | "read"
            | "all"
            | "none";
        };
        pr?: {
            builtInTools?: string[];
            contentProvider?: string;
            filesystem?: string[]
            | "read"
            | "all"
            | "none";
            logWorkForReviewInSeconds?: number;
            rating?: RatingConfig;
            requirementsProvider?: string;
        };
        review?: {
            builtInTools?: string[];
            contentProvider?: string;
            filesystem?: string[]
            | "read"
            | "all"
            | "none";
            rating?: RatingConfig;
            requirementsProvider?: string;
        };
    }
    contentProvider: string

    Content Provider. Provider used to fetch content (usually diff) for review or pr command.

    DEFAULT_CONFIG#contentProvider

    contentProviderConfig?: Record<string, unknown>
    customToolsConfig?: CustomToolsConfig
    debugLog?: boolean

    Log messages and events to gaunt-sloth.log, use llm.verbose or gth --verbose as more intrusive option, setting verbose to LangChain / LangGraph

    filesystem: string[] | "read" | "all" | "none"
    identityProfile?: string

    Separate identity profile. May include separate identity, guidelines and command protocol, making gsloth behave as an agent different from default profile behaviour. for example, devops profile to detect changes such as properties and environment variables. Custom config can still win over this one. This setting requires .gsloth/.gsloth-settings directory to exist.

    includeCurrentDateAfterGuidelines: boolean

    Whether to include the current date in the project review instructions or not.

    llm: BaseChatModel
    mcpServers?: Record<
        string,
        | {
            args: string[];
            command: string;
            cwd?: string;
            encoding?: string;
            env?: Record<string, string>;
            restart?: { delayMs?: number; enabled?: boolean; maxAttempts?: number };
            stderr?: "pipe" | "ignore" | "inherit" | "overlapped";
            transport?: "stdio";
            type?: "stdio";
        } & {
            defaultToolTimeout?: number;
            outputHandling?: | "content"
            | "artifact"
            | {
                audio?: "content"
                | "artifact";
                image?: "content" | "artifact";
                resource?: "content" | "artifact";
                resource_link?: "content" | "artifact";
                text?: "content" | "artifact";
            };
        }
        | {
            authProvider?: OAuthClientProvider;
            automaticSSEFallback?: boolean;
            headers?: Record<string, string>;
            reconnect?: { delayMs?: number; enabled?: boolean; maxAttempts?: number };
            transport?: "http" | "sse";
            type?: "http" | "sse";
            url: string;
        } & {
            defaultToolTimeout?: number;
            outputHandling?: | "content"
            | "artifact"
            | {
                audio?: "content"
                | "artifact";
                image?: "content" | "artifact";
                resource?: "content" | "artifact";
                resource_link?: "content" | "artifact";
                text?: "content" | "artifact";
            };
        },
    >

    MCP (Model Context Protocol) server connections. Allows connecting to external MCP servers including those requiring OAuth.

    middleware?: MiddlewareConfig[]

    Middleware configuration for LangChain v1. Middleware provides hooks to intercept and control agent execution at critical points.

    Middleware can be:

    • Predefined middleware (string or config object) - works in both JSON and JS configs
    • Custom middleware objects - only available in JS configs

    Example (JSON config):

    {
    "middleware": [
    "summarization",
    { "name": "anthropic-prompt-caching", "ttl": "5m" }
    ]
    }

    Example (JS config):

    {
    middleware: [
    "summarization",
    { beforeModel: (state) => { /* custom logic */ return state; } }
    ]
    }

    Available predefined middleware:

    • anthropic-prompt-caching: Reduces API costs by caching prompts (Anthropic only)
    • summarization: Condenses conversation history when approaching token limits
    modelDisplayName?: string
    organization?: { locale?: string; name?: string; timezone?: string }

    Organisation name, locale and timezone. Only used with includeCurrentDateAfterGuidelines. timeZone and locale should be in format supported by Intl.DateTimeFormat

    projectGuidelines: string

    Path to project-specific guidelines. The default is .gsloth.guidelines.md; this config may be used to point Gaunt Sloth to a different file, for example, to AGENTS.md

    projectReviewInstructions: string
    requirementsProvider: string
    requirementsProviderConfig?: Record<string, unknown>
    streamOutput: boolean

    Stream output. Some models do not support streaming. Set value to false for them.

    DEFAULT_CONFIG#streamOutput

    streamSessionInferenceLog: boolean

    Stream session log instead of writing it when inference streaming is complete. (only works when streamOutput is true)

    tools?:
        | StructuredToolInterface<ToolInputSchemaBase, any, any>[]
        | BaseToolkit[]
        | ServerTool[]
    useColour: boolean

    Use colour in output

    writeOutputToFile: string | boolean

    Should the output be written to md file. (e.g. gth_2025-07-26_22-59-06_REVIEW.md). Can be set to false with -wn or -w0 Can be set to a specific filename or path by passing a string:

    • Bare filenames (e.g. "review.md") are placed in .gsloth/ when it exists, otherwise project root
    • Paths with separators (e.g. "./review.md" or "reviews/last.md") are always relative to project root Please note the string does not accept absolute path, but allows to exit project with .. if necessary.