codexmate 0.0.56 → 0.0.57

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 (31) hide show
  1. package/cli.js +680 -129
  2. package/lib/task-orchestrator.js +90 -21
  3. package/lib/task-workspace-chat.js +292 -0
  4. package/package.json +2 -2
  5. package/web-ui/app.js +55 -129
  6. package/web-ui/modules/app.computed.main-tabs.mjs +304 -7
  7. package/web-ui/modules/app.methods.agents.mjs +3 -0
  8. package/web-ui/modules/app.methods.claude-config.mjs +65 -25
  9. package/web-ui/modules/app.methods.navigation.mjs +67 -83
  10. package/web-ui/modules/app.methods.openclaw-editing.mjs +3 -6
  11. package/web-ui/modules/app.methods.session-actions.mjs +1 -12
  12. package/web-ui/modules/app.methods.session-browser.mjs +23 -54
  13. package/web-ui/modules/app.methods.session-trash.mjs +0 -1
  14. package/web-ui/modules/app.methods.startup-claude.mjs +16 -31
  15. package/web-ui/modules/app.methods.task-orchestration.mjs +347 -8
  16. package/web-ui/modules/app.methods.tool-config-permissions.mjs +0 -3
  17. package/web-ui/modules/app.methods.web-ui-preferences.mjs +415 -68
  18. package/web-ui/modules/config-template-confirm-pref.mjs +2 -3
  19. package/web-ui/modules/i18n/locales/en.mjs +146 -26
  20. package/web-ui/modules/i18n/locales/ja.mjs +143 -23
  21. package/web-ui/modules/i18n/locales/vi.mjs +145 -25
  22. package/web-ui/modules/i18n/locales/zh-tw.mjs +146 -26
  23. package/web-ui/modules/i18n/locales/zh.mjs +148 -28
  24. package/web-ui/modules/i18n.mjs +5 -12
  25. package/web-ui/modules/sessions-filters-url.mjs +1 -2
  26. package/web-ui/partials/index/layout-header.html +37 -14
  27. package/web-ui/partials/index/panel-orchestration.html +489 -282
  28. package/web-ui/res/web-ui-render.precompiled.js +1049 -610
  29. package/web-ui/styles/layout-shell.css +157 -1
  30. package/web-ui/styles/navigation-panels.css +11 -0
  31. package/web-ui/styles/task-orchestration.css +2161 -4
