@@ -40,6 +40,29 @@ def get_optimizable_functions(
4040 return path_to_qualified_names
4141
4242
43+ @server .feature ("optimizeFunction" )
44+ def optimize_function (server : CodeflashLanguageServer , params : OptimizeFunctionParams ) -> dict [str , str ]:
45+ file_path = Path (uris .to_fs_path (params .textDocument .uri ))
46+ server .optimizer .args .function = params .functionName
47+ server .optimizer .args .file = file_path
48+ optimizable_funcs , _ = server .optimizer .get_optimizable_functions ()
49+ if not optimizable_funcs :
50+ return {"functionName" : params .functionName , "status" : "not found" , "args" : None }
51+ fto = optimizable_funcs .popitem ()[1 ][0 ]
52+ server .optimizer .current_function_being_optimized = fto
53+ return {"functionName" : params .functionName , "status" : "success" , "info" : fto .server_info }
54+
55+
56+ @server .feature ("second_step_in_optimize_function" )
57+ def second_step_in_optimize_function (server : CodeflashLanguageServer , params : OptimizeFunctionParams ) -> dict [str , str ]: # noqa: ARG001
58+ return {
59+ "functionName" : params .functionName ,
60+ "status" : "success" ,
61+ "generated_tests" : "5" ,
62+ "generated_optimizations" : "3" ,
63+ }
64+
65+
4366if __name__ == "__main__" :
4467 from codeflash .cli_cmds .console import console
4568
0 commit comments