Files
manual_slop/conductor/archive/minimax_provider_20260306/plan.md
2026-03-08 13:29:53 -04:00

3.1 KiB

Implementation Plan: MiniMax Provider Integration (minimax_provider_20260306)

Reference: Spec

Phase 1: Provider Registration

Focus: Add minimax to PROVIDERS lists and credentials

  • Task 1.1: Add "minimax" to PROVIDERS list [b79c1fc]

    • WHERE: src/gui_2.py line 28
    • WHAT: Add "minimax" to PROVIDERS list
    • HOW: Edit the list
  • Task 1.2: Add "minimax" to app_controller.py PROVIDERS [b79c1fc]

    • WHERE: src/app_controller.py line 117
    • WHAT: Add "minimax" to PROVIDERS list
  • Task 1.3: Add minimax credentials template [b79c1fc]

    • WHERE: src/ai_client.py (credentials template section)
    • WHAT: Add minimax API key section to credentials template
    • HOW:
      [minimax]
      api_key = "your-key"
      

Phase 2: Client Implementation

Focus: Implement MiniMax client and model listing

  • Task 2.1: Add client globals [b79c1fc]

    • WHERE: src/ai_client.py (around line 73)
    • WHAT: Add _minimax_client, _minimax_history, _minimax_history_lock
  • Task 2.2: Implement _list_minimax_models [b79c1fc]

    • WHERE: src/ai_client.py
    • WHAT: Return list of available models
    • HOW:
      def _list_minimax_models(api_key: str) -> list[str]:
          return ["MiniMax-M2.5", "MiniMax-M2.5-highspeed", "MiniMax-M2.1", "MiniMax-M2.1-highspeed", "MiniMax-M2"]
      
  • Task 2.3: Implement _classify_minimax_error

    • WHERE: src/ai_client.py
    • WHAT: Map MiniMax errors to ProviderError
  • Task 2.4: Implement _ensure_minimax_client

    • WHERE: src/ai_client.py
    • WHAT: Initialize OpenAI client with MiniMax base URL

Phase 3: Send Implementation

Focus: Implement _send_minimax function

  • Task 3.1: Implement _send_minimax

    • WHERE: src/ai_client.py (after _send_deepseek)
    • WHAT: Send chat completion request to MiniMax API
    • HOW:
      • Use OpenAI SDK with base_url="https://api.minimax.chat/v1"
      • Support streaming and non-streaming
      • Handle tool calls
      • Manage conversation history
  • Task 3.2: Add minimax to list_models routing

    • WHERE: src/ai_client.py list_models function
    • WHAT: Add elif provider == "minimax": return _list_minimax_models()

Phase 4: Integration

Focus: Wire minimax into the send function

  • Task 4.1: Add minimax to set_provider

    • WHERE: src/ai_client.py set_provider function
    • WHAT: Validate minimax model
  • Task 4.2: Add minimax to send routing

    • WHERE: src/ai_client.py send function (around line 1607)
    • WHAT: Add elif for minimax to call _send_minimax
  • Task 4.3: Add minimax to reset_session

    • WHERE: src/ai_client.py reset_session function
    • WHAT: Clear minimax history
  • Task 4.4: Add minimax to history bleeding

    • WHERE: src/ai_client.py _add_bleed_derived
    • WHAT: Handle minimax history

Phase 5: Testing

Focus: Verify integration works

  • Task 5.1: Write unit tests for minimax integration

    • WHERE: tests/test_minimax_provider.py
    • WHAT: Test model listing, error classification
  • Task 5.2: Manual verification

    • WHAT: Test provider switching in GUI