feat(server): wire quality/count params and layered document generator
Map imageQuality/imageCount and output_format across the HTTP and WebSocket handlers, pass them into the design service calls, and register the layered document generator in the service context. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -57,6 +57,8 @@ type socketStartData struct {
|
||||
EnableWebSearch bool `json:"enable_web_search"`
|
||||
ImageModel string `json:"image_model"`
|
||||
ImageSize string `json:"image_size"`
|
||||
ImageQuality string `json:"image_quality"`
|
||||
ImageCount int `json:"image_count"`
|
||||
Mode string `json:"mode"`
|
||||
}
|
||||
|
||||
@@ -177,6 +179,8 @@ func (data socketStartData) toDomainChat(projectID string) design.AgentChatReque
|
||||
EnableWebSearch: data.EnableWebSearch || hasSocketPreferredToolCategory(data.ToolConfig.PreferToolCategories, "SEARCH"),
|
||||
ImageModel: data.ImageModel,
|
||||
ImageSize: data.ImageSize,
|
||||
ImageQuality: data.ImageQuality,
|
||||
ImageCount: data.ImageCount,
|
||||
Mode: data.Mode,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ func (l *CreateProjectAsyncLogic) CreateProjectAsync(req *types.CreateProjectReq
|
||||
return nil, err
|
||||
}
|
||||
|
||||
project, err := l.svcCtx.DesignService.CreateProjectAsync(l.ctx, req.Title, req.Prompt, req.ImageModel, req.ImageSize, req.EnableWebSearch)
|
||||
project, err := l.svcCtx.DesignService.CreateProjectAsync(l.ctx, req.Title, req.Prompt, req.ImageModel, req.ImageSize, req.ImageQuality, int(req.ImageCount), req.EnableWebSearch)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ func (l *CreateProjectLogic) CreateProject(req *types.CreateProjectRequest) (res
|
||||
return nil, err
|
||||
}
|
||||
|
||||
project, err := l.svcCtx.DesignService.CreateProject(l.ctx, req.Title, req.Prompt, req.ImageModel, req.ImageSize, req.EnableWebSearch)
|
||||
project, err := l.svcCtx.DesignService.CreateProject(l.ctx, req.Title, req.Prompt, req.ImageModel, req.ImageSize, req.ImageQuality, int(req.ImageCount), req.EnableWebSearch)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ func (l *GenerateProjectAsyncLogic) GenerateProjectAsync(req *types.GenerateRequ
|
||||
return nil, err
|
||||
}
|
||||
|
||||
project, err := l.svcCtx.DesignService.GenerateAsync(l.ctx, req.Id, req.Prompt, req.Mode, req.ImageModel, req.ImageSize)
|
||||
project, err := l.svcCtx.DesignService.GenerateAsync(l.ctx, req.Id, req.Prompt, req.Mode, req.ImageModel, req.ImageSize, req.ImageQuality, int(req.ImageCount))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ func (l *GenerateProjectLogic) GenerateProject(req *types.GenerateRequest) (resp
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result, err := l.svcCtx.DesignService.Generate(l.ctx, req.Id, req.Prompt, req.Mode, req.ImageModel, req.ImageSize)
|
||||
result, err := l.svcCtx.DesignService.Generate(l.ctx, req.Id, req.Prompt, req.Mode, req.ImageModel, req.ImageSize, req.ImageQuality, int(req.ImageCount))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -33,25 +33,27 @@ func toGeneratorTaskResponse(task design.GeneratorTask) *types.GeneratorTaskResp
|
||||
|
||||
func toAPIGeneratorTaskInputArgs(input design.GeneratorTaskInputArgs) types.GeneratorTaskInputArgs {
|
||||
return types.GeneratorTaskInputArgs{
|
||||
AspectRatio: input.AspectRatio,
|
||||
Image: append([]string(nil), input.Image...),
|
||||
ImageUrl: input.ImageURL,
|
||||
Prompt: input.Prompt,
|
||||
Resolution: input.Resolution,
|
||||
SrcBox: toAPINormalizedBoxPtr(input.SrcBox),
|
||||
DstBox: toAPINormalizedBoxPtr(input.DstBox),
|
||||
AspectRatio: input.AspectRatio,
|
||||
Image: append([]string(nil), input.Image...),
|
||||
ImageUrl: input.ImageURL,
|
||||
OutputFormat: input.OutputFormat,
|
||||
Prompt: input.Prompt,
|
||||
Resolution: input.Resolution,
|
||||
SrcBox: toAPINormalizedBoxPtr(input.SrcBox),
|
||||
DstBox: toAPINormalizedBoxPtr(input.DstBox),
|
||||
}
|
||||
}
|
||||
|
||||
func toDomainGeneratorTaskInputArgs(input types.GeneratorTaskInputArgs) design.GeneratorTaskInputArgs {
|
||||
return design.GeneratorTaskInputArgs{
|
||||
AspectRatio: input.AspectRatio,
|
||||
Image: append([]string(nil), input.Image...),
|
||||
ImageURL: input.ImageUrl,
|
||||
Prompt: input.Prompt,
|
||||
Resolution: input.Resolution,
|
||||
SrcBox: toDomainNormalizedBoxPtr(input.SrcBox),
|
||||
DstBox: toDomainNormalizedBoxPtr(input.DstBox),
|
||||
AspectRatio: input.AspectRatio,
|
||||
Image: append([]string(nil), input.Image...),
|
||||
ImageURL: input.ImageUrl,
|
||||
OutputFormat: input.OutputFormat,
|
||||
Prompt: input.Prompt,
|
||||
Resolution: input.Resolution,
|
||||
SrcBox: toDomainNormalizedBoxPtr(input.SrcBox),
|
||||
DstBox: toDomainNormalizedBoxPtr(input.DstBox),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -546,6 +548,8 @@ func toDomainAgentChat(req *types.AgentChatRequest) design.AgentChatRequest {
|
||||
EnableWebSearch: req.EnableWebSearch || hasPreferredToolCategory(req.ToolConfig.PreferToolCategories.Search),
|
||||
ImageModel: req.ImageModel,
|
||||
ImageSize: req.ImageSize,
|
||||
ImageQuality: req.ImageQuality,
|
||||
ImageCount: int(req.ImageCount),
|
||||
Mode: req.Mode,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user