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:
@@ -59,6 +59,7 @@ func NewServiceContext(c config.Config) *ServiceContext {
|
||||
textExtractor := newTextExtractor(c)
|
||||
service := application.NewDesignService(repo, agentRunner, assets, researcher, textExtractor, creativeAgent)
|
||||
service.SetBackgroundRemover(newBackgroundRemover(c))
|
||||
service.SetLayeredDocumentGenerator(newLayeredDocumentGenerator(c))
|
||||
service.SetObjectRecognizer(newObjectRecognizer(c))
|
||||
if mockupAnalyzer, ok := creativeAgent.(design.MockupModelAnalyzer); ok {
|
||||
service.SetMockupModelAnalyzer(mockupAnalyzer)
|
||||
@@ -317,6 +318,22 @@ func newImageGenerator(c config.Config) piagent.ImageGenerator {
|
||||
return client
|
||||
}
|
||||
|
||||
func newLayeredDocumentGenerator(c config.Config) design.LayeredDocumentGenerator {
|
||||
opts := c.Agent.Image
|
||||
apiKey := resolveImageAPIKey(opts)
|
||||
client := piagent.NewImageClient(piagent.ImageClientOptions{
|
||||
BaseURL: opts.BaseURL,
|
||||
APIKey: apiKey,
|
||||
InputImageTransport: opts.InputImageTransport,
|
||||
TimeoutSeconds: opts.TimeoutSeconds,
|
||||
ResponseHeaderTimeoutSeconds: opts.ResponseHeaderTimeoutSeconds,
|
||||
})
|
||||
if client == nil {
|
||||
return nil
|
||||
}
|
||||
return client
|
||||
}
|
||||
|
||||
func newTextExtractor(c config.Config) design.TextExtractor {
|
||||
opts := c.Agent.Text
|
||||
switch opts.Driver {
|
||||
|
||||
Reference in New Issue
Block a user