codexmate 0.0.18 → 0.0.20

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.
Files changed (73) hide show
  1. package/README.en.md +34 -17
  2. package/README.md +34 -25
  3. package/cli/config-health.js +338 -0
  4. package/cli.js +1570 -839
  5. package/lib/cli-models-utils.js +186 -27
  6. package/lib/cli-network-utils.js +117 -101
  7. package/package.json +8 -1
  8. package/web-ui/app.js +379 -5754
  9. package/web-ui/index.html +15 -2079
  10. package/web-ui/logic.agents-diff.mjs +386 -0
  11. package/web-ui/logic.claude.mjs +108 -0
  12. package/web-ui/logic.mjs +5 -793
  13. package/web-ui/logic.runtime.mjs +124 -0
  14. package/web-ui/logic.sessions.mjs +263 -0
  15. package/web-ui/modules/api.mjs +69 -0
  16. package/web-ui/modules/app.computed.dashboard.mjs +113 -0
  17. package/web-ui/modules/app.computed.index.mjs +13 -0
  18. package/web-ui/modules/app.computed.session.mjs +141 -0
  19. package/web-ui/modules/app.constants.mjs +15 -0
  20. package/web-ui/modules/app.methods.agents.mjs +493 -0
  21. package/web-ui/modules/app.methods.claude-config.mjs +174 -0
  22. package/web-ui/modules/app.methods.codex-config.mjs +640 -0
  23. package/web-ui/modules/app.methods.index.mjs +86 -0
  24. package/web-ui/modules/app.methods.install.mjs +157 -0
  25. package/web-ui/modules/app.methods.navigation.mjs +478 -0
  26. package/web-ui/modules/app.methods.openclaw-core.mjs +514 -0
  27. package/web-ui/modules/app.methods.openclaw-editing.mjs +337 -0
  28. package/web-ui/modules/app.methods.openclaw-persist.mjs +251 -0
  29. package/web-ui/modules/app.methods.providers.mjs +265 -0
  30. package/web-ui/modules/app.methods.runtime.mjs +323 -0
  31. package/web-ui/modules/app.methods.session-actions.mjs +457 -0
  32. package/web-ui/modules/app.methods.session-browser.mjs +435 -0
  33. package/web-ui/modules/app.methods.session-timeline.mjs +441 -0
  34. package/web-ui/modules/app.methods.session-trash.mjs +419 -0
  35. package/web-ui/modules/app.methods.startup-claude.mjs +406 -0
  36. package/web-ui/modules/config-mode.computed.mjs +1 -0
  37. package/web-ui/modules/skills.computed.mjs +26 -1
  38. package/web-ui/modules/skills.methods.mjs +154 -23
  39. package/web-ui/partials/index/layout-footer.html +69 -0
  40. package/web-ui/partials/index/layout-header.html +337 -0
  41. package/web-ui/partials/index/modal-config-template-agents.html +125 -0
  42. package/web-ui/partials/index/modal-confirm-toast.html +32 -0
  43. package/web-ui/partials/index/modal-health-check.html +72 -0
  44. package/web-ui/partials/index/modal-openclaw-config.html +275 -0
  45. package/web-ui/partials/index/modal-skills.html +184 -0
  46. package/web-ui/partials/index/modals-basic.html +196 -0
  47. package/web-ui/partials/index/panel-config-claude.html +100 -0
  48. package/web-ui/partials/index/panel-config-codex.html +237 -0
  49. package/web-ui/partials/index/panel-config-openclaw.html +84 -0
  50. package/web-ui/partials/index/panel-market.html +174 -0
  51. package/web-ui/partials/index/panel-sessions.html +387 -0
  52. package/web-ui/partials/index/panel-settings.html +166 -0
  53. package/web-ui/session-helpers.mjs +12 -0
  54. package/web-ui/source-bundle.cjs +233 -0
  55. package/web-ui/styles/base-theme.css +373 -0
  56. package/web-ui/styles/controls-forms.css +354 -0
  57. package/web-ui/styles/feedback.css +108 -0
  58. package/web-ui/styles/health-check-dialog.css +144 -0
  59. package/web-ui/styles/layout-shell.css +330 -0
  60. package/web-ui/styles/modals-core.css +449 -0
  61. package/web-ui/styles/navigation-panels.css +381 -0
  62. package/web-ui/styles/openclaw-structured.css +266 -0
  63. package/web-ui/styles/responsive.css +416 -0
  64. package/web-ui/styles/sessions-list.css +414 -0
  65. package/web-ui/styles/sessions-preview.css +405 -0
  66. package/web-ui/styles/sessions-toolbar-trash.css +243 -0
  67. package/web-ui/styles/sessions-usage.css +276 -0
  68. package/web-ui/styles/skills-list.css +298 -0
  69. package/web-ui/styles/skills-market.css +335 -0
  70. package/web-ui/styles/titles-cards.css +407 -0
  71. package/web-ui/styles.css +16 -4499
  72. package/doc/CHANGELOG.md +0 -32
  73. package/doc/CHANGELOG.zh-CN.md +0 -34
