* Build the CommandContext handed to extracted slash-command handlers. * Arrow functions capture `this` so handlers read live engine state at call * time; cwd/sessionId/defaultModel are effectively immutable for the session.
()
| 765 | (this.totalUsage.cache_creation_input_tokens ?? 0) + (value.usage.cache_creation_input_tokens ?? 0), |
| 766 | cache_read_input_tokens: |
| 767 | (this.totalUsage.cache_read_input_tokens ?? 0) + (value.usage.cache_read_input_tokens ?? 0), |
| 768 | }; |
| 769 | this.lastCallUsage = { ...value.lastCallUsage }; |
| 770 | this.usageAnchorIndex = this.messages.length > 0 ? this.messages.length - 1 : -1; |
| 771 | yield { type: "messages_updated", messages: [...this.messages] }; |
| 772 | yield { |
| 773 | type: "usage_updated", |
| 774 | totalUsage: { ...this.totalUsage }, |
| 775 | turnUsage: { ...value.usage }, |
| 776 | lastCallUsage: { ...this.lastCallUsage }, |
| 777 | }; |
| 778 | return { handled: true, reason: value.reason }; |
| 779 | } |
| 780 | |
| 781 | yield value; |
| 782 | |
| 783 | switch (value.type) { |
| 784 | case "assistant_message": |
| 785 | case "tool_result_message": |
| 786 | this.messages = [...this.messages, value.message]; |
| 787 | yield { type: "messages_updated", messages: [...this.messages] }; |
| 788 | break; |
| 789 | default: |
| 790 | break; |
| 791 | } |
| 792 | } |
| 793 | } finally { |
| 794 | this.abortController = null; |
no test coverage detected