@hirohsu/user-web-feedback 2.8.21 → 2.8.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/static/modules/conversation-panel.js +312 -243
- package/dist/static/modules/feedback-handler.js +14 -0
- package/dist/static/style.css +360 -169
- package/package.json +1 -1
|
@@ -111,6 +111,13 @@ export function clearSubmissionInputs() {
|
|
|
111
111
|
export async function generateAIReply() {
|
|
112
112
|
const workSummary = getWorkSummary();
|
|
113
113
|
if (!workSummary) {
|
|
114
|
+
showConversationPanel();
|
|
115
|
+
updateConversationTitle("AI 回覆");
|
|
116
|
+
addConversationEntry(ConversationEntryType.ERROR, "目前沒有活躍的 AI 工作匯報。\n\n可能原因:\n1. 尚未有 AI 代理透過 MCP 發送工作匯報\n2. 會話已過期或尚未建立\n3. 伺服器剛重啟,尚未收到任何匯報", {
|
|
117
|
+
title: "無法取得 AI 訊息",
|
|
118
|
+
collapsed: false,
|
|
119
|
+
timestamp: Date.now(),
|
|
120
|
+
});
|
|
114
121
|
showToast("error", "錯誤", "無法取得 AI 訊息");
|
|
115
122
|
return;
|
|
116
123
|
}
|
|
@@ -814,6 +821,13 @@ function buildLocalPromptPreview(workSummary, userContext, toolResults) {
|
|
|
814
821
|
export async function generateAIReplyWithTools() {
|
|
815
822
|
const workSummary = getWorkSummary();
|
|
816
823
|
if (!workSummary) {
|
|
824
|
+
showConversationPanel();
|
|
825
|
+
updateConversationTitle("AI 回覆");
|
|
826
|
+
addConversationEntry(ConversationEntryType.ERROR, "目前沒有活躍的 AI 工作匯報。\n\n可能原因:\n1. 尚未有 AI 代理透過 MCP 發送工作匯報\n2. 會話已過期或尚未建立\n3. 伺服器剛重啟,尚未收到任何匯報", {
|
|
827
|
+
title: "無法取得 AI 訊息",
|
|
828
|
+
collapsed: false,
|
|
829
|
+
timestamp: Date.now(),
|
|
830
|
+
});
|
|
817
831
|
showToast("error", "錯誤", "無法取得 AI 訊息");
|
|
818
832
|
return;
|
|
819
833
|
}
|
package/dist/static/style.css
CHANGED
|
@@ -1961,303 +1961,494 @@ textarea.form-control {
|
|
|
1961
1961
|
border-radius: 0 0 var(--radius-lg) var(--radius-lg);
|
|
1962
1962
|
}
|
|
1963
1963
|
|
|
1964
|
-
/* ============
|
|
1964
|
+
/* ============ AI Console ============ */
|
|
1965
1965
|
|
|
1966
|
-
|
|
1966
|
+
:root {
|
|
1967
|
+
--console-blue: #3b82f6;
|
|
1968
|
+
--console-green: #22c55e;
|
|
1969
|
+
--console-yellow: #eab308;
|
|
1970
|
+
--console-red: #ef4444;
|
|
1971
|
+
--console-purple: #a855f7;
|
|
1972
|
+
--console-cyan: #06b6d4;
|
|
1973
|
+
--console-orange: #f97316;
|
|
1974
|
+
}
|
|
1975
|
+
|
|
1976
|
+
.ai-console-overlay {
|
|
1967
1977
|
position: fixed;
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
bottom: 0;
|
|
1972
|
-
background: rgba(0, 0, 0, 0.85);
|
|
1978
|
+
inset: 0;
|
|
1979
|
+
background: rgba(0, 0, 0, 0.7);
|
|
1980
|
+
backdrop-filter: blur(4px);
|
|
1973
1981
|
z-index: 2000;
|
|
1974
1982
|
display: flex;
|
|
1975
1983
|
align-items: center;
|
|
1976
1984
|
justify-content: center;
|
|
1985
|
+
animation: fadeIn 0.15s ease;
|
|
1977
1986
|
}
|
|
1978
1987
|
|
|
1979
|
-
|
|
1988
|
+
@keyframes fadeIn { from { opacity: 0 } to { opacity: 1 } }
|
|
1989
|
+
|
|
1990
|
+
.ai-console {
|
|
1980
1991
|
background: var(--bg-secondary);
|
|
1981
1992
|
border: 1px solid var(--border-color);
|
|
1982
|
-
border-radius:
|
|
1983
|
-
width:
|
|
1984
|
-
max-width:
|
|
1985
|
-
height:
|
|
1986
|
-
max-height:
|
|
1993
|
+
border-radius: 16px;
|
|
1994
|
+
width: 92%;
|
|
1995
|
+
max-width: 960px;
|
|
1996
|
+
height: 88vh;
|
|
1997
|
+
max-height: 88vh;
|
|
1987
1998
|
display: flex;
|
|
1988
1999
|
flex-direction: column;
|
|
1989
|
-
box-shadow:
|
|
2000
|
+
box-shadow: 0 24px 64px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.05);
|
|
1990
2001
|
overflow: hidden;
|
|
2002
|
+
animation: slideUp 0.2s ease;
|
|
1991
2003
|
}
|
|
1992
2004
|
|
|
1993
|
-
|
|
2005
|
+
@keyframes slideUp { from { transform: translateY(16px); opacity: 0 } to { transform: translateY(0); opacity: 1 } }
|
|
2006
|
+
|
|
2007
|
+
/* ── Header ── */
|
|
2008
|
+
.console-header {
|
|
1994
2009
|
display: flex;
|
|
1995
2010
|
justify-content: space-between;
|
|
1996
2011
|
align-items: center;
|
|
1997
|
-
padding:
|
|
2012
|
+
padding: 12px 20px;
|
|
1998
2013
|
border-bottom: 1px solid var(--border-color);
|
|
1999
2014
|
background: var(--bg-tertiary);
|
|
2000
|
-
border-radius:
|
|
2015
|
+
border-radius: 16px 16px 0 0;
|
|
2016
|
+
gap: 12px;
|
|
2017
|
+
flex-wrap: wrap;
|
|
2001
2018
|
}
|
|
2002
2019
|
|
|
2003
|
-
.
|
|
2020
|
+
.console-title-group {
|
|
2004
2021
|
display: flex;
|
|
2005
2022
|
align-items: center;
|
|
2006
|
-
gap:
|
|
2023
|
+
gap: 10px;
|
|
2024
|
+
min-width: 0;
|
|
2025
|
+
}
|
|
2026
|
+
|
|
2027
|
+
.console-logo {
|
|
2028
|
+
font-size: 20px;
|
|
2029
|
+
filter: drop-shadow(0 0 6px rgba(59,130,246,0.5));
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
.console-title {
|
|
2033
|
+
margin: 0;
|
|
2007
2034
|
font-size: 16px;
|
|
2008
|
-
font-weight:
|
|
2035
|
+
font-weight: 700;
|
|
2009
2036
|
color: var(--text-primary);
|
|
2037
|
+
white-space: nowrap;
|
|
2038
|
+
overflow: hidden;
|
|
2039
|
+
text-overflow: ellipsis;
|
|
2010
2040
|
}
|
|
2011
2041
|
|
|
2012
|
-
.
|
|
2042
|
+
.console-mode-badge {
|
|
2043
|
+
font-size: 11px;
|
|
2044
|
+
font-weight: 600;
|
|
2045
|
+
padding: 3px 10px;
|
|
2046
|
+
border-radius: 20px;
|
|
2047
|
+
background: var(--bg-hover);
|
|
2048
|
+
color: var(--text-secondary);
|
|
2049
|
+
white-space: nowrap;
|
|
2050
|
+
transition: background 0.2s, color 0.2s;
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
.console-mode-badge.mode-api {
|
|
2054
|
+
background: rgba(59,130,246,0.15);
|
|
2055
|
+
color: var(--console-blue);
|
|
2056
|
+
}
|
|
2057
|
+
|
|
2058
|
+
.console-mode-badge.mode-cli {
|
|
2059
|
+
background: rgba(168,85,247,0.15);
|
|
2060
|
+
color: var(--console-purple);
|
|
2061
|
+
}
|
|
2062
|
+
|
|
2063
|
+
.console-actions {
|
|
2013
2064
|
display: flex;
|
|
2014
2065
|
align-items: center;
|
|
2015
|
-
gap:
|
|
2066
|
+
gap: 12px;
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
/* ── Tabs ── */
|
|
2070
|
+
.console-tabs {
|
|
2071
|
+
display: flex;
|
|
2072
|
+
background: var(--bg-primary);
|
|
2073
|
+
border-radius: 8px;
|
|
2074
|
+
padding: 2px;
|
|
2075
|
+
gap: 2px;
|
|
2076
|
+
}
|
|
2077
|
+
|
|
2078
|
+
.tab-btn {
|
|
2079
|
+
padding: 5px 14px;
|
|
2016
2080
|
font-size: 12px;
|
|
2081
|
+
font-weight: 600;
|
|
2082
|
+
border: none;
|
|
2083
|
+
border-radius: 6px;
|
|
2084
|
+
background: transparent;
|
|
2017
2085
|
color: var(--text-secondary);
|
|
2018
|
-
|
|
2086
|
+
cursor: pointer;
|
|
2087
|
+
transition: all 0.15s;
|
|
2088
|
+
display: flex;
|
|
2089
|
+
align-items: center;
|
|
2090
|
+
gap: 6px;
|
|
2091
|
+
}
|
|
2092
|
+
|
|
2093
|
+
.tab-btn:hover { background: var(--bg-hover); color: var(--text-primary); }
|
|
2094
|
+
.tab-btn.active { background: var(--bg-secondary); color: var(--text-primary); box-shadow: 0 1px 3px rgba(0,0,0,0.15); }
|
|
2095
|
+
|
|
2096
|
+
.history-count {
|
|
2097
|
+
font-size: 10px;
|
|
2098
|
+
min-width: 18px;
|
|
2099
|
+
height: 18px;
|
|
2100
|
+
display: inline-flex;
|
|
2101
|
+
align-items: center;
|
|
2102
|
+
justify-content: center;
|
|
2019
2103
|
background: var(--bg-hover);
|
|
2020
|
-
border-radius:
|
|
2104
|
+
border-radius: 9px;
|
|
2105
|
+
color: var(--text-secondary);
|
|
2021
2106
|
}
|
|
2022
2107
|
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2108
|
+
/* ── Debug Switch ── */
|
|
2109
|
+
.debug-switch {
|
|
2110
|
+
display: flex;
|
|
2111
|
+
align-items: center;
|
|
2112
|
+
gap: 6px;
|
|
2113
|
+
cursor: pointer;
|
|
2114
|
+
user-select: none;
|
|
2028
2115
|
}
|
|
2029
2116
|
|
|
2030
|
-
.
|
|
2031
|
-
|
|
2117
|
+
.debug-switch input { display: none; }
|
|
2118
|
+
|
|
2119
|
+
.debug-switch-track {
|
|
2120
|
+
width: 32px;
|
|
2121
|
+
height: 18px;
|
|
2122
|
+
border-radius: 9px;
|
|
2123
|
+
background: var(--bg-hover);
|
|
2124
|
+
position: relative;
|
|
2125
|
+
transition: background 0.2s;
|
|
2032
2126
|
}
|
|
2033
2127
|
|
|
2034
|
-
.
|
|
2035
|
-
background: var(--
|
|
2128
|
+
.debug-switch input:checked + .debug-switch-track {
|
|
2129
|
+
background: var(--console-orange);
|
|
2036
2130
|
}
|
|
2037
2131
|
|
|
2038
|
-
.
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2132
|
+
.debug-switch-thumb {
|
|
2133
|
+
position: absolute;
|
|
2134
|
+
top: 2px;
|
|
2135
|
+
left: 2px;
|
|
2136
|
+
width: 14px;
|
|
2137
|
+
height: 14px;
|
|
2138
|
+
border-radius: 50%;
|
|
2139
|
+
background: white;
|
|
2140
|
+
transition: transform 0.2s;
|
|
2141
|
+
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
|
|
2044
2142
|
}
|
|
2045
2143
|
|
|
2046
|
-
.
|
|
2047
|
-
|
|
2048
|
-
border-radius: var(--radius-sm);
|
|
2049
|
-
background: var(--bg-tertiary);
|
|
2050
|
-
overflow: hidden;
|
|
2051
|
-
margin-bottom: var(--spacing-md);
|
|
2144
|
+
.debug-switch input:checked + .debug-switch-track .debug-switch-thumb {
|
|
2145
|
+
transform: translateX(14px);
|
|
2052
2146
|
}
|
|
2053
2147
|
|
|
2054
|
-
.
|
|
2055
|
-
|
|
2148
|
+
.debug-switch-label {
|
|
2149
|
+
font-size: 12px;
|
|
2150
|
+
font-weight: 500;
|
|
2151
|
+
color: var(--text-secondary);
|
|
2056
2152
|
}
|
|
2057
2153
|
|
|
2058
|
-
|
|
2059
|
-
|
|
2154
|
+
/* ── Close Button ── */
|
|
2155
|
+
.console-close-btn {
|
|
2156
|
+
width: 28px;
|
|
2157
|
+
height: 28px;
|
|
2158
|
+
border: none;
|
|
2159
|
+
border-radius: 8px;
|
|
2160
|
+
background: transparent;
|
|
2161
|
+
color: var(--text-secondary);
|
|
2162
|
+
font-size: 18px;
|
|
2163
|
+
cursor: pointer;
|
|
2164
|
+
display: flex;
|
|
2165
|
+
align-items: center;
|
|
2166
|
+
justify-content: center;
|
|
2167
|
+
transition: all 0.15s;
|
|
2168
|
+
line-height: 1;
|
|
2060
2169
|
}
|
|
2061
2170
|
|
|
2062
|
-
.
|
|
2063
|
-
|
|
2171
|
+
.console-close-btn:hover {
|
|
2172
|
+
background: rgba(239,68,68,0.15);
|
|
2173
|
+
color: var(--console-red);
|
|
2064
2174
|
}
|
|
2065
2175
|
|
|
2066
|
-
|
|
2067
|
-
|
|
2176
|
+
/* ── Body ── */
|
|
2177
|
+
.console-body {
|
|
2178
|
+
flex: 1 1 0;
|
|
2179
|
+
min-height: 0;
|
|
2180
|
+
overflow: hidden;
|
|
2181
|
+
position: relative;
|
|
2068
2182
|
}
|
|
2069
2183
|
|
|
2070
|
-
.
|
|
2071
|
-
|
|
2184
|
+
.console-tab-content {
|
|
2185
|
+
display: none;
|
|
2186
|
+
height: 100%;
|
|
2187
|
+
overflow-y: auto;
|
|
2188
|
+
overflow-x: hidden;
|
|
2189
|
+
padding: 16px 20px;
|
|
2072
2190
|
}
|
|
2073
2191
|
|
|
2074
|
-
.
|
|
2075
|
-
|
|
2192
|
+
.console-tab-content.active { display: block; }
|
|
2193
|
+
|
|
2194
|
+
/* ── Entry ── */
|
|
2195
|
+
.console-entry {
|
|
2196
|
+
border-radius: 10px;
|
|
2197
|
+
background: var(--bg-tertiary);
|
|
2198
|
+
margin-bottom: 10px;
|
|
2199
|
+
border: 1px solid var(--border-color);
|
|
2200
|
+
overflow: hidden;
|
|
2201
|
+
position: relative;
|
|
2202
|
+
transition: border-color 0.2s;
|
|
2076
2203
|
}
|
|
2077
2204
|
|
|
2078
|
-
.
|
|
2079
|
-
|
|
2205
|
+
.console-entry::before {
|
|
2206
|
+
content: '';
|
|
2207
|
+
position: absolute;
|
|
2208
|
+
left: 0;
|
|
2209
|
+
top: 0;
|
|
2210
|
+
bottom: 0;
|
|
2211
|
+
width: 3px;
|
|
2212
|
+
background: var(--entry-accent, var(--border-color));
|
|
2213
|
+
border-radius: 3px 0 0 3px;
|
|
2080
2214
|
}
|
|
2081
2215
|
|
|
2082
|
-
.
|
|
2216
|
+
.console-entry:hover { border-color: color-mix(in srgb, var(--entry-accent) 30%, var(--border-color)); }
|
|
2217
|
+
|
|
2218
|
+
.entry-row {
|
|
2219
|
+
padding: 10px 14px;
|
|
2220
|
+
cursor: pointer;
|
|
2083
2221
|
display: flex;
|
|
2084
2222
|
align-items: center;
|
|
2085
|
-
gap:
|
|
2223
|
+
gap: 8px;
|
|
2224
|
+
user-select: none;
|
|
2225
|
+
list-style: none;
|
|
2226
|
+
background: transparent;
|
|
2227
|
+
transition: background 0.1s;
|
|
2086
2228
|
}
|
|
2087
2229
|
|
|
2088
|
-
.
|
|
2230
|
+
.entry-row:hover { background: var(--bg-hover); }
|
|
2231
|
+
.entry-row::-webkit-details-marker { display: none; }
|
|
2232
|
+
|
|
2233
|
+
.entry-chevron {
|
|
2234
|
+
width: 16px;
|
|
2235
|
+
height: 16px;
|
|
2089
2236
|
display: flex;
|
|
2090
2237
|
align-items: center;
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
opacity: 0.6;
|
|
2096
|
-
transition: opacity 0.2s;
|
|
2238
|
+
justify-content: center;
|
|
2239
|
+
font-size: 10px;
|
|
2240
|
+
color: var(--text-muted);
|
|
2241
|
+
transition: transform 0.2s;
|
|
2097
2242
|
}
|
|
2098
2243
|
|
|
2099
|
-
.
|
|
2100
|
-
|
|
2101
|
-
}
|
|
2244
|
+
.entry-chevron::after { content: '▶'; }
|
|
2245
|
+
details[open] > .entry-row .entry-chevron { transform: rotate(90deg); }
|
|
2102
2246
|
|
|
2103
|
-
.
|
|
2104
|
-
width:
|
|
2105
|
-
height:
|
|
2106
|
-
|
|
2247
|
+
.entry-dot {
|
|
2248
|
+
width: 8px;
|
|
2249
|
+
height: 8px;
|
|
2250
|
+
border-radius: 50%;
|
|
2251
|
+
background: var(--entry-accent, var(--text-muted));
|
|
2252
|
+
flex-shrink: 0;
|
|
2107
2253
|
}
|
|
2108
2254
|
|
|
2109
|
-
.
|
|
2110
|
-
display: grid;
|
|
2111
|
-
grid-template-columns: 1fr 1fr;
|
|
2112
|
-
gap: 4px 16px;
|
|
2113
|
-
margin-bottom: 8px;
|
|
2114
|
-
}
|
|
2255
|
+
.entry-icon { font-size: 14px; flex-shrink: 0; }
|
|
2115
2256
|
|
|
2116
|
-
.
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2257
|
+
.entry-title {
|
|
2258
|
+
font-weight: 600;
|
|
2259
|
+
font-size: 13px;
|
|
2260
|
+
color: var(--text-primary);
|
|
2261
|
+
white-space: nowrap;
|
|
2262
|
+
overflow: hidden;
|
|
2263
|
+
text-overflow: ellipsis;
|
|
2123
2264
|
}
|
|
2124
2265
|
|
|
2125
|
-
.
|
|
2266
|
+
.entry-spacer { flex: 1; }
|
|
2267
|
+
|
|
2268
|
+
.entry-badge {
|
|
2269
|
+
font-size: 11px;
|
|
2270
|
+
padding: 2px 8px;
|
|
2271
|
+
background: var(--bg-primary);
|
|
2272
|
+
border-radius: 10px;
|
|
2126
2273
|
color: var(--text-secondary);
|
|
2127
2274
|
font-weight: 500;
|
|
2275
|
+
white-space: nowrap;
|
|
2128
2276
|
}
|
|
2129
2277
|
|
|
2130
|
-
.
|
|
2131
|
-
|
|
2278
|
+
.entry-time {
|
|
2279
|
+
font-size: 11px;
|
|
2280
|
+
color: var(--text-muted);
|
|
2132
2281
|
font-family: "Consolas", "Monaco", monospace;
|
|
2282
|
+
white-space: nowrap;
|
|
2133
2283
|
}
|
|
2134
2284
|
|
|
2135
|
-
.
|
|
2136
|
-
|
|
2285
|
+
.entry-body {
|
|
2286
|
+
padding: 12px 14px;
|
|
2287
|
+
border-top: 1px solid var(--border-color);
|
|
2137
2288
|
}
|
|
2138
2289
|
|
|
2139
|
-
.
|
|
2290
|
+
.entry-code {
|
|
2291
|
+
margin: 0;
|
|
2292
|
+
padding: 10px 12px;
|
|
2293
|
+
background: var(--bg-primary);
|
|
2294
|
+
border: 1px solid var(--border-color);
|
|
2295
|
+
border-radius: 8px;
|
|
2296
|
+
font-family: "Consolas", "Monaco", "Courier New", monospace;
|
|
2297
|
+
font-size: 12px;
|
|
2298
|
+
line-height: 1.6;
|
|
2299
|
+
white-space: pre-wrap;
|
|
2300
|
+
word-break: break-word;
|
|
2301
|
+
max-height: 340px;
|
|
2302
|
+
overflow-y: auto;
|
|
2303
|
+
color: var(--text-primary);
|
|
2304
|
+
}
|
|
2305
|
+
|
|
2306
|
+
/* ── Debug Body ── */
|
|
2307
|
+
.dbg-body { font-size: 12px; }
|
|
2308
|
+
|
|
2309
|
+
.dbg-grid {
|
|
2310
|
+
display: grid;
|
|
2311
|
+
grid-template-columns: 1fr 1fr;
|
|
2312
|
+
gap: 4px;
|
|
2313
|
+
margin-bottom: 10px;
|
|
2314
|
+
}
|
|
2315
|
+
|
|
2316
|
+
.dbg-cell {
|
|
2317
|
+
display: flex;
|
|
2318
|
+
justify-content: space-between;
|
|
2319
|
+
padding: 4px 10px;
|
|
2320
|
+
border-radius: 6px;
|
|
2321
|
+
background: var(--bg-primary);
|
|
2322
|
+
}
|
|
2323
|
+
|
|
2324
|
+
.dbg-key { color: var(--text-secondary); font-weight: 500; }
|
|
2325
|
+
.dbg-val { color: var(--text-primary); font-family: "Consolas","Monaco",monospace; }
|
|
2326
|
+
|
|
2327
|
+
.dbg-section-title {
|
|
2140
2328
|
font-size: 12px;
|
|
2141
2329
|
font-weight: 600;
|
|
2142
2330
|
color: var(--text-secondary);
|
|
2143
|
-
margin
|
|
2331
|
+
margin: 10px 0 4px;
|
|
2144
2332
|
}
|
|
2145
2333
|
|
|
2146
|
-
.
|
|
2334
|
+
.dbg-table {
|
|
2147
2335
|
width: 100%;
|
|
2148
2336
|
border-collapse: collapse;
|
|
2149
2337
|
font-size: 12px;
|
|
2150
|
-
font-family: "Consolas",
|
|
2338
|
+
font-family: "Consolas","Monaco",monospace;
|
|
2339
|
+
margin-bottom: 8px;
|
|
2151
2340
|
}
|
|
2152
2341
|
|
|
2153
|
-
.
|
|
2154
|
-
.debug-table td {
|
|
2342
|
+
.dbg-table th, .dbg-table td {
|
|
2155
2343
|
padding: 4px 8px;
|
|
2156
2344
|
border: 1px solid var(--border-color);
|
|
2157
2345
|
text-align: left;
|
|
2158
2346
|
}
|
|
2159
2347
|
|
|
2160
|
-
.
|
|
2161
|
-
|
|
2162
|
-
color: var(--text-secondary);
|
|
2163
|
-
font-weight: 600;
|
|
2164
|
-
}
|
|
2165
|
-
|
|
2166
|
-
.debug-table td {
|
|
2167
|
-
color: var(--text-primary);
|
|
2168
|
-
}
|
|
2348
|
+
.dbg-table th { background: var(--bg-hover); color: var(--text-secondary); font-weight: 600; }
|
|
2349
|
+
.dbg-table td { color: var(--text-primary); }
|
|
2169
2350
|
|
|
2170
|
-
.
|
|
2351
|
+
.dbg-error {
|
|
2171
2352
|
margin-top: 8px;
|
|
2172
|
-
padding:
|
|
2173
|
-
background: rgba(239,
|
|
2174
|
-
border: 1px solid rgba(239,
|
|
2175
|
-
border-radius:
|
|
2353
|
+
padding: 8px 12px;
|
|
2354
|
+
background: rgba(239,68,68,0.08);
|
|
2355
|
+
border: 1px solid rgba(239,68,68,0.25);
|
|
2356
|
+
border-radius: 8px;
|
|
2176
2357
|
font-size: 12px;
|
|
2177
|
-
color: var(--
|
|
2358
|
+
color: var(--console-red);
|
|
2178
2359
|
}
|
|
2179
2360
|
|
|
2180
|
-
|
|
2181
|
-
|
|
2361
|
+
/* ── History ── */
|
|
2362
|
+
.history-empty {
|
|
2363
|
+
text-align: center;
|
|
2364
|
+
padding: 48px 20px;
|
|
2365
|
+
color: var(--text-muted);
|
|
2366
|
+
font-size: 14px;
|
|
2182
2367
|
}
|
|
2183
2368
|
|
|
2184
|
-
.
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
list-style: none;
|
|
2192
|
-
background: var(--bg-hover);
|
|
2369
|
+
.history-card {
|
|
2370
|
+
border: 1px solid var(--border-color);
|
|
2371
|
+
border-radius: 10px;
|
|
2372
|
+
background: var(--bg-tertiary);
|
|
2373
|
+
margin-bottom: 8px;
|
|
2374
|
+
overflow: hidden;
|
|
2375
|
+
transition: border-color 0.2s;
|
|
2193
2376
|
}
|
|
2194
2377
|
|
|
2195
|
-
.
|
|
2196
|
-
display: none;
|
|
2197
|
-
}
|
|
2378
|
+
.history-card:hover { border-color: var(--console-blue); }
|
|
2198
2379
|
|
|
2199
|
-
.
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2380
|
+
.history-card-header {
|
|
2381
|
+
display: flex;
|
|
2382
|
+
align-items: center;
|
|
2383
|
+
gap: 8px;
|
|
2384
|
+
padding: 10px 14px;
|
|
2385
|
+
cursor: pointer;
|
|
2386
|
+
transition: background 0.15s;
|
|
2204
2387
|
}
|
|
2205
2388
|
|
|
2206
|
-
|
|
2207
|
-
transform: rotate(90deg);
|
|
2208
|
-
}
|
|
2389
|
+
.history-card-header:hover { background: var(--bg-hover); }
|
|
2209
2390
|
|
|
2210
|
-
.
|
|
2211
|
-
font-size: 14px;
|
|
2212
|
-
}
|
|
2391
|
+
.history-status { font-size: 14px; }
|
|
2213
2392
|
|
|
2214
|
-
.
|
|
2393
|
+
.history-session-title {
|
|
2215
2394
|
flex: 1;
|
|
2216
2395
|
font-weight: 600;
|
|
2217
2396
|
font-size: 13px;
|
|
2218
2397
|
color: var(--text-primary);
|
|
2398
|
+
overflow: hidden;
|
|
2399
|
+
text-overflow: ellipsis;
|
|
2400
|
+
white-space: nowrap;
|
|
2219
2401
|
}
|
|
2220
2402
|
|
|
2221
|
-
.
|
|
2403
|
+
.history-time {
|
|
2222
2404
|
font-size: 11px;
|
|
2223
2405
|
color: var(--text-muted);
|
|
2224
|
-
font-family: "Consolas",
|
|
2406
|
+
font-family: "Consolas","Monaco",monospace;
|
|
2225
2407
|
}
|
|
2226
2408
|
|
|
2227
|
-
.
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2409
|
+
.history-card-meta {
|
|
2410
|
+
display: flex;
|
|
2411
|
+
gap: 12px;
|
|
2412
|
+
padding: 0 14px 10px;
|
|
2413
|
+
}
|
|
2414
|
+
|
|
2415
|
+
.history-meta-item {
|
|
2416
|
+
font-size: 11px;
|
|
2232
2417
|
color: var(--text-secondary);
|
|
2233
2418
|
}
|
|
2234
2419
|
|
|
2235
|
-
.
|
|
2236
|
-
padding:
|
|
2420
|
+
.history-card-entries {
|
|
2421
|
+
padding: 8px 12px 12px;
|
|
2237
2422
|
border-top: 1px solid var(--border-color);
|
|
2238
2423
|
}
|
|
2239
2424
|
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2425
|
+
/* ── Footer ── */
|
|
2426
|
+
.console-footer {
|
|
2427
|
+
display: flex;
|
|
2428
|
+
justify-content: space-between;
|
|
2429
|
+
align-items: center;
|
|
2430
|
+
padding: 10px 20px;
|
|
2431
|
+
border-top: 1px solid var(--border-color);
|
|
2432
|
+
background: var(--bg-tertiary);
|
|
2433
|
+
border-radius: 0 0 16px 16px;
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2436
|
+
.console-stats {
|
|
2247
2437
|
font-size: 12px;
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2438
|
+
color: var(--text-muted);
|
|
2439
|
+
font-family: "Consolas","Monaco",monospace;
|
|
2440
|
+
}
|
|
2441
|
+
|
|
2442
|
+
.console-btn-close {
|
|
2443
|
+
padding: 6px 20px;
|
|
2444
|
+
font-size: 13px;
|
|
2445
|
+
font-weight: 600;
|
|
2446
|
+
border: 1px solid var(--border-color);
|
|
2447
|
+
border-radius: 8px;
|
|
2448
|
+
background: var(--bg-primary);
|
|
2253
2449
|
color: var(--text-primary);
|
|
2450
|
+
cursor: pointer;
|
|
2451
|
+
transition: all 0.15s;
|
|
2254
2452
|
}
|
|
2255
2453
|
|
|
2256
|
-
.
|
|
2257
|
-
display: flex;
|
|
2258
|
-
justify-content: flex-end;
|
|
2259
|
-
padding: var(--spacing-md) var(--spacing-lg);
|
|
2260
|
-
border-top: 1px solid var(--border-color);
|
|
2261
|
-
background: var(--bg-tertiary);
|
|
2262
|
-
border-radius: 0 0 var(--radius-lg) var(--radius-lg);
|
|
2263
|
-
}
|
|
2454
|
+
.console-btn-close:hover { background: var(--bg-hover); }
|