
    i@              	       H   d Z ddlmZ ddlmZ ddlmZmZmZm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z! ddl"m#Z# ddl$m%Z%m&Z&  e&dee e%dd      d        e&dee e%dd      d        e&dee e%       d3d d!"        e&d#ee e%d$d      d%        e&d&ee e%       d'        e&d(ee e%       d)        e&d*ee! e%       d+        e&d,ee# e%       d-        e	d.ed/0        e	d1ed20       y)4z&Register built-in workflow node types.    )AgentConfig)HumanConfig)SubgraphConfigSubgraphFileConfigSubgraphInlineConfigregister_subgraph_source)PassthroughConfig)LiteralNodeConfig)PythonRunnerConfig)LoopCounterConfig)LoopTimerConfig)AgentNodeExecutor)HumanNodeExecutor)PassthroughNodeExecutor)LiteralNodeExecutor)PythonNodeExecutorSubgraphNodeExecutor)LoopCounterNodeExecutor)LoopTimerNodeExecutor)NodeCapabilitiesregister_node_typeagentroleT)default_role_fieldexposes_toolszwAgent execution node backed by configured LLM/tool providers with support for tooling, memory, and thinking extensions.)
config_clsexecutor_clscapabilitiessummaryhumanznode_type:human   )resource_keyresource_limitz2Pauses graph and waits for human operator responsesubgraphNc                 "    t        | |xs i       S Nr   )context	subgraphss     G/Users/bowang/.openclaw/workspace/ChatDev/runtime/node/builtin_nodes.py<lambda>r+   6   s    5Ib6    zgEmbeds (through file path or inline config) and runs another named subgraph within the current workflow)r   r   r   executor_factoryr    pythonznode_type:pythonz#Executes repository Python snippetspassthroughz:Forwards prior node output downstream without modificationliteralz<Emits the configured text message every time it is triggeredloop_counterzrBlocks downstream edges until the configured iteration limit is reached, then emits a message to release the loop.
loop_timerzmBlocks downstream edges until the configured time limit is reached, then emits a message to release the loop.configz>Inline subgraph definition embedded directly in the YAML graph)r   descriptionfilez7Reference an external YAML file containing the subgraphr'   )'__doc__entity.configs.node.agentr   entity.configs.node.humanr   entity.configs.node.subgraphr   r   r   r   entity.configs.node.passthroughr	   entity.configs.node.literalr
   !entity.configs.node.python_runnerr    entity.configs.node.loop_counterr   entity.configs.node.loop_timerr   $runtime.node.executor.agent_executorr   $runtime.node.executor.human_executorr   *runtime.node.executor.passthrough_executorr   &runtime.node.executor.literal_executorr   %runtime.node.executor.python_executorr   'runtime.node.executor.subgraph_executorr   +runtime.node.executor.loop_counter_executorr   )runtime.node.executor.loop_timer_executorr   runtime.node.registryr   r    r,   r*   <module>rI      su   , 1 1  > 9 @ > : B B N F D H O K F "!! F	 "!& A	 %!# v	 !#!' 2	  (!#H  $!#J  (!# A &!#{ #P
 
!Ir,   