Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions pkg/workflow/claude_engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ func NewClaudeEngine() *ClaudeEngine {
description: "Uses Claude Code with full MCP tool support and allow-listing",
experimental: false,
supportsToolsAllowlist: true,
supportsHTTPTransport: true, // Claude supports both stdio and HTTP transport
supportsMaxTurns: true, // Claude supports max-turns feature
supportsWebFetch: true, // Claude has built-in WebFetch support
supportsWebSearch: true, // Claude has built-in WebSearch support
supportsFirewall: true, // Claude supports network firewalling via AWF
supportsLLMGateway: true, // Claude supports LLM gateway via AWF api-proxy
supportsHTTPTransport: true, // Claude supports both stdio and HTTP transport
supportsMaxTurns: true, // Claude supports max-turns feature
supportsWebFetch: true, // Claude has built-in WebFetch support
supportsWebSearch: true, // Claude has built-in WebSearch support
supportsFirewall: true, // Claude supports network firewalling via AWF
supportsLLMGateway: false, // Claude does not support LLM gateway
Copy link

Copilot AI Feb 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment in pkg/workflow/docker.go (lines 109-111) describes the api-proxy container as supporting both "Port 10000: OpenAI API proxy (for Codex)" and "Port 10001: Anthropic API proxy (for Claude)". However, with this change, only Codex will use the LLM gateway (supportsLLMGateway: true), while Claude will not (supportsLLMGateway: false). This means the api-proxy container will only be deployed when using Codex, making the Port 10001 reference potentially misleading. Consider either: (1) updating the comment to clarify that Port 10001 is for future use, (2) updating the comment to remove the Claude reference, or (3) if both engines should support LLM gateway, reconsidering whether Claude should also have supportsLLMGateway: true.

Suggested change
supportsLLMGateway: false, // Claude does not support LLM gateway
supportsLLMGateway: true, // Claude supports LLM gateway

Copilot uses AI. Check for mistakes.
},
}
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/workflow/codex_engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func NewCodexEngine() *CodexEngine {
supportsWebFetch: false, // Codex does not have built-in web-fetch support
supportsWebSearch: true, // Codex has built-in web-search support
supportsFirewall: true, // Codex supports network firewalling via AWF
supportsLLMGateway: false, // Codex does not support LLM gateway
supportsLLMGateway: true, // Codex supports LLM gateway via AWF api-proxy
},
}
}
Expand Down
8 changes: 4 additions & 4 deletions pkg/workflow/docker_api_proxy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@ func TestCollectDockerImages_APIProxyForEnginesWithLLMGateway(t *testing.T) {
expectAPIProxy bool
}{
{
name: "Claude engine includes api-proxy image (supportsLLMGateway: true)",
name: "Claude engine does not include api-proxy image (supportsLLMGateway: false)",
engine: "claude",
expectAPIProxy: true,
expectAPIProxy: false,
},
{
name: "Copilot engine does not include api-proxy image (supportsLLMGateway: false)",
engine: "copilot",
expectAPIProxy: false,
},
{
name: "Codex engine does not include api-proxy image (supportsLLMGateway: false)",
name: "Codex engine includes api-proxy image (supportsLLMGateway: true)",
engine: "codex",
expectAPIProxy: false,
expectAPIProxy: true,
},
}

Expand Down
12 changes: 6 additions & 6 deletions pkg/workflow/enable_api_proxy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
// TestEngineAWFEnableApiProxy tests that engines with supportsLLMGateway: true
// include --enable-api-proxy in AWF commands, while engines with supportsLLMGateway: false do not.
func TestEngineAWFEnableApiProxy(t *testing.T) {
t.Run("Claude AWF command includes enable-api-proxy flag (supportsLLMGateway: true)", func(t *testing.T) {
t.Run("Claude AWF command does not include enable-api-proxy flag (supportsLLMGateway: false)", func(t *testing.T) {
workflowData := &WorkflowData{
Name: "test-workflow",
EngineConfig: &EngineConfig{
Expand All @@ -30,8 +30,8 @@ func TestEngineAWFEnableApiProxy(t *testing.T) {

stepContent := strings.Join(steps[0], "\n")

if !strings.Contains(stepContent, "--enable-api-proxy") {
t.Error("Expected Claude AWF command to contain '--enable-api-proxy' flag (supportsLLMGateway: true)")
if strings.Contains(stepContent, "--enable-api-proxy") {
t.Error("Expected Claude AWF command to NOT contain '--enable-api-proxy' flag (supportsLLMGateway: false)")
}
})

Expand Down Expand Up @@ -62,7 +62,7 @@ func TestEngineAWFEnableApiProxy(t *testing.T) {
}
})

t.Run("Codex AWF command does not include enable-api-proxy flag (supportsLLMGateway: false)", func(t *testing.T) {
t.Run("Codex AWF command includes enable-api-proxy flag (supportsLLMGateway: true)", func(t *testing.T) {
workflowData := &WorkflowData{
Name: "test-workflow",
EngineConfig: &EngineConfig{
Expand All @@ -84,8 +84,8 @@ func TestEngineAWFEnableApiProxy(t *testing.T) {

stepContent := strings.Join(steps[0], "\n")

if strings.Contains(stepContent, "--enable-api-proxy") {
t.Error("Expected Codex AWF command to NOT contain '--enable-api-proxy' flag (supportsLLMGateway: false)")
if !strings.Contains(stepContent, "--enable-api-proxy") {
t.Error("Expected Codex AWF command to contain '--enable-api-proxy' flag (supportsLLMGateway: true)")
}
})
}
Loading