AI/AI.psm1

# AI Module for MiMo CLI - Optimized for MiMo-v2.5
# Provides unified interface for MiMo-v2.5 model

# Import MiMo modules
$modulePath = Split-Path -Parent $MyInvocation.MyCommand.Path
Import-Module "$modulePath\MiMoV25.psm1" -Force
Import-Module "$modulePath\MiMoTTS.psm1" -Force

function Invoke-MiMoAI {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory=$true)]
        [string]$Prompt,
        
        [int]$MaxTokens = 2000,
        [double]$Temperature = 0.3
    )
    
    return Invoke-MiMoV25Completion -Prompt $Prompt -MaxTokens $MaxTokens -Temperature $Temperature
}

function Get-MiMoAIModels {
    return Get-MiMoV25Models
}

function Test-MiMoAIConnection {
    return Test-MiMoV25Connection
}

function Set-MiMoAIConfig {
    param(
        [string]$ApiKey,
        [string]$BaseUrl = "https://api.xiaomimimo.com/v1"
    )
    
    $configPath = "$env:USERPROFILE\.mimocode\ai-config.json"
    $config = @{
        Provider = "MiMo-v2.5"
        ApiKey = $ApiKey
        BaseUrl = $BaseUrl
        Model = "mimo-v2.5"
        Updated = Get-Date
    }
    
    $config | ConvertTo-Json -Depth 10 | Out-File -FilePath $configPath -Encoding UTF8
    Write-Host "MiMo-v2.5 configuration saved"
}

function Get-MiMoAIConfig {
    $configPath = "$env:USERPROFILE\.mimocode\ai-config.json"
    
    if (Test-Path $configPath) {
        return Get-Content -Path $configPath | ConvertFrom-Json
    }
    else {
        return $null
    }
}

# Export functions
Export-ModuleMember -Function Invoke-MiMoAI, Get-MiMoAIModels, Test-MiMoAIConnection, Set-MiMoAIConfig, Get-MiMoAIConfig, Invoke-MiMoTTS, Save-MiMoTTSAudio, Get-MiMoTTSVoices