dsh-web-annotator 0.2.0-alpha.11 → 0.2.0-alpha.12
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/CHANGELOG.md +13 -0
- package/docs/distribution.md +9 -9
- package/docs/marketplace/cslkkl__dsh-web-annotator.yml +1 -1
- package/docs/publishing.md +54 -14
- package/lib/host/browser-provider/lib/client.css +1 -1
- package/lib/host/browser-provider/lib/client.css.map +1 -1
- package/lib/host/browser-provider/lib/client.js +28 -28
- package/lib/host/browser-provider/lib/client.js.map +1 -1
- package/lib/host/browser-provider/lib/index.js +1 -1
- package/lib/host/browser-provider/lib/index.js.map +1 -1
- package/lib/host/bundle.json +19 -19
- package/lib/host/chat-provider/lib/client.css +18 -18
- package/lib/host/chat-provider/lib/client.css.map +1 -1
- package/lib/host/chat-provider/lib/client.js +137 -137
- package/lib/host/chat-provider/lib/client.js.map +1 -1
- package/lib/host/chat-provider/lib/index.js +4 -4
- package/lib/host/chat-provider/lib/index.js.map +1 -1
- package/lib/host/layout-provider/lib/client.css +1 -1
- package/lib/host/layout-provider/lib/client.css.map +1 -1
- package/lib/host/layout-provider/lib/client.js +12 -12
- package/lib/host/layout-provider/lib/client.js.map +1 -1
- package/lib/host/layout-provider/lib/index.js +1 -1
- package/lib/host/layout-provider/lib/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
window.__ModuleLoader__.load({ id: '@deepseek-ai/dsh-client-ui-chat', factory: function(require) { var module = { exports: {} }; var exports = module.exports;
|
|
2
|
-
const cssDispose = () => { const style = document.createElement('style'); style.textContent = "/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/MessageItem.module.css */\n.MessageItem_userRow {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 6px;\n}\n.MessageItem_userStack {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 8px;\n min-width: 0;\n max-width: min(calc(var(--dsh-chat-content-width, 748px) * 0.702), 82%);\n}\n.MessageItem_bubble {\n max-width: 100%;\n background: var(--dsw-specific-bubble);\n border-radius: var(--dsw-radius-xl);\n padding: 10px 16px;\n font-size: var(--dsh-content-font-size, 14px);\n line-height: calc(22px + var(--dsh-content-font-delta, 0px));\n color: var(--dsw-alias-label-primary);\n white-space: pre-wrap;\n word-break: break-word;\n}\n.MessageItem_referenceSummary {\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(18px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.MessageItem_contextRow {\n padding: 2px 0;\n}\n.MessageItem_compactionRow {\n --dsh-compaction-header-height: calc(24px + var(--dsh-content-font-delta, 0px));\n padding: 2px 0;\n}\n.MessageItem_compactionButton {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--dsh-compaction-header-height);\n min-width: 0;\n padding: 0;\n border: none;\n border-radius: var(--dsw-radius-sm);\n background: none;\n color: var(--dsw-alias-label-tertiary);\n transition: color 100ms ease;\n font: inherit;\n text-align: left;\n}\n.MessageItem_compactionRow:has(.MessageItem_compactionBody) .MessageItem_compactionButton {\n position: sticky;\n top: 0;\n z-index: 7;\n border-radius: 0;\n background: var(--dsw-alias-bg-base);\n}\n.MessageItem_compactionBody :has(> [data-code-block-banner]) {\n top: var(--dsh-compaction-header-height);\n}\n.MessageItem_compactionRow:has(.MessageItem_compactionBody) .MessageItem_compactionButton:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n}\n.MessageItem_compactionButton:not(:disabled) {\n cursor: pointer;\n}\n.MessageItem_compactionButton:hover {\n color: var(--dsw-alias-label-secondary);\n}\n.MessageItem_compactionButton:not(:disabled):hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n.MessageItem_compactionLeading {\n flex: none;\n display: inline-grid;\n place-items: center;\n width: calc(16px + var(--dsh-content-font-delta, 0px));\n height: calc(16px + var(--dsh-content-font-delta, 0px));\n margin-right: 6px;\n color: inherit;\n}\n.MessageItem_compactionLeading svg {\n width: calc(14px + var(--dsh-content-font-delta, 0px));\n height: calc(14px + var(--dsh-content-font-delta, 0px));\n}\n.MessageItem_compactionContextIcon,\n.MessageItem_compactionDisclosureIcon {\n display: inline-flex;\n grid-area: 1 / 1;\n align-items: center;\n justify-content: center;\n}\n.MessageItem_compactionDisclosureIcon {\n opacity: 0;\n}\n.MessageItem_compactionButton:not(:disabled):hover .MessageItem_compactionContextIcon,\n.MessageItem_compactionButton:not(:disabled):focus-visible .MessageItem_compactionContextIcon {\n opacity: 0;\n}\n.MessageItem_compactionButton:not(:disabled):hover .MessageItem_compactionDisclosureIcon,\n.MessageItem_compactionButton:not(:disabled):focus-visible .MessageItem_compactionDisclosureIcon {\n opacity: 1;\n}\n.MessageItem_compactionTitle {\n flex: none;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n color: inherit;\n}\n.MessageItem_compactionSep {\n flex: none;\n width: 2px;\n height: 2px;\n margin: 0 8px;\n border-radius: 1px;\n background: var(--dsw-alias-label-caption);\n}\n.MessageItem_compactionSummary {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n color: inherit;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.MessageItem_compactionBody {\n padding: 4px 0 4px calc(22px + var(--dsh-content-font-delta, 0px));\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n}\n.MessageItem_retryRow {\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(20px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.MessageItem_retrySummary {\n display: inline-flex;\n align-items: center;\n width: fit-content;\n max-width: 100%;\n padding: 2px 0;\n gap: 7px;\n border-radius: var(--dsw-radius-sm);\n color: inherit;\n cursor: pointer;\n list-style: none;\n user-select: none;\n}\n.MessageItem_retrySummary::-webkit-details-marker {\n display: none;\n}\n.MessageItem_retrySummary::after {\n flex: none;\n width: 6px;\n height: 6px;\n margin-right: 2px;\n border-right: 1.5px solid currentcolor;\n border-bottom: 1.5px solid currentcolor;\n content: \"\";\n transform: rotate(-45deg);\n transition: transform 120ms ease;\n}\n.MessageItem_retrySummary:hover {\n color: var(--dsw-alias-label-secondary);\n}\n@media (prefers-reduced-motion: reduce) {\n .MessageItem_compactionButton {\n transition: none;\n }\n}\n.MessageItem_retrySummary:focus-visible {\n outline: 1.5px solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.MessageItem_retryText {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n.MessageItem_retryRow[open] .MessageItem_retrySummary::after {\n transform: rotate(45deg);\n}\n.MessageItem_retryDetails {\n display: grid;\n gap: 2px;\n margin-top: 3px;\n padding-left: 14px;\n overflow-wrap: anywhere;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(18px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.MessageItem_retryDetailLabel {\n color: var(--dsw-alias-label-secondary);\n}\n.MessageItem_turnErrorRow {\n display: grid;\n grid-template-columns: 10px minmax(0, 1fr) auto;\n gap: 8px;\n align-items: start;\n padding: 2px 0;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(20px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.MessageItem_turnErrorDot {\n margin-top: 5px;\n}\n.MessageItem_turnErrorCopy {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n.MessageItem_turnErrorTitle {\n margin-right: 6px;\n color: var(--dsw-alias-state-error-primary);\n font-weight: 600;\n}\n.MessageItem_turnErrorMessage {\n color: var(--dsw-alias-label-secondary);\n}\n.MessageItem_turnErrorCode {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-markdown-code-block-small);\n}\n.MessageItem_maxTokensTitle {\n margin-right: 6px;\n color: var(--dsw-alias-state-warn-primary);\n font-weight: 600;\n}\n.MessageItem_attachmentRow {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n max-width: 100%;\n gap: 8px;\n}\n.MessageItem_fileCard {\n display: inline-flex;\n flex: 0 0 240px;\n align-items: center;\n gap: 10px;\n width: 240px;\n min-height: 64px;\n padding: 8px 12px;\n border: 0.5px solid var(--dsw-alias-border-l2, rgba(0, 0, 0, 0.12));\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-specific-input-major, transparent);\n box-sizing: border-box;\n}\n.MessageItem_fileIcon {\n flex: none;\n width: 28px;\n height: 28px;\n}\n.MessageItem_fileContent {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n}\n.MessageItem_fileName {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dsw-alias-label-primary);\n font-size: 14px;\n font-weight: 500;\n line-height: 22px;\n}\n.MessageItem_fileMeta {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dsw-alias-label-tertiary, rgba(0, 0, 0, 0.45));\n font-size: 12px;\n line-height: 15px;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/ContextBody.module.css */\n.ContextBody_text {\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n.ContextBody_fields {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin: 8px 0 0;\n padding-top: 8px;\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.ContextBody_field {\n display: flex;\n gap: 8px;\n min-width: 0;\n}\n.ContextBody_fieldKey {\n flex: none;\n min-width: 96px;\n color: var(--dsw-alias-label-caption);\n}\n.ContextBody_fieldValue {\n flex: 1 1 auto;\n min-width: 0;\n margin: 0;\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n.ContextBody_files {\n display: flex;\n flex-wrap: wrap;\n gap: 4px 12px;\n margin: 0 0 8px;\n padding: 0;\n list-style: none;\n}\n.ContextBody_file {\n display: flex;\n align-items: baseline;\n gap: 6px;\n min-width: 0;\n}\n.ContextBody_filePath {\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.ContextBody_fileAction {\n color: var(--dsw-alias-label-caption);\n}\n.ContextBody_catalogNotice {\n margin: 0 0 6px;\n color: var(--dsw-alias-label-caption);\n}\n.ContextBody_entries {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ContextBody_entry {\n display: flex;\n gap: 8px;\n min-width: 0;\n}\n.ContextBody_entryName {\n flex: none;\n color: var(--dsw-alias-label-secondary);\n}\n.ContextBody_entryDescription {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ContextBody_sections {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin: 0;\n}\n.ContextBody_section {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n.ContextBody_sectionName {\n color: var(--dsw-alias-label-caption);\n}\n.ContextBody_sectionText {\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n.ContextBody_relaySender {\n margin: 0 0 6px;\n color: var(--dsw-alias-label-caption);\n overflow-wrap: anywhere;\n}\n.ContextBody_recalls {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin: 0 0 8px;\n padding: 0;\n list-style: none;\n}\n.ContextBody_recall {\n display: flex;\n gap: 8px;\n min-width: 0;\n}\n.ContextBody_recallLabel {\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.ContextBody_recallCounts {\n flex: none;\n color: var(--dsw-alias-label-caption);\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/ContextInjectionRow.module.css */\n.ContextInjectionRow_root {\n min-width: 0;\n}\n.ContextInjectionRow_root[data-open] {\n padding-bottom: 4px;\n}\n.ContextInjectionRow_chevron {\n color: var(--dsw-alias-label-secondary);\n}\n.ContextInjectionRow_sep {\n flex: none;\n width: 2px;\n height: 2px;\n margin: 0 8px;\n border-radius: 1px;\n background: var(--dsw-alias-label-caption);\n}\n.ContextInjectionRow_source {\n flex: none;\n min-width: 0;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ContextInjectionRow_summary {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ContextInjectionRow_body {\n box-sizing: border-box;\n width: calc(100% - 22px - var(--dsh-content-font-delta, 0px));\n max-height: 141px;\n margin: 4px 0 0 calc(22px + var(--dsh-content-font-delta, 0px));\n overflow: auto;\n padding: 10px 16px 12px 12px;\n border: none;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-markdown-code-block);\n color: var(--dsw-alias-label-tertiary);\n font: 400 11px/16px var(--ds-font-family-code);\n}\n.ContextInjectionRow_toolChanges {\n white-space: nowrap;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/MessageIconActions.module.css */\n.MessageIconActions_actions {\n display: flex;\n align-items: center;\n gap: 8px;\n height: calc(28px + var(--dsh-content-font-delta, 0px));\n}\n.MessageIconActions_timeStart {\n padding-right: 12px;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n.MessageIconActions_timeEnd {\n font-size: calc(var(--dsh-content-font-size-secondary, 13px) - 1px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n color: inherit;\n white-space: nowrap;\n}\n.MessageIconActions_endInfo {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n margin-left: 8px;\n color: var(--dsw-alias-label-tertiary);\n}\n@media (hover: hover) {\n [data-actions-reveal=hover] .MessageIconActions_actions,\n :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering]):has(~ :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering])) .MessageIconActions_actions {\n opacity: 0;\n transition: opacity 80ms ease;\n }\n [data-actions-reveal=hover]:hover .MessageIconActions_actions,\n [data-actions-reveal=hover]:focus-within .MessageIconActions_actions,\n :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering]):has(~ :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering])):hover .MessageIconActions_actions,\n :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering]):has(~ :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering])):focus-within .MessageIconActions_actions {\n opacity: 1;\n }\n}\n.MessageIconActions_action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: calc(28px + var(--dsh-content-font-delta, 0px));\n height: calc(28px + var(--dsh-content-font-delta, 0px));\n padding: 6px;\n border: none;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n.MessageIconActions_action svg {\n width: calc(15px + var(--dsh-content-font-delta, 0px));\n height: calc(15px + var(--dsh-content-font-delta, 0px));\n}\n.MessageIconActions_actions[data-clock=end] .MessageIconActions_action svg {\n width: calc(17px + var(--dsh-content-font-delta, 0px));\n height: calc(17px + var(--dsh-content-font-delta, 0px));\n}\n.MessageIconActions_action:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n.MessageIconActions_action[data-unavailable] {\n cursor: default;\n opacity: 0.4;\n}\n.MessageIconActions_action[data-unavailable]:hover {\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n}\n.MessageIconActions_visuallyHidden {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/ChatView.module.css */\n.ChatView_frame {\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 auto;\n container-type: inline-size;\n}\n.ChatView_root {\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 auto;\n overflow-x: visible;\n overflow-y: clip;\n}\n.ChatView_scroll {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: 16px calc(var(--dsh-composer-side-clearance) + 16px);\n container-type: inline-size;\n}\n.ChatView_root[data-chat-following-tail] .ChatView_scroll,\n[data-conversation-scroll]:has(.ChatView_root[data-chat-following-tail]) {\n overflow-anchor: none;\n}\n[data-conversation-scroll] .ChatView_frame,\n[data-conversation-scroll] .ChatView_root {\n flex: 0 0 auto;\n min-height: auto;\n height: auto;\n}\n[data-conversation-scroll] .ChatView_scroll {\n overflow: visible;\n flex: 0 0 auto;\n min-height: auto;\n}\n.ChatView_column {\n max-width: var(--dsh-chat-content-width);\n width: 100%;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n}\n.ChatView_column > :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty))) ~ :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty))) {\n margin-top: var(--dsh-chat-flow-gap, 6px);\n}\n.ChatView_flowItem[data-chat-group-part=response] {\n --dsh-chat-flow-gap: 12px;\n}\n.ChatView_column > [data-chat-group-part=response]:not([hidden]):not(:empty) + :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty))):not(.ChatView_running) {\n --dsh-chat-flow-gap: 12px;\n}\n.ChatView_flowItem {\n min-width: 0;\n}\n.ChatView_flowItem[data-chat-flow-kind=turn-process],\n.ChatView_flowItem[data-turn-process-answer],\n.ChatView_column > [data-chat-flow-kind=turn-process] + :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty))):not(.ChatView_running) {\n --dsh-chat-flow-gap: 16px;\n}\n.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty)) {\n height: 0;\n}\n.ChatView_callRow {\n border-radius: var(--dsw-radius-sm);\n}\n.ChatView_hint {\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(18px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.ChatView_running {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n --dsh-chat-flow-gap: 12px;\n --dsw-alias-label-shimmer: var(--dsw-alias-label-deep-diving-shimmer);\n color: var(--dsw-alias-label-deep-diving);\n font-size: calc(var(--dsh-content-font-size, 14px) - 2px);\n line-height: calc(22px + var(--dsh-content-font-delta, 0px));\n}\n.ChatView_column > :nth-last-child(2 of :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty)))):is(.ChatView_flowItem:not([data-chat-flow-kind=user]):not([data-chat-flow-kind=steering]):not([data-chat-flow-kind=turn-trigger]), [data-chat-group-key]) ~ .ChatView_running > .ChatView_runningDivider {\n display: block;\n}\n.ChatView_runningDivider {\n display: none;\n width: 100%;\n height: 0.5px;\n margin: 8px 0 10px;\n background: color-mix(in srgb, var(--dsw-alias-border-l1) 75%, var(--dsw-alias-border-l2));\n pointer-events: none;\n}\n.ChatView_runningContent {\n display: inline-flex;\n align-items: center;\n min-width: 0;\n gap: 6px;\n}\n.ChatView_runningText {\n min-width: 0;\n font-variant-numeric: tabular-nums;\n}\n.ChatView_runningIcon {\n position: relative;\n display: inline-flex;\n flex: none;\n width: calc(14px + var(--dsh-content-font-delta, 0px));\n height: calc(14px + var(--dsh-content-font-delta, 0px));\n contain: strict;\n overflow: hidden;\n}\n.ChatView_runningWhaleAnimated {\n display: none;\n position: absolute;\n inset: 0;\n}\n.ChatView_runningWhaleStill {\n display: initial;\n}\n@supports (mask-mode: alpha) and (mask-image: url()) {\n @media (prefers-reduced-motion: no-preference) and (forced-colors: none) {\n .ChatView_runningWhaleAnimated {\n display: block;\n background: currentColor;\n mask: url(data:image/png;base64,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) center / 100% 100% no-repeat;\n mask-mode: alpha;\n will-change: transform;\n }\n .ChatView_runningWhaleStill {\n display: none;\n }\n }\n}\n.ChatView_openError {\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(18px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.ChatView_older {\n display: flex;\n justify-content: center;\n}\n.ChatView_older button {\n border: none;\n border-radius: var(--dsw-radius-sm);\n padding: 4px 12px;\n font-size: 12px;\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n cursor: pointer;\n}\n.ChatView_older button:disabled {\n cursor: default;\n opacity: 0.6;\n}\n.ChatView_toBottomSlot {\n position: absolute;\n right: 0;\n bottom: 16px;\n left: 0;\n z-index: 8;\n height: 0;\n display: flex;\n justify-content: flex-end;\n padding-right: max(calc(var(--dsh-composer-side-clearance) + 16px), calc((100% - var(--dsh-chat-content-width)) / 2));\n pointer-events: none;\n}\n[data-conversation-scroll] .ChatView_toBottomSlot {\n position: sticky;\n bottom: calc(var(--dsh-composer-height, 152px) + 16px);\n}\n.ChatView_toBottom {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 34px;\n height: 34px;\n margin-top: -34px;\n padding: 0;\n border: 0;\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n border-radius: 100px;\n corner-shape: round;\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-button-floating-fill);\n box-shadow: var(--dsw-elevation-panel);\n cursor: pointer;\n pointer-events: auto;\n}\n.ChatView_toBottom:hover {\n background: var(--dsw-alias-button-floating-hover);\n}\n.ChatView_modalAction {\n min-width: 72px;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/ChatGroupSeat.module.css */\n.ChatGroupSeat_root {\n min-width: 0;\n}\n.ChatGroupSeat_title {\n display: flex;\n max-width: 100%;\n align-items: center;\n gap: 6px;\n padding: 0;\n border: 0;\n background: none;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--dsh-content-font-size, 14px);\n text-align: left;\n cursor: pointer;\n transition: color 100ms ease;\n}\n.ChatGroupSeat_title:hover {\n color: var(--dsw-alias-label-secondary);\n}\n.ChatGroupSeat_leading {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: calc(16px + var(--dsh-content-font-delta, 0px));\n height: calc(16px + var(--dsh-content-font-delta, 0px));\n color: inherit;\n}\n.ChatGroupSeat_leading svg {\n width: calc(14px + var(--dsh-content-font-delta, 0px));\n height: calc(14px + var(--dsh-content-font-delta, 0px));\n}\n.ChatGroupSeat_leading svg[width=\"16\"] {\n width: calc(16px + var(--dsh-content-font-delta, 0px));\n height: calc(16px + var(--dsh-content-font-delta, 0px));\n}\n.ChatGroupSeat_activityIcon,\n.ChatGroupSeat_chevron {\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: opacity 100ms ease;\n}\n.ChatGroupSeat_activityIcon {\n opacity: 1;\n}\n.ChatGroupSeat_chevron {\n opacity: 0;\n}\n.ChatGroupSeat_title:is(:hover, :focus-visible) .ChatGroupSeat_activityIcon {\n opacity: 0;\n}\n.ChatGroupSeat_title:is(:hover, :focus-visible) .ChatGroupSeat_chevron {\n opacity: 1;\n}\n.ChatGroupSeat_title[aria-expanded=true] .ChatGroupSeat_activityIcon {\n opacity: 0;\n}\n.ChatGroupSeat_title[aria-expanded=true] .ChatGroupSeat_chevron {\n opacity: 1;\n}\n.ChatGroupSeat_title[aria-expanded=true] {\n padding-bottom: 8px;\n}\n.ChatGroupSeat_body {\n --dsh-chat-flow-gap: 6px;\n max-height: min(400px, 50vh);\n overflow-y: auto;\n overscroll-behavior-y: auto;\n scrollbar-gutter: stable;\n}\n.ChatGroupSeat_label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ChatGroupSeat_fadeTop {\n mask-image:\n linear-gradient(\n to bottom,\n transparent 0,\n #000 24px,\n #000 100%);\n}\n.ChatGroupSeat_fadeBottom {\n mask-image:\n linear-gradient(\n to bottom,\n #000 0,\n #000 calc(100% - 24px),\n transparent 100%);\n}\n.ChatGroupSeat_fadeTop.ChatGroupSeat_fadeBottom {\n mask-image:\n linear-gradient(\n to bottom,\n transparent 0,\n #000 24px,\n #000 calc(100% - 24px),\n transparent 100%);\n}\n@media (prefers-reduced-motion: reduce) {\n .ChatGroupSeat_title,\n .ChatGroupSeat_activityIcon,\n .ChatGroupSeat_chevron {\n transition: none;\n }\n}\n.ChatGroupSeat_content {\n display: flex;\n flex-direction: column;\n}\n.ChatGroupSeat_content > * {\n flex-shrink: 0;\n}\n.ChatGroupSeat_content > :not([hidden]):not(:empty) ~ :not([hidden]):not(:empty) {\n margin-top: var(--dsh-chat-flow-gap, 6px);\n}\n.ChatGroupSeat_expandedBody {\n max-height: none;\n overflow: visible;\n scrollbar-gutter: auto;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/TurnNavigator.module.css */\n.TurnNavigator_slot {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 7;\n height: 0;\n padding-inline: calc(var(--dsh-composer-side-clearance) + 16px);\n container-type: inline-size;\n pointer-events: none;\n}\n[data-conversation-scroll] .TurnNavigator_slot {\n position: sticky;\n}\n.TurnNavigator_frame {\n --turn-rail-band: calc( var(--dsh-conversation-viewport-height, 100dvh) - var(--dsh-composer-height, 152px) );\n --turn-preview-height: 100px;\n position: absolute;\n top: calc(var(--turn-rail-band) / 2);\n right: 12px;\n width: 28px;\n max-height: min(max(0px, calc(var(--turn-rail-band) - 64px)), 420px);\n contain: layout;\n cursor: pointer;\n pointer-events: auto;\n transform: translateY(-50%);\n}\n.TurnNavigator_scroller {\n position: relative;\n max-height: inherit;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: none;\n}\n.TurnNavigator_scroller::-webkit-scrollbar {\n display: none;\n}\n.TurnNavigator_fadeTop {\n mask-image:\n linear-gradient(\n to bottom,\n transparent 0,\n #000 24px,\n #000 100%);\n}\n.TurnNavigator_fadeBottom {\n mask-image:\n linear-gradient(\n to bottom,\n #000 0,\n #000 calc(100% - 24px),\n transparent 100%);\n}\n.TurnNavigator_fadeTop.TurnNavigator_fadeBottom {\n mask-image:\n linear-gradient(\n to bottom,\n transparent 0,\n #000 24px,\n #000 calc(100% - 24px),\n transparent 100%);\n}\n.TurnNavigator_marks {\n position: relative;\n}\n.TurnNavigator_mark {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n height: 10px;\n padding: 0;\n border: 0;\n border-radius: 8px;\n background: transparent;\n cursor: pointer;\n}\n.TurnNavigator_mark::before {\n position: absolute;\n top: 50%;\n right: 0;\n width: 20px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-border-l4);\n content: \"\";\n transform: translateY(-50%) scaleX(0.6);\n transform-origin: right center;\n transition: transform 140ms ease, background-color 140ms ease;\n}\n.TurnNavigator_markUnloaded::before {\n transform: translateY(-50%) scaleX(0.4);\n opacity: 0.6;\n}\n.TurnNavigator_markPreview::before {\n transform: translateY(-50%) scaleX(0.9);\n background: var(--dsw-alias-label-tertiary);\n}\n.TurnNavigator_markBusy::before {\n animation: TurnNavigator_dsh-turn-mark-busy 1s ease-in-out infinite;\n}\n.TurnNavigator_markActive::before {\n transform: translateY(-50%) scaleX(1);\n background: var(--dsw-alias-label-primary);\n}\n.TurnNavigator_mark:focus-visible::before {\n transform: translateY(-50%) scaleX(1);\n background: var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n}\n.TurnNavigator_mark:focus-visible {\n outline: none;\n}\n.TurnNavigator_mark:focus-visible::after {\n position: absolute;\n inset: 0 0 0 auto;\n width: 20px;\n border-radius: inherit;\n outline: 1px solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -1px;\n content: \"\";\n}\n.TurnNavigator_preview {\n position: absolute;\n top: clamp(0px, calc(var(--turn-preview-center) - var(--turn-preview-height) / 2), calc(100% - var(--turn-preview-height)));\n right: calc(100% + 10px);\n box-sizing: border-box;\n width: min(300px, calc(100cqw - 120px));\n max-height: var(--turn-preview-height);\n overflow: hidden;\n padding: 10px 12px;\n border: 0;\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--dsw-elevation-panel);\n pointer-events: none;\n animation: TurnNavigator_dsh-turn-preview-enter 120ms ease-out;\n transition: top 140ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n.TurnNavigator_previewPrompt,\n.TurnNavigator_previewResponse {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n}\n.TurnNavigator_previewPrompt {\n font: var(--dsw-font-xs-strong-13);\n -webkit-line-clamp: 1;\n}\n.TurnNavigator_previewResponse {\n margin-top: 4px;\n color: var(--dsw-alias-label-caption);\n font: var(--dsw-font-xxs-12);\n -webkit-line-clamp: 3;\n}\n@keyframes TurnNavigator_dsh-turn-preview-enter {\n from {\n opacity: 0;\n transform: translateX(4px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes TurnNavigator_dsh-turn-mark-busy {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.35;\n }\n}\n@container (max-width: 900px) {\n .TurnNavigator_frame {\n display: none;\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .TurnNavigator_frame,\n .TurnNavigator_scroller,\n .TurnNavigator_mark::before,\n .TurnNavigator_markBusy::before,\n .TurnNavigator_preview {\n transition: none;\n animation: none;\n scroll-behavior: auto;\n }\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/accessibility.module.css */\n.accessibility_visuallyHidden {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/ReasoningRow.module.css */\n.ReasoningRow_root {\n display: flex;\n flex-direction: column;\n}\n.ReasoningRow_root:not([data-expanded]) {\n contain: size layout;\n height: calc(24px + var(--dsh-content-font-delta, 0px));\n}\n.ReasoningRow_row {\n overflow: hidden;\n}\n.ReasoningRow_root[data-expanded] [data-open] [data-disclosure-row] {\n position: sticky;\n top: 0;\n z-index: 1;\n background: var(--dsw-alias-bg-base);\n}\n.ReasoningRow_leading {\n flex-shrink: 0;\n}\n.ReasoningRow_title {\n font-weight: 400;\n}\n.ReasoningRow_separator {\n flex: none;\n width: 2px;\n height: 2px;\n margin: 0 8px;\n border-radius: 1px;\n background: var(--dsw-alias-label-caption);\n}\n.ReasoningRow_summary {\n min-width: 0;\n overflow: hidden;\n flex: 1 1 auto;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(20px + var(--dsh-content-font-delta-secondary, 0px));\n white-space: nowrap;\n}\n.ReasoningRow_summaryText {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ReasoningRow_summary[data-streaming] {\n mask-image:\n linear-gradient(\n to right,\n black calc(100% - 48px),\n transparent);\n}\n.ReasoningRow_summary[data-streaming] .ReasoningRow_summaryText {\n overflow: visible;\n text-overflow: clip;\n}\n.ReasoningRow_root:not([data-preview]) .ReasoningRow_separator,\n.ReasoningRow_root:not([data-preview]) .ReasoningRow_summary {\n display: none;\n}\n.ReasoningRow_thinkBody {\n padding: 4px 0 4px calc(22px + var(--dsh-content-font-delta, 0px));\n min-width: 0;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/AssistantMarkdown.module.css */\n.AssistantMarkdown_root {\n display: flex;\n flex-direction: column;\n font-size: var(--dsh-content-font-size, 14px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n color: var(--dsw-alias-label-primary);\n}\n.AssistantMarkdown_body {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.AssistantMarkdown_body .md-table-wide {\n --dsh-table-spare: max(0px, calc((100cqw - var(--dsh-chat-content-width)) / 2));\n --dsh-table-lead: calc(var(--dsh-table-spare) + min(var(--dsh-chat-content-width), 100cqw) - 100%);\n box-sizing: border-box;\n width: calc(100% + var(--dsh-table-lead) + var(--dsh-table-spare));\n max-width: none;\n margin-left: calc(-1 * var(--dsh-table-lead));\n padding-left: var(--dsh-table-lead);\n}\n.AssistantMarkdown_body .md-table-wide > table {\n position: relative;\n z-index: 1;\n}\n.AssistantMarkdown_body > [data-turn-process-inline][hidden] {\n margin-bottom: -16px;\n}\n.AssistantMarkdown_stopped {\n align-self: flex-start;\n padding: 0 6px;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n line-height: 18px;\n}\n.AssistantMarkdown_actions {\n margin-top: 16px;\n margin-left: -6px;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/GenericCommandCard.module.css */\n.GenericCommandCard_root {\n display: flex;\n flex-direction: column;\n}\n.GenericCommandCard_leading {\n flex-shrink: 0;\n}\n.GenericCommandCard_title {\n font-weight: 400;\n}\n.GenericCommandCard_separator {\n flex: none;\n width: 2px;\n height: 2px;\n margin: 0 8px;\n border-radius: 1px;\n background: var(--dsw-alias-label-caption);\n}\n.GenericCommandCard_summary {\n min-width: 0;\n overflow: hidden;\n flex: 1 1 auto;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.GenericCommandCard_summary[data-error],\n.GenericCommandCard_body[data-error] {\n color: var(--dsw-alias-state-error-primary);\n}\n.GenericCommandCard_body {\n max-height: 260px;\n margin: 4px 0 4px 4px;\n padding: 12px 16px;\n overflow: auto;\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-markdown-code-block);\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-markdown-code-block-small);\n white-space: pre-wrap;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/TurnProcessNodeView.module.css */\n.TurnProcessNodeView_root {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n height: calc(33px + var(--dsh-content-font-delta, 0px));\n padding: 0 0 8px;\n border: none;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: none;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--dsh-content-font-size, 14px);\n cursor: pointer;\n text-align: left;\n transition: color 100ms ease;\n}\n.TurnProcessNodeView_root:disabled {\n cursor: default;\n}\n.TurnProcessNodeView_root:hover:not(:disabled) {\n color: var(--dsw-alias-label-secondary);\n}\n.TurnProcessNodeView_chevron {\n flex: none;\n width: 14px;\n height: 14px;\n margin-left: 4px;\n color: inherit;\n transition: transform 100ms ease;\n}\n.TurnProcessNodeView_root[data-open] .TurnProcessNodeView_chevron {\n transform: rotate(180deg);\n}\n.TurnProcessNodeView_label {\n min-width: 0;\n overflow: hidden;\n font-size: inherit;\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.TurnProcessNodeView_durationNumber {\n font-family: var(--ds-font-family-code);\n font-variant-numeric: tabular-nums;\n}\n@media (prefers-reduced-motion: reduce) {\n .TurnProcessNodeView_root,\n .TurnProcessNodeView_chevron {\n transition: none;\n }\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/TurnUsagePanel.module.css */\n.TurnUsagePanel_root {\n display: inline-flex;\n min-width: 0;\n}\n.TurnUsagePanel_root + .TurnUsagePanel_root {\n margin-left: -6px;\n}\n.TurnUsagePanel_trigger {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n min-width: 0;\n height: calc(28px + var(--dsh-content-font-delta, 0px));\n padding: 6px 8px;\n border: none;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n font-size: calc(var(--dsh-content-font-size-secondary, 13px) - 1px);\n font-variant-numeric: tabular-nums;\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n white-space: nowrap;\n cursor: pointer;\n}\n.TurnUsagePanel_label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.TurnUsagePanel_trigger svg {\n width: calc(15px + var(--dsh-content-font-delta, 0px));\n height: calc(15px + var(--dsh-content-font-delta, 0px));\n flex: none;\n}\n.TurnUsagePanel_trigger:hover,\n.TurnUsagePanel_trigger[aria-expanded=true] {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-tertiary);\n}\n@media (max-width: 480px) {\n .TurnUsagePanel_trigger {\n justify-content: center;\n width: calc(28px + var(--dsh-content-font-delta, 0px));\n padding: 6px;\n }\n .TurnUsagePanel_trigger .TurnUsagePanel_label {\n display: none;\n }\n .TurnUsagePanel_root + .TurnUsagePanel_root {\n margin-left: 0;\n }\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/stat-dialog.module.css */\n.stat_dialog_panel {\n position: fixed;\n z-index: 1100;\n box-sizing: border-box;\n width: max-content;\n min-width: min(300px, calc(100vw - 24px));\n max-width: min(440px, calc(100vw - 24px));\n padding: 16px;\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-specific-menu);\n backdrop-filter: var(--dsw-menu-backdrop-filter);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l1);\n box-shadow: var(--dsw-elevation-prominent);\n font-size: 12px;\n line-height: 18px;\n color: var(--dsw-alias-label-secondary);\n cursor: default;\n}\n.stat_dialog_title {\n display: flex;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 8px;\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n.stat_dialog_titleRule {\n margin-bottom: 10px;\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.stat_dialog_titleValue {\n font-variant-numeric: tabular-nums;\n}\n.stat_dialog_titleLabel {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n}\n.stat_dialog_titleLabel svg {\n width: 14px;\n height: 14px;\n flex: none;\n}\n.stat_dialog_details {\n display: grid;\n grid-template-columns: minmax(76px, auto) minmax(0, 1fr);\n gap: 6px 16px;\n margin: 0;\n color: var(--dsw-alias-label-tertiary);\n}\n.stat_dialog_details dt,\n.stat_dialog_details dd {\n min-width: 0;\n margin: 0;\n}\n.stat_dialog_details dd {\n color: var(--dsw-alias-label-secondary);\n font-variant-numeric: tabular-nums;\n text-align: right;\n}\n.stat_dialog_details .stat_dialog_route {\n overflow-wrap: anywhere;\n}\n.stat_dialog_reasoning {\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/TurnTailNodeView.module.css */\n.TurnTailNodeView_root {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.TurnTailNodeView_actions {\n margin-top: 4px;\n margin-left: -6px;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/TurnTriggerNodeView.module.css */\n.TurnTriggerNodeView_root {\n min-width: 0;\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-turn-trigger-bg, var(--dsw-alias-markdown-code-block));\n transition: background-color 100ms ease;\n}\n.TurnTriggerNodeView_root:hover {\n background: var(--dsw-alias-turn-trigger-bg-hover, var(--dsw-alias-interactive-bg-hover));\n}\n.TurnTriggerNodeView_header {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 16px;\n border: 0;\n background: none;\n color: var(--dsw-alias-label-tertiary);\n transition: color 100ms ease;\n font: inherit;\n text-align: left;\n cursor: pointer;\n}\n.TurnTriggerNodeView_header:hover {\n color: var(--dsw-alias-label-secondary);\n}\n.TurnTriggerNodeView_icon {\n display: inline-flex;\n flex: none;\n color: inherit;\n}\n.TurnTriggerNodeView_title {\n flex: none;\n font-size: var(--dsh-content-font-size, 14px);\n}\n.TurnTriggerNodeView_time {\n flex: none;\n margin-left: auto;\n color: inherit;\n font: var(--dsw-font-xxs-12);\n}\n.TurnTriggerNodeView_chevron,\n.TurnTriggerNodeView_openChevron {\n flex: none;\n color: inherit;\n}\n.TurnTriggerNodeView_openChevron {\n transform: rotate(180deg);\n}\n.TurnTriggerNodeView_body {\n padding: 0 16px 12px 40px;\n}\n.TurnTriggerNodeView_explanation {\n margin: 8px 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n.TurnTriggerNodeView_content {\n max-height: 240px;\n overflow: auto;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xxs-12);\n}\n@media (prefers-reduced-motion: reduce) {\n .TurnTriggerNodeView_root,\n .TurnTriggerNodeView_header {\n transition: none;\n }\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/chat/StatsPills.module.css */\n.StatsPills_root {\n display: flex;\n justify-content: center;\n gap: 12px;\n min-width: 0;\n max-width: 100%;\n box-sizing: border-box;\n font-size: calc(var(--dsh-content-font-size-secondary, 13px) - 1px);\n line-height: calc(20px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.StatsPills_anchor {\n display: inline-flex;\n min-width: 0;\n}\n.StatsPills_pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n box-sizing: border-box;\n max-width: 100%;\n padding: 1px 8px;\n border: none;\n border-radius: 999px;\n corner-shape: round;\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-variant-numeric: tabular-nums;\n line-height: inherit;\n white-space: nowrap;\n}\n.StatsPills_pill svg {\n width: 14px;\n height: 14px;\n flex: none;\n}\nbutton.StatsPills_pill {\n cursor: pointer;\n}\nbutton.StatsPills_pill:hover,\nbutton.StatsPills_pill[aria-expanded=true] {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n.StatsPills_label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.StatsPills_sep {\n color: var(--dsw-alias-separator-primary);\n margin: 0 6px;\n}\n\n/* ../harness-browser-integration/packages/client/ui-chat/src/client/settings/PreferenceRow.module.css */\n.PreferenceRow_row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n.PreferenceRow_rowText {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding-right: 48px;\n}\n.PreferenceRow_title {\n font-size: 14px;\n font-weight: 400;\n line-height: 22px;\n color: var(--dsw-alias-label-primary);\n}\n.PreferenceRow_desc {\n font-size: 12px;\n font-weight: 400;\n line-height: 18px;\n color: var(--dsw-alias-label-tertiary);\n}\n.PreferenceRow_selector {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n height: 36px;\n padding: 0 14px;\n border: none;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-module-platform);\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n.PreferenceRow_selector:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n.PreferenceRow_chevron {\n flex: none;\n}\n/*# sourceMappingURL=client.css.map */\n"; document.head.append(style); return () => style.remove(); };
|
|
2
|
+
const cssDispose = () => { const style = document.createElement('style'); style.textContent = "/* .host-source/packages/client/ui-chat/src/client/chat/MessageItem.module.css */\n.MessageItem_userRow {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 6px;\n}\n.MessageItem_userStack {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 8px;\n min-width: 0;\n max-width: min(calc(var(--dsh-chat-content-width, 748px) * 0.702), 82%);\n}\n.MessageItem_bubble {\n max-width: 100%;\n background: var(--dsw-specific-bubble);\n border-radius: var(--dsw-radius-xl);\n padding: 10px 16px;\n font-size: var(--dsh-content-font-size, 14px);\n line-height: calc(22px + var(--dsh-content-font-delta, 0px));\n color: var(--dsw-alias-label-primary);\n white-space: pre-wrap;\n word-break: break-word;\n}\n.MessageItem_referenceSummary {\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(18px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.MessageItem_contextRow {\n padding: 2px 0;\n}\n.MessageItem_compactionRow {\n --dsh-compaction-header-height: calc(24px + var(--dsh-content-font-delta, 0px));\n padding: 2px 0;\n}\n.MessageItem_compactionButton {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--dsh-compaction-header-height);\n min-width: 0;\n padding: 0;\n border: none;\n border-radius: var(--dsw-radius-sm);\n background: none;\n color: var(--dsw-alias-label-tertiary);\n transition: color 100ms ease;\n font: inherit;\n text-align: left;\n}\n.MessageItem_compactionRow:has(.MessageItem_compactionBody) .MessageItem_compactionButton {\n position: sticky;\n top: 0;\n z-index: 7;\n border-radius: 0;\n background: var(--dsw-alias-bg-base);\n}\n.MessageItem_compactionBody :has(> [data-code-block-banner]) {\n top: var(--dsh-compaction-header-height);\n}\n.MessageItem_compactionRow:has(.MessageItem_compactionBody) .MessageItem_compactionButton:hover {\n background: var(--dsw-alias-interactive-bg-hover-solid);\n}\n.MessageItem_compactionButton:not(:disabled) {\n cursor: pointer;\n}\n.MessageItem_compactionButton:hover {\n color: var(--dsw-alias-label-secondary);\n}\n.MessageItem_compactionButton:not(:disabled):hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n.MessageItem_compactionLeading {\n flex: none;\n display: inline-grid;\n place-items: center;\n width: calc(16px + var(--dsh-content-font-delta, 0px));\n height: calc(16px + var(--dsh-content-font-delta, 0px));\n margin-right: 6px;\n color: inherit;\n}\n.MessageItem_compactionLeading svg {\n width: calc(14px + var(--dsh-content-font-delta, 0px));\n height: calc(14px + var(--dsh-content-font-delta, 0px));\n}\n.MessageItem_compactionContextIcon,\n.MessageItem_compactionDisclosureIcon {\n display: inline-flex;\n grid-area: 1 / 1;\n align-items: center;\n justify-content: center;\n}\n.MessageItem_compactionDisclosureIcon {\n opacity: 0;\n}\n.MessageItem_compactionButton:not(:disabled):hover .MessageItem_compactionContextIcon,\n.MessageItem_compactionButton:not(:disabled):focus-visible .MessageItem_compactionContextIcon {\n opacity: 0;\n}\n.MessageItem_compactionButton:not(:disabled):hover .MessageItem_compactionDisclosureIcon,\n.MessageItem_compactionButton:not(:disabled):focus-visible .MessageItem_compactionDisclosureIcon {\n opacity: 1;\n}\n.MessageItem_compactionTitle {\n flex: none;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n color: inherit;\n}\n.MessageItem_compactionSep {\n flex: none;\n width: 2px;\n height: 2px;\n margin: 0 8px;\n border-radius: 1px;\n background: var(--dsw-alias-label-caption);\n}\n.MessageItem_compactionSummary {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n color: inherit;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.MessageItem_compactionBody {\n padding: 4px 0 4px calc(22px + var(--dsh-content-font-delta, 0px));\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n}\n.MessageItem_retryRow {\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(20px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.MessageItem_retrySummary {\n display: inline-flex;\n align-items: center;\n width: fit-content;\n max-width: 100%;\n padding: 2px 0;\n gap: 7px;\n border-radius: var(--dsw-radius-sm);\n color: inherit;\n cursor: pointer;\n list-style: none;\n user-select: none;\n}\n.MessageItem_retrySummary::-webkit-details-marker {\n display: none;\n}\n.MessageItem_retrySummary::after {\n flex: none;\n width: 6px;\n height: 6px;\n margin-right: 2px;\n border-right: 1.5px solid currentcolor;\n border-bottom: 1.5px solid currentcolor;\n content: \"\";\n transform: rotate(-45deg);\n transition: transform 120ms ease;\n}\n.MessageItem_retrySummary:hover {\n color: var(--dsw-alias-label-secondary);\n}\n@media (prefers-reduced-motion: reduce) {\n .MessageItem_compactionButton {\n transition: none;\n }\n}\n.MessageItem_retrySummary:focus-visible {\n outline: 1.5px solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n.MessageItem_retryText {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n.MessageItem_retryRow[open] .MessageItem_retrySummary::after {\n transform: rotate(45deg);\n}\n.MessageItem_retryDetails {\n display: grid;\n gap: 2px;\n margin-top: 3px;\n padding-left: 14px;\n overflow-wrap: anywhere;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(18px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.MessageItem_retryDetailLabel {\n color: var(--dsw-alias-label-secondary);\n}\n.MessageItem_turnErrorRow {\n display: grid;\n grid-template-columns: 10px minmax(0, 1fr) auto;\n gap: 8px;\n align-items: start;\n padding: 2px 0;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(20px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.MessageItem_turnErrorDot {\n margin-top: 5px;\n}\n.MessageItem_turnErrorCopy {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n.MessageItem_turnErrorTitle {\n margin-right: 6px;\n color: var(--dsw-alias-state-error-primary);\n font-weight: 600;\n}\n.MessageItem_turnErrorMessage {\n color: var(--dsw-alias-label-secondary);\n}\n.MessageItem_turnErrorCode {\n color: var(--dsw-alias-label-tertiary);\n font: var(--dsw-font-markdown-code-block-small);\n}\n.MessageItem_maxTokensTitle {\n margin-right: 6px;\n color: var(--dsw-alias-state-warn-primary);\n font-weight: 600;\n}\n.MessageItem_attachmentRow {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n max-width: 100%;\n gap: 8px;\n}\n.MessageItem_fileCard {\n display: inline-flex;\n flex: 0 0 240px;\n align-items: center;\n gap: 10px;\n width: 240px;\n min-height: 64px;\n padding: 8px 12px;\n border: 0.5px solid var(--dsw-alias-border-l2, rgba(0, 0, 0, 0.12));\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-specific-input-major, transparent);\n box-sizing: border-box;\n}\n.MessageItem_fileIcon {\n flex: none;\n width: 28px;\n height: 28px;\n}\n.MessageItem_fileContent {\n display: flex;\n flex: 1;\n flex-direction: column;\n min-width: 0;\n}\n.MessageItem_fileName {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dsw-alias-label-primary);\n font-size: 14px;\n font-weight: 500;\n line-height: 22px;\n}\n.MessageItem_fileMeta {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--dsw-alias-label-tertiary, rgba(0, 0, 0, 0.45));\n font-size: 12px;\n line-height: 15px;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/ContextBody.module.css */\n.ContextBody_text {\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n font: inherit;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n.ContextBody_fields {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin: 8px 0 0;\n padding-top: 8px;\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.ContextBody_field {\n display: flex;\n gap: 8px;\n min-width: 0;\n}\n.ContextBody_fieldKey {\n flex: none;\n min-width: 96px;\n color: var(--dsw-alias-label-caption);\n}\n.ContextBody_fieldValue {\n flex: 1 1 auto;\n min-width: 0;\n margin: 0;\n color: var(--dsw-alias-label-tertiary);\n overflow-wrap: anywhere;\n}\n.ContextBody_files {\n display: flex;\n flex-wrap: wrap;\n gap: 4px 12px;\n margin: 0 0 8px;\n padding: 0;\n list-style: none;\n}\n.ContextBody_file {\n display: flex;\n align-items: baseline;\n gap: 6px;\n min-width: 0;\n}\n.ContextBody_filePath {\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.ContextBody_fileAction {\n color: var(--dsw-alias-label-caption);\n}\n.ContextBody_catalogNotice {\n margin: 0 0 6px;\n color: var(--dsw-alias-label-caption);\n}\n.ContextBody_entries {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ContextBody_entry {\n display: flex;\n gap: 8px;\n min-width: 0;\n}\n.ContextBody_entryName {\n flex: none;\n color: var(--dsw-alias-label-secondary);\n}\n.ContextBody_entryDescription {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ContextBody_sections {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin: 0;\n}\n.ContextBody_section {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n}\n.ContextBody_sectionName {\n color: var(--dsw-alias-label-caption);\n}\n.ContextBody_sectionText {\n margin: 0;\n color: var(--dsw-alias-label-secondary);\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n.ContextBody_relaySender {\n margin: 0 0 6px;\n color: var(--dsw-alias-label-caption);\n overflow-wrap: anywhere;\n}\n.ContextBody_recalls {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin: 0 0 8px;\n padding: 0;\n list-style: none;\n}\n.ContextBody_recall {\n display: flex;\n gap: 8px;\n min-width: 0;\n}\n.ContextBody_recallLabel {\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n.ContextBody_recallCounts {\n flex: none;\n color: var(--dsw-alias-label-caption);\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/ContextInjectionRow.module.css */\n.ContextInjectionRow_root {\n min-width: 0;\n}\n.ContextInjectionRow_root[data-open] {\n padding-bottom: 4px;\n}\n.ContextInjectionRow_chevron {\n color: var(--dsw-alias-label-secondary);\n}\n.ContextInjectionRow_sep {\n flex: none;\n width: 2px;\n height: 2px;\n margin: 0 8px;\n border-radius: 1px;\n background: var(--dsw-alias-label-caption);\n}\n.ContextInjectionRow_source {\n flex: none;\n min-width: 0;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ContextInjectionRow_summary {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ContextInjectionRow_body {\n box-sizing: border-box;\n width: calc(100% - 22px - var(--dsh-content-font-delta, 0px));\n max-height: 141px;\n margin: 4px 0 0 calc(22px + var(--dsh-content-font-delta, 0px));\n overflow: auto;\n padding: 10px 16px 12px 12px;\n border: none;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-markdown-code-block);\n color: var(--dsw-alias-label-tertiary);\n font: 400 11px/16px var(--ds-font-family-code);\n}\n.ContextInjectionRow_toolChanges {\n white-space: nowrap;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/MessageIconActions.module.css */\n.MessageIconActions_actions {\n display: flex;\n align-items: center;\n gap: 8px;\n height: calc(28px + var(--dsh-content-font-delta, 0px));\n}\n.MessageIconActions_timeStart {\n padding-right: 12px;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n.MessageIconActions_timeEnd {\n font-size: calc(var(--dsh-content-font-size-secondary, 13px) - 1px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n color: inherit;\n white-space: nowrap;\n}\n.MessageIconActions_endInfo {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n margin-left: 8px;\n color: var(--dsw-alias-label-tertiary);\n}\n@media (hover: hover) {\n [data-actions-reveal=hover] .MessageIconActions_actions,\n :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering]):has(~ :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering])) .MessageIconActions_actions {\n opacity: 0;\n transition: opacity 80ms ease;\n }\n [data-actions-reveal=hover]:hover .MessageIconActions_actions,\n [data-actions-reveal=hover]:focus-within .MessageIconActions_actions,\n :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering]):has(~ :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering])):hover .MessageIconActions_actions,\n :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering]):has(~ :is([data-chat-flow-kind=user], [data-chat-flow-kind=steering])):focus-within .MessageIconActions_actions {\n opacity: 1;\n }\n}\n.MessageIconActions_action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: calc(28px + var(--dsh-content-font-delta, 0px));\n height: calc(28px + var(--dsh-content-font-delta, 0px));\n padding: 6px;\n border: none;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n.MessageIconActions_action svg {\n width: calc(15px + var(--dsh-content-font-delta, 0px));\n height: calc(15px + var(--dsh-content-font-delta, 0px));\n}\n.MessageIconActions_actions[data-clock=end] .MessageIconActions_action svg {\n width: calc(17px + var(--dsh-content-font-delta, 0px));\n height: calc(17px + var(--dsh-content-font-delta, 0px));\n}\n.MessageIconActions_action:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n.MessageIconActions_action[data-unavailable] {\n cursor: default;\n opacity: 0.4;\n}\n.MessageIconActions_action[data-unavailable]:hover {\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n}\n.MessageIconActions_visuallyHidden {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/ChatView.module.css */\n.ChatView_frame {\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 auto;\n container-type: inline-size;\n}\n.ChatView_root {\n position: relative;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 auto;\n overflow-x: visible;\n overflow-y: clip;\n}\n.ChatView_scroll {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: 16px calc(var(--dsh-composer-side-clearance) + 16px);\n container-type: inline-size;\n}\n.ChatView_root[data-chat-following-tail] .ChatView_scroll,\n[data-conversation-scroll]:has(.ChatView_root[data-chat-following-tail]) {\n overflow-anchor: none;\n}\n[data-conversation-scroll] .ChatView_frame,\n[data-conversation-scroll] .ChatView_root {\n flex: 0 0 auto;\n min-height: auto;\n height: auto;\n}\n[data-conversation-scroll] .ChatView_scroll {\n overflow: visible;\n flex: 0 0 auto;\n min-height: auto;\n}\n.ChatView_column {\n max-width: var(--dsh-chat-content-width);\n width: 100%;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n}\n.ChatView_column > :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty))) ~ :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty))) {\n margin-top: var(--dsh-chat-flow-gap, 6px);\n}\n.ChatView_flowItem[data-chat-group-part=response] {\n --dsh-chat-flow-gap: 12px;\n}\n.ChatView_column > [data-chat-group-part=response]:not([hidden]):not(:empty) + :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty))):not(.ChatView_running) {\n --dsh-chat-flow-gap: 12px;\n}\n.ChatView_flowItem {\n min-width: 0;\n}\n.ChatView_flowItem[data-chat-flow-kind=turn-process],\n.ChatView_flowItem[data-turn-process-answer],\n.ChatView_column > [data-chat-flow-kind=turn-process] + :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty))):not(.ChatView_running) {\n --dsh-chat-flow-gap: 16px;\n}\n.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty)) {\n height: 0;\n}\n.ChatView_callRow {\n border-radius: var(--dsw-radius-sm);\n}\n.ChatView_hint {\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(18px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.ChatView_running {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n --dsh-chat-flow-gap: 12px;\n --dsw-alias-label-shimmer: var(--dsw-alias-label-deep-diving-shimmer);\n color: var(--dsw-alias-label-deep-diving);\n font-size: calc(var(--dsh-content-font-size, 14px) - 2px);\n line-height: calc(22px + var(--dsh-content-font-delta, 0px));\n}\n.ChatView_column > :nth-last-child(2 of :not([hidden]):not(.ChatView_flowItem:is(:empty, :has(> [data-slot=\"conversation.chat.node\"]:empty)))):is(.ChatView_flowItem:not([data-chat-flow-kind=user]):not([data-chat-flow-kind=steering]):not([data-chat-flow-kind=turn-trigger]), [data-chat-group-key]) ~ .ChatView_running > .ChatView_runningDivider {\n display: block;\n}\n.ChatView_runningDivider {\n display: none;\n width: 100%;\n height: 0.5px;\n margin: 8px 0 10px;\n background: color-mix(in srgb, var(--dsw-alias-border-l1) 75%, var(--dsw-alias-border-l2));\n pointer-events: none;\n}\n.ChatView_runningContent {\n display: inline-flex;\n align-items: center;\n min-width: 0;\n gap: 6px;\n}\n.ChatView_runningText {\n min-width: 0;\n font-variant-numeric: tabular-nums;\n}\n.ChatView_runningIcon {\n position: relative;\n display: inline-flex;\n flex: none;\n width: calc(14px + var(--dsh-content-font-delta, 0px));\n height: calc(14px + var(--dsh-content-font-delta, 0px));\n contain: strict;\n overflow: hidden;\n}\n.ChatView_runningWhaleAnimated {\n display: none;\n position: absolute;\n inset: 0;\n}\n.ChatView_runningWhaleStill {\n display: initial;\n}\n@supports (mask-mode: alpha) and (mask-image: url()) {\n @media (prefers-reduced-motion: no-preference) and (forced-colors: none) {\n .ChatView_runningWhaleAnimated {\n display: block;\n background: currentColor;\n mask: url(data:image/png;base64,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) center / 100% 100% no-repeat;\n mask-mode: alpha;\n will-change: transform;\n }\n .ChatView_runningWhaleStill {\n display: none;\n }\n }\n}\n.ChatView_openError {\n color: var(--dsw-alias-state-error-primary);\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(18px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.ChatView_older {\n display: flex;\n justify-content: center;\n}\n.ChatView_older button {\n border: none;\n border-radius: var(--dsw-radius-sm);\n padding: 4px 12px;\n font-size: 12px;\n color: var(--dsw-alias-label-secondary);\n background: var(--dsw-alias-interactive-bg-hover-solid);\n cursor: pointer;\n}\n.ChatView_older button:disabled {\n cursor: default;\n opacity: 0.6;\n}\n.ChatView_toBottomSlot {\n position: absolute;\n right: 0;\n bottom: 16px;\n left: 0;\n z-index: 8;\n height: 0;\n display: flex;\n justify-content: flex-end;\n padding-right: max(calc(var(--dsh-composer-side-clearance) + 16px), calc((100% - var(--dsh-chat-content-width)) / 2));\n pointer-events: none;\n}\n[data-conversation-scroll] .ChatView_toBottomSlot {\n position: sticky;\n bottom: calc(var(--dsh-composer-height, 152px) + 16px);\n}\n.ChatView_toBottom {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 34px;\n height: 34px;\n margin-top: -34px;\n padding: 0;\n border: 0;\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l3);\n border-radius: 100px;\n corner-shape: round;\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-button-floating-fill);\n box-shadow: var(--dsw-elevation-panel);\n cursor: pointer;\n pointer-events: auto;\n}\n.ChatView_toBottom:hover {\n background: var(--dsw-alias-button-floating-hover);\n}\n.ChatView_modalAction {\n min-width: 72px;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/ChatGroupSeat.module.css */\n.ChatGroupSeat_root {\n min-width: 0;\n}\n.ChatGroupSeat_title {\n display: flex;\n max-width: 100%;\n align-items: center;\n gap: 6px;\n padding: 0;\n border: 0;\n background: none;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--dsh-content-font-size, 14px);\n text-align: left;\n cursor: pointer;\n transition: color 100ms ease;\n}\n.ChatGroupSeat_title:hover {\n color: var(--dsw-alias-label-secondary);\n}\n.ChatGroupSeat_leading {\n position: relative;\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: calc(16px + var(--dsh-content-font-delta, 0px));\n height: calc(16px + var(--dsh-content-font-delta, 0px));\n color: inherit;\n}\n.ChatGroupSeat_leading svg {\n width: calc(14px + var(--dsh-content-font-delta, 0px));\n height: calc(14px + var(--dsh-content-font-delta, 0px));\n}\n.ChatGroupSeat_leading svg[width=\"16\"] {\n width: calc(16px + var(--dsh-content-font-delta, 0px));\n height: calc(16px + var(--dsh-content-font-delta, 0px));\n}\n.ChatGroupSeat_activityIcon,\n.ChatGroupSeat_chevron {\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: opacity 100ms ease;\n}\n.ChatGroupSeat_activityIcon {\n opacity: 1;\n}\n.ChatGroupSeat_chevron {\n opacity: 0;\n}\n.ChatGroupSeat_title:is(:hover, :focus-visible) .ChatGroupSeat_activityIcon {\n opacity: 0;\n}\n.ChatGroupSeat_title:is(:hover, :focus-visible) .ChatGroupSeat_chevron {\n opacity: 1;\n}\n.ChatGroupSeat_title[aria-expanded=true] .ChatGroupSeat_activityIcon {\n opacity: 0;\n}\n.ChatGroupSeat_title[aria-expanded=true] .ChatGroupSeat_chevron {\n opacity: 1;\n}\n.ChatGroupSeat_title[aria-expanded=true] {\n padding-bottom: 8px;\n}\n.ChatGroupSeat_body {\n --dsh-chat-flow-gap: 6px;\n max-height: min(400px, 50vh);\n overflow-y: auto;\n overscroll-behavior-y: auto;\n scrollbar-gutter: stable;\n}\n.ChatGroupSeat_label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ChatGroupSeat_fadeTop {\n mask-image:\n linear-gradient(\n to bottom,\n transparent 0,\n #000 24px,\n #000 100%);\n}\n.ChatGroupSeat_fadeBottom {\n mask-image:\n linear-gradient(\n to bottom,\n #000 0,\n #000 calc(100% - 24px),\n transparent 100%);\n}\n.ChatGroupSeat_fadeTop.ChatGroupSeat_fadeBottom {\n mask-image:\n linear-gradient(\n to bottom,\n transparent 0,\n #000 24px,\n #000 calc(100% - 24px),\n transparent 100%);\n}\n@media (prefers-reduced-motion: reduce) {\n .ChatGroupSeat_title,\n .ChatGroupSeat_activityIcon,\n .ChatGroupSeat_chevron {\n transition: none;\n }\n}\n.ChatGroupSeat_content {\n display: flex;\n flex-direction: column;\n}\n.ChatGroupSeat_content > * {\n flex-shrink: 0;\n}\n.ChatGroupSeat_content > :not([hidden]):not(:empty) ~ :not([hidden]):not(:empty) {\n margin-top: var(--dsh-chat-flow-gap, 6px);\n}\n.ChatGroupSeat_expandedBody {\n max-height: none;\n overflow: visible;\n scrollbar-gutter: auto;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/TurnNavigator.module.css */\n.TurnNavigator_slot {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 7;\n height: 0;\n padding-inline: calc(var(--dsh-composer-side-clearance) + 16px);\n container-type: inline-size;\n pointer-events: none;\n}\n[data-conversation-scroll] .TurnNavigator_slot {\n position: sticky;\n}\n.TurnNavigator_frame {\n --turn-rail-band: calc( var(--dsh-conversation-viewport-height, 100dvh) - var(--dsh-composer-height, 152px) );\n --turn-preview-height: 100px;\n position: absolute;\n top: calc(var(--turn-rail-band) / 2);\n right: 12px;\n width: 28px;\n max-height: min(max(0px, calc(var(--turn-rail-band) - 64px)), 420px);\n contain: layout;\n cursor: pointer;\n pointer-events: auto;\n transform: translateY(-50%);\n}\n.TurnNavigator_scroller {\n position: relative;\n max-height: inherit;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-width: none;\n}\n.TurnNavigator_scroller::-webkit-scrollbar {\n display: none;\n}\n.TurnNavigator_fadeTop {\n mask-image:\n linear-gradient(\n to bottom,\n transparent 0,\n #000 24px,\n #000 100%);\n}\n.TurnNavigator_fadeBottom {\n mask-image:\n linear-gradient(\n to bottom,\n #000 0,\n #000 calc(100% - 24px),\n transparent 100%);\n}\n.TurnNavigator_fadeTop.TurnNavigator_fadeBottom {\n mask-image:\n linear-gradient(\n to bottom,\n transparent 0,\n #000 24px,\n #000 calc(100% - 24px),\n transparent 100%);\n}\n.TurnNavigator_marks {\n position: relative;\n}\n.TurnNavigator_mark {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n height: 10px;\n padding: 0;\n border: 0;\n border-radius: 8px;\n background: transparent;\n cursor: pointer;\n}\n.TurnNavigator_mark::before {\n position: absolute;\n top: 50%;\n right: 0;\n width: 20px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-border-l4);\n content: \"\";\n transform: translateY(-50%) scaleX(0.6);\n transform-origin: right center;\n transition: transform 140ms ease, background-color 140ms ease;\n}\n.TurnNavigator_markUnloaded::before {\n transform: translateY(-50%) scaleX(0.4);\n opacity: 0.6;\n}\n.TurnNavigator_markPreview::before {\n transform: translateY(-50%) scaleX(0.9);\n background: var(--dsw-alias-label-tertiary);\n}\n.TurnNavigator_markBusy::before {\n animation: TurnNavigator_dsh-turn-mark-busy 1s ease-in-out infinite;\n}\n.TurnNavigator_markActive::before {\n transform: translateY(-50%) scaleX(1);\n background: var(--dsw-alias-label-primary);\n}\n.TurnNavigator_mark:focus-visible::before {\n transform: translateY(-50%) scaleX(1);\n background: var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n}\n.TurnNavigator_mark:focus-visible {\n outline: none;\n}\n.TurnNavigator_mark:focus-visible::after {\n position: absolute;\n inset: 0 0 0 auto;\n width: 20px;\n border-radius: inherit;\n outline: 1px solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -1px;\n content: \"\";\n}\n.TurnNavigator_preview {\n position: absolute;\n top: clamp(0px, calc(var(--turn-preview-center) - var(--turn-preview-height) / 2), calc(100% - var(--turn-preview-height)));\n right: calc(100% + 10px);\n box-sizing: border-box;\n width: min(300px, calc(100cqw - 120px));\n max-height: var(--turn-preview-height);\n overflow: hidden;\n padding: 10px 12px;\n border: 0;\n border-radius: var(--dsw-radius-lg);\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-bg-layer-1);\n box-shadow: var(--dsw-elevation-panel);\n pointer-events: none;\n animation: TurnNavigator_dsh-turn-preview-enter 120ms ease-out;\n transition: top 140ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n.TurnNavigator_previewPrompt,\n.TurnNavigator_previewResponse {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n}\n.TurnNavigator_previewPrompt {\n font: var(--dsw-font-xs-strong-13);\n -webkit-line-clamp: 1;\n}\n.TurnNavigator_previewResponse {\n margin-top: 4px;\n color: var(--dsw-alias-label-caption);\n font: var(--dsw-font-xxs-12);\n -webkit-line-clamp: 3;\n}\n@keyframes TurnNavigator_dsh-turn-preview-enter {\n from {\n opacity: 0;\n transform: translateX(4px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes TurnNavigator_dsh-turn-mark-busy {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.35;\n }\n}\n@container (max-width: 900px) {\n .TurnNavigator_frame {\n display: none;\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .TurnNavigator_frame,\n .TurnNavigator_scroller,\n .TurnNavigator_mark::before,\n .TurnNavigator_markBusy::before,\n .TurnNavigator_preview {\n transition: none;\n animation: none;\n scroll-behavior: auto;\n }\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/accessibility.module.css */\n.accessibility_visuallyHidden {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/ReasoningRow.module.css */\n.ReasoningRow_root {\n display: flex;\n flex-direction: column;\n}\n.ReasoningRow_root:not([data-expanded]) {\n contain: size layout;\n height: calc(24px + var(--dsh-content-font-delta, 0px));\n}\n.ReasoningRow_row {\n overflow: hidden;\n}\n.ReasoningRow_root[data-expanded] [data-open] [data-disclosure-row] {\n position: sticky;\n top: 0;\n z-index: 1;\n background: var(--dsw-alias-bg-base);\n}\n.ReasoningRow_leading {\n flex-shrink: 0;\n}\n.ReasoningRow_title {\n font-weight: 400;\n}\n.ReasoningRow_separator {\n flex: none;\n width: 2px;\n height: 2px;\n margin: 0 8px;\n border-radius: 1px;\n background: var(--dsw-alias-label-caption);\n}\n.ReasoningRow_summary {\n min-width: 0;\n overflow: hidden;\n flex: 1 1 auto;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(20px + var(--dsh-content-font-delta-secondary, 0px));\n white-space: nowrap;\n}\n.ReasoningRow_summaryText {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ReasoningRow_summary[data-streaming] {\n mask-image:\n linear-gradient(\n to right,\n black calc(100% - 48px),\n transparent);\n}\n.ReasoningRow_summary[data-streaming] .ReasoningRow_summaryText {\n overflow: visible;\n text-overflow: clip;\n}\n.ReasoningRow_root:not([data-preview]) .ReasoningRow_separator,\n.ReasoningRow_root:not([data-preview]) .ReasoningRow_summary {\n display: none;\n}\n.ReasoningRow_thinkBody {\n padding: 4px 0 4px calc(22px + var(--dsh-content-font-delta, 0px));\n min-width: 0;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/AssistantMarkdown.module.css */\n.AssistantMarkdown_root {\n display: flex;\n flex-direction: column;\n font-size: var(--dsh-content-font-size, 14px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n color: var(--dsw-alias-label-primary);\n}\n.AssistantMarkdown_body {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.AssistantMarkdown_body .md-table-wide {\n --dsh-table-spare: max(0px, calc((100cqw - var(--dsh-chat-content-width)) / 2));\n --dsh-table-lead: calc(var(--dsh-table-spare) + min(var(--dsh-chat-content-width), 100cqw) - 100%);\n box-sizing: border-box;\n width: calc(100% + var(--dsh-table-lead) + var(--dsh-table-spare));\n max-width: none;\n margin-left: calc(-1 * var(--dsh-table-lead));\n padding-left: var(--dsh-table-lead);\n}\n.AssistantMarkdown_body .md-table-wide > table {\n position: relative;\n z-index: 1;\n}\n.AssistantMarkdown_body > [data-turn-process-inline][hidden] {\n margin-bottom: -16px;\n}\n.AssistantMarkdown_stopped {\n align-self: flex-start;\n padding: 0 6px;\n border-radius: var(--dsw-radius-sm);\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n line-height: 18px;\n}\n.AssistantMarkdown_actions {\n margin-top: 16px;\n margin-left: -6px;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/GenericCommandCard.module.css */\n.GenericCommandCard_root {\n display: flex;\n flex-direction: column;\n}\n.GenericCommandCard_leading {\n flex-shrink: 0;\n}\n.GenericCommandCard_title {\n font-weight: 400;\n}\n.GenericCommandCard_separator {\n flex: none;\n width: 2px;\n height: 2px;\n margin: 0 8px;\n border-radius: 1px;\n background: var(--dsw-alias-label-caption);\n}\n.GenericCommandCard_summary {\n min-width: 0;\n overflow: hidden;\n flex: 1 1 auto;\n font-size: var(--dsh-content-font-size-secondary, 13px);\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.GenericCommandCard_summary[data-error],\n.GenericCommandCard_body[data-error] {\n color: var(--dsw-alias-state-error-primary);\n}\n.GenericCommandCard_body {\n max-height: 260px;\n margin: 4px 0 4px 4px;\n padding: 12px 16px;\n overflow: auto;\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-alias-markdown-code-block);\n color: var(--dsw-alias-label-primary);\n font: var(--dsw-font-markdown-code-block-small);\n white-space: pre-wrap;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/TurnProcessNodeView.module.css */\n.TurnProcessNodeView_root {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n height: calc(33px + var(--dsh-content-font-delta, 0px));\n padding: 0 0 8px;\n border: none;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n background: none;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-size: var(--dsh-content-font-size, 14px);\n cursor: pointer;\n text-align: left;\n transition: color 100ms ease;\n}\n.TurnProcessNodeView_root:disabled {\n cursor: default;\n}\n.TurnProcessNodeView_root:hover:not(:disabled) {\n color: var(--dsw-alias-label-secondary);\n}\n.TurnProcessNodeView_chevron {\n flex: none;\n width: 14px;\n height: 14px;\n margin-left: 4px;\n color: inherit;\n transition: transform 100ms ease;\n}\n.TurnProcessNodeView_root[data-open] .TurnProcessNodeView_chevron {\n transform: rotate(180deg);\n}\n.TurnProcessNodeView_label {\n min-width: 0;\n overflow: hidden;\n font-size: inherit;\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.TurnProcessNodeView_durationNumber {\n font-family: var(--ds-font-family-code);\n font-variant-numeric: tabular-nums;\n}\n@media (prefers-reduced-motion: reduce) {\n .TurnProcessNodeView_root,\n .TurnProcessNodeView_chevron {\n transition: none;\n }\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/TurnUsagePanel.module.css */\n.TurnUsagePanel_root {\n display: inline-flex;\n min-width: 0;\n}\n.TurnUsagePanel_root + .TurnUsagePanel_root {\n margin-left: -6px;\n}\n.TurnUsagePanel_trigger {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n min-width: 0;\n height: calc(28px + var(--dsh-content-font-delta, 0px));\n padding: 6px 8px;\n border: none;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n font-size: calc(var(--dsh-content-font-size-secondary, 13px) - 1px);\n font-variant-numeric: tabular-nums;\n line-height: calc(24px + var(--dsh-content-font-delta, 0px));\n white-space: nowrap;\n cursor: pointer;\n}\n.TurnUsagePanel_label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.TurnUsagePanel_trigger svg {\n width: calc(15px + var(--dsh-content-font-delta, 0px));\n height: calc(15px + var(--dsh-content-font-delta, 0px));\n flex: none;\n}\n.TurnUsagePanel_trigger:hover,\n.TurnUsagePanel_trigger[aria-expanded=true] {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-tertiary);\n}\n@media (max-width: 480px) {\n .TurnUsagePanel_trigger {\n justify-content: center;\n width: calc(28px + var(--dsh-content-font-delta, 0px));\n padding: 6px;\n }\n .TurnUsagePanel_trigger .TurnUsagePanel_label {\n display: none;\n }\n .TurnUsagePanel_root + .TurnUsagePanel_root {\n margin-left: 0;\n }\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/stat-dialog.module.css */\n.stat_dialog_panel {\n position: fixed;\n z-index: 1100;\n box-sizing: border-box;\n width: max-content;\n min-width: min(300px, calc(100vw - 24px));\n max-width: min(440px, calc(100vw - 24px));\n padding: 16px;\n border: 0;\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-specific-menu);\n backdrop-filter: var(--dsw-menu-backdrop-filter);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l1);\n box-shadow: var(--dsw-elevation-prominent);\n font-size: 12px;\n line-height: 18px;\n color: var(--dsw-alias-label-secondary);\n cursor: default;\n}\n.stat_dialog_title {\n display: flex;\n justify-content: space-between;\n gap: 16px;\n margin-bottom: 8px;\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n.stat_dialog_titleRule {\n margin-bottom: 10px;\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n.stat_dialog_titleValue {\n font-variant-numeric: tabular-nums;\n}\n.stat_dialog_titleLabel {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n}\n.stat_dialog_titleLabel svg {\n width: 14px;\n height: 14px;\n flex: none;\n}\n.stat_dialog_details {\n display: grid;\n grid-template-columns: minmax(76px, auto) minmax(0, 1fr);\n gap: 6px 16px;\n margin: 0;\n color: var(--dsw-alias-label-tertiary);\n}\n.stat_dialog_details dt,\n.stat_dialog_details dd {\n min-width: 0;\n margin: 0;\n}\n.stat_dialog_details dd {\n color: var(--dsw-alias-label-secondary);\n font-variant-numeric: tabular-nums;\n text-align: right;\n}\n.stat_dialog_details .stat_dialog_route {\n overflow-wrap: anywhere;\n}\n.stat_dialog_reasoning {\n color: var(--dsw-alias-label-tertiary);\n white-space: nowrap;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/TurnTailNodeView.module.css */\n.TurnTailNodeView_root {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.TurnTailNodeView_actions {\n margin-top: 4px;\n margin-left: -6px;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/TurnTriggerNodeView.module.css */\n.TurnTriggerNodeView_root {\n min-width: 0;\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-xl);\n background: var(--dsw-alias-turn-trigger-bg, var(--dsw-alias-markdown-code-block));\n transition: background-color 100ms ease;\n}\n.TurnTriggerNodeView_root:hover {\n background: var(--dsw-alias-turn-trigger-bg-hover, var(--dsw-alias-interactive-bg-hover));\n}\n.TurnTriggerNodeView_header {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 16px;\n border: 0;\n background: none;\n color: var(--dsw-alias-label-tertiary);\n transition: color 100ms ease;\n font: inherit;\n text-align: left;\n cursor: pointer;\n}\n.TurnTriggerNodeView_header:hover {\n color: var(--dsw-alias-label-secondary);\n}\n.TurnTriggerNodeView_icon {\n display: inline-flex;\n flex: none;\n color: inherit;\n}\n.TurnTriggerNodeView_title {\n flex: none;\n font-size: var(--dsh-content-font-size, 14px);\n}\n.TurnTriggerNodeView_time {\n flex: none;\n margin-left: auto;\n color: inherit;\n font: var(--dsw-font-xxs-12);\n}\n.TurnTriggerNodeView_chevron,\n.TurnTriggerNodeView_openChevron {\n flex: none;\n color: inherit;\n}\n.TurnTriggerNodeView_openChevron {\n transform: rotate(180deg);\n}\n.TurnTriggerNodeView_body {\n padding: 0 16px 12px 40px;\n}\n.TurnTriggerNodeView_explanation {\n margin: 8px 0;\n color: var(--dsw-alias-label-secondary);\n font: var(--dsw-font-xxs-12);\n}\n.TurnTriggerNodeView_content {\n max-height: 240px;\n overflow: auto;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n font: var(--dsw-font-xxs-12);\n}\n@media (prefers-reduced-motion: reduce) {\n .TurnTriggerNodeView_root,\n .TurnTriggerNodeView_header {\n transition: none;\n }\n}\n\n/* .host-source/packages/client/ui-chat/src/client/chat/StatsPills.module.css */\n.StatsPills_root {\n display: flex;\n justify-content: center;\n gap: 12px;\n min-width: 0;\n max-width: 100%;\n box-sizing: border-box;\n font-size: calc(var(--dsh-content-font-size-secondary, 13px) - 1px);\n line-height: calc(20px + var(--dsh-content-font-delta-secondary, 0px));\n}\n.StatsPills_anchor {\n display: inline-flex;\n min-width: 0;\n}\n.StatsPills_pill {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n box-sizing: border-box;\n max-width: 100%;\n padding: 1px 8px;\n border: none;\n border-radius: 999px;\n corner-shape: round;\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n font: inherit;\n font-variant-numeric: tabular-nums;\n line-height: inherit;\n white-space: nowrap;\n}\n.StatsPills_pill svg {\n width: 14px;\n height: 14px;\n flex: none;\n}\nbutton.StatsPills_pill {\n cursor: pointer;\n}\nbutton.StatsPills_pill:hover,\nbutton.StatsPills_pill[aria-expanded=true] {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n.StatsPills_label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.StatsPills_sep {\n color: var(--dsw-alias-separator-primary);\n margin: 0 6px;\n}\n\n/* .host-source/packages/client/ui-chat/src/client/settings/PreferenceRow.module.css */\n.PreferenceRow_row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n.PreferenceRow_rowText {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding-right: 48px;\n}\n.PreferenceRow_title {\n font-size: 14px;\n font-weight: 400;\n line-height: 22px;\n color: var(--dsw-alias-label-primary);\n}\n.PreferenceRow_desc {\n font-size: 12px;\n font-weight: 400;\n line-height: 18px;\n color: var(--dsw-alias-label-tertiary);\n}\n.PreferenceRow_selector {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n height: 36px;\n padding: 0 14px;\n border: none;\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-module-platform);\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n}\n.PreferenceRow_selector:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n.PreferenceRow_chevron {\n flex: none;\n}\n/*# sourceMappingURL=client.css.map */\n"; document.head.append(style); return () => style.remove(); };
|
|
3
3
|
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -29,7 +29,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
29
29
|
));
|
|
30
30
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
31
31
|
|
|
32
|
-
//
|
|
32
|
+
// .host-source/packages/client/ui-chat/src/client/index.ts
|
|
33
33
|
var index_exports = {};
|
|
34
34
|
__export(index_exports, {
|
|
35
35
|
EMPTY_CHAT_SNAPSHOT: () => EMPTY_CHAT_SNAPSHOT,
|
|
@@ -40,10 +40,10 @@ __export(index_exports, {
|
|
|
40
40
|
});
|
|
41
41
|
module.exports = __toCommonJS(index_exports);
|
|
42
42
|
|
|
43
|
-
//
|
|
43
|
+
// .host-source/packages/client/ui-chat/src/client/apply.ts
|
|
44
44
|
var import_dsh_client_store6 = require("@deepseek-ai/dsh-client-store");
|
|
45
45
|
|
|
46
|
-
//
|
|
46
|
+
// node_modules/@deepseek-ai/dsh-util-workspace-path/lib/index.js
|
|
47
47
|
var FILE_ADDRESS_PREFIX = "dsh-resource://file/";
|
|
48
48
|
function encodeSegment(segment) {
|
|
49
49
|
return encodeURIComponent(segment).replace(/%3A/gi, ":");
|
|
@@ -80,7 +80,7 @@ function fileMediaUrl(base, path) {
|
|
|
80
80
|
return new URL(`api/file?path=${encodeURIComponent(path)}`, base).href;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
//
|
|
83
|
+
// .host-source/packages/client/ui-chat/src/client/contract/snapshot.ts
|
|
84
84
|
var EMPTY_LIST = [];
|
|
85
85
|
var EMPTY_TIMELINE = { turnOrder: EMPTY_LIST, turns: /* @__PURE__ */ new Map() };
|
|
86
86
|
var EMPTY_NODE_SOURCE = {
|
|
@@ -124,7 +124,7 @@ var EMPTY_CHAT_SNAPSHOT = {
|
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
|
|
127
|
-
//
|
|
127
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ApprovalCommand.tsx
|
|
128
128
|
function commandOf(call) {
|
|
129
129
|
if (call === void 0) return void 0;
|
|
130
130
|
try {
|
|
@@ -145,19 +145,19 @@ function ApprovalCommand({ callId, useChat }) {
|
|
|
145
145
|
return command ?? null;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
//
|
|
148
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ChatView.tsx
|
|
149
149
|
var import_react19 = require("react");
|
|
150
150
|
var import_dsh_client_ui_primitives9 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
151
151
|
|
|
152
|
-
//
|
|
152
|
+
// .host-source/packages/client/ui-chat/src/client/chat/MessageItem.tsx
|
|
153
153
|
var import_react5 = require("react");
|
|
154
154
|
var import_dsh_client_ui_primitives5 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
155
155
|
|
|
156
|
-
//
|
|
156
|
+
// .host-source/packages/client/ui-chat/src/client/chat/CompactionItem.tsx
|
|
157
157
|
var import_react = require("react");
|
|
158
158
|
var import_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
159
159
|
|
|
160
|
-
//
|
|
160
|
+
// .host-source/packages/client/ui-chat/src/client/markdown-labels.ts
|
|
161
161
|
function markdownLabels(t) {
|
|
162
162
|
return {
|
|
163
163
|
code: { copyLabel: t("copy"), copiedLabel: t("copied"), toolbarLabels: { codeLabel: t("codeBlock.title"), wrapLabel: t("codeBlock.wrap"), unwrapLabel: t("codeBlock.unwrap") } },
|
|
@@ -165,7 +165,7 @@ function markdownLabels(t) {
|
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
//
|
|
168
|
+
// .host-source/packages/client/ui-chat/src/client/chat/MessageItem.module.css
|
|
169
169
|
var MessageItem_default = {
|
|
170
170
|
userRow: "MessageItem_userRow",
|
|
171
171
|
userStack: "MessageItem_userStack",
|
|
@@ -201,7 +201,7 @@ var MessageItem_default = {
|
|
|
201
201
|
fileMeta: "MessageItem_fileMeta"
|
|
202
202
|
};
|
|
203
203
|
|
|
204
|
-
//
|
|
204
|
+
// .host-source/packages/client/ui-chat/src/client/chat/CompactionItem.tsx
|
|
205
205
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
206
206
|
var CompactionItem = (0, import_react.memo)(function CompactionItem2({
|
|
207
207
|
node,
|
|
@@ -250,14 +250,14 @@ var CompactionItem = (0, import_react.memo)(function CompactionItem2({
|
|
|
250
250
|
] });
|
|
251
251
|
});
|
|
252
252
|
|
|
253
|
-
//
|
|
253
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ContextInjectionRow.tsx
|
|
254
254
|
var import_react2 = require("react");
|
|
255
255
|
var import_dsh_client_ui_primitives3 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
256
256
|
|
|
257
|
-
//
|
|
257
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ContextBody.tsx
|
|
258
258
|
var import_dsh_client_ui_primitives2 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
259
259
|
|
|
260
|
-
//
|
|
260
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ContextBody.module.css
|
|
261
261
|
var ContextBody_default = {
|
|
262
262
|
text: "ContextBody_text",
|
|
263
263
|
fields: "ContextBody_fields",
|
|
@@ -284,7 +284,7 @@ var ContextBody_default = {
|
|
|
284
284
|
recallCounts: "ContextBody_recallCounts"
|
|
285
285
|
};
|
|
286
286
|
|
|
287
|
-
//
|
|
287
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ContextBody.tsx
|
|
288
288
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
289
289
|
var MAX_CHARS = 2e4;
|
|
290
290
|
var MAX_ENTRIES = 200;
|
|
@@ -531,7 +531,7 @@ function contextBody(form, props) {
|
|
|
531
531
|
}
|
|
532
532
|
}
|
|
533
533
|
|
|
534
|
-
//
|
|
534
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ContextInjectionRow.module.css
|
|
535
535
|
var ContextInjectionRow_default = {
|
|
536
536
|
root: "ContextInjectionRow_root",
|
|
537
537
|
chevron: "ContextInjectionRow_chevron",
|
|
@@ -542,7 +542,7 @@ var ContextInjectionRow_default = {
|
|
|
542
542
|
toolChanges: "ContextInjectionRow_toolChanges"
|
|
543
543
|
};
|
|
544
544
|
|
|
545
|
-
//
|
|
545
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ContextInjectionRow.tsx
|
|
546
546
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
547
547
|
function ContextInjectionRow({ content, source, producer, form, t }) {
|
|
548
548
|
const [open, setOpen] = (0, import_react2.useState)(false);
|
|
@@ -590,11 +590,11 @@ function ContextInjectionRow({ content, source, producer, form, t }) {
|
|
|
590
590
|
);
|
|
591
591
|
}
|
|
592
592
|
|
|
593
|
-
//
|
|
593
|
+
// .host-source/packages/client/ui-chat/src/client/chat/MessageIconActions.tsx
|
|
594
594
|
var import_react4 = require("react");
|
|
595
595
|
var import_dsh_client_ui_primitives4 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
596
596
|
|
|
597
|
-
//
|
|
597
|
+
// .host-source/packages/client/ui-chat/src/client/chat/message-chrome.ts
|
|
598
598
|
var LIVE_RUN_CLOCK_INTERVAL_MS = 1e3;
|
|
599
599
|
function pad2(n) {
|
|
600
600
|
return String(n).padStart(2, "0");
|
|
@@ -636,7 +636,7 @@ function formatMessageClock(time, t, now = Date.now()) {
|
|
|
636
636
|
return `${md} ${clock}`;
|
|
637
637
|
}
|
|
638
638
|
|
|
639
|
-
//
|
|
639
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-calendar-day.ts
|
|
640
640
|
var import_react3 = require("react");
|
|
641
641
|
function useCalendarDay() {
|
|
642
642
|
const [day, setDay] = (0, import_react3.useState)(() => startOfLocalDay(Date.now()));
|
|
@@ -655,7 +655,7 @@ function useCalendarDay() {
|
|
|
655
655
|
return day;
|
|
656
656
|
}
|
|
657
657
|
|
|
658
|
-
//
|
|
658
|
+
// .host-source/packages/client/ui-chat/src/client/chat/MessageIconActions.module.css
|
|
659
659
|
var MessageIconActions_default = {
|
|
660
660
|
actions: "MessageIconActions_actions",
|
|
661
661
|
timeStart: "MessageIconActions_timeStart",
|
|
@@ -665,7 +665,7 @@ var MessageIconActions_default = {
|
|
|
665
665
|
visuallyHidden: "MessageIconActions_visuallyHidden"
|
|
666
666
|
};
|
|
667
667
|
|
|
668
|
-
//
|
|
668
|
+
// .host-source/packages/client/ui-chat/src/client/chat/MessageIconActions.tsx
|
|
669
669
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
670
670
|
function MessageIconActions({
|
|
671
671
|
text,
|
|
@@ -730,7 +730,7 @@ function MessageIconActions({
|
|
|
730
730
|
] });
|
|
731
731
|
}
|
|
732
732
|
|
|
733
|
-
//
|
|
733
|
+
// .host-source/packages/client/ui-chat/src/client/chat/MessageItem.tsx
|
|
734
734
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
735
735
|
function contentParts(content) {
|
|
736
736
|
const texts = [];
|
|
@@ -996,12 +996,12 @@ var UnknownNodeView = (0, import_react5.memo)(function UnknownNodeView2({ node,
|
|
|
996
996
|
) });
|
|
997
997
|
});
|
|
998
998
|
|
|
999
|
-
//
|
|
999
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ChatNodeSeat.tsx
|
|
1000
1000
|
var import_react7 = require("react");
|
|
1001
1001
|
var import_dsh_client_ui_primitives6 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
1002
1002
|
var import_dsh_client_store2 = require("@deepseek-ai/dsh-client-store");
|
|
1003
1003
|
|
|
1004
|
-
//
|
|
1004
|
+
// .host-source/packages/client/ui-chat/src/client/contract/turn-process.ts
|
|
1005
1005
|
var TURN_PROCESS_INDEPENDENT_KIND_LIST = [
|
|
1006
1006
|
"system-prompt",
|
|
1007
1007
|
"user",
|
|
@@ -1028,7 +1028,7 @@ function turnProcessAlwaysOpen(node) {
|
|
|
1028
1028
|
return location.turn.status === "open" || reason === "aborted" || reason === "error";
|
|
1029
1029
|
}
|
|
1030
1030
|
|
|
1031
|
-
//
|
|
1031
|
+
// .host-source/packages/client/ui-chat/src/client/stores.ts
|
|
1032
1032
|
var import_dsh_client_store = require("@deepseek-ai/dsh-client-store");
|
|
1033
1033
|
function storedTurnProcessEntry(state, turn) {
|
|
1034
1034
|
return state.turnProcesses.find((entry) => entry.turn === turn);
|
|
@@ -1051,7 +1051,7 @@ function createChatStore() {
|
|
|
1051
1051
|
});
|
|
1052
1052
|
}
|
|
1053
1053
|
|
|
1054
|
-
//
|
|
1054
|
+
// .host-source/packages/client/ui-chat/src/client/chat/searchable-hidden.ts
|
|
1055
1055
|
var import_react6 = require("react");
|
|
1056
1056
|
function useSearchableHidden(hidden, reveal) {
|
|
1057
1057
|
const ref = (0, import_react6.useRef)(null);
|
|
@@ -1076,7 +1076,7 @@ function useSearchableHidden(hidden, reveal) {
|
|
|
1076
1076
|
return ref;
|
|
1077
1077
|
}
|
|
1078
1078
|
|
|
1079
|
-
//
|
|
1079
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ChatView.module.css
|
|
1080
1080
|
var ChatView_default = {
|
|
1081
1081
|
frame: "ChatView_frame",
|
|
1082
1082
|
root: "ChatView_root",
|
|
@@ -1099,7 +1099,7 @@ var ChatView_default = {
|
|
|
1099
1099
|
modalAction: "ChatView_modalAction"
|
|
1100
1100
|
};
|
|
1101
1101
|
|
|
1102
|
-
//
|
|
1102
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ChatNodeSeat.tsx
|
|
1103
1103
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
1104
1104
|
function turnDataOf(node) {
|
|
1105
1105
|
const location = node?.location;
|
|
@@ -1240,17 +1240,17 @@ var ChatNodeSeat = (0, import_react7.memo)(function ChatNodeSeat2({
|
|
|
1240
1240
|
);
|
|
1241
1241
|
});
|
|
1242
1242
|
|
|
1243
|
-
//
|
|
1243
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ChatGroupSeat.tsx
|
|
1244
1244
|
var import_react11 = require("react");
|
|
1245
1245
|
var import_dsh_client_ui_primitives7 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
1246
1246
|
|
|
1247
|
-
//
|
|
1247
|
+
// node_modules/@deepseek-ai/dsh-util-values/lib/index.js
|
|
1248
1248
|
function assertNever(value, context) {
|
|
1249
1249
|
const rendered = JSON.stringify(value) ?? String(value);
|
|
1250
1250
|
throw new Error(`unreachable variant${context ? ` in ${context}` : ""}: ${rendered}`);
|
|
1251
1251
|
}
|
|
1252
1252
|
|
|
1253
|
-
//
|
|
1253
|
+
// .host-source/packages/client/ui-chat/src/client/chat/render-entry.ts
|
|
1254
1254
|
function chatRenderKey(entry) {
|
|
1255
1255
|
switch (entry.kind) {
|
|
1256
1256
|
case "node":
|
|
@@ -1262,7 +1262,7 @@ function chatRenderKey(entry) {
|
|
|
1262
1262
|
}
|
|
1263
1263
|
}
|
|
1264
1264
|
|
|
1265
|
-
//
|
|
1265
|
+
// .host-source/packages/client/ui-chat/src/client/chat/step-process.ts
|
|
1266
1266
|
function processTitle(summary, t) {
|
|
1267
1267
|
const labels = summary.counts.slice(0, 3).map(({ kind }) => t(`message.stepProcess.done.${kind}`));
|
|
1268
1268
|
const first = labels[0];
|
|
@@ -1279,7 +1279,7 @@ function processTitle(summary, t) {
|
|
|
1279
1279
|
return summary.counts.length > 3 ? t("message.stepProcess.more", { title }) : title;
|
|
1280
1280
|
}
|
|
1281
1281
|
|
|
1282
|
-
//
|
|
1282
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-disclosure.ts
|
|
1283
1283
|
var import_react8 = require("react");
|
|
1284
1284
|
function useDisclosure(version = 0) {
|
|
1285
1285
|
const [expandedVersion, setExpandedVersion] = (0, import_react8.useState)(null);
|
|
@@ -1301,10 +1301,10 @@ function bindDisclosure(reset) {
|
|
|
1301
1301
|
};
|
|
1302
1302
|
}
|
|
1303
1303
|
|
|
1304
|
-
//
|
|
1304
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-process-scroll.ts
|
|
1305
1305
|
var import_react10 = require("react");
|
|
1306
1306
|
|
|
1307
|
-
//
|
|
1307
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-scroll-follow.ts
|
|
1308
1308
|
var import_react9 = require("react");
|
|
1309
1309
|
function scrollMetrics(element) {
|
|
1310
1310
|
const height = element.clientHeight;
|
|
@@ -1455,7 +1455,7 @@ function useScrollFollow(initial, threshold) {
|
|
|
1455
1455
|
return follow;
|
|
1456
1456
|
}
|
|
1457
1457
|
|
|
1458
|
-
//
|
|
1458
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-process-scroll.ts
|
|
1459
1459
|
var AT_REST = { canScrollUp: false, canScrollDown: false };
|
|
1460
1460
|
var SCROLL_KEYS = /* @__PURE__ */ new Set(["ArrowUp", "ArrowDown", "PageUp", "PageDown", "Home", "End", " "]);
|
|
1461
1461
|
function useProcessScroll(bodyRef, contentRef, open, grouped) {
|
|
@@ -1529,7 +1529,7 @@ function useProcessScroll(bodyRef, contentRef, open, grouped) {
|
|
|
1529
1529
|
return { edges, events, initialize };
|
|
1530
1530
|
}
|
|
1531
1531
|
|
|
1532
|
-
//
|
|
1532
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ChatGroupSeat.module.css
|
|
1533
1533
|
var ChatGroupSeat_default = {
|
|
1534
1534
|
root: "ChatGroupSeat_root",
|
|
1535
1535
|
title: "ChatGroupSeat_title",
|
|
@@ -1544,7 +1544,7 @@ var ChatGroupSeat_default = {
|
|
|
1544
1544
|
expandedBody: "ChatGroupSeat_expandedBody"
|
|
1545
1545
|
};
|
|
1546
1546
|
|
|
1547
|
-
//
|
|
1547
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ChatGroupSeat.tsx
|
|
1548
1548
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1549
1549
|
var import_react12 = require("react");
|
|
1550
1550
|
var PROCESS_TITLE_MINIMUM_MS = 150;
|
|
@@ -1726,7 +1726,7 @@ var ChatGroupSeat = (0, import_react11.memo)(function ChatGroupSeat2({ groupKey,
|
|
|
1726
1726
|
);
|
|
1727
1727
|
});
|
|
1728
1728
|
|
|
1729
|
-
//
|
|
1729
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnNavigator.tsx
|
|
1730
1730
|
var import_react13 = require("react");
|
|
1731
1731
|
|
|
1732
1732
|
// node_modules/@tanstack/react-virtual/dist/esm/index.js
|
|
@@ -3207,7 +3207,7 @@ function useVirtualizer(options) {
|
|
|
3207
3207
|
});
|
|
3208
3208
|
}
|
|
3209
3209
|
|
|
3210
|
-
//
|
|
3210
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnNavigator.module.css
|
|
3211
3211
|
var TurnNavigator_default = {
|
|
3212
3212
|
slot: "TurnNavigator_slot",
|
|
3213
3213
|
frame: "TurnNavigator_frame",
|
|
@@ -3227,7 +3227,7 @@ var TurnNavigator_default = {
|
|
|
3227
3227
|
previewResponse: "TurnNavigator_previewResponse"
|
|
3228
3228
|
};
|
|
3229
3229
|
|
|
3230
|
-
//
|
|
3230
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnNavigator.tsx
|
|
3231
3231
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
3232
3232
|
var TURN_SPACING_PX = 10;
|
|
3233
3233
|
var RAIL_INSET_PX = 6;
|
|
@@ -3481,11 +3481,11 @@ function TurnNavigatorRail({ items, activeTurn, busyTurn, onNavigate, t }, ref)
|
|
|
3481
3481
|
}
|
|
3482
3482
|
var TurnNavigator = (0, import_react13.memo)((0, import_react13.forwardRef)(TurnNavigatorRail));
|
|
3483
3483
|
|
|
3484
|
-
//
|
|
3484
|
+
// .host-source/packages/client/ui-chat/src/client/chat/RunningStatus.tsx
|
|
3485
3485
|
var import_react14 = require("react");
|
|
3486
3486
|
var import_dsh_client_ui_primitives8 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
3487
3487
|
|
|
3488
|
-
//
|
|
3488
|
+
// .host-source/packages/client/ui-chat/src/client/chat/RunningWhaleTail.tsx
|
|
3489
3489
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
3490
3490
|
var REST_PATH = "M8.844 13.742C8.967 12.328 8.45 10.4 8.45 9.65C8.45 8.94 8.88 8.43 9.6 8.43C11.285 8.43 12.106 8.281 12.685 8.104C13.71 7.791 14.585 6.768 15.055 5.945C15.137 5.803 14.99 5.641 14.829 5.671C13.829 5.86 12.828 5.376 11.827 4.978C10.659 4.514 9.491 4.707 8.935 4.876C8.805 4.915 8.658 4.819 8.636 4.686C8.468 3.643 7.405 2.615 5.498 2.238C4.54 2.048 3.748 1.574 3.347 1.202C3.252 1.113 3.088 1.125 3.03 1.242C2.628 2.059 2.168 3.82 5.248 6.115C5.82 6.494 6.31 6.785 6.574 7.637C6.72 8.104 6.157 9.168 6.061 9.368C5.157 11.27 5.089 12.19 4.926 13.742";
|
|
3491
3491
|
function RunningWhaleTail() {
|
|
@@ -3495,12 +3495,12 @@ function RunningWhaleTail() {
|
|
|
3495
3495
|
] });
|
|
3496
3496
|
}
|
|
3497
3497
|
|
|
3498
|
-
//
|
|
3498
|
+
// .host-source/packages/client/ui-chat/src/client/chat/accessibility.module.css
|
|
3499
3499
|
var accessibility_default = {
|
|
3500
3500
|
visuallyHidden: "accessibility_visuallyHidden"
|
|
3501
3501
|
};
|
|
3502
3502
|
|
|
3503
|
-
//
|
|
3503
|
+
// .host-source/packages/client/ui-chat/src/client/chat/RunningStatus.tsx
|
|
3504
3504
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
3505
3505
|
var RunningStatus = (0, import_react14.memo)(function RunningStatus2({ startTime, t }) {
|
|
3506
3506
|
const [now, setNow] = (0, import_react14.useState)(Date.now);
|
|
@@ -3527,7 +3527,7 @@ var RunningStatus = (0, import_react14.memo)(function RunningStatus2({ startTime
|
|
|
3527
3527
|
] });
|
|
3528
3528
|
});
|
|
3529
3529
|
|
|
3530
|
-
//
|
|
3530
|
+
// node_modules/@deepseek-ai/dsh-brand/lib/index.js
|
|
3531
3531
|
function brandString(value) {
|
|
3532
3532
|
return value;
|
|
3533
3533
|
}
|
|
@@ -3535,7 +3535,7 @@ function brandNumber(value) {
|
|
|
3535
3535
|
return value;
|
|
3536
3536
|
}
|
|
3537
3537
|
|
|
3538
|
-
//
|
|
3538
|
+
// node_modules/@deepseek-ai/dsh-session/lib/types/types.js
|
|
3539
3539
|
function SessionSeq(value) {
|
|
3540
3540
|
if (!Number.isSafeInteger(value) || value < 0 || Object.is(value, -0)) {
|
|
3541
3541
|
throw new TypeError(`SessionSeq must be a non-negative safe integer, got ${String(value)}`);
|
|
@@ -3543,7 +3543,7 @@ function SessionSeq(value) {
|
|
|
3543
3543
|
return brandNumber(value);
|
|
3544
3544
|
}
|
|
3545
3545
|
|
|
3546
|
-
//
|
|
3546
|
+
// .host-source/packages/client/ui-chat/src/client/chat/turn-rail-items.ts
|
|
3547
3547
|
var EMPTY_ITEMS = [];
|
|
3548
3548
|
function outlineEntry(value) {
|
|
3549
3549
|
if (typeof value !== "object" || value === null) return void 0;
|
|
@@ -3585,10 +3585,10 @@ function mergeTurnRailItems(loaded, outline) {
|
|
|
3585
3585
|
return [...byTurn.values()].sort((left, right) => left.turn - right.turn);
|
|
3586
3586
|
}
|
|
3587
3587
|
|
|
3588
|
-
//
|
|
3588
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-chat-scroll.ts
|
|
3589
3589
|
var import_react18 = require("react");
|
|
3590
3590
|
|
|
3591
|
-
//
|
|
3591
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-chat-navigation.ts
|
|
3592
3592
|
var import_react15 = require("react");
|
|
3593
3593
|
var ChatNavigation = class {
|
|
3594
3594
|
constructor(viewport, reading, input, onBusyTurn) {
|
|
@@ -3760,7 +3760,7 @@ function useChatNavigation(viewport, reading, input) {
|
|
|
3760
3760
|
return { navigation, busyTurn };
|
|
3761
3761
|
}
|
|
3762
3762
|
|
|
3763
|
-
//
|
|
3763
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-chat-reading.ts
|
|
3764
3764
|
var import_react16 = require("react");
|
|
3765
3765
|
var FOLLOW_THRESHOLD = 24;
|
|
3766
3766
|
var SCROLL_SAMPLE_INTERVAL_MS = 500;
|
|
@@ -3957,7 +3957,7 @@ function useChatReading(viewport, store, initialTurn) {
|
|
|
3957
3957
|
return { reading, state };
|
|
3958
3958
|
}
|
|
3959
3959
|
|
|
3960
|
-
//
|
|
3960
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-chat-viewport.ts
|
|
3961
3961
|
var import_react17 = require("react");
|
|
3962
3962
|
var READING_INTENTS = ["wheel", "touchstart", "pointerdown", "keydown", "beforematch"];
|
|
3963
3963
|
var SCROLL_KEYS2 = /* @__PURE__ */ new Set(["ArrowUp", "ArrowDown", "PageUp", "PageDown", "Home", "End", " "]);
|
|
@@ -4352,7 +4352,7 @@ function useChatViewport() {
|
|
|
4352
4352
|
return { viewport, listRef, columnRef };
|
|
4353
4353
|
}
|
|
4354
4354
|
|
|
4355
|
-
//
|
|
4355
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-chat-scroll.ts
|
|
4356
4356
|
function useChatScroll(input) {
|
|
4357
4357
|
const {
|
|
4358
4358
|
ready,
|
|
@@ -4487,7 +4487,7 @@ function useChatScroll(input) {
|
|
|
4487
4487
|
};
|
|
4488
4488
|
}
|
|
4489
4489
|
|
|
4490
|
-
//
|
|
4490
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ChatView.tsx
|
|
4491
4491
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
4492
4492
|
var import_react20 = require("react");
|
|
4493
4493
|
function openFailureMessage(error, fallback) {
|
|
@@ -4784,7 +4784,7 @@ function FileOpenErrorDialog({
|
|
|
4784
4784
|
);
|
|
4785
4785
|
}
|
|
4786
4786
|
|
|
4787
|
-
//
|
|
4787
|
+
// .host-source/packages/client/ui-chat/src/client/locale.ts
|
|
4788
4788
|
var NS = "chat";
|
|
4789
4789
|
var zh = {
|
|
4790
4790
|
"message.stepProcess.thinking": "\u6B63\u5728\u5206\u6790\u8BF7\u6C42",
|
|
@@ -5163,18 +5163,18 @@ var en = {
|
|
|
5163
5163
|
"clock.ymd": "{y}-{m}-{d}"
|
|
5164
5164
|
};
|
|
5165
5165
|
|
|
5166
|
-
//
|
|
5166
|
+
// .host-source/packages/client/ui-chat/src/client/chat/AssistantNodeView.tsx
|
|
5167
5167
|
var import_react23 = require("react");
|
|
5168
5168
|
|
|
5169
|
-
//
|
|
5169
|
+
// .host-source/packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx
|
|
5170
5170
|
var import_react22 = require("react");
|
|
5171
5171
|
var import_dsh_client_ui_primitives11 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
5172
5172
|
|
|
5173
|
-
//
|
|
5173
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ReasoningRow.tsx
|
|
5174
5174
|
var import_react21 = require("react");
|
|
5175
5175
|
var import_dsh_client_ui_primitives10 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
5176
5176
|
|
|
5177
|
-
//
|
|
5177
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ReasoningRow.module.css
|
|
5178
5178
|
var ReasoningRow_default = {
|
|
5179
5179
|
root: "ReasoningRow_root",
|
|
5180
5180
|
row: "ReasoningRow_row",
|
|
@@ -5186,7 +5186,7 @@ var ReasoningRow_default = {
|
|
|
5186
5186
|
thinkBody: "ReasoningRow_thinkBody"
|
|
5187
5187
|
};
|
|
5188
5188
|
|
|
5189
|
-
//
|
|
5189
|
+
// .host-source/packages/client/ui-chat/src/client/chat/ReasoningRow.tsx
|
|
5190
5190
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
5191
5191
|
var THINK_ICON = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_dsh_client_ui_primitives10.IconThinkOutlineRegular, { size: 14 });
|
|
5192
5192
|
function firstLine(text) {
|
|
@@ -5252,7 +5252,7 @@ var ReasoningRow = (0, import_react21.memo)(function ReasoningRow2({ text, runni
|
|
|
5252
5252
|
);
|
|
5253
5253
|
});
|
|
5254
5254
|
|
|
5255
|
-
//
|
|
5255
|
+
// .host-source/packages/client/ui-chat/src/client/chat/AssistantMarkdown.module.css
|
|
5256
5256
|
var AssistantMarkdown_default = {
|
|
5257
5257
|
root: "AssistantMarkdown_root",
|
|
5258
5258
|
body: "AssistantMarkdown_body",
|
|
@@ -5260,7 +5260,7 @@ var AssistantMarkdown_default = {
|
|
|
5260
5260
|
actions: "AssistantMarkdown_actions"
|
|
5261
5261
|
};
|
|
5262
5262
|
|
|
5263
|
-
//
|
|
5263
|
+
// .host-source/packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx
|
|
5264
5264
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
5265
5265
|
function localPathMediaUrl(base, value) {
|
|
5266
5266
|
let path;
|
|
@@ -5381,7 +5381,7 @@ function ProcessReasoning({ hidden, reveal, children }) {
|
|
|
5381
5381
|
var NOOP = () => {
|
|
5382
5382
|
};
|
|
5383
5383
|
|
|
5384
|
-
//
|
|
5384
|
+
// .host-source/packages/client/ui-chat/src/client/chat/AssistantNodeView.tsx
|
|
5385
5385
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
5386
5386
|
var AssistantNodeView = (0, import_react23.memo)(function AssistantNodeView2({
|
|
5387
5387
|
node,
|
|
@@ -5429,14 +5429,14 @@ var AssistantNodeView = (0, import_react23.memo)(function AssistantNodeView2({
|
|
|
5429
5429
|
);
|
|
5430
5430
|
});
|
|
5431
5431
|
|
|
5432
|
-
//
|
|
5432
|
+
// .host-source/packages/client/ui-chat/src/client/chat/CommandNodeView.tsx
|
|
5433
5433
|
var import_react25 = require("react");
|
|
5434
5434
|
|
|
5435
|
-
//
|
|
5435
|
+
// .host-source/packages/client/ui-chat/src/client/chat/GenericCommandCard.tsx
|
|
5436
5436
|
var import_react24 = require("react");
|
|
5437
5437
|
var import_dsh_client_ui_primitives12 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
5438
5438
|
|
|
5439
|
-
//
|
|
5439
|
+
// .host-source/packages/client/ui-chat/src/client/chat/GenericCommandCard.module.css
|
|
5440
5440
|
var GenericCommandCard_default = {
|
|
5441
5441
|
root: "GenericCommandCard_root",
|
|
5442
5442
|
leading: "GenericCommandCard_leading",
|
|
@@ -5446,7 +5446,7 @@ var GenericCommandCard_default = {
|
|
|
5446
5446
|
body: "GenericCommandCard_body"
|
|
5447
5447
|
};
|
|
5448
5448
|
|
|
5449
|
-
//
|
|
5449
|
+
// .host-source/packages/client/ui-chat/src/client/chat/GenericCommandCard.tsx
|
|
5450
5450
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
5451
5451
|
var COMMAND_ICON = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_dsh_client_ui_primitives12.IconApiOutlineRegular, { size: 14 });
|
|
5452
5452
|
function stateOf(outcome) {
|
|
@@ -5493,7 +5493,7 @@ var GenericCommandCard = (0, import_react24.memo)(function GenericCommandCard2({
|
|
|
5493
5493
|
] });
|
|
5494
5494
|
});
|
|
5495
5495
|
|
|
5496
|
-
//
|
|
5496
|
+
// .host-source/packages/client/ui-chat/src/client/chat/CompactionCommandCard.tsx
|
|
5497
5497
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
5498
5498
|
function CompactionCommandCard({ node, compaction, t }) {
|
|
5499
5499
|
if (compaction !== void 0) {
|
|
@@ -5511,7 +5511,7 @@ function CompactionCommandCard({ node, compaction, t }) {
|
|
|
5511
5511
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(GenericCommandCard, { node, t, runningSummary: t("message.compaction.running") });
|
|
5512
5512
|
}
|
|
5513
5513
|
|
|
5514
|
-
//
|
|
5514
|
+
// .host-source/packages/client/ui-chat/src/client/chat/CommandNodeView.tsx
|
|
5515
5515
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
5516
5516
|
var CommandNodeView = (0, import_react25.memo)(function CommandNodeView2({ node, renderSlot, t }) {
|
|
5517
5517
|
const command = node.data;
|
|
@@ -5536,7 +5536,7 @@ var ManualCompactionNodeView = (0, import_react25.memo)(function ManualCompactio
|
|
|
5536
5536
|
) });
|
|
5537
5537
|
});
|
|
5538
5538
|
|
|
5539
|
-
//
|
|
5539
|
+
// .host-source/packages/client/ui-chat/src/client/chat/SystemPromptRow.tsx
|
|
5540
5540
|
var import_react26 = require("react");
|
|
5541
5541
|
var import_dsh_client_ui_primitives13 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
5542
5542
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
@@ -5566,11 +5566,11 @@ var SystemPromptNodeView = (0, import_react26.memo)(function SystemPromptNodeVie
|
|
|
5566
5566
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SystemPromptRow, { text: node.data.text, update: node.data.update === true, t });
|
|
5567
5567
|
});
|
|
5568
5568
|
|
|
5569
|
-
//
|
|
5569
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnProcessNodeView.tsx
|
|
5570
5570
|
var import_react27 = require("react");
|
|
5571
5571
|
var import_dsh_client_ui_primitives14 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
5572
5572
|
|
|
5573
|
-
//
|
|
5573
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnProcessNodeView.module.css
|
|
5574
5574
|
var TurnProcessNodeView_default = {
|
|
5575
5575
|
root: "TurnProcessNodeView_root",
|
|
5576
5576
|
chevron: "TurnProcessNodeView_chevron",
|
|
@@ -5578,7 +5578,7 @@ var TurnProcessNodeView_default = {
|
|
|
5578
5578
|
durationNumber: "TurnProcessNodeView_durationNumber"
|
|
5579
5579
|
};
|
|
5580
5580
|
|
|
5581
|
-
//
|
|
5581
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnProcessNodeView.tsx
|
|
5582
5582
|
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
5583
5583
|
var TurnProcessNodeView = (0, import_react27.memo)(function TurnProcessNodeView2({
|
|
5584
5584
|
node,
|
|
@@ -5625,14 +5625,14 @@ var TurnProcessNodeView = (0, import_react27.memo)(function TurnProcessNodeView2
|
|
|
5625
5625
|
] });
|
|
5626
5626
|
});
|
|
5627
5627
|
|
|
5628
|
-
//
|
|
5628
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnTailNodeView.tsx
|
|
5629
5629
|
var import_react29 = require("react");
|
|
5630
5630
|
|
|
5631
|
-
//
|
|
5631
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnUsagePanel.tsx
|
|
5632
5632
|
var import_react_dom2 = require("react-dom");
|
|
5633
5633
|
var import_dsh_client_ui_primitives16 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
5634
5634
|
|
|
5635
|
-
//
|
|
5635
|
+
// .host-source/packages/client/ui-chat/src/client/chat/token-format.ts
|
|
5636
5636
|
function formatTokens(value, t) {
|
|
5637
5637
|
const scaled = (candidate) => candidate >= 100 ? String(Math.round(candidate)) : String(Math.round(candidate * 10) / 10);
|
|
5638
5638
|
if (value < 1e3) return String(value);
|
|
@@ -5697,7 +5697,7 @@ function formatCacheHitPercent(cacheReadTokens, promptTokens, decimalPlaces = 0)
|
|
|
5697
5697
|
return `99.${"9".repeat(distinguishingPlaces - 1)}${10 - roundedLoss}`;
|
|
5698
5698
|
}
|
|
5699
5699
|
|
|
5700
|
-
//
|
|
5700
|
+
// .host-source/packages/client/ui-chat/src/client/chat/stat-dialog.ts
|
|
5701
5701
|
var import_react28 = require("react");
|
|
5702
5702
|
var import_dsh_client_ui_primitives15 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
5703
5703
|
var PANEL_MARGIN = 12;
|
|
@@ -5731,14 +5731,14 @@ function useStatDialog(controlled) {
|
|
|
5731
5731
|
return { open, setOpen, rootRef, panelRef, pos };
|
|
5732
5732
|
}
|
|
5733
5733
|
|
|
5734
|
-
//
|
|
5734
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnUsagePanel.module.css
|
|
5735
5735
|
var TurnUsagePanel_default = {
|
|
5736
5736
|
root: "TurnUsagePanel_root",
|
|
5737
5737
|
trigger: "TurnUsagePanel_trigger",
|
|
5738
5738
|
label: "TurnUsagePanel_label"
|
|
5739
5739
|
};
|
|
5740
5740
|
|
|
5741
|
-
//
|
|
5741
|
+
// .host-source/packages/client/ui-chat/src/client/chat/stat-dialog.module.css
|
|
5742
5742
|
var stat_dialog_default = {
|
|
5743
5743
|
panel: "stat_dialog_panel",
|
|
5744
5744
|
title: "stat_dialog_title",
|
|
@@ -5750,7 +5750,7 @@ var stat_dialog_default = {
|
|
|
5750
5750
|
reasoning: "stat_dialog_reasoning"
|
|
5751
5751
|
};
|
|
5752
5752
|
|
|
5753
|
-
//
|
|
5753
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnUsagePanel.tsx
|
|
5754
5754
|
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
5755
5755
|
function formatCompactCount(value, t) {
|
|
5756
5756
|
return t("message.turnUsage.count", { count: formatTokens(value, t) });
|
|
@@ -5831,12 +5831,12 @@ function TurnUsagePanel({ usage, t }) {
|
|
|
5831
5831
|
] });
|
|
5832
5832
|
}
|
|
5833
5833
|
|
|
5834
|
-
//
|
|
5834
|
+
// .host-source/packages/client/ui-chat/src/client/chat/turn-assistant.ts
|
|
5835
5835
|
function assistantText(blocks) {
|
|
5836
5836
|
return blocks.flatMap((block) => block.kind === "text" ? [block.text] : []).join("");
|
|
5837
5837
|
}
|
|
5838
5838
|
|
|
5839
|
-
//
|
|
5839
|
+
// .host-source/packages/client/ui-chat/src/client/contract/assistant-content.ts
|
|
5840
5840
|
function hasAssistantReplyContent(blocks) {
|
|
5841
5841
|
return blocks.some((block) => {
|
|
5842
5842
|
if (block.kind === "reasoning" || block.kind === "tool-call") return false;
|
|
@@ -5845,13 +5845,13 @@ function hasAssistantReplyContent(blocks) {
|
|
|
5845
5845
|
});
|
|
5846
5846
|
}
|
|
5847
5847
|
|
|
5848
|
-
//
|
|
5848
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnTailNodeView.module.css
|
|
5849
5849
|
var TurnTailNodeView_default = {
|
|
5850
5850
|
root: "TurnTailNodeView_root",
|
|
5851
5851
|
actions: "TurnTailNodeView_actions"
|
|
5852
5852
|
};
|
|
5853
5853
|
|
|
5854
|
-
//
|
|
5854
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnTailNodeView.tsx
|
|
5855
5855
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
5856
5856
|
function lastContent(snapshot2, turn, skipWarning) {
|
|
5857
5857
|
const keys = snapshot2.locations.getTurn(turn);
|
|
@@ -5917,11 +5917,11 @@ var TurnTailNodeView = (0, import_react29.memo)(function TurnTailNodeView2({
|
|
|
5917
5917
|
);
|
|
5918
5918
|
});
|
|
5919
5919
|
|
|
5920
|
-
//
|
|
5920
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnTriggerNodeView.tsx
|
|
5921
5921
|
var import_react30 = require("react");
|
|
5922
5922
|
var import_dsh_client_ui_primitives17 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
5923
5923
|
|
|
5924
|
-
//
|
|
5924
|
+
// .host-source/packages/client/ui-chat/src/client/chat/turn-trigger.ts
|
|
5925
5925
|
function record(value) {
|
|
5926
5926
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : {};
|
|
5927
5927
|
}
|
|
@@ -5976,7 +5976,7 @@ function turnTriggerDetails(node) {
|
|
|
5976
5976
|
return { title, icon };
|
|
5977
5977
|
}
|
|
5978
5978
|
|
|
5979
|
-
//
|
|
5979
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnTriggerNodeView.module.css
|
|
5980
5980
|
var TurnTriggerNodeView_default = {
|
|
5981
5981
|
root: "TurnTriggerNodeView_root",
|
|
5982
5982
|
header: "TurnTriggerNodeView_header",
|
|
@@ -5990,7 +5990,7 @@ var TurnTriggerNodeView_default = {
|
|
|
5990
5990
|
content: "TurnTriggerNodeView_content"
|
|
5991
5991
|
};
|
|
5992
5992
|
|
|
5993
|
-
//
|
|
5993
|
+
// .host-source/packages/client/ui-chat/src/client/chat/TurnTriggerNodeView.tsx
|
|
5994
5994
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
5995
5995
|
var TRIGGER_ICONS = {
|
|
5996
5996
|
request: import_dsh_client_ui_primitives17.IconContextInjectionOutlineRegular,
|
|
@@ -6027,7 +6027,7 @@ function TurnTriggerNodeView({ node, t }) {
|
|
|
6027
6027
|
] });
|
|
6028
6028
|
}
|
|
6029
6029
|
|
|
6030
|
-
//
|
|
6030
|
+
// .host-source/packages/client/ui-chat/src/client/chat/register-node-renderers.ts
|
|
6031
6031
|
function registerChatNodeRenderers(ctx, performanceUsage, presentation) {
|
|
6032
6032
|
ctx.slots.inject("conversation.chat.node", () => ctx.slots.register(
|
|
6033
6033
|
{ name: "conversation.chat.node", key: "user", locale: NS },
|
|
@@ -6101,12 +6101,12 @@ function registerChatNodeRenderers(ctx, performanceUsage, presentation) {
|
|
|
6101
6101
|
));
|
|
6102
6102
|
}
|
|
6103
6103
|
|
|
6104
|
-
//
|
|
6104
|
+
// .host-source/packages/client/ui-chat/src/client/chat/StatsPills.tsx
|
|
6105
6105
|
var import_react31 = require("react");
|
|
6106
6106
|
var import_react_dom3 = require("react-dom");
|
|
6107
6107
|
var import_dsh_client_ui_primitives18 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
6108
6108
|
|
|
6109
|
-
//
|
|
6109
|
+
// .host-source/packages/client/ui-chat/src/client/contract/turn-metrics.ts
|
|
6110
6110
|
function usageOutputTokens(usage) {
|
|
6111
6111
|
if (typeof usage !== "object" || usage === null) return null;
|
|
6112
6112
|
const value = usage.outputTokens;
|
|
@@ -6119,7 +6119,7 @@ function assistantStepReading(node) {
|
|
|
6119
6119
|
return { ttftMs, decodeMs, outputTokens: usageOutputTokens(node.usage) };
|
|
6120
6120
|
}
|
|
6121
6121
|
|
|
6122
|
-
//
|
|
6122
|
+
// .host-source/packages/client/ui-chat/src/client/chat/StatsPills.module.css
|
|
6123
6123
|
var StatsPills_default = {
|
|
6124
6124
|
root: "StatsPills_root",
|
|
6125
6125
|
anchor: "StatsPills_anchor",
|
|
@@ -6128,7 +6128,7 @@ var StatsPills_default = {
|
|
|
6128
6128
|
sep: "StatsPills_sep"
|
|
6129
6129
|
};
|
|
6130
6130
|
|
|
6131
|
-
//
|
|
6131
|
+
// .host-source/packages/client/ui-chat/src/client/chat/StatsPills.tsx
|
|
6132
6132
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
6133
6133
|
function deriveStats(nodes) {
|
|
6134
6134
|
const turns = /* @__PURE__ */ new Set();
|
|
@@ -6385,7 +6385,7 @@ var StatsPills = (0, import_react31.memo)(function StatsPills2({ useChat, usePro
|
|
|
6385
6385
|
] });
|
|
6386
6386
|
});
|
|
6387
6387
|
|
|
6388
|
-
//
|
|
6388
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/common.ts
|
|
6389
6389
|
var CHAT_SYNTHETIC_SEQ_OFFSETS = {
|
|
6390
6390
|
interruptedAssistant: -0.9,
|
|
6391
6391
|
interruptedFollowup: -0.8,
|
|
@@ -6409,7 +6409,7 @@ function chatNode(context, kind, anchorSeq, data, options = {}) {
|
|
|
6409
6409
|
};
|
|
6410
6410
|
}
|
|
6411
6411
|
|
|
6412
|
-
//
|
|
6412
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/event-projection.ts
|
|
6413
6413
|
function asRecord2(value) {
|
|
6414
6414
|
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : null;
|
|
6415
6415
|
}
|
|
@@ -6520,7 +6520,7 @@ function isTokenDelta(chunk) {
|
|
|
6520
6520
|
}
|
|
6521
6521
|
}
|
|
6522
6522
|
|
|
6523
|
-
//
|
|
6523
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/assistant.ts
|
|
6524
6524
|
function initialState(turn, step) {
|
|
6525
6525
|
return {
|
|
6526
6526
|
turn,
|
|
@@ -6786,10 +6786,10 @@ function registerAssistantConversationNode(ctx) {
|
|
|
6786
6786
|
ctx.uiConversation.events.register(assistantDefinition);
|
|
6787
6787
|
}
|
|
6788
6788
|
|
|
6789
|
-
//
|
|
6789
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/chat-snapshot-builder.ts
|
|
6790
6790
|
var import_dsh_client_store3 = require("@deepseek-ai/dsh-client-store");
|
|
6791
6791
|
|
|
6792
|
-
//
|
|
6792
|
+
// .host-source/packages/client/ui-chat/src/client/contract/chat-nodes.ts
|
|
6793
6793
|
function isSettledTool(block) {
|
|
6794
6794
|
return "kind" in block;
|
|
6795
6795
|
}
|
|
@@ -6797,12 +6797,12 @@ function isRunningTool(block) {
|
|
|
6797
6797
|
return !isSettledTool(block);
|
|
6798
6798
|
}
|
|
6799
6799
|
|
|
6800
|
-
//
|
|
6800
|
+
// .host-source/packages/client/ui-chat/src/client/contract/chat-visibility.ts
|
|
6801
6801
|
function isVisibleChatNode(node) {
|
|
6802
6802
|
return node.visibility === "visible" && node.kind !== "system-prompt" && (node.kind !== "context" || node.data.content.some((block) => block.type === "tool-addition" || block.type === "tool-removal")) && !(node.kind === "command" && node.data.name === "permission");
|
|
6803
6803
|
}
|
|
6804
6804
|
|
|
6805
|
-
//
|
|
6805
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/turn-navigation.ts
|
|
6806
6806
|
var PROMPT_PREVIEW_LIMIT = 50;
|
|
6807
6807
|
var RESPONSE_PREVIEW_LIMIT = 120;
|
|
6808
6808
|
function preview(parts, limit) {
|
|
@@ -6854,7 +6854,7 @@ function turnNavigationItem(turn, locations, nodes) {
|
|
|
6854
6854
|
};
|
|
6855
6855
|
}
|
|
6856
6856
|
|
|
6857
|
-
//
|
|
6857
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/turn-process-presentation.ts
|
|
6858
6858
|
function nodeTurn(node) {
|
|
6859
6859
|
const location = node?.location;
|
|
6860
6860
|
return location?.kind === "turn" || location?.kind === "step" ? location.turn.turn : void 0;
|
|
@@ -6956,7 +6956,7 @@ var ChatTurnProcessProjector = class {
|
|
|
6956
6956
|
}
|
|
6957
6957
|
};
|
|
6958
6958
|
|
|
6959
|
-
//
|
|
6959
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/chat-snapshot-builder.ts
|
|
6960
6960
|
var EMPTY_KEYS = [];
|
|
6961
6961
|
var EMPTY_TURNS = [];
|
|
6962
6962
|
var EMPTY_ITEMS2 = [];
|
|
@@ -7866,7 +7866,7 @@ function registerChatConversationView(ctx) {
|
|
|
7866
7866
|
ctx.uiConversation.views.register(chatViewDefinition);
|
|
7867
7867
|
}
|
|
7868
7868
|
|
|
7869
|
-
//
|
|
7869
|
+
// node_modules/@deepseek-ai/dsh-session/lib/types/surface.js
|
|
7870
7870
|
var SURFACE_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
7871
7871
|
"system/message",
|
|
7872
7872
|
"developer/message",
|
|
@@ -7887,7 +7887,7 @@ function isReplacementSurfaceEvent(event) {
|
|
|
7887
7887
|
return isSurfaceEvent(event) && event.surfaceOp !== "append";
|
|
7888
7888
|
}
|
|
7889
7889
|
|
|
7890
|
-
//
|
|
7890
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/command.ts
|
|
7891
7891
|
var COMPACT_KIND = "compact-checkpoint";
|
|
7892
7892
|
function commandFromRun(match) {
|
|
7893
7893
|
if (match.event.type !== "command/run") throw new Error("command start requires command/run");
|
|
@@ -8022,7 +8022,7 @@ function registerCommandConversationNode(ctx) {
|
|
|
8022
8022
|
ctx.uiConversation.events.register(commandDefinition);
|
|
8023
8023
|
}
|
|
8024
8024
|
|
|
8025
|
-
//
|
|
8025
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/compaction.ts
|
|
8026
8026
|
function fallbackState3(context) {
|
|
8027
8027
|
const summary = context.matches.find((match) => match.event.type === "compaction/summary");
|
|
8028
8028
|
const checkpoint = context.matches.find((match) => compactSource(match.event) !== void 0);
|
|
@@ -8060,7 +8060,7 @@ function registerCompactionConversationNode(ctx) {
|
|
|
8060
8060
|
ctx.uiConversation.events.register(compactionDefinition);
|
|
8061
8061
|
}
|
|
8062
8062
|
|
|
8063
|
-
//
|
|
8063
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/fallback.ts
|
|
8064
8064
|
var unknownFallbackDefinition = {
|
|
8065
8065
|
kind: "unknown-surface",
|
|
8066
8066
|
target: "chat",
|
|
@@ -8079,7 +8079,7 @@ function registerUnknownConversationFallback(ctx) {
|
|
|
8079
8079
|
ctx.uiConversation.events.registerFallback(unknownFallbackDefinition);
|
|
8080
8080
|
}
|
|
8081
8081
|
|
|
8082
|
-
//
|
|
8082
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/inbox.ts
|
|
8083
8083
|
var EMPTY_PENDING = { kind: "snapshot", ids: [] };
|
|
8084
8084
|
var EMPTY_CURRENT_CLAIMED = /* @__PURE__ */ new Set();
|
|
8085
8085
|
function materializePending(state) {
|
|
@@ -8155,7 +8155,7 @@ function registerInboxConversationNodes(ctx) {
|
|
|
8155
8155
|
ctx.uiConversation.events.register(nextTurnInboxDefinition);
|
|
8156
8156
|
}
|
|
8157
8157
|
|
|
8158
|
-
//
|
|
8158
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/message.ts
|
|
8159
8159
|
function isCompactionCheckpoint(event) {
|
|
8160
8160
|
if (event.type !== "user/message" || !isReplacementSurfaceEvent(event)) return false;
|
|
8161
8161
|
const source = event.data.source;
|
|
@@ -8233,7 +8233,7 @@ function registerMessageConversationNode(ctx) {
|
|
|
8233
8233
|
ctx.uiConversation.events.register(developerMessageDefinition);
|
|
8234
8234
|
}
|
|
8235
8235
|
|
|
8236
|
-
//
|
|
8236
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/request-prompt.ts
|
|
8237
8237
|
function requestPromptAnchor(match, previous, isInitial) {
|
|
8238
8238
|
if (match.location.kind !== "step") return match.event.seq;
|
|
8239
8239
|
if (previous === void 0 && !isInitial) return match.event.seq;
|
|
@@ -8317,7 +8317,7 @@ function registerRequestPromptConversationNode(ctx) {
|
|
|
8317
8317
|
));
|
|
8318
8318
|
}
|
|
8319
8319
|
|
|
8320
|
-
//
|
|
8320
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/retry.ts
|
|
8321
8321
|
function scheduledNode(match) {
|
|
8322
8322
|
if (match.event.type !== "llm/retry") return void 0;
|
|
8323
8323
|
return {
|
|
@@ -8378,7 +8378,7 @@ function registerRetryConversationNode(ctx) {
|
|
|
8378
8378
|
ctx.uiConversation.events.register(retryDefinition);
|
|
8379
8379
|
}
|
|
8380
8380
|
|
|
8381
|
-
//
|
|
8381
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/tool.ts
|
|
8382
8382
|
var MAX_DEPTH = 256;
|
|
8383
8383
|
var projectedBlocks = /* @__PURE__ */ new WeakMap();
|
|
8384
8384
|
function jsonArguments(value) {
|
|
@@ -8609,7 +8609,7 @@ function registerToolConversationNode(ctx) {
|
|
|
8609
8609
|
ctx.uiConversation.events.register(toolDefinition);
|
|
8610
8610
|
}
|
|
8611
8611
|
|
|
8612
|
-
//
|
|
8612
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/turn-error.ts
|
|
8613
8613
|
function lastStep(context) {
|
|
8614
8614
|
const location = context.start?.location ?? context.matches[0]?.location;
|
|
8615
8615
|
if (location?.kind !== "turn" && location?.kind !== "step") return 0;
|
|
@@ -8673,7 +8673,7 @@ function registerTurnErrorConversationNode(ctx) {
|
|
|
8673
8673
|
ctx.uiConversation.events.register(turnErrorDefinition);
|
|
8674
8674
|
}
|
|
8675
8675
|
|
|
8676
|
-
//
|
|
8676
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/turn-max-tokens.ts
|
|
8677
8677
|
function lastStep2(context) {
|
|
8678
8678
|
const location = context.start?.location ?? context.matches[0]?.location;
|
|
8679
8679
|
if (location?.kind !== "turn" && location?.kind !== "step") return 0;
|
|
@@ -8721,7 +8721,7 @@ function registerTurnMaxTokensConversationNode(ctx) {
|
|
|
8721
8721
|
ctx.uiConversation.events.register(turnMaxTokensDefinition);
|
|
8722
8722
|
}
|
|
8723
8723
|
|
|
8724
|
-
//
|
|
8724
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/turn-process.ts
|
|
8725
8725
|
function eventTurn(event) {
|
|
8726
8726
|
const data = event.data;
|
|
8727
8727
|
return typeof data.turn === "number" ? data.turn : void 0;
|
|
@@ -8921,7 +8921,7 @@ function registerTurnProcess(ctx) {
|
|
|
8921
8921
|
ctx.uiConversation.events.register(turnProcessDefinition);
|
|
8922
8922
|
}
|
|
8923
8923
|
|
|
8924
|
-
//
|
|
8924
|
+
// node_modules/@deepseek-ai/dsh-llm/lib/types/assistant-stream.js
|
|
8925
8925
|
function lastAssistantStreamChunk(stream, type) {
|
|
8926
8926
|
for (let index = stream.length - 1; index >= 0; index -= 1) {
|
|
8927
8927
|
const record2 = stream[index];
|
|
@@ -8931,7 +8931,7 @@ function lastAssistantStreamChunk(stream, type) {
|
|
|
8931
8931
|
return void 0;
|
|
8932
8932
|
}
|
|
8933
8933
|
|
|
8934
|
-
//
|
|
8934
|
+
// node_modules/@deepseek-ai/dsh-token-meter/lib/types/turn-usage.js
|
|
8935
8935
|
function isCount(value) {
|
|
8936
8936
|
return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
|
|
8937
8937
|
}
|
|
@@ -9139,7 +9139,7 @@ function deriveTurnTokenUsage(events) {
|
|
|
9139
9139
|
return invalid || !sawEnd || state.kind !== "idle" ? void 0 : aggregateAttempts(attempts);
|
|
9140
9140
|
}
|
|
9141
9141
|
|
|
9142
|
-
//
|
|
9142
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/turn-tail.ts
|
|
9143
9143
|
function isSessionEvent(event) {
|
|
9144
9144
|
return event.type !== "assistant/live-chunk";
|
|
9145
9145
|
}
|
|
@@ -9224,7 +9224,7 @@ function registerTurnTailConversationNode(ctx) {
|
|
|
9224
9224
|
ctx.uiConversation.events.register(turnTailDefinition);
|
|
9225
9225
|
}
|
|
9226
9226
|
|
|
9227
|
-
//
|
|
9227
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/process-activity.ts
|
|
9228
9228
|
function activity(name) {
|
|
9229
9229
|
if (name === "read") return "read";
|
|
9230
9230
|
if (name === "read_image") return "readImage";
|
|
@@ -9349,7 +9349,7 @@ function processActivity(nodes) {
|
|
|
9349
9349
|
};
|
|
9350
9350
|
}
|
|
9351
9351
|
|
|
9352
|
-
//
|
|
9352
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/process-groups.ts
|
|
9353
9353
|
var INDEPENDENT = /* @__PURE__ */ new Set(["user", "steering", "turn-trigger", "model-retry", "turn-error", "turn-max-tokens", "turn-tail"]);
|
|
9354
9354
|
function turnOf2(node) {
|
|
9355
9355
|
const location = node.location;
|
|
@@ -9631,7 +9631,7 @@ var processGroupDefinition = {
|
|
|
9631
9631
|
buildGroups: (context) => context.state.output()
|
|
9632
9632
|
};
|
|
9633
9633
|
|
|
9634
|
-
//
|
|
9634
|
+
// .host-source/packages/client/ui-chat/src/client/conversation-nodes/register.ts
|
|
9635
9635
|
function registerConversationNodes(ctx) {
|
|
9636
9636
|
registerInboxConversationNodes(ctx);
|
|
9637
9637
|
registerMessageConversationNode(ctx);
|
|
@@ -9650,7 +9650,7 @@ function registerConversationNodes(ctx) {
|
|
|
9650
9650
|
ctx.uiConversation.groups.register(processGroupDefinition);
|
|
9651
9651
|
}
|
|
9652
9652
|
|
|
9653
|
-
//
|
|
9653
|
+
// .host-source/packages/client/ui-chat/src/client/chat/QuotaNoticeHost.tsx
|
|
9654
9654
|
var import_react32 = require("react");
|
|
9655
9655
|
var import_dsh_client_ui_primitives19 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
9656
9656
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
@@ -9668,7 +9668,7 @@ function QuotaNoticeHost({ useNotice, dismissNotice, keepNoticeOpen, renderSlotC
|
|
|
9668
9668
|
}) }, `quota-notice-${String(notice.seq)}`);
|
|
9669
9669
|
}
|
|
9670
9670
|
|
|
9671
|
-
//
|
|
9671
|
+
// node_modules/@deepseek-ai/cosmokit/lib/index.js
|
|
9672
9672
|
function isNullable(value) {
|
|
9673
9673
|
return value === null || value === void 0;
|
|
9674
9674
|
}
|
|
@@ -9893,7 +9893,7 @@ var Time;
|
|
|
9893
9893
|
Time2.template = template;
|
|
9894
9894
|
})(Time || (Time = {}));
|
|
9895
9895
|
|
|
9896
|
-
//
|
|
9896
|
+
// node_modules/@deepseek-ai/schemastery/lib/index.mjs
|
|
9897
9897
|
var kSchema = /* @__PURE__ */ Symbol.for("schemastery");
|
|
9898
9898
|
var kValidationError = /* @__PURE__ */ Symbol.for("ValidationError");
|
|
9899
9899
|
globalThis.__schemastery_index__ ??= 0;
|
|
@@ -10534,7 +10534,7 @@ defineMethod("transform", [
|
|
|
10534
10534
|
"preserve"
|
|
10535
10535
|
], ({ inner }, isInner) => inner.toString(isInner));
|
|
10536
10536
|
|
|
10537
|
-
//
|
|
10537
|
+
// .host-source/packages/client/ui-chat/src/chat-settings.ts
|
|
10538
10538
|
var CHAT_SETTINGS_NAMESPACE = "ui-chat";
|
|
10539
10539
|
var TRANSCRIPT_VIEW_FIELD = "transcriptView";
|
|
10540
10540
|
var TRANSCRIPT_VIEW_MODES = ["compact", "standard", "detailed", "verbose"];
|
|
@@ -10557,11 +10557,11 @@ var ChatSettingsFields = {
|
|
|
10557
10557
|
};
|
|
10558
10558
|
var ChatSettingsSchema = Schema.object(ChatSettingsFields);
|
|
10559
10559
|
|
|
10560
|
-
//
|
|
10560
|
+
// .host-source/packages/client/ui-chat/src/client/settings/PreferenceRow.tsx
|
|
10561
10561
|
var import_react33 = require("react");
|
|
10562
10562
|
var import_dsh_client_ui_primitives20 = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
10563
10563
|
|
|
10564
|
-
//
|
|
10564
|
+
// .host-source/packages/client/ui-chat/src/client/settings/PreferenceRow.module.css
|
|
10565
10565
|
var PreferenceRow_default = {
|
|
10566
10566
|
row: "PreferenceRow_row",
|
|
10567
10567
|
rowText: "PreferenceRow_rowText",
|
|
@@ -10571,7 +10571,7 @@ var PreferenceRow_default = {
|
|
|
10571
10571
|
chevron: "PreferenceRow_chevron"
|
|
10572
10572
|
};
|
|
10573
10573
|
|
|
10574
|
-
//
|
|
10574
|
+
// .host-source/packages/client/ui-chat/src/client/settings/PreferenceRow.tsx
|
|
10575
10575
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
10576
10576
|
function PreferenceRow({ title, description, value, selectedLabel, options, onSelect }) {
|
|
10577
10577
|
const [open, setOpen] = (0, import_react33.useState)(false);
|
|
@@ -10622,7 +10622,7 @@ function PreferenceRow({ title, description, value, selectedLabel, options, onSe
|
|
|
10622
10622
|
] });
|
|
10623
10623
|
}
|
|
10624
10624
|
|
|
10625
|
-
//
|
|
10625
|
+
// .host-source/packages/client/ui-chat/src/client/settings/TranscriptViewRow.tsx
|
|
10626
10626
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
10627
10627
|
var LABELS = {
|
|
10628
10628
|
compact: "settings.transcript.compact",
|
|
@@ -10647,7 +10647,7 @@ function TranscriptViewRow({ useTranscriptView, setTranscriptView, t }) {
|
|
|
10647
10647
|
);
|
|
10648
10648
|
}
|
|
10649
10649
|
|
|
10650
|
-
//
|
|
10650
|
+
// .host-source/packages/client/ui-chat/src/client/transcript-view.ts
|
|
10651
10651
|
var import_dsh_client_store4 = require("@deepseek-ai/dsh-client-store");
|
|
10652
10652
|
var TranscriptViewPolicy = class {
|
|
10653
10653
|
/**
|
|
@@ -10691,7 +10691,7 @@ var TranscriptViewPolicy = class {
|
|
|
10691
10691
|
}
|
|
10692
10692
|
};
|
|
10693
10693
|
|
|
10694
|
-
//
|
|
10694
|
+
// .host-source/packages/client/ui-chat/src/client/presentation-policy.ts
|
|
10695
10695
|
var POLICIES = {
|
|
10696
10696
|
compact: {
|
|
10697
10697
|
mode: "compact",
|
|
@@ -10729,7 +10729,7 @@ function derivePresentationPolicy(mode) {
|
|
|
10729
10729
|
};
|
|
10730
10730
|
}
|
|
10731
10731
|
|
|
10732
|
-
//
|
|
10732
|
+
// .host-source/packages/client/ui-chat/src/client/settings/LinkOpeningRow.tsx
|
|
10733
10733
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
10734
10734
|
function LinkOpeningRow({ useLinkOpening, useBrowserAvailable, setLinkOpening, t }) {
|
|
10735
10735
|
const destination = useLinkOpening((value) => value);
|
|
@@ -10753,7 +10753,7 @@ function LinkOpeningRow({ useLinkOpening, useBrowserAvailable, setLinkOpening, t
|
|
|
10753
10753
|
);
|
|
10754
10754
|
}
|
|
10755
10755
|
|
|
10756
|
-
//
|
|
10756
|
+
// .host-source/packages/client/ui-chat/src/client/settings/PerformanceUsageRow.tsx
|
|
10757
10757
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
10758
10758
|
var OPTIONS = [
|
|
10759
10759
|
{ id: "compact", label: "settings.performance.compact" },
|
|
@@ -10777,7 +10777,7 @@ function PerformanceUsageRow({ usePerformanceUsage, setPerformanceUsage, t }) {
|
|
|
10777
10777
|
);
|
|
10778
10778
|
}
|
|
10779
10779
|
|
|
10780
|
-
//
|
|
10780
|
+
// .host-source/packages/client/ui-chat/src/client/performance-usage.ts
|
|
10781
10781
|
var import_dsh_client_store5 = require("@deepseek-ai/dsh-client-store");
|
|
10782
10782
|
var PerformanceUsagePolicy = class {
|
|
10783
10783
|
/** @param host - Chat settings scope, durable on loopback and memory-only elsewhere. */
|
|
@@ -10809,7 +10809,7 @@ var PerformanceUsagePolicy = class {
|
|
|
10809
10809
|
}
|
|
10810
10810
|
};
|
|
10811
10811
|
|
|
10812
|
-
//
|
|
10812
|
+
// .host-source/packages/client/ui-chat/src/client/chat/use-turn-data.ts
|
|
10813
10813
|
var import_react34 = require("react");
|
|
10814
10814
|
var EMPTY_SOURCE = {
|
|
10815
10815
|
getSnapshot: () => void 0,
|
|
@@ -10821,7 +10821,7 @@ function useTurnDataValue(data, key) {
|
|
|
10821
10821
|
return (0, import_react34.useSyncExternalStore)(source.subscribe, source.getSnapshot);
|
|
10822
10822
|
}
|
|
10823
10823
|
|
|
10824
|
-
//
|
|
10824
|
+
// .host-source/packages/client/ui-chat/src/client/apply.ts
|
|
10825
10825
|
var CHAT_NODE_INJECT = {
|
|
10826
10826
|
hooks: {
|
|
10827
10827
|
turnData: (_standard, { turnData }) => function useTurnData(key) {
|