Skip to content

Commit 567a81c

Browse files
author
prima
committed
feat: Added option to change amount of thoughts the agent takes, along with fixing the choice addition
1 parent 9b5d1f9 commit 567a81c

File tree

1 file changed

+97
-18
lines changed

1 file changed

+97
-18
lines changed

klite.embd

Lines changed: 97 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24060,6 +24060,13 @@ else
2406024060
}
2406124061
}
2406224062

24063+
let originalLoadSelectedFile = load_selected_file
24064+
24065+
load_selected_file = (file) => {
24066+
loadingNewGame = true
24067+
originalLoadSelectedFile(file)
24068+
}
24069+
2406324070
window.addEventListener('load', () => {
2406424071
let hasAppended = false;
2406524072
document.querySelector("#topbtn_save_load .nav-link").onclick = () => {
@@ -25022,6 +25029,7 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2502225029
return output.filter(text => text.length > 0)
2502325030
}
2502425031

25032+
var loadingNewGame = true
2502525033
let originalRepackInstructTurns = repack_instruct_turns, cotOverrideRepack = false;
2502625034

2502725035
repack_instruct_turns = (input, usertag, aitag, systag, allow_blank, filterOutActions = (localsettings?.agentHideCOT)) => {
@@ -25050,25 +25058,24 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2505025058
return out
2505125059
})
2505225060

25053-
for (let i = combined_chunks.length - 1; i >= 0 && i > combined_chunks.length - 10; i--)
25061+
if (loadingNewGame)
2505425062
{
25055-
let elem = combined_chunks[i]
25056-
if (elem.message.indexOf("Action: ") === 0)
25057-
{
25058-
let actionJson = elem.message.replace("Action:", "").trim()
25059-
try
25060-
{
25061-
let actionObj = JSON.parse(actionJson.replaceAll(""", `"`))
25062-
if (actionObj?.command?.name === "ask_user" && Array.isArray(actionObj?.command?.args?.suggestionsToPickFrom))
25063-
{
25064-
setSuggestions(actionObj?.command?.args?.suggestionsToPickFrom.map(String))
25065-
break
25063+
loadingNewGame = false
25064+
for (let i = combined_chunks.length - 1; i >= 0 && i > combined_chunks.length - 10; i--) {
25065+
let elem = combined_chunks[i]
25066+
if (elem.message.indexOf("Action: ") === 0) {
25067+
let actionJson = elem.message.replace("Action:", "").trim()
25068+
try {
25069+
let actionObj = JSON.parse(actionJson.replaceAll(""", `"`))
25070+
if (actionObj?.command?.name === "ask_user" && Array.isArray(actionObj?.command?.args?.suggestionsToPickFrom)) {
25071+
setSuggestions(actionObj?.command?.args?.suggestionsToPickFrom.map(String))
25072+
break
25073+
}
25074+
}
25075+
catch (e) {
25076+
// Suppress errors
2506625077
}
2506725078
}
25068-
catch (e)
25069-
{
25070-
// Surpress errors
25071-
}
2507225079
}
2507325080
}
2507425081

@@ -25285,7 +25292,7 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2528525292
return wistr
2528625293
}
2528725294

25288-
let recentActions = [], maxActionsInHistory = 20, maxThoughtsWithoutUserInput = 5, currentAgentCycle = null, endCurrent = false
25295+
let recentActions = [], maxActionsInHistory = 20, currentAgentCycle = null, endCurrent = false
2528925296

2529025297
let runAgentCycle = async (initialPrompt = undefined) => {
2529125298
endCurrent = false
@@ -25317,7 +25324,7 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2531725324
let lastThoughtWasBlank = false
2531825325

2531925326
Array(...document.getElementsByClassName("stopThinking")).forEach(elem => elem.classList.remove("hidden"))
25320-
for (let i = 0; i < maxThoughtsWithoutUserInput && endCurrent === false; i++)
25327+
for (let i = 0; i < localsettings.agentCOTMax && endCurrent === false; i++)
2532125328
{
2532225329
clearSuggestions()
2532325330
let validCommands = getEnabledCommands().map(command => command.name)
@@ -25492,11 +25499,14 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2549225499
originalDisplaySettings()
2549325500
document.getElementById("agentBehaviour").checked = localsettings.agentBehaviour;
2549425501
document.getElementById("agentHideCOT").checked = localsettings.agentHideCOT;
25502+
document.getElementById("agentCOTMax").value = localsettings.agentCOTMax;
25503+
document.getElementById("agentCOTMaxnumeric").value = localsettings.agentCOTMax;
2549525504
}
2549625505

2549725506
confirm_settings = () => {
2549825507
localsettings.agentBehaviour = (document.getElementById("agentBehaviour").checked ? true : false);
2549925508
localsettings.agentHideCOT = (document.getElementById("agentHideCOT").checked ? true : false);
25509+
localsettings.agentCOTMax = document.getElementById("agentCOTMax").value;
2550025510
originalConfirmSettings()
2550125511
}
2550225512

@@ -25521,6 +25531,7 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2552125531
}
2552225532

