Files
timmy-config/allegro/goap/__pycache__/executor.cpython-312.pyc

196 lines
28 KiB
Plaintext
Raw Normal View History

2026-03-31 20:02:01 +00:00
<EFBFBD>
zO<7A>i<EFBFBD>[<00><00><><00>dZddlZddlZddlZddlmZmZmZmZm Z ddl
m Z m Z ddl mZmZddlmZddlmZddlmZmZmZdd lmZmZmZdd
lmZGd <0B>d e<0E>Ze Gd <0A>d<0E><00>Ze Gd<0F>d<10><00>ZGd<11>d<12>Z Gd<13>d<14>Z!Gd<15>d<16>Z"e <20>Z#e$dk(r7e%d<18>ddlm&Z&ddlm'Z'm(Z(ddlmZd<1C>Z)ejTe)<29><00>yy)zo
GOAP Executor Module - Allegro-Primus Child Autonomy System
Executes action plans and manages plan lifecycle.
<EFBFBD>N)<05>Dict<63>List<73>Optional<61>Any<6E>Callable)<02> dataclass<73>field)<02>Enum<75>auto)<01>Path)<01>datetime)<03>Action<6F> ActionResult<6C> ActionStatus)<03>Plan<61>
PlanStatus<EFBFBD> GOAPPlanner)<01>Goalc<00>:<00>eZdZdZe<04>Ze<04>Ze<04>Zy)<03> ExecutionModezExecution modesN)<08>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r <00>
SEQUENTIAL<EFBFBD>PARALLEL<45>ADAPTIVE<56><00><00>/root/allegro/goap/executor.pyrrs<00><00><19><15><16>J<EFBFBD><13>v<EFBFBD>H<EFBFBD><13>v<EFBFBD>Hrrc<00><><00>eZdZUdZeeefed<ee <09><03>Z
eeefed<ee <09><03>Z eeefed<ee <0C><03>Z eeed<ee <09><03>Zeeefed<d
d<08>Zy ) <0B>ExecutionContextzContext for action execution<6F> world_state<74><01>default_factory<72> user_context<78>system_context<78>execution_history<72>metadatac<00><00>t|jj<00>|jj<00>|jj<00>|j
j<00>|j j<00><00><01>S)zCreate a copy of the context)r#r&r'r(r))r"r#<00>copyr&r'r(r)<00><01>selfs r r+zExecutionContext.copy%sg<00><00><1F><1C>(<28>(<28>-<2D>-<2D>/<2F><1D>*<2A>*<2A>/<2F>/<2F>1<><1F>.<2E>.<2E>3<>3<>5<>"<22>4<>4<>9<>9<>;<3B><19>]<5D>]<5D>'<27>'<27>)<29> 
<EFBFBD>
rN)<02>returnr")rrrrr<00>strr<00>__annotations__r <00>dictr&r'<00>listr(rr)r+rrr r"r"sq<00><00>&<26><15>c<EFBFBD>3<EFBFBD>h<EFBFBD><1E><1F>#(<28><14>#><3E>L<EFBFBD>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E>><3E>%*<2A>4<EFBFBD>%@<40>N<EFBFBD>D<EFBFBD><13>c<EFBFBD><18>N<EFBFBD>@<40>$)<29>$<24>$?<3F><15>t<EFBFBD>D<EFBFBD>z<EFBFBD>?<3F>$<24>T<EFBFBD>:<3A>H<EFBFBD>d<EFBFBD>3<EFBFBD><03>8<EFBFBD>n<EFBFBD>:<3A>
rr"c<00><><00>eZdZUdZeed<eed<eed<eed<eed<eed<eed<e e
e fed <d
Z e e
ed <ee<0F> <0C>Zee ed <de fd<0F>Zy
)<10>ExecutionReportzReport of plan execution<6F>plan<61>success<73>actions_completed<65>actions_failed<65>execution_time<6D>
start_time<EFBFBD>end_time<6D> final_stateN<65>errorr$<00>action_reportsr.c <00><00>|jj<00>|j|j|j|j
|j |j|j|j|jd<01>
S)N<>
r5r6r7r8r9r:r;r<r=r>) r5<00>to_dictr6r7r8r9r:r;r<r=r>r,s r rAzExecutionReport.to_dict>se<00><00><18>I<EFBFBD>I<EFBFBD>%<25>%<25>'<27><1B>|<7C>|<7C>!%<25>!7<>!7<>"<22>1<>1<>"<22>1<>1<><1E>/<2F>/<2F><1C> <0A> <0A><1F>+<2B>+<2B><19>Z<EFBFBD>Z<EFBFBD>"<22>1<>1<> 
<EFBFBD>
r)rrrrrr0<00>bool<6F>int<6E>floatrr/rr=rr r2r>rrArrr r4r40sg<00><00>"<22>
<0E>J<EFBFBD> <11>M<EFBFBD><1A><1A><17><17><19><19><15><15><13>O<EFBFBD><15>c<EFBFBD>3<EFBFBD>h<EFBFBD><1E><1F><1F>E<EFBFBD>8<EFBFBD>C<EFBFBD>=<3D><1F>!&<26>t<EFBFBD>!<<3C>N<EFBFBD>D<EFBFBD><14>J<EFBFBD><<3C> 
<EFBFBD><14> 
rr4c <00>
<00>eZdZdZej
dddfdedededee fd <09>Z
d
<EFBFBD>Z d <0B>Z dd e d ededeedef
d<11>Zd e dededeedef
d<13>Zd e dedefd<14>Zd e dededeedef
d<15>Zdededefd<17>Zd<18>Zdefd<19>Zdefd<1A>Zy)<1C> PlanExecutorz*Executes plans and manages their lifecycle<6C><00><00>?N<>mode<64> max_retries<65> retry_delay<61>state_persistence_pathc<00><><00>||_||_||_|xsd|_d|_d|_d|_d|_d|_d|_ d|_
d|_ d|_ d|_ d|_|j<00>y)Nz&/root/allegro/goap/executor_state.jsonrF)rIrJrKrL<00> current_plan<61>current_action_index<65>
is_running<EFBFBD> should_cancel<65>total_plans_executed<65>total_plans_succeeded<65>total_actions_executed<65>total_actions_succeeded<65>on_action_start<72>on_action_complete<74>on_plan_complete<74> _load_state)r-rIrJrKrLs r <00>__init__zPlanExecutor.__init__Ps<><00><00><19><04> <09>&<26><04><18>&<26><04><18>&<<3C>&h<>@h<><04>#<23>-1<><04><19>)*<2A><04>!<21> %<25><04><0F>#(<28><04><1A>%&<26><04>!<21>%&<26><04>"<22>&'<27><04>#<23>'(<28><04>$<24>IM<01><04><1C>Y]<5D><04><1F>MQ<4D><04><1D> <0A><18><18>rc<00><><00>ddl}|jj|j<00>r<> t |jd<03>5}t j |<02>}|jdd<01>|_|jdd<01>|_ |jdd<01>|_
|jdd<01>|_ ddd<02>yy#1swYyxYw#t$r}td|<04><00><02>Yd}~yd}~wwxYw) zLoad persisted executor staterN<>rrRrSrTrUz![Executor] Failed to load state: )<0E>os<6F>path<74>existsrL<00>open<65>json<6F>load<61>getrRrSrTrU<00> Exception<6F>print)r-r]<00>f<>data<74>es r rYzPlanExecutor._load_stateps<><00><00><11> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>$<24>5<>5<> 6<> ?<3F><19>$<24>5<>5<>s<EFBFBD>;<3B>Z<01>q<EFBFBD><1F>9<EFBFBD>9<EFBFBD>Q<EFBFBD><<3C>D<EFBFBD>04<30><08><08>9O<39>QR<51>0S<30>D<EFBFBD>-<2D>15<31><18><18>:Q<>ST<53>1U<31>D<EFBFBD>.<2E>26<32>(<28>(<28>;S<>UV<55>2W<32>D<EFBFBD>/<2F>37<33>8<EFBFBD>8<EFBFBD><U<>WX<57>3Y<33>D<EFBFBD>0<> Z<01>Z<01> 7<>Z<01>Z<01><> <1D> ?<3F><15>9<>!<21><13>=<3D>><3E>><3E><> ?<3F>s6<00>C <00>A2B=<03>3C <00>=C<07>C <00>C <00> C*<03>C%<03>%C*c <00><><00> t|j<00>jjdd<01><02>t |jd<03>5}t j |j|j|j|jtj<00>d<04>|d<05><06>ddd<07>y#1swYyxYw#t$r}td|<02><00><02>Yd}~yd}~wwxYw) zPersist executor stateT)<02>parents<74>exist_ok<6F>w)rRrSrTrU<00> last_updatedrG<00><01>indentNz![Executor] Failed to save state: )r rL<00>parent<6E>mkdirr`ra<00>dumprRrSrTrU<00>timerdre)r-rfrhs r <00> _save_statezPlanExecutor._save_state~s<><00><00> ;<3B> <10><14>,<2C>,<2C> -<2D> 4<> 4<> :<3A> :<3A>4<EFBFBD>RV<52> :<3A> W<><15>d<EFBFBD>1<>1<>3<EFBFBD>7<> <20>1<EFBFBD><14> <09> <09>,0<>,E<>,E<>-1<>-G<>-G<>.2<EFBFBD>.I<>.I<>/3<>/K<>/K<>$(<28>I<EFBFBD>I<EFBFBD>K<EFBFBD> <12> <15>Q<EFBFBD>  <20> <20> <20> <20><><19> ;<3B> <11>5<>a<EFBFBD>S<EFBFBD>9<> :<3A> :<3A><> ;<3B>s7<00>AB6<00>AB*<03>!B6<00>*B3<07>/B6<00>3B6<00>6 C<03>?C<03>Cr5<00>initial_context<78>replan_on_failure<72>plannerr.c<00><00> K<00>||_d|_d|_d|_t j<00>}t
j |_||_|j<00>}g}d}d} |jtjk(r|j||||<04><00>d{<00><04><03>}
nT|jtjk(r|j||<06><00>d{<00><04><03>}
n|j!||||<04><00>d{<00><04><03>}
|
dr+t
j"|_|xj$dz c_nt
j&|_|xj(dz c_t j<00>} | |_t-||
d|
d|
d| |z
|| |j.|
j1d <09>|
j1d
g<00><00> <0B>
} |j2r|j3| <0C>|j5<00>| d|_d|_S7<00><01>V7<00><01>!7<00><01>#t6$rv} t
j&|_t j<00>} | |_t-|d|| dz| |z
|| |j.t9| <0A>|<07> <0B>
cYd} ~ d|_d|_Sd} ~ wwxYw#d|_d|_wxYw<01>w) ac
Execute a plan with the given context.
Args:
plan: The plan to execute
initial_context: Initial execution context
replan_on_failure: Whether to replan if actions fail
planner: Planner to use for replanning
Returns:
ExecutionReport with results
rTFNr6<00><00> completed<65>failedr=<00>reportsr@)rNrOrPrQrsr<00> IN_PROGRESS<53>status<75>
started_atr+rIrr<00>_execute_sequentialr<00>_execute_parallel<65>_execute_adaptive<76> COMPLETEDrS<00>FAILEDrR<00> completed_atr4r#rcrXrtrdr/)r-r5rurvrwr:<00>contextr>r7r8<00>resultr;<00>reportrhs r <00> execute_planzPlanExecutor.execute_plan<61>sr<00><00><><00>&!<21><04><19>$%<25><04>!<21><1E><04><0F>"<22><04><1A><19>Y<EFBFBD>Y<EFBFBD>[<5B>
<EFBFBD> <20>,<2C>,<2C><04> <0B>$<24><04><0F>!<21>&<26>&<26>(<28><07><1B><0E><1D><19><1A><0E>@ %<25><13>y<EFBFBD>y<EFBFBD>M<EFBFBD>4<>4<>4<>#<23>7<>7<><18>'<27>#4<>g<EFBFBD> <12><12><06><16><19><19>m<EFBFBD>4<>4<>4<>#<23>5<>5<>d<EFBFBD>G<EFBFBD>D<>D<><06>#<23>5<>5<><18>'<27>#4<>g<EFBFBD> <12><12><06>
<16>i<EFBFBD> <20>(<28>2<>2<><04> <0B><14>*<2A>*<2A>a<EFBFBD>/<2F>*<2A>(<28>/<2F>/<2F><04> <0B> <10> %<25> %<25><11> *<2A> %<25><1B>y<EFBFBD>y<EFBFBD>{<7B>H<EFBFBD> (<28>D<EFBFBD> <1D>$<24><19><1E>y<EFBFBD>)<29>"(<28><1B>"5<>%<25>h<EFBFBD>/<2F>'<27>*<2A>4<>%<25>!<21>#<23>/<2F>/<2F><1C>j<EFBFBD>j<EFBFBD><17>)<29>%<25>z<EFBFBD>z<EFBFBD>)<29>R<EFBFBD>8<> <0E>F<EFBFBD><14>$<24>$<24><14>%<25>%<25>f<EFBFBD>-<2D> <10> <1C> <1C> <1E><19>($<24>D<EFBFBD>O<EFBFBD> $<24>D<EFBFBD> <1D>{<12><>E<01><><12><>H<19> <0E>$<24>+<2B>+<2B>D<EFBFBD>K<EFBFBD><1B>y<EFBFBD>y<EFBFBD>{<7B>H<EFBFBD> (<28>D<EFBFBD> <1D>"<22><19><1D>"3<>-<2D><01>1<>'<27>*<2A>4<>%<25>!<21>#<23>/<2F>/<2F><19>!<21>f<EFBFBD>-<2D> <0E> <0E>$<24>D<EFBFBD>O<EFBFBD> $<24>D<EFBFBD> <1D><>' <0E><>$$<24>D<EFBFBD>O<EFBFBD> $<24>D<EFBFBD> <1D>s<EFBFBD><00>A#J<01>&4G9<00>G0<04>7G9<00>G3<04>G9<00>/G6<04>0C1G9<00>!J<01>0G9<00>3G9<00>6G9<00>9 I8<03>AI3<03>I8<03> I;<00>$J<01>3I8<03>8I;<00>;J <03> Jr<>c<00><00>@K<00>d}d}g}t|j<00>D<00>]<5D>\}} |jr
d||d|d<04>cS||_|jr|j | |<08>|j | |<02><00>d{<00><02><03>}
|j j| j|
jtj<00>d<06><03>|jr|j| |
|<08>|j| j|
j|
j|
jd<07><04>|
jr;|dz }| j|j<00>|_|xj dz c_n<>|dz }|rk|ri|j#||j|<08>} | r2| jr&|jd|dz| jz|_<00><01><>d||d | j<00>d
<EFBFBD>|d<04>cSd||d | j<00>d |
j$<00><00>|d<04>cS|xj&dz c_<00><01><>|dk(|||d <0C>S7<00><01><><EFBFBD>w) zExecute actions sequentiallyrFzExecution cancelled)r6rzr{r=r|N)<03>actionr<6E>rs)r<>r6<00>messager9ryzAction z# failed and replanning unsuccessfulz failed: )r6rzr{r|)<14> enumerate<74>actionsrQrOrV<00>_execute_action_with_retryr(<00>append<6E>namer6rsrWr<>r9<00> apply_effectsr#rU<00>replanr=rT) r-r5r<>rvrwrzr{r|<00>ir<69>r<><00>new_plans r r<>z PlanExecutor._execute_sequential<61>s5<00><00><><00><16> <09><12><06><14><07>"<22>4<EFBFBD><<3C><<3C>0<>H -<2D>I<EFBFBD>A<EFBFBD>v<EFBFBD><13>!<21>!<21>$<24>!*<2A>$<24>2<>&<26> <12><12>)*<2A>D<EFBFBD> %<25><14>#<23>#<23><14>$<24>$<24>V<EFBFBD>Q<EFBFBD>/<2F> <20>:<3A>:<3A>6<EFBFBD>7<EFBFBD>K<>K<>F<EFBFBD> <14> %<25> %<25> ,<2C> ,<2C> <20>+<2B>+<2B> <20>.<2E>.<2E><1C> <09> <09> <0B>.<0E> <0F><14>&<26>&<26><14>'<27>'<27><06><06><01>:<3A> <13>N<EFBFBD>N<EFBFBD> <20>+<2B>+<2B>!<21>><3E>><3E>!<21>><3E>><3E>"(<28>"7<>"7<> <0E> <0F><16>~<7E>~<7E><19>Q<EFBFBD><0E> <09>&,<2C>&:<3A>&:<3A>7<EFBFBD>;N<>;N<>&O<><07>#<23><14>,<2C>,<2C><01>1<>,<2C><16>!<21> <0B><06>%<25><17>&<26>~<7E>~<7E>d<EFBFBD>G<EFBFBD>4G<34>4G<34><11>K<>H<EFBFBD><1F>H<EFBFBD>$4<>$4<>'+<2B>|<7C>|<7C>D<EFBFBD>Q<EFBFBD>q<EFBFBD>S<EFBFBD>'9<>H<EFBFBD><L<><L<>'L<><04> <0C> <20>(-<2D>)2<>&,<2C>'.<2E>v<EFBFBD>{<7B>{<7B>m<EFBFBD>;^<5E>%_<>'.<2E>  <1A><1A>$)<29>%.<2E>"(<28>#*<2A>6<EFBFBD>;<3B>;<3B>-<2D>y<EFBFBD><16><1C><1C><0E>!O<>#*<2A> <16><16> <11> '<27> '<27>1<EFBFBD> ,<2C> '<27>QH -<2D>V<1E><11>{<7B>"<22><1C><1E> 
<EFBFBD>
<EFBFBD>sL<01>s<00>A3H<01>5H<06>6F&Hc<00><00>FK<00>|j||dd<02><00>d{<00><02><03>S7<00><04>w)z'Execute independent actions in parallelFN)r<>)r-r5r<>s r r<>zPlanExecutor._execute_parallelMs%<00><00><><00><1A>-<2D>-<2D>d<EFBFBD>G<EFBFBD>U<EFBFBD>D<EFBFBD>I<>I<>I<>I<>s <00>!<01><04>!c<00><00><>K<00>|jjdi<00>jdd<03>}|dkDrtjd<05><00>d{<00><02><03>|jr |jj
j nd}|dkDr.|jD<00>cgc]}|jd vr|<07><02>}}||_|j||||<04><00>d{<00><02><03>S7<00><>cc}w7<00> <0B>w)
z}
Execute adaptively based on context.
Adjusts execution strategy based on system load, urgency, etc.
<20>system<65> cpu_percent<6E>2<00>PryNrg<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?)r<><00>safety)
r#rc<00>asyncio<69>sleep<65>goal<61>state<74>urgencyr<79><00>categoryr<79>) r-r5r<>rvrwr<>r<><00>a<>essential_actionss r r<>zPlanExecutor._execute_adaptiveWs<><00><00><><00><1E>)<29>)<29>-<2D>-<2D>h<EFBFBD><02>;<3B>?<3F>?<3F> <0A>r<EFBFBD>R<> <0B> <16><12> <1B><19>-<2D>-<2D><01>"<22> "<22> "<22>.2<EFBFBD>Y<EFBFBD>Y<EFBFBD>$<24>)<29>)<29>/<2F>/<2F>)<29>)<29>A<EFBFBD><07> <12>S<EFBFBD>=<3D> <20><<3C><<3C>!<0E><17><14>:<3A>:<3A>!5<>5<><12>!<0E> <1D>!<0E>-<2D>D<EFBFBD>L<EFBFBD><19>-<2D>-<2D>d<EFBFBD>G<EFBFBD>=N<>PW<50>X<>X<>X<> #<23><>!<0E> Y<01>s1<00>A
C<01> C<04> AC<01>C<04>) C<01> C<04>
C<01>Cr<>c<00><00> K<00>d}t|jdz<00>D]<5D>} |j|j|j|d<03>|j
<00>}|j |<05><00>d{<00><03><03>}|jr|xjdz c_|cS|}||jkr-tj|j|dzz<00><00>d{<00><03><03><00><>|xj"dz c_|xstjd<06><07>S7<00><>7<00>7#t$ru}tjt|<07>d|j <00><00><02><05>}||jkr.tj|j|dzz<00><00>d{<00><04><03>7Yd}~<07><01>_d}~wwxYw<01>w)z"Execute an action with retry logicNry)r#r&r'<00>attemptz#Exception during action execution: )r=r<>zAll retry attempts failed)r=)<12>rangerJr#r&r'r)<00>executer6<00> success_countr<74>r<>rKrdr<00>failure_resultr/r<><00>execution_count)r-r<>r<><00> last_resultr<74><00>action_contextr<74>rhs r r<>z'PlanExecutor._execute_action_with_retryvsw<00><00><><00> <1B> <0B><1C>T<EFBFBD>-<2D>-<2D><01>1<>2<> J<01>G<EFBFBD> J<01>$+<2B>#6<>#6<>$+<2B>$8<>$8<>&-<2D>&<<3C>&<<3C>&<26> "<12>
<1E>&<26>&<26> "<12><0E> &<26>~<7E>~<7E>n<EFBFBD>=<3D>=<3D><06><19>><3E>><3E><1A>(<28>(<28>A<EFBFBD>-<2D>(<28>!<21>M<EFBFBD>$<24> <0B><1B>T<EFBFBD>-<2D>-<2D>-<2D>!<21>-<2D>-<2D><04>(8<>(8<>G<EFBFBD>a<EFBFBD>K<EFBFBD>(H<>I<>I<>I<><49>- J<01>@ <0F><1E><1E>!<21>#<23><1E><1A>
<EFBFBD>l<EFBFBD>9<>9<>-<2D>
<EFBFBD>
<EFBFBD>+><3E><>J<01><><1C> J<01>*<2A>9<>9<><1D>a<EFBFBD>&<26>A<>&<26>+<2B>+<2B><1D>O<><12> <0B><1B>T<EFBFBD>-<2D>-<2D>-<2D>!<21>-<2D>-<2D><04>(8<>(8<>G<EFBFBD>a<EFBFBD>K<EFBFBD>(H<>I<>I<>I<><49><EFBFBD>  J<01>sl<00>F<01>AD<02>&C?<06>'&D<02> F<01>9D<02> D<06>
D<02>1F<01>?D<02>D<02> F<05> A$E<<05>0E3<08>1E<<05>6F<01><F<05>Fc<00><00>d|_y)zCancel current executionTN)rQr,s r <00>cancelzPlanExecutor.cancel<65>s
<00><00>!<21><04>rc<00><><00>|jr |jsdddd<04>St|jj<00>}|dkDr|j|z dznd}d|jj <00>|j|||j|kr/|jj|jj d<07>Sdd<07>S)zGet current execution statusFNr)<03>runningr5<00>progress<73>dT)r<>r5<00>current_action<6F> total_actionsr<73><00>current_action_name)rPrN<00>lenr<6E>rOrAr<>)r-<00>totalr<6C>s r <00>
get_statuszPlanExecutor.get_status<75>s<><00><00><13><EFBFBD><EFBFBD>d<EFBFBD>&7<>&7<> <20><1C><1D><0E> <0E> <14>D<EFBFBD>%<25>%<25>-<2D>-<2D>.<2E><05>@E<><01> <09>D<EFBFBD>-<2D>-<2D><05>5<><03>;<3B>q<EFBFBD><08><1C><18>%<25>%<25>-<2D>-<2D>/<2F>"<22>7<>7<>"<22> <20><18>,<2C>,<2C>u<EFBFBD>4<><15>!<21>!<21>)<29>)<29>$<24>*C<>*C<>D<>I<>I<>

