(part: ToolPart)
| 276 | } |
| 277 | |
| 278 | function stateUpdatedAt(part: ToolPart) { |
| 279 | if (!("time" in part.state)) { |
| 280 | return Date.now() |
| 281 | } |
| 282 | |
| 283 | const time = part.state.time |
| 284 | if (!("end" in time)) { |
| 285 | return time.start ?? Date.now() |
| 286 | } |
| 287 | |
| 288 | return time.end ?? time.start ?? Date.now() |
| 289 | } |
| 290 | |
| 291 | function metadata(part: ToolPart, key: string) { |
| 292 | return ("metadata" in part.state ? part.state.metadata?.[key] : undefined) ?? part.metadata?.[key] |