From 769333738da17ee408b19e0d7a8b96c71e1a9d55 Mon Sep 17 00:00:00 2001 From: Gnome Ann <> Date: Fri, 17 Dec 2021 12:59:01 -0500 Subject: [PATCH] Fix behaviour of `kobold.outputs` with read-only and no prompt gen --- aiserver.py | 4 ++++ bridge.lua | 1 + 2 files changed, 5 insertions(+) diff --git a/aiserver.py b/aiserver.py index 5b70b10d..e1db156e 100644 --- a/aiserver.py +++ b/aiserver.py @@ -1908,6 +1908,8 @@ def actionsubmit(data, actionmode=0, force_submit=False): else: # Save this first action as the prompt vars.prompt = data + for i in range(vars.numseqs): + vars.lua_koboldbridge.outputs[i+1] = "" execute_outmod() if(vars.lua_koboldbridge.regeneration_required): vars.lua_koboldbridge.regeneration_required = False @@ -1943,6 +1945,8 @@ def actionsubmit(data, actionmode=0, force_submit=False): calcsubmit(data) emit('from_server', {'cmd': 'scrolldown', 'data': ''}, broadcast=True) else: + for i in range(vars.numseqs): + vars.lua_koboldbridge.outputs[i+1] = "" execute_outmod() set_aibusy(0) if(vars.lua_koboldbridge.regeneration_required): diff --git a/bridge.lua b/bridge.lua index 087c24c5..77178916 100644 --- a/bridge.lua +++ b/bridge.lua @@ -1671,6 +1671,7 @@ return function(_python, _bridged) setmetatable(koboldbridge.outputs, nil) for k, v in old_next, koboldbridge.outputs, nil do if type(v) ~= "string" then + error("`kobold.outputs` must be a 1D list of strings, but found a non-string element at index " .. k) return r end if v ~= _outputs[k] then