(state, message)
| 488 | } |
| 489 | |
| 490 | function applyTurnNotification(state, message) { |
| 491 | switch (message.method) { |
| 492 | case "thread/started": |
| 493 | registerThread(state, message.params.thread.id, { |
| 494 | threadName: message.params.thread.name, |
| 495 | name: message.params.thread.name, |
| 496 | agentNickname: message.params.thread.agentNickname, |
| 497 | agentRole: message.params.thread.agentRole |
| 498 | }); |
| 499 | break; |
| 500 | case "thread/name/updated": |
| 501 | registerThread(state, message.params.threadId, { |
| 502 | threadName: message.params.threadName ?? null |
| 503 | }); |
| 504 | break; |
| 505 | case "turn/started": |
| 506 | registerThread(state, message.params.threadId); |
| 507 | state.threadTurnIds.set(message.params.threadId, message.params.turn.id); |
| 508 | if ((message.params.threadId ?? null) !== state.threadId) { |
| 509 | state.activeSubagentTurns.add(message.params.threadId); |
| 510 | } |
| 511 | emitProgress( |
| 512 | state.onProgress, |
| 513 | `Turn started (${message.params.turn.id}).`, |
| 514 | "starting", |
| 515 | (message.params.threadId ?? null) === state.threadId |
| 516 | ? { |
| 517 | threadId: message.params.threadId ?? null, |
| 518 | turnId: message.params.turn.id ?? null |
| 519 | } |
| 520 | : {} |
| 521 | ); |
| 522 | break; |
| 523 | case "item/started": |
| 524 | recordItem(state, message.params.item, "started", message.params.threadId ?? null); |
| 525 | { |
| 526 | const update = describeStartedItem(state, message.params.item); |
| 527 | emitProgress(state.onProgress, update?.message, update?.phase ?? null); |
| 528 | } |
| 529 | break; |
| 530 | case "item/completed": |
| 531 | recordItem(state, message.params.item, "completed", message.params.threadId ?? null); |
| 532 | { |
| 533 | const update = describeCompletedItem(state, message.params.item); |
| 534 | emitProgress(state.onProgress, update?.message, update?.phase ?? null); |
| 535 | } |
| 536 | break; |
| 537 | case "error": |
| 538 | state.error = message.params.error; |
| 539 | emitProgress(state.onProgress, `Codex error: ${message.params.error.message}`, "failed"); |
| 540 | break; |
| 541 | case "turn/completed": |
| 542 | if ((message.params.threadId ?? null) !== state.threadId) { |
| 543 | state.activeSubagentTurns.delete(message.params.threadId); |
| 544 | scheduleInferredCompletion(state); |
| 545 | break; |
| 546 | } |
| 547 | emitProgress( |
no test coverage detected