feat(mma): Complete Visual DAG implementation, fix link creation/deletion, and sync docs

This commit is contained in:
2026-03-06 19:13:20 -05:00
parent 1c977d25d5
commit 661566573c
11 changed files with 260 additions and 36 deletions

View File

@@ -0,0 +1,93 @@
# Implementation Plan: MiniMax Provider Integration (minimax_provider_20260306)
> **Reference:** [Spec](./spec.md)
## Phase 1: Provider Registration
Focus: Add minimax to PROVIDERS lists and credentials
- [ ] Task 1.1: Add "minimax" to PROVIDERS list
- 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
- WHERE: src/app_controller.py line 117
- WHAT: Add "minimax" to PROVIDERS list
- [ ] Task 1.3: Add minimax credentials template
- WHERE: src/ai_client.py (credentials template section)
- WHAT: Add minimax API key section to credentials template
- HOW:
```toml
[minimax]
api_key = "your-key"
```
## Phase 2: Client Implementation
Focus: Implement MiniMax client and model listing
- [ ] Task 2.1: Add client globals
- WHERE: src/ai_client.py (around line 73)
- WHAT: Add _minimax_client, _minimax_history, _minimax_history_lock
- [ ] Task 2.2: Implement _list_minimax_models
- WHERE: src/ai_client.py
- WHAT: Return list of available models
- HOW:
```python
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