from memory_Context import * from llm import * # Greet the user # # Conditions: # 1. Just launched @llm_by_value def cli_greetUser( c: memory_Context ) -> memory_Context: if ( c.recentField == "didLaunch" and c.didLaunch == True ): c.outputGreeting = "OGS Memory Command Line Interface" c.recentField = "outputGreeting" return c #} c.recentField = "none" return c #} # Show help (aka commands) # # Conditions: # 1. Just launched # 1. `h` or `help` was entered @llm_by_value def cli_showHelp( c: memory_Context ) -> memory_Context: if ( ( c.recentField == "didLaunch" and c.didLaunch == True ) or ( c.recentField == "input" and c.input == "h" ) or ( c.recentField == "input" and c.input == "help" ) ): c.outputHelp = "Commands:\n\te, exit, q, quit\n\t\tExit\n\th, help\n\t\tList commands\n\t1, 2, 3, ...\n\t\tSelect item\nEnter your choice:" c.recentField = "outputHelp" return c #} c.recentField = "none" return c #} ## Select item ## ## Conditions: ## 1. Id is digit, in bounds and not hidden #@llm_by_value #def cli_selectItem( # c: cli_Context #) -> cli_Context: # if ( # c.input.isdigit() # ): # # User ids start with 1 while memory module has ids starting with 0 # # Convert cli item id to memory item id # c.cMemory.selectedId = int(c.input) - 1 # c.cMemory = memory_selectItem(c.cMemory) # c.recentField = "cMemory" # return c # #} # c.recentField = "none" # return c ##} # ## Ask user to select another item to have a pair of selected items #@llm_by_value #def cli_shouldPromptSelection( # c: cli_Context #) -> cli_Context: # if ( # c.recentField == "cMemory" and # c.cMemory.recentField == "selectedItems" and # len(c.cMemory.selectedItems) == 1 # ): # c.outputPromptSelection = "Select the second item now:" # c.recentField = "outputPromptSelection" # return c # #} # c.recentField = "none" # return c ##} # ## Report matched items #@llm_by_value #def cli_shouldReportMatchedItems( # c: cli_Context #) -> cli_Context: # if ( # c.recentField == "cMemory" and # c.cMemory.recentField == "hiddenItems" # ): # c.outputMatchedItems = "Items matched! Go on:" # c.recentField = "outputMatchedItems" # return c # #} # c.recentField = "none" # return c ##} # ## Report mismatched items #@llm_by_value #def cli_shouldReportMismatchedItems( # c: cli_Context #) -> cli_Context: # if ( # c.recentField == "cMemory" and # c.cMemory.recentField == "mismatchedItems" # ): # c.outputMatchedItems = "Wrong! Try again:" # c.recentField = "outputMismatchedItems" # return c # #} # c.recentField = "none" # return c ##} # ## Report selection of invalid item ids ## ## Conditions: ## 1. Index out of bounds: less than minimum ## 2. Index out of bounds: greater than maximum ## 3. Item is already hidden ##@llm_by_value ##def cli_shouldReportInvalidItemSelection( ## c: cli_Context ##) -> cli_Context: ## if ( ## c.recentField == "cMemory" and ## c.cMemory.recentField == "selectedItems" and ## len(c.cMemory.selectedItems) == 1 ## ): ## c.outputPromptSelection = "Select the second item now:" ## c.recentField = "outputPromptSelection" ## return c ## #} ## c.recentField = "none" ## return c ###}