"""Tool schemas — what the LLM sees.

These descriptions tell the model when and how to use Coppermind's
explicit memory tools. The hooks handle automatic capture/retrieval,
but these tools give the agent direct access for deeper operations.
"""

COPPERMIND_SEARCH = {
    "name": "coppermind_search",
    "description": (
        "Search your long-term memory for relevant information. Use this when "
        "the user asks about something from a previous conversation, references "
        "past decisions, or when you need context about their preferences, "
        "project history, or prior work. Examples: 'What did we decide about "
        "the database schema?', 'What are my coding preferences?', 'Remind me "
        "what we discussed last week about authentication.'"
    ),
    "parameters": {
        "type": "object",
        "properties": {
            "query": {
                "type": "string",
                "description": (
                    "Natural language search query describing what you're "
                    "looking for in memory (e.g., 'database schema decisions', "
                    "'user coding preferences', 'authentication discussion')"
                ),
            },
            "limit": {
                "type": "integer",
                "description": "Maximum number of memory results to return (default: 5)",
            },
        },
        "required": ["query"],
    },
}

COPPERMIND_RECALL = {
    "name": "coppermind_recall",
    "description": (
        "Recall recent memories and conversation context. Use this when you "
        "need a broad overview of recent interactions, or when starting a new "
        "session and want to know what the user was working on. Different from "
        "coppermind_search in that it returns recent memories rather than "
        "searching for specific topics."
    ),
    "parameters": {
        "type": "object",
        "properties": {
            "user_id": {
                "type": "string",
                "description": "Optional user ID to recall memories for",
            },
        },
        "required": [],
    },
}