<EFBFBD>
<EFBFBD>;?<3F>

<EFBFBD>
rc
<00><00>|j|j|jtd|j<00>z |j|j|jtd|j<00>z |j
j d<02>S)zGet execution statisticsry)rRrS<00>plan_success_raterTrU<00>action_success_raterI)rRrS<00>maxrTrUrIr<>r,s r <00> get_statszPlanExecutor.get_stats<74>ss<00><00>%)<29>$=<3D>$=<3D>%)<29>%?<3F>%?<3F>!%<25>!;<3B>!;<3B>c<EFBFBD>!<21>T<EFBFBD>E^<5E>E^<5E>>_<>!_<>&*<2A>&A<>&A<>'+<2B>'C<>'C<>#'<27>#?<3F>#?<3F>#<23>a<EFBFBD><14>Id<49>Id<49>Be<42>#e<><18>I<EFBFBD>I<EFBFBD>N<EFBFBD>N<EFBFBD>
<EFBFBD>
r)TN)rrrrrrrCrDrr/rZrYrtrr"rBrr4r<>rr<>r<>r<>rrr<>r<>r<>r<>rrr rFrFMs<><00><00>4<>,<2C>6<>6<><1C> <20>04<30> <1B><1B><1B><19><1B><1B> <1B>
!)<29><13> <0A> <1B>@ ?<3F> ;<3B>&#'<27>)-<2D> a%<25><12>a%<25>*<2A>a%<25> <20> a%<25>
<1A>+<2B>&<26> a%<25>
<19> a%<25>F[
<EFBFBD><12>[
<EFBFBD>"<22>[
<EFBFBD> <20> [
<EFBFBD>
<1A>+<2B>&<26> [
<EFBFBD>
<0E> [
<EFBFBD>zJ<01><12>J<01>"<22>J<01>
<0E> J<01>Y<01><12>Y<01>"<22>Y<01> <20> Y<01>
<1A>+<2B>&<26> Y<01>
<0E> Y<01>>+
<EFBFBD><16>+
<EFBFBD>"<22>+
<EFBFBD>
<16> +
<EFBFBD>Z"<22>
<EFBFBD>D<EFBFBD>
<EFBFBD>0

<EFBFBD>4<EFBFBD>

rrFc<00>R<00>eZdZdZdefd<03>Z ddededefd<07>Z d<08>Z
d <09>Z d
<EFBFBD>Z d e fd <0C>Zy )<0F>ExecutionSchedulerz<Schedules plan execution based on priorities and constraints<74>executorc<00><<00>||_g|_d|_d|_y)NF)r<><00>queuer<65><00>_task<73>r-r<>s r rZzExecutionScheduler.__init__<5F>s<00><00> <20><04> <0A>AC<41><04>
<EFBFBD>"<22><04> <0C>-1<><04>
rr5r<><00>priorityc<00>*<00>|jrL||jjjdzz }||jjjdz z }|jj |||f<03>|jj d<03><00><04>y)zSchedule a plan for execution<6F>
r<>c<00><00>|d S)Nrr)<01>xs r <00><lambda>z-ExecutionScheduler.schedule.<locals>.<lambda><3E>s <00><00>q<EFBFBD><11>t<EFBFBD>e<EFBFBD>r)<01>keyN)r<>r<>r<><00>effective_priorityr<79>r<><00>sort)r-r5r<>r<>s r <00>schedulezExecutionScheduler.schedule<6C>sp<00><00> <10>9<EFBFBD>9<EFBFBD> <14><04> <09> <09><0F><0F>/<2F>/<2F>"<22>4<> 4<>H<EFBFBD> <14><04> <09> <09><0F><0F>:<3A>:<3A>S<EFBFBD>@<40> @<40>H<EFBFBD> <0C>
<EFBFBD>
<EFBFBD><19><19>8<EFBFBD>T<EFBFBD>7<EFBFBD>3<>4<> <0C>
<EFBFBD>
<EFBFBD><0F><0F>O<EFBFBD><0F>,rc<00><00>jK<00>d|_tj|j<00><00>|_y<02>w)zStart the schedulerTN)r<>r<><00> create_task<73> _run_loopr<70>r,s r <00>startzExecutionScheduler.start<72>s&<00><00><><00><1B><04> <0C><1C>(<28>(<28><14><1E><1E>)9<>:<3A><04>
<EFBFBD>s<00>13c<00><00><>K<00>d|_|jr0|jj<00> |j<00>d{<00><03><03>yy7<00>#tj$rYywxYw<01>w)zStop the schedulerFN)r<>r<>r<>r<><00>CancelledErrorr,s r <00>stopzExecutionScheduler.stop<6F>sW<00><00><><00><1C><04> <0C> <0F>:<3A>:<3A> <10>J<EFBFBD>J<EFBFBD> <1D> <1D> <1F> <15><1A>j<EFBFBD>j<EFBFBD> <20> <20> <16>!<21><><1A>)<29>)<29> <15><14> <15>s:<00>.A"<01>A <00>A<04>A <00>A"<01>A <00> A<03>A"<01>A<03>A"c<00><00><>K<00>|j<00>r |jr<>|jjs<>|jj d<01>\}}} |jj ||<03><00>d{<00><03><03>}t d|jr|jjnd<04><00><02>t d|j<00><00><02>t d|j<00>d|j|jz<00><00><04>tjd <09><00>d{<00><02><03>|jr<02><01> yy7<00><>#t$r}t d|<05><00><02>Yd}~<05>Kd}~wwxYw7<00>:<3A>w)
zMain scheduler looprNz[Scheduler] Plan completed: <20>unknown<77> Success: <20> Actions: <20>/z"[Scheduler] Plan execution error: g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?)r<>r<>r<>rP<00>popr<70>rer<>r<>r6r7r8rdr<>r<>)r-r<>r5r<>r<>rhs r r<>zExecutionScheduler._run_loop<6F>s<00><00><><00><12>l<EFBFBD>l<EFBFBD><13>z<EFBFBD>z<EFBFBD>$<24>-<2D>-<2D>":<3A>":<3A>*.<2E>*<2A>*<2A>.<2E>.<2E><11>*;<3B>'<27><08>$<24><07> D<01>#'<27>=<3D>=<3D>#=<3D>#=<3D>d<EFBFBD>G<EFBFBD>#L<>L<>F<EFBFBD><1A>8<>4<EFBFBD>9<EFBFBD>9<EFBFBD><14><19><19><1E><1E>Zc<5A>8d<38>e<>f<><19>K<EFBFBD><06><0E><0E>'7<>8<>9<><19>K<EFBFBD><06>(@<40>(@<40>'A<><11>6<EFBFBD>C[<5B>C[<5B>^d<>^s<>^s<>Cs<43>Bt<42>u<>v<>
<1A>-<2D>-<2D><03>$<24> $<24> $<24>!<13>l<EFBFBD>l<EFBFBD> M<01><>!<21>D<01><19>><3E>q<EFBFBD>c<EFBFBD>B<>C<>C<><43>D<01><> %<25>sU<00>AE<01>D<00>1D<04>2A>D<00>0E<01>E<04> E<01>E<01>D<00> E<03>(D;<03>6E<01>;E<03>Er.c <00><><00>t|j<00>|jD<00><01><02>cgc]A\}}}||jr|jjndt|j<00>d<02><03><02>Cc}}}d<03>Scc}}}w)zGet current queue statusr<73>)r<>r<>r<>)<02> queued_plansr<73>)r<>r<>r<>r<>r<>)r-<00>pr5<00>_s r <00>get_queue_statusz#ExecutionScheduler.get_queue_statussk<00><00> <20><04>
<EFBFBD>
<EFBFBD>O<EFBFBD>#'<27>*<2A>*<2A> <0E><0E> <1F>A<EFBFBD>t<EFBFBD>Q<EFBFBD> !"<22>.2<EFBFBD>i<EFBFBD>i<EFBFBD>D<EFBFBD>I<EFBFBD>I<EFBFBD>N<EFBFBD>N<EFBFBD>Y<EFBFBD>"<22>4<EFBFBD><<3C><<3C>0<><12><0E>

