clay-server 5.1.0-beta.1 → 5.1.0-beta.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.
Files changed (157) hide show
  1. package/LICENSES/README.md +4 -0
  2. package/LICENSES/dicebear-avatars.md +16 -0
  3. package/lib/daemon-project-access.js +7 -1
  4. package/lib/daemon.js +2 -0
  5. package/lib/dicebear-avatar.js +62 -0
  6. package/lib/knowledge-db-service.js +175 -0
  7. package/lib/knowledge-db-validation.js +0 -0
  8. package/lib/knowledge-document-index.js +49 -0
  9. package/lib/knowledge-draft-store.js +56 -0
  10. package/lib/knowledge-file-store.js +199 -0
  11. package/lib/knowledge-markdown.js +128 -0
  12. package/lib/mate-knowledge-mcp-server.js +29 -6
  13. package/lib/mate-knowledge-service.js +23 -2
  14. package/lib/mate-knowledge-sync.js +36 -21
  15. package/lib/mate-workspace-color.js +4 -0
  16. package/lib/mates.js +18 -0
  17. package/lib/project-connection.js +36 -2
  18. package/lib/project-debate-proposal.js +6 -0
  19. package/lib/project-debate-workspace.js +43 -0
  20. package/lib/project-debate.js +1 -0
  21. package/lib/project-knowledge.js +315 -136
  22. package/lib/project-mate-creation-proposal.js +1 -0
  23. package/lib/project-sessions.js +39 -2
  24. package/lib/project-user-knowledge.js +60 -0
  25. package/lib/project.js +59 -18
  26. package/lib/public/app.js +73 -34
  27. package/lib/public/clay-studio-wordmark-bold.svg +20 -0
  28. package/lib/public/css/clay-workspace.css +105 -0
  29. package/lib/public/css/debates-workbench.css +47 -0
  30. package/lib/public/css/home-debate-live.css +26 -0
  31. package/lib/public/css/home-hub.css +3 -1
  32. package/lib/public/css/home-mate-model-picker.css +15 -131
  33. package/lib/public/css/home-mate-settings.css +168 -16
  34. package/lib/public/css/icon-strip.css +249 -32
  35. package/lib/public/css/mate-conversation.css +176 -0
  36. package/lib/public/css/mate-knowledge-workbench.css +118 -0
  37. package/lib/public/css/mate-workspace-color.css +16 -0
  38. package/lib/public/css/mates.css +28 -28
  39. package/lib/public/css/messages.css +1 -114
  40. package/lib/public/css/mobile-nav.css +16 -16
  41. package/lib/public/css/overlays.css +8 -0
  42. package/lib/public/css/project-logs.css +7 -0
  43. package/lib/public/css/project-mate-creation.css +105 -0
  44. package/lib/public/css/right-workbench.css +3 -3
  45. package/lib/public/css/session-folders.css +80 -21
  46. package/lib/public/css/sidebar.css +183 -107
  47. package/lib/public/css/title-bar.css +151 -0
  48. package/lib/public/css/worker-delegation.css +47 -0
  49. package/lib/public/css/worker-proposal.css +72 -150
  50. package/lib/public/css/you.css +74 -0
  51. package/lib/public/index.html +33 -101
  52. package/lib/public/modules/account-island.js +230 -0
  53. package/lib/public/modules/app-cursors.js +19 -43
  54. package/lib/public/modules/app-debate-ui.js +4 -3
  55. package/lib/public/modules/app-header.js +106 -0
  56. package/lib/public/modules/app-message-router.js +12 -3
  57. package/lib/public/modules/app-messages.js +34 -9
  58. package/lib/public/modules/app-notifications.js +4 -7
  59. package/lib/public/modules/app-projects.js +5 -38
  60. package/lib/public/modules/app-rendering.js +12 -13
  61. package/lib/public/modules/avatar.js +25 -9
  62. package/lib/public/modules/chat-render-runtime.js +16 -4
  63. package/lib/public/modules/command-palette.js +2 -15
  64. package/lib/public/modules/cursor-sharing-preference.js +3 -3
  65. package/lib/public/modules/debate-controls.js +299 -0
  66. package/lib/public/modules/debate.js +2 -0
  67. package/lib/public/modules/debates-workbench.js +339 -0
  68. package/lib/public/modules/default-ai.js +81 -65
  69. package/lib/public/modules/home-debate-controls.js +18 -289
  70. package/lib/public/modules/home-mate-avatar-editor.js +228 -0
  71. package/lib/public/modules/home-mate-color-picker.js +66 -0
  72. package/lib/public/modules/home-mate-creation.js +1 -1
  73. package/lib/public/modules/home-mate-instructions.js +90 -0
  74. package/lib/public/modules/home-mate-model-picker.js +80 -271
  75. package/lib/public/modules/home-mate-profile-editor.js +72 -0
  76. package/lib/public/modules/home-mate-settings.js +118 -125
  77. package/lib/public/modules/home-shell.js +3 -0
  78. package/lib/public/modules/home-surface-boot.js +1 -9
  79. package/lib/public/modules/icon-strip-tooltip.js +95 -0
  80. package/lib/public/modules/knowledge-db-edit-state.js +35 -0
  81. package/lib/public/modules/knowledge-db-workbench.js +234 -0
  82. package/lib/public/modules/knowledge-history-state.js +55 -0
  83. package/lib/public/modules/knowledge-markdown-editor.js +57 -0
  84. package/lib/public/modules/knowledge-preview-links.js +70 -0
  85. package/lib/public/modules/knowledge-workbench-shell.js +21 -0
  86. package/lib/public/modules/mate-knowledge-workbench-state.js +174 -0
  87. package/lib/public/modules/mate-knowledge-workbench.js +500 -0
  88. package/lib/public/modules/mate-knowledge.js +11 -3
  89. package/lib/public/modules/mate-management.js +54 -10
  90. package/lib/public/modules/mate-sidebar.js +11 -1
  91. package/lib/public/modules/mate-workspace-color.js +33 -0
  92. package/lib/public/modules/mention.js +5 -13
  93. package/lib/public/modules/profile.js +51 -18
  94. package/lib/public/modules/project-chat-identity.js +79 -0
  95. package/lib/public/modules/project-debate-planning-workspace.js +250 -0
  96. package/lib/public/modules/project-debate-workspace.js +185 -0
  97. package/lib/public/modules/project-header-identity.js +127 -0
  98. package/lib/public/modules/project-logs-render.js +9 -4
  99. package/lib/public/modules/project-mate-creation-workspace.js +414 -0
  100. package/lib/public/modules/project-mate-navigation.js +238 -0
  101. package/lib/public/modules/project-session-navigation.js +29 -0
  102. package/lib/public/modules/project-switcher.js +6 -8
  103. package/lib/public/modules/projects-hub-view.js +5 -6
  104. package/lib/public/modules/projects-hub.js +2 -6
  105. package/lib/public/modules/qrcode.js +27 -8
  106. package/lib/public/modules/search-clay-chat.js +8 -11
  107. package/lib/public/modules/session-activity-tooltip.js +12 -0
  108. package/lib/public/modules/session-create-form.js +86 -14
  109. package/lib/public/modules/session-create.js +50 -7
  110. package/lib/public/modules/session-list-visibility.js +41 -0
  111. package/lib/public/modules/session-presence-ui.js +4 -1
  112. package/lib/public/modules/session-title-marquee.js +51 -0
  113. package/lib/public/modules/sidebar-mates.js +3 -50
  114. package/lib/public/modules/sidebar-mobile.js +63 -60
  115. package/lib/public/modules/sidebar-projects.js +84 -97
  116. package/lib/public/modules/sidebar-session-folders-ui.js +2 -2
  117. package/lib/public/modules/sidebar-session-hierarchy.js +149 -70
  118. package/lib/public/modules/sidebar-sessions.js +49 -50
  119. package/lib/public/modules/sidebar.js +11 -13
  120. package/lib/public/modules/thinking-lifecycle.js +7 -6
  121. package/lib/public/modules/tool-palette-order.js +4 -3
  122. package/lib/public/modules/tool-palette.js +13 -3
  123. package/lib/public/modules/tools.js +22 -22
  124. package/lib/public/modules/worker-proposal.js +42 -8
  125. package/lib/public/modules/worker-runtime-picker.js +115 -0
  126. package/lib/public/modules/you-activity.js +121 -0
  127. package/lib/public/modules/you.js +251 -0
  128. package/lib/public/style.css +16 -8
  129. package/lib/public/vendor/codemirror/LICENSE +21 -0
  130. package/lib/public/vendor/codemirror/codemirror.css +344 -0
  131. package/lib/public/vendor/codemirror/codemirror.js +9884 -0
  132. package/lib/public/vendor/codemirror/continuelist.js +101 -0
  133. package/lib/public/vendor/codemirror/markdown.js +886 -0
  134. package/lib/public/vendor/codemirror/show-hint.css +37 -0
  135. package/lib/public/vendor/codemirror/show-hint.js +523 -0
  136. package/lib/sdk-bridge.js +15 -3
  137. package/lib/server-admin.js +11 -0
  138. package/lib/server-home-chat-events.js +1 -1
  139. package/lib/server-home-chat.js +25 -3
  140. package/lib/server-home-debate-planning.js +4 -1
  141. package/lib/server-home-debates.js +2 -0
  142. package/lib/server-home-mate-creation.js +4 -1
  143. package/lib/server-mate-instructions.js +44 -0
  144. package/lib/server-mates.js +12 -3
  145. package/lib/server-palette.js +1 -1
  146. package/lib/server-settings.js +65 -1
  147. package/lib/server-user-knowledge.js +119 -0
  148. package/lib/server.js +21 -1
  149. package/lib/session-visibility.js +7 -2
  150. package/lib/sessions.js +32 -6
  151. package/lib/user-knowledge-service.js +167 -0
  152. package/lib/users-permissions.js +7 -0
  153. package/lib/users-project-mate-filter-preferences.js +39 -0
  154. package/lib/users.js +6 -0
  155. package/lib/workspace-query-access.js +4 -1
  156. package/lib/ws-schema.js +50 -0
  157. package/package.json +10 -1
