@@ -38,7 +38,7 @@ locals {
3838repo_base_dir = data. coder_parameter . repo_base_dir . value == " ~" ? " /home/coder" : replace (data. coder_parameter . repo_base_dir . value ," /^~\\ //" ," /home/coder/" )
3939repo_dir = replace (try (module. git-clone [0 ]. repo_dir ," " )," /^~\\ //" ," /home/coder/" )
4040container_name = " coder-${ data . coder_workspace_owner . me . name } -${ lower (data. coder_workspace . me . name )} "
41- has_ai_prompt = data . coder_parameter . ai_prompt . value != " "
41+ is_task = coder_task . task . id != " "
4242}
4343
4444data "coder_workspace_preset" "cpt" {
@@ -242,14 +242,6 @@ data "coder_parameter" "devcontainer_autostart" {
242242mutable = true
243243}
244244
245- data "coder_parameter" "ai_prompt" {
246- type = " string"
247- name = " AI Prompt"
248- default = " "
249- description = " Prompt for Claude Code"
250- mutable = true // Workaround for issue with claiming a prebuild from a preset that does not include this parameter.
251- }
252-
253245provider "docker" {
254246host = lookup (local. docker_host , data. coder_parameter . region . value )
255247}
@@ -814,7 +806,7 @@ resource "coder_metadata" "container_info" {
814806 }
815807item {
816808key = " ai_task"
817- value = local. has_ai_prompt ? " yes" : " no"
809+ value = local. is_task ? " yes" : " no"
818810 }
819811}
820812
@@ -848,9 +840,9 @@ locals {
848840}
849841
850842module "claude-code" {
851- count = local. has_ai_prompt ? data. coder_workspace . me . start_count : 0
843+ count = local. is_task ? data. coder_workspace . me . start_count : 0
852844source = " dev.registry.coder.com/coder/claude-code/coder"
853- version = " 3.1.1 "
845+ version = " 4.0.0 "
854846agent_id = coder_agent. dev . id
855847workdir = local. repo_dir
856848claude_code_version = " latest"
@@ -859,15 +851,19 @@ module "claude-code" {
859851agentapi_version = " latest"
860852
861853system_prompt = local. claude_system_prompt
862- ai_prompt = data . coder_parameter . ai_prompt . value
854+ ai_prompt = coder_ai_task . task . prompt
863855post_install_script = <<- EOT
864856 claude mcp add playwright npx -- @playwright/mcp@latest --headless --isolated --no-sandbox
865857 claude mcp add desktop-commander npx -- @wonderwhy-er/desktop-commander@latest
866858 EOT
867859}
868860
861+ resource "coder_ai_task" "task" {
862+ app_id = module. claude-code . task_app_id
863+ }
864+
869865resource "coder_app" "develop_sh" {
870- count = local. has_ai_prompt ? data. coder_workspace . me . start_count : 0
866+ count = local. is_task ? data. coder_workspace . me . start_count : 0
871867agent_id = coder_agent. dev . id
872868slug = " develop-sh"
873869display_name = " develop.sh"
@@ -880,7 +876,7 @@ resource "coder_app" "develop_sh" {
880876}
881877
882878resource "coder_script" "develop_sh" {
883- count = local. has_ai_prompt ? data. coder_workspace . me . start_count : 0
879+ count = local. is_task ? data. coder_workspace . me . start_count : 0
884880display_name = " develop.sh"
885881agent_id = coder_agent. dev . id
886882run_on_start = true
@@ -903,7 +899,7 @@ resource "coder_script" "develop_sh" {
903899}
904900
905901resource "coder_app" "preview" {
906- count = local. has_ai_prompt ? data. coder_workspace . me . start_count : 0
902+ count = local. is_task ? data. coder_workspace . me . start_count : 0
907903agent_id = coder_agent. dev . id
908904slug = " preview"
909905display_name = " Preview"