override suspend fun close()

in agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/feature/remote/client/FeatureMessageRemoteClient.kt [113:145]


    override suspend fun close() {
        logger.info { "Feature Message Remote Client. Closing client: ${connectionConfig.url}" }

        if (!isConnected.value) {
            logger.warn { "Feature Message Remote Client. Client is already stopped. Skip stopping." }
            return
        }

        logger.debug {
            "Feature Message Remote Client. Closing client status:\n" +
                "* session.isActive: ${session.isActive}\n  " +
                "* sseJob.isActive:  ${sseJob?.isActive}\n  " +
                "* client.isActive:  ${client.isActive}"
        }

        receivedMessages.close()

        if (sseJob?.isActive == true) {
            sseJob?.cancelAndJoin()
        }

        if (session.isActive) {
            session.cancel()
        }

        if (client.isActive) {
            client.close()
        }

        _isConnected.value = false

        logger.info { "Feature Message Remote Client. Client is successfully closed: ${connectionConfig.url}" }
    }