Compare commits
4 Commits
main
...
phorcys/vs
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
889cfd75d7 | ||
|
|
c7890ebae4 | ||
|
|
1fc998cdff | ||
|
|
5d9cbce8b6 |
@ -99,25 +99,30 @@ describe("antigravity", async () => {
|
||||
|
||||
it("writes ~/.gemini/antigravity/mcp_config.json when mcp provided", async () => {
|
||||
const id = await runContainer("alpine");
|
||||
|
||||
try {
|
||||
const mcp = JSON.stringify({
|
||||
servers: { demo: { url: "http://localhost:1234" } },
|
||||
});
|
||||
|
||||
const state = await runTerraformApply(import.meta.dir, {
|
||||
agent_id: "foo",
|
||||
mcp,
|
||||
});
|
||||
|
||||
const script = findResourceInstance(
|
||||
state,
|
||||
"coder_script",
|
||||
"antigravity_mcp",
|
||||
"vscode-desktop-mcp", // from "vscode-desktop-core" module
|
||||
).script;
|
||||
|
||||
const resp = await execContainer(id, ["sh", "-c", script]);
|
||||
if (resp.exitCode !== 0) {
|
||||
console.log(resp.stdout);
|
||||
console.log(resp.stderr);
|
||||
}
|
||||
expect(resp.exitCode).toBe(0);
|
||||
|
||||
const content = await readFileContainer(
|
||||
id,
|
||||
"/root/.gemini/antigravity/mcp_config.json",
|
||||
|
||||
@ -52,53 +52,33 @@ variable "display_name" {
|
||||
|
||||
variable "mcp" {
|
||||
type = string
|
||||
description = "JSON-encoded string to configure MCP servers for Antigravity. When set, writes ~/.gemini/antigravity/mcp_config.json."
|
||||
default = ""
|
||||
description = "JSON-encoded string to configure MCP servers for Antigravity. When set, writes $HOME/.gemini/antigravity/mcp_config.json."
|
||||
default = null
|
||||
}
|
||||
|
||||
data "coder_workspace" "me" {}
|
||||
|
||||
data "coder_workspace_owner" "me" {}
|
||||
|
||||
locals {
|
||||
mcp_b64 = var.mcp != "" ? base64encode(var.mcp) : ""
|
||||
}
|
||||
|
||||
module "vscode-desktop-core" {
|
||||
source = "registry.coder.com/coder/vscode-desktop-core/coder"
|
||||
version = "1.0.1"
|
||||
source = "git::https://github.com/coder/registry.git//registry/coder/modules/vscode-desktop-core?ref=phorcys/vscode-desktop-core-mcp"
|
||||
|
||||
agent_id = var.agent_id
|
||||
|
||||
web_app_icon = "/icon/antigravity.svg"
|
||||
web_app_slug = var.slug
|
||||
web_app_display_name = var.display_name
|
||||
web_app_order = var.order
|
||||
web_app_group = var.group
|
||||
coder_app_icon = "/icon/antigravity.svg"
|
||||
coder_app_slug = var.slug
|
||||
coder_app_display_name = var.display_name
|
||||
coder_app_order = var.order
|
||||
coder_app_group = var.group
|
||||
|
||||
folder = var.folder
|
||||
open_recent = var.open_recent
|
||||
protocol = "antigravity"
|
||||
}
|
||||
mcp_config = var.mcp != null ? jsondecode(var.mcp) : null # turn MCP JSON string into map(any) for vscode-desktop-core module
|
||||
|
||||
resource "coder_script" "antigravity_mcp" {
|
||||
count = var.mcp != "" ? 1 : 0
|
||||
agent_id = var.agent_id
|
||||
display_name = "Antigravity MCP"
|
||||
icon = "/icon/antigravity.svg"
|
||||
run_on_start = true
|
||||
start_blocks_login = false
|
||||
script = <<-EOT
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
mkdir -p "$HOME/.gemini/antigravity"
|
||||
echo -n "${local.mcp_b64}" | base64 -d > "$HOME/.gemini/antigravity/mcp_config.json"
|
||||
chmod 600 "$HOME/.gemini/antigravity/mcp_config.json"
|
||||
EOT
|
||||
protocol = "antigravity"
|
||||
config_folder = "$HOME/.gemini/antigravity"
|
||||
}
|
||||
|
||||
output "antigravity_url" {
|
||||
value = module.vscode-desktop-core.ide_uri
|
||||
description = "Antigravity IDE URL."
|
||||
}
|
||||
|
||||
}
|
||||
@ -79,27 +79,32 @@ describe("cursor", async () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("writes ~/.cursor/mcp.json when mcp provided", async () => {
|
||||
it("writes ~/.cursor/mcp.json when var.mcp provided", async () => {
|
||||
const id = await runContainer("alpine");
|
||||
|
||||
try {
|
||||
const mcp = JSON.stringify({
|
||||
servers: { demo: { url: "http://localhost:1234" } },
|
||||
});
|
||||
|
||||
const state = await runTerraformApply(import.meta.dir, {
|
||||
agent_id: "foo",
|
||||
mcp,
|
||||
});
|
||||
|
||||
const script = findResourceInstance(
|
||||
state,
|
||||
"coder_script",
|
||||
"cursor_mcp",
|
||||
"vscode-desktop-mcp", // from "vscode-desktop-core" module
|
||||
).script;
|
||||
|
||||
const resp = await execContainer(id, ["sh", "-c", script]);
|
||||
if (resp.exitCode !== 0) {
|
||||
console.log(resp.stdout);
|
||||
console.log(resp.stderr);
|
||||
}
|
||||
expect(resp.exitCode).toBe(0);
|
||||
|
||||
const content = await readFileContainer(id, "/root/.cursor/mcp.json");
|
||||
expect(content).toBe(mcp);
|
||||
} finally {
|
||||
|
||||
@ -52,21 +52,15 @@ variable "display_name" {
|
||||
|
||||
variable "mcp" {
|
||||
type = string
|
||||
description = "JSON-encoded string to configure MCP servers for Cursor. When set, writes ~/.cursor/mcp.json."
|
||||
default = ""
|
||||
description = "JSON-encoded string to configure MCP servers for Cursor. When set, writes $HOME/.cursor/mcp.json."
|
||||
default = null
|
||||
}
|
||||
|
||||
data "coder_workspace" "me" {}
|
||||
|
||||
data "coder_workspace_owner" "me" {}
|
||||
|
||||
locals {
|
||||
mcp_b64 = var.mcp != "" ? base64encode(var.mcp) : ""
|
||||
}
|
||||
|
||||
module "vscode-desktop-core" {
|
||||
source = "registry.coder.com/coder/vscode-desktop-core/coder"
|
||||
version = "1.0.0"
|
||||
source = "git::https://github.com/coder/registry.git//registry/coder/modules/vscode-desktop-core?ref=phorcys/vscode-desktop-core-mcp"
|
||||
|
||||
agent_id = var.agent_id
|
||||
|
||||
@ -78,23 +72,10 @@ module "vscode-desktop-core" {
|
||||
|
||||
folder = var.folder
|
||||
open_recent = var.open_recent
|
||||
protocol = "cursor"
|
||||
}
|
||||
mcp_config = var.mcp != null ? jsondecode(var.mcp) : null # turn MCP JSON string into map(any) for vscode-desktop-core module
|
||||
|
||||
resource "coder_script" "cursor_mcp" {
|
||||
count = var.mcp != "" ? 1 : 0
|
||||
agent_id = var.agent_id
|
||||
display_name = "Cursor MCP"
|
||||
icon = "/icon/cursor.svg"
|
||||
run_on_start = true
|
||||
start_blocks_login = false
|
||||
script = <<-EOT
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
mkdir -p "$HOME/.cursor"
|
||||
echo -n "${local.mcp_b64}" | base64 -d > "$HOME/.cursor/mcp.json"
|
||||
chmod 600 "$HOME/.cursor/mcp.json"
|
||||
EOT
|
||||
protocol = "cursor"
|
||||
config_folder = "$HOME/.cursor"
|
||||
}
|
||||
|
||||
output "cursor_url" {
|
||||
|
||||
@ -58,27 +58,32 @@ describe("kiro", async () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("writes ~/.kiro/settings/mcp.json when mcp provided", async () => {
|
||||
it("writes ~/.kiro/settings/mcp.json when var.mcp provided", async () => {
|
||||
const id = await runContainer("alpine");
|
||||
|
||||
try {
|
||||
const mcp = JSON.stringify({
|
||||
servers: { demo: { url: "http://localhost:1234" } },
|
||||
});
|
||||
|
||||
const state = await runTerraformApply(import.meta.dir, {
|
||||
agent_id: "foo",
|
||||
mcp,
|
||||
});
|
||||
|
||||
const script = findResourceInstance(
|
||||
state,
|
||||
"coder_script",
|
||||
"kiro_mcp",
|
||||
"vscode-desktop-mcp", // from "vscode-desktop-core" module
|
||||
).script;
|
||||
|
||||
const resp = await execContainer(id, ["sh", "-c", script]);
|
||||
if (resp.exitCode !== 0) {
|
||||
console.log(resp.stdout);
|
||||
console.log(resp.stderr);
|
||||
}
|
||||
expect(resp.exitCode).toBe(0);
|
||||
|
||||
const content = await readFileContainer(
|
||||
id,
|
||||
"/root/.kiro/settings/mcp.json",
|
||||
|
||||
@ -40,20 +40,15 @@ variable "group" {
|
||||
|
||||
variable "mcp" {
|
||||
type = string
|
||||
description = "JSON-encoded string to configure MCP servers for Kiro. When set, writes ~/.kiro/settings/mcp.json."
|
||||
default = ""
|
||||
description = "JSON-encoded string to configure MCP servers for Kiro. When set, writes $HOME/.kiro/settings/mcp.json."
|
||||
default = null
|
||||
}
|
||||
|
||||
data "coder_workspace" "me" {}
|
||||
data "coder_workspace_owner" "me" {}
|
||||
|
||||
locals {
|
||||
mcp_b64 = var.mcp != "" ? base64encode(var.mcp) : ""
|
||||
}
|
||||
|
||||
module "vscode-desktop-core" {
|
||||
source = "registry.coder.com/coder/vscode-desktop-core/coder"
|
||||
version = "1.0.0"
|
||||
source = "git::https://github.com/coder/registry.git//registry/coder/modules/vscode-desktop-core?ref=phorcys/vscode-desktop-core-mcp"
|
||||
|
||||
agent_id = var.agent_id
|
||||
|
||||
@ -65,23 +60,10 @@ module "vscode-desktop-core" {
|
||||
|
||||
folder = var.folder
|
||||
open_recent = var.open_recent
|
||||
protocol = "kiro"
|
||||
}
|
||||
mcp_config = var.mcp != null ? jsondecode(var.mcp) : null # turn MCP JSON string into map(any) for vscode-desktop-core module
|
||||
|
||||
resource "coder_script" "kiro_mcp" {
|
||||
count = var.mcp != "" ? 1 : 0
|
||||
agent_id = var.agent_id
|
||||
display_name = "Kiro MCP"
|
||||
icon = "/icon/kiro.svg"
|
||||
run_on_start = true
|
||||
start_blocks_login = false
|
||||
script = <<-EOT
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
mkdir -p "$HOME/.kiro/settings"
|
||||
echo -n "${local.mcp_b64}" | base64 -d > "$HOME/.kiro/settings/mcp.json"
|
||||
chmod 600 "$HOME/.kiro/settings/mcp.json"
|
||||
EOT
|
||||
protocol = "kiro"
|
||||
config_folder = "$HOME/.kiro"
|
||||
}
|
||||
|
||||
output "kiro_url" {
|
||||
|
||||
@ -39,8 +39,7 @@ variable "group" {
|
||||
}
|
||||
|
||||
module "vscode-desktop-core" {
|
||||
source = "registry.coder.com/coder/vscode-desktop-core/coder"
|
||||
version = "1.0.0"
|
||||
source = "git::https://github.com/coder/registry.git//registry/coder/modules/vscode-desktop-core?ref=phorcys/vscode-desktop-core-mcp"
|
||||
|
||||
agent_id = var.agent_id
|
||||
|
||||
@ -52,7 +51,9 @@ module "vscode-desktop-core" {
|
||||
|
||||
folder = var.folder
|
||||
open_recent = var.open_recent
|
||||
protocol = "vscode"
|
||||
|
||||
protocol = "vscode"
|
||||
config_folder = "$HOME/.vscode"
|
||||
}
|
||||
|
||||
output "vscode_url" {
|
||||
|
||||
@ -79,27 +79,32 @@ describe("windsurf", async () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("writes ~/.codeium/windsurf/mcp_config.json when mcp provided", async () => {
|
||||
it("writes ~/.codeium/windsurf/mcp_config.json when var.mcp is provided", async () => {
|
||||
const id = await runContainer("alpine");
|
||||
|
||||
try {
|
||||
const mcp = JSON.stringify({
|
||||
servers: { demo: { url: "http://localhost:1234" } },
|
||||
});
|
||||
|
||||
const state = await runTerraformApply(import.meta.dir, {
|
||||
agent_id: "foo",
|
||||
mcp,
|
||||
});
|
||||
|
||||
const script = findResourceInstance(
|
||||
state,
|
||||
"coder_script",
|
||||
"windsurf_mcp",
|
||||
"vscode-desktop-mcp", // from "vscode-desktop-core" module
|
||||
).script;
|
||||
|
||||
const resp = await execContainer(id, ["sh", "-c", script]);
|
||||
if (resp.exitCode !== 0) {
|
||||
console.log(resp.stdout);
|
||||
console.log(resp.stderr);
|
||||
}
|
||||
expect(resp.exitCode).toBe(0);
|
||||
|
||||
const content = await readFileContainer(
|
||||
id,
|
||||
"/root/.codeium/windsurf/mcp_config.json",
|
||||
|
||||
@ -52,20 +52,15 @@ variable "display_name" {
|
||||
|
||||
variable "mcp" {
|
||||
type = string
|
||||
description = "JSON-encoded string to configure MCP servers for Windsurf. When set, writes ~/.codeium/windsurf/mcp_config.json."
|
||||
default = ""
|
||||
description = "JSON-encoded string to configure MCP servers for Windsurf. When set, writes $HOME/.codeium/windsurf/mcp_config.json."
|
||||
default = null
|
||||
}
|
||||
|
||||
data "coder_workspace" "me" {}
|
||||
data "coder_workspace_owner" "me" {}
|
||||
|
||||
locals {
|
||||
mcp_b64 = var.mcp != "" ? base64encode(var.mcp) : ""
|
||||
}
|
||||
|
||||
module "vscode-desktop-core" {
|
||||
source = "registry.coder.com/coder/vscode-desktop-core/coder"
|
||||
version = "1.0.0"
|
||||
source = "git::https://github.com/coder/registry.git//registry/coder/modules/vscode-desktop-core?ref=phorcys/vscode-desktop-core-mcp"
|
||||
|
||||
agent_id = var.agent_id
|
||||
|
||||
@ -77,23 +72,10 @@ module "vscode-desktop-core" {
|
||||
|
||||
folder = var.folder
|
||||
open_recent = var.open_recent
|
||||
protocol = "windsurf"
|
||||
}
|
||||
mcp_config = var.mcp != null ? jsondecode(var.mcp) : null # turn MCP JSON string into map(any) for vscode-desktop-core module
|
||||
|
||||
resource "coder_script" "windsurf_mcp" {
|
||||
count = var.mcp != "" ? 1 : 0
|
||||
agent_id = var.agent_id
|
||||
display_name = "Windsurf MCP"
|
||||
icon = "/icon/windsurf.svg"
|
||||
run_on_start = true
|
||||
start_blocks_login = false
|
||||
script = <<-EOT
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
mkdir -p "$HOME/.codeium/windsurf"
|
||||
echo -n "${local.mcp_b64}" | base64 -d > "$HOME/.codeium/windsurf/mcp_config.json"
|
||||
chmod 600 "$HOME/.codeium/windsurf/mcp_config.json"
|
||||
EOT
|
||||
protocol = "windsurf"
|
||||
config_folder = "$HOME/.codeium/windsurf"
|
||||
}
|
||||
|
||||
output "windsurf_url" {
|
||||
|
||||
@ -54,8 +54,7 @@ data "coder_workspace" "me" {}
|
||||
data "coder_workspace_owner" "me" {}
|
||||
|
||||
module "vscode-desktop-core" {
|
||||
source = "registry.coder.com/coder/vscode-desktop-core/coder"
|
||||
version = "1.0.0"
|
||||
source = "git::https://github.com/coder/registry.git//registry/coder/modules/vscode-desktop-core?ref=phorcys/vscode-desktop-core-mcp"
|
||||
|
||||
agent_id = var.agent_id
|
||||
|
||||
@ -67,7 +66,9 @@ module "vscode-desktop-core" {
|
||||
|
||||
folder = var.folder
|
||||
open_recent = var.open_recent
|
||||
protocol = "positron"
|
||||
|
||||
protocol = "positron"
|
||||
config_folder = "$HOME/.positron" # TODO: verify this
|
||||
}
|
||||
|
||||
output "positron_url" {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user