add agentapi

This commit is contained in:
Ben Potter 2025-06-03 18:27:29 -05:00 committed by GitHub
parent a0c1a051ed
commit 1c99c57b6e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -131,6 +131,11 @@ resource "coder_script" "claude_code" {
npm install -g @anthropic-ai/claude-code@${var.claude_code_version} npm install -g @anthropic-ai/claude-code@${var.claude_code_version}
fi fi
# Hardcoded for now: install AgentAPI
wget https://github.com/coder/agentapi/releases/download/preview/agentapi-linux-amd64More actions
chmod +x agentapi-linux-amd64
sudo mv agentapi-linux-amd64 /usr/local/bin/agentapi
if [ "${var.experiment_report_tasks}" = "true" ]; then if [ "${var.experiment_report_tasks}" = "true" ]; then
echo "Configuring Claude Code to report tasks via Coder MCP..." echo "Configuring Claude Code to report tasks via Coder MCP..."
coder exp mcp configure claude-code ${var.folder} coder exp mcp configure claude-code ${var.folder}
@ -166,8 +171,22 @@ resource "coder_script" "claude_code" {
export LANG=en_US.UTF-8 export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8 export LC_ALL=en_US.UTF-8
# Create a new tmux session in detached mode tmux new-session -d -s claude-code-agentapi -c ${var.folder} 'agentapi server -- bash -c "claude --dangerously-skip-permissions \"$CODER_MCP_CLAUDE_TASK_PROMPT\" | tee -a \"$HOME/.claude-code.log\""; exec bash'More actions
tmux new-session -d -s claude-code -c ${var.folder} "claude --dangerously-skip-permissions \"$CODER_MCP_CLAUDE_TASK_PROMPT\"" echo "Waiting for agentapi server to start on port 3284..."
for i in $(seq 1 15); do
if lsof -i :3284 | grep -q 'LISTEN'; then
echo "agentapi server started on port 3284."
break
fi
echo "Waiting... ($i/15)"
sleep 1
done
if ! lsof -i :3284 | grep -q 'LISTEN'; then
echo "Error: agentapi server did not start on port 3284 after 15 seconds."
exit 1
fi
tmux new-session -d -s claude-code -c ${var.folder} "agentapi attach"
fi fi
@ -217,6 +236,15 @@ resource "coder_script" "claude_code" {
run_on_start = true run_on_start = true
} }
resource "coder_app" "claude_code_web" {
slug = "claude-code-web"
display_name = "Claude Code Web"
agent_id = var.agent_id
url = "http://localhost:3284/chat/embed"
icon = var.icon
subdomain = true
}
resource "coder_app" "claude_code" { resource "coder_app" "claude_code" {
slug = "claude-code" slug = "claude-code"
display_name = "Claude Code" display_name = "Claude Code"
@ -229,6 +257,12 @@ resource "coder_app" "claude_code" {
export LC_ALL=en_US.UTF-8 export LC_ALL=en_US.UTF-8
if [ "${var.experiment_use_tmux}" = "true" ]; then if [ "${var.experiment_use_tmux}" = "true" ]; then
if ! tmux has-session -t claude-code-agentapi 2>/dev/null; then
echo "Starting a new Claude Code agentapi tmux session." | tee -a "$HOME/.claude-code.log"
tmux new-session -d -s claude-code-agentapi -c ${var.folder} 'agentapi server -- bash -c "claude --dangerously-skip-permissions | tee -a \"$HOME/.claude-code.log\""; exec bash'
fi
if tmux has-session -t claude-code 2>/dev/null; then if tmux has-session -t claude-code 2>/dev/null; then
echo "Attaching to existing Claude Code tmux session." | tee -a "$HOME/.claude-code.log" echo "Attaching to existing Claude Code tmux session." | tee -a "$HOME/.claude-code.log"
tmux attach-session -t claude-code tmux attach-session -t claude-code