override fun install()

in agents/agents-core/src/commonTest/kotlin/ai/koog/agents/core/feature/TestFeature.kt [39:112]


        override fun install(
            config: TestConfig,
            pipeline: AIAgentGraphPipeline,
        ): TestFeature {
            val testFeature = TestFeature(
                events = config.events
            )

            installCommon(pipeline, config)

            pipeline.interceptNodeExecutionStarting(this) { event ->
                config.addEvent(
                    event,
                    mapOf(
                        "name" to event.node.name,
                        "input" to event.input
                    )
                )
            }

            pipeline.interceptNodeExecutionCompleted(this) { event ->
                config.addEvent(
                    event,
                    mapOf(
                        "name" to event.node.name,
                        "input" to event.input,
                        "output" to event.output
                    )
                )
            }

            pipeline.interceptNodeExecutionFailed(this) { event ->
                config.addEvent(
                    event,
                    mapOf(
                        "name" to event.node.name,
                        "error" to event.throwable.message
                    )
                )
            }

            pipeline.interceptSubgraphExecutionStarting(this) { event ->
                config.addEvent(
                    event,
                    mapOf(
                        "name" to event.subgraph.name,
                        "input" to event.input
                    )
                )
            }

            pipeline.interceptSubgraphExecutionCompleted(this) { event ->
                config.addEvent(
                    event,
                    mapOf(
                        "name" to event.subgraph.name,
                        "input" to event.input,
                        "output" to event.output
                    )
                )
            }

            pipeline.interceptSubgraphExecutionFailed(this) { event ->
                config.addEvent(
                    event,
                    mapOf(
                        "name" to event.subgraph.name,
                        "error" to event.throwable.message
                    )
                )
            }

            return testFeature
        }