Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit859e94d

Browse files
authored
fix: deprecate codersdk.AITaskPromptParameterName and reduce usage (#20501)
Depends oncoder/sqlc#1Fixescoder/internal#979Updatescoder/internal#973
1 parent50749d1 commit859e94d

File tree

13 files changed

+164
-448
lines changed

13 files changed

+164
-448
lines changed

‎cli/exp_task_list_test.go‎

Lines changed: 10 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package cli_test
22

33
import (
44
"bytes"
5-
"context"
65
"database/sql"
76
"encoding/json"
87
"io"
@@ -19,10 +18,7 @@ import (
1918
"github.com/coder/coder/v2/cli/clitest"
2019
"github.com/coder/coder/v2/coderd/coderdtest"
2120
"github.com/coder/coder/v2/coderd/database"
22-
"github.com/coder/coder/v2/coderd/database/dbauthz"
2321
"github.com/coder/coder/v2/coderd/database/dbfake"
24-
"github.com/coder/coder/v2/coderd/database/dbgen"
25-
"github.com/coder/coder/v2/coderd/database/dbtime"
2622
"github.com/coder/coder/v2/coderd/util/slice"
2723
"github.com/coder/coder/v2/codersdk"
2824
"github.com/coder/coder/v2/pty/ptytest"
@@ -43,76 +39,22 @@ func makeAITask(t *testing.T, db database.Store, orgID, adminID, ownerID uuid.UU
4339
},
4440
}).Do()
4541

46-
ws:= database.WorkspaceTable{
42+
build:=dbfake.WorkspaceBuild(t,db, database.WorkspaceTable{
4743
OrganizationID:orgID,
4844
OwnerID:ownerID,
4945
TemplateID:tv.Template.ID,
50-
}
51-
build:=dbfake.WorkspaceBuild(t,db,ws).
46+
}).
5247
Seed(database.WorkspaceBuild{
5348
TemplateVersionID:tv.TemplateVersion.ID,
5449
Transition:transition,
55-
}).WithAgent().Do()
56-
dbgen.WorkspaceBuildParameters(t,db, []database.WorkspaceBuildParameter{
57-
{
58-
WorkspaceBuildID:build.Build.ID,
59-
Name:codersdk.AITaskPromptParameterName,
60-
Value:prompt,
61-
},
62-
})
63-
agents,err:=db.GetWorkspaceAgentsByWorkspaceAndBuildNumber(
64-
dbauthz.AsSystemRestricted(context.Background()),
65-
database.GetWorkspaceAgentsByWorkspaceAndBuildNumberParams{
66-
WorkspaceID:build.Workspace.ID,
67-
BuildNumber:build.Build.BuildNumber,
68-
},
69-
)
70-
require.NoError(t,err)
71-
require.NotEmpty(t,agents)
72-
agentID:=agents[0].ID
73-
74-
// Create a workspace app and set it as the sidebar app.
75-
app:=dbgen.WorkspaceApp(t,db, database.WorkspaceApp{
76-
AgentID:agentID,
77-
Slug:"task-sidebar",
78-
DisplayName:"Task Sidebar",
79-
External:false,
80-
})
81-
82-
// Update build flags to reference the sidebar app and HasAITask=true.
83-
err=db.UpdateWorkspaceBuildFlagsByID(
84-
dbauthz.AsSystemRestricted(context.Background()),
85-
database.UpdateWorkspaceBuildFlagsByIDParams{
86-
ID:build.Build.ID,
87-
HasAITask: sql.NullBool{Bool:true,Valid:true},
88-
HasExternalAgent: sql.NullBool{Bool:false,Valid:false},
89-
SidebarAppID: uuid.NullUUID{UUID:app.ID,Valid:true},
90-
UpdatedAt:build.Build.UpdatedAt,
91-
},
92-
)
93-
require.NoError(t,err)
94-
95-
// Create a task record in the tasks table for the new data model.
96-
task:=dbgen.Task(t,db, database.TaskTable{
97-
OrganizationID:orgID,
98-
OwnerID:ownerID,
99-
Name:build.Workspace.Name,
100-
WorkspaceID: uuid.NullUUID{UUID:build.Workspace.ID,Valid:true},
101-
TemplateVersionID:tv.TemplateVersion.ID,
102-
TemplateParameters: []byte("{}"),
103-
Prompt:prompt,
104-
CreatedAt:dbtime.Now(),
105-
})
106-
107-
// Link the task to the workspace app.
108-
dbgen.TaskWorkspaceApp(t,db, database.TaskWorkspaceApp{
109-
TaskID:task.ID,
110-
WorkspaceBuildNumber:build.Build.BuildNumber,
111-
WorkspaceAgentID: uuid.NullUUID{UUID:agentID,Valid:true},
112-
WorkspaceAppID: uuid.NullUUID{UUID:app.ID,Valid:true},
113-
})
114-
115-
returntask
50+
}).
51+
WithAgent().
52+
WithTask(database.TaskTable{
53+
Prompt:prompt,
54+
},nil).
55+
Do()
56+
57+
returnbuild.Task
11658
}
11759

