codexmate 0.0.20 → 0.0.22

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 (96) hide show
  1. package/README.md +289 -152
  2. package/README.zh.md +321 -0
  3. package/cli/agents-files.js +224 -0
  4. package/cli/archive-helpers.js +446 -0
  5. package/cli/auth-profiles.js +359 -0
  6. package/cli/builtin-proxy.js +1044 -0
  7. package/cli/claude-proxy.js +998 -0
  8. package/cli/config-bootstrap.js +384 -0
  9. package/cli/openai-bridge.js +950 -0
  10. package/cli/openclaw-config.js +629 -0
  11. package/cli/session-usage.concurrent.js +28 -0
  12. package/cli/session-usage.js +112 -0
  13. package/cli/session-usage.models.js +176 -0
  14. package/cli/skills.js +1141 -0
  15. package/cli/zip-commands.js +510 -0
  16. package/cli.js +9408 -9719
  17. package/lib/cli-models-utils.js +109 -1
  18. package/lib/cli-path-utils.js +69 -0
  19. package/lib/cli-sessions.js +386 -0
  20. package/lib/download-artifacts.js +77 -0
  21. package/lib/task-orchestrator.js +869 -0
  22. package/package.json +14 -10
  23. package/res/logo.png +0 -0
  24. package/res/vue.global.prod.js +13 -0
  25. package/web-ui/app.js +193 -15
  26. package/web-ui/index.html +5 -1
  27. package/web-ui/logic.agents-diff.mjs +1 -1
  28. package/web-ui/logic.claude.mjs +60 -0
  29. package/web-ui/logic.runtime.mjs +11 -7
  30. package/web-ui/logic.sessions.mjs +372 -21
  31. package/web-ui/modules/api.mjs +22 -1
  32. package/web-ui/modules/app.computed.dashboard.mjs +23 -10
  33. package/web-ui/modules/app.computed.index.mjs +4 -0
  34. package/web-ui/modules/app.computed.main-tabs.mjs +198 -0
  35. package/web-ui/modules/app.computed.session.mjs +521 -9
  36. package/web-ui/modules/app.methods.agents.mjs +62 -11
  37. package/web-ui/modules/app.methods.codex-config.mjs +189 -34
  38. package/web-ui/modules/app.methods.index.mjs +7 -1
  39. package/web-ui/modules/app.methods.install.mjs +24 -20
  40. package/web-ui/modules/app.methods.navigation.mjs +142 -1
  41. package/web-ui/modules/app.methods.openclaw-core.mjs +339 -39
  42. package/web-ui/modules/app.methods.openclaw-editing.mjs +39 -4
  43. package/web-ui/modules/app.methods.openclaw-persist.mjs +122 -4
  44. package/web-ui/modules/app.methods.providers.mjs +192 -53
  45. package/web-ui/modules/app.methods.session-actions.mjs +99 -19
  46. package/web-ui/modules/app.methods.session-browser.mjs +196 -5
  47. package/web-ui/modules/app.methods.session-timeline.mjs +22 -15
  48. package/web-ui/modules/app.methods.session-trash.mjs +3 -0
  49. package/web-ui/modules/app.methods.startup-claude.mjs +70 -71
  50. package/web-ui/modules/app.methods.task-orchestration.mjs +471 -0
  51. package/web-ui/modules/config-mode.computed.mjs +2 -0
  52. package/web-ui/modules/config-template-confirm-pref.mjs +33 -0
  53. package/web-ui/modules/i18n.mjs +1609 -0
  54. package/web-ui/modules/plugins.computed.mjs +220 -0
  55. package/web-ui/modules/plugins.methods.mjs +620 -0
  56. package/web-ui/modules/plugins.storage.mjs +37 -0
  57. package/web-ui/partials/index/layout-footer.html +1 -57
  58. package/web-ui/partials/index/layout-header.html +299 -175
  59. package/web-ui/partials/index/modal-config-template-agents.html +79 -29
  60. package/web-ui/partials/index/modal-confirm-toast.html +1 -1
  61. package/web-ui/partials/index/modal-health-check.html +14 -14
  62. package/web-ui/partials/index/modal-openclaw-config.html +47 -42
  63. package/web-ui/partials/index/modal-skills.html +130 -114
  64. package/web-ui/partials/index/modals-basic.html +71 -102
  65. package/web-ui/partials/index/panel-config-claude.html +50 -12
  66. package/web-ui/partials/index/panel-config-codex.html +34 -37
  67. package/web-ui/partials/index/panel-config-openclaw.html +10 -16
  68. package/web-ui/partials/index/panel-docs.html +147 -0
  69. package/web-ui/partials/index/panel-market.html +38 -38
  70. package/web-ui/partials/index/panel-orchestration.html +397 -0
  71. package/web-ui/partials/index/panel-plugins.html +243 -0
  72. package/web-ui/partials/index/panel-sessions.html +51 -146
  73. package/web-ui/partials/index/panel-settings.html +188 -96
  74. package/web-ui/partials/index/panel-usage.html +353 -0
  75. package/web-ui/session-helpers.mjs +221 -10
  76. package/web-ui/styles/base-theme.css +120 -229
  77. package/web-ui/styles/controls-forms.css +59 -51
  78. package/web-ui/styles/docs-panel.css +247 -0
  79. package/web-ui/styles/layout-shell.css +394 -128
  80. package/web-ui/styles/modals-core.css +18 -3
  81. package/web-ui/styles/navigation-panels.css +184 -183
  82. package/web-ui/styles/plugins-panel.css +518 -0
  83. package/web-ui/styles/responsive.css +102 -62
  84. package/web-ui/styles/sessions-list.css +13 -27
  85. package/web-ui/styles/sessions-preview.css +13 -7
  86. package/web-ui/styles/sessions-toolbar-trash.css +25 -0
  87. package/web-ui/styles/sessions-usage.css +581 -6
  88. package/web-ui/styles/settings-panel.css +166 -0
  89. package/web-ui/styles/skills-list.css +16 -11
  90. package/web-ui/styles/skills-market.css +63 -2
  91. package/web-ui/styles/task-orchestration.css +776 -0
  92. package/web-ui/styles/titles-cards.css +67 -66
  93. package/web-ui/styles.css +4 -0
  94. package/README.en.md +0 -259
  95. package/res/screenshot.png +0 -0
  96. package/res/vue.global.js +0 -18552
