SillyTavern-Pathweaver/settings.html
mattjaybe 5e23475b4c
v1.5.0 - Added Reasoning Mode
- New setting: Reasoning Mode.  Increases max tokens and properly handles thinking tags.
- Reasoning Mode allows for setting the max output token
2026-03-06 10:11:31 -05:00

398 lines
No EOL
22 KiB
HTML

<div class="pathweaver_settings">
<div class="inline-drawer">
<div class="inline-drawer-toggle inline-drawer-header">
<b>Pathweaver</b>
<div class="inline-drawer-icon fa-solid fa-circle-chevron-down down"></div>
</div>
<div class="inline-drawer-content">
<!-- Header Section -->
<div class="pw_settings_header">
<i class="fa-solid fa-compass"></i>
AI-powered story direction suggestions to guide your narrative forward.
</div>
<!-- Global Enable -->
<label class="checkbox_label pw_toggle_row" for="pw_enabled">
<input id="pw_enabled" type="checkbox" class="checkbox">
<span class="pw_toggle_label">
<i class="fa-solid fa-power-off"></i> Enable Pathweaver
</span>
</label>
<label class="checkbox_label pw_toggle_row" for="pw_hide_animated_bar">
<input id="pw_hide_animated_bar" type="checkbox" class="checkbox">
<span class="pw_toggle_label">
<i class="fa-solid fa-eye-slash"></i> Hide Animated Bar
</span>
</label>
<hr class="pw_divider">
<!-- Generation Engine Section -->
<div class="pw_section">
<h4 class="pw_section_title">
<i class="fa-solid fa-microchip"></i> Generation Engine
</h4>
<select id="pw_source" class="text_pole pw_select">
<option value="default">Default (Main API)</option>
<option value="profile">Connection Profile</option>
<option value="ollama">Ollama (Local)</option>
<option value="openai">OpenAI Compatible</option>
</select>
<!-- Provider: Connection Profile -->
<div id="pw_profile_settings" class="pw_provider_box pw_provider_profile" style="display:none;">
<div class="pw_provider_title">
<i class="fa-solid fa-link"></i> Connection Profile
</div>
<select id="pw_profile_select" class="text_pole pw_select"></select>
<div class="pw_provider_hint">
<i class="fa-solid fa-shield-halved"></i> Uses your existing ST credentials securely.
</div>
</div>
<!-- Provider: Ollama -->
<div id="pw_ollama_settings" class="pw_provider_box pw_provider_ollama" style="display:none;">
<div class="pw_provider_title">
<i class="fa-solid fa-terminal"></i> Ollama
</div>
<input id="pw_ollama_url" type="text" class="text_pole" placeholder="http://localhost:11434"
title="Ollama API endpoint">
<select id="pw_ollama_model" class="text_pole pw_select"></select>
<div id="pw_ollama_status" class="pw_provider_status"></div>
</div>
<!-- Provider: OpenAI Compatible -->
<div id="pw_openai_settings" class="pw_provider_box pw_provider_openai" style="display:none;">
<div class="pw_provider_title">
<i class="fa-solid fa-cloud"></i> OpenAI Compatible
</div>
<select id="pw_openai_preset" class="text_pole pw_select">
<option value="custom">Custom</option>
<option value="lmstudio">LM Studio (:1234)</option>
<option value="kobold">KoboldCPP (:5001)</option>
<option value="textgen">TextGenWebUI (:5000)</option>
<option value="vllm">vLLM (:8000)</option>
</select>
<input id="pw_openai_url" type="text" class="text_pole" placeholder="http://localhost:1234/v1"
title="API endpoint URL">
<input id="pw_openai_model" type="text" class="text_pole" placeholder="Model name"
title="Model identifier">
<input id="pw_openai_key" type="password" class="text_pole" placeholder="API Key (Optional)"
title="API Key">
</div>
</div>
<hr class="pw_divider">
<!-- Behavior Section -->
<div class="pw_section">
<h4 class="pw_section_title">
<i class="fa-solid fa-gears"></i> Behavior
</h4>
<label class="checkbox_label pw_checkbox_row" for="pw_insert_mode">
<input id="pw_insert_mode" type="checkbox" class="checkbox">
<span><i class="fa-solid fa-plus-circle"></i> Insert Mode (Append)</span>
</label>
<div style="margin-top: 5px;">
<label class="checkbox_label pw_checkbox_row" for="pw_insert_type_enabled">
<input id="pw_insert_type_enabled" type="checkbox" class="checkbox">
<span><i class="fa-solid fa-code-branch"></i> Insert Type</span>
</label>
<div id="pw_insert_type_options"
style="display:none; margin-left: 20px; flex-direction: column; gap: 5px;">
<label class="checkbox_label pw_checkbox_row" for="pw_insert_type_ooc"
style="font-size: 0.9em;">
<input id="pw_insert_type_ooc" type="checkbox" class="checkbox">
<span>[OOC: ]</span>
</label>
<label class="checkbox_label pw_checkbox_row" for="pw_insert_type_director"
style="font-size: 0.9em;">
<input id="pw_insert_type_director" type="checkbox" class="checkbox">
<span>[Director: ]</span>
</label>
</div>
</div>
<label class="checkbox_label pw_checkbox_row" for="pw_show_explicit">
<input id="pw_show_explicit" type="checkbox" class="checkbox">
<span><i class="fa-solid fa-fire pw_nsfw_icon"></i> Show Explicit Category (NSFW)</span>
</label>
</div>
<hr class="pw_divider">
<!-- Suggestions Settings Section -->
<div class="pw_section">
<h4 class="pw_section_title">
<i class="fa-solid fa-sliders"></i> Suggestions Settings
</h4>
<div class="pw_row_2col">
<div>
<label for="pw_suggestions_count" class="pw_input_label">
<i class="fa-solid fa-list-ol"></i> Suggestions
</label>
<select id="pw_suggestions_count" class="text_pole pw_select"
title="Number of suggestions to generate">
<option value="2">2</option>
<option value="4">4</option>
<option value="6" selected>6</option>
</select>
</div>
<div>
<label for="pw_context_depth" class="pw_input_label">
<i class="fa-solid fa-layer-group"></i> Context
</label>
<select id="pw_context_depth" class="text_pole pw_select">
<option value="2">2 messages</option>
<option value="4">4 messages</option>
<option value="6">6 messages</option>
<option value="8">8 messages</option>
<option value="10">10 messages</option>
</select>
</div>
</div>
<div class="pw_row_2col" style="margin-top: 10px;">
<div>
<label for="pw_suggestion_length" class="pw_input_label">
<i class="fa-solid fa-text-width"></i> Length
</label>
<select id="pw_suggestion_length" class="text_pole pw_select"
title="Suggestion description length">
<option value="short">Short (2-3 sentences)</option>
<option value="long">Long (4-6 sentences)</option>
</select>
</div>
<div></div>
</div>
<label class="checkbox_label pw_checkbox_row pw_stream_row" for="pw_stream_suggestions"
style="margin-top: 8px;">
<input id="pw_stream_suggestions" type="checkbox" class="checkbox"
title="Stream cards as they generate">
<span><i class="fa-solid fa-stream"></i> Stream suggestions</span>
</label>
<p class="pw_setting_hint" style="margin: 4px 0 0 0; font-size: 0.8rem; opacity: 0.85;">
Cards appear as each suggestion is generated. Works with Ollama and OpenAI-compatible APIs;
Connection Profile may also support streaming.
</p>
<!-- Reasoning Mode Settings -->
<label class="checkbox_label pw_checkbox_row pw_stream_row" for="pw_reasoning_mode"
style="margin-top: 12px;">
<input id="pw_reasoning_mode" type="checkbox" class="checkbox"
title="Enable for reasoning models like DeepSeek">
<span><i class="fa-solid fa-brain"></i> Reasoning Mode</span>
</label>
<p class="pw_setting_hint" style="margin: 4px 0 0 0; font-size: 0.8rem; opacity: 0.85;">
Enable for reasoning models (DeepSeek, etc.). Increases max tokens and properly handles
thinking tags.
</p>
<div id="pw_max_output_tokens_row" class="pw_row_2col" style="margin-top: 10px; display: none;">
<div>
<label for="pw_max_output_tokens" class="pw_input_label">
<i class="fa-solid fa-terminal"></i> Max Output Tokens
</label>
<input id="pw_max_output_tokens" type="number" class="text_pole" value="16384" min="512"
max="128000" step="512" style="width: 100%;"
title="Maximum tokens for reasoning model output">
</div>
<div></div>
</div>
<p id="pw_max_output_tokens_hint" class="pw_setting_hint" style="margin: 4px 0 0 0; font-size: 0.75rem; opacity: 0.7; display: none;">
Higher values allow more thinking tokens for reasoning models. 8K-32K recommended.
</p>
<h4 class="pw_section_title" style="margin-top: 15px; font-size: 0.9rem;">
<i class="fa-solid fa-book-open"></i> Context Sources
</h4>
<p style="color: var(--SmartThemeBodyColor); opacity: 0.7; font-size: 0.8rem; margin: 0 0 8px 0;">
Include additional context for more accurate suggestions
</p>
<label class="checkbox_label pw_checkbox_row" for="pw_include_scenario">
<input id="pw_include_scenario" type="checkbox" class="checkbox">
<span><i class="fa-solid fa-scroll"></i> Include Scenario</span>
</label>
<label class="checkbox_label pw_checkbox_row" for="pw_include_description">
<input id="pw_include_description" type="checkbox" class="checkbox">
<span><i class="fa-solid fa-user"></i> Include Character Description</span>
</label>
<div style="display: flex; flex-direction: column; gap: 2px; margin-top: 5px;">
<label class="checkbox_label pw_checkbox_row" for="pw_include_worldinfo" style="margin-bottom: 0;">
<input id="pw_include_worldinfo" type="checkbox" class="checkbox">
<span><i class="fa-solid fa-globe"></i> Include World Info Lorebook</span>
</label>
<div class="pw_warning_text">
<i class="fa-solid fa-triangle-exclamation"></i> Experimental: May decrease suggestion quality.
Works only on entries with Order 250 or higher.
</div>
</div>
<div style="margin-top: 10px;">
<button id="pw_open_editor_settings" class="pw_open_editor_btn">
<i class="fa-solid fa-wand-magic-sparkles"></i> Suggestion Styles Manager
</button>
</div>
</div>
<hr class="pw_divider">
<!-- Surprise Me Section -->
<div class="pw_section">
<h4 class="pw_section_title">
<i class="fa-solid fa-wand-sparkles"></i> Surprise Me
<span class="pw_setting_tooltip_icon" title="Surprise Me secretly injects an AI-generated suggestion into the chat context a set number of messages before it fires. Pick a style, and Pathweaver will quietly arm a hidden prompt. When the countdown hits, the suggestion appears naturally — like the story took an unexpected turn on its own.">?</span>
</h4>
<label class="checkbox_label pw_checkbox_row" for="pw_surprise_endless">
<input id="pw_surprise_endless" type="checkbox" class="checkbox">
<span><i class="fa-solid fa-infinity"></i> Endless Surprises</span>
</label>
<p class="pw_setting_hint" style="margin: 2px 0 10px 0; font-size: 0.78rem; opacity: 0.8;">
When enabled, a new surprise is silently generated and armed as soon as the previous one fires — keeping the story perpetually on the edge.
</p>
<label class="checkbox_label pw_checkbox_row" for="pw_surprise_randomize">
<input id="pw_surprise_randomize" type="checkbox" class="checkbox">
<span><i class="fa-solid fa-shuffle"></i> Randomize depth</span>
</label>
<div id="pw_surprise_range_rows" style="margin-top: 4px;">
<p class="pw_setting_hint" style="margin: 2px 0 8px 0; font-size: 0.78rem; opacity: 0.8;">
Picks a random depth within this range each time.
</p>
<div class="pw_row_2col">
<div>
<label for="pw_surprise_depth_min" class="pw_input_label">
<i class="fa-solid fa-clock-rotate-left"></i> Min messages
</label>
<select id="pw_surprise_depth_min" class="text_pole pw_select">
<option value="2" selected>2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
</div>
<div>
<label for="pw_surprise_depth_max" class="pw_input_label">
<i class="fa-solid fa-clock-rotate-left"></i> Max messages
</label>
<select id="pw_surprise_depth_max" class="text_pole pw_select">
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6" selected>6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
</div>
</div>
</div>
<div id="pw_surprise_fixed_hint" style="display:none; margin-top: 4px;">
<p class="pw_setting_hint" style="margin: 0; font-size: 0.78rem; opacity: 0.8;">
Uses a fixed depth of <strong id="pw_surprise_fixed_depth_label">2</strong> messages.
</p>
</div>
<!-- Active queue accordion -->
<details id="pw_surprise_queue_accordion" class="pw_surprise_queue_accordion" style="display:none; margin-top: 12px;">
<summary class="pw_surprise_queue_summary">
<i class="fa-solid fa-list-check"></i>
<span id="pw_surprise_queue_label">Armed surprises</span>
<i class="fa-solid fa-chevron-down pw_surprise_queue_chevron"></i>
</summary>
<ul id="pw_surprise_queue_list" class="pw_surprise_queue_list"></ul>
</details>
<!-- Clear all button -->
<button id="pw_surprise_clear_all" class="pw_surprise_clear_all_btn" style="display:none; margin-top: 10px;">
<i class="fa-solid fa-xmark"></i> Clear all surprises
</button>
</div>
<hr class="pw_divider">
<!-- Appearance Section -->
<div class="pw_section">
<h4 class="pw_section_title">
<i class="fa-solid fa-palette"></i> Appearance
</h4>
<div class="pw_row_2col">
<div>
<label for="pw_font_size" class="pw_input_label">
<i class="fa-solid fa-text-height"></i> Font Size
</label>
<select id="pw_font_size" class="text_pole pw_select">
<option value="small">Small</option>
<option value="default" selected>Default</option>
<option value="large">Large</option>
</select>
</div>
<div>
<label for="pw_bar_height" class="pw_input_label">
<i class="fa-solid fa-up-down"></i> Bar Height
</label>
<select id="pw_bar_height" class="text_pole pw_select">
<option value="compact">Compact</option>
<option value="default" selected>Default</option>
<option value="max">Max</option>
</select>
</div>
</div>
<div style="margin-top: 10px;">
<label for="pw_bar_title_font" class="pw_input_label">
<i class="fa-solid fa-font"></i> Title font
</label>
<select id="pw_bar_title_font" class="text_pole pw_select pw_title_font_select"
style="width: 100%;">
<option value="none" style="font-family: inherit">None (hidden)</option>
<option value="default" selected style="font-family: 'Crimson Text', Georgia, serif">Default
</option>
<optgroup label="Serif">
<option value="crimson" style="font-family: 'Crimson Text', Georgia, serif">Crimson Text
</option>
<option value="georgia" style="font-family: Georgia, 'Times New Roman', serif">Georgia
</option>
<option value="merriweather" style="font-family: 'Merriweather', Georgia, serif">
Merriweather</option>
<option value="lora" style="font-family: 'Lora', Georgia, serif">Lora</option>
</optgroup>
<optgroup label="Sans-serif">
<option value="inter" style="font-family: 'Inter', system-ui, sans-serif">Inter</option>
<option value="nunito" style="font-family: 'Nunito', system-ui, sans-serif">Nunito</option>
<option value="poppins" style="font-family: 'Poppins', system-ui, sans-serif">Poppins
</option>
<option value="roboto" style="font-family: 'Roboto', system-ui, sans-serif">Roboto</option>
</optgroup>
</select>
</div>
</div>
</div>
</div>
</div>