2552325533
restart_new_game = () => {
25534+
loadingNewGame = true
2552425535
currentChainOfThought = []
2552525536
recentActions = []
2552625537
clearSuggestions()
@@ -25688,6 +25699,10 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2568825699
{
2568925700
localsettings.agentHideCOT = true
2569025701
}
25702+
if (localsettings?.agentCOTMax == undefined)
25703+
{
25704+
localsettings.agentCOTMax = 5
25705+
}
2569125706

2569225707
let createSettingElemBool = (inputElemId, labelTitle, labelText) => {
2569325708
let settingLabelElem = document.createElement("div")
@@ -25705,6 +25720,67 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2570525720
settingLabelElem.append(settingInput)
2570625721
return settingLabelElem
2570725722
}
25723+
25724+
let createSettingElemRange = (inputElemId, labelTitle, labelText, min, max, step, value) => {
25725+
let settingLabelElem = document.createElement("div")
25726+
settingLabelElem.classList.add("settinglabel")
25727+
let settingDiv = document.createElement("div")
25728+
settingDiv.classList.add("justifyleft", "settingsmall")
25729+
settingDiv.innerHTML = `${labelTitle} <span class="helpicon">?<span class="helptext">${labelText}</span></span>`
25730+
25731+
let settingInputNumeric = document.createElement("input")
25732+
settingInputNumeric.type = "numeric"
25733+
settingInputNumeric.min = min
25734+
settingInputNumeric.max = max
25735+
settingInputNumeric.step = step
25736+
settingInputNumeric.value = value
25737+
settingInputNumeric.title = labelTitle
25738+
settingInputNumeric.id = `${inputElemId}numeric`
25739+
settingInputNumeric.classList.add("justifyright", "flex-push-right", "settingsmall", "widerinput")
25740+
settingInputNumeric.style = "margin:0px 0px 0px auto;"
25741+
settingLabelElem.append(settingDiv)
25742+
settingLabelElem.append(settingInputNumeric)
25743+
25744+
let settingInput = document.createElement("input")
25745+
settingInput.type = "range"
25746+
settingInput.min = min
25747+
settingInput.max = max
25748+
settingInput.step = step
25749+
settingInput.value = value
25750+
settingInput.title = labelTitle
25751+
settingInput.id = inputElemId
25752+
settingInput.style = "margin:0px 0px 0px auto;"
25753+
25754+
settingInputNumeric.oninput = () => {
25755+
settingInput.value = settingInputNumeric.value;
25756+
}
25757+
25758+
settingInput.oninput = () => {
25759+
settingInputNumeric.value = settingInput.value;
25760+
}
25761+
25762+
let inputDiv = document.createElement("div")
25763+
inputDiv.append(settingInput)
25764+
25765+
let minMaxDiv = document.createElement("div")
25766+
minMaxDiv.classList.add("settingminmax")
25767+
let minDiv = document.createElement("div")
25768+
minDiv.classList.add("justifyleft")
25769+
minDiv.innerText = min
25770+
let maxDiv = document.createElement("div")
25771+
maxDiv.classList.add("justifyright")
25772+
maxDiv.innerText = max
25773+
minMaxDiv.append(minDiv)
25774+
minMaxDiv.append(maxDiv)
25775+
25776+
let settingElem = document.createElement("div")
25777+
settingElem.style.width = "100%"
25778+
settingElem.classList.add("settingitem")
25779+
settingElem.append(settingLabelElem)
25780+
settingElem.append(inputDiv)
25781+
settingElem.append(minMaxDiv)
25782+
return settingElem
25783+
}
2570825784
let lastSettingContainer = document.querySelector("#settingsmenuformat > .settingitem:last-child")
2570925785

2571025786
let settingLabelElem = createSettingElemBool("agentBehaviour", "Agent behaviour (experimental)", "Allows the AI to use multiple generations and certain tools to see if it can improve results. This can include web search (if enabled), dice rolling, and formula evaluation. This mode requires instruct start and end tags for all roles. Image and TTS only is enabled for local KCPP users.")
@@ -25719,6 +25795,9 @@ let checkFinalThoughtsPrompt = `Action: {"command":{"name":"thought","args":{"me
2571925795
settingLabelElem = createSettingElemBool("agentHideCOT", "Hide agent COT (experimental)", "Hides agent thinking steps (such as searches)")
2572025796
lastSettingContainer.append(settingLabelElem)
2572125797

25798+
settingLabelElem = createSettingElemRange("agentCOTMax", "Maximum agent actions", "Defines the maximum number of actions the agent can take without a user input", 1, 20, 1, 5)
25799+
lastSettingContainer.append(settingLabelElem)
25800+
2572225801
createStopThinkingButton()
2572325802
})
2572425803

0 commit comments

Comments
 (0)