mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-17 02:14:09 +00:00
fix(media): use absolute paths and relative URLs for WS media delivery
- FilesHandler now serves files by absolute path (auth-token protected) instead of requiring a workspace root, supporting multiple agent workspaces - mediaToMarkdown generates relative URLs (/v1/files/...) instead of absolute http://host:port URLs so images work from any client origin - Deduplicate media collection in agent loop: prefer result.Media over MEDIA: prefix parsing to prevent duplicate images
This commit is contained in:
1 parent
c1962e4659
commit
a53f3e092f
4 files changed
+44
-53
No files matched your search
+14
-10
@@ -687,13 +687,15 @@ func (l *Loop) runLoop(ctx context.Context, req RunRequest) (*RunResult, error)
|
||||
|
||||
l.scanWebToolResult(tc.Name, result)
|
||||
|
||||
// Collect MEDIA: paths from tool results
|
||||
if mr := parseMediaResult(result.ForLLM); mr != nil {
|
||||
// Collect MEDIA: paths from tool results.
|
||||
// Prefer result.Media (explicit) over ForLLM MEDIA: prefix (legacy) to avoid duplicates.
|
||||
if len(result.Media) > 0 {
|
||||
for _, p := range result.Media {
|
||||
mediaResults = append(mediaResults, MediaResult{Path: p, ContentType: mimeFromExt(filepath.Ext(p))})
|
||||
}
|
||||
} else if mr := parseMediaResult(result.ForLLM); mr != nil {
|
||||
mediaResults = append(mediaResults, *mr)
|
||||
}
|
||||
for _, p := range result.Media {
|
||||
mediaResults = append(mediaResults, MediaResult{Path: p, ContentType: mimeFromExt(filepath.Ext(p))})
|
||||
}
|
||||
if result.Deliverable != "" {
|
||||
deliverables = append(deliverables, result.Deliverable)
|
||||
}
|
||||
@@ -820,13 +822,15 @@ func (l *Loop) runLoop(ctx context.Context, req RunRequest) (*RunResult, error)
|
||||
|
||||
l.scanWebToolResult(r.tc.Name, r.result)
|
||||
|
||||
// Collect MEDIA: paths from tool results
|
||||
if mr := parseMediaResult(r.result.ForLLM); mr != nil {
|
||||
// Collect MEDIA: paths from tool results.
|
||||
// Prefer result.Media (explicit) over ForLLM MEDIA: prefix (legacy) to avoid duplicates.
|
||||
if len(r.result.Media) > 0 {
|
||||
for _, p := range r.result.Media {
|
||||
mediaResults = append(mediaResults, MediaResult{Path: p, ContentType: mimeFromExt(filepath.Ext(p))})
|
||||
}
|
||||
} else if mr := parseMediaResult(r.result.ForLLM); mr != nil {
|
||||
mediaResults = append(mediaResults, *mr)
|
||||
}
|
||||
for _, p := range r.result.Media {
|
||||
mediaResults = append(mediaResults, MediaResult{Path: p, ContentType: mimeFromExt(filepath.Ext(p))})
|
||||
}
|
||||
if r.result.Deliverable != "" {
|
||||
deliverables = append(deliverables, r.result.Deliverable)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user