codexmate 0.0.31 → 0.0.33
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/README.md +92 -308
- package/README.zh.md +94 -318
- package/cli/local-bridge.js +227 -0
- package/cli/update.js +162 -0
- package/cli.js +357 -112
- package/lib/cli-sessions.js +16 -6
- package/lib/win-tray.js +119 -0
- package/package.json +2 -2
- package/web-ui/app.js +4 -0
- package/web-ui/logic.sessions.mjs +17 -1
- package/web-ui/modules/app.computed.session.mjs +51 -315
- package/web-ui/modules/app.methods.agents.mjs +19 -0
- package/web-ui/modules/app.methods.claude-config.mjs +71 -2
- package/web-ui/modules/app.methods.codex-config.mjs +20 -0
- package/web-ui/modules/app.methods.providers.mjs +53 -7
- package/web-ui/modules/app.methods.session-actions.mjs +1 -1
- package/web-ui/modules/app.methods.session-browser.mjs +29 -1
- package/web-ui/modules/app.methods.startup-claude.mjs +4 -0
- package/web-ui/modules/i18n.dict.mjs +21 -3
- package/web-ui/partials/index/layout-header.html +1 -2
- package/web-ui/partials/index/modal-config-template-agents.html +12 -1
- package/web-ui/partials/index/modals-basic.html +14 -3
- package/web-ui/partials/index/panel-config-claude.html +57 -85
- package/web-ui/partials/index/panel-config-codex.html +60 -226
- package/web-ui/partials/index/panel-dashboard.html +0 -33
- package/web-ui/partials/index/panel-docs.html +21 -53
- package/web-ui/partials/index/panel-sessions.html +37 -20
- package/web-ui/partials/index/panel-trash.html +33 -38
- package/web-ui/partials/index/panel-usage.html +71 -304
- package/web-ui/styles/controls-forms.css +11 -0
- package/web-ui/styles/docs-panel.css +57 -83
- package/web-ui/styles/layout-shell.css +26 -24
- package/web-ui/styles/modals-core.css +33 -0
- package/web-ui/styles/responsive.css +5 -67
- package/web-ui/styles/sessions-list.css +274 -8
- package/web-ui/styles/sessions-toolbar-trash.css +185 -15
- package/web-ui/styles/sessions-usage.css +336 -788
|
@@ -1,42 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
cursor: default;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.docs-mode-content * {
|
|
8
|
-
cursor: default;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.docs-mode-content button,
|
|
12
|
-
.docs-mode-content [role="button"] {
|
|
13
|
-
cursor: pointer;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.docs-mode-content input,
|
|
17
|
-
.docs-mode-content textarea {
|
|
18
|
-
cursor: text;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.docs-mode-content select {
|
|
22
|
-
cursor: pointer;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.docs-overview-section,
|
|
26
|
-
.docs-command-section,
|
|
27
|
-
.docs-help-section {
|
|
28
|
-
gap: 12px;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.docs-overview-header,
|
|
32
|
-
.docs-section-header {
|
|
33
|
-
align-items: flex-start;
|
|
34
|
-
}
|
|
1
|
+
/* ============================================
|
|
2
|
+
Docs / Install Panel — Refined
|
|
3
|
+
============================================ */
|
|
35
4
|
|
|
36
|
-
.docs-
|
|
37
|
-
|
|
5
|
+
.docs-mode-content {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
gap: 16px;
|
|
38
9
|
}
|
|
39
10
|
|
|
11
|
+
/* ---- Toolbar grid ---- */
|
|
40
12
|
.docs-toolbar-grid {
|
|
41
13
|
display: grid;
|
|
42
14
|
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
@@ -45,20 +17,20 @@
|
|
|
45
17
|
|
|
46
18
|
.docs-toolbar-card {
|
|
47
19
|
grid-column: span 4;
|
|
48
|
-
display:
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: column;
|
|
49
22
|
gap: 8px;
|
|
50
23
|
padding: 14px;
|
|
51
24
|
border: 1px solid var(--color-border-soft);
|
|
52
25
|
border-radius: var(--radius-md);
|
|
53
|
-
background:
|
|
54
|
-
box-shadow: var(--shadow-subtle);
|
|
55
|
-
backdrop-filter: blur(8px);
|
|
26
|
+
background: var(--color-surface);
|
|
56
27
|
}
|
|
57
28
|
|
|
58
29
|
.docs-toolbar-card-wide {
|
|
59
30
|
grid-column: span 8;
|
|
60
31
|
}
|
|
61
32
|
|
|
33
|
+
/* ---- Summary strip ---- */
|
|
62
34
|
.docs-summary-strip {
|
|
63
35
|
display: grid;
|
|
64
36
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
@@ -67,13 +39,13 @@
|
|
|
67
39
|
}
|
|
68
40
|
|
|
69
41
|
.docs-summary-item {
|
|
70
|
-
display:
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-direction: column;
|
|
71
44
|
gap: 4px;
|
|
72
|
-
padding:
|
|
45
|
+
padding: 14px 16px;
|
|
73
46
|
border: 1px solid var(--color-border-soft);
|
|
74
47
|
border-radius: var(--radius-md);
|
|
75
|
-
background:
|
|
76
|
-
box-shadow: var(--shadow-card);
|
|
48
|
+
background: var(--color-surface);
|
|
77
49
|
}
|
|
78
50
|
|
|
79
51
|
.docs-summary-item-wide {
|
|
@@ -86,39 +58,42 @@
|
|
|
86
58
|
color: var(--color-text-muted);
|
|
87
59
|
letter-spacing: 0.06em;
|
|
88
60
|
text-transform: uppercase;
|
|
89
|
-
opacity: 0.82;
|
|
90
61
|
}
|
|
91
62
|
|
|
92
63
|
.docs-summary-value {
|
|
93
|
-
font-size:
|
|
64
|
+
font-size: 18px;
|
|
94
65
|
font-weight: 700;
|
|
95
66
|
color: var(--color-text-primary);
|
|
96
|
-
line-height: 1.
|
|
97
|
-
word-break: break-word;
|
|
67
|
+
line-height: 1.2;
|
|
98
68
|
letter-spacing: -0.02em;
|
|
69
|
+
word-break: break-word;
|
|
99
70
|
}
|
|
100
71
|
|
|
72
|
+
/* ---- Install rows ---- */
|
|
101
73
|
.docs-install-list {
|
|
102
|
-
|
|
74
|
+
display: flex;
|
|
75
|
+
flex-direction: column;
|
|
76
|
+
gap: 10px;
|
|
103
77
|
}
|
|
104
78
|
|
|
105
79
|
.docs-install-row {
|
|
106
|
-
|
|
107
|
-
background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(255,251,247,0.78));
|
|
80
|
+
padding: 16px;
|
|
108
81
|
border: 1px solid var(--color-border-soft);
|
|
109
82
|
border-radius: var(--radius-md);
|
|
110
|
-
|
|
111
|
-
box-shadow: var(--shadow-card);
|
|
83
|
+
background: var(--color-surface);
|
|
112
84
|
}
|
|
113
85
|
|
|
114
86
|
.docs-command-head {
|
|
115
|
-
display:
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-direction: column;
|
|
116
89
|
gap: 6px;
|
|
90
|
+
margin-bottom: 10px;
|
|
117
91
|
}
|
|
118
92
|
|
|
119
93
|
.docs-command-row {
|
|
120
|
-
display:
|
|
121
|
-
|
|
94
|
+
display: flex;
|
|
95
|
+
flex-direction: column;
|
|
96
|
+
gap: 8px;
|
|
122
97
|
}
|
|
123
98
|
|
|
124
99
|
.docs-command-row-secondary {
|
|
@@ -126,28 +101,28 @@
|
|
|
126
101
|
}
|
|
127
102
|
|
|
128
103
|
.docs-command-box {
|
|
129
|
-
display:
|
|
130
|
-
|
|
131
|
-
align-items: stretch;
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: center;
|
|
132
106
|
gap: 10px;
|
|
133
107
|
padding: 10px 10px 10px 14px;
|
|
134
108
|
border: 1px solid var(--color-border-soft);
|
|
135
109
|
border-radius: var(--radius-sm);
|
|
136
|
-
background:
|
|
137
|
-
box-shadow: var(--shadow-subtle);
|
|
110
|
+
background: var(--color-surface-alt);
|
|
138
111
|
}
|
|
139
112
|
|
|
140
|
-
.docs-command-
|
|
113
|
+
.docs-command-box .install-command {
|
|
114
|
+
flex: 1;
|
|
141
115
|
min-width: 0;
|
|
142
|
-
padding:
|
|
116
|
+
padding: 8px 12px;
|
|
143
117
|
border-radius: var(--radius-sm);
|
|
144
|
-
background:
|
|
145
|
-
border: 1px solid
|
|
118
|
+
background: var(--color-surface);
|
|
119
|
+
border: 1px solid var(--color-border-soft);
|
|
146
120
|
overflow-x: auto;
|
|
147
121
|
white-space: nowrap;
|
|
148
|
-
user-select: text;
|
|
149
122
|
font-size: 13px;
|
|
150
123
|
line-height: 1.5;
|
|
124
|
+
font-family: var(--font-family-mono);
|
|
125
|
+
user-select: all;
|
|
151
126
|
}
|
|
152
127
|
|
|
153
128
|
.docs-command-prefix {
|
|
@@ -167,7 +142,7 @@
|
|
|
167
142
|
.docs-command-meta {
|
|
168
143
|
display: flex;
|
|
169
144
|
flex-wrap: wrap;
|
|
170
|
-
gap: 6px
|
|
145
|
+
gap: 6px;
|
|
171
146
|
font-size: 11px;
|
|
172
147
|
color: var(--color-text-tertiary);
|
|
173
148
|
}
|
|
@@ -175,25 +150,24 @@
|
|
|
175
150
|
.docs-meta-pill {
|
|
176
151
|
display: inline-flex;
|
|
177
152
|
align-items: center;
|
|
178
|
-
padding:
|
|
153
|
+
padding: 2px 8px;
|
|
179
154
|
border-radius: 999px;
|
|
180
155
|
border: 1px solid var(--color-border-soft);
|
|
181
|
-
background:
|
|
156
|
+
background: var(--color-surface-alt);
|
|
182
157
|
font-size: 11px;
|
|
183
158
|
font-weight: 600;
|
|
184
159
|
color: var(--color-text-secondary);
|
|
185
|
-
letter-spacing: 0.01em;
|
|
186
160
|
}
|
|
187
161
|
|
|
188
162
|
.docs-copy-btn {
|
|
189
|
-
|
|
190
|
-
min-
|
|
191
|
-
|
|
163
|
+
flex-shrink: 0;
|
|
164
|
+
min-width: 64px;
|
|
165
|
+
height: 36px;
|
|
192
166
|
border-radius: var(--radius-sm);
|
|
193
167
|
font-weight: 600;
|
|
194
|
-
letter-spacing: 0.01em;
|
|
195
168
|
}
|
|
196
169
|
|
|
170
|
+
/* ---- Help section ---- */
|
|
197
171
|
.docs-help-grid {
|
|
198
172
|
display: grid;
|
|
199
173
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
@@ -204,8 +178,7 @@
|
|
|
204
178
|
padding: 16px;
|
|
205
179
|
border: 1px solid var(--color-border-soft);
|
|
206
180
|
border-radius: var(--radius-md);
|
|
207
|
-
background:
|
|
208
|
-
box-shadow: var(--shadow-card);
|
|
181
|
+
background: var(--color-surface);
|
|
209
182
|
}
|
|
210
183
|
|
|
211
184
|
.docs-note-title {
|
|
@@ -213,11 +186,10 @@
|
|
|
213
186
|
font-weight: 700;
|
|
214
187
|
color: var(--color-text-primary);
|
|
215
188
|
margin-bottom: 10px;
|
|
216
|
-
letter-spacing: -0.02em;
|
|
217
189
|
}
|
|
218
190
|
|
|
219
191
|
.docs-help-list {
|
|
220
|
-
margin
|
|
192
|
+
margin: 0;
|
|
221
193
|
}
|
|
222
194
|
|
|
223
195
|
.docs-static-list {
|
|
@@ -232,6 +204,11 @@
|
|
|
232
204
|
margin-top: 8px;
|
|
233
205
|
}
|
|
234
206
|
|
|
207
|
+
.docs-section-note {
|
|
208
|
+
margin-top: 4px;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/* ---- Responsive ---- */
|
|
235
212
|
@media (max-width: 1100px) {
|
|
236
213
|
.docs-toolbar-card,
|
|
237
214
|
.docs-toolbar-card-wide {
|
|
@@ -257,12 +234,9 @@
|
|
|
257
234
|
grid-column: span 1;
|
|
258
235
|
}
|
|
259
236
|
|
|
260
|
-
.docs-command-row {
|
|
261
|
-
gap: 8px;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
237
|
.docs-command-box {
|
|
265
|
-
|
|
238
|
+
flex-direction: column;
|
|
239
|
+
align-items: stretch;
|
|
266
240
|
}
|
|
267
241
|
|
|
268
242
|
.docs-copy-btn {
|
|
@@ -55,7 +55,6 @@ body::after {
|
|
|
55
55
|
border-radius: 0;
|
|
56
56
|
box-shadow: 8px 0 28px rgba(92, 68, 52, 0.05), 1px 0 0 rgba(255, 255, 255, 0.5);
|
|
57
57
|
min-height: 100vh;
|
|
58
|
-
overflow-y: auto;
|
|
59
58
|
scrollbar-width: none;
|
|
60
59
|
-ms-overflow-style: none;
|
|
61
60
|
backdrop-filter: blur(18px) saturate(130%);
|
|
@@ -65,11 +64,6 @@ body::after {
|
|
|
65
64
|
display: none;
|
|
66
65
|
}
|
|
67
66
|
|
|
68
|
-
.side-rail .brand-title {
|
|
69
|
-
font-size: 22px;
|
|
70
|
-
margin-bottom: 0;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
67
|
.side-section {
|
|
74
68
|
display: flex;
|
|
75
69
|
flex-direction: column;
|
|
@@ -84,8 +78,15 @@ body::after {
|
|
|
84
78
|
.side-rail-nav {
|
|
85
79
|
display: flex;
|
|
86
80
|
flex-direction: column;
|
|
87
|
-
gap: 0;
|
|
88
81
|
flex: 1 1 auto;
|
|
82
|
+
gap: 0;
|
|
83
|
+
overflow-y: auto;
|
|
84
|
+
scrollbar-width: none;
|
|
85
|
+
-ms-overflow-style: none;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.side-rail-nav::-webkit-scrollbar {
|
|
89
|
+
display: none;
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
.lang-fab {
|
|
@@ -168,7 +169,6 @@ body::after {
|
|
|
168
169
|
transform: none;
|
|
169
170
|
z-index: 60;
|
|
170
171
|
pointer-events: none;
|
|
171
|
-
display: flex;
|
|
172
172
|
justify-content: center;
|
|
173
173
|
}
|
|
174
174
|
|
|
@@ -206,16 +206,19 @@ body::after {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
.side-rail-lang {
|
|
209
|
-
position:
|
|
209
|
+
position: absolute;
|
|
210
210
|
bottom: 0;
|
|
211
|
+
left: 0;
|
|
212
|
+
right: 0;
|
|
211
213
|
z-index: 2;
|
|
212
|
-
margin-top: auto;
|
|
213
214
|
padding: 10px 4px 6px;
|
|
214
215
|
background: linear-gradient(180deg, rgba(255, 248, 241, 0), rgba(255, 248, 241, 0.94) 28%);
|
|
215
216
|
border-top: 1px solid rgba(137, 111, 94, 0.08);
|
|
216
217
|
backdrop-filter: blur(12px);
|
|
217
218
|
display: flex;
|
|
218
|
-
|
|
219
|
+
flex-direction: column;
|
|
220
|
+
align-items: center;
|
|
221
|
+
gap: 4px;
|
|
219
222
|
}
|
|
220
223
|
|
|
221
224
|
.side-rail-lang .lang-choice {
|
|
@@ -453,12 +456,20 @@ body::after {
|
|
|
453
456
|
}
|
|
454
457
|
|
|
455
458
|
.brand-kicker {
|
|
459
|
+
font-size: 18px;
|
|
460
|
+
line-height: 1.15;
|
|
461
|
+
font-family: var(--font-family-display);
|
|
462
|
+
color: var(--color-text-primary);
|
|
463
|
+
letter-spacing: -0.02em;
|
|
464
|
+
font-weight: 700;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
.brand-version {
|
|
456
468
|
font-size: 11px;
|
|
457
|
-
|
|
458
|
-
letter-spacing: 0.06em;
|
|
459
|
-
text-transform: uppercase;
|
|
469
|
+
font-weight: 500;
|
|
460
470
|
color: var(--color-text-muted);
|
|
461
|
-
|
|
471
|
+
vertical-align: middle;
|
|
472
|
+
margin-left: 4px;
|
|
462
473
|
}
|
|
463
474
|
|
|
464
475
|
.brand-subtitle {
|
|
@@ -468,15 +479,6 @@ body::after {
|
|
|
468
479
|
max-width: 22ch;
|
|
469
480
|
}
|
|
470
481
|
|
|
471
|
-
.brand-title {
|
|
472
|
-
font-size: 18px;
|
|
473
|
-
line-height: 1.15;
|
|
474
|
-
font-family: var(--font-family-display);
|
|
475
|
-
color: var(--color-text-primary);
|
|
476
|
-
letter-spacing: -0.02em;
|
|
477
|
-
font-weight: 700;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
482
|
.github-badge {
|
|
481
483
|
display: inline-flex;
|
|
482
484
|
align-items: center;
|
|
@@ -266,6 +266,39 @@
|
|
|
266
266
|
opacity: 0.7;
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
+
.input-with-toggle {
|
|
270
|
+
position: relative;
|
|
271
|
+
display: flex;
|
|
272
|
+
align-items: center;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.input-with-toggle .form-input {
|
|
276
|
+
width: 100%;
|
|
277
|
+
padding-right: 36px;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.input-toggle-btn {
|
|
281
|
+
position: absolute;
|
|
282
|
+
right: 6px;
|
|
283
|
+
display: flex;
|
|
284
|
+
align-items: center;
|
|
285
|
+
justify-content: center;
|
|
286
|
+
width: 28px;
|
|
287
|
+
height: 28px;
|
|
288
|
+
padding: 0;
|
|
289
|
+
border: none;
|
|
290
|
+
border-radius: var(--radius-sm);
|
|
291
|
+
background: transparent;
|
|
292
|
+
color: var(--color-text-secondary);
|
|
293
|
+
cursor: pointer;
|
|
294
|
+
transition: color var(--transition-fast);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.input-toggle-btn:hover {
|
|
298
|
+
color: var(--color-text-primary);
|
|
299
|
+
background: var(--color-surface-alt);
|
|
300
|
+
}
|
|
301
|
+
|
|
269
302
|
.form-select {
|
|
270
303
|
width: 100%;
|
|
271
304
|
min-height: 44px;
|
|
@@ -284,81 +284,19 @@ textarea:focus-visible {
|
|
|
284
284
|
align-items: center;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
-
.trash-item
|
|
288
|
-
min-height: auto;
|
|
289
|
-
height: auto;
|
|
290
|
-
contain-intrinsic-size: auto;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
.trash-item-header {
|
|
287
|
+
.trash-item-body {
|
|
294
288
|
flex-direction: column;
|
|
295
289
|
align-items: stretch;
|
|
296
290
|
gap: 10px;
|
|
297
291
|
}
|
|
298
292
|
|
|
299
|
-
.trash-item-mainline {
|
|
300
|
-
flex-direction: column;
|
|
301
|
-
align-items: flex-start;
|
|
302
|
-
gap: 6px;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
.trash-item-side {
|
|
306
|
-
width: 100%;
|
|
307
|
-
min-width: 0;
|
|
308
|
-
align-items: stretch;
|
|
309
|
-
gap: 10px;
|
|
310
|
-
padding-top: 8px;
|
|
311
|
-
border-top: 1px dashed rgba(216, 201, 184, 0.55);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
293
|
.trash-item-actions {
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
justify-content: flex-start;
|
|
318
|
-
width: 100%;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
.trash-item-actions .btn-mini {
|
|
322
|
-
width: 100%;
|
|
323
|
-
height: 44px;
|
|
324
|
-
min-height: 44px;
|
|
325
|
-
padding: 0 10px;
|
|
326
|
-
display: inline-flex;
|
|
327
|
-
align-items: center;
|
|
328
|
-
justify-content: center;
|
|
329
|
-
line-height: 1;
|
|
330
|
-
white-space: nowrap;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
.trash-item .session-count-badge {
|
|
334
|
-
align-self: flex-start;
|
|
335
|
-
margin-top: 0;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
.trash-item-title {
|
|
339
|
-
-webkit-line-clamp: 3;
|
|
340
|
-
max-height: none;
|
|
341
|
-
white-space: normal;
|
|
342
|
-
text-overflow: clip;
|
|
343
|
-
overflow: hidden;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
.trash-item-meta {
|
|
347
|
-
margin-top: 6px;
|
|
348
|
-
margin-bottom: 0;
|
|
349
|
-
gap: 6px;
|
|
350
|
-
align-items: center;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
.trash-item-time {
|
|
354
|
-
padding-top: 2px;
|
|
355
|
-
line-height: 1.35;
|
|
356
|
-
text-align: right;
|
|
294
|
+
opacity: 1;
|
|
295
|
+
justify-content: flex-end;
|
|
357
296
|
}
|
|
358
297
|
|
|
359
|
-
.trash-item-
|
|
360
|
-
|
|
361
|
-
gap: 4px;
|
|
298
|
+
.trash-item-cwd {
|
|
299
|
+
max-width: 140px;
|
|
362
300
|
}
|
|
363
301
|
|
|
364
302
|
.card {
|