Excellent! This is very valuable information. LiteLLM appears to be an excellent option for the unified LLM API wrapper that the requirements mention. It can abstract multiple providers (Anthropic, Google, OpenAI, Ollama, xAI, etc.) behind a common interface.

Now I have all the research I need to create the research.json file. Let me compile this into a comprehensive document.

Summary of what I've researched:

1. **Anthropic SDK** - `pip install anthropic`, Python 3.9+
2. **Google Gemini SDK** - `pip install google-genai` (NEW SDK, google-generativeai is deprecated)
3. **xAI Grok SDK** - `pip install xai-sdk`, Python 3.10+
4. **Ollama Python** - `pip install ollama`, Python 3.8+
5. **FastAPI** - `pip install "fastapi[standard]"` (includes uvicorn)
6. **React/TypeScript/Vite** - `npm create vite@latest -- --template react-ts`
7. **MCP Python SDK** - `pip install mcp`, Python 3.10+
8. **GitPython** - `pip install GitPython` for Git operations
9. **py-gitea** - `pip install py-gitea` for Gitea API
10. **LiteLLM** (recommendation) - Unified LLM API wrapper for multiple providers

Let me create the research.json file now.

Now I have comprehensive research on all the key integrations. Let me create the research.json file with all my findings:

Write

{
  "integrations_researched": [
    {
      "name": "Anthropic Claude SDK",
      "type": "library",
      "verified_package": {
        "name": "anthropic",
        "install_command": "pip install anthropic",
        "version": "latest (Nov 2025)",
        "python_requires": ">=3.9",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "from anthropic import Anthropic",
          "from anthropic import AsyncAnthropic"
        ],
        "initialization": "client = Anthropic()  # Uses ANTHROPIC_API_KEY env var",
        "key_functions": [
          "client.messages.create(model, messages, max_tokens)",
          "await async_client.messages.create(...)"
        ],
        "verified_against": "PyPI + GitHub anthropics/anthropic-sdk-python"
      },
      "configuration": {
        "env_vars": ["ANTHROPIC_API_KEY"],
        "config_files": [],
        "dependencies": ["httpx"]
      },
      "extras": {
        "bedrock": "pip install anthropic[bedrock]",
        "vertex": "pip install anthropic[vertex]"
      },
      "gotchas": [
        "Supports both sync and async clients via Anthropic() and AsyncAnthropic()",
        "Context manager support for automatic HTTP client cleanup",
        "Type definitions for all request/response fields"
      ],
      "research_sources": [
        "https://pypi.org/project/anthropic/",
        "https://github.com/anthropics/anthropic-sdk-python",
        "https://platform.claude.com/docs/en/api/client-sdks"
      ]
    },
    {
      "name": "Google Gemini SDK",
      "type": "library",
      "verified_package": {
        "name": "google-genai",
        "install_command": "pip install google-genai",
        "version": "GA (May 2025)",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "from google import genai"
        ],
        "initialization": "client = genai.Client(api_key='GEMINI_API_KEY')  # or uses GEMINI_API_KEY env var",
        "key_functions": [
          "client.models.generate_content(model, contents)",
          "client.models.generate_content_stream(...)"
        ],
        "verified_against": "Google AI for Developers docs"
      },
      "configuration": {
        "env_vars": ["GEMINI_API_KEY"],
        "config_files": [],
        "dependencies": []
      },
      "extras": {
        "async": "pip install google-genai[aiohttp]"
      },
      "gotchas": [
        "CRITICAL: google-generativeai package is DEPRECATED (EOL Nov 30, 2025)",
        "Must use new google-genai package for all new development",
        "Supports both Gemini Developer API and Vertex AI APIs",
        "LLMs may generate code for deprecated library - always use google-genai"
      ],
      "research_sources": [
        "https://pypi.org/project/google-generativeai/",
        "https://ai.google.dev/gemini-api/docs/libraries",
        "https://github.com/googleapis/python-genai"
      ]
    },
    {
      "name": "xAI Grok SDK",
      "type": "library",
      "verified_package": {
        "name": "xai-sdk",
        "install_command": "pip install xai-sdk",
        "version": "latest",
        "python_requires": ">=3.10",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "from xai_sdk import Client",
          "from xai_sdk import AsyncClient"
        ],
        "initialization": "client = Client()  # Uses XAI_API_KEY env var",
        "key_functions": [
          "client.chat(...)",
          "client.generate(...)",
          "await async_client.chat(...)"
        ],
        "verified_against": "GitHub xai-org/xai-sdk-python + PyPI"
      },
      "configuration": {
        "env_vars": ["XAI_API_KEY"],
        "config_files": [],
        "base_url": "https://api.x.ai/v1"
      },
      "extras": {
        "telemetry_http": "pip install xai-sdk[telemetry-http]",
        "telemetry_grpc": "pip install xai-sdk[telemetry-grpc]"
      },
      "gotchas": [
        "gRPC-based Python library",
        "Supports both sync and async clients",
        "Agentic tool calling with web search, X search, and code execution",
        "Multiple community SDKs exist (xai-grok, xai-grok-sdk) - use official xai-sdk"
      ],
      "research_sources": [
        "https://github.com/xai-org/xai-sdk-python",
        "https://pypi.org/project/xai-sdk/",
        "https://docs.x.ai/docs/tutorial"
      ]
    },
    {
      "name": "Ollama Python",
      "type": "library",
      "verified_package": {
        "name": "ollama",
        "install_command": "pip install ollama",
        "version": "latest (Nov 2025)",
        "python_requires": ">=3.8",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "import ollama",
          "from ollama import Client",
          "from ollama import AsyncClient"
        ],
        "initialization": "client = Client(host='http://localhost:11434')",
        "key_functions": [
          "ollama.chat(model, messages)",
          "ollama.generate(model, prompt)",
          "await AsyncClient().chat(model, messages, stream=True)"
        ],
        "verified_against": "GitHub ollama/ollama-python"
      },
      "configuration": {
        "env_vars": [],
        "config_files": [],
        "host": "http://localhost:11434 (default)"
      },
      "infrastructure": {
        "requires_docker": false,
        "requires_ollama_server": true,
        "install_ollama": "https://ollama.com/download"
      },
      "gotchas": [
        "Ollama server must be running separately before using Python client",
        "Pull models first with 'ollama pull <model>' e.g., 'ollama pull gemma3'",
        "Supports streaming with stream=True parameter",
        "Custom client with headers: Client(host=..., headers={...})",
        "Now supports streaming with MCP tool calling"
      ],
      "research_sources": [
        "https://github.com/ollama/ollama-python",
        "https://pypi.org/project/ollama/",
        "https://ollama.com/blog/streaming-tool"
      ]
    },
    {
      "name": "FastAPI",
      "type": "framework",
      "verified_package": {
        "name": "fastapi",
        "install_command": "pip install \"fastapi[standard]\"",
        "version": "0.115.0+",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "from fastapi import FastAPI",
          "from fastapi import Depends, HTTPException",
          "from pydantic import BaseModel"
        ],
        "initialization": "app = FastAPI()",
        "key_functions": [
          "@app.get('/path')",
          "@app.post('/path')",
          "async def endpoint(): ...",
          "Depends() for dependency injection"
        ],
        "verified_against": "Official FastAPI docs"
      },
      "configuration": {
        "env_vars": [],
        "config_files": [],
        "dependencies": ["uvicorn", "pydantic", "starlette"]
      },
      "infrastructure": {
        "run_command": "uvicorn main:app --reload",
        "default_port": 8000
      },
      "gotchas": [
        "Use fastapi[standard] to get uvicorn and other standard dependencies",
        "ASGI server (uvicorn) required to run the app",
        "Built on Starlette (web) + Pydantic (data validation)",
        "Automatic OpenAPI/Swagger docs at /docs and /redoc",
        "--reload flag for development only"
      ],
      "research_sources": [
        "https://pypi.org/project/fastapi/",
        "https://fastapi.tiangolo.com/",
        "https://fastapi.tiangolo.com/tutorial/"
      ]
    },
    {
      "name": "React with TypeScript (Vite)",
      "type": "framework",
      "verified_package": {
        "name": "vite + react + typescript",
        "install_command": "npm create vite@latest my-app -- --template react-ts",
        "version": "Vite 6.3.2+ (latest)",
        "node_requires": ">=18",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "import React from 'react'",
          "import { useState, useEffect } from 'react'"
        ],
        "project_structure": "index.html at root, src/ with main.tsx entry",
        "key_features": [
          "Hot Module Replacement (HMR)",
          "Native ES modules in development",
          "TypeScript support out of box"
        ],
        "verified_against": "Vite official guide"
      },
      "configuration": {
        "config_files": ["vite.config.ts", "tsconfig.json"],
        "commands": {
          "dev": "npm run dev",
          "build": "npm run build",
          "preview": "npm run preview"
        }
      },
      "infrastructure": {
        "dev_server": "http://localhost:5173",
        "build_output": "dist/"
      },
      "gotchas": [
        "Node.js >= v18 required",
        "Available templates: react-ts, react-swc-ts (faster builds)",
        "For testing: npm install -D vitest @testing-library/react",
        "HMR provides instant updates without page refresh"
      ],
      "research_sources": [
        "https://vite.dev/guide/",
        "https://blog.logrocket.com/how-to-build-react-typescript-app-vite/"
      ]
    },
    {
      "name": "MCP Python SDK",
      "type": "library",
      "verified_package": {
        "name": "mcp",
        "install_command": "pip install mcp",
        "version": "1.25.0+ (v2 coming Q1)",
        "python_requires": ">=3.10",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "from mcp.server.fastmcp import FastMCP",
          "from mcp.client import Client"
        ],
        "initialization": "mcp = FastMCP('server-name')",
        "key_concepts": [
          "Resources - like GET endpoints for data",
          "Tools - like POST endpoints for actions",
          "Prompts - reusable templates for LLM interactions"
        ],
        "verified_against": "GitHub modelcontextprotocol/python-sdk"
      },
      "configuration": {
        "env_vars": [],
        "config_files": [],
        "transport_options": ["stdio", "SSE", "Streamable HTTP", "WebSocket"]
      },
      "extras": {
        "cli": "pip install mcp[cli]",
        "rich": "pip install mcp[rich]",
        "websocket": "pip install mcp[ws]"
      },
      "gotchas": [
        "MCP is authored by Anthropic",
        "v2 planned for Q1 - pin to mcp>=1.25,<2 for stability",
        "Separates context provision from LLM interaction",
        "FastMCP provides high-level server abstraction"
      ],
      "research_sources": [
        "https://pypi.org/project/mcp/",
        "https://github.com/modelcontextprotocol/python-sdk",
        "https://modelcontextprotocol.io/docs/develop/build-server"
      ]
    },
    {
      "name": "GitPython",
      "type": "library",
      "verified_package": {
        "name": "GitPython",
        "install_command": "pip install GitPython",
        "version": "3.1.46+",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "from git import Repo"
        ],
        "initialization": "repo = Repo('/path/to/repo')  # or Repo.init('/path')",
        "key_functions": [
          "Repo.init(path)",
          "Repo.clone_from(url, path)",
          "repo.create_head(branch_name)",
          "repo.index.add(files)",
          "repo.index.commit(message)",
          "repo.git.push()",
          "repo.is_dirty()"
        ],
        "verified_against": "GitPython documentation"
      },
      "configuration": {
        "env_vars": [],
        "requires": "Git must be installed on system"
      },
      "gotchas": [
        "Not suited for long-running processes (daemons) - leaks system resources",
        "Use as subprocess for long-running applications",
        "is_dirty() checks for uncommitted changes (untracked, modified, staged)",
        "Requires Git executable installed on system"
      ],
      "research_sources": [
        "https://pypi.org/project/GitPython/",
        "https://github.com/gitpython-developers/GitPython",
        "https://gitpython.readthedocs.io/en/stable/"
      ]
    },
    {
      "name": "py-gitea (Gitea API Client)",
      "type": "library",
      "verified_package": {
        "name": "py-gitea",
        "install_command": "pip install py-gitea",
        "version": "0.2.10 (Sep 2025)",
        "python_requires": ">=3.11",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "from gitea import Gitea"
        ],
        "initialization": "gitea = Gitea(url, token)",
        "key_features": [
          "Organizations management",
          "Teams management",
          "Repositories management",
          "Users management"
        ],
        "verified_against": "GitHub Langenfeld/py-gitea"
      },
      "configuration": {
        "env_vars": ["GITEA_TOKEN (recommended)"],
        "requires_gitea": ">=1.16.1"
      },
      "alternatives": [
        "py-gitea-opensuse-org (Dec 2025, auto-generated)",
        "giteapy (older, Swagger-generated)"
      ],
      "gotchas": [
        "Requires Gitea server >= 1.16.1",
        "Python 3.11+ required (newer than some other packages)",
        "Focused on Org/Team/Repo/User management"
      ],
      "research_sources": [
        "https://pypi.org/project/py-gitea/",
        "https://github.com/Langenfeld/py-gitea"
      ]
    },
    {
      "name": "LiteLLM (Unified LLM API)",
      "type": "library",
      "verified_package": {
        "name": "litellm",
        "install_command": "pip install litellm",
        "version": "latest",
        "verified": true
      },
      "api_patterns": {
        "imports": [
          "import litellm",
          "from litellm import completion"
        ],
        "initialization": "response = completion(model='provider/model', messages=[...])",
        "key_functions": [
          "completion(model, messages)",
          "acompletion(...) for async",
          "embedding(model, input)"
        ],
        "verified_against": "LiteLLM documentation"
      },
      "configuration": {
        "env_vars": [
          "OPENAI_API_KEY",
          "ANTHROPIC_API_KEY",
          "GEMINI_API_KEY",
          "Provider-specific keys"
        ],
        "supported_providers": [
          "OpenAI", "Anthropic", "Google/Gemini", "Azure",
          "AWS Bedrock", "Ollama", "Cohere", "HuggingFace",
          "Groq", "VLLM", "100+ more"
        ]
      },
      "key_features": [
        "Unified interface for 100+ LLMs",
        "OpenAI-compatible API format",
        "Cost tracking and budgeting",
        "Automatic retries and fallbacks",
        "Load balancing across providers",
        "Proxy server mode for gateway usage"
      ],
      "gotchas": [
        "HIGHLY RECOMMENDED for multi-provider projects",
        "Can use as SDK or Proxy Server (AI Gateway)",
        "Mimics OpenAI API structure - write once, swap models",
        "Enterprise adoption: Netflix, Lemonade, RocketMoney",
        "470k+ downloads, 28k+ GitHub stars",
        "Can combine with OpenRouter for even more models"
      ],
      "research_sources": [
        "https://docs.litellm.ai/docs/",
        "https://github.com/BerriAI/litellm",
        "https://docs.litellm.ai/docs/providers"
      ]
    }
  ],
  "unverified_claims": [
    {
      "claim": "Cross-model validation quality improvements",
      "reason": "This is an architectural pattern, not a package - implementation approach needs to be designed",
      "risk_level": "low"
    },
    {
      "claim": "Cost optimization through intelligent routing",
      "reason": "Implementation depends on model pricing APIs and usage tracking - LiteLLM provides cost tracking support",
      "risk_level": "low"
    }
  ],
  "recommendations": [
    {
      "topic": "Unified LLM Interface",
      "recommendation": "Use LiteLLM as the unified API wrapper instead of managing individual SDKs directly",
      "rationale": "LiteLLM provides a single interface for 100+ models with automatic fallbacks, cost tracking, and load balancing - exactly what the multi-provider requirements need"
    },
    {
      "topic": "Google Gemini",
      "recommendation": "Use google-genai package, NOT google-generativeai",
      "rationale": "google-generativeai was deprecated on Nov 30, 2025 - all new code must use google-genai"
    },
    {
      "topic": "xAI Grok",
      "recommendation": "Use official xai-sdk package, not community alternatives",
      "rationale": "Multiple community packages exist (xai-grok, xai-grok-sdk) but official xai-sdk is most reliable"
    },
    {
      "topic": "Git Integration",
      "recommendation": "Use GitPython for programmatic Git, but avoid in long-running daemon processes",
      "rationale": "GitPython has known resource leak issues in long-running processes - factor out to subprocess for daemons"
    },
    {
      "topic": "Gitea API",
      "recommendation": "Use py-gitea (v0.2.10) - most recently maintained",
      "rationale": "Requires Python 3.11+ and Gitea 1.16.1+ - verify compatibility with other package requirements"
    },
    {
      "topic": "Python Version",
      "recommendation": "Use Python 3.11+ for maximum compatibility",
      "rationale": "py-gitea requires 3.11+, xai-sdk requires 3.10+, MCP requires 3.10+ - 3.11 satisfies all"
    },
    {
      "topic": "MCP Version",
      "recommendation": "Pin MCP to mcp>=1.25,<2 for stability",
      "rationale": "MCP v2 is planned for Q1 - pinning prevents breaking changes"
    }
  ],
  "context7_libraries_found": [
    "/anthropics/anthropic-sdk-python",
    "/websites/fastapi_tiangolo",
    "/ollama/ollama-python",
    "/websites/ai_google_dev_gemini-api",
    "/websites/typescriptlang",
    "/modelcontextprotocol/python-sdk",
    "/websites/x_ai"
  ],
  "python_requirements_summary": {
    "minimum_python": "3.11",
    "core_packages": [
      "fastapi[standard]",
      "uvicorn",
      "pydantic",
      "litellm",
      "anthropic",
      "google-genai",
      "xai-sdk",
      "ollama",
      "mcp>=1.25,<2",
      "GitPython",
      "py-gitea"
    ],
    "optional_packages": [
      "anthropic[bedrock]",
      "anthropic[vertex]",
      "google-genai[aiohttp]",
      "xai-sdk[telemetry-http]",
      "mcp[cli]"
    ]
  },
  "frontend_requirements_summary": {
    "node_minimum": "18",
    "scaffold_command": "npm create vite@latest -- --template react-ts",
    "dev_command": "npm run dev",
    "build_command": "npm run build",
    "test_packages": [
      "vitest",
      "@testing-library/react",
      "@testing-library/jest-dom"
    ]
  },
  "infrastructure_requirements": {
    "ollama": {
      "required": true,
      "install": "https://ollama.com/download",
      "note": "Ollama server must be running for local LLM inference"
    },
    "gitea": {
      "optional": true,
      "note": "Only if using Gitea for version control (alternative to GitHub)"
    },
    "database": {
      "required": true,
      "recommendation": "PostgreSQL or SQLite for state/spec storage",
      "note": "Not specified in requirements - needs architectural decision"
    }
  },
  "created_at": "2026-01-12T00:00:00Z"
}


