Three-month batch sync from internal repo (~80 commits) covering Tracks F.5a, F.7e, F.8, F.17, F.18, F.X. WordPress media pipeline - Pillow-based optimization, AI image generation (OpenAI / Stability / Replicate / Google Nano Banana / OpenRouter), chunked + resumable uploads, bulk delete/reassign, idempotent retries. Capability discovery (F.7e) - Per-site credential probe + adapters for WordPress / WooCommerce / Gitea, tier-fit unions granted ∪ roles, capability badge UI with HTMX partial re-check, install hint in every companion-unreachable error. Companion plugin overhaul - Renamed wordpress-plugin/airano-mcp-seo-bridge → wordpress-plugin/airano-mcp-bridge. - Eight new endpoints: /capabilities, /bulk-meta, /export, /cache-purge, /transient-flush, /site-health, /audit-hook, /upload-and-attach. - wp.org Plugin Check pass: i18n, WP_Filesystem, scheme allowlist on audit-hook URL. Other - Gitea ergonomics (F.17): batch files, tree, search, compare, releases, fork. - Opportunistic bcrypt upgrade for legacy SHA-256 admin keys (F.8). - n8n refactor: structured errors, capability probe, missing tools backfilled. - Idempotency-Key dedup for AI media upload retries; WP client fast-fails on unreachable sites. Docs - README + CLAUDE.md drop the fixed "633 tools" claim. The total grows with each release; per-plugin approximations + dashboard-surfaced counts replace it. - Tools/Tests badges removed in favour of "Plugins: 10". Deployment - PyPI mirror chain, optional BUILD_HTTP_PROXY, Alpine→Yandex apk mirror, Debian-slim Plan-B Dockerfile, mirror.gcr.io variant. CI - Black + Ruff clean on Python 3.12; pytest tests/ green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
34 lines
1.1 KiB
Plaintext
34 lines
1.1 KiB
Plaintext
# FastMCP - MCP server framework (pin to 2.x, avoid 3.0 breaking changes)
|
|
fastmcp>=2.14.0,<3.0.0
|
|
|
|
# HTTP client for API requests
|
|
aiohttp>=3.9.0
|
|
httpx>=0.25.0
|
|
|
|
# JSON schema validation (used by FastMCP)
|
|
pydantic>=2.5.0
|
|
|
|
# Docker SDK (optional, for future direct container access)
|
|
docker>=7.0.0
|
|
|
|
# Additional utilities
|
|
python-dotenv>=1.0.0
|
|
|
|
# OAuth 2.1 Infrastructure
|
|
authlib>=1.5.0 # OAuth 2.1 server/client implementation
|
|
PyJWT>=2.8.0 # JWT encoding/decoding
|
|
cryptography>=46.0.0 # For RSA/ECDSA JWT signing + AES-256-GCM encryption
|
|
|
|
# Template engine for dashboard and OAuth pages
|
|
jinja2>=3.1.2 # HTML template rendering
|
|
|
|
# Database (Track E — Live Platform)
|
|
aiosqlite>=0.20.0 # Async SQLite for user data, sites, API keys
|
|
|
|
# User API key hashing (Track E.3)
|
|
bcrypt>=4.0.0 # Secure password hashing for user API keys
|
|
|
|
# Media upload (F.5a): image optimization and MIME sniffing
|
|
Pillow>=10.2.0 # Image resize / compress / EXIF strip
|
|
python-magic>=0.4.27 # Magic-byte MIME sniffing (requires libmagic system package)
|