Skip to content

Commit f611735

Browse files
committed
Query agentapi for status
1 parent c301da7 commit f611735

File tree

1 file changed

+40
-0
lines changed
  • registry/coder/modules/claude-code

1 file changed

+40
-0
lines changed

registry/coder/modules/claude-code/main.tf

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ variable "experiment_report_tasks" {
7272
default = false
7373
}
7474

75+
variable "experiment_report_tasks_interval" {
76+
type = number
77+
description = "How often to poll task status in seconds, or zero to disable."
78+
default = 0
79+
}
80+
7581
variable "experiment_pre_install_script" {
7682
type = string
7783
description = "Custom script to run before installing Claude Code."
@@ -247,6 +253,40 @@ resource "coder_app" "claude_code_web" {
247253
subdomain = true
248254
}
249255

256+
resource "coder_script" "task_reporter" {
257+
agent_id = var.agent_id
258+
display_name = "Task reporter"
259+
icon = var.icon
260+
command = <<-EOT
261+
#!/bin/bash
262+
set -e
263+
if [ -z "${var.experiment_report_tasks_interval}" ] ;
264+
echo "Task polling is not enabled"
265+
exit 0
266+
fi
267+
if [ "${var.experiment_report_tasks_interval}" = "0" ] ;
268+
echo "Task polling is not enabled"
269+
exit 0
270+
fi
271+
echo "Waiting for agentapi server to start on port 3284..."
272+
for i in $(seq 1 15); do
273+
if lsof -i :3284 | grep -q 'LISTEN'; then
274+
echo "agentapi server started on port 3284."
275+
break
276+
fi
277+
echo "Waiting... ($i/15)"
278+
sleep 1
279+
done
280+
if ! lsof -i :3284 | grep -q 'LISTEN'; then
281+
echo "Error: agentapi server did not start on port 3284 after 15 seconds."
282+
exit 1
283+
fi
284+
echo "Running status poller in the background..."
285+
coder exp task report-status --agentapi-url "http://localhost:3284" &
286+
EOT
287+
run_on_start = true
288+
}
289+
250290
resource "coder_app" "claude_code" {
251291
slug = "claude-code"
252292
display_name = "Claude Code"

0 commit comments

Comments
 (0)