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) }
}