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
4 changes: 1 addition & 3 deletions cli/exp_chat.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (

"github.com/coder/coder/v2/agent/agentsocket"
"github.com/coder/coder/v2/cli/cliui"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/serpent"
)

Expand Down Expand Up @@ -293,8 +292,7 @@ func (r *RootCmd) chatContextRefreshCommand(socketPath *string) *serpent.Command
if err != nil {
return err
}
exp := codersdk.NewExperimentalClient(client)
chat, err := exp.RefreshChatContext(ctx, chatID)
chat, err := client.RefreshChatContext(ctx, chatID)
if err != nil {
return xerrors.Errorf("refresh chat context: %w", err)
}
Expand Down
7 changes: 3 additions & 4 deletions cli/exp_scaletest_chat_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,21 +76,20 @@ func TestScaleTestChat(t *testing.T) {
require.NoError(t, err)
require.Equal(t, mockURL, provider.BaseURL)

expClient := codersdk.NewExperimentalClient(client)
defaultOrg, err := client.OrganizationByName(ctx, codersdk.DefaultOrganization)
require.NoError(t, err)
configs, err := expClient.ChatModels(ctx, defaultOrg.ID)
configs, err := client.ChatModels(ctx, defaultOrg.ID)
require.NoError(t, err)
matchingConfigs := scaletestModelConfigsForProvider(configs.Models, provider.ID)
require.Len(t, matchingConfigs, 1)
require.True(t, matchingConfigs[0].Enabled)

chats, err := expClient.ListChats(ctx, &codersdk.ListChatsOptions{Query: "archived:true"})
chats, err := client.ListChats(ctx, &codersdk.ListChatsOptions{Query: "archived:true"})
require.NoError(t, err)

var scaletestMessages []codersdk.ChatMessage
for _, chat := range chats {
resp, err := expClient.GetChatMessages(ctx, chat.ID, nil)
resp, err := client.GetChatMessages(ctx, chat.ID, nil)
require.NoError(t, err)
if userText, ok := chatMessageText(resp.Messages, codersdk.ChatMessageRoleUser); ok &&
strings.Contains(userText, scaletestChatPrompt) {
Expand Down
250 changes: 125 additions & 125 deletions codersdk/chats.go

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions codersdk/chats_model_acl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"github.com/coder/coder/v2/codersdk"
)

func TestExperimentalClientChatModelACL(t *testing.T) {
func TestClientChatModelACL(t *testing.T) {
t.Parallel()

organizationID := uuid.New()
Expand All @@ -25,22 +25,22 @@ func TestExperimentalClientChatModelACL(t *testing.T) {

server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodGet, r.Method)
require.Equal(t, "/api/experimental/organizations/"+organizationID.String()+"/chats/models/"+modelID.String()+"/acl", r.URL.Path)
require.Equal(t, "/api/v2/organizations/"+organizationID.String()+"/chats/models/"+modelID.String()+"/acl", r.URL.Path)
http.Error(rw, `{"user_roles":{"`+userID.String()+`":"read"},"group_roles":{"`+groupID.String()+`":"read"}}`, http.StatusOK)
}))
defer server.Close()

serverURL, err := url.Parse(server.URL)
require.NoError(t, err)
client := codersdk.NewExperimentalClient(codersdk.New(serverURL))
client := codersdk.New(serverURL)

modelACL, err := client.ChatModelACL(context.Background(), organizationID, modelID)
require.NoError(t, err)
require.Equal(t, map[string]codersdk.ChatRole{userID.String(): codersdk.ChatRoleRead}, modelACL.UserRoles)
require.Equal(t, map[string]codersdk.ChatRole{groupID.String(): codersdk.ChatRoleRead}, modelACL.GroupRoles)
}

