(rows: OpenCodeMessageRow[])
| 248 | } |
| 249 | |
| 250 | function extractModel(rows: OpenCodeMessageRow[]): { |
| 251 | provider: string; |
| 252 | modelId: string; |
| 253 | } { |
| 254 | for (const row of rows) { |
| 255 | try { |
| 256 | const data = parseJsonObject<OpenCodeMessageData>(row.data); |
| 257 | const provider = data.providerID ?? data.model?.providerID; |
| 258 | const modelId = data.modelID ?? data.model?.modelID; |
| 259 | if (provider && modelId) return { provider, modelId }; |
| 260 | } catch { |
| 261 | // Ignore malformed rows; conversion below will surface concrete row errors. |
| 262 | } |
| 263 | } |
| 264 | return { provider: DEFAULT_PROVIDER, modelId: DEFAULT_MODEL }; |
| 265 | } |
| 266 | |
| 267 | function normalizeOpenCodeTool(part: OpenCodePartData): { |
| 268 | callId: string; |
no test coverage detected