Skip to content

Commit

Permalink
save node as new sibling
Browse files Browse the repository at this point in the history
  • Loading branch information
socketteer committed Apr 22, 2021
1 parent 18276bd commit 5c4373f
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 9 deletions.
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Node Metadata: `Control+Shift+N`

### Mode

Toggle edit: `e`, `Control-e`
Toggle edit / save edits: `e`, `Control-e`

Toggle visualize: `j`, `Control-j`

Expand Down Expand Up @@ -144,6 +144,10 @@ New Sibling: `Alt-Down`

### Edit text

Toggle edit / save edits: `Control-e`

Save edits as new sibling: `Alt-e`

Click to edit history: `Control-click`

Click to select token: `Alt-click`
Expand Down
4 changes: 4 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# priority

- memory system
- enable/disable memory entries
- goto root

# bugs

* key bindings only work in most recent tab
Expand Down
15 changes: 13 additions & 2 deletions controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -786,6 +786,18 @@ def save_tree(self, popup=True):
except Exception as e:
messagebox.showerror(title="Error", message=f"Failed to Save!\n{str(e)}")

@metadata(name="Save as sibling", keys=["<Alt-e>"], display_key="alt-e")
def save_as_sibling(self):

if self.display.mode == "Edit":
new_text = self.display.textbox.get("1.0", 'end-1c')
new_active_text = self.display.secondary_textbox.get("1.0", 'end-1c')
self.escape()
sibling = self.state.create_sibling()
self.nav_select(node_id=sibling['id'])
self.state.update_text(sibling, new_text, new_active_text)


@metadata(name="Export to text", keys=["<Control-Shift-KeyPress-X>"], display_key="Ctrl-Shift-X")
def export_text(self):
try:
Expand Down Expand Up @@ -979,8 +991,7 @@ def refresh_textbox(self, **kwargs):
history += node_text
#self.display.textbox.insert("end-1c", node_text, "history")
selected_text = self.state.selected_node["text"]
prompt_length = self.state.generation_settings['prompt_length'] \
- len(self.state.memory(self.state.selected_node)) - len(selected_text)
prompt_length = self.state.generation_settings['prompt_length'] - len(selected_text)

in_context = history[-prompt_length:]
if prompt_length < len(history):
Expand Down
12 changes: 6 additions & 6 deletions model.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,9 @@ def chapter(self, node):
chapter_id = get_inherited_attribute("chapter_id", node, self.tree_node_dict)
return self.chapters[chapter_id] if chapter_id else None

def memory(self, node):
memory = get_inherited_attribute("memory", node, self.tree_node_dict)
return memory if memory else self.generation_settings["memory"]
# def memory(self, node):
# memory = get_inherited_attribute("memory", node, self.tree_node_dict)
# return memory if memory else self.generation_settings["memory"]

def node_ancestry_text(self, node=None):
node = node if node else self.selected_node
Expand Down Expand Up @@ -356,7 +356,7 @@ def create_sibling(self, node=None, update_selection=True):
if not node:
return
parent = self.parent(node)
self.create_child(parent=parent, update_selection=update_selection)
return self.create_child(parent=parent, update_selection=update_selection)

def create_parent(self, node=None):
node = node if node else self.selected_node
Expand Down Expand Up @@ -475,7 +475,7 @@ def update_text(self, node, text, active_text=None, modified_flag=True):
assert node["id"] in self.tree_node_dict, text

# Remove trailing spaces
# count spaces that will be removedbb
# count spaces that will be removed
num_spaces = 0
while text.endswith(" "):
num_spaces += 1
Expand Down Expand Up @@ -821,7 +821,7 @@ def generate_continuation(self, node=None, update_selection=False):
prompt = "".join(self.node_ancestry_text(children[0])[0])
#memory = self.memory(node)
memory_list = self.construct_memory(node)
memory = '\n'.join(memory['text'] for memory in memory_list)
memory = ' '.join(memory['text'] for memory in memory_list)
prompt_length = self.generation_settings['prompt_length'] #- len(memory)
prompt = prompt[-prompt_length:]
print("Memory:\n", memory)
Expand Down

0 comments on commit 5c4373f

Please sign in to comment.