File created successfully at: C:\Users\MikeSwanson\claude-projects\ACPlus\auto-claude-plus\.auto-claude\specs\001-multi-llm-agentic-development-platform\research.json

Anthropic Claude SDK

from anthropic import Anthropic
from anthropic import AsyncAnthropic

client = Anthropic()  # Uses ANTHROPIC_API_KEY env var

PyPI + GitHub anthropics/anthropic-sdk-python

Supports both sync and async clients via Anthropic() and AsyncAnthropic()

Context manager support for automatic HTTP client cleanup

Type definitions for all request/response fields

Google Gemini SDK

client = genai.Client(api_key='GEMINI_API_KEY')  # or uses GEMINI_API_KEY env var

CRITICAL: google-generativeai package is DEPRECATED (EOL Nov 30, 2025)

Must use new google-genai package for all new development

Supports both Gemini Developer API and Vertex AI APIs

LLMs may generate code for deprecated library - always use google-genai

xAI Grok SDK

from xai_sdk import Client
from xai_sdk import AsyncClient

client = Client()  # Uses XAI_API_KEY env var

Agentic tool calling with web search, X search, and code execution

Multiple community SDKs exist (xai-grok, xai-grok-sdk) - use official xai-sdk

Ollama Python

import ollama
from ollama import Client
from ollama import AsyncClient

