systemprompt-ai 0.1.21

Core AI module for systemprompt.io
Documentation
use systemprompt_extension::prelude::*;

#[derive(Debug, Clone, Copy, Default)]
pub struct AiExtension;

impl Extension for AiExtension {
    fn metadata(&self) -> ExtensionMetadata {
        ExtensionMetadata {
            id: "ai",
            name: "AI",
            version: env!("CARGO_PKG_VERSION"),
        }
    }

    fn migration_weight(&self) -> u32 {
        35
    }

    fn schemas(&self) -> Vec<SchemaDefinition> {
        vec![
            SchemaDefinition::inline("ai_requests", include_str!("../schema/ai_requests.sql"))
                .with_required_columns(vec![
                    "id".into(),
                    "provider".into(),
                    "model".into(),
                    "created_at".into(),
                ]),
            SchemaDefinition::inline(
                "ai_request_messages",
                include_str!("../schema/ai_request_messages.sql"),
            )
            .with_required_columns(vec![
                "id".into(),
                "request_id".into(),
                "role".into(),
            ]),
            SchemaDefinition::inline(
                "ai_request_tool_calls",
                include_str!("../schema/ai_request_tool_calls.sql"),
            )
            .with_required_columns(vec![
                "id".into(),
                "request_id".into(),
                "tool_name".into(),
            ]),
        ]
    }

    fn dependencies(&self) -> Vec<&'static str> {
        vec!["users", "mcp"]
    }
}

register_extension!(AiExtension);