clay-server 2.26.0-beta.1 → 2.26.0-beta.11

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 (42) hide show
  1. package/bin/cli.js +5 -9
  2. package/lib/browser-mcp-server.js +496 -0
  3. package/lib/daemon.js +1 -1
  4. package/lib/os-users.js +23 -0
  5. package/lib/project-debate.js +243 -95
  6. package/lib/project-mate-interaction.js +766 -0
  7. package/lib/project-memory.js +677 -0
  8. package/lib/project.js +546 -1361
  9. package/lib/public/app.js +817 -175
  10. package/lib/public/css/debate.css +224 -2
  11. package/lib/public/css/icon-strip.css +10 -10
  12. package/lib/public/css/input.css +296 -83
  13. package/lib/public/css/mates.css +56 -57
  14. package/lib/public/css/mention.css +7 -4
  15. package/lib/public/css/menus.css +7 -0
  16. package/lib/public/css/messages.css +17 -0
  17. package/lib/public/css/mobile-nav.css +3 -1
  18. package/lib/public/css/overlays.css +181 -0
  19. package/lib/public/css/rewind.css +79 -0
  20. package/lib/public/css/server-settings.css +1 -0
  21. package/lib/public/css/sidebar.css +10 -0
  22. package/lib/public/css/title-bar.css +189 -3
  23. package/lib/public/index.html +53 -16
  24. package/lib/public/modules/context-sources.js +328 -0
  25. package/lib/public/modules/debate.js +184 -97
  26. package/lib/public/modules/input.js +18 -1
  27. package/lib/public/modules/mate-knowledge.js +11 -11
  28. package/lib/public/modules/mate-memory.js +5 -5
  29. package/lib/public/modules/mate-sidebar.js +13 -9
  30. package/lib/public/modules/mention.js +40 -2
  31. package/lib/public/modules/notifications.js +109 -1
  32. package/lib/public/modules/rewind.js +36 -0
  33. package/lib/public/modules/sidebar.js +107 -28
  34. package/lib/public/modules/terminal.js +8 -0
  35. package/lib/public/modules/theme.js +2 -1
  36. package/lib/public/modules/tools.js +69 -24
  37. package/lib/sdk-bridge.js +81 -7
  38. package/lib/sdk-worker.js +13 -1
  39. package/lib/server.js +42 -0
  40. package/lib/sessions.js +39 -7
  41. package/lib/terminal-manager.js +36 -6
  42. package/package.json +2 -2
@@ -1,3 +1,121 @@
1
+ /* --- Debate floor mode: hide non-essential input controls --- */
2
+ .debate-floor-mode #schedule-btn,
3
+ .debate-floor-mode #ask-mate-btn,
4
+ .debate-floor-mode #config-chip-wrap,
5
+ .debate-floor-mode #context-sources-bar,
6
+ .debate-floor-mode #mention-menu,
7
+ .debate-floor-mode #slash-menu,
8
+ .debate-floor-mode #suggestion-chips {
9
+ display: none !important;
10
+ }
11
+
12
+ .debate-floor-banner {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 8px;
16
+ padding: 8px 16px;
17
+ background: color-mix(in srgb, var(--accent) 8%, var(--bg));
18
+ border-bottom: 1px solid var(--border);
19
+ font-size: 13px;
20
+ font-weight: 600;
21
+ color: var(--accent);
22
+ }
23
+
24
+ .debate-floor-banner svg {
25
+ width: 14px;
26
+ height: 14px;
27
+ }
28
+
29
+ .debate-floor-banner .debate-floor-done-btn {
30
+ margin-left: auto;
31
+ padding: 4px 12px;
32
+ border: 1px solid var(--accent);
33
+ border-radius: 6px;
34
+ background: transparent;
35
+ color: var(--accent);
36
+ font-size: 12px;
37
+ font-weight: 600;
38
+ cursor: pointer;
39
+ }
40
+
41
+ .debate-floor-banner .debate-floor-end-btn {
42
+ border-color: #e74c3c;
43
+ color: #e74c3c;
44
+ }
45
+
46
+ /* --- Debate ended status line --- */
47
+ .debate-ended-status-line {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ gap: 6px;
52
+ padding: 12px 16px;
53
+ font-size: 13px;
54
+ font-weight: 600;
55
+ color: var(--text-muted);
56
+ }
57
+
58
+ .debate-ended-status-line svg {
59
+ width: 16px;
60
+ height: 16px;
61
+ color: var(--accent);
62
+ }
63
+
64
+ /* --- Debate loop group in sidebar --- */
65
+ .session-loop-group.debate {
66
+ border-left: 2px solid var(--accent);
67
+ }
68
+
69
+ .session-loop-icon.debate {
70
+ color: var(--accent);
71
+ }
72
+
73
+ .session-loop-count.debate {
74
+ color: var(--accent);
75
+ }
76
+
77
+ /* --- Debate session icon in sidebar --- */
78
+ .session-debate-icon {
79
+ display: inline-flex;
80
+ align-items: center;
81
+ margin-right: 4px;
82
+ color: var(--accent);
83
+ vertical-align: middle;
84
+ }
85
+ .session-debate-icon svg {
86
+ width: 12px;
87
+ height: 12px;
88
+ }
89
+
90
+ /* --- Debate pill button in mate sidebar (matches .new-ralph-pill) --- */
91
+ .mate-debate-pill {
92
+ display: inline-flex;
93
+ align-items: center;
94
+ justify-content: center;
95
+ gap: 3px;
96
+ height: 22px;
97
+ padding: 0 8px;
98
+ border: 1px solid var(--accent);
99
+ border-radius: 6px;
100
+ background: var(--accent-12, rgba(108, 92, 231, 0.12));
101
+ color: var(--accent);
102
+ font-size: 10px;
103
+ font-weight: 700;
104
+ font-family: inherit;
105
+ letter-spacing: 0.2px;
106
+ cursor: pointer;
107
+ white-space: nowrap;
108
+ transition: background 0.15s, color 0.15s;
109
+ }
110
+ .mate-debate-pill .lucide {
111
+ width: 10px;
112
+ height: 10px;
113
+ }
114
+ .mate-debate-pill:hover {
115
+ background: var(--accent);
116
+ color: #fff;
117
+ }
118
+
1
119
  /* --- Debate header badges (inline with session title) --- */