<EFBFBD>
<EFBFBD><EFBFBD>s<00>AA2
N)rH)rrrrrFrZrr"rDr<>r<>r<>r<>rr<>rrr r<>r<><00>sR<00><00>F<>2<><1C>2<><1E> -<2D><12> -<2D>"<22> -<2D><18> -<2D>;<3B>
<15>%<25>( 
<EFBFBD>$<24> 
rr<>c<00>p<00>eZdZdZdefd<03>Zdedefd<06>Zdede defd<08>Z
d e fd
<EFBFBD>Z dd ed e e fd <0A>Zd efd<0E>Zy)<11>ExecutionMonitorz)Monitors plan execution and system healthr<68>c<00><><00>||_g|_d|_|j|_|j
|_|j|_y)Nr<4E>) r<>r|<00> max_reports<74>_on_action_startrV<00>_on_action_completerW<00>_on_plan_completerXr<>s r rZzExecutionMonitor.__init__sD<00><00> <20><04> <0A>.0<EFBFBD><04> <0C><1E><04><18>$(<28>#8<>#8<><08> <20>&*<2A>&><3E>&><3E><08>#<23>$(<28>$:<3A>$:<3A><08>!rr<><00>indexc<00>B<00>td|dz<00>d|j<00>d<04><05>y)zCalled when an action starts<74>[Monitor] Action ry<00>: z
- STARTEDN)rer<>)r-r<>r<>s r r<>z!ExecutionMonitor._on_action_start#s"<00><00> <0A>!<21>%<25>!<21>)<29><1B>B<EFBFBD>v<EFBFBD>{<7B>{<7B>m<EFBFBD>:<3A>F<>Grr<>c<00><><00>|jrdnd}td|dz<00>d|j<00>d|<04><00><06>|jstd|j<00><00><02>yy) zCalled when an action completes<65>SUCCESSr<53>r<>ryr<>z - z Error: N)r6rer<>r=)r-r<>r<>r<>r~s r r<>z$ExecutionMonitor._on_action_complete'sR<00><00>$<24>n<EFBFBD>n<EFBFBD><19>(<28><06> <0A>!<21>%<25>!<21>)<29><1B>B<EFBFBD>v<EFBFBD>{<7B>{<7B>m<EFBFBD>3<EFBFBD>v<EFBFBD>h<EFBFBD>G<>H<><15>~<7E>~<7E> <11>I<EFBFBD>f<EFBFBD>l<EFBFBD>l<EFBFBD>^<5E>,<2C> -<2D>rr<>c<00><00>|jj|<01>t|j<00>|jkDr|jj d<01>t d<02>t d|j jr |j jjnd<04><00><02>t d|j<00><00><02>t d|jd<07>d<08><03>t d |j<00>d
|j<00>d <0B><05>y ) zCalled when a plan completesrz![Monitor] Plan execution completez Goal: r<>r<>z Time: <20>.2f<EFBFBD>sr<73>z completed, z failedN) r|r<>r<>r<>r<>rer5r<>r<>r6r9r7r8)r-r<>s r r<>z"ExecutionMonitor._on_plan_complete.s<><00><00> <0C> <0C> <0C><1B><1B>F<EFBFBD>#<23> <0E>t<EFBFBD>|<7C>|<7C> <1C>t<EFBFBD>/<2F>/<2F> /<2F> <10>L<EFBFBD>L<EFBFBD> <1C> <1C>Q<EFBFBD> <1F> <0E>1<>3<> <0A><08>&<26>+<2B>+<2B>2B<32>2B<32><16><1B><1B>)<29>)<29>.<2E>.<2E> <09>R<>S<>T<> <0A> <0B>F<EFBFBD>N<EFBFBD>N<EFBFBD>+<2B>,<2C>-<2D> <0A><08><16>.<2E>.<2E>s<EFBFBD>3<>1<EFBFBD>5<>6<> <0A> <0B>F<EFBFBD>4<>4<>5<>\<5C>&<26>BW<42>BW<42>AX<41>X_<58>`<60>ar<00>countr.c<00>"<00>|j| dS)zGet recent execution reportsN)r|)r-r<>s r <00>get_recent_reportsz#ExecutionMonitor.get_recent_reports;s<00><00><13>|<7C>|<7C>U<EFBFBD>F<EFBFBD>G<EFBFBD>$<24>$rc <00>L<00>|jsddiStd<03>|jD<00><00>}td<04>|jD<00><00>}td<05>|jD<00><00>}t|j<00>|t|j<00>z |t|j<00>z ||jddD<00>cgc]^}|jsP|jj
r |jj
j nd|j|jd <09><03><02>`c}d
<EFBFBD>Scc}w) zGet execution summary<72> total_reportsrc3<00>:K<00>|]}|js<01>d<00><01><00>y<01>w)ryN)r6<00><02>.0r\s r <00> <genexpr>z/ExecutionMonitor.get_summary.<locals>.<genexpr>Ds<00><00><><00>A<>!<21>q<EFBFBD>y<EFBFBD>y<EFBFBD>A<EFBFBD>A<>s<00><01>c3<00>4K<00>|]}|j<00><01><00>y<00>w<01>N)r9r<>s r r<>z/ExecutionMonitor.get_summary.<locals>.<genexpr>Es<00><00><><00>@<40>a<EFBFBD><11>)<29>)<29>@<40><><00>c3<00>4K<00>|]}|j<00><01><00>y<00>wr<>)r7r<>s r r<>z/ExecutionMonitor.get_summary.<locals>.<genexpr>Fs<00><00><><00>F<>A<EFBFBD>A<EFBFBD>/<2F>/<2F>F<>r<EFBFBD>i<><69><EFBFBD><EFBFBD>Nr<4E>)r<>r=rs)r<><00> success_rate<74>average_execution_timerT<00>recent_failures) r|<00>sumr<6D>r6r5r<>r<>r=r;)r-<00> total_success<73>
total_timer<EFBFBD>r\s r <00> get_summaryzExecutionMonitor.get_summary?s<><00><00><13>|<7C>|<7C>#<23>Q<EFBFBD>'<27> '<27><1B>A<>t<EFBFBD>|<7C>|<7C>A<>A<> <0A><18>@<40>4<EFBFBD><<3C><<3C>@<40>@<40>
<EFBFBD><1B>F<><14><1C><1C>F<>F<> <0A>!<21><14><1C><1C>.<2E>)<29>C<EFBFBD><04> <0C> <0C>,=<3D>=<3D>&0<>3<EFBFBD>t<EFBFBD>|<7C>|<7C>3D<33>&D<>&3<><1E><1C><1C>c<EFBFBD>d<EFBFBD>+<2B>  <0E> <16>1<EFBFBD>9<EFBFBD>9<EFBFBD> 12<31><06><06> <0B> <0B>A<EFBFBD>F<EFBFBD>F<EFBFBD>K<EFBFBD>K<EFBFBD>,<2C>,<2C><19><1E>W<EFBFBD>W<EFBFBD><1D>J<EFBFBD>J<EFBFBD><12> <0E> 
<EFBFBD>
<EFBFBD><EFBFBD>
 s<00>9A#D! N)r<>)rrrrrFrZrrCr<>rr<>r4r<>rr<>rrrrr r<>r<>ss<00><00>3<>;<3B><1C>;<3B>H<01>v<EFBFBD>H<01>c<EFBFBD>H<01>.<2E>&<26>.<2E>,<2C>.<2E>s<EFBFBD>.<2E> b<01><0F> b<01>%<25><03>%<25>T<EFBFBD>/<2F>5J<35>%<25>
<EFBFBD>T<EFBFBD>
rr<><00>__main__z!=== GOAP Executor Module Test ===)<01>SystemHealthGoal)<02>CheckSystemHealth<74>CleanupResources)rc<00><00><>K<00>t<00>}dddddddd<08>i}t<00>}|j||<01>}|s td <09>ytd
t |j
<00><00>d <0B><03>t <00>}t|<04>}t|d d iddi<01><10>}td<11>|j||d<07><12><00>d{<00><02><03>}td<13>td|j<00><00><02>td|j<00><00><02>td|j<00><00><02>td|jd<18>d<19><03>td<1A>ttj|j!<00>d<06><1B><00>y7<00><><EFBFBD>w)Nr<4E><00>-<00><<00>U<00>0rGF)r<><00>memory_percent<6E> disk_percent<6E> uptime_hours<72> recent_errors<72>health_checkedz No plan foundz
Plan created: z actions<6E>user_id<69> test_user<65> test_modeT)r#r&r'z
=== Executing Plan ===)rvz
=== Execution Report ===z Success: zActions completed: zActions failed: zExecution time: r<>r<>z
=== Executor Stats ===rn)rrr5rer<>r<>rFr<>r"r<>r6r7r8r9ra<00>dumpsr<73>)r<>r#rwr5<00>exec<65>monitorr<72>r<>s r <00>test_executionrdsX<00><00><><00><1F>!<21><04> <14>!<21>"$<24> "<22> "<22>!"<22>"'<27> <0E> 
<EFBFBD> <0B><1E>-<2D><07><16>|<7C>|<7C>D<EFBFBD>+<2B>.<2E><04><13> <11>/<2F> "<22> <12> <0A> <20><13>T<EFBFBD>\<5C>\<5C>!2<> 3<>8<EFBFBD><<3C>=<3D><1C>~<7E><04>"<22>4<EFBFBD>(<28><07>#<23>#<23>#<23>[<5B>1<>'<27><14>.<2E>
<EFBFBD><07> <0E>(<28>)<29><1B>(<28>(<28><14>w<EFBFBD>%<25>(<28>P<>P<><06> <0A>*<2A>+<2B> <0A> <09>&<26>.<2E>.<2E>)<29>*<2A>+<2B> <0A>#<23>F<EFBFBD>$<<3C>$<<3C>#=<3D>><3E>?<3F> <0A> <20><16>!6<>!6<> 7<>8<>9<> <0A> <20><16>!6<>!6<>s<EFBFBD> ;<3B>1<EFBFBD>=<3D>><3E> <0A>(<28>)<29> <0A>d<EFBFBD>j<EFBFBD>j<EFBFBD><14><1E><1E>)<29>!<21>4<>5<>Q<01>s<00>B+E<01>-E<04>.B,E)+rr<>rsra<00>typingrrrrr<00> dataclassesrr <00>enumr
r <00>pathlibr r r<>rrrrwrrr<00>goalsrrr"r4rFr<>r<>r<>rrerrr r<00>runrrr <00><module>r!s<><00><01><04>
<0F> <0B> <0B>6<>6<>(<28><1B><18><1D>6<>6<>1<>1<><16><16>D<EFBFBD><16> <0B>
<EFBFBD>
<EFBFBD> <0B>
<EFBFBD>& <0B>
<EFBFBD>
<EFBFBD> <0B>
<EFBFBD>8|
<EFBFBD>|
<EFBFBD>~ G
<EFBFBD>G
<EFBFBD>T?
<EFBFBD>?
<EFBFBD>F <18>><3E><08> <0C>z<EFBFBD><19> <09>
-<2D>.<2E>&<26>;<3B>#<23>.6<>b<10>G<EFBFBD>K<EFBFBD>K<EFBFBD><0E> <20>!<21>sr