sillytavern-utils-lib 1.0.63 → 1.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  "use strict";var Et=Object.defineProperty;var Rt=(m,i,o)=>i in m?Et(m,i,{enumerable:!0,configurable:!0,writable:!0,value:o}):m[i]=o;var A=(m,i,o)=>Rt(m,typeof i!="symbol"?i+"":i,o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./config.cjs"),St=require("./tokenizer.cjs"),gt=require("../../../regex/engine.js"),dt=require("../../../../world-info.js"),a=require("../../../../../script.js"),_t=require("../../../../power-user.js"),ht=require("../../../../group-chats.js");class Ot{constructor(i){A(this,"messages",[]);A(this,"tokenizer");A(this,"maxContext");A(this,"currentTokenCount",0);this.tokenizer=new St.Tokenizer,this.maxContext=i}getTokenCount(i){var o,g;return i.content?((g=(o=i.source)==null?void 0:o.extra)==null?void 0:g.token_count)??this.tokenizer.encode(i.content).length:0}canFit(i){return this.currentTokenCount+this.getTokenCount(i)<=this.maxContext}add(i){if(!i.content)return!0;const o=this.getTokenCount(i);return this.currentTokenCount+o>this.maxContext?!1:(this.messages.push(i),this.currentTokenCount+=o,!0)}addFront(i){if(!i.content)return!0;const o=this.getTokenCount(i);return this.currentTokenCount+o>this.maxContext?!1:(this.messages.unshift(i),this.currentTokenCount+=o,!0)}addMany(i){const o=i.filter(u=>u.content),g=o.map(u=>this.getTokenCount(u)),U=g.reduce((u,P)=>u+P,0);if(this.currentTokenCount+U<=this.maxContext)return this.messages.push(...o),this.currentTokenCount+=U,!0;let b=0;const f=[];for(let u=o.length-1;u>=0;u--){const P=o[u],v=g[u];if(this.currentTokenCount+b+v<=this.maxContext)f.unshift(P),b+=v;else break}return f.length>0&&(this.messages.push(...f),this.currentTokenCount+=b),f.length===o.length}insert(i,o){if(!o.content)return!0;const g=this.getTokenCount(o);return this.currentTokenCount+g>this.maxContext?!1:(this.messages.splice(i,0,o),this.currentTokenCount+=g,!0)}getMessages(){return this.messages}}async function At(m,{targetCharacterId:i,presetName:o,instructName:g,contextName:U,syspromptName:b,maxContext:f,includeNames:u,ignoreCharacterFields:P,ignoreAuthorNote:v,ignoreWorldInfo:Q,messageIndexesBetween:k}={}){var Z,tt,et,ot,nt,st,rt,it,at,pt,ct,lt,ut,mt;if(!["textgenerationwebui","openai"].includes(m))throw new Error("Unsupported API");const n=SillyTavern.getContext();let{description:$,personality:q,persona:J,scenario:z,mesExamples:Pt,system:y,jailbreak:yt}=P?{description:"",personality:"",persona:"",scenario:"",mesExamples:"",system:"",jailbreak:""}:n.getCharacterCardFields({chid:i});const E=m==="textgenerationwebui"?(Z=n.getPresetManager("instruct"))==null?void 0:Z.getCompletionPresetByName(g):void 0,H=!!(E!=null&&E.enabled);let x=s.st_parseMesExamples(Pt,H);function xt(){var e,l;if(typeof f=="number")return f;if(!f||f==="active"||!o)return s.st_getMaxContextSize();if(typeof f=="number")return f;let t;if(m==="textgenerationwebui"){const r=(e=n.getPresetManager("textgenerationwebui"))==null?void 0:e.getCompletionPresetByName(o);t=r==null?void 0:r.max_length}else{const r=(l=n.getPresetManager("openai"))==null?void 0:l.getCompletionPresetByName(o);t=r==null?void 0:r.openai_max_context}return typeof t=="number"?t:s.st_getMaxContextSize()}let M=[];const W=xt();if(W<=0)return{result:[],warnings:M};const c=new Ot(W),Mt=n.ToolManager.isToolCallingSupported(),K=(k==null?void 0:k.start)??0,L=k!=null&&k.end?k.end+1:void 0;let w=K===-1&&L===0?[]:n.chat.slice(K,L).filter(t=>{var e;return!t.is_system||Mt&&Array.isArray((e=t.extra)==null?void 0:e.tool_invocations)});w=await Promise.all(w.map(async(t,e)=>{var j,D;let l=t.mes,r=t.is_user?gt.regex_placement.USER_INPUT:gt.regex_placement.AI_OUTPUT,p={isPrompt:!0,depth:w.length-e-1},d=s.st_getRegexedString(l,r,p);return d=await s.st_appendFileContent(t,d),(j=t==null?void 0:t.extra)!=null&&j.append_title&&((D=t==null?void 0:t.extra)!=null&&D.title)&&(d=`${d}
2
2
 
3
- ${t.extra.title}`),{...t,mes:d,index:e}}));const Ct=w.map(t=>dt.world_info_include_names?`${t.name}: ${t.mes}`:t.mes).reverse(),{worldInfoString:Ut,worldInfoBefore:I,worldInfoAfter:N,worldInfoExamples:Tt,worldInfoDepth:kt,anBefore:V,anAfter:X}=Q?{worldInfoString:"",worldInfoBefore:"",worldInfoAfter:"",worldInfoExamples:[],worldInfoDepth:[],anBefore:[],anAfter:[]}:await n.getWorldInfoPrompt(Ct,W,!1);for(const t of Tt){const e=t.content;if(e.length===0)continue;const l=s.st_baseChatReplace(e,a.name1,a.name2),r=s.st_parseMesExamples(l,H);t.position===dt.wi_anchor_position.before?x.unshift(...r):x.push(...r)}function Y(){const t=[];for(let e=w.length-1;e>=0;e--){const l=w[e],r=l.name==="System"&&!l.is_user?"system":l.is_user?"user":"assistant";t.unshift({role:r,content:u&&r!="system"?`${l.name}: ${l.mes}`:l.mes,source:l})}c.addMany(t)}if(m==="textgenerationwebui"){const t=[...x];x&&(x=s.st_formatInstructModeExamples(x,a.name1,a.name2));const e=(tt=n.getPresetManager("sysprompt"))==null?void 0:tt.getCompletionPresetByName(b);e&&(y=n.powerUserSettings.prefer_character_prompt&&y?y:s.st_baseChatReplace(e.content,a.name1,a.name2),y=H?s.st_formatInstructModeSystemPrompt(n.substituteParams(y,a.name1,a.name2,e.content),E):y);const l={description:$,personality:q,persona:n.powerUserSettings.persona_description_position==_t.persona_description_positions.IN_PROMPT?J:"",scenario:z,system:y,char:a.name2,user:a.name1,wiBefore:I,wiAfter:N,loreBefore:I,loreAfter:N,mesExamples:x.join(""),mesExamplesRaw:t.join("")},r=(et=n.getPresetManager("context"))==null?void 0:et.getCompletionPresetByName(U);let p=s.st_renderStoryString(l,{customInstructSettings:E,customStoryString:r==null?void 0:r.story_string});p&&c.add({role:"system",content:p,ignoreInstruct:!0}),Y()}else{let t=function(h){const T=_.find(G=>G.identifier===h);if(T)return T;const ft=p.prompts.find(G=>G.identifier===h);if(ft)return ft},e=s.st_setOpenAIMessages(w),l=s.st_setOpenAIMessageExamples(x);async function r(){let[h,T]=await s.st_prepareOpenAIMessages({name2:a.name2,charDescription:$,charPersonality:q,Scenario:z,worldInfoBefore:I,worldInfoAfter:N,extensionPrompts:n.extensionPrompts,bias:"",type:"normal",quietPrompt:void 0,quietImage:void 0,cyclePrompt:"",systemPromptOverride:y,jailbreakPromptOverride:yt,personaDescription:J,messages:e,messageExamples:l},!1);c.addMany(h)}if(!o)return M.push("No preset name provided. Using default preset."),await r(),{result:c.getMessages(),warnings:M};const p=(ot=n.getPresetManager("openai"))==null?void 0:ot.getCompletionPresetByName(o);if(!p)return console.warn(`Preset not found: ${o}. Using current preset.`),M.push(`Preset not found: ${o}. Using current preset.`),r(),{result:c.getMessages(),warnings:M};let d=(nt=p.prompt_order)==null?void 0:nt.find(h=>h.character_id===a.this_chid);if(!d&&p.prompt_order&&p.prompt_order.length>0&&(d=p.prompt_order[0]),!d)return console.warn(`No prompt order found for preset: ${o}. Using current preset.`),M.push(`No prompt order found for preset: ${o}. Using current preset.`),r(),{result:c.getMessages(),warnings:M};const j=z&&p.scenario_format?n.substituteParams(p.scenario_format):"",D=q&&p.personality_format?n.substituteParams(p.personality_format):"",bt=n.substituteParams(p.group_nudge_prompt),vt=p.impersonation_prompt?n.substituteParams(p.impersonation_prompt):"",_=[];Q||_.push({role:"system",content:s.st_formatWorldInfo(I,{wiFormat:p.wi_format}),identifier:"worldInfoBefore"},{role:"system",content:s.st_formatWorldInfo(N,{wiFormat:p.wi_format}),identifier:"worldInfoAfter"}),P||_.push({role:"system",content:$,identifier:"charDescription"},{role:"system",content:D,identifier:"charPersonality"},{role:"system",content:j,identifier:"scenario"}),_.push({role:"system",content:vt,identifier:"impersonate"},{role:"system",content:bt,identifier:"groupNudge"});const R=n.extensionPrompts["1_memory"];R&&R.value&&_.push({role:s.st_getPromptRole(R.role),content:R.value,identifier:"summary",position:s.st_getPromptPosition(R.position)});const S=n.extensionPrompts["2_floating_prompt"];!v&&S&&S.value&&_.push({role:s.st_getPromptRole(S.role),content:S.value,identifier:"authorsNote",position:s.st_getPromptPosition(S.position)});const B=n.extensionPrompts["3_vectors"];B&&B.value&&_.push({role:"system",content:B.value,identifier:"vectorsMemory",position:s.st_getPromptPosition(B.position)});const O=n.extensionPrompts["4_vectors_data_bank"];O&&O.value&&_.push({role:s.st_getPromptRole(O.role),content:O.value,identifier:"vectorsDataBank",position:s.st_getPromptPosition(O.position)});const F=n.extensionPrompts.chromadb;F&&F.value&&_.push({role:"system",content:F.value,identifier:"smartContext",position:s.st_getPromptPosition(F.position)}),!P&&n.powerUserSettings.persona_description&&n.powerUserSettings.persona_description_position===_t.persona_description_positions.IN_PROMPT&&_.push({role:"system",content:n.powerUserSettings.persona_description,identifier:"personaDescription"}),d.order.forEach(h=>{if(!h.enabled)return;const T=t(h.identifier);if(T&&T.content){c.add({role:T.role??"system",content:n.substituteParams(T.content)});return}h.identifier==="chatHistory"&&Y()})}const wt=["1_memory","2_floating_prompt","3_vectors","4_vectors_data_bank","chromadb","PERSONA_DESCRIPTION","QUIET_PROMPT","DEPTH_PROMPT"];for(const t in n.extensionPrompts)if(Object.hasOwn(n.extensionPrompts,t)){const e=n.extensionPrompts[t];if(wt.includes(t)||!n.extensionPrompts[t].value||![a.extension_prompt_types.BEFORE_PROMPT,a.extension_prompt_types.IN_PROMPT].includes(e.position)||typeof e.filter=="function"&&!await e.filter())continue;const r={role:s.st_getPromptRole(e.role)??"system",content:e.value};if(e.position===a.extension_prompt_types.BEFORE_PROMPT)c.insert(e.depth,r);else if(e.position===a.extension_prompt_types.IN_PROMPT){const p=c.getMessages();c.insert(p.length-e.depth,r)}}for(const t of kt){const e=c.getMessages();c.insert(e.length-t.depth,{role:s.st_getPromptRole(t.role),content:t.entries.join(`
3
+ ${t.extra.title}`),{...t,mes:d,index:e}}));const Ct=w.map(t=>dt.world_info_include_names?`${t.name}: ${t.mes}`:t.mes).reverse(),{worldInfoString:Ut,worldInfoBefore:I,worldInfoAfter:N,worldInfoExamples:Tt,worldInfoDepth:kt,anBefore:V,anAfter:X}=Q?{worldInfoString:"",worldInfoBefore:"",worldInfoAfter:"",worldInfoExamples:[],worldInfoDepth:[],anBefore:[],anAfter:[]}:await n.getWorldInfoPrompt(Ct,W,!1);for(const t of Tt){const e=t.content;if(e.length===0)continue;const l=s.st_baseChatReplace(e,a.name1,a.name2),r=s.st_parseMesExamples(l,H);t.position===dt.wi_anchor_position.before?x.unshift(...r):x.push(...r)}function Y(){const t=[];for(let e=w.length-1;e>=0;e--){const l=w[e],r=l.name==="System"&&!l.is_user?"system":l.is_user?"user":"assistant";t.unshift({role:r,content:u&&r!="system"?`${l.name}: ${l.mes}`:l.mes,source:l})}c.addMany(t)}if(m==="textgenerationwebui"){const t=[...x];x&&(x=s.st_formatInstructModeExamples(x,a.name1,a.name2));const e=(tt=n.getPresetManager("sysprompt"))==null?void 0:tt.getCompletionPresetByName(b);e&&(y=n.powerUserSettings.prefer_character_prompt&&y?y:s.st_baseChatReplace(e.content,a.name1,a.name2),y=H?s.st_formatInstructModeSystemPrompt(n.substituteParams(y,a.name1,a.name2,e.content),E):y);const l={description:$,personality:q,persona:n.powerUserSettings.persona_description_position==_t.persona_description_positions.IN_PROMPT?J:"",scenario:z,system:y,char:a.name2,user:a.name1,wiBefore:I,wiAfter:N,loreBefore:I,loreAfter:N,mesExamples:x.join(""),mesExamplesRaw:t.join("")},r=(et=n.getPresetManager("context"))==null?void 0:et.getCompletionPresetByName(U);let p=s.st_renderStoryString(l,{customInstructSettings:E,customStoryString:r==null?void 0:r.story_string});p&&c.add({role:"system",content:p,ignoreInstruct:!0}),Y()}else{let t=function(h){const T=_.find(G=>G.identifier===h);if(T)return T;const ft=p.prompts.find(G=>G.identifier===h);if(ft)return ft},e=s.st_setOpenAIMessages(w),l=s.st_setOpenAIMessageExamples(x);async function r(){let[h,T]=await s.st_prepareOpenAIMessages({name2:a.name2,charDescription:$,charPersonality:q,Scenario:z,worldInfoBefore:I,worldInfoAfter:N,extensionPrompts:n.extensionPrompts,bias:"",type:"normal",quietPrompt:void 0,quietImage:void 0,cyclePrompt:"",systemPromptOverride:y,jailbreakPromptOverride:yt,personaDescription:J,messages:e,messageExamples:l},!1);c.addMany(h)}if(!o)return M.push("No preset name provided. Using default preset."),await r(),{result:c.getMessages(),warnings:M};const p=(ot=n.getPresetManager("openai"))==null?void 0:ot.getCompletionPresetByName(o);if(!p)return console.warn(`Preset not found: ${o}. Using current preset.`),M.push(`Preset not found: ${o}. Using current preset.`),r(),{result:c.getMessages(),warnings:M};let d=(nt=p.prompt_order)==null?void 0:nt.find(h=>h.character_id===a.this_chid);if(!d&&p.prompt_order&&p.prompt_order.length>0&&(d=p.prompt_order[p.prompt_order.length-1]),!d)return console.warn(`No prompt order found for preset: ${o}. Using current preset.`),M.push(`No prompt order found for preset: ${o}. Using current preset.`),r(),{result:c.getMessages(),warnings:M};const j=z&&p.scenario_format?n.substituteParams(p.scenario_format):"",D=q&&p.personality_format?n.substituteParams(p.personality_format):"",bt=n.substituteParams(p.group_nudge_prompt),vt=p.impersonation_prompt?n.substituteParams(p.impersonation_prompt):"",_=[];Q||_.push({role:"system",content:s.st_formatWorldInfo(I,{wiFormat:p.wi_format}),identifier:"worldInfoBefore"},{role:"system",content:s.st_formatWorldInfo(N,{wiFormat:p.wi_format}),identifier:"worldInfoAfter"}),P||_.push({role:"system",content:$,identifier:"charDescription"},{role:"system",content:D,identifier:"charPersonality"},{role:"system",content:j,identifier:"scenario"}),_.push({role:"system",content:vt,identifier:"impersonate"},{role:"system",content:bt,identifier:"groupNudge"});const R=n.extensionPrompts["1_memory"];R&&R.value&&_.push({role:s.st_getPromptRole(R.role),content:R.value,identifier:"summary",position:s.st_getPromptPosition(R.position)});const S=n.extensionPrompts["2_floating_prompt"];!v&&S&&S.value&&_.push({role:s.st_getPromptRole(S.role),content:S.value,identifier:"authorsNote",position:s.st_getPromptPosition(S.position)});const B=n.extensionPrompts["3_vectors"];B&&B.value&&_.push({role:"system",content:B.value,identifier:"vectorsMemory",position:s.st_getPromptPosition(B.position)});const O=n.extensionPrompts["4_vectors_data_bank"];O&&O.value&&_.push({role:s.st_getPromptRole(O.role),content:O.value,identifier:"vectorsDataBank",position:s.st_getPromptPosition(O.position)});const F=n.extensionPrompts.chromadb;F&&F.value&&_.push({role:"system",content:F.value,identifier:"smartContext",position:s.st_getPromptPosition(F.position)}),!P&&n.powerUserSettings.persona_description&&n.powerUserSettings.persona_description_position===_t.persona_description_positions.IN_PROMPT&&_.push({role:"system",content:n.powerUserSettings.persona_description,identifier:"personaDescription"}),d.order.forEach(h=>{if(!h.enabled)return;const T=t(h.identifier);if(T&&T.content){c.add({role:T.role??"system",content:n.substituteParams(T.content)});return}h.identifier==="chatHistory"&&Y()})}const wt=["1_memory","2_floating_prompt","3_vectors","4_vectors_data_bank","chromadb","PERSONA_DESCRIPTION","QUIET_PROMPT","DEPTH_PROMPT"];for(const t in n.extensionPrompts)if(Object.hasOwn(n.extensionPrompts,t)){const e=n.extensionPrompts[t];if(wt.includes(t)||!n.extensionPrompts[t].value||![a.extension_prompt_types.BEFORE_PROMPT,a.extension_prompt_types.IN_PROMPT].includes(e.position)||typeof e.filter=="function"&&!await e.filter())continue;const r={role:s.st_getPromptRole(e.role)??"system",content:e.value};if(e.position===a.extension_prompt_types.BEFORE_PROMPT)c.insert(e.depth,r);else if(e.position===a.extension_prompt_types.IN_PROMPT){const p=c.getMessages();c.insert(p.length-e.depth,r)}}for(const t of kt){const e=c.getMessages();c.insert(e.length-t.depth,{role:s.st_getPromptRole(t.role),content:t.entries.join(`
4
4
  `)})}if(!P){const t=s.st_getGroupDepthPrompts(ht.selected_group,Number(a.this_chid));if(ht.selected_group&&Array.isArray(t)&&t.length>0)t.filter(e=>e.text).forEach((e,l)=>{const r=c.getMessages();c.insert(r.length-e.depth,{role:e.role,content:e.text})});else{const e=s.st_baseChatReplace((pt=(at=(it=(rt=(st=n.characters[a.this_chid])==null?void 0:st.data)==null?void 0:rt.extensions)==null?void 0:it.depth_prompt)==null?void 0:at.prompt)==null?void 0:pt.trim(),a.name1,a.name2)||"";if(e){const l=a.depth_prompt_depth_default,r=((mt=(ut=(lt=(ct=n.characters[a.this_chid])==null?void 0:ct.data)==null?void 0:lt.extensions)==null?void 0:ut.depth_prompt)==null?void 0:mt.role)??a.depth_prompt_role_default,p=c.getMessages();c.insert(p.length-l,{role:s.st_getPromptRole(r),content:e})}}}let C=-1;if(!v){const t=s.st_getAuthorNote();if(t.prompt){t.prompt=s.st_baseChatReplace(t.prompt,a.name1,a.name2);const e={role:s.st_getPromptRole(t.role),content:t.prompt};switch(t.position){case a.extension_prompt_types.IN_PROMPT:c.insert(1,e),C=1;break;case a.extension_prompt_types.IN_CHAT:C=c.getMessages().length-t.depth,c.insert(C,e);break;case a.extension_prompt_types.BEFORE_PROMPT:c.addFront(e),C=0;break}}}return C>=0&&(V.length>0&&(c.insert(C,{role:"system",content:V.join(`
5
5
  `)}),C++),X.length>0&&c.insert(C+1,{role:"system",content:X.join(`
6
6
  `)})),{result:c.getMessages(),warnings:M}}exports.buildPrompt=At;
@@ -1,6 +1,6 @@
1
1
  var It = Object.defineProperty;
2
- var Dt = (u, s, o) => s in u ? It(u, s, { enumerable: !0, configurable: !0, writable: !0, value: o }) : u[s] = o;
3
- var U = (u, s, o) => Dt(u, typeof s != "symbol" ? s + "" : s, o);
2
+ var Dt = (l, s, o) => s in l ? It(l, s, { enumerable: !0, configurable: !0, writable: !0, value: o }) : l[s] = o;
3
+ var U = (l, s, o) => Dt(l, typeof s != "symbol" ? s + "" : s, o);
4
4
  import { st_parseMesExamples as xt, st_getRegexedString as Bt, st_appendFileContent as Ft, st_baseChatReplace as q, st_formatInstructModeExamples as $t, st_formatInstructModeSystemPrompt as jt, st_renderStoryString as zt, st_setOpenAIMessages as Ht, st_setOpenAIMessageExamples as qt, st_formatWorldInfo as Mt, st_getPromptPosition as I, st_getPromptRole as w, st_getGroupDepthPrompts as Wt, st_getAuthorNote as Gt, st_getMaxContextSize as X, st_prepareOpenAIMessages as Qt } from "./config.js";
5
5
  import { Tokenizer as Jt } from "./tokenizer.js";
6
6
  import { regex_placement as Tt } from "../../../regex/engine.js";
@@ -38,15 +38,15 @@ class Yt {
38
38
  if (this.currentTokenCount + D <= this.maxContext)
39
39
  return this.messages.push(...o), this.currentTokenCount += D, !0;
40
40
  let E = 0;
41
- const l = [];
41
+ const u = [];
42
42
  for (let c = o.length - 1; c >= 0; c--) {
43
43
  const h = o[c], O = m[c];
44
44
  if (this.currentTokenCount + E + O <= this.maxContext)
45
- l.unshift(h), E += O;
45
+ u.unshift(h), E += O;
46
46
  else
47
47
  break;
48
48
  }
49
- return l.length > 0 && (this.messages.push(...l), this.currentTokenCount += E), l.length === o.length;
49
+ return u.length > 0 && (this.messages.push(...u), this.currentTokenCount += E), u.length === o.length;
50
50
  }
51
51
  insert(s, o) {
52
52
  if (!o.content) return !0;
@@ -57,21 +57,21 @@ class Yt {
57
57
  return this.messages;
58
58
  }
59
59
  }
60
- async function ce(u, {
60
+ async function ce(l, {
61
61
  targetCharacterId: s,
62
62
  presetName: o,
63
63
  instructName: m,
64
64
  contextName: D,
65
65
  syspromptName: E,
66
- maxContext: l,
66
+ maxContext: u,
67
67
  includeNames: c,
68
68
  ignoreCharacterFields: h,
69
69
  ignoreAuthorNote: O,
70
70
  ignoreWorldInfo: Y,
71
71
  messageIndexesBetween: C
72
72
  } = {}) {
73
- var st, it, at, pt, ct, ut, lt, mt, ft, dt, gt, ht, _t, Pt;
74
- if (!["textgenerationwebui", "openai"].includes(u))
73
+ var st, it, at, pt, ct, lt, ut, mt, ft, dt, gt, ht, _t, Pt;
74
+ if (!["textgenerationwebui", "openai"].includes(l))
75
75
  throw new Error("Unsupported API");
76
76
  const n = SillyTavern.getContext();
77
77
  let { description: G, personality: Q, persona: Z, scenario: J, mesExamples: wt, system: _, jailbreak: bt } = h ? {
@@ -85,20 +85,20 @@ async function ce(u, {
85
85
  } : n.getCharacterCardFields({
86
86
  chid: s
87
87
  });
88
- const S = u === "textgenerationwebui" ? (st = n.getPresetManager("instruct")) == null ? void 0 : st.getCompletionPresetByName(m) : void 0, K = !!(S != null && S.enabled);
88
+ const S = l === "textgenerationwebui" ? (st = n.getPresetManager("instruct")) == null ? void 0 : st.getCompletionPresetByName(m) : void 0, K = !!(S != null && S.enabled);
89
89
  let P = xt(wt, K);
90
90
  function vt() {
91
91
  var e, p;
92
- if (typeof l == "number")
93
- return l;
94
- if (!l)
92
+ if (typeof u == "number")
93
+ return u;
94
+ if (!u)
95
95
  return X();
96
- if (l === "active" || !o)
96
+ if (u === "active" || !o)
97
97
  return X();
98
- if (typeof l == "number")
99
- return l;
98
+ if (typeof u == "number")
99
+ return u;
100
100
  let t;
101
- if (u === "textgenerationwebui") {
101
+ if (l === "textgenerationwebui") {
102
102
  const r = (e = n.getPresetManager("textgenerationwebui")) == null ? void 0 : e.getCompletionPresetByName(o);
103
103
  t = r == null ? void 0 : r.max_length;
104
104
  } else {
@@ -157,7 +157,7 @@ ${t.extra.title}`), {
157
157
  }
