Delete modules/script-assistant.js
This commit is contained in:
@@ -1,104 +0,0 @@
|
|||||||
import { extension_settings, getContext } from "../../../../extensions.js";
|
|
||||||
import { saveSettingsDebounced, setExtensionPrompt, extension_prompt_types } from "../../../../../script.js";
|
|
||||||
import { EXT_ID, extensionFolderPath } from "../core/constants.js";
|
|
||||||
import { createModuleEvents, event_types } from "../core/event-manager.js";
|
|
||||||
|
|
||||||
const SCRIPT_MODULE_NAME = "xiaobaix-script";
|
|
||||||
const events = createModuleEvents('scriptAssistant');
|
|
||||||
|
|
||||||
function initScriptAssistant() {
|
|
||||||
if (!extension_settings[EXT_ID].scriptAssistant) {
|
|
||||||
extension_settings[EXT_ID].scriptAssistant = { enabled: false };
|
|
||||||
}
|
|
||||||
|
|
||||||
if (window['registerModuleCleanup']) {
|
|
||||||
window['registerModuleCleanup']('scriptAssistant', cleanup);
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#xiaobaix_script_assistant').on('change', function() {
|
|
||||||
let globalEnabled = true;
|
|
||||||
try { if ('isXiaobaixEnabled' in window) globalEnabled = Boolean(window['isXiaobaixEnabled']); } catch {}
|
|
||||||
if (!globalEnabled) return;
|
|
||||||
|
|
||||||
const enabled = $(this).prop('checked');
|
|
||||||
extension_settings[EXT_ID].scriptAssistant.enabled = enabled;
|
|
||||||
saveSettingsDebounced();
|
|
||||||
|
|
||||||
if (enabled) {
|
|
||||||
if (typeof window['injectScriptDocs'] === 'function') window['injectScriptDocs']();
|
|
||||||
} else {
|
|
||||||
if (typeof window['removeScriptDocs'] === 'function') window['removeScriptDocs']();
|
|
||||||
cleanup();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#xiaobaix_script_assistant').prop('checked', extension_settings[EXT_ID].scriptAssistant.enabled);
|
|
||||||
|
|
||||||
setupEventListeners();
|
|
||||||
|
|
||||||
if (extension_settings[EXT_ID].scriptAssistant.enabled) {
|
|
||||||
setTimeout(() => { if (typeof window['injectScriptDocs'] === 'function') window['injectScriptDocs'](); }, 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function setupEventListeners() {
|
|
||||||
events.on(event_types.CHAT_CHANGED, () => setTimeout(checkAndInjectDocs, 500));
|
|
||||||
events.on(event_types.MESSAGE_RECEIVED, checkAndInjectDocs);
|
|
||||||
events.on(event_types.USER_MESSAGE_RENDERED, checkAndInjectDocs);
|
|
||||||
events.on(event_types.SETTINGS_LOADED_AFTER, () => setTimeout(checkAndInjectDocs, 1000));
|
|
||||||
events.on(event_types.APP_READY, () => setTimeout(checkAndInjectDocs, 1500));
|
|
||||||
}
|
|
||||||
|
|
||||||
function cleanup() {
|
|
||||||
events.cleanup();
|
|
||||||
if (typeof window['removeScriptDocs'] === 'function') window['removeScriptDocs']();
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkAndInjectDocs() {
|
|
||||||
const globalEnabled = window.isXiaobaixEnabled !== undefined ? window.isXiaobaixEnabled : extension_settings[EXT_ID].enabled;
|
|
||||||
if (globalEnabled && extension_settings[EXT_ID].scriptAssistant?.enabled) {
|
|
||||||
injectScriptDocs();
|
|
||||||
} else {
|
|
||||||
removeScriptDocs();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function injectScriptDocs() {
|
|
||||||
try {
|
|
||||||
let docsContent = '';
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch(`${extensionFolderPath}/docs/script-docs.md`);
|
|
||||||
if (response.ok) {
|
|
||||||
docsContent = await response.text();
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
docsContent = "无法加载script-docs.md文件";
|
|
||||||
}
|
|
||||||
|
|
||||||
const formattedPrompt = `
|
|
||||||
【小白X插件 - 写卡助手】
|
|
||||||
你是小白X插件的内置助手,专门帮助用户创建STscript脚本和交互式界面的角色卡。
|
|
||||||
以下是小白x功能和SillyTavern的官方STscript脚本文档,可结合小白X功能创作与SillyTavern深度交互的角色卡:
|
|
||||||
${docsContent}
|
|
||||||
`;
|
|
||||||
|
|
||||||
setExtensionPrompt(
|
|
||||||
SCRIPT_MODULE_NAME,
|
|
||||||
formattedPrompt,
|
|
||||||
extension_prompt_types.IN_PROMPT,
|
|
||||||
2,
|
|
||||||
false,
|
|
||||||
0
|
|
||||||
);
|
|
||||||
} catch (error) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeScriptDocs() {
|
|
||||||
setExtensionPrompt(SCRIPT_MODULE_NAME, '', extension_prompt_types.IN_PROMPT, 2, false, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.injectScriptDocs = injectScriptDocs;
|
|
||||||
window.removeScriptDocs = removeScriptDocs;
|
|
||||||
|
|
||||||
export { initScriptAssistant };
|
|
||||||
Reference in New Issue
Block a user