This guide helps you go from zero to a working Sierra Dev setup β where you can write structured invokers, generate standalone scripts, and produce CLI-ready YAML configs.
importsierra# Define the invokerinvoker=sierra.InvokerScript(name="greet",description="Prints a personalized greeting message.")# Dependency functions@invoker.dependancydefrandom_function_one(param:int)->int:returnparam*2@invoker.dependancydefrandom_function_two(message:str)->str:returnmessage.upper()@invoker.dependancydefrandom_function_three(value:float)->float:returnvalue/3.14@invoker.dependancydefrandom_function_four(flag:bool)->bool:returnnotflag# Main entrypoint@invoker.entry_pointdefrun(name:sierra.Param[str|None,sierra.SierraOption(description="The name of the person to greet.",mandatory="MANDATORY")],polite:sierra.Param[bool|None,sierra.SierraOption(description="Whether to include a polite phrase in the greeting.")]=False,)->None:ifnameisNone:result=sierra.create_error_result("Missing mandatory parameter: name")else:greeting=f"Hello, {name}!"ifpolite:greeting=f"Good day to you, {name}!"result=sierra.create_tree_result([greeting])print(result)# Loader functiondefload(client:sierra.SierraDevelopmentClient)->None:client.load_invoker(invoker)
importsierraclient=sierra.SierraDevelopmentClient(environment_name="default_env",logger=sierra.UniversalLogger(name="Sierra",level=sierra.sierra_internal_logger.LogLevel.DEBUG,),)# Load all scripts from the environmentclient.load_invokers_from_scripts()# Compile to standalone Python + YAML configclient.compiler.compile()