MCPcopy Index your code
hub / github.com/coder/coder / latestSubagentAssistantMessage

Function latestSubagentAssistantMessage

coderd/x/chatd/subagent.go:1432–1471  ·  view source on GitHub ↗
(
	ctx context.Context,
	store database.Store,
	chatID uuid.UUID,
)

Source from the content-addressed store, hash-verified

1430}
1431
1432func latestSubagentAssistantMessage(
1433 ctx context.Context,
1434 store database.Store,
1435 chatID uuid.UUID,
1436) (string, error) {
1437 messages, err := store.GetChatMessagesByChatID(ctx, database.GetChatMessagesByChatIDParams{
1438 ChatID: chatID,
1439 AfterID: 0,
1440 })
1441 if err != nil {
1442 return "", xerrors.Errorf("get chat messages: %w", err)
1443 }
1444
1445 sort.Slice(messages, func(i, j int) bool {
1446 if messages[i].CreatedAt.Equal(messages[j].CreatedAt) {
1447 return messages[i].ID < messages[j].ID
1448 }
1449 return messages[i].CreatedAt.Before(messages[j].CreatedAt)
1450 })
1451
1452 for i := len(messages) - 1; i >= 0; i-- {
1453 message := messages[i]
1454 if message.Role != database.ChatMessageRoleAssistant ||
1455 message.Visibility == database.ChatMessageVisibilityModel {
1456 continue
1457 }
1458
1459 content, parseErr := chatprompt.ParseContent(message)
1460 if parseErr != nil {
1461 continue
1462 }
1463 text := strings.TrimSpace(contentBlocksToText(content))
1464 if text == "" {
1465 continue
1466 }
1467 return text, nil
1468 }
1469
1470 return "", nil
1471}
1472
1473// isSubagentDescendant reports whether targetChatID is a descendant
1474// of ancestorChatID by walking up the parent chain from the target.

Callers 1

Calls 5

ParseContentFunction · 0.92
contentBlocksToTextFunction · 0.85
ErrorfMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected