cancelChecker->isCanceled($sessionId, $runId)) { $this->outputSink->appendRunStatus($sessionId, $runId, 'CANCELED', [ 'dedupe_key' => "run:{$runId}:status:CANCELED", ]); return; } $context = $this->contextBuilder->build($sessionId, $runId); if ($this->cancelChecker->isCanceled($sessionId, $runId)) { $this->outputSink->appendRunStatus($sessionId, $runId, 'CANCELED', [ 'dedupe_key' => "run:{$runId}:status:CANCELED", ]); return; } $reply = $this->provider->generate($context); if ($this->cancelChecker->isCanceled($sessionId, $runId)) { $this->outputSink->appendRunStatus($sessionId, $runId, 'CANCELED', [ 'dedupe_key' => "run:{$runId}:status:CANCELED", ]); return; } $this->outputSink->appendAgentMessage($sessionId, $runId, $reply, [ 'provider' => $this->provider instanceof DummyAgentProvider ? 'dummy' : get_class($this->provider), ]); $this->outputSink->appendRunStatus($sessionId, $runId, 'DONE', [ 'dedupe_key' => "run:{$runId}:status:DONE", ]); } }