fun visit()

in agents/agents-core/src/commonMain/kotlin/ai/koog/agents/core/dsl/builder/AIAgentSubgraphBuilder.kt [266:283]


        fun visit(node: AIAgentNodeBase<*, *>) {
            if (node is FinishNode<*>) return
            if (getNodePath(node, parentName) in map) return
            if (node !is StartNode<*>) {
                if (node.name in map) {
                    throw IllegalStateException("Node with name '${node.name}' already exists in the subgraph.")
                }

                map[getNodePath(node, parentName)] = node
            }

            if (node is AIAgentSubgraph<*, *>) {
                val subgraphNodes = buildSubGraphNodesMap(node.start, getNodePath(node, parentName))
                map.putAll(subgraphNodes)
            }

            return node.edges.forEach { visit(it.toNode) }
        }