Update settings.html

This commit is contained in:
Hao19911125
2026-02-18 22:13:10 +08:00
committed by GitHub
parent 57e5e17c5a
commit e81abdac69

View File

@@ -1,237 +1,243 @@
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=ZCOOL+KuaiLe&family=ZCOOL+XiaoWei&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=ZCOOL+KuaiLe&family=ZCOOL+XiaoWei&display=swap" rel="stylesheet">
<div class="inline-drawer"> <div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header"> <div class="inline-drawer-toggle inline-drawer-header">
<b>小白X</b> <b>小白X</b>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div> <div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div> </div>
<div class="inline-drawer-content"> <div class="inline-drawer-content">
<div class="littlewhitebox settings-grid"> <div class="littlewhitebox settings-grid">
<div class="settings-menu-vertical"> <div class="settings-menu-vertical">
<div class="menu-tab active" data-target="js-memory" style="border-bottom:1px solid #303030;"><span class="vertical-text">渲染交互</span></div> <div class="menu-tab active" data-target="js-memory" style="border-bottom:1px solid #303030;"><span class="vertical-text">渲染交互</span></div>
<div class="menu-tab" data-target="task" style="border-bottom:1px solid #303030;"><span class="vertical-text">循环任务</span></div> <div class="menu-tab" data-target="task" style="border-bottom:1px solid #303030;"><span class="vertical-text">循环任务</span></div>
<div class="menu-tab" data-target="template" style="border-bottom:1px solid #303030;"><span class="vertical-text">数据互动</span></div> <div class="menu-tab" data-target="template" style="border-bottom:1px solid #303030;"><span class="vertical-text">数据互动</span></div>
<div class="menu-tab" data-target="wallhaven" style="border-bottom:1px solid #303030;"><span class="vertical-text">辅助工具</span></div> <div class="menu-tab" data-target="wallhaven" style="border-bottom:1px solid #303030;"><span class="vertical-text">辅助工具</span></div>
</div> <div class="menu-tab" data-target="ena-planner" style="border-bottom:1px solid #303030;"><span class="vertical-text">剧情规划</span></div>
<div class="settings-content"> </div>
<div class="js-memory settings-section" style="display:block;"> <div class="settings-content">
<div class="section-divider" style="margin-bottom:0;margin-top:0;">总开关</div> <div class="js-memory settings-section" style="display:block;">
<hr class="sysHR" /> <div class="section-divider" style="margin-bottom:0;margin-top:0;">总开关</div>
<div class="flex-container alignItemsCenter" style="gap:8px;flex-wrap:wrap;"> <hr class="sysHR" />
<input type="checkbox" id="xiaobaix_enabled" /> <div class="flex-container alignItemsCenter" style="gap:8px;flex-wrap:wrap;">
<label for="xiaobaix_enabled" class="has-tooltip" data-tooltip="渲染被```包裹的html、!DOCTYPE、script的代码块内容为交互式界面 <input type="checkbox" id="xiaobaix_enabled" />
<label for="xiaobaix_enabled" class="has-tooltip" data-tooltip="渲染被```包裹的html、!DOCTYPE、script的代码块内容为交互式界面
提供STscript(command)异步函数执行酒馆命令:
提供STscript(command)异步函数执行酒馆命令:
await STscript('/echo 你好世界!')">启用小白X</label>
await STscript('/echo 你好世界!')">启用小白X</label>
</div>
<div class="flex-container alignItemsCenter" style="gap:8px;flex-wrap:wrap;"> </div>
<input type="checkbox" id="xiaobaix_render_enabled" /> <div class="flex-container alignItemsCenter" style="gap:8px;flex-wrap:wrap;">
<label for="xiaobaix_render_enabled" class="has-tooltip" data-tooltip="控制代码块转换为iframe渲染的功能 <input type="checkbox" id="xiaobaix_render_enabled" />
关闭后将清理所有已渲染的iframe">渲染开关</label> <label for="xiaobaix_render_enabled" class="has-tooltip" data-tooltip="控制代码块转换为iframe渲染的功能
<label for="xiaobaix_max_rendered" style="margin-left:8px;">渲染楼层</label> 关闭后将清理所有已渲染的iframe">渲染开关</label>
<input id="xiaobaix_max_rendered" <label for="xiaobaix_max_rendered" style="margin-left:8px;">渲染楼层</label>
type="number" <input id="xiaobaix_max_rendered"
class="text_pole dark-number-input" type="number"
min="1" max="9999" step="1" class="text_pole dark-number-input"
style="width:5rem;margin-left:4px;" /> min="1" max="9999" step="1"
</div> style="width:5rem;margin-left:4px;" />
<div class="section-divider">渲染模式 </div>
<hr class="sysHR" /> <div class="section-divider">渲染模式
</div> <hr class="sysHR" />
<div class="flex-container"> </div>
<input type="checkbox" id="xiaobaix_sandbox" /> <div class="flex-container">
<label for="xiaobaix_sandbox">沙盒模式</label> <input type="checkbox" id="xiaobaix_sandbox" />
</div> <label for="xiaobaix_sandbox">沙盒模式</label>
<div class="flex-container"> </div>
<input type="checkbox" id="xiaobaix_use_blob" /> <div class="flex-container">
<label for="xiaobaix_use_blob" class="has-tooltip" data-tooltip="大型html适用">启用Blob渲染</label> <input type="checkbox" id="xiaobaix_use_blob" />
</div> <label for="xiaobaix_use_blob" class="has-tooltip" data-tooltip="大型html适用">启用Blob渲染</label>
<div class="flex-container"> </div>
<input type="checkbox" id="Wrapperiframe" /> <div class="flex-container">
<label for="Wrapperiframe" class="has-tooltip" data-tooltip="按需在 iframe 中注入 Wrapperiframe.js">启用封装函数</label> <input type="checkbox" id="Wrapperiframe" />
</div> <label for="Wrapperiframe" class="has-tooltip" data-tooltip="按需在 iframe 中注入 Wrapperiframe.js">启用封装函数</label>
<div class="flex-container alignItemsCenter" style="gap:8px;flex-wrap:wrap;"> </div>
<input type="checkbox" id="xiaobaix_audio_enabled" /> <div class="flex-container alignItemsCenter" style="gap:8px;flex-wrap:wrap;">
<label for="xiaobaix_audio_enabled" style="margin-top:0;">启用音频</label> <input type="checkbox" id="xiaobaix_audio_enabled" />
</div> <label for="xiaobaix_audio_enabled" style="margin-top:0;">启用音频</label>
<br> </div>
<div class="section-divider">流式,非基础的渲染 <br>
<hr class="sysHR" /> <div class="section-divider">流式,非基础的渲染
</div> <hr class="sysHR" />
<div class="flex-container"> </div>
<input type="checkbox" id="xiaobaix_template_enabled" /> <div class="flex-container">
<label for="xiaobaix_template_enabled" class="has-tooltip" data-tooltip="流式多楼层动态渲染">启用沉浸式模板</label> <input type="checkbox" id="xiaobaix_template_enabled" />
</div> <label for="xiaobaix_template_enabled" class="has-tooltip" data-tooltip="流式多楼层动态渲染">启用沉浸式模板</label>
<div id="current_template_settings"> </div>
<div class="template-replacer-header"> <div id="current_template_settings">
<div class="template-replacer-title">当前角色模板设置</div> <div class="template-replacer-header">
<div class="template-replacer-controls"> <div class="template-replacer-title">当前角色模板设置</div>
<button id="open_template_editor" class="menu_button menu_button_icon"> <div class="template-replacer-controls">
<i class="fa-solid fa-pen-to-square"></i> <button id="open_template_editor" class="menu_button menu_button_icon">
<small>编辑模板</small> <i class="fa-solid fa-pen-to-square"></i>
</button> <small>编辑模板</small>
</div> </button>
</div> </div>
<div class="template-replacer-status" id="template_character_status"> </div>
请选择一个角色 <div class="template-replacer-status" id="template_character_status">
</div> 请选择一个角色
</div> </div>
<div class="section-divider">功能说明 </div>
<hr class="sysHR" /> <div class="section-divider">功能说明
</div> <hr class="sysHR" />
<div class="flex-container alignItemsCenter" style="gap:8px;flex-wrap:wrap;"> </div>
<div><a href="https://docs.littlewhitebox.qzz.io/" class="download-link" target="_blank">功能文档</a></div> <div class="flex-container alignItemsCenter" style="gap:8px;flex-wrap:wrap;">
<button id="xiaobaix_reset_btn" class="menu_button menu_button_icon" type="button" title="把小白X的功能按钮重置回默认功能设定"> <div><a href="https://docs.littlewhitebox.qzz.io/" class="download-link" target="_blank">功能文档</a></div>
<small>默认开关</small> <button id="xiaobaix_reset_btn" class="menu_button menu_button_icon" type="button" title="把小白X的功能按钮重置回默认功能设定">
</button> <small>默认开关</small>
<button id="xiaobaix_xposition_btn" class="menu_button menu_button_icon" type="button" title="切换X按钮的位置仅两种"> </button>
<small>X按钮:右</small> <button id="xiaobaix_xposition_btn" class="menu_button menu_button_icon" type="button" title="切换X按钮的位置仅两种">
</button> <small>X按钮:右</small>
</div> </button>
</div> </div>
<div class="wallhaven settings-section" style="display:none;"> </div>
<div class="section-divider">消息日志与拦截 <div class="wallhaven settings-section" style="display:none;">
<hr class="sysHR"> <div class="section-divider">消息日志与拦截
</div> <hr class="sysHR">
<div class="flex-container"> </div>
<input type="checkbox" id="xiaobaix_recorded_enabled" /> <div class="flex-container">
<label for="xiaobaix_recorded_enabled" class="has-tooltip" data-tooltip="每条消息添加图标点击可看到发送给时AI的记录">Log记录</label> <input type="checkbox" id="xiaobaix_recorded_enabled" />
<input type="checkbox" id="xiaobaix_preview_enabled" /> <label for="xiaobaix_recorded_enabled" class="has-tooltip" data-tooltip="每条消息添加图标点击可看到发送给时AI的记录">Log记录</label>
<label for="xiaobaix_preview_enabled" class="has-tooltip" data-tooltip="在聊天框显示图标点击可拦截将发送给AI的消息并显示">Log拦截</label> <input type="checkbox" id="xiaobaix_preview_enabled" />
</div> <label for="xiaobaix_preview_enabled" class="has-tooltip" data-tooltip="在聊天框显示图标点击可拦截将发送给AI的消息并显示">Log拦截</label>
<div class="section-divider">视觉增强 </div>
<hr class="sysHR" /> <div class="section-divider">视觉增强
</div> <hr class="sysHR" />
<div class="flex-container"> </div>
<input type="checkbox" id="xiaobaix_immersive_enabled" /> <div class="flex-container">
<label for="xiaobaix_immersive_enabled" class="has-tooltip" data-tooltip="重构界面布局与细节优化">沉浸布局显示(边框窄化)</label> <input type="checkbox" id="xiaobaix_immersive_enabled" />
</div> <label for="xiaobaix_immersive_enabled" class="has-tooltip" data-tooltip="重构界面布局与细节优化">沉浸布局显示(边框窄化)</label>
<div class="section-divider">Novel 画图 </div>
<hr class="sysHR" /> <div class="section-divider">Novel 画图
</div> <hr class="sysHR" />
<div class="flex-container"> </div>
<input type="checkbox" id="xiaobaix_novel_draw_enabled" /> <div class="flex-container">
<label for="xiaobaix_novel_draw_enabled" class="has-tooltip" data-tooltip="使用 NovelAI 为 AI 回复自动或手动生成配图,需在酒馆设置中配置 NovelAI Key">启用 Novel 画图</label> <input type="checkbox" id="xiaobaix_novel_draw_enabled" />
<button id="xiaobaix_novel_draw_open_settings" class="menu_button menu_button_icon" type="button" style="margin-left:auto;" title="打开 Novel 画图详细设置"> <label for="xiaobaix_novel_draw_enabled" class="has-tooltip" data-tooltip="使用 NovelAI 为 AI 回复自动或手动生成配图,需在酒馆设置中配置 NovelAI Key">启用 Novel 画图</label>
<i class="fa-solid fa-palette"></i> <button id="xiaobaix_novel_draw_open_settings" class="menu_button menu_button_icon" type="button" style="margin-left:auto;" title="打开 Novel 画图详细设置">
<small>画图设置</small> <i class="fa-solid fa-palette"></i>
</button> <small>画图设置</small>
</div> </button>
<div class="section-divider">豆包 语音 </div>
<hr class="sysHR" /> <div class="section-divider">豆包 语音
</div> <hr class="sysHR" />
<div class="flex-container"> </div>
<input type="checkbox" id="xiaobaix_tts_enabled" /> <div class="flex-container">
<label for="xiaobaix_tts_enabled" class="has-tooltip" <input type="checkbox" id="xiaobaix_tts_enabled" />
data-tooltip="AI回复渲染后自动朗读。需要先在 config.yaml 开启 enableCorsProxy: true 并重启。所有请求通过 ST 内置代理,不经过第三方。"> <label for="xiaobaix_tts_enabled" class="has-tooltip"
启用 TTS 语音 data-tooltip="AI回复渲染后自动朗读。需要先在 config.yaml 开启 enableCorsProxy: true 并重启。所有请求通过 ST 内置代理,不经过第三方。">
</label> 启用 TTS 语音
<button id="xiaobaix_tts_open_settings" class="menu_button menu_button_icon" </label>
type="button" style="margin-left:auto;" <button id="xiaobaix_tts_open_settings" class="menu_button menu_button_icon"
title="打开 TTS 设置(音色/复刻/跳过规则)"> type="button" style="margin-left:auto;"
<i class="fa-solid fa-microphone-lines"></i> title="打开 TTS 设置(音色/复刻/跳过规则)">
<small>语音设置</small> <i class="fa-solid fa-microphone-lines"></i>
</button> <small>语音设置</small>
</div> </button>
</div> </div>
<div class="task settings-section" style="display:none;"> </div>
<div class="section-divider">循环任务 <div class="ena-planner settings-section" style="display:none;">
<hr class="sysHR" /> <div id="ena_planner_panel">
</div> <!-- Ena Planner UI will be injected here by ena-planner.js -->
<div class="flex-container"> </div>
<input type="checkbox" id="scheduled_tasks_enabled" /> </div>
<label for="scheduled_tasks_enabled" class="has-tooltip" data-tooltip="自动执行设定好的斜杠命令 <div class="task settings-section" style="display:none;">
输入/xbqte {{任务名称}}可以手动激活任务 <div class="section-divider">循环任务
导出/入角色卡时, 角色任务会随角色卡一起导出/入">启用循环任务</label> <hr class="sysHR" />
<div id="toggle_task_bar" class="menu_button menu_button_icon" style="margin: 0px; margin-left: auto;" title="显示/隐藏按钮栏"> </div>
<small>按钮栏</small> <div class="flex-container">
</div> <input type="checkbox" id="scheduled_tasks_enabled" />
</div> <label for="scheduled_tasks_enabled" class="has-tooltip" data-tooltip="自动执行设定好的斜杠命令
<hr class="sysHR" /> 输入/xbqte {{任务名称}}可以手动激活任务
<div class="flex-container task-tab-bar"> 导出/入角色卡时, 角色任务会随角色卡一起导出/入">启用循环任务</label>
<div class="task-tab active" data-target="global_tasks_block">全局任务<span class="task-count" id="global_task_count"></span></div> <div id="toggle_task_bar" class="menu_button menu_button_icon" style="margin: 0px; margin-left: auto;" title="显示/隐藏按钮栏">
<div class="task-tab" data-target="character_tasks_block">角色任务<span class="task-count" id="character_task_count"></span></div> <small>按钮栏</small>
<div class="task-tab" data-target="preset_tasks_block">预设任务<span class="task-count" id="preset_task_count"></span></div> </div>
</div> </div>
<div class="flex-container" style="justify-content: flex-end; flex-wrap: nowrap; gap: 0px; margin-top: 10px;"> <hr class="sysHR" />
<div id="add_global_task" class="menu_button menu_button_icon" title="添加全局任务"> <div class="flex-container task-tab-bar">
<small>+全局</small> <div class="task-tab active" data-target="global_tasks_block">全局任务<span class="task-count" id="global_task_count"></span></div>
</div> <div class="task-tab" data-target="character_tasks_block">角色任务<span class="task-count" id="character_task_count"></span></div>
<div id="add_character_task" class="menu_button menu_button_icon" title="添加角色任务"> <div class="task-tab" data-target="preset_tasks_block">预设任务<span class="task-count" id="preset_task_count"></span></div>
<small>+角色</small> </div>
</div> <div class="flex-container" style="justify-content: flex-end; flex-wrap: nowrap; gap: 0px; margin-top: 10px;">
<div id="add_preset_task" class="menu_button menu_button_icon" title="添加预设任务"> <div id="add_global_task" class="menu_button menu_button_icon" title="添加全局任务">
<small>+预设</small> <small>+全局</small>
</div> </div>
<div id="cloud_tasks_button" class="menu_button menu_button_icon" title="从云端获取任务脚本"> <div id="add_character_task" class="menu_button menu_button_icon" title="添加角色任务">
<i class="fa-solid fa-cloud-arrow-down"></i> <small>+角色</small>
<small>任务下载</small> </div>
</div> <div id="add_preset_task" class="menu_button menu_button_icon" title="添加预设任务">
<div id="import_global_tasks" class="menu_button menu_button_icon" title="导入任务"> <small>+预设</small>
<i class="fa-solid fa-download"></i> </div>
<small>导入</small> <div id="cloud_tasks_button" class="menu_button menu_button_icon" title="从云端获取任务脚本">
</div> <i class="fa-solid fa-cloud-arrow-down"></i>
</div> <small>任务下载</small>
<hr class="sysHR"> </div>
<div class="task-panel-group"> <div id="import_global_tasks" class="menu_button menu_button_icon" title="导入任务">
<div id="global_tasks_block" class="padding5 task-panel" data-panel="global_tasks_block"> <i class="fa-solid fa-download"></i>
<small>这些任务在所有角色中的聊天都会执行</small> <small>导入</small>
<div id="global_tasks_list" class="flex-container task-container flexFlowColumn"></div> </div>
</div> </div>
<div id="character_tasks_block" class="padding5 task-panel" data-panel="character_tasks_block" style="display:none;"> <hr class="sysHR">
<small>这些任务只在当前角色的聊天中执行</small> <div class="task-panel-group">
<div id="character_tasks_list" class="flex-container task-container flexFlowColumn"></div> <div id="global_tasks_block" class="padding5 task-panel" data-panel="global_tasks_block">
</div> <small>这些任务在所有角色中的聊天都会执行</small>
<div id="preset_tasks_block" class="padding5 task-panel" data-panel="preset_tasks_block" style="display:none;"> <div id="global_tasks_list" class="flex-container task-container flexFlowColumn"></div>
<small>这些任务会在使用<small id="preset_tasks_hint" class="preset-task-hint">未选择</small>预设时执行</small> </div>
<div id="preset_tasks_list" class="flex-container task-container flexFlowColumn"></div> <div id="character_tasks_block" class="padding5 task-panel" data-panel="character_tasks_block" style="display:none;">
</div> <small>这些任务只在当前角色的聊天中执行</small>
</div> <div id="character_tasks_list" class="flex-container task-container flexFlowColumn"></div>
<input type="file" id="import_tasks_file" accept=".json" style="display:none;" /> </div>
</div> <div id="preset_tasks_block" class="padding5 task-panel" data-panel="preset_tasks_block" style="display:none;">
<div class="template settings-section" style="display:none;"> <small>这些任务会在使用<small id="preset_tasks_hint" class="preset-task-hint">未选择</small>预设时执行</small>
<div class="section-divider">四次元壁</div> <div id="preset_tasks_list" class="flex-container task-container flexFlowColumn"></div>
<hr class="sysHR" /> </div>
<div class="flex-container"> </div>
<input type="checkbox" id="xiaobaix_fourth_wall_enabled" /> <input type="file" id="import_tasks_file" accept=".json" style="display:none;" />
<label for="xiaobaix_fourth_wall_enabled" class="has-tooltip" data-tooltip="突破第四面墙,与角色进行元对话交流。悬浮按钮位于页面右侧中间。">四次元壁</label> </div>
</div> <div class="template settings-section" style="display:none;">
<br> <div class="section-divider">四次元壁</div>
<div class="section-divider">剧情管理</div> <hr class="sysHR" />
<hr class="sysHR" /> <div class="flex-container">
<div class="flex-container"> <input type="checkbox" id="xiaobaix_fourth_wall_enabled" />
<input type="checkbox" id="xiaobaix_story_summary_enabled" /> <label for="xiaobaix_fourth_wall_enabled" class="has-tooltip" data-tooltip="突破第四面墙,与角色进行元对话交流。悬浮按钮位于页面右侧中间。">四次元壁</label>
<label for="xiaobaix_story_summary_enabled" class="has-tooltip" data-tooltip="在消息楼层添加总结按钮点击可打开剧情总结面板AI分析生成关键词云、时间线、人物关系、角色弧光">剧情总结</label> </div>
</div> <br>
<div class="flex-container"> <div class="section-divider">剧情管理</div>
<input type="checkbox" id="xiaobaix_story_outline_enabled" /> <hr class="sysHR" />
<label for="xiaobaix_story_outline_enabled" class="has-tooltip" data-tooltip="在X按钮区域添加地图图标点击可打开可视化剧情地图编辑器">小白板</label> <div class="flex-container">
</div> <input type="checkbox" id="xiaobaix_story_summary_enabled" />
<br> <label for="xiaobaix_story_summary_enabled" class="has-tooltip" data-tooltip="在消息楼层添加总结按钮点击可打开剧情总结面板AI分析生成关键词云、时间线、人物关系、角色弧光">剧情总结</label>
<div class="section-divider">变量控制</div> </div>
<hr class="sysHR" /> <div class="flex-container">
<div class="flex-container" style="gap:8px;flex-wrap:wrap;align-items:center;"> <input type="checkbox" id="xiaobaix_story_outline_enabled" />
<input type="checkbox" id="xiaobaix_variables_core_enabled" /> <label for="xiaobaix_story_outline_enabled" class="has-tooltip" data-tooltip="在X按钮区域添加地图图标点击可打开可视化剧情地图编辑器">小白板</label>
<label for="xiaobaix_variables_core_enabled">变量管理</label> </div>
<br>
<select id="xiaobaix_variables_mode" class="text_pole" style="width:auto;margin-left:8px;padding:2px 6px;"> <div class="section-divider">变量控制</div>
<option value="1.0">1.0 (plot-log)</option> <hr class="sysHR" />
<option value="2.0">2.0 (state)</option> <div class="flex-container" style="gap:8px;flex-wrap:wrap;align-items:center;">
</select> <input type="checkbox" id="xiaobaix_variables_core_enabled" />
</div> <label for="xiaobaix_variables_core_enabled">变量管理</label>
<div class="flex-container"> <select id="xiaobaix_variables_mode" class="text_pole" style="width:auto;margin-left:8px;padding:2px 6px;">
<input type="checkbox" id="xiaobaix_variables_panel_enabled" /> <option value="1.0">1.0 (plot-log)</option>
<label for="xiaobaix_variables_panel_enabled">变量面板</label> <option value="2.0">2.0 (state)</option>
</div> </select>
</div> </div>
</div>
</div> <div class="flex-container">
</div> <input type="checkbox" id="xiaobaix_variables_panel_enabled" />
</div> <label for="xiaobaix_variables_panel_enabled">变量面板</label>
</div>
</div>
</div>
</div>
</div>
</div>
<style> <style>
.littlewhitebox, .littlewhitebox,
@@ -510,28 +516,28 @@
}); });
} }
const EXT_ID = 'LittleWhiteBox'; const EXT_ID = 'LittleWhiteBox';
const KEY_TO_CHECKBOX = { const KEY_TO_CHECKBOX = {
recorded: 'xiaobaix_recorded_enabled', recorded: 'xiaobaix_recorded_enabled',
immersive: 'xiaobaix_immersive_enabled', immersive: 'xiaobaix_immersive_enabled',
preview: 'xiaobaix_preview_enabled', preview: 'xiaobaix_preview_enabled',
scriptAssistant: 'xiaobaix_script_assistant', scriptAssistant: 'xiaobaix_script_assistant',
tasks: 'scheduled_tasks_enabled', tasks: 'scheduled_tasks_enabled',
templateEditor: 'xiaobaix_template_enabled', templateEditor: 'xiaobaix_template_enabled',
fourthWall: 'xiaobaix_fourth_wall_enabled', fourthWall: 'xiaobaix_fourth_wall_enabled',
variablesPanel: 'xiaobaix_variables_panel_enabled', variablesPanel: 'xiaobaix_variables_panel_enabled',
variablesCore: 'xiaobaix_variables_core_enabled', variablesCore: 'xiaobaix_variables_core_enabled',
audio: 'xiaobaix_audio_enabled', audio: 'xiaobaix_audio_enabled',
storySummary: 'xiaobaix_story_summary_enabled', storySummary: 'xiaobaix_story_summary_enabled',
tts: 'xiaobaix_tts_enabled', tts: 'xiaobaix_tts_enabled',
storyOutline: 'xiaobaix_story_outline_enabled', storyOutline: 'xiaobaix_story_outline_enabled',
sandboxMode: 'xiaobaix_sandbox', sandboxMode: 'xiaobaix_sandbox',
useBlob: 'xiaobaix_use_blob', useBlob: 'xiaobaix_use_blob',
wrapperIframe: 'Wrapperiframe', wrapperIframe: 'Wrapperiframe',
renderEnabled: 'xiaobaix_render_enabled', renderEnabled: 'xiaobaix_render_enabled',
}; };
const DEFAULTS_ON = ['templateEditor', 'tasks', 'variablesCore', 'audio', 'storySummary', 'recorded']; const DEFAULTS_ON = ['templateEditor', 'tasks', 'variablesCore', 'audio', 'storySummary', 'recorded'];
const DEFAULTS_OFF = ['preview', 'scriptAssistant', 'immersive', 'variablesPanel', 'fourthWall', 'storyOutline', 'novelDraw', 'tts']; const DEFAULTS_OFF = ['preview', 'scriptAssistant', 'immersive', 'variablesPanel', 'fourthWall', 'storyOutline', 'novelDraw', 'tts'];
const MODULE_KEYS = ['templateEditor', 'tasks', 'fourthWall', 'variablesCore', 'recorded', 'preview', 'scriptAssistant', 'immersive', 'variablesPanel', 'audio', 'storySummary', 'storyOutline', 'novelDraw', 'tts']; const MODULE_KEYS = ['templateEditor', 'tasks', 'fourthWall', 'variablesCore', 'recorded', 'preview', 'scriptAssistant', 'immersive', 'variablesPanel', 'audio', 'storySummary', 'storyOutline', 'novelDraw', 'tts'];
function setModuleEnabled(key, enabled) { function setModuleEnabled(key, enabled) {
try { try {
if (!extension_settings[EXT_ID][key]) extension_settings[EXT_ID][key] = {}; if (!extension_settings[EXT_ID][key]) extension_settings[EXT_ID][key] = {};
@@ -782,3 +788,4 @@
<div class="cloud-task-intro" style="color:#888;font-size:.9em;text-align:left;"></div> <div class="cloud-task-intro" style="color:#888;font-size:.9em;text-align:left;"></div>
</div> </div>
</div> </div>