158
158
  a.addMany(t);
159
159
  }
160
- if (u === "textgenerationwebui") {
160
+ if (l === "textgenerationwebui") {
161
161
  const t = [...P];
162
162
  P && (P = $t(P, b, T));
163
163
  const e = (it = n.getPresetManager("sysprompt")) == null ? void 0 : it.getCompletionPresetByName(E);
@@ -225,7 +225,7 @@ ${t.extra.title}`), {
225
225
  if (!i)
226
226
  return console.warn(`Preset not found: ${o}. Using current preset.`), y.push(`Preset not found: ${o}. Using current preset.`), r(), { result: a.getMessages(), warnings: y };
227
227
  let f = (ct = i.prompt_order) == null ? void 0 : ct.find((g) => g.character_id === W);
228
- if (!f && i.prompt_order && i.prompt_order.length > 0 && (f = i.prompt_order[0]), !f)
228
+ if (!f && i.prompt_order && i.prompt_order.length > 0 && (f = i.prompt_order[i.prompt_order.length - 1]), !f)
229
229
  return console.warn(`No prompt order found for preset: ${o}. Using current preset.`), y.push(`No prompt order found for preset: ${o}. Using current preset.`), r(), { result: a.getMessages(), warnings: y };
230
230
  const $ = J && i.scenario_format ? n.substituteParams(i.scenario_format) : "", j = Q && i.personality_format ? n.substituteParams(i.personality_format) : "", Nt = n.substituteParams(i.group_nudge_prompt), Ut = i.impersonation_prompt ? n.substituteParams(i.impersonation_prompt) : "", d = [];
231
231
  Y || d.push(
@@ -341,7 +341,7 @@ ${t.extra.title}`), {
341
341
  });
342
342
  else {
343
343
  const e = q(
344
- (dt = (ft = (mt = (lt = (ut = n.characters[W]) == null ? void 0 : ut.data) == null ? void 0 : lt.extensions) == null ? void 0 : mt.depth_prompt) == null ? void 0 : ft.prompt) == null ? void 0 : dt.trim(),
344
+ (dt = (ft = (mt = (ut = (lt = n.characters[W]) == null ? void 0 : lt.data) == null ? void 0 : ut.extensions) == null ? void 0 : mt.depth_prompt) == null ? void 0 : ft.prompt) == null ? void 0 : dt.trim(),
345
345
  b,
346
346
  T
347
347
  ) || "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sillytavern-utils-lib",
3
- "version": "1.0.63",
3
+ "version": "1.0.64",
4
4
  "description": "Utility library for SillyTavern",
5
5
  "type": "module",
6
6
  "exports": {