(toolResult: unknown)
| 26 | * 兼容两种形态:adapter 注入后的 `details.evidence`,以及工具原始返回的 `data.evidence`。 |
| 27 | */ |
| 28 | export function extractEvidencePayload(toolResult: unknown): ChatEvidencePayload | null { |
| 29 | if (!isRecord(toolResult)) return null |
| 30 | |
| 31 | const details = isRecord(toolResult.details) ? toolResult.details : null |
| 32 | if (details && isEvidencePayload(details.evidence)) return details.evidence |
| 33 | |
| 34 | const data = isRecord(toolResult.data) ? toolResult.data : null |
| 35 | if (data && isEvidencePayload(data.evidence)) return data.evidence |
| 36 | |
| 37 | if (isEvidencePayload(toolResult.evidence)) return toolResult.evidence |
| 38 | |
| 39 | return null |
| 40 | } |
| 41 | |
| 42 | export function toEvidenceContentBlock(payload: ChatEvidencePayload): EvidenceContentBlock { |
| 43 | return { type: 'evidence', evidence: payload } |
no test coverage detected