2
120
  .debate-header-badge {
3
121
  display: inline-flex;
@@ -590,6 +708,7 @@
590
708
  transition: color 0.15s, background 0.15s, border-color 0.15s;
591
709
  }
592
710
 
711
+ #debate-pdf-btn.hidden { display: none; }
593
712
  #debate-pdf-btn .lucide { width: 15px; height: 15px; }
594
713
  #debate-pdf-btn:hover { color: var(--text-secondary); background: rgba(var(--overlay-rgb),0.04); border-color: var(--border); }
595
714
  #debate-pdf-btn:disabled { opacity: 0.5; cursor: default; }
@@ -850,6 +969,27 @@
850
969
  padding: 0 4px;
851
970
  }
852
971
 
972
+ /* Wizard pages */
973
+ .debate-wizard-page { display: none; }
974
+ .debate-wizard-page.active { display: block; }
975
+
976
+ /* Step dots */
977
+ .debate-wizard-steps {
978
+ display: flex;
979
+ gap: 6px;
980
+ align-items: center;
981
+ }
982
+ .debate-step-dot {
983
+ width: 8px;
984
+ height: 8px;
985
+ border-radius: 50%;
986
+ background: var(--border);
987
+ transition: background 0.2s;
988
+ }
989
+ .debate-step-dot.active {
990
+ background: var(--accent);
991
+ }
992
+
853
993
  .debate-modal-body {
854
994
  padding: 16px 20px;
855
995
  }
@@ -945,9 +1085,10 @@
945
1085
  }
946
1086
 
947
1087
  .debate-skip-setup-row {
948
- margin-top: 12px;
949
- padding: 8px 0;
1088
+ margin: 0;
1089
+ padding: 0;
950
1090
  }
1091
+ .debate-skip-setup-row.hidden { display: none; }
951
1092
 
