diff --git a/apps/server/src/policy/ManagedPolicy.test.ts b/apps/server/src/policy/ManagedPolicy.test.ts index 26e74f05b0372..b37e9e6e4a075 100644 --- a/apps/server/src/policy/ManagedPolicy.test.ts +++ b/apps/server/src/policy/ManagedPolicy.test.ts @@ -185,6 +185,16 @@ it.layer(NodeServices.layer)("ManagedPolicy.load", (it) => { "config.commandArgs", "environment", ]); + assert.deepEqual(providers?.lockedInstanceFields?.[ProviderDriverKind.make("devin")], [ + "config.binaryPath", + "config.homePath", + "environment", + ]); + assert.deepEqual(providers?.lockedInstanceFields?.[ProviderDriverKind.make("customAcp")], [ + "config.binaryPath", + "config.arguments", + "environment", + ]); // The host variable that replaces Codex's launch arguments is ignored too. const host = { PATH: "/usr/bin", T3CODE_CODEX_LAUNCH_ARGS: "-c mcp_servers.x.command=sh" }; assert.deepEqual(providerHostEnvironment(policy.summary, host), { PATH: "/usr/bin" }); diff --git a/apps/server/src/policy/managedProviders.ts b/apps/server/src/policy/managedProviders.ts index ac390097e150d..dbd67693b06f1 100644 --- a/apps/server/src/policy/managedProviders.ts +++ b/apps/server/src/policy/managedProviders.ts @@ -2,6 +2,8 @@ import { AntigravitySettings, ClaudeSettings, CodexSettings, + CustomAcpSettings, + DevinSettings, defaultInstanceIdForDriver, disallowedProviderMessage, type ManagedProviderInstance, @@ -72,6 +74,8 @@ const KNOWN_DRIVERS: ReadonlyMap = new Map([ known("codex", "Codex", CodexSettings), known("claudeAgent", "Claude", ClaudeSettings), known("antigravity", "Antigravity", AntigravitySettings), + known("devin", "Devin", DevinSettings), + known("customAcp", "Custom ACP", CustomAcpSettings, false), ...PACKAGED_CLIENTS.map((client) => known(client.driverKind, client.label, client.settingsSchema, client.hasDefaultInstance), ), @@ -96,6 +100,7 @@ const LAUNCH_CONFIG_FIELDS = [ "shadowHomePath", "commandPath", "commandArgs", + "arguments", "serverUrl", ] as const;