@oh-my-pi/pi-coding-agent 15.11.8 → 15.12.1
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/CHANGELOG.md +46 -2
- package/dist/cli.js +8095 -7704
- package/dist/types/collab/crypto.d.ts +1 -6
- package/dist/types/collab/guest.d.ts +2 -0
- package/dist/types/collab/host.d.ts +16 -0
- package/dist/types/collab/protocol.d.ts +14 -1
- package/dist/types/config/settings-schema.d.ts +52 -6
- package/dist/types/export/custom-share.d.ts +1 -2
- package/dist/types/export/html/index.d.ts +39 -1
- package/dist/types/export/share.d.ts +43 -0
- package/dist/types/main.d.ts +2 -0
- package/dist/types/modes/components/agent-hub.d.ts +19 -1
- package/dist/types/modes/components/status-line/component.d.ts +6 -1
- package/dist/types/modes/components/status-line/types.d.ts +2 -0
- package/dist/types/modes/controllers/event-controller.d.ts +7 -0
- package/dist/types/modes/controllers/input-controller.d.ts +1 -1
- package/dist/types/modes/controllers/session-focus-controller.d.ts +31 -0
- package/dist/types/modes/interactive-mode.d.ts +9 -0
- package/dist/types/modes/session-observer-registry.d.ts +7 -0
- package/dist/types/modes/theme/theme.d.ts +2 -1
- package/dist/types/modes/types.d.ts +12 -0
- package/dist/types/session/agent-session.d.ts +2 -0
- package/dist/types/session/codex-auto-reset.d.ts +8 -4
- package/dist/types/task/executor.d.ts +7 -0
- package/dist/types/task/types.d.ts +9 -0
- package/dist/types/tools/tool-result.d.ts +2 -0
- package/package.json +13 -14
- package/scripts/build-binary.ts +4 -0
- package/scripts/bundle-dist.ts +4 -0
- package/scripts/generate-share-viewer.ts +34 -0
- package/src/collab/crypto.ts +10 -4
- package/src/collab/guest.ts +31 -2
- package/src/collab/host.ts +73 -11
- package/src/collab/protocol.ts +48 -7
- package/src/commands/join.ts +1 -1
- package/src/config/settings-schema.ts +54 -5
- package/src/config/settings.ts +12 -0
- package/src/export/custom-share.ts +1 -1
- package/src/export/html/index.ts +122 -17
- package/src/export/html/share-loader.js +102 -0
- package/src/export/html/template.css +745 -459
- package/src/export/html/template.html +6 -3
- package/src/export/html/template.js +240 -915
- package/src/export/html/tool-views.generated.js +38 -0
- package/src/export/share.ts +268 -0
- package/src/internal-urls/docs-index.generated.ts +73 -73
- package/src/lsp/index.ts +11 -0
- package/src/main.ts +22 -9
- package/src/modes/components/agent-hub.ts +541 -410
- package/src/modes/components/status-line/component.ts +38 -5
- package/src/modes/components/status-line/segments.ts +5 -1
- package/src/modes/components/status-line/types.ts +2 -0
- package/src/modes/components/tips.txt +3 -1
- package/src/modes/controllers/command-controller.ts +55 -96
- package/src/modes/controllers/event-controller.ts +45 -16
- package/src/modes/controllers/input-controller.ts +104 -4
- package/src/modes/controllers/selector-controller.ts +11 -15
- package/src/modes/controllers/session-focus-controller.ts +112 -0
- package/src/modes/interactive-mode.ts +44 -2
- package/src/modes/session-observer-registry.ts +11 -0
- package/src/modes/theme/theme.ts +6 -0
- package/src/modes/types.ts +12 -0
- package/src/modes/utils/ui-helpers.ts +16 -13
- package/src/prompts/tools/job.md +1 -1
- package/src/session/agent-session.ts +87 -19
- package/src/session/codex-auto-reset.ts +23 -11
- package/src/slash-commands/builtin-registry.ts +62 -35
- package/src/task/executor.ts +14 -0
- package/src/task/index.ts +5 -1
- package/src/task/render.ts +76 -5
- package/src/task/types.ts +9 -0
- package/src/tiny/worker.ts +17 -95
- package/src/tools/ast-grep.ts +3 -1
- package/src/tools/find.ts +3 -1
- package/src/tools/gh.ts +20 -6
- package/src/tools/irc.ts +4 -0
- package/src/tools/job.ts +18 -13
- package/src/tools/memory-recall.ts +2 -0
- package/src/tools/search.ts +3 -1
- package/src/tools/tool-result.ts +8 -0
- package/dist/tokenizers.linux-x64-gnu-xcjh3jwk.node +0 -0
- package/dist/types/export/html/template.generated.d.ts +0 -1
- package/dist/types/export/html/template.macro.d.ts +0 -5
- package/dist/types/tiny/compiled-runtime.d.ts +0 -35
- package/scripts/generate-template.ts +0 -33
- package/src/bun-imports.d.ts +0 -28
- package/src/export/html/template.generated.ts +0 -2
- package/src/export/html/template.macro.ts +0 -25
- package/src/tiny/compiled-runtime.ts +0 -179
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/* Export page chrome — dense devtool aesthetic shared with the tv- tool
|
|
2
|
+
cards (tool-render.css): mono type, hairline borders via color-mix,
|
|
3
|
+
small radii, tinted neutrals, whisper hovers. All colors derive from
|
|
4
|
+
the theme vars injected on :root (--text, --muted, --dim, --accent,
|
|
5
|
+
--border, --success, --error, --warning, --body-bg, --container-bg,
|
|
6
|
+
--info-bg, …) so light and dark themes both work. */
|
|
7
|
+
|
|
1
8
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
2
9
|
|
|
3
10
|
:root {
|
|
@@ -6,14 +13,62 @@
|
|
|
6
13
|
--sidebar-min-width: 240px;
|
|
7
14
|
--sidebar-max-width: 840px;
|
|
8
15
|
--sidebar-resizer-width: 6px;
|
|
16
|
+
--content-max-width: 1100px;
|
|
17
|
+
--hairline: color-mix(in srgb, var(--text) 10%, transparent);
|
|
18
|
+
--hairline-soft: color-mix(in srgb, var(--text) 7%, transparent);
|
|
19
|
+
--hairline-strong: color-mix(in srgb, var(--text) 18%, transparent);
|
|
20
|
+
--hover-wash: color-mix(in srgb, var(--text) 5%, transparent);
|
|
21
|
+
--inset-bg: var(--info-bg, color-mix(in srgb, var(--text) 4%, transparent));
|
|
22
|
+
--ring: color-mix(in srgb, var(--accent) 70%, transparent);
|
|
23
|
+
--radius-card: 8px;
|
|
24
|
+
--radius-ctl: 6px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
html {
|
|
28
|
+
scrollbar-width: thin;
|
|
29
|
+
scrollbar-color: color-mix(in srgb, var(--text) 22%, transparent) transparent;
|
|
9
30
|
}
|
|
10
31
|
|
|
11
32
|
body {
|
|
12
|
-
font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
|
|
33
|
+
font-family: ui-monospace, 'SF Mono', 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
|
|
13
34
|
font-size: 12px;
|
|
14
35
|
line-height: var(--line-height);
|
|
15
36
|
color: var(--text);
|
|
16
37
|
background: var(--body-bg);
|
|
38
|
+
-webkit-font-smoothing: antialiased;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
::selection {
|
|
42
|
+
background: color-mix(in srgb, var(--accent) 28%, transparent);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:focus-visible {
|
|
46
|
+
outline: 2px solid var(--ring);
|
|
47
|
+
outline-offset: 1px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Thin themed scrollbars everywhere */
|
|
51
|
+
* {
|
|
52
|
+
scrollbar-width: thin;
|
|
53
|
+
scrollbar-color: color-mix(in srgb, var(--text) 22%, transparent) transparent;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
::-webkit-scrollbar {
|
|
57
|
+
width: 8px;
|
|
58
|
+
height: 8px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
::-webkit-scrollbar-track {
|
|
62
|
+
background: transparent;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
::-webkit-scrollbar-thumb {
|
|
66
|
+
background: color-mix(in srgb, var(--text) 18%, transparent);
|
|
67
|
+
border-radius: 4px;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
::-webkit-scrollbar-thumb:hover {
|
|
71
|
+
background: color-mix(in srgb, var(--text) 30%, transparent);
|
|
17
72
|
}
|
|
18
73
|
|
|
19
74
|
body.sidebar-resizing {
|
|
@@ -26,121 +81,147 @@
|
|
|
26
81
|
min-height: 100vh;
|
|
27
82
|
}
|
|
28
83
|
|
|
29
|
-
/* Sidebar */
|
|
84
|
+
/* ================= Sidebar ================= */
|
|
85
|
+
|
|
30
86
|
#sidebar {
|
|
31
87
|
width: var(--sidebar-width);
|
|
32
88
|
min-width: var(--sidebar-width);
|
|
33
89
|
max-width: var(--sidebar-width);
|
|
34
|
-
background: var(--container-bg);
|
|
90
|
+
background: color-mix(in srgb, var(--container-bg) 72%, var(--body-bg));
|
|
35
91
|
flex-shrink: 0;
|
|
36
92
|
display: flex;
|
|
37
93
|
flex-direction: column;
|
|
38
94
|
position: sticky;
|
|
39
95
|
top: 0;
|
|
40
96
|
height: 100vh;
|
|
41
|
-
border-right: 1px solid var(--
|
|
97
|
+
border-right: 1px solid var(--hairline);
|
|
42
98
|
}
|
|
43
99
|
|
|
44
100
|
.sidebar-header {
|
|
45
|
-
padding:
|
|
101
|
+
padding: 10px 12px 8px;
|
|
46
102
|
flex-shrink: 0;
|
|
103
|
+
border-bottom: 1px solid var(--hairline-soft);
|
|
47
104
|
}
|
|
48
105
|
|
|
49
106
|
.sidebar-controls {
|
|
50
|
-
padding:
|
|
107
|
+
padding: 0 0 6px;
|
|
51
108
|
}
|
|
52
109
|
|
|
53
110
|
.sidebar-search {
|
|
54
111
|
width: 100%;
|
|
55
112
|
box-sizing: border-box;
|
|
56
|
-
padding:
|
|
113
|
+
padding: 5px 9px;
|
|
57
114
|
font-size: 11px;
|
|
58
115
|
font-family: inherit;
|
|
59
|
-
background: var(--body-bg);
|
|
116
|
+
background: color-mix(in srgb, var(--body-bg) 70%, transparent);
|
|
60
117
|
color: var(--text);
|
|
61
|
-
border: 1px solid var(--
|
|
62
|
-
border-radius:
|
|
118
|
+
border: 1px solid var(--hairline);
|
|
119
|
+
border-radius: var(--radius-ctl);
|
|
120
|
+
transition: border-color 0.12s ease, box-shadow 0.12s ease;
|
|
63
121
|
}
|
|
64
122
|
|
|
65
|
-
.sidebar-
|
|
66
|
-
|
|
67
|
-
padding: 4px 8px 8px 8px;
|
|
68
|
-
gap: 4px;
|
|
69
|
-
align-items: center;
|
|
70
|
-
flex-wrap: wrap;
|
|
123
|
+
.sidebar-search:hover {
|
|
124
|
+
border-color: var(--hairline-strong);
|
|
71
125
|
}
|
|
72
126
|
|
|
73
127
|
.sidebar-search:focus {
|
|
74
128
|
outline: none;
|
|
75
|
-
border-color: var(--accent);
|
|
129
|
+
border-color: color-mix(in srgb, var(--accent) 55%, transparent);
|
|
130
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.sidebar-search:focus-visible {
|
|
134
|
+
outline: none;
|
|
76
135
|
}
|
|
77
136
|
|
|
78
137
|
.sidebar-search::placeholder {
|
|
79
138
|
color: var(--muted);
|
|
80
139
|
}
|
|
81
140
|
|
|
141
|
+
.sidebar-filters {
|
|
142
|
+
display: flex;
|
|
143
|
+
gap: 4px;
|
|
144
|
+
align-items: center;
|
|
145
|
+
flex-wrap: wrap;
|
|
146
|
+
}
|
|
147
|
+
|
|
82
148
|
.filter-btn {
|
|
83
|
-
padding:
|
|
149
|
+
padding: 2px 8px;
|
|
84
150
|
font-size: 10px;
|
|
85
151
|
font-family: inherit;
|
|
86
152
|
background: transparent;
|
|
87
153
|
color: var(--muted);
|
|
88
|
-
border: 1px solid var(--
|
|
89
|
-
border-radius:
|
|
154
|
+
border: 1px solid var(--hairline);
|
|
155
|
+
border-radius: 999px;
|
|
90
156
|
cursor: pointer;
|
|
157
|
+
transition: color 0.12s ease, border-color 0.12s ease, background 0.12s ease, transform 0.08s ease;
|
|
91
158
|
}
|
|
92
159
|
|
|
93
160
|
.filter-btn:hover {
|
|
94
161
|
color: var(--text);
|
|
95
|
-
|
|
162
|
+
background: var(--hover-wash);
|
|
163
|
+
border-color: var(--hairline-strong);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.filter-btn:active {
|
|
167
|
+
transform: scale(0.95);
|
|
96
168
|
}
|
|
97
169
|
|
|
98
170
|
.filter-btn.active {
|
|
99
|
-
background: var(--accent);
|
|
100
|
-
color: var(--
|
|
101
|
-
border-color: var(--accent);
|
|
171
|
+
background: color-mix(in srgb, var(--accent) 16%, transparent);
|
|
172
|
+
color: color-mix(in srgb, var(--accent) 80%, var(--text));
|
|
173
|
+
border-color: color-mix(in srgb, var(--accent) 45%, transparent);
|
|
102
174
|
}
|
|
103
175
|
|
|
104
176
|
.sidebar-close {
|
|
105
177
|
display: none;
|
|
106
|
-
|
|
107
|
-
|
|
178
|
+
width: 22px;
|
|
179
|
+
height: 22px;
|
|
180
|
+
padding: 0;
|
|
181
|
+
font-size: 11px;
|
|
182
|
+
line-height: 20px;
|
|
108
183
|
font-family: inherit;
|
|
109
184
|
background: transparent;
|
|
110
185
|
color: var(--muted);
|
|
111
|
-
border: 1px solid var(--
|
|
112
|
-
border-radius:
|
|
186
|
+
border: 1px solid var(--hairline);
|
|
187
|
+
border-radius: var(--radius-ctl);
|
|
113
188
|
cursor: pointer;
|
|
114
189
|
margin-left: auto;
|
|
190
|
+
transition: color 0.12s ease, background 0.12s ease, transform 0.08s ease;
|
|
115
191
|
}
|
|
116
192
|
|
|
117
193
|
.sidebar-close:hover {
|
|
118
194
|
color: var(--text);
|
|
119
|
-
|
|
195
|
+
background: var(--hover-wash);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.sidebar-close:active {
|
|
199
|
+
transform: scale(0.95);
|
|
120
200
|
}
|
|
121
201
|
|
|
122
202
|
.tree-container {
|
|
123
203
|
flex: 1;
|
|
124
204
|
overflow: auto;
|
|
125
|
-
padding:
|
|
205
|
+
padding: 6px 0;
|
|
126
206
|
}
|
|
127
207
|
|
|
128
208
|
.tree-node {
|
|
129
|
-
padding:
|
|
209
|
+
padding: 1px 10px;
|
|
130
210
|
cursor: pointer;
|
|
131
211
|
display: flex;
|
|
132
212
|
align-items: baseline;
|
|
133
213
|
font-size: 11px;
|
|
134
|
-
line-height:
|
|
214
|
+
line-height: 15px;
|
|
135
215
|
white-space: nowrap;
|
|
136
216
|
}
|
|
137
217
|
|
|
138
218
|
.tree-node:hover {
|
|
139
|
-
background: var(--
|
|
219
|
+
background: var(--hover-wash);
|
|
140
220
|
}
|
|
141
221
|
|
|
142
222
|
.tree-node.active {
|
|
143
223
|
background: var(--selectedBg);
|
|
224
|
+
box-shadow: inset 2px 0 0 var(--accent);
|
|
144
225
|
}
|
|
145
226
|
|
|
146
227
|
.tree-node.active .tree-content {
|
|
@@ -148,11 +229,15 @@
|
|
|
148
229
|
}
|
|
149
230
|
|
|
150
231
|
.tree-node.in-path {
|
|
151
|
-
background: color-mix(in srgb, var(--accent)
|
|
232
|
+
background: color-mix(in srgb, var(--accent) 8%, transparent);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.tree-node.in-path.active {
|
|
236
|
+
background: var(--selectedBg);
|
|
152
237
|
}
|
|
153
238
|
|
|
154
239
|
.tree-node:not(.in-path) {
|
|
155
|
-
opacity: 0.
|
|
240
|
+
opacity: 0.45;
|
|
156
241
|
}
|
|
157
242
|
|
|
158
243
|
.tree-node:not(.in-path):hover {
|
|
@@ -160,9 +245,9 @@
|
|
|
160
245
|
}
|
|
161
246
|
|
|
162
247
|
.tree-prefix {
|
|
163
|
-
color: var(--muted);
|
|
248
|
+
color: color-mix(in srgb, var(--muted) 65%, transparent);
|
|
164
249
|
flex-shrink: 0;
|
|
165
|
-
font-family:
|
|
250
|
+
font-family: inherit;
|
|
166
251
|
white-space: pre;
|
|
167
252
|
}
|
|
168
253
|
|
|
@@ -175,6 +260,10 @@
|
|
|
175
260
|
color: var(--text);
|
|
176
261
|
}
|
|
177
262
|
|
|
263
|
+
.tree-label {
|
|
264
|
+
color: color-mix(in srgb, var(--accent) 80%, var(--text));
|
|
265
|
+
}
|
|
266
|
+
|
|
178
267
|
.tree-role-user {
|
|
179
268
|
color: var(--accent);
|
|
180
269
|
}
|
|
@@ -212,10 +301,11 @@
|
|
|
212
301
|
}
|
|
213
302
|
|
|
214
303
|
.tree-status {
|
|
215
|
-
padding:
|
|
304
|
+
padding: 5px 12px;
|
|
216
305
|
font-size: 10px;
|
|
217
306
|
color: var(--muted);
|
|
218
307
|
flex-shrink: 0;
|
|
308
|
+
border-top: 1px solid var(--hairline-soft);
|
|
219
309
|
}
|
|
220
310
|
|
|
221
311
|
#sidebar-resizer {
|
|
@@ -227,22 +317,20 @@
|
|
|
227
317
|
cursor: col-resize;
|
|
228
318
|
touch-action: none;
|
|
229
319
|
background: transparent;
|
|
230
|
-
|
|
320
|
+
transition: background 0.12s ease;
|
|
231
321
|
}
|
|
232
322
|
|
|
233
323
|
#sidebar-resizer:hover,
|
|
234
324
|
body.sidebar-resizing #sidebar-resizer {
|
|
235
|
-
background: var(--
|
|
236
|
-
border-right-color: var(--dim);
|
|
325
|
+
background: color-mix(in srgb, var(--accent) 25%, transparent);
|
|
237
326
|
}
|
|
238
327
|
|
|
239
|
-
/* Main content */
|
|
328
|
+
/* ================= Main content ================= */
|
|
329
|
+
|
|
240
330
|
#content {
|
|
241
331
|
flex: 1;
|
|
242
332
|
min-width: 0;
|
|
243
|
-
|
|
244
|
-
overflow-y: auto;
|
|
245
|
-
padding: var(--line-height) calc(var(--line-height) * 2);
|
|
333
|
+
padding: 20px 28px 48px;
|
|
246
334
|
display: flex;
|
|
247
335
|
flex-direction: column;
|
|
248
336
|
align-items: center;
|
|
@@ -250,78 +338,233 @@
|
|
|
250
338
|
|
|
251
339
|
#content > * {
|
|
252
340
|
width: 100%;
|
|
253
|
-
max-width:
|
|
341
|
+
max-width: var(--content-max-width);
|
|
254
342
|
}
|
|
255
343
|
|
|
256
|
-
/*
|
|
257
|
-
.help-bar {
|
|
258
|
-
font-size: 11px;
|
|
259
|
-
color: var(--warning);
|
|
260
|
-
margin-bottom: var(--line-height);
|
|
261
|
-
}
|
|
344
|
+
/* ================= Header card ================= */
|
|
262
345
|
|
|
263
|
-
/* Header */
|
|
264
346
|
.header {
|
|
265
|
-
background: var(--container-bg);
|
|
266
|
-
border
|
|
267
|
-
|
|
268
|
-
|
|
347
|
+
background: color-mix(in srgb, var(--container-bg) 60%, var(--body-bg));
|
|
348
|
+
border: 1px solid var(--hairline);
|
|
349
|
+
border-radius: var(--radius-card);
|
|
350
|
+
padding: 12px 16px;
|
|
351
|
+
margin-bottom: 14px;
|
|
269
352
|
}
|
|
270
353
|
|
|
271
354
|
.header h1 {
|
|
272
|
-
font-size:
|
|
273
|
-
font-weight:
|
|
274
|
-
|
|
275
|
-
|
|
355
|
+
font-size: 12.5px;
|
|
356
|
+
font-weight: 650;
|
|
357
|
+
letter-spacing: 0.01em;
|
|
358
|
+
color: var(--text);
|
|
359
|
+
margin-bottom: 2px;
|
|
360
|
+
overflow-wrap: anywhere;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.help-bar {
|
|
364
|
+
font-size: 10px;
|
|
365
|
+
color: var(--dim);
|
|
366
|
+
margin-bottom: 10px;
|
|
276
367
|
}
|
|
277
368
|
|
|
278
369
|
.header-info {
|
|
279
370
|
display: flex;
|
|
280
|
-
flex-
|
|
281
|
-
gap:
|
|
371
|
+
flex-wrap: wrap;
|
|
372
|
+
gap: 3px 22px;
|
|
282
373
|
font-size: 11px;
|
|
283
374
|
}
|
|
284
375
|
|
|
285
376
|
.info-item {
|
|
286
|
-
color: var(--dim);
|
|
287
377
|
display: flex;
|
|
288
378
|
align-items: baseline;
|
|
379
|
+
gap: 6px;
|
|
380
|
+
min-width: 0;
|
|
289
381
|
}
|
|
290
382
|
|
|
291
383
|
.info-label {
|
|
384
|
+
font-size: 9.5px;
|
|
292
385
|
font-weight: 600;
|
|
293
|
-
|
|
294
|
-
|
|
386
|
+
letter-spacing: 0.06em;
|
|
387
|
+
text-transform: uppercase;
|
|
388
|
+
color: var(--dim);
|
|
295
389
|
}
|
|
296
390
|
|
|
297
391
|
.info-value {
|
|
298
392
|
color: var(--text);
|
|
299
|
-
|
|
393
|
+
overflow-wrap: anywhere;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/* ================= System prompt / tools panels ================= */
|
|
397
|
+
|
|
398
|
+
.system-prompt {
|
|
399
|
+
background: color-mix(in srgb, var(--container-bg) 45%, var(--body-bg));
|
|
400
|
+
border: 1px solid var(--hairline);
|
|
401
|
+
border-radius: var(--radius-card);
|
|
402
|
+
padding: 10px 14px;
|
|
403
|
+
margin-bottom: 14px;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
.system-prompt-header {
|
|
407
|
+
font-size: 10px;
|
|
408
|
+
font-weight: 600;
|
|
409
|
+
letter-spacing: 0.06em;
|
|
410
|
+
text-transform: uppercase;
|
|
411
|
+
color: var(--customMessageLabel, var(--muted));
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
.system-prompt-content {
|
|
415
|
+
color: var(--customMessageText, var(--muted));
|
|
416
|
+
white-space: pre-wrap;
|
|
417
|
+
word-wrap: break-word;
|
|
418
|
+
font-size: 11px;
|
|
419
|
+
max-height: 240px;
|
|
420
|
+
overflow-y: auto;
|
|
421
|
+
overscroll-behavior: contain;
|
|
422
|
+
margin-top: 8px;
|
|
423
|
+
padding: 8px 10px;
|
|
424
|
+
background: var(--inset-bg);
|
|
425
|
+
border-radius: var(--radius-ctl);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
.system-prompt.provider-prompt {
|
|
429
|
+
border-left: 2px solid var(--warning);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.system-prompt-note {
|
|
433
|
+
font-size: 10px;
|
|
434
|
+
font-style: italic;
|
|
435
|
+
color: var(--muted);
|
|
436
|
+
margin-top: 6px;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
.tools-list {
|
|
440
|
+
background: color-mix(in srgb, var(--container-bg) 45%, var(--body-bg));
|
|
441
|
+
border: 1px solid var(--hairline);
|
|
442
|
+
border-radius: var(--radius-card);
|
|
443
|
+
padding: 10px 14px;
|
|
444
|
+
margin-bottom: 14px;
|
|
445
|
+
cursor: pointer;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
.tools-header {
|
|
449
|
+
font-size: 10px;
|
|
450
|
+
font-weight: 600;
|
|
451
|
+
letter-spacing: 0.06em;
|
|
452
|
+
text-transform: uppercase;
|
|
453
|
+
color: var(--warning);
|
|
454
|
+
margin-bottom: 8px;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
.tools-list.collapsed .tools-header {
|
|
458
|
+
margin-bottom: 0;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.tools-list.collapsed .tools-content {
|
|
462
|
+
display: none;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
.tools-list:not(.collapsed) .tools-collapsed {
|
|
466
|
+
display: none;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.tools-collapsed {
|
|
470
|
+
margin-top: 6px;
|
|
471
|
+
display: flex;
|
|
472
|
+
flex-wrap: wrap;
|
|
473
|
+
gap: 4px;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
.tools-content {
|
|
477
|
+
display: flex;
|
|
478
|
+
flex-direction: column;
|
|
479
|
+
gap: 3px;
|
|
480
|
+
max-height: 320px;
|
|
481
|
+
overflow-y: auto;
|
|
482
|
+
overscroll-behavior: contain;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
.tool-name-chip {
|
|
486
|
+
display: inline-block;
|
|
487
|
+
padding: 0 6px;
|
|
488
|
+
border-radius: 3px;
|
|
489
|
+
background: color-mix(in srgb, var(--text) 6%, transparent);
|
|
490
|
+
color: var(--muted);
|
|
491
|
+
font-size: 10px;
|
|
492
|
+
line-height: 17px;
|
|
493
|
+
font-weight: 500;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
.tool-item {
|
|
497
|
+
font-size: 11px;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
.tool-item-name {
|
|
501
|
+
font-weight: 600;
|
|
502
|
+
color: var(--text);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.tool-item-desc {
|
|
506
|
+
color: var(--dim);
|
|
300
507
|
}
|
|
301
508
|
|
|
302
|
-
/* Messages */
|
|
509
|
+
/* ================= Messages ================= */
|
|
510
|
+
|
|
303
511
|
#messages {
|
|
304
512
|
display: flex;
|
|
305
513
|
flex-direction: column;
|
|
306
|
-
gap:
|
|
514
|
+
gap: 14px;
|
|
307
515
|
}
|
|
308
516
|
|
|
309
517
|
.message-timestamp {
|
|
310
518
|
font-size: 10px;
|
|
311
519
|
color: var(--dim);
|
|
312
|
-
opacity: 0.
|
|
520
|
+
opacity: 0.85;
|
|
313
521
|
}
|
|
314
522
|
|
|
315
|
-
.user-message
|
|
316
|
-
|
|
317
|
-
color: var(--userMessageText);
|
|
318
|
-
padding: var(--line-height);
|
|
319
|
-
border-radius: 4px;
|
|
523
|
+
.user-message,
|
|
524
|
+
.assistant-message {
|
|
320
525
|
position: relative;
|
|
526
|
+
border-radius: var(--radius-card);
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
.user-message > .message-timestamp,
|
|
530
|
+
.assistant-message > .message-timestamp {
|
|
531
|
+
position: absolute;
|
|
532
|
+
top: 9px;
|
|
533
|
+
right: 40px;
|
|
534
|
+
line-height: 14px;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
.user-message::before,
|
|
538
|
+
.assistant-message::before {
|
|
539
|
+
display: block;
|
|
540
|
+
font-size: 9.5px;
|
|
541
|
+
font-weight: 600;
|
|
542
|
+
letter-spacing: 0.08em;
|
|
543
|
+
text-transform: uppercase;
|
|
544
|
+
line-height: 14px;
|
|
545
|
+
margin-bottom: 6px;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.user-message {
|
|
549
|
+
background: color-mix(in srgb, var(--accent) 6%, transparent);
|
|
550
|
+
border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--hairline));
|
|
551
|
+
color: var(--userMessageText, var(--text));
|
|
552
|
+
padding: 9px 14px 11px;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
.user-message::before {
|
|
556
|
+
content: 'user';
|
|
557
|
+
color: color-mix(in srgb, var(--accent) 85%, var(--text));
|
|
321
558
|
}
|
|
322
559
|
|
|
323
560
|
.user-message.developer-message {
|
|
324
|
-
|
|
561
|
+
background: color-mix(in srgb, var(--text) 3%, transparent);
|
|
562
|
+
border-color: var(--hairline);
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
.user-message.developer-message::before {
|
|
566
|
+
content: 'developer';
|
|
567
|
+
color: var(--dim);
|
|
325
568
|
}
|
|
326
569
|
|
|
327
570
|
.user-message.developer-message .markdown-content {
|
|
@@ -329,46 +572,69 @@
|
|
|
329
572
|
}
|
|
330
573
|
|
|
331
574
|
.assistant-message {
|
|
575
|
+
display: flex;
|
|
576
|
+
flex-direction: column;
|
|
577
|
+
gap: 8px;
|
|
578
|
+
padding: 0 1px;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
.assistant-message::before {
|
|
582
|
+
content: 'assistant';
|
|
583
|
+
color: color-mix(in srgb, var(--success) 80%, var(--text));
|
|
584
|
+
margin-bottom: -2px;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
.assistant-text {
|
|
332
588
|
padding: 0;
|
|
333
|
-
position: relative;
|
|
334
589
|
}
|
|
335
590
|
|
|
336
591
|
/* Copy link button - appears on hover */
|
|
337
592
|
.copy-link-btn {
|
|
338
593
|
position: absolute;
|
|
339
|
-
top:
|
|
340
|
-
right:
|
|
341
|
-
width:
|
|
342
|
-
height:
|
|
343
|
-
padding:
|
|
344
|
-
background: var(--
|
|
345
|
-
border: 1px solid var(--
|
|
346
|
-
border-radius:
|
|
594
|
+
top: 5px;
|
|
595
|
+
right: 6px;
|
|
596
|
+
width: 24px;
|
|
597
|
+
height: 24px;
|
|
598
|
+
padding: 5px;
|
|
599
|
+
background: color-mix(in srgb, var(--body-bg) 70%, transparent);
|
|
600
|
+
border: 1px solid var(--hairline);
|
|
601
|
+
border-radius: var(--radius-ctl);
|
|
347
602
|
color: var(--muted);
|
|
348
603
|
cursor: pointer;
|
|
349
604
|
opacity: 0;
|
|
350
|
-
transition: opacity 0.15s, background 0.15s, color 0.15s;
|
|
605
|
+
transition: opacity 0.15s ease, background 0.15s ease, color 0.15s ease, transform 0.08s ease;
|
|
351
606
|
display: flex;
|
|
352
607
|
align-items: center;
|
|
353
608
|
justify-content: center;
|
|
354
609
|
z-index: 10;
|
|
355
610
|
}
|
|
356
611
|
|
|
612
|
+
.copy-link-btn svg {
|
|
613
|
+
width: 12px;
|
|
614
|
+
height: 12px;
|
|
615
|
+
}
|
|
616
|
+
|
|
357
617
|
.user-message:hover .copy-link-btn,
|
|
358
|
-
.assistant-message:hover .copy-link-btn
|
|
618
|
+
.assistant-message:hover .copy-link-btn,
|
|
619
|
+
.copy-link-btn:focus-visible {
|
|
359
620
|
opacity: 1;
|
|
360
621
|
}
|
|
361
622
|
|
|
362
623
|
.copy-link-btn:hover {
|
|
363
|
-
background: var(--
|
|
364
|
-
color: var(--
|
|
365
|
-
border-color: var(--
|
|
624
|
+
background: var(--hover-wash);
|
|
625
|
+
color: var(--text);
|
|
626
|
+
border-color: var(--hairline-strong);
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
.copy-link-btn:active {
|
|
630
|
+
transform: scale(0.92);
|
|
366
631
|
}
|
|
367
632
|
|
|
368
633
|
.copy-link-btn.copied {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
634
|
+
opacity: 1;
|
|
635
|
+
background: color-mix(in srgb, var(--success) 15%, transparent);
|
|
636
|
+
color: var(--success);
|
|
637
|
+
border-color: color-mix(in srgb, var(--success) 45%, transparent);
|
|
372
638
|
}
|
|
373
639
|
|
|
374
640
|
/* Highlight effect for deep-linked messages */
|
|
@@ -386,89 +652,102 @@
|
|
|
386
652
|
}
|
|
387
653
|
}
|
|
388
654
|
|
|
389
|
-
|
|
390
|
-
padding-left: var(--line-height);
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
.assistant-text {
|
|
394
|
-
padding: var(--line-height);
|
|
395
|
-
padding-bottom: 0;
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
.message-timestamp + .assistant-text,
|
|
399
|
-
.message-timestamp + .thinking-block {
|
|
400
|
-
padding-top: 0;
|
|
401
|
-
}
|
|
655
|
+
/* ================= Thinking blocks ================= */
|
|
402
656
|
|
|
403
|
-
.thinking-block
|
|
404
|
-
|
|
657
|
+
.thinking-block {
|
|
658
|
+
border-left: 2px solid var(--hairline-strong);
|
|
659
|
+
padding: 1px 0 1px 12px;
|
|
405
660
|
}
|
|
406
661
|
|
|
407
662
|
.thinking-text {
|
|
408
|
-
|
|
409
|
-
color: var(--thinkingText);
|
|
663
|
+
display: none;
|
|
664
|
+
color: var(--thinkingText, var(--muted));
|
|
410
665
|
font-style: italic;
|
|
666
|
+
font-size: 11.5px;
|
|
411
667
|
white-space: pre-wrap;
|
|
412
668
|
}
|
|
413
669
|
|
|
414
|
-
.message-timestamp + .thinking-block .thinking-text,
|
|
415
|
-
.message-timestamp + .thinking-block .thinking-collapsed {
|
|
416
|
-
padding-top: 0;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
670
|
.thinking-collapsed {
|
|
420
|
-
display:
|
|
421
|
-
|
|
422
|
-
color: var(--thinkingText);
|
|
671
|
+
display: block;
|
|
672
|
+
color: var(--dim);
|
|
423
673
|
font-style: italic;
|
|
674
|
+
font-size: 11px;
|
|
424
675
|
}
|
|
425
676
|
|
|
426
|
-
/* Tool
|
|
427
|
-
.tool-execution {
|
|
428
|
-
padding: var(--line-height);
|
|
429
|
-
border-radius: 4px;
|
|
430
|
-
}
|
|
677
|
+
/* ================= Tool executions (bash / js) ================= */
|
|
431
678
|
|
|
432
|
-
.tool-execution
|
|
433
|
-
|
|
679
|
+
.tool-execution {
|
|
680
|
+
border: 1px solid var(--hairline);
|
|
681
|
+
border-radius: var(--radius-ctl);
|
|
682
|
+
padding: 8px 12px;
|
|
683
|
+
font-size: 11.5px;
|
|
684
|
+
overflow: hidden;
|
|
434
685
|
}
|
|
435
686
|
|
|
436
|
-
.tool-execution.
|
|
437
|
-
|
|
438
|
-
.tool-execution.error { background: var(--toolErrorBg); }
|
|
439
|
-
|
|
440
|
-
.tool-header, .tool-name {
|
|
441
|
-
font-weight: bold;
|
|
687
|
+
.tool-execution.error {
|
|
688
|
+
border-color: color-mix(in srgb, var(--error) 40%, var(--hairline));
|
|
442
689
|
}
|
|
443
690
|
|
|
444
|
-
.tool-
|
|
445
|
-
|
|
446
|
-
word-break: break-all;
|
|
691
|
+
.tool-execution.pending {
|
|
692
|
+
border-style: dashed;
|
|
447
693
|
}
|
|
448
694
|
|
|
449
|
-
.
|
|
450
|
-
|
|
695
|
+
.tool-execution > .message-timestamp {
|
|
696
|
+
float: right;
|
|
697
|
+
margin-left: 10px;
|
|
451
698
|
}
|
|
452
699
|
|
|
453
|
-
|
|
454
|
-
|
|
700
|
+
/* Tool calls render inside the <omp-tool-view> web component, which draws
|
|
701
|
+
its own card chrome; the host box collapses to a plain block. */
|
|
702
|
+
omp-tool-view.tool-execution {
|
|
703
|
+
display: block;
|
|
704
|
+
padding: 0;
|
|
705
|
+
background: none;
|
|
706
|
+
border: none;
|
|
707
|
+
border-radius: 0;
|
|
708
|
+
overflow: visible;
|
|
455
709
|
}
|
|
456
710
|
|
|
457
711
|
.tool-command {
|
|
458
|
-
font-weight:
|
|
712
|
+
font-weight: 600;
|
|
459
713
|
white-space: pre-wrap;
|
|
460
714
|
word-wrap: break-word;
|
|
461
715
|
overflow-wrap: break-word;
|
|
462
716
|
word-break: break-word;
|
|
717
|
+
padding-left: 13px;
|
|
718
|
+
position: relative;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
.tool-command::before {
|
|
722
|
+
content: '';
|
|
723
|
+
position: absolute;
|
|
724
|
+
left: 0;
|
|
725
|
+
top: 5px;
|
|
726
|
+
width: 7px;
|
|
727
|
+
height: 7px;
|
|
728
|
+
border-radius: 50%;
|
|
729
|
+
background: var(--dim);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
.tool-execution.success > .tool-command::before {
|
|
733
|
+
background: var(--success);
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.tool-execution.error > .tool-command::before {
|
|
737
|
+
background: var(--error);
|
|
463
738
|
}
|
|
464
739
|
|
|
465
740
|
.tool-output {
|
|
466
|
-
margin-top:
|
|
467
|
-
|
|
741
|
+
margin-top: 8px;
|
|
742
|
+
padding: 7px 9px;
|
|
743
|
+
border-radius: 4px;
|
|
744
|
+
background: var(--inset-bg);
|
|
745
|
+
color: var(--toolOutput, var(--muted));
|
|
468
746
|
word-wrap: break-word;
|
|
469
747
|
overflow-wrap: break-word;
|
|
470
748
|
word-break: break-word;
|
|
471
749
|
font-family: inherit;
|
|
750
|
+
font-size: 11.5px;
|
|
472
751
|
overflow-x: auto;
|
|
473
752
|
}
|
|
474
753
|
|
|
@@ -500,8 +779,9 @@
|
|
|
500
779
|
cursor: pointer;
|
|
501
780
|
}
|
|
502
781
|
|
|
503
|
-
.tool-output.expandable:hover {
|
|
504
|
-
|
|
782
|
+
.tool-output.expandable:hover .expand-hint {
|
|
783
|
+
color: var(--text);
|
|
784
|
+
text-decoration: underline;
|
|
505
785
|
}
|
|
506
786
|
|
|
507
787
|
.tool-output.expandable .output-full {
|
|
@@ -516,102 +796,55 @@
|
|
|
516
796
|
display: block;
|
|
517
797
|
}
|
|
518
798
|
|
|
519
|
-
.
|
|
520
|
-
|
|
799
|
+
.expand-hint {
|
|
800
|
+
color: var(--dim);
|
|
801
|
+
font-size: 10.5px;
|
|
521
802
|
}
|
|
522
803
|
|
|
523
|
-
|
|
524
|
-
}
|
|
804
|
+
/* ================= Meta entries ================= */
|
|
525
805
|
|
|
526
|
-
.
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
border-radius: 4px;
|
|
530
|
-
margin: var(--line-height) 0;
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
.expand-hint {
|
|
534
|
-
color: var(--toolOutput);
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
/* Diff */
|
|
538
|
-
.tool-diff {
|
|
539
|
-
font-size: 11px;
|
|
540
|
-
overflow-x: auto;
|
|
541
|
-
white-space: pre;
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
.diff-added { color: var(--toolDiffAdded); }
|
|
545
|
-
.diff-removed { color: var(--toolDiffRemoved); }
|
|
546
|
-
.diff-context { color: var(--toolDiffContext); }
|
|
547
|
-
|
|
548
|
-
/* Model change */
|
|
549
|
-
.model-change {
|
|
550
|
-
padding: 0 var(--line-height);
|
|
806
|
+
.model-change,
|
|
807
|
+
.thinking-change {
|
|
808
|
+
padding: 0 2px;
|
|
551
809
|
color: var(--dim);
|
|
552
810
|
font-size: 11px;
|
|
553
811
|
}
|
|
554
812
|
|
|
555
|
-
.model-name
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
.codex-bridge-toggle {
|
|
561
|
-
color: var(--muted);
|
|
562
|
-
cursor: pointer;
|
|
563
|
-
text-decoration: underline;
|
|
564
|
-
font-size: 10px;
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
.codex-bridge-toggle:hover {
|
|
568
|
-
color: var(--accent);
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
.codex-bridge-content {
|
|
572
|
-
display: none;
|
|
573
|
-
margin-top: 8px;
|
|
574
|
-
padding: 8px;
|
|
575
|
-
background: var(--exportCardBg, var(--container-bg));
|
|
576
|
-
border-radius: 4px;
|
|
577
|
-
font-size: 11px;
|
|
578
|
-
max-height: 300px;
|
|
579
|
-
overflow: auto;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
.codex-bridge-content pre {
|
|
583
|
-
margin: 0;
|
|
584
|
-
white-space: pre-wrap;
|
|
585
|
-
word-break: break-word;
|
|
586
|
-
color: var(--muted);
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
.model-change.show-bridge .codex-bridge-content {
|
|
590
|
-
display: block;
|
|
813
|
+
.model-name,
|
|
814
|
+
.thinking-level {
|
|
815
|
+
color: var(--borderAccent, var(--accent));
|
|
816
|
+
font-weight: 600;
|
|
591
817
|
}
|
|
592
818
|
|
|
593
819
|
/* Compaction / Branch Summary - matches customMessage colors from TUI */
|
|
594
820
|
.compaction {
|
|
595
|
-
background: var(--customMessageBg);
|
|
596
|
-
border
|
|
597
|
-
|
|
821
|
+
background: color-mix(in srgb, var(--customMessageBg, var(--container-bg)) 70%, var(--body-bg));
|
|
822
|
+
border: 1px solid var(--hairline);
|
|
823
|
+
border-radius: var(--radius-card);
|
|
824
|
+
padding: 9px 14px;
|
|
598
825
|
cursor: pointer;
|
|
599
826
|
}
|
|
600
827
|
|
|
601
828
|
.compaction-label {
|
|
602
|
-
|
|
603
|
-
font-weight:
|
|
829
|
+
font-size: 10px;
|
|
830
|
+
font-weight: 600;
|
|
831
|
+
letter-spacing: 0.06em;
|
|
832
|
+
text-transform: uppercase;
|
|
833
|
+
color: var(--customMessageLabel, var(--muted));
|
|
834
|
+
margin-bottom: 2px;
|
|
604
835
|
}
|
|
605
836
|
|
|
606
837
|
.compaction-collapsed {
|
|
607
|
-
color: var(--customMessageText);
|
|
838
|
+
color: var(--customMessageText, var(--muted));
|
|
839
|
+
font-size: 11px;
|
|
608
840
|
}
|
|
609
841
|
|
|
610
842
|
.compaction-content {
|
|
611
843
|
display: none;
|
|
612
|
-
color: var(--customMessageText);
|
|
844
|
+
color: var(--customMessageText, var(--muted));
|
|
613
845
|
white-space: pre-wrap;
|
|
614
|
-
margin-top:
|
|
846
|
+
margin-top: 8px;
|
|
847
|
+
font-size: 11.5px;
|
|
615
848
|
}
|
|
616
849
|
|
|
617
850
|
.compaction.expanded .compaction-collapsed {
|
|
@@ -622,326 +855,194 @@
|
|
|
622
855
|
display: block;
|
|
623
856
|
}
|
|
624
857
|
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
margin-bottom: var(--line-height);
|
|
631
|
-
}
|
|
632
|
-
|
|
633
|
-
.system-prompt-header {
|
|
634
|
-
font-weight: bold;
|
|
635
|
-
color: var(--customMessageLabel);
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
.system-prompt-content {
|
|
639
|
-
color: var(--customMessageText);
|
|
640
|
-
white-space: pre-wrap;
|
|
641
|
-
word-wrap: break-word;
|
|
642
|
-
font-size: 11px;
|
|
643
|
-
max-height: 200px;
|
|
644
|
-
overflow-y: auto;
|
|
645
|
-
margin-top: var(--line-height);
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
.system-prompt.provider-prompt {
|
|
649
|
-
border-left: 3px solid var(--warning);
|
|
858
|
+
.branch-summary {
|
|
859
|
+
background: color-mix(in srgb, var(--customMessageBg, var(--container-bg)) 70%, var(--body-bg));
|
|
860
|
+
border: 1px solid var(--hairline);
|
|
861
|
+
border-radius: var(--radius-card);
|
|
862
|
+
padding: 9px 14px;
|
|
650
863
|
}
|
|
651
864
|
|
|
652
|
-
.
|
|
865
|
+
.branch-summary-header {
|
|
653
866
|
font-size: 10px;
|
|
654
|
-
font-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
/* Tools list */
|
|
660
|
-
.tools-list {
|
|
661
|
-
background: var(--customMessageBg);
|
|
662
|
-
padding: var(--line-height);
|
|
663
|
-
border-radius: 4px;
|
|
664
|
-
margin-bottom: var(--line-height);
|
|
665
|
-
cursor: pointer;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
.tools-header {
|
|
669
|
-
font-weight: bold;
|
|
670
|
-
color: var(--warning);
|
|
671
|
-
margin-bottom: var(--line-height);
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
.tools-list.collapsed .tools-header {
|
|
675
|
-
margin-bottom: 0;
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
.tools-list.collapsed .tools-content {
|
|
679
|
-
display: none;
|
|
680
|
-
}
|
|
681
|
-
|
|
682
|
-
.tools-list:not(.collapsed) .tools-collapsed {
|
|
683
|
-
display: none;
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
.tools-collapsed {
|
|
687
|
-
margin-top: 6px;
|
|
688
|
-
display: flex;
|
|
689
|
-
flex-wrap: wrap;
|
|
690
|
-
gap: 4px;
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
.tool-name-chip {
|
|
694
|
-
display: inline-block;
|
|
695
|
-
padding: 1px 6px;
|
|
696
|
-
border-radius: 3px;
|
|
697
|
-
background: var(--container-bg);
|
|
698
|
-
color: var(--text);
|
|
699
|
-
font-size: 11px;
|
|
700
|
-
font-weight: 500;
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
.tool-item {
|
|
704
|
-
font-size: 11px;
|
|
705
|
-
}
|
|
706
|
-
|
|
707
|
-
.tool-item-name {
|
|
708
|
-
font-weight: bold;
|
|
709
|
-
color: var(--text);
|
|
710
|
-
}
|
|
711
|
-
|
|
712
|
-
.tool-item-desc {
|
|
713
|
-
color: var(--dim);
|
|
867
|
+
font-weight: 600;
|
|
868
|
+
letter-spacing: 0.06em;
|
|
869
|
+
text-transform: uppercase;
|
|
870
|
+
color: var(--borderAccent, var(--accent));
|
|
871
|
+
margin-bottom: 4px;
|
|
714
872
|
}
|
|
715
873
|
|
|
716
874
|
/* Hook/custom messages */
|
|
717
875
|
.hook-message {
|
|
718
|
-
background: var(--customMessageBg);
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
876
|
+
background: color-mix(in srgb, var(--customMessageBg, var(--container-bg)) 70%, var(--body-bg));
|
|
877
|
+
border: 1px solid var(--hairline);
|
|
878
|
+
border-radius: var(--radius-card);
|
|
879
|
+
color: var(--customMessageText, var(--muted));
|
|
880
|
+
padding: 9px 14px;
|
|
722
881
|
}
|
|
723
882
|
|
|
724
883
|
.hook-type {
|
|
725
|
-
|
|
726
|
-
font-weight:
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
background: var(--customMessageBg);
|
|
732
|
-
padding: var(--line-height);
|
|
733
|
-
border-radius: 4px;
|
|
734
|
-
}
|
|
735
|
-
|
|
736
|
-
.branch-summary-header {
|
|
737
|
-
font-weight: bold;
|
|
738
|
-
color: var(--borderAccent);
|
|
884
|
+
font-size: 10px;
|
|
885
|
+
font-weight: 600;
|
|
886
|
+
letter-spacing: 0.06em;
|
|
887
|
+
text-transform: uppercase;
|
|
888
|
+
color: var(--customMessageLabel, var(--muted));
|
|
889
|
+
margin-bottom: 2px;
|
|
739
890
|
}
|
|
740
891
|
|
|
741
892
|
/* Error */
|
|
742
893
|
.error-text {
|
|
743
894
|
color: var(--error);
|
|
744
|
-
padding: 0
|
|
745
|
-
}
|
|
746
|
-
.tool-error {
|
|
747
|
-
color: var(--error);
|
|
748
|
-
}
|
|
749
|
-
|
|
750
|
-
/* Tool renderer extras */
|
|
751
|
-
.tool-meta {
|
|
752
|
-
margin-top: 4px;
|
|
753
|
-
}
|
|
754
|
-
|
|
755
|
-
.tool-badge {
|
|
756
|
-
display: inline-block;
|
|
757
|
-
padding: 0 6px;
|
|
758
|
-
margin-right: 4px;
|
|
759
|
-
border-radius: 3px;
|
|
760
|
-
background: rgba(255, 255, 255, 0.06);
|
|
761
|
-
color: var(--dim);
|
|
762
|
-
font-size: 11px;
|
|
763
|
-
font-weight: normal;
|
|
764
|
-
vertical-align: baseline;
|
|
765
|
-
}
|
|
766
|
-
|
|
767
|
-
.tool-pattern {
|
|
768
|
-
color: var(--warning);
|
|
769
|
-
}
|
|
770
|
-
|
|
771
|
-
.tool-intent {
|
|
772
|
-
color: var(--muted);
|
|
773
|
-
font-style: italic;
|
|
774
|
-
font-size: 11px;
|
|
775
|
-
margin-bottom: 4px;
|
|
776
|
-
opacity: 0.85;
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
.tool-args {
|
|
780
|
-
margin-top: 4px;
|
|
781
|
-
color: var(--toolOutput);
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
.tool-arg {
|
|
785
|
-
display: block;
|
|
786
|
-
line-height: var(--line-height);
|
|
787
|
-
white-space: pre-wrap;
|
|
788
|
-
word-break: break-word;
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
.tool-arg-key {
|
|
792
|
-
color: var(--dim);
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
.tool-arg-val {
|
|
796
|
-
color: var(--text);
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
.tool-cell {
|
|
800
|
-
margin-top: var(--line-height);
|
|
895
|
+
padding: 0 2px;
|
|
801
896
|
}
|
|
802
897
|
|
|
803
|
-
.
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
}
|
|
813
|
-
|
|
814
|
-
.todo-phase {
|
|
815
|
-
margin-top: 6px;
|
|
816
|
-
color: var(--accent);
|
|
817
|
-
font-weight: bold;
|
|
818
|
-
}
|
|
819
|
-
|
|
820
|
-
.todo-task {
|
|
821
|
-
padding-left: 12px;
|
|
822
|
-
line-height: var(--line-height);
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
.todo-icon {
|
|
826
|
-
display: inline-block;
|
|
827
|
-
width: 14px;
|
|
828
|
-
text-align: center;
|
|
829
|
-
color: var(--dim);
|
|
898
|
+
/* Share viewer fetch/decrypt failure (template.js showLoadError) */
|
|
899
|
+
.share-load-error {
|
|
900
|
+
margin: 36px auto;
|
|
901
|
+
max-width: 640px;
|
|
902
|
+
padding: 14px 16px;
|
|
903
|
+
background: color-mix(in srgb, var(--error) 7%, transparent);
|
|
904
|
+
border: 1px solid color-mix(in srgb, var(--error) 40%, transparent);
|
|
905
|
+
border-radius: var(--radius-card);
|
|
906
|
+
color: var(--error);
|
|
830
907
|
}
|
|
831
908
|
|
|
832
|
-
.todo-completed { color: var(--toolDiffAdded); }
|
|
833
|
-
.todo-completed .todo-icon { color: var(--toolDiffAdded); }
|
|
834
|
-
.todo-in_progress { color: var(--warning); }
|
|
835
|
-
.todo-in_progress .todo-icon { color: var(--warning); }
|
|
836
|
-
.todo-abandoned { color: var(--toolDiffRemoved); }
|
|
837
|
-
.todo-abandoned .todo-icon { color: var(--toolDiffRemoved); }
|
|
838
|
-
.todo-pending { color: var(--toolOutput); }
|
|
839
|
-
|
|
840
909
|
/* Images */
|
|
841
910
|
.message-images {
|
|
842
|
-
|
|
911
|
+
display: flex;
|
|
912
|
+
flex-wrap: wrap;
|
|
913
|
+
gap: 8px;
|
|
914
|
+
margin-bottom: 10px;
|
|
843
915
|
}
|
|
844
916
|
|
|
845
917
|
.message-image {
|
|
846
918
|
max-width: 100%;
|
|
847
919
|
max-height: 400px;
|
|
848
|
-
border-radius:
|
|
849
|
-
|
|
920
|
+
border-radius: var(--radius-ctl);
|
|
921
|
+
border: 1px solid var(--hairline);
|
|
922
|
+
margin: 0;
|
|
923
|
+
}
|
|
924
|
+
|
|
925
|
+
/* ================= Markdown content ================= */
|
|
926
|
+
|
|
927
|
+
.markdown-content {
|
|
928
|
+
overflow-wrap: anywhere;
|
|
850
929
|
}
|
|
851
930
|
|
|
852
|
-
/* Markdown content */
|
|
853
931
|
.markdown-content h1,
|
|
854
932
|
.markdown-content h2,
|
|
855
933
|
.markdown-content h3,
|
|
856
934
|
.markdown-content h4,
|
|
857
935
|
.markdown-content h5,
|
|
858
936
|
.markdown-content h6 {
|
|
859
|
-
color: var(--mdHeading);
|
|
860
|
-
margin: var(--line-height) 0
|
|
861
|
-
font-weight:
|
|
937
|
+
color: var(--mdHeading, var(--text));
|
|
938
|
+
margin: var(--line-height) 0 4px 0;
|
|
939
|
+
font-weight: 650;
|
|
940
|
+
line-height: 1.4;
|
|
862
941
|
}
|
|
863
942
|
|
|
864
|
-
.markdown-content h1
|
|
865
|
-
.markdown-content h2
|
|
866
|
-
.markdown-content h3 {
|
|
943
|
+
.markdown-content h1:first-child,
|
|
944
|
+
.markdown-content h2:first-child,
|
|
945
|
+
.markdown-content h3:first-child {
|
|
946
|
+
margin-top: 0;
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
.markdown-content h1 { font-size: 1.25em; }
|
|
950
|
+
.markdown-content h2 { font-size: 1.15em; }
|
|
951
|
+
.markdown-content h3 { font-size: 1.05em; }
|
|
867
952
|
.markdown-content h4 { font-size: 1em; }
|
|
868
953
|
.markdown-content h5 { font-size: 1em; }
|
|
869
|
-
.markdown-content h6 { font-size: 1em; }
|
|
954
|
+
.markdown-content h6 { font-size: 1em; letter-spacing: 0.04em; }
|
|
870
955
|
.markdown-content p { margin: 0; }
|
|
871
956
|
.markdown-content p + p { margin-top: var(--line-height); }
|
|
872
957
|
|
|
873
958
|
.markdown-content a {
|
|
874
|
-
color: var(--mdLink);
|
|
959
|
+
color: var(--mdLink, var(--accent));
|
|
875
960
|
text-decoration: underline;
|
|
961
|
+
text-decoration-color: color-mix(in srgb, var(--mdLink, var(--accent)) 45%, transparent);
|
|
962
|
+
text-underline-offset: 2px;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
.markdown-content a:hover {
|
|
966
|
+
text-decoration-color: currentColor;
|
|
876
967
|
}
|
|
877
968
|
|
|
878
969
|
.markdown-content code {
|
|
879
|
-
background:
|
|
880
|
-
color: var(--mdCode);
|
|
970
|
+
background: color-mix(in srgb, var(--text) 8%, transparent);
|
|
971
|
+
color: var(--mdCode, var(--text));
|
|
881
972
|
padding: 0 4px;
|
|
882
973
|
border-radius: 3px;
|
|
883
974
|
font-family: inherit;
|
|
975
|
+
font-size: 0.95em;
|
|
884
976
|
}
|
|
885
977
|
|
|
886
978
|
.markdown-content pre {
|
|
887
|
-
background:
|
|
888
|
-
|
|
979
|
+
background: var(--inset-bg);
|
|
980
|
+
border: 1px solid var(--hairline-soft);
|
|
981
|
+
border-radius: var(--radius-ctl);
|
|
982
|
+
padding: 8px 10px;
|
|
983
|
+
margin: 10px 0;
|
|
889
984
|
overflow-x: auto;
|
|
890
985
|
}
|
|
891
986
|
|
|
892
987
|
.markdown-content pre code {
|
|
893
988
|
display: block;
|
|
894
989
|
background: none;
|
|
990
|
+
padding: 0;
|
|
991
|
+
font-size: 11.5px;
|
|
895
992
|
color: var(--text);
|
|
896
993
|
}
|
|
897
994
|
|
|
898
995
|
.markdown-content blockquote {
|
|
899
|
-
border-left:
|
|
900
|
-
padding-left:
|
|
901
|
-
margin:
|
|
902
|
-
color: var(--mdQuote);
|
|
996
|
+
border-left: 2px solid var(--mdQuoteBorder, var(--hairline-strong));
|
|
997
|
+
padding-left: 12px;
|
|
998
|
+
margin: 10px 0;
|
|
999
|
+
color: var(--mdQuote, var(--muted));
|
|
903
1000
|
font-style: italic;
|
|
904
1001
|
}
|
|
905
1002
|
|
|
906
1003
|
.markdown-content ul,
|
|
907
1004
|
.markdown-content ol {
|
|
908
|
-
margin:
|
|
909
|
-
padding-left:
|
|
1005
|
+
margin: 8px 0;
|
|
1006
|
+
padding-left: 26px;
|
|
910
1007
|
}
|
|
911
1008
|
|
|
912
1009
|
.markdown-content li { margin: 0; }
|
|
913
|
-
.markdown-content li
|
|
1010
|
+
.markdown-content li + li { margin-top: 2px; }
|
|
1011
|
+
.markdown-content li::marker { color: var(--mdListBullet, var(--dim)); }
|
|
914
1012
|
|
|
915
1013
|
.markdown-content hr {
|
|
916
1014
|
border: none;
|
|
917
|
-
border-top: 1px solid var(--
|
|
918
|
-
margin:
|
|
1015
|
+
border-top: 1px solid var(--hairline);
|
|
1016
|
+
margin: 14px 0;
|
|
919
1017
|
}
|
|
920
1018
|
|
|
921
1019
|
.markdown-content table {
|
|
922
1020
|
border-collapse: collapse;
|
|
923
|
-
margin:
|
|
1021
|
+
margin: 10px 0;
|
|
924
1022
|
width: 100%;
|
|
1023
|
+
font-size: 11.5px;
|
|
925
1024
|
}
|
|
926
1025
|
|
|
927
1026
|
.markdown-content th,
|
|
928
1027
|
.markdown-content td {
|
|
929
|
-
border: 1px solid var(--
|
|
930
|
-
padding:
|
|
1028
|
+
border: 1px solid var(--hairline);
|
|
1029
|
+
padding: 5px 9px;
|
|
931
1030
|
text-align: left;
|
|
932
1031
|
}
|
|
933
1032
|
|
|
934
1033
|
.markdown-content th {
|
|
935
|
-
background:
|
|
936
|
-
font-weight:
|
|
1034
|
+
background: color-mix(in srgb, var(--text) 5%, transparent);
|
|
1035
|
+
font-weight: 600;
|
|
937
1036
|
}
|
|
938
1037
|
|
|
939
1038
|
.markdown-content img {
|
|
940
1039
|
max-width: 100%;
|
|
941
|
-
border-radius:
|
|
1040
|
+
border-radius: var(--radius-ctl);
|
|
1041
|
+
border: 1px solid var(--hairline);
|
|
942
1042
|
}
|
|
943
1043
|
|
|
944
|
-
/* Syntax highlighting */
|
|
1044
|
+
/* ================= Syntax highlighting ================= */
|
|
1045
|
+
|
|
945
1046
|
.hljs { background: transparent; color: var(--text); }
|
|
946
1047
|
.hljs-comment, .hljs-quote { color: var(--syntaxComment); }
|
|
947
1048
|
.hljs-keyword, .hljs-selector-tag { color: var(--syntaxKeyword); }
|
|
@@ -957,38 +1058,75 @@
|
|
|
957
1058
|
.hljs-punctuation { color: var(--syntaxPunctuation); }
|
|
958
1059
|
.hljs-subst { color: var(--text); }
|
|
959
1060
|
|
|
960
|
-
/*
|
|
1061
|
+
/* ================= Image modal ================= */
|
|
1062
|
+
|
|
1063
|
+
.image-modal {
|
|
1064
|
+
display: none;
|
|
1065
|
+
position: fixed;
|
|
1066
|
+
inset: 0;
|
|
1067
|
+
z-index: 200;
|
|
1068
|
+
align-items: center;
|
|
1069
|
+
justify-content: center;
|
|
1070
|
+
padding: 32px;
|
|
1071
|
+
background: color-mix(in srgb, var(--body-bg) 72%, transparent);
|
|
1072
|
+
backdrop-filter: blur(3px);
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
.image-modal.open {
|
|
1076
|
+
display: flex;
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
.image-modal img {
|
|
1080
|
+
max-width: 100%;
|
|
1081
|
+
max-height: 100%;
|
|
1082
|
+
border-radius: var(--radius-card);
|
|
1083
|
+
border: 1px solid var(--hairline-strong);
|
|
1084
|
+
box-shadow: 0 16px 48px color-mix(in srgb, var(--text) 12%, transparent);
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
/* ================= Footer ================= */
|
|
1088
|
+
|
|
961
1089
|
.footer {
|
|
962
1090
|
margin-top: 48px;
|
|
963
|
-
padding:
|
|
1091
|
+
padding: 16px 0 8px;
|
|
964
1092
|
text-align: center;
|
|
965
1093
|
color: var(--dim);
|
|
966
1094
|
font-size: 10px;
|
|
1095
|
+
border-top: 1px solid var(--hairline-soft);
|
|
967
1096
|
}
|
|
968
1097
|
|
|
969
|
-
/* Mobile */
|
|
1098
|
+
/* ================= Mobile chrome ================= */
|
|
1099
|
+
|
|
970
1100
|
#hamburger {
|
|
971
1101
|
display: none;
|
|
972
1102
|
position: fixed;
|
|
973
1103
|
top: 10px;
|
|
974
1104
|
left: 10px;
|
|
975
1105
|
z-index: 100;
|
|
976
|
-
|
|
1106
|
+
width: 28px;
|
|
1107
|
+
height: 28px;
|
|
1108
|
+
padding: 0;
|
|
977
1109
|
font-size: 12px;
|
|
978
1110
|
font-family: inherit;
|
|
979
|
-
background: transparent;
|
|
1111
|
+
background: color-mix(in srgb, var(--body-bg) 80%, transparent);
|
|
1112
|
+
backdrop-filter: blur(3px);
|
|
980
1113
|
color: var(--muted);
|
|
981
|
-
border: 1px solid var(--
|
|
982
|
-
border-radius:
|
|
1114
|
+
border: 1px solid var(--hairline);
|
|
1115
|
+
border-radius: var(--radius-ctl);
|
|
983
1116
|
cursor: pointer;
|
|
1117
|
+
align-items: center;
|
|
1118
|
+
justify-content: center;
|
|
1119
|
+
transition: color 0.12s ease, background 0.12s ease, transform 0.08s ease;
|
|
984
1120
|
}
|
|
985
1121
|
|
|
986
1122
|
#hamburger:hover {
|
|
987
1123
|
color: var(--text);
|
|
988
|
-
|
|
1124
|
+
background: var(--hover-wash);
|
|
989
1125
|
}
|
|
990
1126
|
|
|
991
|
-
|
|
1127
|
+
#hamburger:active {
|
|
1128
|
+
transform: scale(0.95);
|
|
1129
|
+
}
|
|
992
1130
|
|
|
993
1131
|
#sidebar-overlay {
|
|
994
1132
|
display: none;
|
|
@@ -997,7 +1135,8 @@
|
|
|
997
1135
|
left: 0;
|
|
998
1136
|
right: 0;
|
|
999
1137
|
bottom: 0;
|
|
1000
|
-
background:
|
|
1138
|
+
background: color-mix(in srgb, var(--body-bg) 55%, transparent);
|
|
1139
|
+
backdrop-filter: blur(2px);
|
|
1001
1140
|
z-index: 98;
|
|
1002
1141
|
}
|
|
1003
1142
|
|
|
@@ -1012,7 +1151,8 @@
|
|
|
1012
1151
|
bottom: 0;
|
|
1013
1152
|
height: 100vh;
|
|
1014
1153
|
z-index: 99;
|
|
1015
|
-
transition: transform 0.
|
|
1154
|
+
transition: transform 0.25s ease;
|
|
1155
|
+
box-shadow: 8px 0 32px color-mix(in srgb, var(--text) 10%, transparent);
|
|
1016
1156
|
}
|
|
1017
1157
|
|
|
1018
1158
|
#sidebar.open {
|
|
@@ -1024,7 +1164,7 @@
|
|
|
1024
1164
|
}
|
|
1025
1165
|
|
|
1026
1166
|
#hamburger {
|
|
1027
|
-
display:
|
|
1167
|
+
display: flex;
|
|
1028
1168
|
}
|
|
1029
1169
|
|
|
1030
1170
|
.sidebar-close {
|
|
@@ -1036,7 +1176,7 @@
|
|
|
1036
1176
|
}
|
|
1037
1177
|
|
|
1038
1178
|
#content {
|
|
1039
|
-
padding:
|
|
1179
|
+
padding: 48px 14px 32px;
|
|
1040
1180
|
}
|
|
1041
1181
|
|
|
1042
1182
|
#content > * {
|
|
@@ -1044,8 +1184,154 @@
|
|
|
1044
1184
|
}
|
|
1045
1185
|
}
|
|
1046
1186
|
|
|
1187
|
+
/* ================= Motion & print ================= */
|
|
1188
|
+
|
|
1189
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1190
|
+
*, *::before, *::after {
|
|
1191
|
+
animation-duration: 0.01ms !important;
|
|
1192
|
+
animation-iteration-count: 1 !important;
|
|
1193
|
+
transition-duration: 0.01ms !important;
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
.filter-btn:active,
|
|
1197
|
+
.sidebar-close:active,
|
|
1198
|
+
.copy-link-btn:active,
|
|
1199
|
+
#hamburger:active {
|
|
1200
|
+
transform: none;
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1047
1204
|
@media print {
|
|
1048
|
-
#sidebar, #sidebar-toggle, #sidebar-resizer { display: none !important; }
|
|
1205
|
+
#sidebar, #sidebar-toggle, #sidebar-resizer, #hamburger, .copy-link-btn { display: none !important; }
|
|
1049
1206
|
body { background: white; color: black; }
|
|
1050
|
-
#content { max-width: none; }
|
|
1207
|
+
#content { max-width: none; padding: 0; }
|
|
1208
|
+
.user-message, .tool-execution, .compaction, .branch-summary, .hook-message { break-inside: avoid; }
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
/* ==== sub-session overlay (owned by template.js) ==== */
|
|
1212
|
+
|
|
1213
|
+
#subsession-overlay {
|
|
1214
|
+
position: fixed;
|
|
1215
|
+
inset: 0;
|
|
1216
|
+
z-index: 1000;
|
|
1217
|
+
display: none;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
#subsession-overlay.open {
|
|
1221
|
+
display: block;
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
.subsession-backdrop {
|
|
1225
|
+
position: absolute;
|
|
1226
|
+
inset: 0;
|
|
1227
|
+
background: color-mix(in srgb, var(--body-bg) 55%, transparent);
|
|
1228
|
+
backdrop-filter: blur(3px);
|
|
1229
|
+
-webkit-backdrop-filter: blur(3px);
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
.subsession-panel {
|
|
1233
|
+
position: absolute;
|
|
1234
|
+
top: 50%;
|
|
1235
|
+
left: 50%;
|
|
1236
|
+
transform: translate(-50%, -50%);
|
|
1237
|
+
display: flex;
|
|
1238
|
+
flex-direction: column;
|
|
1239
|
+
width: min(1100px, 92vw);
|
|
1240
|
+
max-height: 90vh;
|
|
1241
|
+
background: var(--container-bg);
|
|
1242
|
+
border: 1px solid var(--border);
|
|
1243
|
+
border-radius: 8px;
|
|
1244
|
+
box-shadow: 0 24px 64px color-mix(in srgb, var(--body-bg) 70%, transparent);
|
|
1245
|
+
outline: none;
|
|
1246
|
+
overflow: hidden;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
.subsession-header {
|
|
1250
|
+
display: flex;
|
|
1251
|
+
align-items: center;
|
|
1252
|
+
justify-content: space-between;
|
|
1253
|
+
gap: 12px;
|
|
1254
|
+
padding: 10px 14px;
|
|
1255
|
+
border-bottom: 1px solid var(--border);
|
|
1256
|
+
flex: none;
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
.subsession-breadcrumb {
|
|
1260
|
+
display: flex;
|
|
1261
|
+
align-items: center;
|
|
1262
|
+
flex-wrap: wrap;
|
|
1263
|
+
gap: 6px;
|
|
1264
|
+
min-width: 0;
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1267
|
+
.subsession-crumb {
|
|
1268
|
+
font: inherit;
|
|
1269
|
+
color: var(--accent);
|
|
1270
|
+
background: color-mix(in srgb, var(--accent) 12%, transparent);
|
|
1271
|
+
border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
|
|
1272
|
+
border-radius: 6px;
|
|
1273
|
+
padding: 1px 8px;
|
|
1274
|
+
max-width: 240px;
|
|
1275
|
+
overflow: hidden;
|
|
1276
|
+
text-overflow: ellipsis;
|
|
1277
|
+
white-space: nowrap;
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
button.subsession-crumb {
|
|
1281
|
+
cursor: pointer;
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
button.subsession-crumb:hover {
|
|
1285
|
+
background: color-mix(in srgb, var(--accent) 22%, transparent);
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
.subsession-crumb.current {
|
|
1289
|
+
color: var(--text);
|
|
1290
|
+
background: transparent;
|
|
1291
|
+
border-color: var(--border);
|
|
1292
|
+
font-weight: bold;
|
|
1293
|
+
}
|
|
1294
|
+
|
|
1295
|
+
.subsession-crumb-sep {
|
|
1296
|
+
color: var(--muted);
|
|
1297
|
+
flex: none;
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1300
|
+
.subsession-close {
|
|
1301
|
+
font: inherit;
|
|
1302
|
+
font-size: 14px;
|
|
1303
|
+
line-height: 1;
|
|
1304
|
+
color: var(--muted);
|
|
1305
|
+
background: transparent;
|
|
1306
|
+
border: 1px solid var(--border);
|
|
1307
|
+
border-radius: 6px;
|
|
1308
|
+
width: 24px;
|
|
1309
|
+
height: 24px;
|
|
1310
|
+
flex: none;
|
|
1311
|
+
cursor: pointer;
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
.subsession-close:hover,
|
|
1315
|
+
.subsession-close:focus-visible {
|
|
1316
|
+
color: var(--text);
|
|
1317
|
+
border-color: var(--accent);
|
|
1318
|
+
}
|
|
1319
|
+
|
|
1320
|
+
.subsession-meta {
|
|
1321
|
+
padding: 4px 14px;
|
|
1322
|
+
color: var(--muted);
|
|
1323
|
+
font-size: 11px;
|
|
1324
|
+
border-bottom: 1px solid var(--border);
|
|
1325
|
+
flex: none;
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
.subsession-body {
|
|
1329
|
+
flex: 1 1 auto;
|
|
1330
|
+
overflow-y: auto;
|
|
1331
|
+
padding: 14px;
|
|
1332
|
+
overscroll-behavior: contain;
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
.subsession-empty {
|
|
1336
|
+
color: var(--muted);
|
|
1051
1337
|
}
|