FilterContextParts keeps only context-file and skill parts from parts. When keepEmptyContextFiles is false, context-file parts with empty content are dropped. When keepEmptyContextFiles is true, empty context-file parts are preserved. revive:disable-next-line:flag-parameter // Required by shared hel
( parts []codersdk.ChatMessagePart, keepEmptyContextFiles bool, )
| 24 | // context-file parts are preserved. |
| 25 | // revive:disable-next-line:flag-parameter // Required by shared helper callers. |
| 26 | func FilterContextParts( |
| 27 | parts []codersdk.ChatMessagePart, |
| 28 | keepEmptyContextFiles bool, |
| 29 | ) []codersdk.ChatMessagePart { |
| 30 | var filtered []codersdk.ChatMessagePart |
| 31 | for _, part := range parts { |
| 32 | switch part.Type { |
| 33 | case codersdk.ChatMessagePartTypeContextFile: |
| 34 | if !keepEmptyContextFiles && part.ContextFileContent == "" { |
| 35 | continue |
| 36 | } |
| 37 | case codersdk.ChatMessagePartTypeSkill: |
| 38 | default: |
| 39 | continue |
| 40 | } |
| 41 | filtered = append(filtered, part) |
| 42 | } |
| 43 | return filtered |
| 44 | } |
| 45 | |
| 46 | // CollectContextPartsFromMessages unmarshals chat message content and |
| 47 | // collects the context-file and skill parts it contains. When |
no outgoing calls
no test coverage detected