await AsyncClient().chat(model, messages, stream=True)

Ollama server must be running separately before using Python client

Pull models first with 'ollama pull <model>' e.g., 'ollama pull gemma3'

Supports streaming with stream=True parameter

Custom client with headers: Client(host=..., headers={...})

Now supports streaming with MCP tool calling

FastAPI

from fastapi import Depends, HTTPException

Use fastapi[standard] to get uvicorn and other standard dependencies

ASGI server (uvicorn) required to run the app

Built on Starlette (web) + Pydantic (data validation)

Automatic OpenAPI/Swagger docs at /docs and /redoc

React with TypeScript (Vite)

vite + react + typescript

npm create vite@latest my-app -- --template react-ts

import { useState, useEffect } from 'react'

index.html at root, src/ with main.tsx entry

Hot Module Replacement (HMR)
Native ES modules in development
TypeScript support out of box

Available templates: react-ts, react-swc-ts (faster builds)

For testing: npm install -D vitest @testing-library/react

HMR provides instant updates without page refresh

MCP Python SDK

from mcp.server.fastmcp import FastMCP
from mcp.client import Client

Prompts - reusable templates for LLM interactions

v2 planned for Q1 - pin to mcp>=1.25,<2 for stability

Separates context provision from LLM interaction

FastMCP provides high-level server abstraction

