clay-server 2.8.2 → 2.9.0
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.
- package/README.md +2 -0
- package/bin/cli.js +122 -2
- package/lib/config.js +20 -1
- package/lib/daemon.js +40 -0
- package/lib/pages.js +670 -27
- package/lib/project.js +267 -16
- package/lib/public/app.js +74 -14
- package/lib/public/css/admin.css +576 -0
- package/lib/public/css/icon-strip.css +1 -0
- package/lib/public/css/menus.css +16 -11
- package/lib/public/css/overlays.css +2 -4
- package/lib/public/css/sidebar.css +49 -0
- package/lib/public/css/title-bar.css +45 -1
- package/lib/public/index.html +38 -8
- package/lib/public/modules/admin.js +631 -0
- package/lib/public/modules/markdown.js +9 -5
- package/lib/public/modules/profile.js +21 -0
- package/lib/public/modules/project-settings.js +4 -1
- package/lib/public/modules/server-settings.js +13 -0
- package/lib/public/modules/sidebar.js +111 -5
- package/lib/public/style.css +1 -0
- package/lib/push.js +6 -0
- package/lib/server.js +1075 -27
- package/lib/sessions.js +127 -41
- package/lib/smtp.js +221 -0
- package/lib/users.js +459 -0
- package/package.json +2 -1
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
position: relative;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
.top-bar-center {
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
gap: 8px;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
.top-bar-title {
|
|
17
23
|
display: flex;
|
|
18
24
|
align-items: center;
|
|
@@ -176,13 +182,51 @@
|
|
|
176
182
|
padding: 0 10px;
|
|
177
183
|
background: var(--sidebar-bg);
|
|
178
184
|
border-bottom: 1px solid var(--border-subtle);
|
|
185
|
+
gap: 6px;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.sidebar-presence {
|
|
189
|
+
display: flex;
|
|
190
|
+
align-items: center;
|
|
191
|
+
flex-shrink: 0;
|
|
192
|
+
margin-left: auto;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.sidebar-presence-avatar {
|
|
196
|
+
width: 22px;
|
|
197
|
+
height: 22px;
|
|
198
|
+
border-radius: 50%;
|
|
199
|
+
border: 2px solid var(--sidebar-bg);
|
|
200
|
+
background: var(--bg-alt);
|
|
201
|
+
margin-left: -6px;
|
|
202
|
+
cursor: default;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.sidebar-presence-avatar:first-child {
|
|
206
|
+
margin-left: 0;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.sidebar-presence-more {
|
|
210
|
+
width: 22px;
|
|
211
|
+
height: 22px;
|
|
212
|
+
border-radius: 50%;
|
|
213
|
+
border: 2px solid var(--sidebar-bg);
|
|
214
|
+
background: var(--bg-alt);
|
|
215
|
+
margin-left: -6px;
|
|
216
|
+
font-size: 9px;
|
|
217
|
+
font-weight: 700;
|
|
218
|
+
color: var(--text-muted);
|
|
219
|
+
display: flex;
|
|
220
|
+
align-items: center;
|
|
221
|
+
justify-content: center;
|
|
222
|
+
line-height: 1;
|
|
179
223
|
}
|
|
180
224
|
|
|
181
225
|
.title-bar-project-dropdown {
|
|
182
226
|
display: flex;
|
|
183
227
|
align-items: center;
|
|
184
228
|
gap: 6px;
|
|
185
|
-
|
|
229
|
+
flex: 1;
|
|
186
230
|
min-width: 0;
|
|
187
231
|
background: none;
|
|
188
232
|
border: none;
|
package/lib/public/index.html
CHANGED
|
@@ -23,14 +23,8 @@
|
|
|
23
23
|
<div id="layout">
|
|
24
24
|
<!-- === Top Bar (full width, forms reverse-ㄱ with icon strip) === -->
|
|
25
25
|
<div id="top-bar">
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
<!-- Pill badges (formerly banners) -->
|
|
29
|
-
<div id="skip-perms-pill" class="top-bar-pill pill-error hidden"><i data-lucide="shield-off"></i> <span>Skip perms</span></div>
|
|
30
|
-
<div id="onboarding-pill" class="top-bar-pill pill-accent hidden">
|
|
31
|
-
<span class="onboarding-pill-text" id="onboarding-pill-text"></span>
|
|
32
|
-
<button id="onboarding-pill-close" class="pill-close" aria-label="Dismiss"><i data-lucide="x"></i></button>
|
|
33
|
-
</div>
|
|
26
|
+
<div class="top-bar-center">
|
|
27
|
+
<a href="https://github.com/chadbyte/clay" target="_blank" rel="noopener" class="top-bar-title"><img class="top-bar-icon" src="favicon-banded.png" width="16" height="16" alt="">Clay <span id="footer-version" class="footer-version"></span></a>
|
|
34
28
|
<div id="update-pill-wrap" class="hidden">
|
|
35
29
|
<button id="update-pill" class="top-bar-pill pill-success"><i data-lucide="arrow-up-circle"></i> <span id="update-version"></span></button>
|
|
36
30
|
<div id="update-popover" class="top-bar-popover">
|
|
@@ -38,6 +32,14 @@
|
|
|
38
32
|
<div class="popover-row"><div class="popover-label">Or run manually:</div><div class="popover-cmd"><code>npx clay-server@latest</code><button class="popover-copy" title="Copy"><i data-lucide="copy"></i></button></div></div>
|
|
39
33
|
</div>
|
|
40
34
|
</div>
|
|
35
|
+
<div id="onboarding-pill" class="top-bar-pill pill-accent hidden">
|
|
36
|
+
<span class="onboarding-pill-text" id="onboarding-pill-text"></span>
|
|
37
|
+
<button id="onboarding-pill-close" class="pill-close" aria-label="Dismiss"><i data-lucide="x"></i></button>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="top-bar-actions">
|
|
41
|
+
<!-- Pill badges -->
|
|
42
|
+
<div id="skip-perms-pill" class="top-bar-pill pill-error hidden"><i data-lucide="shield-off"></i> <span>Skip perms</span></div>
|
|
41
43
|
<span id="client-count" class="hidden"></span>
|
|
42
44
|
<div id="debug-menu-wrap" class="hidden">
|
|
43
45
|
<button id="debug-btn" title="Debug"><i data-lucide="bug"></i></button>
|
|
@@ -148,6 +150,7 @@
|
|
|
148
150
|
<span class="title-bar-project-name" id="title-bar-project-name"></span>
|
|
149
151
|
<i data-lucide="chevron-down" class="title-bar-chevron"></i>
|
|
150
152
|
</button>
|
|
153
|
+
<span id="sidebar-presence" class="sidebar-presence"></span>
|
|
151
154
|
</div>
|
|
152
155
|
<div id="sidebar">
|
|
153
156
|
<div id="sidebar-tools">
|
|
@@ -564,6 +567,7 @@
|
|
|
564
567
|
<div class="user-island-avatar"><span class="user-island-avatar-letter">?</span></div>
|
|
565
568
|
<div class="user-island-info">
|
|
566
569
|
<span class="user-island-name">Awesome Clay User</span>
|
|
570
|
+
<span class="user-island-cta hidden">Personalize your name</span>
|
|
567
571
|
</div>
|
|
568
572
|
</div>
|
|
569
573
|
<div class="user-island-actions">
|
|
@@ -619,6 +623,12 @@
|
|
|
619
623
|
<button class="settings-nav-item" data-section="models"><span>Model & Behavior</span></button>
|
|
620
624
|
<button class="settings-nav-item" data-section="claudemd"><span>CLAUDE.md</span></button>
|
|
621
625
|
<button class="settings-nav-item" data-section="environment"><span>Environment Variables</span></button>
|
|
626
|
+
<div class="settings-nav-separator settings-admin-only"></div>
|
|
627
|
+
<div class="settings-nav-category settings-admin-only">Admin</div>
|
|
628
|
+
<button class="settings-nav-item settings-admin-only" data-section="admin-users"><span>Users</span></button>
|
|
629
|
+
<button class="settings-nav-item settings-admin-only" data-section="admin-invites"><span>Invites</span></button>
|
|
630
|
+
<button class="settings-nav-item settings-admin-only" data-section="admin-projects"><span>Projects</span></button>
|
|
631
|
+
<button class="settings-nav-item settings-admin-only" data-section="admin-smtp"><span>Email (SMTP)</span></button>
|
|
622
632
|
<div class="settings-nav-separator"></div>
|
|
623
633
|
<div class="settings-nav-category">Server</div>
|
|
624
634
|
<button class="settings-nav-item" data-section="security"><span>Security</span></button>
|
|
@@ -879,6 +889,25 @@
|
|
|
879
889
|
</div>
|
|
880
890
|
</div>
|
|
881
891
|
</div>
|
|
892
|
+
<!-- Admin sections (multi-user, admin only) -->
|
|
893
|
+
<div class="server-settings-section settings-admin-only" data-section="admin-users">
|
|
894
|
+
<h2>Users</h2>
|
|
895
|
+
<div class="settings-card" id="admin-users-body"></div>
|
|
896
|
+
</div>
|
|
897
|
+
<div class="server-settings-section settings-admin-only" data-section="admin-invites">
|
|
898
|
+
<h2>Invites</h2>
|
|
899
|
+
<div class="settings-card" id="admin-invites-body"></div>
|
|
900
|
+
</div>
|
|
901
|
+
<div class="server-settings-section settings-admin-only" data-section="admin-projects">
|
|
902
|
+
<h2>Project Access</h2>
|
|
903
|
+
<div class="settings-card" id="admin-projects-body"></div>
|
|
904
|
+
</div>
|
|
905
|
+
<div class="server-settings-section settings-admin-only" data-section="admin-smtp">
|
|
906
|
+
<h2>Email (SMTP)</h2>
|
|
907
|
+
<div class="settings-card" id="admin-smtp-body"></div>
|
|
908
|
+
</div>
|
|
909
|
+
|
|
910
|
+
</div>
|
|
882
911
|
</div>
|
|
883
912
|
</div>
|
|
884
913
|
<div class="server-settings-close-col">
|
|
@@ -1357,6 +1386,7 @@
|
|
|
1357
1386
|
<script src="https://cdn.jsdelivr.net/npm/dompurify@3/dist/purify.min.js"></script>
|
|
1358
1387
|
<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js"></script>
|
|
1359
1388
|
<script src="https://cdn.jsdelivr.net/npm/lucide@0.468.0/dist/umd/lucide.min.js"></script>
|
|
1389
|
+
<script src="https://cdn.jsdelivr.net/npm/twemoji@14.0.2/dist/twemoji.min.js"></script>
|
|
1360
1390
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js"></script>
|
|
1361
1391
|
<script src="https://cdn.jsdelivr.net/npm/qrcode-generator@1.4.4/qrcode.min.js"></script>
|
|
1362
1392
|
<script src="https://cdn.jsdelivr.net/npm/@xterm/xterm@5/lib/xterm.min.js"></script>
|