codexmate 0.0.21 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +390 -284
  2. package/README.zh.md +322 -0
  3. package/cli/agents-files.js +224 -162
  4. package/cli/archive-helpers.js +446 -446
  5. package/cli/auth-profiles.js +359 -359
  6. package/cli/builtin-proxy.js +1044 -580
  7. package/cli/claude-proxy.js +998 -998
  8. package/cli/config-bootstrap.js +384 -384
  9. package/cli/config-health.js +338 -338
  10. package/cli/openai-bridge.js +950 -0
  11. package/cli/openclaw-config.js +629 -629
  12. package/cli/session-usage.concurrent.js +28 -0
  13. package/cli/session-usage.js +112 -0
  14. package/cli/session-usage.models.js +176 -0
  15. package/cli/skills.js +1141 -1141
  16. package/cli/zip-commands.js +510 -510
  17. package/cli.js +13214 -13129
  18. package/lib/cli-file-utils.js +151 -151
  19. package/lib/cli-models-utils.js +419 -419
  20. package/lib/cli-network-utils.js +164 -164
  21. package/lib/cli-path-utils.js +69 -69
  22. package/lib/cli-session-utils.js +121 -121
  23. package/lib/cli-sessions.js +386 -386
  24. package/lib/cli-utils.js +155 -155
  25. package/lib/download-artifacts.js +77 -77
  26. package/lib/mcp-stdio.js +440 -440
  27. package/lib/task-orchestrator.js +869 -869
  28. package/lib/text-diff.js +303 -303
  29. package/lib/workflow-engine.js +340 -340
  30. package/package.json +74 -74
  31. package/res/json5.min.js +1 -1
  32. package/res/logo.png +0 -0
  33. package/res/vue.global.prod.js +13 -13
  34. package/web-ui/app.js +626 -530
  35. package/web-ui/index.html +34 -33
  36. package/web-ui/logic.agents-diff.mjs +386 -386
  37. package/web-ui/logic.claude.mjs +168 -168
  38. package/web-ui/logic.mjs +5 -5
  39. package/web-ui/logic.runtime.mjs +128 -124
  40. package/web-ui/logic.sessions.mjs +614 -581
  41. package/web-ui/modules/api.mjs +90 -90
  42. package/web-ui/modules/app.computed.dashboard.mjs +126 -113
  43. package/web-ui/modules/app.computed.index.mjs +17 -15
  44. package/web-ui/modules/app.computed.main-tabs.mjs +202 -195
  45. package/web-ui/modules/app.computed.session.mjs +653 -507
  46. package/web-ui/modules/app.constants.mjs +15 -15
  47. package/web-ui/modules/app.methods.agents.mjs +544 -493
  48. package/web-ui/modules/app.methods.claude-config.mjs +174 -174
  49. package/web-ui/modules/app.methods.codex-config.mjs +795 -640
  50. package/web-ui/modules/app.methods.index.mjs +92 -88
  51. package/web-ui/modules/app.methods.install.mjs +177 -149
  52. package/web-ui/modules/app.methods.navigation.mjs +662 -619
  53. package/web-ui/modules/app.methods.openclaw-core.mjs +814 -814
  54. package/web-ui/modules/app.methods.openclaw-editing.mjs +372 -372
  55. package/web-ui/modules/app.methods.openclaw-persist.mjs +369 -369
  56. package/web-ui/modules/app.methods.providers.mjs +404 -363
  57. package/web-ui/modules/app.methods.runtime.mjs +323 -323
  58. package/web-ui/modules/app.methods.session-actions.mjs +537 -520
  59. package/web-ui/modules/app.methods.session-browser.mjs +691 -626
  60. package/web-ui/modules/app.methods.session-timeline.mjs +448 -448
  61. package/web-ui/modules/app.methods.session-trash.mjs +422 -422
  62. package/web-ui/modules/app.methods.startup-claude.mjs +417 -412
  63. package/web-ui/modules/app.methods.task-orchestration.mjs +556 -471
  64. package/web-ui/modules/config-mode.computed.mjs +126 -126
  65. package/web-ui/modules/config-template-confirm-pref.mjs +33 -0
  66. package/web-ui/modules/i18n.mjs +1823 -0
  67. package/web-ui/modules/plugins.computed.mjs +3 -0
  68. package/web-ui/modules/plugins.methods.mjs +3 -0
  69. package/web-ui/modules/plugins.storage.mjs +11 -0
  70. package/web-ui/modules/sessions-filters-url.mjs +85 -0
  71. package/web-ui/modules/skills.computed.mjs +107 -107
  72. package/web-ui/modules/skills.methods.mjs +481 -481
  73. package/web-ui/partials/index/layout-footer.html +13 -13
  74. package/web-ui/partials/index/layout-header.html +461 -402
  75. package/web-ui/partials/index/modal-config-template-agents.html +175 -125
  76. package/web-ui/partials/index/modal-confirm-toast.html +32 -32
  77. package/web-ui/partials/index/modal-health-check.html +72 -72
  78. package/web-ui/partials/index/modal-openclaw-config.html +280 -280
  79. package/web-ui/partials/index/modal-skills.html +200 -184
  80. package/web-ui/partials/index/modals-basic.html +165 -156
  81. package/web-ui/partials/index/panel-config-claude.html +159 -126
  82. package/web-ui/partials/index/panel-config-codex.html +255 -237
  83. package/web-ui/partials/index/panel-config-openclaw.html +78 -78
  84. package/web-ui/partials/index/panel-docs.html +147 -130
  85. package/web-ui/partials/index/panel-market.html +174 -174
  86. package/web-ui/partials/index/panel-orchestration.html +388 -397
  87. package/web-ui/partials/index/panel-plugins.html +273 -0
  88. package/web-ui/partials/index/panel-sessions.html +298 -292
  89. package/web-ui/partials/index/panel-settings.html +258 -190
  90. package/web-ui/partials/index/panel-usage.html +353 -213
  91. package/web-ui/session-helpers.mjs +573 -559
  92. package/web-ui/source-bundle.cjs +233 -233
  93. package/web-ui/styles/base-theme.css +264 -271
  94. package/web-ui/styles/controls-forms.css +369 -360
  95. package/web-ui/styles/docs-panel.css +247 -182
  96. package/web-ui/styles/feedback.css +108 -108
  97. package/web-ui/styles/health-check-dialog.css +144 -144
  98. package/web-ui/styles/layout-shell.css +602 -376
  99. package/web-ui/styles/modals-core.css +464 -464
  100. package/web-ui/styles/navigation-panels.css +390 -348
  101. package/web-ui/styles/openclaw-structured.css +266 -266
  102. package/web-ui/styles/plugins-panel.css +523 -0
  103. package/web-ui/styles/responsive.css +456 -450
  104. package/web-ui/styles/sessions-list.css +400 -400
  105. package/web-ui/styles/sessions-preview.css +411 -411
  106. package/web-ui/styles/sessions-toolbar-trash.css +268 -243
  107. package/web-ui/styles/sessions-usage.css +879 -628
  108. package/web-ui/styles/settings-panel.css +166 -0
  109. package/web-ui/styles/skills-list.css +303 -296
  110. package/web-ui/styles/skills-market.css +406 -335
  111. package/web-ui/styles/task-orchestration.css +822 -776
  112. package/web-ui/styles/titles-cards.css +408 -408
  113. package/web-ui/styles.css +20 -18
  114. package/web-ui.html +17 -17
  115. package/README.en.md +0 -349
