"""Hindsight's declared config surface — rendered by the generic desktop panel."""

from plugins.memory.config_schema import (
    KIND_SECRET, KIND_SELECT, KIND_TEXT, ProviderConfigSchema, ProviderField, ProviderFieldOption,
)

CONFIG_SCHEMA = ProviderConfigSchema(
    name="hindsight",
    label="Hindsight",
    fields=(
        ProviderField(
            key="mode", label="Mode", kind=KIND_SELECT, default="cloud",
            description="How Hermes connects to Hindsight.",
            options=(
                ProviderFieldOption("cloud", "Cloud", "Hindsight Cloud API (lightweight, just needs an API key)"),
                ProviderFieldOption("local_external", "Local External", "Connect to an existing Hindsight instance"),
            ),
            inline=True,
        ),
        ProviderField(
            key="api_key", label="API key", kind=KIND_SECRET, env_key="HINDSIGHT_API_KEY",
            description="Used to authenticate with the Hindsight API.",
            placeholder="Enter Hindsight API key", inline=True,
        ),
        ProviderField(
            key="api_url", label="API URL", kind=KIND_TEXT, default="https://api.hindsight.vectorize.io",
            aliases=("apiUrl",), env_fallbacks=("HINDSIGHT_API_URL",), inline=True,
        ),
        ProviderField(key="bank_id", label="Bank ID", kind=KIND_TEXT, default="hermes", aliases=("bankId",), inline=True),
        ProviderField(
            key="recall_budget", label="Recall budget", kind=KIND_SELECT, default="mid", aliases=("budget",),
            options=tuple(ProviderFieldOption(b, b) for b in ("low", "mid", "high")),
            inline=True,
        ),
    ),
)
