Add files via upload

This commit is contained in:
2025-07-07 02:07:41 +08:00
committed by GitHub
parent 93aeacc707
commit a5c5faf328
14 changed files with 2020 additions and 0 deletions

158
assets/amily2-modal.html Normal file
View File

@@ -0,0 +1,158 @@
<div class="flex-container">
<div id="amily2_chat_optimiser">
<div id="auth_panel" style="display: none;">
<div class="auth-header">
<div class="auth-title"><i class="fas fa-crown"></i> Amily2号优化助手 - 授权验证</div>
<div class="auth-subtitle">解锁完整功能 享受智能优化体验</div>
<div id="expiry_info"></div>
</div>
<div class="auth-code-input">
<input type="password" id="amily2_auth_code" placeholder="输入授权码..."><button id="auth_submit">验证</button>
</div>
<div class="auth-footer">授权码请联系开发者获取,完全免费,禁止商用</div>
</div>
<div class="plugin-features" style="display: none;">
<div class="amily2_settings_block flex-container">
<input id="amily2_enabled" type="checkbox" />
<label for="amily2_enabled">启动Amily2号</label>
</div>
<hr>
<h4><i class="fas fa-cogs"></i> 中央枢密院 (核心功能)</h4>
<div class="amily2_settings_block">
<input id="amily2_optimization_enabled" type="checkbox" />
<label for="amily2_optimization_enabled"><strong>启动优化功能</strong></label>
<small class="notes">核心开关决定是否对AI的回复进行优化处理。</small>
</div>
<div class="amily2_settings_block">
<input id="amily2_summarization_enabled" type="checkbox" />
<label for="amily2_summarization_enabled">启用即时总结功能</label>
<small class="notes">独立开关:决定是否生成总结并写入世界书。</small>
</div>
<hr style="border-style: dashed; margin: 10px 0;">
<div class="amily2_settings_block">
<input id="amily2_show_optimization_toast" type="checkbox">
<label for="amily2_show_optimization_toast">显示优化分析通知</label>
<small class="notes">启用后,将以“已优化并将总结...”的格式弹出通知。</small>
</div>
<div class="amily2_settings_block">
<label>优化模式选择:</label>
<div class="radio-group">
<input type="radio" id="amily2_mode_intercept" name="amily2_optimization_mode" value="intercept" checked>
<label for="amily2_mode_intercept">无感优化 (推荐)</label>
<input type="radio" id="amily2_mode_refresh" name="amily2_optimization_mode" value="refresh">
<label for="amily2_mode_refresh">刷新优化</label>
</div>
<small class="notes">无感优化:直接替换文本,需关流式,适合高楼层使用;刷新优化:重载聊天界面,适合低楼层使用。</small>
</div>
<hr>
<h4><i class="fas fa-cog"></i> API 配置</h4>
<div class="amily2_settings_block">
<label for="amily2_api_url">API URL</label>
<input id="amily2_api_url" type="text" class="text_pole" placeholder="http://localhost:3000/v1" />
</div>
<div class="amily2_settings_block">
<label for="amily2_api_key">API Key</label>
<input id="amily2_api_key" type="password" class="text_pole" placeholder="sk-..." />
</div>
<div class="amily2_settings_block">
<div class="flex-container">
<select id="amily2_model" class="text_pole" style="flex: 1"></select>
<button id="amily2_refresh_models" class="menu_button interactable"><i class="fas fa-sync-alt"></i> 刷新模型</button>
</div>
<div id="amily2_model_notes" class="notes"></div>
</div>
<div class="amily2_settings_block">
<label for="amily2_max_tokens">最大Token数: <span id="amily2_max_tokens_value"></span></label>
<input id="amily2_max_tokens" type="range" min="100" max="20000" step="50" />
</div>
<div class="amily2_settings_block">
<label for="amily2_temperature">思考活跃度: <span id="amily2_temperature_value"></span></label>
<input id="amily2_temperature" type="range" min="0" max="2" step="0.1" />
</div>
<div class="amily2_settings_block">
<label for="amily2_context_messages">上下文消息数量: <span id="amily2_context_messages_value"></span></label>
<input id="amily2_context_messages" type="range" min="0" max="10" step="1" />
</div>
<hr>
<h4><i class="fas fa-edit"></i> 统一提示词编辑器</h4>
<div class="amily2_settings_block">
<label for="amily2_prompt_selector">选择要编辑的谕令:</label>
<select id="amily2_prompt_selector" class="text_pole">
<option value="mainPrompt">破限提示词 (最高优先级)</option>
<option value="systemPrompt">预设提示词 (任务规则)</option>
<option value="summarizationPrompt">总结提示词 (指导总结)</option>
<option value="outputFormatPrompt">优化内容格式提示词 (新增)</option>
</select>
</div>
<div class="amily2_settings_block">
<div class="prompt-container">
<textarea id="amily2_unified_editor" class="text_pole" rows="8"></textarea>
<div class="prompt-buttons">
<button id="amily2_unified_save_button" class="menu_button accent small_button interactable"><i class="fas fa-save"></i> 保存当前</button>
<button id="amily2_unified_restore_button" class="menu_button secondary small_button interactable"><i class="fas fa-undo"></i> 恢复默认</button>
</div>
</div>
</div>
<hr>
<h4><i class="fas fa-book-open"></i> 世界书档案司</h4>
<div class="amily2_settings_block">
<input id="amily2_worldbook_enabled" type="checkbox">
<label for="amily2_worldbook_enabled">连接世界书进行优化</label>
<small class="notes">独立开关:决定优化时是否读取世界书内容作为参考。</small>
</div>
<div class="amily2_settings_block">
<label>总结写入目标:</label>
<div class="radio-group">
<input type="radio" id="amily2_target_main" name="amily2_lorebook_target" value="character_main" checked>
<label for="amily2_target_main">写入【主世界书】</label>
<input type="radio" id="amily2_target_dedicated" name="amily2_lorebook_target" value="dedicated">
<label for="amily2_target_dedicated">写入【独立档案】</label>
</div>
<small class="notes">此设置仅在“中央枢密院”的“启用即时总结”开启时生效。</small>
</div>
<hr>
<h4><i class="fas fa-tools"></i> 操作面板</h4>
<div class="amily2_settings_block button-pair">
<button class="menu_button primary interactable" id="amily2_test"><i class="fas fa-search"></i> 测试检查</button>
<button class="menu_button accent interactable" id="amily2_fix_now"><i class="fas fa-magic"></i> 立即修复</button>
</div>
</div>
<div id="amily2_hidden_prompts" style="display:none;">
<div class="amily2_settings_block">
<div class="prompt-container">
<textarea id="amily2_main_prompt" class="text_pole" rows="6"></textarea>
<button id="save_main_prompt" class="menu_button small_button interactable"><i class="fas fa-save"></i> 保存</button>
</div>
</div>
<div class="amily2_settings_block">
<div class="prompt-container">
<textarea id="amily2_system_prompt" class="text_pole" rows="8"></textarea>
<button id="save_system_prompt" class="menu_button small_button interactable"><i class="fas fa-save"></i> 保存</button>
</div>
</div>
<div class="amily2_settings_block">
<div class="prompt-container">
<textarea id="amily2_summarization_prompt" class="text_pole" rows="3"></textarea>
<button id="save_summarization_prompt" class="menu_button small_button interactable"><i class="fas fa-save"></i> 保存</button>
</div>
</div>
<div class="amily2_settings_block">
<div class="prompt-container">
<textarea id="amily2_output_format_prompt" class="text_pole" rows="4"></textarea>
<button id="save_output_format_prompt" class="menu_button small_button interactable"><i class="fas fa-save"></i> 保存</button>
</div>
</div>
</div>
</div>
</div>

