cf-mini-chat-sdk 0.3.1

SDK for mini-chat: policy plugin traits, models, and errors
Documentation

Mini Chat SDK

Plugin SDK for the mini-chat module: policy plugin traits, domain models, and error types.

Overview

The cf-mini-chat-sdk crate provides:

  • Plugin traitMiniChatModelPolicyPluginClientV1 for policy data providers (model catalog, kill switches, user limits)
  • GTS specMiniChatModelPolicyPluginSpecV1 for types-registry discovery
  • Domain modelsPolicySnapshot, ModelCatalogEntry, UserLimits, KillSwitches, ModelTier
  • Error typeMiniChatModelPolicyPluginError

Plugin implementations (e.g. cf-static-model-policy-plugin) depend on this crate and register via inventory.

Usage

Implement the plugin trait:

use async_trait::async_trait;
use mini_chat_sdk::{
    MiniChatModelPolicyPluginClientV1, MiniChatModelPolicyPluginError,
    PolicySnapshot, PolicyVersionInfo, UserLimits,
};
use uuid::Uuid;

#[async_trait]
impl MiniChatModelPolicyPluginClientV1 for MyPolicyPlugin {
    async fn get_current_policy_version(
        &self,
        user_id: Uuid,
    ) -> Result<PolicyVersionInfo, MiniChatModelPolicyPluginError> {
        // ...
    }

    async fn get_policy_snapshot(
        &self,
        user_id: Uuid,
        policy_version: u64,
    ) -> Result<PolicySnapshot, MiniChatModelPolicyPluginError> {
        // ...
    }

    async fn get_user_limits(
        &self,
        user_id: Uuid,
        policy_version: u64,
    ) -> Result<UserLimits, MiniChatModelPolicyPluginError> {
        // ...
    }
}

License

Apache-2.0