clay-server 4.1.0-beta.3 → 4.1.0-beta.4
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/public/css/pane.css
CHANGED
|
@@ -427,6 +427,51 @@ body.pane-mode #input-area {
|
|
|
427
427
|
background: var(--bg);
|
|
428
428
|
}
|
|
429
429
|
|
|
430
|
+
/* Portrait phones have enough height for two useful panes but not enough
|
|
431
|
+
width for two readable transcripts. Keep the role order independent from
|
|
432
|
+
the persisted member order so the Split Worker stays above its Driver. */
|
|
433
|
+
@media (max-width: 768px) and (orientation: portrait) {
|
|
434
|
+
#split-host.visible {
|
|
435
|
+
flex-direction: column;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
.split-pane {
|
|
439
|
+
flex: 1 1 50%;
|
|
440
|
+
border-left: 0;
|
|
441
|
+
border-top: 1px solid var(--border-subtle);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
.split-pane:first-child {
|
|
445
|
+
border-top: 1px solid var(--border-subtle);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
.split-pane-role-worker {
|
|
449
|
+
order: -1;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
.split-pane-role-driver {
|
|
453
|
+
order: 0;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
.split-pane:first-child.split-pane-role-worker {
|
|
457
|
+
border-top: 0;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.split-pane.split-pane-role-worker {
|
|
461
|
+
border-top: 0;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
#split-host.split-delegating::after {
|
|
465
|
+
content: "↑";
|
|
466
|
+
animation-name: pair-divider-flow-up;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
@keyframes pair-divider-flow-up {
|
|
470
|
+
0%, 100% { transform: translateY(3px); opacity: 0.65; }
|
|
471
|
+
50% { transform: translateY(-3px); opacity: 1; }
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
|
|
430
475
|
/* Prevent an iframe from taking the pointer midway through a note gesture. */
|
|
431
476
|
body.sticky-note-interacting .split-pane-frame {
|
|
432
477
|
pointer-events: none;
|
|
@@ -242,6 +242,10 @@ export function syncPairChrome(host, split) {
|
|
|
242
242
|
}
|
|
243
243
|
var oldBadges = host.querySelectorAll(".split-pair-role, .split-pair-live, .split-pair-set-driver, .split-worker-runtime");
|
|
244
244
|
for (var bi = 0; bi < oldBadges.length; bi++) oldBadges[bi].remove();
|
|
245
|
+
var paneEls = host.querySelectorAll(".split-pane");
|
|
246
|
+
for (var paneIndex = 0; paneIndex < paneEls.length; paneIndex++) {
|
|
247
|
+
paneEls[paneIndex].classList.remove("split-pane-role-driver", "split-pane-role-worker");
|
|
248
|
+
}
|
|
245
249
|
var runtimeHeaders = host.querySelectorAll(".has-worker-runtime");
|
|
246
250
|
for (var ri = 0; ri < runtimeHeaders.length; ri++) runtimeHeaders[ri].classList.remove("has-worker-runtime");
|
|
247
251
|
host.classList.remove("split-delegating", "split-direction-right", "split-direction-left");
|
|
@@ -267,6 +271,7 @@ export function syncPairChrome(host, split) {
|
|
|
267
271
|
for (var pi = 0; pi < split.panes.length && pi < headers.length; pi++) {
|
|
268
272
|
(function (sessionId, header) {
|
|
269
273
|
var isDriver = sessionId === group.pair.driverId;
|
|
274
|
+
if (paneEls[pi]) paneEls[pi].classList.add(isDriver ? "split-pane-role-driver" : "split-pane-role-worker");
|
|
270
275
|
var role = isDriver ? "Driver" : "Split Worker";
|
|
271
276
|
var badge = document.createElement("span");
|
|
272
277
|
badge.className = "split-pair-role split-pair-role-" + role.toLowerCase().replace(/ /g, "-");
|
|
@@ -505,6 +505,7 @@ export function initSplitView() {
|
|
|
505
505
|
if (state.splitGroups !== prev.splitGroups) {
|
|
506
506
|
var split = state.splitPanes;
|
|
507
507
|
if (!split || !split.panes) return;
|
|
508
|
+
syncPairChrome(host, split);
|
|
508
509
|
if (split.groupId) {
|
|
509
510
|
var stillExists = state.splitGroups.some(function (group) { return group.id === split.groupId; });
|
|
510
511
|
if (!stillExists) switchNativeSession(split.panes[0].sessionId);
|
|
@@ -4,14 +4,21 @@
|
|
|
4
4
|
// the size limit and so the guidance can be reviewed as prose.
|
|
5
5
|
|
|
6
6
|
var WORKER_RUNTIME_SELECTION = [
|
|
7
|
-
"Use a high-low model mix: keep decomposition, judgment,
|
|
8
|
-
"
|
|
7
|
+
"Use a high-low model mix by default: keep decomposition, judgment, review, and independent verification",
|
|
8
|
+
"with the Driver. Give the Split Worker concrete, bounded execution tasks with clear acceptance criteria.",
|
|
9
|
+
"For routine bounded implementation, start with a lightweight Worker at low effort. When the installed",
|
|
10
|
+
"catalog offers it, codex / gpt-5.6-luna / low is the starting recommendation; otherwise choose a comparable",
|
|
11
|
+
"lightweight option from the offered catalog. Do not routinely recommend gpt-5.6-sol at high effort.",
|
|
12
|
+
"Do not mirror the Driver's model or default to the",
|
|
9
13
|
"strongest available model merely because it is available. Explicitly fill the vendor, model, and thinking",
|
|
10
14
|
"effort recommendation fields for both creation and replacement; never leave model selection to card defaults.",
|
|
11
15
|
"Select model capability and thinking effort separately. Start with the lowest effort adequate for the task,",
|
|
12
16
|
"not high effort by habit. Choose from the installed, offered catalog; do not invent model availability or prices.",
|
|
13
17
|
"Explain why the lighter choice can handle the task. Escalate only for a concrete requirement beyond its",
|
|
14
|
-
"capabilities or observed failures, and state that reason.
|
|
18
|
+
"capabilities or observed failures it cannot adequately resolve, and state that reason. Small corrections",
|
|
19
|
+
"found during Driver review are not by themselves a reason to escalate. Send those corrections back to the",
|
|
20
|
+
"Worker and verify the final result. Optimize for time to a completed, verified outcome, not first-draft speed.",
|
|
21
|
+
"Use recorded Worker outcomes when available,",
|
|
15
22
|
"and reconsider a lighter model for the next bounded task after an escalation. Honor the user's explicit",
|
|
16
23
|
"runtime choice; this is a recommendation policy, not a restriction on which model the user may select.",
|
|
17
24
|
].join(" ").replace(/ {2,}/g, " ");
|
package/package.json
CHANGED