* 处理 item.started 事件
(event: CodexEvent)
| 243 | |
| 244 | case 'item.started': |
| 245 | this.handleItemStarted(event); |
| 246 | break; |
| 247 | |
| 248 | case 'item.updated': |
| 249 | this.handleItemUpdated(event); |
| 250 | break; |
| 251 | |
| 252 | case 'turn.completed': |
| 253 | if (!this.turnCompleted && !this.turnFailed) { |
| 254 | if (event.usage) this.handleUsage(event.usage); |
| 255 | this.turnCompleted = true; |
| 256 | for (const listener of [...this.turnCompletedListeners]) listener(); |
| 257 | } |
| 258 | break; |
| 259 | |
| 260 | case 'error': |
| 261 | this.handleError(event.message || 'Unknown error'); |
| 262 | break; |
| 263 | |
| 264 | case 'turn.failed': |
| 265 | if (this.turnCompleted || this.turnFailed) break; |
| 266 | this.turnFailed = true; |
| 267 | this.handleError(event.error?.message || event.message || 'Turn failed'); |
| 268 | for (const listener of [...this.turnFailedListeners]) listener(); |
| 269 | break; |
| 270 | } |
no test coverage detected