@@ -1,243 +1,268 @@
1
- .session-toolbar {
2
- display: grid;
3
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
4
- gap: var(--spacing-xs);
5
- margin-bottom: var(--spacing-sm);
6
- align-items: end;
7
- }
8
-
9
- .session-toolbar-group {
10
- display: flex;
11
- align-items: center;
12
- gap: var(--spacing-xs);
13
- flex-wrap: wrap;
14
- min-width: 0;
15
- }
16
-
17
- .session-toolbar-grow {
18
- grid-column: 1 / -1;
19
- }
20
-
21
- .session-toolbar-actions {
22
- justify-content: flex-end;
23
- }
24
-
25
- .session-toolbar-footer {
26
- display: flex;
27
- align-items: center;
28
- justify-content: flex-end;
29
- gap: var(--spacing-xs);
30
- margin-top: -2px;
31
- padding-top: 6px;
32
- margin-bottom: 12px;
33
- border-top: 1px dashed var(--color-border-soft);
34
- }
35
-
36
- .session-toolbar-footer .quick-option {
37
- margin: 0;
38
- padding: 6px 10px;
39
- border-radius: var(--radius-sm);
40
- border: 1px solid var(--color-border-soft);
41
- background: linear-gradient(to bottom, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.8) 100%);
42
- box-shadow: inset 0 1px 2px rgba(31, 26, 23, 0.04);
43
- transition: all var(--transition-fast) var(--ease-spring);
44
- line-height: 1.2;
45
- }
46
-
47
- .session-toolbar-footer .quick-option:hover {
48
- border-color: var(--color-border-strong);
49
- }
50
-
51
- .session-source-select,
52
- .session-path-select,
53
- .session-query-input,
54
- .session-role-select,
55
- .session-time-select {
56
- flex: 1;
57
- min-width: 160px;
58
- padding: 10px 12px;
59
- border-radius: var(--radius-sm);
60
- border: 1px solid var(--color-border-soft);
61
- background: linear-gradient(to bottom, var(--color-surface) 0%, rgba(255, 255, 255, 0.92) 100%);
62
- color: var(--color-text-secondary);
63
- font-size: var(--font-size-body);
64
- font-family: var(--font-family);
65
- outline: none;
66
- transition: all var(--transition-fast) var(--ease-spring);
67
- box-shadow: inset 0 1px 2px rgba(31, 26, 23, 0.04);
68
- }
69
-
70
- .session-query-input {
71
- flex: 2;
72
- min-width: 220px;
73
- }
74
-
75
- .session-source-select:hover,
76
- .session-path-select:hover,
77
- .session-query-input:hover,
78
- .session-role-select:hover,
79
- .session-time-select:hover {
80
- border-color: var(--color-border-strong);
81
- }
82
-
83
- .session-source-select:focus,
84
- .session-path-select:focus,
85
- .session-query-input:focus,
86
- .session-role-select:focus,
87
- .session-time-select:focus {
88
- border-color: var(--color-brand);
89
- box-shadow: var(--shadow-input-focus);
90
- }
91
-
92
- .session-hint {
93
- font-size: var(--font-size-secondary);
94
- color: var(--color-text-tertiary);
95
- margin-bottom: 12px;
96
- line-height: 1.45;
97
- }
98
-
99
- .session-card {
100
- align-items: flex-start;
101
- cursor: default;
102
- }
103
-
104
- .session-card:hover {
105
- transform: none;
106
- box-shadow: var(--shadow-card);
107
- }
108
-
109
- .session-card .card-leading {
110
- align-items: flex-start;
111
- }
112
-
113
- .session-meta {
114
- margin-top: 6px;
115
- font-size: var(--font-size-caption);
116
- color: var(--color-text-tertiary);
117
- line-height: 1.4;
118
- word-break: break-all;
119
- }
120
-
121
- .session-actions {
122
- display: flex;
123
- gap: var(--spacing-xs);
124
- align-items: center;
125
- margin-left: var(--spacing-sm);
126
- flex-shrink: 0;
127
- }
128
-
129
- .session-source {
130
- font-size: var(--font-size-caption);
131
- color: var(--color-text-tertiary);
132
- border: 1px solid var(--color-border-soft);
133
- border-radius: 999px;
134
- padding: 2px 8px;
135
- background: var(--color-surface-alt);
136
- white-space: nowrap;
137
- }
138
-
139
- .session-count-badge {
140
- display: inline-flex;
141
- align-items: center;
142
- justify-content: center;
143
- min-width: 22px;
144
- height: 22px;
145
- padding: 0 7px;
146
- border-radius: 999px;
147
- background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
148
- color: #fff;
149
- font-size: var(--font-size-caption);
150
- font-weight: var(--font-weight-secondary);
151
- line-height: 1;
152
- box-shadow: 0 4px 10px rgba(208, 88, 58, 0.16);
153
- flex-shrink: 0;
154
- }
155
-
156
- .trash-list-footer {
157
- display: flex;
158
- justify-content: center;
159
- margin-top: var(--spacing-sm);
160
- }
161
-
162
- .btn-session-export,
163
- .btn-session-open,
164
- .btn-session-clone,
165
- .btn-session-refresh {
166
- border: 1px solid var(--color-border-soft);
167
- border-radius: var(--radius-sm);
168
- background: linear-gradient(to bottom, var(--color-surface) 0%, rgba(255, 255, 255, 0.9) 100%);
169
- color: var(--color-text-secondary);
170
- padding: 8px 12px;
171
- font-size: var(--font-size-secondary);
172
- font-weight: var(--font-weight-secondary);
173
- cursor: pointer;
174
- transition: all var(--transition-fast) var(--ease-spring);
175
- white-space: nowrap;
176
- box-shadow: var(--shadow-subtle);
177
- letter-spacing: -0.01em;
178
- }
179
-
180
- .btn-session-delete {
181
- border: 1px solid rgba(189, 70, 68, 0.45);
182
- border-radius: var(--radius-sm);
183
- background: linear-gradient(to bottom, rgba(255, 245, 245, 0.95) 0%, rgba(255, 255, 255, 0.9) 100%);
184
- color: #b74545;
185
- padding: 8px 12px;
186
- font-size: var(--font-size-secondary);
187
- font-weight: var(--font-weight-secondary);
188
- cursor: pointer;
189
- transition: all var(--transition-fast) var(--ease-spring);
190
- white-space: nowrap;
191
- box-shadow: var(--shadow-subtle);
192
- letter-spacing: -0.01em;
193
- }
194
-
195
- .btn-session-refresh:hover {
196
- border-color: var(--color-brand);
197
- color: var(--color-brand);
198
- transform: translateY(-1px);
199
- }
200
-
201
- .btn-session-refresh:disabled {
202
- opacity: 0.5;
203
- cursor: not-allowed;
204
- transform: none;
205
- }
206
-
207
- .btn-session-export:hover,
208
- .btn-session-open:hover {
209
- border-color: var(--color-brand);
210
- color: var(--color-brand);
211
- transform: translateY(-1px);
212
- }
213
-
214
- .btn-session-export:disabled,
215
- .btn-session-open:disabled {
216
- opacity: 0.5;
217
- cursor: not-allowed;
218
- transform: none;
219
- }
220
-
221
- .btn-session-clone:hover {
222
- border-color: var(--color-brand);
223
- color: var(--color-brand);
224
- transform: translateY(-1px);
225
- }
226
-
227
- .btn-session-clone:disabled {
228
- opacity: 0.5;
229
- cursor: not-allowed;
230
- transform: none;
231
- }
232
-
233
- .btn-session-delete:hover {
234
- border-color: rgba(189, 70, 68, 0.8);
235
- color: #9f3b3b;
236
- transform: translateY(-1px);
237
- }
238
-
239
- .btn-session-delete:disabled {
240
- opacity: 0.5;
241
- cursor: not-allowed;
242
- transform: none;
243
- }
1
+ .session-toolbar {
2
+ display: grid;
3
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
4
+ gap: var(--spacing-xs);
5
+ margin-bottom: var(--spacing-sm);
6
+ align-items: end;
7
+ }
8
+
9
+ .session-toolbar-group {
10
+ display: flex;
11
+ align-items: center;
12
+ gap: var(--spacing-xs);
13
+ flex-wrap: wrap;
14
+ min-width: 0;
15
+ }
16
+
17
+ .session-toolbar-secondary {
18
+ justify-content: flex-end;
19
+ }
20
+
21
+ .session-toolbar-grow {
22
+ grid-column: 1 / -1;
23
+ }
24
+
25
+ .session-toolbar-actions {
26
+ justify-content: flex-end;
27
+ }
28
+
29
+ .session-toolbar-footer {
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: flex-end;
33
+ gap: var(--spacing-xs);
34
+ margin-top: -2px;
35
+ padding-top: 6px;
36
+ margin-bottom: 12px;
37
+ border-top: 1px dashed var(--color-border-soft);
38
+ }
39
+
40
+ .session-toolbar-footer .quick-option {
41
+ margin: 0;
42
+ padding: 6px 10px;
43
+ border-radius: var(--radius-sm);
44
+ border: 1px solid var(--color-border-soft);
45
+ background: linear-gradient(to bottom, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.8) 100%);
46
+ box-shadow: inset 0 1px 2px rgba(31, 26, 23, 0.04);
47
+ transition: all var(--transition-fast) var(--ease-spring);
48
+ line-height: 1.2;
49
+ }
50
+
51
+ .session-toolbar-footer .quick-option:hover {
52
+ border-color: var(--color-border-strong);
53
+ }
54
+
55
+ .session-source-select,
56
+ .session-path-select,
57
+ .session-query-input,
58
+ .session-role-select,
59
+ .session-time-select {
60
+ flex: 1;
61
+ min-width: 160px;
62
+ padding: 10px 12px;
63
+ border-radius: var(--radius-sm);
64
+ border: 1px solid var(--color-border-soft);
65
+ background: linear-gradient(to bottom, var(--color-surface) 0%, rgba(255, 255, 255, 0.92) 100%);
66
+ color: var(--color-text-secondary);
67
+ font-size: var(--font-size-body);
68
+ font-family: var(--font-family);
69
+ outline: none;
70
+ transition: all var(--transition-fast) var(--ease-spring);
71
+ box-shadow: inset 0 1px 2px rgba(31, 26, 23, 0.04);
72
+ }
73
+
74
+ .session-query-input {
75
+ flex: 2;
76
+ min-width: 220px;
77
+ }
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
+
100
+ .session-source-select:hover,
101
+ .session-path-select:hover,
102
+ .session-query-input:hover,
103
+ .session-role-select:hover,
104
+ .session-time-select:hover {
105
+ border-color: var(--color-border-strong);
106
+ }
107
+
108
+ .session-source-select:focus,
109
+ .session-path-select:focus,
110
+ .session-query-input:focus,
111
+ .session-role-select:focus,
112
+ .session-time-select:focus {
113
+ border-color: var(--color-brand);
114
+ box-shadow: var(--shadow-input-focus);
115
+ }
116
+
117
+ .session-hint {
118
+ font-size: var(--font-size-secondary);
119
+ color: var(--color-text-tertiary);
120
+ margin-bottom: 12px;
121
+ line-height: 1.45;
122
+ }
123
+
124
+ .session-card {
125
+ align-items: flex-start;
126
+ cursor: default;
127
+ }
128
+
129
+ .session-card:hover {
130
+ transform: none;
131
+ box-shadow: var(--shadow-card);
132
+ }
133
+
134
+ .session-card .card-leading {
135
+ align-items: flex-start;
136
+ }
137
+
138
+ .session-meta {
139
+ margin-top: 6px;
140
+ font-size: var(--font-size-caption);
141
+ color: var(--color-text-tertiary);
142
+ line-height: 1.4;
143
+ word-break: break-all;
144
+ }
145
+
146
+ .session-actions {
147
+ display: flex;
148
+ gap: var(--spacing-xs);
149
+ align-items: center;
150
+ margin-left: var(--spacing-sm);
151
+ flex-shrink: 0;
152
+ }
153
+
154
+ .session-source {
155
+ font-size: var(--font-size-caption);
156
+ color: var(--color-text-tertiary);
157
+ border: 1px solid var(--color-border-soft);
158
+ border-radius: 999px;
159
+ padding: 2px 8px;
160
+ background: var(--color-surface-alt);
161
+ white-space: nowrap;
162
+ }
163
+
164
+ .session-count-badge {
165
+ display: inline-flex;
166
+ align-items: center;
167
+ justify-content: center;
168
+ min-width: 22px;
169
+ height: 22px;
170
+ padding: 0 7px;
171
+ border-radius: 999px;
172
+ background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
173
+ color: #fff;
174
+ font-size: var(--font-size-caption);
175
+ font-weight: var(--font-weight-secondary);
176
+ line-height: 1;
177
+ box-shadow: 0 4px 10px rgba(208, 88, 58, 0.16);
178
+ flex-shrink: 0;
179
+ }
180
+
181
+ .trash-list-footer {
182
+ display: flex;
183
+ justify-content: center;
184
+ margin-top: var(--spacing-sm);
185
+ }
186
+
187
+ .btn-session-export,
188
+ .btn-session-open,
189
+ .btn-session-clone,
190
+ .btn-session-refresh {
191
+ border: 1px solid var(--color-border-soft);
192
+ border-radius: var(--radius-sm);
193
+ background: linear-gradient(to bottom, var(--color-surface) 0%, rgba(255, 255, 255, 0.9) 100%);
194
+ color: var(--color-text-secondary);
195
+ padding: 8px 12px;
196
+ font-size: var(--font-size-secondary);
197
+ font-weight: var(--font-weight-secondary);
198
+ cursor: pointer;
199
+ transition: all var(--transition-fast) var(--ease-spring);
200
+ white-space: nowrap;
201
+ box-shadow: var(--shadow-subtle);
202
+ letter-spacing: -0.01em;
203
+ }
204
+
205
+ .btn-session-delete {
206
+ border: 1px solid rgba(189, 70, 68, 0.45);
207
+ border-radius: var(--radius-sm);
208
+ background: linear-gradient(to bottom, rgba(255, 245, 245, 0.95) 0%, rgba(255, 255, 255, 0.9) 100%);
209
+ color: #b74545;
210
+ padding: 8px 12px;
211
+ font-size: var(--font-size-secondary);
212
+ font-weight: var(--font-weight-secondary);
213
+ cursor: pointer;
214
+ transition: all var(--transition-fast) var(--ease-spring);
215
+ white-space: nowrap;
216
+ box-shadow: var(--shadow-subtle);
217
+ letter-spacing: -0.01em;
218
+ }
219
+
220
+ .btn-session-refresh:hover {
221
+ border-color: var(--color-brand);
222
+ color: var(--color-brand);
223
+ transform: translateY(-1px);
224
+ }
225
+
226
+ .btn-session-refresh:disabled {
227
+ opacity: 0.5;
228
+ cursor: not-allowed;
229
+ transform: none;
230
+ }
231
+
232
+ .btn-session-export:hover,
233
+ .btn-session-open:hover {
234
+ border-color: var(--color-brand);
235
+ color: var(--color-brand);
236
+ transform: translateY(-1px);
237
+ }
238
+
239
+ .btn-session-export:disabled,
240
+ .btn-session-open:disabled {
241
+ opacity: 0.5;
242
+ cursor: not-allowed;
243
+ transform: none;
244
+ }
245
+
246
+ .btn-session-clone:hover {
247
+ border-color: var(--color-brand);
248
+ color: var(--color-brand);
249
+ transform: translateY(-1px);
250
+ }
251
+
252
+ .btn-session-clone:disabled {
253
+ opacity: 0.5;
254
+ cursor: not-allowed;
255
+ transform: none;
256
+ }
257
+
258
+ .btn-session-delete:hover {
259
+ border-color: rgba(189, 70, 68, 0.8);
260
+ color: #9f3b3b;
261
+ transform: translateY(-1px);
262
+ }
263
+
264
+ .btn-session-delete:disabled {
265
+ opacity: 0.5;
266
+ cursor: not-allowed;
267
+ transform: none;
268
+ }