sanitize.ts 1.0 KB

12345678910111213141516171819202122232425262728
  1. import type { Part } from "@opencode-ai/sdk/client"
  2. export const sanitize = (text: string | undefined, remove?: RegExp) => (remove ? text?.replace(remove, "") : text) ?? ""
  3. export const sanitizePart = (part: Part, remove: RegExp) => {
  4. if (part.type === "text") {
  5. part.text = sanitize(part.text, remove)
  6. } else if (part.type === "reasoning") {
  7. part.text = sanitize(part.text, remove)
  8. } else if (part.type === "tool") {
  9. if (part.state.status === "completed" || part.state.status === "error") {
  10. for (const key in part.state.metadata) {
  11. if (typeof part.state.metadata[key] === "string") {
  12. part.state.metadata[key] = sanitize(part.state.metadata[key] as string, remove)
  13. }
  14. }
  15. for (const key in part.state.input) {
  16. if (typeof part.state.input[key] === "string") {
  17. part.state.input[key] = sanitize(part.state.input[key] as string, remove)
  18. }
  19. }
  20. if ("error" in part.state) {
  21. part.state.error = sanitize(part.state.error as string, remove)
  22. }
  23. }
  24. }
  25. return part
  26. }