@@ -12,61 +12,54 @@ textarea:focus-visible {
12
12
  }
13
13
 
14
14
  @media (max-width: 1280px) {
15
+ :root {
16
+ --side-rail-width: 224px;
17
+ }
15
18
  .app-shell {
16
- grid-template-columns: 240px minmax(0, 1fr) 300px;
17
- gap: 14px;
19
+ grid-template-columns: 224px minmax(0, 1fr);
20
+ gap: 0;
18
21
  }
19
22
 
20
- .status-inspector {
21
- top: 16px;
22
- height: calc(100vh - 32px);
23
+ .main-panel {
24
+ padding: 0 20px 20px;
23
25
  }
24
26
 
25
- .main-panel {
26
- padding: var(--spacing-sm) var(--spacing-md);
27
+ .main-panel-topbar {
28
+ margin: 0 -20px 12px;
29
+ padding: 0 20px 10px;
27
30
  }
31
+
28
32
  }
29
33
 
30
34
  @media (max-width: 960px) {
35
+ :root {
36
+ --side-rail-width: 188px;
37
+ }
31
38
  .container {
32
- padding: 12px;
39
+ padding: 0;
33
40
  }
34
41
  .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);
42
+ grid-template-columns: 188px minmax(0, 1fr);
43
+ gap: 0;
55
44
  }
56
45
  .main-panel {
57
- padding: var(--spacing-sm) var(--spacing-sm);
58
- border-radius: 14px;
46
+ padding: 0 16px 16px;
47
+ border-radius: 0;
48
+ min-height: 0;
49
+ }
50
+ .main-panel-topbar {
51
+ margin: 0 -16px 12px;
52
+ padding: 0 16px 10px;
59
53
  }
60
54
  .top-tabs {
61
- display: grid !important;
62
- grid-template-columns: repeat(2, minmax(0, 1fr));
55
+ display: none !important;
63
56
  }
64
57
  .status-strip {
65
- gap: var(--spacing-sm);
66
- margin-top: 4px;
58
+ grid-template-columns: repeat(2, minmax(0, 1fr));
59
+ gap: 8px;
60
+ margin-top: 2px;
67
61
  }
68
62
  .status-chip {
69
- flex: 1 1 calc(50% - var(--spacing-sm));
70
63
  min-width: 0;
71
64
  }
72
65
 
@@ -89,17 +82,71 @@ textarea:focus-visible {
89
82
  }
90
83
 
91
84
  @media (max-width: 720px) {
92
- .main-title {
93
- font-size: 40px;
85
+ :root {
86
+ --side-rail-width: min(188px, 46vw);
87
+ }
88
+ .app-shell {
89
+ grid-template-columns: 1fr;
90
+ min-height: auto;
91
+ height: auto;
92
+ overflow: visible;
93
+ }
94
+
95
+ .side-rail {
96
+ display: none;
97
+ }
98
+
99
+ .lang-fab {
100
+ display: block;
101
+ }
102
+
103
+ .top-tabs {
104
+ display: flex !important;
105
+ flex-wrap: nowrap;
106
+ overflow-x: auto;
107
+ overflow-y: hidden;
108
+ padding-bottom: 2px;
109
+ margin-left: -2px;
110
+ margin-right: -2px;
111
+ }
112
+
113
+ .main-panel {
114
+ padding: 0 12px 16px;
115
+ height: auto;
116
+ overflow-y: visible;
94
117
  }
95
118
 
96
- .hero-title {
97
- font-size: 32px;
119
+ .main-panel-topbar {
120
+ position: static;
121
+ margin: 0 0 10px;
122
+ padding: 0;
123
+ background: transparent;
124
+ backdrop-filter: none;
125
+ }
126
+
127
+ .panel-header-refined {
128
+ margin-left: 0;
129
+ margin-right: 0;
130
+ padding: 14px 0 12px;
131
+ }
132
+
133
+ .main-title {
134
+ font-size: 18px;
98
135
  }
99
136
 
100
137
  .subtitle {
101
- font-size: var(--font-size-secondary);
102
- margin-bottom: 16px;
138
+ font-size: 12px;
139
+ margin-bottom: 0;
140
+ line-height: 1.4;
141
+ }
142
+
143
+ .panel-kicker {
144
+ display: none;
145
+ }
146
+
147
+ .top-tabs {
148
+ margin: 8px 0 10px;
149
+ gap: 5px;
103
150
  }
104
151
 
105
152
  .segmented-control {
@@ -108,8 +155,8 @@ textarea:focus-visible {
108
155
  }
109
156
 
110
157
  .status-strip {
111
- flex-direction: row;
112
- flex-wrap: wrap;
158
+ grid-template-columns: 1fr;
159
+ gap: 12px;
113
160
  }
114
161
 
115
162
  .market-grid {
@@ -120,9 +167,6 @@ textarea:focus-visible {
120
167
  grid-template-columns: 1fr;
121
168
  }
122
169
 
123
- .status-chip {
124
- flex: 1 1 100%;
125
- }
126
170
  }
127
171
 
128
172
  @media (max-width: 540px) {
@@ -139,24 +183,17 @@ textarea:focus-visible {
139
183
  height: 44px;
140
184
  min-height: 44px;
141
185
  }
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
186
  .top-tabs {
156
- grid-template-columns: repeat(1, minmax(0, 1fr));
187
+ gap: 5px;
188
+ margin: 2px 0 8px;
189
+ padding-right: 14px;
157
190
  }
158
191
  .main-panel {
159
- padding: var(--spacing-sm);
192
+ padding: 0 10px 12px;
193
+ }
194
+
195
+ .main-panel-topbar {
196
+ margin-bottom: 8px;
160
197
  }
161
198
  .card {
162
199
  padding: 12px;
@@ -172,7 +209,6 @@ textarea:focus-visible {
172
209
  }
173
210
 
174
211
  .status-chip {
175
- flex: 1 1 100%;
176
212
  min-width: 100%;
177
213
  }
178
214
 
@@ -286,10 +322,14 @@ textarea:focus-visible {
286
322
 
287
323
  .trash-item-actions .btn-mini {
288
324
  width: 100%;
325
+ height: 44px;
289
326
  min-height: 44px;
327
+ padding: 0 10px;
290
328
  display: inline-flex;
291
329
  align-items: center;
292
330
  justify-content: center;
331
+ line-height: 1;
332
+ white-space: nowrap;
293
333
  }
294
334
 
295
335
  .trash-item .session-count-badge {
@@ -86,7 +86,7 @@
86
86
 
87
87
  .trash-item-actions {
88
88
  display: grid;
89
- grid-template-columns: repeat(2, minmax(108px, 108px));
89
+ grid-template-columns: repeat(2, minmax(116px, 116px));
90
90
  align-self: flex-end;
91
91
  justify-content: flex-end;
92
92
  gap: 8px;
@@ -94,10 +94,14 @@
94
94
 
95
95
  .trash-item-actions .btn-mini {
96
96
  width: 100%;
97
- min-height: 36px;
97
+ height: 38px;
98
+ min-height: 38px;
99
+ padding: 0 12px;
98
100
  display: inline-flex;
99
101
  align-items: center;
100
102
  justify-content: center;
103
+ line-height: 1;
104
+ white-space: nowrap;
101
105
  }
102
106
 
103
107
  .trash-item-time {
@@ -178,34 +182,16 @@
178
182
  max-height: none;
179
183
  overflow-y: auto;
180
184
  overflow-x: hidden;
181
- padding-right: 4px;
185
+ padding-right: 0;
182
186
  min-width: 0;
183
- scrollbar-width: thin;
184
- scrollbar-color: rgba(166, 149, 130, 0.85) transparent;
185
- }
186
-
187
- .session-list::-webkit-scrollbar,
188
- .session-preview-scroll::-webkit-scrollbar {
189
- width: 10px;
190
- height: 10px;
191
- }
192
-
193
- .session-list::-webkit-scrollbar-track,
194
- .session-preview-scroll::-webkit-scrollbar-track {
195
- background: transparent;
196
- border-radius: 999px;
197
- }
198
-
199
- .session-list::-webkit-scrollbar-thumb,
200
- .session-preview-scroll::-webkit-scrollbar-thumb {
201
- background: linear-gradient(to bottom, rgba(191, 174, 154, 0.95) 0%, rgba(160, 141, 121, 0.95) 100%);
202
- border-radius: 999px;
203
- border: 2px solid rgba(255, 255, 255, 0.9);
187
+ scrollbar-width: none;
188
+ -ms-overflow-style: none;
204
189
  }
205
190
 
206
- .session-list::-webkit-scrollbar-thumb:hover,
207
- .session-preview-scroll::-webkit-scrollbar-thumb:hover {
208
- background: linear-gradient(to bottom, rgba(175, 156, 136, 0.95) 0%, rgba(145, 126, 107, 0.95) 100%);
191
+ .session-list::-webkit-scrollbar {
192
+ width: 0;
193
+ height: 0;
194
+ display: none;
209
195
  }
210
196
 
211
197
  .session-item {
@@ -9,11 +9,17 @@
9
9
  min-height: 0;
10
10
  overflow-y: auto;
11
11
  overflow-x: hidden;
12
- padding-right: 68px;
12
+ padding-right: 52px;
13
13
  display: flex;
14
14
  flex-direction: column;
15
- scrollbar-width: thin;
16
- scrollbar-color: rgba(166, 149, 130, 0.85) transparent;
15
+ scrollbar-width: none;
16
+ -ms-overflow-style: none;
17
+ }
18
+
19
+ .session-preview-scroll::-webkit-scrollbar {
20
+ width: 0;
21
+ height: 0;
22
+ display: none;
17
23
  }
18
24
 
19
25
  .session-preview-header {
@@ -111,9 +117,9 @@
111
117
  .session-timeline {
112
118
  position: absolute;
113
119
  top: var(--session-preview-header-offset, 72px);
114
- right: 8px;
120
+ right: 4px;
115
121
  bottom: 12px;
116
- width: 56px;
122
+ width: 44px;
117
123
  height: auto;
118
124
  border-radius: 12px;
119
125
  border: 1px solid rgba(208, 196, 182, 0.5);
@@ -165,8 +171,8 @@
165
171
 
166
172
  .session-timeline-current {
167
173
  position: absolute;
168
- left: 4px;
169
- right: 4px;
174
+ left: 3px;
175
+ right: 3px;
170
176
  bottom: 4px;
171
177
  font-size: 10px;
172
178
  line-height: 1.2;
@@ -14,6 +14,10 @@
14
14
  min-width: 0;
15
15
  }
16
16
 
17
+ .session-toolbar-secondary {
18
+ justify-content: flex-end;
19
+ }
20
+
17
21
  .session-toolbar-grow {
18
22
  grid-column: 1 / -1;
19
23
  }
@@ -72,6 +76,27 @@
72
76
  min-width: 220px;
73
77
  }
74
78
 
79
+ @media (min-width: 980px) {
80
+ /* Wider screens: align left/right control groups, keep query spanning full width. */
81
+ .session-toolbar {
82
+ grid-template-columns: repeat(12, minmax(0, 1fr));
83
+ gap: 10px;
84
+ }
85
+
86
+ .session-toolbar-primary {
87
+ grid-column: span 6;
88
+ }
89
+
90
+ .session-toolbar-secondary {
91
+ grid-column: span 6;
92
+ justify-content: flex-end;
93
+ }
94
+
95
+ .session-toolbar-grow {
96
+ grid-column: 1 / -1;
97
+ }
98
+ }
99
+
75
100
  .session-source-select:hover,
76
101
  .session-path-select:hover,
77
102
  .session-query-input:hover,