GitPython

repo = Repo('/path/to/repo')  # or Repo.init('/path')

Not suited for long-running processes (daemons) - leaks system resources

Use as subprocess for long-running applications

is_dirty() checks for uncommitted changes (untracked, modified, staged)

Requires Git executable installed on system

py-gitea (Gitea API Client)

Organizations management
Teams management
Repositories management
Users management

py-gitea-opensuse-org (Dec 2025, auto-generated)

Python 3.11+ required (newer than some other packages)

Focused on Org/Team/Repo/User management

LiteLLM (Unified LLM API)

import litellm
from litellm import completion

response = completion(model='provider/model', messages=[...])

completion(model, messages)
acompletion(...) for async
embedding(model, input)

OpenAI
Anthropic
Google/Gemini
Azure
AWS Bedrock
Ollama
Cohere
HuggingFace
Groq
VLLM
100+ more

Unified interface for 100+ LLMs
OpenAI-compatible API format
Cost tracking and budgeting
Automatic retries and fallbacks
Load balancing across providers
Proxy server mode for gateway usage

HIGHLY RECOMMENDED for multi-provider projects

Can use as SDK or Proxy Server (AI Gateway)

Mimics OpenAI API structure - write once, swap models

Enterprise adoption: Netflix, Lemonade, RocketMoney