@@ -0,0 +1,16 @@
1
+ /* Curated pigments, with both theme treatments visible before choosing. */
2
+ .mate-color-picker { margin: 24px 0; }
3
+ .mate-color-picker h4 { margin: 0 0 6px; font-size: 14px; }
4
+ .mate-color-previews { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
5
+ .mate-color-preview { border-radius: 10px; border: 1px solid rgba(127,127,127,.22); padding: 10px; color: #252522; }
6
+ .mate-color-preview.dark { color: #e8e8e2; }
7
+ .mate-color-preview-label { display: block; font-size: 11px; margin-bottom: 8px; }
8
+ .mate-color-preview-canvas { display: flex; flex-direction: column; gap: 5px; background: #fafaf8; border-radius: 6px; padding: 12px; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
9
+ .dark .mate-color-preview-canvas { background: #2b2b29; }
10
+ .mate-color-preview-canvas strong { font-size: 12px; font-weight: 500; }
11
+ .mate-color-preview-canvas span { font-size: 11px; line-height: 1.4; }
12
+ .mate-color-swatches { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 2px; }
13
+ .mate-color-swatch { width: 28px; height: 28px; border-radius: 50%; background: var(--swatch); color: #171717; border: 1px solid rgba(0,0,0,.16); font-size: 15px; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,.3); }
14
+ .mate-color-swatch[aria-pressed="true"] { outline: 2px solid var(--text); outline-offset: 2px; }
15
+ .mate-color-swatch:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
16
+ .mate-color-swatch[aria-disabled="true"] { cursor: wait; opacity: .6; }
@@ -2396,7 +2396,7 @@ body.mate-dm-active .turn-meta {
2396
2396
 
2397
2397
  /* --- Mate Thinking: flex layout matching msg-assistant --- */
2398
2398
  /* Applies in both Mate DM and channel project chat */
2399
- body.mate-dm-active .mate-thinking,
2399
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking,
2400
2400
  body.wide-view .mate-thinking {
2401
2401
  display: flex;
2402
2402
  flex-direction: row;
@@ -2406,11 +2406,11 @@ body.wide-view .mate-thinking {
2406
2406
  margin: 0;
2407
2407
  max-width: 100%;
2408
2408
  }
2409
- body.mate-dm-active .mate-thinking:hover,
2409
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking:hover,
2410
2410
  body.wide-view .mate-thinking:hover {
2411
2411
  background: var(--bg-alt);
2412
2412
  }
2413
- body.mate-dm-active .mate-thinking > .dm-bubble-avatar,
2413
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking > .dm-bubble-avatar,
2414
2414
  body.wide-view .mate-thinking > .dm-bubble-avatar {
2415
2415
  display: block;
2416
2416
  width: 36px;
@@ -2419,7 +2419,7 @@ body.wide-view .mate-thinking > .dm-bubble-avatar {
2419
2419
  flex-shrink: 0;
2420
2420
  margin-top: 2px;
2421
2421
  }
2422
- body.mate-dm-active .mate-thinking > .dm-bubble-content,
2422
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking > .dm-bubble-content,
2423
2423
  body.wide-view .mate-thinking > .dm-bubble-content {
2424
2424
  flex: 1;
2425
2425
  min-width: 0;
@@ -2431,7 +2431,7 @@ body.wide-view .mate-thinking > .dm-bubble-content {
2431
2431
  gap: 4px;
2432
2432
  padding: 4px 0;
2433
2433
  }
2434
- body.mate-dm-active .mate-thinking:not(.done) .mate-thinking-row,
2434
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking:not(.done) .mate-thinking-row,
2435
2435
  body.wide-view .mate-thinking:not(.done) .mate-thinking-row {
2436
2436
  display: flex;
2437
2437
  }
@@ -2459,15 +2459,15 @@ body.wide-view .mate-thinking:not(.done) .mate-thinking-row {
2459
2459
  }
2460
2460
 
2461
2461
  /* When done, hide mate row (JS does this too), show compact expandable header */
2462
- body.mate-dm-active .mate-thinking.done .mate-thinking-row,
2462
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking.done .mate-thinking-row,
2463
2463
  body.wide-view .mate-thinking.done .mate-thinking-row {
2464
2464
  display: none;
2465
2465
  }
2466
- body.mate-dm-active .mate-thinking.done .mate-thinking-activity,
2466
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking.done .mate-thinking-activity,
2467
2467
  body.wide-view .mate-thinking.done .mate-thinking-activity {
2468
2468
  display: none;
2469
2469
  }
2470
- body.mate-dm-active .mate-thinking.done .thinking-header,
2470
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking.done .thinking-header,
2471
2471
  body.wide-view .mate-thinking.done .thinking-header {
2472
2472
  display: inline-flex !important;
2473
2473
  font-size: 12px;
@@ -2477,24 +2477,24 @@ body.wide-view .mate-thinking.done .thinking-header {
2477
2477
  opacity: 0.7;
2478
2478
  transition: opacity 0.15s;
2479
2479
  }
2480
- body.mate-dm-active .mate-thinking.done .thinking-header:hover,
2480
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking.done .thinking-header:hover,
2481
2481
  body.wide-view .mate-thinking.done .thinking-header:hover {
2482
2482
  opacity: 1;
2483
2483
  background: rgba(var(--overlay-rgb), 0.08);
2484
2484
  }
2485
- body.mate-dm-active .mate-thinking .thinking-content,
2485
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking .thinking-content,
2486
2486
  body.wide-view .mate-thinking .thinking-content {
2487
2487
  max-height: 0;
2488
2488
  overflow: hidden;
2489
2489
  transition: max-height 0.25s ease;
2490
2490
  }
2491
- body.mate-dm-active .mate-thinking.expanded .thinking-content,
2491
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-thinking.expanded .thinking-content,
2492
2492
  body.wide-view .mate-thinking.expanded .thinking-content {
2493
2493
  max-height: 2000px;
2494
2494
  }
2495
2495
 
2496
2496
  /* --- Mate Tool Group: flex layout matching msg-assistant --- */
2497
- body.mate-dm-active .mate-tool-group {
2497
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group {
2498
2498
  display: flex;
2499
2499
  flex-direction: row;
2500
2500
  align-items: flex-start;
@@ -2503,10 +2503,10 @@ body.mate-dm-active .mate-tool-group {
2503
2503
  margin: 0;
2504
2504
  max-width: 100%;
2505
2505
  }
2506
- body.mate-dm-active .mate-tool-group:hover {
2506
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group:hover {
2507
2507
  background: var(--bg-alt);
2508
2508
  }
2509
- body.mate-dm-active .mate-tool-group > .dm-bubble-avatar {
2509
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group > .dm-bubble-avatar {
2510
2510
  display: block;
2511
2511
  width: 36px;
2512
2512
  height: 36px;
@@ -2514,12 +2514,12 @@ body.mate-dm-active .mate-tool-group > .dm-bubble-avatar {
2514
2514
  flex-shrink: 0;
2515
2515
  margin-top: 2px;
2516
2516
  }
2517
- body.mate-dm-active .mate-tool-group > .dm-bubble-content {
2517
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group > .dm-bubble-content {
2518
2518
  flex: 1;
2519
2519
  min-width: 0;
2520
2520
  padding-top: 6px;
2521
2521
  }
2522
- body.mate-dm-active .mate-tool-group .tool-group-header {
2522
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group .tool-group-header {
2523
2523
  font-size: 12px;
2524
2524
  padding: 4px 10px;
2525
2525
  background: rgba(var(--overlay-rgb), 0.04);
@@ -2527,26 +2527,26 @@ body.mate-dm-active .mate-tool-group .tool-group-header {
2527
2527
  opacity: 0.7;
2528
2528
  transition: opacity 0.15s;
2529
2529
  }
2530
- body.mate-dm-active .mate-tool-group .tool-group-header:hover {
2530
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group .tool-group-header:hover {
2531
2531
  opacity: 1;
2532
2532
  background: rgba(var(--overlay-rgb), 0.08);
2533
2533
  }
2534
- body.mate-dm-active .mate-tool-group .tool-group-label {
2534
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group .tool-group-label {
2535
2535
  font-size: 12px;
2536
2536
  }
2537
- body.mate-dm-active .mate-tool-group .tool-item {
2537
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group .tool-item {
2538
2538
  border: none;
2539
2539
  background: none;
2540
2540
  padding: 2px 0;
2541
2541
  }
2542
- body.mate-dm-active .mate-tool-group .tool-name {
2542
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-tool-group .tool-name {
2543
2543
  font-size: 13px;
2544
2544
  color: var(--text-muted);
2545
2545
  }
2546
2546
 
2547
2547
  /* --- Conversational Permission: flex layout matching msg-assistant --- */
2548
2548
  /* Applies in both Mate DM and channel project chat */
2549
- body.mate-dm-active .mate-permission,
2549
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-permission,
2550
2550
  body.wide-view .mate-permission {
2551
2551
  display: flex;
2552
2552
  flex-direction: row;
@@ -2560,11 +2560,11 @@ body.wide-view .mate-permission {
2560
2560
  margin: 0;
2561
2561
  max-width: 100%;
2562
2562
  }
2563
- body.mate-dm-active .mate-permission:hover,
2563
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-permission:hover,
2564
2564
  body.wide-view .mate-permission:hover {
2565
2565
  background: var(--bg-alt);
2566
2566
  }
2567
- body.mate-dm-active .mate-permission > .dm-bubble-avatar,
2567
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-permission > .dm-bubble-avatar,
2568
2568
  body.wide-view .mate-permission > .dm-bubble-avatar {
2569
2569
  display: block;
2570
2570
  width: 36px;
@@ -2573,7 +2573,7 @@ body.wide-view .mate-permission > .dm-bubble-avatar {
2573
2573
  flex-shrink: 0;
2574
2574
  margin-top: 2px;
2575
2575
  }
2576
- body.mate-dm-active .mate-permission > .dm-bubble-content,
2576
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-permission > .dm-bubble-content,
2577
2577
  body.wide-view .mate-permission > .dm-bubble-content {
2578
2578
  flex: 1;
2579
2579
  min-width: 0;
@@ -2657,7 +2657,7 @@ body.wide-view .mate-permission > .dm-bubble-content {
2657
2657
  /* --- Mate Activity: avatar + text --- */
2658
2658
 
2659
2659
  /* --- Mate AskUserQuestion: avatar + content layout (matches msg-assistant) --- */
2660
- body.mate-dm-active .mate-ask-user {
2660
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-ask-user {
2661
2661
  display: flex;
2662
2662
  flex-direction: row;
2663
2663
  align-items: flex-start;
@@ -2666,10 +2666,10 @@ body.mate-dm-active .mate-ask-user {
2666
2666
  margin: 0;
2667
2667
  max-width: 100%;
2668
2668
  }
2669
- body.mate-dm-active .mate-ask-user:hover {
2669
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-ask-user:hover {
2670
2670
  background: var(--bg-alt);
2671
2671
  }
2672
- body.mate-dm-active .mate-ask-user > .dm-bubble-avatar {
2672
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-ask-user > .dm-bubble-avatar {
2673
2673
  display: block;
2674
2674
  width: 36px;
2675
2675
  height: 36px;
@@ -2677,7 +2677,7 @@ body.mate-dm-active .mate-ask-user > .dm-bubble-avatar {
2677
2677
  flex-shrink: 0;
2678
2678
  margin-top: 2px;
2679
2679
  }
2680
- body.mate-dm-active .mate-ask-user > .dm-bubble-content {
2680
+ body:is(.mate-dm-active, .mate-workspace-active) .mate-ask-user > .dm-bubble-content {
2681
2681
  flex: 1;
2682
2682
  min-width: 0;
2683
2683
  }
@@ -174,120 +174,7 @@
174
174
  display: flex;
175
175
  }
176
176
 
177
- /* --- Delegated work-order card ------------------------------------- */
178
- /* Self-contained: the generic bubble avatar/name/time are hidden and the
179
- identity lives in the card's own header strip. The body stays on a
180
- neutral background, with a restrained routing color for metadata. */
181
- .msg-user-delegated .dm-bubble-avatar,
182
- .msg-user-delegated .dm-bubble-header {
183
- display: none;
184
- }
185
-
186
- .msg-user-delegated .bubble {
187
- padding: 0;
188
- overflow: hidden;
189
- background: var(--bg);
190
- border: 1px solid var(--border);
191
- border-top: 1px solid color-mix(in srgb, var(--link) 55%, var(--border));
192
- border-radius: 12px;
193
- max-width: min(720px, 100%);
194
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14), 0 4px 14px rgba(0, 0, 0, 0.08);
195
- }
196
-
197
- .delegated-card-head {
198
- display: flex;
199
- align-items: center;
200
- gap: 10px;
201
- padding: 10px 14px;
202
- background: linear-gradient(to bottom,
203
- color-mix(in srgb, var(--link) 3%, var(--bg-alt)),
204
- var(--bg-alt));
205
- border-bottom: 1px solid var(--border-subtle);
206
- }
207
-
208
- .delegated-card-avatar {
209
- width: 24px;
210
- height: 24px;
211
- border-radius: 7px;
212
- flex-shrink: 0;
213
- }
214
-
215
- .delegated-card-headtext {
216
- display: grid;
217
- gap: 1px;
218
- min-width: 0;
219
- flex: 1;
220
- }
221
-
222
- .delegated-card-eyebrow {
223
- font-size: 9px;
224
- font-weight: 700;
225
- letter-spacing: 0.09em;
226
- text-transform: uppercase;
227
- color: color-mix(in srgb, var(--link) 68%, var(--text-secondary));
228
- line-height: 1;
229
- }
230
-
231
- .delegated-card-from {
232
- font-size: 12.5px;
233
- font-weight: 650;
234
- color: var(--text);
235
- overflow: hidden;
236
- text-overflow: ellipsis;
237
- white-space: nowrap;
238
- }
239
-
240
- .delegated-card-time {
241
- font-size: 10px;
242
- color: var(--text-dimmer);
243
- flex-shrink: 0;
244
- align-self: flex-start;
245
- margin-top: 2px;
246
- }
247
-
248
- .msg-user-delegated .delegated-brief {
249
- padding: 13px 16px 15px;
250
- font-size: 13px;
251
- line-height: 1.7;
252
- }
253
- .msg-user-delegated .delegated-brief > :first-child { margin-top: 0; }
254
- .msg-user-delegated .delegated-brief > :last-child { margin-bottom: 0; }
255
- .msg-user-delegated .delegated-brief p { margin: 8px 0; }
256
- .msg-user-delegated .delegated-brief pre {
257
- max-width: 100%;
258
- overflow-x: auto;
259
- border: 1px solid var(--border-subtle);
260
- border-radius: 8px;
261
- }
262
- .msg-user-delegated .delegated-brief code {
263
- font-size: 12px;
264
- }
265
- .msg-user-delegated .delegated-brief h1,
266
- .msg-user-delegated .delegated-brief h2,
267
- .msg-user-delegated .delegated-brief h3 {
268
- font-size: 13px;
269
- font-weight: 700;
270
- margin: 14px 0 4px;
271
- }
272
- .msg-user-delegated .delegated-brief ol,
273
- .msg-user-delegated .delegated-brief ul {
274
- padding-left: 20px;
275
- margin: 6px 0;
276
- }
277
- .msg-user-delegated .delegated-brief li { margin: 3px 0; }
278
- .msg-user-delegated .delegated-brief li::marker {
279
- color: color-mix(in srgb, var(--link) 52%, var(--text-muted));
280
- font-weight: 600;
281
- }
282
-
283
- .msg-user-delegated .dm-bubble-avatar-other {
284
- border-radius: 7px;
285
- }
286
-
287
- .msg-user-delegated .dm-bubble-name {
288
- color: color-mix(in srgb, var(--link) 62%, var(--text-secondary));
289
- font-weight: 600;
290
- }
177
+ /* Delegated instruction briefs are styled in worker-delegation.css. */
291
178
 
292
179
  /* --- User message action bar --- */
293
180
  .msg-actions {
@@ -332,22 +332,6 @@
332
332
  padding-bottom: calc(var(--safe-bottom) + 16px);
333
333
  }
334
334
 
335
- /* No hover on touch: rest state stays dimmed, the active session shows color. */
336
- .mobile-session-vendor-icon {
337
- width: 14px;
338
- height: 14px;
339
- flex-shrink: 0;
340
- border-radius: 3px;
341
- object-fit: cover;
342
- margin-right: 8px;
343
- opacity: 0.5;
344
- filter: grayscale(0.9) brightness(0.9);
345
- }
346
- .mobile-session-item.active .mobile-session-vendor-icon {
347
- opacity: 1;
348
- filter: none;
349
- }
350
-
351
335
  /* --- Chat filter bar (horizontal scroll chips) --- */
352
336
  .mobile-chat-filter-bar {
353
337
  display: flex;
@@ -474,6 +458,7 @@
474
458
 
475
459
  /* --- Session items inside sheet --- */
476
460
  .mobile-session-item {
461
+ position: relative;
477
462
  display: flex;
478
463
  align-items: center;
479
464
  gap: 10px;
@@ -595,13 +580,28 @@
595
580
  text-overflow: ellipsis;
596
581
  white-space: nowrap;
597
582
  }
583
+ .mobile-session-title-line {
584
+ position: relative;
585
+ display: flex;
586
+ align-items: center;
587
+ flex: 1;
588
+ min-width: 0;
589
+ }
590
+ .mobile-session-item.session-title-marquee .mobile-session-title {
591
+ animation: session-title-marquee var(--session-marquee-duration, 6s) linear infinite;
592
+ text-overflow: clip;
593
+ }
598
594
 
599
595
  .mobile-session-processing {
596
+ position: absolute;
597
+ left: -8px;
598
+ top: 50%;
600
599
  width: 7px;
601
600
  height: 7px;
602
601
  border-radius: 50%;
603
602
  background: var(--success);
604
603
  flex-shrink: 0;
604
+ transform: translateY(-50%);
605
605
  }
606
606
 
607
607
  .mobile-session-processing.io {
@@ -1379,3 +1379,11 @@ button.top-bar-pill.pill-accent:hover { background: color-mix(in srgb, var(--acc
1379
1379
  opacity: 0.92;
1380
1380
  }
1381
1381
  }
1382
+
1383
+ .mate-delete-confirm .confirm-dialog { max-width: 420px; box-sizing: border-box; }
1384
+ .mate-delete-confirm h3 { margin: 0 0 12px; font-size: 18px; color: var(--error); }
1385
+ .mate-delete-confirm p { margin: 0 0 10px; font-size: 13px; line-height: 1.5; }
1386
+ .mate-delete-challenge { display: flex; flex-direction: column; gap: 8px; margin: 16px 0 20px; font-size: 13px; color: var(--text); }
1387
+ .mate-delete-challenge input { height: 36px; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); color: var(--text); font: inherit; }
1388
+ .mate-delete-challenge input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
1389
+ .mate-delete-confirm .confirm-btn:disabled { opacity: .4; cursor: not-allowed; }
@@ -3,6 +3,7 @@
3
3
  /* Wide screens: bounded workbench window beside #app, matching the geometry of
4
4
  the document viewer and the terminal. */
5
5
  @media (min-width: 1024px) {
6
+ #you-panel,
6
7
  #project-logs-panel {
7
8
  width: 50%;
8
9
  max-width: 720px;
@@ -19,11 +20,14 @@
19
20
  overflow: hidden;
20
21
  flex-shrink: 0;
21
22
  }
23
+ #you-panel.hidden,
22
24
  #project-logs-panel.hidden { display: none; }
25
+ #you-panel.project-logs-wide,
23
26
  #project-logs-panel.project-logs-wide {
24
27
  width: 70%;
25
28
  max-width: 1200px;
26
29
  }
30
+ #you-panel.panel-fullscreen,
27
31
  #project-logs-panel.panel-fullscreen {
28
32
  width: 100%;
29
33
  max-width: none;
@@ -38,6 +42,7 @@
38
42
 
39
43
  /* Narrow screens: full overlay, like the other workbench tools. */
40
44
  @media (max-width: 1023px) {
45
+ #you-panel,
41
46
  #project-logs-panel {
42
47
  position: fixed;
43
48
  top: 0;
@@ -52,6 +57,7 @@
52
57
  flex-direction: column;
53
58
  overflow: hidden;
54
59
  }
60
+ #you-panel.hidden,
55
61
  #project-logs-panel.hidden { display: none; }
56
62
  /* Sizing controls are meaningless in the overlay presentation. */
57
63
  #project-logs-wide,
@@ -127,6 +133,7 @@
127
133
  .project-logs-detail { flex: 1; min-width: 0; min-height: 0; overflow-y: auto; }
128
134
  .project-logs-detail.hidden { display: none; }
129
135
  .project-log-document { max-width: 760px; margin: 0 auto; padding: 32px 28px 52px; }
136
+ #you-panel.panel-fullscreen .project-log-document,
130
137
  #project-logs-panel.panel-fullscreen .project-log-document { padding: clamp(28px, 5vw, 64px); }
131
138
  .project-log-doc-chips { display: flex; align-items: center; gap: 7px; margin-bottom: 10px; }
132
139
  .project-log-document h1 { margin: 0 0 10px; color: var(--text); font-family: var(--font-display); font-size: clamp(24px, 2.8vw, 34px); letter-spacing: -0.025em; line-height: 1.12; }
@@ -0,0 +1,105 @@
1
+ .project-create-choice-overlay {
2
+ position: fixed;
3
+ inset: 0;
4
+ z-index: 1300;
5
+ display: grid;
6
+ place-items: center;
7
+ padding: 20px;
8
+ background: rgba(var(--shadow-rgb), 0.28);
9
+ backdrop-filter: blur(5px);
10
+ }
11
+
12
+ .project-create-choice {
13
+ width: min(360px, calc(100vw - 32px));
14
+ padding: 22px;
15
+ border: 1px solid var(--border-subtle);
16
+ border-radius: 18px;
17
+ background: var(--bg);
18
+ box-shadow: 0 24px 70px rgba(var(--shadow-rgb), 0.24);
19
+ animation: project-create-choice-in 180ms cubic-bezier(0.2, 0.75, 0.25, 1);
20
+ }
21
+
22
+ .project-create-choice-eyebrow {
23
+ color: var(--accent);
24
+ font-size: 10px;
25
+ font-weight: 750;
26
+ letter-spacing: 0.1em;
27
+ text-transform: uppercase;
28
+ }
29
+
30
+ .project-create-choice h2 {
31
+ margin: 5px 0 16px;
32
+ color: var(--text);
33
+ font-family: var(--font-ui);
34
+ font-size: 18px;
35
+ }
36
+
37
+ .project-create-choice-option {
38
+ display: grid;
39
+ grid-template-columns: 34px 1fr;
40
+ align-items: center;
41
+ gap: 12px;
42
+ width: 100%;
43
+ margin-top: 8px;
44
+ padding: 12px;
45
+ border: 1px solid var(--border-subtle);
46
+ border-radius: 12px;
47
+ background: rgba(var(--overlay-rgb), 0.025);
48
+ color: var(--text);
49
+ font: inherit;
50
+ text-align: left;
51
+ cursor: pointer;
52
+ transition: border-color 180ms, background 180ms, transform 180ms;
53
+ }
54
+
55
+ .project-create-choice-option > .lucide {
56
+ width: 22px;
57
+ height: 22px;
58
+ justify-self: center;
59
+ color: var(--accent);
60
+ }
61
+
62
+ .project-create-choice-option span { display: grid; gap: 2px; }
63
+ .project-create-choice-option strong { font-size: 13px; }
64
+ .project-create-choice-option small { color: var(--text-muted); font-size: 11px; }
65
+ .project-create-choice-option:hover { border-color: var(--border); background: rgba(var(--overlay-rgb), 0.055); transform: translateY(-1px); }
66
+ .project-create-choice-option:focus-visible,
67
+ .project-create-choice-cancel:focus-visible,
68
+ .project-mate-creation-error button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
69
+
70
+ .project-create-choice-cancel {
71
+ display: block;
72
+ margin: 14px auto 0;
73
+ padding: 6px 10px;
74
+ border: 0;
75
+ border-radius: 7px;
76
+ background: transparent;
77
+ color: var(--text-muted);
78
+ font: inherit;
79
+ font-size: 12px;
80
+ cursor: pointer;
81
+ }
82
+
83
+ .project-create-choice-cancel:hover { background: rgba(var(--overlay-rgb), 0.05); color: var(--text); }
84
+ .project-create-choice-error { min-height: 16px; margin: 8px 0 0; color: var(--error); font-size: 11px; }
85
+
86
+ .project-mate-creation-transcript { width: min(760px, 100%); margin: 0 auto; }
87
+ .project-mate-creation-intro { display: flex; align-items: center; gap: 8px; margin: 4px 0 14px; color: var(--text-muted); font-size: 12px; font-weight: 650; }
88
+ .project-mate-creation-intro .lucide { width: 15px; height: 15px; color: var(--accent); }
89
+ .project-mate-creation-error { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 11px 12px; border: 1px solid color-mix(in srgb, var(--error) 28%, transparent); border-radius: 10px; color: var(--error); font-size: 12px; }
90
+ .project-mate-creation-error button { padding: 6px 9px; border: 1px solid var(--border); border-radius: 7px; background: var(--bg-alt); color: var(--text); font: inherit; cursor: pointer; }
91
+
92
+ @keyframes project-create-choice-in {
93
+ from { opacity: 0; transform: translateY(6px) scale(0.985); }
94
+ to { opacity: 1; transform: translateY(0) scale(1); }
95
+ }
96
+
97
+ @media (prefers-reduced-motion: reduce) {
98
+ .project-create-choice { animation: none; }
99
+ .project-create-choice-option { transition: none; }
100
+ }
101
+
102
+ @media (max-width: 768px) {
103
+ .project-create-choice-overlay { align-items: end; padding: 12px; }
104
+ .project-create-choice { width: 100%; border-radius: 18px 18px 12px 12px; }
105
+ }
@@ -5,7 +5,7 @@
5
5
  }
6
6
 
7
7
  @media (min-width: 1024px) {
8
- :is(#file-viewer, #terminal-container, #project-logs-panel, #issues-panel, #linear-panel, #notes-browser, #scheduled-tasks-panel, #shared-browser-panel, #mcp-skills-workbench):not(.panel-fullscreen) {
8
+ :is(#file-viewer, #terminal-container, #project-logs-panel, #you-panel, #issues-panel, #linear-panel, #notes-browser, #scheduled-tasks-panel, #debates-workbench, #shared-browser-panel, #mcp-skills-workbench, #mate-knowledge-workbench):not(.panel-fullscreen) {
9
9
  box-shadow:
10
10
  4px 8px 18px rgba(var(--shadow-rgb), 0.14),
11
11
  2px 2px 4px rgba(var(--shadow-rgb), 0.08),
@@ -15,13 +15,13 @@
15
15
  }
16
16
  }
17
17
 
18
- :is(#file-viewer, #terminal-container, #project-logs-panel, #issues-panel, #linear-panel, #notes-browser, #scheduled-tasks-panel, #shared-browser-panel, #mcp-skills-workbench).panel-fullscreen {
18
+ :is(#file-viewer, #terminal-container, #project-logs-panel, #you-panel, #issues-panel, #linear-panel, #notes-browser, #scheduled-tasks-panel, #debates-workbench, #shared-browser-panel, #mcp-skills-workbench, #mate-knowledge-workbench).panel-fullscreen {
19
19
  box-shadow: none;
20
20
  animation: none;
21
21
  }
22
22
 
23
23
  @media (prefers-reduced-motion: reduce) {
24
- :is(#file-viewer, #terminal-container, #project-logs-panel, #issues-panel, #linear-panel, #notes-browser, #scheduled-tasks-panel, #shared-browser-panel, #mcp-skills-workbench):not(.panel-fullscreen) {
24
+ :is(#file-viewer, #terminal-container, #project-logs-panel, #you-panel, #issues-panel, #linear-panel, #notes-browser, #scheduled-tasks-panel, #debates-workbench, #shared-browser-panel, #mcp-skills-workbench, #mate-knowledge-workbench):not(.panel-fullscreen) {
25
25
  animation: none;
26
26
  transition: none;
27
27
  }