feat(agent): support Responses steering and project-aware tools
Use the dedicated TJWATER_AGENT_URL and Responses stream protocol. Keep running turns active while users steer or queue follow-ups and edit pending delivery. Refresh the model catalog before generation and preserve approval mode selection. Integrate scoped investigation messaging/presentation, geographic place selection, current Agent composer styles and supporting workbench contracts. Validation: 77 focused Vitest checks, 21 browser cases, lint, typecheck and production build. Preserve direct Server/Agent routing and project authentication.
This commit is contained in:
+362
-131
@@ -135,7 +135,6 @@
|
||||
--agent-user-message-surface: color-mix(in srgb, var(--action-selection-soft) 92%, transparent);
|
||||
--agent-user-message-border: var(--action-selection-border);
|
||||
--agent-white-acrylic-surface: color-mix(in srgb, var(--palette-paper) 86%, transparent);
|
||||
--agent-operational-surface: color-mix(in srgb, var(--surface-subtle) 86%, transparent);
|
||||
--acrylic-panel-blur: 24px;
|
||||
--acrylic-control-blur: 18px;
|
||||
--acrylic-backdrop-saturation: 1.08;
|
||||
@@ -161,7 +160,6 @@
|
||||
--shadow-agent-floating:
|
||||
0 18px 42px rgba(15, 33, 55, 0.18), 0 4px 12px rgba(15, 33, 55, 0.1),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.72);
|
||||
--shadow-agent-operational: 0 12px 32px rgba(15, 33, 55, 0.14), 0 3px 10px rgba(15, 33, 55, 0.08);
|
||||
--surface-dock: var(--surface-subtle);
|
||||
--surface-control: color-mix(in srgb, var(--surface-subtle) 92%, transparent);
|
||||
--surface-well: color-mix(in srgb, var(--surface-panel) 66%, transparent);
|
||||
@@ -239,13 +237,11 @@
|
||||
--shadow-agent-floating:
|
||||
0 20px 46px rgba(7, 18, 32, 0.26), 0 5px 14px rgba(7, 18, 32, 0.16),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.68);
|
||||
--shadow-agent-operational: 0 14px 36px rgba(7, 18, 32, 0.2), 0 4px 12px rgba(7, 18, 32, 0.12);
|
||||
--agent-floating-reading-item: color-mix(in srgb, var(--palette-paper) 78%, transparent);
|
||||
--agent-floating-reading-item-hover: color-mix(in srgb, var(--palette-paper) 92%, transparent);
|
||||
--agent-floating-reading-active: color-mix(in srgb, var(--action-selection-soft) 88%, transparent);
|
||||
--agent-user-message-surface: color-mix(in srgb, var(--action-selection-soft) 94%, transparent);
|
||||
--agent-white-acrylic-surface: color-mix(in srgb, var(--palette-paper) 90%, transparent);
|
||||
--agent-operational-surface: color-mix(in srgb, var(--surface-subtle) 90%, transparent);
|
||||
--surface-control: color-mix(in srgb, var(--surface-subtle) 96%, transparent);
|
||||
--surface-well: color-mix(in srgb, var(--surface-panel) 78%, transparent);
|
||||
--surface-reading: color-mix(in srgb, var(--palette-paper) 98.5%, transparent);
|
||||
@@ -584,7 +580,6 @@ button:disabled {
|
||||
--agent-floating-reading-active: var(--action-selection-soft);
|
||||
--agent-user-message-surface: var(--action-selection-soft);
|
||||
--agent-white-acrylic-surface: var(--surface-reading);
|
||||
--agent-operational-surface: var(--surface-subtle);
|
||||
--agent-floating-acrylic-backdrop: none;
|
||||
}
|
||||
|
||||
@@ -614,7 +609,6 @@ button:disabled {
|
||||
--agent-floating-reading-active: var(--action-selection-soft);
|
||||
--agent-user-message-surface: var(--action-selection-soft);
|
||||
--agent-white-acrylic-surface: var(--surface-reading);
|
||||
--agent-operational-surface: var(--surface-subtle);
|
||||
--agent-floating-acrylic-backdrop: none;
|
||||
}
|
||||
|
||||
@@ -638,7 +632,6 @@ button:disabled {
|
||||
--agent-user-message-surface: Canvas;
|
||||
--agent-user-message-border: CanvasText;
|
||||
--agent-white-acrylic-surface: Canvas;
|
||||
--agent-operational-surface: Canvas;
|
||||
--agent-floating-acrylic-backdrop: none;
|
||||
}
|
||||
|
||||
@@ -723,7 +716,6 @@ button:disabled {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
.agent-panel-operational-float > .agent-panel-control,
|
||||
.agent-panel-history-extension .agent-panel-control,
|
||||
.agent-panel-composer > .agent-panel-control {
|
||||
border: 0;
|
||||
@@ -731,10 +723,6 @@ button:disabled {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.agent-panel-operational-float > .agent-panel-control {
|
||||
border-radius: inherit;
|
||||
}
|
||||
|
||||
.agent-panel-history-extension {
|
||||
border: 0;
|
||||
border-radius: 0 0 var(--radius-panel) var(--radius-panel);
|
||||
@@ -748,12 +736,10 @@ button:disabled {
|
||||
background-color: var(--agent-white-acrylic-surface);
|
||||
}
|
||||
|
||||
.agent-panel-operational-float,
|
||||
.agent-panel-composer {
|
||||
inset-inline: calc(1rem + var(--scrollbar-size) + 1px);
|
||||
}
|
||||
|
||||
.agent-panel-operational-float,
|
||||
.agent-panel-composer,
|
||||
.agent-conversation-scroll-button,
|
||||
.agent-speech-selection-action {
|
||||
@@ -765,18 +751,8 @@ button:disabled {
|
||||
outline-offset: -1px;
|
||||
}
|
||||
|
||||
.agent-panel-operational-float {
|
||||
top: 4.75rem;
|
||||
background-color: var(--agent-operational-surface);
|
||||
background-clip: padding-box;
|
||||
box-shadow: var(--shadow-agent-operational);
|
||||
backdrop-filter: var(--agent-floating-acrylic-backdrop);
|
||||
-webkit-backdrop-filter: var(--agent-floating-acrylic-backdrop);
|
||||
}
|
||||
|
||||
.agent-panel-history-extension .agent-history-item,
|
||||
.agent-panel-history-extension .agent-history-state,
|
||||
.agent-panel-operational-float .agent-brief-metric {
|
||||
.agent-panel-history-extension .agent-history-state {
|
||||
background-color: var(--agent-floating-reading-item);
|
||||
}
|
||||
|
||||
@@ -820,10 +796,6 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
padding-bottom: 10.5rem;
|
||||
}
|
||||
|
||||
.agent-panel-conversation-content-has-brief {
|
||||
padding-top: 13rem;
|
||||
}
|
||||
|
||||
.agent-panel-conversation-content-empty {
|
||||
padding-bottom: 13.5rem;
|
||||
}
|
||||
@@ -852,8 +824,7 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
}
|
||||
|
||||
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
||||
.agent-panel-floating-acrylic,
|
||||
.agent-panel-operational-float {
|
||||
.agent-panel-floating-acrylic {
|
||||
background-image: none;
|
||||
backdrop-filter: none;
|
||||
-webkit-backdrop-filter: none;
|
||||
@@ -861,8 +832,7 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
}
|
||||
|
||||
@media (prefers-reduced-transparency: reduce) {
|
||||
.agent-panel-floating-acrylic,
|
||||
.agent-panel-operational-float {
|
||||
.agent-panel-floating-acrylic {
|
||||
background-image: none;
|
||||
backdrop-filter: none;
|
||||
-webkit-backdrop-filter: none;
|
||||
@@ -875,8 +845,7 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.agent-panel-floating-acrylic,
|
||||
.agent-panel-operational-float {
|
||||
.agent-panel-floating-acrylic {
|
||||
forced-color-adjust: none;
|
||||
border-color: CanvasText;
|
||||
background-color: Canvas;
|
||||
@@ -935,28 +904,16 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
-webkit-backdrop-filter: none;
|
||||
}
|
||||
|
||||
.agent-ready-orbit,
|
||||
.agent-ready-core {
|
||||
transform-box: fill-box;
|
||||
transform-origin: center;
|
||||
}
|
||||
|
||||
.agent-ready-orbit {
|
||||
animation: agent-ready-orbit 9s linear infinite;
|
||||
}
|
||||
|
||||
.agent-ready-core {
|
||||
animation: agent-ready-core 2.8s ease-in-out infinite;
|
||||
}
|
||||
|
||||
.agent-panel-icon-button {
|
||||
.agent-panel-icon-button,
|
||||
.agent-project-trigger {
|
||||
border: 1px solid var(--surface-divider);
|
||||
background: var(--surface-control);
|
||||
box-shadow: var(--action-shadow-secondary);
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
.agent-panel-icon-button:hover {
|
||||
.agent-panel-icon-button:hover,
|
||||
.agent-project-trigger:hover {
|
||||
border-color: var(--action-border-hover);
|
||||
background: var(--action-soft);
|
||||
color: var(--action-blue-hover);
|
||||
@@ -967,7 +924,7 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
border: 0;
|
||||
background: var(--action-blue);
|
||||
color: #ffffff;
|
||||
box-shadow: var(--action-shadow-primary);
|
||||
box-shadow: 0 2px 6px rgba(70, 95, 145, 0.22);
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
@@ -979,19 +936,72 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
}
|
||||
|
||||
.agent-panel-primary-icon:disabled {
|
||||
background: var(--palette-brand);
|
||||
background: var(--action-blue);
|
||||
color: rgba(255, 255, 255, 0.86);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell,
|
||||
.agent-panel-overlay {
|
||||
--agent-palette-shell: #E8ECF3;
|
||||
--agent-palette-reading: #F8F9FC;
|
||||
--agent-palette-accent: #465F91;
|
||||
--agent-palette-accent-hover: #394E7C;
|
||||
--agent-palette-accent-pressed: #2F416B;
|
||||
--agent-palette-selection: #DDE4F1;
|
||||
--agent-input-placeholder: #8791A3;
|
||||
--surface-panel: #E0E5EF;
|
||||
--surface-subtle: var(--agent-palette-shell);
|
||||
--surface-control: color-mix(in srgb, var(--agent-palette-shell) 92%, transparent);
|
||||
--surface-reading: var(--agent-palette-reading);
|
||||
--action-blue: var(--agent-palette-accent);
|
||||
--action-blue-hover: var(--agent-palette-accent-hover);
|
||||
--action-blue-pressed: var(--agent-palette-accent-pressed);
|
||||
--action-soft: #E4E8F1;
|
||||
--action-soft-pressed: #D8DFEB;
|
||||
--action-selection-soft: var(--agent-palette-selection);
|
||||
--action-selection-soft-hover: #CFD9EA;
|
||||
--action-selection-soft-pressed: #C2CEE2;
|
||||
--action-selection-border: #7585AA;
|
||||
--action-border-hover: var(--agent-palette-accent);
|
||||
--action-border-pressed: var(--agent-palette-accent-hover);
|
||||
--action-focus-ring: var(--agent-palette-accent-hover);
|
||||
--field-focus-border: var(--agent-palette-accent);
|
||||
--action-focus-offset: var(--agent-palette-reading);
|
||||
--action-shadow-primary: 0 5px 12px rgba(70, 95, 145, 0.2);
|
||||
--action-shadow-primary-pressed: 0 1px 3px rgba(47, 65, 107, 0.18);
|
||||
--ink-muted: #4E596D;
|
||||
--acrylic-navigation: color-mix(in srgb, #E4E9F2 72%, transparent);
|
||||
--agent-floating-reading-surface: color-mix(in srgb, #E6EBF3 86%, transparent);
|
||||
--agent-floating-reading-item: color-mix(in srgb, var(--agent-palette-reading) 76%, transparent);
|
||||
--agent-floating-reading-item-hover: color-mix(in srgb, var(--agent-palette-reading) 92%, transparent);
|
||||
--agent-floating-reading-active: color-mix(in srgb, var(--agent-palette-selection) 90%, transparent);
|
||||
--agent-user-message-surface: var(--agent-palette-selection);
|
||||
--agent-user-message-border: #C7D1E3;
|
||||
--agent-white-acrylic-surface: color-mix(in srgb, #F0F3F8 88%, transparent);
|
||||
}
|
||||
|
||||
.agent-panel-prompt-textarea::placeholder {
|
||||
color: var(--agent-input-placeholder);
|
||||
font-weight: 400;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"],
|
||||
.agent-panel-overlay[data-agent-presentation="desktop-dock"] {
|
||||
--agent-dock-surface: var(--surface-subtle);
|
||||
--agent-dock-band: color-mix(in srgb, var(--palette-paper) 55%, transparent);
|
||||
--agent-dock-surface: var(--agent-palette-shell);
|
||||
--agent-dock-reading: var(--agent-palette-reading);
|
||||
--agent-dock-band: var(--agent-white-acrylic-surface);
|
||||
--agent-dock-control-shadow:
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 1px 2px rgba(15, 23, 42, 0.04);
|
||||
--agent-dock-overlay-surface: color-mix(in srgb, var(--palette-paper) 94%, transparent);
|
||||
--agent-dock-overlay-backdrop: blur(12px) saturate(1.03);
|
||||
--agent-dock-overlay-shadow: 0 6px 16px rgba(15, 23, 42, 0.08);
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 1px 2px rgba(43, 55, 87, 0.05);
|
||||
--agent-dock-overlay-surface: var(--agent-floating-reading-surface);
|
||||
--agent-dock-overlay-backdrop: var(--agent-floating-acrylic-backdrop);
|
||||
--agent-dock-overlay-shadow: 0 6px 16px rgba(43, 55, 87, 0.1);
|
||||
--agent-dock-acrylic-texture:
|
||||
linear-gradient(var(--acrylic-exclusion), var(--acrylic-exclusion)),
|
||||
linear-gradient(var(--acrylic-luminosity), var(--acrylic-luminosity)), var(--acrylic-noise);
|
||||
--agent-dock-acrylic-shadow:
|
||||
inset 0 1px 0 var(--acrylic-highlight), 0 2px 6px rgba(43, 55, 87, 0.07);
|
||||
--agent-user-message-surface: var(--action-selection-soft);
|
||||
--agent-user-message-border: transparent;
|
||||
--agent-floating-reading-item: transparent;
|
||||
@@ -1005,8 +1015,23 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
border-color: var(--surface-divider);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"]:where([data-agent-starting="true"]) {
|
||||
--agent-dock-surface: #EFF2F7;
|
||||
--agent-dock-reading: #FCFCFE;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] :is(.agent-panel-header, .agent-panel-band),
|
||||
.agent-panel-overlay[data-agent-presentation="desktop-dock"] {
|
||||
background-image: var(--agent-dock-acrylic-texture);
|
||||
background-blend-mode: exclusion, luminosity, soft-light;
|
||||
background-clip: padding-box;
|
||||
backdrop-filter: var(--agent-dock-overlay-backdrop);
|
||||
-webkit-backdrop-filter: var(--agent-dock-overlay-backdrop);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-header {
|
||||
box-shadow: none;
|
||||
background-color: var(--acrylic-navigation);
|
||||
box-shadow: inset 0 -1px 0 var(--surface-divider);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-header > div:first-child {
|
||||
@@ -1014,18 +1039,16 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-band {
|
||||
background: var(--agent-dock-band);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-band {
|
||||
background-color: var(--agent-dock-band);
|
||||
border-color: var(--surface-divider);
|
||||
box-shadow: inset 0 1px 0 var(--acrylic-highlight);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-conversation {
|
||||
background: transparent;
|
||||
background: var(--agent-dock-reading);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-band > .agent-panel-conversation {
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-conversation[data-agent-conversation-state="empty"] {
|
||||
background: var(--agent-dock-surface);
|
||||
}
|
||||
|
||||
@@ -1035,14 +1058,172 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-icon-button,
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] form.agent-panel-control {
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-project-trigger {
|
||||
box-shadow: var(--agent-dock-control-shadow);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] form.agent-panel-control:focus-within {
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form,
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form > [data-slot="input-group"] {
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form > [data-slot="input-group"] {
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-body {
|
||||
display: block;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--surface-border);
|
||||
border-radius: 12px;
|
||||
background: var(--agent-dock-reading);
|
||||
transition: background-color 180ms ease;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-body:focus-within {
|
||||
border-color: var(--field-focus-border);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-tools {
|
||||
min-height: 40px;
|
||||
padding: 0 4px;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-tools :where(button) {
|
||||
min-height: 40px;
|
||||
min-width: 40px;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"][data-agent-starting="false"] .agent-panel-band {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"][data-agent-starting="false"] .agent-panel-input-form > [data-slot="input-group"] {
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"][data-agent-starting="false"] .agent-panel-input-form textarea {
|
||||
min-height: 96px;
|
||||
max-height: clamp(96px, 24dvh, 192px);
|
||||
padding: 12px;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"][data-agent-starting="false"] .agent-panel-input-tools {
|
||||
padding-block: 0;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-starting="true"] .agent-panel-main-content {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-starting="true"] .agent-panel-start-composer {
|
||||
position: relative;
|
||||
inset: auto;
|
||||
z-index: auto;
|
||||
align-self: center;
|
||||
flex-shrink: 0;
|
||||
width: calc(100% - 24px);
|
||||
max-width: 600px;
|
||||
margin-block: auto;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
backdrop-filter: none;
|
||||
-webkit-backdrop-filter: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-start-composer .agent-panel-input-form {
|
||||
padding: 16px;
|
||||
border-radius: 16px;
|
||||
background-color: var(--agent-dock-band);
|
||||
background-image: var(--agent-dock-acrylic-texture);
|
||||
background-blend-mode: exclusion, luminosity, soft-light;
|
||||
box-shadow: var(--agent-dock-acrylic-shadow);
|
||||
backdrop-filter: var(--agent-dock-overlay-backdrop);
|
||||
-webkit-backdrop-filter: var(--agent-dock-overlay-backdrop);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-composer-motion,
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form,
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form textarea {
|
||||
transition-duration: 280ms;
|
||||
transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form {
|
||||
transition-property: padding, border-radius, background-color, box-shadow;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form textarea {
|
||||
transition-property: min-height, padding, font-size, line-height;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-start-composer textarea {
|
||||
min-height: 160px;
|
||||
max-height: clamp(160px, calc(100dvh - 480px), 240px);
|
||||
padding: 16px;
|
||||
font-size: 16px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-composer-motion,
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form,
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-input-form textarea {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
||||
.agent-panel-start-heading {
|
||||
margin-bottom: 20px;
|
||||
text-align: center;
|
||||
font-size: 22px;
|
||||
font-weight: 600;
|
||||
line-height: 32px;
|
||||
color: var(--ink);
|
||||
}
|
||||
|
||||
.agent-panel-start-suggestions {
|
||||
min-height: 204px;
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.agent-panel-start-suggestion {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
width: 100%;
|
||||
min-height: 68px;
|
||||
padding: 8px 12px;
|
||||
border-radius: 8px;
|
||||
background: transparent;
|
||||
text-align: left;
|
||||
color: var(--ink-muted);
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
.agent-panel-start-suggestion:hover {
|
||||
background: var(--action-soft);
|
||||
color: var(--action-blue-hover);
|
||||
}
|
||||
}
|
||||
|
||||
.agent-panel-suggestion-status {
|
||||
padding: 12px;
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
color: var(--ink-muted);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] :where(button) {
|
||||
border-radius: 10px;
|
||||
}
|
||||
@@ -1053,36 +1234,23 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
translate: var(--tw-translate-x, 0) 1px;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-icon-button:active {
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-icon-button:active,
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-project-trigger:active {
|
||||
background: var(--action-soft-pressed);
|
||||
color: var(--action-blue-pressed);
|
||||
box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-band .surface-reading {
|
||||
border-color: var(--surface-border);
|
||||
background: var(--agent-floating-reading-item);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-suggestions .surface-reading {
|
||||
border-color: var(--surface-divider);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-empty-mark {
|
||||
background: var(--agent-dock-band);
|
||||
box-shadow: inset 0 0 0 1px var(--surface-divider);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-capabilities {
|
||||
border-radius: 0;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-capability {
|
||||
min-height: 72px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-capability-icon {
|
||||
border-radius: 10px;
|
||||
background: var(--agent-dock-band);
|
||||
box-shadow: none;
|
||||
background-color: var(--agent-white-acrylic-surface);
|
||||
box-shadow: var(--agent-dock-acrylic-shadow);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-message,
|
||||
@@ -1096,40 +1264,38 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] [data-agent-ui-result] {
|
||||
border: 1px solid var(--surface-divider);
|
||||
background: var(--surface-reading);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-operational-brief {
|
||||
border: 0;
|
||||
background: var(--agent-dock-band);
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] [data-agent-progress] {
|
||||
border-color: var(--surface-divider);
|
||||
background: var(--agent-dock-surface);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-brief-metric {
|
||||
border: 0;
|
||||
background: transparent;
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] [data-agent-ui-result] {
|
||||
border: 1px solid var(--surface-divider);
|
||||
background: var(--surface-reading);
|
||||
}
|
||||
|
||||
.agent-panel-overlay[data-agent-presentation="desktop-dock"] {
|
||||
border: 0;
|
||||
border-radius: 12px;
|
||||
background-color: var(--agent-dock-overlay-surface);
|
||||
background-image: none;
|
||||
box-shadow: var(--agent-dock-overlay-shadow);
|
||||
box-shadow: inset 0 1px 0 var(--acrylic-highlight), var(--agent-dock-overlay-shadow);
|
||||
backdrop-filter: var(--agent-dock-overlay-backdrop);
|
||||
-webkit-backdrop-filter: var(--agent-dock-overlay-backdrop);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-header-expanded {
|
||||
background-color: var(--agent-dock-overlay-surface);
|
||||
border-color: var(--surface-divider);
|
||||
box-shadow: var(--agent-dock-overlay-shadow);
|
||||
box-shadow: var(--shadow-agent-history-bottom);
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-history-extension {
|
||||
border-radius: 0 0 12px 12px;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
backdrop-filter: none;
|
||||
-webkit-backdrop-filter: none;
|
||||
}
|
||||
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"] .agent-panel-history-extension .agent-panel-control {
|
||||
@@ -1139,16 +1305,20 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
}
|
||||
|
||||
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"],
|
||||
.agent-panel-overlay[data-agent-presentation="desktop-dock"] {
|
||||
--agent-dock-overlay-surface: var(--palette-paper);
|
||||
--agent-dock-overlay-backdrop: none;
|
||||
--agent-dock-acrylic-texture: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-transparency: reduce) {
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"],
|
||||
.agent-panel-overlay[data-agent-presentation="desktop-dock"] {
|
||||
--agent-dock-overlay-surface: var(--palette-paper);
|
||||
--agent-dock-overlay-backdrop: none;
|
||||
--agent-dock-acrylic-texture: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1156,11 +1326,16 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
.agent-panel-shell[data-agent-presentation="desktop-dock"],
|
||||
.agent-panel-overlay[data-agent-presentation="desktop-dock"] {
|
||||
--agent-dock-surface: Canvas;
|
||||
--agent-dock-reading: Canvas;
|
||||
--agent-dock-band: Canvas;
|
||||
--agent-dock-control-shadow: none;
|
||||
--agent-dock-overlay-surface: Canvas;
|
||||
--agent-dock-overlay-backdrop: none;
|
||||
--agent-dock-overlay-shadow: none;
|
||||
--agent-dock-acrylic-texture: none;
|
||||
--agent-dock-acrylic-shadow: none;
|
||||
--acrylic-highlight: transparent;
|
||||
--acrylic-navigation: Canvas;
|
||||
--surface-control: Canvas;
|
||||
--surface-reading: Canvas;
|
||||
--surface-border: CanvasText;
|
||||
@@ -1281,6 +1456,57 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
border-top: 1px solid var(--surface-divider);
|
||||
}
|
||||
|
||||
.investigation-report > .investigation-report-section {
|
||||
margin: 0.75rem;
|
||||
border: 1px solid var(--surface-divider);
|
||||
border-radius: 0.75rem;
|
||||
background: var(--palette-paper);
|
||||
}
|
||||
|
||||
.investigation-card-heading,
|
||||
.investigation-detail-heading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.investigation-detail-backdrop {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 90;
|
||||
background: color-mix(in srgb, var(--palette-paper) 76%, transparent);
|
||||
}
|
||||
|
||||
.investigation-detail-positioner {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: 91;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.investigation-detail-panel {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: min(44rem, calc(100vw - 2rem));
|
||||
max-height: min(86dvh, 56rem);
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
pointer-events: auto;
|
||||
border: 1px solid var(--surface-divider);
|
||||
background: var(--palette-paper);
|
||||
box-shadow: 0 16px 48px rgb(38 51 77 / 12%);
|
||||
}
|
||||
|
||||
.investigation-detail-panel-wide { width: min(70rem, calc(100vw - 2rem)); }
|
||||
.investigation-detail-heading { flex-shrink: 0; padding: 1rem; border-bottom: 1px solid var(--surface-divider); }
|
||||
.investigation-detail-scroll { min-height: 0; overflow: auto; padding: 1rem; overscroll-behavior: contain; scrollbar-gutter: stable; overflow-wrap: anywhere; }
|
||||
.investigation-detail-scroll > .investigation-report-section { padding: 0; border: 0; }
|
||||
.investigation-evidence-preview { display: grid; gap: 0.75rem; margin-top: 0.5rem; }
|
||||
.investigation-conclusion-preview { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
|
||||
|
||||
.investigation-report-update {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
@@ -1340,6 +1566,8 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
|
||||
.investigation-diagram {
|
||||
min-width: 0;
|
||||
/* SVG replacement must not become the report reader's scroll anchor. */
|
||||
overflow-anchor: none;
|
||||
overflow: hidden;
|
||||
border: 1px solid var(--surface-divider);
|
||||
border-radius: 0.75rem;
|
||||
@@ -1357,6 +1585,34 @@ button.agent-history-session-trigger:not(:disabled):active {
|
||||
--diagram-control-rail-inset: 1.0625rem;
|
||||
--diagram-control-group-gap: 0.5rem;
|
||||
--diagram-zoom-rail-height: 7.625rem;
|
||||
margin-block: 0;
|
||||
}
|
||||
|
||||
/* Natural graph height, with only enough room for the existing control rail. */
|
||||
.investigation-diagram [data-streamdown="mermaid"] > div {
|
||||
min-block-size: calc(var(--diagram-zoom-rail-height) + 1rem);
|
||||
}
|
||||
|
||||
.investigation-diagram [data-streamdown="mermaid"] [role="img"] > svg {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
animation: investigation-diagram-reveal 180ms cubic-bezier(0.22, 1, 0.36, 1);
|
||||
}
|
||||
|
||||
.investigation-diagram [data-streamdown="mermaid"] [role="img"] {
|
||||
/* Reserve the existing right-hand control rail when fitting the graph. */
|
||||
padding-inline-end: 3rem;
|
||||
}
|
||||
|
||||
@keyframes investigation-diagram-reveal {
|
||||
from { opacity: 0.55; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.investigation-diagram [data-streamdown="mermaid"] [role="img"] > svg {
|
||||
animation: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Match Button's compact icon-sm size, including controls portalled to body. */
|
||||
@@ -1725,25 +1981,6 @@ button[type="button"]:has(> .investigation-diagram-control-icon):disabled {
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes agent-ready-orbit {
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes agent-ready-core {
|
||||
0%,
|
||||
100% {
|
||||
opacity: 0.72;
|
||||
transform: scale(0.94);
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 1;
|
||||
transform: scale(1.04);
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.agent-panel-enter,
|
||||
.agent-panel-collapse,
|
||||
@@ -1780,12 +2017,6 @@ button[type="button"]:has(> .investigation-diagram-control-icon):disabled {
|
||||
transform: none;
|
||||
}
|
||||
|
||||
.agent-ready-orbit,
|
||||
.agent-ready-core {
|
||||
animation: none;
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
details[open] > summary > .disclosure-accordion-indicator {
|
||||
|
||||
Reference in New Issue
Block a user