func TestExperimentalClientUpdateChatModelACL(t *testing.T) {
func TestClientUpdateChatModelACL(t *testing.T) {
t.Parallel()

organizationID := uuid.New()
Expand All @@ -50,7 +50,7 @@ func TestExperimentalClientUpdateChatModelACL(t *testing.T) {

server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPatch, r.Method)
require.Equal(t, "/api/experimental/organizations/"+organizationID.String()+"/chats/models/"+modelID.String()+"/acl", r.URL.Path)
require.Equal(t, "/api/v2/organizations/"+organizationID.String()+"/chats/models/"+modelID.String()+"/acl", r.URL.Path)
body, err := io.ReadAll(r.Body)
require.NoError(t, err)
var payload map[string]json.RawMessage
Expand All @@ -63,7 +63,7 @@ func TestExperimentalClientUpdateChatModelACL(t *testing.T) {

serverURL, err := url.Parse(server.URL)
require.NoError(t, err)
client := codersdk.NewExperimentalClient(codersdk.New(serverURL))
client := codersdk.New(serverURL)

err = client.UpdateChatModelACL(context.Background(), organizationID, modelID, codersdk.UpdateChatModelACLRequest{
UserRoles: map[string]codersdk.ChatRole{userID.String(): codersdk.ChatRoleRead},
Expand Down
18 changes: 9 additions & 9 deletions codersdk/mcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
// start the OAuth2 flow for an MCP server. The frontend opens this
// in a new window/popup.
func (c *Client) MCPServerOAuth2ConnectURL(organizationID, id uuid.UUID) string {
return fmt.Sprintf("%s/api/experimental/organizations/%s/mcp-servers/%s/oauth2/connect", c.URL.String(), organizationID, id)
return fmt.Sprintf("%s/api/v2/organizations/%s/mcp-servers/%s/oauth2/connect", c.URL.String(), organizationID, id)
}

// MCPServerOAuth2DisconnectResponse reports whether the removed token
Expand All @@ -34,7 +34,7 @@ func (c *Client) MCPServerOAuth2Disconnect(ctx context.Context, id uuid.UUID) er
// MCPServerOAuth2DisconnectWithResponse removes the user's OAuth2
// token for an MCP server and reports the provider revocation outcome.
func (c *Client) MCPServerOAuth2DisconnectWithResponse(ctx context.Context, id uuid.UUID) (MCPServerOAuth2DisconnectResponse, error) {
res, err := c.Request(ctx, http.MethodDelete, fmt.Sprintf("/api/experimental/mcp/servers/%s/oauth2/disconnect", id), nil)
res, err := c.Request(ctx, http.MethodDelete, fmt.Sprintf("/api/v2/mcp/servers/%s/oauth2/disconnect", id), nil)
if err != nil {
return MCPServerOAuth2DisconnectResponse{}, err
}
Expand Down Expand Up @@ -213,7 +213,7 @@ type UpdateMCPServerConfigRequest struct {
}

func (c *Client) MCPServerConfigs(ctx context.Context, organizationID uuid.UUID) ([]MCPServerConfig, error) {
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/experimental/organizations/%s/mcp-servers", organizationID), nil)
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/organizations/%s/mcp-servers", organizationID), nil)
if err != nil {
return nil, err
}
Expand All @@ -226,7 +226,7 @@ func (c *Client) MCPServerConfigs(ctx context.Context, organizationID uuid.UUID)
}

func (c *Client) MCPServerConfigByID(ctx context.Context, organizationID, id uuid.UUID) (MCPServerConfig, error) {
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/experimental/organizations/%s/mcp-servers/%s", organizationID, id), nil)
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/organizations/%s/mcp-servers/%s", organizationID, id), nil)
if err != nil {
return MCPServerConfig{}, err
}
Expand All @@ -240,7 +240,7 @@ func (c *Client) MCPServerConfigByID(ctx context.Context, organizationID, id uui

// MCPServerConfigACL returns the resolved ACL of an MCP server config.
func (c *Client) MCPServerConfigACL(ctx context.Context, organizationID, id uuid.UUID) (MCPServerConfigACL, error) {
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/experimental/organizations/%s/mcp-servers/%s/acl", organizationID, id), nil)
res, err := c.Request(ctx, http.MethodGet, fmt.Sprintf("/api/v2/organizations/%s/mcp-servers/%s/acl", organizationID, id), nil)
if err != nil {
return MCPServerConfigACL{}, err
}
Expand All @@ -255,7 +255,7 @@ func (c *Client) MCPServerConfigACL(ctx context.Context, organizationID, id uuid
// UpdateMCPServerConfigACL applies a sparse ACL update to an MCP server
// config.
func (c *Client) UpdateMCPServerConfigACL(ctx context.Context, organizationID, id uuid.UUID, req UpdateMCPServerConfigACLRequest) error {
res, err := c.Request(ctx, http.MethodPatch, fmt.Sprintf("/api/experimental/organizations/%s/mcp-servers/%s/acl", organizationID, id), req)
res, err := c.Request(ctx, http.MethodPatch, fmt.Sprintf("/api/v2/organizations/%s/mcp-servers/%s/acl", organizationID, id), req)
if err != nil {
return err
}
Expand All @@ -267,7 +267,7 @@ func (c *Client) UpdateMCPServerConfigACL(ctx context.Context, organizationID, i
}

func (c *Client) CreateMCPServerConfig(ctx context.Context, organizationID uuid.UUID, req CreateMCPServerConfigRequest) (MCPServerConfig, error) {
res, err := c.Request(ctx, http.MethodPost, fmt.Sprintf("/api/experimental/organizations/%s/mcp-servers", organizationID), req)
res, err := c.Request(ctx, http.MethodPost, fmt.Sprintf("/api/v2/organizations/%s/mcp-servers", organizationID), req)
if err != nil {
return MCPServerConfig{}, err
}
Expand All @@ -280,7 +280,7 @@ func (c *Client) CreateMCPServerConfig(ctx context.Context, organizationID uuid.
}

func (c *Client) UpdateMCPServerConfig(ctx context.Context, organizationID, id uuid.UUID, req UpdateMCPServerConfigRequest) (MCPServerConfig, error) {
res, err := c.Request(ctx, http.MethodPatch, fmt.Sprintf("/api/experimental/organizations/%s/mcp-servers/%s", organizationID, id), req)
res, err := c.Request(ctx, http.MethodPatch, fmt.Sprintf("/api/v2/organizations/%s/mcp-servers/%s", organizationID, id), req)
if err != nil {
return MCPServerConfig{}, err
}
Expand All @@ -293,7 +293,7 @@ func (c *Client) UpdateMCPServerConfig(ctx context.Context, organizationID, id u
}

func (c *Client) DeleteMCPServerConfig(ctx context.Context, organizationID, id uuid.UUID) error {
res, err := c.Request(ctx, http.MethodDelete, fmt.Sprintf("/api/experimental/organizations/%s/mcp-servers/%s", organizationID, id), nil)
res, err := c.Request(ctx, http.MethodDelete, fmt.Sprintf("/api/v2/organizations/%s/mcp-servers/%s", organizationID, id), nil)
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions codersdk/toolsdk/chats_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@ func TestChatTools(t *testing.T) {
getSeen := make(chan struct{})
getRelease := make(chan struct{})
transport := &signalPathTransport{
path: "/api/experimental/chats/" + running.ID.String(),
path: "/api/v2/chats/" + running.ID.String(),
seen: getSeen,
release: getRelease,
}
Expand Down Expand Up @@ -592,7 +592,7 @@ func TestChatTools(t *testing.T) {
sharedAwaitClient := codersdk.New(sharedClient.URL)
sharedAwaitClient.SetSessionToken(sharedClient.SessionToken())
sharedAwaitClient.HTTPClient = &http.Client{Transport: &signalPathTransport{
path: "/api/experimental/chats/" + sharedRunning.ID.String(),
path: "/api/v2/chats/" + sharedRunning.ID.String(),
seen: sharedGetSeen,
release: sharedGetRelease,
}}
Expand Down
2 changes: 1 addition & 1 deletion enterprise/coderd/x/chatd/chatd.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ func buildRelayURL(address string, chatID uuid.UUID) (string, error) {
default:
return "", xerrors.Errorf("unsupported relay address scheme %q", u.Scheme)
}
u.Path = "/api/experimental/chats/" + chatID.String() + "/stream/parts"
u.Path = "/api/v2/chats/" + chatID.String() + "/stream/parts"
u.RawQuery = ""
return u.String(), nil
}
Expand Down
2 changes: 1 addition & 1 deletion enterprise/coderd/x/chatd/chatd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ func TestStreamPartsDialerDialsPartsEndpoint(t *testing.T) {
received := make(chan http.Header, 1)

server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
require.Equal(t, "/api/experimental/chats/"+chatID.String()+"/stream/parts", r.URL.Path)
require.Equal(t, "/api/v2/chats/"+chatID.String()+"/stream/parts", r.URL.Path)
require.Empty(t, r.URL.RawQuery)
received <- r.Header.Clone()
conn, err := websocket.Accept(rw, r, nil)
Expand Down
12 changes: 6 additions & 6 deletions site/src/api/typesGenerated.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading