@oddessentials/agent-guild 0.25.0 → 0.26.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 +44 -10
- package/bin/agent-guild.mjs +2 -0
- package/package.json +2 -2
- package/src/manager/folder-opener.mjs +96 -0
- package/src/manager/folder-picker.mjs +116 -0
- package/src/manager/folder-picker.ps1 +84 -0
- package/src/manager/github-views.mjs +171 -0
- package/src/manager/github.mjs +56 -1
- package/src/manager/main.mjs +4 -1
- package/src/manager/server.mjs +81 -12
- package/web/activity-favicon.js +71 -0
- package/web/app.js +1136 -94
- package/web/index.html +139 -91
- package/web/layout.js +75 -0
- package/web/repo-search.js +91 -0
- package/web/skins/gnomeland/skin.css +1 -1
- package/web/skins/goblinville/skin.css +2 -2
- package/web/skins/grove/skin.css +1 -1
- package/web/skins/guild/skin.css +3 -3
- package/web/skins/orbital/skin.css +1 -1
- package/web/styles.css +246 -38
package/web/styles.css
CHANGED
|
@@ -30,6 +30,11 @@
|
|
|
30
30
|
--icon-github: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z'/%3E%3C/svg%3E");
|
|
31
31
|
--icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 10.8v6.2' stroke-width='2.4'/%3E%3Ccircle cx='12' cy='7.3' r='1.2' fill='black' stroke='none'/%3E%3C/svg%3E");
|
|
32
32
|
--icon-grip: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Ccircle cx='9' cy='5.5' r='1.9'/%3E%3Ccircle cx='15' cy='5.5' r='1.9'/%3E%3Ccircle cx='9' cy='12' r='1.9'/%3E%3Ccircle cx='15' cy='12' r='1.9'/%3E%3Ccircle cx='9' cy='18.5' r='1.9'/%3E%3Ccircle cx='15' cy='18.5' r='1.9'/%3E%3C/svg%3E");
|
|
33
|
+
--icon-gear: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z'/%3E%3C/svg%3E");
|
|
34
|
+
--icon-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 6.5h16M4 12h16M4 17.5h16'/%3E%3C/svg%3E");
|
|
35
|
+
--icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6.5 6.5l11 11M17.5 6.5l-11 11'/%3E%3C/svg%3E");
|
|
36
|
+
--icon-split: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3.5' y='4.5' width='17' height='15' rx='2'/%3E%3Cpath d='M12 4.5v15'/%3E%3C/svg%3E");
|
|
37
|
+
--icon-server: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='7' rx='1.5'/%3E%3Crect x='4' y='13' width='16' height='7' rx='1.5'/%3E%3Cpath d='M7.5 7.5h.01M7.5 16.5h.01'/%3E%3C/svg%3E");
|
|
33
38
|
--icon-notes: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4.5h14v9.5l-5.5 5.5H5z'/%3E%3Cpath d='M13.5 19.5V14H19M8.5 9h7M8.5 12.5h4'/%3E%3C/svg%3E");
|
|
34
39
|
font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
35
40
|
font-size: 15px;
|
|
@@ -82,7 +87,7 @@ code, pre { font-family: var(--font-mono); }
|
|
|
82
87
|
.connection.ok .dot { --dot: var(--ok); }
|
|
83
88
|
.connection.down .dot { --dot: var(--danger); }
|
|
84
89
|
|
|
85
|
-
main { max-width: 1200px; margin: 0 auto; padding: 26px 16px 56px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 34px; }
|
|
90
|
+
main { max-width: calc(1200px + var(--dock-space, 0px)); margin: 0 auto; padding: 26px calc(16px + var(--dock-space, 0px)) 56px 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 34px; }
|
|
86
91
|
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
|
|
87
92
|
.count { color: var(--muted); font-weight: 500; }
|
|
88
93
|
|
|
@@ -92,6 +97,28 @@ main { max-width: 1200px; margin: 0 auto; padding: 26px 16px 56px; display: grid
|
|
|
92
97
|
background: var(--surface); color: var(--text); font: inherit; font-size: 0.9rem;
|
|
93
98
|
}
|
|
94
99
|
.cwd input:focus, .auth input:focus { outline: 2px solid var(--focus); outline-offset: 1px; }
|
|
100
|
+
.cwd > label { flex: none; }
|
|
101
|
+
.cwd-field { position: relative; display: flex; flex: 1; min-width: 0; }
|
|
102
|
+
.cwd-field input { width: 100%; padding-right: 76px; }
|
|
103
|
+
.cwd-tools { position: absolute; inset: 3px 3px 3px auto; display: flex; gap: 2px; }
|
|
104
|
+
.cwd-tool {
|
|
105
|
+
width: 32px; display: grid; place-items: center;
|
|
106
|
+
padding: 0; border: 1px solid transparent; border-radius: max(3px, calc(var(--radius) - 3px));
|
|
107
|
+
background: transparent; color: var(--muted); cursor: pointer;
|
|
108
|
+
}
|
|
109
|
+
.cwd-tool:hover:not(:disabled), .cwd-tool:focus-visible {
|
|
110
|
+
color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent);
|
|
111
|
+
border-color: color-mix(in srgb, var(--accent) 28%, transparent);
|
|
112
|
+
}
|
|
113
|
+
.cwd-tool:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
|
|
114
|
+
.cwd-tool:active:not(:disabled) { background: color-mix(in srgb, var(--accent) 22%, transparent); }
|
|
115
|
+
.cwd-tool:disabled { opacity: 0.4; cursor: default; }
|
|
116
|
+
.cwd-tool[aria-busy="true"] { opacity: 0.7; cursor: progress; }
|
|
117
|
+
@media (pointer: coarse) {
|
|
118
|
+
.cwd-field input { min-height: 46px; padding-right: 94px; }
|
|
119
|
+
.cwd-tools { inset: 1px 1px 1px auto; gap: 0; }
|
|
120
|
+
.cwd-tool { width: 44px; }
|
|
121
|
+
}
|
|
95
122
|
|
|
96
123
|
.providers { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
|
|
97
124
|
.provider {
|
|
@@ -143,7 +170,7 @@ main { max-width: 1200px; margin: 0 auto; padding: 26px 16px 56px; display: grid
|
|
|
143
170
|
font: inherit; font-size: 0.78rem; text-align: left; cursor: pointer;
|
|
144
171
|
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
145
172
|
}
|
|
146
|
-
.model-stats-head::after, .console-link::after, .
|
|
173
|
+
.model-stats-head::after, .console-link::after, .menu-button::after, .model-name::before, .provider .copies summary::before {
|
|
147
174
|
content: ""; display: inline-block; flex: none; width: 0.75em; height: 0.75em; margin-left: 0.3em; vertical-align: -0.05em;
|
|
148
175
|
background: currentColor; mask: var(--icon-chevron) center / contain no-repeat;
|
|
149
176
|
}
|
|
@@ -338,34 +365,60 @@ main { max-width: 1200px; margin: 0 auto; padding: 26px 16px 56px; display: grid
|
|
|
338
365
|
.btn.danger { color: var(--danger); }
|
|
339
366
|
.btn.danger:hover { border-color: var(--danger); }
|
|
340
367
|
.btn:disabled { opacity: 0.6; cursor: progress; }
|
|
341
|
-
.
|
|
342
|
-
.
|
|
368
|
+
.menu-button, .notes-open, .github-toggle, .upgrade { white-space: nowrap; }
|
|
369
|
+
.settings::before, .manager::before, .notes-open::before, .github-toggle::before, .menu-toggle::before, .btn.split::before, .settings-menu .choice > span::before {
|
|
343
370
|
content: ""; display: inline-block; width: 1em; height: 1em; margin-right: 0.4em; vertical-align: -0.15em;
|
|
344
371
|
background: currentColor; mask: var(--icon-sun) center / contain no-repeat;
|
|
345
372
|
}
|
|
346
|
-
|
|
347
|
-
.
|
|
348
|
-
.
|
|
373
|
+
.settings::before { mask-image: var(--icon-gear); }
|
|
374
|
+
.manager::before { mask-image: var(--icon-server); }
|
|
375
|
+
.github-toggle::before { mask-image: var(--icon-github); }
|
|
376
|
+
.menu-toggle::before { margin: 0; mask-image: var(--icon-menu); }
|
|
377
|
+
.btn.split::before { mask-image: var(--icon-split); }
|
|
378
|
+
.settings-menu .choice > .mode-dark::before { mask-image: var(--icon-moon); }
|
|
379
|
+
.settings-menu .choice > .sound-alerts::before { mask-image: var(--icon-sound); }
|
|
380
|
+
.settings-menu .choice > .voice-input::before { mask-image: var(--icon-mic); }
|
|
349
381
|
.voice-note { margin: 0 8px 6px; max-width: 26ch; color: var(--muted); font-size: 0.75rem; line-height: 1.35; }
|
|
350
382
|
.notes-open::before { mask-image: var(--icon-notes); }
|
|
351
|
-
.
|
|
352
|
-
.
|
|
353
|
-
.
|
|
383
|
+
.notes-open[aria-pressed="true"], .github-toggle[aria-pressed="true"] { border-color: var(--accent); color: var(--accent); }
|
|
384
|
+
.menu-button::after { margin-left: 0.45em; transform: rotate(90deg); transition: transform 0.15s var(--ease); }
|
|
385
|
+
.menu-button:has(+ :popover-open)::after { transform: rotate(-90deg); }
|
|
386
|
+
.manager.pending { color: var(--warn); border-color: var(--warn); }
|
|
387
|
+
.menu {
|
|
354
388
|
position: fixed; inset: auto; margin: 0; min-width: 190px; padding: 6px; display: none;
|
|
355
389
|
border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); color: var(--text);
|
|
356
390
|
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22); font-size: 0.85rem; overflow-y: auto;
|
|
357
391
|
}
|
|
358
|
-
.
|
|
359
|
-
.
|
|
360
|
-
.
|
|
361
|
-
.
|
|
362
|
-
.
|
|
363
|
-
.
|
|
364
|
-
.
|
|
365
|
-
.
|
|
366
|
-
.
|
|
392
|
+
.menu:popover-open { display: grid; gap: 4px; animation: fade-in 0.12s var(--ease); }
|
|
393
|
+
.settings-menu fieldset { margin: 0; padding: 0; border: 0; display: grid; }
|
|
394
|
+
.settings-menu fieldset + fieldset { padding-top: 4px; border-top: 1px solid var(--border); }
|
|
395
|
+
.settings-menu legend { padding: 6px 8px 4px; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
|
|
396
|
+
.settings-menu .choice { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: calc(var(--radius) - 2px); cursor: pointer; }
|
|
397
|
+
.settings-menu .choice:hover, .settings-menu .choice:has(:focus-visible) { background: var(--surface-2); }
|
|
398
|
+
.settings-menu .choice:has(:focus-visible) { outline: 2px solid var(--focus); outline-offset: -2px; }
|
|
399
|
+
.settings-menu .choice input { margin: 0; accent-color: var(--accent-fill); }
|
|
400
|
+
.settings-menu .choice:has(:checked) { font-weight: 600; }
|
|
367
401
|
#skin-choices .choice > span::before { content: none; }
|
|
368
|
-
.
|
|
402
|
+
.menu-item {
|
|
403
|
+
display: block; width: 100%; padding: 7px 10px; border: 0; border-radius: calc(var(--radius) - 2px); background: none;
|
|
404
|
+
color: var(--text); font: inherit; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer;
|
|
405
|
+
}
|
|
406
|
+
.menu-item:hover, .menu-item:focus-visible { background: var(--surface-2); }
|
|
407
|
+
.menu-item:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
|
|
408
|
+
.menu-item.danger { color: var(--danger); }
|
|
409
|
+
.menu-item[aria-current="true"] { font-weight: 600; }
|
|
410
|
+
.menu-item .menu-note { display: block; color: var(--muted); font-size: 0.75rem; overflow: hidden; text-overflow: ellipsis; }
|
|
411
|
+
.btn.upgrade, .restart-manager.pending { color: var(--warn); border-color: var(--warn); }
|
|
412
|
+
.topbar-menu { min-width: 220px; }
|
|
413
|
+
.topbar-menu:popover-open { top: calc(var(--topbar-h, 56px) - 4px); right: 8px; max-height: calc(100dvh - var(--topbar-h, 56px) - 8px); }
|
|
414
|
+
.topbar-menu:popover-open > .btn { width: 100%; text-align: left; }
|
|
415
|
+
@media (min-width: 900px) {
|
|
416
|
+
.menu-toggle { display: none; }
|
|
417
|
+
.topbar-menu {
|
|
418
|
+
position: static; display: flex; align-items: center; gap: 14px; min-width: 0; padding: 0;
|
|
419
|
+
border: 0; background: none; box-shadow: none; overflow: visible; color: inherit; font-size: inherit;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
369
422
|
.upgrade-note { font-size: 0.85rem; color: var(--warn); }
|
|
370
423
|
|
|
371
424
|
.empty { color: var(--muted); margin: 8px 0 0; }
|
|
@@ -389,8 +442,8 @@ body:has(#app[hidden]):has(#auth[hidden]):has(#stopped[hidden])::after {
|
|
|
389
442
|
.error { color: var(--danger); min-height: 1.2em; }
|
|
390
443
|
|
|
391
444
|
.terminal-panel {
|
|
392
|
-
/* Below the top bar, whose
|
|
393
|
-
position: fixed; inset: calc(var(--topbar-h, 52px) + 12px) 16px 16px; z-index: 10; display: flex; flex-direction: column;
|
|
445
|
+
/* Below the top bar, whose bottom edge the page publishes as --topbar-h. */
|
|
446
|
+
position: fixed; inset: calc(var(--topbar-h, 52px) + 12px) calc(16px + var(--dock-stage-space, 0px)) 16px 16px; z-index: 10; display: flex; flex-direction: column;
|
|
394
447
|
background: var(--term-bg); border: 1px solid var(--border); border-radius: var(--radius);
|
|
395
448
|
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35); overflow: hidden;
|
|
396
449
|
}
|
|
@@ -399,9 +452,56 @@ body:has(#app[hidden]):has(#auth[hidden]):has(#stopped[hidden])::after {
|
|
|
399
452
|
background: var(--surface); border-bottom: 1px solid var(--border); flex-wrap: wrap;
|
|
400
453
|
}
|
|
401
454
|
.panel-title { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1 1 16rem; }
|
|
402
|
-
.panel-title .title { font-weight: 600; }
|
|
403
|
-
.panel-title .sub { color: var(--muted); font-size: 0.78rem; }
|
|
404
|
-
.panel-
|
|
455
|
+
.panel-title .title { display: block; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
456
|
+
.panel-title .sub { display: block; color: var(--muted); font-size: 0.78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
457
|
+
.panel-switch {
|
|
458
|
+
min-width: 0; padding: 2px 6px; margin: -2px -6px; border: 0; border-radius: 6px; background: none;
|
|
459
|
+
color: var(--text); font: inherit; text-align: left; cursor: pointer;
|
|
460
|
+
}
|
|
461
|
+
.panel-switch:hover { background: var(--surface-2); }
|
|
462
|
+
.panel-switch:focus-visible { outline: 2px solid var(--focus); outline-offset: 0; }
|
|
463
|
+
.panel-switch .title::after {
|
|
464
|
+
content: ""; display: inline-block; width: 0.7em; height: 0.7em; margin-left: 0.35em; vertical-align: 0;
|
|
465
|
+
background: currentColor; mask: var(--icon-chevron) center / contain no-repeat; transform: rotate(90deg);
|
|
466
|
+
}
|
|
467
|
+
.panel-actions { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
468
|
+
.btn.split, .btn.swap { white-space: nowrap; }
|
|
469
|
+
.btn.swap { max-width: 14em; overflow: hidden; text-overflow: ellipsis; }
|
|
470
|
+
.session-menu { min-width: 240px; max-width: min(420px, calc(100vw - 16px)); }
|
|
471
|
+
.session-menu .menu-empty { margin: 0; padding: 6px 8px; color: var(--muted); }
|
|
472
|
+
.terminal-panes {
|
|
473
|
+
--ratio: 0.5;
|
|
474
|
+
flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr);
|
|
475
|
+
}
|
|
476
|
+
.terminal-panes[data-split="columns"] { grid-template-columns: minmax(0, calc(var(--ratio) * (100% - 8px))) 8px minmax(0, 1fr); }
|
|
477
|
+
.terminal-panes[data-split="rows"] { grid-template-rows: minmax(0, calc(var(--ratio) * (100% - 8px))) 8px minmax(0, 1fr); }
|
|
478
|
+
.terminal-pane { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
|
|
479
|
+
.pane-head { display: none; }
|
|
480
|
+
.terminal-panes[data-split] .pane-head {
|
|
481
|
+
display: flex; align-items: center; gap: 8px; padding: 4px 6px 4px 10px; font-size: 0.78rem;
|
|
482
|
+
color: #9aa3b2; border-bottom: 1px solid rgba(255, 255, 255, 0.08);
|
|
483
|
+
}
|
|
484
|
+
.terminal-panes[data-split] .terminal-pane.focused .pane-head { color: #e6e9ef; box-shadow: inset 0 -2px 0 var(--accent); }
|
|
485
|
+
.pane-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
486
|
+
.pane-close {
|
|
487
|
+
position: relative; flex: none; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 5px;
|
|
488
|
+
background: none; color: inherit; cursor: pointer;
|
|
489
|
+
}
|
|
490
|
+
.pane-close::before { content: ""; position: absolute; inset: 4px; background: currentColor; mask: var(--icon-close) center / contain no-repeat; }
|
|
491
|
+
.pane-close:hover { background: rgba(255, 255, 255, 0.1); }
|
|
492
|
+
.pane-close:focus-visible { outline: 2px solid var(--focus); outline-offset: 0; }
|
|
493
|
+
.splitter { position: relative; z-index: 1; touch-action: none; }
|
|
494
|
+
.splitter::after { content: ""; position: absolute; inset: 0; background: transparent; transition: background-color 0.15s; }
|
|
495
|
+
.splitter:hover::after, .splitter.dragging::after, .splitter:focus-visible::after { background: color-mix(in srgb, var(--accent) 55%, transparent); }
|
|
496
|
+
.splitter:focus-visible { outline: none; }
|
|
497
|
+
.pane-splitter { background: rgba(255, 255, 255, 0.06); }
|
|
498
|
+
@media (pointer: coarse) {
|
|
499
|
+
.pane-splitter::before { content: ""; position: absolute; inset: 0 -10px; }
|
|
500
|
+
.terminal-panes[data-split="rows"] .pane-splitter::before { inset: -10px 0; }
|
|
501
|
+
}
|
|
502
|
+
.terminal-panes[data-split="columns"] .pane-splitter { cursor: col-resize; }
|
|
503
|
+
.terminal-panes[data-split="rows"] .pane-splitter { cursor: row-resize; }
|
|
504
|
+
:root.resizing, :root.resizing * { user-select: none; -webkit-user-select: none; }
|
|
405
505
|
.btn.voice { white-space: nowrap; }
|
|
406
506
|
.btn.voice::before {
|
|
407
507
|
content: ""; display: inline-block; width: 1em; height: 1em; margin-right: 0.35em; vertical-align: -0.15em;
|
|
@@ -587,8 +687,7 @@ a.news-link:visited { color: var(--muted); }
|
|
|
587
687
|
.changelog-changes li::marker { color: var(--muted); }
|
|
588
688
|
.changelog-changes code { font-size: 0.8rem; padding: 0 4px; border-radius: 4px; background: var(--surface-2); }
|
|
589
689
|
|
|
590
|
-
|
|
591
|
-
.notes-panel .news-body { display: flex; flex-direction: column; padding-top: 12px; }
|
|
690
|
+
.notes-panel .dock-body { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 0 14px 14px; }
|
|
592
691
|
.notes-text {
|
|
593
692
|
flex: 1; min-height: 8em; margin: 0; padding: 10px 12px; resize: none;
|
|
594
693
|
border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); color: var(--text);
|
|
@@ -636,11 +735,10 @@ a.news-link:visited { color: var(--muted); }
|
|
|
636
735
|
.launch-tools { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex: 1 1 360px; flex-wrap: wrap; max-width: 680px; }
|
|
637
736
|
.launch-tools .cwd { max-width: none; }
|
|
638
737
|
.github-open { white-space: nowrap; }
|
|
639
|
-
.github-open::before
|
|
640
|
-
content: ""; display: inline-block; flex: none;
|
|
738
|
+
.github-open::before {
|
|
739
|
+
content: ""; display: inline-block; flex: none; width: 1em; height: 1em; margin: 0 0.45em 0 0; vertical-align: -0.15em;
|
|
740
|
+
background-color: currentColor; mask: var(--icon-github) center / contain no-repeat;
|
|
641
741
|
}
|
|
642
|
-
.github-open::before { width: 1em; height: 1em; margin: 0 0.45em 0 0; vertical-align: -0.15em; }
|
|
643
|
-
.github-mark { width: 26px; height: 26px; color: var(--heading); }
|
|
644
742
|
.github-accounts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--border); }
|
|
645
743
|
.github-chips { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
646
744
|
.github-chip { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px 2px 3px; font-size: 0.8rem; }
|
|
@@ -649,7 +747,7 @@ a.news-link:visited { color: var(--muted); }
|
|
|
649
747
|
background: var(--c, var(--muted)); color: #fff; font-size: 0.68rem; font-weight: 700;
|
|
650
748
|
}
|
|
651
749
|
.github-add { padding: 3px 10px; font-size: 0.8rem; }
|
|
652
|
-
.github .models-body { padding-top: 10px; }
|
|
750
|
+
.github .models-body { flex: 1; min-height: 0; overflow: auto; padding-top: 10px; }
|
|
653
751
|
.github-card {
|
|
654
752
|
display: grid; gap: 10px; padding: 14px 16px; margin-bottom: 10px; border: 1px solid var(--border); border-radius: var(--radius);
|
|
655
753
|
background: var(--surface-2); font-size: 0.9rem; line-height: 1.45;
|
|
@@ -698,8 +796,119 @@ a.news-link:visited { color: var(--muted); }
|
|
|
698
796
|
.github-options label { display: flex; align-items: center; gap: 6px; cursor: pointer; }
|
|
699
797
|
.github-options label:has(input:disabled) { opacity: 0.6; cursor: default; }
|
|
700
798
|
.github .models-note { display: grid; gap: 4px; font-size: 0.85rem; }
|
|
799
|
+
.dock .github-accounts { padding: 10px 14px 0; }
|
|
800
|
+
.dock .history-form { padding: 10px 14px; }
|
|
801
|
+
.dock .models-body { margin: 0; padding: 10px 14px 14px; }
|
|
802
|
+
.github-picker { display: flex; align-items: center; gap: 8px; padding: 10px 14px 0; }
|
|
803
|
+
.github-combo { position: relative; flex: 1; min-width: 0; }
|
|
804
|
+
.github-combo input {
|
|
805
|
+
width: 100%; padding: 7px 10px; border-radius: var(--radius); border: 1px solid var(--border);
|
|
806
|
+
background: var(--surface); color: var(--text); font: inherit; font-size: 0.9rem; font-weight: 600;
|
|
807
|
+
}
|
|
808
|
+
.github-combo input:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
|
|
809
|
+
.github-combo input::placeholder { font-weight: 400; }
|
|
810
|
+
.github-repo-list {
|
|
811
|
+
position: absolute; z-index: 5; left: 0; right: 0; top: calc(100% + 4px); max-height: min(26rem, 60dvh); overflow: auto;
|
|
812
|
+
margin: 0; padding: 4px; list-style: none; background: var(--surface); color: var(--text);
|
|
813
|
+
border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
|
|
814
|
+
}
|
|
815
|
+
.github-option { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: calc(var(--radius) - 2px); cursor: pointer; }
|
|
816
|
+
.github-option[aria-selected="true"] { background: color-mix(in srgb, var(--accent) 14%, var(--surface)); }
|
|
817
|
+
.github-option:hover { background: var(--surface-2); }
|
|
818
|
+
.github-option[aria-selected="true"]:hover { background: color-mix(in srgb, var(--accent) 18%, var(--surface)); }
|
|
819
|
+
.github-option .badge { flex: none; }
|
|
820
|
+
.github-option-text { flex: 1; min-width: 0; display: grid; }
|
|
821
|
+
.github-option-name { font-weight: 600; overflow-wrap: anywhere; }
|
|
822
|
+
.github-option-meta { color: var(--muted); font-size: 0.75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
823
|
+
.github-option mark { background: none; color: inherit; font-weight: 800; text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 2px; }
|
|
824
|
+
.github-option-empty { padding: 8px; color: var(--muted); }
|
|
825
|
+
.github-picker-note { display: grid; gap: 2px; margin: 0; padding: 6px 14px 0; color: var(--muted); font-size: 0.78rem; overflow-wrap: anywhere; }
|
|
826
|
+
.github-picker-note.warn { color: var(--warn); }
|
|
827
|
+
.github-views { display: flex; gap: 2px; margin: 10px 14px 0; border-bottom: 1px solid var(--border); container-type: inline-size; }
|
|
828
|
+
.github-view {
|
|
829
|
+
position: relative; flex: 1 1 auto; min-width: 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
|
|
830
|
+
padding: 7px 8px; margin-bottom: -1px; border: 1px solid transparent; border-radius: var(--radius) var(--radius) 0 0;
|
|
831
|
+
background: none; color: var(--muted); font: inherit; font-size: 0.85rem; font-weight: 600; white-space: nowrap; cursor: pointer;
|
|
832
|
+
}
|
|
833
|
+
.github-view:hover { color: var(--text); }
|
|
834
|
+
.github-view[aria-selected="true"] { color: var(--heading); background: var(--surface-2); border-color: var(--border); border-bottom-color: var(--surface-2); }
|
|
835
|
+
.github-view:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
|
|
836
|
+
.github-view .short { display: none; }
|
|
837
|
+
@container (max-width: 340px) {
|
|
838
|
+
.github-view .long { display: none; }
|
|
839
|
+
.github-view .short { display: inline; }
|
|
840
|
+
}
|
|
841
|
+
.github-running { width: 8px; height: 8px; border-radius: 50%; background: var(--warn); box-shadow: 0 0 0 3px color-mix(in srgb, var(--warn) 25%, transparent); animation: pulse 1.4s ease-in-out infinite; }
|
|
842
|
+
.github-body[hidden] { display: none; }
|
|
843
|
+
.github-view-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding-bottom: 6px; }
|
|
844
|
+
.github-view-tools .btn { padding: 4px 10px; font-size: 0.8rem; }
|
|
845
|
+
.github-spacer { flex: 1 1 0; }
|
|
846
|
+
.github-segment { display: inline-flex; }
|
|
847
|
+
.github-segment .btn { border-radius: 0; }
|
|
848
|
+
.github-segment .btn:first-child { border-radius: var(--radius) 0 0 var(--radius); }
|
|
849
|
+
.github-segment .btn:last-child { border-radius: 0 var(--radius) var(--radius) 0; margin-left: -1px; }
|
|
850
|
+
.github-segment .btn[aria-pressed="true"] { position: relative; background: var(--accent-fill); border-color: var(--accent-fill); color: var(--accent-text); }
|
|
851
|
+
a.btn.github-out { text-decoration: none; white-space: nowrap; }
|
|
852
|
+
a.btn.github-out::after {
|
|
853
|
+
content: ""; display: inline-block; width: 0.8em; height: 0.8em; margin-left: 0.3em; vertical-align: -0.05em;
|
|
854
|
+
background: currentColor; mask: var(--icon-external) center / contain no-repeat;
|
|
855
|
+
}
|
|
856
|
+
.github-view-note { margin: 10px 0; color: var(--muted); font-size: 0.85rem; }
|
|
857
|
+
.github-body .github-error { margin: 10px 0; font-size: 0.85rem; overflow-wrap: anywhere; }
|
|
858
|
+
.github-record { grid-template-columns: minmax(0, 1fr) auto; }
|
|
859
|
+
.github-record .history-title { white-space: normal; overflow-wrap: anywhere; }
|
|
860
|
+
.github-record-title { color: inherit; text-decoration: none; }
|
|
861
|
+
.github-record-title:hover { text-decoration: underline; }
|
|
862
|
+
.github-record-title:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; border-radius: 2px; }
|
|
863
|
+
.github-record .btn { padding: 3px 10px; font-size: 0.8rem; }
|
|
864
|
+
.github-running-note { margin: 4px 0 6px; padding: 6px 10px; border-radius: var(--radius); background: var(--surface-2); font-size: 0.85rem; }
|
|
865
|
+
.github-running-note.on { color: var(--warn); background: color-mix(in srgb, var(--warn) 12%, var(--surface)); }
|
|
866
|
+
.badge.run { --badge: var(--warn); }
|
|
867
|
+
.badge.ok { --badge: var(--ok); }
|
|
868
|
+
.badge.bad { --badge: var(--danger); }
|
|
869
|
+
.badge.run, .badge.ok, .badge.bad { color: color-mix(in srgb, var(--badge) 72%, #000); border-color: color-mix(in srgb, var(--badge) 45%, transparent); }
|
|
870
|
+
:where(:root[data-theme="dark"]) {
|
|
871
|
+
.badge.run, .badge.ok, .badge.bad { color: var(--badge); }
|
|
872
|
+
}
|
|
873
|
+
.github-issue-form .github-fields { grid-template-columns: minmax(0, 1fr); }
|
|
874
|
+
.github-issue-form h3, .github-issue-form .github-small, .github .dock-sub { overflow-wrap: anywhere; }
|
|
875
|
+
.github-issue-body { min-height: 10em; resize: vertical; padding: 8px 10px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.9rem; line-height: 1.5; }
|
|
876
|
+
.github-issue-body:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
|
|
877
|
+
@media (pointer: coarse) {
|
|
878
|
+
.github-combo input, .github-issue-body, .github-issue-form input { font-size: 16px; }
|
|
879
|
+
}
|
|
701
880
|
.toast .toast-action { margin-left: 12px; padding: 2px 10px; background: transparent; box-shadow: none; color: inherit; border-color: currentColor; }
|
|
702
881
|
|
|
882
|
+
.dock {
|
|
883
|
+
position: fixed; top: var(--topbar-h, 56px); right: 0; bottom: 0; z-index: 12; width: var(--dock-w, 420px); max-width: 100vw;
|
|
884
|
+
display: flex; flex-direction: column; background: var(--surface); color: var(--text);
|
|
885
|
+
border-left: 1px solid var(--border); box-shadow: -16px 0 48px rgba(0, 0, 0, 0.25);
|
|
886
|
+
}
|
|
887
|
+
:root.dock-push .dock { box-shadow: none; }
|
|
888
|
+
:root.dock-full .dock { width: 100vw; border-left: 0; }
|
|
889
|
+
.dock-splitter { position: absolute; left: -5px; top: 0; bottom: 0; width: 10px; cursor: col-resize; }
|
|
890
|
+
.dock-splitter::after { left: 4px; right: 4px; }
|
|
891
|
+
:root.dock-full .dock-splitter { display: none; }
|
|
892
|
+
@media (pointer: coarse) {
|
|
893
|
+
/* Wider to touch, drawn the same. */
|
|
894
|
+
.dock-splitter { left: -14px; width: 28px; }
|
|
895
|
+
.dock-splitter::after { left: 13px; right: 13px; }
|
|
896
|
+
}
|
|
897
|
+
.dock-bar { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--border); }
|
|
898
|
+
.dock-tabs { flex: 1; display: flex; gap: 4px; min-width: 0; }
|
|
899
|
+
.dock-tab {
|
|
900
|
+
display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid transparent; border-radius: var(--radius);
|
|
901
|
+
background: none; color: var(--muted); font: inherit; font-family: var(--font-display); font-size: 0.95rem; font-weight: 600; cursor: pointer;
|
|
902
|
+
}
|
|
903
|
+
.dock-tab::before { content: ""; width: 1em; height: 1em; background: currentColor; mask: var(--icon-github) center / contain no-repeat; }
|
|
904
|
+
.dock-tab.notes-tab::before { mask-image: var(--icon-notes); }
|
|
905
|
+
.dock-tab:hover { color: var(--text); }
|
|
906
|
+
.dock-tab[aria-selected="true"] { color: var(--heading); background: var(--surface-2); border-color: var(--border); }
|
|
907
|
+
.dock-tab:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
|
|
908
|
+
.dock-panel { flex: 1; min-height: 0; display: flex; flex-direction: column; }
|
|
909
|
+
.dock-sub { margin: 0; padding: 8px 14px 0; color: var(--muted); font-size: 0.78rem; }
|
|
910
|
+
.github .github-accounts { border-bottom: 0; padding-bottom: 0; }
|
|
911
|
+
|
|
703
912
|
.toast {
|
|
704
913
|
position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 20;
|
|
705
914
|
max-width: min(640px, calc(100vw - 32px)); padding: 10px 14px; border-radius: var(--radius);
|
|
@@ -724,9 +933,9 @@ a.news-link:visited { color: var(--muted); }
|
|
|
724
933
|
}
|
|
725
934
|
|
|
726
935
|
@media (prefers-reduced-motion: reduce) {
|
|
727
|
-
.status-pill.active::before, .agent.working::after, .model-detail .stat-fill, .toast:not([hidden]), .tip:not([hidden]), .
|
|
728
|
-
.model-name::before, .provider .copies summary::before, .
|
|
729
|
-
.github-waiting::before, body:has(#app[hidden]):has(#auth[hidden]):has(#stopped[hidden])::after { animation: none; }
|
|
936
|
+
.status-pill.active::before, .agent.working::after, .model-detail .stat-fill, .toast:not([hidden]), .tip:not([hidden]), .menu:popover-open { animation: none; }
|
|
937
|
+
.model-name::before, .provider .copies summary::before, .menu-button::after, .btn, .models, .news-panel, .models::backdrop, .news-panel::backdrop { transition: none; }
|
|
938
|
+
.github-waiting::before, .github-running, body:has(#app[hidden]):has(#auth[hidden]):has(#stopped[hidden])::after { animation: none; }
|
|
730
939
|
.btn:active:not(:disabled) { transform: none; }
|
|
731
940
|
.btn.voice[aria-pressed="true"]::before { animation: none; }
|
|
732
941
|
.drag-handle, .session-grid::before, .session-grid.reordering::before,
|
|
@@ -734,9 +943,8 @@ a.news-link:visited { color: var(--muted); }
|
|
|
734
943
|
}
|
|
735
944
|
|
|
736
945
|
@media (max-width: 640px) {
|
|
737
|
-
.topbar { padding: 10px 16px;
|
|
738
|
-
.
|
|
739
|
-
.topbar-end { flex: 1 1 100%; justify-content: space-between; }
|
|
946
|
+
.topbar { padding: 10px 16px; }
|
|
947
|
+
.connection .label { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
|
|
740
948
|
.terminal-panel { inset: var(--topbar-h, 56px) 0 0; border-radius: 0; }
|
|
741
949
|
.session-grid { grid-template-columns: 1fr; }
|
|
742
950
|
.cwd { flex-basis: 100%; }
|