@crewspaceai/server 2026.424.0-canary.0 → 2026.424.0-canary.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewspaceai/server",
3
- "version": "2026.424.0-canary.0",
3
+ "version": "2026.424.0-canary.2",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/crewspaceai/crewspace",
6
6
  "bugs": {
@@ -28,17 +28,17 @@
28
28
  ],
29
29
  "dependencies": {
30
30
  "@aws-sdk/client-s3": "^3.888.0",
31
- "@crewspaceai/adapter-claude-local": "2026.424.0-canary.0",
32
- "@crewspaceai/adapter-codex-local": "2026.424.0-canary.0",
33
- "@crewspaceai/adapter-cursor-local": "2026.424.0-canary.0",
34
- "@crewspaceai/adapter-gemini-local": "2026.424.0-canary.0",
35
- "@crewspaceai/adapter-openclaw-gateway": "2026.424.0-canary.0",
36
- "@crewspaceai/adapter-opencode-local": "2026.424.0-canary.0",
37
- "@crewspaceai/adapter-pi-local": "2026.424.0-canary.0",
38
- "@crewspaceai/adapter-utils": "2026.424.0-canary.0",
39
- "@crewspaceai/db": "2026.424.0-canary.0",
40
- "@crewspaceai/plugin-sdk": "2026.424.0-canary.0",
41
- "@crewspaceai/shared": "2026.424.0-canary.0",
31
+ "@crewspaceai/adapter-claude-local": "2026.424.0-canary.2",
32
+ "@crewspaceai/adapter-codex-local": "2026.424.0-canary.2",
33
+ "@crewspaceai/adapter-cursor-local": "2026.424.0-canary.2",
34
+ "@crewspaceai/adapter-gemini-local": "2026.424.0-canary.2",
35
+ "@crewspaceai/adapter-openclaw-gateway": "2026.424.0-canary.2",
36
+ "@crewspaceai/adapter-opencode-local": "2026.424.0-canary.2",
37
+ "@crewspaceai/adapter-pi-local": "2026.424.0-canary.2",
38
+ "@crewspaceai/adapter-utils": "2026.424.0-canary.2",
39
+ "@crewspaceai/db": "2026.424.0-canary.2",
40
+ "@crewspaceai/plugin-sdk": "2026.424.0-canary.2",
41
+ "@crewspaceai/shared": "2026.424.0-canary.2",
42
42
  "ajv": "^8.18.0",
43
43
  "ajv-formats": "^3.0.1",
44
44
  "better-auth": "1.4.18",
@@ -58,7 +58,7 @@
58
58
  "sharp": "^0.34.5",
59
59
  "ws": "^8.19.0",
60
60
  "zod": "^3.24.2",
61
- "hermes-crewspace-adapter": "2026.424.0-canary.0"
61
+ "hermes-crewspace-adapter": "2026.424.0-canary.2"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@types/express": "^5.0.0",
@@ -0,0 +1,376 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8"/>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1"/>
6
+ <title>CrewSpace — Logo</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono&display=swap" rel="stylesheet"/>
8
+ <style>
9
+ * { box-sizing: border-box; margin: 0; padding: 0; }
10
+ body { background: #07091a; font-family: 'Space Grotesk', sans-serif; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 48px; padding: 60px 40px; }
11
+
12
+ h2 { font-family: 'Space Mono', monospace; font-size: 9px; letter-spacing: 4px; color: #7b5ff5; text-transform: uppercase; margin-bottom: 20px; }
13
+
14
+ /* ── Icon-only showcase ── */
15
+ .showcase { display: flex; flex-direction: column; align-items: center; gap: 32px; }
16
+ .sizes { display: flex; align-items: center; gap: 40px; }
17
+ .size-item { display: flex; flex-direction: column; align-items: center; gap: 10px; }
18
+ .size-label { font-family: 'Space Mono', monospace; font-size: 9px; letter-spacing: 2px; color: #444a7a; }
19
+
20
+ /* ── Context mockups ── */
21
+ .contexts { display: flex; gap: 24px; align-items: flex-start; }
22
+
23
+ /* Sidebar mockup */
24
+ .sidebar-mock {
25
+ width: 200px;
26
+ background: #0d0f20;
27
+ border: 1px solid #1e2248;
28
+ border-radius: 12px;
29
+ overflow: hidden;
30
+ }
31
+ .sidebar-header {
32
+ display: flex;
33
+ align-items: center;
34
+ gap: 8px;
35
+ padding: 10px 14px;
36
+ border-bottom: 1px solid #1e2248;
37
+ }
38
+ .sidebar-brand { font-size: 13px; font-weight: 700; color: #e8e4ff; letter-spacing: -0.3px; }
39
+ .sidebar-nav { padding: 10px 10px; display: flex; flex-direction: column; gap: 2px; }
40
+ .nav-item { padding: 6px 10px; border-radius: 6px; font-size: 12px; color: #6b7099; display: flex; align-items: center; gap: 8px; }
41
+ .nav-item.active { background: rgba(123,95,245,0.12); color: #a08ef8; }
42
+ .nav-dot { width: 8px; height: 8px; border-radius: 2px; background: currentColor; opacity: 0.5; }
43
+
44
+ /* Rail mockup */
45
+ .rail-mock {
46
+ width: 60px;
47
+ background: #0d0f20;
48
+ border: 1px solid #1e2248;
49
+ border-radius: 12px;
50
+ display: flex;
51
+ flex-direction: column;
52
+ align-items: center;
53
+ padding: 12px 0;
54
+ gap: 12px;
55
+ }
56
+ .rail-header { display: flex; align-items: center; justify-content: center; }
57
+ .company-dot { width: 36px; height: 36px; border-radius: 10px; background: #1e2248; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: #7b5ff5; }
58
+
59
+ /* Light bg context */
60
+ .light-mock {
61
+ width: 200px;
62
+ background: #f4f3ff;
63
+ border: 1px solid #ddd8ff;
64
+ border-radius: 12px;
65
+ overflow: hidden;
66
+ }
67
+ .light-header {
68
+ display: flex;
69
+ align-items: center;
70
+ gap: 8px;
71
+ padding: 10px 14px;
72
+ border-bottom: 1px solid #ddd8ff;
73
+ }
74
+ .light-brand { font-size: 13px; font-weight: 700; color: #0e0a2a; letter-spacing: -0.3px; }
75
+ .light-nav { padding: 10px 10px; display: flex; flex-direction: column; gap: 2px; }
76
+ .light-item { padding: 6px 10px; border-radius: 6px; font-size: 12px; color: #9998bb; display: flex; align-items: center; gap: 8px; }
77
+ .light-item.active { background: rgba(123,95,245,0.1); color: #7b5ff5; }
78
+
79
+ /* divider */
80
+ .divider { width: 1px; height: 200px; background: #1e2248; }
81
+ .section-title { font-family: 'Space Mono', monospace; font-size: 9px; letter-spacing: 3px; color: #444a7a; text-align: center; margin-bottom: 8px; text-transform: uppercase; }
82
+ </style>
83
+ </head>
84
+ <body>
85
+
86
+ <!-- ICON MARK SIZES -->
87
+ <div class="showcase">
88
+ <h2>CS Grid Mark — All Sizes</h2>
89
+ <div class="sizes">
90
+
91
+ <!-- 16px -->
92
+ <div class="size-item">
93
+ <svg viewBox="0 0 24 24" width="16" height="16" fill="none">
94
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
95
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
96
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
97
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
98
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
99
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
100
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
101
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
102
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
103
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
104
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
105
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
106
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
107
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
108
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
109
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
110
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
111
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
112
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
113
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
114
+ </svg>
115
+ <span class="size-label">16</span>
116
+ </div>
117
+
118
+ <!-- 24px -->
119
+ <div class="size-item">
120
+ <svg viewBox="0 0 24 24" width="24" height="24" fill="none">
121
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
122
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
123
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
124
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
125
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
126
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
127
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
128
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
129
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
130
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
131
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
132
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
133
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
134
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
135
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
136
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
137
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
138
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
139
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
140
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
141
+ </svg>
142
+ <span class="size-label">24</span>
143
+ </div>
144
+
145
+ <!-- 32px -->
146
+ <div class="size-item">
147
+ <svg viewBox="0 0 24 24" width="32" height="32" fill="none">
148
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
149
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
150
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
151
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
152
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
153
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
154
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
155
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
156
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
157
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
158
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
159
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
160
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
161
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
162
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
163
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
164
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
165
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
166
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
167
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
168
+ </svg>
169
+ <span class="size-label">32</span>
170
+ </div>
171
+
172
+ <!-- 48px -->
173
+ <div class="size-item">
174
+ <svg viewBox="0 0 24 24" width="48" height="48" fill="none">
175
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
176
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
177
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
178
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
179
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
180
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
181
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
182
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
183
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
184
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
185
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
186
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
187
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
188
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
189
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
190
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
191
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
192
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
193
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
194
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
195
+ </svg>
196
+ <span class="size-label">48</span>
197
+ </div>
198
+
199
+ <!-- 64px -->
200
+ <div class="size-item">
201
+ <svg viewBox="0 0 24 24" width="64" height="64" fill="none">
202
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
203
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
204
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
205
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
206
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
207
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
208
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
209
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
210
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
211
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
212
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
213
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
214
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
215
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
216
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
217
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
218
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
219
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
220
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
221
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
222
+ </svg>
223
+ <span class="size-label">64</span>
224
+ </div>
225
+
226
+ <!-- 96px -->
227
+ <div class="size-item">
228
+ <svg viewBox="0 0 24 24" width="96" height="96" fill="none">
229
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
230
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
231
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
232
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
233
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
234
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
235
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
236
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
237
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
238
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
239
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
240
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
241
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
242
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
243
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
244
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
245
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
246
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
247
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
248
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
249
+ </svg>
250
+ <span class="size-label">96</span>
251
+ </div>
252
+
253
+ </div>
254
+ </div>
255
+
256
+ <!-- IN-CONTEXT MOCKUPS -->
257
+ <div class="showcase">
258
+ <h2>In Context</h2>
259
+ <div class="contexts">
260
+
261
+ <!-- Dark sidebar -->
262
+ <div>
263
+ <p class="section-title">Sidebar · Dark</p>
264
+ <div class="sidebar-mock">
265
+ <div class="sidebar-header">
266
+ <svg viewBox="0 0 24 24" width="22" height="22" fill="none" style="flex-shrink:0">
267
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
268
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
269
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
270
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
271
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
272
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
273
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
274
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
275
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
276
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
277
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
278
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
279
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
280
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
281
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
282
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
283
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
284
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
285
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
286
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
287
+ </svg>
288
+ <span class="sidebar-brand">CrewSpace</span>
289
+ </div>
290
+ <div class="sidebar-nav">
291
+ <div class="nav-item active"><span class="nav-dot"></span> Dashboard</div>
292
+ <div class="nav-item"><span class="nav-dot"></span> Inbox</div>
293
+ <div class="nav-item"><span class="nav-dot"></span> Issues</div>
294
+ <div class="nav-item"><span class="nav-dot"></span> Agents</div>
295
+ </div>
296
+ </div>
297
+ </div>
298
+
299
+ <!-- Company rail -->
300
+ <div>
301
+ <p class="section-title">Company Rail</p>
302
+ <div class="rail-mock">
303
+ <div class="rail-header">
304
+ <svg viewBox="0 0 24 24" width="20" height="20" fill="none">
305
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
306
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
307
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
308
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
309
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
310
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
311
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
312
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
313
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
314
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
315
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
316
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
317
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
318
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
319
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
320
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
321
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
322
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
323
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
324
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
325
+ </svg>
326
+ </div>
327
+ <div style="width:1px;background:#1e2248;margin:0 auto;height:8px"></div>
328
+ <div class="company-dot">A</div>
329
+ <div class="company-dot" style="background:#1a3028;color:#2ecfc1">B</div>
330
+ <div class="company-dot" style="opacity:.4">+</div>
331
+ </div>
332
+ </div>
333
+
334
+ <!-- Light sidebar -->
335
+ <div>
336
+ <p class="section-title">Sidebar · Light</p>
337
+ <div class="light-mock">
338
+ <div class="light-header">
339
+ <svg viewBox="0 0 24 24" width="22" height="22" fill="none" style="flex-shrink:0">
340
+ <rect x="2.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
341
+ <rect x="5.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
342
+ <rect x="8.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
343
+ <rect x="2.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
344
+ <rect x="2.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
345
+ <rect x="2.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
346
+ <rect x="2.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
347
+ <rect x="5.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
348
+ <rect x="8.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#7b5ff5"/>
349
+ <rect x="12.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
350
+ <rect x="15.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
351
+ <rect x="18.75" y="4.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
352
+ <rect x="12.75" y="7.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
353
+ <rect x="12.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
354
+ <rect x="15.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
355
+ <rect x="18.75" y="10.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
356
+ <rect x="18.75" y="13.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
357
+ <rect x="12.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
358
+ <rect x="15.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
359
+ <rect x="18.75" y="16.75" width="2.5" height="2.5" rx=".6" fill="#2ecfc1"/>
360
+ </svg>
361
+ <span class="light-brand">CrewSpace</span>
362
+ </div>
363
+ <div class="light-nav">
364
+ <div class="light-item active"><span class="nav-dot"></span> Dashboard</div>
365
+ <div class="light-item"><span class="nav-dot"></span> Inbox</div>
366
+ <div class="light-item"><span class="nav-dot"></span> Issues</div>
367
+ <div class="light-item"><span class="nav-dot"></span> Agents</div>
368
+ </div>
369
+ </div>
370
+ </div>
371
+
372
+ </div>
373
+ </div>
374
+
375
+ </body>
376
+ </html>