dsh-cliworker-now 0.0.0-stage → 0.7.7
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/LICENSE +21 -0
- package/README.en.md +364 -0
- package/README.md +368 -2
- package/cordis.patch.yml +3 -0
- package/lib/account-models.mjs +262 -0
- package/lib/client.js +22139 -0
- package/lib/client.js.map +1 -0
- package/lib/grok-catalog.mjs +145 -0
- package/lib/hermes-native-entry.py +96 -0
- package/lib/hermes-nous-refresh.py +331 -0
- package/lib/index.js +14544 -0
- package/lib/index.js.map +1 -0
- package/lib/native-launch.mjs +234 -0
- package/lib/native-spawn.mjs +32 -0
- package/lib/own-account-lease.mjs +105 -0
- package/lib/pi-installation.mjs +87 -0
- package/lib/pi-login.mjs +80 -0
- package/lib/pi-native-catalog.mjs +417 -0
- package/lib/pi-omp-bridge.mjs +602 -0
- package/lib/pi-omp-environment.mjs +15 -0
- package/lib/pi-omp-refresh.mjs +324 -0
- package/lib/private-launch.mjs +23 -0
- package/lib/terminal-bridge.mjs +18 -0
- package/lib/typert.host.d.ts +3 -0
- package/lib/typert.host.js +1430 -0
- package/lib/typert.remote-client.d.ts +72 -0
- package/lib/typert.remote-client.d.ts.map +1 -0
- package/lib/typert.remote-client.js +1256 -0
- package/lib/types/client/account-query-queue.d.ts +16 -0
- package/lib/types/client/account-query-queue.js +61 -0
- package/lib/types/client/account-query-queue.js.map +1 -0
- package/lib/types/client/account-terminal-css.d.ts +1 -0
- package/lib/types/client/account-terminal-css.js +3 -0
- package/lib/types/client/account-terminal-css.js.map +1 -0
- package/lib/types/client/account-terminal.d.ts +17 -0
- package/lib/types/client/account-terminal.js +525 -0
- package/lib/types/client/account-terminal.js.map +1 -0
- package/lib/types/client/assets/antigravity.png +0 -0
- package/lib/types/client/assets/claude-code.png +0 -0
- package/lib/types/client/assets/cliworker-now-logo.png +0 -0
- package/lib/types/client/assets/codex.png +0 -0
- package/lib/types/client/assets/grok.png +0 -0
- package/lib/types/client/assets/hermes.png +0 -0
- package/lib/types/client/assets/kimi-dark.png +0 -0
- package/lib/types/client/assets/kimi-light.png +0 -0
- package/lib/types/client/assets/mimo-code.png +0 -0
- package/lib/types/client/assets/omp.png +0 -0
- package/lib/types/client/assets/opencode.png +0 -0
- package/lib/types/client/assets/pi.png +0 -0
- package/lib/types/client/assets/zcode.png +0 -0
- package/lib/types/client/composer-keymap.d.ts +18 -0
- package/lib/types/client/composer-keymap.js +49 -0
- package/lib/types/client/composer-keymap.js.map +1 -0
- package/lib/types/client/conversation-timeline.d.ts +6 -0
- package/lib/types/client/conversation-timeline.js +65 -0
- package/lib/types/client/conversation-timeline.js.map +1 -0
- package/lib/types/client/copy-text.d.ts +5 -0
- package/lib/types/client/copy-text.js +45 -0
- package/lib/types/client/copy-text.js.map +1 -0
- package/lib/types/client/icons.d.ts +21 -0
- package/lib/types/client/icons.js +68 -0
- package/lib/types/client/icons.js.map +1 -0
- package/lib/types/client/index.d.ts +3 -0
- package/lib/types/client/index.js +124 -0
- package/lib/types/client/index.js.map +1 -0
- package/lib/types/client/management-styles.d.ts +1 -0
- package/lib/types/client/management-styles.js +17 -0
- package/lib/types/client/management-styles.js.map +1 -0
- package/lib/types/client/name-copy.d.ts +5 -0
- package/lib/types/client/name-copy.js +107 -0
- package/lib/types/client/name-copy.js.map +1 -0
- package/lib/types/client/native-job-overlay.d.ts +11 -0
- package/lib/types/client/native-job-overlay.js +129 -0
- package/lib/types/client/native-job-overlay.js.map +1 -0
- package/lib/types/client/operation-error.d.ts +2 -0
- package/lib/types/client/operation-error.js +12 -0
- package/lib/types/client/operation-error.js.map +1 -0
- package/lib/types/client/panel.d.ts +8 -0
- package/lib/types/client/panel.js +310 -0
- package/lib/types/client/panel.js.map +1 -0
- package/lib/types/client/rename-copy-styles.d.ts +1 -0
- package/lib/types/client/rename-copy-styles.js +21 -0
- package/lib/types/client/rename-copy-styles.js.map +1 -0
- package/lib/types/client/rename-worker.d.ts +9 -0
- package/lib/types/client/rename-worker.js +53 -0
- package/lib/types/client/rename-worker.js.map +1 -0
- package/lib/types/client/role-presets.d.ts +6 -0
- package/lib/types/client/role-presets.js +111 -0
- package/lib/types/client/role-presets.js.map +1 -0
- package/lib/types/client/settings-dialog.d.ts +13 -0
- package/lib/types/client/settings-dialog.js +442 -0
- package/lib/types/client/settings-dialog.js.map +1 -0
- package/lib/types/client/stat-popover.d.ts +10 -0
- package/lib/types/client/stat-popover.js +32 -0
- package/lib/types/client/stat-popover.js.map +1 -0
- package/lib/types/client/styles.d.ts +9 -0
- package/lib/types/client/styles.js +221 -0
- package/lib/types/client/styles.js.map +1 -0
- package/lib/types/client/telemetry.d.ts +11 -0
- package/lib/types/client/telemetry.js +24 -0
- package/lib/types/client/telemetry.js.map +1 -0
- package/lib/types/client/worker-card.d.ts +10 -0
- package/lib/types/client/worker-card.js +75 -0
- package/lib/types/client/worker-card.js.map +1 -0
- package/lib/types/client/worker-model-menu.d.ts +9 -0
- package/lib/types/client/worker-model-menu.js +136 -0
- package/lib/types/client/worker-model-menu.js.map +1 -0
- package/lib/types/client/workers.d.ts +21 -0
- package/lib/types/client/workers.js +59 -0
- package/lib/types/client/workers.js.map +1 -0
- package/lib/types/client/zcode-login-link-provider.d.ts +9 -0
- package/lib/types/client/zcode-login-link-provider.js +105 -0
- package/lib/types/client/zcode-login-link-provider.js.map +1 -0
- package/lib/types/client/zcode-login-link.d.ts +16 -0
- package/lib/types/client/zcode-login-link.js +194 -0
- package/lib/types/client/zcode-login-link.js.map +1 -0
- package/lib/types/host/account-identity.d.ts +16 -0
- package/lib/types/host/account-identity.js +126 -0
- package/lib/types/host/account-identity.js.map +1 -0
- package/lib/types/host/account-login.d.ts +10 -0
- package/lib/types/host/account-login.js +126 -0
- package/lib/types/host/account-login.js.map +1 -0
- package/lib/types/host/account-models.d.mts +21 -0
- package/lib/types/host/account-models.mjs +262 -0
- package/lib/types/host/accounts.d.ts +42 -0
- package/lib/types/host/accounts.js +945 -0
- package/lib/types/host/accounts.js.map +1 -0
- package/lib/types/host/adapters.d.ts +24 -0
- package/lib/types/host/adapters.js +380 -0
- package/lib/types/host/adapters.js.map +1 -0
- package/lib/types/host/agy-context.d.ts +8 -0
- package/lib/types/host/agy-context.js +122 -0
- package/lib/types/host/agy-context.js.map +1 -0
- package/lib/types/host/agy-models.d.ts +5 -0
- package/lib/types/host/agy-models.js +37 -0
- package/lib/types/host/agy-models.js.map +1 -0
- package/lib/types/host/agy-windows-account.d.ts +14 -0
- package/lib/types/host/agy-windows-account.js +104 -0
- package/lib/types/host/agy-windows-account.js.map +1 -0
- package/lib/types/host/authorized-catalog.d.ts +14 -0
- package/lib/types/host/authorized-catalog.js +35 -0
- package/lib/types/host/authorized-catalog.js.map +1 -0
- package/lib/types/host/bridge-protocol.d.ts +15 -0
- package/lib/types/host/bridge-protocol.js +80 -0
- package/lib/types/host/bridge-protocol.js.map +1 -0
- package/lib/types/host/claude-native-oauth.d.ts +17 -0
- package/lib/types/host/claude-native-oauth.js +272 -0
- package/lib/types/host/claude-native-oauth.js.map +1 -0
- package/lib/types/host/claude-own-route.d.ts +33 -0
- package/lib/types/host/claude-own-route.js +250 -0
- package/lib/types/host/claude-own-route.js.map +1 -0
- package/lib/types/host/cli-account-binding.d.ts +33 -0
- package/lib/types/host/cli-account-binding.js +540 -0
- package/lib/types/host/cli-account-binding.js.map +1 -0
- package/lib/types/host/cli-protocol.d.ts +27 -0
- package/lib/types/host/cli-protocol.js +212 -0
- package/lib/types/host/cli-protocol.js.map +1 -0
- package/lib/types/host/codex-account.d.ts +8 -0
- package/lib/types/host/codex-account.js +143 -0
- package/lib/types/host/codex-account.js.map +1 -0
- package/lib/types/host/codex-models.d.ts +6 -0
- package/lib/types/host/codex-models.js +169 -0
- package/lib/types/host/codex-models.js.map +1 -0
- package/lib/types/host/extended-adapters.d.ts +44 -0
- package/lib/types/host/extended-adapters.js +207 -0
- package/lib/types/host/extended-adapters.js.map +1 -0
- package/lib/types/host/first-party-account-context.d.ts +26 -0
- package/lib/types/host/first-party-account-context.js +55 -0
- package/lib/types/host/first-party-account-context.js.map +1 -0
- package/lib/types/host/first-party-models.d.ts +29 -0
- package/lib/types/host/first-party-models.js +459 -0
- package/lib/types/host/first-party-models.js.map +1 -0
- package/lib/types/host/grok-adapter.d.ts +44 -0
- package/lib/types/host/grok-adapter.js +293 -0
- package/lib/types/host/grok-adapter.js.map +1 -0
- package/lib/types/host/grok-models.d.ts +47 -0
- package/lib/types/host/grok-models.js +320 -0
- package/lib/types/host/grok-models.js.map +1 -0
- package/lib/types/host/harness-opencode-accounts.d.ts +17 -0
- package/lib/types/host/harness-opencode-accounts.js +80 -0
- package/lib/types/host/harness-opencode-accounts.js.map +1 -0
- package/lib/types/host/hermes-account-context.d.ts +8 -0
- package/lib/types/host/hermes-account-context.js +99 -0
- package/lib/types/host/hermes-account-context.js.map +1 -0
- package/lib/types/host/hermes-accounts.d.ts +19 -0
- package/lib/types/host/hermes-accounts.js +356 -0
- package/lib/types/host/hermes-accounts.js.map +1 -0
- package/lib/types/host/hermes-adapter.d.ts +93 -0
- package/lib/types/host/hermes-adapter.js +455 -0
- package/lib/types/host/hermes-adapter.js.map +1 -0
- package/lib/types/host/hermes-env.d.ts +4 -0
- package/lib/types/host/hermes-env.js +22 -0
- package/lib/types/host/hermes-env.js.map +1 -0
- package/lib/types/host/hermes-installation.d.ts +10 -0
- package/lib/types/host/hermes-installation.js +181 -0
- package/lib/types/host/hermes-installation.js.map +1 -0
- package/lib/types/host/hermes-models.d.ts +26 -0
- package/lib/types/host/hermes-models.js +328 -0
- package/lib/types/host/hermes-models.js.map +1 -0
- package/lib/types/host/hermes-native-entry.py +96 -0
- package/lib/types/host/hermes-nous-refresh.py +331 -0
- package/lib/types/host/hermes-nous.d.ts +53 -0
- package/lib/types/host/hermes-nous.js +343 -0
- package/lib/types/host/hermes-nous.js.map +1 -0
- package/lib/types/host/hermes-renewal.d.ts +27 -0
- package/lib/types/host/hermes-renewal.js +292 -0
- package/lib/types/host/hermes-renewal.js.map +1 -0
- package/lib/types/host/hermes-suppression.d.ts +7 -0
- package/lib/types/host/hermes-suppression.js +69 -0
- package/lib/types/host/hermes-suppression.js.map +1 -0
- package/lib/types/host/hermes-windows-installation.d.ts +5 -0
- package/lib/types/host/hermes-windows-installation.js +91 -0
- package/lib/types/host/hermes-windows-installation.js.map +1 -0
- package/lib/types/host/index.d.ts +140 -0
- package/lib/types/host/index.js +947 -0
- package/lib/types/host/index.js.map +1 -0
- package/lib/types/host/kimi-accounts.d.ts +17 -0
- package/lib/types/host/kimi-accounts.js +220 -0
- package/lib/types/host/kimi-accounts.js.map +1 -0
- package/lib/types/host/kimi-oauth-models.d.ts +14 -0
- package/lib/types/host/kimi-oauth-models.js +246 -0
- package/lib/types/host/kimi-oauth-models.js.map +1 -0
- package/lib/types/host/managed-agent.d.ts +4 -0
- package/lib/types/host/managed-agent.js +127 -0
- package/lib/types/host/managed-agent.js.map +1 -0
- package/lib/types/host/mimo-configuration.d.ts +22 -0
- package/lib/types/host/mimo-configuration.js +258 -0
- package/lib/types/host/mimo-configuration.js.map +1 -0
- package/lib/types/host/mimo-metadata-cache.d.ts +22 -0
- package/lib/types/host/mimo-metadata-cache.js +121 -0
- package/lib/types/host/mimo-metadata-cache.js.map +1 -0
- package/lib/types/host/native-capability-cache.d.ts +11 -0
- package/lib/types/host/native-capability-cache.js +94 -0
- package/lib/types/host/native-capability-cache.js.map +1 -0
- package/lib/types/host/native-launch.d.mts +2 -0
- package/lib/types/host/native-launch.mjs +234 -0
- package/lib/types/host/native-process.d.ts +5 -0
- package/lib/types/host/native-process.js +41 -0
- package/lib/types/host/native-process.js.map +1 -0
- package/lib/types/host/native-spawn.mjs +32 -0
- package/lib/types/host/opencode-adapter.d.ts +94 -0
- package/lib/types/host/opencode-adapter.js +507 -0
- package/lib/types/host/opencode-adapter.js.map +1 -0
- package/lib/types/host/opencode-native.d.ts +27 -0
- package/lib/types/host/opencode-native.js +403 -0
- package/lib/types/host/opencode-native.js.map +1 -0
- package/lib/types/host/own-account-lease.d.mts +5 -0
- package/lib/types/host/own-account-lease.mjs +105 -0
- package/lib/types/host/pi-installation.d.mts +7 -0
- package/lib/types/host/pi-installation.mjs +87 -0
- package/lib/types/host/pi-omp-accounts.d.ts +28 -0
- package/lib/types/host/pi-omp-accounts.js +175 -0
- package/lib/types/host/pi-omp-accounts.js.map +1 -0
- package/lib/types/host/pi-omp-adapter.d.ts +32 -0
- package/lib/types/host/pi-omp-adapter.js +190 -0
- package/lib/types/host/pi-omp-adapter.js.map +1 -0
- package/lib/types/host/pi-omp-environment.d.mts +1 -0
- package/lib/types/host/pi-omp-environment.mjs +15 -0
- package/lib/types/host/pi-omp-identity.d.ts +2 -0
- package/lib/types/host/pi-omp-identity.js +142 -0
- package/lib/types/host/pi-omp-identity.js.map +1 -0
- package/lib/types/host/pi-omp-logout.d.ts +3 -0
- package/lib/types/host/pi-omp-logout.js +152 -0
- package/lib/types/host/pi-omp-logout.js.map +1 -0
- package/lib/types/host/pi-omp-native.d.ts +71 -0
- package/lib/types/host/pi-omp-native.js +753 -0
- package/lib/types/host/pi-omp-native.js.map +1 -0
- package/lib/types/host/pi-omp-refresh.d.mts +7 -0
- package/lib/types/host/pi-omp-refresh.mjs +324 -0
- package/lib/types/host/private-launch.mjs +23 -0
- package/lib/types/host/process.d.ts +43 -0
- package/lib/types/host/process.js +134 -0
- package/lib/types/host/process.js.map +1 -0
- package/lib/types/host/protocol.d.ts +23 -0
- package/lib/types/host/protocol.js +112 -0
- package/lib/types/host/protocol.js.map +1 -0
- package/lib/types/host/roles.d.ts +34 -0
- package/lib/types/host/roles.js +80 -0
- package/lib/types/host/roles.js.map +1 -0
- package/lib/types/host/routing.d.ts +31 -0
- package/lib/types/host/routing.js +248 -0
- package/lib/types/host/routing.js.map +1 -0
- package/lib/types/host/runtime.d.ts +60 -0
- package/lib/types/host/runtime.js +598 -0
- package/lib/types/host/runtime.js.map +1 -0
- package/lib/types/host/storage.d.ts +48 -0
- package/lib/types/host/storage.js +449 -0
- package/lib/types/host/storage.js.map +1 -0
- package/lib/types/host/telemetry.d.ts +17 -0
- package/lib/types/host/telemetry.js +158 -0
- package/lib/types/host/telemetry.js.map +1 -0
- package/lib/types/host/windows-account-bootstrap.ps1 +44 -0
- package/lib/types/host/windows-account-launch.mjs +47 -0
- package/lib/types/host/windows-account-owner.ps1 +137 -0
- package/lib/types/host/windows-account-stdio.mjs +19 -0
- package/lib/types/host/windows-account-terminal.d.ts +17 -0
- package/lib/types/host/windows-account-terminal.js +208 -0
- package/lib/types/host/windows-account-terminal.js.map +1 -0
- package/lib/types/host/windows-agy-account.ps1 +81 -0
- package/lib/types/host/windows-cli-installation.d.ts +31 -0
- package/lib/types/host/windows-cli-installation.js +157 -0
- package/lib/types/host/windows-cli-installation.js.map +1 -0
- package/lib/types/host/windows-hidden-launch.mjs +49 -0
- package/lib/types/host/windows-hidden-process.d.ts +12 -0
- package/lib/types/host/windows-hidden-process.js +116 -0
- package/lib/types/host/windows-hidden-process.js.map +1 -0
- package/lib/types/host/zcode-account-models.d.ts +16 -0
- package/lib/types/host/zcode-account-models.js +114 -0
- package/lib/types/host/zcode-account-models.js.map +1 -0
- package/lib/types/host/zcode-adapter.d.ts +93 -0
- package/lib/types/host/zcode-adapter.js +808 -0
- package/lib/types/host/zcode-adapter.js.map +1 -0
- package/lib/types/host/zcode-grok-accounts.d.ts +30 -0
- package/lib/types/host/zcode-grok-accounts.js +408 -0
- package/lib/types/host/zcode-grok-accounts.js.map +1 -0
- package/lib/types/shared/accounts.d.ts +47 -0
- package/lib/types/shared/accounts.js +2 -0
- package/lib/types/shared/accounts.js.map +1 -0
- package/lib/types/shared/builtin-presets.d.ts +2 -0
- package/lib/types/shared/builtin-presets.js +231 -0
- package/lib/types/shared/builtin-presets.js.map +1 -0
- package/lib/types/shared/cli-settings.d.ts +5 -0
- package/lib/types/shared/cli-settings.js +2 -0
- package/lib/types/shared/cli-settings.js.map +1 -0
- package/lib/types/shared/model-presentation.d.ts +10 -0
- package/lib/types/shared/model-presentation.js +95 -0
- package/lib/types/shared/model-presentation.js.map +1 -0
- package/lib/types/shared/models.d.ts +7 -0
- package/lib/types/shared/models.js +35 -0
- package/lib/types/shared/models.js.map +1 -0
- package/lib/types/shared/telemetry.d.ts +18 -0
- package/lib/types/shared/telemetry.js +16 -0
- package/lib/types/shared/telemetry.js.map +1 -0
- package/lib/types/shared/types.d.ts +127 -0
- package/lib/types/shared/types.js +147 -0
- package/lib/types/shared/types.js.map +1 -0
- package/lib/windows-account-bootstrap.ps1 +44 -0
- package/lib/windows-account-launch.mjs +47 -0
- package/lib/windows-account-owner.ps1 +137 -0
- package/lib/windows-account-stdio.mjs +19 -0
- package/lib/windows-agy-account.ps1 +81 -0
- package/lib/windows-hidden-launch.mjs +49 -0
- package/lib/zcode-resume.mjs +423 -0
- package/package.json +109 -4
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const styles = "\n.cwn,.cwn-settings-dialog,.cwn-rename-dialog{--cwn-control-height:36px}\n.cwn-control-input{height:var(--cwn-control-height,36px)}\n.cwn{position:relative;--cwn-accent:var(--dsw-alias-state-business-primary);--cwn-muted:var(--dsw-alias-label-tertiary);--cwn-border:var(--dsw-alias-border-l3);display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;color:var(--dsw-alias-label-primary);font-family:inherit;font-size:var(--dsw-font-s-14-font-size);line-height:var(--dsw-font-s-14-line-height);container-type:inline-size}\n.cwn *{box-sizing:border-box}.cwn svg{flex-shrink:0}.cwn select,.cwn textarea{font-family:inherit}.cwn-worker,.cwn-cli-heading{font:inherit}.cwn button{cursor:pointer}.cwn button:disabled{cursor:default;opacity:.45}.cwn button:focus-visible,.cwn summary:focus-visible,.cwn input:focus-visible,.cwn textarea:focus-visible,.cwn select:focus-visible{outline:2px solid var(--cwn-accent);outline-offset:2px}\n.cwn-brand{display:inline-flex;position:relative;flex-shrink:0;vertical-align:middle}.cwn-brand img{display:block;width:100%;height:100%;object-fit:contain}.cwn-brand .cwn-icon-dark{display:none}body[data-ds-dark-theme] .cwn-brand .cwn-icon-mono{filter:invert(1)}body[data-ds-dark-theme] .cwn-brand .cwn-icon-light{display:none}body[data-ds-dark-theme] .cwn-brand .cwn-icon-dark{display:block}\n.cwn-project-logo{display:block;position:relative;width:100%;height:100%;mask-size:contain;mask-position:center;mask-repeat:no-repeat;mask-mode:alpha;-webkit-mask-size:contain;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat}.cwn-project-logo.monochrome{background:#000}body[data-ds-dark-theme] .cwn-project-logo.monochrome{background:#fff}\n.cwn-head{display:flex;align-items:center;gap:9px;min-height:56px;padding:10px 16px;flex-shrink:0}.cwn-head h2{flex:1;min-width:0;font-size:var(--dsw-font-s-14-font-size);line-height:var(--dsw-font-s-14-line-height);font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwn-back{width:28px!important;padding:0!important;flex-shrink:0}.cwn-settings-button{width:36px!important;padding:0!important;flex-shrink:0;align-self:center}.cwn-settings-button svg{display:block}.cwn-back{border-radius:var(--dsw-radius-md)!important;background:var(--dsw-alias-interactive-bg-hover)!important}\n.cwn-wordmark{display:flex;align-items:center;gap:6px;min-width:0;flex:1;height:36px}.cwn-wordmark h2{display:flex;align-items:center;gap:10px;overflow:visible!important;font-family:var(--dsw-font-family);font-size:21px!important;line-height:28px!important;font-weight:500;letter-spacing:normal}.cwn-wordmark h2 small{display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 5px;border-radius:3px;background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-2);font-size:10px;line-height:14px;font-weight:600;letter-spacing:.08em}.cwn-overview{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-top:4px}.cwn-overview-controls{flex:none;min-width:0;padding:0 14px}.cwn-overview-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:8px 14px 20px}.cwn-search{width:100%}\n\n.cwn-filters{display:flex;gap:6px;margin:10px 0 14px}.cwn-filters button{flex:1;min-width:0;padding:0 7px;background:var(--dsw-alias-interactive-bg-hover)!important}.cwn-filters button[aria-pressed=true]{color:var(--cwn-accent)!important;border-color:var(--cwn-border)!important;background:color-mix(in srgb,var(--cwn-accent) 10%,transparent)!important}\n.cwn-cli-group{border:0;border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-base);margin:0 0 12px;overflow:hidden}.cwn-cli-heading{display:flex;align-items:center;gap:9px;width:100%;min-height:45px;padding:10px 12px;border:0;background:transparent;color:inherit;text-align:left}.cwn-cli-heading strong{font-size:var(--dsw-font-s-14-font-size);font-weight:600;flex:1;min-width:0}.cwn-cli-heading>span:not(.cwn-brand){font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);white-space:nowrap}.cwn-cli-heading>svg{width:12px;height:12px;color:var(--cwn-muted);transform:rotate(90deg);transition:transform var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease)}.cwn-cli-heading[aria-expanded=false]>svg{transform:none}.cwn-cli-heading[aria-expanded=true]{border-bottom:.5px solid var(--dsw-alias-border-l2)}\n.cwn-cli-rows{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease),opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease),visibility var(--ds-transition-duration,.2s)}.cwn-cli-rows[data-expanded=false]{grid-template-rows:0fr;opacity:0;visibility:hidden}.cwn-cli-rows-inner{min-height:0;overflow:hidden}\n@media(prefers-reduced-motion:reduce){.cwn-cli-rows,.cwn-cli-heading>svg,.cwn-cli-heading:after{transition:none!important}}\n.cwn-worker{display:flex;width:100%;align-items:center;gap:10px;padding:12px;background:transparent;color:inherit;border:0;text-align:left;min-height:62px;position:relative}.cwn-worker+.cwn-worker:before{content:'';position:absolute;left:12px;right:12px;top:0;height:.5px;background:var(--dsw-alias-border-l2)}.cwn-worker:hover,.cwn-worker:focus-visible{background:color-mix(in srgb,var(--cwn-accent) 9%,transparent)}.cwn-worker>svg{width:14px;height:14px;color:var(--cwn-muted)}.cwn-worker-content{flex:1;min-width:0}.cwn-worker-line{display:flex;align-items:center;gap:8px;min-width:0}.cwn-worker-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--dsw-font-s-14-font-size);font-weight:500}.cwn-worker-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--dsw-font-xxs-12-font-size);white-space:nowrap;flex-shrink:0;color:var(--cwn-muted)}.cwn-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--dsw-alias-state-idle-primary)}.cwn-worker-status.running{color:var(--cwn-accent)}.cwn-dot.running{background:var(--cwn-accent)}.cwn-worker-status.completed{color:var(--dsw-alias-state-success-primary)}.cwn-dot.completed{background:var(--dsw-alias-state-success-primary)}.cwn-worker-status.failed{color:var(--dsw-alias-state-error-primary)}.cwn-dot.failed{background:var(--dsw-alias-state-error-primary)}.cwn-worker-status.queued,.cwn-worker-status.stopping{color:var(--dsw-alias-state-warn-label)}.cwn-dot.queued,.cwn-dot.stopping{background:var(--dsw-alias-state-warn-primary)}.cwn-worker-meta{display:flex;align-items:center;gap:7px;margin-top:5px;color:var(--cwn-muted);font-size:var(--dsw-font-xxs-12-font-size);min-width:0}.cwn-worker-meta>.cwn-worker-name,.cwn-worker-meta>.cwn-worker-model{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwn-worker-meta>span:last-child{flex-shrink:0;white-space:nowrap}.cwn-worker-name{max-width:38%}.cwn-worker-model{flex:0 1 auto}.cwn-meta-divider{opacity:.5;flex-shrink:0}\n.cwn-actions{position:relative}.cwn-actions>summary{display:flex;width:28px;height:28px;align-items:center;justify-content:center;list-style:none;border-radius:var(--dsw-radius-md);cursor:pointer}.cwn-actions>summary::-webkit-details-marker{display:none}.cwn-actions>summary:hover{background:var(--dsw-alias-interactive-bg-hover)}.cwn-action-menu{position:absolute;right:0;top:34px;width:240px;max-width:calc(100cqw - 32px);z-index:5;padding:12px;background:var(--dsw-alias-bg-layer-1);border:.5px solid var(--cwn-border);border-radius:var(--dsw-radius-lg);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);box-shadow:var(--dsw-elevation-panel);font-size:var(--dsw-font-xxs-12-font-size);overflow-wrap:anywhere}.cwn-action-menu p{color:var(--cwn-muted);margin:8px 0;font-size:var(--dsw-font-xxs-12-font-size)}.cwn-action-menu>button{display:flex;margin-top:8px}\n.cwn-feed{flex:1;overflow:auto;overscroll-behavior:contain;min-height:60px;padding:18px 16px}.cwn-message{width:100%;margin:0 0 22px}.cwn-message.user{width:fit-content;max-width:85%;margin-left:auto}.cwn-message.user .cwn-text{padding:10px 12px;border-radius:var(--dsw-radius-lg);background:var(--dsw-specific-bubble,var(--dsw-alias-interactive-bg-hover))}.cwn-message-label{position:relative;display:flex;justify-content:flex-end;color:var(--cwn-muted);font-size:var(--dsw-font-xxs-12-font-size);margin-bottom:6px}.cwn-message.assistant .cwn-message-label{justify-content:flex-start}.cwn-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:calc(24px + var(--dsh-content-font-delta,0px));font-size:var(--dsh-content-font-size,14px)}.cwn-tool{border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);margin:8px 0;background:var(--dsw-alias-interactive-bg-hover);font-size:var(--dsw-font-xxs-12-font-size)}.cwn-tool summary{display:flex;align-items:center;gap:7px;padding:10px;cursor:pointer;list-style:none}.cwn-tool summary::-webkit-details-marker{display:none}.cwn-tool summary:before{content:'\u203A';color:var(--cwn-muted)}.cwn-tool[open] summary:before{transform:rotate(90deg)}.cwn-tool-title{min-width:0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cwn-tool small{font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);max-width:38%;overflow-wrap:anywhere}.cwn-tool pre{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--dsw-font-xxs-12-font-size)/1.6 var(--ds-font-family-code,monospace);margin:0;padding:0 12px 12px;max-height:320px;overflow:auto}.cwn-status{font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);text-align:center;margin:16px 0}\n.cwn-compose{padding:8px 12px 12px;flex-shrink:0}.cwn-compose-state{display:flex;align-items:center;gap:6px;font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);margin:0 4px 7px}.cwn-compose-box{padding:10px;border:0;border-radius:var(--dsw-radius-panel);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);box-shadow:var(--dsw-elevation-soft);background:var(--dsw-specific-input-major,var(--dsw-alias-interactive-bg-hover))}.cwn .cwn-compose textarea:focus-visible{outline:none}.cwn-compose textarea{display:block;width:100%;height:45px;min-height:45px;max-height:140px;resize:vertical;border:0;padding:0 2px;background:transparent;color:inherit;line-height:calc(24px + var(--dsh-content-font-delta,0px));font-size:var(--dsh-content-font-size,14px);outline:none}.cwn-compose textarea::placeholder{color:var(--cwn-muted)}.cwn-compose textarea:disabled{opacity:.6}.cwn-compose-bottom{display:flex;align-items:center;gap:8px;margin-top:6px;min-height:30px}.cwn-compose-model{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--cwn-muted);font-size:var(--dsw-font-xxs-12-font-size)}.cwn-send{width:30px!important;height:30px!important;padding:0!important;border-radius:50%!important;flex-shrink:0}.cwn-resume-hint{font-size:var(--dsw-font-xxs-12-font-size);line-height:1.6;color:var(--cwn-muted);margin:0 4px 8px}\n.cwn-settings{padding:12px 16px;display:grid;gap:9px;overflow:auto;max-height:65%;flex-shrink:0;border-bottom:.5px solid var(--cwn-border)}.cwn-settings label{font-size:var(--dsw-font-xxs-12-font-size);display:grid;gap:5px}.cwn-settings select{width:100%;border:.5px solid var(--cwn-border);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);color:inherit;padding:7px;font-size:var(--dsw-font-s-14-font-size)}.cwn-settings p{font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);line-height:1.6;margin:0}\n.cwn-empty{padding:30px 10px;text-align:center;color:var(--cwn-muted);line-height:1.8}.cwn-empty h3{color:var(--dsw-alias-label-primary);font-weight:500;font-size:var(--dsw-font-s-14-font-size);margin:12px 0}.cwn-empty p{font-size:var(--dsw-font-xxs-12-font-size)}.cwn-empty blockquote{margin:12px 0;padding:12px;border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-interactive-bg-hover);font-size:var(--dsw-font-xxs-12-font-size);text-align:left}.cwn-notice,.cwn-error{font-size:var(--dsw-font-xxs-12-font-size);padding:12px;border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover);line-height:1.6;overflow-wrap:anywhere;margin:8px 12px;max-height:180px;overflow:auto;flex-shrink:0}.cwn-error{color:var(--dsw-alias-state-error-primary)}.cwn-error button{margin:8px 0}.cwn-error details{font-size:var(--dsw-font-xxs-12-font-size)}.cwn-error summary{cursor:pointer}\n.cwn-history-nav{border-bottom:.5px solid var(--cwn-border);padding:10px 16px;font-size:var(--dsw-font-xxs-12-font-size);flex-shrink:0}.cwn-history-nav>div{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0}.cwn-history-nav small{color:var(--cwn-muted)}.cwn-history-start{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:var(--dsw-font-xxs-12-font-size);margin:0 0 16px;color:var(--cwn-muted)}.cwn-jump{display:flex;justify-content:center;padding:4px 12px 8px}.cwn-copy{display:inline-flex;align-items:center;gap:6px;margin-top:5px;max-width:100%}.cwn-copy button{color:var(--cwn-muted)}.cwn-copy-feedback{font-size:var(--dsw-font-xxs-12-font-size);overflow-wrap:anywhere;color:var(--cwn-muted)}.cwn-sr-only{position:absolute;top:0;left:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n@container (max-width:320px){.cwn-head{padding:10px 12px}.cwn-overview-controls{padding:0 10px}.cwn-overview-list{padding:8px 10px 10px}.cwn-worker-line{gap:5px}.cwn-worker-status{font-size:var(--dsw-font-xxs-12-font-size)}.cwn-worker-meta{gap:5px}.cwn-filters{gap:4px}.cwn-filters button{padding:0 4px!important}.cwn-feed{padding:14px 12px}}\n";
|
|
2
|
+
export declare const nativeChatStyles = "\n.cwn-entry{width:24px!important;height:24px!important;min-width:24px;padding:3px!important;border-radius:var(--dsw-radius-sm)!important;flex-shrink:0;background:transparent!important;border:0!important;box-shadow:none!important}\n.cwn-entry:hover{background:var(--dsw-alias-interactive-bg-hover)!important}\n.cwn .cwn-search{height:var(--cwn-control-height);border-color:var(--dsw-alias-border-l3);background:var(--dsw-alias-bg-base)}\n.cwn .cwn-search:focus-within{outline:none;box-shadow:none;border-color:var(--dsw-alias-border-l3)}\n.cwn .cwn-search input:focus-visible{outline:none;box-shadow:none}\n.cwn .cwn-search input::placeholder{color:var(--dsw-alias-label-caption)}\n.cwn-back,.cwn-settings select,.cwn-tool{border:.5px solid var(--dsw-alias-border-l3)}\n.cwn-cli-group{--dsw-elevation-stroke-color:var(--dsw-alias-border-l3);box-shadow:var(--dsw-elevation-soft)}\nbody[data-ds-dark-theme] .cwn-cli-group{box-shadow:var(--dsw-elevation-stroke),0 4px 12px #00000040,0 12px 24px -8px #00000059}\n.cwn-feed{padding:16px 24px}\n.cwn-message{margin-bottom:24px}\n.cwn-message.user{max-width:82%}\n.cwn-message.user .cwn-text{padding:10px 16px;border-radius:var(--dsw-radius-xl);line-height:calc(22px + var(--dsh-content-font-delta,0px))}\n.cwn-message-label{height:28px;margin:6px 0 0;gap:8px;align-items:center;font-size:var(--dsh-content-font-size-secondary,13px);line-height:24px}\n.cwn-message.assistant .cwn-message-label{margin-top:16px;margin-left:-6px}\n.cwn-markdown{min-width:0;overflow-wrap:anywhere}\n.cwn-copy{margin:0;position:relative}\n.cwn-copy .cwn-copy-icon{width:28px;height:28px;padding:6px;color:var(--dsw-alias-label-tertiary)}\n.cwn-status{text-align:left;border-bottom:.5px solid var(--dsw-alias-border-l2);padding:8px 0;margin:8px 0 16px;font-size:var(--dsh-content-font-size-secondary,13px)}\n.cwn-compose{padding:0 16px 4px}\n.cwn-compose-box{display:flex;flex-direction:column;gap:12px;padding:8px 0 0}\n.cwn-compose textarea{resize:none;height:36px;min-height:36px;max-height:336px;padding:4px 12px 0 14px;overflow-y:auto;margin:0;box-sizing:border-box}\n.cwn-compose textarea::placeholder{color:var(--dsw-alias-label-caption)}\n.cwn-compose-bottom{justify-content:flex-end;gap:8px;padding:2px 8px 6px;margin:0;min-height:42px}\n.cwn-model-menu{margin-left:auto;min-width:0;max-width:calc(100% - 42px)}\n.cwn .cwn-compose-model{display:flex;align-items:center;gap:6px;height:28px;max-width:100%;padding:0 8px;font-size:var(--dsh-content-font-size-secondary,13px);line-height:20px;color:var(--dsw-alias-label-secondary);border-radius:var(--dsw-radius-sm)}\n.cwn-compose-model>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}\n.cwn-model-effort{flex-shrink:0;color:var(--dsw-alias-label-tertiary)}\n.cwn .cwn-send{corner-shape:round!important;width:34px!important;height:34px!important;border:0!important;border-radius:999px!important;background:var(--dsw-alias-button-info-fill)!important;color:#fff!important;display:grid;place-items:center;transform:translateY(-2px)}\n.cwn .cwn-send:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)!important}\n.cwn .cwn-send:disabled{opacity:.4}\n.cwn-compose-state{height:24px;gap:8px;margin:4px 8px 0;font-size:var(--dsh-content-font-size-secondary,13px);line-height:20px}\n.cwn-compose-cli{margin-left:auto}\n@container(max-width:320px){.cwn-feed{padding:14px 16px}.cwn-compose{padding-left:8px;padding-right:8px}.cwn-model-effort{display:none}}\n";
|
|
3
|
+
export declare const modelPickerStyles = "\n.cwn-progress{margin:12px 0 16px;padding-bottom:12px;border-bottom:.5px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size,14px);line-height:22px}\n.cwn-progress>summary{display:flex;gap:6px;align-items:center;cursor:pointer;list-style:none}.cwn-progress>summary::-webkit-details-marker{display:none}.cwn-progress-chevron{display:inline-flex;transform:rotate(90deg)}.cwn-progress-chevron svg{width:12px;height:12px}.cwn-progress[open] .cwn-progress-chevron{transform:rotate(-90deg)}\n.cwn-process-body{padding-top:12px;display:grid;gap:8px}.cwn-process-note{margin:0;font-size:var(--dsh-content-font-size-secondary,13px);color:var(--dsw-alias-label-tertiary)}.cwn-process-event{font-size:var(--dsh-content-font-size-secondary,13px)}\n\n.cwn-model-popover{width:max-content;min-width:min(240px,calc(100vw - 32px));max-width:min(420px,calc(100vw - 32px));max-height:min(360px,calc(100vh - 96px));padding:4px;color:var(--dsw-alias-label-primary);--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);box-shadow:var(--dsw-elevation-prominent)}\n.cwn-model-popover button[role=menuitem]{min-height:34px;padding:5px 7px;font-size:13px;font-weight:400;line-height:20px;border-radius:var(--dsw-radius-md)}\n.cwn-model-cell{display:flex;align-items:center;gap:6px;width:100%;min-width:0}.cwn-model-cell>span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwn-model-cell-value{color:var(--dsw-alias-label-tertiary);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px}\n.cwn-model-search{background:transparent!important;border:0!important;box-shadow:none!important;padding:5px 7px!important;margin:2px 0 3px;height:auto!important}.cwn-model-search input{font-size:12px!important;padding:0!important}.cwn-model-provider,.cwn-model-feedback{font-size:12px;line-height:18px;color:var(--dsw-alias-label-tertiary);padding:8px}.cwn-model-feedback{max-width:280px;white-space:normal}\n/* Scope to plugin buttons, including the portaled menu and header entry. */\n.cwn button,.cwn-entry,.cwn-model-popover button{border:0!important;--dsw-elevation-stroke-color:transparent;box-shadow:none}\n.cwn-cli-heading{position:relative}.cwn-cli-heading:after{content:'';position:absolute;bottom:0;left:0;right:0;height:.5px;background:var(--dsw-alias-border-l2);pointer-events:none;opacity:0;transition:opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease)}.cwn-cli-heading[aria-expanded=true]:after{opacity:1}\n.cwn-back:hover:not(:disabled),.cwn-filters button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)!important}\n.cwn-filters button[aria-pressed=true]:hover:not(:disabled){background:color-mix(in srgb,var(--cwn-accent) 18%,transparent)!important}\n.cwn-cli-heading:hover:not(:disabled),.cwn-model-popover button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}\n.cwn button:focus-visible,.cwn-entry:focus-visible,.cwn-model-popover button:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}\n@media(prefers-reduced-motion:reduce){.cwn button,.cwn-entry,.cwn-model-popover button{transition:none}}\n\n.cwn .cwn-send{padding:0;min-width:34px;min-height:34px;flex:none}.cwn .cwn-send svg{width:16px;height:16px}\n";
|
|
4
|
+
export declare const telemetryStyles = "\n.cwn-stat{display:inline-flex;align-items:center;gap:6px;border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px));font-variant-numeric:tabular-nums;white-space:nowrap;padding:1px 8px;min-width:0;transition:background-color 180ms ease,color 180ms ease}\n.cwn-stat>span{overflow:hidden;text-overflow:ellipsis}.cwn-stat:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}\n.cwn-message-label time{white-space:nowrap;flex-shrink:0}.cwn-message-label .cwn-usage{padding-left:0}.cwn-message-label{gap:6px}\n.cwn-telemetry{margin:4px 0 0;gap:0;justify-content:space-between}.cwn-telemetry .cwn-usage{flex:1;justify-content:center}.cwn-run-stat{max-width:35%}.cwn-context{flex-shrink:0}\n.cwn-context-track{fill:none;stroke:var(--dsw-alias-border-l3);stroke-width:2}.cwn-context-fill{fill:none;stroke:var(--dsw-alias-label-tertiary);stroke-width:2;stroke-linecap:round}\n\n\n\n@media(prefers-reduced-motion:reduce){.cwn-stat,.cwn summary{transition:none}}\n@container(max-width:360px){.cwn-message-label{flex-wrap:wrap;height:auto;min-height:28px}.cwn-message-label time{margin-left:0}.cwn-telemetry .cwn-stat{padding-left:4px;padding-right:4px;gap:4px}}\n";
|
|
5
|
+
export declare const nativeInteractionStyles = "\n.cwn-progress{padding-bottom:0;border:0}.cwn-progress>summary{height:calc(33px + var(--dsh-content-font-delta,0px));width:100%;padding:0 0 8px;border-radius:0;border-bottom:.5px solid var(--dsw-alias-border-l2);transition:color .1s;line-height:calc(24px + var(--dsh-content-font-delta,0px));gap:4px}.cwn-progress>summary:hover{color:var(--dsw-alias-label-secondary);background:transparent}.cwn-progress-chevron{transition:transform .1s}.cwn-progress-chevron svg{width:14px;height:14px}\n.cwn-message-label{height:calc(28px + var(--dsh-content-font-delta,0px));gap:8px}.cwn-message-label time{line-height:calc(24px + var(--dsh-content-font-delta,0px))}.cwn-message.assistant .cwn-message-label time{font-size:calc(var(--dsh-content-font-size-secondary,13px) - 1px)}\n.cwn-copy .cwn-copy-icon{width:calc(28px + var(--dsh-content-font-delta,0px));height:calc(28px + var(--dsh-content-font-delta,0px));padding:6px;border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-tertiary)}.cwn-copy-icon svg{width:calc(15px + var(--dsh-content-font-delta,0px));height:calc(15px + var(--dsh-content-font-delta,0px))}.cwn-message.assistant .cwn-copy-icon svg{width:calc(17px + var(--dsh-content-font-delta,0px));height:calc(17px + var(--dsh-content-font-delta,0px))}.cwn-copy .cwn-copy-icon:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}\n.cwn-stat-anchor{min-width:0;display:inline-flex}.cwn-telemetry{gap:0;font-size:calc(var(--dsh-content-font-size-secondary,13px) - 1px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px))}.cwn-telemetry>.cwn-stat-anchor:nth-child(2){flex:1;justify-content:center}\n.cwn-stat{font:inherit;line-height:inherit;transition:none}.cwn-stat:hover{background:transparent;color:var(--dsw-alias-label-tertiary)}.cwn button.cwn-stat{background:transparent;cursor:pointer}.cwn button.cwn-stat:hover,.cwn button.cwn-stat[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}\n.cwn-telemetry .cwn-usage{border-radius:999px;corner-shape:round;padding:1px 8px;gap:6px}.cwn-message-label .cwn-stat-anchor{margin-left:8px}.cwn-message-label .cwn-reply-usage{height:calc(28px + var(--dsh-content-font-delta,0px));font-size:calc(var(--dsh-content-font-size-secondary,13px) - 1px);line-height:calc(24px + var(--dsh-content-font-delta,0px));border-radius:var(--dsw-radius-sm);padding:6px 8px;gap:4px}.cwn-reply-usage svg{width:calc(15px + var(--dsh-content-font-delta,0px));height:calc(15px + var(--dsh-content-font-delta,0px))}.cwn button.cwn-reply-usage:hover,.cwn button.cwn-reply-usage[aria-expanded=true]{color:var(--dsw-alias-label-tertiary)}\n.cwn-context{border-radius:var(--dsw-radius-sm);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px));padding:1px 8px;gap:6px}\n.cwn-stat-panel{z-index:1100;box-sizing:border-box;border-radius:var(--dsw-radius-lg);background:var(--dsw-specific-menu);width:max-content;min-width:min(300px,100vw - 24px);max-width:min(440px,100vw - 24px);backdrop-filter:var(--dsw-menu-backdrop-filter);--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);box-shadow:var(--dsw-elevation-prominent);color:var(--dsw-alias-label-secondary);cursor:default;border:0;padding:16px;font-size:12px;line-height:18px;position:fixed}\n.cwn-stat-title{color:var(--dsw-alias-label-primary);display:flex;justify-content:space-between;gap:16px;margin-bottom:8px;font-weight:500}.cwn-stat-title>span{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}.cwn-stat-rule{border-top:.5px solid var(--dsw-alias-border-l2);margin-bottom:10px}.cwn-stat-details{color:var(--dsw-alias-label-tertiary);display:grid;grid-template-columns:minmax(76px,auto) minmax(0,1fr);gap:6px 16px;margin:0}.cwn-stat-details dt,.cwn-stat-details dd{min-width:0;margin:0}.cwn-stat-details dd{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}\n.cwn-context-panel{width:min(264px,100vw - 24px);min-width:0;padding:12px;line-height:20px}.cwn-context-header{display:flex;align-items:center;gap:6px}.cwn-context-header strong{margin-left:auto;font-weight:500;color:var(--dsw-alias-label-primary);white-space:nowrap}.cwn-context-bar{height:4px;margin:10px 0 12px;background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;corner-shape:round;overflow:hidden}.cwn-context-bar>span{display:block;height:100%;min-width:2px;background:var(--dsw-alias-label-tertiary)}.cwn-context-source{margin:0 0 8px;color:var(--dsw-alias-label-tertiary)}\n.cwn .cwn-compose-model{gap:4px;padding:0 4px 0 8px;max-width:min(360px,45cqw);font-size:13px;line-height:20px}.cwn .cwn-model-effort{color:var(--dsw-alias-label-caption);flex-shrink:1000;min-width:0;overflow:hidden;text-overflow:ellipsis}.cwn-model-chevron{color:var(--dsw-alias-label-caption);transition:transform .12s}.cwn-compose-model[aria-expanded=true] .cwn-model-chevron{transform:rotate(180deg)}.cwn-model-popover button:focus-visible{outline:none;background:var(--dsw-alias-interactive-bg-hover)}\n@media(prefers-reduced-motion:reduce){.cwn-progress>summary,.cwn-progress-chevron,.cwn-model-chevron{transition:none}}\n";
|
|
6
|
+
export declare const hoverFeedbackStyles = "\n.cwn button,.cwn summary,.cwn-entry,.cwn-model-popover button{transition:background-color 180ms ease,color 180ms ease,opacity 180ms ease}\n.cwn button:disabled{pointer-events:auto}\n.cwn button:disabled:not(.cwn-send):hover{background:var(--dsw-alias-interactive-bg-hover)!important;color:var(--dsw-alias-label-secondary)}\n.cwn .cwn-send:disabled:hover{background:var(--dsw-alias-button-info-hover)!important}\n/* On white, hover-solid and the neutral resting fill look identical. Use the\n stronger host active token for a visible neutral hover, retaining the fade. */\nbody:not([data-ds-dark-theme]) .cwn-back:hover:not(:disabled),\nbody:not([data-ds-dark-theme]) .cwn-filters button:not([aria-pressed=true]):hover:not(:disabled),\nbody:not([data-ds-dark-theme]) .cwn button:disabled:not(.cwn-send):hover{background:var(--dsw-alias-interactive-bg-active)!important}\n@media(prefers-reduced-motion:reduce){.cwn button,.cwn summary,.cwn-entry,.cwn-model-popover button{transition:none}}\n";
|
|
7
|
+
export declare const conversationInteractionStyles = "\n.cwn-conversation{position:relative;flex:1;min-height:60px;display:flex;flex-direction:column}\n.cwn-jump{z-index:8;height:0;padding:0;padding-right:max(calc(var(--dsh-composer-side-clearance,16px) + 16px),calc((100% - var(--dsh-chat-content-width,100%))/2));pointer-events:none;justify-content:flex-end;display:flex;position:absolute;bottom:16px;left:0;right:0}\n.cwn .cwn-jump-button{--dsw-elevation-stroke-color:var(--dsw-alias-border-l3);corner-shape:round;width:34px;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-floating-fill);box-shadow:var(--dsw-elevation-panel);cursor:pointer;pointer-events:auto;border:0;border-radius:100px;justify-content:center;align-items:center;margin-top:-34px;padding:0;display:flex;transition:none}\n.cwn .cwn-jump-button:hover{background:var(--dsw-alias-button-floating-hover)}\n.cwn-message-label button{transition:none}\n@media(hover:hover){\n.cwn [data-actions-reveal=hover] .cwn-message-label{opacity:0;transition:opacity 80ms}\n.cwn [data-actions-reveal=hover]:hover .cwn-message-label,.cwn [data-actions-reveal=hover]:focus-within .cwn-message-label{opacity:1}\n}\n";
|
|
8
|
+
export declare const settingsStyles = "\n.cwn-settings-dialog{width:min(800px,90vw);max-width:90vw;height:700px;max-height:100%}\n.cwn-settings-content{padding-top:4px!important;min-height:0;flex:1;overflow:hidden}\n.cwn-settings-content>div:last-child{flex:1;min-height:0}.cwn-settings-content>div:first-child{flex-shrink:0}\n.cwn-settings-layout{display:grid;grid-template-columns:188px minmax(0,1fr);gap:24px;height:100%;min-height:0;font-family:var(--dsw-font-family);font-size:var(--dsw-font-s-14-font-size);line-height:var(--dsw-font-s-14-line-height);color:var(--dsw-alias-label-primary)}\n.cwn-settings-layout *{box-sizing:border-box}\n.cwn-settings-nav{display:flex;flex-direction:column;gap:6px;align-self:stretch;min-height:0;overflow:auto;overscroll-behavior:contain}.cwn-settings-nav>button{flex-shrink:0}\n.cwn-settings-nav button{justify-content:flex-start;gap:10px;width:100%;font-weight:400}\n.cwn-settings-nav button[aria-pressed=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-business-primary)}\n.cwn-settings-nav-primary{padding:0 12px!important}\n.cwn-settings-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}\n.cwn-settings-nav-primary[aria-expanded]{margin-top:6px}\n.cwn-settings-nav-chevron{display:inline-flex;margin-left:auto;transition:transform 220ms cubic-bezier(.2,0,0,1)}\n.cwn-settings-nav-primary[aria-expanded=false] .cwn-settings-nav-chevron{transform:rotate(-90deg)}\n.cwn-settings-cli-group{display:grid;grid-template-rows:1fr;opacity:1;flex-shrink:0;transition:grid-template-rows 220ms cubic-bezier(.2,0,0,1),opacity 180ms ease,visibility 220ms}\n.cwn-settings-cli-group[data-expanded=false]{grid-template-rows:0fr;opacity:0;visibility:hidden}\n.cwn-settings-cli-group-inner{display:flex;flex-direction:column;gap:4px;min-height:0;overflow:hidden;padding-left:14px}\n.cwn-settings-cli-group-inner>button{flex-shrink:0;padding:0 10px!important}\n.cwn-settings-nav-label{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.cwn-settings-nav-status{width:14px;height:14px;display:flex;align-items:center;justify-content:center;flex:none}\n.cwn-connection-dot{display:block;width:6px;height:6px;border-radius:50%;background:var(--dsw-alias-label-caption)}\n.cwn-connection-dot[data-state=connected]{background:var(--dsw-alias-state-success-primary)}\n.cwn-connection-dot[data-state=failed]{background:var(--dsw-alias-state-error-primary)}\n.cwn-settings-nav button[data-enabled=false],.cwn-cli-identity[data-enabled=false] .cwn-settings-cli-name{color:var(--dsw-alias-label-caption)}\n.cwn-settings-nav button[data-enabled=false] .cwn-brand,.cwn-cli-identity[data-enabled=false] .cwn-brand{filter:grayscale(1);opacity:.5}\n.cwn-settings-pane{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 2px 8px 0}\n.cwn-cli-identity,.cwn-settings-cli-name,.cwn-cli-toggle,.cwn-settings-section-tools{display:flex;align-items:center;gap:10px}\n.cwn-cli-identity{justify-content:space-between;min-height:60px;padding:4px 0 0}\n.cwn-settings-cli-name{gap:14px}.cwn-settings-cli-name h2{margin:0;font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.02em}.cwn-cli-subtitle{margin:4px 0 0;font-size:var(--dsw-font-xxs-12-font-size);line-height:18px;color:var(--dsw-alias-label-tertiary)}\n.cwn-cli-toggle-status{height:20px;overflow:auto;margin:4px 0 4px;font-size:var(--dsw-font-xxs-12-font-size);line-height:18px;color:var(--dsw-alias-label-tertiary)}\n.cwn-section-progress{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:none}\n.cwn-settings-section{min-width:0}.cwn-settings-section+.cwn-settings-section{margin-top:20px;padding-top:16px;border-top:.5px solid var(--dsw-alias-border-l2)}\n.cwn-settings-section-head,.cwn-account-terminal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;min-height:36px}\n.cwn-settings-section-head h3{font-size:inherit;font-weight:500;margin:0}\n.cwn-settings-form{display:flex;flex-direction:column;gap:0}.cwn-settings-form label{display:flex;flex-direction:column;gap:8px;color:var(--dsw-alias-label-secondary)}\n.cwn-settings-choice{display:block;width:min(240px,48%);min-width:0;flex-shrink:0}.cwn-settings-choice>button{width:100%;justify-content:space-between;gap:12px;background:var(--dsw-alias-interactive-bg-hover)}.cwn-settings-choice>button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.cwn-settings-choice-menu{width:min(300px,85vw);min-width:min(220px,85vw);max-width:min(300px,85vw);max-height:300px;overflow:auto}\n.cwn-settings-hint,.cwn-settings-feedback,.cwn-account-summary,.cwn-account-instruction{margin:0;font-size:var(--dsw-font-xxs-12-font-size);line-height:20px;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere}\n.cwn-account-row{display:flex;align-items:center;gap:12px;min-height:56px}.cwn-account-summary{display:flex;align-items:center;flex:1;min-width:0;min-height:52px;margin:0;color:var(--dsw-alias-label-secondary)}\n.cwn-account-status-line{display:flex;align-items:center;min-width:0;gap:8px;min-height:24px;font-size:var(--dsw-font-s-14-font-size);line-height:22px}.cwn-account-login{display:inline-flex;align-items:center;gap:6px;min-width:0}.cwn-account-login:not([data-state=failed]){flex-shrink:0;white-space:nowrap}.cwn-account-login[data-state=connected]{color:var(--dsw-alias-state-success-primary)}.cwn-account-login[data-state=failed]{color:var(--dsw-alias-state-error-primary)}.cwn-account-login[data-state=disabled]{color:var(--dsw-alias-label-caption)}.cwn-account-status-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--dsw-alias-label-caption)}.cwn-account-status-dot[data-state=connected]{background:var(--dsw-alias-state-success-primary)}.cwn-account-status-dot[data-state=failed]{background:var(--dsw-alias-state-error-primary)}.cwn-account-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-secondary)}\n.cwn-settings-notice{min-height:20px;max-height:56px;overflow:auto;margin:8px 0 0}.cwn-settings-notice:empty{min-height:0;height:0;margin:0}\n.cwn-settings-form .cwn-setting-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:24px;padding:16px 0;border-bottom:.5px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary)}.cwn-setting-row-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;font-size:var(--dsw-font-s-14-font-size);line-height:22px}.cwn-setting-description{font-size:var(--dsw-font-xxs-12-font-size);line-height:18px;color:var(--dsw-alias-label-tertiary)}.cwn-settings-save{margin-top:16px;justify-content:flex-end}\n.cwn-settings-feedback-slot{min-height:20px;font-size:12px;line-height:20px;color:var(--dsw-alias-label-tertiary)}\n.cwn-account-summary[data-provider-logins=true] .cwn-account-status-line{width:100%}.cwn-account-summary[data-provider-logins=true] .cwn-account-login{flex-shrink:1}.cwn-account-logins{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.cwn-settings-feedback,.cwn-settings-save,.cwn-account-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}\n.cwn-account-actions{min-height:36px;flex-shrink:0;justify-content:flex-end;gap:8px}.cwn-account-actions button{background:transparent}.cwn-account-logout{flex-shrink:0;gap:5px!important;padding:0 8px!important;color:var(--dsw-alias-state-error-primary)!important}.cwn-account-logout:hover:not(:disabled){background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 9%,transparent)!important}.cwn-refresh{width:36px!important;padding:0!important}.cwn-account-login-action,.cwn-account-manage{padding:0 10px!important}\n.cwn-local-loading,.cwn-loading{display:flex;align-items:center;gap:8px;color:var(--dsw-alias-label-tertiary);font-size:var(--dsw-font-xxs-12-font-size);line-height:20px}\n/* Native md Button owns the 36px height; native Switch keeps its own 36x20px geometry. */\n.cwn-settings-choice-menu button{border:0;box-shadow:none;--dsw-elevation-stroke-color:transparent}.cwn-settings-layout button:not([role=switch]),.cwn-settings-choice-menu button{transition:background-color 180ms ease,color 180ms ease,opacity 180ms ease}\n.cwn-account-actions button:hover:not(:disabled),.cwn-settings-section-head button:hover:not(:disabled),.cwn-settings-nav button:hover:not(:disabled),.cwn-account-terminal-head button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}\n.cwn-settings-nav button[aria-pressed=true]:hover,.cwn-settings-choice>button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-active)}\n.cwn-settings-layout button:not([role=switch]):disabled{pointer-events:auto}\n.cwn-settings-layout button:not([role=switch]):disabled:hover{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-secondary)}\n.cwn-settings-layout button:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}\n.cwn-account-terminal{margin-top:16px;padding:12px;border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-layer-2);border:.5px solid var(--dsw-alias-border-l2);min-width:0}\n.cwn-account-terminal-head{margin-bottom:8px}.cwn-account-terminal-head strong{font-size:12px;font-weight:500}.cwn-account-terminal-view{height:300px;min-height:200px;margin:12px 0;overflow:hidden}.cwn-account-terminal-view .xterm{height:100%}.cwn-account-terminal-view .xterm-viewport{background-color:var(--dsw-alias-bg-layer-2)!important}.cwn-account-terminal-view .xterm-helper-textarea{resize:none!important;min-height:0!important;max-height:0!important}\n.cwn-native-model-settings>p{margin:0 0 16px;color:var(--dsw-alias-label-secondary);font-size:var(--cwn-font-sm);line-height:1.6}.cwn-account-dialog{width:min(720px,90vw);max-width:90vw}.cwn-account-dialog-content{min-height:0;overflow:auto}.cwn-account-dialog .cwn-account-terminal{margin:0;padding:0;border:0;background:transparent}.cwn-account-dialog .cwn-account-terminal-view{height:300px;max-height:48vh}.cwn-account-dialog .cwn-account-terminal button{border:0!important;transition:background-color 180ms ease,color 180ms ease}.cwn-account-dialog .cwn-account-terminal button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-active)}\n/* OMP onboarding needs room for its native header and provider list. Small screens scroll the modal body. */\n.cwn-account-dialog .cwn-account-terminal[data-cli=\"omp\"] .cwn-account-terminal-view{height:520px;max-height:none}\n@media(max-width:640px){.cwn-account-row{flex-wrap:wrap}.cwn-account-actions{margin-left:auto}.cwn-settings-content{overflow:auto}.cwn-settings-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:16px}.cwn-settings-nav{max-height:190px}.cwn-settings-cli-group-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.cwn-settings-nav button{min-width:0}.cwn-settings-pane{overflow:auto}.cwn-settings-form .cwn-setting-row{gap:12px}.cwn-setting-description{max-width:180px}.cwn-account-terminal-view{height:240px}}\n@media(prefers-reduced-motion:reduce){.cwn-settings-layout button,.cwn-settings-choice-menu button,.cwn-settings-nav-chevron,.cwn-settings-cli-group{transition:none}}\n";
|
|
9
|
+
export declare const rolePresetStyles = "\n.cwn-roles-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 20px}\n.cwn-roles-heading h2{margin:0;font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.02em}\n.cwn-roles-heading p{margin:8px 0 0;color:var(--dsw-alias-label-tertiary);font-size:var(--dsw-font-s-14-font-size);line-height:22px}\n.cwn-roles-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px}.cwn-roles-toolbar>span{flex:1;min-width:0}.cwn-roles-toolbar>button{flex-shrink:0}\n.cwn-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:160px;align-content:start}\n.cwn-role-card{min-width:0;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xl);overflow:hidden;background:var(--dsw-alias-bg-layer-2)}\n.cwn-role-card>button{display:flex;flex-direction:column;gap:7px;width:100%;height:100%;min-height:104px;padding:16px;text-align:left;background:transparent;color:inherit;font:inherit;border:0;cursor:pointer}\n.cwn-role-card>button:hover{background:var(--dsw-alias-interactive-bg-hover)}\n.cwn-role-card-heading{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;min-width:0}.cwn-role-card-heading strong{font-size:var(--dsw-font-s-14-font-size);font-weight:500;overflow-wrap:anywhere}.cwn-role-card-heading svg{width:12px;height:12px;color:var(--dsw-alias-label-tertiary);flex-shrink:0;transform:rotate(90deg)}\n.cwn-role-card-summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:var(--dsw-font-xxs-12-font-size);line-height:20px;color:var(--dsw-alias-label-tertiary)}\n.cwn-role-editor{display:flex;flex-direction:column;gap:16px}.cwn-role-back{align-self:flex-start}.cwn-role-editor label{display:flex;flex-direction:column;gap:8px;min-width:0}.cwn-role-editor textarea{display:block;width:100%;min-height:240px;resize:vertical;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);padding:12px;font:inherit;line-height:1.65;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}\n.cwn-role-editor textarea:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}\n.cwn-role-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.cwn-role-editor-actions>.cwn-role-delete{margin-right:auto}.cwn-role-delete{background:var(--dsw-alias-state-error-primary)!important;color:#fff!important}.cwn-role-delete:hover:not(:disabled){background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 88%,#000)!important}.cwn-role-delete-confirm>button+button{margin-left:8px}\n.cwn-role-delete-confirm{padding:12px;border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover)}.cwn-role-delete-confirm p{margin:0 0 8px;font-size:var(--dsw-font-xxs-12-font-size)}\n.cwn-role-feedback{min-height:22px;margin-top:12px;font-size:var(--dsw-font-xxs-12-font-size);line-height:20px;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere}.cwn-role-feedback[role=alert]{color:var(--dsw-alias-state-error-primary)}.cwn-role-empty{color:var(--dsw-alias-label-tertiary);font-size:var(--dsw-font-s-14-font-size)}\n.cwn-rename-dialog{width:min(420px,90vw);max-width:90vw}.cwn-rename-form>p{font-size:var(--dsw-font-xxs-12-font-size);color:var(--dsw-alias-label-tertiary);line-height:20px}\n@media(max-width:700px){.cwn-role-grid{grid-template-columns:1fr}.cwn-roles-toolbar{flex-wrap:wrap}.cwn-roles-toolbar>span{flex-basis:100%}}\n";
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
// Harness 0.2.0-rc.2 typography/radius/elevation tokens are inherited live.
|
|
2
|
+
// Native md Button defines the 36px control height in Harness 0.2.0-rc.2.
|
|
3
|
+
// Input has no size variant, so its wrapper shares that height here.
|
|
4
|
+
// Conversation text uses the same host font-size preference as the main composer.
|
|
5
|
+
export const styles = `
|
|
6
|
+
.cwn,.cwn-settings-dialog,.cwn-rename-dialog{--cwn-control-height:36px}
|
|
7
|
+
.cwn-control-input{height:var(--cwn-control-height,36px)}
|
|
8
|
+
.cwn{position:relative;--cwn-accent:var(--dsw-alias-state-business-primary);--cwn-muted:var(--dsw-alias-label-tertiary);--cwn-border:var(--dsw-alias-border-l3);display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;color:var(--dsw-alias-label-primary);font-family:inherit;font-size:var(--dsw-font-s-14-font-size);line-height:var(--dsw-font-s-14-line-height);container-type:inline-size}
|
|
9
|
+
.cwn *{box-sizing:border-box}.cwn svg{flex-shrink:0}.cwn select,.cwn textarea{font-family:inherit}.cwn-worker,.cwn-cli-heading{font:inherit}.cwn button{cursor:pointer}.cwn button:disabled{cursor:default;opacity:.45}.cwn button:focus-visible,.cwn summary:focus-visible,.cwn input:focus-visible,.cwn textarea:focus-visible,.cwn select:focus-visible{outline:2px solid var(--cwn-accent);outline-offset:2px}
|
|
10
|
+
.cwn-brand{display:inline-flex;position:relative;flex-shrink:0;vertical-align:middle}.cwn-brand img{display:block;width:100%;height:100%;object-fit:contain}.cwn-brand .cwn-icon-dark{display:none}body[data-ds-dark-theme] .cwn-brand .cwn-icon-mono{filter:invert(1)}body[data-ds-dark-theme] .cwn-brand .cwn-icon-light{display:none}body[data-ds-dark-theme] .cwn-brand .cwn-icon-dark{display:block}
|
|
11
|
+
.cwn-project-logo{display:block;position:relative;width:100%;height:100%;mask-size:contain;mask-position:center;mask-repeat:no-repeat;mask-mode:alpha;-webkit-mask-size:contain;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat}.cwn-project-logo.monochrome{background:#000}body[data-ds-dark-theme] .cwn-project-logo.monochrome{background:#fff}
|
|
12
|
+
.cwn-head{display:flex;align-items:center;gap:9px;min-height:56px;padding:10px 16px;flex-shrink:0}.cwn-head h2{flex:1;min-width:0;font-size:var(--dsw-font-s-14-font-size);line-height:var(--dsw-font-s-14-line-height);font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwn-back{width:28px!important;padding:0!important;flex-shrink:0}.cwn-settings-button{width:36px!important;padding:0!important;flex-shrink:0;align-self:center}.cwn-settings-button svg{display:block}.cwn-back{border-radius:var(--dsw-radius-md)!important;background:var(--dsw-alias-interactive-bg-hover)!important}
|
|
13
|
+
.cwn-wordmark{display:flex;align-items:center;gap:6px;min-width:0;flex:1;height:36px}.cwn-wordmark h2{display:flex;align-items:center;gap:10px;overflow:visible!important;font-family:var(--dsw-font-family);font-size:21px!important;line-height:28px!important;font-weight:500;letter-spacing:normal}.cwn-wordmark h2 small{display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 5px;border-radius:3px;background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-2);font-size:10px;line-height:14px;font-weight:600;letter-spacing:.08em}.cwn-overview{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-top:4px}.cwn-overview-controls{flex:none;min-width:0;padding:0 14px}.cwn-overview-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:8px 14px 20px}.cwn-search{width:100%}
|
|
14
|
+
|
|
15
|
+
.cwn-filters{display:flex;gap:6px;margin:10px 0 14px}.cwn-filters button{flex:1;min-width:0;padding:0 7px;background:var(--dsw-alias-interactive-bg-hover)!important}.cwn-filters button[aria-pressed=true]{color:var(--cwn-accent)!important;border-color:var(--cwn-border)!important;background:color-mix(in srgb,var(--cwn-accent) 10%,transparent)!important}
|
|
16
|
+
.cwn-cli-group{border:0;border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-base);margin:0 0 12px;overflow:hidden}.cwn-cli-heading{display:flex;align-items:center;gap:9px;width:100%;min-height:45px;padding:10px 12px;border:0;background:transparent;color:inherit;text-align:left}.cwn-cli-heading strong{font-size:var(--dsw-font-s-14-font-size);font-weight:600;flex:1;min-width:0}.cwn-cli-heading>span:not(.cwn-brand){font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);white-space:nowrap}.cwn-cli-heading>svg{width:12px;height:12px;color:var(--cwn-muted);transform:rotate(90deg);transition:transform var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease)}.cwn-cli-heading[aria-expanded=false]>svg{transform:none}.cwn-cli-heading[aria-expanded=true]{border-bottom:.5px solid var(--dsw-alias-border-l2)}
|
|
17
|
+
.cwn-cli-rows{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease),opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease),visibility var(--ds-transition-duration,.2s)}.cwn-cli-rows[data-expanded=false]{grid-template-rows:0fr;opacity:0;visibility:hidden}.cwn-cli-rows-inner{min-height:0;overflow:hidden}
|
|
18
|
+
@media(prefers-reduced-motion:reduce){.cwn-cli-rows,.cwn-cli-heading>svg,.cwn-cli-heading:after{transition:none!important}}
|
|
19
|
+
.cwn-worker{display:flex;width:100%;align-items:center;gap:10px;padding:12px;background:transparent;color:inherit;border:0;text-align:left;min-height:62px;position:relative}.cwn-worker+.cwn-worker:before{content:'';position:absolute;left:12px;right:12px;top:0;height:.5px;background:var(--dsw-alias-border-l2)}.cwn-worker:hover,.cwn-worker:focus-visible{background:color-mix(in srgb,var(--cwn-accent) 9%,transparent)}.cwn-worker>svg{width:14px;height:14px;color:var(--cwn-muted)}.cwn-worker-content{flex:1;min-width:0}.cwn-worker-line{display:flex;align-items:center;gap:8px;min-width:0}.cwn-worker-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--dsw-font-s-14-font-size);font-weight:500}.cwn-worker-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--dsw-font-xxs-12-font-size);white-space:nowrap;flex-shrink:0;color:var(--cwn-muted)}.cwn-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--dsw-alias-state-idle-primary)}.cwn-worker-status.running{color:var(--cwn-accent)}.cwn-dot.running{background:var(--cwn-accent)}.cwn-worker-status.completed{color:var(--dsw-alias-state-success-primary)}.cwn-dot.completed{background:var(--dsw-alias-state-success-primary)}.cwn-worker-status.failed{color:var(--dsw-alias-state-error-primary)}.cwn-dot.failed{background:var(--dsw-alias-state-error-primary)}.cwn-worker-status.queued,.cwn-worker-status.stopping{color:var(--dsw-alias-state-warn-label)}.cwn-dot.queued,.cwn-dot.stopping{background:var(--dsw-alias-state-warn-primary)}.cwn-worker-meta{display:flex;align-items:center;gap:7px;margin-top:5px;color:var(--cwn-muted);font-size:var(--dsw-font-xxs-12-font-size);min-width:0}.cwn-worker-meta>.cwn-worker-name,.cwn-worker-meta>.cwn-worker-model{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwn-worker-meta>span:last-child{flex-shrink:0;white-space:nowrap}.cwn-worker-name{max-width:38%}.cwn-worker-model{flex:0 1 auto}.cwn-meta-divider{opacity:.5;flex-shrink:0}
|
|
20
|
+
.cwn-actions{position:relative}.cwn-actions>summary{display:flex;width:28px;height:28px;align-items:center;justify-content:center;list-style:none;border-radius:var(--dsw-radius-md);cursor:pointer}.cwn-actions>summary::-webkit-details-marker{display:none}.cwn-actions>summary:hover{background:var(--dsw-alias-interactive-bg-hover)}.cwn-action-menu{position:absolute;right:0;top:34px;width:240px;max-width:calc(100cqw - 32px);z-index:5;padding:12px;background:var(--dsw-alias-bg-layer-1);border:.5px solid var(--cwn-border);border-radius:var(--dsw-radius-lg);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);box-shadow:var(--dsw-elevation-panel);font-size:var(--dsw-font-xxs-12-font-size);overflow-wrap:anywhere}.cwn-action-menu p{color:var(--cwn-muted);margin:8px 0;font-size:var(--dsw-font-xxs-12-font-size)}.cwn-action-menu>button{display:flex;margin-top:8px}
|
|
21
|
+
.cwn-feed{flex:1;overflow:auto;overscroll-behavior:contain;min-height:60px;padding:18px 16px}.cwn-message{width:100%;margin:0 0 22px}.cwn-message.user{width:fit-content;max-width:85%;margin-left:auto}.cwn-message.user .cwn-text{padding:10px 12px;border-radius:var(--dsw-radius-lg);background:var(--dsw-specific-bubble,var(--dsw-alias-interactive-bg-hover))}.cwn-message-label{position:relative;display:flex;justify-content:flex-end;color:var(--cwn-muted);font-size:var(--dsw-font-xxs-12-font-size);margin-bottom:6px}.cwn-message.assistant .cwn-message-label{justify-content:flex-start}.cwn-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:calc(24px + var(--dsh-content-font-delta,0px));font-size:var(--dsh-content-font-size,14px)}.cwn-tool{border:.5px solid var(--dsw-alias-border-l2);border-radius:var(--dsw-radius-md);margin:8px 0;background:var(--dsw-alias-interactive-bg-hover);font-size:var(--dsw-font-xxs-12-font-size)}.cwn-tool summary{display:flex;align-items:center;gap:7px;padding:10px;cursor:pointer;list-style:none}.cwn-tool summary::-webkit-details-marker{display:none}.cwn-tool summary:before{content:'›';color:var(--cwn-muted)}.cwn-tool[open] summary:before{transform:rotate(90deg)}.cwn-tool-title{min-width:0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cwn-tool small{font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);max-width:38%;overflow-wrap:anywhere}.cwn-tool pre{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--dsw-font-xxs-12-font-size)/1.6 var(--ds-font-family-code,monospace);margin:0;padding:0 12px 12px;max-height:320px;overflow:auto}.cwn-status{font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);text-align:center;margin:16px 0}
|
|
22
|
+
.cwn-compose{padding:8px 12px 12px;flex-shrink:0}.cwn-compose-state{display:flex;align-items:center;gap:6px;font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);margin:0 4px 7px}.cwn-compose-box{padding:10px;border:0;border-radius:var(--dsw-radius-panel);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);box-shadow:var(--dsw-elevation-soft);background:var(--dsw-specific-input-major,var(--dsw-alias-interactive-bg-hover))}.cwn .cwn-compose textarea:focus-visible{outline:none}.cwn-compose textarea{display:block;width:100%;height:45px;min-height:45px;max-height:140px;resize:vertical;border:0;padding:0 2px;background:transparent;color:inherit;line-height:calc(24px + var(--dsh-content-font-delta,0px));font-size:var(--dsh-content-font-size,14px);outline:none}.cwn-compose textarea::placeholder{color:var(--cwn-muted)}.cwn-compose textarea:disabled{opacity:.6}.cwn-compose-bottom{display:flex;align-items:center;gap:8px;margin-top:6px;min-height:30px}.cwn-compose-model{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--cwn-muted);font-size:var(--dsw-font-xxs-12-font-size)}.cwn-send{width:30px!important;height:30px!important;padding:0!important;border-radius:50%!important;flex-shrink:0}.cwn-resume-hint{font-size:var(--dsw-font-xxs-12-font-size);line-height:1.6;color:var(--cwn-muted);margin:0 4px 8px}
|
|
23
|
+
.cwn-settings{padding:12px 16px;display:grid;gap:9px;overflow:auto;max-height:65%;flex-shrink:0;border-bottom:.5px solid var(--cwn-border)}.cwn-settings label{font-size:var(--dsw-font-xxs-12-font-size);display:grid;gap:5px}.cwn-settings select{width:100%;border:.5px solid var(--cwn-border);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);color:inherit;padding:7px;font-size:var(--dsw-font-s-14-font-size)}.cwn-settings p{font-size:var(--dsw-font-xxs-12-font-size);color:var(--cwn-muted);line-height:1.6;margin:0}
|
|
24
|
+
.cwn-empty{padding:30px 10px;text-align:center;color:var(--cwn-muted);line-height:1.8}.cwn-empty h3{color:var(--dsw-alias-label-primary);font-weight:500;font-size:var(--dsw-font-s-14-font-size);margin:12px 0}.cwn-empty p{font-size:var(--dsw-font-xxs-12-font-size)}.cwn-empty blockquote{margin:12px 0;padding:12px;border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-interactive-bg-hover);font-size:var(--dsw-font-xxs-12-font-size);text-align:left}.cwn-notice,.cwn-error{font-size:var(--dsw-font-xxs-12-font-size);padding:12px;border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover);line-height:1.6;overflow-wrap:anywhere;margin:8px 12px;max-height:180px;overflow:auto;flex-shrink:0}.cwn-error{color:var(--dsw-alias-state-error-primary)}.cwn-error button{margin:8px 0}.cwn-error details{font-size:var(--dsw-font-xxs-12-font-size)}.cwn-error summary{cursor:pointer}
|
|
25
|
+
.cwn-history-nav{border-bottom:.5px solid var(--cwn-border);padding:10px 16px;font-size:var(--dsw-font-xxs-12-font-size);flex-shrink:0}.cwn-history-nav>div{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0}.cwn-history-nav small{color:var(--cwn-muted)}.cwn-history-start{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:var(--dsw-font-xxs-12-font-size);margin:0 0 16px;color:var(--cwn-muted)}.cwn-jump{display:flex;justify-content:center;padding:4px 12px 8px}.cwn-copy{display:inline-flex;align-items:center;gap:6px;margin-top:5px;max-width:100%}.cwn-copy button{color:var(--cwn-muted)}.cwn-copy-feedback{font-size:var(--dsw-font-xxs-12-font-size);overflow-wrap:anywhere;color:var(--cwn-muted)}.cwn-sr-only{position:absolute;top:0;left:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
|
|
26
|
+
@container (max-width:320px){.cwn-head{padding:10px 12px}.cwn-overview-controls{padding:0 10px}.cwn-overview-list{padding:8px 10px 10px}.cwn-worker-line{gap:5px}.cwn-worker-status{font-size:var(--dsw-font-xxs-12-font-size)}.cwn-worker-meta{gap:5px}.cwn-filters{gap:4px}.cwn-filters button{padding:0 4px!important}.cwn-feed{padding:14px 12px}}
|
|
27
|
+
`;
|
|
28
|
+
// Geometry below mirrors Harness 0.2.0-rc.2 chat/composer and sidebar New Session.
|
|
29
|
+
export const nativeChatStyles = `
|
|
30
|
+
.cwn-entry{width:24px!important;height:24px!important;min-width:24px;padding:3px!important;border-radius:var(--dsw-radius-sm)!important;flex-shrink:0;background:transparent!important;border:0!important;box-shadow:none!important}
|
|
31
|
+
.cwn-entry:hover{background:var(--dsw-alias-interactive-bg-hover)!important}
|
|
32
|
+
.cwn .cwn-search{height:var(--cwn-control-height);border-color:var(--dsw-alias-border-l3);background:var(--dsw-alias-bg-base)}
|
|
33
|
+
.cwn .cwn-search:focus-within{outline:none;box-shadow:none;border-color:var(--dsw-alias-border-l3)}
|
|
34
|
+
.cwn .cwn-search input:focus-visible{outline:none;box-shadow:none}
|
|
35
|
+
.cwn .cwn-search input::placeholder{color:var(--dsw-alias-label-caption)}
|
|
36
|
+
.cwn-back,.cwn-settings select,.cwn-tool{border:.5px solid var(--dsw-alias-border-l3)}
|
|
37
|
+
.cwn-cli-group{--dsw-elevation-stroke-color:var(--dsw-alias-border-l3);box-shadow:var(--dsw-elevation-soft)}
|
|
38
|
+
body[data-ds-dark-theme] .cwn-cli-group{box-shadow:var(--dsw-elevation-stroke),0 4px 12px #00000040,0 12px 24px -8px #00000059}
|
|
39
|
+
.cwn-feed{padding:16px 24px}
|
|
40
|
+
.cwn-message{margin-bottom:24px}
|
|
41
|
+
.cwn-message.user{max-width:82%}
|
|
42
|
+
.cwn-message.user .cwn-text{padding:10px 16px;border-radius:var(--dsw-radius-xl);line-height:calc(22px + var(--dsh-content-font-delta,0px))}
|
|
43
|
+
.cwn-message-label{height:28px;margin:6px 0 0;gap:8px;align-items:center;font-size:var(--dsh-content-font-size-secondary,13px);line-height:24px}
|
|
44
|
+
.cwn-message.assistant .cwn-message-label{margin-top:16px;margin-left:-6px}
|
|
45
|
+
.cwn-markdown{min-width:0;overflow-wrap:anywhere}
|
|
46
|
+
.cwn-copy{margin:0;position:relative}
|
|
47
|
+
.cwn-copy .cwn-copy-icon{width:28px;height:28px;padding:6px;color:var(--dsw-alias-label-tertiary)}
|
|
48
|
+
.cwn-status{text-align:left;border-bottom:.5px solid var(--dsw-alias-border-l2);padding:8px 0;margin:8px 0 16px;font-size:var(--dsh-content-font-size-secondary,13px)}
|
|
49
|
+
.cwn-compose{padding:0 16px 4px}
|
|
50
|
+
.cwn-compose-box{display:flex;flex-direction:column;gap:12px;padding:8px 0 0}
|
|
51
|
+
.cwn-compose textarea{resize:none;height:36px;min-height:36px;max-height:336px;padding:4px 12px 0 14px;overflow-y:auto;margin:0;box-sizing:border-box}
|
|
52
|
+
.cwn-compose textarea::placeholder{color:var(--dsw-alias-label-caption)}
|
|
53
|
+
.cwn-compose-bottom{justify-content:flex-end;gap:8px;padding:2px 8px 6px;margin:0;min-height:42px}
|
|
54
|
+
.cwn-model-menu{margin-left:auto;min-width:0;max-width:calc(100% - 42px)}
|
|
55
|
+
.cwn .cwn-compose-model{display:flex;align-items:center;gap:6px;height:28px;max-width:100%;padding:0 8px;font-size:var(--dsh-content-font-size-secondary,13px);line-height:20px;color:var(--dsw-alias-label-secondary);border-radius:var(--dsw-radius-sm)}
|
|
56
|
+
.cwn-compose-model>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
|
|
57
|
+
.cwn-model-effort{flex-shrink:0;color:var(--dsw-alias-label-tertiary)}
|
|
58
|
+
.cwn .cwn-send{corner-shape:round!important;width:34px!important;height:34px!important;border:0!important;border-radius:999px!important;background:var(--dsw-alias-button-info-fill)!important;color:#fff!important;display:grid;place-items:center;transform:translateY(-2px)}
|
|
59
|
+
.cwn .cwn-send:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)!important}
|
|
60
|
+
.cwn .cwn-send:disabled{opacity:.4}
|
|
61
|
+
.cwn-compose-state{height:24px;gap:8px;margin:4px 8px 0;font-size:var(--dsh-content-font-size-secondary,13px);line-height:20px}
|
|
62
|
+
.cwn-compose-cli{margin-left:auto}
|
|
63
|
+
@container(max-width:320px){.cwn-feed{padding:14px 16px}.cwn-compose{padding-left:8px;padding-right:8px}.cwn-model-effort{display:none}}
|
|
64
|
+
`;
|
|
65
|
+
export const modelPickerStyles = `
|
|
66
|
+
.cwn-progress{margin:12px 0 16px;padding-bottom:12px;border-bottom:.5px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size,14px);line-height:22px}
|
|
67
|
+
.cwn-progress>summary{display:flex;gap:6px;align-items:center;cursor:pointer;list-style:none}.cwn-progress>summary::-webkit-details-marker{display:none}.cwn-progress-chevron{display:inline-flex;transform:rotate(90deg)}.cwn-progress-chevron svg{width:12px;height:12px}.cwn-progress[open] .cwn-progress-chevron{transform:rotate(-90deg)}
|
|
68
|
+
.cwn-process-body{padding-top:12px;display:grid;gap:8px}.cwn-process-note{margin:0;font-size:var(--dsh-content-font-size-secondary,13px);color:var(--dsw-alias-label-tertiary)}.cwn-process-event{font-size:var(--dsh-content-font-size-secondary,13px)}
|
|
69
|
+
|
|
70
|
+
.cwn-model-popover{width:max-content;min-width:min(240px,calc(100vw - 32px));max-width:min(420px,calc(100vw - 32px));max-height:min(360px,calc(100vh - 96px));padding:4px;color:var(--dsw-alias-label-primary);--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);box-shadow:var(--dsw-elevation-prominent)}
|
|
71
|
+
.cwn-model-popover button[role=menuitem]{min-height:34px;padding:5px 7px;font-size:13px;font-weight:400;line-height:20px;border-radius:var(--dsw-radius-md)}
|
|
72
|
+
.cwn-model-cell{display:flex;align-items:center;gap:6px;width:100%;min-width:0}.cwn-model-cell>span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cwn-model-cell-value{color:var(--dsw-alias-label-tertiary);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px}
|
|
73
|
+
.cwn-model-search{background:transparent!important;border:0!important;box-shadow:none!important;padding:5px 7px!important;margin:2px 0 3px;height:auto!important}.cwn-model-search input{font-size:12px!important;padding:0!important}.cwn-model-provider,.cwn-model-feedback{font-size:12px;line-height:18px;color:var(--dsw-alias-label-tertiary);padding:8px}.cwn-model-feedback{max-width:280px;white-space:normal}
|
|
74
|
+
/* Scope to plugin buttons, including the portaled menu and header entry. */
|
|
75
|
+
.cwn button,.cwn-entry,.cwn-model-popover button{border:0!important;--dsw-elevation-stroke-color:transparent;box-shadow:none}
|
|
76
|
+
.cwn-cli-heading{position:relative}.cwn-cli-heading:after{content:'';position:absolute;bottom:0;left:0;right:0;height:.5px;background:var(--dsw-alias-border-l2);pointer-events:none;opacity:0;transition:opacity var(--ds-transition-duration,.2s) var(--ds-ease-in-out,ease)}.cwn-cli-heading[aria-expanded=true]:after{opacity:1}
|
|
77
|
+
.cwn-back:hover:not(:disabled),.cwn-filters button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)!important}
|
|
78
|
+
.cwn-filters button[aria-pressed=true]:hover:not(:disabled){background:color-mix(in srgb,var(--cwn-accent) 18%,transparent)!important}
|
|
79
|
+
.cwn-cli-heading:hover:not(:disabled),.cwn-model-popover button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}
|
|
80
|
+
.cwn button:focus-visible,.cwn-entry:focus-visible,.cwn-model-popover button:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}
|
|
81
|
+
@media(prefers-reduced-motion:reduce){.cwn button,.cwn-entry,.cwn-model-popover button{transition:none}}
|
|
82
|
+
|
|
83
|
+
.cwn .cwn-send{padding:0;min-width:34px;min-height:34px;flex:none}.cwn .cwn-send svg{width:16px;height:16px}
|
|
84
|
+
`;
|
|
85
|
+
export const telemetryStyles = `
|
|
86
|
+
.cwn-stat{display:inline-flex;align-items:center;gap:6px;border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px));font-variant-numeric:tabular-nums;white-space:nowrap;padding:1px 8px;min-width:0;transition:background-color 180ms ease,color 180ms ease}
|
|
87
|
+
.cwn-stat>span{overflow:hidden;text-overflow:ellipsis}.cwn-stat:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}
|
|
88
|
+
.cwn-message-label time{white-space:nowrap;flex-shrink:0}.cwn-message-label .cwn-usage{padding-left:0}.cwn-message-label{gap:6px}
|
|
89
|
+
.cwn-telemetry{margin:4px 0 0;gap:0;justify-content:space-between}.cwn-telemetry .cwn-usage{flex:1;justify-content:center}.cwn-run-stat{max-width:35%}.cwn-context{flex-shrink:0}
|
|
90
|
+
.cwn-context-track{fill:none;stroke:var(--dsw-alias-border-l3);stroke-width:2}.cwn-context-fill{fill:none;stroke:var(--dsw-alias-label-tertiary);stroke-width:2;stroke-linecap:round}
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
@media(prefers-reduced-motion:reduce){.cwn-stat,.cwn summary{transition:none}}
|
|
95
|
+
@container(max-width:360px){.cwn-message-label{flex-wrap:wrap;height:auto;min-height:28px}.cwn-message-label time{margin-left:0}.cwn-telemetry .cwn-stat{padding-left:4px;padding-right:4px;gap:4px}}
|
|
96
|
+
`;
|
|
97
|
+
// Pinned to Harness 0.2.0-rc.2: WorkStatus, MessageIconActions, StatsPills,
|
|
98
|
+
// TurnUsagePanel, ContextMeter and ModelSelect. Native Tooltip/Menu own animations.
|
|
99
|
+
export const nativeInteractionStyles = `
|
|
100
|
+
.cwn-progress{padding-bottom:0;border:0}.cwn-progress>summary{height:calc(33px + var(--dsh-content-font-delta,0px));width:100%;padding:0 0 8px;border-radius:0;border-bottom:.5px solid var(--dsw-alias-border-l2);transition:color .1s;line-height:calc(24px + var(--dsh-content-font-delta,0px));gap:4px}.cwn-progress>summary:hover{color:var(--dsw-alias-label-secondary);background:transparent}.cwn-progress-chevron{transition:transform .1s}.cwn-progress-chevron svg{width:14px;height:14px}
|
|
101
|
+
.cwn-message-label{height:calc(28px + var(--dsh-content-font-delta,0px));gap:8px}.cwn-message-label time{line-height:calc(24px + var(--dsh-content-font-delta,0px))}.cwn-message.assistant .cwn-message-label time{font-size:calc(var(--dsh-content-font-size-secondary,13px) - 1px)}
|
|
102
|
+
.cwn-copy .cwn-copy-icon{width:calc(28px + var(--dsh-content-font-delta,0px));height:calc(28px + var(--dsh-content-font-delta,0px));padding:6px;border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-tertiary)}.cwn-copy-icon svg{width:calc(15px + var(--dsh-content-font-delta,0px));height:calc(15px + var(--dsh-content-font-delta,0px))}.cwn-message.assistant .cwn-copy-icon svg{width:calc(17px + var(--dsh-content-font-delta,0px));height:calc(17px + var(--dsh-content-font-delta,0px))}.cwn-copy .cwn-copy-icon:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}
|
|
103
|
+
.cwn-stat-anchor{min-width:0;display:inline-flex}.cwn-telemetry{gap:0;font-size:calc(var(--dsh-content-font-size-secondary,13px) - 1px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px))}.cwn-telemetry>.cwn-stat-anchor:nth-child(2){flex:1;justify-content:center}
|
|
104
|
+
.cwn-stat{font:inherit;line-height:inherit;transition:none}.cwn-stat:hover{background:transparent;color:var(--dsw-alias-label-tertiary)}.cwn button.cwn-stat{background:transparent;cursor:pointer}.cwn button.cwn-stat:hover,.cwn button.cwn-stat[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}
|
|
105
|
+
.cwn-telemetry .cwn-usage{border-radius:999px;corner-shape:round;padding:1px 8px;gap:6px}.cwn-message-label .cwn-stat-anchor{margin-left:8px}.cwn-message-label .cwn-reply-usage{height:calc(28px + var(--dsh-content-font-delta,0px));font-size:calc(var(--dsh-content-font-size-secondary,13px) - 1px);line-height:calc(24px + var(--dsh-content-font-delta,0px));border-radius:var(--dsw-radius-sm);padding:6px 8px;gap:4px}.cwn-reply-usage svg{width:calc(15px + var(--dsh-content-font-delta,0px));height:calc(15px + var(--dsh-content-font-delta,0px))}.cwn button.cwn-reply-usage:hover,.cwn button.cwn-reply-usage[aria-expanded=true]{color:var(--dsw-alias-label-tertiary)}
|
|
106
|
+
.cwn-context{border-radius:var(--dsw-radius-sm);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px));padding:1px 8px;gap:6px}
|
|
107
|
+
.cwn-stat-panel{z-index:1100;box-sizing:border-box;border-radius:var(--dsw-radius-lg);background:var(--dsw-specific-menu);width:max-content;min-width:min(300px,100vw - 24px);max-width:min(440px,100vw - 24px);backdrop-filter:var(--dsw-menu-backdrop-filter);--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);box-shadow:var(--dsw-elevation-prominent);color:var(--dsw-alias-label-secondary);cursor:default;border:0;padding:16px;font-size:12px;line-height:18px;position:fixed}
|
|
108
|
+
.cwn-stat-title{color:var(--dsw-alias-label-primary);display:flex;justify-content:space-between;gap:16px;margin-bottom:8px;font-weight:500}.cwn-stat-title>span{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}.cwn-stat-rule{border-top:.5px solid var(--dsw-alias-border-l2);margin-bottom:10px}.cwn-stat-details{color:var(--dsw-alias-label-tertiary);display:grid;grid-template-columns:minmax(76px,auto) minmax(0,1fr);gap:6px 16px;margin:0}.cwn-stat-details dt,.cwn-stat-details dd{min-width:0;margin:0}.cwn-stat-details dd{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}
|
|
109
|
+
.cwn-context-panel{width:min(264px,100vw - 24px);min-width:0;padding:12px;line-height:20px}.cwn-context-header{display:flex;align-items:center;gap:6px}.cwn-context-header strong{margin-left:auto;font-weight:500;color:var(--dsw-alias-label-primary);white-space:nowrap}.cwn-context-bar{height:4px;margin:10px 0 12px;background:var(--dsw-alias-interactive-bg-hover);border-radius:999px;corner-shape:round;overflow:hidden}.cwn-context-bar>span{display:block;height:100%;min-width:2px;background:var(--dsw-alias-label-tertiary)}.cwn-context-source{margin:0 0 8px;color:var(--dsw-alias-label-tertiary)}
|
|
110
|
+
.cwn .cwn-compose-model{gap:4px;padding:0 4px 0 8px;max-width:min(360px,45cqw);font-size:13px;line-height:20px}.cwn .cwn-model-effort{color:var(--dsw-alias-label-caption);flex-shrink:1000;min-width:0;overflow:hidden;text-overflow:ellipsis}.cwn-model-chevron{color:var(--dsw-alias-label-caption);transition:transform .12s}.cwn-compose-model[aria-expanded=true] .cwn-model-chevron{transform:rotate(180deg)}.cwn-model-popover button:focus-visible{outline:none;background:var(--dsw-alias-interactive-bg-hover)}
|
|
111
|
+
@media(prefers-reduced-motion:reduce){.cwn-progress>summary,.cwn-progress-chevron,.cwn-model-chevron{transition:none}}
|
|
112
|
+
`;
|
|
113
|
+
// Deliberate user preference: soft hover transitions also on neutral/disabled controls.
|
|
114
|
+
export const hoverFeedbackStyles = `
|
|
115
|
+
.cwn button,.cwn summary,.cwn-entry,.cwn-model-popover button{transition:background-color 180ms ease,color 180ms ease,opacity 180ms ease}
|
|
116
|
+
.cwn button:disabled{pointer-events:auto}
|
|
117
|
+
.cwn button:disabled:not(.cwn-send):hover{background:var(--dsw-alias-interactive-bg-hover)!important;color:var(--dsw-alias-label-secondary)}
|
|
118
|
+
.cwn .cwn-send:disabled:hover{background:var(--dsw-alias-button-info-hover)!important}
|
|
119
|
+
/* On white, hover-solid and the neutral resting fill look identical. Use the
|
|
120
|
+
stronger host active token for a visible neutral hover, retaining the fade. */
|
|
121
|
+
body:not([data-ds-dark-theme]) .cwn-back:hover:not(:disabled),
|
|
122
|
+
body:not([data-ds-dark-theme]) .cwn-filters button:not([aria-pressed=true]):hover:not(:disabled),
|
|
123
|
+
body:not([data-ds-dark-theme]) .cwn button:disabled:not(.cwn-send):hover{background:var(--dsw-alias-interactive-bg-active)!important}
|
|
124
|
+
@media(prefers-reduced-motion:reduce){.cwn button,.cwn summary,.cwn-entry,.cwn-model-popover button{transition:none}}
|
|
125
|
+
`;
|
|
126
|
+
// Harness 0.2.0-rc.2 ui-chat: ChatView / MessageIconActions module styles.
|
|
127
|
+
// These private components are not exported; public icons and theme tokens are
|
|
128
|
+
// reused. Native jump has no transition, and history actions fade in 80ms.
|
|
129
|
+
export const conversationInteractionStyles = `
|
|
130
|
+
.cwn-conversation{position:relative;flex:1;min-height:60px;display:flex;flex-direction:column}
|
|
131
|
+
.cwn-jump{z-index:8;height:0;padding:0;padding-right:max(calc(var(--dsh-composer-side-clearance,16px) + 16px),calc((100% - var(--dsh-chat-content-width,100%))/2));pointer-events:none;justify-content:flex-end;display:flex;position:absolute;bottom:16px;left:0;right:0}
|
|
132
|
+
.cwn .cwn-jump-button{--dsw-elevation-stroke-color:var(--dsw-alias-border-l3);corner-shape:round;width:34px;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-floating-fill);box-shadow:var(--dsw-elevation-panel);cursor:pointer;pointer-events:auto;border:0;border-radius:100px;justify-content:center;align-items:center;margin-top:-34px;padding:0;display:flex;transition:none}
|
|
133
|
+
.cwn .cwn-jump-button:hover{background:var(--dsw-alias-button-floating-hover)}
|
|
134
|
+
.cwn-message-label button{transition:none}
|
|
135
|
+
@media(hover:hover){
|
|
136
|
+
.cwn [data-actions-reveal=hover] .cwn-message-label{opacity:0;transition:opacity 80ms}
|
|
137
|
+
.cwn [data-actions-reveal=hover]:hover .cwn-message-label,.cwn [data-actions-reveal=hover]:focus-within .cwn-message-label{opacity:1}
|
|
138
|
+
}
|
|
139
|
+
`;
|
|
140
|
+
export const settingsStyles = `
|
|
141
|
+
.cwn-settings-dialog{width:min(800px,90vw);max-width:90vw;height:700px;max-height:100%}
|
|
142
|
+
.cwn-settings-content{padding-top:4px!important;min-height:0;flex:1;overflow:hidden}
|
|
143
|
+
.cwn-settings-content>div:last-child{flex:1;min-height:0}.cwn-settings-content>div:first-child{flex-shrink:0}
|
|
144
|
+
.cwn-settings-layout{display:grid;grid-template-columns:188px minmax(0,1fr);gap:24px;height:100%;min-height:0;font-family:var(--dsw-font-family);font-size:var(--dsw-font-s-14-font-size);line-height:var(--dsw-font-s-14-line-height);color:var(--dsw-alias-label-primary)}
|
|
145
|
+
.cwn-settings-layout *{box-sizing:border-box}
|
|
146
|
+
.cwn-settings-nav{display:flex;flex-direction:column;gap:6px;align-self:stretch;min-height:0;overflow:auto;overscroll-behavior:contain}.cwn-settings-nav>button{flex-shrink:0}
|
|
147
|
+
.cwn-settings-nav button{justify-content:flex-start;gap:10px;width:100%;font-weight:400}
|
|
148
|
+
.cwn-settings-nav button[aria-pressed=true]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-business-primary)}
|
|
149
|
+
.cwn-settings-nav-primary{padding:0 12px!important}
|
|
150
|
+
.cwn-settings-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}
|
|
151
|
+
.cwn-settings-nav-primary[aria-expanded]{margin-top:6px}
|
|
152
|
+
.cwn-settings-nav-chevron{display:inline-flex;margin-left:auto;transition:transform 220ms cubic-bezier(.2,0,0,1)}
|
|
153
|
+
.cwn-settings-nav-primary[aria-expanded=false] .cwn-settings-nav-chevron{transform:rotate(-90deg)}
|
|
154
|
+
.cwn-settings-cli-group{display:grid;grid-template-rows:1fr;opacity:1;flex-shrink:0;transition:grid-template-rows 220ms cubic-bezier(.2,0,0,1),opacity 180ms ease,visibility 220ms}
|
|
155
|
+
.cwn-settings-cli-group[data-expanded=false]{grid-template-rows:0fr;opacity:0;visibility:hidden}
|
|
156
|
+
.cwn-settings-cli-group-inner{display:flex;flex-direction:column;gap:4px;min-height:0;overflow:hidden;padding-left:14px}
|
|
157
|
+
.cwn-settings-cli-group-inner>button{flex-shrink:0;padding:0 10px!important}
|
|
158
|
+
.cwn-settings-nav-label{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
159
|
+
.cwn-settings-nav-status{width:14px;height:14px;display:flex;align-items:center;justify-content:center;flex:none}
|
|
160
|
+
.cwn-connection-dot{display:block;width:6px;height:6px;border-radius:50%;background:var(--dsw-alias-label-caption)}
|
|
161
|
+
.cwn-connection-dot[data-state=connected]{background:var(--dsw-alias-state-success-primary)}
|
|
162
|
+
.cwn-connection-dot[data-state=failed]{background:var(--dsw-alias-state-error-primary)}
|
|
163
|
+
.cwn-settings-nav button[data-enabled=false],.cwn-cli-identity[data-enabled=false] .cwn-settings-cli-name{color:var(--dsw-alias-label-caption)}
|
|
164
|
+
.cwn-settings-nav button[data-enabled=false] .cwn-brand,.cwn-cli-identity[data-enabled=false] .cwn-brand{filter:grayscale(1);opacity:.5}
|
|
165
|
+
.cwn-settings-pane{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 2px 8px 0}
|
|
166
|
+
.cwn-cli-identity,.cwn-settings-cli-name,.cwn-cli-toggle,.cwn-settings-section-tools{display:flex;align-items:center;gap:10px}
|
|
167
|
+
.cwn-cli-identity{justify-content:space-between;min-height:60px;padding:4px 0 0}
|
|
168
|
+
.cwn-settings-cli-name{gap:14px}.cwn-settings-cli-name h2{margin:0;font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.02em}.cwn-cli-subtitle{margin:4px 0 0;font-size:var(--dsw-font-xxs-12-font-size);line-height:18px;color:var(--dsw-alias-label-tertiary)}
|
|
169
|
+
.cwn-cli-toggle-status{height:20px;overflow:auto;margin:4px 0 4px;font-size:var(--dsw-font-xxs-12-font-size);line-height:18px;color:var(--dsw-alias-label-tertiary)}
|
|
170
|
+
.cwn-section-progress{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:none}
|
|
171
|
+
.cwn-settings-section{min-width:0}.cwn-settings-section+.cwn-settings-section{margin-top:20px;padding-top:16px;border-top:.5px solid var(--dsw-alias-border-l2)}
|
|
172
|
+
.cwn-settings-section-head,.cwn-account-terminal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;min-height:36px}
|
|
173
|
+
.cwn-settings-section-head h3{font-size:inherit;font-weight:500;margin:0}
|
|
174
|
+
.cwn-settings-form{display:flex;flex-direction:column;gap:0}.cwn-settings-form label{display:flex;flex-direction:column;gap:8px;color:var(--dsw-alias-label-secondary)}
|
|
175
|
+
.cwn-settings-choice{display:block;width:min(240px,48%);min-width:0;flex-shrink:0}.cwn-settings-choice>button{width:100%;justify-content:space-between;gap:12px;background:var(--dsw-alias-interactive-bg-hover)}.cwn-settings-choice>button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
176
|
+
.cwn-settings-choice-menu{width:min(300px,85vw);min-width:min(220px,85vw);max-width:min(300px,85vw);max-height:300px;overflow:auto}
|
|
177
|
+
.cwn-settings-hint,.cwn-settings-feedback,.cwn-account-summary,.cwn-account-instruction{margin:0;font-size:var(--dsw-font-xxs-12-font-size);line-height:20px;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere}
|
|
178
|
+
.cwn-account-row{display:flex;align-items:center;gap:12px;min-height:56px}.cwn-account-summary{display:flex;align-items:center;flex:1;min-width:0;min-height:52px;margin:0;color:var(--dsw-alias-label-secondary)}
|
|
179
|
+
.cwn-account-status-line{display:flex;align-items:center;min-width:0;gap:8px;min-height:24px;font-size:var(--dsw-font-s-14-font-size);line-height:22px}.cwn-account-login{display:inline-flex;align-items:center;gap:6px;min-width:0}.cwn-account-login:not([data-state=failed]){flex-shrink:0;white-space:nowrap}.cwn-account-login[data-state=connected]{color:var(--dsw-alias-state-success-primary)}.cwn-account-login[data-state=failed]{color:var(--dsw-alias-state-error-primary)}.cwn-account-login[data-state=disabled]{color:var(--dsw-alias-label-caption)}.cwn-account-status-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--dsw-alias-label-caption)}.cwn-account-status-dot[data-state=connected]{background:var(--dsw-alias-state-success-primary)}.cwn-account-status-dot[data-state=failed]{background:var(--dsw-alias-state-error-primary)}.cwn-account-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-secondary)}
|
|
180
|
+
.cwn-settings-notice{min-height:20px;max-height:56px;overflow:auto;margin:8px 0 0}.cwn-settings-notice:empty{min-height:0;height:0;margin:0}
|
|
181
|
+
.cwn-settings-form .cwn-setting-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:24px;padding:16px 0;border-bottom:.5px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary)}.cwn-setting-row-text{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;font-size:var(--dsw-font-s-14-font-size);line-height:22px}.cwn-setting-description{font-size:var(--dsw-font-xxs-12-font-size);line-height:18px;color:var(--dsw-alias-label-tertiary)}.cwn-settings-save{margin-top:16px;justify-content:flex-end}
|
|
182
|
+
.cwn-settings-feedback-slot{min-height:20px;font-size:12px;line-height:20px;color:var(--dsw-alias-label-tertiary)}
|
|
183
|
+
.cwn-account-summary[data-provider-logins=true] .cwn-account-status-line{width:100%}.cwn-account-summary[data-provider-logins=true] .cwn-account-login{flex-shrink:1}.cwn-account-logins{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
184
|
+
.cwn-settings-feedback,.cwn-settings-save,.cwn-account-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
|
|
185
|
+
.cwn-account-actions{min-height:36px;flex-shrink:0;justify-content:flex-end;gap:8px}.cwn-account-actions button{background:transparent}.cwn-account-logout{flex-shrink:0;gap:5px!important;padding:0 8px!important;color:var(--dsw-alias-state-error-primary)!important}.cwn-account-logout:hover:not(:disabled){background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 9%,transparent)!important}.cwn-refresh{width:36px!important;padding:0!important}.cwn-account-login-action,.cwn-account-manage{padding:0 10px!important}
|
|
186
|
+
.cwn-local-loading,.cwn-loading{display:flex;align-items:center;gap:8px;color:var(--dsw-alias-label-tertiary);font-size:var(--dsw-font-xxs-12-font-size);line-height:20px}
|
|
187
|
+
/* Native md Button owns the 36px height; native Switch keeps its own 36x20px geometry. */
|
|
188
|
+
.cwn-settings-choice-menu button{border:0;box-shadow:none;--dsw-elevation-stroke-color:transparent}.cwn-settings-layout button:not([role=switch]),.cwn-settings-choice-menu button{transition:background-color 180ms ease,color 180ms ease,opacity 180ms ease}
|
|
189
|
+
.cwn-account-actions button:hover:not(:disabled),.cwn-settings-section-head button:hover:not(:disabled),.cwn-settings-nav button:hover:not(:disabled),.cwn-account-terminal-head button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}
|
|
190
|
+
.cwn-settings-nav button[aria-pressed=true]:hover,.cwn-settings-choice>button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-active)}
|
|
191
|
+
.cwn-settings-layout button:not([role=switch]):disabled{pointer-events:auto}
|
|
192
|
+
.cwn-settings-layout button:not([role=switch]):disabled:hover{background:var(--dsw-alias-interactive-bg-active);color:var(--dsw-alias-label-secondary)}
|
|
193
|
+
.cwn-settings-layout button:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}
|
|
194
|
+
.cwn-account-terminal{margin-top:16px;padding:12px;border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-layer-2);border:.5px solid var(--dsw-alias-border-l2);min-width:0}
|
|
195
|
+
.cwn-account-terminal-head{margin-bottom:8px}.cwn-account-terminal-head strong{font-size:12px;font-weight:500}.cwn-account-terminal-view{height:300px;min-height:200px;margin:12px 0;overflow:hidden}.cwn-account-terminal-view .xterm{height:100%}.cwn-account-terminal-view .xterm-viewport{background-color:var(--dsw-alias-bg-layer-2)!important}.cwn-account-terminal-view .xterm-helper-textarea{resize:none!important;min-height:0!important;max-height:0!important}
|
|
196
|
+
.cwn-native-model-settings>p{margin:0 0 16px;color:var(--dsw-alias-label-secondary);font-size:var(--cwn-font-sm);line-height:1.6}.cwn-account-dialog{width:min(720px,90vw);max-width:90vw}.cwn-account-dialog-content{min-height:0;overflow:auto}.cwn-account-dialog .cwn-account-terminal{margin:0;padding:0;border:0;background:transparent}.cwn-account-dialog .cwn-account-terminal-view{height:300px;max-height:48vh}.cwn-account-dialog .cwn-account-terminal button{border:0!important;transition:background-color 180ms ease,color 180ms ease}.cwn-account-dialog .cwn-account-terminal button:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-active)}
|
|
197
|
+
/* OMP onboarding needs room for its native header and provider list. Small screens scroll the modal body. */
|
|
198
|
+
.cwn-account-dialog .cwn-account-terminal[data-cli="omp"] .cwn-account-terminal-view{height:520px;max-height:none}
|
|
199
|
+
@media(max-width:640px){.cwn-account-row{flex-wrap:wrap}.cwn-account-actions{margin-left:auto}.cwn-settings-content{overflow:auto}.cwn-settings-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:16px}.cwn-settings-nav{max-height:190px}.cwn-settings-cli-group-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.cwn-settings-nav button{min-width:0}.cwn-settings-pane{overflow:auto}.cwn-settings-form .cwn-setting-row{gap:12px}.cwn-setting-description{max-width:180px}.cwn-account-terminal-view{height:240px}}
|
|
200
|
+
@media(prefers-reduced-motion:reduce){.cwn-settings-layout button,.cwn-settings-choice-menu button,.cwn-settings-nav-chevron,.cwn-settings-cli-group{transition:none}}
|
|
201
|
+
`;
|
|
202
|
+
export const rolePresetStyles = `
|
|
203
|
+
.cwn-roles-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 20px}
|
|
204
|
+
.cwn-roles-heading h2{margin:0;font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.02em}
|
|
205
|
+
.cwn-roles-heading p{margin:8px 0 0;color:var(--dsw-alias-label-tertiary);font-size:var(--dsw-font-s-14-font-size);line-height:22px}
|
|
206
|
+
.cwn-roles-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px}.cwn-roles-toolbar>span{flex:1;min-width:0}.cwn-roles-toolbar>button{flex-shrink:0}
|
|
207
|
+
.cwn-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:160px;align-content:start}
|
|
208
|
+
.cwn-role-card{min-width:0;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xl);overflow:hidden;background:var(--dsw-alias-bg-layer-2)}
|
|
209
|
+
.cwn-role-card>button{display:flex;flex-direction:column;gap:7px;width:100%;height:100%;min-height:104px;padding:16px;text-align:left;background:transparent;color:inherit;font:inherit;border:0;cursor:pointer}
|
|
210
|
+
.cwn-role-card>button:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
211
|
+
.cwn-role-card-heading{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;min-width:0}.cwn-role-card-heading strong{font-size:var(--dsw-font-s-14-font-size);font-weight:500;overflow-wrap:anywhere}.cwn-role-card-heading svg{width:12px;height:12px;color:var(--dsw-alias-label-tertiary);flex-shrink:0;transform:rotate(90deg)}
|
|
212
|
+
.cwn-role-card-summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:var(--dsw-font-xxs-12-font-size);line-height:20px;color:var(--dsw-alias-label-tertiary)}
|
|
213
|
+
.cwn-role-editor{display:flex;flex-direction:column;gap:16px}.cwn-role-back{align-self:flex-start}.cwn-role-editor label{display:flex;flex-direction:column;gap:8px;min-width:0}.cwn-role-editor textarea{display:block;width:100%;min-height:240px;resize:vertical;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);padding:12px;font:inherit;line-height:1.65;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary)}
|
|
214
|
+
.cwn-role-editor textarea:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}
|
|
215
|
+
.cwn-role-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.cwn-role-editor-actions>.cwn-role-delete{margin-right:auto}.cwn-role-delete{background:var(--dsw-alias-state-error-primary)!important;color:#fff!important}.cwn-role-delete:hover:not(:disabled){background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 88%,#000)!important}.cwn-role-delete-confirm>button+button{margin-left:8px}
|
|
216
|
+
.cwn-role-delete-confirm{padding:12px;border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover)}.cwn-role-delete-confirm p{margin:0 0 8px;font-size:var(--dsw-font-xxs-12-font-size)}
|
|
217
|
+
.cwn-role-feedback{min-height:22px;margin-top:12px;font-size:var(--dsw-font-xxs-12-font-size);line-height:20px;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere}.cwn-role-feedback[role=alert]{color:var(--dsw-alias-state-error-primary)}.cwn-role-empty{color:var(--dsw-alias-label-tertiary);font-size:var(--dsw-font-s-14-font-size)}
|
|
218
|
+
.cwn-rename-dialog{width:min(420px,90vw);max-width:90vw}.cwn-rename-form>p{font-size:var(--dsw-font-xxs-12-font-size);color:var(--dsw-alias-label-tertiary);line-height:20px}
|
|
219
|
+
@media(max-width:700px){.cwn-role-grid{grid-template-columns:1fr}.cwn-roles-toolbar{flex-wrap:wrap}.cwn-roles-toolbar>span{flex-basis:100%}}
|
|
220
|
+
`;
|
|
221
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/client/styles.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0EAA0E;AAC1E,qEAAqE;AACrE,kFAAkF;AAClF,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBrB,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC/B,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;CAmBhC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;CAW9B,CAAA;AAED,4EAA4E;AAC5E,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;CAatC,CAAA;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;CAWlC,CAAA;AAED,2EAA2E;AAC3E,+EAA+E;AAC/E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;;;;;;;CAU5C,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6D7B,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;CAkB/B,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Telemetry, type TokenUsage } from '../shared/telemetry.ts';
|
|
2
|
+
import type { Worker } from '../shared/types.ts';
|
|
3
|
+
export declare function UsageIndicator({ usage, reply }: {
|
|
4
|
+
usage?: TokenUsage;
|
|
5
|
+
reply?: boolean;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function ComposerTelemetry({ worker, telemetry, statusLabel, }: {
|
|
8
|
+
worker: Worker;
|
|
9
|
+
telemetry?: Telemetry;
|
|
10
|
+
statusLabel: string;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { IconDatabaseOutlineRegular } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
3
|
+
import { compactTokens } from "../shared/telemetry.js";
|
|
4
|
+
import { StatPopover } from "./stat-popover.js";
|
|
5
|
+
export function UsageIndicator({ usage, reply = false }) {
|
|
6
|
+
const scope = {
|
|
7
|
+
response: '本次回复',
|
|
8
|
+
run: '本轮任务',
|
|
9
|
+
session: 'CLI 会话累计',
|
|
10
|
+
reported: 'CLI 报告值(不跨轮重复相加)',
|
|
11
|
+
};
|
|
12
|
+
const total = usage ? `${compactTokens(usage.total)} tok` : '— tok';
|
|
13
|
+
return (_jsxs(StatPopover, { label: reply ? `用量 ${total}` : total, className: `cwn-stat cwn-usage${reply ? ' cwn-reply-usage' : ''}`, trigger: _jsxs(_Fragment, { children: [_jsx(IconDatabaseOutlineRegular, { size: 14 }), _jsxs("span", { children: [reply ? '用量 ' : '', total] })] }), children: [_jsxs("div", { className: "cwn-stat-title", children: [_jsxs("span", { children: [_jsx(IconDatabaseOutlineRegular, { size: 14 }), "Token \u7528\u91CF"] }), _jsx("span", { children: usage ? `${usage.total.toLocaleString('en-US')} tok` : '—' })] }), _jsx("div", { className: "cwn-stat-rule" }), usage ? (_jsxs("dl", { className: "cwn-stat-details", children: [_jsx("dt", { children: "\u7EDF\u8BA1\u8303\u56F4" }), _jsx("dd", { children: scope[usage.scope] }), usage.input !== undefined && (_jsxs(_Fragment, { children: [_jsx("dt", { children: "\u8F93\u5165" }), _jsxs("dd", { children: [usage.input.toLocaleString('en-US'), " tok"] })] })), usage.cacheRead !== undefined && (_jsxs(_Fragment, { children: [_jsx("dt", { children: "\u7F13\u5B58\u8BFB\u53D6" }), _jsxs("dd", { children: [usage.cacheRead.toLocaleString('en-US'), " tok"] })] })), usage.output !== undefined && (_jsxs(_Fragment, { children: [_jsx("dt", { children: "\u8F93\u51FA" }), _jsxs("dd", { children: [usage.output.toLocaleString('en-US'), " tok"] })] }))] })) : (_jsx("p", { children: "CLI \u5C1A\u672A\u63D0\u4F9B\u53EF\u6838\u9A8C\u7684\u7528\u91CF\u3002" }))] }));
|
|
14
|
+
}
|
|
15
|
+
export function ComposerTelemetry({ worker, telemetry, statusLabel, }) {
|
|
16
|
+
const used = telemetry?.contextUsed, capacity = telemetry?.contextCapacity;
|
|
17
|
+
const percent = used !== undefined && capacity !== undefined && capacity > 0
|
|
18
|
+
? Math.min(100, Math.round((used / capacity) * 100))
|
|
19
|
+
: undefined;
|
|
20
|
+
const label = percent === undefined ? '上下文占用暂不可用' : `上下文已用 ${percent}%`;
|
|
21
|
+
return (_jsxs("div", { className: "cwn-compose-state cwn-telemetry", children: [_jsxs("span", { className: "cwn-stat cwn-run-stat", children: [_jsx("span", { className: `cwn-dot ${worker.status}` }), _jsx("span", { children: statusLabel })] }), _jsx(UsageIndicator, { usage: telemetry?.usage }), _jsxs(StatPopover, { label: label, tooltip: label, context: true, className: "cwn-stat cwn-context", trigger: _jsxs(_Fragment, { children: [_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 14 14", "aria-hidden": "true", children: [_jsx("circle", { cx: "7", cy: "7", r: "5.5", className: "cwn-context-track" }), percent !== undefined && (_jsx("circle", { cx: "7", cy: "7", r: "5.5", className: "cwn-context-fill", strokeDasharray: `${(percent * Math.PI * 11) / 100} ${Math.PI * 11}`, transform: "rotate(-90 7 7)" }))] }), _jsx("span", { children: percent === undefined ? '—' : `${percent}%` })] }), children: [_jsxs("div", { className: "cwn-context-header", children: [_jsx("span", { children: label }), used !== undefined && capacity !== undefined && (_jsxs("strong", { children: [telemetry?.contextEstimated ? '~' : '', compactTokens(used), " / ", compactTokens(capacity)] }))] }), percent !== undefined && (_jsx("div", { className: "cwn-context-bar", children: _jsx("span", { style: { width: `${percent}%` } }) })), _jsx("p", { className: "cwn-context-source", children: telemetry?.contextSource ??
|
|
22
|
+
(percent === undefined ? 'CLI 尚未提供上下文占用与容量。' : 'CLI 报告的上下文占用') }), used !== undefined && capacity !== undefined && (_jsxs("dl", { className: "cwn-stat-details", children: [_jsx("dt", { children: telemetry?.contextEstimated ? '估算占用' : '已用' }), _jsxs("dd", { children: [used.toLocaleString('en-US'), " tok"] }), _jsx("dt", { children: "\u4E0A\u4E0B\u6587\u5BB9\u91CF" }), _jsxs("dd", { children: [capacity.toLocaleString('en-US'), " tok"] })] }))] })] }));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/client/telemetry.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Worker } from '../shared/types.ts';
|
|
2
|
+
export type WorkerManagementAction = 'title' | 'name' | 'delete';
|
|
3
|
+
export declare function WorkerCard({ worker, collapsed, unavailable, busy, onOpen, onManage, }: {
|
|
4
|
+
worker: Worker;
|
|
5
|
+
collapsed: boolean;
|
|
6
|
+
unavailable: boolean;
|
|
7
|
+
busy: boolean;
|
|
8
|
+
onOpen: () => void;
|
|
9
|
+
onManage: (action: WorkerManagementAction) => void;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { Menu } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
|
+
import { active, effortLabel, workerName } from "../shared/types.js";
|
|
5
|
+
import { displayModelName } from "../shared/model-presentation.js";
|
|
6
|
+
import { Glyph } from "./icons.js";
|
|
7
|
+
import { NameCopy } from "./name-copy.js";
|
|
8
|
+
const status = {
|
|
9
|
+
queued: '排队中',
|
|
10
|
+
running: '运行中',
|
|
11
|
+
stopping: '正在停止',
|
|
12
|
+
completed: '已完成',
|
|
13
|
+
failed: '失败',
|
|
14
|
+
interrupted: '已中断',
|
|
15
|
+
};
|
|
16
|
+
export function WorkerCard({ worker, collapsed, unavailable, busy, onOpen, onManage, }) {
|
|
17
|
+
const [menu, setMenu] = useState(false);
|
|
18
|
+
const point = useRef();
|
|
19
|
+
const card = useRef(null);
|
|
20
|
+
const openButton = useRef(null);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (collapsed)
|
|
23
|
+
setMenu(false);
|
|
24
|
+
}, [collapsed]);
|
|
25
|
+
const locked = collapsed || unavailable || busy;
|
|
26
|
+
const openMenu = (x, y) => {
|
|
27
|
+
if (collapsed)
|
|
28
|
+
return;
|
|
29
|
+
point.current = x === undefined || y === undefined ? undefined : { x, y };
|
|
30
|
+
setMenu(true);
|
|
31
|
+
};
|
|
32
|
+
const entries = [
|
|
33
|
+
{ id: 'open', label: '打开对话', disabled: collapsed },
|
|
34
|
+
{ id: 'title', label: '修改聊天标题', disabled: locked },
|
|
35
|
+
{ id: 'name', label: '修改智能体名称', disabled: locked },
|
|
36
|
+
{ type: 'separator', id: 'separator' },
|
|
37
|
+
{ id: 'delete', label: '删除', disabled: locked || active(worker.status), danger: true },
|
|
38
|
+
];
|
|
39
|
+
return (_jsx("div", { ref: card, className: "cwn-worker", "data-worker-id": worker.id, onClick: (event) => {
|
|
40
|
+
// The native menu portal still bubbles through this React owner. Only
|
|
41
|
+
// bare card/text areas open; every actual button owns its own action.
|
|
42
|
+
if (event.target.closest?.('button,[role="menu"]'))
|
|
43
|
+
return;
|
|
44
|
+
if (!collapsed)
|
|
45
|
+
onOpen();
|
|
46
|
+
}, onContextMenu: (event) => {
|
|
47
|
+
if (collapsed)
|
|
48
|
+
return;
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
event.stopPropagation();
|
|
51
|
+
openMenu(event.clientX, event.clientY);
|
|
52
|
+
}, children: _jsx(Menu, { open: menu, portal: true, autoFocus: true, className: "cwn-worker-menu-anchor", listClassName: "cwn-worker-menu", getAnchorRect: () => {
|
|
53
|
+
if (point.current)
|
|
54
|
+
return new DOMRect(point.current.x, point.current.y, 0, 0);
|
|
55
|
+
return card.current?.getBoundingClientRect() ?? openButton.current?.getBoundingClientRect() ?? null;
|
|
56
|
+
}, onClose: () => setMenu(false), items: entries, onSelect: (id) => {
|
|
57
|
+
setMenu(false);
|
|
58
|
+
if (id === 'open')
|
|
59
|
+
onOpen();
|
|
60
|
+
else if (id === 'title' || id === 'name' || id === 'delete')
|
|
61
|
+
onManage(id);
|
|
62
|
+
}, anchor: _jsxs("div", { className: "cwn-worker-layout", children: [_jsx("button", { ref: openButton, type: "button", className: "cwn-worker-open", "data-open-worker-id": worker.id, "aria-haspopup": "menu", "aria-expanded": menu, "aria-keyshortcuts": "Shift+F10", tabIndex: collapsed ? -1 : undefined, onClick: () => {
|
|
63
|
+
if (!collapsed)
|
|
64
|
+
onOpen();
|
|
65
|
+
}, onKeyDown: (event) => {
|
|
66
|
+
if (event.key === 'ContextMenu' || (event.key === 'F10' && event.shiftKey)) {
|
|
67
|
+
if (collapsed)
|
|
68
|
+
return;
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
event.stopPropagation();
|
|
71
|
+
openMenu();
|
|
72
|
+
}
|
|
73
|
+
}, children: _jsxs("span", { className: "cwn-worker-line", children: [_jsx("span", { className: "cwn-worker-title", children: worker.title }), _jsxs("span", { className: `cwn-worker-status ${worker.status}`, children: [_jsx("span", { className: `cwn-dot ${worker.status}` }), status[worker.status]] })] }) }), _jsxs("div", { className: "cwn-worker-meta", children: [_jsx(NameCopy, { name: workerName(worker), disabled: collapsed }), _jsx("span", { className: "cwn-meta-divider cwn-name-divider", "aria-hidden": "true" }), _jsx("span", { className: "cwn-worker-model", title: displayModelName(worker.preference), children: displayModelName(worker.preference) }), _jsx("span", { className: "cwn-meta-divider", "aria-hidden": "true", children: "\u00B7" }), _jsx("span", { children: effortLabel(worker.preference.effort) })] }), _jsx("span", { className: "cwn-worker-chevron", "aria-hidden": "true", children: _jsx(Glyph, { name: "chevron" }) })] }) }) }));
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=worker-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-card.js","sourceRoot":"","sources":["../../../src/client/worker-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Worker } from '../shared/types.ts';
|
|
2
|
+
import { type API } from './workers.ts';
|
|
3
|
+
/** Native menu primitive with the same model / effort drill-in flow as Harness ModelSelect. */
|
|
4
|
+
export declare function WorkerModelMenu({ worker, api, sessionId, disabled, }: {
|
|
5
|
+
worker: Worker;
|
|
6
|
+
api: API;
|
|
7
|
+
sessionId: string;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|