Can combine with OpenRouter for even more models

Cross-model validation quality improvements

This is an architectural pattern, not a package - implementation approach needs to be designed

Cost optimization through intelligent routing

Implementation depends on model pricing APIs and usage tracking - LiteLLM provides cost tracking support

Use LiteLLM as the unified API wrapper instead of managing individual SDKs directly

Explanation: LiteLLM provides a single interface for 100+ models with automatic fallbacks, cost tracking, and load balancing - exactly what the multi-provider requirements need

Use google-genai package, NOT google-generativeai

Explanation: google-generativeai was deprecated on Nov 30, 2025 - all new code must use google-genai

Use official xai-sdk package, not community alternatives

Explanation: Multiple community packages exist (xai-grok, xai-grok-sdk) but official xai-sdk is most reliable

Use GitPython for programmatic Git, but avoid in long-running daemon processes

Explanation: GitPython has known resource leak issues in long-running processes - factor out to subprocess for daemons

Use py-gitea (v0.2.10) - most recently maintained

Explanation: Requires Python 3.11+ and Gitea 1.16.1+ - verify compatibility with other package requirements

Use Python 3.11+ for maximum compatibility

Explanation: py-gitea requires 3.11+, xai-sdk requires 3.10+, MCP requires 3.10+ - 3.11 satisfies all

