@@ -332,7 +332,7 @@ def __init__(
332332 chat_completion = False ,
333333 ignore_working = False ,
334334 rawdog = False ,
335- external_exec = False ,
335+ internal_exec = False ,
336336 confirm_script = False ,
337337 interpreter = "python" ,
338338 * args ,
@@ -352,7 +352,7 @@ def __init__(
352352
353353 self .RawDog = RawDog (
354354 quiet = quiet ,
355- external_exec = external_exec ,
355+ internal_exec = internal_exec ,
356356 confirm_script = confirm_script ,
357357 interpreter = interpreter ,
358358 prettify = True ,
@@ -535,6 +535,9 @@ def __init__(
535535 self .disable_stream = False
536536 self .provider = provider
537537 self .disable_coloring = False
538+ self .internal_exec = internal_exec
539+ self .confirm_script = confirm_script
540+ self .interpreter = interpreter
538541 self .rawdog = rawdog
539542 self .__init_time = time .time ()
540543 self .__start_time = time .time ()
@@ -842,6 +845,30 @@ def do_last_response(self, line):
842845 is_json = True ,
843846 )
844847
848+ @busy_bar .run ()
849+ def do_exec (self , line ):
850+ """Exec python code in last response with RawDog"""
851+ last_response = self .bot .get_message (self .bot .last_response )
852+ assert last_response , "Last response is null"
853+ assert "```python" in last_response , "Last response has no python code"
854+ if self .rawdog :
855+ self .RawDog .main (last_response )
856+ else :
857+ rawdog = RawDog (
858+ quiet = self .quiet ,
859+ internal_exec = self .internal_exec ,
860+ confirm_script = self .confirm_script ,
861+ interpreter = self .interpreter ,
862+ prettify = self .prettify ,
863+ )
864+ rawdog .main (last_response )
865+
866+ @busy_bar .run ()
867+ def do_rawdog (self , line ):
868+ """Repeat executing last rawdog's python code"""
869+ assert self .rawdog , "Session not in rawdog mode. Restart with --rawdog"
870+ self .default (self .bot .get_message (self .bot .last_response ))
871+
845872 @busy_bar .run ()
846873 def default (self , line , exit_on_error : bool = False ):
847874 """Chat with LLM"""
@@ -854,10 +881,11 @@ def default(self, line, exit_on_error: bool = False):
854881 self .__start_time = time .time ()
855882 busy_bar .start_spinning ()
856883 ai_response = self .bot .chat (line , stream = False )
884+ busy_bar .stop_spinning ()
857885 is_feedback = self .RawDog .main (ai_response )
858886 if is_feedback :
859887 return self .default (self .bot .chat (is_feedback ))
860- busy_bar . stop_spinning ()
888+ self . __end_time = time . time ()
861889
862890 else :
863891 self .__start_time = time .time ()
@@ -1151,10 +1179,10 @@ class ChatInteractive:
11511179 help = "Generate and auto-execute Python scripts - (experimental)" ,
11521180 )
11531181 @click .option (
1154- "-ex " ,
1155- "--external -exec" ,
1182+ "-ix " ,
1183+ "--internal -exec" ,
11561184 is_flag = True ,
1157- help = "RawDog : Execute scripts with system's python interpreter" ,
1185+ help = "RawDog : Execute scripts with exec function instead of out-of-script interpreter" ,
11581186 )
11591187 @click .option (
11601188 "-cs" ,
@@ -1200,7 +1228,7 @@ def interactive(
12001228 chat_completion ,
12011229 ignore_working ,
12021230 rawdog ,
1203- external_exec ,
1231+ internal_exec ,
12041232 confirm_script ,
12051233 interpreter ,
12061234 ):
@@ -1226,7 +1254,7 @@ def interactive(
12261254 chat_completion ,
12271255 ignore_working ,
12281256 rawdog = rawdog ,
1229- external_exec = external_exec ,
1257+ internal_exec = internal_exec ,
12301258 confirm_script = confirm_script ,
12311259 interpreter = interpreter ,
12321260 )
@@ -1437,10 +1465,10 @@ class ChatGenerate:
14371465 help = "Generate and auto-execute Python scripts - (experimental)" ,
14381466 )
14391467 @click .option (
1440- "-ex " ,
1441- "--external -exec" ,
1468+ "-ix " ,
1469+ "--internal -exec" ,
14421470 is_flag = True ,
1443- help = "RawDog : Execute scripts with system's python interpreter" ,
1471+ help = "RawDog : Execute scripts with exec function instead of out-of-script interpreter" ,
14441472 )
14451473 @click .option (
14461474 "-cs" ,
@@ -1486,7 +1514,7 @@ def generate(
14861514 with_copied ,
14871515 ignore_working ,
14881516 rawdog ,
1489- external_exec ,
1517+ internal_exec ,
14901518 confirm_script ,
14911519 interpreter ,
14921520 ):
@@ -1511,7 +1539,7 @@ def generate(
15111539 quiet ,
15121540 ignore_working = ignore_working ,
15131541 rawdog = rawdog ,
1514- external_exec = external_exec ,
1542+ internal_exec = internal_exec ,
15151543 confirm_script = confirm_script ,
15161544 interpreter = interpreter ,
15171545 )
0 commit comments