Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates
&& rm -rf /var/lib/apt/lists/*

# AI CLI tools
RUN npm install -g @anthropic-ai/claude-code @google/gemini-cli @zed-industries/claude-agent-acp @zed-industries/codex-acp
RUN npm install -g @anthropic-ai/claude-code @github/copilot @google/gemini-cli @zed-industries/claude-agent-acp @zed-industries/codex-acp

# Chromium for Kaleido/Plotly
RUN apt-get update && apt-get install -y --no-install-recommends \
Expand Down
1 change: 1 addition & 0 deletions condor/acp/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
ACP_COMMANDS: dict[str, str] = {
"claude-code": "claude-agent-acp",
"gemini": "gemini --experimental-acp",
"copilot": "copilot --acp",
}


Expand Down
2 changes: 1 addition & 1 deletion condor/preferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ class TradingAgentPrefs(TypedDict, total=False):


class AgentPrefs(TypedDict, total=False):
default_agent: str # "claude-code", "gemini", "codex"
default_agent: str # "claude-code", "gemini", "codex", "copilot"
show_tool_calls: bool # Show tool call indicators (default True)


Expand Down
2 changes: 1 addition & 1 deletion condor/trading_agent/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ trading_agents/
3. **Read journal context** — `learnings.md`, `summary`, and the last 3 decisions.
4. **Get risk state** from `RiskEngine` (exposure, drawdown, open count). If the agent is blocked, log it and return without invoking the LLM.
5. **Build the prompt** via `build_tick_prompt(...)`, optionally appending any user directives queued via `inject_directive()`.
6. **Spawn an ACP session** for the strategy's `agent_key` (claude-code, gemini, …) with MCP servers wired in (Hummingbot tools, market data, notifications, journal writes). Stream events, capture text and tool calls.
6. **Spawn an ACP session** for the strategy's `agent_key` (claude-code, gemini, copilot…) with MCP servers wired in (Hummingbot tools, market data, notifications, journal writes). Stream events, capture text and tool calls.
7. **Persist** — for sessions, write `snapshot_N.md`, append a tick to the journal, and update the running summary. For dry-runs / run-once, write a flat `experiment_N.md`.

### Run modes
Expand Down
2 changes: 1 addition & 1 deletion condor/trading_agent/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ async def _tick(self) -> None:
)
self._pending_directives.clear()

# 6. Create agent client (ACP for Claude/Gemini, PydanticAI for open-source models)
# 6. Create agent client (ACP for Claude/Gemini/Copilot, PydanticAI for open-source models)
from handlers.agents._shared import (
build_mcp_servers_for_agent,
build_mcp_servers_for_session,
Expand Down
2 changes: 1 addition & 1 deletion condor/trading_agent/strategy.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class Strategy:
id: str
name: str
description: str
agent_key: str # "claude-code", "gemini", or pydantic-ai model like "ollama:llama3.1"
agent_key: str # "claude-code", "gemini", "copilot" or pydantic-ai model like "ollama:llama3.1"
instructions: str # The strategy logic text for the LLM
skills: list[str] = field(default_factory=list) # Optional skill names
default_config: dict[str, Any] = field(default_factory=dict)
Expand Down
1 change: 1 addition & 0 deletions handlers/agents/_shared.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
AGENT_OPTIONS: dict[str, dict[str, str]] = {
"claude-code": {"label": "Claude Code"},
"gemini": {"label": "Gemini CLI"},
"copilot": {"label": "GitHub Copilot CLI"},
"ollama:llama3.1": {"label": "Ollama — Llama 3.1"},
"ollama:qwen3:32b": {"label": "Ollama — Qwen 3 32B"},
"ollama:qwen2.5:72b": {"label": "Ollama — Qwen 2.5 72B"},
Expand Down
2 changes: 1 addition & 1 deletion handlers/agents/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
@dataclass
class AgentSession:
chat_id: int
agent_key: str # "claude-code", "gemini", "codex"
agent_key: str # "claude-code", "gemini", "codex", "copilot"
client: ACPClient
mode: str = "condor" # "condor", "agent_builder"
is_busy: bool = False
Expand Down
2 changes: 1 addition & 1 deletion mcp_servers/condor/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -796,7 +796,7 @@ async def manage_trading_agent(
name: Strategy name (for create/update) or routine name (for run_routine).
description: Strategy description (for create/update).
instructions: Strategy instructions text (for create/update).
agent_key: Default LLM for the strategy (for create/update). Examples: "claude-code", "gemini", "ollama:llama3.1", "ollama:qwen3:32b", "groq:llama-3.3-70b-versatile". Default "claude-code".
agent_key: Default LLM for the strategy (for create/update). Examples: "claude-code", "gemini", "copilot", "ollama:llama3.1", "ollama:qwen3:32b", "groq:llama-3.3-70b-versatile". Default "claude-code".
skills: List of optional skill names to enable (for create/update).
config: Agent config overrides (for create/update/start) or routine config (for run_routine).
For start_agent, supports: agent_key (override strategy default), model_base_url (for LM Studio/vLLM),
Expand Down