Explanation: MCP v2 is planned for Q1 - pinning prevents breaking changes

fastapi[standard] uvicorn pydantic litellm anthropic google-genai xai-sdk ollama mcp>=1.25,<2 GitPython py-gitea

anthropic[bedrock] anthropic[vertex] google-genai[aiohttp] xai-sdk[telemetry-http] mcp[cli]

npm create vite@latest -- --template react-ts

Ollama server must be running for local LLM inference

Only if using Gitea for version control (alternative to GitHub)

PostgreSQL or SQLite for state/spec storage

Not specified in requirements - needs architectural decision


I've successfully created the research.json file. Now let me print a summary to confirm completion.

Now let me print a summary of the research findings:

Bash

echo "=== RESEARCH COMPLETE ===" && echo "" && echo "Integrations Researched: 10" && echo "- Anthropic Claude SDK: Verified ✓ (pip install anthropic)" && echo "- Google Gemini SDK: Verified ✓ (pip install google-genai) [DEPRECATED: google-generativeai]" && echo "- xAI Grok SDK: Verified ✓ (pip install xai-sdk)" && echo "- Ollama Python: Verified ✓ (pip install ollama)" && echo "- FastAPI: Verified ✓ (pip install fastapi[standard])" && echo "- React/TypeScript/Vite: Verified ✓ (npm create vite@latest -- --template react-ts)" && echo "- MCP Python SDK: Verified ✓ (pip install mcp>=1.25,<2)" && echo "- GitPython: Verified ✓ (pip install GitPython)" && echo "- py-gitea: Verified ✓ (pip install py-gitea)" && echo "- LiteLLM (Unified API): Verified ✓ (pip install litellm)" && echo "" && echo "Unverified Claims: 2" && echo "- Cross-model validation quality improvements: low risk (design pattern)" && echo "- Cost optimization through routing: low risk (LiteLLM supports)" && echo "" && echo "Key Findings:" && echo "- CRITICAL: google-generativeai is DEPRECATED - use google-genai instead" && echo "- LiteLLM provides unified interface for 100+ LLMs - ideal for multi-provider architecture" && echo "- Python 3.11+ required for full compatibility across all packages" && echo "- MCP v2 coming Q1 2026 - pin to mcp>=1.25,<2 for stability" && echo "- GitPython has resource leaks in long-running processes - use subprocess pattern" && echo "" && echo "Recommendations:" && echo "- Use LiteLLM as the unified LLM API wrapper (already supports all required providers)" && echo "- Use official xai-sdk, not community alternatives" && echo "- Set minimum Python version to 3.11" && echo "- Pin MCP package version for stability" && echo "" && echo "research.json created successfully."

