clay-server 2.18.0-beta.8 → 2.18.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/lib/project.js +1445 -32
- package/lib/public/app.js +328 -117
- package/lib/public/css/debate.css +1039 -0
- package/lib/public/css/mates.css +125 -0
- package/lib/public/css/scheduler-modal.css +110 -392
- package/lib/public/css/scheduler.css +10 -3
- package/lib/public/css/sidebar.css +80 -7
- package/lib/public/index.html +53 -106
- package/lib/public/modules/debate.js +633 -0
- package/lib/public/modules/input.js +14 -5
- package/lib/public/modules/mate-sidebar.js +169 -2
- package/lib/public/modules/mention.js +6 -3
- package/lib/public/modules/scheduler.js +373 -252
- package/lib/public/modules/sidebar.js +158 -28
- package/lib/public/modules/tools.js +13 -3
- package/lib/public/modules/tooltip.js +2 -0
- package/lib/public/style.css +1 -0
- package/lib/scheduler.js +59 -1
- package/lib/sdk-bridge.js +4 -4
- package/lib/sessions.js +9 -2
- package/lib/user-presence.js +92 -0
- package/package.json +1 -1
|
@@ -655,6 +655,15 @@
|
|
|
655
655
|
opacity: 0.35;
|
|
656
656
|
}
|
|
657
657
|
|
|
658
|
+
.scheduler-cell.past {
|
|
659
|
+
opacity: 0.4;
|
|
660
|
+
cursor: not-allowed;
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
.scheduler-cell.past .scheduler-day-num {
|
|
664
|
+
text-decoration: line-through;
|
|
665
|
+
}
|
|
666
|
+
|
|
658
667
|
.scheduler-cell.today {
|
|
659
668
|
background: color-mix(in srgb, var(--accent) 8%, transparent);
|
|
660
669
|
}
|
|
@@ -676,9 +685,7 @@
|
|
|
676
685
|
Events on cells
|
|
677
686
|
============================ */
|
|
678
687
|
.scheduler-event {
|
|
679
|
-
display:
|
|
680
|
-
align-items: center;
|
|
681
|
-
gap: 4px;
|
|
688
|
+
display: block;
|
|
682
689
|
padding: 2px 6px;
|
|
683
690
|
margin-bottom: 2px;
|
|
684
691
|
border-radius: 4px;
|
|
@@ -822,6 +822,85 @@
|
|
|
822
822
|
background: var(--accent-12, rgba(108, 92, 231, 0.12));
|
|
823
823
|
}
|
|
824
824
|
|
|
825
|
+
/* --- Loop run sub-groups (interval runs within a date group) --- */
|
|
826
|
+
.session-loop-run-wrapper {
|
|
827
|
+
position: relative;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
.session-loop-run {
|
|
831
|
+
position: relative;
|
|
832
|
+
display: flex;
|
|
833
|
+
align-items: center;
|
|
834
|
+
gap: 2px;
|
|
835
|
+
padding: 0 12px 0 6px;
|
|
836
|
+
height: 28px;
|
|
837
|
+
border-radius: 0 8px 8px 0;
|
|
838
|
+
cursor: pointer;
|
|
839
|
+
font-size: 12px;
|
|
840
|
+
font-weight: 600;
|
|
841
|
+
color: var(--text-muted);
|
|
842
|
+
transition: background 0.2s ease, color 0.2s ease;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
.session-loop-run::before {
|
|
846
|
+
content: "";
|
|
847
|
+
position: absolute;
|
|
848
|
+
left: 0;
|
|
849
|
+
top: 50%;
|
|
850
|
+
width: 8px;
|
|
851
|
+
height: 0;
|
|
852
|
+
border-top: 1.5px solid var(--border-subtle);
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
.session-loop-run:hover {
|
|
856
|
+
background: var(--sidebar-hover);
|
|
857
|
+
color: var(--text-secondary);
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
.session-loop-run.active {
|
|
861
|
+
background: var(--sidebar-active);
|
|
862
|
+
color: var(--text);
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
.session-loop-run.expanded .session-loop-chevron {
|
|
866
|
+
transform: rotate(90deg);
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
.session-loop-run .session-loop-chevron {
|
|
870
|
+
width: 18px;
|
|
871
|
+
height: 18px;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
.session-loop-run .session-item-text {
|
|
875
|
+
flex: 1;
|
|
876
|
+
overflow: hidden;
|
|
877
|
+
text-overflow: ellipsis;
|
|
878
|
+
white-space: nowrap;
|
|
879
|
+
min-width: 0;
|
|
880
|
+
display: flex;
|
|
881
|
+
align-items: center;
|
|
882
|
+
gap: 4px;
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
.session-loop-run .session-processing {
|
|
886
|
+
display: inline-block;
|
|
887
|
+
width: 5px;
|
|
888
|
+
height: 5px;
|
|
889
|
+
border-radius: 50%;
|
|
890
|
+
background: var(--success);
|
|
891
|
+
flex-shrink: 0;
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
.session-loop-run-time {
|
|
895
|
+
font-size: 11px;
|
|
896
|
+
font-weight: 500;
|
|
897
|
+
color: var(--text-dimmer);
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
.session-loop-run-wrapper .session-loop-children {
|
|
901
|
+
margin-left: 12px;
|
|
902
|
+
}
|
|
903
|
+
|
|
825
904
|
/* --- New Ralph Loop pill button --- */
|
|
826
905
|
.new-ralph-pill {
|
|
827
906
|
display: inline-flex;
|
|
@@ -1041,13 +1120,7 @@
|
|
|
1041
1120
|
#layout.sidebar-collapsed #user-island .user-island-actions {
|
|
1042
1121
|
display: none;
|
|
1043
1122
|
}
|
|
1044
|
-
/*
|
|
1045
|
-
body.mate-dm-active #layout.sidebar-collapsed #user-island .user-island-info {
|
|
1046
|
-
display: block;
|
|
1047
|
-
}
|
|
1048
|
-
body.mate-dm-active #layout.sidebar-collapsed #user-island .user-island-actions {
|
|
1049
|
-
display: flex;
|
|
1050
|
-
}
|
|
1123
|
+
/* Mate DM: user island collapses with sidebar like project mode */
|
|
1051
1124
|
|
|
1052
1125
|
|
|
1053
1126
|
|
package/lib/public/index.html
CHANGED
|
@@ -210,6 +210,7 @@
|
|
|
210
210
|
<button id="mate-sticky-notes-btn"><i data-lucide="sticky-note"></i> <span>Sticky Notes</span></button>
|
|
211
211
|
<button id="mate-skills-btn"><i data-lucide="puzzle"></i> <span>Skills</span></button>
|
|
212
212
|
<button id="mate-scheduler-btn"><i data-lucide="calendar-clock"></i> <span>Scheduled Tasks</span></button>
|
|
213
|
+
<button id="mate-debate-btn"><i data-lucide="mic"></i> <span>Start Debate</span></button>
|
|
213
214
|
</div>
|
|
214
215
|
<div id="mate-sidebar-conversations">
|
|
215
216
|
<div class="mate-sidebar-sessions-header">
|
|
@@ -291,6 +292,7 @@
|
|
|
291
292
|
</div>
|
|
292
293
|
<div id="todo-sticky" class="hidden"></div>
|
|
293
294
|
<div id="ralph-sticky" class="hidden"></div>
|
|
295
|
+
<div id="debate-sticky" class="hidden"></div>
|
|
294
296
|
<div class="status">
|
|
295
297
|
<button id="find-in-session-btn" title="Search in session (Ctrl+F)"><i data-lucide="search"></i></button>
|
|
296
298
|
<button id="sticky-notes-toggle-btn" title="Sticky notes"><i data-lucide="sticky-note"></i><span class="sticky-notes-count hidden"></span></button>
|
|
@@ -304,6 +306,7 @@
|
|
|
304
306
|
<p id="connect-overlay-msg">Reconnecting to server…</p>
|
|
305
307
|
</div>
|
|
306
308
|
<div id="sticky-notes-container" class="hidden"></div>
|
|
309
|
+
<div id="debate-info-float" class="hidden"></div>
|
|
307
310
|
<div id="messages"></div>
|
|
308
311
|
|
|
309
312
|
<div id="info-panels">
|
|
@@ -1304,6 +1307,27 @@
|
|
|
1304
1307
|
</div>
|
|
1305
1308
|
</div>
|
|
1306
1309
|
|
|
1310
|
+
<!-- Debate Modal -->
|
|
1311
|
+
<div id="debate-modal" class="hidden">
|
|
1312
|
+
<div class="debate-modal-backdrop"></div>
|
|
1313
|
+
<div class="debate-modal-card">
|
|
1314
|
+
<div class="debate-modal-header">
|
|
1315
|
+
<span><i data-lucide="mic"></i> New Debate</span>
|
|
1316
|
+
<button id="debate-modal-close">×</button>
|
|
1317
|
+
</div>
|
|
1318
|
+
<div class="debate-modal-body">
|
|
1319
|
+
<label class="debate-field-label" for="debate-topic-input">Topic <span class="debate-field-req">*</span></label>
|
|
1320
|
+
<textarea id="debate-topic-input" rows="2" placeholder="e.g. Should AI development be regulated?"></textarea>
|
|
1321
|
+
<label class="debate-field-label" for="debate-panel-list">Select panelists</label>
|
|
1322
|
+
<div id="debate-panel-list" class="debate-panel-list"></div>
|
|
1323
|
+
</div>
|
|
1324
|
+
<div class="debate-modal-footer">
|
|
1325
|
+
<button id="debate-modal-cancel" class="debate-btn-cancel">Cancel</button>
|
|
1326
|
+
<button id="debate-modal-start" class="debate-btn-start">Start</button>
|
|
1327
|
+
</div>
|
|
1328
|
+
</div>
|
|
1329
|
+
</div>
|
|
1330
|
+
|
|
1307
1331
|
<!-- Ralph Wizard -->
|
|
1308
1332
|
<div id="ralph-wizard" class="hidden">
|
|
1309
1333
|
<div class="ralph-wizard-backdrop"></div>
|
|
@@ -1598,79 +1622,6 @@
|
|
|
1598
1622
|
<!-- Scheduler panel is dynamically created in #app by scheduler.js -->
|
|
1599
1623
|
|
|
1600
1624
|
<!-- Schedule Edit Modal -->
|
|
1601
|
-
<div id="schedule-edit-modal" class="hidden">
|
|
1602
|
-
<div class="confirm-backdrop"></div>
|
|
1603
|
-
<div class="confirm-dialog schedule-edit-dialog">
|
|
1604
|
-
<div class="schedule-edit-header">
|
|
1605
|
-
<span class="schedule-edit-title" id="schedule-edit-title">New Schedule</span>
|
|
1606
|
-
<button class="schedule-edit-close" id="schedule-edit-close">×</button>
|
|
1607
|
-
</div>
|
|
1608
|
-
<div class="schedule-edit-body">
|
|
1609
|
-
<div class="sched-field">
|
|
1610
|
-
<label class="sched-field-label" for="sched-name">Name</label>
|
|
1611
|
-
<input type="text" class="sched-field-input" id="sched-name" placeholder="e.g. Daily Code Review" maxlength="60" spellcheck="false" autocomplete="off">
|
|
1612
|
-
</div>
|
|
1613
|
-
<div class="sched-field" id="sched-job-field">
|
|
1614
|
-
<label class="sched-field-label">Job</label>
|
|
1615
|
-
<div class="sched-field-hint" id="sched-job-name" style="font-weight:600;color:var(--text)"></div>
|
|
1616
|
-
</div>
|
|
1617
|
-
<div class="sched-field">
|
|
1618
|
-
<label class="sched-field-label">Repeat</label>
|
|
1619
|
-
<div class="sched-preset-group" id="sched-presets">
|
|
1620
|
-
<button class="sched-preset-btn" data-preset="daily">Every day</button>
|
|
1621
|
-
<button class="sched-preset-btn" data-preset="weekdays">Weekdays</button>
|
|
1622
|
-
<button class="sched-preset-btn" data-preset="weekly">Weekly</button>
|
|
1623
|
-
<button class="sched-preset-btn" data-preset="monthly">Monthly</button>
|
|
1624
|
-
<button class="sched-preset-btn" data-preset="custom">Custom</button>
|
|
1625
|
-
</div>
|
|
1626
|
-
</div>
|
|
1627
|
-
<div class="sched-field" id="sched-dow-field" style="display:none">
|
|
1628
|
-
<label class="sched-field-label">Days of week</label>
|
|
1629
|
-
<div class="sched-dow-row" id="sched-dow-row">
|
|
1630
|
-
<button class="sched-dow-btn" data-dow="0">Su</button>
|
|
1631
|
-
<button class="sched-dow-btn" data-dow="1">Mo</button>
|
|
1632
|
-
<button class="sched-dow-btn" data-dow="2">Tu</button>
|
|
1633
|
-
<button class="sched-dow-btn" data-dow="3">We</button>
|
|
1634
|
-
<button class="sched-dow-btn" data-dow="4">Th</button>
|
|
1635
|
-
<button class="sched-dow-btn" data-dow="5">Fr</button>
|
|
1636
|
-
<button class="sched-dow-btn" data-dow="6">Sa</button>
|
|
1637
|
-
</div>
|
|
1638
|
-
</div>
|
|
1639
|
-
<div class="sched-field">
|
|
1640
|
-
<label class="sched-field-label">Time</label>
|
|
1641
|
-
<div class="sched-time-row">
|
|
1642
|
-
<input type="time" class="sched-time-input" id="sched-time" value="09:00">
|
|
1643
|
-
</div>
|
|
1644
|
-
</div>
|
|
1645
|
-
<div class="sched-field">
|
|
1646
|
-
<label class="sched-field-label">Preview</label>
|
|
1647
|
-
<div class="sched-cron-preview" id="sched-cron-preview">
|
|
1648
|
-
<span class="human" id="sched-human-text">Every day at 09:00</span>
|
|
1649
|
-
<span id="sched-cron-text">0 9 * * *</span>
|
|
1650
|
-
</div>
|
|
1651
|
-
</div>
|
|
1652
|
-
<div class="sched-field">
|
|
1653
|
-
<div class="sched-toggle-row">
|
|
1654
|
-
<span class="sched-field-label" style="margin:0">Enabled</span>
|
|
1655
|
-
<label class="sched-toggle">
|
|
1656
|
-
<input type="checkbox" id="sched-enabled" checked>
|
|
1657
|
-
<span class="sched-toggle-track"></span>
|
|
1658
|
-
<span class="sched-toggle-thumb"></span>
|
|
1659
|
-
</label>
|
|
1660
|
-
</div>
|
|
1661
|
-
</div>
|
|
1662
|
-
<div class="sched-field" id="sched-history-field" style="display:none">
|
|
1663
|
-
<label class="sched-field-label">Run History</label>
|
|
1664
|
-
<div class="sched-history" id="sched-history"></div>
|
|
1665
|
-
</div>
|
|
1666
|
-
</div>
|
|
1667
|
-
<div class="schedule-edit-footer">
|
|
1668
|
-
<button class="sched-btn sched-btn-delete" id="sched-delete" style="display:none">Delete</button>
|
|
1669
|
-
<button class="sched-btn sched-btn-cancel" id="sched-cancel">Cancel</button>
|
|
1670
|
-
<button class="sched-btn sched-btn-save" id="sched-save">Save</button>
|
|
1671
|
-
</div>
|
|
1672
|
-
</div>
|
|
1673
|
-
</div>
|
|
1674
1625
|
|
|
1675
1626
|
<!-- Schedule Create Popover (inline) -->
|
|
1676
1627
|
<div id="schedule-create-popover" class="sched-create-popover hidden">
|
|
@@ -1723,15 +1674,6 @@
|
|
|
1723
1674
|
<i data-lucide="align-left" class="sched-create-row-icon"></i>
|
|
1724
1675
|
<textarea class="sched-create-row-textarea" id="sched-create-desc" rows="3" placeholder="Description"></textarea>
|
|
1725
1676
|
</div>
|
|
1726
|
-
<div class="sched-skip-running-row hidden" id="sched-skip-running-row">
|
|
1727
|
-
<label class="sched-switch-label" for="sched-skip-running">
|
|
1728
|
-
<div class="sched-switch">
|
|
1729
|
-
<input type="checkbox" id="sched-skip-running" checked>
|
|
1730
|
-
<span class="sched-switch-slider"></span>
|
|
1731
|
-
</div>
|
|
1732
|
-
<span class="sched-switch-text">Skip if previous run still active</span>
|
|
1733
|
-
</label>
|
|
1734
|
-
</div>
|
|
1735
1677
|
<!-- Bottom bar -->
|
|
1736
1678
|
<div class="sched-create-bottom">
|
|
1737
1679
|
<div class="sched-create-bottom-left">
|
|
@@ -1751,26 +1693,11 @@
|
|
|
1751
1693
|
</div>
|
|
1752
1694
|
<!-- Recurrence dropdown -->
|
|
1753
1695
|
<div class="sched-create-recurrence-dropdown hidden" id="sched-create-recurrence-dropdown">
|
|
1754
|
-
<div class="sched-
|
|
1755
|
-
<button class="sched-recurrence-option active" data-recurrence="none">Does not repeat</button>
|
|
1756
|
-
<button class="sched-recurrence-option" data-recurrence="daily">Every day</button>
|
|
1757
|
-
<button class="sched-recurrence-option" data-recurrence="weekly" id="sched-recurrence-weekly">Weekly on Tuesday</button>
|
|
1758
|
-
<button class="sched-recurrence-option" data-recurrence="biweekly" id="sched-recurrence-biweekly">Every 2nd Tuesday of the month</button>
|
|
1759
|
-
<button class="sched-recurrence-option" data-recurrence="yearly" id="sched-recurrence-yearly">Every year on Mar 10</button>
|
|
1760
|
-
<button class="sched-recurrence-option" data-recurrence="monthly" id="sched-recurrence-monthly">Every month on the 10th</button>
|
|
1761
|
-
<button class="sched-recurrence-option" data-recurrence="weekdays">Every weekday</button>
|
|
1762
|
-
<button class="sched-recurrence-option" data-recurrence="custom">Custom…</button>
|
|
1763
|
-
</div>
|
|
1764
|
-
<div class="sched-custom-repeat-panel hidden" id="sched-custom-repeat-panel">
|
|
1765
|
-
<div class="sched-custom-header">
|
|
1766
|
-
<button class="sched-custom-back" id="sched-custom-back"><i data-lucide="chevron-left"></i> Back</button>
|
|
1767
|
-
</div>
|
|
1696
|
+
<div class="sched-custom-repeat-panel" id="sched-custom-repeat-panel">
|
|
1768
1697
|
<div class="sched-custom-row">
|
|
1769
1698
|
<span class="sched-custom-label">Every</span>
|
|
1770
1699
|
<input type="number" class="sched-custom-interval" id="sched-custom-interval" value="1" min="1" max="99">
|
|
1771
1700
|
<select class="sched-field-select sched-custom-unit" id="sched-custom-unit">
|
|
1772
|
-
<option value="minute">Minute</option>
|
|
1773
|
-
<option value="hour">Hour</option>
|
|
1774
1701
|
<option value="day">Day</option>
|
|
1775
1702
|
<option value="week" selected>Week</option>
|
|
1776
1703
|
<option value="month">Month</option>
|
|
@@ -1833,14 +1760,6 @@
|
|
|
1833
1760
|
</div>
|
|
1834
1761
|
<!-- Interval dropdown -->
|
|
1835
1762
|
<div class="sched-create-interval-dropdown hidden" id="sched-create-interval-dropdown">
|
|
1836
|
-
<div class="sched-interval-options" id="sched-create-interval-list">
|
|
1837
|
-
<button class="sched-interval-option active" data-interval="none">No interval</button>
|
|
1838
|
-
<button class="sched-interval-option" data-interval="1">Every minute</button>
|
|
1839
|
-
<button class="sched-interval-option" data-interval="5">Every 5 minutes</button>
|
|
1840
|
-
<button class="sched-interval-option" data-interval="15">Every 15 minutes</button>
|
|
1841
|
-
<button class="sched-interval-option" data-interval="30">Every 30 minutes</button>
|
|
1842
|
-
<button class="sched-interval-option" data-interval="60">Every hour</button>
|
|
1843
|
-
</div>
|
|
1844
1763
|
<div class="sched-interval-custom-row">
|
|
1845
1764
|
<span class="sched-custom-label">Every</span>
|
|
1846
1765
|
<input type="number" class="sched-custom-interval" id="sched-interval-custom-value" value="10" min="1" max="999">
|
|
@@ -1848,6 +1767,34 @@
|
|
|
1848
1767
|
<button type="button" class="sched-interval-seg active" data-unit="minute">min</button><button type="button" class="sched-interval-seg" data-unit="hour">hrs</button>
|
|
1849
1768
|
</div>
|
|
1850
1769
|
</div>
|
|
1770
|
+
<div class="sched-interval-end-section hidden" id="sched-interval-end-section">
|
|
1771
|
+
<div class="sched-interval-end-divider"></div>
|
|
1772
|
+
<div class="sched-interval-end-options">
|
|
1773
|
+
<button class="sched-interval-end-opt active" data-iend="allday">All day</button>
|
|
1774
|
+
<button class="sched-interval-end-opt" data-iend="after">Stop after</button>
|
|
1775
|
+
<button class="sched-interval-end-opt" data-iend="until">Stop at</button>
|
|
1776
|
+
</div>
|
|
1777
|
+
<div class="sched-interval-end-after hidden" id="sched-interval-end-after-row">
|
|
1778
|
+
<input type="number" class="sched-interval-end-input" id="sched-interval-end-after" value="5" min="1" max="999">
|
|
1779
|
+
<span class="sched-interval-end-label">runs</span>
|
|
1780
|
+
</div>
|
|
1781
|
+
<div class="sched-interval-end-until hidden" id="sched-interval-end-until-row">
|
|
1782
|
+
<input type="time" class="sched-interval-end-time" id="sched-interval-end-time" value="18:00">
|
|
1783
|
+
</div>
|
|
1784
|
+
</div>
|
|
1785
|
+
<div class="sched-skip-running-row" id="sched-skip-running-row">
|
|
1786
|
+
<label class="sched-switch-label" for="sched-skip-running">
|
|
1787
|
+
<div class="sched-switch">
|
|
1788
|
+
<input type="checkbox" id="sched-skip-running" checked>
|
|
1789
|
+
<span class="sched-switch-slider"></span>
|
|
1790
|
+
</div>
|
|
1791
|
+
<span class="sched-switch-text">Skip if previous run still active</span>
|
|
1792
|
+
</label>
|
|
1793
|
+
</div>
|
|
1794
|
+
<div class="sched-custom-actions">
|
|
1795
|
+
<button class="sched-btn sched-btn-cancel" id="sched-interval-cancel">Cancel</button>
|
|
1796
|
+
<button class="sched-btn sched-btn-save" id="sched-interval-ok">OK</button>
|
|
1797
|
+
</div>
|
|
1851
1798
|
</div>
|
|
1852
1799
|
</div>
|
|
1853
1800
|
|