|
|
@@ -1,99 +1,48 @@ |
|
|
|
from cli_Context import * |
|
|
|
from memory_Context import * |
|
|
|
from llm import * |
|
|
|
from memory import * |
|
|
|
|
|
|
|
# Greet the user |
|
|
|
@llm_by_value |
|
|
|
def cli_greetUser( |
|
|
|
c: cli_Context |
|
|
|
) -> cli_Context: |
|
|
|
c.outputGreeting = "OGS Memory Command Line Interface" |
|
|
|
c.recentField = "outputGreeting" |
|
|
|
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: |
|
|
|
c: memory_Context |
|
|
|
) -> memory_Context: |
|
|
|
if ( |
|
|
|
c.recentField == "cMemory" and |
|
|
|
c.cMemory.recentField == "hiddenItems" |
|
|
|
c.recentField == "launched" and |
|
|
|
c.launched == True |
|
|
|
): |
|
|
|
c.outputMatchedItems = "Items matched! Go on:" |
|
|
|
c.recentField = "outputMatchedItems" |
|
|
|
c.outputGreeting = "OGS Memory Command Line Interface" |
|
|
|
c.recentField = "outputGreeting" |
|
|
|
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 |
|
|
|
## 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 |
|
|
|
##} |
|
|
|
# |
|
|
|
# Conditions: |
|
|
|
# 1. Index out of bounds: less than minimum |
|
|
|
# 2. Index out of bounds: greater than maximum |
|
|
|
# 3. Item is already hidden |
|
|
|
## Ask user to select another item to have a pair of selected items |
|
|
|
#@llm_by_value |
|
|
|
#def cli_shouldReportInvalidItemSelection( |
|
|
|
#def cli_shouldPromptSelection( |
|
|
|
# c: cli_Context |
|
|
|
#) -> cli_Context: |
|
|
|
# if ( |
|
|
@@ -108,20 +57,77 @@ def cli_shouldReportMismatchedItems( |
|
|
|
# c.recentField = "none" |
|
|
|
# return c |
|
|
|
##} |
|
|
|
|
|
|
|
# Show help (aka commands) |
|
|
|
@llm_by_value |
|
|
|
def cli_showHelp( |
|
|
|
c: cli_Context |
|
|
|
) -> cli_Context: |
|
|
|
if ( |
|
|
|
c.input == "h" or |
|
|
|
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 |
|
|
|
#} |
|
|
|
# |
|
|
|
## 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 |
|
|
|
###} |
|
|
|
# |
|
|
|
## Show help (aka commands) |
|
|
|
#@llm_by_value |
|
|
|
#def cli_showHelp( |
|
|
|
# c: cli_Context |
|
|
|
#) -> cli_Context: |
|
|
|
# if ( |
|
|
|
# c.input == "h" or |
|
|
|
# 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 |
|
|
|
##} |