()
| 147 | e.signalActivity() |
| 148 | } |
| 149 | |
| 150 | func (e *StreamingToolExecutor) IsQueued(tcID string) bool { |
| 151 | e.mu.Lock() |
| 152 | defer e.mu.Unlock() |
| 153 | slot := e.slots[tcID] |
| 154 | return slot != nil && slot.State == ToolStateQueued |
| 155 | } |
| 156 | |
| 157 | func (e *StreamingToolExecutor) IsRunning(tcID string) bool { |
| 158 | e.mu.Lock() |
| 159 | defer e.mu.Unlock() |
| 160 | slot := e.slots[tcID] |
| 161 | return slot != nil && slot.State == ToolStateExecuting |
| 162 | } |
| 163 | |
| 164 | func (e *StreamingToolExecutor) GetCompletedResults() []map[string]any { |
| 165 | e.mu.Lock() |
| 166 | defer e.mu.Unlock() |
| 167 | var results []map[string]any |
| 168 | for _, tid := range e.toolOrder { |
| 169 | slot := e.slots[tid] |
no outgoing calls