diff --git a/cli/testdata/coder_server_--help.golden b/cli/testdata/coder_server_--help.golden
index 13012c650f..bdbd5076e9 100644
--- a/cli/testdata/coder_server_--help.golden
+++ b/cli/testdata/coder_server_--help.golden
@@ -139,18 +139,18 @@ AI BRIDGE OPTIONS:
Maximum number of AI Bridge requests per second per replica. Set to 0
to disable (unlimited).
-AI PROXY OPTIONS:
- --aiproxy-cert-file string, $CODER_AIPROXY_CERT_FILE
+AI BRIDGE PROXY OPTIONS:
+ --aibridge-proxy-cert-file string, $CODER_AIBRIDGE_PROXY_CERT_FILE
Path to the CA certificate file for MITM.
- --aiproxy-enabled bool, $CODER_AIPROXY_ENABLED (default: false)
+ --aibridge-proxy-enabled bool, $CODER_AIBRIDGE_PROXY_ENABLED (default: false)
Enable the AI MITM proxy for intercepting and decrypting AI provider
requests.
- --aiproxy-key-file string, $CODER_AIPROXY_KEY_FILE
+ --aibridge-proxy-key-file string, $CODER_AIBRIDGE_PROXY_KEY_FILE
Path to the CA private key file for MITM.
- --aiproxy-listen-addr string, $CODER_AIPROXY_LISTEN_ADDR (default: :8888)
+ --aibridge-proxy-listen-addr string, $CODER_AIBRIDGE_PROXY_LISTEN_ADDR (default: :8888)
The address the AI proxy will listen on.
CLIENT OPTIONS:
diff --git a/cli/testdata/server-config.yaml.golden b/cli/testdata/server-config.yaml.golden
index 70492148b3..9181b9cb4c 100644
--- a/cli/testdata/server-config.yaml.golden
+++ b/cli/testdata/server-config.yaml.golden
@@ -765,7 +765,7 @@ aibridge:
# (unlimited).
# (default: 0, type: int)
rateLimit: 0
-aiproxy:
+aibridgeproxy:
# Enable the AI MITM proxy for intercepting and decrypting AI provider requests.
# (default: false, type: bool)
enabled: false
diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go
index 6ef1163d46..fcee015a12 100644
--- a/coderd/apidoc/docs.go
+++ b/coderd/apidoc/docs.go
@@ -12009,6 +12009,23 @@ const docTemplate = `{
}
}
},
+ "codersdk.AIBridgeProxyConfig": {
+ "type": "object",
+ "properties": {
+ "cert_file": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "key_file": {
+ "type": "string"
+ },
+ "listen_addr": {
+ "type": "string"
+ }
+ }
+ },
"codersdk.AIBridgeTokenUsage": {
"type": "object",
"properties": {
@@ -12108,28 +12125,11 @@ const docTemplate = `{
"codersdk.AIConfig": {
"type": "object",
"properties": {
+ "aibridge_proxy": {
+ "$ref": "#/definitions/codersdk.AIBridgeProxyConfig"
+ },
"bridge": {
"$ref": "#/definitions/codersdk.AIBridgeConfig"
- },
- "proxy": {
- "$ref": "#/definitions/codersdk.AIProxyConfig"
- }
- }
- },
- "codersdk.AIProxyConfig": {
- "type": "object",
- "properties": {
- "cert_file": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean"
- },
- "key_file": {
- "type": "string"
- },
- "listen_addr": {
- "type": "string"
}
}
},
diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json
index 3ea6eb9f7c..b3bc29d7bf 100644
--- a/coderd/apidoc/swagger.json
+++ b/coderd/apidoc/swagger.json
@@ -10673,6 +10673,23 @@
}
}
},
+ "codersdk.AIBridgeProxyConfig": {
+ "type": "object",
+ "properties": {
+ "cert_file": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "key_file": {
+ "type": "string"
+ },
+ "listen_addr": {
+ "type": "string"
+ }
+ }
+ },
"codersdk.AIBridgeTokenUsage": {
"type": "object",
"properties": {
@@ -10772,28 +10789,11 @@
"codersdk.AIConfig": {
"type": "object",
"properties": {
+ "aibridge_proxy": {
+ "$ref": "#/definitions/codersdk.AIBridgeProxyConfig"
+ },
"bridge": {
"$ref": "#/definitions/codersdk.AIBridgeConfig"
- },
- "proxy": {
- "$ref": "#/definitions/codersdk.AIProxyConfig"
- }
- }
- },
- "codersdk.AIProxyConfig": {
- "type": "object",
- "properties": {
- "cert_file": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean"
- },
- "key_file": {
- "type": "string"
- },
- "listen_addr": {
- "type": "string"
}
}
},
diff --git a/codersdk/deployment.go b/codersdk/deployment.go
index 2cb4eeed28..1d9f2f0470 100644
--- a/codersdk/deployment.go
+++ b/codersdk/deployment.go
@@ -1217,9 +1217,9 @@ func (c *DeploymentValues) Options() serpent.OptionSet {
Name: "AI Bridge",
YAML: "aibridge",
}
- deploymentGroupAIProxy = serpent.Group{
- Name: "AI Proxy",
- YAML: "aiproxy",
+ deploymentGroupAIBridgeProxy = serpent.Group{
+ Name: "AI Bridge Proxy",
+ YAML: "aibridgeproxy",
}
deploymentGroupRetention = serpent.Group{
Name: "Retention",
@@ -3448,45 +3448,45 @@ Write out the current server config as YAML to stdout.`,
YAML: "rateLimit",
},
- // AI Proxy Options
+ // AI Bridge Proxy Options
{
- Name: "AI Proxy Enabled",
+ Name: "AI Bridge Proxy Enabled",
Description: "Enable the AI MITM proxy for intercepting and decrypting AI provider requests.",
- Flag: "aiproxy-enabled",
- Env: "CODER_AIPROXY_ENABLED",
- Value: &c.AI.ProxyConfig.Enabled,
+ Flag: "aibridge-proxy-enabled",
+ Env: "CODER_AIBRIDGE_PROXY_ENABLED",
+ Value: &c.AI.BridgeProxyConfig.Enabled,
Default: "false",
- Group: &deploymentGroupAIProxy,
+ Group: &deploymentGroupAIBridgeProxy,
YAML: "enabled",
},
{
- Name: "AI Proxy Listen Address",
+ Name: "AI Bridge Proxy Listen Address",
Description: "The address the AI proxy will listen on.",
- Flag: "aiproxy-listen-addr",
- Env: "CODER_AIPROXY_LISTEN_ADDR",
- Value: &c.AI.ProxyConfig.ListenAddr,
+ Flag: "aibridge-proxy-listen-addr",
+ Env: "CODER_AIBRIDGE_PROXY_LISTEN_ADDR",
+ Value: &c.AI.BridgeProxyConfig.ListenAddr,
Default: ":8888",
- Group: &deploymentGroupAIProxy,
+ Group: &deploymentGroupAIBridgeProxy,
YAML: "listen_addr",
},
{
- Name: "AI Proxy Certificate File",
+ Name: "AI Bridge Proxy Certificate File",
Description: "Path to the CA certificate file for MITM.",
- Flag: "aiproxy-cert-file",
- Env: "CODER_AIPROXY_CERT_FILE",
- Value: &c.AI.ProxyConfig.CertFile,
+ Flag: "aibridge-proxy-cert-file",
+ Env: "CODER_AIBRIDGE_PROXY_CERT_FILE",
+ Value: &c.AI.BridgeProxyConfig.CertFile,
Default: "",
- Group: &deploymentGroupAIProxy,
+ Group: &deploymentGroupAIBridgeProxy,
YAML: "cert_file",
},
{
- Name: "AI Proxy Key File",
+ Name: "AI Bridge Proxy Key File",
Description: "Path to the CA private key file for MITM.",
- Flag: "aiproxy-key-file",
- Env: "CODER_AIPROXY_KEY_FILE",
- Value: &c.AI.ProxyConfig.KeyFile,
+ Flag: "aibridge-proxy-key-file",
+ Env: "CODER_AIBRIDGE_PROXY_KEY_FILE",
+ Value: &c.AI.BridgeProxyConfig.KeyFile,
Default: "",
- Group: &deploymentGroupAIProxy,
+ Group: &deploymentGroupAIBridgeProxy,
YAML: "key_file",
},
@@ -3582,7 +3582,7 @@ type AIBridgeBedrockConfig struct {
SmallFastModel serpent.String `json:"small_fast_model" typescript:",notnull"`
}
-type AIProxyConfig struct {
+type AIBridgeProxyConfig struct {
Enabled serpent.Bool `json:"enabled" typescript:",notnull"`
ListenAddr serpent.String `json:"listen_addr" typescript:",notnull"`
CertFile serpent.String `json:"cert_file" typescript:",notnull"`
@@ -3590,8 +3590,8 @@ type AIProxyConfig struct {
}
type AIConfig struct {
- BridgeConfig AIBridgeConfig `json:"bridge,omitempty"`
- ProxyConfig AIProxyConfig `json:"proxy,omitempty"`
+ BridgeConfig AIBridgeConfig `json:"bridge,omitempty"`
+ BridgeProxyConfig AIBridgeProxyConfig `json:"aibridge_proxy,omitempty"`
}
type SupportConfig struct {
diff --git a/docs/reference/api/general.md b/docs/reference/api/general.md
index da40a73801..83dae06688 100644
--- a/docs/reference/api/general.md
+++ b/docs/reference/api/general.md
@@ -162,6 +162,12 @@ curl -X GET http://coder-server:8080/api/v2/deployment/config \
},
"agent_stat_refresh_interval": 0,
"ai": {
+ "aibridge_proxy": {
+ "cert_file": "string",
+ "enabled": true,
+ "key_file": "string",
+ "listen_addr": "string"
+ },
"bridge": {
"anthropic": {
"base_url": "string",
@@ -183,12 +189,6 @@ curl -X GET http://coder-server:8080/api/v2/deployment/config \
},
"rate_limit": 0,
"retention": 0
- },
- "proxy": {
- "cert_file": "string",
- "enabled": true,
- "key_file": "string",
- "listen_addr": "string"
}
},
"allow_workspace_renames": true,
diff --git a/docs/reference/api/schemas.md b/docs/reference/api/schemas.md
index 442b8e164a..494b2d30ac 100644
--- a/docs/reference/api/schemas.md
+++ b/docs/reference/api/schemas.md
@@ -592,6 +592,26 @@
| `base_url` | string | false | | |
| `key` | string | false | | |
+## codersdk.AIBridgeProxyConfig
+
+```json
+{
+ "cert_file": "string",
+ "enabled": true,
+ "key_file": "string",
+ "listen_addr": "string"
+}
+```
+
+### Properties
+
+| Name | Type | Required | Restrictions | Description |
+|---------------|---------|----------|--------------|-------------|
+| `cert_file` | string | false | | |
+| `enabled` | boolean | false | | |
+| `key_file` | string | false | | |
+| `listen_addr` | string | false | | |
+
## codersdk.AIBridgeTokenUsage
```json
@@ -690,6 +710,12 @@
```json
{
+ "aibridge_proxy": {
+ "cert_file": "string",
+ "enabled": true,
+ "key_file": "string",
+ "listen_addr": "string"
+ },
"bridge": {
"anthropic": {
"base_url": "string",
@@ -711,42 +737,16 @@
},
"rate_limit": 0,
"retention": 0
- },
- "proxy": {
- "cert_file": "string",
- "enabled": true,
- "key_file": "string",
- "listen_addr": "string"
}
}
```
### Properties
-| Name | Type | Required | Restrictions | Description |
-|----------|----------------------------------------------------|----------|--------------|-------------|
-| `bridge` | [codersdk.AIBridgeConfig](#codersdkaibridgeconfig) | false | | |
-| `proxy` | [codersdk.AIProxyConfig](#codersdkaiproxyconfig) | false | | |
-
-## codersdk.AIProxyConfig
-
-```json
-{
- "cert_file": "string",
- "enabled": true,
- "key_file": "string",
- "listen_addr": "string"
-}
-```
-
-### Properties
-
-| Name | Type | Required | Restrictions | Description |
-|---------------|---------|----------|--------------|-------------|
-| `cert_file` | string | false | | |
-| `enabled` | boolean | false | | |
-| `key_file` | string | false | | |
-| `listen_addr` | string | false | | |
+| Name | Type | Required | Restrictions | Description |
+|------------------|--------------------------------------------------------------|----------|--------------|-------------|
+| `aibridge_proxy` | [codersdk.AIBridgeProxyConfig](#codersdkaibridgeproxyconfig) | false | | |
+| `bridge` | [codersdk.AIBridgeConfig](#codersdkaibridgeconfig) | false | | |
## codersdk.APIAllowListTarget
@@ -2622,6 +2622,12 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o
},
"agent_stat_refresh_interval": 0,
"ai": {
+ "aibridge_proxy": {
+ "cert_file": "string",
+ "enabled": true,
+ "key_file": "string",
+ "listen_addr": "string"
+ },
"bridge": {
"anthropic": {
"base_url": "string",
@@ -2643,12 +2649,6 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o
},
"rate_limit": 0,
"retention": 0
- },
- "proxy": {
- "cert_file": "string",
- "enabled": true,
- "key_file": "string",
- "listen_addr": "string"
}
},
"allow_workspace_renames": true,
@@ -3159,6 +3159,12 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o
},
"agent_stat_refresh_interval": 0,
"ai": {
+ "aibridge_proxy": {
+ "cert_file": "string",
+ "enabled": true,
+ "key_file": "string",
+ "listen_addr": "string"
+ },
"bridge": {
"anthropic": {
"base_url": "string",
@@ -3180,12 +3186,6 @@ CreateWorkspaceRequest provides options for creating a new workspace. Only one o
},
"rate_limit": 0,
"retention": 0
- },
- "proxy": {
- "cert_file": "string",
- "enabled": true,
- "key_file": "string",
- "listen_addr": "string"
}
},
"allow_workspace_renames": true,
diff --git a/docs/reference/cli/server.md b/docs/reference/cli/server.md
index a1d4e732f7..6a9d718295 100644
--- a/docs/reference/cli/server.md
+++ b/docs/reference/cli/server.md
@@ -1814,45 +1814,45 @@ Maximum number of concurrent AI Bridge requests per replica. Set to 0 to disable
Maximum number of AI Bridge requests per second per replica. Set to 0 to disable (unlimited).
-### --aiproxy-enabled
+### --aibridge-proxy-enabled
-| | |
-|-------------|-------------------------------------|
-| Type | bool |
-| Environment | $CODER_AIPROXY_ENABLED |
-| YAML | aiproxy.enabled |
-| Default | false |
+| | |
+|-------------|--------------------------------------------|
+| Type | bool |
+| Environment | $CODER_AIBRIDGE_PROXY_ENABLED |
+| YAML | aibridgeproxy.enabled |
+| Default | false |
Enable the AI MITM proxy for intercepting and decrypting AI provider requests.
-### --aiproxy-listen-addr
+### --aibridge-proxy-listen-addr
-| | |
-|-------------|-----------------------------------------|
-| Type | string |
-| Environment | $CODER_AIPROXY_LISTEN_ADDR |
-| YAML | aiproxy.listen_addr |
-| Default | :8888 |
+| | |
+|-------------|------------------------------------------------|
+| Type | string |
+| Environment | $CODER_AIBRIDGE_PROXY_LISTEN_ADDR |
+| YAML | aibridgeproxy.listen_addr |
+| Default | :8888 |
The address the AI proxy will listen on.
-### --aiproxy-cert-file
+### --aibridge-proxy-cert-file
-| | |
-|-------------|---------------------------------------|
-| Type | string |
-| Environment | $CODER_AIPROXY_CERT_FILE |
-| YAML | aiproxy.cert_file |
+| | |
+|-------------|----------------------------------------------|
+| Type | string |
+| Environment | $CODER_AIBRIDGE_PROXY_CERT_FILE |
+| YAML | aibridgeproxy.cert_file |
Path to the CA certificate file for MITM.
-### --aiproxy-key-file
+### --aibridge-proxy-key-file
-| | |
-|-------------|--------------------------------------|
-| Type | string |
-| Environment | $CODER_AIPROXY_KEY_FILE |
-| YAML | aiproxy.key_file |
+| | |
+|-------------|---------------------------------------------|
+| Type | string |
+| Environment | $CODER_AIBRIDGE_PROXY_KEY_FILE |
+| YAML | aibridgeproxy.key_file |
Path to the CA private key file for MITM.
diff --git a/enterprise/aiproxyd/aiproxyd.go b/enterprise/aibridgeproxyd/aibridgeproxyd.go
similarity index 96%
rename from enterprise/aiproxyd/aiproxyd.go
rename to enterprise/aibridgeproxyd/aibridgeproxyd.go
index 2ea856ba68..8db4bcc4e6 100644
--- a/enterprise/aiproxyd/aiproxyd.go
+++ b/enterprise/aibridgeproxyd/aibridgeproxyd.go
@@ -1,4 +1,4 @@
-package aiproxyd
+package aibridgeproxyd
import (
"context"
@@ -74,7 +74,7 @@ func New(ctx context.Context, logger slog.Logger, opts Options) (*Server, error)
go func() {
logger.Info(ctx, "starting AI proxy", slog.F("addr", opts.ListenAddr))
if err := srv.httpServer.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
- logger.Error(ctx, "aiproxyd server error", slog.Error(err))
+ logger.Error(ctx, "aibridgeproxyd server error", slog.Error(err))
}
}()
diff --git a/enterprise/aiproxyd/aiproxyd_test.go b/enterprise/aibridgeproxyd/aibridgeproxyd_test.go
similarity index 89%
rename from enterprise/aiproxyd/aiproxyd_test.go
rename to enterprise/aibridgeproxyd/aibridgeproxyd_test.go
index 8330ffb1cf..5efc31e3df 100644
--- a/enterprise/aiproxyd/aiproxyd_test.go
+++ b/enterprise/aibridgeproxyd/aibridgeproxyd_test.go
@@ -1,4 +1,4 @@
-package aiproxyd_test
+package aibridgeproxyd_test
import (
"crypto/rand"
@@ -22,7 +22,7 @@ import (
"cdr.dev/slog/sloggers/slogtest"
- "github.com/coder/coder/v2/enterprise/aiproxyd"
+ "github.com/coder/coder/v2/enterprise/aibridgeproxyd"
"github.com/coder/coder/v2/testutil"
)
@@ -72,7 +72,7 @@ func TestNew(t *testing.T) {
certFile, keyFile := generateTestCA(t)
logger := slogtest.Make(t, nil)
- _, err := aiproxyd.New(t.Context(), logger, aiproxyd.Options{
+ _, err := aibridgeproxyd.New(t.Context(), logger, aibridgeproxyd.Options{
ListenAddr: "",
CertFile: certFile,
KeyFile: keyFile,
@@ -86,7 +86,7 @@ func TestNew(t *testing.T) {
logger := slogtest.Make(t, nil)
- _, err := aiproxyd.New(t.Context(), logger, aiproxyd.Options{
+ _, err := aibridgeproxyd.New(t.Context(), logger, aibridgeproxyd.Options{
ListenAddr: ":0",
KeyFile: "key.pem",
})
@@ -99,7 +99,7 @@ func TestNew(t *testing.T) {
logger := slogtest.Make(t, nil)
- _, err := aiproxyd.New(t.Context(), logger, aiproxyd.Options{
+ _, err := aibridgeproxyd.New(t.Context(), logger, aibridgeproxyd.Options{
ListenAddr: ":0",
CertFile: "cert.pem",
})
@@ -112,7 +112,7 @@ func TestNew(t *testing.T) {
logger := slogtest.Make(t, nil)
- _, err := aiproxyd.New(t.Context(), logger, aiproxyd.Options{
+ _, err := aibridgeproxyd.New(t.Context(), logger, aibridgeproxyd.Options{
ListenAddr: ":0",
CertFile: "/nonexistent/cert.pem",
KeyFile: "/nonexistent/key.pem",
@@ -127,7 +127,7 @@ func TestNew(t *testing.T) {
certFile, keyFile := generateTestCA(t)
logger := slogtest.Make(t, nil)
- srv, err := aiproxyd.New(t.Context(), logger, aiproxyd.Options{
+ srv, err := aibridgeproxyd.New(t.Context(), logger, aibridgeproxyd.Options{
ListenAddr: "127.0.0.1:0",
CertFile: certFile,
KeyFile: keyFile,
@@ -146,7 +146,7 @@ func TestClose(t *testing.T) {
certFile, keyFile := generateTestCA(t)
logger := slogtest.Make(t, nil)
- srv, err := aiproxyd.New(t.Context(), logger, aiproxyd.Options{
+ srv, err := aibridgeproxyd.New(t.Context(), logger, aibridgeproxyd.Options{
ListenAddr: "127.0.0.1:0",
CertFile: certFile,
KeyFile: keyFile,
@@ -175,7 +175,7 @@ func TestProxy_MITM(t *testing.T) {
logger := slogtest.Make(t, nil)
// Start the proxy server.
- srv, err := aiproxyd.New(t.Context(), logger, aiproxyd.Options{
+ srv, err := aibridgeproxyd.New(t.Context(), logger, aibridgeproxyd.Options{
ListenAddr: "127.0.0.1:8888",
CertFile: certFile,
KeyFile: keyFile,
diff --git a/enterprise/cli/aibridgeproxyd.go b/enterprise/cli/aibridgeproxyd.go
new file mode 100644
index 0000000000..6c2a388a98
--- /dev/null
+++ b/enterprise/cli/aibridgeproxyd.go
@@ -0,0 +1,30 @@
+//go:build !slim
+
+package cli
+
+import (
+ "context"
+
+ "golang.org/x/xerrors"
+
+ "github.com/coder/coder/v2/enterprise/aibridgeproxyd"
+ "github.com/coder/coder/v2/enterprise/coderd"
+)
+
+func newAIBridgeProxyDaemon(coderAPI *coderd.API) (*aibridgeproxyd.Server, error) {
+ ctx := context.Background()
+ coderAPI.Logger.Debug(ctx, "starting in-memory aibridgeproxy daemon")
+
+ logger := coderAPI.Logger.Named("aibridgeproxyd")
+
+ srv, err := aibridgeproxyd.New(ctx, logger, aibridgeproxyd.Options{
+ ListenAddr: coderAPI.DeploymentValues.AI.BridgeProxyConfig.ListenAddr.String(),
+ CertFile: coderAPI.DeploymentValues.AI.BridgeProxyConfig.CertFile.String(),
+ KeyFile: coderAPI.DeploymentValues.AI.BridgeProxyConfig.KeyFile.String(),
+ })
+ if err != nil {
+ return nil, xerrors.Errorf("failed to start in-memory aibridgeproxy daemon: %w", err)
+ }
+
+ return srv, nil
+}
diff --git a/enterprise/cli/aiproxyd.go b/enterprise/cli/aiproxyd.go
deleted file mode 100644
index c1411dcf09..0000000000
--- a/enterprise/cli/aiproxyd.go
+++ /dev/null
@@ -1,30 +0,0 @@
-//go:build !slim
-
-package cli
-
-import (
- "context"
-
- "golang.org/x/xerrors"
-
- "github.com/coder/coder/v2/enterprise/aiproxyd"
- "github.com/coder/coder/v2/enterprise/coderd"
-)
-
-func newAIProxyDaemon(coderAPI *coderd.API) (*aiproxyd.Server, error) {
- ctx := context.Background()
- coderAPI.Logger.Debug(ctx, "starting in-memory aiproxy daemon")
-
- logger := coderAPI.Logger.Named("aiproxyd")
-
- srv, err := aiproxyd.New(ctx, logger, aiproxyd.Options{
- ListenAddr: coderAPI.DeploymentValues.AI.ProxyConfig.ListenAddr.String(),
- CertFile: coderAPI.DeploymentValues.AI.ProxyConfig.CertFile.String(),
- KeyFile: coderAPI.DeploymentValues.AI.ProxyConfig.KeyFile.String(),
- })
- if err != nil {
- return nil, xerrors.Errorf("failed to start in-memory aiproxy daemon: %w", err)
- }
-
- return srv, nil
-}
diff --git a/enterprise/cli/server.go b/enterprise/cli/server.go
index c4686bab52..5aa7c82a0a 100644
--- a/enterprise/cli/server.go
+++ b/enterprise/cli/server.go
@@ -166,11 +166,11 @@ func (r *RootCmd) Server(_ func()) *serpent.Command {
}
// In-memory AI proxy daemon
- if options.DeploymentValues.AI.ProxyConfig.Enabled.Value() {
- aiProxyServer, err := newAIProxyDaemon(api)
+ if options.DeploymentValues.AI.BridgeProxyConfig.Enabled.Value() {
+ aiProxyServer, err := newAIBridgeProxyDaemon(api)
if err != nil {
_ = closers.Close()
- return nil, nil, xerrors.Errorf("create aiproxyd: %w", err)
+ return nil, nil, xerrors.Errorf("create aibridgeproxyd: %w", err)
}
closers.Add(aiProxyServer)
}
diff --git a/enterprise/cli/testdata/coder_server_--help.golden b/enterprise/cli/testdata/coder_server_--help.golden
index 7aa7866085..7e56328fe8 100644
--- a/enterprise/cli/testdata/coder_server_--help.golden
+++ b/enterprise/cli/testdata/coder_server_--help.golden
@@ -140,18 +140,18 @@ AI BRIDGE OPTIONS:
Maximum number of AI Bridge requests per second per replica. Set to 0
to disable (unlimited).
-AI PROXY OPTIONS:
- --aiproxy-cert-file string, $CODER_AIPROXY_CERT_FILE
+AI BRIDGE PROXY OPTIONS:
+ --aibridge-proxy-cert-file string, $CODER_AIBRIDGE_PROXY_CERT_FILE
Path to the CA certificate file for MITM.
- --aiproxy-enabled bool, $CODER_AIPROXY_ENABLED (default: false)
+ --aibridge-proxy-enabled bool, $CODER_AIBRIDGE_PROXY_ENABLED (default: false)
Enable the AI MITM proxy for intercepting and decrypting AI provider
requests.
- --aiproxy-key-file string, $CODER_AIPROXY_KEY_FILE
+ --aibridge-proxy-key-file string, $CODER_AIBRIDGE_PROXY_KEY_FILE
Path to the CA private key file for MITM.
- --aiproxy-listen-addr string, $CODER_AIPROXY_LISTEN_ADDR (default: :8888)
+ --aibridge-proxy-listen-addr string, $CODER_AIBRIDGE_PROXY_LISTEN_ADDR (default: :8888)
The address the AI proxy will listen on.
CLIENT OPTIONS:
diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts
index 4ee2d600d5..f55bff3a3d 100644
--- a/site/src/api/typesGenerated.ts
+++ b/site/src/api/typesGenerated.ts
@@ -65,6 +65,14 @@ export interface AIBridgeOpenAIConfig {
readonly key: string;
}
+// From codersdk/deployment.go
+export interface AIBridgeProxyConfig {
+ readonly enabled: boolean;
+ readonly listen_addr: string;
+ readonly cert_file: string;
+ readonly key_file: string;
+}
+
// From codersdk/aibridge.go
export interface AIBridgeTokenUsage {
readonly id: string;
@@ -106,15 +114,7 @@ export interface AIBridgeUserPrompt {
// From codersdk/deployment.go
export interface AIConfig {
readonly bridge?: AIBridgeConfig;
- readonly proxy?: AIProxyConfig;
-}
-
-// From codersdk/deployment.go
-export interface AIProxyConfig {
- readonly enabled: boolean;
- readonly listen_addr: string;
- readonly cert_file: string;
- readonly key_file: string;
+ readonly aibridge_proxy?: AIBridgeProxyConfig;
}
// From codersdk/allowlist.go