@deepseek-ai/dsh-client-ui-user-questions 0.1.6-alpha.2 → 0.1.7-alpha.1
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 +2 -2
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/lib/client.js +12 -12
- package/package.json +20 -20
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# pnpm run verify-translation-pairing --write packages/client/ui-user-questions/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: 929494485b5ca1c0afb6fa3d24f59627136cc915
|
|
6
|
+
README.zh.md: 0269998b744e020bd9d58b8f919626297cd94f7f
|
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ A multi-select draft keeps its selected labels while the user opens or edits the
|
|
|
33
33
|
|
|
34
34
|
### The plan-review card
|
|
35
35
|
|
|
36
|
-
A `plan-review` intent — set by `dsh-plan-mode` on the `exit_plan_mode` review — renders a compact approval card: a `Plan review` strip with a `View full plan` link, the plan title and a two-line plain-text summary, and `Request changes` / `Approve` actions. The complete plan opens in the sidebar through the link or its permanent Chat card. Approve answers with the asker's approval label; `Request changes` rejects the wait as `ASK_CANCELLED`, returning the composer for the user's feedback without submitting an approval. The card has no separate refusal button.
|
|
36
|
+
A `plan-review` intent — set by `dsh-plan-mode` on the `exit_plan_mode` review — renders a compact approval card: a `Plan review` strip with a `View full plan` link, the plan title and a two-line plain-text summary, and `Request changes` / `Approve` actions. The strip uses the shared warning dot and changes it to the ongoing loader while either action settles. The complete plan opens in the sidebar through the link or its permanent Chat card. Approve answers with the asker's approval label; `Request changes` rejects the wait as `ASK_CANCELLED`, returning the composer for the user's feedback without submitting an approval. The card has no separate refusal button.
|
|
37
37
|
|
|
38
38
|
### Failure and recovery
|
|
39
39
|
|
package/README.zh.md
CHANGED
|
@@ -33,7 +33,7 @@ kind: "package-reference"
|
|
|
33
33
|
|
|
34
34
|
### plan-review 卡片
|
|
35
35
|
|
|
36
|
-
`plan-review` 意图——由 `dsh-plan-mode` 在 `exit_plan_mode`
|
|
36
|
+
`plan-review` 意图——由 `dsh-plan-mode` 在 `exit_plan_mode` 审阅上设置——渲染紧凑审批卡片:顶部为带“查看全文”链接的“计划待审”条带,正文显示计划标题和两行纯文本摘要,底部提供“要求修改”和“同意执行”。条带使用共享 warning 状态点,并在任一操作结算期间切换为 ongoing loading。通过链接或聊天历史中的常驻卡片可在侧边栏阅读完整计划。“同意执行”用提问方的批准标签回答;“要求修改”以 `ASK_CANCELLED` 拒绝等待,让编辑器归位供用户输入反馈,不会提交批准。卡片不单列拒绝按钮。
|
|
37
37
|
|
|
38
38
|
### 失败与恢复
|
|
39
39
|
|
package/lib/client.js
CHANGED
|
@@ -200,7 +200,7 @@ window.__ModuleLoader__.load({
|
|
|
200
200
|
}
|
|
201
201
|
//#endregion
|
|
202
202
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-user-questions/src/client/PlanReviewPanel.module.css.mjs
|
|
203
|
-
const css$1 = ".LVzXQa_frame{padding:6px calc(var(--dsh-composer-side-clearance) + 16px) 10px;justify-content:center;display:flex}.LVzXQa_card{width:100%;max-width:var(--dsh-chat-content-width);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-elevation-panel);color:var(--dsw-alias-label-primary);border:0;border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.LVzXQa_card,.LVzXQa_card *{box-sizing:border-box}.LVzXQa_strip{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-primary);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;font-size:14px;line-height:20px;display:flex}.
|
|
203
|
+
const css$1 = ".LVzXQa_frame{padding:6px calc(var(--dsh-composer-side-clearance) + 16px) 10px;justify-content:center;display:flex}.LVzXQa_card{width:100%;max-width:var(--dsh-chat-content-width);--dsw-elevation-stroke-color:var(--dsw-alias-border-l2);background:var(--dsw-specific-input-major);box-shadow:var(--dsw-elevation-panel);color:var(--dsw-alias-label-primary);border:0;border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.LVzXQa_card,.LVzXQa_card *{box-sizing:border-box}.LVzXQa_strip{background:var(--dsw-alias-state-warn-tertiary);color:var(--dsw-alias-state-warn-primary);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;font-size:14px;line-height:20px;display:flex}.LVzXQa_footer{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px 12px;display:flex}.LVzXQa_feedback{min-height:16px;color:var(--dsw-alias-state-error-primary);font-size:11px;line-height:16px}.LVzXQa_actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.LVzXQa_summary{min-width:0;padding:14px 16px 12px}.LVzXQa_title{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:500;line-height:22px;overflow:hidden}.LVzXQa_description{-webkit-line-clamp:2;color:var(--dsw-alias-label-secondary);-webkit-box-orient:vertical;margin:8px 0 0;font-size:14px;line-height:24px;display:-webkit-box;overflow:hidden}.LVzXQa_discuss{gap:6px}@media (width<=720px){.LVzXQa_card{border-radius:16px}.LVzXQa_footer{align-items:flex-end;padding:8px 12px 10px}}.LVzXQa_previewActions{align-items:center;margin-left:auto;display:flex}";
|
|
204
204
|
const tagId$1 = "@deepseek-ai/dsh-client-ui-user-questions/PlanReviewPanel.module.css";
|
|
205
205
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
206
206
|
const tag = document.createElement("style");
|
|
@@ -214,7 +214,6 @@ window.__ModuleLoader__.load({
|
|
|
214
214
|
"card": "LVzXQa_card",
|
|
215
215
|
"description": "LVzXQa_description",
|
|
216
216
|
"discuss": "LVzXQa_discuss",
|
|
217
|
-
"dot": "LVzXQa_dot",
|
|
218
217
|
"feedback": "LVzXQa_feedback",
|
|
219
218
|
"footer": "LVzXQa_footer",
|
|
220
219
|
"frame": "LVzXQa_frame",
|
|
@@ -272,11 +271,12 @@ window.__ModuleLoader__.load({
|
|
|
272
271
|
children: (0, react_jsx_runtime.jsxs)("section", {
|
|
273
272
|
className: PlanReviewPanel_module_css_default.card,
|
|
274
273
|
"aria-label": review.question,
|
|
274
|
+
"aria-busy": busy,
|
|
275
275
|
children: [
|
|
276
276
|
(0, react_jsx_runtime.jsxs)("div", {
|
|
277
277
|
className: PlanReviewPanel_module_css_default.strip,
|
|
278
278
|
children: [
|
|
279
|
-
(0, react_jsx_runtime.jsx)(
|
|
279
|
+
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: busy ? "ongoing" : "warning" }),
|
|
280
280
|
t("plan.header"),
|
|
281
281
|
(0, react_jsx_runtime.jsx)("div", {
|
|
282
282
|
className: PlanReviewPanel_module_css_default.previewActions,
|
|
@@ -308,7 +308,7 @@ window.__ModuleLoader__.load({
|
|
|
308
308
|
children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
|
|
309
309
|
variant: "outline",
|
|
310
310
|
className: PlanReviewPanel_module_css_default.discuss,
|
|
311
|
-
icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.
|
|
311
|
+
icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutlineRegular, { size: 14 }),
|
|
312
312
|
disabled: busy,
|
|
313
313
|
onClick: () => {
|
|
314
314
|
settle(() => pending.cancel());
|
|
@@ -395,7 +395,7 @@ window.__ModuleLoader__.load({
|
|
|
395
395
|
}
|
|
396
396
|
/** Return whether a text-field key event belongs to an active IME composition. */
|
|
397
397
|
function isComposing(event) {
|
|
398
|
-
return event.nativeEvent.isComposing || event.nativeEvent
|
|
398
|
+
return event.nativeEvent.isComposing || Reflect.get(event.nativeEvent, "keyCode") === 229;
|
|
399
399
|
}
|
|
400
400
|
/**
|
|
401
401
|
* Auto-growing free-text answer: a textarea, so a long answer soft-wraps and
|
|
@@ -622,7 +622,7 @@ window.__ModuleLoader__.load({
|
|
|
622
622
|
onClick: () => {
|
|
623
623
|
setMinimized((current) => !current);
|
|
624
624
|
},
|
|
625
|
-
children: minimized ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.
|
|
625
|
+
children: minimized ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronUpOutlineRegular, {}) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, {})
|
|
626
626
|
}), (0, react_jsx_runtime.jsx)("button", {
|
|
627
627
|
type: "button",
|
|
628
628
|
className: QuestionComposer_module_css_default.iconButton,
|
|
@@ -630,7 +630,7 @@ window.__ModuleLoader__.load({
|
|
|
630
630
|
title: t("nav.cancel"),
|
|
631
631
|
disabled: busy !== null,
|
|
632
632
|
onClick: cancelFlow,
|
|
633
|
-
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.
|
|
633
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCloseOutlineRegular, {})
|
|
634
634
|
})]
|
|
635
635
|
})]
|
|
636
636
|
}), !minimized && (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -666,7 +666,7 @@ window.__ModuleLoader__.load({
|
|
|
666
666
|
children: [question.multiSelect === true ? (0, react_jsx_runtime.jsx)("span", {
|
|
667
667
|
className: clsx(QuestionComposer_module_css_default.checkbox, selected && QuestionComposer_module_css_default.checkboxChecked),
|
|
668
668
|
"aria-hidden": "true",
|
|
669
|
-
children: selected && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.
|
|
669
|
+
children: selected && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 })
|
|
670
670
|
}) : (0, react_jsx_runtime.jsx)("span", {
|
|
671
671
|
className: QuestionComposer_module_css_default.number,
|
|
672
672
|
children: optionIndex + 1
|
|
@@ -696,11 +696,11 @@ window.__ModuleLoader__.load({
|
|
|
696
696
|
children: [question.multiSelect === true ? (0, react_jsx_runtime.jsx)("span", {
|
|
697
697
|
className: clsx(QuestionComposer_module_css_default.checkbox, draft.custom !== "" && QuestionComposer_module_css_default.checkboxChecked),
|
|
698
698
|
"aria-hidden": "true",
|
|
699
|
-
children: draft.custom !== "" && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.
|
|
699
|
+
children: draft.custom !== "" && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconCheckOutlineRegular, { size: 12 })
|
|
700
700
|
}) : (0, react_jsx_runtime.jsx)("span", {
|
|
701
701
|
className: QuestionComposer_module_css_default.number,
|
|
702
702
|
"aria-hidden": "true",
|
|
703
|
-
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.
|
|
703
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconEditOutlineRegular, { size: 12 })
|
|
704
704
|
}), (0, react_jsx_runtime.jsx)(AnswerField, {
|
|
705
705
|
variant: "inline",
|
|
706
706
|
value: draft.custom,
|
|
@@ -737,7 +737,7 @@ window.__ModuleLoader__.load({
|
|
|
737
737
|
replaceProgress(index - 1, drafts);
|
|
738
738
|
setError(null);
|
|
739
739
|
},
|
|
740
|
-
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.
|
|
740
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronLeftOutlineRegular, {})
|
|
741
741
|
}),
|
|
742
742
|
(0, react_jsx_runtime.jsxs)("span", {
|
|
743
743
|
className: QuestionComposer_module_css_default.progress,
|
|
@@ -756,7 +756,7 @@ window.__ModuleLoader__.load({
|
|
|
756
756
|
replaceProgress(index + 1, drafts);
|
|
757
757
|
setError(null);
|
|
758
758
|
},
|
|
759
|
-
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.
|
|
759
|
+
children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronRightOutlineRegular, {})
|
|
760
760
|
})
|
|
761
761
|
]
|
|
762
762
|
}),
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-client-ui-user-questions",
|
|
3
3
|
"description": "Web ask_user_question composer takeover and plan-review presentation UI",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.7-alpha.1",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -40,30 +40,30 @@
|
|
|
40
40
|
},
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"@deepseek-ai/cordis": "^4.0.
|
|
43
|
+
"@deepseek-ai/cordis": "^4.0.3"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/react": "~18.3.1",
|
|
47
47
|
"react": "^18.2.0",
|
|
48
48
|
"clsx": "^2.0.0",
|
|
49
|
-
"@deepseek-ai/
|
|
50
|
-
"@deepseek-ai/
|
|
51
|
-
"@deepseek-ai/dsh-api-
|
|
52
|
-
"@deepseek-ai/dsh-
|
|
53
|
-
"@deepseek-ai/dsh-client-
|
|
54
|
-
"@deepseek-ai/dsh-
|
|
55
|
-
"@deepseek-ai/dsh-system-prompt": "^0.1.
|
|
56
|
-
"@deepseek-ai/dsh-tools": "^0.1.
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
59
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.1.
|
|
60
|
-
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.
|
|
61
|
-
"@deepseek-ai/dsh-client-ui-
|
|
62
|
-
"@deepseek-ai/dsh-
|
|
63
|
-
"@deepseek-ai/dsh-client-
|
|
64
|
-
"@deepseek-ai/dsh-session": "^0.1.
|
|
65
|
-
"@deepseek-ai/dsh-typert-protocol": "^0.1.
|
|
66
|
-
"@deepseek-ai/dsh-
|
|
49
|
+
"@deepseek-ai/cordis": "^4.0.3",
|
|
50
|
+
"@deepseek-ai/dsh-agent": "^0.1.7-alpha.1",
|
|
51
|
+
"@deepseek-ai/dsh-api-session-controller": "^0.1.7-alpha.1",
|
|
52
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.7-alpha.1",
|
|
53
|
+
"@deepseek-ai/dsh-client-store": "^0.1.7-alpha.1",
|
|
54
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.7-alpha.1",
|
|
55
|
+
"@deepseek-ai/dsh-system-prompt": "^0.1.7-alpha.1",
|
|
56
|
+
"@deepseek-ai/dsh-tools": "^0.1.7-alpha.1",
|
|
57
|
+
"@deepseek-ai/dsh-user-questions": "^0.1.7-alpha.1",
|
|
58
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-alpha.1",
|
|
59
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.7-alpha.1",
|
|
60
|
+
"@deepseek-ai/dsh-client-ui-renderer": "^0.1.7-alpha.1",
|
|
61
|
+
"@deepseek-ai/dsh-client-ui-session": "^0.1.7-alpha.1",
|
|
62
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.7-alpha.1",
|
|
63
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.7-alpha.1",
|
|
64
|
+
"@deepseek-ai/dsh-session": "^0.1.7-alpha.1",
|
|
65
|
+
"@deepseek-ai/dsh-typert-protocol": "^0.1.7-alpha.1",
|
|
66
|
+
"@deepseek-ai/dsh-llm": "^0.1.7-alpha.1"
|
|
67
67
|
},
|
|
68
68
|
"files": [
|
|
69
69
|
"lib/index.js",
|