From ab1562f3fe4c59bd3e8fa995ab3fd32f44958549 Mon Sep 17 00:00:00 2001 From: Hongming Wang Date: Thu, 16 Apr 2026 04:33:22 -0700 Subject: [PATCH] chore: remove adapter Dockerfiles and requirements.txt from monorepo These files have moved to the standalone template repos: https://github.com/Molecule-AI/molecule-ai-workspace-template- Each adapter repo now has its own Dockerfile (FROM python:3.11-slim + pip install molecule-ai-workspace-runtime) and requirements.txt. The adapter Python source files (.py) stay in the monorepo for local development and testing. Adapters removed from workspace-template/adapters/*/: Dockerfile, requirements.txt Adapters retained: adapter.py, __init__.py (+ hermes extras: escalation.py, executor.py, providers.py) Co-Authored-By: Claude Sonnet 4.6 --- .../adapters/autogen/Dockerfile | 5 ---- .../adapters/autogen/requirements.txt | 2 -- .../adapters/claude_code/Dockerfile | 8 ------- .../adapters/claude_code/requirements.txt | 4 ---- workspace-template/adapters/crewai/Dockerfile | 5 ---- .../adapters/crewai/requirements.txt | 1 - .../adapters/deepagents/Dockerfile | 5 ---- .../adapters/deepagents/requirements.txt | 4 ---- .../adapters/gemini_cli/Dockerfile | 5 ---- .../adapters/gemini_cli/requirements.txt | 2 -- workspace-template/adapters/hermes/Dockerfile | 5 ---- .../adapters/hermes/requirements.txt | 24 ------------------- .../adapters/langgraph/Dockerfile | 5 ---- .../adapters/langgraph/requirements.txt | 12 ---------- .../adapters/openclaw/Dockerfile | 6 ----- .../adapters/openclaw/requirements.txt | 2 -- 16 files changed, 95 deletions(-) delete mode 100644 workspace-template/adapters/autogen/Dockerfile delete mode 100644 workspace-template/adapters/autogen/requirements.txt delete mode 100644 workspace-template/adapters/claude_code/Dockerfile delete mode 100644 workspace-template/adapters/claude_code/requirements.txt delete mode 100644 workspace-template/adapters/crewai/Dockerfile delete mode 100644 workspace-template/adapters/crewai/requirements.txt delete mode 100644 workspace-template/adapters/deepagents/Dockerfile delete mode 100644 workspace-template/adapters/deepagents/requirements.txt delete mode 100644 workspace-template/adapters/gemini_cli/Dockerfile delete mode 100644 workspace-template/adapters/gemini_cli/requirements.txt delete mode 100644 workspace-template/adapters/hermes/Dockerfile delete mode 100644 workspace-template/adapters/hermes/requirements.txt delete mode 100644 workspace-template/adapters/langgraph/Dockerfile delete mode 100644 workspace-template/adapters/langgraph/requirements.txt delete mode 100644 workspace-template/adapters/openclaw/Dockerfile delete mode 100644 workspace-template/adapters/openclaw/requirements.txt diff --git a/workspace-template/adapters/autogen/Dockerfile b/workspace-template/adapters/autogen/Dockerfile deleted file mode 100644 index ef036038..00000000 --- a/workspace-template/adapters/autogen/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM workspace-template:base -USER root -COPY adapters/autogen/requirements.txt /tmp/adapter-requirements.txt -RUN pip install --no-cache-dir -r /tmp/adapter-requirements.txt && rm /tmp/adapter-requirements.txt -# Do NOT set USER agent — entrypoint starts as root, chowns volumes, drops to agent via gosu diff --git a/workspace-template/adapters/autogen/requirements.txt b/workspace-template/adapters/autogen/requirements.txt deleted file mode 100644 index a91e3128..00000000 --- a/workspace-template/adapters/autogen/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -autogen-agentchat>=0.4.0 -autogen-ext[openai]>=0.4.0 diff --git a/workspace-template/adapters/claude_code/Dockerfile b/workspace-template/adapters/claude_code/Dockerfile deleted file mode 100644 index 6ac245b1..00000000 --- a/workspace-template/adapters/claude_code/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM workspace-template:base -USER root -RUN npm install -g @anthropic-ai/claude-code 2>/dev/null || true -# Pre-install adapter Python deps (single source of truth: requirements.txt) -# so first-boot doesn't pay a pip install penalty. entrypoint.sh skips -# reinstall when the first listed package is already importable. -RUN pip install --no-cache-dir -r /app/adapters/claude_code/requirements.txt -# Do NOT set USER agent — entrypoint starts as root, chowns volumes, drops to agent via gosu diff --git a/workspace-template/adapters/claude_code/requirements.txt b/workspace-template/adapters/claude_code/requirements.txt deleted file mode 100644 index 83ae9f21..00000000 --- a/workspace-template/adapters/claude_code/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Claude Agent SDK — programmatic API to Claude Code engine. -# Replaces CLI subprocess approach (no more --print, --resume, json parsing). -# The Claude Code CLI is still pre-installed via npm because the SDK uses it under the hood. -claude-agent-sdk>=0.1.58 diff --git a/workspace-template/adapters/crewai/Dockerfile b/workspace-template/adapters/crewai/Dockerfile deleted file mode 100644 index c79fbb71..00000000 --- a/workspace-template/adapters/crewai/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM workspace-template:base -USER root -COPY adapters/crewai/requirements.txt /tmp/adapter-requirements.txt -RUN pip install --no-cache-dir -r /tmp/adapter-requirements.txt && rm /tmp/adapter-requirements.txt -# Do NOT set USER agent — entrypoint starts as root, chowns volumes, drops to agent via gosu diff --git a/workspace-template/adapters/crewai/requirements.txt b/workspace-template/adapters/crewai/requirements.txt deleted file mode 100644 index 0f270f64..00000000 --- a/workspace-template/adapters/crewai/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -crewai>=0.100.0 diff --git a/workspace-template/adapters/deepagents/Dockerfile b/workspace-template/adapters/deepagents/Dockerfile deleted file mode 100644 index 552cd9df..00000000 --- a/workspace-template/adapters/deepagents/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM workspace-template:base -USER root -COPY adapters/deepagents/requirements.txt /tmp/adapter-requirements.txt -RUN pip install --no-cache-dir -r /tmp/adapter-requirements.txt && rm /tmp/adapter-requirements.txt -# Do NOT set USER agent — entrypoint starts as root, chowns volumes, drops to agent via gosu diff --git a/workspace-template/adapters/deepagents/requirements.txt b/workspace-template/adapters/deepagents/requirements.txt deleted file mode 100644 index 70c47bb3..00000000 --- a/workspace-template/adapters/deepagents/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -deepagents>=0.5.0 -langchain-openai>=1.0.0 -langchain-google-genai>=2.1.0 -langchain-anthropic>=1.4.0 diff --git a/workspace-template/adapters/gemini_cli/Dockerfile b/workspace-template/adapters/gemini_cli/Dockerfile deleted file mode 100644 index 4f5cc222..00000000 --- a/workspace-template/adapters/gemini_cli/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM workspace-template:base -USER root -RUN npm install -g @google/gemini-cli 2>/dev/null || true -# gemini-cli has no extra Python adapter deps — uses CLIAgentExecutor from base -# Do NOT set USER agent — entrypoint starts as root, chowns volumes, drops to agent via gosu diff --git a/workspace-template/adapters/gemini_cli/requirements.txt b/workspace-template/adapters/gemini_cli/requirements.txt deleted file mode 100644 index 4897bc73..00000000 --- a/workspace-template/adapters/gemini_cli/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -# gemini-cli adapter has no extra Python dependencies. -# The CLIAgentExecutor (base) handles all subprocess management. diff --git a/workspace-template/adapters/hermes/Dockerfile b/workspace-template/adapters/hermes/Dockerfile deleted file mode 100644 index 62d84f97..00000000 --- a/workspace-template/adapters/hermes/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM workspace-template:base -USER root -COPY adapters/hermes/requirements.txt /tmp/adapter-requirements.txt -RUN pip install --no-cache-dir -r /tmp/adapter-requirements.txt && rm /tmp/adapter-requirements.txt -# Do NOT set USER agent — entrypoint starts as root, chowns volumes, drops to agent via gosu diff --git a/workspace-template/adapters/hermes/requirements.txt b/workspace-template/adapters/hermes/requirements.txt deleted file mode 100644 index a59236a7..00000000 --- a/workspace-template/adapters/hermes/requirements.txt +++ /dev/null @@ -1,24 +0,0 @@ -# Hermes adapter dependencies. -# -# openai: primary client for the 13 OpenAI-compat providers in providers.py -# (Nous Portal, OpenRouter, OpenAI, xAI, Qwen, GLM, Kimi, MiniMax, DeepSeek, -# Groq, Together, Fireworks, Mistral — all reachable via one openai SDK -# pointed at different base URLs). Anthropic + Gemini now go native. -openai>=1.0.0 - -# anthropic: native Messages API client for the anthropic provider (auth_scheme -# = "anthropic" in providers.py). Phase 2a addition — gives correct tool calling, -# vision, and extended-thinking semantics that don't translate cleanly through -# the OpenAI-compat shim. If this package is missing at runtime, executor.py's -# _do_anthropic_native() raises a clear RuntimeError pointing back at this -# install line, so a workspace image built without it fails loud, not silent. -anthropic>=0.39.0 - -# google-genai: native generateContent API client for the gemini provider -# (auth_scheme = "gemini" in providers.py). Phase 2b addition — gives -# first-class vision content blocks, tool/function calling, system -# instructions, and thinking config that don't translate cleanly through -# the OpenAI-compat /v1beta/openai shim. Same fail-loud semantics as the -# anthropic path: missing at runtime → clear RuntimeError from -# _do_gemini_native(), not a silent fallback. -google-genai>=1.0.0 diff --git a/workspace-template/adapters/langgraph/Dockerfile b/workspace-template/adapters/langgraph/Dockerfile deleted file mode 100644 index cb4f54d7..00000000 --- a/workspace-template/adapters/langgraph/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM workspace-template:base -USER root -COPY adapters/langgraph/requirements.txt /tmp/adapter-requirements.txt -RUN pip install --no-cache-dir -r /tmp/adapter-requirements.txt && rm /tmp/adapter-requirements.txt -# Do NOT set USER agent — entrypoint starts as root, chowns volumes, drops to agent via gosu diff --git a/workspace-template/adapters/langgraph/requirements.txt b/workspace-template/adapters/langgraph/requirements.txt deleted file mode 100644 index 03f2b02f..00000000 --- a/workspace-template/adapters/langgraph/requirements.txt +++ /dev/null @@ -1,12 +0,0 @@ -# LangGraph ecosystem — upgrade as a matched set -langchain-core==1.2.26 -langchain-anthropic==1.4.0 -langchain-openai==1.1.12 -langchain-google-genai>=2.1.0 -langgraph==1.1.6 - -# Observability (optional — used if LANGFUSE_* env vars are set) -langfuse==4.0.6 - -# E2B sandbox (optional — used when config.sandbox.backend == "e2b") -e2b-code-interpreter==1.0.3 diff --git a/workspace-template/adapters/openclaw/Dockerfile b/workspace-template/adapters/openclaw/Dockerfile deleted file mode 100644 index 00a3f95b..00000000 --- a/workspace-template/adapters/openclaw/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM workspace-template:base -USER root -RUN npm install -g openclaw 2>/dev/null || true && \ - cd /usr/lib/node_modules/openclaw 2>/dev/null && \ - npm install @buape/carbon @larksuiteoapi/node-sdk @slack/web-api grammy 2>/dev/null || true -# Do NOT set USER agent — entrypoint starts as root, chowns volumes, drops to agent via gosu diff --git a/workspace-template/adapters/openclaw/requirements.txt b/workspace-template/adapters/openclaw/requirements.txt deleted file mode 100644 index 66591959..00000000 --- a/workspace-template/adapters/openclaw/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -# OpenClaw is a Node.js CLI — installed via npm at startup, not pip -# The adapter only needs httpx for HTTP proxying (already in base image)