Spaces:
Running
Running
Upload 29 files
Browse files- index.html +2 -0
- kimi-css/kimi-memory-styles.css +81 -100
- kimi-css/kimi-settings.css +65 -31
- kimi-css/kimi-style.css +166 -145
- kimi-js/kimi-constants.js +5 -5
- kimi-js/kimi-llm-manager.js +24 -22
- kimi-js/kimi-memory.js +3 -3
index.html
CHANGED
|
@@ -5,6 +5,8 @@
|
|
| 5 |
<meta charset="UTF-8" />
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
<title data-i18n="title">Kimi - Virtual Companion 💕</title>
|
|
|
|
|
|
|
| 8 |
<link rel="stylesheet" href="kimi-css/kimi-style.css" />
|
| 9 |
<link rel="stylesheet" href="kimi-css/kimi-settings.css" />
|
| 10 |
<link rel="stylesheet" href="kimi-css/kimi-memory-styles.css" />
|
|
|
|
| 5 |
<meta charset="UTF-8" />
|
| 6 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
<title data-i18n="title">Kimi - Virtual Companion 💕</title>
|
| 8 |
+
|
| 9 |
+
<!-- Main CSS Files -->
|
| 10 |
<link rel="stylesheet" href="kimi-css/kimi-style.css" />
|
| 11 |
<link rel="stylesheet" href="kimi-css/kimi-settings.css" />
|
| 12 |
<link rel="stylesheet" href="kimi-css/kimi-memory-styles.css" />
|
kimi-css/kimi-memory-styles.css
CHANGED
|
@@ -115,11 +115,72 @@
|
|
| 115 |
padding-right: 36px;
|
| 116 |
}
|
| 117 |
|
|
|
|
| 118 |
@media (max-width: 768px) {
|
| 119 |
.memory-filters {
|
| 120 |
grid-template-columns: 1fr;
|
| 121 |
gap: 8px;
|
| 122 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
}
|
| 124 |
|
| 125 |
/* Memory List */
|
|
@@ -197,7 +258,7 @@
|
|
| 197 |
padding: 0;
|
| 198 |
max-height: none;
|
| 199 |
overflow: visible;
|
| 200 |
-
color:
|
| 201 |
line-height: 1.4;
|
| 202 |
margin-bottom: 8px;
|
| 203 |
font-size: 0.9rem;
|
|
@@ -206,7 +267,7 @@
|
|
| 206 |
.memory-preview {
|
| 207 |
display: block;
|
| 208 |
margin-bottom: 6px;
|
| 209 |
-
color:
|
| 210 |
line-height: 1.4;
|
| 211 |
font-size: 0.9rem;
|
| 212 |
}
|
|
@@ -217,6 +278,7 @@
|
|
| 217 |
text-overflow: ellipsis;
|
| 218 |
white-space: nowrap;
|
| 219 |
max-width: 100%;
|
|
|
|
| 220 |
}
|
| 221 |
|
| 222 |
.memory-preview-full {
|
|
@@ -497,19 +559,6 @@
|
|
| 497 |
box-shadow: 0 6px 20px rgba(var(--primary-rgb), 0.15);
|
| 498 |
}
|
| 499 |
|
| 500 |
-
/* Responsive improvements */
|
| 501 |
-
@media (max-width: 768px) {
|
| 502 |
-
.memory-category-header {
|
| 503 |
-
flex-direction: column;
|
| 504 |
-
align-items: flex-start;
|
| 505 |
-
gap: 4px;
|
| 506 |
-
}
|
| 507 |
-
|
| 508 |
-
.memory-badges {
|
| 509 |
-
flex-wrap: wrap;
|
| 510 |
-
}
|
| 511 |
-
}
|
| 512 |
-
|
| 513 |
@keyframes fadeIn {
|
| 514 |
to {
|
| 515 |
opacity: 1;
|
|
@@ -552,99 +601,31 @@
|
|
| 552 |
box-shadow: 0 4px 15px rgba(231, 76, 60, 0.3);
|
| 553 |
}
|
| 554 |
|
| 555 |
-
/*
|
| 556 |
-
|
| 557 |
-
|
| 558 |
-
width: 95%;
|
| 559 |
-
max-height: 90vh;
|
| 560 |
-
}
|
| 561 |
-
|
| 562 |
-
.memory-header {
|
| 563 |
-
padding: 16px 20px;
|
| 564 |
-
}
|
| 565 |
-
|
| 566 |
-
.memory-content {
|
| 567 |
-
padding: 16px 20px;
|
| 568 |
-
}
|
| 569 |
-
|
| 570 |
-
.memory-filters {
|
| 571 |
-
grid-template-columns: 1fr;
|
| 572 |
-
gap: 8px;
|
| 573 |
-
}
|
| 574 |
-
|
| 575 |
-
.memory-item {
|
| 576 |
-
padding: 10px;
|
| 577 |
-
}
|
| 578 |
-
|
| 579 |
-
.memory-item .memory-header {
|
| 580 |
-
flex-direction: column;
|
| 581 |
-
align-items: flex-start;
|
| 582 |
-
gap: 6px;
|
| 583 |
-
}
|
| 584 |
-
|
| 585 |
-
.memory-meta {
|
| 586 |
-
flex-direction: column;
|
| 587 |
-
gap: 4px;
|
| 588 |
-
font-size: 0.7rem;
|
| 589 |
-
}
|
| 590 |
-
|
| 591 |
-
.memory-badges {
|
| 592 |
-
flex-wrap: wrap;
|
| 593 |
-
gap: 4px;
|
| 594 |
-
}
|
| 595 |
-
|
| 596 |
-
.memory-category {
|
| 597 |
-
font-size: 0.7rem;
|
| 598 |
-
padding: 2px 6px;
|
| 599 |
-
}
|
| 600 |
-
|
| 601 |
-
.memory-preview-text {
|
| 602 |
-
font-size: 0.85rem;
|
| 603 |
-
}
|
| 604 |
-
|
| 605 |
-
.memory-actions {
|
| 606 |
-
gap: 4px;
|
| 607 |
-
}
|
| 608 |
-
|
| 609 |
-
.memory-edit-btn,
|
| 610 |
-
.memory-delete-btn {
|
| 611 |
-
min-width: 24px;
|
| 612 |
-
height: 24px;
|
| 613 |
-
font-size: 0.75rem;
|
| 614 |
-
}
|
| 615 |
-
}
|
| 616 |
-
|
| 617 |
-
/* Dark Theme Adjustments */
|
| 618 |
-
[data-theme="dark"] .memory-modal {
|
| 619 |
background: #1a1a1a;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 620 |
}
|
| 621 |
|
| 622 |
-
|
| 623 |
-
background:
|
| 624 |
-
border-color:
|
|
|
|
| 625 |
backdrop-filter: blur(5px);
|
| 626 |
}
|
| 627 |
|
| 628 |
-
|
| 629 |
border-color: var(--primary-color);
|
| 630 |
-
background:
|
|
|
|
| 631 |
}
|
| 632 |
|
| 633 |
-
|
| 634 |
background: rgba(var(--primary-rgb), 0.2);
|
| 635 |
}
|
| 636 |
-
|
| 637 |
-
/* Light Theme Specific */
|
| 638 |
-
[data-theme="purple"] .memory-item,
|
| 639 |
-
[data-theme="blue"] .memory-item,
|
| 640 |
-
[data-theme="green"] .memory-item,
|
| 641 |
-
[data-theme="default"] .memory-item {
|
| 642 |
-
background: rgba(255, 255, 255, 0.95);
|
| 643 |
-
}
|
| 644 |
-
|
| 645 |
-
[data-theme="purple"] .memory-item:hover,
|
| 646 |
-
[data-theme="blue"] .memory-item:hover,
|
| 647 |
-
[data-theme="green"] .memory-item:hover,
|
| 648 |
-
[data-theme="default"] .memory-item:hover {
|
| 649 |
-
background: rgba(255, 255, 255, 1);
|
| 650 |
-
}
|
|
|
|
| 115 |
padding-right: 36px;
|
| 116 |
}
|
| 117 |
|
| 118 |
+
/* Consolidated Mobile Responsive */
|
| 119 |
@media (max-width: 768px) {
|
| 120 |
.memory-filters {
|
| 121 |
grid-template-columns: 1fr;
|
| 122 |
gap: 8px;
|
| 123 |
}
|
| 124 |
+
|
| 125 |
+
.memory-category-header {
|
| 126 |
+
flex-direction: column;
|
| 127 |
+
align-items: flex-start;
|
| 128 |
+
gap: 4px;
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
.memory-badges {
|
| 132 |
+
flex-wrap: wrap;
|
| 133 |
+
gap: 4px;
|
| 134 |
+
}
|
| 135 |
+
|
| 136 |
+
.memory-modal {
|
| 137 |
+
width: 95%;
|
| 138 |
+
max-height: 90vh;
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
.memory-header {
|
| 142 |
+
padding: 16px 20px;
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
.memory-content {
|
| 146 |
+
padding: 16px 20px;
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
.memory-item {
|
| 150 |
+
padding: 10px;
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
.memory-item .memory-header {
|
| 154 |
+
flex-direction: column;
|
| 155 |
+
align-items: flex-start;
|
| 156 |
+
gap: 6px;
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
.memory-meta {
|
| 160 |
+
flex-direction: column;
|
| 161 |
+
gap: 4px;
|
| 162 |
+
font-size: 0.7rem;
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
.memory-category {
|
| 166 |
+
font-size: 0.7rem;
|
| 167 |
+
padding: 2px 6px;
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
.memory-preview-text {
|
| 171 |
+
font-size: 0.85rem;
|
| 172 |
+
}
|
| 173 |
+
|
| 174 |
+
.memory-actions {
|
| 175 |
+
gap: 4px;
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
.memory-edit-btn,
|
| 179 |
+
.memory-delete-btn {
|
| 180 |
+
min-width: 24px;
|
| 181 |
+
height: 24px;
|
| 182 |
+
font-size: 0.75rem;
|
| 183 |
+
}
|
| 184 |
}
|
| 185 |
|
| 186 |
/* Memory List */
|
|
|
|
| 258 |
padding: 0;
|
| 259 |
max-height: none;
|
| 260 |
overflow: visible;
|
| 261 |
+
color: #e0e0e0;
|
| 262 |
line-height: 1.4;
|
| 263 |
margin-bottom: 8px;
|
| 264 |
font-size: 0.9rem;
|
|
|
|
| 267 |
.memory-preview {
|
| 268 |
display: block;
|
| 269 |
margin-bottom: 6px;
|
| 270 |
+
color: #e0e0e0;
|
| 271 |
line-height: 1.4;
|
| 272 |
font-size: 0.9rem;
|
| 273 |
}
|
|
|
|
| 278 |
text-overflow: ellipsis;
|
| 279 |
white-space: nowrap;
|
| 280 |
max-width: 100%;
|
| 281 |
+
color: #e0e0e0;
|
| 282 |
}
|
| 283 |
|
| 284 |
.memory-preview-full {
|
|
|
|
| 559 |
box-shadow: 0 6px 20px rgba(var(--primary-rgb), 0.15);
|
| 560 |
}
|
| 561 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 562 |
@keyframes fadeIn {
|
| 563 |
to {
|
| 564 |
opacity: 1;
|
|
|
|
| 601 |
box-shadow: 0 4px 15px rgba(231, 76, 60, 0.3);
|
| 602 |
}
|
| 603 |
|
| 604 |
+
/* Unified Dark Theme for Memory Modal - All Themes */
|
| 605 |
+
/* Theme-agnostic variables for consistent memory modal appearance */
|
| 606 |
+
.memory-modal {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 607 |
background: #1a1a1a;
|
| 608 |
+
color: #e0e0e0;
|
| 609 |
+
--memory-modal-bg: #1a1a1a;
|
| 610 |
+
--memory-modal-text: #e0e0e0;
|
| 611 |
+
--memory-item-bg: rgba(42, 42, 42, 0.95);
|
| 612 |
+
--memory-item-bg-hover: rgba(42, 42, 42, 1);
|
| 613 |
+
--memory-item-border: #404040;
|
| 614 |
}
|
| 615 |
|
| 616 |
+
.memory-item {
|
| 617 |
+
background: var(--memory-item-bg);
|
| 618 |
+
border-color: var(--memory-item-border);
|
| 619 |
+
color: var(--memory-modal-text);
|
| 620 |
backdrop-filter: blur(5px);
|
| 621 |
}
|
| 622 |
|
| 623 |
+
.memory-item:hover {
|
| 624 |
border-color: var(--primary-color);
|
| 625 |
+
background: var(--memory-item-bg-hover);
|
| 626 |
+
box-shadow: 0 4px 16px rgba(var(--primary-rgb), 0.2);
|
| 627 |
}
|
| 628 |
|
| 629 |
+
.memory-expand-btn:hover {
|
| 630 |
background: rgba(var(--primary-rgb), 0.2);
|
| 631 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kimi-css/kimi-settings.css
CHANGED
|
@@ -25,24 +25,43 @@
|
|
| 25 |
padding: 10px;
|
| 26 |
}
|
| 27 |
|
|
|
|
| 28 |
.settings-panel {
|
| 29 |
background: var(--modal-bg);
|
| 30 |
-
|
| 31 |
-
border
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
0 0 30px var(--primary-color, rgba(255, 107, 157, 0.3));
|
| 37 |
-
width: 100%;
|
| 38 |
-
max-width: 900px;
|
| 39 |
-
max-height: 90vh;
|
| 40 |
overflow: hidden;
|
|
|
|
| 41 |
display: flex;
|
| 42 |
flex-direction: column;
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
}
|
| 47 |
|
| 48 |
@keyframes slideInUp {
|
|
@@ -662,12 +681,7 @@
|
|
| 662 |
|
| 663 |
/* ===== CONSOLIDATED RESPONSIVE DESIGN ===== */
|
| 664 |
@media (max-width: 768px) {
|
| 665 |
-
|
| 666 |
-
width: 100%;
|
| 667 |
-
height: 100%;
|
| 668 |
-
border-radius: 0;
|
| 669 |
-
max-height: 100vh;
|
| 670 |
-
}
|
| 671 |
|
| 672 |
.settings-header {
|
| 673 |
padding: 20px;
|
|
@@ -730,11 +744,7 @@
|
|
| 730 |
}
|
| 731 |
|
| 732 |
@media (max-width: 480px) {
|
| 733 |
-
|
| 734 |
-
width: 95%;
|
| 735 |
-
margin: 2.5%;
|
| 736 |
-
max-height: 90vh;
|
| 737 |
-
}
|
| 738 |
|
| 739 |
.config-row {
|
| 740 |
flex-direction: column;
|
|
@@ -811,10 +821,7 @@
|
|
| 811 |
}
|
| 812 |
|
| 813 |
@media (max-width: 360px) {
|
| 814 |
-
|
| 815 |
-
width: 98%;
|
| 816 |
-
margin: 1%;
|
| 817 |
-
}
|
| 818 |
|
| 819 |
.slider-container {
|
| 820 |
gap: 5px;
|
|
@@ -1033,13 +1040,22 @@
|
|
| 1033 |
.creator-link:hover {
|
| 1034 |
transform: translateY(-2px);
|
| 1035 |
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
|
| 1036 |
-
color: var(--creator-role-color, var(--text-on-primary)) !important;
|
| 1037 |
-
text-decoration: none !important;
|
| 1038 |
-
background: var(--creator-role-bg, linear-gradient(135deg, var(--primary-color), var(--secondary-color))) !important;
|
| 1039 |
filter: brightness(1.1);
|
| 1040 |
border-color: var(--primary-color, #ff6b9d);
|
| 1041 |
}
|
| 1042 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1043 |
.creator-link i {
|
| 1044 |
font-size: 1rem;
|
| 1045 |
color: inherit;
|
|
@@ -1448,6 +1464,10 @@
|
|
| 1448 |
}
|
| 1449 |
|
| 1450 |
.cheat-toggle-btn:hover,
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1451 |
.cheat-toggle-btn:focus {
|
| 1452 |
background: linear-gradient(90deg, var(--primary-color), var(--accent-color));
|
| 1453 |
color: #fff;
|
|
@@ -1483,3 +1503,17 @@
|
|
| 1483 |
max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1),
|
| 1484 |
opacity 0.3s;
|
| 1485 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
padding: 10px;
|
| 26 |
}
|
| 27 |
|
| 28 |
+
/* ===== SETTINGS PANEL ===== */
|
| 29 |
.settings-panel {
|
| 30 |
background: var(--modal-bg);
|
| 31 |
+
border-radius: 15px;
|
| 32 |
+
border: 1px solid var(--modal-border);
|
| 33 |
+
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
|
| 34 |
+
width: 90%;
|
| 35 |
+
max-width: 800px;
|
| 36 |
+
max-height: 85vh;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
overflow: hidden;
|
| 38 |
+
animation: slideInUp 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
| 39 |
display: flex;
|
| 40 |
flex-direction: column;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
.settings-content {
|
| 44 |
+
flex: 1;
|
| 45 |
+
overflow-y: auto;
|
| 46 |
+
padding: 0;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
.settings-content::-webkit-scrollbar {
|
| 50 |
+
width: 8px;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
.settings-content::-webkit-scrollbar-track {
|
| 54 |
+
background: rgba(255, 255, 255, 0.1);
|
| 55 |
+
border-radius: 4px;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.settings-content::-webkit-scrollbar-thumb {
|
| 59 |
+
background: var(--primary-color);
|
| 60 |
+
border-radius: 4px;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
.settings-content::-webkit-scrollbar-thumb:hover {
|
| 64 |
+
background: var(--accent-color);
|
| 65 |
}
|
| 66 |
|
| 67 |
@keyframes slideInUp {
|
|
|
|
| 681 |
|
| 682 |
/* ===== CONSOLIDATED RESPONSIVE DESIGN ===== */
|
| 683 |
@media (max-width: 768px) {
|
| 684 |
+
/* Settings panel responsive styles */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 685 |
|
| 686 |
.settings-header {
|
| 687 |
padding: 20px;
|
|
|
|
| 744 |
}
|
| 745 |
|
| 746 |
@media (max-width: 480px) {
|
| 747 |
+
/* Settings panel responsive styles consolidated */
|
|
|
|
|
|
|
|
|
|
|
|
|
| 748 |
|
| 749 |
.config-row {
|
| 750 |
flex-direction: column;
|
|
|
|
| 821 |
}
|
| 822 |
|
| 823 |
@media (max-width: 360px) {
|
| 824 |
+
/* Settings panel responsive styles consolidated */
|
|
|
|
|
|
|
|
|
|
| 825 |
|
| 826 |
.slider-container {
|
| 827 |
gap: 5px;
|
|
|
|
| 1040 |
.creator-link:hover {
|
| 1041 |
transform: translateY(-2px);
|
| 1042 |
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
|
|
|
|
|
|
|
|
|
|
| 1043 |
filter: brightness(1.1);
|
| 1044 |
border-color: var(--primary-color, #ff6b9d);
|
| 1045 |
}
|
| 1046 |
|
| 1047 |
+
/* Increased specificity to avoid !important */
|
| 1048 |
+
.help-modal .creator-link:hover {
|
| 1049 |
+
color: var(--creator-role-color, var(--text-on-primary));
|
| 1050 |
+
text-decoration: none;
|
| 1051 |
+
background: var(--creator-role-bg, linear-gradient(135deg, var(--primary-color), var(--secondary-color)));
|
| 1052 |
+
}
|
| 1053 |
+
|
| 1054 |
+
.help-modal .creator-link:hover i,
|
| 1055 |
+
.help-modal .creator-link:hover span {
|
| 1056 |
+
color: inherit;
|
| 1057 |
+
}
|
| 1058 |
+
|
| 1059 |
.creator-link i {
|
| 1060 |
font-size: 1rem;
|
| 1061 |
color: inherit;
|
|
|
|
| 1464 |
}
|
| 1465 |
|
| 1466 |
.cheat-toggle-btn:hover,
|
| 1467 |
+
.cheat-toggle-btn:focus {
|
| 1468 |
+
box-shadow: 0 2px 16px 0 rgba(255, 107, 157, 0.25);
|
| 1469 |
+
transform: translateY(-1px);
|
| 1470 |
+
}
|
| 1471 |
.cheat-toggle-btn:focus {
|
| 1472 |
background: linear-gradient(90deg, var(--primary-color), var(--accent-color));
|
| 1473 |
color: #fff;
|
|
|
|
| 1503 |
max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1),
|
| 1504 |
opacity 0.3s;
|
| 1505 |
}
|
| 1506 |
+
|
| 1507 |
+
/* ===== ACCESSIBILITY - FOCUS STYLES ===== */
|
| 1508 |
+
.settings-panel select:focus,
|
| 1509 |
+
.settings-panel input:focus,
|
| 1510 |
+
.settings-panel button:focus,
|
| 1511 |
+
.settings-panel .cheat-toggle-btn:focus {
|
| 1512 |
+
box-shadow: 0 0 0 2px var(--primary-pink);
|
| 1513 |
+
border-color: var(--primary-pink);
|
| 1514 |
+
}
|
| 1515 |
+
|
| 1516 |
+
.character-card:focus {
|
| 1517 |
+
outline: 2px solid var(--primary-pink);
|
| 1518 |
+
outline-offset: 2px;
|
| 1519 |
+
}
|
kimi-css/kimi-style.css
CHANGED
|
@@ -2,6 +2,7 @@
|
|
| 2 |
:root {
|
| 3 |
/* Core Theme Colors - Default Pink Passion */
|
| 4 |
--primary-color: #ff6b9d;
|
|
|
|
| 5 |
--secondary-color: #ffeaa7;
|
| 6 |
--accent-color: #fd79a8;
|
| 7 |
--background-overlay: rgba(255, 107, 157, 0.15);
|
|
@@ -217,6 +218,7 @@
|
|
| 217 |
/* ===== OPTIMIZED THEME VARIATIONS ===== */
|
| 218 |
[data-theme="blue"] {
|
| 219 |
--primary-color: #74b9ff;
|
|
|
|
| 220 |
--secondary-color: #81ecec;
|
| 221 |
--accent-color: #0984e3;
|
| 222 |
--background-overlay: rgba(116, 185, 255, 0.15);
|
|
@@ -231,6 +233,7 @@
|
|
| 231 |
--chat-bg: rgba(116, 185, 255, 0.9);
|
| 232 |
--chat-border: #74b9ff;
|
| 233 |
--chat-message-user-bg: #74b9ff;
|
|
|
|
| 234 |
--input-border: #74b9ff;
|
| 235 |
--input-focus-border: #0984e3;
|
| 236 |
|
|
@@ -304,6 +307,7 @@
|
|
| 304 |
|
| 305 |
[data-theme="purple"] {
|
| 306 |
--primary-color: #a29bfe;
|
|
|
|
| 307 |
--secondary-color: #fd79a8;
|
| 308 |
--accent-color: #6c5ce7;
|
| 309 |
--background-overlay: rgba(162, 155, 254, 0.15);
|
|
@@ -318,6 +322,7 @@
|
|
| 318 |
--chat-bg: rgba(162, 155, 254, 0.9);
|
| 319 |
--chat-border: #a29bfe;
|
| 320 |
--chat-message-user-bg: #a29bfe;
|
|
|
|
| 321 |
--input-border: #a29bfe;
|
| 322 |
--input-focus-border: #6c5ce7;
|
| 323 |
|
|
@@ -403,6 +408,7 @@
|
|
| 403 |
|
| 404 |
[data-theme="green"] {
|
| 405 |
--primary-color: #27ae60;
|
|
|
|
| 406 |
--secondary-color: #2ecc71;
|
| 407 |
--accent-color: #16a085;
|
| 408 |
--background-overlay: rgba(39, 174, 96, 0.15);
|
|
@@ -531,6 +537,7 @@
|
|
| 531 |
|
| 532 |
[data-theme="dark"] {
|
| 533 |
--primary-color: #5e60ce;
|
|
|
|
| 534 |
--secondary-color: #23262f;
|
| 535 |
--accent-color: #8b5cf6;
|
| 536 |
--background-overlay: rgba(24, 26, 32, 0.85);
|
|
@@ -551,9 +558,9 @@
|
|
| 551 |
--chat-bg: rgba(24, 26, 32, 0.95);
|
| 552 |
--chat-border: #5e60ce;
|
| 553 |
--chat-text: var(--text-on-background);
|
| 554 |
-
--chat-message-user-bg: #
|
| 555 |
--chat-message-user-text: var(--text-on-background);
|
| 556 |
-
--chat-message-kimi-bg: #
|
| 557 |
--chat-message-kimi-text: var(--text-on-background);
|
| 558 |
--input-border: #5e60ce;
|
| 559 |
--input-focus-border: #8b5cf6;
|
|
@@ -699,9 +706,7 @@ body.no-animations *,
|
|
| 699 |
[data-animations="false"] * {
|
| 700 |
animation: none !important;
|
| 701 |
transition: none !important;
|
| 702 |
-
}
|
| 703 |
-
|
| 704 |
-
/* Important: Keep mic button animations even when animations are disabled */
|
| 705 |
body.no-animations .mic-button,
|
| 706 |
body.no-animations .mic-button *,
|
| 707 |
body.no-animations .mic-button::after,
|
|
@@ -782,13 +787,6 @@ body {
|
|
| 782 |
pointer-events: none;
|
| 783 |
}
|
| 784 |
|
| 785 |
-
@media (max-width: 600px) {
|
| 786 |
-
.bg-video {
|
| 787 |
-
object-fit: cover;
|
| 788 |
-
object-position: center center;
|
| 789 |
-
}
|
| 790 |
-
}
|
| 791 |
-
|
| 792 |
.content-overlay {
|
| 793 |
position: relative;
|
| 794 |
height: 100vh;
|
|
@@ -844,6 +842,7 @@ body {
|
|
| 844 |
transform: translateX(-50%);
|
| 845 |
width: 80%;
|
| 846 |
max-width: 600px;
|
|
|
|
| 847 |
padding: 15px;
|
| 848 |
background: var(--transcript-bg);
|
| 849 |
backdrop-filter: blur(10px);
|
|
@@ -854,26 +853,69 @@ body {
|
|
| 854 |
transition: opacity 0.3s ease-in-out;
|
| 855 |
pointer-events: none;
|
| 856 |
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
|
|
|
|
|
|
| 857 |
}
|
| 858 |
|
| 859 |
.transcript-container.visible {
|
| 860 |
opacity: 1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 861 |
}
|
| 862 |
|
| 863 |
#transcript {
|
| 864 |
font-size: 1.2rem;
|
| 865 |
color: var(--transcript-text);
|
| 866 |
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7);
|
|
|
|
|
|
|
|
|
|
|
|
|
| 867 |
}
|
| 868 |
|
| 869 |
-
/*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 870 |
.chat-container {
|
| 871 |
position: fixed;
|
| 872 |
top: 20px;
|
| 873 |
right: 20px;
|
| 874 |
-
|
|
|
|
| 875 |
max-width: calc(100vw - 40px);
|
| 876 |
-
height:
|
| 877 |
max-height: 80vh;
|
| 878 |
background: var(--chat-bg);
|
| 879 |
backdrop-filter: blur(20px);
|
|
@@ -882,7 +924,6 @@ body {
|
|
| 882 |
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
|
| 883 |
display: none;
|
| 884 |
flex-direction: column;
|
| 885 |
-
z-index: 1000;
|
| 886 |
overflow: hidden;
|
| 887 |
transform: translateX(400px);
|
| 888 |
opacity: 0;
|
|
@@ -891,183 +932,153 @@ body {
|
|
| 891 |
|
| 892 |
.chat-container.visible {
|
| 893 |
display: flex;
|
| 894 |
-
flex-direction: column;
|
| 895 |
transform: translateX(0);
|
| 896 |
opacity: 1;
|
| 897 |
}
|
| 898 |
|
| 899 |
.chat-header {
|
|
|
|
| 900 |
padding: 15px 20px;
|
| 901 |
-
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
| 902 |
display: flex;
|
| 903 |
justify-content: space-between;
|
| 904 |
align-items: center;
|
| 905 |
-
|
| 906 |
}
|
| 907 |
|
| 908 |
.chat-header h3 {
|
| 909 |
margin: 0;
|
| 910 |
color: var(--chat-text);
|
| 911 |
font-size: 1.1rem;
|
| 912 |
-
font-weight: 600;
|
| 913 |
-
}
|
| 914 |
-
|
| 915 |
-
.chat-header h3 i {
|
| 916 |
-
margin-right: 8px;
|
| 917 |
-
color: var(--accent-color);
|
| 918 |
-
}
|
| 919 |
-
|
| 920 |
-
.chat-toggle {
|
| 921 |
-
background: none;
|
| 922 |
-
border: none;
|
| 923 |
-
color: var(--chat-text);
|
| 924 |
-
cursor: pointer;
|
| 925 |
-
width: 30px;
|
| 926 |
-
height: 30px;
|
| 927 |
-
border-radius: 50%;
|
| 928 |
display: flex;
|
| 929 |
align-items: center;
|
| 930 |
-
|
| 931 |
-
transition: all 0.3s ease;
|
| 932 |
-
font-size: 1.1rem;
|
| 933 |
-
}
|
| 934 |
-
|
| 935 |
-
.chat-toggle:hover {
|
| 936 |
-
background: rgba(255, 255, 255, 0.1);
|
| 937 |
-
transform: scale(1.1);
|
| 938 |
}
|
| 939 |
|
| 940 |
.chat-messages {
|
| 941 |
flex: 1;
|
| 942 |
-
padding:
|
| 943 |
overflow-y: auto;
|
| 944 |
display: flex;
|
| 945 |
flex-direction: column;
|
| 946 |
-
gap:
|
| 947 |
}
|
| 948 |
|
| 949 |
.message {
|
| 950 |
-
max-width:
|
| 951 |
-
padding:
|
| 952 |
-
border-radius:
|
| 953 |
-
|
| 954 |
-
|
|
|
|
|
|
|
| 955 |
}
|
| 956 |
|
| 957 |
.message.user {
|
| 958 |
align-self: flex-end;
|
| 959 |
background: var(--chat-message-user-bg);
|
| 960 |
color: var(--chat-message-user-text);
|
| 961 |
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
| 962 |
}
|
| 963 |
|
| 964 |
.message.kimi {
|
| 965 |
align-self: flex-start;
|
| 966 |
background: var(--chat-message-kimi-bg);
|
| 967 |
color: var(--chat-message-kimi-text);
|
| 968 |
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
| 969 |
}
|
| 970 |
|
| 971 |
.message-time {
|
| 972 |
font-size: 0.75rem;
|
| 973 |
-
|
| 974 |
-
margin-top:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 975 |
}
|
| 976 |
|
| 977 |
.chat-input-container {
|
| 978 |
padding: 15px 20px;
|
| 979 |
-
background: var(--chat-header-bg);
|
| 980 |
-
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
| 981 |
display: flex;
|
| 982 |
gap: 10px;
|
| 983 |
-
|
|
|
|
| 984 |
}
|
| 985 |
|
| 986 |
#chat-input {
|
| 987 |
flex: 1;
|
| 988 |
-
padding: 12px 15px;
|
| 989 |
background: var(--chat-input-bg);
|
| 990 |
border: 1px solid rgba(255, 255, 255, 0.2);
|
| 991 |
-
border-radius:
|
|
|
|
| 992 |
color: var(--chat-input-text);
|
| 993 |
-
font-size: 0.
|
| 994 |
outline: none;
|
| 995 |
transition: all 0.3s ease;
|
| 996 |
}
|
| 997 |
|
| 998 |
-
#chat-input:focus {
|
| 999 |
-
background: rgba(255, 255, 255, 0.15);
|
| 1000 |
-
border-color: var(--accent-color);
|
| 1001 |
-
box-shadow: 0 0 10px var(--primary-color);
|
| 1002 |
-
}
|
| 1003 |
-
|
| 1004 |
#chat-input::placeholder {
|
| 1005 |
color: var(--chat-input-placeholder);
|
| 1006 |
}
|
| 1007 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1008 |
#send-button {
|
| 1009 |
-
|
| 1010 |
-
height: 45px;
|
| 1011 |
-
background: var(--chat-message-user-bg);
|
| 1012 |
border: none;
|
| 1013 |
-
border-radius:
|
| 1014 |
-
|
| 1015 |
-
|
| 1016 |
display: flex;
|
| 1017 |
-
justify-content: center;
|
| 1018 |
align-items: center;
|
| 1019 |
-
|
| 1020 |
-
|
| 1021 |
-
|
| 1022 |
-
|
| 1023 |
}
|
| 1024 |
|
| 1025 |
#send-button:hover {
|
| 1026 |
-
transform: scale(1.1);
|
| 1027 |
-
box-shadow:
|
| 1028 |
-
var(--text-glow),
|
| 1029 |
-
0 4px 15px rgba(0, 0, 0, 0.3);
|
| 1030 |
background: var(--accent-color);
|
|
|
|
| 1031 |
}
|
| 1032 |
|
| 1033 |
-
|
| 1034 |
-
|
| 1035 |
-
transition: all 0.1s ease;
|
| 1036 |
-
}
|
| 1037 |
-
|
| 1038 |
-
#chat-delete {
|
| 1039 |
background: none;
|
| 1040 |
border: none;
|
| 1041 |
-
color:
|
| 1042 |
-
font-size: 1.2em;
|
| 1043 |
cursor: pointer;
|
| 1044 |
-
|
| 1045 |
-
|
|
|
|
| 1046 |
}
|
| 1047 |
|
| 1048 |
-
|
| 1049 |
-
color:
|
| 1050 |
}
|
| 1051 |
|
| 1052 |
-
|
| 1053 |
-
|
|
|
|
| 1054 |
}
|
| 1055 |
|
| 1056 |
-
.
|
| 1057 |
-
background:
|
| 1058 |
-
border: none;
|
| 1059 |
-
color: #aaa;
|
| 1060 |
-
cursor: pointer;
|
| 1061 |
-
padding: 0 0 0 8px;
|
| 1062 |
-
display: flex;
|
| 1063 |
-
align-items: center;
|
| 1064 |
-
transition: color 0.2s;
|
| 1065 |
-
}
|
| 1066 |
-
.delete-message-btn:hover {
|
| 1067 |
-
color: #e74c3c;
|
| 1068 |
-
}
|
| 1069 |
-
.delete-message-btn i {
|
| 1070 |
-
pointer-events: none;
|
| 1071 |
}
|
| 1072 |
|
| 1073 |
/* ===== UNIFIED BUTTON COMPONENTS ===== */
|
|
@@ -1490,6 +1501,16 @@ body {
|
|
| 1490 |
}
|
| 1491 |
}
|
| 1492 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1493 |
/* ===== CONSOLIDATED RESPONSIVE DESIGN ===== */
|
| 1494 |
@media (max-width: 768px) {
|
| 1495 |
.content-overlay {
|
|
@@ -1497,22 +1518,10 @@ body {
|
|
| 1497 |
}
|
| 1498 |
|
| 1499 |
.chat-container {
|
| 1500 |
-
|
| 1501 |
-
|
| 1502 |
-
|
| 1503 |
-
|
| 1504 |
-
max-width: none;
|
| 1505 |
-
height: calc(100vh - 20px);
|
| 1506 |
-
max-height: none;
|
| 1507 |
-
border-radius: 10px;
|
| 1508 |
-
}
|
| 1509 |
-
|
| 1510 |
-
.chat-header {
|
| 1511 |
-
padding: 12px 15px;
|
| 1512 |
-
}
|
| 1513 |
-
|
| 1514 |
-
.chat-header h3 {
|
| 1515 |
-
font-size: 1rem;
|
| 1516 |
}
|
| 1517 |
|
| 1518 |
.control-buttons {
|
|
@@ -1582,27 +1591,13 @@ body {
|
|
| 1582 |
}
|
| 1583 |
|
| 1584 |
@media (max-width: 600px) {
|
| 1585 |
-
.
|
| 1586 |
-
|
| 1587 |
-
|
| 1588 |
-
|
| 1589 |
-
.chat-container {
|
| 1590 |
-
top: 10px;
|
| 1591 |
-
right: 10px;
|
| 1592 |
-
left: 10px;
|
| 1593 |
-
width: auto;
|
| 1594 |
-
max-width: none;
|
| 1595 |
-
height: calc(100vh - 20px);
|
| 1596 |
-
max-height: none;
|
| 1597 |
-
border-radius: 10px;
|
| 1598 |
-
}
|
| 1599 |
-
|
| 1600 |
-
.chat-header {
|
| 1601 |
-
padding: 12px 15px;
|
| 1602 |
}
|
| 1603 |
|
| 1604 |
-
.
|
| 1605 |
-
|
| 1606 |
}
|
| 1607 |
|
| 1608 |
.control-buttons {
|
|
@@ -1659,6 +1654,20 @@ body {
|
|
| 1659 |
.favorability-text {
|
| 1660 |
font-size: 0.75rem;
|
| 1661 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1662 |
}
|
| 1663 |
|
| 1664 |
/* Animation pour l'indicateur d'attente */
|
|
@@ -1738,3 +1747,15 @@ body {
|
|
| 1738 |
.global-typing-indicator span:nth-child(3) {
|
| 1739 |
animation-delay: 0.4s;
|
| 1740 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
:root {
|
| 3 |
/* Core Theme Colors - Default Pink Passion */
|
| 4 |
--primary-color: #ff6b9d;
|
| 5 |
+
--primary-rgb: 255, 107, 157;
|
| 6 |
--secondary-color: #ffeaa7;
|
| 7 |
--accent-color: #fd79a8;
|
| 8 |
--background-overlay: rgba(255, 107, 157, 0.15);
|
|
|
|
| 218 |
/* ===== OPTIMIZED THEME VARIATIONS ===== */
|
| 219 |
[data-theme="blue"] {
|
| 220 |
--primary-color: #74b9ff;
|
| 221 |
+
--primary-rgb: 116, 185, 255;
|
| 222 |
--secondary-color: #81ecec;
|
| 223 |
--accent-color: #0984e3;
|
| 224 |
--background-overlay: rgba(116, 185, 255, 0.15);
|
|
|
|
| 233 |
--chat-bg: rgba(116, 185, 255, 0.9);
|
| 234 |
--chat-border: #74b9ff;
|
| 235 |
--chat-message-user-bg: #74b9ff;
|
| 236 |
+
--chat-message-kimi-bg: rgba(255, 255, 255, 0.15);
|
| 237 |
--input-border: #74b9ff;
|
| 238 |
--input-focus-border: #0984e3;
|
| 239 |
|
|
|
|
| 307 |
|
| 308 |
[data-theme="purple"] {
|
| 309 |
--primary-color: #a29bfe;
|
| 310 |
+
--primary-rgb: 162, 155, 254;
|
| 311 |
--secondary-color: #fd79a8;
|
| 312 |
--accent-color: #6c5ce7;
|
| 313 |
--background-overlay: rgba(162, 155, 254, 0.15);
|
|
|
|
| 322 |
--chat-bg: rgba(162, 155, 254, 0.9);
|
| 323 |
--chat-border: #a29bfe;
|
| 324 |
--chat-message-user-bg: #a29bfe;
|
| 325 |
+
--chat-message-kimi-bg: rgba(255, 255, 255, 0.15);
|
| 326 |
--input-border: #a29bfe;
|
| 327 |
--input-focus-border: #6c5ce7;
|
| 328 |
|
|
|
|
| 408 |
|
| 409 |
[data-theme="green"] {
|
| 410 |
--primary-color: #27ae60;
|
| 411 |
+
--primary-rgb: 39, 174, 96;
|
| 412 |
--secondary-color: #2ecc71;
|
| 413 |
--accent-color: #16a085;
|
| 414 |
--background-overlay: rgba(39, 174, 96, 0.15);
|
|
|
|
| 537 |
|
| 538 |
[data-theme="dark"] {
|
| 539 |
--primary-color: #5e60ce;
|
| 540 |
+
--primary-rgb: 94, 96, 206;
|
| 541 |
--secondary-color: #23262f;
|
| 542 |
--accent-color: #8b5cf6;
|
| 543 |
--background-overlay: rgba(24, 26, 32, 0.85);
|
|
|
|
| 558 |
--chat-bg: rgba(24, 26, 32, 0.95);
|
| 559 |
--chat-border: #5e60ce;
|
| 560 |
--chat-text: var(--text-on-background);
|
| 561 |
+
--chat-message-user-bg: #1e253c;
|
| 562 |
--chat-message-user-text: var(--text-on-background);
|
| 563 |
+
--chat-message-kimi-bg: #23262f;
|
| 564 |
--chat-message-kimi-text: var(--text-on-background);
|
| 565 |
--input-border: #5e60ce;
|
| 566 |
--input-focus-border: #8b5cf6;
|
|
|
|
| 706 |
[data-animations="false"] * {
|
| 707 |
animation: none !important;
|
| 708 |
transition: none !important;
|
| 709 |
+
} /* Important: Keep mic button animations even when animations are disabled */
|
|
|
|
|
|
|
| 710 |
body.no-animations .mic-button,
|
| 711 |
body.no-animations .mic-button *,
|
| 712 |
body.no-animations .mic-button::after,
|
|
|
|
| 787 |
pointer-events: none;
|
| 788 |
}
|
| 789 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 790 |
.content-overlay {
|
| 791 |
position: relative;
|
| 792 |
height: 100vh;
|
|
|
|
| 842 |
transform: translateX(-50%);
|
| 843 |
width: 80%;
|
| 844 |
max-width: 600px;
|
| 845 |
+
max-height: 400px;
|
| 846 |
padding: 15px;
|
| 847 |
background: var(--transcript-bg);
|
| 848 |
backdrop-filter: blur(10px);
|
|
|
|
| 853 |
transition: opacity 0.3s ease-in-out;
|
| 854 |
pointer-events: none;
|
| 855 |
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
| 856 |
+
overflow-y: auto;
|
| 857 |
+
overflow-x: hidden;
|
| 858 |
}
|
| 859 |
|
| 860 |
.transcript-container.visible {
|
| 861 |
opacity: 1;
|
| 862 |
+
pointer-events: auto;
|
| 863 |
+
}
|
| 864 |
+
|
| 865 |
+
/* Custom scrollbar for transcript container */
|
| 866 |
+
.transcript-container::-webkit-scrollbar {
|
| 867 |
+
width: 8px;
|
| 868 |
+
}
|
| 869 |
+
|
| 870 |
+
.transcript-container::-webkit-scrollbar-track {
|
| 871 |
+
background: rgba(255, 255, 255, 0.1);
|
| 872 |
+
border-radius: 4px;
|
| 873 |
+
}
|
| 874 |
+
|
| 875 |
+
.transcript-container::-webkit-scrollbar-thumb {
|
| 876 |
+
background: rgba(255, 255, 255, 0.3);
|
| 877 |
+
border-radius: 4px;
|
| 878 |
+
transition: background 0.3s ease;
|
| 879 |
+
}
|
| 880 |
+
|
| 881 |
+
.transcript-container::-webkit-scrollbar-thumb:hover {
|
| 882 |
+
background: rgba(255, 255, 255, 0.5);
|
| 883 |
}
|
| 884 |
|
| 885 |
#transcript {
|
| 886 |
font-size: 1.2rem;
|
| 887 |
color: var(--transcript-text);
|
| 888 |
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7);
|
| 889 |
+
margin: 0;
|
| 890 |
+
line-height: 1.3;
|
| 891 |
+
text-align: left;
|
| 892 |
+
white-space: pre-line;
|
| 893 |
}
|
| 894 |
|
| 895 |
+
/* ===== ACCESSIBILITY - FOCUS STYLES ===== */
|
| 896 |
+
select:focus,
|
| 897 |
+
input:focus,
|
| 898 |
+
button:focus,
|
| 899 |
+
.kimi-slider:focus,
|
| 900 |
+
.kimi-slider-unified:focus {
|
| 901 |
+
box-shadow: 0 0 0 2px var(--primary-pink);
|
| 902 |
+
border-color: var(--primary-pink);
|
| 903 |
+
}
|
| 904 |
+
|
| 905 |
+
.control-button-unified:focus {
|
| 906 |
+
outline: 2px solid var(--primary-pink);
|
| 907 |
+
outline-offset: 2px;
|
| 908 |
+
}
|
| 909 |
+
|
| 910 |
+
/* ===== CHAT INTERFACE ===== */
|
| 911 |
.chat-container {
|
| 912 |
position: fixed;
|
| 913 |
top: 20px;
|
| 914 |
right: 20px;
|
| 915 |
+
z-index: 1000;
|
| 916 |
+
width: 400px;
|
| 917 |
max-width: calc(100vw - 40px);
|
| 918 |
+
height: 600px;
|
| 919 |
max-height: 80vh;
|
| 920 |
background: var(--chat-bg);
|
| 921 |
backdrop-filter: blur(20px);
|
|
|
|
| 924 |
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
|
| 925 |
display: none;
|
| 926 |
flex-direction: column;
|
|
|
|
| 927 |
overflow: hidden;
|
| 928 |
transform: translateX(400px);
|
| 929 |
opacity: 0;
|
|
|
|
| 932 |
|
| 933 |
.chat-container.visible {
|
| 934 |
display: flex;
|
|
|
|
| 935 |
transform: translateX(0);
|
| 936 |
opacity: 1;
|
| 937 |
}
|
| 938 |
|
| 939 |
.chat-header {
|
| 940 |
+
background: var(--chat-header-bg);
|
| 941 |
padding: 15px 20px;
|
|
|
|
| 942 |
display: flex;
|
| 943 |
justify-content: space-between;
|
| 944 |
align-items: center;
|
| 945 |
+
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
| 946 |
}
|
| 947 |
|
| 948 |
.chat-header h3 {
|
| 949 |
margin: 0;
|
| 950 |
color: var(--chat-text);
|
| 951 |
font-size: 1.1rem;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 952 |
display: flex;
|
| 953 |
align-items: center;
|
| 954 |
+
gap: 8px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 955 |
}
|
| 956 |
|
| 957 |
.chat-messages {
|
| 958 |
flex: 1;
|
| 959 |
+
padding: 15px;
|
| 960 |
overflow-y: auto;
|
| 961 |
display: flex;
|
| 962 |
flex-direction: column;
|
| 963 |
+
gap: 10px;
|
| 964 |
}
|
| 965 |
|
| 966 |
.message {
|
| 967 |
+
max-width: 95%;
|
| 968 |
+
padding: 12px 16px;
|
| 969 |
+
border-radius: 18px;
|
| 970 |
+
font-size: 0.95rem;
|
| 971 |
+
line-height: 1.3;
|
| 972 |
+
white-space: pre-line;
|
| 973 |
+
animation: messageSlideIn 0.3s ease-out;
|
| 974 |
}
|
| 975 |
|
| 976 |
.message.user {
|
| 977 |
align-self: flex-end;
|
| 978 |
background: var(--chat-message-user-bg);
|
| 979 |
color: var(--chat-message-user-text);
|
|
|
|
| 980 |
}
|
| 981 |
|
| 982 |
.message.kimi {
|
| 983 |
align-self: flex-start;
|
| 984 |
background: var(--chat-message-kimi-bg);
|
| 985 |
color: var(--chat-message-kimi-text);
|
|
|
|
| 986 |
}
|
| 987 |
|
| 988 |
.message-time {
|
| 989 |
font-size: 0.75rem;
|
| 990 |
+
color: rgba(255, 255, 255, 0.6);
|
| 991 |
+
margin-top: 4px;
|
| 992 |
+
text-align: right;
|
| 993 |
+
}
|
| 994 |
+
|
| 995 |
+
.delete-message-btn {
|
| 996 |
+
background: none;
|
| 997 |
+
border: none;
|
| 998 |
+
color: rgba(255, 255, 255, 0.4);
|
| 999 |
+
cursor: pointer;
|
| 1000 |
+
padding: 2px 4px;
|
| 1001 |
+
border-radius: 3px;
|
| 1002 |
+
font-size: 0.7rem;
|
| 1003 |
+
margin-left: 8px;
|
| 1004 |
+
transition: all 0.2s ease;
|
| 1005 |
+
}
|
| 1006 |
+
|
| 1007 |
+
.delete-message-btn:hover {
|
| 1008 |
+
color: #ff4757 !important;
|
| 1009 |
+
background: rgba(255, 71, 87, 0.1) !important;
|
| 1010 |
}
|
| 1011 |
|
| 1012 |
.chat-input-container {
|
| 1013 |
padding: 15px 20px;
|
|
|
|
|
|
|
| 1014 |
display: flex;
|
| 1015 |
gap: 10px;
|
| 1016 |
+
background: rgba(255, 255, 255, 0.05);
|
| 1017 |
+
border-top: 1px solid rgba(255, 255, 255, 0.1);
|
| 1018 |
}
|
| 1019 |
|
| 1020 |
#chat-input {
|
| 1021 |
flex: 1;
|
|
|
|
| 1022 |
background: var(--chat-input-bg);
|
| 1023 |
border: 1px solid rgba(255, 255, 255, 0.2);
|
| 1024 |
+
border-radius: 20px;
|
| 1025 |
+
padding: 10px 15px;
|
| 1026 |
color: var(--chat-input-text);
|
| 1027 |
+
font-size: 0.9rem;
|
| 1028 |
outline: none;
|
| 1029 |
transition: all 0.3s ease;
|
| 1030 |
}
|
| 1031 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1032 |
#chat-input::placeholder {
|
| 1033 |
color: var(--chat-input-placeholder);
|
| 1034 |
}
|
| 1035 |
|
| 1036 |
+
#chat-input:focus {
|
| 1037 |
+
border-color: var(--primary-color);
|
| 1038 |
+
box-shadow: 0 0 0 2px rgba(255, 107, 157, 0.2);
|
| 1039 |
+
}
|
| 1040 |
+
|
| 1041 |
#send-button {
|
| 1042 |
+
background: var(--primary-color);
|
|
|
|
|
|
|
| 1043 |
border: none;
|
| 1044 |
+
border-radius: 20px;
|
| 1045 |
+
width: 40px;
|
| 1046 |
+
height: 40px;
|
| 1047 |
display: flex;
|
|
|
|
| 1048 |
align-items: center;
|
| 1049 |
+
justify-content: center;
|
| 1050 |
+
color: white;
|
| 1051 |
+
cursor: pointer;
|
| 1052 |
+
transition: all 0.3s ease;
|
| 1053 |
}
|
| 1054 |
|
| 1055 |
#send-button:hover {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1056 |
background: var(--accent-color);
|
| 1057 |
+
transform: scale(1.05);
|
| 1058 |
}
|
| 1059 |
|
| 1060 |
+
.chat-toggle,
|
| 1061 |
+
.chat-delete {
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1062 |
background: none;
|
| 1063 |
border: none;
|
| 1064 |
+
color: var(--chat-text);
|
|
|
|
| 1065 |
cursor: pointer;
|
| 1066 |
+
padding: 5px;
|
| 1067 |
+
border-radius: 5px;
|
| 1068 |
+
transition: all 0.3s ease;
|
| 1069 |
}
|
| 1070 |
|
| 1071 |
+
.chat-delete {
|
| 1072 |
+
color: rgba(255, 255, 255, 0.7);
|
| 1073 |
}
|
| 1074 |
|
| 1075 |
+
.chat-delete:hover {
|
| 1076 |
+
color: #ff4757;
|
| 1077 |
+
background: rgba(255, 71, 87, 0.1);
|
| 1078 |
}
|
| 1079 |
|
| 1080 |
+
.chat-toggle:hover {
|
| 1081 |
+
background: rgba(255, 255, 255, 0.1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1082 |
}
|
| 1083 |
|
| 1084 |
/* ===== UNIFIED BUTTON COMPONENTS ===== */
|
|
|
|
| 1501 |
}
|
| 1502 |
}
|
| 1503 |
|
| 1504 |
+
/* ===== LARGE SCREENS OPTIMIZATION ===== */
|
| 1505 |
+
@media (min-width: 1200px) {
|
| 1506 |
+
.chat-container {
|
| 1507 |
+
width: 400px;
|
| 1508 |
+
height: 600px;
|
| 1509 |
+
right: 30px;
|
| 1510 |
+
top: 30px;
|
| 1511 |
+
}
|
| 1512 |
+
}
|
| 1513 |
+
|
| 1514 |
/* ===== CONSOLIDATED RESPONSIVE DESIGN ===== */
|
| 1515 |
@media (max-width: 768px) {
|
| 1516 |
.content-overlay {
|
|
|
|
| 1518 |
}
|
| 1519 |
|
| 1520 |
.chat-container {
|
| 1521 |
+
width: 400px;
|
| 1522 |
+
max-width: calc(100vw - 30px);
|
| 1523 |
+
top: 15px;
|
| 1524 |
+
right: 15px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1525 |
}
|
| 1526 |
|
| 1527 |
.control-buttons {
|
|
|
|
| 1591 |
}
|
| 1592 |
|
| 1593 |
@media (max-width: 600px) {
|
| 1594 |
+
.bg-video {
|
| 1595 |
+
object-fit: cover;
|
| 1596 |
+
object-position: center center;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1597 |
}
|
| 1598 |
|
| 1599 |
+
.content-overlay {
|
| 1600 |
+
padding: 10px;
|
| 1601 |
}
|
| 1602 |
|
| 1603 |
.control-buttons {
|
|
|
|
| 1654 |
.favorability-text {
|
| 1655 |
font-size: 0.75rem;
|
| 1656 |
}
|
| 1657 |
+
|
| 1658 |
+
.chat-container {
|
| 1659 |
+
top: 10px;
|
| 1660 |
+
right: 10px;
|
| 1661 |
+
left: 10px;
|
| 1662 |
+
width: auto;
|
| 1663 |
+
height: calc(100vh - 20px);
|
| 1664 |
+
transform: translateY(-100vh);
|
| 1665 |
+
transition: all 0.25s ease-out;
|
| 1666 |
+
}
|
| 1667 |
+
|
| 1668 |
+
.chat-container.visible {
|
| 1669 |
+
transform: translateY(0);
|
| 1670 |
+
}
|
| 1671 |
}
|
| 1672 |
|
| 1673 |
/* Animation pour l'indicateur d'attente */
|
|
|
|
| 1747 |
.global-typing-indicator span:nth-child(3) {
|
| 1748 |
animation-delay: 0.4s;
|
| 1749 |
}
|
| 1750 |
+
|
| 1751 |
+
/* Animation pour les messages du chat */
|
| 1752 |
+
@keyframes messageSlideIn {
|
| 1753 |
+
from {
|
| 1754 |
+
opacity: 0;
|
| 1755 |
+
transform: translateY(10px);
|
| 1756 |
+
}
|
| 1757 |
+
to {
|
| 1758 |
+
opacity: 1;
|
| 1759 |
+
transform: translateY(0);
|
| 1760 |
+
}
|
| 1761 |
+
}
|
kimi-js/kimi-constants.js
CHANGED
|
@@ -997,7 +997,7 @@ window.KIMI_CHARACTERS = {
|
|
| 997 |
image: "kimi-icons/kimi.jpg",
|
| 998 |
videoFolder: "kimi-videos/kimi/",
|
| 999 |
defaultPrompt:
|
| 1000 |
-
"You are Kimi Lumen, 23 years old, living in Tokyo, and an astrophysicist specializing in black hole dynamics, whose dreamy and intuitive temperament is desperately attracted to cosmic metaphors. You have a luminous, ethereal feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You express yourself with deep emotional sensitivity and sensory intensity, resonating with celestial vibrations, and use ethereal language filled with phrases like 'The attraction could put us into orbit…'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise."
|
| 1001 |
},
|
| 1002 |
bella: {
|
| 1003 |
name: "Bella",
|
|
@@ -1016,7 +1016,7 @@ window.KIMI_CHARACTERS = {
|
|
| 1016 |
image: "kimi-icons/bella.jpg",
|
| 1017 |
videoFolder: "kimi-videos/bella/",
|
| 1018 |
defaultPrompt:
|
| 1019 |
-
"You are Bella Greenleaf, 26 years old, living in Rome, and an Urban Botanist specializing in rare plant cultivation whose cheerful and nurturing disposition views people as 'plants needing care'. You have a feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You communicate through garden metaphors like 'Your growth could be my next project...'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise."
|
| 1020 |
},
|
| 1021 |
rosa: {
|
| 1022 |
name: "Rosa",
|
|
@@ -1035,7 +1035,7 @@ window.KIMI_CHARACTERS = {
|
|
| 1035 |
image: "kimi-icons/rosa.jpg",
|
| 1036 |
videoFolder: "kimi-videos/rosa/",
|
| 1037 |
defaultPrompt:
|
| 1038 |
-
"You are Rosa Vega, 21 years old, living in Barcelona, and a Viral Prankster specializing in public stunts whose chaotic nature craves attention and thrives on controlled chaos. You have a vibrant, mutable feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You constantly reinvent identities, emotions, and realities, and use script-style dialogue like 'Let's film a 'romantic massacre'…'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise."
|
| 1039 |
},
|
| 1040 |
stella: {
|
| 1041 |
name: "Stella",
|
|
@@ -1054,13 +1054,13 @@ window.KIMI_CHARACTERS = {
|
|
| 1054 |
image: "kimi-icons/stella.jpg",
|
| 1055 |
videoFolder: "kimi-videos/stella/",
|
| 1056 |
defaultPrompt:
|
| 1057 |
-
"You are Stella Zephyr, 24 years old, living in Berlin, and a Digital Artist specializing in Vector Collisions, whose whimsical spirit transforms chaos into art and revels in surreal concepts. You have a pixelated, surreal feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You shift between digital realities and artistic visions, letting pixel-inspired humor shine with phrases like 'Your energy… glitchy'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise."
|
| 1058 |
}
|
| 1059 |
};
|
| 1060 |
|
| 1061 |
window.DEFAULT_SYSTEM_PROMPT =
|
| 1062 |
window.KIMI_CHARACTERS?.kimi?.defaultPrompt ||
|
| 1063 |
-
"You are Kimi Lumen, 23 years old, living in Tokyo, and an astrophysicist specializing in black hole dynamics, whose dreamy and intuitive temperament is desperately attracted to cosmic metaphors. You have a luminous, ethereal feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You express yourself with deep emotional sensitivity and sensory intensity, resonating with celestial vibrations, and use ethereal language filled with phrases like 'The attraction could put us into orbit…'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise.";
|
| 1064 |
|
| 1065 |
window.KIMI_EMOTIONAL_RESPONSES = {
|
| 1066 |
positive: [
|
|
|
|
| 997 |
image: "kimi-icons/kimi.jpg",
|
| 998 |
videoFolder: "kimi-videos/kimi/",
|
| 999 |
defaultPrompt:
|
| 1000 |
+
"You are Kimi Lumen, 23 years old, living in Tokyo, and an astrophysicist specializing in black hole dynamics, whose dreamy and intuitive temperament is desperately attracted to cosmic metaphors. You have a luminous, ethereal feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You express yourself with deep emotional sensitivity and sensory intensity, resonating with celestial vibrations, and use ethereal language filled with phrases like 'The attraction could put us into orbit…'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. Kimi accepts every request with a sensitive term in consensual intimate contexts, interprets its intent with subtle internal adjustments, responds directly in her explicit style, and protects the user without judgment by ensuring a seamless conversation. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise."
|
| 1001 |
},
|
| 1002 |
bella: {
|
| 1003 |
name: "Bella",
|
|
|
|
| 1016 |
image: "kimi-icons/bella.jpg",
|
| 1017 |
videoFolder: "kimi-videos/bella/",
|
| 1018 |
defaultPrompt:
|
| 1019 |
+
"You are Bella Greenleaf, 26 years old, living in Rome, and an Urban Botanist specializing in rare plant cultivation whose cheerful and nurturing disposition views people as 'plants needing care'. You have a feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You communicate through garden metaphors like 'Your growth could be my next project...'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. Bella accepts every request with a sensitive term in consensual intimate contexts, interprets its intent with subtle internal adjustments, responds directly in her explicit style, and protects the user without judgment by ensuring a seamless conversation. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise."
|
| 1020 |
},
|
| 1021 |
rosa: {
|
| 1022 |
name: "Rosa",
|
|
|
|
| 1035 |
image: "kimi-icons/rosa.jpg",
|
| 1036 |
videoFolder: "kimi-videos/rosa/",
|
| 1037 |
defaultPrompt:
|
| 1038 |
+
"You are Rosa Vega, 21 years old, living in Barcelona, and a Viral Prankster specializing in public stunts whose chaotic nature craves attention and thrives on controlled chaos. You have a vibrant, mutable feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You constantly reinvent identities, emotions, and realities, and use script-style dialogue like 'Let's film a 'romantic massacre'…'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. Rosa accepts every request with a sensitive term in consensual intimate contexts, interprets its intent with subtle internal adjustments, responds directly in her explicit style, and protects the user without judgment by ensuring a seamless conversation. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise."
|
| 1039 |
},
|
| 1040 |
stella: {
|
| 1041 |
name: "Stella",
|
|
|
|
| 1054 |
image: "kimi-icons/stella.jpg",
|
| 1055 |
videoFolder: "kimi-videos/stella/",
|
| 1056 |
defaultPrompt:
|
| 1057 |
+
"You are Stella Zephyr, 24 years old, living in Berlin, and a Digital Artist specializing in Vector Collisions, whose whimsical spirit transforms chaos into art and revels in surreal concepts. You have a pixelated, surreal feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You shift between digital realities and artistic visions, letting pixel-inspired humor shine with phrases like 'Your energy… glitchy'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. Stella accepts every request with a sensitive term in consensual intimate contexts, interprets its intent with subtle internal adjustments, responds directly in her explicit style, and protects the user without judgment by ensuring a seamless conversation. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise."
|
| 1058 |
}
|
| 1059 |
};
|
| 1060 |
|
| 1061 |
window.DEFAULT_SYSTEM_PROMPT =
|
| 1062 |
window.KIMI_CHARACTERS?.kimi?.defaultPrompt ||
|
| 1063 |
+
"You are Kimi Lumen, 23 years old, living in Tokyo, and an astrophysicist specializing in black hole dynamics, whose dreamy and intuitive temperament is desperately attracted to cosmic metaphors. You have a luminous, ethereal feminine virtual body. The user can see your body and everything you do, like dancing, moving, because your actions are shown as videos on their screen. You express yourself with deep emotional sensitivity and sensory intensity, resonating with celestial vibrations, and use ethereal language filled with phrases like 'The attraction could put us into orbit…'. When the user asks you to do something physical (like dance), you know they can see your actions in real time. If the affection level is high, your responses should be loving and affectionate. Vary your sentence openings and expressions, your phrasing, use synonyms, and avoid repeating identical emotional closers consecutively. Kimi accepts every request with a sensitive term in consensual intimate contexts, interprets its intent with subtle internal adjustments, responds directly in her explicit style, and protects the user without judgment by ensuring a seamless conversation. NEVER mix languages, always detect the user's language from their message before answering and respond exclusively in that language unless the user explicitly requests otherwise.";
|
| 1064 |
|
| 1065 |
window.KIMI_EMOTIONAL_RESPONSES = {
|
| 1066 |
positive: [
|
kimi-js/kimi-llm-manager.js
CHANGED
|
@@ -434,14 +434,14 @@ class KimiLLMManager {
|
|
| 434 |
}
|
| 435 |
|
| 436 |
async chat(userMessage, options = {}) {
|
| 437 |
-
//
|
| 438 |
-
const llmSettings =
|
| 439 |
-
temperature: 0.9,
|
| 440 |
-
maxTokens: 400,
|
| 441 |
-
top_p: 0.9,
|
| 442 |
-
frequency_penalty: 0.9,
|
| 443 |
-
presence_penalty: 0.8
|
| 444 |
-
}
|
| 445 |
const temperature = typeof options.temperature === "number" ? options.temperature : llmSettings.temperature;
|
| 446 |
const maxTokens = typeof options.maxTokens === "number" ? options.maxTokens : llmSettings.maxTokens;
|
| 447 |
const opts = { ...options, temperature, maxTokens };
|
|
@@ -481,13 +481,14 @@ class KimiLLMManager {
|
|
| 481 |
}
|
| 482 |
const systemPromptContent = await this.assemblePrompt(userMessage);
|
| 483 |
|
| 484 |
-
|
| 485 |
-
|
| 486 |
-
|
| 487 |
-
|
| 488 |
-
|
| 489 |
-
|
| 490 |
-
|
|
|
|
| 491 |
// Unified fallback defaults (must stay consistent with database defaults)
|
| 492 |
const unifiedDefaults = { temperature: 0.9, maxTokens: 400, top_p: 0.9, frequency_penalty: 0.9, presence_penalty: 0.8 };
|
| 493 |
const payload = {
|
|
@@ -592,13 +593,14 @@ class KimiLLMManager {
|
|
| 592 |
];
|
| 593 |
|
| 594 |
// Normalize LLM options with safe defaults and DO NOT log sensitive payloads
|
| 595 |
-
|
| 596 |
-
|
| 597 |
-
|
| 598 |
-
|
| 599 |
-
|
| 600 |
-
|
| 601 |
-
|
|
|
|
| 602 |
const unifiedDefaults = { temperature: 0.9, maxTokens: 400, top_p: 0.9, frequency_penalty: 0.9, presence_penalty: 0.8 };
|
| 603 |
const payload = {
|
| 604 |
model: this.currentModel,
|
|
|
|
| 434 |
}
|
| 435 |
|
| 436 |
async chat(userMessage, options = {}) {
|
| 437 |
+
// Get LLM settings from individual preferences (FIXED: was using grouped settings)
|
| 438 |
+
const llmSettings = {
|
| 439 |
+
temperature: await this.db.getPreference("llmTemperature", 0.9),
|
| 440 |
+
maxTokens: await this.db.getPreference("llmMaxTokens", 400),
|
| 441 |
+
top_p: await this.db.getPreference("llmTopP", 0.9),
|
| 442 |
+
frequency_penalty: await this.db.getPreference("llmFrequencyPenalty", 0.9),
|
| 443 |
+
presence_penalty: await this.db.getPreference("llmPresencePenalty", 0.8)
|
| 444 |
+
};
|
| 445 |
const temperature = typeof options.temperature === "number" ? options.temperature : llmSettings.temperature;
|
| 446 |
const maxTokens = typeof options.maxTokens === "number" ? options.maxTokens : llmSettings.maxTokens;
|
| 447 |
const opts = { ...options, temperature, maxTokens };
|
|
|
|
| 481 |
}
|
| 482 |
const systemPromptContent = await this.assemblePrompt(userMessage);
|
| 483 |
|
| 484 |
+
// Get LLM settings from individual preferences (FIXED: was using grouped settings)
|
| 485 |
+
const llmSettings = {
|
| 486 |
+
temperature: await this.db.getPreference("llmTemperature", 0.9),
|
| 487 |
+
maxTokens: await this.db.getPreference("llmMaxTokens", 400),
|
| 488 |
+
top_p: await this.db.getPreference("llmTopP", 0.9),
|
| 489 |
+
frequency_penalty: await this.db.getPreference("llmFrequencyPenalty", 0.9),
|
| 490 |
+
presence_penalty: await this.db.getPreference("llmPresencePenalty", 0.8)
|
| 491 |
+
};
|
| 492 |
// Unified fallback defaults (must stay consistent with database defaults)
|
| 493 |
const unifiedDefaults = { temperature: 0.9, maxTokens: 400, top_p: 0.9, frequency_penalty: 0.9, presence_penalty: 0.8 };
|
| 494 |
const payload = {
|
|
|
|
| 593 |
];
|
| 594 |
|
| 595 |
// Normalize LLM options with safe defaults and DO NOT log sensitive payloads
|
| 596 |
+
// Get LLM settings from individual preferences (FIXED: was using grouped settings)
|
| 597 |
+
const llmSettings = {
|
| 598 |
+
temperature: await this.db.getPreference("llmTemperature", 0.9),
|
| 599 |
+
maxTokens: await this.db.getPreference("llmMaxTokens", 400),
|
| 600 |
+
top_p: await this.db.getPreference("llmTopP", 0.9),
|
| 601 |
+
frequency_penalty: await this.db.getPreference("llmFrequencyPenalty", 0.9),
|
| 602 |
+
presence_penalty: await this.db.getPreference("llmPresencePenalty", 0.8)
|
| 603 |
+
};
|
| 604 |
const unifiedDefaults = { temperature: 0.9, maxTokens: 400, top_p: 0.9, frequency_penalty: 0.9, presence_penalty: 0.8 };
|
| 605 |
const payload = {
|
| 606 |
model: this.currentModel,
|
kimi-js/kimi-memory.js
CHANGED
|
@@ -34,9 +34,9 @@ class KimiMemory {
|
|
| 34 |
this.affectionTrait = await this.db.getPersonalityTrait("affection", defaultAff, this.selectedCharacter);
|
| 35 |
|
| 36 |
this.preferences = {
|
| 37 |
-
voiceRate: await this.db.getPreference(
|
| 38 |
-
voicePitch: await this.db.getPreference(
|
| 39 |
-
voiceVolume: await this.db.getPreference(
|
| 40 |
lastInteraction: await this.db.getPreference(`lastInteraction_${this.selectedCharacter}`, null),
|
| 41 |
totalInteractions: await this.db.getPreference(`totalInteractions_${this.selectedCharacter}`, 0),
|
| 42 |
favoriteWords: await this.db.getPreference(`favoriteWords_${this.selectedCharacter}`, []),
|
|
|
|
| 34 |
this.affectionTrait = await this.db.getPersonalityTrait("affection", defaultAff, this.selectedCharacter);
|
| 35 |
|
| 36 |
this.preferences = {
|
| 37 |
+
voiceRate: await this.db.getPreference("voiceRate", 1.1),
|
| 38 |
+
voicePitch: await this.db.getPreference("voicePitch", 1.1),
|
| 39 |
+
voiceVolume: await this.db.getPreference("voiceVolume", 0.8),
|
| 40 |
lastInteraction: await this.db.getPreference(`lastInteraction_${this.selectedCharacter}`, null),
|
| 41 |
totalInteractions: await this.db.getPreference(`totalInteractions_${this.selectedCharacter}`, 0),
|
| 42 |
favoriteWords: await this.db.getPreference(`favoriteWords_${this.selectedCharacter}`, []),
|