Print research summary


=== RESEARCH COMPLETE ===

Integrations Researched: 10
- Anthropic Claude SDK: Verified ✓ (pip install anthropic)
- Google Gemini SDK: Verified ✓ (pip install google-genai) [DEPRECATED: google-generativeai]
- xAI Grok SDK: Verified ✓ (pip install xai-sdk)
- Ollama Python: Verified ✓ (pip install ollama)
- FastAPI: Verified ✓ (pip install fastapi[standard])
- React/TypeScript/Vite: Verified ✓ (npm create vite@latest -- --template react-ts)
- MCP Python SDK: Verified ✓ (pip install mcp>=1.25,<2)
- GitPython: Verified ✓ (pip install GitPython)
- py-gitea: Verified ✓ (pip install py-gitea)
- LiteLLM (Unified API): Verified ✓ (pip install litellm)

Unverified Claims: 2
- Cross-model validation quality improvements: low risk (design pattern)
- Cost optimization through routing: low risk (LiteLLM supports)

Key Findings:
- CRITICAL: google-generativeai is DEPRECATED - use google-genai instead
- LiteLLM provides unified interface for 100+ LLMs - ideal for multi-provider architecture
- Python 3.11+ required for full compatibility across all packages
- MCP v2 coming Q1 2026 - pin to mcp>=1.25,<2 for stability
- GitPython has resource leaks in long-running processes - use subprocess pattern

Recommendations:
- Use LiteLLM as the unified LLM API wrapper (already supports all required providers)
- Use official xai-sdk, not community alternatives
- Set minimum Python version to 3.11
- Pin MCP package version for stability

research.json created successfully.


I've completed the research phase. The research.json file has been created with comprehensive validated information about all the external integrations mentioned in the requirements.

Let me provide a summary to the user.

## Research Phase Complete

I've researched and validated all external integrations mentioned in the requirements. Here's what I found:

### Verified Integrations (10 total)

| Integration | Package | Status |
|------------|---------|--------|
| Anthropic Claude SDK | `pip install anthropic` | ✓ Verified |
| Google Gemini SDK | `pip install google-genai` | ✓ Verified |
| xAI Grok SDK | `pip install xai-sdk` | ✓ Verified |
| Ollama Python | `pip install ollama` | ✓ Verified |
| FastAPI | `pip install "fastapi[standard]"` | ✓ Verified |
| React/TypeScript/Vite | `npm create vite@latest -- --template react-ts` | ✓ Verified |
| MCP Python SDK | `pip install mcp>=1.25,<2` | ✓ Verified |
| GitPython | `pip install GitPython` | ✓ Verified |
| py-gitea | `pip install py-gitea` | ✓ Verified |
| **LiteLLM** (bonus find) | `pip install litellm` | ✓ Verified |

### Critical Findings

1. **Google Gemini SDK DEPRECATED**: The `google-generativeai` package reached EOL on Nov 30, 2025. Must use `google-genai` for all new development.

2. **LiteLLM - Key Discovery**: This package provides a **unified interface for 100+ LLMs** including all required providers (Anthropic, Gemini, xAI, Ollama). It supports:
   - OpenAI-compatible API format
   - Cost tracking and budgeting
   - Automatic fallbacks and load balancing
   - Enterprise adoption (Netflix, Lemonade, RocketMoney)

3. **Python Version**: Python 3.11+ required for full compatibility (py-gitea requires 3.11+)

4. **MCP Stability**: Pin to `mcp>=1.25,<2` as v2 is planned for Q1 with potential breaking changes

5. **GitPython Warning**: Has resource leak issues in long-running processes - use subprocess pattern for daemons

### Output

**`research.json`** has been created with:
- Detailed API patterns and import statements for each library
- Verified package names and installation commands
- Configuration requirements (env vars, dependencies)
- Known gotchas and warnings
- Research sources for verification