@deepseek-ai/dsh-client-ui-goal 0.2.0-rc.2 → 0.2.1-alpha.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 +4 -4
- package/README.md +1 -3
- package/README.zh.md +1 -3
- package/lib/client.js +13 -16
- package/package.json +18 -18
package/README.i18n.yaml
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
en: d152484eb41ac6b4
|
|
16
16
|
zh: 09388d293f9be9cb
|
|
17
17
|
/deepseek-ai-dsh-client-ui-goal/use-this-package:
|
|
18
|
-
en:
|
|
19
|
-
zh:
|
|
18
|
+
en: 4f6e6353d793a0de
|
|
19
|
+
zh: cde6e470f7dd9057
|
|
20
20
|
/deepseek-ai-dsh-client-ui-goal/use-this-package/the-command-input-bubble:
|
|
21
21
|
en: 05c5db0eb58dffef
|
|
22
22
|
zh: 54e7bea0b810b1b8
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
en: bbb97ea1b94eae0f
|
|
40
40
|
zh: 8e6b0e0516746dcf
|
|
41
41
|
/deepseek-ai-dsh-client-ui-goal/known-limitations-and-deferred-work/dev-note:
|
|
42
|
-
en:
|
|
43
|
-
zh:
|
|
42
|
+
en: e67f633dc6fe7773
|
|
43
|
+
zh: 3bb0c20c93f16f98
|
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ The Web GUI goal surface shows both the durable goal state and its current proce
|
|
|
25
25
|
<a id="use-this-package"></a>
|
|
26
26
|
## Use this package
|
|
27
27
|
|
|
28
|
-
Mount this plugin alongside `ui-conversation` and the goal domain package; the strip then appears as the second card in the composer-context stack (after Todo, before Queue) whenever the session has a goal. Todo and Goal use the same panel elevation above the composer. An armed active goal offers pause; an active-but-disarmed or paused goal offers resume; edit rewrites the objective; clear removes the goal and suppresses the strip until the projection catches up.
|
|
28
|
+
Mount this plugin alongside `ui-conversation` and the goal domain package; the strip then appears as the second card in the composer-context stack (after Todo, before Queue) whenever the session has a goal. Todo and Goal use the same panel elevation above the composer. An armed active goal offers pause; an active-but-disarmed or paused goal offers resume; edit rewrites the objective in the ui-primitives `InlineEditor`, so multi-line objectives survive editing; clear removes the goal and suppresses the strip until the projection catches up.
|
|
29
29
|
|
|
30
30
|
### The command-input bubble
|
|
31
31
|
|
|
@@ -89,5 +89,3 @@ These limits define the current goal surface. They are current package constrain
|
|
|
89
89
|
None.
|
|
90
90
|
|
|
91
91
|
</details>
|
|
92
|
-
|
|
93
|
-
**Runtime invariant:** No companion is published. There is a single GoalBar dock registration whose disposal is proven by the HMR-safety spec — durable state arrives on the goal projection, process-local activation arrives through the entry's private hook source, and that source subscribes only while the framework hook observes it.
|
package/README.zh.md
CHANGED
|
@@ -25,7 +25,7 @@ Web GUI 的 goal 界面同时显示持久 goal 状态及当前的进程本地激
|
|
|
25
25
|
<a id="use-this-package"></a>
|
|
26
26
|
## 使用本包
|
|
27
27
|
|
|
28
|
-
与 `ui-conversation` 及 goal 领域包一起挂载本插件;只要会话存在目标,条带就会作为 composer 上下文堆栈的第二张卡片出现(位于 Todo 之后、Queue 之前)。Todo 与 Goal 使用相同的面板 elevation,使其位于 composer 层级之上。已 armed 的 active goal 提供暂停动作;active-but-disarmed 或 paused 的 goal
|
|
28
|
+
与 `ui-conversation` 及 goal 领域包一起挂载本插件;只要会话存在目标,条带就会作为 composer 上下文堆栈的第二张卡片出现(位于 Todo 之后、Queue 之前)。Todo 与 Goal 使用相同的面板 elevation,使其位于 composer 层级之上。已 armed 的 active goal 提供暂停动作;active-but-disarmed 或 paused 的 goal 提供恢复;编辑在 ui-primitives 的 `InlineEditor` 中重写目标文本,多行目标编辑后仍保留换行;清除移除目标,并在投影追上之前抑制条带。
|
|
29
29
|
|
|
30
30
|
### 指令输入气泡
|
|
31
31
|
|
|
@@ -89,5 +89,3 @@ Web GUI 的 goal 界面同时显示持久 goal 状态及当前的进程本地激
|
|
|
89
89
|
无。
|
|
90
90
|
|
|
91
91
|
</details>
|
|
92
|
-
|
|
93
|
-
**运行时不变式:** 不发布伴生入口。插件只注册一个 GoalBar dock,其释放已由 HMR(热模块替换)安全性用例证明;持久状态来自 goal projection,进程本地 activation 来自入口私有钩子源,且该源只在框架钩子观察期间订阅。
|
package/lib/client.js
CHANGED
|
@@ -126,7 +126,7 @@ window.__ModuleLoader__.load({
|
|
|
126
126
|
}
|
|
127
127
|
//#endregion
|
|
128
128
|
//#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-goal/src/client/GoalBar.module.css.mjs
|
|
129
|
-
const css$1 = ".nLMEza_dock{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));margin:0 auto}.nLMEza_bar{isolation:isolate;box-sizing:border-box;width:100%;max-width:calc(var(--dsh-composer-card-max-width) - 4 * var(--dsh-composer-dock-inset));--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-md);height:36px;box-shadow:var(--dsw-elevation-panel);border:0;align-items:center;gap:10px;margin:0 auto;padding:4px 5px 4px 12px;display:flex;position:relative}.nLMEza_bar:before{z-index:-1;border-radius:inherit;background:var(--dsw-specific-menu);backdrop-filter:var(--dsw-menu-backdrop-filter);content:\"\";pointer-events:none;position:absolute;inset:0}.nLMEza_goalGlyph{color:var(--dsw-alias-label-tertiary);flex:none;display:inline-flex}.nLMEza_label{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:24px}.nLMEza_objective{min-width:0;color:var(--dsw-alias-label-primary-dimmed);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;line-height:20px;overflow:hidden}.nLMEza_error{min-width:0;color:var(--dsw-alias-state-error-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;line-height:20px;overflow:hidden}.
|
|
129
|
+
const css$1 = ".nLMEza_dock{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance) - var(--dsh-composer-side-clearance) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset) - var(--dsh-composer-dock-inset));margin:0 auto}.nLMEza_bar{isolation:isolate;box-sizing:border-box;width:100%;max-width:calc(var(--dsh-composer-card-max-width) - 4 * var(--dsh-composer-dock-inset));--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);border-radius:var(--dsw-radius-md);height:36px;box-shadow:var(--dsw-elevation-panel);border:0;align-items:center;gap:10px;margin:0 auto;padding:4px 5px 4px 12px;display:flex;position:relative}.nLMEza_bar:before{z-index:-1;border-radius:inherit;background:var(--dsw-specific-menu);backdrop-filter:var(--dsw-menu-backdrop-filter);content:\"\";pointer-events:none;position:absolute;inset:0}.nLMEza_goalGlyph{color:var(--dsw-alias-label-tertiary);flex:none;display:inline-flex}.nLMEza_label{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:24px}.nLMEza_objective{min-width:0;color:var(--dsw-alias-label-primary-dimmed);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;line-height:20px;overflow:hidden}.nLMEza_error{min-width:0;color:var(--dsw-alias-state-error-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;line-height:20px;overflow:hidden}.nLMEza_editBar{--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);align-items:flex-end;height:auto;min-height:36px}.nLMEza_actions{flex:none;align-items:center;gap:10px;display:flex}.nLMEza_iconBtn{corner-shape:round;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.nLMEza_iconBtn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.nLMEza_iconBtn:disabled{opacity:.4;cursor:default}";
|
|
130
130
|
const tagId$1 = "@deepseek-ai/dsh-client-ui-goal/GoalBar.module.css";
|
|
131
131
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
|
|
132
132
|
const tag = document.createElement("style");
|
|
@@ -139,12 +139,12 @@ window.__ModuleLoader__.load({
|
|
|
139
139
|
"actions": "nLMEza_actions",
|
|
140
140
|
"bar": "nLMEza_bar",
|
|
141
141
|
"dock": "nLMEza_dock",
|
|
142
|
+
"editBar": "nLMEza_editBar",
|
|
142
143
|
"error": "nLMEza_error",
|
|
143
144
|
"goalGlyph": "nLMEza_goalGlyph",
|
|
144
145
|
"iconBtn": "nLMEza_iconBtn",
|
|
145
146
|
"label": "nLMEza_label",
|
|
146
|
-
"objective": "nLMEza_objective"
|
|
147
|
-
"objectiveInput": "nLMEza_objectiveInput"
|
|
147
|
+
"objective": "nLMEza_objective"
|
|
148
148
|
};
|
|
149
149
|
//#endregion
|
|
150
150
|
//#region lib/types/client/GoalBar.js
|
|
@@ -209,21 +209,18 @@ window.__ModuleLoader__.load({
|
|
|
209
209
|
className: GoalBar_module_css_default.dock,
|
|
210
210
|
"data-goal-bar": true,
|
|
211
211
|
children: (0, react_jsx_runtime.jsxs)("div", {
|
|
212
|
-
className: GoalBar_module_css_default.bar
|
|
212
|
+
className: `${GoalBar_module_css_default.bar} ${GoalBar_module_css_default.editBar}`,
|
|
213
213
|
children: [
|
|
214
|
-
(0, react_jsx_runtime.jsx)(
|
|
215
|
-
className: GoalBar_module_css_default.objectiveInput,
|
|
216
|
-
type: "text",
|
|
217
|
-
"aria-label": t("objective.aria"),
|
|
214
|
+
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.InlineEditor, {
|
|
218
215
|
value: draft,
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
if (e.key === "Enter") handleEdit();
|
|
224
|
-
if (e.key === "Escape") setEditing(false);
|
|
216
|
+
label: t("objective.aria"),
|
|
217
|
+
onChange: setDraft,
|
|
218
|
+
onSave: () => {
|
|
219
|
+
handleEdit();
|
|
225
220
|
},
|
|
226
|
-
|
|
221
|
+
onCancel: () => {
|
|
222
|
+
setEditing(false);
|
|
223
|
+
}
|
|
227
224
|
}),
|
|
228
225
|
actionError !== null && (0, react_jsx_runtime.jsx)("span", {
|
|
229
226
|
className: GoalBar_module_css_default.error,
|
|
@@ -482,7 +479,7 @@ window.__ModuleLoader__.load({
|
|
|
482
479
|
/** Simplified Chinese dictionary (the key-set source of truth). */
|
|
483
480
|
const zh = {
|
|
484
481
|
"phase.active": "进行中的目标",
|
|
485
|
-
"phase.active.disarmed": "
|
|
482
|
+
"phase.active.disarmed": "已暂停的目标",
|
|
486
483
|
"phase.paused": "已暂停的目标",
|
|
487
484
|
"phase.blocked": "受阻的目标",
|
|
488
485
|
"objective.aria": "目标内容",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-client-ui-goal",
|
|
3
3
|
"description": "Session goal surface: GoalBar docked above the composer, read from the goal session projection",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.1-alpha.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -41,28 +41,28 @@
|
|
|
41
41
|
},
|
|
42
42
|
"license": "MIT",
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"@deepseek-ai/cordis": "~4.0.
|
|
44
|
+
"@deepseek-ai/cordis": "~4.0.5-alpha.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@
|
|
47
|
+
"@deepseek-ai/dsh-api-remotes": "0.2.1-alpha.2",
|
|
48
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.1-alpha.2",
|
|
49
|
+
"@deepseek-ai/dsh-client-locale": "0.2.1-alpha.2",
|
|
50
|
+
"@deepseek-ai/dsh-client-test-runtime": "0.2.1-alpha.2",
|
|
51
|
+
"@deepseek-ai/dsh-client-ui-chat": "0.2.1-alpha.2",
|
|
52
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.1-alpha.2",
|
|
53
|
+
"@deepseek-ai/dsh-client-ui-primitives": "0.2.1-alpha.2",
|
|
54
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.2",
|
|
55
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.2",
|
|
56
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.1-alpha.2",
|
|
57
|
+
"@deepseek-ai/dsh-commands": "0.2.1-alpha.2",
|
|
58
|
+
"@deepseek-ai/dsh-goal": "0.2.1-alpha.2",
|
|
59
|
+
"@testing-library/react": "^16.3.3",
|
|
48
60
|
"@types/react": "~18.3.1",
|
|
61
|
+
"@deepseek-ai/cordis": "~4.0.5-alpha.1",
|
|
49
62
|
"react": "^18.2.0",
|
|
50
63
|
"react-dom": "^18.2.0",
|
|
51
|
-
"@deepseek-ai/dsh-
|
|
52
|
-
"@deepseek-ai/dsh-
|
|
53
|
-
"@deepseek-ai/dsh-client-test-runtime": "0.2.0-rc.2",
|
|
54
|
-
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
|
|
55
|
-
"@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.2",
|
|
56
|
-
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
|
|
57
|
-
"@deepseek-ai/dsh-client-ui-chat": "0.2.0-rc.2",
|
|
58
|
-
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
|
|
59
|
-
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2",
|
|
60
|
-
"@deepseek-ai/dsh-commands": "0.2.0-rc.2",
|
|
61
|
-
"@deepseek-ai/dsh-api-remotes": "0.2.0-rc.2",
|
|
62
|
-
"@deepseek-ai/dsh-session": "0.2.0-rc.2",
|
|
63
|
-
"@deepseek-ai/dsh-goal": "0.2.0-rc.2",
|
|
64
|
-
"@deepseek-ai/cordis": "~4.0.4",
|
|
65
|
-
"@deepseek-ai/dsh-typert-protocol": "0.2.0-rc.2"
|
|
64
|
+
"@deepseek-ai/dsh-session": "0.2.1-alpha.2",
|
|
65
|
+
"@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.2"
|
|
66
66
|
},
|
|
67
67
|
"files": [
|
|
68
68
|
"lib/index.js",
|