diff --git a/canvas/src/components/CreateWorkspaceDialog.tsx b/canvas/src/components/CreateWorkspaceDialog.tsx index 5528d9750..c46c84160 100644 --- a/canvas/src/components/CreateWorkspaceDialog.tsx +++ b/canvas/src/components/CreateWorkspaceDialog.tsx @@ -38,10 +38,11 @@ const DEFAULT_RUNTIME = "claude-code"; const RUNTIME_OPTIONS = [ { value: "claude-code", label: "Claude Code" }, { value: "codex", label: "OpenAI Codex CLI" }, + { value: "google-adk", label: "Google ADK" }, { value: "hermes", label: "Hermes" }, { value: "openclaw", label: "OpenClaw" }, ]; -const BASE_RUNTIME_TEMPLATE_IDS = new Set(["claude-code-default", "codex", "hermes", "openclaw"]); +const BASE_RUNTIME_TEMPLATE_IDS = new Set(["claude-code-default", "codex", "google-adk", "hermes", "openclaw"]); const DEFAULT_HEADLESS_INSTANCE_TYPE = "t3.medium"; const DEFAULT_HEADLESS_ROOT_GB = 30; const DEFAULT_DISPLAY_INSTANCE_TYPE = "t3.xlarge"; diff --git a/canvas/src/components/__tests__/CreateWorkspaceDialog.test.tsx b/canvas/src/components/__tests__/CreateWorkspaceDialog.test.tsx index a32d8074d..3b397d513 100644 --- a/canvas/src/components/__tests__/CreateWorkspaceDialog.test.tsx +++ b/canvas/src/components/__tests__/CreateWorkspaceDialog.test.tsx @@ -213,6 +213,7 @@ describe("CreateWorkspaceDialog", () => { expect(runtimeTexts).toEqual([ "Claude Code", "OpenAI Codex CLI", + "Google ADK", "Hermes", "OpenClaw", ]); diff --git a/canvas/src/lib/runtime-names.ts b/canvas/src/lib/runtime-names.ts index bf6ed9780..d6e9ec03d 100644 --- a/canvas/src/lib/runtime-names.ts +++ b/canvas/src/lib/runtime-names.ts @@ -5,6 +5,7 @@ const RUNTIME_NAMES: Record = { "claude-code": "Claude Code", codex: "Codex", + "google-adk": "Google ADK", hermes: "Hermes", openclaw: "OpenClaw", kimi: "Kimi", diff --git a/manifest.json b/manifest.json index 5ba8c48bc..e6e6f0740 100644 --- a/manifest.json +++ b/manifest.json @@ -29,6 +29,7 @@ {"name": "hermes", "repo": "molecule-ai/molecule-ai-workspace-template-hermes", "ref": "main"}, {"name": "openclaw", "repo": "molecule-ai/molecule-ai-workspace-template-openclaw", "ref": "main"}, {"name": "codex", "repo": "molecule-ai/molecule-ai-workspace-template-codex", "ref": "main"}, + {"name": "google-adk", "repo": "molecule-ai/molecule-ai-workspace-template-google-adk", "ref": "main"}, {"name": "seo-agent", "repo": "molecule-ai/molecule-ai-workspace-template-seo-agent", "ref": "main"} ], "org_templates": [ diff --git a/workspace-server/internal/provisioner/registry.go b/workspace-server/internal/provisioner/registry.go index 4f1eee256..245cbd2b4 100644 --- a/workspace-server/internal/provisioner/registry.go +++ b/workspace-server/internal/provisioner/registry.go @@ -20,6 +20,7 @@ const defaultRegistryPrefix = "ghcr.io/molecule-ai" var knownRuntimes = []string{ "claude-code", "codex", + "google-adk", "hermes", "openclaw", } diff --git a/workspace-server/internal/provisioner/registry_test.go b/workspace-server/internal/provisioner/registry_test.go index 39be4c455..e6e9b868f 100644 --- a/workspace-server/internal/provisioner/registry_test.go +++ b/workspace-server/internal/provisioner/registry_test.go @@ -53,8 +53,8 @@ func TestRuntimeImage_AllKnownRuntimes(t *testing.T) { } } // Pin the count so adding a runtime requires explicit test acknowledgement. - if len(knownRuntimes) != 4 { - t.Errorf("knownRuntimes length = %d, want 4 (claude-code, codex, hermes, openclaw)", len(knownRuntimes)) + if len(knownRuntimes) != 5 { + t.Errorf("knownRuntimes length = %d, want 5 (claude-code, codex, google-adk, hermes, openclaw)", len(knownRuntimes)) } }