@@ -0,0 +1,416 @@
1
+ .content-wrapper {
2
+ min-height: 300px;
3
+ position: relative;
4
+ }
5
+
6
+ button:focus-visible,
7
+ select:focus-visible,
8
+ input:focus-visible,
9
+ textarea:focus-visible {
10
+ outline: 3px solid rgba(201, 94, 75, 0.25);
11
+ outline-offset: 2px;
12
+ }
13
+
14
+ @media (max-width: 1280px) {
15
+ .app-shell {
16
+ grid-template-columns: 240px minmax(0, 1fr) 300px;
17
+ gap: 14px;
18
+ }
19
+
20
+ .status-inspector {
21
+ top: 16px;
22
+ height: calc(100vh - 32px);
23
+ }
24
+
25
+ .main-panel {
26
+ padding: var(--spacing-sm) var(--spacing-md);
27
+ }
28
+ }
29
+
30
+ @media (max-width: 960px) {
31
+ .container {
32
+ padding: 12px;
33
+ }
34
+ .app-shell {
35
+ grid-template-columns: 1fr;
36
+ }
37
+ .side-rail {
38
+ display: none;
39
+ }
40
+ .status-inspector {
41
+ display: none;
42
+ }
43
+ .hero-logo {
44
+ display: block;
45
+ }
46
+ .hero-github {
47
+ display: flex;
48
+ }
49
+ .github-badge-mobile {
50
+ width: 100%;
51
+ }
52
+ .github-badge-mobile .github-badge-text,
53
+ .github-badge-mobile .github-badge-label {
54
+ font-size: var(--font-size-secondary);
55
+ }
56
+ .main-panel {
57
+ padding: var(--spacing-sm) var(--spacing-sm);
58
+ border-radius: 14px;
59
+ }
60
+ .top-tabs {
61
+ display: grid !important;
62
+ grid-template-columns: repeat(2, minmax(0, 1fr));
63
+ }
64
+ .status-strip {
65
+ gap: var(--spacing-sm);
66
+ margin-top: 4px;
67
+ }
68
+ .status-chip {
69
+ flex: 1 1 calc(50% - var(--spacing-sm));
70
+ min-width: 0;
71
+ }
72
+
73
+ .skills-summary-strip {
74
+ grid-template-columns: repeat(2, minmax(0, 1fr));
75
+ }
76
+
77
+ .skills-panel-header {
78
+ flex-direction: column;
79
+ align-items: stretch;
80
+ }
81
+
82
+ .skills-modal-actions {
83
+ align-items: flex-start;
84
+ }
85
+
86
+ .market-target-switch-compact {
87
+ justify-content: flex-start;
88
+ }
89
+ }
90
+
91
+ @media (max-width: 720px) {
92
+ .main-title {
93
+ font-size: 40px;
94
+ }
95
+
96
+ .hero-title {
97
+ font-size: 32px;
98
+ }
99
+
100
+ .subtitle {
101
+ font-size: var(--font-size-secondary);
102
+ margin-bottom: 16px;
103
+ }
104
+
105
+ .segmented-control {
106
+ flex-direction: column;
107
+ gap: 6px;
108
+ }
109
+
110
+ .status-strip {
111
+ flex-direction: row;
112
+ flex-wrap: wrap;
113
+ }
114
+
115
+ .market-grid {
116
+ grid-template-columns: 1fr;
117
+ }
118
+
119
+ .market-action-grid {
120
+ grid-template-columns: 1fr;
121
+ }
122
+
123
+ .status-chip {
124
+ flex: 1 1 100%;
125
+ }
126
+ }
127
+
128
+ @media (max-width: 540px) {
129
+ .trash-header-actions {
130
+ display: grid;
131
+ grid-template-columns: repeat(2, minmax(0, 1fr));
132
+ width: 100%;
133
+ }
134
+
135
+ .selector-header .trash-header-actions > .btn-tool,
136
+ .selector-header .trash-header-actions > .btn-tool-compact {
137
+ width: 100%;
138
+ min-width: 0;
139
+ height: 44px;
140
+ min-height: 44px;
141
+ }
142
+
143
+ body {
144
+ padding: var(--spacing-md) var(--spacing-sm);
145
+ }
146
+ .container {
147
+ padding: 0 var(--spacing-sm) var(--spacing-md);
148
+ }
149
+ .hero-title {
150
+ font-size: 32px;
151
+ }
152
+ .hero-subtitle {
153
+ font-size: var(--font-size-secondary);
154
+ }
155
+ .top-tabs {
156
+ grid-template-columns: repeat(1, minmax(0, 1fr));
157
+ }
158
+ .main-panel {
159
+ padding: var(--spacing-sm);
160
+ }
161
+ .card {
162
+ padding: 12px;
163
+ }
164
+ .session-layout {
165
+ grid-template-columns: 1fr;
166
+ height: auto;
167
+ min-height: 0;
168
+ }
169
+
170
+ .status-strip {
171
+ gap: var(--spacing-xs);
172
+ }
173
+
174
+ .status-chip {
175
+ flex: 1 1 100%;
176
+ min-width: 100%;
177
+ }
178
+
179
+ .btn-add,
180
+ .btn-tool,
181
+ .card-action-btn,
182
+ .btn-session-export,
183
+ .btn-session-open,
184
+ .btn-session-clone,
185
+ .btn-session-refresh,
186
+ .btn-session-delete,
187
+ .btn-icon,
188
+ .session-item-copy {
189
+ min-height: 44px;
190
+ padding-top: 12px;
191
+ padding-bottom: 12px;
192
+ }
193
+
194
+ .btn-icon,
195
+ .session-item-copy {
196
+ min-width: 36px;
197
+ }
198
+
199
+ .session-item {
200
+ min-height: 75px;
201
+ height: 75px;
202
+ contain-intrinsic-size: 75px;
203
+ padding: 12px 14px;
204
+ }
205
+
206
+ .session-item-header {
207
+ flex-direction: row;
208
+ align-items: center;
209
+ gap: 8px;
210
+ }
211
+
212
+ .session-item-main {
213
+ align-items: center;
214
+ }
215
+
216
+ .session-item-copy {
217
+ width: 36px;
218
+ height: 36px;
219
+ min-width: 36px;
220
+ min-height: 36px;
221
+ border-radius: 6px;
222
+ padding: 2px;
223
+ display: inline-flex;
224
+ align-items: center;
225
+ justify-content: center;
226
+ transform: translate(-3px, 0);
227
+ }
228
+
229
+ .session-item-copy svg {
230
+ width: 10px;
231
+ height: 10px;
232
+ }
233
+
234
+ .session-item-title {
235
+ -webkit-line-clamp: 1;
236
+ max-height: none;
237
+ white-space: nowrap;
238
+ text-overflow: ellipsis;
239
+ overflow: hidden;
240
+ }
241
+
242
+ .session-item-actions {
243
+ margin-top: 0;
244
+ }
245
+
246
+ .session-item-meta {
247
+ margin-top: -2px;
248
+ margin-bottom: 0;
249
+ gap: 4px;
250
+ align-items: center;
251
+ }
252
+
253
+ .trash-item.session-item {
254
+ min-height: auto;
255
+ height: auto;
256
+ contain-intrinsic-size: auto;
257
+ }
258
+
259
+ .trash-item-header {
260
+ flex-direction: column;
261
+ align-items: stretch;
262
+ gap: 10px;
263
+ }
264
+
265
+ .trash-item-mainline {
266
+ flex-direction: column;
267
+ align-items: flex-start;
268
+ gap: 6px;
269
+ }
270
+
271
+ .trash-item-side {
272
+ width: 100%;
273
+ min-width: 0;
274
+ align-items: stretch;
275
+ gap: 10px;
276
+ padding-top: 8px;
277
+ border-top: 1px dashed rgba(216, 201, 184, 0.55);
278
+ }
279
+
280
+ .trash-item-actions {
281
+ display: grid;
282
+ grid-template-columns: repeat(2, minmax(0, 1fr));
283
+ justify-content: flex-start;
284
+ width: 100%;
285
+ }
286
+
287
+ .trash-item-actions .btn-mini {
288
+ width: 100%;
289
+ min-height: 44px;
290
+ display: inline-flex;
291
+ align-items: center;
292
+ justify-content: center;
293
+ }
294
+
295
+ .trash-item .session-count-badge {
296
+ align-self: flex-start;
297
+ margin-top: 0;
298
+ }
299
+
300
+ .trash-item-title {
301
+ -webkit-line-clamp: 3;
302
+ max-height: none;
303
+ white-space: normal;
304
+ text-overflow: clip;
305
+ overflow: hidden;
306
+ }
307
+
308
+ .trash-item-meta {
309
+ margin-top: 6px;
310
+ margin-bottom: 0;
311
+ gap: 6px;
312
+ align-items: center;
313
+ }
314
+
315
+ .trash-item-time {
316
+ padding-top: 2px;
317
+ line-height: 1.35;
318
+ text-align: right;
319
+ }
320
+
321
+ .trash-item-path {
322
+ grid-template-columns: 1fr;
323
+ gap: 4px;
324
+ }
325
+
326
+ .card {
327
+ padding: 8px;
328
+ }
329
+
330
+ .card-list {
331
+ gap: 4px;
332
+ margin-bottom: 4px;
333
+ }
334
+
335
+ .card-actions {
336
+ gap: 8px;
337
+ }
338
+
339
+ .card-action-btn {
340
+ width: 40px;
341
+ height: 40px;
342
+ border-radius: 10px;
343
+ }
344
+
345
+ .card-action-btn svg {
346
+ width: 18px;
347
+ height: 18px;
348
+ }
349
+
350
+ .card-trailing {
351
+ grid-auto-flow: row;
352
+ grid-auto-columns: 1fr;
353
+ justify-content: stretch;
354
+ justify-items: end;
355
+ }
356
+
357
+ .card-trailing .card-actions {
358
+ width: 100%;
359
+ justify-content: flex-end;
360
+ justify-self: end;
361
+ }
362
+
363
+ /* 移动端不显示配置状态 pill,节省空间 */
364
+ .card-trailing .pill {
365
+ display: none;
366
+ }
367
+
368
+ .auth-profile-item {
369
+ padding: 10px;
370
+ }
371
+
372
+ .auth-profile-header {
373
+ flex-direction: column;
374
+ align-items: stretch;
375
+ gap: 10px;
376
+ }
377
+
378
+ .auth-profile-actions {
379
+ justify-content: flex-start;
380
+ }
381
+
382
+ .auth-profile-grid {
383
+ grid-template-columns: 1fr;
384
+ gap: 6px;
385
+ margin-top: 8px;
386
+ }
387
+
388
+ .auth-profile-row {
389
+ display: flex;
390
+ flex-direction: column;
391
+ gap: 2px;
392
+ padding-bottom: 4px;
393
+ border-bottom: 1px dashed rgba(160, 145, 130, 0.25);
394
+ }
395
+
396
+ .auth-profile-row:last-child {
397
+ border-bottom: none;
398
+ padding-bottom: 0;
399
+ }
400
+
401
+ .session-preview {
402
+ border-radius: var(--radius-lg);
403
+ }
404
+
405
+ .skills-summary-strip {
406
+ grid-template-columns: 1fr;
407
+ }
408
+
409
+ .skills-panel {
410
+ padding: 10px;
411
+ }
412
+
413
+ .skills-root-box {
414
+ font-size: 11px;
415
+ }
416
+ }