@@ -21,6 +21,7 @@ body::after {
21
21
 
22
22
  :root {
23
23
  --side-rail-width: 248px;
24
+ --side-rail-collapsed-width: 136px;
24
25
  }
25
26
 
26
27
  /* ============================================
@@ -28,7 +29,7 @@ body::after {
28
29
  ============================================ */
29
30
  .app-shell {
30
31
  display: grid;
31
- grid-template-columns: 248px minmax(0, 1fr);
32
+ grid-template-columns: var(--side-rail-width, 248px) minmax(0, 1fr);
32
33
  gap: 0;
33
34
  align-items: stretch;
34
35
  min-height: 100vh;
@@ -37,6 +38,10 @@ body::after {
37
38
  background: transparent;
38
39
  }
39
40
 
41
+ .app-shell.sidebar-collapsed {
42
+ --side-rail-width: var(--side-rail-collapsed-width, 136px);
43
+ }
44
+
40
45
  .app-shell.standalone {
41
46
  grid-template-columns: 1fr;
42
47
  }
@@ -58,6 +63,40 @@ body::after {
58
63
  scrollbar-width: none;
59
64
  -ms-overflow-style: none;
60
65
  backdrop-filter: blur(18px) saturate(130%);
66
+ width: var(--side-rail-width, 248px);
67
+ transition: width 180ms var(--ease-out-expo), padding 180ms var(--ease-out-expo);
68
+ }
69
+
70
+ .side-rail-collapse-toggle {
71
+ position: absolute;
72
+ top: 50%;
73
+ right: -13px;
74
+ z-index: 5;
75
+ width: 26px;
76
+ height: 26px;
77
+ border-radius: 999px;
78
+ border: 1px solid rgba(137, 111, 94, 0.18);
79
+ background: rgba(255, 253, 250, 0.96);
80
+ color: var(--color-text-secondary);
81
+ box-shadow: 0 8px 18px rgba(92, 68, 52, 0.10);
82
+ cursor: pointer;
83
+ display: inline-flex;
84
+ align-items: center;
85
+ justify-content: center;
86
+ font-size: 18px;
87
+ line-height: 1;
88
+ transform: translateY(-50%);
89
+ transition: color 160ms var(--ease-out-expo), border-color 160ms var(--ease-out-expo), transform 160ms var(--ease-out-expo);
90
+ }
91
+
92
+ .side-rail-collapse-toggle:hover {
93
+ color: var(--color-brand-dark);
94
+ border-color: rgba(200, 121, 99, 0.35);
95
+ transform: translate(-1px, -50%);
96
+ }
97
+
98
+ .sidebar-collapsed .side-rail-collapse-toggle:hover {
99
+ transform: translate(1px, -50%);
61
100
  }
62
101
 
63
102
  .side-rail::-webkit-scrollbar {
@@ -80,6 +119,7 @@ body::after {
80
119
  flex-direction: column;
81
120
  flex: 1 1 auto;
82
121
  gap: 0;
122
+ padding-bottom: 64px;
83
123
  overflow-y: auto;
84
124
  scrollbar-width: none;
85
125
  -ms-overflow-style: none;
@@ -356,6 +396,19 @@ body::after {
356
396
  position: relative;
357
397
  }
358
398
 
399
+ .side-item-icon {
400
+ display: none;
401
+ width: 28px;
402
+ height: 28px;
403
+ border-radius: 10px;
404
+ align-items: center;
405
+ justify-content: center;
406
+ font-size: 15px;
407
+ font-weight: 700;
408
+ line-height: 1;
409
+ color: currentColor;
410
+ }
411
+
359
412
  .side-item::before {
360
413
  content: "";
361
414
  position: absolute;
@@ -374,6 +427,17 @@ body::after {
374
427
  transform: translateX(2px);
375
428
  }
376
429
 
430
+ .side-item.side-item-disabled,
431
+ .side-item.side-item-disabled:hover {
432
+ border-color: transparent;
433
+ background: transparent;
434
+ color: var(--color-text-muted);
435
+ cursor: not-allowed;
436
+ opacity: 0.62;
437
+ transform: none;
438
+ box-shadow: none;
439
+ }
440
+
377
441
  .side-item.active,
378
442
  .side-item.nav-intent-active {
379
443
  border-color: rgba(200, 121, 99, 0.22);
@@ -438,6 +502,98 @@ body::after {
438
502
  flex: 0 0 auto;
439
503
  }
440
504
 
505
+ .sidebar-collapsed .side-rail {
506
+ padding: 14px 8px;
507
+ }
508
+
509
+ .sidebar-collapsed .brand-block {
510
+ padding: 14px 6px 16px;
511
+ align-items: stretch;
512
+ }
513
+
514
+ .sidebar-collapsed .brand-head {
515
+ justify-content: flex-start;
516
+ gap: 8px;
517
+ }
518
+
519
+ .sidebar-collapsed .side-item-meta {
520
+ display: none;
521
+ }
522
+
523
+ .sidebar-collapsed .brand-copy,
524
+ .sidebar-collapsed .side-update-copy {
525
+ display: flex;
526
+ }
527
+
528
+ .sidebar-collapsed .brand-kicker {
529
+ font-size: 13px;
530
+ white-space: nowrap;
531
+ }
532
+
533
+ .sidebar-collapsed .side-update-notice {
534
+ padding: 7px 8px;
535
+ gap: 6px;
536
+ }
537
+
538
+ .sidebar-collapsed .side-section {
539
+ padding: 5px 0;
540
+ align-items: stretch;
541
+ }
542
+
543
+ .sidebar-collapsed .side-section + .side-section {
544
+ border-top-color: rgba(137, 111, 94, 0.06);
545
+ }
546
+
547
+ .sidebar-collapsed .side-item {
548
+ width: 100%;
549
+ min-height: 36px;
550
+ padding: 8px 10px;
551
+ align-items: center;
552
+ justify-content: center;
553
+ text-align: center;
554
+ gap: 0;
555
+ border-radius: 14px;
556
+ }
557
+
558
+ .sidebar-collapsed .side-item-icon {
559
+ display: none;
560
+ }
561
+
562
+ .sidebar-collapsed .side-section-title {
563
+ display: block;
564
+ padding: 0 10px;
565
+ margin: 4px 0 5px;
566
+ text-align: left;
567
+ white-space: nowrap;
568
+ }
569
+
570
+ .sidebar-collapsed .side-item-title {
571
+ display: block;
572
+ max-width: 100%;
573
+ white-space: nowrap;
574
+ font-size: 12px;
575
+ line-height: 1.2;
576
+ }
577
+
578
+ .sidebar-collapsed .side-item::before {
579
+ left: -3px;
580
+ }
581
+
582
+ .sidebar-collapsed .side-rail-lang {
583
+ padding-inline: 4px;
584
+ }
585
+
586
+ .sidebar-collapsed .side-rail-lang-actions {
587
+ justify-content: center;
588
+ width: calc(100% - 8px);
589
+ }
590
+
591
+ .sidebar-collapsed .side-rail-lang .language-settings-link {
592
+ display: inline-flex;
593
+ padding-inline: 10px;
594
+ font-size: 12px;
595
+ }
596
+
441
597
  @media (min-width: 721px) {
442
598
  body:not(.force-compact) #app > .top-tabs {
443
599
  display: none;
@@ -305,6 +305,17 @@
305
305
  transform: translateY(-1px);
306
306
  }
307
307
 
308
+ .top-tab.top-tab-disabled,
309
+ .top-tab.top-tab-disabled:hover {
310
+ border-color: var(--color-border-soft);
311
+ background: rgba(255, 255, 255, 0.38);
312
+ color: var(--color-text-muted);
313
+ cursor: not-allowed;
314
+ opacity: 0.64;
315
+ transform: none;
316
+ box-shadow: none;
317
+ }
318
+
308
319
  .top-tab.active,
309
320
  .top-tab.nav-intent-active {
310
321
  border-color: rgba(200, 121, 99, 0.28);