49
assets/style.css Normal file
View File

@@ -0,0 +1,49 @@
#amily2-drawer-content .flex-container {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
#amily2_chat_optimiser {
width: 100%;
flex-grow: 1;
overflow-y: auto;
padding: 15px 20px;
box-sizing: border-box;
display: flex;
flex-direction: column;
gap: 15px;
}
=
#auth_panel { background: linear-gradient(135deg, #1a237e, #4a148c); padding: 20px; border-radius: 12px; margin-bottom: 20px; }
#auth_panel .auth-header { text-align: center; margin-bottom: 20px; }
#auth_panel .auth-title { font-size: 1.8rem; background: linear-gradient(to right, #ff9800, #ff5722); -webkit-background-clip: text; background-clip: text; color: transparent; }
#auth_panel .auth-subtitle { color: #ccc; margin-top: 5px; }
#auth_panel .auth-code-input { display: flex; margin-bottom: 15px; }
#auth_panel #amily2_auth_code { flex: 1; padding: 10px; border-radius: 8px 0 0 8px; border: 1px solid #7e57c2; background: rgba(0,0,0,0.2); color: white; }
#auth_panel #auth_submit { padding: 10px 15px; border: none; background: #7e57c2; color: white; border-radius: 0 8px 8px 0; cursor: pointer; }
#auth_panel .auth-footer { text-align: center; font-size: 0.8em; color: #999; }
.auth-status { padding: 10px; border-radius: 8px; text-align: center; margin-top: 15px; }
.auth-status.valid { background-color: rgba(76, 175, 80, 0.2); border: 1px solid #4CAF50; }
.auth-status.expired { background-color: rgba(244, 67, 54, 0.2); border: 1px solid #f44336; }
h4 { border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 8px; margin-top: 10px; margin-bottom: 15px; font-size: 1.1em; color: #eee; }
h4 > i { margin-right: 8px; color: #7e57c2; }
hr { border: none; border-top: 1px solid rgba(255,255,255,0.1); margin: 20px 0; }
.amily2_settings_block { display: flex; flex-direction: column; gap: 8px; }
.amily2_settings_block label { font-weight: bold; color: #ddd; }
.amily2_settings_block .notes { font-size: 0.85em; color: #aaa; opacity: 0.8; }
.text_pole, select { width: 100%; box-sizing: border-box; }
.radio-group { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; margin-top: 5px; }
.radio-group label { font-weight: normal; }
.prompt-container { display: flex; align-items: flex-start; gap: 10px; }
.prompt-container textarea { flex: 1; }
.prompt-container .small_button { height: auto; padding: 8px 12px; align-self: flex-start; white-space: nowrap; }
.flex-container .primary { background-color: #2196F3; }
.flex-container .accent { background-color: #FF5722; }