refactor(coder-labs/tasks-docker): support coder/claude-code 4.0.0 (#497)
Updates the template to use the new version of the claude-code module for the Coder 2.28 release. This closely matches the [built-in template](https://github.com/coder/coder/blob/main/examples/templates/tasks-docker/main.tf) defined in [coder/coder](https://github.com/coder/coder).
This commit is contained in:
parent
69abf48390
commit
4edfdae572
@ -1,7 +1,8 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
coder = {
|
coder = {
|
||||||
source = "coder/coder"
|
source = "coder/coder"
|
||||||
|
version = ">= 2.13"
|
||||||
}
|
}
|
||||||
docker = {
|
docker = {
|
||||||
source = "kreuzwerker/docker"
|
source = "kreuzwerker/docker"
|
||||||
@ -12,22 +13,32 @@ terraform {
|
|||||||
# This template requires a valid Docker socket
|
# This template requires a valid Docker socket
|
||||||
# However, you can reference our Kubernetes/VM
|
# However, you can reference our Kubernetes/VM
|
||||||
# example templates and adapt the Claude Code module
|
# example templates and adapt the Claude Code module
|
||||||
#
|
#
|
||||||
# see: https://registry.coder.com/templates
|
# see: https://registry.coder.com/templates
|
||||||
provider "docker" {}
|
provider "docker" {}
|
||||||
|
|
||||||
|
# A `coder_ai_task` resource enables Tasks and associates
|
||||||
|
# the task with the coder_app that will act as an AI agent.
|
||||||
|
resource "coder_ai_task" "task" {
|
||||||
|
count = data.coder_workspace.me.start_count
|
||||||
|
app_id = module.claude-code[count.index].task_app_id
|
||||||
|
}
|
||||||
|
|
||||||
|
# You can read the task prompt from the `coder_task` data source.
|
||||||
|
data "coder_task" "me" {}
|
||||||
|
|
||||||
# The Claude Code module does the automatic task reporting
|
# The Claude Code module does the automatic task reporting
|
||||||
# Other agent modules: https://registry.coder.com/modules?search=agent
|
# Other agent modules: https://registry.coder.com/modules?search=agent
|
||||||
# Or use a custom agent:
|
# Or use a custom agent:
|
||||||
module "claude-code" {
|
module "claude-code" {
|
||||||
count = data.coder_workspace.me.start_count
|
count = data.coder_workspace.me.start_count
|
||||||
source = "registry.coder.com/coder/claude-code/coder"
|
source = "registry.coder.com/coder/claude-code/coder"
|
||||||
version = "3.0.0"
|
version = "4.0.0"
|
||||||
agent_id = coder_agent.main.id
|
agent_id = coder_agent.main.id
|
||||||
workdir = "/home/coder/projects"
|
workdir = "/home/coder/projects"
|
||||||
order = 999
|
order = 999
|
||||||
claude_api_key = ""
|
claude_api_key = ""
|
||||||
ai_prompt = data.coder_parameter.ai_prompt.value
|
ai_prompt = data.coder_task.me.prompt
|
||||||
system_prompt = data.coder_parameter.system_prompt.value
|
system_prompt = data.coder_parameter.system_prompt.value
|
||||||
model = "sonnet"
|
model = "sonnet"
|
||||||
permission_mode = "plan"
|
permission_mode = "plan"
|
||||||
@ -51,13 +62,13 @@ data "coder_workspace_preset" "default" {
|
|||||||
(servers, dev watchers, GUI apps).
|
(servers, dev watchers, GUI apps).
|
||||||
- Built-in tools - use for everything else:
|
- Built-in tools - use for everything else:
|
||||||
(file operations, git commands, builds & installs, one-off shell commands)
|
(file operations, git commands, builds & installs, one-off shell commands)
|
||||||
|
|
||||||
Remember this decision rule:
|
Remember this decision rule:
|
||||||
- Stays running? → desktop-commander
|
- Stays running? → desktop-commander
|
||||||
- Finishes immediately? → built-in tools
|
- Finishes immediately? → built-in tools
|
||||||
|
|
||||||
-- Context --
|
-- Context --
|
||||||
There is an existing app and tmux dev server running on port 8000. Be sure to read it's CLAUDE.md (./realworld-django-rest-framework-angular/CLAUDE.md) to learn more about it.
|
There is an existing app and tmux dev server running on port 8000. Be sure to read it's CLAUDE.md (./realworld-django-rest-framework-angular/CLAUDE.md) to learn more about it.
|
||||||
|
|
||||||
Since this app is for demo purposes and the user is previewing the homepage and subsequent pages, aim to make the first visual change/prototype very quickly so the user can preview it, then focus on backend or logic which can be a more involved, long-running architecture plan.
|
Since this app is for demo purposes and the user is previewing the homepage and subsequent pages, aim to make the first visual change/prototype very quickly so the user can preview it, then focus on backend or logic which can be a more involved, long-running architecture plan.
|
||||||
|
|
||||||
@ -107,7 +118,7 @@ data "coder_workspace_preset" "default" {
|
|||||||
|
|
||||||
# Pre-builds is a Coder Premium
|
# Pre-builds is a Coder Premium
|
||||||
# feature to speed up workspace creation
|
# feature to speed up workspace creation
|
||||||
#
|
#
|
||||||
# see https://coder.com/docs/admin/templates/extending-templates/prebuilt-workspaces
|
# see https://coder.com/docs/admin/templates/extending-templates/prebuilt-workspaces
|
||||||
# prebuilds {
|
# prebuilds {
|
||||||
# instances = 1
|
# instances = 1
|
||||||
@ -126,13 +137,6 @@ data "coder_parameter" "system_prompt" {
|
|||||||
description = "System prompt for the agent with generalized instructions"
|
description = "System prompt for the agent with generalized instructions"
|
||||||
mutable = false
|
mutable = false
|
||||||
}
|
}
|
||||||
data "coder_parameter" "ai_prompt" {
|
|
||||||
type = "string"
|
|
||||||
name = "AI Prompt"
|
|
||||||
default = ""
|
|
||||||
description = "Write a prompt for Claude Code"
|
|
||||||
mutable = true
|
|
||||||
}
|
|
||||||
data "coder_parameter" "setup_script" {
|
data "coder_parameter" "setup_script" {
|
||||||
name = "setup_script"
|
name = "setup_script"
|
||||||
display_name = "Setup Script"
|
display_name = "Setup Script"
|
||||||
@ -373,4 +377,4 @@ resource "docker_container" "workspace" {
|
|||||||
label = "coder.workspace_name"
|
label = "coder.workspace_name"
|
||||||
value = data.coder_workspace.me.name
|
value = data.coder_workspace.me.name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user