mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat(codersdk): add toolsdk and replace existing mcp server tool impl (#17343)
- Refactors existing `mcp` package to use `kylecarbs/aisdk-go` and moves to `codersdk/toolsdk` package. - Updates existing MCP server implementation to use `codersdk/toolsdk` Co-authored-by: Kyle Carberry <kyle@coder.com>
This commit is contained in:
co-authored by
Kyle Carberry
parent
2c573dc023
commit
1235550637
@@ -287,23 +287,25 @@ type TemplateVersionResponse struct {
|
||||
}
|
||||
|
||||
type TemplateVersionBuilder struct {
|
||||
t testing.TB
|
||||
db database.Store
|
||||
seed database.TemplateVersion
|
||||
fileID uuid.UUID
|
||||
ps pubsub.Pubsub
|
||||
resources []*sdkproto.Resource
|
||||
params []database.TemplateVersionParameter
|
||||
promote bool
|
||||
t testing.TB
|
||||
db database.Store
|
||||
seed database.TemplateVersion
|
||||
fileID uuid.UUID
|
||||
ps pubsub.Pubsub
|
||||
resources []*sdkproto.Resource
|
||||
params []database.TemplateVersionParameter
|
||||
promote bool
|
||||
autoCreateTemplate bool
|
||||
}
|
||||
|
||||
// TemplateVersion generates a template version and optionally a parent
|
||||
// template if no template ID is set on the seed.
|
||||
func TemplateVersion(t testing.TB, db database.Store) TemplateVersionBuilder {
|
||||
return TemplateVersionBuilder{
|
||||
t: t,
|
||||
db: db,
|
||||
promote: true,
|
||||
t: t,
|
||||
db: db,
|
||||
promote: true,
|
||||
autoCreateTemplate: true,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,6 +339,13 @@ func (t TemplateVersionBuilder) Params(ps ...database.TemplateVersionParameter)
|
||||
return t
|
||||
}
|
||||
|
||||
func (t TemplateVersionBuilder) SkipCreateTemplate() TemplateVersionBuilder {
|
||||
// nolint: revive // returns modified struct
|
||||
t.autoCreateTemplate = false
|
||||
t.promote = false
|
||||
return t
|
||||
}
|
||||
|
||||
func (t TemplateVersionBuilder) Do() TemplateVersionResponse {
|
||||
t.t.Helper()
|
||||
|
||||
@@ -347,7 +356,7 @@ func (t TemplateVersionBuilder) Do() TemplateVersionResponse {
|
||||
t.fileID = takeFirst(t.fileID, uuid.New())
|
||||
|
||||
var resp TemplateVersionResponse
|
||||
if t.seed.TemplateID.UUID == uuid.Nil {
|
||||
if t.seed.TemplateID.UUID == uuid.Nil && t.autoCreateTemplate {
|
||||
resp.Template = dbgen.Template(t.t, t.db, database.Template{
|
||||
ActiveVersionID: t.seed.ID,
|
||||
OrganizationID: t.seed.OrganizationID,
|
||||
@@ -360,16 +369,14 @@ func (t TemplateVersionBuilder) Do() TemplateVersionResponse {
|
||||
}
|
||||
|
||||
version := dbgen.TemplateVersion(t.t, t.db, t.seed)
|
||||
|
||||
// Always make this version the active version. We can easily
|
||||
// add a conditional to the builder to opt out of this when
|
||||
// necessary.
|
||||
err := t.db.UpdateTemplateActiveVersionByID(ownerCtx, database.UpdateTemplateActiveVersionByIDParams{
|
||||
ID: t.seed.TemplateID.UUID,
|
||||
ActiveVersionID: t.seed.ID,
|
||||
UpdatedAt: dbtime.Now(),
|
||||
})
|
||||
require.NoError(t.t, err)
|
||||
if t.promote {
|
||||
err := t.db.UpdateTemplateActiveVersionByID(ownerCtx, database.UpdateTemplateActiveVersionByIDParams{
|
||||
ID: t.seed.TemplateID.UUID,
|
||||
ActiveVersionID: t.seed.ID,
|
||||
UpdatedAt: dbtime.Now(),
|
||||
})
|
||||
require.NoError(t.t, err)
|
||||
}
|
||||
|
||||
payload, err := json.Marshal(provisionerdserver.TemplateVersionImportJob{
|
||||
TemplateVersionID: t.seed.ID,
|
||||
|
||||
Reference in New Issue
Block a user