(toolBlock: ToolContentBlock)
| 333 | } |
| 334 | |
| 335 | function isFailedEditToolBlock(toolBlock: ToolContentBlock): boolean { |
| 336 | const outputRaw = toolBlock.outputRaw as unknown |
| 337 | if (Array.isArray(outputRaw) && outputRaw[0]?.value) { |
| 338 | const value = outputRaw[0].value as Record<string, unknown> |
| 339 | if (hasErrorMessage(value)) return true |
| 340 | } |
| 341 | if (typeof outputRaw === 'object' && outputRaw !== null) { |
| 342 | const rawObj = outputRaw as Record<string, unknown> |
| 343 | if (hasErrorMessage(rawObj)) return true |
| 344 | } |
| 345 | |
| 346 | const outputStr = typeof toolBlock.output === 'string' ? toolBlock.output : '' |
| 347 | const message = extractValueForKey(outputStr, 'message') |
| 348 | const diffFromOutput = |
| 349 | extractValueForKey(outputStr, 'unifiedDiff') || |
| 350 | extractValueForKey(outputStr, 'patch') |
| 351 | return hasFailedEditOutput({ outputStr, message, diffFromOutput }) |
| 352 | } |
| 353 | |
| 354 | function isSuccessfulEditMessage(message: unknown): boolean { |
| 355 | if (typeof message !== 'string') { |
no test coverage detected