952
1093
  .debate-toggle-label {
953
1094
  display: flex;
@@ -971,13 +1112,17 @@
971
1112
 
972
1113
  .debate-modal-footer {
973
1114
  display: flex;
1115
+ align-items: center;
974
1116
  justify-content: flex-end;
975
1117
  gap: 8px;
976
1118
  padding: 12px 20px;
977
1119
  border-top: 1px solid var(--border);
978
1120
  }
979
1121
 
1122
+ .debate-modal-footer .hidden { display: none; }
1123
+
980
1124
  .debate-btn-cancel {
1125
+ margin-right: auto;
981
1126
  padding: 8px 16px;
982
1127
  border: 1px solid var(--border);
983
1128
  border-radius: 8px;
@@ -988,6 +1133,42 @@
988
1133
  cursor: pointer;
989
1134
  }
990
1135
 
1136
+ .debate-btn-back {
1137
+ margin-right: auto;
1138
+ padding: 8px 16px;
1139
+ border: 1px solid var(--border);
1140
+ border-radius: 8px;
1141
+ background: var(--bg);
1142
+ color: var(--text-muted);
1143
+ font-size: 13px;
1144
+ font-weight: 600;
1145
+ cursor: pointer;
1146
+ }
1147
+
1148
+ .debate-btn-quick {
1149
+ padding: 8px 20px;
1150
+ border: 1px solid var(--accent);
1151
+ border-radius: 8px;
1152
+ background: var(--bg);
1153
+ color: var(--accent);
1154
+ font-size: 13px;
1155
+ font-weight: 600;
1156
+ cursor: pointer;
1157
+ transition: opacity 0.2s;
1158
+ }
1159
+
1160
+ .debate-btn-next {
1161
+ padding: 8px 20px;
1162
+ border: none;
1163
+ border-radius: 8px;
1164
+ background: var(--accent);
1165
+ color: #fff;
1166
+ font-size: 13px;
1167
+ font-weight: 600;
1168
+ cursor: pointer;
1169
+ transition: opacity 0.2s;
1170
+ }
1171
+
991
1172
  .debate-btn-start {
992
1173
  padding: 8px 20px;
993
1174
  border: none;
@@ -1151,6 +1332,41 @@
1151
1332
  background: color-mix(in srgb, var(--accent) 10%, transparent);
1152
1333
  }
1153
1334
 
1335
+ .debate-bottom-hand.raised {
1336
+ background: var(--accent);
1337
+ color: #fff;
1338
+ border-color: var(--accent);
1339
+ }
1340
+
1341
+ .debate-bottom-hand.raised svg {
1342
+ color: #fff;
1343
+ }
1344
+
1345
+ .debate-bottom-hand.hidden { display: none; }
1346
+
1347
+ .debate-bottom-waiting {
1348
+ display: inline-flex;
1349
+ align-items: center;
1350
+ gap: 6px;
1351
+ font-size: 13px;
1352
+ color: var(--accent);
1353
+ font-weight: 500;
1354
+ animation: debate-waiting-pulse 2s ease-in-out infinite;
1355
+ }
1356
+
1357
+ .debate-bottom-waiting.hidden { display: none; }
1358
+
1359
+ .debate-bottom-waiting svg {
1360
+ width: 14px;
1361
+ height: 14px;
1362
+ animation: spin 1s linear infinite;
1363
+ }
1364
+
1365
+ @keyframes debate-waiting-pulse {
1366
+ 0%, 100% { opacity: 1; }
1367
+ 50% { opacity: 0.6; }
1368
+ }
1369
+
1154
1370
  .debate-bottom-stop {
1155
1371
  display: inline-flex;
1156
1372
  align-items: center;
@@ -1222,6 +1438,12 @@
1222
1438
  border-color: var(--accent);
1223
1439
  }
1224
1440
 
1441
+ @media (max-width: 768px) {
1442
+ .debate-bottom-conclude {
1443
+ padding-bottom: calc(56px + var(--safe-bottom, 0px));
1444
+ }
1445
+ }
1446
+
1225
1447
  .debate-bottom-continue {
1226
1448
  padding: 8px 16px;
1227
1449
  border: 1px solid var(--accent);
@@ -222,11 +222,13 @@
222
222
  animation: permShake 2s ease-in-out infinite;
223
223
  }
224
224
 
225
- /* Mate status dot (top-left, same as project icons) */
225
+ /* Mate status dot (bottom-right, matching user online dot) */
226
226
  .icon-strip-mate .icon-strip-status {
227
- top: -1px;
228
- left: -1px;
229
- border-color: var(--bg-alt);
227
+ top: auto;
228
+ left: auto;
229
+ bottom: 5px;
230
+ right: 5px;
231
+ border-color: var(--sidebar-bg);
230
232
  z-index: 3;
231
233
  }
232
234
 
@@ -824,13 +826,11 @@
824
826
  box-shadow: 0 0 0 2px var(--accent);
825
827
  }
826
828
 
827
- /* Primary mate: green ring + full opacity */
829
+ /* Primary mate: full color (no desaturate), no ring */
828
830
  .icon-strip-primary-mate {
829
- opacity: 0.9;
830
- box-shadow: 0 0 0 2px #00b894;
831
- }
832
- .icon-strip-user:hover .icon-strip-primary-mate {
833
- box-shadow: 0 0 0 2px #00b894;
831
+ opacity: 1;
832
+ border-radius: 8px;
833
+ filter: saturate(1) !important;
834
834
  }
835
835
 
836
836
  /* Online status dot (bottom-right on avatar, like project blink dot) */