11860
funcTestExpTaskList(t*testing.T) {

‎cli/exp_task_test.go‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,6 @@ func createAITaskTemplate(t *testing.T, client *codersdk.Client, orgID uuid.UUID
293293
{
294294
Type:&proto.Response_Plan{
295295
Plan:&proto.PlanComplete{
296-
Parameters: []*proto.RichParameter{{Name:codersdk.AITaskPromptParameterName,Type:"string"}},
297296
HasAiTasks:true,
298297
},
299298
},
@@ -328,9 +327,7 @@ func createAITaskTemplate(t *testing.T, client *codersdk.Client, orgID uuid.UUID
328327
},
329328
AiTasks: []*proto.AITask{
330329
{
331-
SidebarApp:&proto.AITaskSidebarApp{
332-
Id:taskAppID.String(),
333-
},
330+
AppId:taskAppID.String(),
334331
},
335332
},
336333
},

‎coderd/aitasks.go‎

Lines changed: 22 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"net/http"
88
"net/url"
99
"slices"
10-
"strings"
1110
"time"
1211

1312
"github.com/google/uuid"
@@ -24,62 +23,12 @@ import (
2423
"github.com/coder/coder/v2/coderd/rbac/policy"
2524
"github.com/coder/coder/v2/coderd/searchquery"
2625
"github.com/coder/coder/v2/coderd/taskname"
26+
"github.com/coder/coder/v2/coderd/util/slice"
2727
"github.com/coder/coder/v2/codersdk"
2828

2929
aiagentapi"github.com/coder/agentapi-sdk-go"
3030
)
3131

32-
// This endpoint is experimental and not guaranteed to be stable, so we're not
33-
// generating public-facing documentation for it.
34-
func (api*API)aiTasksPrompts(rw http.ResponseWriter,r*http.Request) {
35-
ctx:=r.Context()
36-
37-
buildIDsParam:=r.URL.Query().Get("build_ids")
38-
ifbuildIDsParam=="" {
39-
httpapi.Write(ctx,rw,http.StatusBadRequest, codersdk.Response{
40-
Message:"build_ids query parameter is required",
41-
})
42-
return
43-
}
44-
45-
// Parse build IDs
46-
buildIDStrings:=strings.Split(buildIDsParam,",")
47-
buildIDs:=make([]uuid.UUID,0,len(buildIDStrings))
48-
for_,idStr:=rangebuildIDStrings {
49-
id,err:=uuid.Parse(strings.TrimSpace(idStr))
50-
iferr!=nil {
51-
httpapi.Write(ctx,rw,http.StatusBadRequest, codersdk.Response{
52-
Message:fmt.Sprintf("Invalid build ID format: %s",idStr),
53-
Detail:err.Error(),
54-
})
55-
return
56-
}
57-
buildIDs=append(buildIDs,id)
58-
}
59-
60-
parameters,err:=api.Database.GetWorkspaceBuildParametersByBuildIDs(ctx,buildIDs)
61-
iferr!=nil {
62-
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
63-
Message:"Internal error fetching workspace build parameters.",
64-
Detail:err.Error(),
65-
})
66-
return
67-
}
68-
69-
promptsByBuildID:=make(map[string]string,len(parameters))
70-
for_,param:=rangeparameters {
71-
ifparam.Name!=codersdk.AITaskPromptParameterName {
72-
continue
73-
}
74-
buildID:=param.WorkspaceBuildID.String()
75-
promptsByBuildID[buildID]=param.Value
76-
}
77-
78-
httpapi.Write(ctx,rw,http.StatusOK, codersdk.AITasksPromptsResponse{
79-
Prompts:promptsByBuildID,
80-
})
81-
}
82-
8332
// @Summary Create a new AI task
8433
// @Description: EXPERIMENTAL: this endpoint is experimental and not guaranteed to be stable.
8534
// @ID create-task
@@ -174,13 +123,31 @@ func (api *API) tasksCreate(rw http.ResponseWriter, r *http.Request) {
174123
}
175124
}
176125

126+
// Check if the template defines the AI Prompt parameter.
127+
templateParams,err:=api.Database.GetTemplateVersionParameters(ctx,req.TemplateVersionID)
128+
iferr!=nil {
129+
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
130+
Message:"Internal error fetching template parameters.",
131+
Detail:err.Error(),
132+
})
133+
return
134+
}
135+
136+
varrichParams []codersdk.WorkspaceBuildParameter
137+
if_,hasAIPromptParam:=slice.Find(templateParams,func(param database.TemplateVersionParameter)bool {
138+
returnparam.Name==codersdk.AITaskPromptParameterName
139+
});hasAIPromptParam {
140+
// Only add the AI Prompt parameter if the template defines it.
141+
richParams= []codersdk.WorkspaceBuildParameter{
142+
{Name:codersdk.AITaskPromptParameterName,Value:req.Input},
143+
}
144+
}
145+
177146
createReq:= codersdk.CreateWorkspaceRequest{
178147
Name:taskName,
179148
TemplateVersionID:req.TemplateVersionID,
180149
TemplateVersionPresetID:req.TemplateVersionPresetID,
181-
RichParameterValues: []codersdk.WorkspaceBuildParameter{
182-
{Name:codersdk.AITaskPromptParameterName,Value:req.Input},
183-
},
150+
RichParameterValues:richParams,
184151
}
185152

186153
varownerworkspaceOwner

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp