@deepseek-ai/dsh-client-ui-chat 0.1.7-rc.2 → 0.2.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.i18n.yaml +11 -11
- package/README.md +12 -3
- package/README.zh.md +11 -2
- package/lib/client.js +232 -136
- package/lib/index.js +4 -4
- package/lib/types/chat-settings.d.ts +7 -7
- package/lib/types/client/apply.d.ts +0 -1
- package/lib/types/client/chat/RunningStatus.d.ts +13 -0
- package/lib/types/client/chat/RunningWhaleTail.d.ts +6 -0
- package/lib/types/client/chat/TurnProcessNodeView.d.ts +1 -1
- package/lib/types/client/chat/message-chrome.d.ts +12 -16
- package/lib/types/client/locale.d.ts +8 -8
- package/lib/types/client/transcript-view.d.ts +4 -2
- package/lib/types/index.d.ts +4 -4
- package/package.json +37 -36
package/lib/client.js
CHANGED
|
@@ -211,7 +211,7 @@ window.__ModuleLoader__.load({
|
|
|
211
211
|
}
|
|
212
212
|
//#endregion
|
|
213
213
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/MessageItem.module.css.mjs
|
|
214
|
-
const css$17 = ".Sixlwa_userRow{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.Sixlwa_userStack{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);flex-direction:column;align-items:flex-end;gap:8px;display:flex}.Sixlwa_bubble{background:var(--dsw-specific-bubble);border-radius:var(--dsw-radius-xl);max-width:100%;font-size:var(--dsh-content-font-size,14px);line-height:calc(22px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;padding:10px 16px}.Sixlwa_referenceSummary{color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px))}.Sixlwa_contextRow{padding:2px 0}.Sixlwa_compactionRow{--dsh-compaction-header-height:calc(24px + var(--dsh-content-font-delta,0px));padding:2px 0}.Sixlwa_compactionButton{width:100%;height:var(--dsh-compaction-header-height);border-radius:var(--dsw-radius-sm);min-width:0;color:
|
|
214
|
+
const css$17 = ".Sixlwa_userRow{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.Sixlwa_userStack{min-width:0;max-width:min(calc(var(--dsh-chat-content-width,748px) * .702), 82%);flex-direction:column;align-items:flex-end;gap:8px;display:flex}.Sixlwa_bubble{background:var(--dsw-specific-bubble);border-radius:var(--dsw-radius-xl);max-width:100%;font-size:var(--dsh-content-font-size,14px);line-height:calc(22px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-primary);white-space:pre-wrap;word-break:break-word;padding:10px 16px}.Sixlwa_referenceSummary{color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px))}.Sixlwa_contextRow{padding:2px 0}.Sixlwa_compactionRow{--dsh-compaction-header-height:calc(24px + var(--dsh-content-font-delta,0px));padding:2px 0}.Sixlwa_compactionButton{width:100%;height:var(--dsh-compaction-header-height);border-radius:var(--dsw-radius-sm);min-width:0;color:var(--dsw-alias-label-tertiary);font:inherit;text-align:left;background:0 0;border:none;align-items:center;padding:0;transition:color .1s;display:flex}.Sixlwa_compactionRow:has(.Sixlwa_compactionBody) .Sixlwa_compactionButton{z-index:7;background:var(--dsw-alias-bg-base);border-radius:0;position:sticky;top:0}.Sixlwa_compactionBody :has(>[data-code-block-banner]){top:var(--dsh-compaction-header-height)}.Sixlwa_compactionRow:has(.Sixlwa_compactionBody) .Sixlwa_compactionButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.Sixlwa_compactionButton:not(:disabled){cursor:pointer}.Sixlwa_compactionButton:hover{color:var(--dsw-alias-label-secondary)}.Sixlwa_compactionButton:not(:disabled):hover{background:var(--dsw-alias-interactive-bg-hover)}.Sixlwa_compactionLeading{width:calc(16px + var(--dsh-content-font-delta,0px));height:calc(16px + var(--dsh-content-font-delta,0px));color:inherit;flex:none;place-items:center;margin-right:6px;display:inline-grid}.Sixlwa_compactionLeading svg{width:calc(14px + var(--dsh-content-font-delta,0px));height:calc(14px + var(--dsh-content-font-delta,0px))}.Sixlwa_compactionContextIcon,.Sixlwa_compactionDisclosureIcon{grid-area:1/1;justify-content:center;align-items:center;display:inline-flex}.Sixlwa_compactionDisclosureIcon,.Sixlwa_compactionButton:not(:disabled):hover .Sixlwa_compactionContextIcon,.Sixlwa_compactionButton:not(:disabled):focus-visible .Sixlwa_compactionContextIcon{opacity:0}.Sixlwa_compactionButton:not(:disabled):hover .Sixlwa_compactionDisclosureIcon,.Sixlwa_compactionButton:not(:disabled):focus-visible .Sixlwa_compactionDisclosureIcon{opacity:1}.Sixlwa_compactionTitle{font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));color:inherit;flex:none}.Sixlwa_compactionSep{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.Sixlwa_compactionSummary{min-width:0;color:inherit;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.Sixlwa_compactionBody{padding:4px 0 4px calc(22px + var(--dsh-content-font-delta,0px));color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px))}.Sixlwa_retryRow{color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px))}.Sixlwa_retrySummary{border-radius:var(--dsw-radius-sm);width:fit-content;max-width:100%;color:inherit;cursor:pointer;user-select:none;align-items:center;gap:7px;padding:2px 0;list-style:none;display:inline-flex}.Sixlwa_retrySummary::-webkit-details-marker{display:none}.Sixlwa_retrySummary:after{content:\"\";border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:6px;height:6px;margin-right:2px;transition:transform .12s;transform:rotate(-45deg)}.Sixlwa_retrySummary:hover{color:var(--dsw-alias-label-secondary)}@media (prefers-reduced-motion:reduce){.Sixlwa_compactionButton{transition:none}}.Sixlwa_retrySummary:focus-visible{outline:1.5px solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.Sixlwa_retryText{overflow-wrap:anywhere;min-width:0}.Sixlwa_retryRow[open] .Sixlwa_retrySummary:after{transform:rotate(45deg)}.Sixlwa_retryDetails{overflow-wrap:anywhere;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px));gap:2px;margin-top:3px;padding-left:14px;display:grid}.Sixlwa_retryDetailLabel{color:var(--dsw-alias-label-secondary)}.Sixlwa_turnErrorRow{font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px));grid-template-columns:10px minmax(0,1fr) auto;align-items:start;gap:8px;padding:2px 0;display:grid}.Sixlwa_turnErrorDot{margin-top:5px}.Sixlwa_turnErrorCopy{overflow-wrap:anywhere;min-width:0}.Sixlwa_turnErrorTitle{color:var(--dsw-alias-state-error-primary);margin-right:6px;font-weight:600}.Sixlwa_turnErrorMessage{color:var(--dsw-alias-label-secondary)}.Sixlwa_turnErrorCode{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-markdown-code-block-small)}.Sixlwa_maxTokensTitle{color:var(--dsw-alias-state-warn-primary);margin-right:6px;font-weight:600}.Sixlwa_attachmentRow{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:100%;display:flex}.Sixlwa_fileCard{border:.5px solid var(--dsw-alias-border-l2,#0000001f);border-radius:var(--dsw-radius-xl);background:var(--dsw-specific-input-major,transparent);box-sizing:border-box;flex:0 0 240px;align-items:center;gap:10px;width:240px;min-height:64px;padding:8px 12px;display:inline-flex}.Sixlwa_fileIcon{flex:none;width:28px;height:28px}.Sixlwa_fileContent{flex-direction:column;flex:1;min-width:0;display:flex}.Sixlwa_fileName{white-space:nowrap;text-overflow:ellipsis;color:var(--dsw-alias-label-primary);font-size:14px;font-weight:500;line-height:22px;overflow:hidden}.Sixlwa_fileMeta{white-space:nowrap;text-overflow:ellipsis;color:var(--dsw-alias-label-tertiary,#00000073);font-size:12px;line-height:15px;overflow:hidden}";
|
|
215
215
|
const tagId$17 = "@deepseek-ai/dsh-client-ui-chat/MessageItem.module.css";
|
|
216
216
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$17) + "]") === null) {
|
|
217
217
|
const tag = document.createElement("style");
|
|
@@ -240,7 +240,6 @@ window.__ModuleLoader__.load({
|
|
|
240
240
|
"fileName": "Sixlwa_fileName",
|
|
241
241
|
"maxTokensTitle": "Sixlwa_maxTokensTitle",
|
|
242
242
|
"referenceSummary": "Sixlwa_referenceSummary",
|
|
243
|
-
"retry-shimmer": "Sixlwa_retry-shimmer",
|
|
244
243
|
"retryDetailLabel": "Sixlwa_retryDetailLabel",
|
|
245
244
|
"retryDetails": "Sixlwa_retryDetails",
|
|
246
245
|
"retryRow": "Sixlwa_retryRow",
|
|
@@ -1001,49 +1000,40 @@ window.__ModuleLoader__.load({
|
|
|
1001
1000
|
return Math.max(next.getTime() - ms, 1);
|
|
1002
1001
|
}
|
|
1003
1002
|
/**
|
|
1004
|
-
*
|
|
1005
|
-
* @param ms -
|
|
1006
|
-
* @param t -
|
|
1007
|
-
* @returns
|
|
1008
|
-
*
|
|
1009
|
-
* hour, with the smaller units zero-padded.
|
|
1003
|
+
* Build elapsed-time fragments for both live and completed Turn labels.
|
|
1004
|
+
* @param ms - elapsed milliseconds; negatives clamp to zero and fractions floor.
|
|
1005
|
+
* @param t - translate seat supplying units and their trailing spacing.
|
|
1006
|
+
* @returns numbers and localized units in display order, without leading zeros;
|
|
1007
|
+
* minutes start at 60 seconds and hours at 60 minutes.
|
|
1010
1008
|
*/
|
|
1011
1009
|
function formatRunDuration(ms, t) {
|
|
1012
1010
|
const total = Math.max(0, Math.floor(ms / 1e3));
|
|
1013
1011
|
const hours = Math.floor(total / 3600);
|
|
1014
1012
|
const minutes = Math.floor(total / 60) % 60;
|
|
1015
1013
|
const seconds = total % 60;
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1014
|
+
const parts = [];
|
|
1015
|
+
if (hours > 0) parts.push({
|
|
1016
|
+
text: String(hours),
|
|
1017
|
+
numeric: true
|
|
1018
|
+
}, {
|
|
1019
|
+
text: t("duration.hourUnit"),
|
|
1020
|
+
numeric: false
|
|
1020
1021
|
});
|
|
1021
|
-
|
|
1022
|
-
minutes,
|
|
1023
|
-
|
|
1024
|
-
}
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
* Localized live elapsed time without padded seconds or early rollover.
|
|
1028
|
-
* @param ms - Elapsed duration in milliseconds (negatives clamp to zero).
|
|
1029
|
-
* @param t - Translate seat supplying the duration templates.
|
|
1030
|
-
* @returns Whole seconds without a leading zero; minutes start at 60 seconds
|
|
1031
|
-
* and hours start at exactly 60 minutes.
|
|
1032
|
-
*/
|
|
1033
|
-
function formatLiveRunDuration(ms, t) {
|
|
1034
|
-
const totalSeconds = Math.max(0, Math.floor(ms / 1e3));
|
|
1035
|
-
const hours = Math.floor(totalSeconds / 3600);
|
|
1036
|
-
const minutes = Math.floor(totalSeconds / 60) % 60;
|
|
1037
|
-
const seconds = String(totalSeconds % 60);
|
|
1038
|
-
if (hours > 0) return t("duration.hours", {
|
|
1039
|
-
hours,
|
|
1040
|
-
minutes: pad2(minutes),
|
|
1041
|
-
seconds
|
|
1022
|
+
if (total >= 60) parts.push({
|
|
1023
|
+
text: String(minutes),
|
|
1024
|
+
numeric: true
|
|
1025
|
+
}, {
|
|
1026
|
+
text: t("duration.minuteUnit"),
|
|
1027
|
+
numeric: false
|
|
1042
1028
|
});
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
}
|
|
1029
|
+
parts.push({
|
|
1030
|
+
text: String(seconds),
|
|
1031
|
+
numeric: true
|
|
1032
|
+
}, {
|
|
1033
|
+
text: t("duration.secondUnit"),
|
|
1034
|
+
numeric: false
|
|
1035
|
+
});
|
|
1036
|
+
return parts;
|
|
1047
1037
|
}
|
|
1048
1038
|
/**
|
|
1049
1039
|
* Decode-throughput figure: whole tokens from ten up, one decimal below.
|
|
@@ -1269,11 +1259,14 @@ window.__ModuleLoader__.load({
|
|
|
1269
1259
|
children: (0, react_jsx_runtime.jsx)("span", {
|
|
1270
1260
|
className: MessageItem_module_css_default.retryText,
|
|
1271
1261
|
role: "status",
|
|
1272
|
-
children:
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1262
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, {
|
|
1263
|
+
active,
|
|
1264
|
+
children: t("message.retry.status", {
|
|
1265
|
+
label,
|
|
1266
|
+
retry: node.retry,
|
|
1267
|
+
maximum,
|
|
1268
|
+
seconds
|
|
1269
|
+
})
|
|
1277
1270
|
})
|
|
1278
1271
|
})
|
|
1279
1272
|
}), (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -1627,7 +1620,7 @@ window.__ModuleLoader__.load({
|
|
|
1627
1620
|
}
|
|
1628
1621
|
//#endregion
|
|
1629
1622
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/ChatView.module.css.mjs
|
|
1630
|
-
const css$13 = ".EvIC1a_frame{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;container-type:inline-size}.EvIC1a_root{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:visible clip}.EvIC1a_scroll{min-height:0;padding:16px calc(var(--dsh-composer-side-clearance) + 16px);flex:auto;overflow-y:auto;container-type:inline-size}.EvIC1a_root[data-chat-following-tail] .EvIC1a_scroll,[data-conversation-scroll]:has(.EvIC1a_root[data-chat-following-tail]){overflow-anchor:none}[data-conversation-scroll] .EvIC1a_frame,[data-conversation-scroll] .EvIC1a_root{flex:none;height:auto;min-height:auto}[data-conversation-scroll] .EvIC1a_scroll{flex:none;min-height:auto;overflow:visible}.EvIC1a_column{max-width:var(--dsh-chat-content-width);flex-direction:column;width:100%;margin:0 auto;display:flex}.EvIC1a_column>:not([hidden]):not(.EvIC1a_flowItem:empty)~:not([hidden]):not(.EvIC1a_flowItem:empty){margin-top:var(--dsh-chat-flow-gap,16px)}.EvIC1a_flowItem{min-width:0}.EvIC1a_flowItem[data-turn-process-answer]{--dsh-chat-flow-gap:8px}.EvIC1a_flowItem:empty{height:0}.EvIC1a_callRow{border-radius:var(--dsw-radius-sm)}.EvIC1a_hint{color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px))}.EvIC1a_openError{color:var(--dsw-alias-state-error-primary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px))}.EvIC1a_older{justify-content:center;display:flex}.EvIC1a_older button{border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-interactive-bg-hover-solid);cursor:pointer;border:none;padding:4px 12px;font-size:12px}.EvIC1a_older button:disabled{cursor:default;opacity:.6}.EvIC1a_toBottomSlot{z-index:8;height:0;padding-right:max(calc(var(--dsh-composer-side-clearance) + 16px), calc((100% - var(--dsh-chat-content-width)) / 2));pointer-events:none;justify-content:flex-end;display:flex;position:absolute;bottom:16px;left:0;right:0}[data-conversation-scroll] .EvIC1a_toBottomSlot{bottom:calc(var(--dsh-composer-height,152px) + 16px);position:sticky}.EvIC1a_toBottom{--dsw-elevation-stroke-color:var(--dsw-alias-border-l3);corner-shape:round;width:34px;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-floating-fill);box-shadow:var(--dsw-elevation-panel);cursor:pointer;pointer-events:auto;border:0;border-radius:100px;justify-content:center;align-items:center;margin-top:-34px;padding:0;display:flex}.EvIC1a_toBottom:hover{background:var(--dsw-alias-button-floating-hover)}.EvIC1a_modalAction{min-width:72px}";
|
|
1623
|
+
const css$13 = ".EvIC1a_frame{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;container-type:inline-size}.EvIC1a_root{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:visible clip}.EvIC1a_scroll{min-height:0;padding:16px calc(var(--dsh-composer-side-clearance) + 16px);flex:auto;overflow-y:auto;container-type:inline-size}.EvIC1a_root[data-chat-following-tail] .EvIC1a_scroll,[data-conversation-scroll]:has(.EvIC1a_root[data-chat-following-tail]){overflow-anchor:none}[data-conversation-scroll] .EvIC1a_frame,[data-conversation-scroll] .EvIC1a_root{flex:none;height:auto;min-height:auto}[data-conversation-scroll] .EvIC1a_scroll{flex:none;min-height:auto;overflow:visible}.EvIC1a_column{max-width:var(--dsh-chat-content-width);flex-direction:column;width:100%;margin:0 auto;display:flex}.EvIC1a_column>:not([hidden]):not(.EvIC1a_flowItem:is(:empty,:has(>[data-slot=\"conversation.chat.node\"]:empty)))~:not([hidden]):not(.EvIC1a_flowItem:is(:empty,:has(>[data-slot=\"conversation.chat.node\"]:empty))){margin-top:var(--dsh-chat-flow-gap,6px)}.EvIC1a_flowItem[data-chat-group-part=response],.EvIC1a_column>[data-chat-group-part=response]:not([hidden]):not(:empty)+:not([hidden]):not(.EvIC1a_flowItem:is(:empty,:has(>[data-slot=\"conversation.chat.node\"]:empty))):not(.EvIC1a_running){--dsh-chat-flow-gap:12px}.EvIC1a_flowItem{min-width:0}.EvIC1a_flowItem[data-chat-flow-kind=turn-process],.EvIC1a_flowItem[data-turn-process-answer],.EvIC1a_column>[data-chat-flow-kind=turn-process]+:not([hidden]):not(.EvIC1a_flowItem:is(:empty,:has(>[data-slot=\"conversation.chat.node\"]:empty))):not(.EvIC1a_running){--dsh-chat-flow-gap:16px}.EvIC1a_flowItem:is(:empty,:has(>[data-slot=\"conversation.chat.node\"]:empty)){height:0}.EvIC1a_callRow{border-radius:var(--dsw-radius-sm)}.EvIC1a_hint{color:var(--dsw-alias-label-tertiary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px))}.EvIC1a_running{--dsh-chat-flow-gap:12px;--dsw-alias-label-shimmer:var(--dsw-alias-label-deep-diving-shimmer);color:var(--dsw-alias-label-deep-diving);font-size:calc(var(--dsh-content-font-size,14px) - 2px);line-height:calc(22px + var(--dsh-content-font-delta,0px));flex-direction:column;align-items:flex-start;display:flex}.EvIC1a_column>:nth-last-child(2 of :not([hidden]):not(.EvIC1a_flowItem:is(:empty,:has(>[data-slot=\"conversation.chat.node\"]:empty)))):is(.EvIC1a_flowItem:not([data-chat-flow-kind=user]):not([data-chat-flow-kind=steering]):not([data-chat-flow-kind=turn-trigger]),[data-chat-group-key])~.EvIC1a_running>.EvIC1a_runningDivider{display:block}.EvIC1a_runningDivider{background:color-mix(in srgb, var(--dsw-alias-border-l1) 75%, var(--dsw-alias-border-l2));pointer-events:none;width:100%;height:.5px;margin:8px 0 10px;display:none}.EvIC1a_runningContent{align-items:center;gap:6px;min-width:0;display:inline-flex}.EvIC1a_runningText{font-variant-numeric:tabular-nums;min-width:0}.EvIC1a_runningIcon{width:calc(14px + var(--dsh-content-font-delta,0px));height:calc(14px + var(--dsh-content-font-delta,0px));contain:strict;flex:none;display:inline-flex;position:relative;overflow:hidden}.EvIC1a_runningWhaleAnimated{display:none;position:absolute;inset:0}.EvIC1a_runningWhaleStill{display:initial}@supports (mask-mode:alpha) and (mask-image:url('')){@media (prefers-reduced-motion:no-preference) and (forced-colors:none){.EvIC1a_runningWhaleAnimated{will-change:transform;background:currentColor;display:block;mask:url(data:image/png;base64,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) 50%/100% 100% no-repeat alpha}.EvIC1a_runningWhaleStill{display:none}}}.EvIC1a_openError{color:var(--dsw-alias-state-error-primary);font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(18px + var(--dsh-content-font-delta-secondary,0px))}.EvIC1a_older{justify-content:center;display:flex}.EvIC1a_older button{border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-interactive-bg-hover-solid);cursor:pointer;border:none;padding:4px 12px;font-size:12px}.EvIC1a_older button:disabled{cursor:default;opacity:.6}.EvIC1a_toBottomSlot{z-index:8;height:0;padding-right:max(calc(var(--dsh-composer-side-clearance) + 16px), calc((100% - var(--dsh-chat-content-width)) / 2));pointer-events:none;justify-content:flex-end;display:flex;position:absolute;bottom:16px;left:0;right:0}[data-conversation-scroll] .EvIC1a_toBottomSlot{bottom:calc(var(--dsh-composer-height,152px) + 16px);position:sticky}.EvIC1a_toBottom{--dsw-elevation-stroke-color:var(--dsw-alias-border-l3);corner-shape:round;width:34px;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-button-floating-fill);box-shadow:var(--dsw-elevation-panel);cursor:pointer;pointer-events:auto;border:0;border-radius:100px;justify-content:center;align-items:center;margin-top:-34px;padding:0;display:flex}.EvIC1a_toBottom:hover{background:var(--dsw-alias-button-floating-hover)}.EvIC1a_modalAction{min-width:72px}";
|
|
1631
1624
|
const tagId$13 = "@deepseek-ai/dsh-client-ui-chat/ChatView.module.css";
|
|
1632
1625
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$13) + "]") === null) {
|
|
1633
1626
|
const tag = document.createElement("style");
|
|
@@ -1646,6 +1639,13 @@ window.__ModuleLoader__.load({
|
|
|
1646
1639
|
"older": "EvIC1a_older",
|
|
1647
1640
|
"openError": "EvIC1a_openError",
|
|
1648
1641
|
"root": "EvIC1a_root",
|
|
1642
|
+
"running": "EvIC1a_running",
|
|
1643
|
+
"runningContent": "EvIC1a_runningContent",
|
|
1644
|
+
"runningDivider": "EvIC1a_runningDivider",
|
|
1645
|
+
"runningIcon": "EvIC1a_runningIcon",
|
|
1646
|
+
"runningText": "EvIC1a_runningText",
|
|
1647
|
+
"runningWhaleAnimated": "EvIC1a_runningWhaleAnimated",
|
|
1648
|
+
"runningWhaleStill": "EvIC1a_runningWhaleStill",
|
|
1649
1649
|
"scroll": "EvIC1a_scroll",
|
|
1650
1650
|
"toBottom": "EvIC1a_toBottom",
|
|
1651
1651
|
"toBottomSlot": "EvIC1a_toBottomSlot"
|
|
@@ -2157,7 +2157,7 @@ window.__ModuleLoader__.load({
|
|
|
2157
2157
|
}
|
|
2158
2158
|
//#endregion
|
|
2159
2159
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/ChatGroupSeat.module.css.mjs
|
|
2160
|
-
const css$12 = ".O_Ebla_root{min-width:0}.O_Ebla_title{max-width:100%;color:var(--dsw-alias-label-
|
|
2160
|
+
const css$12 = ".O_Ebla_root{min-width:0}.O_Ebla_title{max-width:100%;color:var(--dsw-alias-label-tertiary);font:inherit;font-size:var(--dsh-content-font-size,14px);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;transition:color .1s;display:flex}.O_Ebla_title:hover{color:var(--dsw-alias-label-secondary)}.O_Ebla_leading{width:calc(16px + var(--dsh-content-font-delta,0px));height:calc(16px + var(--dsh-content-font-delta,0px));color:inherit;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.O_Ebla_leading svg{width:calc(14px + var(--dsh-content-font-delta,0px));height:calc(14px + var(--dsh-content-font-delta,0px))}.O_Ebla_leading svg[width=\"16\"]{width:calc(16px + var(--dsh-content-font-delta,0px));height:calc(16px + var(--dsh-content-font-delta,0px))}.O_Ebla_activityIcon,.O_Ebla_chevron{justify-content:center;align-items:center;transition:opacity .1s;display:inline-flex;position:absolute;inset:0}.O_Ebla_activityIcon{opacity:1}.O_Ebla_chevron,.O_Ebla_title:is(:hover,:focus-visible) .O_Ebla_activityIcon{opacity:0}.O_Ebla_title:is(:hover,:focus-visible) .O_Ebla_chevron{opacity:1}.O_Ebla_title[aria-expanded=true] .O_Ebla_activityIcon{opacity:0}.O_Ebla_title[aria-expanded=true] .O_Ebla_chevron{opacity:1}.O_Ebla_title[aria-expanded=true]{padding-bottom:8px}.O_Ebla_body{--dsh-chat-flow-gap:6px;overscroll-behavior-y:auto;scrollbar-gutter:stable;max-height:min(400px,50vh);overflow-y:auto}.O_Ebla_label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.O_Ebla_fadeTop{mask-image:linear-gradient(#0000 0,#000 24px 100%)}.O_Ebla_fadeBottom{mask-image:linear-gradient(#000 0 calc(100% - 24px),#0000 100%)}.O_Ebla_fadeTop.O_Ebla_fadeBottom{mask-image:linear-gradient(#0000 0,#000 24px calc(100% - 24px),#0000 100%)}@media (prefers-reduced-motion:reduce){.O_Ebla_title,.O_Ebla_activityIcon,.O_Ebla_chevron{transition:none}}.O_Ebla_content{flex-direction:column;display:flex}.O_Ebla_content>*{flex-shrink:0}.O_Ebla_content>:not([hidden]):not(:empty)~:not([hidden]):not(:empty){margin-top:var(--dsh-chat-flow-gap,6px)}.O_Ebla_expandedBody{scrollbar-gutter:auto;max-height:none;overflow:visible}";
|
|
2161
2161
|
const tagId$12 = "@deepseek-ai/dsh-client-ui-chat/ChatGroupSeat.module.css";
|
|
2162
2162
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$12) + "]") === null) {
|
|
2163
2163
|
const tag = document.createElement("style");
|
|
@@ -2278,8 +2278,10 @@ window.__ModuleLoader__.load({
|
|
|
2278
2278
|
})]
|
|
2279
2279
|
}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, {
|
|
2280
2280
|
active: !data.closed,
|
|
2281
|
-
|
|
2282
|
-
|
|
2281
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, {
|
|
2282
|
+
className: ChatGroupSeat_module_css_default.label,
|
|
2283
|
+
children: title
|
|
2284
|
+
})
|
|
2283
2285
|
})]
|
|
2284
2286
|
});
|
|
2285
2287
|
});
|
|
@@ -2414,7 +2416,7 @@ window.__ModuleLoader__.load({
|
|
|
2414
2416
|
}
|
|
2415
2417
|
//#endregion
|
|
2416
2418
|
//#region ../../../node_modules/.pnpm/@tanstack+virtual-core@3.17.7/node_modules/@tanstack/virtual-core/dist/esm/utils.js
|
|
2417
|
-
function memo$
|
|
2419
|
+
function memo$12(getDeps, fn, opts) {
|
|
2418
2420
|
let deps = opts.initialDeps ?? [];
|
|
2419
2421
|
let result;
|
|
2420
2422
|
let isInitial = true;
|
|
@@ -2724,7 +2726,7 @@ window.__ModuleLoader__.load({
|
|
|
2724
2726
|
var _a, _b;
|
|
2725
2727
|
(_b = (_a = this.options).onChange) == null || _b.call(_a, this, sync);
|
|
2726
2728
|
};
|
|
2727
|
-
this.maybeNotify = memo$
|
|
2729
|
+
this.maybeNotify = memo$12(() => {
|
|
2728
2730
|
this.calculateRange();
|
|
2729
2731
|
return [
|
|
2730
2732
|
this.isScrolling,
|
|
@@ -2879,7 +2881,7 @@ window.__ModuleLoader__.load({
|
|
|
2879
2881
|
this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === "function" ? this.options.initialOffset() : this.options.initialOffset);
|
|
2880
2882
|
return this.scrollOffset;
|
|
2881
2883
|
};
|
|
2882
|
-
this.getMeasurementOptions = memo$
|
|
2884
|
+
this.getMeasurementOptions = memo$12(() => [
|
|
2883
2885
|
this.options.count,
|
|
2884
2886
|
this.options.paddingStart,
|
|
2885
2887
|
this.options.scrollMargin,
|
|
@@ -2903,7 +2905,7 @@ window.__ModuleLoader__.load({
|
|
|
2903
2905
|
gap
|
|
2904
2906
|
};
|
|
2905
2907
|
}, { key: false });
|
|
2906
|
-
this.getMeasurements = memo$
|
|
2908
|
+
this.getMeasurements = memo$12(() => [this.getMeasurementOptions(), this.itemSizeCacheVersion], ({ count, paddingStart, scrollMargin, getItemKey, enabled, lanes, laneAssignmentMode, gap }, _itemSizeCacheVersion) => {
|
|
2907
2909
|
const itemSizeCache = this.itemSizeCache;
|
|
2908
2910
|
if (!enabled) {
|
|
2909
2911
|
this.measurementsCache = [];
|
|
@@ -3022,7 +3024,7 @@ window.__ModuleLoader__.load({
|
|
|
3022
3024
|
key: false,
|
|
3023
3025
|
debug: () => this.options.debug
|
|
3024
3026
|
});
|
|
3025
|
-
this.calculateRange = memo$
|
|
3027
|
+
this.calculateRange = memo$12(() => [
|
|
3026
3028
|
this.getMeasurements(),
|
|
3027
3029
|
this.getSize(),
|
|
3028
3030
|
this.getScrollOffset(),
|
|
@@ -3038,7 +3040,7 @@ window.__ModuleLoader__.load({
|
|
|
3038
3040
|
key: false,
|
|
3039
3041
|
debug: () => this.options.debug
|
|
3040
3042
|
});
|
|
3041
|
-
this.getVirtualIndexes = memo$
|
|
3043
|
+
this.getVirtualIndexes = memo$12(() => {
|
|
3042
3044
|
let startIndex = null;
|
|
3043
3045
|
let endIndex = null;
|
|
3044
3046
|
const range = this.calculateRange();
|
|
@@ -3152,7 +3154,7 @@ window.__ModuleLoader__.load({
|
|
|
3152
3154
|
this.notify(adjustedSync);
|
|
3153
3155
|
}
|
|
3154
3156
|
};
|
|
3155
|
-
this.getVirtualItems = memo$
|
|
3157
|
+
this.getVirtualItems = memo$12(() => [this.getVirtualIndexes(), this.getMeasurements()], (indexes, measurements) => {
|
|
3156
3158
|
const virtualItems = [];
|
|
3157
3159
|
for (let k = 0, len = indexes.length; k < len; k++) {
|
|
3158
3160
|
const measurement = measurements[indexes[k]];
|
|
@@ -3855,6 +3857,91 @@ window.__ModuleLoader__.load({
|
|
|
3855
3857
|
*/
|
|
3856
3858
|
const TurnNavigator = (0, react.memo)((0, react.forwardRef)(TurnNavigatorRail));
|
|
3857
3859
|
//#endregion
|
|
3860
|
+
//#region lib/types/client/chat/RunningWhaleTail.js
|
|
3861
|
+
/** Animated whale mask and static SVG fallback for the running Chat status. */
|
|
3862
|
+
const 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";
|
|
3863
|
+
/**
|
|
3864
|
+
* Render the decorative running icon; the APNG asset owns its animation timing.
|
|
3865
|
+
* @returns mask and static SVG selected by browser capabilities and accessibility preferences.
|
|
3866
|
+
*/
|
|
3867
|
+
function RunningWhaleTail() {
|
|
3868
|
+
return (0, react_jsx_runtime.jsxs)("span", {
|
|
3869
|
+
className: ChatView_module_css_default.runningIcon,
|
|
3870
|
+
"aria-hidden": "true",
|
|
3871
|
+
children: [(0, react_jsx_runtime.jsx)("span", { className: ChatView_module_css_default.runningWhaleAnimated }), (0, react_jsx_runtime.jsx)("svg", {
|
|
3872
|
+
className: ChatView_module_css_default.runningWhaleStill,
|
|
3873
|
+
width: "100%",
|
|
3874
|
+
height: "100%",
|
|
3875
|
+
viewBox: "0 0 16 16",
|
|
3876
|
+
fill: "none",
|
|
3877
|
+
children: (0, react_jsx_runtime.jsx)("path", {
|
|
3878
|
+
d: REST_PATH,
|
|
3879
|
+
stroke: "currentColor",
|
|
3880
|
+
strokeWidth: 1
|
|
3881
|
+
})
|
|
3882
|
+
})]
|
|
3883
|
+
});
|
|
3884
|
+
}
|
|
3885
|
+
//#endregion
|
|
3886
|
+
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/accessibility.module.css.mjs
|
|
3887
|
+
const css$10 = ".TTCZqG_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
|
|
3888
|
+
const tagId$10 = "@deepseek-ai/dsh-client-ui-chat/accessibility.module.css";
|
|
3889
|
+
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
|
|
3890
|
+
const tag = document.createElement("style");
|
|
3891
|
+
tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-chat";
|
|
3892
|
+
tag.dataset.pluginCss = tagId$10;
|
|
3893
|
+
tag.textContent = css$10;
|
|
3894
|
+
document.head.appendChild(tag);
|
|
3895
|
+
}
|
|
3896
|
+
var accessibility_module_css_default = { "visuallyHidden": "TTCZqG_visuallyHidden" };
|
|
3897
|
+
//#endregion
|
|
3898
|
+
//#region lib/types/client/chat/RunningStatus.js
|
|
3899
|
+
/** Running Turn clock isolated from the transcript's render cycle. */
|
|
3900
|
+
/**
|
|
3901
|
+
* Show live elapsed time after the current Turn's content without announcing ticks.
|
|
3902
|
+
* @param props - Current Turn start time and localized copy.
|
|
3903
|
+
* @returns the blue running indicator; mount only while the Session is running.
|
|
3904
|
+
*/
|
|
3905
|
+
const RunningStatus = (0, react.memo)(function RunningStatus({ startTime, t }) {
|
|
3906
|
+
const [now, setNow] = (0, react.useState)(Date.now);
|
|
3907
|
+
(0, react.useEffect)(() => {
|
|
3908
|
+
if (startTime === void 0) return;
|
|
3909
|
+
setNow(Date.now());
|
|
3910
|
+
const timer = setInterval(() => {
|
|
3911
|
+
setNow(Date.now());
|
|
3912
|
+
}, LIVE_RUN_CLOCK_INTERVAL_MS);
|
|
3913
|
+
return () => {
|
|
3914
|
+
clearInterval(timer);
|
|
3915
|
+
};
|
|
3916
|
+
}, [startTime]);
|
|
3917
|
+
const label = startTime === void 0 ? t("chat.deepDiving") : t("chat.deepDivingFor", { duration: formatRunDuration(Math.max(1e3, now - startTime), t).map((part) => part.text).join("") });
|
|
3918
|
+
return (0, react_jsx_runtime.jsxs)("div", {
|
|
3919
|
+
className: ChatView_module_css_default.running,
|
|
3920
|
+
"data-chat-running": true,
|
|
3921
|
+
children: [
|
|
3922
|
+
(0, react_jsx_runtime.jsx)("span", {
|
|
3923
|
+
className: accessibility_module_css_default.visuallyHidden,
|
|
3924
|
+
role: "status",
|
|
3925
|
+
"aria-live": "polite",
|
|
3926
|
+
"aria-atomic": "true",
|
|
3927
|
+
children: t("chat.deepDiving")
|
|
3928
|
+
}),
|
|
3929
|
+
(0, react_jsx_runtime.jsx)("span", {
|
|
3930
|
+
className: ChatView_module_css_default.runningDivider,
|
|
3931
|
+
"aria-hidden": "true"
|
|
3932
|
+
}),
|
|
3933
|
+
(0, react_jsx_runtime.jsxs)("span", {
|
|
3934
|
+
className: ChatView_module_css_default.runningContent,
|
|
3935
|
+
children: [(0, react_jsx_runtime.jsx)(RunningWhaleTail, {}), (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, {
|
|
3936
|
+
active: true,
|
|
3937
|
+
className: ChatView_module_css_default.runningText,
|
|
3938
|
+
children: label
|
|
3939
|
+
})]
|
|
3940
|
+
})
|
|
3941
|
+
]
|
|
3942
|
+
});
|
|
3943
|
+
});
|
|
3944
|
+
//#endregion
|
|
3858
3945
|
//#region ../../util/brand/lib/index.js
|
|
3859
3946
|
/**
|
|
3860
3947
|
* Duplicate-install-safe nominal primitive helpers.
|
|
@@ -5049,6 +5136,11 @@ window.__ModuleLoader__.load({
|
|
|
5049
5136
|
})), [groupedEntries, order]);
|
|
5050
5137
|
const nodeStore = useChat((s) => s.nodes);
|
|
5051
5138
|
const turnNavigationItems = useChat((s) => s.navigation.items());
|
|
5139
|
+
const latestTurnAnchor = turnNavigationItems.at(-1)?.anchorKey;
|
|
5140
|
+
const runningStartTime = useChatNode(latestTurnAnchor ?? "", (node) => {
|
|
5141
|
+
const location = node?.location;
|
|
5142
|
+
return location?.kind === "turn" || location?.kind === "step" ? location.turn.status === "open" ? location.turn.start?.time : void 0 : void 0;
|
|
5143
|
+
});
|
|
5052
5144
|
const turnOutline = useProjection("turnOutline");
|
|
5053
5145
|
const railItems = (0, react.useMemo)(() => mergeTurnRailItems(turnNavigationItems, turnOutline), [turnNavigationItems, turnOutline]);
|
|
5054
5146
|
const inbox = useProjection("inbox");
|
|
@@ -5211,6 +5303,10 @@ window.__ModuleLoader__.load({
|
|
|
5211
5303
|
renderSlot,
|
|
5212
5304
|
t
|
|
5213
5305
|
})
|
|
5306
|
+
}),
|
|
5307
|
+
running && (0, react_jsx_runtime.jsx)(RunningStatus, {
|
|
5308
|
+
startTime: runningStartTime,
|
|
5309
|
+
t
|
|
5214
5310
|
})
|
|
5215
5311
|
]
|
|
5216
5312
|
})
|
|
@@ -5319,13 +5415,12 @@ window.__ModuleLoader__.load({
|
|
|
5319
5415
|
"message.trigger.subagent": "子任务状态更新",
|
|
5320
5416
|
"message.trigger.github": "收到 GitHub 事件",
|
|
5321
5417
|
"message.trigger.webhook": "收到外部事件",
|
|
5322
|
-
"message.trigger.schedule": "
|
|
5418
|
+
"message.trigger.schedule": "自动化任务",
|
|
5323
5419
|
"message.trigger.job": "后台任务状态更新",
|
|
5324
5420
|
"message.trigger.plugin": "插件状态更新",
|
|
5325
5421
|
"message.trigger.explanation": "这条通知触发了本轮回复。",
|
|
5326
|
-
"message.turnProcess.worked": "
|
|
5327
|
-
"message.turnProcess.
|
|
5328
|
-
"message.turnProcess.took": "用时 {duration}",
|
|
5422
|
+
"message.turnProcess.worked": "已完成",
|
|
5423
|
+
"message.turnProcess.took": "已完成,用时 ",
|
|
5329
5424
|
"message.turnProcess.failed": "处理失败",
|
|
5330
5425
|
"view.chat": "对话",
|
|
5331
5426
|
"image.open": "查看大图",
|
|
@@ -5350,6 +5445,7 @@ window.__ModuleLoader__.load({
|
|
|
5350
5445
|
"chat.loadOlder": "加载更早",
|
|
5351
5446
|
"chat.toBottom": "回到底部",
|
|
5352
5447
|
"chat.deepDiving": "深度求索中",
|
|
5448
|
+
"chat.deepDivingFor": "深度求索中,用时 {duration} ···",
|
|
5353
5449
|
"chat.turnNavigation.label": "轮次导航",
|
|
5354
5450
|
"chat.turnNavigation.jump": "跳转到第 {turn} 轮",
|
|
5355
5451
|
"chat.turnNavigation.jumpLoad": "加载并跳转到第 {turn} 轮",
|
|
@@ -5441,9 +5537,9 @@ window.__ModuleLoader__.load({
|
|
|
5441
5537
|
"message.turnUsage.output": "输出",
|
|
5442
5538
|
"message.turnUsage.reasoning": "(其中推理 {tokens})",
|
|
5443
5539
|
"message.turnUsage.count": "{count} tok",
|
|
5444
|
-
"duration.
|
|
5445
|
-
"duration.
|
|
5446
|
-
"duration.
|
|
5540
|
+
"duration.secondUnit": "秒",
|
|
5541
|
+
"duration.minuteUnit": "分",
|
|
5542
|
+
"duration.hourUnit": "小时",
|
|
5447
5543
|
"command.running": "执行中…",
|
|
5448
5544
|
"command.failed": "指令失败",
|
|
5449
5545
|
"command.done": "已完成",
|
|
@@ -5508,13 +5604,12 @@ window.__ModuleLoader__.load({
|
|
|
5508
5604
|
"message.trigger.subagent": "Subtask status updated",
|
|
5509
5605
|
"message.trigger.github": "GitHub event received",
|
|
5510
5606
|
"message.trigger.webhook": "External event received",
|
|
5511
|
-
"message.trigger.schedule": "
|
|
5607
|
+
"message.trigger.schedule": "Automation task",
|
|
5512
5608
|
"message.trigger.job": "Background task updated",
|
|
5513
5609
|
"message.trigger.plugin": "Plugin status updated",
|
|
5514
5610
|
"message.trigger.explanation": "This notification triggered this response.",
|
|
5515
|
-
"message.turnProcess.worked": "
|
|
5516
|
-
"message.turnProcess.
|
|
5517
|
-
"message.turnProcess.took": "Took {duration}",
|
|
5611
|
+
"message.turnProcess.worked": "Completed",
|
|
5612
|
+
"message.turnProcess.took": "Completed in ",
|
|
5518
5613
|
"message.turnProcess.failed": "Failed",
|
|
5519
5614
|
"view.chat": "Chat",
|
|
5520
5615
|
"image.open": "View full image",
|
|
@@ -5538,7 +5633,8 @@ window.__ModuleLoader__.load({
|
|
|
5538
5633
|
"chat.loadError": "Failed to load history: {message} ({code})",
|
|
5539
5634
|
"chat.loadOlder": "Load earlier",
|
|
5540
5635
|
"chat.toBottom": "Back to bottom",
|
|
5541
|
-
"chat.deepDiving": "Deep diving
|
|
5636
|
+
"chat.deepDiving": "Deep diving",
|
|
5637
|
+
"chat.deepDivingFor": "Deep diving for {duration} ···",
|
|
5542
5638
|
"chat.turnNavigation.label": "Turn navigation",
|
|
5543
5639
|
"chat.turnNavigation.jump": "Jump to turn {turn}",
|
|
5544
5640
|
"chat.turnNavigation.jumpLoad": "Load and jump to turn {turn}",
|
|
@@ -5630,9 +5726,9 @@ window.__ModuleLoader__.load({
|
|
|
5630
5726
|
"message.turnUsage.output": "Output",
|
|
5631
5727
|
"message.turnUsage.reasoning": " ({tokens} reasoning)",
|
|
5632
5728
|
"message.turnUsage.count": "{count} tok",
|
|
5633
|
-
"duration.
|
|
5634
|
-
"duration.
|
|
5635
|
-
"duration.
|
|
5729
|
+
"duration.secondUnit": "s",
|
|
5730
|
+
"duration.minuteUnit": "m ",
|
|
5731
|
+
"duration.hourUnit": "h ",
|
|
5636
5732
|
"command.running": "Running…",
|
|
5637
5733
|
"command.failed": "Command failed",
|
|
5638
5734
|
"command.done": "Completed",
|
|
@@ -5644,20 +5740,8 @@ window.__ModuleLoader__.load({
|
|
|
5644
5740
|
"clock.ymd": "{y}-{m}-{d}"
|
|
5645
5741
|
};
|
|
5646
5742
|
//#endregion
|
|
5647
|
-
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/accessibility.module.css.mjs
|
|
5648
|
-
const css$10 = ".TTCZqG_visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}";
|
|
5649
|
-
const tagId$10 = "@deepseek-ai/dsh-client-ui-chat/accessibility.module.css";
|
|
5650
|
-
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$10) + "]") === null) {
|
|
5651
|
-
const tag = document.createElement("style");
|
|
5652
|
-
tag.dataset.plugin = "@deepseek-ai/dsh-client-ui-chat";
|
|
5653
|
-
tag.dataset.pluginCss = tagId$10;
|
|
5654
|
-
tag.textContent = css$10;
|
|
5655
|
-
document.head.appendChild(tag);
|
|
5656
|
-
}
|
|
5657
|
-
var accessibility_module_css_default = { "visuallyHidden": "TTCZqG_visuallyHidden" };
|
|
5658
|
-
//#endregion
|
|
5659
5743
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/ReasoningRow.module.css.mjs
|
|
5660
|
-
const css$9 = ".lcKema_root{flex-direction:column;display:flex}.lcKema_root:not([data-expanded]){contain:size layout;height:calc(24px + var(--dsh-content-font-delta,0px))}.lcKema_row{
|
|
5744
|
+
const css$9 = ".lcKema_root{flex-direction:column;display:flex}.lcKema_root:not([data-expanded]){contain:size layout;height:calc(24px + var(--dsh-content-font-delta,0px))}.lcKema_row{overflow:hidden}.lcKema_root[data-expanded] [data-open] [data-disclosure-row]{z-index:1;background:var(--dsw-alias-bg-base);position:sticky;top:0}.lcKema_leading{flex-shrink:0}.lcKema_title{font-weight:400}.lcKema_separator{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}.lcKema_summary{min-width:0;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(20px + var(--dsh-content-font-delta-secondary,0px));white-space:nowrap;flex:auto;overflow:hidden}.lcKema_summaryText{text-overflow:ellipsis;display:block;overflow:hidden}.lcKema_summary[data-streaming]{mask-image:linear-gradient(90deg,#000 calc(100% - 48px),#0000)}.lcKema_summary[data-streaming] .lcKema_summaryText{text-overflow:clip;overflow:visible}.lcKema_root:not([data-preview]) .lcKema_separator,.lcKema_root:not([data-preview]) .lcKema_summary{display:none}.lcKema_thinkBody{padding:4px 0 4px calc(22px + var(--dsh-content-font-delta,0px));min-width:0}";
|
|
5661
5745
|
const tagId$9 = "@deepseek-ai/dsh-client-ui-chat/ReasoningRow.module.css";
|
|
5662
5746
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$9) + "]") === null) {
|
|
5663
5747
|
const tag = document.createElement("style");
|
|
@@ -5667,8 +5751,6 @@ window.__ModuleLoader__.load({
|
|
|
5667
5751
|
document.head.appendChild(tag);
|
|
5668
5752
|
}
|
|
5669
5753
|
var ReasoningRow_module_css_default = {
|
|
5670
|
-
"chevron": "lcKema_chevron",
|
|
5671
|
-
"dsh-reasoning-row-sweep": "lcKema_dsh-reasoning-row-sweep",
|
|
5672
5754
|
"leading": "lcKema_leading",
|
|
5673
5755
|
"root": "lcKema_root",
|
|
5674
5756
|
"row": "lcKema_row",
|
|
@@ -5723,13 +5805,14 @@ window.__ModuleLoader__.load({
|
|
|
5723
5805
|
const preview = usePresentation((policy) => !expanded && summary !== "" && (running || policy.settledReasoningPreview));
|
|
5724
5806
|
const collapsedContent = (0, react.useMemo)(() => (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", {
|
|
5725
5807
|
className: ReasoningRow_module_css_default.separator,
|
|
5808
|
+
"data-shimmer-decoration": true,
|
|
5726
5809
|
"aria-hidden": true
|
|
5727
5810
|
}), (0, react_jsx_runtime.jsx)("span", {
|
|
5728
5811
|
className: ReasoningRow_module_css_default.summary,
|
|
5729
5812
|
"data-streaming": running || void 0,
|
|
5730
5813
|
children: (0, react_jsx_runtime.jsx)("span", {
|
|
5731
5814
|
className: ReasoningRow_module_css_default.summaryText,
|
|
5732
|
-
children: summary
|
|
5815
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { children: summary })
|
|
5733
5816
|
})
|
|
5734
5817
|
})] }), [running, summary]);
|
|
5735
5818
|
const content = (0, react.useMemo)(() => expanded ? (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -5759,9 +5842,9 @@ window.__ModuleLoader__.load({
|
|
|
5759
5842
|
rowClassName: ReasoningRow_module_css_default.row,
|
|
5760
5843
|
leadingClassName: ReasoningRow_module_css_default.leading,
|
|
5761
5844
|
titleClassName: ReasoningRow_module_css_default.title,
|
|
5762
|
-
chevronClassName: ReasoningRow_module_css_default.chevron,
|
|
5763
5845
|
icon: THINK_ICON,
|
|
5764
5846
|
title: t("message.think"),
|
|
5847
|
+
running,
|
|
5765
5848
|
open: expanded,
|
|
5766
5849
|
expandable: true,
|
|
5767
5850
|
expandOnRowClick: true,
|
|
@@ -5931,7 +6014,7 @@ window.__ModuleLoader__.load({
|
|
|
5931
6014
|
});
|
|
5932
6015
|
//#endregion
|
|
5933
6016
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/GenericCommandCard.module.css.mjs
|
|
5934
|
-
const css$7 = "._5OnbHa_root{flex-direction:column;display:flex}._5OnbHa_leading{flex-shrink:0}.
|
|
6017
|
+
const css$7 = "._5OnbHa_root{flex-direction:column;display:flex}._5OnbHa_leading{flex-shrink:0}._5OnbHa_title{font-weight:400}._5OnbHa_separator{background:var(--dsw-alias-label-caption);border-radius:1px;flex:none;width:2px;height:2px;margin:0 8px}._5OnbHa_summary{min-width:0;font-size:var(--dsh-content-font-size-secondary,13px);line-height:calc(24px + var(--dsh-content-font-delta,0px));text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}._5OnbHa_summary[data-error],._5OnbHa_body[data-error]{color:var(--dsw-alias-state-error-primary)}._5OnbHa_body{border:.5px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-markdown-code-block);max-height:260px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-markdown-code-block-small);white-space:pre-wrap;margin:4px 0 4px 4px;padding:12px 16px;overflow:auto}";
|
|
5935
6018
|
const tagId$7 = "@deepseek-ai/dsh-client-ui-chat/GenericCommandCard.module.css";
|
|
5936
6019
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
|
|
5937
6020
|
const tag = document.createElement("style");
|
|
@@ -5942,10 +6025,8 @@ window.__ModuleLoader__.load({
|
|
|
5942
6025
|
}
|
|
5943
6026
|
var GenericCommandCard_module_css_default = {
|
|
5944
6027
|
"body": "_5OnbHa_body",
|
|
5945
|
-
"chevron": "_5OnbHa_chevron",
|
|
5946
6028
|
"leading": "_5OnbHa_leading",
|
|
5947
6029
|
"root": "_5OnbHa_root",
|
|
5948
|
-
"row": "_5OnbHa_row",
|
|
5949
6030
|
"separator": "_5OnbHa_separator",
|
|
5950
6031
|
"summary": "_5OnbHa_summary",
|
|
5951
6032
|
"title": "_5OnbHa_title"
|
|
@@ -5977,14 +6058,12 @@ window.__ModuleLoader__.load({
|
|
|
5977
6058
|
}, []);
|
|
5978
6059
|
const collapsedContent = (0, react.useMemo)(() => (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", {
|
|
5979
6060
|
className: GenericCommandCard_module_css_default.separator,
|
|
6061
|
+
"data-shimmer-decoration": true,
|
|
5980
6062
|
"aria-hidden": true
|
|
5981
6063
|
}), (0, react_jsx_runtime.jsx)("span", {
|
|
5982
6064
|
className: GenericCommandCard_module_css_default.summary,
|
|
5983
6065
|
"data-error": state === "error" || void 0,
|
|
5984
|
-
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, {
|
|
5985
|
-
active: running,
|
|
5986
|
-
children: summary
|
|
5987
|
-
})
|
|
6066
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.TextShimmer, { children: summary })
|
|
5988
6067
|
})] }), [
|
|
5989
6068
|
running,
|
|
5990
6069
|
state,
|
|
@@ -6013,10 +6092,8 @@ window.__ModuleLoader__.load({
|
|
|
6013
6092
|
children: t("row.failed")
|
|
6014
6093
|
}),
|
|
6015
6094
|
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.DisclosureRow, {
|
|
6016
|
-
rowClassName: GenericCommandCard_module_css_default.row,
|
|
6017
6095
|
leadingClassName: GenericCommandCard_module_css_default.leading,
|
|
6018
6096
|
titleClassName: GenericCommandCard_module_css_default.title,
|
|
6019
|
-
chevronClassName: GenericCommandCard_module_css_default.chevron,
|
|
6020
6097
|
icon: COMMAND_ICON,
|
|
6021
6098
|
title,
|
|
6022
6099
|
running,
|
|
@@ -6127,7 +6204,7 @@ window.__ModuleLoader__.load({
|
|
|
6127
6204
|
});
|
|
6128
6205
|
//#endregion
|
|
6129
6206
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/TurnProcessNodeView.module.css.mjs
|
|
6130
|
-
const css$6 = ".l_V-RG_root{box-sizing:border-box;width:100%;min-width:0;height:calc(33px + var(--dsh-content-font-delta,0px));border:none;border-bottom:.5px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);cursor:pointer;text-align:left;background:0 0;align-items:center;padding:0 0 8px;transition:color .1s;display:flex}.l_V-RG_root:disabled{cursor:default}.l_V-RG_root:not(:disabled)
|
|
6207
|
+
const css$6 = ".l_V-RG_root{box-sizing:border-box;width:100%;min-width:0;height:calc(33px + var(--dsh-content-font-delta,0px));border:none;border-bottom:.5px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);font:inherit;font-size:var(--dsh-content-font-size,14px);cursor:pointer;text-align:left;background:0 0;align-items:center;padding:0 0 8px;transition:color .1s;display:flex}.l_V-RG_root:disabled{cursor:default}.l_V-RG_root:hover:not(:disabled){color:var(--dsw-alias-label-secondary)}.l_V-RG_chevron{width:14px;height:14px;color:inherit;flex:none;margin-left:4px;transition:transform .1s}.l_V-RG_root[data-open] .l_V-RG_chevron{transform:rotate(180deg)}.l_V-RG_label{min-width:0;font-size:inherit;line-height:calc(24px + var(--dsh-content-font-delta,0px));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.l_V-RG_durationNumber{font-family:var(--ds-font-family-code);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.l_V-RG_root,.l_V-RG_chevron{transition:none}}";
|
|
6131
6208
|
const tagId$6 = "@deepseek-ai/dsh-client-ui-chat/TurnProcessNodeView.module.css";
|
|
6132
6209
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
|
|
6133
6210
|
const tag = document.createElement("style");
|
|
@@ -6138,36 +6215,24 @@ window.__ModuleLoader__.load({
|
|
|
6138
6215
|
}
|
|
6139
6216
|
var TurnProcessNodeView_module_css_default = {
|
|
6140
6217
|
"chevron": "l_V-RG_chevron",
|
|
6218
|
+
"durationNumber": "l_V-RG_durationNumber",
|
|
6141
6219
|
"label": "l_V-RG_label",
|
|
6142
6220
|
"root": "l_V-RG_root"
|
|
6143
6221
|
};
|
|
6144
6222
|
//#endregion
|
|
6145
6223
|
//#region lib/types/client/chat/TurnProcessNodeView.js
|
|
6146
|
-
/** Turn
|
|
6224
|
+
/** Settled Turn duration and process disclosure above its content. */
|
|
6147
6225
|
const TurnProcessNodeView = (0, react.memo)(function TurnProcessNodeView({ node, turnProcess, t }) {
|
|
6148
6226
|
if (turnProcess === void 0) throw new Error("turn-process node requires Turn process owner state");
|
|
6149
6227
|
const open = !turnProcess.foldable || turnProcess.open;
|
|
6150
6228
|
const turn = node.location.kind === "turn" || node.location.kind === "step" ? node.location.turn : void 0;
|
|
6151
|
-
|
|
6152
|
-
const ticking = turn?.status === "open" && turn.start !== void 0;
|
|
6153
|
-
(0, react.useEffect)(() => {
|
|
6154
|
-
if (!ticking) return;
|
|
6155
|
-
setNow(Date.now());
|
|
6156
|
-
const timer = setInterval(() => {
|
|
6157
|
-
setNow(Date.now());
|
|
6158
|
-
}, LIVE_RUN_CLOCK_INTERVAL_MS);
|
|
6159
|
-
return () => {
|
|
6160
|
-
clearInterval(timer);
|
|
6161
|
-
};
|
|
6162
|
-
}, [ticking]);
|
|
6163
|
-
if (turn?.start === void 0 && turn?.status !== "closed") return null;
|
|
6229
|
+
if (turn?.status !== "closed") return null;
|
|
6164
6230
|
const canCollapse = turnProcess.foldable && turnProcess.hasContent && !turnProcessAlwaysOpen(node);
|
|
6165
|
-
const running = turn.status === "open";
|
|
6166
6231
|
const reason = turn.end?.data.reason.kind;
|
|
6167
|
-
const elapsedMs = turn.start === void 0 ? void 0 : Math.max(1e3,
|
|
6168
|
-
const duration = elapsedMs === void 0
|
|
6169
|
-
const label =
|
|
6170
|
-
const announcement =
|
|
6232
|
+
const elapsedMs = turn.start === void 0 || turn.end === void 0 ? void 0 : Math.max(1e3, turn.end.time - turn.start.time);
|
|
6233
|
+
const duration = elapsedMs === void 0 || reason === "aborted" || reason === "error" ? void 0 : formatRunDuration(elapsedMs, t);
|
|
6234
|
+
const label = reason === "aborted" ? t("message.stopped") : reason === "error" ? t("message.turnProcess.failed") : duration === void 0 ? t("message.turnProcess.worked") : t("message.turnProcess.took");
|
|
6235
|
+
const announcement = reason === "aborted" ? t("message.stopped") : reason === "error" ? t("message.turnProcess.failed") : t("message.turnProcess.worked");
|
|
6171
6236
|
return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("span", {
|
|
6172
6237
|
className: accessibility_module_css_default.visuallyHidden,
|
|
6173
6238
|
role: "status",
|
|
@@ -6188,9 +6253,12 @@ window.__ModuleLoader__.load({
|
|
|
6188
6253
|
event.currentTarget.focus();
|
|
6189
6254
|
turnProcess.setOpen(!open);
|
|
6190
6255
|
},
|
|
6191
|
-
children: [(0, react_jsx_runtime.
|
|
6256
|
+
children: [(0, react_jsx_runtime.jsxs)("span", {
|
|
6192
6257
|
className: TurnProcessNodeView_module_css_default.label,
|
|
6193
|
-
children: label
|
|
6258
|
+
children: [label, duration?.map((part, index) => (0, react_jsx_runtime.jsx)("span", {
|
|
6259
|
+
className: part.numeric ? TurnProcessNodeView_module_css_default.durationNumber : void 0,
|
|
6260
|
+
children: part.text
|
|
6261
|
+
}, index))]
|
|
6194
6262
|
}), canCollapse && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, { className: TurnProcessNodeView_module_css_default.chevron })]
|
|
6195
6263
|
})] });
|
|
6196
6264
|
});
|
|
@@ -6605,7 +6673,7 @@ window.__ModuleLoader__.load({
|
|
|
6605
6673
|
}
|
|
6606
6674
|
//#endregion
|
|
6607
6675
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-chat/src/client/chat/TurnTriggerNodeView.module.css.mjs
|
|
6608
|
-
const css$2 = ".oz9t_a_root{border:.5px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-markdown-code-block);min-width:0;transition:background-color .1s}.oz9t_a_root:hover{background:var(--dsw-alias-interactive-bg-hover)}.oz9t_a_header{width:100%;color:var(--dsw-alias-label-
|
|
6676
|
+
const css$2 = ".oz9t_a_root{border:.5px solid var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-turn-trigger-bg,var(--dsw-alias-markdown-code-block));min-width:0;transition:background-color .1s}.oz9t_a_root:hover{background:var(--dsw-alias-turn-trigger-bg-hover,var(--dsw-alias-interactive-bg-hover))}.oz9t_a_header{width:100%;color:var(--dsw-alias-label-tertiary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:12px 16px;transition:color .1s;display:flex}.oz9t_a_header:hover{color:var(--dsw-alias-label-secondary)}.oz9t_a_icon{color:inherit;flex:none;display:inline-flex}.oz9t_a_title{font-size:var(--dsh-content-font-size,14px);flex:none}.oz9t_a_time{color:inherit;font:var(--dsw-font-xxs-12);flex:none;margin-left:auto}.oz9t_a_chevron,.oz9t_a_openChevron{color:inherit;flex:none}.oz9t_a_openChevron{transform:rotate(180deg)}.oz9t_a_body{padding:0 16px 12px 40px}.oz9t_a_explanation{color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);margin:8px 0}.oz9t_a_content{white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;font:var(--dsw-font-xxs-12);overflow:auto}@media (prefers-reduced-motion:reduce){.oz9t_a_root,.oz9t_a_header{transition:none}}";
|
|
6609
6677
|
const tagId$2 = "@deepseek-ai/dsh-client-ui-chat/TurnTriggerNodeView.module.css";
|
|
6610
6678
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
|
|
6611
6679
|
const tag = document.createElement("style");
|
|
@@ -6637,7 +6705,7 @@ window.__ModuleLoader__.load({
|
|
|
6637
6705
|
subagent: _deepseek_ai_dsh_client_ui_primitives.IconAgentPresetOutlineRegular,
|
|
6638
6706
|
github: _deepseek_ai_dsh_client_ui_primitives.IconBranchOutlineRegular,
|
|
6639
6707
|
webhook: _deepseek_ai_dsh_client_ui_primitives.IconGlobeOutlineRegular,
|
|
6640
|
-
schedule: _deepseek_ai_dsh_client_ui_primitives.
|
|
6708
|
+
schedule: _deepseek_ai_dsh_client_ui_primitives.IconClockOutlineRegular,
|
|
6641
6709
|
job: _deepseek_ai_dsh_client_ui_primitives.IconQueueOutlineRegular,
|
|
6642
6710
|
plugin: _deepseek_ai_dsh_client_ui_primitives.IconCordisPluginOutlineRegular
|
|
6643
6711
|
};
|
|
@@ -10596,6 +10664,14 @@ window.__ModuleLoader__.load({
|
|
|
10596
10664
|
if (node === void 0) throw new Error(`Chat grouping input is missing Node ${key}`);
|
|
10597
10665
|
return node;
|
|
10598
10666
|
}
|
|
10667
|
+
function questionReplyIds(input, keys) {
|
|
10668
|
+
const ids = /* @__PURE__ */ new Set();
|
|
10669
|
+
for (const key of keys) {
|
|
10670
|
+
const node = readNode(input, key);
|
|
10671
|
+
if (node.kind === "question-reply") ids.add(node.id);
|
|
10672
|
+
}
|
|
10673
|
+
return ids;
|
|
10674
|
+
}
|
|
10599
10675
|
/** One group's members and cached summary, refreshed together when its content changes. */
|
|
10600
10676
|
var ProcessGroup = class {
|
|
10601
10677
|
key;
|
|
@@ -10709,19 +10785,22 @@ window.__ModuleLoader__.load({
|
|
|
10709
10785
|
};
|
|
10710
10786
|
let previous;
|
|
10711
10787
|
let followed = false;
|
|
10712
|
-
|
|
10788
|
+
const keys = input.readTurn(this.turn);
|
|
10789
|
+
const replies = questionReplyIds(input, keys);
|
|
10790
|
+
for (const key of keys) {
|
|
10713
10791
|
const position = readPosition(input, key);
|
|
10714
10792
|
if (previous !== void 0 && position.previous !== previous) flush(true);
|
|
10715
10793
|
previous = key;
|
|
10716
10794
|
followed = position.next !== void 0;
|
|
10717
10795
|
const node = readNode(input, key);
|
|
10796
|
+
if (node.kind === "turn-trigger" && replies.has(node.id)) continue;
|
|
10718
10797
|
if (INDEPENDENT.has(node.kind)) {
|
|
10719
10798
|
flush(true);
|
|
10720
10799
|
emit(key, {
|
|
10721
10800
|
kind: "node",
|
|
10722
10801
|
key
|
|
10723
10802
|
});
|
|
10724
|
-
} else if (node.kind === "turn-process") emit(key, {
|
|
10803
|
+
} else if (node.kind === "turn-process") emit(pending[0]?.key ?? key, {
|
|
10725
10804
|
kind: "node",
|
|
10726
10805
|
key
|
|
10727
10806
|
});
|
|
@@ -10855,12 +10934,16 @@ window.__ModuleLoader__.load({
|
|
|
10855
10934
|
} : null;
|
|
10856
10935
|
}
|
|
10857
10936
|
rootEntries(input) {
|
|
10937
|
+
const replies = questionReplyIds(input, input.order.filter((key) => readPosition(input, key).turn === void 0));
|
|
10858
10938
|
return input.order.flatMap((key) => {
|
|
10859
10939
|
const turn = readPosition(input, key).turn;
|
|
10860
|
-
if (turn === void 0)
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
|
|
10940
|
+
if (turn === void 0) {
|
|
10941
|
+
const node = readNode(input, key);
|
|
10942
|
+
return node.kind === "turn-trigger" && replies.has(node.id) ? [] : [{
|
|
10943
|
+
kind: "node",
|
|
10944
|
+
key
|
|
10945
|
+
}];
|
|
10946
|
+
}
|
|
10864
10947
|
const groups = this.turns.get(turn);
|
|
10865
10948
|
if (groups === void 0) throw new Error(`Chat grouping order is missing Turn ${turn}`);
|
|
10866
10949
|
return groups.references(key);
|
|
@@ -11836,7 +11919,7 @@ window.__ModuleLoader__.load({
|
|
|
11836
11919
|
"verbose"
|
|
11837
11920
|
];
|
|
11838
11921
|
/**
|
|
11839
|
-
* Saved value from the two-mode generation of this setting. Read as `
|
|
11922
|
+
* Saved value from the two-mode generation of this setting. Read as `detailed`;
|
|
11840
11923
|
* never offered as a choice and never written back.
|
|
11841
11924
|
*/
|
|
11842
11925
|
const LEGACY_TRANSCRIPT_VIEW_MODE = "normal";
|
|
@@ -11848,8 +11931,8 @@ window.__ModuleLoader__.load({
|
|
|
11848
11931
|
LEGACY_TRANSCRIPT_VIEW_MODE,
|
|
11849
11932
|
LEGACY_EXPANDED_TRANSCRIPT_VIEW_MODE
|
|
11850
11933
|
];
|
|
11851
|
-
/**
|
|
11852
|
-
const DEFAULT_TRANSCRIPT_VIEW_MODE = "
|
|
11934
|
+
/** Default work details for non-Desktop Web clients. */
|
|
11935
|
+
const DEFAULT_TRANSCRIPT_VIEW_MODE = "detailed";
|
|
11853
11936
|
/** Performance and usage detail levels accepted by user settings. */
|
|
11854
11937
|
const PERFORMANCE_USAGE_MODES = ["compact", "detailed"];
|
|
11855
11938
|
/** Preserve detailed accounting for users without an explicit preference. */
|
|
@@ -11858,7 +11941,7 @@ window.__ModuleLoader__.load({
|
|
|
11858
11941
|
const ChatSettingsFields = {
|
|
11859
11942
|
linkOpening: Schema.union(["sidebar", "new-tab"]).default("sidebar"),
|
|
11860
11943
|
performanceUsage: Schema.union([...PERFORMANCE_USAGE_MODES]).default(DEFAULT_PERFORMANCE_USAGE),
|
|
11861
|
-
[TRANSCRIPT_VIEW_FIELD]: Schema.union([...TRANSCRIPT_VIEW_SETTING_VALUES]).
|
|
11944
|
+
[TRANSCRIPT_VIEW_FIELD]: Schema.union([...TRANSCRIPT_VIEW_SETTING_VALUES]).loose()
|
|
11862
11945
|
};
|
|
11863
11946
|
Schema.object(ChatSettingsFields);
|
|
11864
11947
|
//#endregion
|
|
@@ -11968,14 +12051,18 @@ window.__ModuleLoader__.load({
|
|
|
11968
12051
|
/** Live work-details preference consumed by Chat and its Settings row. */
|
|
11969
12052
|
var TranscriptViewPolicy = class {
|
|
11970
12053
|
host;
|
|
12054
|
+
defaultMode;
|
|
11971
12055
|
unsubscribe;
|
|
11972
|
-
/** Reactive current mode
|
|
11973
|
-
mode
|
|
12056
|
+
/** Reactive current mode, including the client default before Host settings arrive. */
|
|
12057
|
+
mode;
|
|
11974
12058
|
/**
|
|
11975
12059
|
* @param host - durable Chat settings scope.
|
|
12060
|
+
* @param defaultMode - presentation used without an explicit saved mode.
|
|
11976
12061
|
*/
|
|
11977
|
-
constructor(host) {
|
|
12062
|
+
constructor(host, defaultMode = DEFAULT_TRANSCRIPT_VIEW_MODE) {
|
|
11978
12063
|
this.host = host;
|
|
12064
|
+
this.defaultMode = defaultMode;
|
|
12065
|
+
this.mode = (0, _deepseek_ai_dsh_client_store.createSnapshotStore)(defaultMode);
|
|
11979
12066
|
this.unsubscribe = host.subscribe(() => {
|
|
11980
12067
|
this.adopt();
|
|
11981
12068
|
});
|
|
@@ -11999,7 +12086,7 @@ window.__ModuleLoader__.load({
|
|
|
11999
12086
|
const section = this.host.getSnapshot().value;
|
|
12000
12087
|
if (section === void 0) return;
|
|
12001
12088
|
const saved = section.transcriptView;
|
|
12002
|
-
const mode = saved === "normal"
|
|
12089
|
+
const mode = saved === "normal" || saved === "expanded" ? "detailed" : saved ?? this.defaultMode;
|
|
12003
12090
|
if (this.mode.getSnapshot() !== mode) this.mode.set(mode);
|
|
12004
12091
|
}
|
|
12005
12092
|
};
|
|
@@ -12253,7 +12340,7 @@ window.__ModuleLoader__.load({
|
|
|
12253
12340
|
scope.slots.inject("settings.general.item", () => scope.slots.register({
|
|
12254
12341
|
name: "settings.general.item",
|
|
12255
12342
|
id: "link-opening",
|
|
12256
|
-
order:
|
|
12343
|
+
order: 17,
|
|
12257
12344
|
locale: NS,
|
|
12258
12345
|
inject: () => ({
|
|
12259
12346
|
hooks: {
|
|
@@ -12267,7 +12354,7 @@ window.__ModuleLoader__.load({
|
|
|
12267
12354
|
})
|
|
12268
12355
|
}, LinkOpeningRow));
|
|
12269
12356
|
});
|
|
12270
|
-
const transcriptView = new TranscriptViewPolicy(chatSettings);
|
|
12357
|
+
const transcriptView = new TranscriptViewPolicy(chatSettings, "dshDesktop" in globalThis ? "standard" : DEFAULT_TRANSCRIPT_VIEW_MODE);
|
|
12271
12358
|
const presentation = derivePresentationPolicy(transcriptView.mode);
|
|
12272
12359
|
const performancePolicy = new PerformanceUsagePolicy(chatSettings);
|
|
12273
12360
|
ctx.effect(() => () => {
|
|
@@ -12279,7 +12366,7 @@ window.__ModuleLoader__.load({
|
|
|
12279
12366
|
ctx.slots.inject("settings.general.item", () => ctx.slots.register({
|
|
12280
12367
|
name: "settings.general.item",
|
|
12281
12368
|
id: "performance-usage",
|
|
12282
|
-
order:
|
|
12369
|
+
order: 30,
|
|
12283
12370
|
locale: NS,
|
|
12284
12371
|
inject: () => ({
|
|
12285
12372
|
hooks: { performanceUsage },
|
|
@@ -12362,10 +12449,19 @@ window.__ModuleLoader__.load({
|
|
|
12362
12449
|
read: () => chatScrollPositions.get(sessionId) ?? null
|
|
12363
12450
|
},
|
|
12364
12451
|
forkAt: (seq) => {
|
|
12452
|
+
const messageId = [...chat.getSnapshot().timeline.turns.values()].find((turn) => turn.end?.seq === seq)?.data.get("turn-tail")?.closing?.finalNode.messageId;
|
|
12365
12453
|
ctx.sessions.fork({
|
|
12366
12454
|
sessionId,
|
|
12367
12455
|
atSeq: seq,
|
|
12368
|
-
increaseTitle: true
|
|
12456
|
+
increaseTitle: true,
|
|
12457
|
+
onCreated: (childId) => {
|
|
12458
|
+
ctx.get("productAnalytics")?.track("branch_session_click", {
|
|
12459
|
+
session_id: childId,
|
|
12460
|
+
parent_session_id: sessionId,
|
|
12461
|
+
...messageId === void 0 ? {} : { parent_message_id: messageId },
|
|
12462
|
+
click_position: "footer"
|
|
12463
|
+
});
|
|
12464
|
+
}
|
|
12369
12465
|
}).then((childId) => {
|
|
12370
12466
|
ctx.uiWorkspace.openSession(childId);
|
|
12371
12467
|
}).catch(() => {});
|