mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-06-05 21:59:24 +02:00
Restructure the execute
API in bridge.lua
This commit is contained in:
59
bridge.lua
59
bridge.lua
@ -185,13 +185,9 @@ return function(_python, _bridged)
|
|||||||
-- Userscript API: World Info
|
-- Userscript API: World Info
|
||||||
--==========================================================================
|
--==========================================================================
|
||||||
|
|
||||||
local inmods = setmetatable({}, metawrapper)
|
|
||||||
local genmods = setmetatable({}, metawrapper)
|
|
||||||
local outmods = setmetatable({}, metawrapper)
|
|
||||||
|
|
||||||
local genmod_comparison_context = nil
|
local genmod_comparison_context = nil
|
||||||
local generating = true
|
koboldbridge.generating = true
|
||||||
local userstate = "inmod"
|
koboldbridge.userstate = "inmod"
|
||||||
|
|
||||||
local fields = setmetatable({}, metawrapper)
|
local fields = setmetatable({}, metawrapper)
|
||||||
|
|
||||||
@ -207,7 +203,7 @@ return function(_python, _bridged)
|
|||||||
|
|
||||||
---@return nil
|
---@return nil
|
||||||
local function maybe_save_genmod_comparison_context()
|
local function maybe_save_genmod_comparison_context()
|
||||||
if userstate == "genmod" and genmod_comparison_context == nil then
|
if koboldbridge.userstate == "genmod" and genmod_comparison_context == nil then
|
||||||
genmod_comparison_context = kobold.worldinfo:compute_context()
|
genmod_comparison_context = kobold.worldinfo:compute_context()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -666,7 +662,7 @@ return function(_python, _bridged)
|
|||||||
|
|
||||||
---@return nil
|
---@return nil
|
||||||
function kobold.halt_generation()
|
function kobold.halt_generation()
|
||||||
generating = false
|
koboldbridge.generating = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -1062,6 +1058,7 @@ return function(_python, _bridged)
|
|||||||
koboldbridge.num_userscripts = 0
|
koboldbridge.num_userscripts = 0
|
||||||
for i, filename in _python.enumerate(filenames) do
|
for i, filename in _python.enumerate(filenames) do
|
||||||
bridged.load_callback(filename)
|
bridged.load_callback(filename)
|
||||||
|
---@type KoboldUserScript
|
||||||
local _userscript = old_loadfile(join_folder_and_filename(bridged.userscript_path, filename), "t", koboldbridge.get_universe(filename))()
|
local _userscript = old_loadfile(join_folder_and_filename(bridged.userscript_path, filename), "t", koboldbridge.get_universe(filename))()
|
||||||
local userscript = deepcopy(KoboldUserScriptModule)
|
local userscript = deepcopy(KoboldUserScriptModule)
|
||||||
rawset(userscript, "_inmod", _userscript.inmod)
|
rawset(userscript, "_inmod", _userscript.inmod)
|
||||||
@ -1077,43 +1074,47 @@ return function(_python, _bridged)
|
|||||||
|
|
||||||
---@return nil
|
---@return nil
|
||||||
function koboldbridge.load_corescript(filename)
|
function koboldbridge.load_corescript(filename)
|
||||||
|
---@type KoboldCoreScript
|
||||||
local corescript = old_loadfile(join_folder_and_filename(bridged.corescript_path, filename), "t", koboldbridge.get_universe(0))()
|
local corescript = old_loadfile(join_folder_and_filename(bridged.corescript_path, filename), "t", koboldbridge.get_universe(0))()
|
||||||
koboldbridge.inmod = corescript.inmod
|
koboldbridge.inmod = corescript.inmod
|
||||||
koboldbridge.genmod = corescript.genmod
|
koboldbridge.genmod = corescript.genmod
|
||||||
koboldbridge.outmod = corescript.outmod
|
koboldbridge.outmod = corescript.outmod
|
||||||
end
|
end
|
||||||
|
|
||||||
---@return integer, any, any, any
|
function koboldbridge.execute_inmod()
|
||||||
function koboldbridge.execute()
|
local r
|
||||||
local i, g, o
|
koboldbridge.generating = true
|
||||||
local num_generated = 0
|
koboldbridge.userstate = "inmod"
|
||||||
g = {}
|
|
||||||
generating = true
|
|
||||||
userstate = "inmod"
|
|
||||||
if koboldbridge.inmod ~= nil then
|
if koboldbridge.inmod ~= nil then
|
||||||
i = koboldbridge.inmod()
|
r = koboldbridge.inmod()
|
||||||
end
|
end
|
||||||
userstate = "genmod"
|
return r
|
||||||
bridged.start_generation()
|
end
|
||||||
while generating and num_generated < bridged.get_gen_len() do
|
|
||||||
bridged.generation_step()
|
---@return any, boolean
|
||||||
|
function koboldbridge.execute_genmod()
|
||||||
|
local r
|
||||||
|
local changed = false
|
||||||
|
koboldbridge.userstate = "genmod"
|
||||||
if koboldbridge.genmod ~= nil then
|
if koboldbridge.genmod ~= nil then
|
||||||
g[num_generated + 1] = koboldbridge.genmod()
|
r = koboldbridge.genmod()
|
||||||
if genmod_comparison_context ~= kobold.worldinfo:compute_context() then
|
if genmod_comparison_context ~= kobold.worldinfo:compute_context() then
|
||||||
bridged.register_context_change()
|
changed = true
|
||||||
genmod_comparison_context = nil
|
genmod_comparison_context = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
num_generated = num_generated + 1
|
return r, changed
|
||||||
end
|
end
|
||||||
userstate = "outmod"
|
|
||||||
bridged.stop_generation()
|
function koboldbridge.execute_outmod()
|
||||||
|
local r
|
||||||
|
koboldbridge.userstate = "outmod"
|
||||||
if koboldbridge.outmod ~= nil then
|
if koboldbridge.outmod ~= nil then
|
||||||
o = koboldbridge.outmod()
|
r = koboldbridge.outmod()
|
||||||
end
|
end
|
||||||
generating = true
|
koboldbridge.generating = true
|
||||||
userstate = "inmod"
|
koboldbridge.userstate = "inmod"
|
||||||
return num_generated, i, g, o
|
return r
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user