MCPcopy
hub / github.com/dagger/dagger / toolErrorMessage

Function toolErrorMessage

core/mcp.go:1493–1530  ·  view source on GitHub ↗
(err error)

Source from the content-addressed store, hash-verified

1491}
1492
1493func toolErrorMessage(err error) string {
1494 errResponse := err.Error()
1495 // propagate error values to the model
1496 var extErr dagql.ExtendedError
1497 if errors.As(err, &extErr) {
1498 // TODO: return a structured error object instead?
1499 var exts []string
1500 for k, v := range extErr.Extensions() {
1501 if k == "traceparent" || k == "baggage" {
1502 // silence this one
1503 continue
1504 }
1505 var ext strings.Builder
1506 fmt.Fprintf(&ext, "<%s>\n", k)
1507
1508 switch v := v.(type) {
1509 case string:
1510 ext.WriteString(v)
1511 default:
1512 jsonBytes, err := json.Marshal(v)
1513 if err != nil {
1514 fmt.Fprintf(&ext, "error marshalling value: %s", err.Error())
1515 } else {
1516 ext.Write(jsonBytes)
1517 }
1518 }
1519
1520 fmt.Fprintf(&ext, "\n</%s>", k)
1521
1522 exts = append(exts, ext.String())
1523 }
1524 if len(exts) > 0 {
1525 sort.Strings(exts)
1526 errResponse += "\n\n" + strings.Join(exts, "\n\n")
1527 }
1528 }
1529 return errResponse
1530}
1531
1532func (m *MCP) saveTool(srv *dagql.Server) LLMTool {
1533 desc := "Save an output that has been requested by the user."

Callers 2

genMcpToolHandlerMethod · 0.85
CallMethod · 0.85

Calls 5

ExtensionsMethod · 0.95
MarshalMethod · 0.65
WriteMethod · 0.65
StringMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected