dsh-composer-predictions 1.2.4 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,24 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.2.6] - 2026-10-26
10
+
11
+ ### Changed
12
+
13
+ - Declare `dsh.catalog` (English/Chinese summary, `ui` category) so plugin
14
+ markets place the plugin under UI with a real summary instead of guessing.
15
+
16
+ ## [1.2.5] - 2026-10-25
17
+
18
+ ### Changed
19
+
20
+ - The **Settings → General** row draws its own switch instead of loading
21
+ `@deepseek-ai/dsh-client-ui-primitives`. A harness-side change to that package
22
+ could previously fail the whole plugin at load; the markup, theme tokens and
23
+ behaviour are unchanged.
24
+ - The README comparison table names the Settings switch.
25
+
26
+
9
27
  ## [1.2.4] - 2026-10-25
10
28
 
11
29
  ### Fixed
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # dsh-composer-predictions
2
2
 
3
+ [English](./README.md) · [中文](./README.zh-CN.md)
4
+
3
5
  [![npm](https://img.shields.io/npm/v/dsh-composer-predictions)](https://www.npmjs.com/package/dsh-composer-predictions)
4
6
  [![license](https://img.shields.io/npm/l/dsh-composer-predictions)](LICENSE)
5
7
  [![topic](https://img.shields.io/badge/topic-dsh--plugin-blue)](https://github.com/topics/dsh-plugin)
@@ -23,6 +25,18 @@ the final candidates are ready.
23
25
 
24
26
  ![Typing a draft, the continuation ghost appearing, and Tab accepting it](https://raw.githubusercontent.com/Stijnus/dsh-composer-predictions/main/docs/demo.gif)
25
27
 
28
+ ## Quick start
29
+
30
+ ```sh
31
+ dsh plugin --profile web add dsh-composer-predictions
32
+ ```
33
+
34
+ Restart the Harness (or refresh the Web UI). Ghost-text suggestions start appearing in the composer.
35
+
36
+ <sub>More from this suite: [Moodboard](https://github.com/Stijnus/dsh-moodboard) · [Composer Predictions](https://github.com/Stijnus/dsh-composer-predictions) · [Move to Workspace](https://github.com/Stijnus/dsh-move-to-workspace) · [Workspace Status](https://github.com/Stijnus/dsh-workspace-status) · [Prompt Rewrite](https://github.com/Stijnus/dsh-prompt-optimizer)</sub>
37
+
38
+ <sub>⭐ If this saves you a step, a star helps the next DSH user find it.</sub>
39
+
26
40
  ## How this differs from the other prediction plugins
27
41
 
28
42
  This plugin combines next-message suggestions and draft continuation with
@@ -40,9 +54,10 @@ for you.
40
54
  | Streamed rendering | ✅ SSE (`/v2`) | not documented | ✅ | ✅ |
41
55
  | Recent tool calls and outcomes in the prompt | ✅ | — | — | — |
42
56
  | Cache | ✅ per turn + per draft | ✅ | ✅ | not documented |
57
+ | Switch off in Settings, no uninstall | ✅ Settings → General | ✅ Settings section | not documented | not documented |
43
58
 
44
59
  "—" means the feature is not mentioned in that package's README as of
45
- 2026-10-24, not that it is impossible. If all you want is an after-turn
60
+ 2026-10-25, not that it is impossible. If all you want is an after-turn
46
61
  suggestion, `dsh-composer-prediction` is a perfectly good, more established
47
62
  choice — this plugin is for people who also want the caret continuation and
48
63
  keyboard-only candidate switching.
@@ -0,0 +1,34 @@
1
+ # dsh-composer-predictions · 输入框补全
2
+
3
+ [English](./README.md) · [中文](./README.zh-CN.md)
4
+
5
+ 给输入框加上**幽灵文本补全**:智能体回复后提示你下一条消息,输入时补全当前句子,**Tab** 接受为可编辑草稿。
6
+
7
+ ## 快速开始
8
+
9
+ ```sh
10
+ dsh plugin --profile web add dsh-composer-predictions
11
+ ```
12
+
13
+ 重启 Harness(或刷新 Web 界面)。输入框开始出现幽灵文本建议。
14
+
15
+ ## 功能
16
+
17
+ - **下一条消息**:一轮结束后,空输入框流式给出下一条消息的草稿,Tab 接受。
18
+ - **行内补全**:打字过程中补全当前句子,保持你的语气与上下文。
19
+ - **Tab 接受 / Esc 忽略**,接受后是普通草稿,不会自动发送。
20
+ - **不改动会话历史**,只在你接受时写入输入框。
21
+
22
+ ## 要求
23
+
24
+ DeepSeek Harness `>=0.2.1-rc.3 <0.3.0-0`,Web profile(桌面版或 Web 界面)
25
+
26
+ ## 相关链接
27
+
28
+ - 英文说明(完整细节):[README.md](./README.md)
29
+ - npm:<https://www.npmjs.com/package/dsh-composer-predictions>
30
+ - 更新记录:[CHANGELOG.md](./CHANGELOG.md)
31
+
32
+ <sub>同系列插件:[情绪板](https://github.com/Stijnus/dsh-moodboard) · [输入补全](https://github.com/Stijnus/dsh-composer-predictions) · [移动到工作区](https://github.com/Stijnus/dsh-move-to-workspace) · [工作区状态](https://github.com/Stijnus/dsh-workspace-status) · [提示词改写](https://github.com/Stijnus/dsh-prompt-optimizer)</sub>
33
+
34
+ <sub>⭐ 如果它帮你省了一步,点个 star 能让更多 DSH 用户发现它。</sub>
package/client.js CHANGED
@@ -20,7 +20,38 @@ window.__ModuleLoader__.load({
20
20
  factory(require) {
21
21
  const React = require('react')
22
22
  const h = React.createElement
23
- const { Switch } = require('@deepseek-ai/dsh-client-ui-primitives')
23
+
24
+ /**
25
+ * Local switch button. The host's own switch is a harness Client package,
26
+ * which a bundle must not load: it can change without notice, and a throw
27
+ * would take the whole plugin down. This reproduces its markup, CSS and
28
+ * behaviour with plugin-owned classes and theme tokens only.
29
+ */
30
+ const SWITCH_CSS = [
31
+ '.cp-switch{box-sizing:border-box;position:relative;flex:0 0 auto;width:36px;height:20px;padding:2px;border:0;border-radius:999px;background:var(--dsw-alias-border-l3);cursor:pointer}',
32
+ '.cp-switch[aria-checked="true"]{background:var(--dsw-alias-brand-primary)}',
33
+ '.cp-switch:disabled{cursor:default;opacity:.5}',
34
+ '.cp-switch:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}',
35
+ '.cp-switch__thumb{display:block;width:16px;height:16px;border-radius:50%;background:var(--dsw-alias-label-primary-foreground);transition:transform .12s}',
36
+ '.cp-switch[aria-checked="false"] .cp-switch__thumb{background:var(--dsw-alias-switch-thumb)}',
37
+ '.cp-switch[aria-checked="true"] .cp-switch__thumb{transform:translate(16px)}',
38
+ ].join('')
39
+
40
+ function Switch({ checked, label, onChange, disabled }) {
41
+ return h(
42
+ 'button',
43
+ {
44
+ type: 'button',
45
+ role: 'switch',
46
+ 'aria-checked': checked === true ? 'true' : 'false',
47
+ 'aria-label': label,
48
+ className: 'cp-switch',
49
+ disabled: disabled === true,
50
+ onClick: () => onChange(checked !== true),
51
+ },
52
+ h('span', { className: 'cp-switch__thumb', 'aria-hidden': 'true' }),
53
+ )
54
+ }
24
55
 
25
56
  const NS = 'composer-predictions'
26
57
  const ENDPOINT = '/composer-prediction/v2'
@@ -92,6 +123,7 @@ window.__ModuleLoader__.load({
92
123
  function PredictionsSetting({ t }) {
93
124
  const checked = useEnabled()
94
125
  return h('div', { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 24, padding: '16px 0', borderBottom: '0.5px solid var(--dsw-alias-border-l2)' } },
126
+ h('style', null, SWITCH_CSS),
95
127
  h('div', null,
96
128
  h('div', { style: { fontSize: 14, lineHeight: '20px' } }, t('enabled')),
97
129
  h('div', { style: { fontSize: 12, lineHeight: '18px', marginTop: 4, color: 'var(--dsw-alias-label-secondary)' } }, t('description')),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-composer-predictions",
3
- "version": "1.2.4",
3
+ "version": "1.2.6",
4
4
  "description": "Tab autocomplete for the DeepSeek Harness desktop and web composer: next-message ghost text, inline draft completion and keyboard candidate cycling",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,6 +43,13 @@
43
43
  "@deepseek-ai/dsh-client-ui-conversation",
44
44
  "@deepseek-ai/dsh-client-locale"
45
45
  ]
46
+ },
47
+ "catalog": {
48
+ "summary": {
49
+ "en": "Tab autocomplete for the DeepSeek Harness composer: next-message ghost text, inline draft completion and keyboard candidate cycling.",
50
+ "zh": "DeepSeek Harness 输入框的 Tab 自动补全:回复后的下一句建议、输入停顿时的草稿续写,以及键盘切换候选。"
51
+ },
52
+ "category": "ui"
46
53
  }
47
54
  },
48
55
  "repository": {